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 0C7C4C433EF for ; Mon, 13 Sep 2021 08:34:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CE5DD60FBF for ; Mon, 13 Sep 2021 08:34:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238225AbhIMIfx (ORCPT ); Mon, 13 Sep 2021 04:35:53 -0400 Received: from mail-mw2nam12on2084.outbound.protection.outlook.com ([40.107.244.84]:62366 "EHLO NAM12-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S238266AbhIMIeW (ORCPT ); Mon, 13 Sep 2021 04:34:22 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OoenmBm4XToh0jh/15rAxNmOlrMdC6sXkVM5OhVFExpgWGtkqKsHFmwWI+Q8KuXtkvcZ5ur0G6w4F8X5hnNTlPbcsITyJWxK3QdQFNl3bDh8Z8wWNoHUuwgobO9kyJUYsy+ncjdzf+5nV6Cwpe7pdOdvp61kJXKoO4xhsrOIrL6qdaDh2RQWpbMt83xMfcQxQuq1UwsfVy8QZUoUXuQ5mXTeqJ+YocHjXtKRCok/2yzXrs1jzLXRiQgOvUjlE0EEXlpM00BvwQstOZIPuiPvIQ/j9qtlDJKSOnC6c7m+p9dlO/z/E54WEWvhh1Z3squbTOrBgoshT5aNfu6bvxT9kQ== 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=br0ROEejEARSP12SzrIc3mNIa62WA8549reARxuR9ro=; b=HVqqk979fKqSnYtSgHD8Mp4Z87hUthRpVNuxINj/pAIw5hU5BUslq6efUfeC+aDRQFOTM/ZagLTl+noZsTh9DklsQEt34FnthXSCbYw9lEp6yr7cYekuOYOW7BQAI6FZGR9yFM37gwztpKl/1c9pGdUSSEtw5VdJJcRf6/vUsUtIE2L1At9STJ1A0RYX/qEoWFTenZp6AVELudA3FUIUuUql1HQththT29obHLBcQ5fibsbQPCU3bAy7wltqIPH/TMp/vo5Z6aUPp1nM/kXO2hogJXJSkNuNCwV6kLAnocepGHRi0BPIbWte5MqnswDYONn4/7P+0YCUuXT+oOaQVA== 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=br0ROEejEARSP12SzrIc3mNIa62WA8549reARxuR9ro=; b=Fx3TWoFZzLoKRzyEWMRF+5zeBAwcnATwuj9G2+aehpzPM7PiyUd3gLrVUrauXZLRHu2yngtEmhZVxMUEzZdbYoqLHM+fjIw+I6FCa0jWGgBJ1KBEYV9hkohVteqHvb6uLGXX6/BW2Pgyj/DMReU1Qo95jXfc/M8I6jeSn4r8TOI= 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 SN6PR11MB2717.namprd11.prod.outlook.com (2603:10b6:805:60::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.16; Mon, 13 Sep 2021 08:32:00 +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 08:32:00 +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 v2 27/33] staging: wfx: avoid c99 comments Date: Mon, 13 Sep 2021 10:30:39 +0200 Message-Id: <20210913083045.1881321-28-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913083045.1881321-1-Jerome.Pouiller@silabs.com> References: <20210913083045.1881321-1-Jerome.Pouiller@silabs.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 X-ClientProxiedBy: PAZP264CA0067.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1fd::10) 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 PAZP264CA0067.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1fd::10) 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 08:31:51 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 03270679-bef6-4020-edb9-08d97690f054 X-MS-TrafficTypeDiagnostic: SN6PR11MB2717: 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: XIYVbOj7c6rJ9NSC7JUtEVbRykO4Xf7GWVq1js/6twCPZhQmFHAVbb3749UR2nQBUW1Y66Ipe5o1CLOXxJ+uQyHcJPcnHQJ1fLBthMbHUP42v0MNSr+Em+TLkp5LTS66hwHXNMmWuDpWVDtPogo7T9qtk5llcNik047F/6Y4hr+MRl5Z0eskToxDTLVcACNO5fxCWSIwfu5njVEzcSPFKn0fpe2WYqB6fjak6hhIk7ePIqvl2DkeqEoQ2LBwgu1Q0rajDVvb3bs5+E2rBRxa+wLlj6yghbLQe3IfpCu77j09q2++OOL7WdnST+s7u7CB4oHSfk4j4D8YJ1oU3pPFE0Ew84yRc09RSOzreQ/VUmGCw09C3wXbzromobkVLYr5yJp/wMxK04YwBazKISUC5uJfFBRJr3GGUQH2GODG0x8MGh1I9xcfgFHUyXaG/vUoTVK4jo/vTtJiMjY7/r0xhbGEtW5Ha9o1QJVax6htlILSFRjd/d4J0meGcc7L7ZFDiLEw+KfKep/PIvR1hjS70EPWr8DE2ChvG02asZ1PR0683ynLdFOfJbgUN+vnp7dBJYBYRgzZopKs4oUJY+LNPiTDqS0+/R5Fn6tugdWpQqAxB4X6rcJ1LZ7lR9Z8iarU2WfC95SrU/qKvs9upap8sxCGPiR5BD8tS1SaoC4QO5Y50/abhYgifXUM4UnV6fLnPyiJnxdJJAMkZn2EpLgOww== 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:(366004)(4326008)(2906002)(107886003)(26005)(66946007)(38100700002)(52116002)(7696005)(1076003)(956004)(36756003)(316002)(8676002)(38350700002)(186003)(8936002)(83380400001)(54906003)(66556008)(66476007)(30864003)(508600001)(6486002)(5660300002)(6666004)(86362001)(2616005)(66574015)(579004);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WFl1ZEc4cDVtV3FnSlhRZytpMWVYWW51enFBQklNSEJvOXc3a0xwN1plYmRB?= =?utf-8?B?UGhtL1YyaHhRS1NLc0FlWnRGc2M2R2grcHRBRWpCeE1ZSHdBem0yV1dyZkd0?= =?utf-8?B?RmJaT0NlQUg2eWpTMDNiQUVEeEY4VU5DbHczUmV2dzBNOVdLL251aHNYbFRl?= =?utf-8?B?anFuZEx3MHZLeE9rMUtOYmdzZjRsaVdrSUdYUVdhU25UY3Y1dXZwa1hwSDM1?= =?utf-8?B?c0VTT01GK3NNczBYNS9hK05DU3FCemMyWE5GeTN3SUYremR5MlYvdHFrOW8r?= =?utf-8?B?VC9DZkREVExIcUdwaHV5NkZMYW9JYUtnS1o1eEhyZDM1K0FBZy85T0pCR01l?= =?utf-8?B?SEZ2YlVUQXM1Mk14WGpLQTFSMGZSY3k0UDJQb3NVUUxwdWVKNndReitsNmp6?= =?utf-8?B?QmJBdnFPMnFzY2VCVEYvNFAycHBzdTRBR1BkQ2lhQ0ZHNFVTdVcrZjFsNEFE?= =?utf-8?B?TVZwdGExSkROaExkc3RMMmM2dklPOGJRLzRQRzFFWUFOeWNOcVlEOXVobkcw?= =?utf-8?B?SXhGTVhJNUw1bEppUEI0OW5SNktiNnJ1M1ZXYjlNRTBkdysycnM3YmdURzMz?= =?utf-8?B?NGtZRUdBcFFLOXlCdlBDVS9JVVNBK2tyMUo1UzBDTUV0UjcyZFhCa05kUVdn?= =?utf-8?B?WVpxUGJpZGFiVG1DQS9KS0o3cE5ZOWd5RklRN09RSFhwT0xwWWsyWXdmUHFS?= =?utf-8?B?RURHZXVwOEVuVmxlUTEzeVUzWkRvTzk3MWdBL0dnSURHUUtuR3BCeHRTTlVk?= =?utf-8?B?NGN4K3dycUhSemVuRXkrQnlzU1ZlOUZ3ZkhuM3QrSFhUTXhMdE1UQWdjVEZF?= =?utf-8?B?cC9CUDhhRFNacVJkWmViU3RIMzJNOXNBUWZPbEl6SEUrMUFyeTdENEV3YlRW?= =?utf-8?B?bVhRNUx5Q3dFZHBacXNVZE1MZ0pXemFOaXpmUDV1M202OU9JcGR6TVZzUHlv?= =?utf-8?B?czRQZitPWVhsUEpHK1VsTEEwWm00VHF0emZLRUx4Rk5FdUVQOHJXK2VqWW1R?= =?utf-8?B?MkpwRExnd2xac1docTZqVXpnWldGQzZqcGR5aWtDTVZGb1hNUVNlcEpoM0ZH?= =?utf-8?B?YTNndU1wK21qL2FqNHphb3N4TzRjN1FtWEJvVFU2V0lOdzZMUFFaUjhKZVRa?= =?utf-8?B?VEJLWFZTWHllWUV2NjJLdjQvZDVoeEJWRXh2d0RvWXl5YXZ1eFBDVnZYZ2pM?= =?utf-8?B?eFZEWndPV29rcHQwM1FGRE9jNzJsZVVZcTlnWVMxb0dhUXNPeWJyUlhzekNU?= =?utf-8?B?QW5neHRScU93d3pVQm5Da2ZGbG5qa21WRGVlejZVMTNSVUN6alY2M0JEck4w?= =?utf-8?B?aTVsVHBqbnU4SGJBT29UYW9EbXcxNFRkS1h6Q1p0SGZwVXdkRlR3TXNOYUp3?= =?utf-8?B?bjA4QmdBVHpLVTZqeFVKWmcwbUR6aDhpZXE1UFhaUXJvWitZc2pDTFY4SmJG?= =?utf-8?B?TTNGUGpJTEFYaUt6Q0NVL0NQQ01Ea3djeUloOUdHM29CaTNETFljV0l6OXQ1?= =?utf-8?B?ZFY1bnNjUzBncnFjT0h1UDRWUzlpUXQ0cnhoOEJpdStERWNUdjZ1MEhaenlO?= =?utf-8?B?VFMrUThjc3RSckczZ0t5WWQ2ekxLaDVPYmkvN1FoQWhtNzJNU2F6WFhVUnJj?= =?utf-8?B?NXFYR0ZOb2tOOTV3dlRESlVseU1UZ1ZyS1Rzamg4a29GSHI1WmZPNkxrYkpt?= =?utf-8?B?a1l3UFRQSUdoRk15MFg0ZGNUdlF6cktPTG5rRS9IT2pna3hGcXBFYXRENVds?= =?utf-8?Q?nlSXnNKM9b3/NfXGXM8WbQtkU7T2p+rM8L2+Qc8?= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03270679-bef6-4020-edb9-08d97690f054 X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2021 08:31:53.1450 (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: H97O3X8Qe+BJWvMfmqBvMHre+MrBZBIpw/RMtxJh9oDdwNdKoXhtk4TmzdRBqZYcrFZmGzcujXyWS5BKbUd7mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2717 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org RnJvbTogSsOpcsO0bWUgUG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgoKVGhl IHdmeCBkcml2ZXIgaXMgYSBuZXR3b3JrIGRyaXZlci4gQzk5IGNvbW1lbnRzIGFyZSBwcm9oaWJp dGVkIGluIHRoaXMKcGFydCBvZiB0aGUga2VybmVsLgoKU2lnbmVkLW9mZi1ieTogSsOpcsO0bWUg UG91aWxsZXIgPGplcm9tZS5wb3VpbGxlckBzaWxhYnMuY29tPgotLS0KIGRyaXZlcnMvc3RhZ2lu Zy93ZngvYmguYyAgICAgICAgICAgICAgfCAxOCArKysrLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4 L2J1c19zZGlvLmMgICAgICAgIHwgIDggKy0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2J1c19zcGku YyAgICAgICAgIHwgMTIgKysrLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV9yeC5jICAgICAg ICAgfCAgNSArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9kYXRhX3R4LmMgICAgICAgICB8IDU2ICsr KysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90eC5oICAgICAgICAg fCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9kZWJ1Zy5jICAgICAgICAgICB8IDEyICsrKy0t CiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2Z3aW8uYyAgICAgICAgICAgIHwgMjMgKysrKy0tLS0KIGRy aXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9jbWQuaCAgICAgfCAxMiArKystLQogZHJpdmVycy9z dGFnaW5nL3dmeC9oaWZfYXBpX2dlbmVyYWwuaCB8IDE3ICsrKy0tLQogZHJpdmVycy9zdGFnaW5n L3dmeC9oaWZfYXBpX21pYi5oICAgICB8ICAyICstCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9y eC5jICAgICAgICAgIHwgMTcgKysrLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eC5jICAg ICAgICAgIHwgMzIgKysrKysrLS0tLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3R4X21pYi5j ICAgICAgfCAgNCArLQogZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmMgICAgICAgICAgICB8ICA2 ICstLQogZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmggICAgICAgICAgICB8IDE2ICsrKy0tLQog ZHJpdmVycy9zdGFnaW5nL3dmeC9rZXkuYyAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL3N0 YWdpbmcvd2Z4L21haW4uYyAgICAgICAgICAgIHwgMTMgKystLS0KIGRyaXZlcnMvc3RhZ2luZy93 ZngvcXVldWUuYyAgICAgICAgICAgfCAyNyArKysrKy0tLS0tCiBkcml2ZXJzL3N0YWdpbmcvd2Z4 L3F1ZXVlLmggICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvc3RhZ2luZy93Zngvc3RhLmMgICAg ICAgICAgICAgfCA3OCArKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvc3RhZ2lu Zy93Zngvc3RhLmggICAgICAgICAgICAgfCAgNiArLS0KIGRyaXZlcnMvc3RhZ2luZy93ZngvdHJh Y2VzLmggICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaCAgICAgICAg ICAgICB8ICAyICstCiAyNCBmaWxlcyBjaGFuZ2VkLCAyMDMgaW5zZXJ0aW9ucygrKSwgMTczIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvYmguYyBiL2RyaXZl cnMvc3RhZ2luZy93ZngvYmguYwppbmRleCA3OGZhODFkODI1MTcuLmUyZDJhNjRjZTY2ZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9iaC5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93 ZngvYmguYwpAQCAtMzIsMTggKzMyLDIwIEBAIHN0YXRpYyB2b2lkIGRldmljZV93YWtldXAoc3Ry dWN0IHdmeF9kZXYgKndkZXYpCiAJfQogCWZvciAoOzspIHsKIAkJZ3Bpb2Rfc2V0X3ZhbHVlX2Nh bnNsZWVwKHdkZXYtPnBkYXRhLmdwaW9fd2FrZXVwLCAxKTsKLQkJLy8gY29tcGxldGlvbi5oIGRv ZXMgbm90IHByb3ZpZGUgYW55IGZ1bmN0aW9uIHRvIHdhaXQKLQkJLy8gY29tcGxldGlvbiB3aXRo b3V0IGNvbnN1bWUgaXQgKGEga2luZCBvZgotCQkvLyB3YWl0X2Zvcl9jb21wbGV0aW9uX2RvbmVf dGltZW91dCgpKS4gU28gd2UgaGF2ZSB0byBlbXVsYXRlCi0JCS8vIGl0LgorCQkvKiBjb21wbGV0 aW9uLmggZG9lcyBub3QgcHJvdmlkZSBhbnkgZnVuY3Rpb24gdG8gd2FpdAorCQkgKiBjb21wbGV0 aW9uIHdpdGhvdXQgY29uc3VtZSBpdCAoYSBraW5kIG9mCisJCSAqIHdhaXRfZm9yX2NvbXBsZXRp b25fZG9uZV90aW1lb3V0KCkpLiBTbyB3ZSBoYXZlIHRvIGVtdWxhdGUKKwkJICogaXQuCisJCSAq LwogCQlpZiAod2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZ3ZGV2LT5oaWYuY3RybF9yZWFk eSwKIAkJCQkJCW1zZWNzX3RvX2ppZmZpZXMoMikpKSB7CiAJCQljb21wbGV0ZSgmd2Rldi0+aGlm LmN0cmxfcmVhZHkpOwogCQkJcmV0dXJuOwogCQl9IGVsc2UgaWYgKG1heF9yZXRyeS0tID4gMCkg ewotCQkJLy8gT2xkZXIgZmlybXdhcmVzIGhhdmUgYSByYWNlIGluIHNsZWVwL3dha2UtdXAgcHJv Y2Vzcy4KLQkJCS8vIFJlZG8gdGhlIHByb2Nlc3MgaXMgc3VmZmljaWVudCB0byB1bmZyZWV6ZSB0 aGUKLQkJCS8vIGNoaXAuCisJCQkvKiBPbGRlciBmaXJtd2FyZXMgaGF2ZSBhIHJhY2UgaW4gc2xl ZXAvd2FrZS11cCBwcm9jZXNzLgorCQkJICogUmVkbyB0aGUgcHJvY2VzcyBpcyBzdWZmaWNpZW50 IHRvIHVuZnJlZXplIHRoZQorCQkJICogY2hpcC4KKwkJCSAqLwogCQkJZGV2X2Vycih3ZGV2LT5k ZXYsICJ0aW1lb3V0IHdoaWxlIHdha2UgdXAgY2hpcFxuIik7CiAJCQlncGlvZF9zZXRfdmFsdWVf Y2Fuc2xlZXAod2Rldi0+cGRhdGEuZ3Bpb193YWtldXAsIDApOwogCQkJdXNsZWVwX3JhbmdlKDIw MDAsIDI1MDApOwpAQCAtNzQsNyArNzYsNyBAQCBzdGF0aWMgaW50IHJ4X2hlbHBlcihzdHJ1Y3Qg d2Z4X2RldiAqd2Rldiwgc2l6ZV90IHJlYWRfbGVuLCBpbnQgKmlzX2NuZikKIAlXQVJOKHJlYWRf bGVuID4gcm91bmRfZG93bigweEZGRiwgMikgKiBzaXplb2YodTE2KSwKIAkgICAgICIlczogcmVx dWVzdCBleGNlZWQgdGhlIGNoaXAgY2FwYWJpbGl0eSIsIF9fZnVuY19fKTsKIAotCS8vIEFkZCAy IHRvIHRha2UgaW50byBhY2NvdW50IHBpZ2d5YmFjayBzaXplCisJLyogQWRkIDIgdG8gdGFrZSBp bnRvIGFjY291bnQgcGlnZ3liYWNrIHNpemUgKi8KIAlhbGxvY19sZW4gPSB3ZGV2LT5od2J1c19v cHMtPmFsaWduX3NpemUod2Rldi0+aHdidXNfcHJpdiwgcmVhZF9sZW4gKyAyKTsKIAlza2IgPSBk ZXZfYWxsb2Nfc2tiKGFsbG9jX2xlbik7CiAJaWYgKCFza2IpCmRpZmYgLS1naXQgYS9kcml2ZXJz L3N0YWdpbmcvd2Z4L2J1c19zZGlvLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2J1c19zZGlvLmMK aW5kZXggZTA2ZDdlMWViZTljLi5lYjcwYmVmNmJkNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3Rh Z2luZy93ZngvYnVzX3NkaW8uYworKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2J1c19zZGlvLmMK QEAgLTY3LDcgKzY3LDcgQEAgc3RhdGljIGludCB3Znhfc2Rpb19jb3B5X3RvX2lvKHZvaWQgKnBy aXYsIHVuc2lnbmVkIGludCByZWdfaWQsCiAJLyogVXNlIHF1ZXVlIG1vZGUgYnVmZmVycyAqLwog CWlmIChyZWdfaWQgPT0gV0ZYX1JFR19JTl9PVVRfUVVFVUUpCiAJCXNkaW9fYWRkciB8PSBidXMt PmJ1Zl9pZF90eCA8PCA3OwotCS8vIEZJWE1FOiBkaXNjYXJkcyAnY29uc3QnIHF1YWxpZmllciBm b3Igc3JjCisJLyogRklYTUU6IGRpc2NhcmRzICdjb25zdCcgcXVhbGlmaWVyIGZvciBzcmMgKi8K IAlyZXQgPSBzZGlvX21lbWNweV90b2lvKGJ1cy0+ZnVuYywgc2Rpb19hZGRyLCAodm9pZCAqKXNy YywgY291bnQpOwogCWlmICghcmV0ICYmIHJlZ19pZCA9PSBXRlhfUkVHX0lOX09VVF9RVUVVRSkK IAkJYnVzLT5idWZfaWRfdHggPSAoYnVzLT5idWZfaWRfdHggKyAxKSAlIDMyOwpAQCAtMTk4LDcg KzE5OCw3IEBAIHN0YXRpYyBpbnQgd2Z4X3NkaW9fcHJvYmUoc3RydWN0IHNkaW9fZnVuYyAqZnVu YywKIAl9IGVsc2UgewogCQlkZXZfd2FybigmZnVuYy0+ZGV2LAogCQkJICJkZXZpY2UgaXMgbm90 IGRlY2xhcmVkIGluIERULCBmZWF0dXJlcyB3aWxsIGJlIGxpbWl0ZWRcbiIpOwotCQkvLyBGSVhN RTogaWdub3JlIFZJRC9QSUQgYW5kIG9ubHkgcmVseSBvbiBkZXZpY2UgdHJlZQorCQkvKiBGSVhN RTogaWdub3JlIFZJRC9QSUQgYW5kIG9ubHkgcmVseSBvbiBkZXZpY2UgdHJlZSAqLwogCQkvLyBy ZXR1cm4gLUVOT0RFVjsKIAl9CiAKQEAgLTIxMCw3ICsyMTAsNyBAQCBzdGF0aWMgaW50IHdmeF9z ZGlvX3Byb2JlKHN0cnVjdCBzZGlvX2Z1bmMgKmZ1bmMsCiAKIAlzZGlvX2NsYWltX2hvc3QoZnVu Yyk7CiAJcmV0ID0gc2Rpb19lbmFibGVfZnVuYyhmdW5jKTsKLQkvLyBCbG9jayBvZiA2NCBieXRl cyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIDUxMkIgZm9yIGZyYW1lIHNpemVzIDwgNGsKKwkvKiBC bG9jayBvZiA2NCBieXRlcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIDUxMkIgZm9yIGZyYW1lIHNp emVzIDwgNGsgKi8KIAlzZGlvX3NldF9ibG9ja19zaXplKGZ1bmMsIDY0KTsKIAlzZGlvX3JlbGVh c2VfaG9zdChmdW5jKTsKIAlpZiAocmV0KQpAQCAtMjUxLDcgKzI1MSw3IEBAIHN0YXRpYyB2b2lk IHdmeF9zZGlvX3JlbW92ZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jKQogI2RlZmluZSBTRElPX0RF VklDRV9JRF9TSUxBQlNfV0YyMDAgIDB4MTAwMAogc3RhdGljIGNvbnN0IHN0cnVjdCBzZGlvX2Rl dmljZV9pZCB3Znhfc2Rpb19pZHNbXSA9IHsKIAl7IFNESU9fREVWSUNFKFNESU9fVkVORE9SX0lE X1NJTEFCUywgU0RJT19ERVZJQ0VfSURfU0lMQUJTX1dGMjAwKSB9LAotCS8vIEZJWE1FOiBpZ25v cmUgVklEL1BJRCBhbmQgb25seSByZWx5IG9uIGRldmljZSB0cmVlCisJLyogRklYTUU6IGlnbm9y ZSBWSUQvUElEIGFuZCBvbmx5IHJlbHkgb24gZGV2aWNlIHRyZWUgKi8KIAkvLyB7IFNESU9fREVW SUNFKFNESU9fQU5ZX0lELCBTRElPX0FOWV9JRCkgfSwKIAl7IH0sCiB9OwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc3BpLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2J1c19z cGkuYwppbmRleCA3NTllMDg1MDQ4YzMuLjYxZjczYjNlYmM4MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9zdGFnaW5nL3dmeC9idXNfc3BpLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9idXNfc3Bp LmMKQEAgLTg2LDcgKzg2LDcgQEAgc3RhdGljIGludCB3Znhfc3BpX2NvcHlfdG9faW8odm9pZCAq cHJpdiwgdW5zaWduZWQgaW50IGFkZHIsCiB7CiAJc3RydWN0IHdmeF9zcGlfcHJpdiAqYnVzID0g cHJpdjsKIAl1MTYgcmVnYWRkciA9IChhZGRyIDw8IDEyKSB8IChjb3VudCAvIDIpOwotCS8vIEZJ WE1FOiB1c2UgYSBib3VuY2UgYnVmZmVyCisJLyogRklYTUU6IHVzZSBhIGJvdW5jZSBidWZmZXIg Ki8KIAl1MTYgKnNyYzE2ID0gKHZvaWQgKilzcmM7CiAJaW50IHJldCwgaTsKIAlzdHJ1Y3Qgc3Bp X21lc3NhZ2UgICAgICBtOwpAQCAtMTA0LDggKzEwNCw5IEBAIHN0YXRpYyBpbnQgd2Z4X3NwaV9j b3B5X3RvX2lvKHZvaWQgKnByaXYsIHVuc2lnbmVkIGludCBhZGRyLAogCiAJY3B1X3RvX2xlMTZz KCZyZWdhZGRyKTsKIAotCS8vIFJlZ2lzdGVyIGFkZHJlc3MgYW5kIENPTkZJRyBjb250ZW50IGFs d2F5cyB1c2UgMTZiaXQgYmlnIGVuZGlhbgotCS8vICgiQkFEQyIgb3JkZXIpCisJLyogUmVnaXN0 ZXIgYWRkcmVzcyBhbmQgQ09ORklHIGNvbnRlbnQgYWx3YXlzIHVzZSAxNmJpdCBiaWcgZW5kaWFu CisJICogKCJCQURDIiBvcmRlcikKKwkgKi8KIAlpZiAoYnVzLT5uZWVkX3N3YWIpCiAJCXN3YWIx NnMoJnJlZ2FkZHIpOwogCWlmIChidXMtPm5lZWRfc3dhYiAmJiBhZGRyID09IFdGWF9SRUdfQ09O RklHKQpAQCAtMTYzLDcgKzE2NCw4IEBAIHN0YXRpYyBpbnQgd2Z4X3NwaV9pcnFfdW5zdWJzY3Jp YmUodm9pZCAqcHJpdikKIAogc3RhdGljIHNpemVfdCB3Znhfc3BpX2FsaWduX3NpemUodm9pZCAq cHJpdiwgc2l6ZV90IHNpemUpCiB7Ci0JLy8gTW9zdCBvZiBTUEkgY29udHJvbGxlcnMgYXZvaWQg RE1BIGlmIGJ1ZmZlciBzaXplIGlzIG5vdCAzMmJpdCBhbGlnbmVkCisJLyogTW9zdCBvZiBTUEkg Y29udHJvbGxlcnMgYXZvaWQgRE1BIGlmIGJ1ZmZlciBzaXplIGlzIG5vdCAzMmJpdCBhbGlnbmVk CisJICovCiAJcmV0dXJuIEFMSUdOKHNpemUsIDQpOwogfQogCkBAIC0xODcsNyArMTg5LDcgQEAg c3RhdGljIGludCB3Znhfc3BpX3Byb2JlKHN0cnVjdCBzcGlfZGV2aWNlICpmdW5jKQogCXJldCA9 IHNwaV9zZXR1cChmdW5jKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwotCS8vIFRyYWNlIGJl bG93IGlzIGFsc28gZGlzcGxheWVkIGJ5IHNwaV9zZXR1cCgpIGlmIGNvbXBpbGVkIHdpdGggREVC VUcKKwkvKiBUcmFjZSBiZWxvdyBpcyBhbHNvIGRpc3BsYXllZCBieSBzcGlfc2V0dXAoKSBpZiBj b21waWxlZCB3aXRoIERFQlVHICovCiAJZGV2X2RiZygmZnVuYy0+ZGV2LCAiU1BJIHBhcmFtczog Q1M9JWQsIG1vZGU9JWQgYml0cy93b3JkPSVkIHNwZWVkPSVkXG4iLAogCQlmdW5jLT5jaGlwX3Nl bGVjdCwgZnVuYy0+bW9kZSwgZnVuYy0+Yml0c19wZXJfd29yZCwKIAkJZnVuYy0+bWF4X3NwZWVk X2h6KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV9yeC5jIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9kYXRhX3J4LmMKaW5kZXggNTA5ZjQ1Y2RiYWI5Li5iZmMzOTYxYjdiODkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV9yeC5jCisrKyBiL2RyaXZlcnMv c3RhZ2luZy93ZngvZGF0YV9yeC5jCkBAIC03Niw4ICs3Niw5IEBAIHZvaWQgd2Z4X3J4X2NiKHN0 cnVjdCB3ZnhfdmlmICp3dmlmLAogCWlmIChhcmctPmVuY3J5cCkKIAkJaGRyLT5mbGFnIHw9IFJY X0ZMQUdfREVDUllQVEVEOwogCi0JLy8gQmxvY2sgYWNrIG5lZ290aWF0aW9uIGlzIG9mZmxvYWRl ZCBieSB0aGUgZmlybXdhcmUuIEhvd2V2ZXIsCi0JLy8gcmUtb3JkZXJpbmcgbXVzdCBiZSBkb25l IGJ5IHRoZSBtYWM4MDIxMS4KKwkvKiBCbG9jayBhY2sgbmVnb3RpYXRpb24gaXMgb2ZmbG9hZGVk IGJ5IHRoZSBmaXJtd2FyZS4gSG93ZXZlciwKKwkgKiByZS1vcmRlcmluZyBtdXN0IGJlIGRvbmUg YnkgdGhlIG1hYzgwMjExLgorCSAqLwogCWlmIChpZWVlODAyMTFfaXNfYWN0aW9uKGZyYW1lLT5m cmFtZV9jb250cm9sKSAmJgogCSAgICBtZ210LT51LmFjdGlvbi5jYXRlZ29yeSA9PSBXTEFOX0NB VEVHT1JZX0JBQ0sgJiYKIAkgICAgc2tiLT5sZW4gPiBJRUVFODAyMTFfTUlOX0FDVElPTl9TSVpF KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguYyBiL2RyaXZlcnMv c3RhZ2luZy93ZngvZGF0YV90eC5jCmluZGV4IDA0MjQxNDIyZWRjOC4uMDUyYTE5MTYxZGM1IDEw MDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RhdGFfdHguYworKysgYi9kcml2ZXJzL3N0 YWdpbmcvd2Z4L2RhdGFfdHguYwpAQCAtMzEsOCArMzEsOSBAQCBzdGF0aWMgaW50IHdmeF9nZXRf aHdfcmF0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwKIAkJfQogCQlyZXR1cm4gcmF0ZS0+aWR4ICsg MTQ7CiAJfQotCS8vIFRoZSBkZXZpY2Ugb25seSBzdXBwb3J0IDJHSHosIGVsc2UgYmFuZCBpbmZv cm1hdGlvbiBzaG91bGQgYmUKLQkvLyByZXRyaWV2ZWQgZnJvbSBpZWVlODAyMTFfdHhfaW5mbwor CS8qIFRoZSBkZXZpY2Ugb25seSBzdXBwb3J0IDJHSHosIGVsc2UgYmFuZCBpbmZvcm1hdGlvbiBz aG91bGQgYmUKKwkgKiByZXRyaWV2ZWQgZnJvbSBpZWVlODAyMTFfdHhfaW5mbworCSAqLwogCWJh bmQgPSB3ZGV2LT5ody0+d2lwaHktPmJhbmRzW05MODAyMTFfQkFORF8yR0haXTsKIAlpZiAocmF0 ZS0+aWR4ID49IGJhbmQtPm5fYml0cmF0ZXMpIHsKIAkJV0FSTigxLCAid3JvbmcgcmF0ZS0+aWR4 IHZhbHVlOiAlZCIsIHJhdGUtPmlkeCk7CkBAIC01Nyw3ICs1OCw3IEBAIHN0YXRpYyB2b2lkIHdm eF90eF9wb2xpY3lfYnVpbGQoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCB0eF9wb2xpY3kg KnBvbGljeSwKIAkJCWJyZWFrOwogCQlXQVJOX09OKHJhdGVzW2ldLmNvdW50ID4gMTUpOwogCQly YXRlaWQgPSB3ZnhfZ2V0X2h3X3JhdGUod2RldiwgJnJhdGVzW2ldKTsKLQkJLy8gUGFjayB0d28g dmFsdWVzIGluIGVhY2ggYnl0ZSBvZiBwb2xpY3ktPnJhdGVzCisJCS8qIFBhY2sgdHdvIHZhbHVl cyBpbiBlYWNoIGJ5dGUgb2YgcG9saWN5LT5yYXRlcyAqLwogCQljb3VudCA9IHJhdGVzW2ldLmNv dW50OwogCQlpZiAocmF0ZWlkICUgMikKIAkJCWNvdW50IDw8PSA0OwpAQCAtMjM4LDcgKzIzOSw3 IEBAIHN0YXRpYyB2b2lkIHdmeF90eF9maXh1cF9yYXRlcyhzdHJ1Y3QgaWVlZTgwMjExX3R4X3Jh dGUgKnJhdGVzKQogCWludCBpOwogCWJvb2wgZmluaXNoZWQ7CiAKLQkvLyBGaXJtd2FyZSBpcyBu b3QgYWJsZSB0byBtaXggcmF0ZXMgd2l0aCBkaWZmZXJlbnQgZmxhZ3MKKwkvKiBGaXJtd2FyZSBp cyBub3QgYWJsZSB0byBtaXggcmF0ZXMgd2l0aCBkaWZmZXJlbnQgZmxhZ3MgKi8KIAlmb3IgKGkg PSAwOyBpIDwgSUVFRTgwMjExX1RYX01BWF9SQVRFUzsgaSsrKSB7CiAJCWlmIChyYXRlc1swXS5m bGFncyAmIElFRUU4MDIxMV9UWF9SQ19TSE9SVF9HSSkKIAkJCXJhdGVzW2ldLmZsYWdzIHw9IElF RUU4MDIxMV9UWF9SQ19TSE9SVF9HSTsKQEAgLTI0OCw3ICsyNDksNyBAQCBzdGF0aWMgdm9pZCB3 ZnhfdHhfZml4dXBfcmF0ZXMoc3RydWN0IGllZWU4MDIxMV90eF9yYXRlICpyYXRlcykKIAkJCXJh dGVzW2ldLmZsYWdzICY9IH5JRUVFODAyMTFfVFhfUkNfVVNFX1JUU19DVFM7CiAJfQogCi0JLy8g U29ydCByYXRlcyBhbmQgcmVtb3ZlIGR1cGxpY2F0ZXMKKwkvKiBTb3J0IHJhdGVzIGFuZCByZW1v dmUgZHVwbGljYXRlcyAqLwogCWRvIHsKIAkJZmluaXNoZWQgPSB0cnVlOwogCQlmb3IgKGkgPSAw OyBpIDwgSUVFRTgwMjExX1RYX01BWF9SQVRFUyAtIDE7IGkrKykgewpAQCAtMjY4LDE5ICsyNjks MTkgQEAgc3RhdGljIHZvaWQgd2Z4X3R4X2ZpeHVwX3JhdGVzKHN0cnVjdCBpZWVlODAyMTFfdHhf cmF0ZSAqcmF0ZXMpCiAJCQl9CiAJCX0KIAl9IHdoaWxlICghZmluaXNoZWQpOwotCS8vIEVuc3Vy ZSB0aGF0IE1DUzAgb3IgMU1icHMgaXMgcHJlc2VudCBhdCB0aGUgZW5kIG9mIHRoZSByZXRyeSBs aXN0CisJLyogRW5zdXJlIHRoYXQgTUNTMCBvciAxTWJwcyBpcyBwcmVzZW50IGF0IHRoZSBlbmQg b2YgdGhlIHJldHJ5IGxpc3QgKi8KIAlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX1RYX01BWF9S QVRFUzsgaSsrKSB7CiAJCWlmIChyYXRlc1tpXS5pZHggPT0gMCkKIAkJCWJyZWFrOwogCQlpZiAo cmF0ZXNbaV0uaWR4ID09IC0xKSB7CiAJCQlyYXRlc1tpXS5pZHggPSAwOwotCQkJcmF0ZXNbaV0u Y291bnQgPSA4OyAvLyA9PSBody0+bWF4X3JhdGVfdHJpZXMKKwkJCXJhdGVzW2ldLmNvdW50ID0g ODsgLyogPT0gaHctPm1heF9yYXRlX3RyaWVzICovCiAJCQlyYXRlc1tpXS5mbGFncyA9IHJhdGVz W2kgLSAxXS5mbGFncyAmCiAJCQkJCSBJRUVFODAyMTFfVFhfUkNfTUNTOwogCQkJYnJlYWs7CiAJ CX0KIAl9Ci0JLy8gQWxsIHJldHJpZXMgdXNlIGxvbmcgR0kKKwkvKiBBbGwgcmV0cmllcyB1c2Ug bG9uZyBHSSAqLwogCWZvciAoaSA9IDE7IGkgPCBJRUVFODAyMTFfVFhfTUFYX1JBVEVTOyBpKysp CiAJCXJhdGVzW2ldLmZsYWdzICY9IH5JRUVFODAyMTFfVFhfUkNfU0hPUlRfR0k7CiB9CkBAIC0z NDIsMTMgKzM0MywxMyBAQCBzdGF0aWMgaW50IHdmeF90eF9pbm5lcihzdHJ1Y3Qgd2Z4X3ZpZiAq d3ZpZiwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSwKIAlXQVJOKHF1ZXVlX2lkID49IElFRUU4 MDIxMV9OVU1fQUNTLCAidW5zdXBwb3J0ZWQgcXVldWVfaWQiKTsKIAl3ZnhfdHhfZml4dXBfcmF0 ZXModHhfaW5mby0+ZHJpdmVyX3JhdGVzKTsKIAotCS8vIEZyb20gbm93IHR4X2luZm8tPmNvbnRy b2wgaXMgdW51c2FibGUKKwkvKiBGcm9tIG5vdyB0eF9pbmZvLT5jb250cm9sIGlzIHVudXNhYmxl ICovCiAJbWVtc2V0KHR4X2luZm8tPnJhdGVfZHJpdmVyX2RhdGEsIDAsIHNpemVvZihzdHJ1Y3Qg d2Z4X3R4X3ByaXYpKTsKLQkvLyBGaWxsIHR4X3ByaXYKKwkvKiBGaWxsIHR4X3ByaXYgKi8KIAl0 eF9wcml2ID0gKHN0cnVjdCB3ZnhfdHhfcHJpdiAqKXR4X2luZm8tPnJhdGVfZHJpdmVyX2RhdGE7 CiAJdHhfcHJpdi0+aWN2X3NpemUgPSB3ZnhfdHhfZ2V0X2ljdl9sZW4oaHdfa2V5KTsKIAotCS8v IEZpbGwgaGlmX21zZworCS8qIEZpbGwgaGlmX21zZyAqLwogCVdBUk4oc2tiX2hlYWRyb29tKHNr YikgPCB3bXNnX2xlbiwgIm5vdCBlbm91Z2ggc3BhY2UgaW4gc2tiIik7CiAJV0FSTihvZmZzZXQg JiAxLCAiYXR0ZW1wdCB0byB0cmFuc21pdCBhbiB1bmFsaWduZWQgZnJhbWUiKTsKIAlza2JfcHV0 KHNrYiwgdHhfcHJpdi0+aWN2X3NpemUpOwpAQCAtMzY2LDE3ICszNjcsMTggQEAgc3RhdGljIGlu dCB3ZnhfdHhfaW5uZXIoc3RydWN0IHdmeF92aWYgKnd2aWYsIHN0cnVjdCBpZWVlODAyMTFfc3Rh ICpzdGEsCiAJCXJldHVybiAtRUlPOwogCX0KIAotCS8vIEZpbGwgdHggcmVxdWVzdAorCS8qIEZp bGwgdHggcmVxdWVzdCAqLwogCXJlcSA9IChzdHJ1Y3QgaGlmX3JlcV90eCAqKWhpZl9tc2ctPmJv ZHk7Ci0JLy8gcGFja2V0X2lkIGp1c3QgbmVlZCB0byBiZSB1bmlxdWUgb24gZGV2aWNlLiAzMmJp dHMgYXJlIG1vcmUgdGhhbgotCS8vIG5lY2Vzc2FyeSBmb3IgdGhhdCB0YXNrLCBzbyB3ZSB0YWUg YWR2YW50YWdlIG9mIGl0IHRvIGFkZCBzb21lIGV4dHJhCi0JLy8gZGF0YSBmb3IgZGVidWcuCisJ LyogcGFja2V0X2lkIGp1c3QgbmVlZCB0byBiZSB1bmlxdWUgb24gZGV2aWNlLiAzMmJpdHMgYXJl IG1vcmUgdGhhbgorCSAqIG5lY2Vzc2FyeSBmb3IgdGhhdCB0YXNrLCBzbyB3ZSB0YWUgYWR2YW50 YWdlIG9mIGl0IHRvIGFkZCBzb21lIGV4dHJhCisJICogZGF0YSBmb3IgZGVidWcuCisJICovCiAJ cmVxLT5wYWNrZXRfaWQgPSBhdG9taWNfYWRkX3JldHVybigxLCAmd3ZpZi0+d2Rldi0+cGFja2V0 X2lkKSAmIDB4RkZGRjsKIAlyZXEtPnBhY2tldF9pZCB8PSBJRUVFODAyMTFfU0VRX1RPX1NOKGxl MTZfdG9fY3B1KGhkci0+c2VxX2N0cmwpKSA8PCAxNjsKIAlyZXEtPnBhY2tldF9pZCB8PSBxdWV1 ZV9pZCA8PCAyODsKIAogCXJlcS0+ZmNfb2Zmc2V0ID0gb2Zmc2V0OwotCS8vIFF1ZXVlIGluZGV4 IGFyZSBpbnZlcnRlZCBiZXR3ZWVuIGZpcm13YXJlIGFuZCBMaW51eAorCS8qIFF1ZXVlIGluZGV4 IGFyZSBpbnZlcnRlZCBiZXR3ZWVuIGZpcm13YXJlIGFuZCBMaW51eCAqLwogCXJlcS0+cXVldWVf aWQgPSAzIC0gcXVldWVfaWQ7CiAJcmVxLT5wZWVyX3N0YV9pZCA9IHdmeF90eF9nZXRfbGlua19p ZCh3dmlmLCBzdGEsIGhkcik7CiAJcmVxLT5yZXRyeV9wb2xpY3lfaW5kZXggPSB3ZnhfdHhfZ2V0 X3JldHJ5X3BvbGljeV9pZCh3dmlmLCB0eF9pbmZvKTsKQEAgLTM4Niw3ICszODgsNyBAQCBzdGF0 aWMgaW50IHdmeF90eF9pbm5lcihzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgc3RydWN0IGllZWU4MDIx MV9zdGEgKnN0YSwKIAlpZiAodHhfaW5mby0+ZmxhZ3MgJiBJRUVFODAyMTFfVFhfQ1RMX1NFTkRf QUZURVJfRFRJTSkKIAkJcmVxLT5hZnRlcl9kdGltID0gMTsKIAotCS8vIEF1eGlsaWFyeSBvcGVy YXRpb25zCisJLyogQXV4aWxpYXJ5IG9wZXJhdGlvbnMgKi8KIAl3ZnhfdHhfcXVldWVzX3B1dCh3 dmlmLCBza2IpOwogCWlmICh0eF9pbmZvLT5mbGFncyAmIElFRUU4MDIxMV9UWF9DVExfU0VORF9B RlRFUl9EVElNKQogCQlzY2hlZHVsZV93b3JrKCZ3dmlmLT51cGRhdGVfdGltX3dvcmspOwpAQCAt NDA4LDE1ICs0MTAsMTYgQEAgdm9pZCB3ZnhfdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0 cnVjdCBpZWVlODAyMTFfdHhfY29udHJvbCAqY29udHJvbCwKIAljb21waWxldGltZV9hc3NlcnQo c2l6ZW9mKHN0cnVjdCB3ZnhfdHhfcHJpdikgPD0gZHJpdmVyX2RhdGFfcm9vbSwKIAkJCSAgICJz dHJ1Y3QgdHhfcHJpdiBpcyB0b28gbGFyZ2UiKTsKIAlXQVJOKHNrYi0+bmV4dCB8fCBza2ItPnBy ZXYsICJza2IgaXMgYWxyZWFkeSBtZW1iZXIgb2YgYSBsaXN0Iik7Ci0JLy8gY29udHJvbC52aWYg Y2FuIGJlIE5VTEwgZm9yIGluamVjdGVkIGZyYW1lcworCS8qIGNvbnRyb2wudmlmIGNhbiBiZSBO VUxMIGZvciBpbmplY3RlZCBmcmFtZXMgKi8KIAlpZiAodHhfaW5mby0+Y29udHJvbC52aWYpCiAJ CXd2aWYgPSAoc3RydWN0IHdmeF92aWYgKil0eF9pbmZvLT5jb250cm9sLnZpZi0+ZHJ2X3ByaXY7 CiAJZWxzZQogCQl3dmlmID0gd3ZpZl9pdGVyYXRlKHdkZXYsIE5VTEwpOwogCWlmIChXQVJOX09O KCF3dmlmKSkKIAkJZ290byBkcm9wOwotCS8vIEJlY2F1c2Ugb2YgVFhfQU1QRFVfU0VUVVBfSU5f SFcsIG1hYzgwMjExIGRvZXMgbm90IHRyeSB0byBzZW5kIGFueQotCS8vIEJsb2NrQWNrIHNlc3Np b24gbWFuYWdlbWVudCBmcmFtZS4gVGhlIGNoZWNrIGJlbG93IGV4aXN0IGp1c3QgaW4gY2FzZS4K KwkvKiBCZWNhdXNlIG9mIFRYX0FNUERVX1NFVFVQX0lOX0hXLCBtYWM4MDIxMSBkb2VzIG5vdCB0 cnkgdG8gc2VuZCBhbnkKKwkgKiBCbG9ja0FjayBzZXNzaW9uIG1hbmFnZW1lbnQgZnJhbWUuIFRo ZSBjaGVjayBiZWxvdyBleGlzdCBqdXN0IGluIGNhc2UuCisJICovCiAJaWYgKGllZWU4MDIxMV9p c19hY3Rpb25fYmFjayhoZHIpKSB7CiAJCWRldl9pbmZvKHdkZXYtPmRldiwgImRyb3AgQkEgYWN0 aW9uXG4iKTsKIAkJZ290byBkcm9wOwpAQCAtNDU3LDcgKzQ2MCw3IEBAIHN0YXRpYyB2b2lkIHdm eF90eF9maWxsX3JhdGVzKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAogCiAJdHhfY291bnQgPSBhcmct PmFja19mYWlsdXJlczsKIAlpZiAoIWFyZy0+c3RhdHVzIHx8IGFyZy0+YWNrX2ZhaWx1cmVzKQot CQl0eF9jb3VudCArPSAxOyAvLyBBbHNvIHJlcG9ydCBzdWNjZXNzCisJCXR4X2NvdW50ICs9IDE7 IC8qIEFsc28gcmVwb3J0IHN1Y2Nlc3MgKi8KIAlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX1RY X01BWF9SQVRFUzsgaSsrKSB7CiAJCXJhdGUgPSAmdHhfaW5mby0+c3RhdHVzLnJhdGVzW2ldOwog CQlpZiAocmF0ZS0+aWR4IDwgMCkKQEAgLTUwNSwxNCArNTA4LDE1IEBAIHZvaWQgd2Z4X3R4X2Nv bmZpcm1fY2Ioc3RydWN0IHdmeF9kZXYgKndkZXYsIGNvbnN0IHN0cnVjdCBoaWZfY25mX3R4ICph cmcpCiAJaWYgKCF3dmlmKQogCQlyZXR1cm47CiAKLQkvLyBOb3RlIHRoYXQgd2Z4X3BlbmRpbmdf Z2V0X3BrdF91c19kZWxheSgpIGdldCBkYXRhIGZyb20gdHhfaW5mbworCS8qIE5vdGUgdGhhdCB3 ZnhfcGVuZGluZ19nZXRfcGt0X3VzX2RlbGF5KCkgZ2V0IGRhdGEgZnJvbSB0eF9pbmZvICovCiAJ X3RyYWNlX3R4X3N0YXRzKGFyZywgc2tiLCB3ZnhfcGVuZGluZ19nZXRfcGt0X3VzX2RlbGF5KHdk ZXYsIHNrYikpOwogCXdmeF90eF9maWxsX3JhdGVzKHdkZXYsIHR4X2luZm8sIGFyZyk7CiAJc2ti X3RyaW0oc2tiLCBza2ItPmxlbiAtIHR4X3ByaXYtPmljdl9zaXplKTsKIAotCS8vIEZyb20gbm93 LCB5b3UgY2FuIHRvdWNoIHRvIHR4X2luZm8tPnN0YXR1cywgYnV0IGRvIG5vdCB0b3VjaCB0bwot CS8vIHR4X3ByaXYgYW55bW9yZQotCS8vIEZJWE1FOiB1c2UgaWVlZTgwMjExX3R4X2luZm9fY2xl YXJfc3RhdHVzKCkKKwkvKiBGcm9tIG5vdywgeW91IGNhbiB0b3VjaCB0byB0eF9pbmZvLT5zdGF0 dXMsIGJ1dCBkbyBub3QgdG91Y2ggdG8KKwkgKiB0eF9wcml2IGFueW1vcmUKKwkgKi8KKwkvKiBG SVhNRTogdXNlIGllZWU4MDIxMV90eF9pbmZvX2NsZWFyX3N0YXR1cygpICovCiAJbWVtc2V0KHR4 X2luZm8tPnJhdGVfZHJpdmVyX2RhdGEsIDAsIHNpemVvZih0eF9pbmZvLT5yYXRlX2RyaXZlcl9k YXRhKSk7CiAJbWVtc2V0KHR4X2luZm8tPnBhZCwgMCwgc2l6ZW9mKHR4X2luZm8tPnBhZCkpOwog CkBAIC01MjcsNyArNTMxLDcgQEAgdm9pZCB3ZnhfdHhfY29uZmlybV9jYihzdHJ1Y3Qgd2Z4X2Rl diAqd2RldiwgY29uc3Qgc3RydWN0IGhpZl9jbmZfdHggKmFyZykKIAl9IGVsc2UgaWYgKGFyZy0+ c3RhdHVzID09IEhJRl9TVEFUVVNfVFhfRkFJTF9SRVFVRVVFKSB7CiAJCVdBUk4oIWFyZy0+cmVx dWV1ZSwgImluY29oZXJlbnQgc3RhdHVzIGFuZCByZXN1bHRfZmxhZ3MiKTsKIAkJaWYgKHR4X2lu Zm8tPmZsYWdzICYgSUVFRTgwMjExX1RYX0NUTF9TRU5EX0FGVEVSX0RUSU0pIHsKLQkJCXd2aWYt PmFmdGVyX2R0aW1fdHhfYWxsb3dlZCA9IGZhbHNlOyAvLyBEVElNIHBlcmlvZCBlbGFwc2VkCisJ CQl3dmlmLT5hZnRlcl9kdGltX3R4X2FsbG93ZWQgPSBmYWxzZTsgLyogRFRJTSBwZXJpb2QgZWxh cHNlZCAqLwogCQkJc2NoZWR1bGVfd29yaygmd3ZpZi0+dXBkYXRlX3RpbV93b3JrKTsKIAkJfQog CQl0eF9pbmZvLT5mbGFncyB8PSBJRUVFODAyMTFfVFhfU1RBVF9UWF9GSUxURVJFRDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90eC5oIGIvZHJpdmVycy9zdGFnaW5nL3dm eC9kYXRhX3R4LmgKaW5kZXggN2RjYzkxMzJkN2NkLi5kYWZkOGZlZjQ0Y2YgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc3RhZ2luZy93ZngvZGF0YV90eC5oCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngv ZGF0YV90eC5oCkBAIC0yNyw3ICsyNyw3IEBAIHN0cnVjdCB0eF9wb2xpY3kgewogCiBzdHJ1Y3Qg dHhfcG9saWN5X2NhY2hlIHsKIAlzdHJ1Y3QgdHhfcG9saWN5IGNhY2hlW0hJRl9UWF9SRVRSWV9Q T0xJQ1lfTUFYXTsKLQkvLyBGSVhNRTogdXNlIGEgdHJlZXMgYW5kIGRyb3AgaGFzaCBmcm9tIHR4 X3BvbGljeQorCS8qIEZJWE1FOiB1c2UgYSB0cmVlcyBhbmQgZHJvcCBoYXNoIGZyb20gdHhfcG9s aWN5ICovCiAJc3RydWN0IGxpc3RfaGVhZCB1c2VkOwogCXN0cnVjdCBsaXN0X2hlYWQgZnJlZTsK IAlzcGlubG9ja190IGxvY2s7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVn LmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVnLmMKaW5kZXggMTZjM2Y1NWYxYTNkLi45Zjkz MjY4YTMyMDIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93ZngvZGVidWcuYworKysgYi9k cml2ZXJzL3N0YWdpbmcvd2Z4L2RlYnVnLmMKQEAgLTI1Niw5ICsyNTYsMTAgQEAgc3RhdGljIHNz aXplX3Qgd2Z4X3NlbmRfaGlmX21zZ193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwKIAlpZiAoY291 bnQgPCBzaXplb2Yoc3RydWN0IGhpZl9tc2cpKQogCQlyZXR1cm4gLUVJTlZBTDsKIAotCS8vIHdm eF9jbWRfc2VuZCgpIGNoZWNrcyB0aGF0IHJlcGx5IGJ1ZmZlciBpcyB3aWRlIGVub3VnaCwgYnV0 IGRvZXMgbm90Ci0JLy8gcmV0dXJuIHByZWNpc2UgbGVuZ3RoIHJlYWQuIFVzZXIgaGF2ZSB0byBr bm93IGhvdyBtYW55IGJ5dGVzIHNob3VsZAotCS8vIGJlIHJlYWQuIEZpbGxpbmcgcmVwbHkgYnVm ZmVyIHdpdGggYSBtZW1vcnkgcGF0dGVybiBtYXkgaGVscCB1c2VyLgorCS8qIHdmeF9jbWRfc2Vu ZCgpIGNoZWNrcyB0aGF0IHJlcGx5IGJ1ZmZlciBpcyB3aWRlIGVub3VnaCwgYnV0IGRvZXMgbm90 CisJICogcmV0dXJuIHByZWNpc2UgbGVuZ3RoIHJlYWQuIFVzZXIgaGF2ZSB0byBrbm93IGhvdyBt YW55IGJ5dGVzIHNob3VsZAorCSAqIGJlIHJlYWQuIEZpbGxpbmcgcmVwbHkgYnVmZmVyIHdpdGgg YSBtZW1vcnkgcGF0dGVybiBtYXkgaGVscCB1c2VyLgorCSAqLwogCW1lbXNldChjb250ZXh0LT5y ZXBseSwgMHhGRiwgc2l6ZW9mKGNvbnRleHQtPnJlcGx5KSk7CiAJcmVxdWVzdCA9IG1lbWR1cF91 c2VyKHVzZXJfYnVmLCBjb3VudCk7CiAJaWYgKElTX0VSUihyZXF1ZXN0KSkKQEAgLTI4OCw4ICsy ODksOSBAQCBzdGF0aWMgc3NpemVfdCB3Znhfc2VuZF9oaWZfbXNnX3JlYWQoc3RydWN0IGZpbGUg KmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZiwKIAkJcmV0dXJuIHJldDsKIAlpZiAoY29udGV4 dC0+cmV0IDwgMCkKIAkJcmV0dXJuIGNvbnRleHQtPnJldDsKLQkvLyBCZSBjYXJlZnVsLCB3cml0 ZSgpIGlzIHdhaXRpbmcgZm9yIGEgZnVsbCBtZXNzYWdlIHdoaWxlIHJlYWQoKQotCS8vIG9ubHkg cmV0dXJucyBhIHBheWxvYWQKKwkvKiBCZSBjYXJlZnVsLCB3cml0ZSgpIGlzIHdhaXRpbmcgZm9y IGEgZnVsbCBtZXNzYWdlIHdoaWxlIHJlYWQoKQorCSAqIG9ubHkgcmV0dXJucyBhIHBheWxvYWQK KwkgKi8KIAlpZiAoY29weV90b191c2VyKHVzZXJfYnVmLCBjb250ZXh0LT5yZXBseSwgY291bnQp KQogCQlyZXR1cm4gLUVGQVVMVDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9m d2lvLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2Z3aW8uYwppbmRleCA3YjkxYWM2MTVmNGEuLmM1 YmEwYTUwYjQ3NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9md2lvLmMKKysrIGIv ZHJpdmVycy9zdGFnaW5nL3dmeC9md2lvLmMKQEAgLTE0LDExICsxNCwxMSBAQAogI2luY2x1ZGUg IndmeC5oIgogI2luY2x1ZGUgImh3aW8uaCIKIAotLy8gQWRkcmVzc2VzIGJlbG93IGFyZSBpbiBT UkFNIGFyZWEKKy8qIEFkZHJlc3NlcyBiZWxvdyBhcmUgaW4gU1JBTSBhcmVhICovCiAjZGVmaW5l IFdGWF9ETkxEX0ZJRk8gICAgICAgICAgICAgMHgwOTAwNDAwMAogI2RlZmluZSAgICAgRE5MRF9C TE9DS19TSVpFICAgICAgICAgICAweDA0MDAKLSNkZWZpbmUgICAgIEROTERfRklGT19TSVpFICAg ICAgICAgICAgMHg4MDAwIC8vICgzMiAqIEROTERfQkxPQ0tfU0laRSkKLS8vIERvd25sb2FkIENv bnRyb2wgQXJlYSAoRENBKQorI2RlZmluZSAgICAgRE5MRF9GSUZPX1NJWkUgICAgICAgICAgICAw eDgwMDAgLyogKDMyICogRE5MRF9CTE9DS19TSVpFKSAqLworLyogRG93bmxvYWQgQ29udHJvbCBB cmVhIChEQ0EpICovCiAjZGVmaW5lIFdGWF9EQ0FfSU1BR0VfU0laRSAgICAgICAgMHgwOTAwQzAw MAogI2RlZmluZSBXRlhfRENBX1BVVCAgICAgICAgICAgICAgIDB4MDkwMEMwMDQKICNkZWZpbmUg V0ZYX0RDQV9HRVQgICAgICAgICAgICAgICAweDA5MDBDMDA4CkBAIC01OCw4ICs1OCw4IEBACiAj ZGVmaW5lICAgICBFUlJfRUNDX1BVQl9LRVkgICAgICAgICAgIDB4MTEKICNkZWZpbmUgICAgIEVS Ul9NQUNfS0VZICAgICAgICAgICAgICAgMHgxOAogCi0jZGVmaW5lIERDQV9USU1FT1VUICA1MCAv LyBtaWxsaXNlY29uZHMKLSNkZWZpbmUgV0FLRVVQX1RJTUVPVVQgMjAwIC8vIG1pbGxpc2Vjb25k cworI2RlZmluZSBEQ0FfVElNRU9VVCAgNTAgLyogbWlsbGlzZWNvbmRzICovCisjZGVmaW5lIFdB S0VVUF9USU1FT1VUIDIwMCAvKiBtaWxsaXNlY29uZHMgKi8KIAogc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBmd2lvX2Vycm9yc1tdID0gewogCVtFUlJfSU5WQUxJRF9TRUNfVFlQRV0gPSAiSW52 YWxpZCBzZWN0aW9uIHR5cGUgb3Igd3JvbmcgZW5jcnlwdGlvbiIsCkBAIC0xMjUsNyArMTI1LDcg QEAgc3RhdGljIGludCBnZXRfZmlybXdhcmUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBrZXlz ZXRfY2hpcCwKIAogCWRhdGEgPSAoKmZ3KS0+ZGF0YTsKIAlpZiAobWVtY21wKGRhdGEsICJLRVlT RVQiLCA2KSAhPSAwKSB7Ci0JCS8vIExlZ2FjeSBmaXJtd2FyZSBmb3JtYXQKKwkJLyogTGVnYWN5 IGZpcm13YXJlIGZvcm1hdCAqLwogCQkqZmlsZV9vZmZzZXQgPSAwOwogCQlrZXlzZXRfZmlsZSA9 IDB4OTA7CiAJfSBlbHNlIHsKQEAgLTIwNyw4ICsyMDcsOSBAQCBzdGF0aWMgaW50IHVwbG9hZF9m aXJtd2FyZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgY29uc3QgdTggKmRhdGEsIHNpemVfdCBsZW4p CiAJCWlmIChyZXQgPCAwKQogCQkJcmV0dXJuIHJldDsKIAotCQkvLyBUaGUgZGV2aWNlIHNlZW1z IHRvIG5vdCBzdXBwb3J0IHdyaXRpbmcgMCBpbiB0aGlzIHJlZ2lzdGVyCi0JCS8vIGR1cmluZyBm aXJzdCBsb29wCisJCS8qIFRoZSBkZXZpY2Ugc2VlbXMgdG8gbm90IHN1cHBvcnQgd3JpdGluZyAw IGluIHRoaXMgcmVnaXN0ZXIKKwkJICogZHVyaW5nIGZpcnN0IGxvb3AKKwkJICovCiAJCW9mZnMg Kz0gRE5MRF9CTE9DS19TSVpFOwogCQlyZXQgPSBzcmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRENB X1BVVCwgb2Zmcyk7CiAJCWlmIChyZXQgPCAwKQpAQCAtMjY1LDcgKzI2Niw3IEBAIHN0YXRpYyBp bnQgbG9hZF9maXJtd2FyZV9zZWN1cmUoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAJaWYgKHJldCkK IAkJZ290byBlcnJvcjsKIAotCXNyYW1fcmVnX3dyaXRlKHdkZXYsIFdGWF9ETkxEX0ZJRk8sIDB4 RkZGRkZGRkYpOyAvLyBGaWZvIGluaXQKKwlzcmFtX3JlZ193cml0ZSh3ZGV2LCBXRlhfRE5MRF9G SUZPLCAweEZGRkZGRkZGKTsgLyogRmlmbyBpbml0ICovCiAJc3JhbV93cml0ZV9kbWFfc2FmZSh3 ZGV2LCBXRlhfRENBX0ZXX1ZFUlNJT04sICJceDAxXHgwMFx4MDBceDAwIiwKIAkJCSAgICBGV19W RVJTSU9OX1NJWkUpOwogCXNyYW1fd3JpdGVfZG1hX3NhZmUod2RldiwgV0ZYX0RDQV9GV19TSUdO QVRVUkUsIGZ3LT5kYXRhICsgZndfb2Zmc2V0LApAQCAtMjg5LDcgKzI5MCw3IEBAIHN0YXRpYyBp bnQgbG9hZF9maXJtd2FyZV9zZWN1cmUoc3RydWN0IHdmeF9kZXYgKndkZXYpCiAKIAlzcmFtX3Jl Z193cml0ZSh3ZGV2LCBXRlhfRENBX0hPU1RfU1RBVFVTLCBIT1NUX1VQTE9BRF9DT01QTEVURSk7 CiAJcmV0ID0gd2FpdF9uY3Bfc3RhdHVzKHdkZXYsIE5DUF9BVVRIX09LKTsKLQkvLyBMZWdhY3kg Uk9NIHN1cHBvcnQKKwkvKiBMZWdhY3kgUk9NIHN1cHBvcnQgKi8KIAlpZiAocmV0IDwgMCkKIAkJ cmV0ID0gd2FpdF9uY3Bfc3RhdHVzKHdkZXYsIE5DUF9QVUJfS0VZX1JEWSk7CiAJaWYgKHJldCA8 IDApCkBAIC0zMzQsNyArMzM1LDcgQEAgaW50IHdmeF9pbml0X2RldmljZShzdHJ1Y3Qgd2Z4X2Rl diAqd2RldikKIHsKIAlpbnQgcmV0OwogCWludCBod19yZXZpc2lvbiwgaHdfdHlwZTsKLQlpbnQg d2FrZXVwX3RpbWVvdXQgPSA1MDsgLy8gbXMKKwlpbnQgd2FrZXVwX3RpbWVvdXQgPSA1MDsgLyog bXMgKi8KIAlrdGltZV90IG5vdywgc3RhcnQ7CiAJdTMyIHJlZzsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9zdGFnaW5nL3dmeC9oaWZfYXBpX2NtZC5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZf YXBpX2NtZC5oCmluZGV4IDU1M2RjNDUxNDJmMi4uYjBhYTEzYjIzYTUxIDEwMDY0NAotLS0gYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfY21kLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dm eC9oaWZfYXBpX2NtZC5oCkBAIC0xMzQsNyArMTM0LDcgQEAgc3RydWN0IGhpZl9yZXFfc3RhcnRf c2Nhbl9hbHQgewogCXU4ICAgICBudW1fb2ZfY2hhbm5lbHM7CiAJX19sZTMyIG1pbl9jaGFubmVs X3RpbWU7CiAJX19sZTMyIG1heF9jaGFubmVsX3RpbWU7Ci0JX19sZTMyIHR4X3Bvd2VyX2xldmVs OyAvLyBzaWduZWQgdmFsdWUKKwlfX2xlMzIgdHhfcG93ZXJfbGV2ZWw7IC8qIHNpZ25lZCB2YWx1 ZSAqLwogCXN0cnVjdCBoaWZfc3NpZF9kZWYgc3NpZF9kZWZbSElGX0FQSV9NQVhfTkJfU1NJRFNd OwogCXU4ICAgICBjaGFubmVsX2xpc3RbXTsKIH0gX19wYWNrZWQ7CkBAIC0xNzQsOCArMTc0LDkg QEAgZW51bSBoaWZfZnJhbWVfZm9ybWF0IHsKIH07CiAKIHN0cnVjdCBoaWZfcmVxX3R4IHsKLQkv LyBwYWNrZXRfaWQgaXMgbm90IGludGVycHJldGVkIGJ5IHRoZSBkZXZpY2UsIHNvIGl0IGlzIG5v dCBuZWNlc3NhcnkgdG8KLQkvLyBkZWNsYXJlIGl0IGxpdHRsZSBlbmRpYW4KKwkvKiBwYWNrZXRf aWQgaXMgbm90IGludGVycHJldGVkIGJ5IHRoZSBkZXZpY2UsIHNvIGl0IGlzIG5vdCBuZWNlc3Nh cnkgdG8KKwkgKiBkZWNsYXJlIGl0IGxpdHRsZSBlbmRpYW4KKwkgKi8KIAl1MzIgICAgcGFja2V0 X2lkOwogCXU4ICAgICBtYXhfdHhfcmF0ZTsKIAl1OCAgICAgcXVldWVfaWQ6MjsKQEAgLTIxMSw4 ICsyMTIsOSBAQCBlbnVtIGhpZl9xb3NfYWNrcGxjeSB7CiAKIHN0cnVjdCBoaWZfY25mX3R4IHsK IAlfX2xlMzIgc3RhdHVzOwotCS8vIHBhY2tldF9pZCBpcyBjb3BpZWQgZnJvbSBzdHJ1Y3QgaGlm X3JlcV90eCB3aXRob3V0IGJlZW4gaW50ZXJwcmV0ZWQKLQkvLyBieSB0aGUgZGV2aWNlLCBzbyBp dCBpcyBub3QgbmVjZXNzYXJ5IHRvIGRlY2xhcmUgaXQgbGl0dGxlIGVuZGlhbgorCS8qIHBhY2tl dF9pZCBpcyBjb3BpZWQgZnJvbSBzdHJ1Y3QgaGlmX3JlcV90eCB3aXRob3V0IGJlZW4gaW50ZXJw cmV0ZWQKKwkgKiBieSB0aGUgZGV2aWNlLCBzbyBpdCBpcyBub3QgbmVjZXNzYXJ5IHRvIGRlY2xh cmUgaXQgbGl0dGxlIGVuZGlhbgorCSAqLwogCXUzMiAgICBwYWNrZXRfaWQ7CiAJdTggICAgIHR4 ZWRfcmF0ZTsKIAl1OCAgICAgYWNrX2ZhaWx1cmVzOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFn aW5nL3dmeC9oaWZfYXBpX2dlbmVyYWwuaCBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9n ZW5lcmFsLmgKaW5kZXggNzE0ZTFkZDgwOGU2Li41Zjc0ZjgyOWI3ZGYgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9nZW5lcmFsLmgKKysrIGIvZHJpdmVycy9zdGFnaW5n L3dmeC9oaWZfYXBpX2dlbmVyYWwuaApAQCAtMTE0LDkgKzExNCwxMCBAQCBlbnVtIGhpZl9hcGlf cmF0ZV9pbmRleCB7CiB9OwogCiBzdHJ1Y3QgaGlmX2luZF9zdGFydHVwIHsKLQkvLyBBcyB0aGUg b3RoZXJzLCB0aGlzIHN0cnVjdCBpcyBpbnRlcnByZXRlZCBhcyBsaXR0bGUgZW5kaWFuIGJ5IHRo ZQotCS8vIGRldmljZS4gSG93ZXZlciwgdGhpcyBzdHJ1Y3QgaXMgYWxzbyB1c2VkIGJ5IHRoZSBk cml2ZXIuIFdlIHByZWZlciB0bwotCS8vIGRlY2xhcmUgaXQgaW4gbmF0aXZlIG9yZGVyIGFuZCBk b2luZyBieXRlIHN3YXAgb24gcmVjZXB0aW9uLgorCS8qIEFzIHRoZSBvdGhlcnMsIHRoaXMgc3Ry dWN0IGlzIGludGVycHJldGVkIGFzIGxpdHRsZSBlbmRpYW4gYnkgdGhlCisJICogZGV2aWNlLiBI b3dldmVyLCB0aGlzIHN0cnVjdCBpcyBhbHNvIHVzZWQgYnkgdGhlIGRyaXZlci4gV2UgcHJlZmVy IHRvCisJICogZGVjbGFyZSBpdCBpbiBuYXRpdmUgb3JkZXIgYW5kIGRvaW5nIGJ5dGUgc3dhcCBv biByZWNlcHRpb24uCisJICovCiAJX19sZTMyIHN0YXR1czsKIAl1MTYgICAgaGFyZHdhcmVfaWQ7 CiAJdTggICAgIG9wblsxNF07CkBAIC0xOTMsOSArMTk0LDkgQEAgc3RydWN0IGhpZl9yeF9zdGF0 cyB7CiAJX19sZTMyIHRocm91Z2hwdXQ7CiAJX19sZTMyIG5iX3J4X2J5X3JhdGVbQVBJX1JBVEVf TlVNX0VOVFJJRVNdOwogCV9fbGUxNiBwZXJbQVBJX1JBVEVfTlVNX0VOVFJJRVNdOwotCV9fbGUx NiBzbnJbQVBJX1JBVEVfTlVNX0VOVFJJRVNdOyAgLy8gc2lnbmVkIHZhbHVlCi0JX19sZTE2IHJz c2lbQVBJX1JBVEVfTlVNX0VOVFJJRVNdOyAvLyBzaWduZWQgdmFsdWUKLQlfX2xlMTYgY2ZvW0FQ SV9SQVRFX05VTV9FTlRSSUVTXTsgIC8vIHNpZ25lZCB2YWx1ZQorCV9fbGUxNiBzbnJbQVBJX1JB VEVfTlVNX0VOVFJJRVNdOyAgLyogc2lnbmVkIHZhbHVlICovCisJX19sZTE2IHJzc2lbQVBJX1JB VEVfTlVNX0VOVFJJRVNdOyAvKiBzaWduZWQgdmFsdWUgKi8KKwlfX2xlMTYgY2ZvW0FQSV9SQVRF X05VTV9FTlRSSUVTXTsgIC8qIHNpZ25lZCB2YWx1ZSAqLwogCV9fbGUzMiBkYXRlOwogCV9fbGUz MiBwd3JfY2xrX2ZyZXE7CiAJdTggICAgIGlzX2V4dF9wd3JfY2xrOwpAQCAtMjA1LDggKzIwNiw4 IEBAIHN0cnVjdCBoaWZfcnhfc3RhdHMgewogc3RydWN0IGhpZl90eF9wb3dlcl9sb29wX2luZm8g ewogCV9fbGUxNiB0eF9nYWluX2RpZzsKIAlfX2xlMTYgdHhfZ2Fpbl9wYTsKLQlfX2xlMTYgdGFy Z2V0X3BvdXQ7IC8vIHNpZ25lZCB2YWx1ZQotCV9fbGUxNiBwX2VzdGltYXRpb247IC8vIHNpZ25l ZCB2YWx1ZQorCV9fbGUxNiB0YXJnZXRfcG91dDsgLyogc2lnbmVkIHZhbHVlICovCisJX19sZTE2 IHBfZXN0aW1hdGlvbjsgLyogc2lnbmVkIHZhbHVlICovCiAJX19sZTE2IHZwZGV0OwogCXU4ICAg ICBtZWFzdXJlbWVudF9pbmRleDsKIAl1OCAgICAgcmVzZXJ2ZWQ7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3N0YWdpbmcvd2Z4L2hpZl9hcGlfbWliLmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9h cGlfbWliLmgKaW5kZXggYjc2ZjE5MjI0YjVhLi5kYTUzNGYyNDQ3NTcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvc3RhZ2luZy93ZngvaGlmX2FwaV9taWIuaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4 L2hpZl9hcGlfbWliLmgKQEAgLTIwOSw3ICsyMDksNyBAQCBzdHJ1Y3QgaGlmX21pYl9zbG90X3Rp bWUgewogfSBfX3BhY2tlZDsKIAogc3RydWN0IGhpZl9taWJfY3VycmVudF90eF9wb3dlcl9sZXZl bCB7Ci0JX19sZTMyIHBvd2VyX2xldmVsOyAvLyBzaWduZWQgdmFsdWUKKwlfX2xlMzIgcG93ZXJf bGV2ZWw7IC8qIHNpZ25lZCB2YWx1ZSAqLwogfSBfX3BhY2tlZDsKIAogc3RydWN0IGhpZl9taWJf bm9uX2VycF9wcm90ZWN0aW9uIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlm X3J4LmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jCmluZGV4IGZjZmQ1Y2NjOWYwMS4u Njk2M2I1NGQ1NTkzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl9yeC5jCisr KyBiL2RyaXZlcnMvc3RhZ2luZy93ZngvaGlmX3J4LmMKQEAgLTE5LDEwICsxOSwxMCBAQAogc3Rh dGljIGludCBoaWZfZ2VuZXJpY19jb25maXJtKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LAogCQkJICAg ICAgIGNvbnN0IHN0cnVjdCBoaWZfbXNnICpoaWYsIGNvbnN0IHZvaWQgKmJ1ZikKIHsKLQkvLyBB bGwgY29uZmlybSBtZXNzYWdlcyBzdGFydCB3aXRoIHN0YXR1cworCS8qIEFsbCBjb25maXJtIG1l c3NhZ2VzIHN0YXJ0IHdpdGggc3RhdHVzICovCiAJaW50IHN0YXR1cyA9IGxlMzJfdG9fY3B1cCgo X19sZTMyICopYnVmKTsKIAlpbnQgY21kID0gaGlmLT5pZDsKLQlpbnQgbGVuID0gbGUxNl90b19j cHUoaGlmLT5sZW4pIC0gNDsgLy8gZHJvcCBoZWFkZXIKKwlpbnQgbGVuID0gbGUxNl90b19jcHUo aGlmLT5sZW4pIC0gNDsgLyogZHJvcCBoZWFkZXIgKi8KIAogCVdBUk4oIW11dGV4X2lzX2xvY2tl ZCgmd2Rldi0+aGlmX2NtZC5sb2NrKSwgImRhdGEgbG9ja2luZyBlcnJvciIpOwogCkBAIC0yNDQs NyArMjQ0LDcgQEAgc3RhdGljIGludCBoaWZfZ2VuZXJpY19pbmRpY2F0aW9uKHN0cnVjdCB3Znhf ZGV2ICp3ZGV2LAogCQlyZXR1cm4gMDsKIAljYXNlIEhJRl9HRU5FUklDX0lORElDQVRJT05fVFlQ RV9SWF9TVEFUUzoKIAkJbXV0ZXhfbG9jaygmd2Rldi0+cnhfc3RhdHNfbG9jayk7Ci0JCS8vIE9s ZGVyIGZpcm13YXJlIHNlbmQgYSBnZW5lcmljIGluZGljYXRpb24gYmVzaWRlIFJ4U3RhdHMKKwkJ LyogT2xkZXIgZmlybXdhcmUgc2VuZCBhIGdlbmVyaWMgaW5kaWNhdGlvbiBiZXNpZGUgUnhTdGF0 cyAqLwogCQlpZiAoIXdmeF9hcGlfb2xkZXJfdGhhbih3ZGV2LCAxLCA0KSkKIAkJCWRldl9pbmZv KHdkZXYtPmRldiwgIlJ4IHRlc3Qgb25nb2luZy4gVGVtcGVyYXR1cmU6ICVkIGRlZ3JlZXMgQ1xu IiwKIAkJCQkgYm9keS0+ZGF0YS5yeF9zdGF0cy5jdXJyZW50X3RlbXApOwpAQCAtMjk3LDcgKzI5 Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCQkiYnVzIGNsb2NrIGlzIHRvbyBzbG93ICg8 MWtIeikiIH0sCiAJeyBISUZfRVJST1JfSElGX1JYX0RBVEFfVE9PX0xBUkdFLAogCQkiSElGIG1l c3NhZ2UgdG9vIGxhcmdlIiB9LAotCS8vIEZvbGxvd2luZyBlcnJvcnMgb25seSBleGlzdHMgaW4g b2xkIGZpcm13YXJlIHZlcnNpb25zOgorCS8qIEZvbGxvd2luZyBlcnJvcnMgb25seSBleGlzdHMg aW4gb2xkIGZpcm13YXJlIHZlcnNpb25zOiAqLwogCXsgSElGX0VSUk9SX0hJRl9UWF9RVUVVRV9G VUxMLAogCQkiSElGIG1lc3NhZ2VzIHF1ZXVlIGlzIGZ1bGwiIH0sCiAJeyBISUZfRVJST1JfSElG X0JVUywKQEAgLTM3NCw3ICszNzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKIAl7IEhJRl9J TkRfSURfR0VORVJJQywgICAgICAgICAgICAgIGhpZl9nZW5lcmljX2luZGljYXRpb24gfSwKIAl7 IEhJRl9JTkRfSURfRVJST1IsICAgICAgICAgICAgICAgIGhpZl9lcnJvcl9pbmRpY2F0aW9uIH0s CiAJeyBISUZfSU5EX0lEX0VYQ0VQVElPTiwgICAgICAgICAgICBoaWZfZXhjZXB0aW9uX2luZGlj YXRpb24gfSwKLQkvLyBGSVhNRTogYWxsb2NhdGUgc2tiX3AgZnJvbSBoaWZfcmVjZWl2ZV9pbmRp Y2F0aW9uIGFuZCBtYWtlIGl0IGdlbmVyaWMKKwkvKiBGSVhNRTogYWxsb2NhdGUgc2tiX3AgZnJv bSBoaWZfcmVjZWl2ZV9pbmRpY2F0aW9uIGFuZCBtYWtlIGl0IGdlbmVyaWMgKi8KIAkvL3sgSElG X0lORF9JRF9SWCwgICAgICAgICAgICAgICAgIGhpZl9yZWNlaXZlX2luZGljYXRpb24gfSwKIH07 CiAKQEAgLTM4NSwxMiArMzg1LDEzIEBAIHZvaWQgd2Z4X2hhbmRsZV9yeChzdHJ1Y3Qgd2Z4X2Rl diAqd2Rldiwgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlpbnQgaGlmX2lkID0gaGlmLT5pZDsKIAog CWlmIChoaWZfaWQgPT0gSElGX0lORF9JRF9SWCkgewotCQkvLyBoaWZfcmVjZWl2ZV9pbmRpY2F0 aW9uIHRha2UgY2FyZSBvZiBza2IgbGlmZXRpbWUKKwkJLyogaGlmX3JlY2VpdmVfaW5kaWNhdGlv biB0YWtlIGNhcmUgb2Ygc2tiIGxpZmV0aW1lICovCiAJCWhpZl9yZWNlaXZlX2luZGljYXRpb24o d2RldiwgaGlmLCBoaWYtPmJvZHksIHNrYik7CiAJCXJldHVybjsKIAl9Ci0JLy8gTm90ZTogbXV0 ZXhfaXNfbG9jayBjYXVzZSBhbiBpbXBsaWNpdCBtZW1vcnkgYmFycmllciB0aGF0IHByb3RlY3QK LQkvLyBidWZfc2VuZAorCS8qIE5vdGU6IG11dGV4X2lzX2xvY2sgY2F1c2UgYW4gaW1wbGljaXQg bWVtb3J5IGJhcnJpZXIgdGhhdCBwcm90ZWN0CisJICogYnVmX3NlbmQKKwkgKi8KIAlpZiAobXV0 ZXhfaXNfbG9ja2VkKCZ3ZGV2LT5oaWZfY21kLmxvY2spICYmCiAJICAgIHdkZXYtPmhpZl9jbWQu YnVmX3NlbmQgJiYKIAkgICAgd2Rldi0+aGlmX2NtZC5idWZfc2VuZC0+aWQgPT0gaGlmX2lkKSB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eC5jIGIvZHJpdmVycy9zdGFn aW5nL3dmeC9oaWZfdHguYwppbmRleCA5N2RhODJiNTQ0MWYuLmQzOTM2NmMxNzFiYSAxMDA2NDQK LS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9oaWZfdHguYworKysgYi9kcml2ZXJzL3N0YWdpbmcv d2Z4L2hpZl90eC5jCkBAIC01NSwxNSArNTUsMTYgQEAgaW50IHdmeF9jbWRfc2VuZChzdHJ1Y3Qg d2Z4X2RldiAqd2Rldiwgc3RydWN0IGhpZl9tc2cgKnJlcXVlc3QsCiAJaW50IHZpZiA9IHJlcXVl c3QtPmludGVyZmFjZTsKIAlpbnQgcmV0OwogCi0JLy8gRG8gbm90IHdhaXQgZm9yIGFueSByZXBs eSBpZiBjaGlwIGlzIGZyb3plbgorCS8qIERvIG5vdCB3YWl0IGZvciBhbnkgcmVwbHkgaWYgY2hp cCBpcyBmcm96ZW4gKi8KIAlpZiAod2Rldi0+Y2hpcF9mcm96ZW4pCiAJCXJldHVybiAtRVRJTUVE T1VUOwogCiAJbXV0ZXhfbG9jaygmd2Rldi0+aGlmX2NtZC5sb2NrKTsKIAlXQVJOKHdkZXYtPmhp Zl9jbWQuYnVmX3NlbmQsICJkYXRhIGxvY2tpbmcgZXJyb3IiKTsKIAotCS8vIE5vdGU6IGNhbGwg dG8gY29tcGxldGUoKSBiZWxvdyBoYXMgYW4gaW1wbGljaXQgbWVtb3J5IGJhcnJpZXIgdGhhdAot CS8vIGhvcGVmdWxseSBwcm90ZWN0IGJ1Zl9zZW5kCisJLyogTm90ZTogY2FsbCB0byBjb21wbGV0 ZSgpIGJlbG93IGhhcyBhbiBpbXBsaWNpdCBtZW1vcnkgYmFycmllciB0aGF0CisJICogaG9wZWZ1 bGx5IHByb3RlY3QgYnVmX3NlbmQKKwkgKi8KIAl3ZGV2LT5oaWZfY21kLmJ1Zl9zZW5kID0gcmVx dWVzdDsKIAl3ZGV2LT5oaWZfY21kLmJ1Zl9yZWN2ID0gcmVwbHk7CiAJd2Rldi0+aGlmX2NtZC5s ZW5fcmVjdiA9IHJlcGx5X2xlbjsKQEAgLTcyLDggKzczLDkgQEAgaW50IHdmeF9jbWRfc2VuZChz dHJ1Y3Qgd2Z4X2RldiAqd2Rldiwgc3RydWN0IGhpZl9tc2cgKnJlcXVlc3QsCiAJd2Z4X2JoX3Jl cXVlc3RfdHgod2Rldik7CiAKIAlpZiAobm9fcmVwbHkpIHsKLQkJLy8gQ2hpcCB3b24ndCByZXBs eS4gR2l2ZSBlbm91Z2ggdGltZSB0byB0aGUgd3EgdG8gc2VuZCB0aGUKLQkJLy8gYnVmZmVyLgor CQkvKiBDaGlwIHdvbid0IHJlcGx5LiBHaXZlIGVub3VnaCB0aW1lIHRvIHRoZSB3cSB0byBzZW5k IHRoZQorCQkgKiBidWZmZXIuCisJCSAqLwogCQltc2xlZXAoMTAwKTsKIAkJd2Rldi0+aGlmX2Nt ZC5idWZfc2VuZCA9IE5VTEw7CiAJCW11dGV4X3VubG9jaygmd2Rldi0+aGlmX2NtZC5sb2NrKTsK QEAgLTExNyw4ICsxMTksOSBAQCBpbnQgd2Z4X2NtZF9zZW5kKHN0cnVjdCB3ZnhfZGV2ICp3ZGV2 LCBzdHJ1Y3QgaGlmX21zZyAqcmVxdWVzdCwKIAlyZXR1cm4gcmV0OwogfQogCi0vLyBUaGlzIGZ1 bmN0aW9uIGlzIHNwZWNpYWwuIEFmdGVyIEhJRl9SRVFfSURfU0hVVF9ET1dOLCBjaGlwIHdvbid0 IHJlcGx5IHRvIGFueQotLy8gcmVxdWVzdCBhbnltb3JlLiBPYnZpb3VzbHksIG9ubHkgY2FsbCB0 aGlzIGZ1bmN0aW9uIGR1cmluZyBkZXZpY2UgdW5yZWdpc3Rlci4KKy8qIFRoaXMgZnVuY3Rpb24g aXMgc3BlY2lhbC4gQWZ0ZXIgSElGX1JFUV9JRF9TSFVUX0RPV04sIGNoaXAgd29uJ3QgcmVwbHkg dG8gYW55CisgKiByZXF1ZXN0IGFueW1vcmUuIE9idmlvdXNseSwgb25seSBjYWxsIHRoaXMgZnVu Y3Rpb24gZHVyaW5nIGRldmljZSB1bnJlZ2lzdGVyLgorICovCiBpbnQgaGlmX3NodXRkb3duKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2KQogewogCWludCByZXQ7CkBAIC0yNzcsNyArMjgwLDcgQEAgaW50 IGhpZl9zdG9wX3NjYW4oc3RydWN0IHdmeF92aWYgKnd2aWYpCiB7CiAJaW50IHJldDsKIAlzdHJ1 Y3QgaGlmX21zZyAqaGlmOwotCS8vIGJvZHkgYXNzb2NpYXRlZCB0byBISUZfUkVRX0lEX1NUT1Bf U0NBTiBpcyBlbXB0eQorCS8qIGJvZHkgYXNzb2NpYXRlZCB0byBISUZfUkVRX0lEX1NUT1BfU0NB TiBpcyBlbXB0eSAqLwogCXdmeF9hbGxvY19oaWYoMCwgJmhpZik7CiAKIAlpZiAoIWhpZikKQEAg LTM0MiwxNiArMzQ1LDE3IEBAIGludCBoaWZfYWRkX2tleShzdHJ1Y3Qgd2Z4X2RldiAqd2Rldiwg Y29uc3Qgc3RydWN0IGhpZl9yZXFfYWRkX2tleSAqYXJnKQogewogCWludCByZXQ7CiAJc3RydWN0 IGhpZl9tc2cgKmhpZjsKLQkvLyBGSVhNRTogb25seSBzZW5kIG5lY2Vzc2FyeSBiaXRzCisJLyog RklYTUU6IG9ubHkgc2VuZCBuZWNlc3NhcnkgYml0cyAqLwogCXN0cnVjdCBoaWZfcmVxX2FkZF9r ZXkgKmJvZHkgPSB3ZnhfYWxsb2NfaGlmKHNpemVvZigqYm9keSksICZoaWYpOwogCiAJaWYgKCFo aWYpCiAJCXJldHVybiAtRU5PTUVNOwotCS8vIEZJWE1FOiBzd2FwIGJ5dGVzIGFzIG5lY2Vzc2Fy eSBpbiBib2R5CisJLyogRklYTUU6IHN3YXAgYnl0ZXMgYXMgbmVjZXNzYXJ5IGluIGJvZHkgKi8K IAltZW1jcHkoYm9keSwgYXJnLCBzaXplb2YoKmJvZHkpKTsKIAlpZiAod2Z4X2FwaV9vbGRlcl90 aGFuKHdkZXYsIDEsIDUpKQotCQkvLyBMZWdhY3kgZmlybXdhcmVzIGV4cGVjdCB0aGF0IGFkZF9r ZXkgdG8gYmUgc2VudCBvbiByaWdodAotCQkvLyBpbnRlcmZhY2UuCisJCS8qIExlZ2FjeSBmaXJt d2FyZXMgZXhwZWN0IHRoYXQgYWRkX2tleSB0byBiZSBzZW50IG9uIHJpZ2h0CisJCSAqIGludGVy ZmFjZS4KKwkJICovCiAJCXdmeF9maWxsX2hlYWRlcihoaWYsIGFyZy0+aW50X2lkLCBISUZfUkVR X0lEX0FERF9LRVksCiAJCQkJc2l6ZW9mKCpib2R5KSk7CiAJZWxzZQpAQCAtMzk1LDcgKzM5OSw3 IEBAIGludCBoaWZfc2V0X2VkY2FfcXVldWVfcGFyYW1zKHN0cnVjdCB3ZnhfdmlmICp3dmlmLCB1 MTYgcXVldWUsCiAJYm9keS0+Y3dfbWF4ID0gY3B1X3RvX2xlMTYoYXJnLT5jd19tYXgpOwogCWJv ZHktPnR4X29wX2xpbWl0ID0gY3B1X3RvX2xlMTYoYXJnLT50eG9wICogVVNFQ19QRVJfVFhPUCk7 CiAJYm9keS0+cXVldWVfaWQgPSAzIC0gcXVldWU7Ci0JLy8gQVBJIDIuMCBoYXMgY2hhbmdlZCBx dWV1ZSBJRHMgdmFsdWVzCisJLyogQVBJIDIuMCBoYXMgY2hhbmdlZCBxdWV1ZSBJRHMgdmFsdWVz ICovCiAJaWYgKHdmeF9hcGlfb2xkZXJfdGhhbih3dmlmLT53ZGV2LCAyLCAwKSAmJiBxdWV1ZSA9 PSBJRUVFODAyMTFfQUNfQkUpCiAJCWJvZHktPnF1ZXVlX2lkID0gSElGX1FVRVVFX0lEX0JBQ0tH Uk9VTkQ7CiAJaWYgKHdmeF9hcGlfb2xkZXJfdGhhbih3dmlmLT53ZGV2LCAyLCAwKSAmJiBxdWV1 ZSA9PSBJRUVFODAyMTFfQUNfQkspCkBAIC00MjAsNyArNDI0LDcgQEAgaW50IGhpZl9zZXRfcG0o c3RydWN0IHdmeF92aWYgKnd2aWYsIGJvb2wgcHMsIGludCBkeW5hbWljX3BzX3RpbWVvdXQpCiAJ CXJldHVybiAtRU5PTUVNOwogCWlmIChwcykgewogCQlib2R5LT5lbnRlcl9wc20gPSAxOwotCQkv LyBGaXJtd2FyZSBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgdGhhbiAxMjhtcworCQkvKiBGaXJtd2Fy ZSBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgdGhhbiAxMjhtcyAqLwogCQlib2R5LT5mYXN0X3BzbV9p ZGxlX3BlcmlvZCA9IG1pbihkeW5hbWljX3BzX3RpbWVvdXQgKiAyLCAyNTUpOwogCQlpZiAoYm9k eS0+ZmFzdF9wc21faWRsZV9wZXJpb2QpCiAJCQlib2R5LT5mYXN0X3BzbSA9IDE7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuYyBiL2RyaXZlcnMvc3RhZ2luZy93 ZngvaGlmX3R4X21pYi5jCmluZGV4IGM3NDUyNzE5NDRlOS4uNDVlNTMxZDk5NmJkIDEwMDY0NAot LS0gYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L2hpZl90eF9taWIuYworKysgYi9kcml2ZXJzL3N0YWdp bmcvd2Z4L2hpZl90eF9taWIuYwpAQCAtNjgsNyArNjgsNyBAQCBpbnQgaGlmX2dldF9jb3VudGVy c190YWJsZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IHZpZl9pZCwKIAkJCSAgIHN0cnVjdCBo aWZfbWliX2V4dGVuZGVkX2NvdW50X3RhYmxlICphcmcpCiB7CiAJaWYgKHdmeF9hcGlfb2xkZXJf dGhhbih3ZGV2LCAxLCAzKSkgewotCQkvLyBleHRlbmRlZF9jb3VudF90YWJsZSBpcyB3aWRlciB0 aGFuIGNvdW50X3RhYmxlCisJCS8qIGV4dGVuZGVkX2NvdW50X3RhYmxlIGlzIHdpZGVyIHRoYW4g Y291bnRfdGFibGUgKi8KIAkJbWVtc2V0KGFyZywgMHhGRiwgc2l6ZW9mKCphcmcpKTsKIAkJcmV0 dXJuIGhpZl9yZWFkX21pYih3ZGV2LCB2aWZfaWQsIEhJRl9NSUJfSURfQ09VTlRFUlNfVEFCTEUs CiAJCQkJICAgIGFyZywgc2l6ZW9mKHN0cnVjdCBoaWZfbWliX2NvdW50X3RhYmxlKSk7CkBAIC0y NDYsNyArMjQ2LDcgQEAgaW50IGhpZl9zZXRfYXJwX2lwdjRfZmlsdGVyKHN0cnVjdCB3Znhfdmlm ICp3dmlmLCBpbnQgaWR4LCBfX2JlMzIgKmFkZHIpCiAJfTsKIAogCWlmIChhZGRyKSB7Ci0JCS8v IENhdXRpb246IHR5cGUgb2YgYWRkciBpcyBfX2JlMzIKKwkJLyogQ2F1dGlvbjogdHlwZSBvZiBh ZGRyIGlzIF9fYmUzMiAqLwogCQltZW1jcHkoYXJnLmlwdjRfYWRkcmVzcywgYWRkciwgc2l6ZW9m KGFyZy5pcHY0X2FkZHJlc3MpKTsKIAkJYXJnLmFycF9lbmFibGUgPSBISUZfQVJQX05TX0ZJTFRF UklOR19FTkFCTEU7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmMg Yi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2h3aW8uYwppbmRleCAzNmZiYzViNWQ2NGMuLjMwZWI4ODg4 MzBkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmMKKysrIGIvZHJpdmVy cy9zdGFnaW5nL3dmeC9od2lvLmMKQEAgLTMxLDcgKzMxLDcgQEAgc3RhdGljIGludCByZWFkMzIo c3RydWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsIHUzMiAqdmFsKQogCWludCByZXQ7CiAJX19s ZTMyICp0bXAgPSBrbWFsbG9jKHNpemVvZih1MzIpLCBHRlBfS0VSTkVMKTsKIAotCSp2YWwgPSB+ MDsgLy8gTmV2ZXIgcmV0dXJuIHVuZGVmaW5lZCB2YWx1ZQorCSp2YWwgPSB+MDsgLyogTmV2ZXIg cmV0dXJuIHVuZGVmaW5lZCB2YWx1ZSAqLwogCWlmICghdG1wKQogCQlyZXR1cm4gLUVOT01FTTsK IAlyZXQgPSB3ZGV2LT5od2J1c19vcHMtPmNvcHlfZnJvbV9pbyh3ZGV2LT5od2J1c19wcml2LCBy ZWcsIHRtcCwKQEAgLTE1Myw3ICsxNTMsNyBAQCBzdGF0aWMgaW50IGluZGlyZWN0X3JlYWQoc3Ry dWN0IHdmeF9kZXYgKndkZXYsIGludCByZWcsIHUzMiBhZGRyLAogCiBlcnI6CiAJaWYgKHJldCA8 IDApCi0JCW1lbXNldChidWYsIDB4RkYsIGxlbik7IC8vIE5ldmVyIHJldHVybiB1bmRlZmluZWQg dmFsdWUKKwkJbWVtc2V0KGJ1ZiwgMHhGRiwgbGVuKTsgLyogTmV2ZXIgcmV0dXJuIHVuZGVmaW5l ZCB2YWx1ZSAqLwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTMzNSw3ICszMzUsNyBAQCBpbnQgaWdw cl9yZWdfcmVhZChzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgaW50IGluZGV4LCB1MzIgKnZhbCkKIHsK IAlpbnQgcmV0OwogCi0JKnZhbCA9IH4wOyAvLyBOZXZlciByZXR1cm4gdW5kZWZpbmVkIHZhbHVl CisJKnZhbCA9IH4wOyAvKiBOZXZlciByZXR1cm4gdW5kZWZpbmVkIHZhbHVlICovCiAJcmV0ID0g d3JpdGUzMl9sb2NrZWQod2RldiwgV0ZYX1JFR19TRVRfR0VOX1JfVywgSUdQUl9SVyB8IGluZGV4 IDw8IDI0KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z dGFnaW5nL3dmeC9od2lvLmggYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L2h3aW8uaAppbmRleCA1ZTQz OTkzYjE0ZDguLjlhMzYxZWQ5NWVjYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9o d2lvLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9od2lvLmgKQEAgLTI3LDMwICsyNywzMCBA QCBpbnQgc3JhbV9yZWdfd3JpdGUoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1MzIg dmFsKTsKIGludCBhaGJfcmVnX3JlYWQoc3RydWN0IHdmeF9kZXYgKndkZXYsIHUzMiBhZGRyLCB1 MzIgKnZhbCk7CiBpbnQgYWhiX3JlZ193cml0ZShzdHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIGFk ZHIsIHUzMiB2YWwpOwogCi0jZGVmaW5lIENGR19FUlJfU1BJX0ZSQU1FICAgICAgICAgIDB4MDAw MDAwMDEgLy8gb25seSB3aXRoIFNQSQotI2RlZmluZSBDRkdfRVJSX1NESU9fQlVGX01JU01BVENI ICAweDAwMDAwMDAxIC8vIG9ubHkgd2l0aCBTRElPCisjZGVmaW5lIENGR19FUlJfU1BJX0ZSQU1F ICAgICAgICAgIDB4MDAwMDAwMDEgLyogb25seSB3aXRoIFNQSSAqLworI2RlZmluZSBDRkdfRVJS X1NESU9fQlVGX01JU01BVENIICAweDAwMDAwMDAxIC8qIG9ubHkgd2l0aCBTRElPICovCiAjZGVm aW5lIENGR19FUlJfQlVGX1VOREVSUlVOICAgICAgIDB4MDAwMDAwMDIKICNkZWZpbmUgQ0ZHX0VS Ul9EQVRBX0lOX1RPT19MQVJHRSAgMHgwMDAwMDAwNAogI2RlZmluZSBDRkdfRVJSX0hPU1RfTk9f T1VUX1FVRVVFICAweDAwMDAwMDA4CiAjZGVmaW5lIENGR19FUlJfQlVGX09WRVJSVU4gICAgICAg IDB4MDAwMDAwMTAKICNkZWZpbmUgQ0ZHX0VSUl9EQVRBX09VVF9UT09fTEFSR0UgMHgwMDAwMDAy MAogI2RlZmluZSBDRkdfRVJSX0hPU1RfTk9fSU5fUVVFVUUgICAweDAwMDAwMDQwCi0jZGVmaW5l IENGR19FUlJfSE9TVF9DUkNfTUlTUyAgICAgIDB4MDAwMDAwODAgLy8gb25seSB3aXRoIFNESU8K LSNkZWZpbmUgQ0ZHX1NQSV9JR05PUkVfQ1MgICAgICAgICAgMHgwMDAwMDA4MCAvLyBvbmx5IHdp dGggU1BJCi0jZGVmaW5lIENGR19CWVRFX09SREVSX01BU0sgICAgICAgIDB4MDAwMDAzMDAgLy8g b25seSB3cml0YWJsZSB3aXRoIFNQSQorI2RlZmluZSBDRkdfRVJSX0hPU1RfQ1JDX01JU1MgICAg ICAweDAwMDAwMDgwIC8qIG9ubHkgd2l0aCBTRElPICovCisjZGVmaW5lIENGR19TUElfSUdOT1JF X0NTICAgICAgICAgIDB4MDAwMDAwODAgLyogb25seSB3aXRoIFNQSSAqLworI2RlZmluZSBDRkdf QllURV9PUkRFUl9NQVNLICAgICAgICAweDAwMDAwMzAwIC8qIG9ubHkgd3JpdGFibGUgd2l0aCBT UEkgKi8KICNkZWZpbmUgICAgIENGR19CWVRFX09SREVSX0JBREMgICAgMHgwMDAwMDAwMAogI2Rl ZmluZSAgICAgQ0ZHX0JZVEVfT1JERVJfRENCQSAgICAweDAwMDAwMTAwCi0jZGVmaW5lICAgICBD RkdfQllURV9PUkRFUl9BQkNEICAgIDB4MDAwMDAyMDAgLy8gU0RJTyBhbHdheXMgdXNlIHRoaXMg dmFsdWUKKyNkZWZpbmUgICAgIENGR19CWVRFX09SREVSX0FCQ0QgICAgMHgwMDAwMDIwMCAvKiBT RElPIGFsd2F5cyB1c2UgdGhpcyB2YWx1ZSAqLwogI2RlZmluZSBDRkdfRElSRUNUX0FDQ0VTU19N T0RFICAgICAweDAwMDAwNDAwCiAjZGVmaW5lIENGR19QUkVGRVRDSF9BSEIgICAgICAgICAgIDB4 MDAwMDA4MDAKICNkZWZpbmUgQ0ZHX0RJU0FCTEVfQ1BVX0NMSyAgICAgICAgMHgwMDAwMTAwMAog I2RlZmluZSBDRkdfUFJFRkVUQ0hfU1JBTSAgICAgICAgICAweDAwMDAyMDAwCiAjZGVmaW5lIENG R19DUFVfUkVTRVQgICAgICAgICAgICAgIDB4MDAwMDQwMDAKLSNkZWZpbmUgQ0ZHX1NESU9fRElT QUJMRV9JUlEgICAgICAgMHgwMDAwODAwMCAvLyBvbmx5IHdpdGggU0RJTworI2RlZmluZSBDRkdf U0RJT19ESVNBQkxFX0lSUSAgICAgICAweDAwMDA4MDAwIC8qIG9ubHkgd2l0aCBTRElPICovCiAj ZGVmaW5lIENGR19JUlFfRU5BQkxFX0RBVEEgICAgICAgIDB4MDAwMTAwMDAKICNkZWZpbmUgQ0ZH X0lSUV9FTkFCTEVfV1JEWSAgICAgICAgMHgwMDAyMDAwMAogI2RlZmluZSBDRkdfQ0xLX1JJU0Vf RURHRSAgICAgICAgICAweDAwMDQwMDAwCi0jZGVmaW5lIENGR19TRElPX0RJU0FCTEVfQ1JDX0NI SyAgIDB4MDAwODAwMDAgLy8gb25seSB3aXRoIFNESU8KKyNkZWZpbmUgQ0ZHX1NESU9fRElTQUJM RV9DUkNfQ0hLICAgMHgwMDA4MDAwMCAvKiBvbmx5IHdpdGggU0RJTyAqLwogI2RlZmluZSBDRkdf UkVTRVJWRUQgICAgICAgICAgICAgICAweDAwRjAwMDAwCiAjZGVmaW5lIENGR19ERVZJQ0VfSURf TUFKT1IgICAgICAgIDB4MDcwMDAwMDAKICNkZWZpbmUgQ0ZHX0RFVklDRV9JRF9SRVNFUlZFRCAg ICAgMHg3ODAwMDAwMApkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9rZXkuYyBiL2Ry aXZlcnMvc3RhZ2luZy93Zngva2V5LmMKaW5kZXggMmFiODJiZWQ0YzFiLi41MWE1MjgxMDIwMTYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93Zngva2V5LmMKKysrIGIvZHJpdmVycy9zdGFn aW5nL3dmeC9rZXkuYwpAQCAtODQsMTAgKzg0LDEwIEBAIHN0YXRpYyB1OCBmaWxsX3RraXBfZ3Jv dXAoc3RydWN0IGhpZl90a2lwX2dyb3VwX2tleSAqbXNnLAogCW1lbWNweShtc2ctPnRraXBfa2V5 X2RhdGEsIGtleWJ1Ziwgc2l6ZW9mKG1zZy0+dGtpcF9rZXlfZGF0YSkpOwogCWtleWJ1ZiArPSBz aXplb2YobXNnLT50a2lwX2tleV9kYXRhKTsKIAlpZiAoaWZ0eXBlID09IE5MODAyMTFfSUZUWVBF X0FQKQotCQkvLyBVc2UgVHggTUlDIEtleQorCQkvKiBVc2UgVHggTUlDIEtleSAqLwogCQltZW1j cHkobXNnLT5yeF9taWNfa2V5LCBrZXlidWYgKyAwLCBzaXplb2YobXNnLT5yeF9taWNfa2V5KSk7 CiAJZWxzZQotCQkvLyBVc2UgUnggTUlDIEtleQorCQkvKiBVc2UgUnggTUlDIEtleSAqLwogCQlt ZW1jcHkobXNnLT5yeF9taWNfa2V5LCBrZXlidWYgKyA4LCBzaXplb2YobXNnLT5yeF9taWNfa2V5 KSk7CiAJcmV0dXJuIEhJRl9LRVlfVFlQRV9US0lQX0dST1VQOwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9zdGFnaW5nL3dmeC9tYWluLmMgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L21haW4uYwppbmRl eCAzNjQyZDRlYmIwMTguLjgzMjkyNTQ0YjEwYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5n L3dmeC9tYWluLmMKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9tYWluLmMKQEAgLTkyLDcgKzky LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgd2Z4X2Jh bmRfMmdoeiA9IHsKIAkuYml0cmF0ZXMgPSB3ZnhfcmF0ZXMsCiAJLm5fYml0cmF0ZXMgPSBBUlJB WV9TSVpFKHdmeF9yYXRlcyksCiAJLmh0X2NhcCA9IHsKLQkJLy8gUmVjZWl2ZSBjYXBzCisJCS8q IFJlY2VpdmUgY2FwcyAqLwogCQkuY2FwID0gSUVFRTgwMjExX0hUX0NBUF9HUk5fRkxEIHwgSUVF RTgwMjExX0hUX0NBUF9TR0lfMjAgfAogCQkgICAgICAgSUVFRTgwMjExX0hUX0NBUF9NQVhfQU1T RFUgfAogCQkgICAgICAgKDEgPDwgSUVFRTgwMjExX0hUX0NBUF9SWF9TVEJDX1NISUZUKSwKQEAg LTEwMCw3ICsxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRf YmFuZCB3ZnhfYmFuZF8yZ2h6ID0gewogCQkuYW1wZHVfZmFjdG9yID0gSUVFRTgwMjExX0hUX01B WF9BTVBEVV8xNkssCiAJCS5hbXBkdV9kZW5zaXR5ID0gSUVFRTgwMjExX0hUX01QRFVfREVOU0lU WV9OT05FLAogCQkubWNzID0gewotCQkJLnJ4X21hc2sgPSB7IDB4RkYgfSwgLy8gTUNTMCB0byBN Q1M3CisJCQkucnhfbWFzayA9IHsgMHhGRiB9LCAvKiBNQ1MwIHRvIE1DUzcgKi8KIAkJCS5yeF9o aWdoZXN0ID0gY3B1X3RvX2xlMTYoNzIpLAogCQkJLnR4X3BhcmFtcyA9IElFRUU4MDIxMV9IVF9N Q1NfVFhfREVGSU5FRCwKIAkJfSwKQEAgLTI5NCw3ICsyOTQsNyBAQCBzdHJ1Y3Qgd2Z4X2RldiAq d2Z4X2luaXRfY29tbW9uKHN0cnVjdCBkZXZpY2UgKmRldiwKIAlody0+d2lwaHktPm5faWZhY2Vf Y29tYmluYXRpb25zID0gQVJSQVlfU0laRSh3ZnhfaWZhY2VfY29tYmluYXRpb25zKTsKIAlody0+ d2lwaHktPmlmYWNlX2NvbWJpbmF0aW9ucyA9IHdmeF9pZmFjZV9jb21iaW5hdGlvbnM7CiAJaHct PndpcGh5LT5iYW5kc1tOTDgwMjExX0JBTkRfMkdIWl0gPSBkZXZtX2ttYWxsb2MoZGV2LCBzaXpl b2Yod2Z4X2JhbmRfMmdoeiksIEdGUF9LRVJORUwpOwotCS8vIEZJWE1FOiBhbHNvIGNvcHkgd2Z4 X3JhdGVzIGFuZCB3ZnhfMmdoel9jaGFudGFibGUKKwkvKiBGSVhNRTogYWxzbyBjb3B5IHdmeF9y YXRlcyBhbmQgd2Z4XzJnaHpfY2hhbnRhYmxlICovCiAJbWVtY3B5KGh3LT53aXBoeS0+YmFuZHNb Tkw4MDIxMV9CQU5EXzJHSFpdLCAmd2Z4X2JhbmRfMmdoeiwKIAkgICAgICAgc2l6ZW9mKHdmeF9i YW5kXzJnaHopKTsKIApAQCAtMzM2LDggKzMzNiw5IEBAIGludCB3ZnhfcHJvYmUoc3RydWN0IHdm eF9kZXYgKndkZXYpCiAJaW50IGVycjsKIAlzdHJ1Y3QgZ3Bpb19kZXNjICpncGlvX3NhdmVkOwog Ci0JLy8gRHVyaW5nIGZpcnN0IHBhcnQgb2YgYm9vdCwgZ3Bpb193YWtldXAgY2Fubm90IHlldCBi ZWVuIHVzZWQuIFNvCi0JLy8gcHJldmVudCBiaCgpIHRvIHRvdWNoIGl0LgorCS8qIER1cmluZyBm aXJzdCBwYXJ0IG9mIGJvb3QsIGdwaW9fd2FrZXVwIGNhbm5vdCB5ZXQgYmVlbiB1c2VkLiBTbwor CSAqIHByZXZlbnQgYmgoKSB0byB0b3VjaCBpdC4KKwkgKi8KIAlncGlvX3NhdmVkID0gd2Rldi0+ cGRhdGEuZ3Bpb193YWtldXA7CiAJd2Rldi0+cGRhdGEuZ3Bpb193YWtldXAgPSBOVUxMOwogCXdk ZXYtPnBvbGxfaXJxID0gdHJ1ZTsKQEAgLTM2MCw3ICszNjEsNyBAQCBpbnQgd2Z4X3Byb2JlKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCQlnb3RvIGVycjA7CiAJfQogCi0JLy8gRklYTUU6IGZpbGwg d2lwaHk6Omh3X3ZlcnNpb24KKwkvKiBGSVhNRTogZmlsbCB3aXBoeTo6aHdfdmVyc2lvbiAqLwog CWRldl9pbmZvKHdkZXYtPmRldiwgInN0YXJ0ZWQgZmlybXdhcmUgJWQuJWQuJWQgXCIlc1wiIChB UEk6ICVkLiVkLCBrZXlzZXQ6ICUwMlgsIGNhcHM6IDB4JS44WClcbiIsCiAJCSB3ZGV2LT5od19j YXBzLmZpcm13YXJlX21ham9yLCB3ZGV2LT5od19jYXBzLmZpcm13YXJlX21pbm9yLAogCQkgd2Rl di0+aHdfY2Fwcy5maXJtd2FyZV9idWlsZCwgd2Rldi0+aHdfY2Fwcy5maXJtd2FyZV9sYWJlbCwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy93ZngvcXVldWUuYyBiL2RyaXZlcnMvc3RhZ2lu Zy93ZngvcXVldWUuYwppbmRleCBlNWU3NTk1NTY1ZWUuLjdhM2JhM2MzODkyNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5jCisrKyBiL2RyaXZlcnMvc3RhZ2luZy93Zngv cXVldWUuYwpAQCAtMzIsNyArMzIsNyBAQCB2b2lkIHdmeF90eF9mbHVzaChzdHJ1Y3Qgd2Z4X2Rl diAqd2RldikKIHsKIAlpbnQgcmV0OwogCi0JLy8gRG8gbm90IHdhaXQgZm9yIGFueSByZXBseSBp ZiBjaGlwIGlzIGZyb3plbgorCS8qIERvIG5vdCB3YWl0IGZvciBhbnkgcmVwbHkgaWYgY2hpcCBp cyBmcm96ZW4gKi8KIAlpZiAod2Rldi0+Y2hpcF9mcm96ZW4pCiAJCXJldHVybjsKIApAQCAtNDUs NyArNDUsNyBAQCB2b2lkIHdmeF90eF9mbHVzaChzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAkJZGV2 X3dhcm4od2Rldi0+ZGV2LCAiY2Fubm90IGZsdXNoIHR4IGJ1ZmZlcnMgKCVkIHN0aWxsIGJ1c3kp XG4iLAogCQkJIHdkZXYtPmhpZi50eF9idWZmZXJzX3VzZWQpOwogCQl3ZnhfcGVuZGluZ19kdW1w X29sZF9mcmFtZXMod2RldiwgMzAwMCk7Ci0JCS8vIEZJWE1FOiBkcm9wIHBlbmRpbmcgZnJhbWVz IGhlcmUKKwkJLyogRklYTUU6IGRyb3AgcGVuZGluZyBmcmFtZXMgaGVyZSAqLwogCQl3ZGV2LT5j aGlwX2Zyb3plbiA9IHRydWU7CiAJfQogCW11dGV4X3VubG9jaygmd2Rldi0+aGlmX2NtZC5sb2Nr KTsKQEAgLTYwLDkgKzYwLDEwIEBAIHZvaWQgd2Z4X3R4X2xvY2tfZmx1c2goc3RydWN0IHdmeF9k ZXYgKndkZXYpCiAKIHZvaWQgd2Z4X3R4X3F1ZXVlc19pbml0KHN0cnVjdCB3ZnhfdmlmICp3dmlm KQogewotCS8vIFRoZSBkZXZpY2UgaXMgaW4gY2hhcmdlIHRvIHJlc3BlY3QgdGhlIGRldGFpbHMg b2YgdGhlIFFvUyBwYXJhbWV0ZXJzLgotCS8vIFRoZSBkcml2ZXIganVzdCBlbnN1cmUgdGhhdCBp dCByb3VnaHRseSByZXNwZWN0IHRoZSBwcmlvcml0aWVzIHRvCi0JLy8gYXZvaWQgYW55IHNob3J0 YWdlLgorCS8qIFRoZSBkZXZpY2UgaXMgaW4gY2hhcmdlIHRvIHJlc3BlY3QgdGhlIGRldGFpbHMg b2YgdGhlIFFvUyBwYXJhbWV0ZXJzLgorCSAqIFRoZSBkcml2ZXIganVzdCBlbnN1cmUgdGhhdCBp dCByb3VnaHRseSByZXNwZWN0IHRoZSBwcmlvcml0aWVzIHRvCisJICogYXZvaWQgYW55IHNob3J0 YWdlLgorCSAqLwogCWNvbnN0IGludCBwcmlvcml0aWVzW0lFRUU4MDIxMV9OVU1fQUNTXSA9IHsg MSwgMiwgNjQsIDEyOCB9OwogCWludCBpOwogCkBAIC0yMTcsOCArMjE4LDkgQEAgYm9vbCB3Znhf dHhfcXVldWVzX2hhc19jYWIoc3RydWN0IHdmeF92aWYgKnd2aWYpCiAJaWYgKHd2aWYtPnZpZi0+ dHlwZSAhPSBOTDgwMjExX0lGVFlQRV9BUCkKIAkJcmV0dXJuIGZhbHNlOwogCWZvciAoaSA9IDA7 IGkgPCBJRUVFODAyMTFfTlVNX0FDUzsgKytpKQotCQkvLyBOb3RlOiBzaW5jZSBvbmx5IEFQIGNh biBoYXZlIG1jYXN0IGZyYW1lcyBpbiBxdWV1ZSBhbmQgb25seQotCQkvLyBvbmUgdmlmIGNhbiBi ZSBBUCwgYWxsIHF1ZXVlZCBmcmFtZXMgaGFzIHNhbWUgaW50ZXJmYWNlIGlkCisJCS8qIE5vdGU6 IHNpbmNlIG9ubHkgQVAgY2FuIGhhdmUgbWNhc3QgZnJhbWVzIGluIHF1ZXVlIGFuZCBvbmx5CisJ CSAqIG9uZSB2aWYgY2FuIGJlIEFQLCBhbGwgcXVldWVkIGZyYW1lcyBoYXMgc2FtZSBpbnRlcmZh Y2UgaWQKKwkJICovCiAJCWlmICghc2tiX3F1ZXVlX2VtcHR5X2xvY2tsZXNzKCZ3dmlmLT50eF9x dWV1ZVtpXS5jYWIpKQogCQkJcmV0dXJuIHRydWU7CiAJcmV0dXJuIGZhbHNlOwpAQCAtMjM3LDcg KzIzOSw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqd2Z4X3R4X3F1ZXVlc19nZXRfc2tiKHN0 cnVjdCB3ZnhfZGV2ICp3ZGV2KQogCXN0cnVjdCBoaWZfbXNnICpoaWY7CiAJc3RydWN0IHNrX2J1 ZmYgKnNrYjsKIAotCS8vIHNvcnQgdGhlIHF1ZXVlcworCS8qIHNvcnQgdGhlIHF1ZXVlcyAqLwog CXd2aWYgPSBOVUxMOwogCXdoaWxlICgod3ZpZiA9IHd2aWZfaXRlcmF0ZSh3ZGV2LCB3dmlmKSkg IT0gTlVMTCkgewogCQlmb3IgKGkgPSAwOyBpIDwgSUVFRTgwMjExX05VTV9BQ1M7IGkrKykgewpA QCAtMjU5LDkgKzI2MSwxMCBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKndmeF90eF9xdWV1ZXNf Z2V0X3NrYihzdHJ1Y3Qgd2Z4X2RldiAqd2RldikKIAkJCXNrYiA9IHNrYl9kZXF1ZXVlKCZxdWV1 ZXNbaV0tPmNhYik7CiAJCQlpZiAoIXNrYikKIAkJCQljb250aW51ZTsKLQkJCS8vIE5vdGU6IHNp bmNlIG9ubHkgQVAgY2FuIGhhdmUgbWNhc3QgZnJhbWVzIGluIHF1ZXVlCi0JCQkvLyBhbmQgb25s eSBvbmUgdmlmIGNhbiBiZSBBUCwgYWxsIHF1ZXVlZCBmcmFtZXMgaGFzCi0JCQkvLyBzYW1lIGlu dGVyZmFjZSBpZAorCQkJLyogTm90ZTogc2luY2Ugb25seSBBUCBjYW4gaGF2ZSBtY2FzdCBmcmFt ZXMgaW4gcXVldWUKKwkJCSAqIGFuZCBvbmx5IG9uZSB2aWYgY2FuIGJlIEFQLCBhbGwgcXVldWVk IGZyYW1lcyBoYXMKKwkJCSAqIHNhbWUgaW50ZXJmYWNlIGlkCisJCQkgKi8KIAkJCWhpZiA9IChz dHJ1Y3QgaGlmX21zZyAqKXNrYi0+ZGF0YTsKIAkJCVdBUk5fT04oaGlmLT5pbnRlcmZhY2UgIT0g d3ZpZi0+aWQpOwogCQkJV0FSTl9PTihxdWV1ZXNbaV0gIT0KQEAgLTI3MCw3ICsyNzMsNyBAQCBz dGF0aWMgc3RydWN0IHNrX2J1ZmYgKndmeF90eF9xdWV1ZXNfZ2V0X3NrYihzdHJ1Y3Qgd2Z4X2Rl diAqd2RldikKIAkJCXRyYWNlX3F1ZXVlc19zdGF0cyh3ZGV2LCBxdWV1ZXNbaV0pOwogCQkJcmV0 dXJuIHNrYjsKIAkJfQotCQkvLyBObyBtb3JlIG11bHRpY2FzdCB0byBzZW50CisJCS8qIE5vIG1v cmUgbXVsdGljYXN0IHRvIHNlbnQgKi8KIAkJd3ZpZi0+YWZ0ZXJfZHRpbV90eF9hbGxvd2VkID0g ZmFsc2U7CiAJCXNjaGVkdWxlX3dvcmsoJnd2aWYtPnVwZGF0ZV90aW1fd29yayk7CiAJfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1ZS5oIGIvZHJpdmVycy9zdGFnaW5nL3dm eC9xdWV1ZS5oCmluZGV4IDI0YjYwODMzODY0Yi4uNTRiNWRlZjJlMjRjIDEwMDY0NAotLS0gYS9k cml2ZXJzL3N0YWdpbmcvd2Z4L3F1ZXVlLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9xdWV1 ZS5oCkBAIC0xNiw3ICsxNiw3IEBAIHN0cnVjdCB3ZnhfdmlmOwogCiBzdHJ1Y3Qgd2Z4X3F1ZXVl IHsKIAlzdHJ1Y3Qgc2tfYnVmZl9oZWFkCW5vcm1hbDsKLQlzdHJ1Y3Qgc2tfYnVmZl9oZWFkCWNh YjsgLy8gQ29udGVudCBBZnRlciAoRFRJTSkgQmVhY29uCisJc3RydWN0IHNrX2J1ZmZfaGVhZAlj YWI7IC8qIENvbnRlbnQgQWZ0ZXIgKERUSU0pIEJlYWNvbiAqLwogCWF0b21pY190CQlwZW5kaW5n X2ZyYW1lczsKIAlpbnQJCQlwcmlvcml0eTsKIH07CmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdp bmcvd2Z4L3N0YS5jIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuYwppbmRleCA3MGUxYzRkOGFl MmUuLmFjZWIxOGExZjU0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuYwor KysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0YS5jCkBAIC0yNCw3ICsyNCw3IEBAIHUzMiB3Znhf cmF0ZV9tYXNrX3RvX2h3KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCB1MzIgcmF0ZXMpCiB7CiAJaW50 IGk7CiAJdTMyIHJldCA9IDA7Ci0JLy8gVGhlIGRldmljZSBvbmx5IHN1cHBvcnRzIDJHSHoKKwkv KiBUaGUgZGV2aWNlIG9ubHkgc3VwcG9ydHMgMkdIeiAqLwogCXN0cnVjdCBpZWVlODAyMTFfc3Vw cG9ydGVkX2JhbmQgKnNiYW5kID0gd2Rldi0+aHctPndpcGh5LT5iYW5kc1tOTDgwMjExX0JBTkRf MkdIWl07CiAKIAlmb3IgKGkgPSAwOyBpIDwgc2JhbmQtPm5fYml0cmF0ZXM7IGkrKykgewpAQCAt NTEsMTEgKzUxLDExIEBAIHZvaWQgd2Z4X2Nvb2xpbmdfdGltZW91dF93b3JrKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykKIHZvaWQgd2Z4X3N1c3BlbmRfaG90X2RldihzdHJ1Y3Qgd2Z4X2RldiAq d2RldiwgZW51bSBzdGFfbm90aWZ5X2NtZCBjbWQpCiB7CiAJaWYgKGNtZCA9PSBTVEFfTk9USUZZ X0FXQUtFKSB7Ci0JCS8vIERldmljZSByZWNvdmVyIG5vcm1hbCB0ZW1wZXJhdHVyZQorCQkvKiBE ZXZpY2UgcmVjb3ZlciBub3JtYWwgdGVtcGVyYXR1cmUgKi8KIAkJaWYgKGNhbmNlbF9kZWxheWVk X3dvcmsoJndkZXYtPmNvb2xpbmdfdGltZW91dF93b3JrKSkKIAkJCXdmeF90eF91bmxvY2sod2Rl dik7CiAJfSBlbHNlIHsKLQkJLy8gRGV2aWNlIGlzIHRvbyBob3QKKwkJLyogRGV2aWNlIGlzIHRv byBob3QgKi8KIAkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZ3ZGV2LT5jb29saW5nX3RpbWVvdXRf d29yaywgMTAgKiBIWik7CiAJCXdmeF90eF9sb2NrKHdkZXYpOwogCX0KQEAgLTEwMywxMyArMTAz LDE0IEBAIHZvaWQgd2Z4X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcs IHVuc2lnbmVkIGludCBjaGFuZ2VkX2ZsYWdzLAogCXN0cnVjdCB3ZnhfZGV2ICp3ZGV2ID0gaHct PnByaXY7CiAJYm9vbCBmaWx0ZXJfYnNzaWQsIGZpbHRlcl9wcmJyZXEsIGZpbHRlcl9iZWFjb247 CiAKLQkvLyBOb3RlczoKLQkvLyAgIC0gUHJvYmUgcmVzcG9uc2VzIChGSUZfQkNOX1BSQlJFU1Bf UFJPTUlTQykgYXJlIG5ldmVyIGZpbHRlcmVkCi0JLy8gICAtIFBTLVBvbGwgKEZJRl9QU1BPTEwp IGFyZSBuZXZlciBmaWx0ZXJlZAotCS8vICAgLSBSVFMsIENUUyBhbmQgQWNrIChGSUZfQ09OVFJP TCkgYXJlIGFsd2F5cyBmaWx0ZXJlZAotCS8vICAgLSBCcm9rZW4gZnJhbWVzIChGSUZfRkNTRkFJ TCBhbmQgRklGX1BMQ1BGQUlMKSBhcmUgYWx3YXlzIGZpbHRlcmVkCi0JLy8gICAtIEZpcm13YXJl IGRvZXMgKHlldCkgYWxsb3cgdG8gZm9yd2FyZCB1bmljYXN0IHRyYWZmaWMgc2VudCB0bwotCS8v ICAgICBvdGhlciBzdGF0aW9ucyAoYWthLiBwcm9taXNjdW91cyBtb2RlKQorCS8qIE5vdGVzOgor CSAqICAgLSBQcm9iZSByZXNwb25zZXMgKEZJRl9CQ05fUFJCUkVTUF9QUk9NSVNDKSBhcmUgbmV2 ZXIgZmlsdGVyZWQKKwkgKiAgIC0gUFMtUG9sbCAoRklGX1BTUE9MTCkgYXJlIG5ldmVyIGZpbHRl cmVkCisJICogICAtIFJUUywgQ1RTIGFuZCBBY2sgKEZJRl9DT05UUk9MKSBhcmUgYWx3YXlzIGZp bHRlcmVkCisJICogICAtIEJyb2tlbiBmcmFtZXMgKEZJRl9GQ1NGQUlMIGFuZCBGSUZfUExDUEZB SUwpIGFyZSBhbHdheXMgZmlsdGVyZWQKKwkgKiAgIC0gRmlybXdhcmUgZG9lcyAoeWV0KSBhbGxv dyB0byBmb3J3YXJkIHVuaWNhc3QgdHJhZmZpYyBzZW50IHRvCisJICogICAgIG90aGVyIHN0YXRp b25zIChha2EuIHByb21pc2N1b3VzIG1vZGUpCisJICovCiAJKnRvdGFsX2ZsYWdzICY9IEZJRl9C Q05fUFJCUkVTUF9QUk9NSVNDIHwgRklGX0FMTE1VTFRJIHwgRklGX09USEVSX0JTUyB8CiAJCQlG SUZfUFJPQkVfUkVRIHwgRklGX1BTUE9MTDsKIApAQCAtMTE3LDggKzExOCw5IEBAIHZvaWQgd2Z4 X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHVuc2lnbmVkIGludCBj aGFuZ2VkX2ZsYWdzLAogCXdoaWxlICgod3ZpZiA9IHd2aWZfaXRlcmF0ZSh3ZGV2LCB3dmlmKSkg IT0gTlVMTCkgewogCQltdXRleF9sb2NrKCZ3dmlmLT5zY2FuX2xvY2spOwogCi0JCS8vIE5vdGU6 IEZJRl9CQ05fUFJCUkVTUF9QUk9NSVNDIGNvdmVycyBwcm9iZSByZXNwb25zZSBhbmQKLQkJLy8g YmVhY29ucyBmcm9tIG90aGVyIEJTUworCQkvKiBOb3RlOiBGSUZfQkNOX1BSQlJFU1BfUFJPTUlT QyBjb3ZlcnMgcHJvYmUgcmVzcG9uc2UgYW5kCisJCSAqIGJlYWNvbnMgZnJvbSBvdGhlciBCU1MK KwkJICovCiAJCWlmICgqdG90YWxfZmxhZ3MgJiBGSUZfQkNOX1BSQlJFU1BfUFJPTUlTQykKIAkJ CWZpbHRlcl9iZWFjb24gPSBmYWxzZTsKIAkJZWxzZQpAQCAtMTMwLDcgKzEzMiw3IEBAIHZvaWQg d2Z4X2NvbmZpZ3VyZV9maWx0ZXIoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHVuc2lnbmVkIGlu dCBjaGFuZ2VkX2ZsYWdzLAogCQllbHNlCiAJCQlmaWx0ZXJfYnNzaWQgPSB0cnVlOwogCi0JCS8v IEluIEFQIG1vZGUsIGNoaXAgY2FuIHJlcGx5IHRvIHByb2JlIHJlcXVlc3QgaXRzZWxmCisJCS8q IEluIEFQIG1vZGUsIGNoaXAgY2FuIHJlcGx5IHRvIHByb2JlIHJlcXVlc3QgaXRzZWxmICovCiAJ CWlmICgqdG90YWxfZmxhZ3MgJiBGSUZfUFJPQkVfUkVRICYmCiAJCSAgICB3dmlmLT52aWYtPnR5 cGUgPT0gTkw4MDIxMV9JRlRZUEVfQVApIHsKIAkJCWRldl9kYmcod2Rldi0+ZGV2LCAiZG8gbm90 IGZvcndhcmQgcHJvYmUgcmVxdWVzdCBpbiBBUCBtb2RlXG4iKTsKQEAgLTE2MSwxNSArMTYzLDE2 IEBAIHN0YXRpYyBpbnQgd2Z4X2dldF9wc190aW1lb3V0KHN0cnVjdCB3ZnhfdmlmICp3dmlmLCBi b29sICplbmFibGVfcHMpCiAJCWNoYW4xID0gd2Rldl90b193dmlmKHd2aWYtPndkZXYsIDEpLT52 aWYtPmJzc19jb25mLmNoYW5kZWYuY2hhbjsKIAlpZiAoY2hhbjAgJiYgY2hhbjEgJiYgd3ZpZi0+ dmlmLT50eXBlICE9IE5MODAyMTFfSUZUWVBFX0FQKSB7CiAJCWlmIChjaGFuMC0+aHdfdmFsdWUg PT0gY2hhbjEtPmh3X3ZhbHVlKSB7Ci0JCQkvLyBJdCBpcyB1c2VsZXNzIHRvIGVuYWJsZSBQUyBp ZiBjaGFubmVscyBhcmUgdGhlIHNhbWUuCisJCQkvKiBJdCBpcyB1c2VsZXNzIHRvIGVuYWJsZSBQ UyBpZiBjaGFubmVscyBhcmUgdGhlIHNhbWUuICovCiAJCQlpZiAoZW5hYmxlX3BzKQogCQkJCSpl bmFibGVfcHMgPSBmYWxzZTsKIAkJCWlmICh3dmlmLT52aWYtPmJzc19jb25mLmFzc29jICYmIHd2 aWYtPnZpZi0+YnNzX2NvbmYucHMpCiAJCQkJZGV2X2luZm8od3ZpZi0+d2Rldi0+ZGV2LCAiaWdu b3JpbmcgcmVxdWVzdGVkIFBTIG1vZGUiKTsKIAkJCXJldHVybiAtMTsKIAkJfSBlbHNlIHsKLQkJ CS8vIEl0IGlzIG5lY2Vzc2FyeSB0byBlbmFibGUgUFMgaWYgY2hhbm5lbHMKLQkJCS8vIGFyZSBk aWZmZXJlbnQuCisJCQkvKiBJdCBpcyBuZWNlc3NhcnkgdG8gZW5hYmxlIFBTIGlmIGNoYW5uZWxz CisJCQkgKiBhcmUgZGlmZmVyZW50LgorCQkJICovCiAJCQlpZiAoZW5hYmxlX3BzKQogCQkJCSpl bmFibGVfcHMgPSB0cnVlOwogCQkJaWYgKHd2aWYtPndkZXYtPmZvcmNlX3BzX3RpbWVvdXQgPiAt MSkKQEAgLTMwNSw3ICszMDgsNyBAQCBpbnQgd2Z4X3N0YV9hZGQoc3RydWN0IGllZWU4MDIxMV9o dyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsCiAJaWYgKHZpZi0+dHlwZSA9PSBOTDgw MjExX0lGVFlQRV9TVEFUSU9OKQogCQloaWZfc2V0X21mcCh3dmlmLCBzdGEtPm1mcCwgc3RhLT5t ZnApOwogCi0JLy8gSW4gc3RhdGlvbiBtb2RlLCB0aGUgZmlybXdhcmUgaW50ZXJwcmV0cyBuZXcg bGluay1pZCBhcyBhIFRETFMgcGVlci4KKwkvKiBJbiBzdGF0aW9uIG1vZGUsIHRoZSBmaXJtd2Fy ZSBpbnRlcnByZXRzIG5ldyBsaW5rLWlkIGFzIGEgVERMUyBwZWVyICovCiAJaWYgKHZpZi0+dHlw ZSA9PSBOTDgwMjExX0lGVFlQRV9TVEFUSU9OICYmICFzdGEtPnRkbHMpCiAJCXJldHVybiAwOwog CXN0YV9wcml2LT5saW5rX2lkID0gZmZ6KHd2aWYtPmxpbmtfaWRfbWFwKTsKQEAgLTMyMywxMCAr MzI2LDEwIEBAIGludCB3Znhfc3RhX3JlbW92ZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3Ry dWN0IGllZWU4MDIxMV92aWYgKnZpZiwKIAlzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiA9IChzdHJ1Y3Qg d2Z4X3ZpZiAqKXZpZi0+ZHJ2X3ByaXY7CiAJc3RydWN0IHdmeF9zdGFfcHJpdiAqc3RhX3ByaXYg PSAoc3RydWN0IHdmeF9zdGFfcHJpdiAqKSZzdGEtPmRydl9wcml2OwogCi0JLy8gU2VlIG5vdGUg aW4gd2Z4X3N0YV9hZGQoKQorCS8qIFNlZSBub3RlIGluIHdmeF9zdGFfYWRkKCkgKi8KIAlpZiAo IXN0YV9wcml2LT5saW5rX2lkKQogCQlyZXR1cm4gMDsKLQkvLyBGSVhNRSBhZGQgYSBtdXRleD8K KwkvKiBGSVhNRSBhZGQgYSBtdXRleD8gKi8KIAloaWZfbWFwX2xpbmsod3ZpZiwgdHJ1ZSwgc3Rh LT5hZGRyLCBzdGFfcHJpdi0+bGlua19pZCwgZmFsc2UpOwogCXd2aWYtPmxpbmtfaWRfbWFwICY9 IH5CSVQoc3RhX3ByaXYtPmxpbmtfaWQpOwogCXJldHVybiAwOwpAQCAtNDIxLDcgKzQyNCw3IEBA IHN0YXRpYyB2b2lkIHdmeF9qb2luKHN0cnVjdCB3ZnhfdmlmICp3dmlmKQogCQlyZXR1cm47CiAJ fQogCi0JcmN1X3JlYWRfbG9jaygpOyAvLyBwcm90ZWN0IHNzaWRpZQorCXJjdV9yZWFkX2xvY2so KTsgLyogcHJvdGVjdCBzc2lkaWUgKi8KIAlpZiAoYnNzKQogCQlzc2lkaWUgPSBpZWVlODAyMTFf YnNzX2dldF9pZShic3MsIFdMQU5fRUlEX1NTSUQpOwogCWlmIChzc2lkaWUpIHsKQEAgLTQ1Nyw3 ICs0NjAsNyBAQCBzdGF0aWMgdm9pZCB3Znhfam9pbl9maW5hbGl6ZShzdHJ1Y3Qgd2Z4X3ZpZiAq d3ZpZiwKIAlpbnQgYW1wZHVfZGVuc2l0eSA9IDA7CiAJYm9vbCBncmVlbmZpZWxkID0gZmFsc2U7 CiAKLQlyY3VfcmVhZF9sb2NrKCk7IC8vIHByb3RlY3Qgc3RhCisJcmN1X3JlYWRfbG9jaygpOyAv KiBwcm90ZWN0IHN0YSAqLwogCWlmIChpbmZvLT5ic3NpZCAmJiAhaW5mby0+aWJzc19qb2luZWQp CiAJCXN0YSA9IGllZWU4MDIxMV9maW5kX3N0YSh3dmlmLT52aWYsIGluZm8tPmJzc2lkKTsKIAlp ZiAoc3RhICYmIHN0YS0+aHRfY2FwLmh0X3N1cHBvcnRlZCkKQEAgLTQ3MSw4ICs0NzQsOSBAQCBz dGF0aWMgdm9pZCB3Znhfam9pbl9maW5hbGl6ZShzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwKIAloaWZf c2V0X2Fzc29jaWF0aW9uX21vZGUod3ZpZiwgYW1wZHVfZGVuc2l0eSwgZ3JlZW5maWVsZCwKIAkJ CQkgaW5mby0+dXNlX3Nob3J0X3ByZWFtYmxlKTsKIAloaWZfa2VlcF9hbGl2ZV9wZXJpb2Qod3Zp ZiwgMCk7Ci0JLy8gYmVhY29uX2xvc3NfY291bnQgaXMgZGVmaW5lZCB0byA3IGluIG5ldC9tYWM4 MDIxMS9tbG1lLmMuIExldCdzIHVzZQotCS8vIHRoZSBzYW1lIHZhbHVlLgorCS8qIGJlYWNvbl9s b3NzX2NvdW50IGlzIGRlZmluZWQgdG8gNyBpbiBuZXQvbWFjODAyMTEvbWxtZS5jLiBMZXQncyB1 c2UKKwkgKiB0aGUgc2FtZSB2YWx1ZS4KKwkgKi8KIAloaWZfc2V0X2Jzc19wYXJhbXMod3ZpZiwg aW5mby0+YWlkLCA3KTsKIAloaWZfc2V0X2JlYWNvbl93YWtldXBfcGVyaW9kKHd2aWYsIDEsIDEp OwogCXdmeF91cGRhdGVfcG0od3ZpZik7CkBAIC00OTYsMTAgKzUwMCwxMSBAQCB2b2lkIHdmeF9s ZWF2ZV9pYnNzKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAq dmlmKQogCiBzdGF0aWMgdm9pZCB3ZnhfZW5hYmxlX2JlYWNvbihzdHJ1Y3Qgd2Z4X3ZpZiAqd3Zp ZiwgYm9vbCBlbmFibGUpCiB7Ci0JLy8gRHJpdmVyIGhhcyBDb250ZW50IEFmdGVyIERUSU0gQmVh Y29uIGluIHF1ZXVlLiBEcml2ZXIgaXMgd2FpdGluZyBmb3IKLQkvLyBhIHNpZ25hbCBmcm9tIHRo ZSBmaXJtd2FyZS4gU2luY2Ugd2UgYXJlIGdvaW5nIHRvIHN0b3AgdG8gc2VuZAotCS8vIGJlYWNv bnMsIHRoaXMgc2lnbmFsIHdpbGwgbmV2ZXIgaGFwcGVucy4gU2VlIGFsc28KLQkvLyB3Znhfc3Vz cGVuZF9yZXN1bWVfbWMoKQorCS8qIERyaXZlciBoYXMgQ29udGVudCBBZnRlciBEVElNIEJlYWNv biBpbiBxdWV1ZS4gRHJpdmVyIGlzIHdhaXRpbmcgZm9yCisJICogYSBzaWduYWwgZnJvbSB0aGUg ZmlybXdhcmUuIFNpbmNlIHdlIGFyZSBnb2luZyB0byBzdG9wIHRvIHNlbmQKKwkgKiBiZWFjb25z LCB0aGlzIHNpZ25hbCB3aWxsIG5ldmVyIGhhcHBlbnMuIFNlZSBhbHNvCisJICogd2Z4X3N1c3Bl bmRfcmVzdW1lX21jKCkKKwkgKi8KIAlpZiAoIWVuYWJsZSAmJiB3ZnhfdHhfcXVldWVzX2hhc19j YWIod3ZpZikpIHsKIAkJd3ZpZi0+YWZ0ZXJfZHRpbV90eF9hbGxvd2VkID0gdHJ1ZTsKIAkJd2Z4 X2JoX3JlcXVlc3RfdHgod3ZpZi0+d2Rldik7CkBAIC01MzksOCArNTQ0LDkgQEAgdm9pZCB3Znhf YnNzX2luZm9fY2hhbmdlZChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IGllZWU4MDIx MV92aWYgKnZpZiwKIAkJCQkgX19mdW5jX18pOwogCQloaWZfc2V0X2JlYWNvbl93YWtldXBfcGVy aW9kKHd2aWYsIGluZm8tPmR0aW1fcGVyaW9kLAogCQkJCQkgICAgIGluZm8tPmR0aW1fcGVyaW9k KTsKLQkJLy8gV2UgdGVtcG9yYXJ5IGZvcndhcmRlZCBiZWFjb24gZm9yIGpvaW4gcHJvY2Vzcy4g SXQgaXMgbm93IG5vCi0JCS8vIG1vcmUgbmVjZXNzYXJ5LgorCQkvKiBXZSB0ZW1wb3JhcnkgZm9y d2FyZGVkIGJlYWNvbiBmb3Igam9pbiBwcm9jZXNzLiBJdCBpcyBub3cgbm8KKwkJICogbW9yZSBu ZWNlc3NhcnkuCisJCSAqLwogCQl3ZnhfZmlsdGVyX2JlYWNvbih3dmlmLCB0cnVlKTsKIAl9CiAK QEAgLTY2MiwxNCArNjY4LDE0IEBAIGludCB3ZnhfYW1wZHVfYWN0aW9uKHN0cnVjdCBpZWVlODAy MTFfaHcgKmh3LAogCQkgICAgIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsCiAJCSAgICAgc3Ry dWN0IGllZWU4MDIxMV9hbXBkdV9wYXJhbXMgKnBhcmFtcykKIHsKLQkvLyBBZ2dyZWdhdGlvbiBp cyBpbXBsZW1lbnRlZCBmdWxseSBpbiBmaXJtd2FyZQorCS8qIEFnZ3JlZ2F0aW9uIGlzIGltcGxl bWVudGVkIGZ1bGx5IGluIGZpcm13YXJlICovCiAJc3dpdGNoIChwYXJhbXMtPmFjdGlvbikgewog CWNhc2UgSUVFRTgwMjExX0FNUERVX1JYX1NUQVJUOgogCWNhc2UgSUVFRTgwMjExX0FNUERVX1JY X1NUT1A6Ci0JCS8vIEp1c3QgYWNrbm93bGVkZ2UgaXQgdG8gZW5hYmxlIGZyYW1lIHJlLW9yZGVy aW5nCisJCS8qIEp1c3QgYWNrbm93bGVkZ2UgaXQgdG8gZW5hYmxlIGZyYW1lIHJlLW9yZGVyaW5n ICovCiAJCXJldHVybiAwOwogCWRlZmF1bHQ6Ci0JCS8vIExlYXZlIHRoZSBmaXJtd2FyZSBkb2lu ZyBpdHMgYnVzaW5lc3MgZm9yIHR4IGFnZ3JlZ2F0aW9uCisJCS8qIExlYXZlIHRoZSBmaXJtd2Fy ZSBkb2luZyBpdHMgYnVzaW5lc3MgZm9yIHR4IGFnZ3JlZ2F0aW9uICovCiAJCXJldHVybiAtRU9Q Tk9UU1VQUDsKIAl9CiB9CkBAIC03NDEsMTEgKzc0NywxMSBAQCBpbnQgd2Z4X2FkZF9pbnRlcmZh Y2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpCiAJ CXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKLQkvLyBGSVhNRTogcHJlZmVyIHVzZSBvZiBjb250 YWluZXJfb2YoKSB0byBnZXQgdmlmCisJLyogRklYTUU6IHByZWZlciB1c2Ugb2YgY29udGFpbmVy X29mKCkgdG8gZ2V0IHZpZiAqLwogCXd2aWYtPnZpZiA9IHZpZjsKIAl3dmlmLT53ZGV2ID0gd2Rl djsKIAotCXd2aWYtPmxpbmtfaWRfbWFwID0gMTsgLy8gbGluay1pZCAwIGlzIHJlc2VydmVkIGZv ciBtdWx0aWNhc3QKKwl3dmlmLT5saW5rX2lkX21hcCA9IDE7IC8qIGxpbmstaWQgMCBpcyByZXNl cnZlZCBmb3IgbXVsdGljYXN0ICovCiAJSU5JVF9XT1JLKCZ3dmlmLT51cGRhdGVfdGltX3dvcmss IHdmeF91cGRhdGVfdGltX3dvcmspOwogCUlOSVRfREVMQVlFRF9XT1JLKCZ3dmlmLT5iZWFjb25f bG9zc193b3JrLCB3ZnhfYmVhY29uX2xvc3Nfd29yayk7CiAKQEAgLTc3NSw3ICs3ODEsNyBAQCBp bnQgd2Z4X2FkZF9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBpZWVl ODAyMTFfdmlmICp2aWYpCiAKIAl3dmlmID0gTlVMTDsKIAl3aGlsZSAoKHd2aWYgPSB3dmlmX2l0 ZXJhdGUod2Rldiwgd3ZpZikpICE9IE5VTEwpIHsKLQkJLy8gQ29tYm8gbW9kZSBkb2VzIG5vdCBz dXBwb3J0IEJsb2NrIEFja3MuIFdlIGNhbiByZS1lbmFibGUgdGhlbQorCQkvKiBDb21ibyBtb2Rl IGRvZXMgbm90IHN1cHBvcnQgQmxvY2sgQWNrcy4gV2UgY2FuIHJlLWVuYWJsZSB0aGVtICovCiAJ CWlmICh3dmlmX2NvdW50KHdkZXYpID09IDEpCiAJCQloaWZfc2V0X2Jsb2NrX2Fja19wb2xpY3ko d3ZpZiwgMHhGRiwgMHhGRik7CiAJCWVsc2UKQEAgLTgwNyw3ICs4MTMsNyBAQCB2b2lkIHdmeF9y ZW1vdmVfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgaWVlZTgwMjEx X3ZpZiAqdmlmKQogCiAJd3ZpZiA9IE5VTEw7CiAJd2hpbGUgKCh3dmlmID0gd3ZpZl9pdGVyYXRl KHdkZXYsIHd2aWYpKSAhPSBOVUxMKSB7Ci0JCS8vIENvbWJvIG1vZGUgZG9lcyBub3Qgc3VwcG9y dCBCbG9jayBBY2tzLiBXZSBjYW4gcmUtZW5hYmxlIHRoZW0KKwkJLyogQ29tYm8gbW9kZSBkb2Vz IG5vdCBzdXBwb3J0IEJsb2NrIEFja3MuIFdlIGNhbiByZS1lbmFibGUgdGhlbSAqLwogCQlpZiAo d3ZpZl9jb3VudCh3ZGV2KSA9PSAxKQogCQkJaGlmX3NldF9ibG9ja19hY2tfcG9saWN5KHd2aWYs IDB4RkYsIDB4RkYpOwogCQllbHNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvd2Z4L3N0 YS5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuaAppbmRleCAwNTZlZDUyNjdhYmEuLmYzNTlm Mzc1Y2M1NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dmeC9zdGEuaAorKysgYi9kcml2 ZXJzL3N0YWdpbmcvd2Z4L3N0YS5oCkBAIC0xOCw3ICsxOCw3IEBAIHN0cnVjdCB3Znhfc3RhX3By aXYgewogCWludCB2aWZfaWQ7CiB9OwogCi0vLyBtYWM4MDIxMSBpbnRlcmZhY2UKKy8qIG1hYzgw MjExIGludGVyZmFjZSAqLwogaW50IHdmeF9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyk7 CiB2b2lkIHdmeF9zdG9wKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KTsKIGludCB3ZnhfY29uZmln KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1MzIgY2hhbmdlZCk7CkBAIC01OSwxNCArNTksMTQg QEAgdm9pZCB3ZnhfdW5hc3NpZ25fdmlmX2NoYW5jdHgoc3RydWN0IGllZWU4MDIxMV9odyAqaHcs CiAJCQkgICAgICBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLAogCQkJICAgICAgc3RydWN0IGll ZWU4MDIxMV9jaGFuY3R4X2NvbmYgKmNvbmYpOwogCi0vLyBIYXJkd2FyZSBBUEkgQ2FsbGJhY2tz CisvKiBIYXJkd2FyZSBBUEkgQ2FsbGJhY2tzICovCiB2b2lkIHdmeF9jb29saW5nX3RpbWVvdXRf d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogdm9pZCB3Znhfc3VzcGVuZF9ob3RfZGV2 KHN0cnVjdCB3ZnhfZGV2ICp3ZGV2LCBlbnVtIHN0YV9ub3RpZnlfY21kIGNtZCk7CiB2b2lkIHdm eF9zdXNwZW5kX3Jlc3VtZV9tYyhzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZiwgZW51bSBzdGFfbm90aWZ5 X2NtZCBjbWQpOwogdm9pZCB3ZnhfZXZlbnRfcmVwb3J0X3Jzc2koc3RydWN0IHdmeF92aWYgKnd2 aWYsIHU4IHJhd19yY3BpX3Jzc2kpOwogaW50IHdmeF91cGRhdGVfcG0oc3RydWN0IHdmeF92aWYg Knd2aWYpOwogCi0vLyBPdGhlciBIZWxwZXJzCisvKiBPdGhlciBIZWxwZXJzICovCiB2b2lkIHdm eF9yZXNldChzdHJ1Y3Qgd2Z4X3ZpZiAqd3ZpZik7CiB1MzIgd2Z4X3JhdGVfbWFza190b19odyhz dHJ1Y3Qgd2Z4X2RldiAqd2RldiwgdTMyIHJhdGVzKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9z dGFnaW5nL3dmeC90cmFjZXMuaCBiL2RyaXZlcnMvc3RhZ2luZy93ZngvdHJhY2VzLmgKaW5kZXgg ZTM0YzdhNTM4YzY1Li5lOTBkYzczYzRiMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc3RhZ2luZy93 ZngvdHJhY2VzLmgKKysrIGIvZHJpdmVycy9zdGFnaW5nL3dmeC90cmFjZXMuaApAQCAtMzc4LDcg KzM3OCw3IEBAIFRSQUNFX0VWRU5UKHR4X3N0YXRzLAogCQlfX2FycmF5KGludCwgdHhfY291bnQs IDQpCiAJKSwKIAlUUF9mYXN0X2Fzc2lnbigKLQkJLy8gS2VlcCBzeW5jIHdpdGggd2Z4X3JhdGVz IGRlZmluaXRpb24gaW4gbWFpbi5jCisJCS8qIEtlZXAgc3luYyB3aXRoIHdmeF9yYXRlcyBkZWZp bml0aW9uIGluIG1haW4uYyAqLwogCQlzdGF0aWMgY29uc3QgaW50IGh3X3JhdGVbXSA9IHsgMCwg MSwgMiwgMywgNiwgNywgOCwgOSwKIAkJCQkJICAgICAgIDEwLCAxMSwgMTIsIDEzIH07CiAJCWNv bnN0IHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqdHhfaW5mbyA9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oIGIvZHJpdmVycy9zdGFnaW5nL3dmeC93ZnguaAppbmRleCA1 NjM3ZjlhZjc5YzAuLmE0NzcwZjU5ZjdkMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9zdGFnaW5nL3dm eC93ZnguaAorKysgYi9kcml2ZXJzL3N0YWdpbmcvd2Z4L3dmeC5oCkBAIC0yMiw3ICsyMiw3IEBA CiAjaW5jbHVkZSAicXVldWUuaCIKICNpbmNsdWRlICJoaWZfdHguaCIKIAotI2RlZmluZSBVU0VD X1BFUl9UWE9QIDMyIC8vIHNlZSBzdHJ1Y3QgaWVlZTgwMjExX3R4X3F1ZXVlX3BhcmFtcworI2Rl ZmluZSBVU0VDX1BFUl9UWE9QIDMyIC8qIHNlZSBzdHJ1Y3QgaWVlZTgwMjExX3R4X3F1ZXVlX3Bh cmFtcyAqLwogI2RlZmluZSBVU0VDX1BFUl9UVSAxMDI0CiAKIHN0cnVjdCBod2J1c19vcHM7Ci0t IAoyLjMzLjAKCg==