From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52934C433FE for ; Thu, 13 Jan 2022 08:56:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233193AbiAMI41 (ORCPT ); Thu, 13 Jan 2022 03:56:27 -0500 Received: from mail-mw2nam10on2077.outbound.protection.outlook.com ([40.107.94.77]:35104 "EHLO NAM10-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S232412AbiAMI4R (ORCPT ); Thu, 13 Jan 2022 03:56:17 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VBEzLjMOCtOIYraxPwATDj5lmhDiw8i03VPc7+zFM68W9cN4emjAzE598aANWlwQztcoZ3BFCaEfIthueiorjx8m4rdPEM83cPo/x8OyS4IrRXHSHQY2hbgSla6JyNZMSaJzlxHKZnYA92RfFbONIiD1aBgr4meRsS5CZeJNtEkLQbNNEeP6KSJzwZf7Rmup1LD5iyqiNAganZyk/fTC0lp0l5NKYdRdsrtCfRB5h3xl/JB3io0KeXfqr1IGI18QV8giXzCjW8sPAvkOWN57uGx2SnCviji+6EX6fALiGI18+ZRhWljLXW8UDUfglRZ1SceEx5lIju91kFV9HjhtDw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MmTrl3snazhqJMS/L7OHmReLfXtYoyj2BWSk8QTPahU=; b=lBbfImHhezrX9hQlJPVSmq6xMiCGKDjo1VhsGQsuMeTaF3PJJWItE3Nlm+ljXrMt1Lb33pUytXuBPYVQquTXr/v99nKBGJ0IQP78cHhAaetBplfvl5izi+/G3QK/5gux2N5CEyvKlpQB0323/ODvLYRPQoP/M83VQj7p4j+zznI6NF8v0yBynzI+/vfhQRPDNLcWr594Aitj6H+JC3ldYlutlVV6wh2CXFz/C4Glg0m9vQgn4T4D/mHyPrf0xLAocXfknaVMIvsDqdnK83ilwN/eoh7zOswclgb/mIdPRa/DARQhViC7Pj29pHQA+RKyos407aH9ZBQmck4vo+uOPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MmTrl3snazhqJMS/L7OHmReLfXtYoyj2BWSk8QTPahU=; b=HviL/+lHVORPN5dlD1ly5zKnGAMBmvmllvoXgT4aUZfVWnSOTZDeTnuIv38QEpRLIu3yxMcv3HoJn/ff22IeYqKVdcir7XUs+8tRJmVK1nkw3kL81yYbcgoL1xh3s7z9licNdRXNesVpw/LIhZx618UJ7ECUKhfsc746pPEFAG4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=silabs.com; Received: from PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) by BY5PR11MB4040.namprd11.prod.outlook.com (2603:10b6:a03:186::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Thu, 13 Jan 2022 08:56:07 +0000 Received: from PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4]) by PH0PR11MB5657.namprd11.prod.outlook.com ([fe80::d031:da9e:71a:73e4%5]) with mapi id 15.20.4888.011; Thu, 13 Jan 2022 08:56:07 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?UTF-8?q?J=C3=A9r=C3=B4me=20Pouiller?= Subject: [PATCH 15/31] staging: wfx: prefix functions from hwio.h with wfx_ Date: Thu, 13 Jan 2022 09:55:08 +0100 Message-Id: <20220113085524.1110708-16-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> References: <20220113085524.1110708-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: SA0PR11CA0117.namprd11.prod.outlook.com (2603:10b6:806:d1::32) To PH0PR11MB5657.namprd11.prod.outlook.com (2603:10b6:510:ee::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1759edbb-cd2b-4276-3b70-08d9d6728992 X-MS-TrafficTypeDiagnostic: BY5PR11MB4040:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1107; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7Nht9UqGn11bqTwiK5RMX1Tlw5hR4jWWHK2FWgqWuQV/8ZxgTbhLr+O/eVddMrXk9V8fbeWtkNzZoHXwctYT3uGvEpW1QPRublKaRhxXnI7ge28RMzBJCiCHKbpsRvB7WQBYJeNC27bhyL+eHYT/MAoHAb/yln/BdNy/EtRAKgS726Shr60PkvR85SEBGfnquKqSgXPLi8elF5JSGjZyYpJyDqeHliSMDat/sTtPasxCc0XrrmVcOkN7C2RqlvPuVEqiwqef4Dp1ej+VaURU1vozw+8MBnhuYUdLyH7Snons+i8mnbaRTqO3zG30KK+XUxgZ/u98rUlZYbGixXZvxNxI0isvVattr79YNUsMLtmnb68mIpxheLVPdBKxV9EXgRlYFp3L1fgjwChceq+88ZdTK8w3ssgD9gJ6XpF9zxS7mkoFVSepsMKfetAka0wzrN7MtLtN5jrnlptmf9JisuIldRoDPL+3aCKOXEDMbXUuUIlBoWRlDzhEVTWhyHhyzrvrqIWzBRUzz12GiVHaFeXkcLm4kgF5JmjyUMF1AiG4HLX2QPiYfWxoc8V5Cs9WFYgnjyuIDszIkLff9Dtjw6F9BA5PU1z7Iwk2hKgYGSiT6WLxvktgRnOip7hIe11vZlLkULNoNYs5yIb8keP1MQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5657.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(6506007)(508600001)(186003)(38100700002)(30864003)(4326008)(8936002)(6512007)(66946007)(83380400001)(1076003)(2616005)(54906003)(86362001)(66556008)(2906002)(66476007)(316002)(52116002)(36756003)(5660300002)(66574015)(8676002)(6486002)(107886003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MEh4RVpiOGZEMVZjSGJhSk1TZC8rZVJUZ00zQUpQQzdBZTNFZWF2SHlxR0ZX?= =?utf-8?B?SlNaQUY4SUd3Zk5vT0wrMFJETEtKRUZZVCt1SzliMndGcWh6RnN0NE43am8y?= =?utf-8?B?dVZJL01EaDZ6UkcwWmp2MElFODZyOStOdXZNSkNWSFRsdFJwaEF1bVFhdCsz?= =?utf-8?B?bUJ1eURhSEtOakVBVmhhc05OZ3kwelpEVzMyNE1kMyttUmJwenVHeFlwNEdy?= =?utf-8?B?YlNXcEdkdk5NWENjU2FINnlEM1ZwRFp5cnlMQko3NEZscm0zMklIQ0lsbk1I?= =?utf-8?B?bjhmUkI0NXNYU2pYWktXZEhra3JxWEgxTHBKdWlBeW9oUlVQN29XSE83eGsz?= =?utf-8?B?TjB5V3pFb0ZXcFc1VHkwYXdXUVlEMDhURXVPb2ZHN0ZHNTRQUFhjWDdCMkpG?= =?utf-8?B?czl4RUFZMWZSMjYxQzFWbXo5TTlBc0d4bW40dmhxNEs3WjNGNkR2LzJmYjJ0?= =?utf-8?B?d081QjdHUkJTYXVpVjRCUldSZ0hLNzVyMXNlY3g1QURYUGdHNnVLOVhVekkv?= =?utf-8?B?REl0Z05HU1h3UkM1alNhVDBhaXBuVk9NakFnaUhIaWU2SnAxU2QyMVUzNmgr?= =?utf-8?B?REE1WjV6R2RXOE1oNWRQKzVyVDVGeHVib0ZUektKN1pESkhBUStYMzRuTnNS?= =?utf-8?B?TGtpSENna0RtK0FGZXNCUEgxNTV2Z29JOC9jUERReUlGWXpOV1ZPNUYvbExy?= =?utf-8?B?cHJpK09IMjZnZEV1MWFBbE5pdWwyTGxIcXl4bCthdXBjd0FNemhSNWw4YnhI?= =?utf-8?B?aHhjVlZTL3RJYXRhRUNqQkpQVmR5SnBhQWFFUjFIU0dKOVcvMXFTUWxEVi9X?= =?utf-8?B?K1dpMEdqMjJlanMxZlVkN0hJNE53Zm5PQ1hJTEJDVDFXekZqTThzRm5kb2FV?= =?utf-8?B?dnhuNTQvYkhBaERWV2RZeEFQamNjUWw5ZFRodlNRZDVRbnkvVk82YXlUT1pR?= =?utf-8?B?SGtuTGY1RTJtTWZzWWJuTUpyNDA2Rk1XR2RLNU9pVUNpdDNSRWFpY1VYYXQ4?= =?utf-8?B?QjRVYVhiVXQ1d1pIZ1FXd1pxYk45UG55Sk5lOUZrZE5ZRnR5TkV0QTBETWQ4?= =?utf-8?B?aVdzSzM1WE5ac0pJRGhPeGZOZHZaY1F6QjBhZTdDODNIMGZZVFpCY3hWQ05T?= =?utf-8?B?d2tCQ1JqQkF0dll6aXhlcWdiRlJORDcySFhnVUtZcUxFUHhPeVVGazluYk13?= =?utf-8?B?YmsxYjVjanVEd3B5VkEwTGphMXpxMmhtSmt1ZTFqaVBSVE1KSWVvZ3ZKL0h0?= =?utf-8?B?cXc3Mi9oMkp4UkZCRmhGeU12M25yWlVDTjlHTTlqangwY1VVMDYwNWg3MDVW?= =?utf-8?B?VWgxejZkVWtscXRuWGhDeGp5V3c0ei9zZzJSdUd3cVU0QVJMOG41Wm9aejl0?= =?utf-8?B?VTdGYjlOeTdzQjlDcFZVR0VhVVdyaVdxdXBQUUR0aE1JdVA1YnJQcDdodTdF?= =?utf-8?B?N1dhbXVaSDYwcllnK21QTmxYQ1gzK09FNGhESlZOUjdDMllVMDN1WWNsWFox?= =?utf-8?B?ZkpyZDJ6UXVZMUFVRDN1bnVqV05hWEJwWXd6TzdKZVU5VXRmbS9xYVBrUVdS?= =?utf-8?B?SWx4S0k0TFVsZUNWTnQ0VHcybGJra09XSlhsdlJWL1M1Y0RxU1VlOUZXbG9p?= =?utf-8?B?YXh5ZFlFWVhVZTBGTTZEdzJ3VkhieWRMcXFERGdHNXFJQ3VEb0JGRGlQK3Z5?= =?utf-8?B?alM5Z3JiT2N3WFc1MEhsQlJ5Z3k5STVzclBkSlBCOFFDNmROZUJudGxxL2th?= =?utf-8?B?eWtpWER2a01yN2VpTWNxKzBDeXdTUXJMVkx2d1JuMmIxZGp2Z1NqZXJVM21k?= =?utf-8?B?WnZIN1lNYlB6VEI5T2F4TUlLSWVkb1ZlcWRTbjdKNHp2ckEwSWNTY09ZeklF?= =?utf-8?B?Q21lV0tBQ0JKbVUxaW8rVi9WSlFJY2lScEc0U1R4T0hhU2dPRnlTTEw4bDVC?= =?utf-8?B?TXE0WUowMGlLRFR2Qm1VNXBzOUNBVjEvckFJdkhYWVdJYllnZGtPYlVtRHRv?= =?utf-8?B?UEZQRFlEcjF3bzZ6MG0rQVo2Y1QvLzE3SitsaGgza29EVk5BZW5XU1hsbEl5?= =?utf-8?B?dmZTeXYzYjlzSUNQZndyaDA0V25XYVNlZXpaNUNjSnlJNHRjL0taS0tJbnlQ?= =?utf-8?B?T3M0cFVRN3RXYWQxUkJmUkJYcTJSMXlvODA5THplV0tzaWlSY2tWL1pQdlo0?= =?utf-8?B?djZPK1Blb2twekU2UnZtbU1UY0VEM2J2YUhaUDZhbGFrTDk3WWVOcEFIVE5U?= =?utf-8?Q?KnagScXp6QPEM7c1rhtnuESYfoK/JfIcnwaDcmg/Sw=3D?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1759edbb-cd2b-4276-3b70-08d9d6728992 X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5657.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2022 08:56:07.4813 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ycRdDbSm/gDa/wFWidph8bwLSHhYsefd1Yo8lgf8NEo8yzkyWH9srNuFrwhHeE77PVtr4bcqdX8jLl+8aPPfSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4040 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKQWxs IHRoZSBmdW5jdGlvbnMgcmVsYXRlZCB0byBhIGRyaXZlciBzaG91bGQgdXNlIHRoZSBzYW1lIHBy ZWZpeC4KClNpZ25lZC1vZmYtYnk6IErDqXLDtG1lIFBvdWlsbGVyIDxqZXJvbWUucG91aWxsZXJA c2lsYWJzLmNvbT4KLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMgICAgIHwgICA4ICstLQog ZHJpdmVycy9zdGFnaW5nL3dmeC9md2lvLmMgICB8ICA3OCArKysrKysrKysrLS0tLS0tLS0tLQog ZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYyB8ICAgMiArLQogZHJpdmVycy9zdGFnaW5nL3dm eC9od2lvLmMgICB8IDEzNSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9zdGFnaW5nL3dmeC9od2lvLmggICB8ICAzMiArKysrLS0tLS0KIGRyaXZlcnMvc3RhZ2lu Zy93ZngvbWFpbi5jICAgfCAgIDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTMzIGluc2VydGlvbnMo KyksIDEyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2Jo LmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMKaW5kZXggYmJjZjhkNmEzOWM0Li5iN2ZhMGFl YWZkNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYmguYworKysgYi9kcml2ZXJz L3N0YWdpbmcvd2Z4L2JoLmMKQEAgLTIyNywxMSArMjI3LDExIEBAIHN0YXRpYyB2b2lkIGFja19z ZGlvX2RhdGEoc3RydWN0IHdmeF9kZXYgKndkZXYpCiB7CiAJdTMyIGNmZ19yZWc7CiAKLQljb25m aWdfcmVnX3JlYWQod2RldiwgJmNmZ19yZWcpOworCXdmeF9jb25maWdfcmVnX3JlYWQod2Rldiwg JmNmZ19yZWcpOwogCWlmIChjZmdfcmVnICYgMHhGRikgewogCQlkZXZfd2Fybih3ZGV2LT5kZXYs ICJjaGlwIHJlcG9ydHMgZXJyb3JzOiAlMDJ4XG4iLAogCQkJIGNmZ19yZWcgJiAweEZGKTsKLQkJ Y29uZmlnX3JlZ193cml0ZV9iaXRzKHdkZXYsIDB4RkYsIDB4MDApOworCQl3ZnhfY29uZmlnX3Jl Z193cml0ZV9iaXRzKHdkZXYsIDB4RkYsIDB4MDApOwogCX0KIH0KIApAQCAtMjcwLDcgKzI3MCw3 IEBAIHZvaWQgd2Z4X2JoX3JlcXVlc3Rfcngoc3RydWN0IHdmeF9kZXYgKndkZXYpCiB7CiAJdTMy IGN1ciwgcHJldjsKIAotCWNvbnRyb2xfcmVnX3JlYWQod2RldiwgJmN1cik7CisJd2Z4X2NvbnRy b2xfcmVnX3JlYWQod2RldiwgJmN1cik7CiAJcHJldiA9IGF0b21pY194Y2hnKCZ3ZGV2LT5oaWYu Y3RybF9yZWcsIGN1cik7CiAJY29tcGxldGUoJndkZXYtPmhpZi5jdHJsX3JlYWR5KTsKIAlxdWV1 ZV93b3JrKHN5c3RlbV9oaWdocHJpX3dxLCAmd2Rldi0+aGlmLmJoKTsKQEAgLTMwNCw3ICszMDQs NyBAQCB2b2lkIHdmeF9iaF9wb2xsX2lycShzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAlXQVJOKCF3 ZGV2LT5wb2xsX2lycSwgInVuZXhwZWN0ZWQgSVJRIHBvbGxpbmcgY2FuIG1hc2sgSVJRIik7CiAJ c3RhcnQgPSBrdGltZV9nZXQoKTsKIAlmb3IgKDs7KSB7Ci0JCWNvbnRyb2xfcmVnX3JlYWQod2Rl diwgJnJlZyk7CisJCXdmeF9jb250cm9sX3JlZ19yZWFkKHdkZXYsICZyZWcpOwogCQlub3cgPSBr dGltZV9nZXQoKTsKIAkJaWYgKHJlZyAmIDB4RkZGKQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L2Z3aW8uYyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZndpby5jCmlu ZGV4IDk4YTkzOTFiMmJlZS4uYzlhNTRjNTE5ZThhIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdp bmcvd2Z4L2Z3aW8uYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2Z3aW8uYwpAQCAtNzksOCAr NzksOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGZ3aW9fZXJyb3JzW10gPSB7CiAgKiBO T1RFOiBpdCBtYXkgYWxzbyBiZSBwb3NzaWJsZSB0byB1c2UgJ3BhZ2VzJyBmcm9tIHN0cnVjdCBm aXJtd2FyZSBhbmQgYXZvaWQKICAqIGJvdW5jZSBidWZmZXIKICAqLwotc3RhdGljIGludCBzcmFt X3dyaXRlX2RtYV9zYWZlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgY29uc3QgdTgg KmJ1ZiwKLQkJCSAgICAgICBzaXplX3QgbGVuKQorc3RhdGljIGludCB3Znhfc3JhbV93cml0ZV9k bWFfc2FmZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsCisJCQkJICAgY29uc3QgdTgg KmJ1Ziwgc2l6ZV90IGxlbikKIHsKIAlpbnQgcmV0OwogCWNvbnN0IHU4ICp0bXA7CkBAIC05Miw3 ICs5Miw3IEBAIHN0YXRpYyBpbnQgc3JhbV93cml0ZV9kbWFfc2FmZShzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgdTMyIGFkZHIsIGNvbnN0IHU4ICpidWYsCiAJfSBlbHNlIHsKIAkJdG1wID0gYnVmOwog CX0KLQlyZXQgPSBzcmFtX2J1Zl93cml0ZSh3ZGV2LCBhZGRyLCB0bXAsIGxlbik7CisJcmV0ID0g d2Z4X3NyYW1fYnVmX3dyaXRlKHdkZXYsIGFkZHIsIHRtcCwgbGVuKTsKIAlpZiAodG1wICE9IGJ1 ZikKIAkJa2ZyZWUodG1wKTsKIAlyZXR1cm4gcmV0OwpAQCAtMTU2LDcgKzE1Niw3IEBAIHN0YXRp YyBpbnQgd2FpdF9uY3Bfc3RhdHVzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgc3RhdHVzKQog CiAJc3RhcnQgPSBrdGltZV9nZXQoKTsKIAlmb3IgKDs7KSB7Ci0JCXJldCA9IHNyYW1fcmVnX3Jl YWQod2RldiwgV0ZYX0RDQV9OQ1BfU1RBVFVTLCAmcmVnKTsKKwkJcmV0ID0gd2Z4X3NyYW1fcmVn X3JlYWQod2RldiwgV0ZYX0RDQV9OQ1BfU1RBVFVTLCAmcmVnKTsKIAkJaWYgKHJldCA8IDApCiAJ CQlyZXR1cm4gLUVJTzsKIAkJbm93ID0ga3RpbWVfZ2V0KCk7CkBAIC0xOTIsNyArMTkyLDcgQEAg c3RhdGljIGludCB1cGxvYWRfZmlybXdhcmUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHU4 ICpkYXRhLCBzaXplX3QgbGVuKQogCQkJCWJyZWFrOwogCQkJaWYgKGt0aW1lX2FmdGVyKG5vdywg a3RpbWVfYWRkX21zKHN0YXJ0LCBEQ0FfVElNRU9VVCkpKQogCQkJCXJldHVybiAtRVRJTUVET1VU OwotCQkJcmV0ID0gc3JhbV9yZWdfcmVhZCh3ZGV2LCBXRlhfRENBX0dFVCwgJmJ5dGVzX2RvbmUp OworCQkJcmV0ID0gd2Z4X3NyYW1fcmVnX3JlYWQod2RldiwgV0ZYX0RDQV9HRVQsICZieXRlc19k b25lKTsKIAkJCWlmIChyZXQgPCAwKQogCQkJCXJldHVybiByZXQ7CiAJCX0KQEAgLTIwMCw5ICsy MDAsOSBAQCBzdGF0aWMgaW50IHVwbG9hZF9maXJtd2FyZShzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwg Y29uc3QgdTggKmRhdGEsIHNpemVfdCBsZW4pCiAJCQlkZXZfZGJnKHdkZXYtPmRldiwgImFuc3dl ciBhZnRlciAlbGxkdXNcbiIsCiAJCQkJa3RpbWVfdXNfZGVsdGEobm93LCBzdGFydCkpOwogCi0J CXJldCA9IHNyYW1fd3JpdGVfZG1hX3NhZmUod2RldiwgV0ZYX0ROTERfRklGTyArCi0JCQkJCSAg KG9mZnMgJSBETkxEX0ZJRk9fU0laRSksCi0JCQkJCSAgZGF0YSArIG9mZnMsIEROTERfQkxPQ0tf U0laRSk7CisJCXJldCA9IHdmeF9zcmFtX3dyaXRlX2RtYV9zYWZlKHdkZXYsCisJCQkJCSAgICAg IFdGWF9ETkxEX0ZJRk8gKyAob2ZmcyAlIEROTERfRklGT19TSVpFKSwKKwkJCQkJICAgICAgZGF0 YSArIG9mZnMsIEROTERfQkxPQ0tfU0laRSk7CiAJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJuIHJl dDsKIApAQCAtMjEwLDcgKzIxMCw3IEBAIHN0YXRpYyBpbnQgdXBsb2FkX2Zpcm13YXJlKHN0cnVj dCB3ZnhfZGV2ICp3ZGV2LCBjb25zdCB1OCAqZGF0YSwgc2l6ZV90IGxlbikKIAkJICogZHVyaW5n IGZpcnN0IGxvb3AKIAkJICovCiAJCW9mZnMgKz0gRE5MRF9CTE9DS19TSVpFOwotCQlyZXQgPSBz cmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRENBX1BVVCwgb2Zmcyk7CisJCXJldCA9IHdmeF9zcmFt X3JlZ193cml0ZSh3ZGV2LCBXRlhfRENBX1BVVCwgb2Zmcyk7CiAJCWlmIChyZXQgPCAwKQogCQkJ cmV0dXJuIHJldDsKIAl9CkBAIC0yMjEsMTAgKzIyMSwxMCBAQCBzdGF0aWMgdm9pZCBwcmludF9i b290X3N0YXR1cyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIHsKIAl1MzIgcmVnOwogCi0Jc3JhbV9y ZWdfcmVhZCh3ZGV2LCBXRlhfU1RBVFVTX0lORk8sICZyZWcpOworCXdmeF9zcmFtX3JlZ19yZWFk KHdkZXYsIFdGWF9TVEFUVVNfSU5GTywgJnJlZyk7CiAJaWYgKHJlZyA9PSAweDEyMzQ1Njc4KQog CQlyZXR1cm47Ci0Jc3JhbV9yZWdfcmVhZCh3ZGV2LCBXRlhfRVJSX0lORk8sICZyZWcpOworCXdm eF9zcmFtX3JlZ19yZWFkKHdkZXYsIFdGWF9FUlJfSU5GTywgJnJlZyk7CiAJaWYgKHJlZyA8IEFS UkFZX1NJWkUoZndpb19lcnJvcnMpICYmIGZ3aW9fZXJyb3JzW3JlZ10pCiAJCWRldl9pbmZvKHdk ZXYtPmRldiwgInNlY3VyZSBib290OiAlc1xuIiwgZndpb19lcnJvcnNbcmVnXSk7CiAJZWxzZQpA QCAtMjQ1LDM2ICsyNDUsMzYgQEAgc3RhdGljIGludCBsb2FkX2Zpcm13YXJlX3NlY3VyZShzdHJ1 Y3Qgd2Z4X2RldiAqd2RldikKIAlpZiAoIWJ1ZikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlzcmFt X3JlZ193cml0ZSh3ZGV2LCBXRlhfRENBX0hPU1RfU1RBVFVTLCBIT1NUX1JFQURZKTsKKwl3Znhf c3JhbV9yZWdfd3JpdGUod2RldiwgV0ZYX0RDQV9IT1NUX1NUQVRVUywgSE9TVF9SRUFEWSk7CiAJ cmV0ID0gd2FpdF9uY3Bfc3RhdHVzKHdkZXYsIE5DUF9JTkZPX1JFQURZKTsKIAlpZiAocmV0KQog CQlnb3RvIGVycm9yOwogCi0Jc3JhbV9idWZfcmVhZCh3ZGV2LCBXRlhfQk9PVExPQURFUl9MQUJF TCwgYnVmLCBCT09UTE9BREVSX0xBQkVMX1NJWkUpOworCXdmeF9zcmFtX2J1Zl9yZWFkKHdkZXYs IFdGWF9CT09UTE9BREVSX0xBQkVMLCBidWYsIEJPT1RMT0FERVJfTEFCRUxfU0laRSk7CiAJYnVm W0JPT1RMT0FERVJfTEFCRUxfU0laRV0gPSAwOwogCWRldl9kYmcod2Rldi0+ZGV2LCAiYm9vdGxv YWRlcjogXCIlc1wiXG4iLCBidWYpOwogCi0Jc3JhbV9idWZfcmVhZCh3ZGV2LCBXRlhfUFRFX0lO Rk8sIGJ1ZiwgUFRFX0lORk9fU0laRSk7CisJd2Z4X3NyYW1fYnVmX3JlYWQod2RldiwgV0ZYX1BU RV9JTkZPLCBidWYsIFBURV9JTkZPX1NJWkUpOwogCXJldCA9IGdldF9maXJtd2FyZSh3ZGV2LCBi dWZbUFRFX0lORk9fS0VZU0VUX0lEWF0sICZmdywgJmZ3X29mZnNldCk7CiAJaWYgKHJldCkKIAkJ Z290byBlcnJvcjsKIAloZWFkZXJfc2l6ZSA9IGZ3X29mZnNldCArIEZXX1NJR05BVFVSRV9TSVpF ICsgRldfSEFTSF9TSVpFOwogCi0Jc3JhbV9yZWdfd3JpdGUod2RldiwgV0ZYX0RDQV9IT1NUX1NU QVRVUywgSE9TVF9JTkZPX1JFQUQpOworCXdmeF9zcmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRENB X0hPU1RfU1RBVFVTLCBIT1NUX0lORk9fUkVBRCk7CiAJcmV0ID0gd2FpdF9uY3Bfc3RhdHVzKHdk ZXYsIE5DUF9SRUFEWSk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJvcjsKIAotCXNyYW1fcmVnX3dy aXRlKHdkZXYsIFdGWF9ETkxEX0ZJRk8sIDB4RkZGRkZGRkYpOyAvKiBGaWZvIGluaXQgKi8KLQlz cmFtX3dyaXRlX2RtYV9zYWZlKHdkZXYsIFdGWF9EQ0FfRldfVkVSU0lPTiwgIlx4MDFceDAwXHgw MFx4MDAiLAotCQkJICAgIEZXX1ZFUlNJT05fU0laRSk7Ci0Jc3JhbV93cml0ZV9kbWFfc2FmZSh3 ZGV2LCBXRlhfRENBX0ZXX1NJR05BVFVSRSwgZnctPmRhdGEgKyBmd19vZmZzZXQsCi0JCQkgICAg RldfU0lHTkFUVVJFX1NJWkUpOwotCXNyYW1fd3JpdGVfZG1hX3NhZmUod2RldiwgV0ZYX0RDQV9G V19IQVNILAotCQkJICAgIGZ3LT5kYXRhICsgZndfb2Zmc2V0ICsgRldfU0lHTkFUVVJFX1NJWkUs Ci0JCQkgICAgRldfSEFTSF9TSVpFKTsKLQlzcmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRENBX0lN QUdFX1NJWkUsIGZ3LT5zaXplIC0gaGVhZGVyX3NpemUpOwotCXNyYW1fcmVnX3dyaXRlKHdkZXYs IFdGWF9EQ0FfSE9TVF9TVEFUVVMsIEhPU1RfVVBMT0FEX1BFTkRJTkcpOworCXdmeF9zcmFtX3Jl Z193cml0ZSh3ZGV2LCBXRlhfRE5MRF9GSUZPLCAweEZGRkZGRkZGKTsgLyogRmlmbyBpbml0ICov CisJd2Z4X3NyYW1fd3JpdGVfZG1hX3NhZmUod2RldiwgV0ZYX0RDQV9GV19WRVJTSU9OLCAiXHgw MVx4MDBceDAwXHgwMCIsCisJCQkJRldfVkVSU0lPTl9TSVpFKTsKKwl3Znhfc3JhbV93cml0ZV9k bWFfc2FmZSh3ZGV2LCBXRlhfRENBX0ZXX1NJR05BVFVSRSwgZnctPmRhdGEgKyBmd19vZmZzZXQs CisJCQkJRldfU0lHTkFUVVJFX1NJWkUpOworCXdmeF9zcmFtX3dyaXRlX2RtYV9zYWZlKHdkZXYs IFdGWF9EQ0FfRldfSEFTSCwKKwkJCQlmdy0+ZGF0YSArIGZ3X29mZnNldCArIEZXX1NJR05BVFVS RV9TSVpFLAorCQkJCUZXX0hBU0hfU0laRSk7CisJd2Z4X3NyYW1fcmVnX3dyaXRlKHdkZXYsIFdG WF9EQ0FfSU1BR0VfU0laRSwgZnctPnNpemUgLSBoZWFkZXJfc2l6ZSk7CisJd2Z4X3NyYW1fcmVn X3dyaXRlKHdkZXYsIFdGWF9EQ0FfSE9TVF9TVEFUVVMsIEhPU1RfVVBMT0FEX1BFTkRJTkcpOwog CXJldCA9IHdhaXRfbmNwX3N0YXR1cyh3ZGV2LCBOQ1BfRE9XTkxPQURfUEVORElORyk7CiAJaWYg KHJldCkKIAkJZ290byBlcnJvcjsKQEAgLTI4NywxNCArMjg3LDE0IEBAIHN0YXRpYyBpbnQgbG9h ZF9maXJtd2FyZV9zZWN1cmUoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJZGV2X2RiZyh3ZGV2LT5k ZXYsICJmaXJtd2FyZSBsb2FkIGFmdGVyICVsbGR1c1xuIiwKIAkJa3RpbWVfdXNfZGVsdGEoa3Rp bWVfZ2V0KCksIHN0YXJ0KSk7CiAKLQlzcmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRENBX0hPU1Rf U1RBVFVTLCBIT1NUX1VQTE9BRF9DT01QTEVURSk7CisJd2Z4X3NyYW1fcmVnX3dyaXRlKHdkZXYs IFdGWF9EQ0FfSE9TVF9TVEFUVVMsIEhPU1RfVVBMT0FEX0NPTVBMRVRFKTsKIAlyZXQgPSB3YWl0 X25jcF9zdGF0dXMod2RldiwgTkNQX0FVVEhfT0spOwogCS8qIExlZ2FjeSBST00gc3VwcG9ydCAq LwogCWlmIChyZXQgPCAwKQogCQlyZXQgPSB3YWl0X25jcF9zdGF0dXMod2RldiwgTkNQX1BVQl9L RVlfUkRZKTsKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJvcjsKLQlzcmFtX3JlZ193cml0ZSh3 ZGV2LCBXRlhfRENBX0hPU1RfU1RBVFVTLCBIT1NUX09LX1RPX0pVTVApOworCXdmeF9zcmFtX3Jl Z193cml0ZSh3ZGV2LCBXRlhfRENBX0hPU1RfU1RBVFVTLCBIT1NUX09LX1RPX0pVTVApOwogCiBl cnJvcjoKIAlrZnJlZShidWYpOwpAQCAtMzIwLDggKzMyMCw4IEBAIHN0YXRpYyBpbnQgaW5pdF9n cHIoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJfTsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9T SVpFKGdwcl9pbml0KTsgaSsrKSB7Ci0JCXJldCA9IGlncHJfcmVnX3dyaXRlKHdkZXYsIGdwcl9p bml0W2ldLmluZGV4LAotCQkJCSAgICAgZ3ByX2luaXRbaV0udmFsdWUpOworCQlyZXQgPSB3Znhf aWdwcl9yZWdfd3JpdGUod2RldiwgZ3ByX2luaXRbaV0uaW5kZXgsCisJCQkJCSBncHJfaW5pdFtp XS52YWx1ZSk7CiAJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJuIHJldDsKIAkJZGV2X2RiZyh3ZGV2 LT5kZXYsICIgIGluZGV4ICUwMng6ICUwOHhcbiIsCkBAIC0zNDEsMTMgKzM0MSwxMyBAQCBpbnQg d2Z4X2luaXRfZGV2aWNlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCXJlZyA9IENGR19ESVJFQ1Rf QUNDRVNTX01PREUgfCBDRkdfQ1BVX1JFU0VUIHwgQ0ZHX0JZVEVfT1JERVJfQUJDRDsKIAlpZiAo d2Rldi0+cGRhdGEudXNlX3Jpc2luZ19jbGspCiAJCXJlZyB8PSBDRkdfQ0xLX1JJU0VfRURHRTsK LQlyZXQgPSBjb25maWdfcmVnX3dyaXRlKHdkZXYsIHJlZyk7CisJcmV0ID0gd2Z4X2NvbmZpZ19y ZWdfd3JpdGUod2RldiwgcmVnKTsKIAlpZiAocmV0IDwgMCkgewogCQlkZXZfZXJyKHdkZXYtPmRl diwgImJ1cyByZXR1cm5lZCBhbiBlcnJvciBkdXJpbmcgZmlyc3Qgd3JpdGUgYWNjZXNzLiBIb3N0 IGNvbmZpZ3VyYXRpb24gZXJyb3I/XG4iKTsKIAkJcmV0dXJuIC1FSU87CiAJfQogCi0JcmV0ID0g Y29uZmlnX3JlZ19yZWFkKHdkZXYsICZyZWcpOworCXJldCA9IHdmeF9jb25maWdfcmVnX3JlYWQo d2RldiwgJnJlZyk7CiAJaWYgKHJldCA8IDApIHsKIAkJZGV2X2Vycih3ZGV2LT5kZXYsICJidXMg cmV0dXJuZWQgYW4gZXJyb3IgZHVyaW5nIGZpcnN0IHJlYWQgYWNjZXNzLiBCdXMgY29uZmlndXJh dGlvbiBlcnJvcj9cbiIpOwogCQlyZXR1cm4gLUVJTzsKQEAgLTM3NCwxMiArMzc0LDEyIEBAIGlu dCB3ZnhfaW5pdF9kZXZpY2Uoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJaWYgKHJldCA8IDApCiAJ CXJldHVybiByZXQ7CiAKLQlyZXQgPSBjb250cm9sX3JlZ193cml0ZSh3ZGV2LCBDVFJMX1dMQU5f V0FLRVVQKTsKKwlyZXQgPSB3ZnhfY29udHJvbF9yZWdfd3JpdGUod2RldiwgQ1RSTF9XTEFOX1dB S0VVUCk7CiAJaWYgKHJldCA8IDApCiAJCXJldHVybiAtRUlPOwogCXN0YXJ0ID0ga3RpbWVfZ2V0 KCk7CiAJZm9yICg7OykgewotCQlyZXQgPSBjb250cm9sX3JlZ19yZWFkKHdkZXYsICZyZWcpOwor CQlyZXQgPSB3ZnhfY29udHJvbF9yZWdfcmVhZCh3ZGV2LCAmcmVnKTsKIAkJbm93ID0ga3RpbWVf Z2V0KCk7CiAJCWlmIChyZWcgJiBDVFJMX1dMQU5fUkVBRFkpCiAJCQlicmVhazsKQEAgLTM5MSwx NSArMzkxLDE1IEBAIGludCB3ZnhfaW5pdF9kZXZpY2Uoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJ ZGV2X2RiZyh3ZGV2LT5kZXYsICJjaGlwIHdha2UgdXAgYWZ0ZXIgJWxsZHVzXG4iLAogCQlrdGlt ZV91c19kZWx0YShub3csIHN0YXJ0KSk7CiAKLQlyZXQgPSBjb25maWdfcmVnX3dyaXRlX2JpdHMo d2RldiwgQ0ZHX0NQVV9SRVNFVCwgMCk7CisJcmV0ID0gd2Z4X2NvbmZpZ19yZWdfd3JpdGVfYml0 cyh3ZGV2LCBDRkdfQ1BVX1JFU0VULCAwKTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0dXJuIHJldDsK IAlyZXQgPSBsb2FkX2Zpcm13YXJlX3NlY3VyZSh3ZGV2KTsKIAlpZiAocmV0IDwgMCkKIAkJcmV0 dXJuIHJldDsKLQlyZXR1cm4gY29uZmlnX3JlZ193cml0ZV9iaXRzKHdkZXYsCi0JCQkJICAgICBD RkdfRElSRUNUX0FDQ0VTU19NT0RFIHwKLQkJCQkgICAgIENGR19JUlFfRU5BQkxFX0RBVEEgfAot CQkJCSAgICAgQ0ZHX0lSUV9FTkFCTEVfV1JEWSwKLQkJCQkgICAgIENGR19JUlFfRU5BQkxFX0RB VEEpOworCXJldHVybiB3ZnhfY29uZmlnX3JlZ193cml0ZV9iaXRzKHdkZXYsCisJCQkJCSBDRkdf RElSRUNUX0FDQ0VTU19NT0RFIHwKKwkJCQkJIENGR19JUlFfRU5BQkxFX0RBVEEgfAorCQkJCQkg Q0ZHX0lSUV9FTkFCTEVfV1JEWSwKKwkJCQkJIENGR19JUlFfRU5BQkxFX0RBVEEpOwogfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYyBiL2RyaXZlcnMvc3RhZ2luZy93 ZngvaGlmX3R4LmMKaW5kZXggN2M5ZDNkODZjMjJlLi45ODk5ZTdiNjIyMDMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9o aWZfdHguYwpAQCAtMTM1LDcgKzEzNSw3IEBAIGludCB3ZnhfaGlmX3NodXRkb3duKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2KQogCWlmICh3ZGV2LT5wZGF0YS5ncGlvX3dha2V1cCkKIAkJZ3Bpb2Rfc2V0 X3ZhbHVlKHdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwLCAwKTsKIAllbHNlCi0JCWNvbnRyb2xfcmVn X3dyaXRlKHdkZXYsIDApOworCQl3ZnhfY29udHJvbF9yZWdfd3JpdGUod2RldiwgMCk7CiAJa2Zy ZWUoaGlmKTsKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dm eC9od2lvLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2h3aW8uYwppbmRleCA5NzdiOTMyNWY0OTYu LmM1M2IzNmQzNjY4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmMKKysr IGIvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmMKQEAgLTE3LDcgKzE3LDcgQEAKIAogI2RlZmlu ZSBXRlhfSElGX0JVRkZFUl9TSVpFIDB4MjAwMAogCi1zdGF0aWMgaW50IHJlYWQzMihzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyICp2YWwpCitzdGF0aWMgaW50IHdmeF9yZWFkMzIo c3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsIHUzMiAqdmFsKQogewogCWludCByZXQ7CiAJ X19sZTMyICp0bXAgPSBrbWFsbG9jKHNpemVvZih1MzIpLCBHRlBfS0VSTkVMKTsKQEAgLTM2LDcg KzM2LDcgQEAgc3RhdGljIGludCByZWFkMzIoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcs IHUzMiAqdmFsKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgd3JpdGUzMihzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIHZhbCkKK3N0YXRpYyBpbnQgd2Z4X3dyaXRlMzIo c3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsIHUzMiB2YWwpCiB7CiAJaW50IHJldDsKIAlf X2xlMzIgKnRtcCA9IGttYWxsb2Moc2l6ZW9mKHUzMiksIEdGUF9LRVJORUwpOwpAQCAtNTMsMjkg KzUzLDMwIEBAIHN0YXRpYyBpbnQgd3JpdGUzMihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJl ZywgdTMyIHZhbCkKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHJlYWQzMl9sb2NrZWQo c3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsIHUzMiAqdmFsKQorc3RhdGljIGludCB3Znhf cmVhZDMyX2xvY2tlZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyICp2YWwpCiB7 CiAJaW50IHJldDsKIAogCXdkZXYtPmh3YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsK LQlyZXQgPSByZWFkMzIod2RldiwgcmVnLCB2YWwpOworCXJldCA9IHdmeF9yZWFkMzIod2Rldiwg cmVnLCB2YWwpOwogCV90cmFjZV9pb19yZWFkMzIocmVnLCAqdmFsKTsKIAl3ZGV2LT5od2J1c19v cHMtPnVubG9jayh3ZGV2LT5od2J1c19wcml2KTsKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMg aW50IHdyaXRlMzJfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgdmFs KQorc3RhdGljIGludCB3Znhfd3JpdGUzMl9sb2NrZWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGlu dCByZWcsIHUzMiB2YWwpCiB7CiAJaW50IHJldDsKIAogCXdkZXYtPmh3YnVzX29wcy0+bG9jayh3 ZGV2LT5od2J1c19wcml2KTsKLQlyZXQgPSB3cml0ZTMyKHdkZXYsIHJlZywgdmFsKTsKKwlyZXQg PSB3Znhfd3JpdGUzMih3ZGV2LCByZWcsIHZhbCk7CiAJX3RyYWNlX2lvX3dyaXRlMzIocmVnLCB2 YWwpOwogCXdkZXYtPmh3YnVzX29wcy0+dW5sb2NrKHdkZXYtPmh3YnVzX3ByaXYpOwogCXJldHVy biByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgd3JpdGUzMl9iaXRzX2xvY2tlZChzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwgaW50IHJlZywgdTMyIG1hc2ssIHUzMiB2YWwpCitzdGF0aWMgaW50IHdmeF93cml0 ZTMyX2JpdHNfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAorCQkJCSAgIGludCByZWcsIHUz MiBtYXNrLCB1MzIgdmFsKQogewogCWludCByZXQ7CiAJdTMyIHZhbF9yLCB2YWxfdzsKQEAgLTgz LDEzICs4NCwxMyBAQCBzdGF0aWMgaW50IHdyaXRlMzJfYml0c19sb2NrZWQoc3RydWN0IHdmeF9k ZXYgKndkZXYsIGludCByZWcsIHUzMiBtYXNrLCB1MzIgdmFsKQogCVdBUk5fT04ofm1hc2sgJiB2 YWwpOwogCXZhbCAmPSBtYXNrOwogCXdkZXYtPmh3YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1c19w cml2KTsKLQlyZXQgPSByZWFkMzIod2RldiwgcmVnLCAmdmFsX3IpOworCXJldCA9IHdmeF9yZWFk MzIod2RldiwgcmVnLCAmdmFsX3IpOwogCV90cmFjZV9pb19yZWFkMzIocmVnLCB2YWxfcik7CiAJ aWYgKHJldCA8IDApCiAJCWdvdG8gZXJyOwogCXZhbF93ID0gKHZhbF9yICYgfm1hc2spIHwgdmFs OwogCWlmICh2YWxfdyAhPSB2YWxfcikgewotCQlyZXQgPSB3cml0ZTMyKHdkZXYsIHJlZywgdmFs X3cpOworCQlyZXQgPSB3Znhfd3JpdGUzMih3ZGV2LCByZWcsIHZhbF93KTsKIAkJX3RyYWNlX2lv X3dyaXRlMzIocmVnLCB2YWxfdyk7CiAJfQogZXJyOgpAQCAtOTcsOCArOTgsOCBAQCBzdGF0aWMg aW50IHdyaXRlMzJfYml0c19sb2NrZWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsIHUz MiBtYXNrLCB1MzIgdmFsKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaW5kaXJlY3Rf cmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIsCi0JCQkgdm9pZCAq YnVmLCBzaXplX3QgbGVuKQorc3RhdGljIGludCB3ZnhfaW5kaXJlY3RfcmVhZChzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIsCisJCQkgICAgIHZvaWQgKmJ1Ziwgc2l6ZV90 IGxlbikKIHsKIAlpbnQgcmV0OwogCWludCBpOwpAQCAtMTE1LDIwICsxMTYsMjAgQEAgc3RhdGlj IGludCBpbmRpcmVjdF9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgYWRk ciwKIAllbHNlCiAJCXJldHVybiAtRU5PREVWOwogCi0JcmV0ID0gd3JpdGUzMih3ZGV2LCBXRlhf UkVHX0JBU0VfQUREUiwgYWRkcik7CisJcmV0ID0gd2Z4X3dyaXRlMzIod2RldiwgV0ZYX1JFR19C QVNFX0FERFIsIGFkZHIpOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIGVycjsKIAotCXJldCA9IHJl YWQzMih3ZGV2LCBXRlhfUkVHX0NPTkZJRywgJmNmZyk7CisJcmV0ID0gd2Z4X3JlYWQzMih3ZGV2 LCBXRlhfUkVHX0NPTkZJRywgJmNmZyk7CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZXJyOwogCi0J cmV0ID0gd3JpdGUzMih3ZGV2LCBXRlhfUkVHX0NPTkZJRywgY2ZnIHwgcHJlZmV0Y2gpOworCXJl dCA9IHdmeF93cml0ZTMyKHdkZXYsIFdGWF9SRUdfQ09ORklHLCBjZmcgfCBwcmVmZXRjaCk7CiAJ aWYgKHJldCA8IDApCiAJCWdvdG8gZXJyOwogCiAJZm9yIChpID0gMDsgaSA8IDIwOyBpKyspIHsK LQkJcmV0ID0gcmVhZDMyKHdkZXYsIFdGWF9SRUdfQ09ORklHLCAmY2ZnKTsKKwkJcmV0ID0gd2Z4 X3JlYWQzMih3ZGV2LCBXRlhfUkVHX0NPTkZJRywgJmNmZyk7CiAJCWlmIChyZXQgPCAwKQogCQkJ Z290byBlcnI7CiAJCWlmICghKGNmZyAmIHByZWZldGNoKSkKQEAgLTE0OCw0NiArMTQ5LDQ2IEBA IHN0YXRpYyBpbnQgaW5kaXJlY3RfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywg dTMyIGFkZHIsCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCBpbmRpcmVjdF93cml0ZShz dHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIsCi0JCQkgIGNvbnN0IHZvaWQg KmJ1Ziwgc2l6ZV90IGxlbikKK3N0YXRpYyBpbnQgd2Z4X2luZGlyZWN0X3dyaXRlKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgYWRkciwKKwkJCSAgICAgIGNvbnN0IHZvaWQgKmJ1 Ziwgc2l6ZV90IGxlbikKIHsKIAlpbnQgcmV0OwogCiAJV0FSTl9PTihsZW4gPj0gV0ZYX0hJRl9C VUZGRVJfU0laRSk7CiAJV0FSTl9PTihyZWcgIT0gV0ZYX1JFR19BSEJfRFBPUlQgJiYgcmVnICE9 IFdGWF9SRUdfU1JBTV9EUE9SVCk7Ci0JcmV0ID0gd3JpdGUzMih3ZGV2LCBXRlhfUkVHX0JBU0Vf QUREUiwgYWRkcik7CisJcmV0ID0gd2Z4X3dyaXRlMzIod2RldiwgV0ZYX1JFR19CQVNFX0FERFIs IGFkZHIpOwogCWlmIChyZXQgPCAwKQogCQlyZXR1cm4gcmV0OwogCiAJcmV0dXJuIHdkZXYtPmh3 YnVzX29wcy0+Y29weV90b19pbyh3ZGV2LT5od2J1c19wcml2LCByZWcsIGJ1ZiwgbGVuKTsKIH0K IAotc3RhdGljIGludCBpbmRpcmVjdF9yZWFkX2xvY2tlZChzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwg aW50IHJlZywgdTMyIGFkZHIsCi0JCQkJdm9pZCAqYnVmLCBzaXplX3QgbGVuKQorc3RhdGljIGlu dCB3ZnhfaW5kaXJlY3RfcmVhZF9sb2NrZWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcs IHUzMiBhZGRyLAorCQkJCSAgICB2b2lkICpidWYsIHNpemVfdCBsZW4pCiB7CiAJaW50IHJldDsK IAogCXdkZXYtPmh3YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKLQlyZXQgPSBpbmRp cmVjdF9yZWFkKHdkZXYsIHJlZywgYWRkciwgYnVmLCBsZW4pOworCXJldCA9IHdmeF9pbmRpcmVj dF9yZWFkKHdkZXYsIHJlZywgYWRkciwgYnVmLCBsZW4pOwogCV90cmFjZV9pb19pbmRfcmVhZChy ZWcsIGFkZHIsIGJ1ZiwgbGVuKTsKIAl3ZGV2LT5od2J1c19vcHMtPnVubG9jayh3ZGV2LT5od2J1 c19wcml2KTsKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGluZGlyZWN0X3dyaXRlX2xv Y2tlZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIsCi0JCQkJIGNvbnN0 IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKK3N0YXRpYyBpbnQgd2Z4X2luZGlyZWN0X3dyaXRlX2xv Y2tlZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHJlZywgdTMyIGFkZHIsCisJCQkJICAgICBj b25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4pCiB7CiAJaW50IHJldDsKIAogCXdkZXYtPmh3YnVz X29wcy0+bG9jayh3ZGV2LT5od2J1c19wcml2KTsKLQlyZXQgPSBpbmRpcmVjdF93cml0ZSh3ZGV2 LCByZWcsIGFkZHIsIGJ1ZiwgbGVuKTsKKwlyZXQgPSB3ZnhfaW5kaXJlY3Rfd3JpdGUod2Rldiwg cmVnLCBhZGRyLCBidWYsIGxlbik7CiAJX3RyYWNlX2lvX2luZF93cml0ZShyZWcsIGFkZHIsIGJ1 ZiwgbGVuKTsKIAl3ZGV2LT5od2J1c19vcHMtPnVubG9jayh3ZGV2LT5od2J1c19wcml2KTsKIAly ZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IGluZGlyZWN0X3JlYWQzMl9sb2NrZWQoc3RydWN0 IHdmeF9kZXYgKndkZXYsIGludCByZWcsCi0JCQkJICB1MzIgYWRkciwgdTMyICp2YWwpCitzdGF0 aWMgaW50IHdmeF9pbmRpcmVjdF9yZWFkMzJfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBp bnQgcmVnLAorCQkJCSAgICAgIHUzMiBhZGRyLCB1MzIgKnZhbCkKIHsKIAlpbnQgcmV0OwogCV9f bGUzMiAqdG1wID0ga21hbGxvYyhzaXplb2YodTMyKSwgR0ZQX0tFUk5FTCk7CkBAIC0xOTUsNyAr MTk2LDcgQEAgc3RhdGljIGludCBpbmRpcmVjdF9yZWFkMzJfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2 ICp3ZGV2LCBpbnQgcmVnLAogCWlmICghdG1wKQogCQlyZXR1cm4gLUVOT01FTTsKIAl3ZGV2LT5o d2J1c19vcHMtPmxvY2sod2Rldi0+aHdidXNfcHJpdik7Ci0JcmV0ID0gaW5kaXJlY3RfcmVhZCh3 ZGV2LCByZWcsIGFkZHIsIHRtcCwgc2l6ZW9mKHUzMikpOworCXJldCA9IHdmeF9pbmRpcmVjdF9y ZWFkKHdkZXYsIHJlZywgYWRkciwgdG1wLCBzaXplb2YodTMyKSk7CiAJKnZhbCA9IGxlMzJfdG9f Y3B1KCp0bXApOwogCV90cmFjZV9pb19pbmRfcmVhZDMyKHJlZywgYWRkciwgKnZhbCk7CiAJd2Rl di0+aHdidXNfb3BzLT51bmxvY2sod2Rldi0+aHdidXNfcHJpdik7CkBAIC0yMDMsOCArMjA0LDgg QEAgc3RhdGljIGludCBpbmRpcmVjdF9yZWFkMzJfbG9ja2VkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2 LCBpbnQgcmVnLAogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaW5kaXJlY3Rfd3JpdGUz Ml9sb2NrZWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsCi0JCQkJICAgdTMyIGFkZHIs IHUzMiB2YWwpCitzdGF0aWMgaW50IHdmeF9pbmRpcmVjdF93cml0ZTMyX2xvY2tlZChzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgaW50IHJlZywKKwkJCQkgICAgICAgdTMyIGFkZHIsIHUzMiB2YWwpCiB7 CiAJaW50IHJldDsKIAlfX2xlMzIgKnRtcCA9IGttYWxsb2Moc2l6ZW9mKHUzMiksIEdGUF9LRVJO RUwpOwpAQCAtMjEzLDcgKzIxNCw3IEBAIHN0YXRpYyBpbnQgaW5kaXJlY3Rfd3JpdGUzMl9sb2Nr ZWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsCiAJCXJldHVybiAtRU5PTUVNOwogCSp0 bXAgPSBjcHVfdG9fbGUzMih2YWwpOwogCXdkZXYtPmh3YnVzX29wcy0+bG9jayh3ZGV2LT5od2J1 c19wcml2KTsKLQlyZXQgPSBpbmRpcmVjdF93cml0ZSh3ZGV2LCByZWcsIGFkZHIsIHRtcCwgc2l6 ZW9mKHUzMikpOworCXJldCA9IHdmeF9pbmRpcmVjdF93cml0ZSh3ZGV2LCByZWcsIGFkZHIsIHRt cCwgc2l6ZW9mKHUzMikpOwogCV90cmFjZV9pb19pbmRfd3JpdGUzMihyZWcsIGFkZHIsIHZhbCk7 CiAJd2Rldi0+aHdidXNfb3BzLT51bmxvY2sod2Rldi0+aHdidXNfcHJpdik7CiAJa2ZyZWUodG1w KTsKQEAgLTI1Miw5MiArMjUzLDEwMCBAQCBpbnQgd2Z4X2RhdGFfd3JpdGUoc3RydWN0IHdmeF9k ZXYgKndkZXYsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKIAlyZXR1cm4gcmV0OwogfQog Ci1pbnQgc3JhbV9idWZfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHZvaWQg KmJ1Ziwgc2l6ZV90IGxlbikKK2ludCB3Znhfc3JhbV9idWZfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgdTMyIGFkZHIsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKIHsKLQlyZXR1cm4gaW5kaXJl Y3RfcmVhZF9sb2NrZWQod2RldiwgV0ZYX1JFR19TUkFNX0RQT1JULCBhZGRyLCBidWYsIGxlbik7 CisJcmV0dXJuIHdmeF9pbmRpcmVjdF9yZWFkX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX1NSQU1fRFBP UlQsCisJCQkJCWFkZHIsIGJ1ZiwgbGVuKTsKIH0KIAotaW50IGFoYl9idWZfcmVhZChzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbikKK2ludCB3Znhf YWhiX2J1Zl9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgdm9pZCAqYnVmLCBz aXplX3QgbGVuKQogewotCXJldHVybiBpbmRpcmVjdF9yZWFkX2xvY2tlZCh3ZGV2LCBXRlhfUkVH X0FIQl9EUE9SVCwgYWRkciwgYnVmLCBsZW4pOworCXJldHVybiB3ZnhfaW5kaXJlY3RfcmVhZF9s b2NrZWQod2RldiwgV0ZYX1JFR19BSEJfRFBPUlQsCisJCQkJCWFkZHIsIGJ1ZiwgbGVuKTsKIH0K IAotaW50IHNyYW1fYnVmX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgY29u c3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoraW50IHdmeF9zcmFtX2J1Zl93cml0ZShzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsCisJCSAgICAgICBjb25zdCB2b2lkICpidWYsIHNpemVf dCBsZW4pCiB7Ci0JcmV0dXJuIGluZGlyZWN0X3dyaXRlX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX1NS QU1fRFBPUlQsIGFkZHIsIGJ1ZiwgbGVuKTsKKwlyZXR1cm4gd2Z4X2luZGlyZWN0X3dyaXRlX2xv Y2tlZCh3ZGV2LCBXRlhfUkVHX1NSQU1fRFBPUlQsCisJCQkJCSBhZGRyLCBidWYsIGxlbik7CiB9 CiAKLWludCBhaGJfYnVmX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwgY29u c3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQoraW50IHdmeF9haGJfYnVmX3dyaXRlKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwKKwkJICAgICAgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3Qg bGVuKQogewotCXJldHVybiBpbmRpcmVjdF93cml0ZV9sb2NrZWQod2RldiwgV0ZYX1JFR19BSEJf RFBPUlQsIGFkZHIsIGJ1ZiwgbGVuKTsKKwlyZXR1cm4gd2Z4X2luZGlyZWN0X3dyaXRlX2xvY2tl ZCh3ZGV2LCBXRlhfUkVHX0FIQl9EUE9SVCwKKwkJCQkJIGFkZHIsIGJ1ZiwgbGVuKTsKIH0KIAot aW50IHNyYW1fcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIgKnZh bCkKK2ludCB3Znhfc3JhbV9yZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIs IHUzMiAqdmFsKQogewotCXJldHVybiBpbmRpcmVjdF9yZWFkMzJfbG9ja2VkKHdkZXYsIFdGWF9S RUdfU1JBTV9EUE9SVCwgYWRkciwgdmFsKTsKKwlyZXR1cm4gd2Z4X2luZGlyZWN0X3JlYWQzMl9s b2NrZWQod2RldiwgV0ZYX1JFR19TUkFNX0RQT1JULAorCQkJCQkgIGFkZHIsIHZhbCk7CiB9CiAK LWludCBhaGJfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIgKnZh bCkKK2ludCB3ZnhfYWhiX3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwg dTMyICp2YWwpCiB7Ci0JcmV0dXJuIGluZGlyZWN0X3JlYWQzMl9sb2NrZWQod2RldiwgV0ZYX1JF R19BSEJfRFBPUlQsIGFkZHIsIHZhbCk7CisJcmV0dXJuIHdmeF9pbmRpcmVjdF9yZWFkMzJfbG9j a2VkKHdkZXYsIFdGWF9SRUdfQUhCX0RQT1JULAorCQkJCQkgIGFkZHIsIHZhbCk7CiB9CiAKLWlu dCBzcmFtX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHUzMiB2YWwp CitpbnQgd2Z4X3NyYW1fcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRkciwg dTMyIHZhbCkKIHsKLQlyZXR1cm4gaW5kaXJlY3Rfd3JpdGUzMl9sb2NrZWQod2RldiwgV0ZYX1JF R19TUkFNX0RQT1JULCBhZGRyLCB2YWwpOworCXJldHVybiB3ZnhfaW5kaXJlY3Rfd3JpdGUzMl9s b2NrZWQod2RldiwgV0ZYX1JFR19TUkFNX0RQT1JULCBhZGRyLCB2YWwpOwogfQogCi1pbnQgYWhi X3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHUzMiB2YWwpCitpbnQg d2Z4X2FoYl9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIgdmFs KQogewotCXJldHVybiBpbmRpcmVjdF93cml0ZTMyX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0FIQl9E UE9SVCwgYWRkciwgdmFsKTsKKwlyZXR1cm4gd2Z4X2luZGlyZWN0X3dyaXRlMzJfbG9ja2VkKHdk ZXYsIFdGWF9SRUdfQUhCX0RQT1JULCBhZGRyLCB2YWwpOwogfQogCi1pbnQgY29uZmlnX3JlZ19y ZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCkKK2ludCB3ZnhfY29uZmlnX3JlZ19y ZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCkKIHsKLQlyZXR1cm4gcmVhZDMyX2xv Y2tlZCh3ZGV2LCBXRlhfUkVHX0NPTkZJRywgdmFsKTsKKwlyZXR1cm4gd2Z4X3JlYWQzMl9sb2Nr ZWQod2RldiwgV0ZYX1JFR19DT05GSUcsIHZhbCk7CiB9CiAKLWludCBjb25maWdfcmVnX3dyaXRl KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgdmFsKQoraW50IHdmeF9jb25maWdfcmVnX3dyaXRl KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgdmFsKQogewotCXJldHVybiB3cml0ZTMyX2xvY2tl ZCh3ZGV2LCBXRlhfUkVHX0NPTkZJRywgdmFsKTsKKwlyZXR1cm4gd2Z4X3dyaXRlMzJfbG9ja2Vk KHdkZXYsIFdGWF9SRUdfQ09ORklHLCB2YWwpOwogfQogCi1pbnQgY29uZmlnX3JlZ193cml0ZV9i aXRzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgbWFzaywgdTMyIHZhbCkKK2ludCB3ZnhfY29u ZmlnX3JlZ193cml0ZV9iaXRzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgbWFzaywgdTMyIHZh bCkKIHsKLQlyZXR1cm4gd3JpdGUzMl9iaXRzX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0NPTkZJRywg bWFzaywgdmFsKTsKKwlyZXR1cm4gd2Z4X3dyaXRlMzJfYml0c19sb2NrZWQod2RldiwgV0ZYX1JF R19DT05GSUcsIG1hc2ssIHZhbCk7CiB9CiAKLWludCBjb250cm9sX3JlZ19yZWFkKHN0cnVjdCB3 ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCkKK2ludCB3ZnhfY29udHJvbF9yZWdfcmVhZChzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgdTMyICp2YWwpCiB7Ci0JcmV0dXJuIHJlYWQzMl9sb2NrZWQod2Rldiwg V0ZYX1JFR19DT05UUk9MLCB2YWwpOworCXJldHVybiB3ZnhfcmVhZDMyX2xvY2tlZCh3ZGV2LCBX RlhfUkVHX0NPTlRST0wsIHZhbCk7CiB9CiAKLWludCBjb250cm9sX3JlZ193cml0ZShzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgdTMyIHZhbCkKK2ludCB3ZnhfY29udHJvbF9yZWdfd3JpdGUoc3RydWN0 IHdmeF9kZXYgKndkZXYsIHUzMiB2YWwpCiB7Ci0JcmV0dXJuIHdyaXRlMzJfbG9ja2VkKHdkZXYs IFdGWF9SRUdfQ09OVFJPTCwgdmFsKTsKKwlyZXR1cm4gd2Z4X3dyaXRlMzJfbG9ja2VkKHdkZXYs IFdGWF9SRUdfQ09OVFJPTCwgdmFsKTsKIH0KIAotaW50IGNvbnRyb2xfcmVnX3dyaXRlX2JpdHMo c3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBtYXNrLCB1MzIgdmFsKQoraW50IHdmeF9jb250cm9s X3JlZ193cml0ZV9iaXRzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgbWFzaywgdTMyIHZhbCkK IHsKLQlyZXR1cm4gd3JpdGUzMl9iaXRzX2xvY2tlZCh3ZGV2LCBXRlhfUkVHX0NPTlRST0wsIG1h c2ssIHZhbCk7CisJcmV0dXJuIHdmeF93cml0ZTMyX2JpdHNfbG9ja2VkKHdkZXYsIFdGWF9SRUdf Q09OVFJPTCwgbWFzaywgdmFsKTsKIH0KIAotaW50IGlncHJfcmVnX3JlYWQoc3RydWN0IHdmeF9k ZXYgKndkZXYsIGludCBpbmRleCwgdTMyICp2YWwpCitpbnQgd2Z4X2lncHJfcmVnX3JlYWQoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRleCwgdTMyICp2YWwpCiB7CiAJaW50IHJldDsKIAog CSp2YWwgPSB+MDsgLyogTmV2ZXIgcmV0dXJuIHVuZGVmaW5lZCB2YWx1ZSAqLwotCXJldCA9IHdy aXRlMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfU0VUX0dFTl9SX1csIElHUFJfUlcgfCBpbmRleCA8 PCAyNCk7CisJcmV0ID0gd2Z4X3dyaXRlMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfU0VUX0dFTl9S X1csIElHUFJfUlcgfCBpbmRleCA8PCAyNCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLQly ZXQgPSByZWFkMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfU0VUX0dFTl9SX1csIHZhbCk7CisJcmV0 ID0gd2Z4X3JlYWQzMl9sb2NrZWQod2RldiwgV0ZYX1JFR19TRVRfR0VOX1JfVywgdmFsKTsKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCSp2YWwgJj0gSUdQUl9WQUxVRTsKIAlyZXR1cm4gcmV0 OwogfQogCi1pbnQgaWdwcl9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRl eCwgdTMyIHZhbCkKK2ludCB3ZnhfaWdwcl9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYs IGludCBpbmRleCwgdTMyIHZhbCkKIHsKLQlyZXR1cm4gd3JpdGUzMl9sb2NrZWQod2RldiwgV0ZY X1JFR19TRVRfR0VOX1JfVywgaW5kZXggPDwgMjQgfCB2YWwpOworCXJldHVybiB3Znhfd3JpdGUz Ml9sb2NrZWQod2RldiwgV0ZYX1JFR19TRVRfR0VOX1JfVywgaW5kZXggPDwgMjQgfCB2YWwpOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmggYi9kcml2ZXJzL3N0YWdp bmcvd2Z4L2h3aW8uaAppbmRleCBkMzRiYWFlNDcwMTcuLjhjOGZlNzY4NzFmOCAxMDA2NDQKLS0t IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9o d2lvLmgKQEAgLTE5LDE3ICsxOSwxNyBAQCBzdHJ1Y3Qgd2Z4X2RldjsKIGludCB3ZnhfZGF0YV9y ZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB2b2lkICpidWYsIHNpemVfdCBidWZfbGVuKTsKIGlu dCB3ZnhfZGF0YV93cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3Qgdm9pZCAqYnVmLCBz aXplX3QgYnVmX2xlbik7CiAKLWludCBzcmFtX2J1Zl9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2 LCB1MzIgYWRkciwgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKLWludCBzcmFtX2J1Zl93cml0ZShz dHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxl bik7CitpbnQgd2Z4X3NyYW1fYnVmX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRy LCB2b2lkICpidWYsIHNpemVfdCBsZW4pOworaW50IHdmeF9zcmFtX2J1Zl93cml0ZShzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGxlbik7CiAK LWludCBhaGJfYnVmX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB2b2lkICpi dWYsIHNpemVfdCBsZW4pOwotaW50IGFoYl9idWZfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYs IHUzMiBhZGRyLCBjb25zdCB2b2lkICpidWYsIHNpemVfdCBsZW4pOworaW50IHdmeF9haGJfYnVm X3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB2b2lkICpidWYsIHNpemVfdCBs ZW4pOworaW50IHdmeF9haGJfYnVmX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgYWRk ciwgY29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKTsKIAotaW50IHNyYW1fcmVnX3JlYWQoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIgKnZhbCk7Ci1pbnQgc3JhbV9yZWdfd3Jp dGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIgdmFsKTsKK2ludCB3Znhfc3Jh bV9yZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIsIHUzMiAqdmFsKTsKK2lu dCB3Znhfc3JhbV9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIg dmFsKTsKIAotaW50IGFoYl9yZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFkZHIs IHUzMiAqdmFsKTsKLWludCBhaGJfcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIg YWRkciwgdTMyIHZhbCk7CitpbnQgd2Z4X2FoYl9yZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwgdTMyIGFkZHIsIHUzMiAqdmFsKTsKK2ludCB3ZnhfYWhiX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwgdTMyIGFkZHIsIHUzMiB2YWwpOwogCiAjZGVmaW5lIENGR19FUlJfU1BJX0ZS QU1FICAgICAgICAgIDB4MDAwMDAwMDEgLyogb25seSB3aXRoIFNQSSAqLwogI2RlZmluZSBDRkdf RVJSX1NESU9fQlVGX01JU01BVENIICAweDAwMDAwMDAxIC8qIG9ubHkgd2l0aCBTRElPICovCkBA IC01OSwyMSArNTksMjEgQEAgaW50IGFoYl9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYs IHUzMiBhZGRyLCB1MzIgdmFsKTsKICNkZWZpbmUgQ0ZHX0RFVklDRV9JRF9NQUpPUiAgICAgICAg MHgwNzAwMDAwMAogI2RlZmluZSBDRkdfREVWSUNFX0lEX1JFU0VSVkVEICAgICAweDc4MDAwMDAw CiAjZGVmaW5lIENGR19ERVZJQ0VfSURfVFlQRSAgICAgICAgIDB4ODAwMDAwMDAKLWludCBjb25m aWdfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiAqdmFsKTsKLWludCBjb25maWdf cmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgdmFsKTsKLWludCBjb25maWdfcmVn X3dyaXRlX2JpdHMoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBtYXNrLCB1MzIgdmFsKTsKK2lu dCB3ZnhfY29uZmlnX3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCk7Citp bnQgd2Z4X2NvbmZpZ19yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiB2YWwpOwor aW50IHdmeF9jb25maWdfcmVnX3dyaXRlX2JpdHMoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBt YXNrLCB1MzIgdmFsKTsKIAogI2RlZmluZSBDVFJMX05FWFRfTEVOX01BU0sgICAweDAwMDAwRkZG CiAjZGVmaW5lIENUUkxfV0xBTl9XQUtFVVAgICAgIDB4MDAwMDEwMDAKICNkZWZpbmUgQ1RSTF9X TEFOX1JFQURZICAgICAgMHgwMDAwMjAwMAotaW50IGNvbnRyb2xfcmVnX3JlYWQoc3RydWN0IHdm eF9kZXYgKndkZXYsIHUzMiAqdmFsKTsKLWludCBjb250cm9sX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4 X2RldiAqd2RldiwgdTMyIHZhbCk7Ci1pbnQgY29udHJvbF9yZWdfd3JpdGVfYml0cyhzdHJ1Y3Qg d2Z4X2RldiAqd2RldiwgdTMyIG1hc2ssIHUzMiB2YWwpOworaW50IHdmeF9jb250cm9sX3JlZ19y ZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgKnZhbCk7CitpbnQgd2Z4X2NvbnRyb2xfcmVn X3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgdmFsKTsKK2ludCB3ZnhfY29udHJvbF9y ZWdfd3JpdGVfYml0cyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIG1hc2ssIHUzMiB2YWwpOwog CiAjZGVmaW5lIElHUFJfUlcgICAgICAgICAgMHg4MDAwMDAwMAogI2RlZmluZSBJR1BSX0lOREVY ICAgICAgIDB4N0YwMDAwMDAKICNkZWZpbmUgSUdQUl9WQUxVRSAgICAgICAweDAwRkZGRkZGCi1p bnQgaWdwcl9yZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGluZGV4LCB1MzIgKnZh bCk7Ci1pbnQgaWdwcl9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRleCwg dTMyIHZhbCk7CitpbnQgd2Z4X2lncHJfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGlu dCBpbmRleCwgdTMyICp2YWwpOworaW50IHdmeF9pZ3ByX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwgaW50IGluZGV4LCB1MzIgdmFsKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2 ZXJzL3N0YWdpbmcvd2Z4L21haW4uYyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jCmluZGV4 IGFiYzFhNmQ0MzMwMC4uNDM5NDdmOGYyZTBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcv d2Z4L21haW4uYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uYwpAQCAtNDI4LDcgKzQy OCw3IEBAIGludCB3ZnhfcHJvYmUoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJCQkiZW5hYmxlICdx dWllc2NlbnQnIHBvd2VyIG1vZGUgd2l0aCB3YWtldXAgR1BJTyBhbmQgUERTIGZpbGUgJXNcbiIs CiAJCQl3ZGV2LT5wZGF0YS5maWxlX3Bkcyk7CiAJCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcCh3 ZGV2LT5wZGF0YS5ncGlvX3dha2V1cCwgMSk7Ci0JCWNvbnRyb2xfcmVnX3dyaXRlKHdkZXYsIDAp OworCQl3ZnhfY29udHJvbF9yZWdfd3JpdGUod2RldiwgMCk7CiAJCXdmeF9oaWZfc2V0X29wZXJh dGlvbmFsX21vZGUod2RldiwgSElGX09QX1BPV0VSX01PREVfUVVJRVNDRU5UKTsKIAl9IGVsc2Ug ewogCQl3ZnhfaGlmX3NldF9vcGVyYXRpb25hbF9tb2RlKHdkZXYsIEhJRl9PUF9QT1dFUl9NT0RF X0RPWkUpOwotLSAKMi4zNC4xCgo=