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 X-Spam-Level: X-Spam-Status: No, score=-16.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C1B58C433F5 for ; Mon, 13 Sep 2021 13:06:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9E15760FA0 for ; Mon, 13 Sep 2021 13:06:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240390AbhIMNHM (ORCPT ); Mon, 13 Sep 2021 09:07:12 -0400 Received: from mail-dm6nam10on2076.outbound.protection.outlook.com ([40.107.93.76]:58976 "EHLO NAM10-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S240223AbhIMNF2 (ORCPT ); Mon, 13 Sep 2021 09:05:28 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XI3lUrAXg2rVz7VfyfkAiWEZ2oWE3LMnciO0/LGCpRF27fpBJ4yZU9h20X3qB1B1Zv1umfUIT+WA0q3VimEOFNw3G2E0Jspstk0Iwng+Qbu5Xc9feLSvy83YcU1W1p5I0brte5zzooVwm/UVcevsenHmrl8dYuI3hJL+1UoiUUJkKyQRkJLrb8eVJErAm95R9UoUDKSmBLVYHcfFs/l41VIuBRmeysPdlHO7zjWR8iZwWv7emp2RsMnhyeuropGozSxVVF6SJyDByjgvRHDYvnT+GiVqDyc/5O4Q+fm1sgXpRByH3okmjPC+j8outt5A5dexd7GVbXQe0AHcnLJVkg== 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; bh=u6Rorers3D6dgY4lxn1PyN50HsY0fbavt5tZLBkvzmw=; b=LpZ8uexkr1rkt/Cr0DxJBa325FnQC2b+zXIkVtIsrsk6dydMwF89B1V1v4Ir+GJLUooMYPza+QNfcLXf3q/NcwdRm1kZpdXAxkPKipaGGPNG1Vw7hmWgMpzsboDJAiwJKmMjAPOM3GtjwobgGOzhE8e9wddl99BqEpYKuRy+VjEzVMA6epUX9HDodWqV04r3f0W9bGdBOcEcqztf4XzbZX590s1ZNs6NDY7TThyP0bof5N1K7vOaf/9a6p8pqk/+tqntMTErqAhCZfGCdkXyYjnUA1xuivIKNN6bUj4sMqV8IZjdkR+Bb62BMGA9kzfMHy9WwiMWKtn15PPsrQ5G6A== 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=u6Rorers3D6dgY4lxn1PyN50HsY0fbavt5tZLBkvzmw=; b=dUbKUH2JvDyqJvvtPMRIX46wj1//Z30lGANuo2bTh941RVhSJoNd37wjK6XUww5oxVmp8r/TWjoFH3vQPWwgkgnusz66hibR6E8koO/0QppFAiCyiIZ9eSv9nRB/Vn8cmnD8ni3jvo8G/Tgj835A27Y+reb5Tx/znFtUFg1rxcI= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB3502.namprd11.prod.outlook.com (2603:10b6:805:da::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14; Mon, 13 Sep 2021 13:03:08 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::7050:a0a:415:2ccd]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::7050:a0a:415:2ccd%7]) with mapi id 15.20.4500.017; Mon, 13 Sep 2021 13:03:08 +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 v3 27/32] staging: wfx: avoid c99 comments Date: Mon, 13 Sep 2021 15:01:58 +0200 Message-Id: <20210913130203.1903622-28-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913130203.1903622-1-Jerome.Pouiller@silabs.com> References: <20210913130203.1903622-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: PR2P264CA0021.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101::33) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 Received: from pc-42.silabs.com (37.71.187.125) by PR2P264CA0021.FRAP264.PROD.OUTLOOK.COM (2603:10a6:101::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14 via Frontend Transport; Mon, 13 Sep 2021 13:03:07 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 940d76f4-2b72-48f1-6bd7-08d976b6d540 X-MS-TrafficTypeDiagnostic: SN6PR11MB3502: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5516; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JUYFjhl3lb8YogXY7/p/E+sicMhoMXALRecXHShaqFOKSxa7F0xfNEUAtgih7zDTLPKkvQ1LRERwaiYGTEBHZ0yBIKdnrRU5h7EarWBuxdDp5cwlC1uX9PqhgDq/Tk1NO+VT2JYOQa/nQEx3GRVhxI6E9ZtxVOAK8Ho+L8HXVOkohxOcjhcf8uVLrwuQNfNwZieQCIYYV80xJkxGOOJ+2GqDMmmlz+BZVj10CCAbjHIjcR4KtnLvTQwFSuhl3gDuQaa+qwsOVc4Y0BswiQMrsjk5McO5dyMs77w9rI16PyM8q10YpqvOxNKc93v+wfm+XMRWe4Se/G4D2bdHsVetY1IgdL1HmvhcXqV7rDfMx2GdG35VjXY1CBuYymmmPXvoDcsVlbhcLW9w1uFKYtLRz2cpDFbm0NIc3o/C5aCpgyz6BVsnK1eTPm8KCJrPI6HRcHkM6L+dCNAmEDyO0hyIdM4I9S13EbTongvRIvujrv7U2y32npE4Bvi0rFcDcEaUJJjRGv9uRzaSX4+rVdaBCVEDtkiQ6a8bavUgU/MhftVuB3LekQhiaU0Q/AKNAypIZpJv310y3Chl3GCTIkGQKrR3WZmDcLTN0SmzisBGNltbeienyE32JEHzKMBtHb3zY05DagKpkJ+rxiA/IvCFtCXcOkTfBOyhUH7k6lBiTd1IoEmmTLGxtm68KHK/1ygIGzrULKaV7S8R28Hh6CVVFw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR11MB2718.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(39850400004)(136003)(396003)(376002)(346002)(366004)(6666004)(316002)(66476007)(8676002)(186003)(7696005)(52116002)(30864003)(66946007)(26005)(4326008)(66556008)(2906002)(54906003)(107886003)(6486002)(2616005)(478600001)(1076003)(36756003)(5660300002)(66574015)(956004)(8936002)(86362001)(38100700002)(38350700002)(83380400001)(559001)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RzJHZlFFZE1PTXdqdDQ3QWsvZm5odXpYTXp3ajBSS1N5NUxxcjIvTms3TGtW?= =?utf-8?B?WHBsLzZENk51WDMraWhkUHNzV2ZYVGZmTkJYNnM3elZWdFVMMjhaZGMra2R1?= =?utf-8?B?RUtmc1ZYbGMxNGxSZXJycndjOHFHaGcrNWJyajdhTUtsZHZEcGtJWGpwU3lk?= =?utf-8?B?MjM3R0pLOGZuTDQyNTY4MXFDQmpzaTZJcU12MUtWMmh5T29xdmJsVUh0djZR?= =?utf-8?B?cXNhOVorVnpQTEVvc3pzN1JkWW1MRS9KU1lJYnFWc2kwVFFmSjh0VExzZFYx?= =?utf-8?B?YkhtUVRZbEJCMTViaVdpV2Ntc3dRdDd6ZkdlUmVSQXArM2MwWXBKbndNUERN?= =?utf-8?B?KzZnSmEvRkpvQ2dlTHl2N0VEaHVHVTA1aFcyOG02emdXUjhoN1dZR1BpaVFk?= =?utf-8?B?WnMva0NPb2w4ZjZRa1dLZFBtQTFrSTExdGFZWlBKMFBNanJnZlk4UkM1UnBn?= =?utf-8?B?R21mR1p4bWNRalJVN1pkTW0vVmpxTzdRemUzM0FsN2dqeitWU3pzbk0vSmJa?= =?utf-8?B?UHliT2xvMS9pY1dqN2tPVTl5NWdlYjNncmxEaUcrTFM5aHkxTFkvL0xMSExm?= =?utf-8?B?OS9pNnNuOEoxS1VTaXhsSlAwaklBd0ZwV2RUaHp3RVNkK2FMMVhJOHFaQnRp?= =?utf-8?B?VXV1MjRmZGJEaUFweUpsdVFueUR3R01YajVvSzg2elJ3Q0RwTVA1V1lXbTJB?= =?utf-8?B?NEtEMnIwS1Y2UnpLR21uSmh4OThZNFVTNE9saStPTkM4aHB0aDVKTEVVcEZa?= =?utf-8?B?UVd3ZEpQbURrMHE0Y3lnY0M5RVliOENBcjMrMnJJSHF2UlBuQTQ5YVZDbDVQ?= =?utf-8?B?ZHNrVEovS0lMaUl6YjlpWFhQZ2RucDBwYVNjbUorZllVejN4cXpjVHFTczZV?= =?utf-8?B?Sk1maDY1anBLUDlVaDBENmtUaEdCK1Z0ZFAybC9UNktxdGF5WHVFWHFTUm5a?= =?utf-8?B?ZXBrNXhjUXdJTkF5OG1ieDBJalJmR3Y2WHNtRUI5blhrU3A2ZGlrWEZPMlBh?= =?utf-8?B?V3gyTHZib0IyLzJNaGN3RENiWmRwR1Roem55UERzcnhsMVM4Z1pFcHJzeUIz?= =?utf-8?B?T0JobWZueVlzbzYxKzVEZXY3UjF1Q2JmckJhNkZXM013WHpDYlNqaHFVOGZt?= =?utf-8?B?RGZRVzNuUnJhY2ZpaFJtWDYyckxQUWw5czJiSmhaOG9pREVGODhqWGg2TlRZ?= =?utf-8?B?NjhsZWptK0ZINWdTb2JnSXMxQ0tFTHE3MFZwVkUyVGNaeUpLUGR4Z2d0cncr?= =?utf-8?B?YzFYQ1VxUlZBZUJYUHp6Z1o5MElGNE4xZHlIRlVkdnNvdUZyYlVFamgyOVFl?= =?utf-8?B?Y3QyR2MrSnVNTC9KSVhFTS9MQWhTYTFjeG9jYUdpWjU3aEs3TjRaTkpzZThN?= =?utf-8?B?bVljanI5Q3YrVWNKZys5RU0yZW16YnNJOVNqZXZJOGlyMGdzWGkxVWdsdUxz?= =?utf-8?B?SlhPMVRQRkFzOEs3MG1lUytNb2o5ZUFOZm1LaEVGN1NWOEpyaHhlMlZ6VGRn?= =?utf-8?B?SEh4cFVrNHVaZFJVNGlmQXVsK3VoYXFoMmJCYUNGM2NoUkYrWWQvVkpVeGpu?= =?utf-8?B?NDJ5MXp2cHhHY3Q0Tm44ZWNMN3hsZ1cxSlhrL0dZbmVVWHlVVXV0cEU4YWpV?= =?utf-8?B?RkhaYlg2WkxSOHdlUFM4N1hBcitCUFlkZ1AzazlSMWl5Q0ZuQkZxc3U3Y0sy?= =?utf-8?B?a2VkQzhIZ0pxM1hwRUFYVTFwaURvbFF2UVFuQW5QRDkyUzE5c1dIaUFzOUNY?= =?utf-8?Q?gCnauEkTwLY0JOLMos33MyeW4PMZ3UpBbJRbqM/?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 940d76f4-2b72-48f1-6bd7-08d976b6d540 X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2021 13:03:08.5179 (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: ldzHSDzMziRUoWPdWCM1Iqs0V0Jx6zc92P80E01yrFcCtJvAvhXawhbIsKtCl8/akgenEmGMm2zOD/mAOX+49g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3502 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKVGhl IHdmeCBkcml2ZXIgaXMgYSBuZXR3b3JrIGRyaXZlci4gQzk5IGNvbW1lbnRzIGFyZSBwcm9oaWJp dGVkIGluIHRoaXMKcGFydCBvZiB0aGUga2VybmVsLgoKU2lnbmVkLW9mZi1ieTogSsOpcsO0bWUg UG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgotLS0KIGRyaXZlcnMvc3RhZ2lu Zy93ZngvYmguYyAgICAgICAgICAgICAgfCAyMiArKysrLS0tLQogZHJpdmVycy9zdGFnaW5nL3dm eC9idXNfc2Rpby5jICAgICAgICB8ICA4ICstLQogZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc3Bp LmMgICAgICAgICB8IDEyICsrKy0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYyAgICAg ICAgIHwgIDUgKy0KIGRyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90eC5jICAgICAgICAgfCA1NiAr KysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguaCAgICAgICAg IHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy93ZngvZGVidWcuYyAgICAgICAgICAgfCAxMiArKyst LQogZHJpdmVycy9zdGFnaW5nL3dmeC9md2lvLmMgICAgICAgICAgICB8IDIzICsrKystLS0tCiBk cml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfY21kLmggICAgIHwgMTIgKysrLS0KIGRyaXZlcnMv c3RhZ2luZy93ZngvaGlmX2FwaV9nZW5lcmFsLmggfCAxNyArKystLS0KIGRyaXZlcnMvc3RhZ2lu Zy93ZngvaGlmX2FwaV9taWIuaCAgICAgfCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZf cnguYyAgICAgICAgICB8IDE3ICsrKy0tLQogZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYyAg ICAgICAgICB8IDMyICsrKysrKy0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIu YyAgICAgIHwgIDQgKy0KIGRyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5jICAgICAgICAgICAgfCAg NiArLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5oICAgICAgICAgICAgfCAxNiArKystLS0K IGRyaXZlcnMvc3RhZ2luZy93Zngva2V5LmMgICAgICAgICAgICAgfCAgNCArLQogZHJpdmVycy9z dGFnaW5nL3dmeC9tYWluLmMgICAgICAgICAgICB8IDEzICsrLS0tCiBkcml2ZXJzL3N0YWdpbmcv d2Z4L3F1ZXVlLmMgICAgICAgICAgIHwgMjcgKysrKystLS0tLQogZHJpdmVycy9zdGFnaW5nL3dm eC9xdWV1ZS5oICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jICAg ICAgICAgICAgIHwgNzggKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCiBkcml2ZXJzL3N0YWdp bmcvd2Z4L3N0YS5oICAgICAgICAgICAgIHwgIDYgKy0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L3Ry YWNlcy5oICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy93Zngvd2Z4LmggICAgICAg ICAgICAgfCAgMiArLQogMjQgZmlsZXMgY2hhbmdlZCwgMjA1IGluc2VydGlvbnMoKyksIDE3NSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2JoLmMgYi9kcml2 ZXJzL3N0YWdpbmcvd2Z4L2JoLmMKaW5kZXggNzhmYTgxZDgyNTE3Li5lOTU2YjVhNWNjYWMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYmguYworKysgYi9kcml2ZXJzL3N0YWdpbmcv d2Z4L2JoLmMKQEAgLTMyLDE4ICszMiwyMCBAQCBzdGF0aWMgdm9pZCBkZXZpY2Vfd2FrZXVwKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCX0KIAlmb3IgKDs7KSB7CiAJCWdwaW9kX3NldF92YWx1ZV9j YW5zbGVlcCh3ZGV2LT5wZGF0YS5ncGlvX3dha2V1cCwgMSk7Ci0JCS8vIGNvbXBsZXRpb24uaCBk b2VzIG5vdCBwcm92aWRlIGFueSBmdW5jdGlvbiB0byB3YWl0Ci0JCS8vIGNvbXBsZXRpb24gd2l0 aG91dCBjb25zdW1lIGl0IChhIGtpbmQgb2YKLQkJLy8gd2FpdF9mb3JfY29tcGxldGlvbl9kb25l X3RpbWVvdXQoKSkuIFNvIHdlIGhhdmUgdG8gZW11bGF0ZQotCQkvLyBpdC4KKwkJLyogY29tcGxl dGlvbi5oIGRvZXMgbm90IHByb3ZpZGUgYW55IGZ1bmN0aW9uIHRvIHdhaXQKKwkJICogY29tcGxl dGlvbiB3aXRob3V0IGNvbnN1bWUgaXQgKGEga2luZCBvZgorCQkgKiB3YWl0X2Zvcl9jb21wbGV0 aW9uX2RvbmVfdGltZW91dCgpKS4gU28gd2UgaGF2ZSB0byBlbXVsYXRlCisJCSAqIGl0LgorCQkg Ki8KIAkJaWYgKHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmd2Rldi0+aGlmLmN0cmxfcmVh ZHksCiAJCQkJCQltc2Vjc190b19qaWZmaWVzKDIpKSkgewogCQkJY29tcGxldGUoJndkZXYtPmhp Zi5jdHJsX3JlYWR5KTsKIAkJCXJldHVybjsKIAkJfSBlbHNlIGlmIChtYXhfcmV0cnktLSA+IDAp IHsKLQkJCS8vIE9sZGVyIGZpcm13YXJlcyBoYXZlIGEgcmFjZSBpbiBzbGVlcC93YWtlLXVwIHBy b2Nlc3MuCi0JCQkvLyBSZWRvIHRoZSBwcm9jZXNzIGlzIHN1ZmZpY2llbnQgdG8gdW5mcmVlemUg dGhlCi0JCQkvLyBjaGlwLgorCQkJLyogT2xkZXIgZmlybXdhcmVzIGhhdmUgYSByYWNlIGluIHNs ZWVwL3dha2UtdXAgcHJvY2Vzcy4KKwkJCSAqIFJlZG8gdGhlIHByb2Nlc3MgaXMgc3VmZmljaWVu dCB0byB1bmZyZWV6ZSB0aGUKKwkJCSAqIGNoaXAuCisJCQkgKi8KIAkJCWRldl9lcnIod2Rldi0+ ZGV2LCAidGltZW91dCB3aGlsZSB3YWtlIHVwIGNoaXBcbiIpOwogCQkJZ3Bpb2Rfc2V0X3ZhbHVl X2NhbnNsZWVwKHdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwLCAwKTsKIAkJCXVzbGVlcF9yYW5nZSgy MDAwLCAyNTAwKTsKQEAgLTc0LDcgKzc2LDcgQEAgc3RhdGljIGludCByeF9oZWxwZXIoc3RydWN0 IHdmeF9kZXYgKndkZXYsIHNpemVfdCByZWFkX2xlbiwgaW50ICppc19jbmYpCiAJV0FSTihyZWFk X2xlbiA+IHJvdW5kX2Rvd24oMHhGRkYsIDIpICogc2l6ZW9mKHUxNiksCiAJICAgICAiJXM6IHJl cXVlc3QgZXhjZWVkIHRoZSBjaGlwIGNhcGFiaWxpdHkiLCBfX2Z1bmNfXyk7CiAKLQkvLyBBZGQg MiB0byB0YWtlIGludG8gYWNjb3VudCBwaWdneWJhY2sgc2l6ZQorCS8qIEFkZCAyIHRvIHRha2Ug aW50byBhY2NvdW50IHBpZ2d5YmFjayBzaXplICovCiAJYWxsb2NfbGVuID0gd2Rldi0+aHdidXNf b3BzLT5hbGlnbl9zaXplKHdkZXYtPmh3YnVzX3ByaXYsIHJlYWRfbGVuICsgMik7CiAJc2tiID0g ZGV2X2FsbG9jX3NrYihhbGxvY19sZW4pOwogCWlmICghc2tiKQpAQCAtMTE5LDcgKzEyMSw3IEBA IHN0YXRpYyBpbnQgcnhfaGVscGVyKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBzaXplX3QgcmVhZF9s ZW4sIGludCAqaXNfY25mKQogCX0KIAogCXNrYl9wdXQoc2tiLCBsZTE2X3RvX2NwdShoaWYtPmxl bikpOwotCS8vIHdmeF9oYW5kbGVfcnggdGFrZXMgY2FyZSBvbiBTS0IgbGl2ZXRpbWUKKwkvKiB3 ZnhfaGFuZGxlX3J4IHRha2VzIGNhcmUgb24gU0tCIGxpdmV0aW1lICovCiAJd2Z4X2hhbmRsZV9y eCh3ZGV2LCBza2IpOwogCWlmICghd2Rldi0+aGlmLnR4X2J1ZmZlcnNfdXNlZCkKIAkJd2FrZV91 cCgmd2Rldi0+aGlmLnR4X2J1ZmZlcnNfZW1wdHkpOwpAQCAtMTQ4LDcgKzE1MCw3IEBAIHN0YXRp YyBpbnQgYmhfd29ya19yeChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IG1heF9tc2csIGludCAq bnVtX2NuZikKIAkJCWN0cmxfcmVnID0gMDsKIAkJaWYgKCEoY3RybF9yZWcgJiBDVFJMX05FWFRf TEVOX01BU0spKQogCQkJcmV0dXJuIGk7Ci0JCS8vIGN0cmxfcmVnIHVuaXRzIGFyZSAxNmJpdHMg d29yZHMKKwkJLyogY3RybF9yZWcgdW5pdHMgYXJlIDE2Yml0cyB3b3JkcyAqLwogCQlsZW4gPSAo Y3RybF9yZWcgJiBDVFJMX05FWFRfTEVOX01BU0spICogMjsKIAkJcGlnZ3liYWNrID0gcnhfaGVs cGVyKHdkZXYsIGxlbiwgbnVtX2NuZik7CiAJCWlmIChwaWdneWJhY2sgPCAwKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc2Rpby5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9i dXNfc2Rpby5jCmluZGV4IGUwNmQ3ZTFlYmU5Yy4uZWI3MGJlZjZiZDZlIDEwMDY0NAotLS0gYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L2J1c19zZGlvLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9i dXNfc2Rpby5jCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyBpbnQgd2Z4X3NkaW9fY29weV90b19p byh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgcmVnX2lkLAogCS8qIFVzZSBxdWV1ZSBtb2RlIGJ1 ZmZlcnMgKi8KIAlpZiAocmVnX2lkID09IFdGWF9SRUdfSU5fT1VUX1FVRVVFKQogCQlzZGlvX2Fk ZHIgfD0gYnVzLT5idWZfaWRfdHggPDwgNzsKLQkvLyBGSVhNRTogZGlzY2FyZHMgJ2NvbnN0JyBx dWFsaWZpZXIgZm9yIHNyYworCS8qIEZJWE1FOiBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBm b3Igc3JjICovCiAJcmV0ID0gc2Rpb19tZW1jcHlfdG9pbyhidXMtPmZ1bmMsIHNkaW9fYWRkciwg KHZvaWQgKilzcmMsIGNvdW50KTsKIAlpZiAoIXJldCAmJiByZWdfaWQgPT0gV0ZYX1JFR19JTl9P VVRfUVVFVUUpCiAJCWJ1cy0+YnVmX2lkX3R4ID0gKGJ1cy0+YnVmX2lkX3R4ICsgMSkgJSAzMjsK QEAgLTE5OCw3ICsxOTgsNyBAQCBzdGF0aWMgaW50IHdmeF9zZGlvX3Byb2JlKHN0cnVjdCBzZGlv X2Z1bmMgKmZ1bmMsCiAJfSBlbHNlIHsKIAkJZGV2X3dhcm4oJmZ1bmMtPmRldiwKIAkJCSAiZGV2 aWNlIGlzIG5vdCBkZWNsYXJlZCBpbiBEVCwgZmVhdHVyZXMgd2lsbCBiZSBsaW1pdGVkXG4iKTsK LQkJLy8gRklYTUU6IGlnbm9yZSBWSUQvUElEIGFuZCBvbmx5IHJlbHkgb24gZGV2aWNlIHRyZWUK KwkJLyogRklYTUU6IGlnbm9yZSBWSUQvUElEIGFuZCBvbmx5IHJlbHkgb24gZGV2aWNlIHRyZWUg Ki8KIAkJLy8gcmV0dXJuIC1FTk9ERVY7CiAJfQogCkBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGlj IGludCB3Znhfc2Rpb19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLAogCiAJc2Rpb19jbGFp bV9ob3N0KGZ1bmMpOwogCXJldCA9IHNkaW9fZW5hYmxlX2Z1bmMoZnVuYyk7Ci0JLy8gQmxvY2sg b2YgNjQgYnl0ZXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiA1MTJCIGZvciBmcmFtZSBzaXplcyA8 IDRrCisJLyogQmxvY2sgb2YgNjQgYnl0ZXMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiA1MTJCIGZv ciBmcmFtZSBzaXplcyA8IDRrICovCiAJc2Rpb19zZXRfYmxvY2tfc2l6ZShmdW5jLCA2NCk7CiAJ c2Rpb19yZWxlYXNlX2hvc3QoZnVuYyk7CiAJaWYgKHJldCkKQEAgLTI1MSw3ICsyNTEsNyBAQCBz dGF0aWMgdm9pZCB3Znhfc2Rpb19yZW1vdmUoc3RydWN0IHNkaW9fZnVuYyAqZnVuYykKICNkZWZp bmUgU0RJT19ERVZJQ0VfSURfU0lMQUJTX1dGMjAwICAweDEwMDAKIHN0YXRpYyBjb25zdCBzdHJ1 Y3Qgc2Rpb19kZXZpY2VfaWQgd2Z4X3NkaW9faWRzW10gPSB7CiAJeyBTRElPX0RFVklDRShTRElP X1ZFTkRPUl9JRF9TSUxBQlMsIFNESU9fREVWSUNFX0lEX1NJTEFCU19XRjIwMCkgfSwKLQkvLyBG SVhNRTogaWdub3JlIFZJRC9QSUQgYW5kIG9ubHkgcmVseSBvbiBkZXZpY2UgdHJlZQorCS8qIEZJ WE1FOiBpZ25vcmUgVklEL1BJRCBhbmQgb25seSByZWx5IG9uIGRldmljZSB0cmVlICovCiAJLy8g eyBTRElPX0RFVklDRShTRElPX0FOWV9JRCwgU0RJT19BTllfSUQpIH0sCiAJeyB9LAogfTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NwaS5jIGIvZHJpdmVycy9zdGFnaW5n L3dmeC9idXNfc3BpLmMKaW5kZXggNzU5ZTA4NTA0OGMzLi42MWY3M2IzZWJjODAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYnVzX3NwaS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93 ZngvYnVzX3NwaS5jCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBpbnQgd2Z4X3NwaV9jb3B5X3Rv X2lvKHZvaWQgKnByaXYsIHVuc2lnbmVkIGludCBhZGRyLAogewogCXN0cnVjdCB3Znhfc3BpX3By aXYgKmJ1cyA9IHByaXY7CiAJdTE2IHJlZ2FkZHIgPSAoYWRkciA8PCAxMikgfCAoY291bnQgLyAy KTsKLQkvLyBGSVhNRTogdXNlIGEgYm91bmNlIGJ1ZmZlcgorCS8qIEZJWE1FOiB1c2UgYSBib3Vu Y2UgYnVmZmVyICovCiAJdTE2ICpzcmMxNiA9ICh2b2lkICopc3JjOwogCWludCByZXQsIGk7CiAJ c3RydWN0IHNwaV9tZXNzYWdlICAgICAgbTsKQEAgLTEwNCw4ICsxMDQsOSBAQCBzdGF0aWMgaW50 IHdmeF9zcGlfY29weV90b19pbyh2b2lkICpwcml2LCB1bnNpZ25lZCBpbnQgYWRkciwKIAogCWNw dV90b19sZTE2cygmcmVnYWRkcik7CiAKLQkvLyBSZWdpc3RlciBhZGRyZXNzIGFuZCBDT05GSUcg Y29udGVudCBhbHdheXMgdXNlIDE2Yml0IGJpZyBlbmRpYW4KLQkvLyAoIkJBREMiIG9yZGVyKQor CS8qIFJlZ2lzdGVyIGFkZHJlc3MgYW5kIENPTkZJRyBjb250ZW50IGFsd2F5cyB1c2UgMTZiaXQg YmlnIGVuZGlhbgorCSAqICgiQkFEQyIgb3JkZXIpCisJICovCiAJaWYgKGJ1cy0+bmVlZF9zd2Fi KQogCQlzd2FiMTZzKCZyZWdhZGRyKTsKIAlpZiAoYnVzLT5uZWVkX3N3YWIgJiYgYWRkciA9PSBX RlhfUkVHX0NPTkZJRykKQEAgLTE2Myw3ICsxNjQsOCBAQCBzdGF0aWMgaW50IHdmeF9zcGlfaXJx X3Vuc3Vic2NyaWJlKHZvaWQgKnByaXYpCiAKIHN0YXRpYyBzaXplX3Qgd2Z4X3NwaV9hbGlnbl9z aXplKHZvaWQgKnByaXYsIHNpemVfdCBzaXplKQogewotCS8vIE1vc3Qgb2YgU1BJIGNvbnRyb2xs ZXJzIGF2b2lkIERNQSBpZiBidWZmZXIgc2l6ZSBpcyBub3QgMzJiaXQgYWxpZ25lZAorCS8qIE1v c3Qgb2YgU1BJIGNvbnRyb2xsZXJzIGF2b2lkIERNQSBpZiBidWZmZXIgc2l6ZSBpcyBub3QgMzJi aXQgYWxpZ25lZAorCSAqLwogCXJldHVybiBBTElHTihzaXplLCA0KTsKIH0KIApAQCAtMTg3LDcg KzE4OSw3IEBAIHN0YXRpYyBpbnQgd2Z4X3NwaV9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqZnVu YykKIAlyZXQgPSBzcGlfc2V0dXAoZnVuYyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKLQkv LyBUcmFjZSBiZWxvdyBpcyBhbHNvIGRpc3BsYXllZCBieSBzcGlfc2V0dXAoKSBpZiBjb21waWxl ZCB3aXRoIERFQlVHCisJLyogVHJhY2UgYmVsb3cgaXMgYWxzbyBkaXNwbGF5ZWQgYnkgc3BpX3Nl dHVwKCkgaWYgY29tcGlsZWQgd2l0aCBERUJVRyAqLwogCWRldl9kYmcoJmZ1bmMtPmRldiwgIlNQ SSBwYXJhbXM6IENTPSVkLCBtb2RlPSVkIGJpdHMvd29yZD0lZCBzcGVlZD0lZFxuIiwKIAkJZnVu Yy0+Y2hpcF9zZWxlY3QsIGZ1bmMtPm1vZGUsIGZ1bmMtPmJpdHNfcGVyX3dvcmQsCiAJCWZ1bmMt Pm1heF9zcGVlZF9oeik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcngu YyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV9yeC5jCmluZGV4IDUwOWY0NWNkYmFiOS4uYmZj Mzk2MWI3Yjg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYworKysg Yi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfcnguYwpAQCAtNzYsOCArNzYsOSBAQCB2b2lkIHdm eF9yeF9jYihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKIAlpZiAoYXJnLT5lbmNyeXApCiAJCWhkci0+ ZmxhZyB8PSBSWF9GTEFHX0RFQ1JZUFRFRDsKIAotCS8vIEJsb2NrIGFjayBuZWdvdGlhdGlvbiBp cyBvZmZsb2FkZWQgYnkgdGhlIGZpcm13YXJlLiBIb3dldmVyLAotCS8vIHJlLW9yZGVyaW5nIG11 c3QgYmUgZG9uZSBieSB0aGUgbWFjODAyMTEuCisJLyogQmxvY2sgYWNrIG5lZ290aWF0aW9uIGlz IG9mZmxvYWRlZCBieSB0aGUgZmlybXdhcmUuIEhvd2V2ZXIsCisJICogcmUtb3JkZXJpbmcgbXVz dCBiZSBkb25lIGJ5IHRoZSBtYWM4MDIxMS4KKwkgKi8KIAlpZiAoaWVlZTgwMjExX2lzX2FjdGlv bihmcmFtZS0+ZnJhbWVfY29udHJvbCkgJiYKIAkgICAgbWdtdC0+dS5hY3Rpb24uY2F0ZWdvcnkg PT0gV0xBTl9DQVRFR09SWV9CQUNLICYmCiAJICAgIHNrYi0+bGVuID4gSUVFRTgwMjExX01JTl9B Q1RJT05fU0laRSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMg Yi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguYwppbmRleCAwNDI0MTQyMmVkYzguLjA1MmEx OTE2MWRjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMKKysrIGIv ZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMKQEAgLTMxLDggKzMxLDkgQEAgc3RhdGljIGlu dCB3ZnhfZ2V0X2h3X3JhdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsCiAJCX0KIAkJcmV0dXJuIHJh dGUtPmlkeCArIDE0OwogCX0KLQkvLyBUaGUgZGV2aWNlIG9ubHkgc3VwcG9ydCAyR0h6LCBlbHNl IGJhbmQgaW5mb3JtYXRpb24gc2hvdWxkIGJlCi0JLy8gcmV0cmlldmVkIGZyb20gaWVlZTgwMjEx X3R4X2luZm8KKwkvKiBUaGUgZGV2aWNlIG9ubHkgc3VwcG9ydCAyR0h6LCBlbHNlIGJhbmQgaW5m b3JtYXRpb24gc2hvdWxkIGJlCisJICogcmV0cmlldmVkIGZyb20gaWVlZTgwMjExX3R4X2luZm8K KwkgKi8KIAliYW5kID0gd2Rldi0+aHctPndpcGh5LT5iYW5kc1tOTDgwMjExX0JBTkRfMkdIWl07 CiAJaWYgKHJhdGUtPmlkeCA+PSBiYW5kLT5uX2JpdHJhdGVzKSB7CiAJCVdBUk4oMSwgIndyb25n IHJhdGUtPmlkeCB2YWx1ZTogJWQiLCByYXRlLT5pZHgpOwpAQCAtNTcsNyArNTgsNyBAQCBzdGF0 aWMgdm9pZCB3ZnhfdHhfcG9saWN5X2J1aWxkKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3Qg dHhfcG9saWN5ICpwb2xpY3ksCiAJCQlicmVhazsKIAkJV0FSTl9PTihyYXRlc1tpXS5jb3VudCA+ IDE1KTsKIAkJcmF0ZWlkID0gd2Z4X2dldF9od19yYXRlKHdkZXYsICZyYXRlc1tpXSk7Ci0JCS8v IFBhY2sgdHdvIHZhbHVlcyBpbiBlYWNoIGJ5dGUgb2YgcG9saWN5LT5yYXRlcworCQkvKiBQYWNr IHR3byB2YWx1ZXMgaW4gZWFjaCBieXRlIG9mIHBvbGljeS0+cmF0ZXMgKi8KIAkJY291bnQgPSBy YXRlc1tpXS5jb3VudDsKIAkJaWYgKHJhdGVpZCAlIDIpCiAJCQljb3VudCA8PD0gNDsKQEAgLTIz OCw3ICsyMzksNyBAQCBzdGF0aWMgdm9pZCB3ZnhfdHhfZml4dXBfcmF0ZXMoc3RydWN0IGllZWU4 MDIxMV90eF9yYXRlICpyYXRlcykKIAlpbnQgaTsKIAlib29sIGZpbmlzaGVkOwogCi0JLy8gRmly bXdhcmUgaXMgbm90IGFibGUgdG8gbWl4IHJhdGVzIHdpdGggZGlmZmVyZW50IGZsYWdzCisJLyog RmlybXdhcmUgaXMgbm90IGFibGUgdG8gbWl4IHJhdGVzIHdpdGggZGlmZmVyZW50IGZsYWdzICov CiAJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9UWF9NQVhfUkFURVM7IGkrKykgewogCQlpZiAo cmF0ZXNbMF0uZmxhZ3MgJiBJRUVFODAyMTFfVFhfUkNfU0hPUlRfR0kpCiAJCQlyYXRlc1tpXS5m bGFncyB8PSBJRUVFODAyMTFfVFhfUkNfU0hPUlRfR0k7CkBAIC0yNDgsNyArMjQ5LDcgQEAgc3Rh dGljIHZvaWQgd2Z4X3R4X2ZpeHVwX3JhdGVzKHN0cnVjdCBpZWVlODAyMTFfdHhfcmF0ZSAqcmF0 ZXMpCiAJCQlyYXRlc1tpXS5mbGFncyAmPSB+SUVFRTgwMjExX1RYX1JDX1VTRV9SVFNfQ1RTOwog CX0KIAotCS8vIFNvcnQgcmF0ZXMgYW5kIHJlbW92ZSBkdXBsaWNhdGVzCisJLyogU29ydCByYXRl cyBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMgKi8KIAlkbyB7CiAJCWZpbmlzaGVkID0gdHJ1ZTsKIAkJ Zm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9UWF9NQVhfUkFURVMgLSAxOyBpKyspIHsKQEAgLTI2 OCwxOSArMjY5LDE5IEBAIHN0YXRpYyB2b2lkIHdmeF90eF9maXh1cF9yYXRlcyhzdHJ1Y3QgaWVl ZTgwMjExX3R4X3JhdGUgKnJhdGVzKQogCQkJfQogCQl9CiAJfSB3aGlsZSAoIWZpbmlzaGVkKTsK LQkvLyBFbnN1cmUgdGhhdCBNQ1MwIG9yIDFNYnBzIGlzIHByZXNlbnQgYXQgdGhlIGVuZCBvZiB0 aGUgcmV0cnkgbGlzdAorCS8qIEVuc3VyZSB0aGF0IE1DUzAgb3IgMU1icHMgaXMgcHJlc2VudCBh dCB0aGUgZW5kIG9mIHRoZSByZXRyeSBsaXN0ICovCiAJZm9yIChpID0gMDsgaSA8IElFRUU4MDIx MV9UWF9NQVhfUkFURVM7IGkrKykgewogCQlpZiAocmF0ZXNbaV0uaWR4ID09IDApCiAJCQlicmVh azsKIAkJaWYgKHJhdGVzW2ldLmlkeCA9PSAtMSkgewogCQkJcmF0ZXNbaV0uaWR4ID0gMDsKLQkJ CXJhdGVzW2ldLmNvdW50ID0gODsgLy8gPT0gaHctPm1heF9yYXRlX3RyaWVzCisJCQlyYXRlc1tp XS5jb3VudCA9IDg7IC8qID09IGh3LT5tYXhfcmF0ZV90cmllcyAqLwogCQkJcmF0ZXNbaV0uZmxh Z3MgPSByYXRlc1tpIC0gMV0uZmxhZ3MgJgogCQkJCQkgSUVFRTgwMjExX1RYX1JDX01DUzsKIAkJ CWJyZWFrOwogCQl9CiAJfQotCS8vIEFsbCByZXRyaWVzIHVzZSBsb25nIEdJCisJLyogQWxsIHJl dHJpZXMgdXNlIGxvbmcgR0kgKi8KIAlmb3IgKGkgPSAxOyBpIDwgSUVFRTgwMjExX1RYX01BWF9S QVRFUzsgaSsrKQogCQlyYXRlc1tpXS5mbGFncyAmPSB+SUVFRTgwMjExX1RYX1JDX1NIT1JUX0dJ OwogfQpAQCAtMzQyLDEzICszNDMsMTMgQEAgc3RhdGljIGludCB3ZnhfdHhfaW5uZXIoc3RydWN0 IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsCiAJV0FSTihxdWV1ZV9p ZCA+PSBJRUVFODAyMTFfTlVNX0FDUywgInVuc3VwcG9ydGVkIHF1ZXVlX2lkIik7CiAJd2Z4X3R4 X2ZpeHVwX3JhdGVzKHR4X2luZm8tPmRyaXZlcl9yYXRlcyk7CiAKLQkvLyBGcm9tIG5vdyB0eF9p bmZvLT5jb250cm9sIGlzIHVudXNhYmxlCisJLyogRnJvbSBub3cgdHhfaW5mby0+Y29udHJvbCBp cyB1bnVzYWJsZSAqLwogCW1lbXNldCh0eF9pbmZvLT5yYXRlX2RyaXZlcl9kYXRhLCAwLCBzaXpl b2Yoc3RydWN0IHdmeF90eF9wcml2KSk7Ci0JLy8gRmlsbCB0eF9wcml2CisJLyogRmlsbCB0eF9w cml2ICovCiAJdHhfcHJpdiA9IChzdHJ1Y3Qgd2Z4X3R4X3ByaXYgKil0eF9pbmZvLT5yYXRlX2Ry aXZlcl9kYXRhOwogCXR4X3ByaXYtPmljdl9zaXplID0gd2Z4X3R4X2dldF9pY3ZfbGVuKGh3X2tl eSk7CiAKLQkvLyBGaWxsIGhpZl9tc2cKKwkvKiBGaWxsIGhpZl9tc2cgKi8KIAlXQVJOKHNrYl9o ZWFkcm9vbShza2IpIDwgd21zZ19sZW4sICJub3QgZW5vdWdoIHNwYWNlIGluIHNrYiIpOwogCVdB Uk4ob2Zmc2V0ICYgMSwgImF0dGVtcHQgdG8gdHJhbnNtaXQgYW4gdW5hbGlnbmVkIGZyYW1lIik7 CiAJc2tiX3B1dChza2IsIHR4X3ByaXYtPmljdl9zaXplKTsKQEAgLTM2NiwxNyArMzY3LDE4IEBA IHN0YXRpYyBpbnQgd2Z4X3R4X2lubmVyKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBzdHJ1Y3QgaWVl ZTgwMjExX3N0YSAqc3RhLAogCQlyZXR1cm4gLUVJTzsKIAl9CiAKLQkvLyBGaWxsIHR4IHJlcXVl c3QKKwkvKiBGaWxsIHR4IHJlcXVlc3QgKi8KIAlyZXEgPSAoc3RydWN0IGhpZl9yZXFfdHggKilo aWZfbXNnLT5ib2R5OwotCS8vIHBhY2tldF9pZCBqdXN0IG5lZWQgdG8gYmUgdW5pcXVlIG9uIGRl dmljZS4gMzJiaXRzIGFyZSBtb3JlIHRoYW4KLQkvLyBuZWNlc3NhcnkgZm9yIHRoYXQgdGFzaywg c28gd2UgdGFlIGFkdmFudGFnZSBvZiBpdCB0byBhZGQgc29tZSBleHRyYQotCS8vIGRhdGEgZm9y IGRlYnVnLgorCS8qIHBhY2tldF9pZCBqdXN0IG5lZWQgdG8gYmUgdW5pcXVlIG9uIGRldmljZS4g MzJiaXRzIGFyZSBtb3JlIHRoYW4KKwkgKiBuZWNlc3NhcnkgZm9yIHRoYXQgdGFzaywgc28gd2Ug dGFlIGFkdmFudGFnZSBvZiBpdCB0byBhZGQgc29tZSBleHRyYQorCSAqIGRhdGEgZm9yIGRlYnVn LgorCSAqLwogCXJlcS0+cGFja2V0X2lkID0gYXRvbWljX2FkZF9yZXR1cm4oMSwgJnd2aWYtPndk ZXYtPnBhY2tldF9pZCkgJiAweEZGRkY7CiAJcmVxLT5wYWNrZXRfaWQgfD0gSUVFRTgwMjExX1NF UV9UT19TTihsZTE2X3RvX2NwdShoZHItPnNlcV9jdHJsKSkgPDwgMTY7CiAJcmVxLT5wYWNrZXRf aWQgfD0gcXVldWVfaWQgPDwgMjg7CiAKIAlyZXEtPmZjX29mZnNldCA9IG9mZnNldDsKLQkvLyBR dWV1ZSBpbmRleCBhcmUgaW52ZXJ0ZWQgYmV0d2VlbiBmaXJtd2FyZSBhbmQgTGludXgKKwkvKiBR dWV1ZSBpbmRleCBhcmUgaW52ZXJ0ZWQgYmV0d2VlbiBmaXJtd2FyZSBhbmQgTGludXggKi8KIAly ZXEtPnF1ZXVlX2lkID0gMyAtIHF1ZXVlX2lkOwogCXJlcS0+cGVlcl9zdGFfaWQgPSB3ZnhfdHhf Z2V0X2xpbmtfaWQod3ZpZiwgc3RhLCBoZHIpOwogCXJlcS0+cmV0cnlfcG9saWN5X2luZGV4ID0g d2Z4X3R4X2dldF9yZXRyeV9wb2xpY3lfaWQod3ZpZiwgdHhfaW5mbyk7CkBAIC0zODYsNyArMzg4 LDcgQEAgc3RhdGljIGludCB3ZnhfdHhfaW5uZXIoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVj dCBpZWVlODAyMTFfc3RhICpzdGEsCiAJaWYgKHR4X2luZm8tPmZsYWdzICYgSUVFRTgwMjExX1RY X0NUTF9TRU5EX0FGVEVSX0RUSU0pCiAJCXJlcS0+YWZ0ZXJfZHRpbSA9IDE7CiAKLQkvLyBBdXhp bGlhcnkgb3BlcmF0aW9ucworCS8qIEF1eGlsaWFyeSBvcGVyYXRpb25zICovCiAJd2Z4X3R4X3F1 ZXVlc19wdXQod3ZpZiwgc2tiKTsKIAlpZiAodHhfaW5mby0+ZmxhZ3MgJiBJRUVFODAyMTFfVFhf Q1RMX1NFTkRfQUZURVJfRFRJTSkKIAkJc2NoZWR1bGVfd29yaygmd3ZpZi0+dXBkYXRlX3RpbV93 b3JrKTsKQEAgLTQwOCwxNSArNDEwLDE2IEBAIHZvaWQgd2Z4X3R4KHN0cnVjdCBpZWVlODAyMTFf aHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3R4X2NvbnRyb2wgKmNvbnRyb2wsCiAJY29tcGlsZXRp bWVfYXNzZXJ0KHNpemVvZihzdHJ1Y3Qgd2Z4X3R4X3ByaXYpIDw9IGRyaXZlcl9kYXRhX3Jvb20s CiAJCQkgICAic3RydWN0IHR4X3ByaXYgaXMgdG9vIGxhcmdlIik7CiAJV0FSTihza2ItPm5leHQg fHwgc2tiLT5wcmV2LCAic2tiIGlzIGFscmVhZHkgbWVtYmVyIG9mIGEgbGlzdCIpOwotCS8vIGNv bnRyb2wudmlmIGNhbiBiZSBOVUxMIGZvciBpbmplY3RlZCBmcmFtZXMKKwkvKiBjb250cm9sLnZp ZiBjYW4gYmUgTlVMTCBmb3IgaW5qZWN0ZWQgZnJhbWVzICovCiAJaWYgKHR4X2luZm8tPmNvbnRy b2wudmlmKQogCQl3dmlmID0gKHN0cnVjdCB3ZnhfdmlmICopdHhfaW5mby0+Y29udHJvbC52aWYt PmRydl9wcml2OwogCWVsc2UKIAkJd3ZpZiA9IHd2aWZfaXRlcmF0ZSh3ZGV2LCBOVUxMKTsKIAlp ZiAoV0FSTl9PTighd3ZpZikpCiAJCWdvdG8gZHJvcDsKLQkvLyBCZWNhdXNlIG9mIFRYX0FNUERV X1NFVFVQX0lOX0hXLCBtYWM4MDIxMSBkb2VzIG5vdCB0cnkgdG8gc2VuZCBhbnkKLQkvLyBCbG9j a0FjayBzZXNzaW9uIG1hbmFnZW1lbnQgZnJhbWUuIFRoZSBjaGVjayBiZWxvdyBleGlzdCBqdXN0 IGluIGNhc2UuCisJLyogQmVjYXVzZSBvZiBUWF9BTVBEVV9TRVRVUF9JTl9IVywgbWFjODAyMTEg ZG9lcyBub3QgdHJ5IHRvIHNlbmQgYW55CisJICogQmxvY2tBY2sgc2Vzc2lvbiBtYW5hZ2VtZW50 IGZyYW1lLiBUaGUgY2hlY2sgYmVsb3cgZXhpc3QganVzdCBpbiBjYXNlLgorCSAqLwogCWlmIChp ZWVlODAyMTFfaXNfYWN0aW9uX2JhY2soaGRyKSkgewogCQlkZXZfaW5mbyh3ZGV2LT5kZXYsICJk cm9wIEJBIGFjdGlvblxuIik7CiAJCWdvdG8gZHJvcDsKQEAgLTQ1Nyw3ICs0NjAsNyBAQCBzdGF0 aWMgdm9pZCB3ZnhfdHhfZmlsbF9yYXRlcyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIAogCXR4X2Nv dW50ID0gYXJnLT5hY2tfZmFpbHVyZXM7CiAJaWYgKCFhcmctPnN0YXR1cyB8fCBhcmctPmFja19m YWlsdXJlcykKLQkJdHhfY291bnQgKz0gMTsgLy8gQWxzbyByZXBvcnQgc3VjY2VzcworCQl0eF9j b3VudCArPSAxOyAvKiBBbHNvIHJlcG9ydCBzdWNjZXNzICovCiAJZm9yIChpID0gMDsgaSA8IElF RUU4MDIxMV9UWF9NQVhfUkFURVM7IGkrKykgewogCQlyYXRlID0gJnR4X2luZm8tPnN0YXR1cy5y YXRlc1tpXTsKIAkJaWYgKHJhdGUtPmlkeCA8IDApCkBAIC01MDUsMTQgKzUwOCwxNSBAQCB2b2lk IHdmeF90eF9jb25maXJtX2NiKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBjb25zdCBzdHJ1Y3QgaGlm X2NuZl90eCAqYXJnKQogCWlmICghd3ZpZikKIAkJcmV0dXJuOwogCi0JLy8gTm90ZSB0aGF0IHdm eF9wZW5kaW5nX2dldF9wa3RfdXNfZGVsYXkoKSBnZXQgZGF0YSBmcm9tIHR4X2luZm8KKwkvKiBO b3RlIHRoYXQgd2Z4X3BlbmRpbmdfZ2V0X3BrdF91c19kZWxheSgpIGdldCBkYXRhIGZyb20gdHhf aW5mbyAqLwogCV90cmFjZV90eF9zdGF0cyhhcmcsIHNrYiwgd2Z4X3BlbmRpbmdfZ2V0X3BrdF91 c19kZWxheSh3ZGV2LCBza2IpKTsKIAl3ZnhfdHhfZmlsbF9yYXRlcyh3ZGV2LCB0eF9pbmZvLCBh cmcpOwogCXNrYl90cmltKHNrYiwgc2tiLT5sZW4gLSB0eF9wcml2LT5pY3Zfc2l6ZSk7CiAKLQkv LyBGcm9tIG5vdywgeW91IGNhbiB0b3VjaCB0byB0eF9pbmZvLT5zdGF0dXMsIGJ1dCBkbyBub3Qg dG91Y2ggdG8KLQkvLyB0eF9wcml2IGFueW1vcmUKLQkvLyBGSVhNRTogdXNlIGllZWU4MDIxMV90 eF9pbmZvX2NsZWFyX3N0YXR1cygpCisJLyogRnJvbSBub3csIHlvdSBjYW4gdG91Y2ggdG8gdHhf aW5mby0+c3RhdHVzLCBidXQgZG8gbm90IHRvdWNoIHRvCisJICogdHhfcHJpdiBhbnltb3JlCisJ ICovCisJLyogRklYTUU6IHVzZSBpZWVlODAyMTFfdHhfaW5mb19jbGVhcl9zdGF0dXMoKSAqLwog CW1lbXNldCh0eF9pbmZvLT5yYXRlX2RyaXZlcl9kYXRhLCAwLCBzaXplb2YodHhfaW5mby0+cmF0 ZV9kcml2ZXJfZGF0YSkpOwogCW1lbXNldCh0eF9pbmZvLT5wYWQsIDAsIHNpemVvZih0eF9pbmZv LT5wYWQpKTsKIApAQCAtNTI3LDcgKzUzMSw3IEBAIHZvaWQgd2Z4X3R4X2NvbmZpcm1fY2Ioc3Ry dWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHN0cnVjdCBoaWZfY25mX3R4ICphcmcpCiAJfSBlbHNl IGlmIChhcmctPnN0YXR1cyA9PSBISUZfU1RBVFVTX1RYX0ZBSUxfUkVRVUVVRSkgewogCQlXQVJO KCFhcmctPnJlcXVldWUsICJpbmNvaGVyZW50IHN0YXR1cyBhbmQgcmVzdWx0X2ZsYWdzIik7CiAJ CWlmICh0eF9pbmZvLT5mbGFncyAmIElFRUU4MDIxMV9UWF9DVExfU0VORF9BRlRFUl9EVElNKSB7 Ci0JCQl3dmlmLT5hZnRlcl9kdGltX3R4X2FsbG93ZWQgPSBmYWxzZTsgLy8gRFRJTSBwZXJpb2Qg ZWxhcHNlZAorCQkJd3ZpZi0+YWZ0ZXJfZHRpbV90eF9hbGxvd2VkID0gZmFsc2U7IC8qIERUSU0g cGVyaW9kIGVsYXBzZWQgKi8KIAkJCXNjaGVkdWxlX3dvcmsoJnd2aWYtPnVwZGF0ZV90aW1fd29y ayk7CiAJCX0KIAkJdHhfaW5mby0+ZmxhZ3MgfD0gSUVFRTgwMjExX1RYX1NUQVRfVFhfRklMVEVS RUQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguaCBiL2RyaXZlcnMv c3RhZ2luZy93ZngvZGF0YV90eC5oCmluZGV4IDdkY2M5MTMyZDdjZC4uZGFmZDhmZWY0NGNmIDEw MDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguaAorKysgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2RhdGFfdHguaApAQCAtMjcsNyArMjcsNyBAQCBzdHJ1Y3QgdHhfcG9saWN5IHsK IAogc3RydWN0IHR4X3BvbGljeV9jYWNoZSB7CiAJc3RydWN0IHR4X3BvbGljeSBjYWNoZVtISUZf VFhfUkVUUllfUE9MSUNZX01BWF07Ci0JLy8gRklYTUU6IHVzZSBhIHRyZWVzIGFuZCBkcm9wIGhh c2ggZnJvbSB0eF9wb2xpY3kKKwkvKiBGSVhNRTogdXNlIGEgdHJlZXMgYW5kIGRyb3AgaGFzaCBm cm9tIHR4X3BvbGljeSAqLwogCXN0cnVjdCBsaXN0X2hlYWQgdXNlZDsKIAlzdHJ1Y3QgbGlzdF9o ZWFkIGZyZWU7CiAJc3BpbmxvY2tfdCBsb2NrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5n L3dmeC9kZWJ1Zy5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jCmluZGV4IDE2YzNmNTVm MWEzZC4uOWY5MzI2OGEzMjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVn LmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jCkBAIC0yNTYsOSArMjU2LDEwIEBA IHN0YXRpYyBzc2l6ZV90IHdmeF9zZW5kX2hpZl9tc2dfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUs CiAJaWYgKGNvdW50IDwgc2l6ZW9mKHN0cnVjdCBoaWZfbXNnKSkKIAkJcmV0dXJuIC1FSU5WQUw7 CiAKLQkvLyB3ZnhfY21kX3NlbmQoKSBjaGVja3MgdGhhdCByZXBseSBidWZmZXIgaXMgd2lkZSBl bm91Z2gsIGJ1dCBkb2VzIG5vdAotCS8vIHJldHVybiBwcmVjaXNlIGxlbmd0aCByZWFkLiBVc2Vy IGhhdmUgdG8ga25vdyBob3cgbWFueSBieXRlcyBzaG91bGQKLQkvLyBiZSByZWFkLiBGaWxsaW5n IHJlcGx5IGJ1ZmZlciB3aXRoIGEgbWVtb3J5IHBhdHRlcm4gbWF5IGhlbHAgdXNlci4KKwkvKiB3 ZnhfY21kX3NlbmQoKSBjaGVja3MgdGhhdCByZXBseSBidWZmZXIgaXMgd2lkZSBlbm91Z2gsIGJ1 dCBkb2VzIG5vdAorCSAqIHJldHVybiBwcmVjaXNlIGxlbmd0aCByZWFkLiBVc2VyIGhhdmUgdG8g a25vdyBob3cgbWFueSBieXRlcyBzaG91bGQKKwkgKiBiZSByZWFkLiBGaWxsaW5nIHJlcGx5IGJ1 ZmZlciB3aXRoIGEgbWVtb3J5IHBhdHRlcm4gbWF5IGhlbHAgdXNlci4KKwkgKi8KIAltZW1zZXQo Y29udGV4dC0+cmVwbHksIDB4RkYsIHNpemVvZihjb250ZXh0LT5yZXBseSkpOwogCXJlcXVlc3Qg PSBtZW1kdXBfdXNlcih1c2VyX2J1ZiwgY291bnQpOwogCWlmIChJU19FUlIocmVxdWVzdCkpCkBA IC0yODgsOCArMjg5LDkgQEAgc3RhdGljIHNzaXplX3Qgd2Z4X3NlbmRfaGlmX21zZ19yZWFkKHN0 cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsCiAJCXJldHVybiByZXQ7CiAJ aWYgKGNvbnRleHQtPnJldCA8IDApCiAJCXJldHVybiBjb250ZXh0LT5yZXQ7Ci0JLy8gQmUgY2Fy ZWZ1bCwgd3JpdGUoKSBpcyB3YWl0aW5nIGZvciBhIGZ1bGwgbWVzc2FnZSB3aGlsZSByZWFkKCkK LQkvLyBvbmx5IHJldHVybnMgYSBwYXlsb2FkCisJLyogQmUgY2FyZWZ1bCwgd3JpdGUoKSBpcyB3 YWl0aW5nIGZvciBhIGZ1bGwgbWVzc2FnZSB3aGlsZSByZWFkKCkKKwkgKiBvbmx5IHJldHVybnMg YSBwYXlsb2FkCisJICovCiAJaWYgKGNvcHlfdG9fdXNlcih1c2VyX2J1ZiwgY29udGV4dC0+cmVw bHksIGNvdW50KSkKIAkJcmV0dXJuIC1FRkFVTFQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3Rh Z2luZy93ZngvZndpby5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9md2lvLmMKaW5kZXggN2I5MWFj NjE1ZjRhLi5jNWJhMGE1MGI0NzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZndp by5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvZndpby5jCkBAIC0xNCwxMSArMTQsMTEgQEAK ICNpbmNsdWRlICJ3ZnguaCIKICNpbmNsdWRlICJod2lvLmgiCiAKLS8vIEFkZHJlc3NlcyBiZWxv dyBhcmUgaW4gU1JBTSBhcmVhCisvKiBBZGRyZXNzZXMgYmVsb3cgYXJlIGluIFNSQU0gYXJlYSAq LwogI2RlZmluZSBXRlhfRE5MRF9GSUZPICAgICAgICAgICAgIDB4MDkwMDQwMDAKICNkZWZpbmUg ICAgIEROTERfQkxPQ0tfU0laRSAgICAgICAgICAgMHgwNDAwCi0jZGVmaW5lICAgICBETkxEX0ZJ Rk9fU0laRSAgICAgICAgICAgIDB4ODAwMCAvLyAoMzIgKiBETkxEX0JMT0NLX1NJWkUpCi0vLyBE b3dubG9hZCBDb250cm9sIEFyZWEgKERDQSkKKyNkZWZpbmUgICAgIEROTERfRklGT19TSVpFICAg ICAgICAgICAgMHg4MDAwIC8qICgzMiAqIEROTERfQkxPQ0tfU0laRSkgKi8KKy8qIERvd25sb2Fk IENvbnRyb2wgQXJlYSAoRENBKSAqLwogI2RlZmluZSBXRlhfRENBX0lNQUdFX1NJWkUgICAgICAg IDB4MDkwMEMwMDAKICNkZWZpbmUgV0ZYX0RDQV9QVVQgICAgICAgICAgICAgICAweDA5MDBDMDA0 CiAjZGVmaW5lIFdGWF9EQ0FfR0VUICAgICAgICAgICAgICAgMHgwOTAwQzAwOApAQCAtNTgsOCAr NTgsOCBAQAogI2RlZmluZSAgICAgRVJSX0VDQ19QVUJfS0VZICAgICAgICAgICAweDExCiAjZGVm aW5lICAgICBFUlJfTUFDX0tFWSAgICAgICAgICAgICAgIDB4MTgKIAotI2RlZmluZSBEQ0FfVElN RU9VVCAgNTAgLy8gbWlsbGlzZWNvbmRzCi0jZGVmaW5lIFdBS0VVUF9USU1FT1VUIDIwMCAvLyBt aWxsaXNlY29uZHMKKyNkZWZpbmUgRENBX1RJTUVPVVQgIDUwIC8qIG1pbGxpc2Vjb25kcyAqLwor I2RlZmluZSBXQUtFVVBfVElNRU9VVCAyMDAgLyogbWlsbGlzZWNvbmRzICovCiAKIHN0YXRpYyBj b25zdCBjaGFyICogY29uc3QgZndpb19lcnJvcnNbXSA9IHsKIAlbRVJSX0lOVkFMSURfU0VDX1RZ UEVdID0gIkludmFsaWQgc2VjdGlvbiB0eXBlIG9yIHdyb25nIGVuY3J5cHRpb24iLApAQCAtMTI1 LDcgKzEyNSw3IEBAIHN0YXRpYyBpbnQgZ2V0X2Zpcm13YXJlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2 LCB1MzIga2V5c2V0X2NoaXAsCiAKIAlkYXRhID0gKCpmdyktPmRhdGE7CiAJaWYgKG1lbWNtcChk YXRhLCAiS0VZU0VUIiwgNikgIT0gMCkgewotCQkvLyBMZWdhY3kgZmlybXdhcmUgZm9ybWF0CisJ CS8qIExlZ2FjeSBmaXJtd2FyZSBmb3JtYXQgKi8KIAkJKmZpbGVfb2Zmc2V0ID0gMDsKIAkJa2V5 c2V0X2ZpbGUgPSAweDkwOwogCX0gZWxzZSB7CkBAIC0yMDcsOCArMjA3LDkgQEAgc3RhdGljIGlu dCB1cGxvYWRfZmlybXdhcmUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHU4ICpkYXRhLCBz aXplX3QgbGVuKQogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CiAKLQkJLy8gVGhlIGRl dmljZSBzZWVtcyB0byBub3Qgc3VwcG9ydCB3cml0aW5nIDAgaW4gdGhpcyByZWdpc3RlcgotCQkv LyBkdXJpbmcgZmlyc3QgbG9vcAorCQkvKiBUaGUgZGV2aWNlIHNlZW1zIHRvIG5vdCBzdXBwb3J0 IHdyaXRpbmcgMCBpbiB0aGlzIHJlZ2lzdGVyCisJCSAqIGR1cmluZyBmaXJzdCBsb29wCisJCSAq LwogCQlvZmZzICs9IEROTERfQkxPQ0tfU0laRTsKIAkJcmV0ID0gc3JhbV9yZWdfd3JpdGUod2Rl diwgV0ZYX0RDQV9QVVQsIG9mZnMpOwogCQlpZiAocmV0IDwgMCkKQEAgLTI2NSw3ICsyNjYsNyBA QCBzdGF0aWMgaW50IGxvYWRfZmlybXdhcmVfc2VjdXJlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQog CWlmIChyZXQpCiAJCWdvdG8gZXJyb3I7CiAKLQlzcmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRE5M RF9GSUZPLCAweEZGRkZGRkZGKTsgLy8gRmlmbyBpbml0CisJc3JhbV9yZWdfd3JpdGUod2Rldiwg V0ZYX0ROTERfRklGTywgMHhGRkZGRkZGRik7IC8qIEZpZm8gaW5pdCAqLwogCXNyYW1fd3JpdGVf ZG1hX3NhZmUod2RldiwgV0ZYX0RDQV9GV19WRVJTSU9OLCAiXHgwMVx4MDBceDAwXHgwMCIsCiAJ CQkgICAgRldfVkVSU0lPTl9TSVpFKTsKIAlzcmFtX3dyaXRlX2RtYV9zYWZlKHdkZXYsIFdGWF9E Q0FfRldfU0lHTkFUVVJFLCBmdy0+ZGF0YSArIGZ3X29mZnNldCwKQEAgLTI4OSw3ICsyOTAsNyBA QCBzdGF0aWMgaW50IGxvYWRfZmlybXdhcmVfc2VjdXJlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQog CiAJc3JhbV9yZWdfd3JpdGUod2RldiwgV0ZYX0RDQV9IT1NUX1NUQVRVUywgSE9TVF9VUExPQURf Q09NUExFVEUpOwogCXJldCA9IHdhaXRfbmNwX3N0YXR1cyh3ZGV2LCBOQ1BfQVVUSF9PSyk7Ci0J Ly8gTGVnYWN5IFJPTSBzdXBwb3J0CisJLyogTGVnYWN5IFJPTSBzdXBwb3J0ICovCiAJaWYgKHJl dCA8IDApCiAJCXJldCA9IHdhaXRfbmNwX3N0YXR1cyh3ZGV2LCBOQ1BfUFVCX0tFWV9SRFkpOwog CWlmIChyZXQgPCAwKQpAQCAtMzM0LDcgKzMzNSw3IEBAIGludCB3ZnhfaW5pdF9kZXZpY2Uoc3Ry dWN0IHdmeF9kZXYgKndkZXYpCiB7CiAJaW50IHJldDsKIAlpbnQgaHdfcmV2aXNpb24sIGh3X3R5 cGU7Ci0JaW50IHdha2V1cF90aW1lb3V0ID0gNTA7IC8vIG1zCisJaW50IHdha2V1cF90aW1lb3V0 ID0gNTA7IC8qIG1zICovCiAJa3RpbWVfdCBub3csIHN0YXJ0OwogCXUzMiByZWc7CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9jbWQuaCBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvaGlmX2FwaV9jbWQuaAppbmRleCA1NTNkYzQ1MTQyZjIuLmIwYWExM2IyM2E1MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfYXBpX2NtZC5oCisrKyBiL2RyaXZlcnMv c3RhZ2luZy93ZngvaGlmX2FwaV9jbWQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHN0cnVjdCBoaWZf cmVxX3N0YXJ0X3NjYW5fYWx0IHsKIAl1OCAgICAgbnVtX29mX2NoYW5uZWxzOwogCV9fbGUzMiBt aW5fY2hhbm5lbF90aW1lOwogCV9fbGUzMiBtYXhfY2hhbm5lbF90aW1lOwotCV9fbGUzMiB0eF9w b3dlcl9sZXZlbDsgLy8gc2lnbmVkIHZhbHVlCisJX19sZTMyIHR4X3Bvd2VyX2xldmVsOyAvKiBz aWduZWQgdmFsdWUgKi8KIAlzdHJ1Y3QgaGlmX3NzaWRfZGVmIHNzaWRfZGVmW0hJRl9BUElfTUFY X05CX1NTSURTXTsKIAl1OCAgICAgY2hhbm5lbF9saXN0W107CiB9IF9fcGFja2VkOwpAQCAtMTc0 LDggKzE3NCw5IEBAIGVudW0gaGlmX2ZyYW1lX2Zvcm1hdCB7CiB9OwogCiBzdHJ1Y3QgaGlmX3Jl cV90eCB7Ci0JLy8gcGFja2V0X2lkIGlzIG5vdCBpbnRlcnByZXRlZCBieSB0aGUgZGV2aWNlLCBz byBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvCi0JLy8gZGVjbGFyZSBpdCBsaXR0bGUgZW5kaWFuCisJ LyogcGFja2V0X2lkIGlzIG5vdCBpbnRlcnByZXRlZCBieSB0aGUgZGV2aWNlLCBzbyBpdCBpcyBu b3QgbmVjZXNzYXJ5IHRvCisJICogZGVjbGFyZSBpdCBsaXR0bGUgZW5kaWFuCisJICovCiAJdTMy ICAgIHBhY2tldF9pZDsKIAl1OCAgICAgbWF4X3R4X3JhdGU7CiAJdTggICAgIHF1ZXVlX2lkOjI7 CkBAIC0yMTEsOCArMjEyLDkgQEAgZW51bSBoaWZfcW9zX2Fja3BsY3kgewogCiBzdHJ1Y3QgaGlm X2NuZl90eCB7CiAJX19sZTMyIHN0YXR1czsKLQkvLyBwYWNrZXRfaWQgaXMgY29waWVkIGZyb20g c3RydWN0IGhpZl9yZXFfdHggd2l0aG91dCBiZWVuIGludGVycHJldGVkCi0JLy8gYnkgdGhlIGRl dmljZSwgc28gaXQgaXMgbm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIGl0IGxpdHRsZSBlbmRpYW4K KwkvKiBwYWNrZXRfaWQgaXMgY29waWVkIGZyb20gc3RydWN0IGhpZl9yZXFfdHggd2l0aG91dCBi ZWVuIGludGVycHJldGVkCisJICogYnkgdGhlIGRldmljZSwgc28gaXQgaXMgbm90IG5lY2Vzc2Fy eSB0byBkZWNsYXJlIGl0IGxpdHRsZSBlbmRpYW4KKwkgKi8KIAl1MzIgICAgcGFja2V0X2lkOwog CXU4ICAgICB0eGVkX3JhdGU7CiAJdTggICAgIGFja19mYWlsdXJlczsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9nZW5lcmFsLmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4 L2hpZl9hcGlfZ2VuZXJhbC5oCmluZGV4IDcxNGUxZGQ4MDhlNi4uNWY3NGY4MjliN2RmIDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfZ2VuZXJhbC5oCisrKyBiL2RyaXZl cnMvc3RhZ2luZy93ZngvaGlmX2FwaV9nZW5lcmFsLmgKQEAgLTExNCw5ICsxMTQsMTAgQEAgZW51 bSBoaWZfYXBpX3JhdGVfaW5kZXggewogfTsKIAogc3RydWN0IGhpZl9pbmRfc3RhcnR1cCB7Ci0J Ly8gQXMgdGhlIG90aGVycywgdGhpcyBzdHJ1Y3QgaXMgaW50ZXJwcmV0ZWQgYXMgbGl0dGxlIGVu ZGlhbiBieSB0aGUKLQkvLyBkZXZpY2UuIEhvd2V2ZXIsIHRoaXMgc3RydWN0IGlzIGFsc28gdXNl ZCBieSB0aGUgZHJpdmVyLiBXZSBwcmVmZXIgdG8KLQkvLyBkZWNsYXJlIGl0IGluIG5hdGl2ZSBv cmRlciBhbmQgZG9pbmcgYnl0ZSBzd2FwIG9uIHJlY2VwdGlvbi4KKwkvKiBBcyB0aGUgb3RoZXJz LCB0aGlzIHN0cnVjdCBpcyBpbnRlcnByZXRlZCBhcyBsaXR0bGUgZW5kaWFuIGJ5IHRoZQorCSAq IGRldmljZS4gSG93ZXZlciwgdGhpcyBzdHJ1Y3QgaXMgYWxzbyB1c2VkIGJ5IHRoZSBkcml2ZXIu IFdlIHByZWZlciB0bworCSAqIGRlY2xhcmUgaXQgaW4gbmF0aXZlIG9yZGVyIGFuZCBkb2luZyBi eXRlIHN3YXAgb24gcmVjZXB0aW9uLgorCSAqLwogCV9fbGUzMiBzdGF0dXM7CiAJdTE2ICAgIGhh cmR3YXJlX2lkOwogCXU4ICAgICBvcG5bMTRdOwpAQCAtMTkzLDkgKzE5NCw5IEBAIHN0cnVjdCBo aWZfcnhfc3RhdHMgewogCV9fbGUzMiB0aHJvdWdocHV0OwogCV9fbGUzMiBuYl9yeF9ieV9yYXRl W0FQSV9SQVRFX05VTV9FTlRSSUVTXTsKIAlfX2xlMTYgcGVyW0FQSV9SQVRFX05VTV9FTlRSSUVT XTsKLQlfX2xlMTYgc25yW0FQSV9SQVRFX05VTV9FTlRSSUVTXTsgIC8vIHNpZ25lZCB2YWx1ZQot CV9fbGUxNiByc3NpW0FQSV9SQVRFX05VTV9FTlRSSUVTXTsgLy8gc2lnbmVkIHZhbHVlCi0JX19s ZTE2IGNmb1tBUElfUkFURV9OVU1fRU5UUklFU107ICAvLyBzaWduZWQgdmFsdWUKKwlfX2xlMTYg c25yW0FQSV9SQVRFX05VTV9FTlRSSUVTXTsgIC8qIHNpZ25lZCB2YWx1ZSAqLworCV9fbGUxNiBy c3NpW0FQSV9SQVRFX05VTV9FTlRSSUVTXTsgLyogc2lnbmVkIHZhbHVlICovCisJX19sZTE2IGNm b1tBUElfUkFURV9OVU1fRU5UUklFU107ICAvKiBzaWduZWQgdmFsdWUgKi8KIAlfX2xlMzIgZGF0 ZTsKIAlfX2xlMzIgcHdyX2Nsa19mcmVxOwogCXU4ICAgICBpc19leHRfcHdyX2NsazsKQEAgLTIw NSw4ICsyMDYsOCBAQCBzdHJ1Y3QgaGlmX3J4X3N0YXRzIHsKIHN0cnVjdCBoaWZfdHhfcG93ZXJf bG9vcF9pbmZvIHsKIAlfX2xlMTYgdHhfZ2Fpbl9kaWc7CiAJX19sZTE2IHR4X2dhaW5fcGE7Ci0J X19sZTE2IHRhcmdldF9wb3V0OyAvLyBzaWduZWQgdmFsdWUKLQlfX2xlMTYgcF9lc3RpbWF0aW9u OyAvLyBzaWduZWQgdmFsdWUKKwlfX2xlMTYgdGFyZ2V0X3BvdXQ7IC8qIHNpZ25lZCB2YWx1ZSAq LworCV9fbGUxNiBwX2VzdGltYXRpb247IC8qIHNpZ25lZCB2YWx1ZSAqLwogCV9fbGUxNiB2cGRl dDsKIAl1OCAgICAgbWVhc3VyZW1lbnRfaW5kZXg7CiAJdTggICAgIHJlc2VydmVkOwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfYXBpX21pYi5oIGIvZHJpdmVycy9zdGFnaW5n L3dmeC9oaWZfYXBpX21pYi5oCmluZGV4IGI3NmYxOTIyNGI1YS4uZGE1MzRmMjQ0NzU3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfbWliLmgKKysrIGIvZHJpdmVycy9z dGFnaW5nL3dmeC9oaWZfYXBpX21pYi5oCkBAIC0yMDksNyArMjA5LDcgQEAgc3RydWN0IGhpZl9t aWJfc2xvdF90aW1lIHsKIH0gX19wYWNrZWQ7CiAKIHN0cnVjdCBoaWZfbWliX2N1cnJlbnRfdHhf cG93ZXJfbGV2ZWwgewotCV9fbGUzMiBwb3dlcl9sZXZlbDsgLy8gc2lnbmVkIHZhbHVlCisJX19s ZTMyIHBvd2VyX2xldmVsOyAvKiBzaWduZWQgdmFsdWUgKi8KIH0gX19wYWNrZWQ7CiAKIHN0cnVj dCBoaWZfbWliX25vbl9lcnBfcHJvdGVjdGlvbiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdp bmcvd2Z4L2hpZl9yeC5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfcnguYwppbmRleCBmY2Zk NWNjYzlmMDEuLjY5NjNiNTRkNTU5MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9o aWZfcnguYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jCkBAIC0xOSwxMCArMTks MTAgQEAKIHN0YXRpYyBpbnQgaGlmX2dlbmVyaWNfY29uZmlybShzdHJ1Y3Qgd2Z4X2RldiAqd2Rl diwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaGlmX21zZyAqaGlmLCBjb25zdCB2b2lkICpidWYp CiB7Ci0JLy8gQWxsIGNvbmZpcm0gbWVzc2FnZXMgc3RhcnQgd2l0aCBzdGF0dXMKKwkvKiBBbGwg Y29uZmlybSBtZXNzYWdlcyBzdGFydCB3aXRoIHN0YXR1cyAqLwogCWludCBzdGF0dXMgPSBsZTMy X3RvX2NwdXAoKF9fbGUzMiAqKWJ1Zik7CiAJaW50IGNtZCA9IGhpZi0+aWQ7Ci0JaW50IGxlbiA9 IGxlMTZfdG9fY3B1KGhpZi0+bGVuKSAtIDQ7IC8vIGRyb3AgaGVhZGVyCisJaW50IGxlbiA9IGxl MTZfdG9fY3B1KGhpZi0+bGVuKSAtIDQ7IC8qIGRyb3AgaGVhZGVyICovCiAKIAlXQVJOKCFtdXRl eF9pc19sb2NrZWQoJndkZXYtPmhpZl9jbWQubG9jayksICJkYXRhIGxvY2tpbmcgZXJyb3IiKTsK IApAQCAtMjQ0LDcgKzI0NCw3IEBAIHN0YXRpYyBpbnQgaGlmX2dlbmVyaWNfaW5kaWNhdGlvbihz dHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIAkJcmV0dXJuIDA7CiAJY2FzZSBISUZfR0VORVJJQ19JTkRJ Q0FUSU9OX1RZUEVfUlhfU1RBVFM6CiAJCW11dGV4X2xvY2soJndkZXYtPnJ4X3N0YXRzX2xvY2sp OwotCQkvLyBPbGRlciBmaXJtd2FyZSBzZW5kIGEgZ2VuZXJpYyBpbmRpY2F0aW9uIGJlc2lkZSBS eFN0YXRzCisJCS8qIE9sZGVyIGZpcm13YXJlIHNlbmQgYSBnZW5lcmljIGluZGljYXRpb24gYmVz aWRlIFJ4U3RhdHMgKi8KIAkJaWYgKCF3ZnhfYXBpX29sZGVyX3RoYW4od2RldiwgMSwgNCkpCiAJ CQlkZXZfaW5mbyh3ZGV2LT5kZXYsICJSeCB0ZXN0IG9uZ29pbmcuIFRlbXBlcmF0dXJlOiAlZCBk ZWdyZWVzIENcbiIsCiAJCQkJIGJvZHktPmRhdGEucnhfc3RhdHMuY3VycmVudF90ZW1wKTsKQEAg LTI5Nyw3ICsyOTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKIAkJImJ1cyBjbG9jayBpcyB0 b28gc2xvdyAoPDFrSHopIiB9LAogCXsgSElGX0VSUk9SX0hJRl9SWF9EQVRBX1RPT19MQVJHRSwK IAkJIkhJRiBtZXNzYWdlIHRvbyBsYXJnZSIgfSwKLQkvLyBGb2xsb3dpbmcgZXJyb3JzIG9ubHkg ZXhpc3RzIGluIG9sZCBmaXJtd2FyZSB2ZXJzaW9uczoKKwkvKiBGb2xsb3dpbmcgZXJyb3JzIG9u bHkgZXhpc3RzIGluIG9sZCBmaXJtd2FyZSB2ZXJzaW9uczogKi8KIAl7IEhJRl9FUlJPUl9ISUZf VFhfUVVFVUVfRlVMTCwKIAkJIkhJRiBtZXNzYWdlcyBxdWV1ZSBpcyBmdWxsIiB9LAogCXsgSElG X0VSUk9SX0hJRl9CVVMsCkBAIC0zNzQsNyArMzc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB7 CiAJeyBISUZfSU5EX0lEX0dFTkVSSUMsICAgICAgICAgICAgICBoaWZfZ2VuZXJpY19pbmRpY2F0 aW9uIH0sCiAJeyBISUZfSU5EX0lEX0VSUk9SLCAgICAgICAgICAgICAgICBoaWZfZXJyb3JfaW5k aWNhdGlvbiB9LAogCXsgSElGX0lORF9JRF9FWENFUFRJT04sICAgICAgICAgICAgaGlmX2V4Y2Vw dGlvbl9pbmRpY2F0aW9uIH0sCi0JLy8gRklYTUU6IGFsbG9jYXRlIHNrYl9wIGZyb20gaGlmX3Jl Y2VpdmVfaW5kaWNhdGlvbiBhbmQgbWFrZSBpdCBnZW5lcmljCisJLyogRklYTUU6IGFsbG9jYXRl IHNrYl9wIGZyb20gaGlmX3JlY2VpdmVfaW5kaWNhdGlvbiBhbmQgbWFrZSBpdCBnZW5lcmljICov CiAJLy97IEhJRl9JTkRfSURfUlgsICAgICAgICAgICAgICAgICBoaWZfcmVjZWl2ZV9pbmRpY2F0 aW9uIH0sCiB9OwogCkBAIC0zODUsMTIgKzM4NSwxMyBAQCB2b2lkIHdmeF9oYW5kbGVfcngoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiAJaW50IGhpZl9pZCA9IGhp Zi0+aWQ7CiAKIAlpZiAoaGlmX2lkID09IEhJRl9JTkRfSURfUlgpIHsKLQkJLy8gaGlmX3JlY2Vp dmVfaW5kaWNhdGlvbiB0YWtlIGNhcmUgb2Ygc2tiIGxpZmV0aW1lCisJCS8qIGhpZl9yZWNlaXZl X2luZGljYXRpb24gdGFrZSBjYXJlIG9mIHNrYiBsaWZldGltZSAqLwogCQloaWZfcmVjZWl2ZV9p bmRpY2F0aW9uKHdkZXYsIGhpZiwgaGlmLT5ib2R5LCBza2IpOwogCQlyZXR1cm47CiAJfQotCS8v IE5vdGU6IG11dGV4X2lzX2xvY2sgY2F1c2UgYW4gaW1wbGljaXQgbWVtb3J5IGJhcnJpZXIgdGhh dCBwcm90ZWN0Ci0JLy8gYnVmX3NlbmQKKwkvKiBOb3RlOiBtdXRleF9pc19sb2NrIGNhdXNlIGFu IGltcGxpY2l0IG1lbW9yeSBiYXJyaWVyIHRoYXQgcHJvdGVjdAorCSAqIGJ1Zl9zZW5kCisJICov CiAJaWYgKG11dGV4X2lzX2xvY2tlZCgmd2Rldi0+aGlmX2NtZC5sb2NrKSAmJgogCSAgICB3ZGV2 LT5oaWZfY21kLmJ1Zl9zZW5kICYmCiAJICAgIHdkZXYtPmhpZl9jbWQuYnVmX3NlbmQtPmlkID09 IGhpZl9pZCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYyBiL2Ry aXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4LmMKaW5kZXggYzFjOTc5NDUzMTdlLi4yZmQ4YmJkMzZl MjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4LmMKKysrIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9oaWZfdHguYwpAQCAtNTUsMTUgKzU1LDE2IEBAIGludCB3ZnhfY21kX3Nl bmQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBoaWZfbXNnICpyZXF1ZXN0LAogCWludCB2 aWYgPSByZXF1ZXN0LT5pbnRlcmZhY2U7CiAJaW50IHJldDsKIAotCS8vIERvIG5vdCB3YWl0IGZv ciBhbnkgcmVwbHkgaWYgY2hpcCBpcyBmcm96ZW4KKwkvKiBEbyBub3Qgd2FpdCBmb3IgYW55IHJl cGx5IGlmIGNoaXAgaXMgZnJvemVuICovCiAJaWYgKHdkZXYtPmNoaXBfZnJvemVuKQogCQlyZXR1 cm4gLUVUSU1FRE9VVDsKIAogCW11dGV4X2xvY2soJndkZXYtPmhpZl9jbWQubG9jayk7CiAJV0FS Tih3ZGV2LT5oaWZfY21kLmJ1Zl9zZW5kLCAiZGF0YSBsb2NraW5nIGVycm9yIik7CiAKLQkvLyBO b3RlOiBjYWxsIHRvIGNvbXBsZXRlKCkgYmVsb3cgaGFzIGFuIGltcGxpY2l0IG1lbW9yeSBiYXJy aWVyIHRoYXQKLQkvLyBob3BlZnVsbHkgcHJvdGVjdCBidWZfc2VuZAorCS8qIE5vdGU6IGNhbGwg dG8gY29tcGxldGUoKSBiZWxvdyBoYXMgYW4gaW1wbGljaXQgbWVtb3J5IGJhcnJpZXIgdGhhdAor CSAqIGhvcGVmdWxseSBwcm90ZWN0IGJ1Zl9zZW5kCisJICovCiAJd2Rldi0+aGlmX2NtZC5idWZf c2VuZCA9IHJlcXVlc3Q7CiAJd2Rldi0+aGlmX2NtZC5idWZfcmVjdiA9IHJlcGx5OwogCXdkZXYt PmhpZl9jbWQubGVuX3JlY3YgPSByZXBseV9sZW47CkBAIC03Miw4ICs3Myw5IEBAIGludCB3Znhf Y21kX3NlbmQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHN0cnVjdCBoaWZfbXNnICpyZXF1ZXN0LAog CXdmeF9iaF9yZXF1ZXN0X3R4KHdkZXYpOwogCiAJaWYgKG5vX3JlcGx5KSB7Ci0JCS8vIENoaXAg d29uJ3QgcmVwbHkuIEdpdmUgZW5vdWdoIHRpbWUgdG8gdGhlIHdxIHRvIHNlbmQgdGhlCi0JCS8v IGJ1ZmZlci4KKwkJLyogQ2hpcCB3b24ndCByZXBseS4gR2l2ZSBlbm91Z2ggdGltZSB0byB0aGUg d3EgdG8gc2VuZCB0aGUKKwkJICogYnVmZmVyLgorCQkgKi8KIAkJbXNsZWVwKDEwMCk7CiAJCXdk ZXYtPmhpZl9jbWQuYnVmX3NlbmQgPSBOVUxMOwogCQltdXRleF91bmxvY2soJndkZXYtPmhpZl9j bWQubG9jayk7CkBAIC0xMTcsOCArMTE5LDkgQEAgaW50IHdmeF9jbWRfc2VuZChzdHJ1Y3Qgd2Z4 X2RldiAqd2Rldiwgc3RydWN0IGhpZl9tc2cgKnJlcXVlc3QsCiAJcmV0dXJuIHJldDsKIH0KIAot Ly8gVGhpcyBmdW5jdGlvbiBpcyBzcGVjaWFsLiBBZnRlciBISUZfUkVRX0lEX1NIVVRfRE9XTiwg Y2hpcCB3b24ndCByZXBseSB0byBhbnkKLS8vIHJlcXVlc3QgYW55bW9yZS4gT2J2aW91c2x5LCBv bmx5IGNhbGwgdGhpcyBmdW5jdGlvbiBkdXJpbmcgZGV2aWNlIHVucmVnaXN0ZXIuCisvKiBUaGlz IGZ1bmN0aW9uIGlzIHNwZWNpYWwuIEFmdGVyIEhJRl9SRVFfSURfU0hVVF9ET1dOLCBjaGlwIHdv bid0IHJlcGx5IHRvIGFueQorICogcmVxdWVzdCBhbnltb3JlLiBPYnZpb3VzbHksIG9ubHkgY2Fs bCB0aGlzIGZ1bmN0aW9uIGR1cmluZyBkZXZpY2UgdW5yZWdpc3Rlci4KKyAqLwogaW50IGhpZl9z aHV0ZG93bihzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIHsKIAlpbnQgcmV0OwpAQCAtMjc3LDcgKzI4 MCw3IEBAIGludCBoaWZfc3RvcF9zY2FuKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogewogCWludCBy ZXQ7CiAJc3RydWN0IGhpZl9tc2cgKmhpZjsKLQkvLyBib2R5IGFzc29jaWF0ZWQgdG8gSElGX1JF UV9JRF9TVE9QX1NDQU4gaXMgZW1wdHkKKwkvKiBib2R5IGFzc29jaWF0ZWQgdG8gSElGX1JFUV9J RF9TVE9QX1NDQU4gaXMgZW1wdHkgKi8KIAl3ZnhfYWxsb2NfaGlmKDAsICZoaWYpOwogCiAJaWYg KCFoaWYpCkBAIC0zNDEsMTYgKzM0NCwxNyBAQCBpbnQgaGlmX2FkZF9rZXkoc3RydWN0IHdmeF9k ZXYgKndkZXYsIGNvbnN0IHN0cnVjdCBoaWZfcmVxX2FkZF9rZXkgKmFyZykKIHsKIAlpbnQgcmV0 OwogCXN0cnVjdCBoaWZfbXNnICpoaWY7Ci0JLy8gRklYTUU6IG9ubHkgc2VuZCBuZWNlc3Nhcnkg Yml0cworCS8qIEZJWE1FOiBvbmx5IHNlbmQgbmVjZXNzYXJ5IGJpdHMgKi8KIAlzdHJ1Y3QgaGlm X3JlcV9hZGRfa2V5ICpib2R5ID0gd2Z4X2FsbG9jX2hpZihzaXplb2YoKmJvZHkpLCAmaGlmKTsK IAogCWlmICghaGlmKQogCQlyZXR1cm4gLUVOT01FTTsKLQkvLyBGSVhNRTogc3dhcCBieXRlcyBh cyBuZWNlc3NhcnkgaW4gYm9keQorCS8qIEZJWE1FOiBzd2FwIGJ5dGVzIGFzIG5lY2Vzc2FyeSBp biBib2R5ICovCiAJbWVtY3B5KGJvZHksIGFyZywgc2l6ZW9mKCpib2R5KSk7CiAJaWYgKHdmeF9h cGlfb2xkZXJfdGhhbih3ZGV2LCAxLCA1KSkKLQkJLy8gTGVnYWN5IGZpcm13YXJlcyBleHBlY3Qg dGhhdCBhZGRfa2V5IHRvIGJlIHNlbnQgb24gcmlnaHQKLQkJLy8gaW50ZXJmYWNlLgorCQkvKiBM ZWdhY3kgZmlybXdhcmVzIGV4cGVjdCB0aGF0IGFkZF9rZXkgdG8gYmUgc2VudCBvbiByaWdodAor CQkgKiBpbnRlcmZhY2UuCisJCSAqLwogCQl3ZnhfZmlsbF9oZWFkZXIoaGlmLCBhcmctPmludF9p ZCwgSElGX1JFUV9JRF9BRERfS0VZLAogCQkJCXNpemVvZigqYm9keSkpOwogCWVsc2UKQEAgLTM5 NCw3ICszOTgsNyBAQCBpbnQgaGlmX3NldF9lZGNhX3F1ZXVlX3BhcmFtcyhzdHJ1Y3Qgd2Z4X3Zp ZiAqd3ZpZiwgdTE2IHF1ZXVlLAogCWJvZHktPmN3X21heCA9IGNwdV90b19sZTE2KGFyZy0+Y3df bWF4KTsKIAlib2R5LT50eF9vcF9saW1pdCA9IGNwdV90b19sZTE2KGFyZy0+dHhvcCAqIFVTRUNf UEVSX1RYT1ApOwogCWJvZHktPnF1ZXVlX2lkID0gMyAtIHF1ZXVlOwotCS8vIEFQSSAyLjAgaGFz IGNoYW5nZWQgcXVldWUgSURzIHZhbHVlcworCS8qIEFQSSAyLjAgaGFzIGNoYW5nZWQgcXVldWUg SURzIHZhbHVlcyAqLwogCWlmICh3ZnhfYXBpX29sZGVyX3RoYW4od3ZpZi0+d2RldiwgMiwgMCkg JiYgcXVldWUgPT0gSUVFRTgwMjExX0FDX0JFKQogCQlib2R5LT5xdWV1ZV9pZCA9IEhJRl9RVUVV RV9JRF9CQUNLR1JPVU5EOwogCWlmICh3ZnhfYXBpX29sZGVyX3RoYW4od3ZpZi0+d2RldiwgMiwg MCkgJiYgcXVldWUgPT0gSUVFRTgwMjExX0FDX0JLKQpAQCAtNDE5LDcgKzQyMyw3IEBAIGludCBo aWZfc2V0X3BtKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBib29sIHBzLCBpbnQgZHluYW1pY19wc190 aW1lb3V0KQogCQlyZXR1cm4gLUVOT01FTTsKIAlpZiAocHMpIHsKIAkJYm9keS0+ZW50ZXJfcHNt ID0gMTsKLQkJLy8gRmlybXdhcmUgZG9lcyBub3Qgc3VwcG9ydCBtb3JlIHRoYW4gMTI4bXMKKwkJ LyogRmlybXdhcmUgZG9lcyBub3Qgc3VwcG9ydCBtb3JlIHRoYW4gMTI4bXMgKi8KIAkJYm9keS0+ ZmFzdF9wc21faWRsZV9wZXJpb2QgPSBtaW4oZHluYW1pY19wc190aW1lb3V0ICogMiwgMjU1KTsK IAkJaWYgKGJvZHktPmZhc3RfcHNtX2lkbGVfcGVyaW9kKQogCQkJYm9keS0+ZmFzdF9wc20gPSAx OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHhfbWliLmMgYi9kcml2ZXJz L3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuYwppbmRleCBjNzQ1MjcxOTQ0ZTkuLjQ1ZTUzMWQ5OTZi ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHhfbWliLmMKKysrIGIvZHJp dmVycy9zdGFnaW5nL3dmeC9oaWZfdHhfbWliLmMKQEAgLTY4LDcgKzY4LDcgQEAgaW50IGhpZl9n ZXRfY291bnRlcnNfdGFibGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCB2aWZfaWQsCiAJCQkg ICBzdHJ1Y3QgaGlmX21pYl9leHRlbmRlZF9jb3VudF90YWJsZSAqYXJnKQogewogCWlmICh3Znhf YXBpX29sZGVyX3RoYW4od2RldiwgMSwgMykpIHsKLQkJLy8gZXh0ZW5kZWRfY291bnRfdGFibGUg aXMgd2lkZXIgdGhhbiBjb3VudF90YWJsZQorCQkvKiBleHRlbmRlZF9jb3VudF90YWJsZSBpcyB3 aWRlciB0aGFuIGNvdW50X3RhYmxlICovCiAJCW1lbXNldChhcmcsIDB4RkYsIHNpemVvZigqYXJn KSk7CiAJCXJldHVybiBoaWZfcmVhZF9taWIod2RldiwgdmlmX2lkLCBISUZfTUlCX0lEX0NPVU5U RVJTX1RBQkxFLAogCQkJCSAgICBhcmcsIHNpemVvZihzdHJ1Y3QgaGlmX21pYl9jb3VudF90YWJs ZSkpOwpAQCAtMjQ2LDcgKzI0Niw3IEBAIGludCBoaWZfc2V0X2FycF9pcHY0X2ZpbHRlcihzdHJ1 Y3Qgd2Z4X3ZpZiAqd3ZpZiwgaW50IGlkeCwgX19iZTMyICphZGRyKQogCX07CiAKIAlpZiAoYWRk cikgewotCQkvLyBDYXV0aW9uOiB0eXBlIG9mIGFkZHIgaXMgX19iZTMyCisJCS8qIENhdXRpb246 IHR5cGUgb2YgYWRkciBpcyBfX2JlMzIgKi8KIAkJbWVtY3B5KGFyZy5pcHY0X2FkZHJlc3MsIGFk ZHIsIHNpemVvZihhcmcuaXB2NF9hZGRyZXNzKSk7CiAJCWFyZy5hcnBfZW5hYmxlID0gSElGX0FS UF9OU19GSUxURVJJTkdfRU5BQkxFOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93 ZngvaHdpby5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmMKaW5kZXggMzZmYmM1YjVkNjRj Li4zMGViODg4ODMwZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5jCisr KyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5jCkBAIC0zMSw3ICszMSw3IEBAIHN0YXRpYyBp bnQgcmVhZDMyKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgKnZhbCkKIAlpbnQg cmV0OwogCV9fbGUzMiAqdG1wID0ga21hbGxvYyhzaXplb2YodTMyKSwgR0ZQX0tFUk5FTCk7CiAK LQkqdmFsID0gfjA7IC8vIE5ldmVyIHJldHVybiB1bmRlZmluZWQgdmFsdWUKKwkqdmFsID0gfjA7 IC8qIE5ldmVyIHJldHVybiB1bmRlZmluZWQgdmFsdWUgKi8KIAlpZiAoIXRtcCkKIAkJcmV0dXJu IC1FTk9NRU07CiAJcmV0ID0gd2Rldi0+aHdidXNfb3BzLT5jb3B5X2Zyb21faW8od2Rldi0+aHdi dXNfcHJpdiwgcmVnLCB0bXAsCkBAIC0xNTMsNyArMTUzLDcgQEAgc3RhdGljIGludCBpbmRpcmVj dF9yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBpbnQgcmVnLCB1MzIgYWRkciwKIAogZXJyOgog CWlmIChyZXQgPCAwKQotCQltZW1zZXQoYnVmLCAweEZGLCBsZW4pOyAvLyBOZXZlciByZXR1cm4g dW5kZWZpbmVkIHZhbHVlCisJCW1lbXNldChidWYsIDB4RkYsIGxlbik7IC8qIE5ldmVyIHJldHVy biB1bmRlZmluZWQgdmFsdWUgKi8KIAlyZXR1cm4gcmV0OwogfQogCkBAIC0zMzUsNyArMzM1LDcg QEAgaW50IGlncHJfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIGludCBpbmRleCwgdTMy ICp2YWwpCiB7CiAJaW50IHJldDsKIAotCSp2YWwgPSB+MDsgLy8gTmV2ZXIgcmV0dXJuIHVuZGVm aW5lZCB2YWx1ZQorCSp2YWwgPSB+MDsgLyogTmV2ZXIgcmV0dXJuIHVuZGVmaW5lZCB2YWx1ZSAq LwogCXJldCA9IHdyaXRlMzJfbG9ja2VkKHdkZXYsIFdGWF9SRUdfU0VUX0dFTl9SX1csIElHUFJf UlcgfCBpbmRleCA8PCAyNCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmgK aW5kZXggNWU0Mzk5M2IxNGQ4Li45YTM2MWVkOTVlY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Rh Z2luZy93ZngvaHdpby5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaHdpby5oCkBAIC0yNywz MCArMjcsMzAgQEAgaW50IHNyYW1fcmVnX3dyaXRlKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIg YWRkciwgdTMyIHZhbCk7CiBpbnQgYWhiX3JlZ19yZWFkKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1 MzIgYWRkciwgdTMyICp2YWwpOwogaW50IGFoYl9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndk ZXYsIHUzMiBhZGRyLCB1MzIgdmFsKTsKIAotI2RlZmluZSBDRkdfRVJSX1NQSV9GUkFNRSAgICAg ICAgICAweDAwMDAwMDAxIC8vIG9ubHkgd2l0aCBTUEkKLSNkZWZpbmUgQ0ZHX0VSUl9TRElPX0JV Rl9NSVNNQVRDSCAgMHgwMDAwMDAwMSAvLyBvbmx5IHdpdGggU0RJTworI2RlZmluZSBDRkdfRVJS X1NQSV9GUkFNRSAgICAgICAgICAweDAwMDAwMDAxIC8qIG9ubHkgd2l0aCBTUEkgKi8KKyNkZWZp bmUgQ0ZHX0VSUl9TRElPX0JVRl9NSVNNQVRDSCAgMHgwMDAwMDAwMSAvKiBvbmx5IHdpdGggU0RJ TyAqLwogI2RlZmluZSBDRkdfRVJSX0JVRl9VTkRFUlJVTiAgICAgICAweDAwMDAwMDAyCiAjZGVm aW5lIENGR19FUlJfREFUQV9JTl9UT09fTEFSR0UgIDB4MDAwMDAwMDQKICNkZWZpbmUgQ0ZHX0VS Ul9IT1NUX05PX09VVF9RVUVVRSAgMHgwMDAwMDAwOAogI2RlZmluZSBDRkdfRVJSX0JVRl9PVkVS UlVOICAgICAgICAweDAwMDAwMDEwCiAjZGVmaW5lIENGR19FUlJfREFUQV9PVVRfVE9PX0xBUkdF IDB4MDAwMDAwMjAKICNkZWZpbmUgQ0ZHX0VSUl9IT1NUX05PX0lOX1FVRVVFICAgMHgwMDAwMDA0 MAotI2RlZmluZSBDRkdfRVJSX0hPU1RfQ1JDX01JU1MgICAgICAweDAwMDAwMDgwIC8vIG9ubHkg d2l0aCBTRElPCi0jZGVmaW5lIENGR19TUElfSUdOT1JFX0NTICAgICAgICAgIDB4MDAwMDAwODAg Ly8gb25seSB3aXRoIFNQSQotI2RlZmluZSBDRkdfQllURV9PUkRFUl9NQVNLICAgICAgICAweDAw MDAwMzAwIC8vIG9ubHkgd3JpdGFibGUgd2l0aCBTUEkKKyNkZWZpbmUgQ0ZHX0VSUl9IT1NUX0NS Q19NSVNTICAgICAgMHgwMDAwMDA4MCAvKiBvbmx5IHdpdGggU0RJTyAqLworI2RlZmluZSBDRkdf U1BJX0lHTk9SRV9DUyAgICAgICAgICAweDAwMDAwMDgwIC8qIG9ubHkgd2l0aCBTUEkgKi8KKyNk ZWZpbmUgQ0ZHX0JZVEVfT1JERVJfTUFTSyAgICAgICAgMHgwMDAwMDMwMCAvKiBvbmx5IHdyaXRh YmxlIHdpdGggU1BJICovCiAjZGVmaW5lICAgICBDRkdfQllURV9PUkRFUl9CQURDICAgIDB4MDAw MDAwMDAKICNkZWZpbmUgICAgIENGR19CWVRFX09SREVSX0RDQkEgICAgMHgwMDAwMDEwMAotI2Rl ZmluZSAgICAgQ0ZHX0JZVEVfT1JERVJfQUJDRCAgICAweDAwMDAwMjAwIC8vIFNESU8gYWx3YXlz IHVzZSB0aGlzIHZhbHVlCisjZGVmaW5lICAgICBDRkdfQllURV9PUkRFUl9BQkNEICAgIDB4MDAw MDAyMDAgLyogU0RJTyBhbHdheXMgdXNlIHRoaXMgdmFsdWUgKi8KICNkZWZpbmUgQ0ZHX0RJUkVD VF9BQ0NFU1NfTU9ERSAgICAgMHgwMDAwMDQwMAogI2RlZmluZSBDRkdfUFJFRkVUQ0hfQUhCICAg ICAgICAgICAweDAwMDAwODAwCiAjZGVmaW5lIENGR19ESVNBQkxFX0NQVV9DTEsgICAgICAgIDB4 MDAwMDEwMDAKICNkZWZpbmUgQ0ZHX1BSRUZFVENIX1NSQU0gICAgICAgICAgMHgwMDAwMjAwMAog I2RlZmluZSBDRkdfQ1BVX1JFU0VUICAgICAgICAgICAgICAweDAwMDA0MDAwCi0jZGVmaW5lIENG R19TRElPX0RJU0FCTEVfSVJRICAgICAgIDB4MDAwMDgwMDAgLy8gb25seSB3aXRoIFNESU8KKyNk ZWZpbmUgQ0ZHX1NESU9fRElTQUJMRV9JUlEgICAgICAgMHgwMDAwODAwMCAvKiBvbmx5IHdpdGgg U0RJTyAqLwogI2RlZmluZSBDRkdfSVJRX0VOQUJMRV9EQVRBICAgICAgICAweDAwMDEwMDAwCiAj ZGVmaW5lIENGR19JUlFfRU5BQkxFX1dSRFkgICAgICAgIDB4MDAwMjAwMDAKICNkZWZpbmUgQ0ZH X0NMS19SSVNFX0VER0UgICAgICAgICAgMHgwMDA0MDAwMAotI2RlZmluZSBDRkdfU0RJT19ESVNB QkxFX0NSQ19DSEsgICAweDAwMDgwMDAwIC8vIG9ubHkgd2l0aCBTRElPCisjZGVmaW5lIENGR19T RElPX0RJU0FCTEVfQ1JDX0NISyAgIDB4MDAwODAwMDAgLyogb25seSB3aXRoIFNESU8gKi8KICNk ZWZpbmUgQ0ZHX1JFU0VSVkVEICAgICAgICAgICAgICAgMHgwMEYwMDAwMAogI2RlZmluZSBDRkdf REVWSUNFX0lEX01BSk9SICAgICAgICAweDA3MDAwMDAwCiAjZGVmaW5lIENGR19ERVZJQ0VfSURf UkVTRVJWRUQgICAgIDB4NzgwMDAwMDAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93Zngv a2V5LmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2tleS5jCmluZGV4IDJhYjgyYmVkNGMxYi4uNTFh NTI4MTAyMDE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2tleS5jCisrKyBiL2Ry aXZlcnMvc3RhZ2luZy93Zngva2V5LmMKQEAgLTg0LDEwICs4NCwxMCBAQCBzdGF0aWMgdTggZmls bF90a2lwX2dyb3VwKHN0cnVjdCBoaWZfdGtpcF9ncm91cF9rZXkgKm1zZywKIAltZW1jcHkobXNn LT50a2lwX2tleV9kYXRhLCBrZXlidWYsIHNpemVvZihtc2ctPnRraXBfa2V5X2RhdGEpKTsKIAlr ZXlidWYgKz0gc2l6ZW9mKG1zZy0+dGtpcF9rZXlfZGF0YSk7CiAJaWYgKGlmdHlwZSA9PSBOTDgw MjExX0lGVFlQRV9BUCkKLQkJLy8gVXNlIFR4IE1JQyBLZXkKKwkJLyogVXNlIFR4IE1JQyBLZXkg Ki8KIAkJbWVtY3B5KG1zZy0+cnhfbWljX2tleSwga2V5YnVmICsgMCwgc2l6ZW9mKG1zZy0+cnhf bWljX2tleSkpOwogCWVsc2UKLQkJLy8gVXNlIFJ4IE1JQyBLZXkKKwkJLyogVXNlIFJ4IE1JQyBL ZXkgKi8KIAkJbWVtY3B5KG1zZy0+cnhfbWljX2tleSwga2V5YnVmICsgOCwgc2l6ZW9mKG1zZy0+ cnhfbWljX2tleSkpOwogCXJldHVybiBISUZfS0VZX1RZUEVfVEtJUF9HUk9VUDsKIH0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9t YWluLmMKaW5kZXggMDJiMmUxYzRlZTEyLi5lNWU4NTJkZGY5YzMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3RhZ2luZy93ZngvbWFpbi5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvbWFpbi5jCkBA IC05Miw3ICs5Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9i YW5kIHdmeF9iYW5kXzJnaHogPSB7CiAJLmJpdHJhdGVzID0gd2Z4X3JhdGVzLAogCS5uX2JpdHJh dGVzID0gQVJSQVlfU0laRSh3ZnhfcmF0ZXMpLAogCS5odF9jYXAgPSB7Ci0JCS8vIFJlY2VpdmUg Y2FwcworCQkvKiBSZWNlaXZlIGNhcHMgKi8KIAkJLmNhcCA9IElFRUU4MDIxMV9IVF9DQVBfR1JO X0ZMRCB8IElFRUU4MDIxMV9IVF9DQVBfU0dJXzIwIHwKIAkJICAgICAgIElFRUU4MDIxMV9IVF9D QVBfTUFYX0FNU0RVIHwKIAkJICAgICAgICgxIDw8IElFRUU4MDIxMV9IVF9DQVBfUlhfU1RCQ19T SElGVCksCkBAIC0xMDAsNyArMTAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFf c3VwcG9ydGVkX2JhbmQgd2Z4X2JhbmRfMmdoeiA9IHsKIAkJLmFtcGR1X2ZhY3RvciA9IElFRUU4 MDIxMV9IVF9NQVhfQU1QRFVfMTZLLAogCQkuYW1wZHVfZGVuc2l0eSA9IElFRUU4MDIxMV9IVF9N UERVX0RFTlNJVFlfTk9ORSwKIAkJLm1jcyA9IHsKLQkJCS5yeF9tYXNrID0geyAweEZGIH0sIC8v IE1DUzAgdG8gTUNTNworCQkJLnJ4X21hc2sgPSB7IDB4RkYgfSwgLyogTUNTMCB0byBNQ1M3ICov CiAJCQkucnhfaGlnaGVzdCA9IGNwdV90b19sZTE2KDcyKSwKIAkJCS50eF9wYXJhbXMgPSBJRUVF ODAyMTFfSFRfTUNTX1RYX0RFRklORUQsCiAJCX0sCkBAIC0yOTQsNyArMjk0LDcgQEAgc3RydWN0 IHdmeF9kZXYgKndmeF9pbml0X2NvbW1vbihzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJaHctPndpcGh5 LT5uX2lmYWNlX2NvbWJpbmF0aW9ucyA9IEFSUkFZX1NJWkUod2Z4X2lmYWNlX2NvbWJpbmF0aW9u cyk7CiAJaHctPndpcGh5LT5pZmFjZV9jb21iaW5hdGlvbnMgPSB3ZnhfaWZhY2VfY29tYmluYXRp b25zOwogCWh3LT53aXBoeS0+YmFuZHNbTkw4MDIxMV9CQU5EXzJHSFpdID0gZGV2bV9rbWFsbG9j KGRldiwgc2l6ZW9mKHdmeF9iYW5kXzJnaHopLCBHRlBfS0VSTkVMKTsKLQkvLyBGSVhNRTogYWxz byBjb3B5IHdmeF9yYXRlcyBhbmQgd2Z4XzJnaHpfY2hhbnRhYmxlCisJLyogRklYTUU6IGFsc28g Y29weSB3ZnhfcmF0ZXMgYW5kIHdmeF8yZ2h6X2NoYW50YWJsZSAqLwogCW1lbWNweShody0+d2lw aHktPmJhbmRzW05MODAyMTFfQkFORF8yR0haXSwgJndmeF9iYW5kXzJnaHosCiAJICAgICAgIHNp emVvZih3ZnhfYmFuZF8yZ2h6KSk7CiAKQEAgLTMzNiw4ICszMzYsOSBAQCBpbnQgd2Z4X3Byb2Jl KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCWludCBlcnI7CiAJc3RydWN0IGdwaW9fZGVzYyAqZ3Bp b19zYXZlZDsKIAotCS8vIER1cmluZyBmaXJzdCBwYXJ0IG9mIGJvb3QsIGdwaW9fd2FrZXVwIGNh bm5vdCB5ZXQgYmVlbiB1c2VkLiBTbwotCS8vIHByZXZlbnQgYmgoKSB0byB0b3VjaCBpdC4KKwkv KiBEdXJpbmcgZmlyc3QgcGFydCBvZiBib290LCBncGlvX3dha2V1cCBjYW5ub3QgeWV0IGJlZW4g dXNlZC4gU28KKwkgKiBwcmV2ZW50IGJoKCkgdG8gdG91Y2ggaXQuCisJICovCiAJZ3Bpb19zYXZl ZCA9IHdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwOwogCXdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwID0g TlVMTDsKIAl3ZGV2LT5wb2xsX2lycSA9IHRydWU7CkBAIC0zNjAsNyArMzYxLDcgQEAgaW50IHdm eF9wcm9iZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAkJZ290byBlcnIwOwogCX0KIAotCS8vIEZJ WE1FOiBmaWxsIHdpcGh5Ojpod192ZXJzaW9uCisJLyogRklYTUU6IGZpbGwgd2lwaHk6Omh3X3Zl cnNpb24gKi8KIAlkZXZfaW5mbyh3ZGV2LT5kZXYsICJzdGFydGVkIGZpcm13YXJlICVkLiVkLiVk IFwiJXNcIiAoQVBJOiAlZC4lZCwga2V5c2V0OiAlMDJYLCBjYXBzOiAweCUuOFgpXG4iLAogCQkg d2Rldi0+aHdfY2Fwcy5maXJtd2FyZV9tYWpvciwgd2Rldi0+aHdfY2Fwcy5maXJtd2FyZV9taW5v ciwKIAkJIHdkZXYtPmh3X2NhcHMuZmlybXdhcmVfYnVpbGQsIHdkZXYtPmh3X2NhcHMuZmlybXdh cmVfbGFiZWwsCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmMgYi9kcml2 ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmMKaW5kZXggZTVlNzU5NTU2NWVlLi43YTNiYTNjMzg5MjUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuYworKysgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L3F1ZXVlLmMKQEAgLTMyLDcgKzMyLDcgQEAgdm9pZCB3ZnhfdHhfZmx1c2goc3Ry dWN0IHdmeF9kZXYgKndkZXYpCiB7CiAJaW50IHJldDsKIAotCS8vIERvIG5vdCB3YWl0IGZvciBh bnkgcmVwbHkgaWYgY2hpcCBpcyBmcm96ZW4KKwkvKiBEbyBub3Qgd2FpdCBmb3IgYW55IHJlcGx5 IGlmIGNoaXAgaXMgZnJvemVuICovCiAJaWYgKHdkZXYtPmNoaXBfZnJvemVuKQogCQlyZXR1cm47 CiAKQEAgLTQ1LDcgKzQ1LDcgQEAgdm9pZCB3ZnhfdHhfZmx1c2goc3RydWN0IHdmeF9kZXYgKndk ZXYpCiAJCWRldl93YXJuKHdkZXYtPmRldiwgImNhbm5vdCBmbHVzaCB0eCBidWZmZXJzICglZCBz dGlsbCBidXN5KVxuIiwKIAkJCSB3ZGV2LT5oaWYudHhfYnVmZmVyc191c2VkKTsKIAkJd2Z4X3Bl bmRpbmdfZHVtcF9vbGRfZnJhbWVzKHdkZXYsIDMwMDApOwotCQkvLyBGSVhNRTogZHJvcCBwZW5k aW5nIGZyYW1lcyBoZXJlCisJCS8qIEZJWE1FOiBkcm9wIHBlbmRpbmcgZnJhbWVzIGhlcmUgKi8K IAkJd2Rldi0+Y2hpcF9mcm96ZW4gPSB0cnVlOwogCX0KIAltdXRleF91bmxvY2soJndkZXYtPmhp Zl9jbWQubG9jayk7CkBAIC02MCw5ICs2MCwxMCBAQCB2b2lkIHdmeF90eF9sb2NrX2ZsdXNoKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCiB2b2lkIHdmeF90eF9xdWV1ZXNfaW5pdChzdHJ1Y3Qgd2Z4 X3ZpZiAqd3ZpZikKIHsKLQkvLyBUaGUgZGV2aWNlIGlzIGluIGNoYXJnZSB0byByZXNwZWN0IHRo ZSBkZXRhaWxzIG9mIHRoZSBRb1MgcGFyYW1ldGVycy4KLQkvLyBUaGUgZHJpdmVyIGp1c3QgZW5z dXJlIHRoYXQgaXQgcm91Z2h0bHkgcmVzcGVjdCB0aGUgcHJpb3JpdGllcyB0bwotCS8vIGF2b2lk IGFueSBzaG9ydGFnZS4KKwkvKiBUaGUgZGV2aWNlIGlzIGluIGNoYXJnZSB0byByZXNwZWN0IHRo ZSBkZXRhaWxzIG9mIHRoZSBRb1MgcGFyYW1ldGVycy4KKwkgKiBUaGUgZHJpdmVyIGp1c3QgZW5z dXJlIHRoYXQgaXQgcm91Z2h0bHkgcmVzcGVjdCB0aGUgcHJpb3JpdGllcyB0bworCSAqIGF2b2lk IGFueSBzaG9ydGFnZS4KKwkgKi8KIAljb25zdCBpbnQgcHJpb3JpdGllc1tJRUVFODAyMTFfTlVN X0FDU10gPSB7IDEsIDIsIDY0LCAxMjggfTsKIAlpbnQgaTsKIApAQCAtMjE3LDggKzIxOCw5IEBA IGJvb2wgd2Z4X3R4X3F1ZXVlc19oYXNfY2FiKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogCWlmICh3 dmlmLT52aWYtPnR5cGUgIT0gTkw4MDIxMV9JRlRZUEVfQVApCiAJCXJldHVybiBmYWxzZTsKIAlm b3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX05VTV9BQ1M7ICsraSkKLQkJLy8gTm90ZTogc2luY2Ug b25seSBBUCBjYW4gaGF2ZSBtY2FzdCBmcmFtZXMgaW4gcXVldWUgYW5kIG9ubHkKLQkJLy8gb25l IHZpZiBjYW4gYmUgQVAsIGFsbCBxdWV1ZWQgZnJhbWVzIGhhcyBzYW1lIGludGVyZmFjZSBpZAor CQkvKiBOb3RlOiBzaW5jZSBvbmx5IEFQIGNhbiBoYXZlIG1jYXN0IGZyYW1lcyBpbiBxdWV1ZSBh bmQgb25seQorCQkgKiBvbmUgdmlmIGNhbiBiZSBBUCwgYWxsIHF1ZXVlZCBmcmFtZXMgaGFzIHNh bWUgaW50ZXJmYWNlIGlkCisJCSAqLwogCQlpZiAoIXNrYl9xdWV1ZV9lbXB0eV9sb2NrbGVzcygm d3ZpZi0+dHhfcXVldWVbaV0uY2FiKSkKIAkJCXJldHVybiB0cnVlOwogCXJldHVybiBmYWxzZTsK QEAgLTIzNyw3ICsyMzksNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKndmeF90eF9xdWV1ZXNf Z2V0X3NrYihzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAlzdHJ1Y3QgaGlmX21zZyAqaGlmOwogCXN0 cnVjdCBza19idWZmICpza2I7CiAKLQkvLyBzb3J0IHRoZSBxdWV1ZXMKKwkvKiBzb3J0IHRoZSBx dWV1ZXMgKi8KIAl3dmlmID0gTlVMTDsKIAl3aGlsZSAoKHd2aWYgPSB3dmlmX2l0ZXJhdGUod2Rl diwgd3ZpZikpICE9IE5VTEwpIHsKIAkJZm9yIChpID0gMDsgaSA8IElFRUU4MDIxMV9OVU1fQUNT OyBpKyspIHsKQEAgLTI1OSw5ICsyNjEsMTAgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp3Znhf dHhfcXVldWVzX2dldF9za2Ioc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJCQlza2IgPSBza2JfZGVx dWV1ZSgmcXVldWVzW2ldLT5jYWIpOwogCQkJaWYgKCFza2IpCiAJCQkJY29udGludWU7Ci0JCQkv LyBOb3RlOiBzaW5jZSBvbmx5IEFQIGNhbiBoYXZlIG1jYXN0IGZyYW1lcyBpbiBxdWV1ZQotCQkJ Ly8gYW5kIG9ubHkgb25lIHZpZiBjYW4gYmUgQVAsIGFsbCBxdWV1ZWQgZnJhbWVzIGhhcwotCQkJ Ly8gc2FtZSBpbnRlcmZhY2UgaWQKKwkJCS8qIE5vdGU6IHNpbmNlIG9ubHkgQVAgY2FuIGhhdmUg bWNhc3QgZnJhbWVzIGluIHF1ZXVlCisJCQkgKiBhbmQgb25seSBvbmUgdmlmIGNhbiBiZSBBUCwg YWxsIHF1ZXVlZCBmcmFtZXMgaGFzCisJCQkgKiBzYW1lIGludGVyZmFjZSBpZAorCQkJICovCiAJ CQloaWYgPSAoc3RydWN0IGhpZl9tc2cgKilza2ItPmRhdGE7CiAJCQlXQVJOX09OKGhpZi0+aW50 ZXJmYWNlICE9IHd2aWYtPmlkKTsKIAkJCVdBUk5fT04ocXVldWVzW2ldICE9CkBAIC0yNzAsNyAr MjczLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICp3ZnhfdHhfcXVldWVzX2dldF9za2Ioc3Ry dWN0IHdmeF9kZXYgKndkZXYpCiAJCQl0cmFjZV9xdWV1ZXNfc3RhdHMod2RldiwgcXVldWVzW2ld KTsKIAkJCXJldHVybiBza2I7CiAJCX0KLQkJLy8gTm8gbW9yZSBtdWx0aWNhc3QgdG8gc2VudAor CQkvKiBObyBtb3JlIG11bHRpY2FzdCB0byBzZW50ICovCiAJCXd2aWYtPmFmdGVyX2R0aW1fdHhf YWxsb3dlZCA9IGZhbHNlOwogCQlzY2hlZHVsZV93b3JrKCZ3dmlmLT51cGRhdGVfdGltX3dvcmsp OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuaCBiL2RyaXZlcnMv c3RhZ2luZy93ZngvcXVldWUuaAppbmRleCAyNGI2MDgzMzg2NGIuLjU0YjVkZWYyZTI0YyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5oCisrKyBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvcXVldWUuaApAQCAtMTYsNyArMTYsNyBAQCBzdHJ1Y3Qgd2Z4X3ZpZjsKIAogc3RydWN0 IHdmeF9xdWV1ZSB7CiAJc3RydWN0IHNrX2J1ZmZfaGVhZAlub3JtYWw7Ci0Jc3RydWN0IHNrX2J1 ZmZfaGVhZAljYWI7IC8vIENvbnRlbnQgQWZ0ZXIgKERUSU0pIEJlYWNvbgorCXN0cnVjdCBza19i dWZmX2hlYWQJY2FiOyAvKiBDb250ZW50IEFmdGVyIChEVElNKSBCZWFjb24gKi8KIAlhdG9taWNf dAkJcGVuZGluZ19mcmFtZXM7CiAJaW50CQkJcHJpb3JpdHk7CiB9OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zdGFnaW5nL3dmeC9zdGEuYyBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMKaW5kZXgg NzBlMWM0ZDhhZTJlLi5hY2ViMThhMWY1NGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93 Zngvc3RhLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuYwpAQCAtMjQsNyArMjQsNyBA QCB1MzIgd2Z4X3JhdGVfbWFza190b19odyhzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIHJhdGVz KQogewogCWludCBpOwogCXUzMiByZXQgPSAwOwotCS8vIFRoZSBkZXZpY2Ugb25seSBzdXBwb3J0 cyAyR0h6CisJLyogVGhlIGRldmljZSBvbmx5IHN1cHBvcnRzIDJHSHogKi8KIAlzdHJ1Y3QgaWVl ZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZCA9IHdkZXYtPmh3LT53aXBoeS0+YmFuZHNbTkw4 MDIxMV9CQU5EXzJHSFpdOwogCiAJZm9yIChpID0gMDsgaSA8IHNiYW5kLT5uX2JpdHJhdGVzOyBp KyspIHsKQEAgLTUxLDExICs1MSwxMSBAQCB2b2lkIHdmeF9jb29saW5nX3RpbWVvdXRfd29yayhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB2b2lkIHdmeF9zdXNwZW5kX2hvdF9kZXYoc3RydWN0 IHdmeF9kZXYgKndkZXYsIGVudW0gc3RhX25vdGlmeV9jbWQgY21kKQogewogCWlmIChjbWQgPT0g U1RBX05PVElGWV9BV0FLRSkgewotCQkvLyBEZXZpY2UgcmVjb3ZlciBub3JtYWwgdGVtcGVyYXR1 cmUKKwkJLyogRGV2aWNlIHJlY292ZXIgbm9ybWFsIHRlbXBlcmF0dXJlICovCiAJCWlmIChjYW5j ZWxfZGVsYXllZF93b3JrKCZ3ZGV2LT5jb29saW5nX3RpbWVvdXRfd29yaykpCiAJCQl3ZnhfdHhf dW5sb2NrKHdkZXYpOwogCX0gZWxzZSB7Ci0JCS8vIERldmljZSBpcyB0b28gaG90CisJCS8qIERl dmljZSBpcyB0b28gaG90ICovCiAJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmd2Rldi0+Y29vbGlu Z190aW1lb3V0X3dvcmssIDEwICogSFopOwogCQl3ZnhfdHhfbG9jayh3ZGV2KTsKIAl9CkBAIC0x MDMsMTMgKzEwMywxNCBAQCB2b2lkIHdmeF9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LCB1bnNpZ25lZCBpbnQgY2hhbmdlZF9mbGFncywKIAlzdHJ1Y3Qgd2Z4X2RldiAq d2RldiA9IGh3LT5wcml2OwogCWJvb2wgZmlsdGVyX2Jzc2lkLCBmaWx0ZXJfcHJicmVxLCBmaWx0 ZXJfYmVhY29uOwogCi0JLy8gTm90ZXM6Ci0JLy8gICAtIFByb2JlIHJlc3BvbnNlcyAoRklGX0JD Tl9QUkJSRVNQX1BST01JU0MpIGFyZSBuZXZlciBmaWx0ZXJlZAotCS8vICAgLSBQUy1Qb2xsIChG SUZfUFNQT0xMKSBhcmUgbmV2ZXIgZmlsdGVyZWQKLQkvLyAgIC0gUlRTLCBDVFMgYW5kIEFjayAo RklGX0NPTlRST0wpIGFyZSBhbHdheXMgZmlsdGVyZWQKLQkvLyAgIC0gQnJva2VuIGZyYW1lcyAo RklGX0ZDU0ZBSUwgYW5kIEZJRl9QTENQRkFJTCkgYXJlIGFsd2F5cyBmaWx0ZXJlZAotCS8vICAg LSBGaXJtd2FyZSBkb2VzICh5ZXQpIGFsbG93IHRvIGZvcndhcmQgdW5pY2FzdCB0cmFmZmljIHNl bnQgdG8KLQkvLyAgICAgb3RoZXIgc3RhdGlvbnMgKGFrYS4gcHJvbWlzY3VvdXMgbW9kZSkKKwkv KiBOb3RlczoKKwkgKiAgIC0gUHJvYmUgcmVzcG9uc2VzIChGSUZfQkNOX1BSQlJFU1BfUFJPTUlT QykgYXJlIG5ldmVyIGZpbHRlcmVkCisJICogICAtIFBTLVBvbGwgKEZJRl9QU1BPTEwpIGFyZSBu ZXZlciBmaWx0ZXJlZAorCSAqICAgLSBSVFMsIENUUyBhbmQgQWNrIChGSUZfQ09OVFJPTCkgYXJl IGFsd2F5cyBmaWx0ZXJlZAorCSAqICAgLSBCcm9rZW4gZnJhbWVzIChGSUZfRkNTRkFJTCBhbmQg RklGX1BMQ1BGQUlMKSBhcmUgYWx3YXlzIGZpbHRlcmVkCisJICogICAtIEZpcm13YXJlIGRvZXMg KHlldCkgYWxsb3cgdG8gZm9yd2FyZCB1bmljYXN0IHRyYWZmaWMgc2VudCB0bworCSAqICAgICBv dGhlciBzdGF0aW9ucyAoYWthLiBwcm9taXNjdW91cyBtb2RlKQorCSAqLwogCSp0b3RhbF9mbGFn cyAmPSBGSUZfQkNOX1BSQlJFU1BfUFJPTUlTQyB8IEZJRl9BTExNVUxUSSB8IEZJRl9PVEhFUl9C U1MgfAogCQkJRklGX1BST0JFX1JFUSB8IEZJRl9QU1BPTEw7CiAKQEAgLTExNyw4ICsxMTgsOSBA QCB2b2lkIHdmeF9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1bnNp Z25lZCBpbnQgY2hhbmdlZF9mbGFncywKIAl3aGlsZSAoKHd2aWYgPSB3dmlmX2l0ZXJhdGUod2Rl diwgd3ZpZikpICE9IE5VTEwpIHsKIAkJbXV0ZXhfbG9jaygmd3ZpZi0+c2Nhbl9sb2NrKTsKIAot CQkvLyBOb3RlOiBGSUZfQkNOX1BSQlJFU1BfUFJPTUlTQyBjb3ZlcnMgcHJvYmUgcmVzcG9uc2Ug YW5kCi0JCS8vIGJlYWNvbnMgZnJvbSBvdGhlciBCU1MKKwkJLyogTm90ZTogRklGX0JDTl9QUkJS RVNQX1BST01JU0MgY292ZXJzIHByb2JlIHJlc3BvbnNlIGFuZAorCQkgKiBiZWFjb25zIGZyb20g b3RoZXIgQlNTCisJCSAqLwogCQlpZiAoKnRvdGFsX2ZsYWdzICYgRklGX0JDTl9QUkJSRVNQX1BS T01JU0MpCiAJCQlmaWx0ZXJfYmVhY29uID0gZmFsc2U7CiAJCWVsc2UKQEAgLTEzMCw3ICsxMzIs NyBAQCB2b2lkIHdmeF9jb25maWd1cmVfZmlsdGVyKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1 bnNpZ25lZCBpbnQgY2hhbmdlZF9mbGFncywKIAkJZWxzZQogCQkJZmlsdGVyX2Jzc2lkID0gdHJ1 ZTsKIAotCQkvLyBJbiBBUCBtb2RlLCBjaGlwIGNhbiByZXBseSB0byBwcm9iZSByZXF1ZXN0IGl0 c2VsZgorCQkvKiBJbiBBUCBtb2RlLCBjaGlwIGNhbiByZXBseSB0byBwcm9iZSByZXF1ZXN0IGl0 c2VsZiAqLwogCQlpZiAoKnRvdGFsX2ZsYWdzICYgRklGX1BST0JFX1JFUSAmJgogCQkgICAgd3Zp Zi0+dmlmLT50eXBlID09IE5MODAyMTFfSUZUWVBFX0FQKSB7CiAJCQlkZXZfZGJnKHdkZXYtPmRl diwgImRvIG5vdCBmb3J3YXJkIHByb2JlIHJlcXVlc3QgaW4gQVAgbW9kZVxuIik7CkBAIC0xNjEs MTUgKzE2MywxNiBAQCBzdGF0aWMgaW50IHdmeF9nZXRfcHNfdGltZW91dChzdHJ1Y3Qgd2Z4X3Zp ZiAqd3ZpZiwgYm9vbCAqZW5hYmxlX3BzKQogCQljaGFuMSA9IHdkZXZfdG9fd3ZpZih3dmlmLT53 ZGV2LCAxKS0+dmlmLT5ic3NfY29uZi5jaGFuZGVmLmNoYW47CiAJaWYgKGNoYW4wICYmIGNoYW4x ICYmIHd2aWYtPnZpZi0+dHlwZSAhPSBOTDgwMjExX0lGVFlQRV9BUCkgewogCQlpZiAoY2hhbjAt Pmh3X3ZhbHVlID09IGNoYW4xLT5od192YWx1ZSkgewotCQkJLy8gSXQgaXMgdXNlbGVzcyB0byBl bmFibGUgUFMgaWYgY2hhbm5lbHMgYXJlIHRoZSBzYW1lLgorCQkJLyogSXQgaXMgdXNlbGVzcyB0 byBlbmFibGUgUFMgaWYgY2hhbm5lbHMgYXJlIHRoZSBzYW1lLiAqLwogCQkJaWYgKGVuYWJsZV9w cykKIAkJCQkqZW5hYmxlX3BzID0gZmFsc2U7CiAJCQlpZiAod3ZpZi0+dmlmLT5ic3NfY29uZi5h c3NvYyAmJiB3dmlmLT52aWYtPmJzc19jb25mLnBzKQogCQkJCWRldl9pbmZvKHd2aWYtPndkZXYt PmRldiwgImlnbm9yaW5nIHJlcXVlc3RlZCBQUyBtb2RlIik7CiAJCQlyZXR1cm4gLTE7CiAJCX0g ZWxzZSB7Ci0JCQkvLyBJdCBpcyBuZWNlc3NhcnkgdG8gZW5hYmxlIFBTIGlmIGNoYW5uZWxzCi0J CQkvLyBhcmUgZGlmZmVyZW50LgorCQkJLyogSXQgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBQUyBp ZiBjaGFubmVscworCQkJICogYXJlIGRpZmZlcmVudC4KKwkJCSAqLwogCQkJaWYgKGVuYWJsZV9w cykKIAkJCQkqZW5hYmxlX3BzID0gdHJ1ZTsKIAkJCWlmICh3dmlmLT53ZGV2LT5mb3JjZV9wc190 aW1lb3V0ID4gLTEpCkBAIC0zMDUsNyArMzA4LDcgQEAgaW50IHdmeF9zdGFfYWRkKHN0cnVjdCBp ZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAogCWlmICh2aWYtPnR5 cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTikKIAkJaGlmX3NldF9tZnAod3ZpZiwgc3RhLT5t ZnAsIHN0YS0+bWZwKTsKIAotCS8vIEluIHN0YXRpb24gbW9kZSwgdGhlIGZpcm13YXJlIGludGVy cHJldHMgbmV3IGxpbmstaWQgYXMgYSBURExTIHBlZXIuCisJLyogSW4gc3RhdGlvbiBtb2RlLCB0 aGUgZmlybXdhcmUgaW50ZXJwcmV0cyBuZXcgbGluay1pZCBhcyBhIFRETFMgcGVlciAqLwogCWlm ICh2aWYtPnR5cGUgPT0gTkw4MDIxMV9JRlRZUEVfU1RBVElPTiAmJiAhc3RhLT50ZGxzKQogCQly ZXR1cm4gMDsKIAlzdGFfcHJpdi0+bGlua19pZCA9IGZmeih3dmlmLT5saW5rX2lkX21hcCk7CkBA IC0zMjMsMTAgKzMyNiwxMCBAQCBpbnQgd2Z4X3N0YV9yZW1vdmUoc3RydWN0IGllZWU4MDIxMV9o dyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsCiAJc3RydWN0IHdmeF92aWYgKnd2aWYg PSAoc3RydWN0IHdmeF92aWYgKil2aWYtPmRydl9wcml2OwogCXN0cnVjdCB3Znhfc3RhX3ByaXYg KnN0YV9wcml2ID0gKHN0cnVjdCB3Znhfc3RhX3ByaXYgKikmc3RhLT5kcnZfcHJpdjsKIAotCS8v IFNlZSBub3RlIGluIHdmeF9zdGFfYWRkKCkKKwkvKiBTZWUgbm90ZSBpbiB3Znhfc3RhX2FkZCgp ICovCiAJaWYgKCFzdGFfcHJpdi0+bGlua19pZCkKIAkJcmV0dXJuIDA7Ci0JLy8gRklYTUUgYWRk IGEgbXV0ZXg/CisJLyogRklYTUUgYWRkIGEgbXV0ZXg/ICovCiAJaGlmX21hcF9saW5rKHd2aWYs IHRydWUsIHN0YS0+YWRkciwgc3RhX3ByaXYtPmxpbmtfaWQsIGZhbHNlKTsKIAl3dmlmLT5saW5r X2lkX21hcCAmPSB+QklUKHN0YV9wcml2LT5saW5rX2lkKTsKIAlyZXR1cm4gMDsKQEAgLTQyMSw3 ICs0MjQsNyBAQCBzdGF0aWMgdm9pZCB3Znhfam9pbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZikKIAkJ cmV0dXJuOwogCX0KIAotCXJjdV9yZWFkX2xvY2soKTsgLy8gcHJvdGVjdCBzc2lkaWUKKwlyY3Vf cmVhZF9sb2NrKCk7IC8qIHByb3RlY3Qgc3NpZGllICovCiAJaWYgKGJzcykKIAkJc3NpZGllID0g aWVlZTgwMjExX2Jzc19nZXRfaWUoYnNzLCBXTEFOX0VJRF9TU0lEKTsKIAlpZiAoc3NpZGllKSB7 CkBAIC00NTcsNyArNDYwLDcgQEAgc3RhdGljIHZvaWQgd2Z4X2pvaW5fZmluYWxpemUoc3RydWN0 IHdmeF92aWYgKnd2aWYsCiAJaW50IGFtcGR1X2RlbnNpdHkgPSAwOwogCWJvb2wgZ3JlZW5maWVs ZCA9IGZhbHNlOwogCi0JcmN1X3JlYWRfbG9jaygpOyAvLyBwcm90ZWN0IHN0YQorCXJjdV9yZWFk X2xvY2soKTsgLyogcHJvdGVjdCBzdGEgKi8KIAlpZiAoaW5mby0+YnNzaWQgJiYgIWluZm8tPmli c3Nfam9pbmVkKQogCQlzdGEgPSBpZWVlODAyMTFfZmluZF9zdGEod3ZpZi0+dmlmLCBpbmZvLT5i c3NpZCk7CiAJaWYgKHN0YSAmJiBzdGEtPmh0X2NhcC5odF9zdXBwb3J0ZWQpCkBAIC00NzEsOCAr NDc0LDkgQEAgc3RhdGljIHZvaWQgd2Z4X2pvaW5fZmluYWxpemUoc3RydWN0IHdmeF92aWYgKnd2 aWYsCiAJaGlmX3NldF9hc3NvY2lhdGlvbl9tb2RlKHd2aWYsIGFtcGR1X2RlbnNpdHksIGdyZWVu ZmllbGQsCiAJCQkJIGluZm8tPnVzZV9zaG9ydF9wcmVhbWJsZSk7CiAJaGlmX2tlZXBfYWxpdmVf cGVyaW9kKHd2aWYsIDApOwotCS8vIGJlYWNvbl9sb3NzX2NvdW50IGlzIGRlZmluZWQgdG8gNyBp biBuZXQvbWFjODAyMTEvbWxtZS5jLiBMZXQncyB1c2UKLQkvLyB0aGUgc2FtZSB2YWx1ZS4KKwkv KiBiZWFjb25fbG9zc19jb3VudCBpcyBkZWZpbmVkIHRvIDcgaW4gbmV0L21hYzgwMjExL21sbWUu Yy4gTGV0J3MgdXNlCisJICogdGhlIHNhbWUgdmFsdWUuCisJICovCiAJaGlmX3NldF9ic3NfcGFy YW1zKHd2aWYsIGluZm8tPmFpZCwgNyk7CiAJaGlmX3NldF9iZWFjb25fd2FrZXVwX3BlcmlvZCh3 dmlmLCAxLCAxKTsKIAl3ZnhfdXBkYXRlX3BtKHd2aWYpOwpAQCAtNDk2LDEwICs1MDAsMTEgQEAg dm9pZCB3ZnhfbGVhdmVfaWJzcyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4 MDIxMV92aWYgKnZpZikKIAogc3RhdGljIHZvaWQgd2Z4X2VuYWJsZV9iZWFjb24oc3RydWN0IHdm eF92aWYgKnd2aWYsIGJvb2wgZW5hYmxlKQogewotCS8vIERyaXZlciBoYXMgQ29udGVudCBBZnRl ciBEVElNIEJlYWNvbiBpbiBxdWV1ZS4gRHJpdmVyIGlzIHdhaXRpbmcgZm9yCi0JLy8gYSBzaWdu YWwgZnJvbSB0aGUgZmlybXdhcmUuIFNpbmNlIHdlIGFyZSBnb2luZyB0byBzdG9wIHRvIHNlbmQK LQkvLyBiZWFjb25zLCB0aGlzIHNpZ25hbCB3aWxsIG5ldmVyIGhhcHBlbnMuIFNlZSBhbHNvCi0J Ly8gd2Z4X3N1c3BlbmRfcmVzdW1lX21jKCkKKwkvKiBEcml2ZXIgaGFzIENvbnRlbnQgQWZ0ZXIg RFRJTSBCZWFjb24gaW4gcXVldWUuIERyaXZlciBpcyB3YWl0aW5nIGZvcgorCSAqIGEgc2lnbmFs IGZyb20gdGhlIGZpcm13YXJlLiBTaW5jZSB3ZSBhcmUgZ29pbmcgdG8gc3RvcCB0byBzZW5kCisJ ICogYmVhY29ucywgdGhpcyBzaWduYWwgd2lsbCBuZXZlciBoYXBwZW5zLiBTZWUgYWxzbworCSAq IHdmeF9zdXNwZW5kX3Jlc3VtZV9tYygpCisJICovCiAJaWYgKCFlbmFibGUgJiYgd2Z4X3R4X3F1 ZXVlc19oYXNfY2FiKHd2aWYpKSB7CiAJCXd2aWYtPmFmdGVyX2R0aW1fdHhfYWxsb3dlZCA9IHRy dWU7CiAJCXdmeF9iaF9yZXF1ZXN0X3R4KHd2aWYtPndkZXYpOwpAQCAtNTM5LDggKzU0NCw5IEBA IHZvaWQgd2Z4X2Jzc19pbmZvX2NoYW5nZWQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVj dCBpZWVlODAyMTFfdmlmICp2aWYsCiAJCQkJIF9fZnVuY19fKTsKIAkJaGlmX3NldF9iZWFjb25f d2FrZXVwX3BlcmlvZCh3dmlmLCBpbmZvLT5kdGltX3BlcmlvZCwKIAkJCQkJICAgICBpbmZvLT5k dGltX3BlcmlvZCk7Ci0JCS8vIFdlIHRlbXBvcmFyeSBmb3J3YXJkZWQgYmVhY29uIGZvciBqb2lu IHByb2Nlc3MuIEl0IGlzIG5vdyBubwotCQkvLyBtb3JlIG5lY2Vzc2FyeS4KKwkJLyogV2UgdGVt cG9yYXJ5IGZvcndhcmRlZCBiZWFjb24gZm9yIGpvaW4gcHJvY2Vzcy4gSXQgaXMgbm93IG5vCisJ CSAqIG1vcmUgbmVjZXNzYXJ5LgorCQkgKi8KIAkJd2Z4X2ZpbHRlcl9iZWFjb24od3ZpZiwgdHJ1 ZSk7CiAJfQogCkBAIC02NjIsMTQgKzY2OCwxNCBAQCBpbnQgd2Z4X2FtcGR1X2FjdGlvbihzdHJ1 Y3QgaWVlZTgwMjExX2h3ICpodywKIAkJICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAog CQkgICAgIHN0cnVjdCBpZWVlODAyMTFfYW1wZHVfcGFyYW1zICpwYXJhbXMpCiB7Ci0JLy8gQWdn cmVnYXRpb24gaXMgaW1wbGVtZW50ZWQgZnVsbHkgaW4gZmlybXdhcmUKKwkvKiBBZ2dyZWdhdGlv biBpcyBpbXBsZW1lbnRlZCBmdWxseSBpbiBmaXJtd2FyZSAqLwogCXN3aXRjaCAocGFyYW1zLT5h Y3Rpb24pIHsKIAljYXNlIElFRUU4MDIxMV9BTVBEVV9SWF9TVEFSVDoKIAljYXNlIElFRUU4MDIx MV9BTVBEVV9SWF9TVE9QOgotCQkvLyBKdXN0IGFja25vd2xlZGdlIGl0IHRvIGVuYWJsZSBmcmFt ZSByZS1vcmRlcmluZworCQkvKiBKdXN0IGFja25vd2xlZGdlIGl0IHRvIGVuYWJsZSBmcmFtZSBy ZS1vcmRlcmluZyAqLwogCQlyZXR1cm4gMDsKIAlkZWZhdWx0OgotCQkvLyBMZWF2ZSB0aGUgZmly bXdhcmUgZG9pbmcgaXRzIGJ1c2luZXNzIGZvciB0eCBhZ2dyZWdhdGlvbgorCQkvKiBMZWF2ZSB0 aGUgZmlybXdhcmUgZG9pbmcgaXRzIGJ1c2luZXNzIGZvciB0eCBhZ2dyZWdhdGlvbiAqLwogCQly ZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogfQpAQCAtNzQxLDExICs3NDcsMTEgQEAgaW50IHdmeF9h ZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3Zp ZiAqdmlmKQogCQlyZXR1cm4gLUVPUE5PVFNVUFA7CiAJfQogCi0JLy8gRklYTUU6IHByZWZlciB1 c2Ugb2YgY29udGFpbmVyX29mKCkgdG8gZ2V0IHZpZgorCS8qIEZJWE1FOiBwcmVmZXIgdXNlIG9m IGNvbnRhaW5lcl9vZigpIHRvIGdldCB2aWYgKi8KIAl3dmlmLT52aWYgPSB2aWY7CiAJd3ZpZi0+ d2RldiA9IHdkZXY7CiAKLQl3dmlmLT5saW5rX2lkX21hcCA9IDE7IC8vIGxpbmstaWQgMCBpcyBy ZXNlcnZlZCBmb3IgbXVsdGljYXN0CisJd3ZpZi0+bGlua19pZF9tYXAgPSAxOyAvKiBsaW5rLWlk IDAgaXMgcmVzZXJ2ZWQgZm9yIG11bHRpY2FzdCAqLwogCUlOSVRfV09SSygmd3ZpZi0+dXBkYXRl X3RpbV93b3JrLCB3ZnhfdXBkYXRlX3RpbV93b3JrKTsKIAlJTklUX0RFTEFZRURfV09SSygmd3Zp Zi0+YmVhY29uX2xvc3Nfd29yaywgd2Z4X2JlYWNvbl9sb3NzX3dvcmspOwogCkBAIC03NzUsNyAr NzgxLDcgQEAgaW50IHdmeF9hZGRfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBz dHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKQogCiAJd3ZpZiA9IE5VTEw7CiAJd2hpbGUgKCh3dmlm ID0gd3ZpZl9pdGVyYXRlKHdkZXYsIHd2aWYpKSAhPSBOVUxMKSB7Ci0JCS8vIENvbWJvIG1vZGUg ZG9lcyBub3Qgc3VwcG9ydCBCbG9jayBBY2tzLiBXZSBjYW4gcmUtZW5hYmxlIHRoZW0KKwkJLyog Q29tYm8gbW9kZSBkb2VzIG5vdCBzdXBwb3J0IEJsb2NrIEFja3MuIFdlIGNhbiByZS1lbmFibGUg dGhlbSAqLwogCQlpZiAod3ZpZl9jb3VudCh3ZGV2KSA9PSAxKQogCQkJaGlmX3NldF9ibG9ja19h Y2tfcG9saWN5KHd2aWYsIDB4RkYsIDB4RkYpOwogCQllbHNlCkBAIC04MDcsNyArODEzLDcgQEAg dm9pZCB3ZnhfcmVtb3ZlX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0 IGllZWU4MDIxMV92aWYgKnZpZikKIAogCXd2aWYgPSBOVUxMOwogCXdoaWxlICgod3ZpZiA9IHd2 aWZfaXRlcmF0ZSh3ZGV2LCB3dmlmKSkgIT0gTlVMTCkgewotCQkvLyBDb21ibyBtb2RlIGRvZXMg bm90IHN1cHBvcnQgQmxvY2sgQWNrcy4gV2UgY2FuIHJlLWVuYWJsZSB0aGVtCisJCS8qIENvbWJv IG1vZGUgZG9lcyBub3Qgc3VwcG9ydCBCbG9jayBBY2tzLiBXZSBjYW4gcmUtZW5hYmxlIHRoZW0g Ki8KIAkJaWYgKHd2aWZfY291bnQod2RldikgPT0gMSkKIAkJCWhpZl9zZXRfYmxvY2tfYWNrX3Bv bGljeSh3dmlmLCAweEZGLCAweEZGKTsKIAkJZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFn aW5nL3dmeC9zdGEuaCBiL2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmgKaW5kZXggMDU2ZWQ1MjY3 YWJhLi5mMzU5ZjM3NWNjNTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmgK KysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuaApAQCAtMTgsNyArMTgsNyBAQCBzdHJ1Y3Qg d2Z4X3N0YV9wcml2IHsKIAlpbnQgdmlmX2lkOwogfTsKIAotLy8gbWFjODAyMTEgaW50ZXJmYWNl CisvKiBtYWM4MDIxMSBpbnRlcmZhY2UgKi8KIGludCB3Znhfc3RhcnQoc3RydWN0IGllZWU4MDIx MV9odyAqaHcpOwogdm9pZCB3Znhfc3RvcChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7CiBpbnQg d2Z4X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgdTMyIGNoYW5nZWQpOwpAQCAtNTks MTQgKzU5LDE0IEBAIHZvaWQgd2Z4X3VuYXNzaWduX3ZpZl9jaGFuY3R4KHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LAogCQkJICAgICAgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwKIAkJCSAgICAg IHN0cnVjdCBpZWVlODAyMTFfY2hhbmN0eF9jb25mICpjb25mKTsKIAotLy8gSGFyZHdhcmUgQVBJ IENhbGxiYWNrcworLyogSGFyZHdhcmUgQVBJIENhbGxiYWNrcyAqLwogdm9pZCB3ZnhfY29vbGlu Z190aW1lb3V0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTsKIHZvaWQgd2Z4X3N1c3Bl bmRfaG90X2RldihzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgZW51bSBzdGFfbm90aWZ5X2NtZCBjbWQp Owogdm9pZCB3Znhfc3VzcGVuZF9yZXN1bWVfbWMoc3RydWN0IHdmeF92aWYgKnd2aWYsIGVudW0g c3RhX25vdGlmeV9jbWQgY21kKTsKIHZvaWQgd2Z4X2V2ZW50X3JlcG9ydF9yc3NpKHN0cnVjdCB3 ZnhfdmlmICp3dmlmLCB1OCByYXdfcmNwaV9yc3NpKTsKIGludCB3ZnhfdXBkYXRlX3BtKHN0cnVj dCB3ZnhfdmlmICp3dmlmKTsKIAotLy8gT3RoZXIgSGVscGVycworLyogT3RoZXIgSGVscGVycyAq Lwogdm9pZCB3ZnhfcmVzZXQoc3RydWN0IHdmeF92aWYgKnd2aWYpOwogdTMyIHdmeF9yYXRlX21h c2tfdG9faHcoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiByYXRlcyk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvc3RhZ2luZy93ZngvdHJhY2VzLmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3RyYWNl cy5oCmluZGV4IGUzNGM3YTUzOGM2NS4uZTkwZGM3M2M0YjAxIDEwMDY0NAotLS0gYS9kcml2ZXJz L3N0YWdpbmcvd2Z4L3RyYWNlcy5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvdHJhY2VzLmgK QEAgLTM3OCw3ICszNzgsNyBAQCBUUkFDRV9FVkVOVCh0eF9zdGF0cywKIAkJX19hcnJheShpbnQs IHR4X2NvdW50LCA0KQogCSksCiAJVFBfZmFzdF9hc3NpZ24oCi0JCS8vIEtlZXAgc3luYyB3aXRo IHdmeF9yYXRlcyBkZWZpbml0aW9uIGluIG1haW4uYworCQkvKiBLZWVwIHN5bmMgd2l0aCB3Znhf cmF0ZXMgZGVmaW5pdGlvbiBpbiBtYWluLmMgKi8KIAkJc3RhdGljIGNvbnN0IGludCBod19yYXRl W10gPSB7IDAsIDEsIDIsIDMsIDYsIDcsIDgsIDksCiAJCQkJCSAgICAgICAxMCwgMTEsIDEyLCAx MyB9OwogCQljb25zdCBzdHJ1Y3QgaWVlZTgwMjExX3R4X2luZm8gKnR4X2luZm8gPQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaCBiL2RyaXZlcnMvc3RhZ2luZy93Zngvd2Z4 LmgKaW5kZXggNTYzN2Y5YWY3OWMwLi5hNDc3MGY1OWY3ZDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv c3RhZ2luZy93Zngvd2Z4LmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaApAQCAtMjIs NyArMjIsNyBAQAogI2luY2x1ZGUgInF1ZXVlLmgiCiAjaW5jbHVkZSAiaGlmX3R4LmgiCiAKLSNk ZWZpbmUgVVNFQ19QRVJfVFhPUCAzMiAvLyBzZWUgc3RydWN0IGllZWU4MDIxMV90eF9xdWV1ZV9w YXJhbXMKKyNkZWZpbmUgVVNFQ19QRVJfVFhPUCAzMiAvKiBzZWUgc3RydWN0IGllZWU4MDIxMV90 eF9xdWV1ZV9wYXJhbXMgKi8KICNkZWZpbmUgVVNFQ19QRVJfVFUgMTAyNAogCiBzdHJ1Y3QgaHdi dXNfb3BzOwotLSAKMi4zMy4wCgo=