Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp190585pxb; Wed, 11 Nov 2020 00:49:58 -0800 (PST) X-Google-Smtp-Source: ABdhPJxZGj/S6yiblx6lLgo9ZiipBdzgY6m/vsbg8faeO4wU5pHTa2+sTOxJyHxIEA7pkn6ppf/r X-Received: by 2002:aa7:cb02:: with SMTP id s2mr24734670edt.211.1605084598298; Wed, 11 Nov 2020 00:49:58 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1605084598; cv=pass; d=google.com; s=arc-20160816; b=owagM02S7mAy7Iiai+VEe7V39cs/n1+H+8XwdXEZKhoXfTubtWiYZBm0UsvE+8J3sc BeGdXsleZ5jPWispXmVGiw98ZkiJ7ATT9/Q0BK+ebGrEEXxqcIoOU7fwEMOpik0FnG6n 2BAXZPmQjP+vJ7vc31DF9+fPi4RqDmNZit9gR+0p8muiMNnhvZ9dR72FmW03XH2w7xKq 2iLSIz+BH7GfRzMXFZLHrEYNAP9bZ0bXRPscXgZL6v6+L8CJb+W85vh4aZwAanmGzbCN jfjP3GBBv/FOhhTI9yFX4tHNK/UNrX45GWp0M9O8tuazXD6Y8W/Q84KgOLAqkr1aIdTr zLoA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=7XpFaVG6lynjpfBS1rV+svqhv5Otya0wQqny4Uol0Bk=; b=Ree17PeAcnlD9StEO1UaXWlkRiB9Ii3DpNF8eBh+X69ZRM69IqlwP2c5hai6QhB8cP Mdx6qLIu4P7aUIxUaEOWuzidXw3xAi933SnXZIzjGGT4zIyHFulTrAiK5ngOhd4c0Fsj vbYcp/AySPnXarCiHXae8pD4r5+/VsVe0R6pSrijo3NeUMtBQkJ0bo76skxxs5+OSVZp 7sd10ELDpOuBnVN/l3nk5QSejuoZSRUWL3Q/jamd8hhMjeQSmBhuDGuUt24aRKx3owll vmQ2MZKGSYrs/UiWgO8HBVbGaPWf0lXI3sojTV7tylcHVD9/9U2Y1inigRHLSB/YrQer I9rw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b="XIyLv/0N"; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d4si1033637edo.178.2020.11.11.00.49.34; Wed, 11 Nov 2020 00:49:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@NXP1.onmicrosoft.com header.s=selector2-NXP1-onmicrosoft-com header.b="XIyLv/0N"; arc=pass (i=1 spf=pass spfdomain=oss.nxp.com dkim=pass dkdomain=oss.nxp.com dmarc=pass fromdomain=oss.nxp.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726070AbgKKIsG (ORCPT + 99 others); Wed, 11 Nov 2020 03:48:06 -0500 Received: from mail-am6eur05on2061.outbound.protection.outlook.com ([40.107.22.61]:47233 "EHLO EUR05-AM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1725859AbgKKIsE (ORCPT ); Wed, 11 Nov 2020 03:48:04 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TxFDRztFKuoVjEdkj1M7npOizv0+uw8/wgc4OYN9Nvp4f61bhb6C1KQeq5MoZYIqnn5T7Plvm08wfiJabfPJv0d+lFPxHtzEvQ8Dw/DxdMl+7h1tmaAIN+Q8WJ21oWAmh4193hQOYF5LdKBMm57nwuFy7y91MN7cn8UjUdQgSlKSKes1sUwI/xAKUiTnHGfalUOWaD1ZpJ6KTd3ka9p9G/eqIFSHcB4itm62npZ3wittwZF81N5fGdAlpN5H4x0d0YzsB6eYt6xhJN33AGHxLezSbhnJbLsy25D3sWNwVIJxOUCEVGzyRqSdz2JosLmu9q0OmKVXcJVSUgEyK5BXbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7XpFaVG6lynjpfBS1rV+svqhv5Otya0wQqny4Uol0Bk=; b=aE/sBkyND2RVwr8qxz29Ig7pFU+8BZ67xXvf/hShA7SUOZ2OgRStugKcDuErUFH87iSW0TQwUmyrryoB+KZDiJzLbYrpNwT4bTXdQQls+tcSH/yYFSBKDVs/poDmiPhU2OLDETE1cB1zS5FI9jTfMCO3nHIy7jfHwTlAsOctaKPLHEaVxYiCfWejMP3UB19uHZktNbdG9Ipx+BPTYTM5itYlfOOhNlLSzNJKbx09oIbN5oDLbnjRvfU29YGxEsWiITEmY5nGoj8Q55wHbcNiJcvTIJGg+O9aC/7VFv9qM5IQ+rRnmLahi1hp4tx8v1Rd5hdKd1d/gi8QEDhVe+eREQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7XpFaVG6lynjpfBS1rV+svqhv5Otya0wQqny4Uol0Bk=; b=XIyLv/0NV/pYyw4/IUgecDquijzeHpIcJM4cUSxQqgrQkPUcJjk8Noa0cGblpdmuWi13ZD9D8f4uz8mMvgB8Kqfab2KSTMiRGWZGsBzhr2m3+8wGJOIHDhxAXV/ObVcy0lX75x7Y0kOjW7AtKCeg6wPqbUTa31Hpr8Ad35Z/o2E= Received: from DB6PR0401MB2438.eurprd04.prod.outlook.com (2603:10a6:4:33::14) by DB7PR04MB4892.eurprd04.prod.outlook.com (2603:10a6:10:14::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3541.25; Wed, 11 Nov 2020 08:47:56 +0000 Received: from DB6PR0401MB2438.eurprd04.prod.outlook.com ([fe80::f0c9:fd48:c8d1:5c22]) by DB6PR0401MB2438.eurprd04.prod.outlook.com ([fe80::f0c9:fd48:c8d1:5c22%11]) with mapi id 15.20.3541.025; Wed, 11 Nov 2020 08:47:56 +0000 From: "Biwen Li (OSS)" To: Oleksij Rempel , "Biwen Li (OSS)" CC: Leo Li , "linux@rempel-privat.de" , "kernel@pengutronix.de" , "wsa@the-dreams.de" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "festevam@gmail.com" , Aisheng Dong , Clark Wang , "linux-i2c@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Jiafei Pan , Xiaobo Xie , "linux-arm-kernel@lists.infradead.org" Subject: RE: [v9 1/2] i2c: imx: support slave mode for imx I2C driver Thread-Topic: [v9 1/2] i2c: imx: support slave mode for imx I2C driver Thread-Index: AQHWuAdZ7WLYJf0+xE2lHljHVv0uXQ== Date: Wed, 11 Nov 2020 08:47:56 +0000 Message-ID: References: <20201102082102.16508-1-biwen.li@oss.nxp.com> <20201110114957.pkoub7v57zpm3jbm@pengutronix.de> In-Reply-To: <20201110114957.pkoub7v57zpm3jbm@pengutronix.de> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: pengutronix.de; dkim=none (message not signed) header.d=none;pengutronix.de; dmarc=none action=none header.from=oss.nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e0bc6832-38c6-45a3-9eb1-08d8861e7c4d x-ms-traffictypediagnostic: DB7PR04MB4892: x-ms-exchange-sharedmailbox-routingagent-processed: True x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2201; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: a9C5Mf5tW4lEVxArk/zog1kdrcSyyHKGHhDv/fU8Bw9fq5tOeZ5xQUr3+gM31nocIusGv9HV0puVZKDR8XrEIatIG9tVYHjtcZ52CRTPDfXhY2hbAdlZnxY9wn1VhIhoNb5UImqmtL/inBQxhl0Yke1PmYKwB3ggJNL/pRjxeIRoR/0mU9cL0cLUq4oOZONcIGntH5GBkQk9h1c2WVwURCCC1h5as3Zr8Qau8G1cLUBaYAA9LJhaxLJmDjpbkjFYSZ3cdFFeobxqiE+FseGM0MYCj6mjkmbfdT/E3H+vnmKfkQob6Mw/+DbKkT+lZUI+mKvmi4Z7o3BbYhl+gw4ngugZFt+Lm9vUqEBfA5GFcnzMDNoAcVPWc1zsBzo97XOcACnCZowvVOFMdRr4bf38wzJqLt0+xW6y8o8asgPcqHShdqh6tXCtQ9qFmWiExriscH70xbYw4FUC5kh4MBY5/A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB6PR0401MB2438.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(396003)(136003)(376002)(39860400002)(366004)(8936002)(478600001)(186003)(8676002)(52536014)(7416002)(7696005)(26005)(6506007)(33656002)(83380400001)(66476007)(64756008)(2906002)(86362001)(83080400002)(66446008)(66946007)(66556008)(76116006)(9686003)(966005)(71200400001)(30864003)(5660300002)(55016002)(4326008)(54906003)(110136005)(316002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: Zz96Y3cvAd/tJQAAvG0Y2/ihPmTAUUQu41U/8pPwIpMIeXCMU4IhLAipx1v1VrCpBHB1MmgUZiKLaKMLXzTE4Ic/wLew8xaQq/4PjcKckCf+QJHota+U7+F/dr9ZSKxYxuJUaMlK3YNe2g6CPnfp4TT8oO6/Bra6S3UHeC9/CBgMwpYMEqYl96eAPRaZ5hO0PB2SUmKEJpIpZ0dVFxkWe6+zyDohol0A/dIbQqDUlIcIBSa0+SVLeS6nIypLK+I0biGCadZn8+OHorqgj9+VGJT3wV1dTApxfmfanXC11g5ku154QJaa99NVrd29Sivj7sN6a77t2EkztDAAjKxuJquuMMOfXrU/ADTAhPuPg8E6VPX9fw9jJ8P4J9k5eK4vSzTTvRIEniqDH5L5rFHh6FCeSeeO5K+OC1hqDn8QSrofmRg3Wpiv7LVZ+Mo4LcmcIWF8Wxk5n1ks6q3glpMpy47JYv6zTq0VPs3aChZyn5zRgO9SATbM0QRqg79w1XAR2Yx9ndejQCIComiHksEGlnw9AB8cKn6/WfdAaYFN+h7jvAnfcGeWX6wP4qQZVDENvvHPVppaC7Cp9rmhKUzn7lHaKnwulyHK3hhPB5gDnzU5BiNmh6D/Bh0XTvUAGZOk6tMmhoI9nzLfPypFRMFMYU1rr0uieLxtOP2JvmQldI14MdR1rzxADEKG5nQPhEIxeSmWrIjg/rQIIl13el3pB29YHjjTGbz2Se70UnJYJEihpa6xT7vaiwgV6l8YXPSP3TWjoEERGmqcYd5gwYCV9KJ9/3+/5yjWyVp6h5SgSsAbi9/EQdxOfaGFXry0Upl06pdAVt82iFFzrxjydAvn1+sJx3fIlGpQKLn7jQlmxstjFUNFg2CeXQC6jheSaIsJev5Sm28akoNyM2QRDMGjrw== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB6PR0401MB2438.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0bc6832-38c6-45a3-9eb1-08d8861e7c4d X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Nov 2020 08:47:56.4318 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: nabg4QW1SpF9LpKbXUw8C4NhnwjCtQW54jzwC7fyYNjuR9OAZl0yDC2bH9NAexACJZjmB4ru/sLUmyMIiOP7TA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4892 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gSGksDQo+IA0KPiBPbiBNb24sIE5vdiAwMiwgMjAyMCBhdCAwNDoyMTowMVBNICswODAw LCBCaXdlbiBMaSB3cm90ZToNCj4gPiBGcm9tOiBCaXdlbiBMaSA8Yml3ZW4ubGlAbnhwLmNvbT4N Cj4gPg0KPiA+IFRoZSBwYXRjaCBzdXBwb3J0cyBzbGF2ZSBtb2RlIGZvciBpbXggSTJDIGRyaXZl cg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogQml3ZW4gTGkgPGJpd2VuLmxpQG54cC5jb20+DQo+ ID4gLS0tDQo+ID4gQ2hhbmdlIGluIHY5Og0KPiA+IAktIHJlbW92ZSAjaWZkZWYgYWZ0ZXIgc2Vs ZWN0IEkyQ19TTEFWRSBieSBkZWZhdWx0DQo+ID4NCj4gPiBDaGFuZ2UgaW4gdjg6DQo+ID4gCS0g Zml4IGJ1aWxkIGlzc3VlDQo+ID4NCj4gPiBDaGFuZ2UgaW4gdjc6DQo+ID4gCS0gc3VwcG9ydCBh dXRvIHN3aXRjaCBtb2RlIGJldHdlZW4gbWFzdGVyIGFuZCBzbGF2ZQ0KPiA+IAktIGVuYWJsZSBp bnRlcnJ1cHQgd2hlbiBpZGxlIGluIHNsYXZlIG1vZGUNCj4gPiAJLSByZW1vdmUgI2lmZGVmDQo+ ID4NCj4gPiBDaGFuZ2UgaW4gdjY6DQo+ID4gCS0gZGVsZXRlIHJvYnVzdCBsb2dzIGFuZCBjb21t ZW50cw0KPiA+IAktIG5vdCByZWFkIHN0YXR1cyByZWdpc3RlciBhZ2FpbiBpbiBtYXN0ZXIgaXNy Lg0KPiA+DQo+ID4gQ2hhbmdlIGluIHY1Og0KPiA+IAktIGZpeCBhIGJ1ZyB0aGF0IGNhbm5vdCBk ZXRlcm1pbmUgaW4gd2hhdCBtb2RlKG1hc3RlciBtb2RlIG9yDQo+ID4gCSAgc2xhdmUgbW9kZSkN Cj4gPg0KPiA+IENoYW5nZSBpbiB2NDoNCj4gPiAJLSBhZGQgTUFDUk8gQ09ORklHX0kyQ19TTEFW RSB0byBmaXggY29tcGlsYXRpb24gaXNzdWUNCj4gPg0KPiA+IENoYW5nZSBpbiB2MzoNCj4gPiAJ LSBzdXBwb3J0IGxheWVyc2NhcGUgYW5kIGkubXggcGxhdGZvcm0NCj4gPg0KPiA+IENoYW5nZSBp biB2MjoNCj4gPiAJLSByZW1vdmUgTUFDUk8gQ09ORklHX0kyQ19TTEFWRQ0KPiA+DQo+ID4gIGRy aXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW14LmMgfCAyMTMNCj4gPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLQ0KPiA+ICAxIGZpbGUgY2hhbmdlZCwgMTk5IGluc2VydGlvbnMoKyks IDE0IGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nl cy9pMmMtaW14LmMNCj4gPiBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW14LmMgaW5kZXggYzk4 NTI5Yzc2MzQ4Li4wOThlMmM4YTBmYzcgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9pMmMvYnVz c2VzL2kyYy1pbXguYw0KPiA+ICsrKyBiL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMtaW14LmMNCj4g PiBAQCAtMTcsNiArMTcsNyBAQA0KPiA+ICAgKglDb3B5cmlnaHQgKEMpIDIwMDggRGFyaXVzIEF1 Z3VsaXMgPGRhcml1cy5hdWd1bGlzIGF0IHRlbHRvbmlrYS5sdD4NCj4gPiAgICoNCj4gPiAgICoJ Q29weXJpZ2h0IDIwMTMgRnJlZXNjYWxlIFNlbWljb25kdWN0b3IsIEluYy4NCj4gPiArICoJQ29w eXJpZ2h0IDIwMjAgTlhQDQo+ID4gICAqDQo+ID4gICAqLw0KPiA+DQo+ID4gQEAgLTcyLDYgKzcz LDcgQEANCj4gPiAgI2RlZmluZSBJTVhfSTJDX0kyQ1IJMHgwMgkvKiBpMmMgY29udHJvbCAqLw0K PiA+ICAjZGVmaW5lIElNWF9JMkNfSTJTUgkweDAzCS8qIGkyYyBzdGF0dXMgKi8NCj4gPiAgI2Rl ZmluZSBJTVhfSTJDX0kyRFIJMHgwNAkvKiBpMmMgdHJhbnNmZXIgZGF0YSAqLw0KPiA+ICsjZGVm aW5lIElNWF9JMkNfSUJJQwkweDA1ICAgIC8qIGkyYyB0cmFuc2ZlciBkYXRhICovDQo+IA0KPiBU aGlzIHJlZ2lzdGVyIGlzIG5vdCBkb2N1bWVudGVkIGluIHRoZSBpbXg2c2RsIG9yIGlteDhtbS4g V2hpY2ggY2hpcA0KPiBzdXBwb3J0IHRoaXMgcmVnaXN0ZXI/IElmIGFsbCwgcGxlYXNlIHByb3Zp ZGUgbW9yZSBkZXNjcmlwdGl2ZSBhbmQgY29ycmVjdA0KPiBjb21tZW50ICJpMmMgdHJhbnNmZXIg ZGF0YSIgc2VlbXMgdG8gYmUganVzdCBjb3B5L3Bhc3RlIGFydGlmYWN0Lg0KQWxsIG9mIHRoZSBs YXllcnNjYXBlIHNlcmllcyBTb0NzIHN1cHBvcnQgdGhpcyByZWdpc3Rlci4NCj4gDQo+ID4NCj4g PiAgI2RlZmluZSBJTVhfSTJDX1JFR1NISUZUCTINCj4gPiAgI2RlZmluZSBWRjYxMF9JMkNfUkVH U0hJRlQJMA0KPiA+IEBAIC05MSw2ICs5Myw3IEBADQo+ID4gICNkZWZpbmUgSTJDUl9NU1RBCTB4 MjANCj4gPiAgI2RlZmluZSBJMkNSX0lJRU4JMHg0MA0KPiA+ICAjZGVmaW5lIEkyQ1JfSUVOCTB4 ODANCj4gPiArI2RlZmluZSBJQklDX0JJSUUJMHg4MCAvLyBCdXMgaWRsZSBpbnRlcnJ1cHQgZW5h YmxlDQo+IA0KPiBQbGVhc2UgdXNlIEMgc3R5bGUgY29tbWVudHMuDQpTdXJlLCBucC4NCj4gDQo+ IElmIGl0IGlzICJCdXMgaWRsZSBpbnRlcnJ1cHQgZW5hYmxlIiwgdGhlbiB3ZSBzaG91bGQgaGFu ZGxlIHRoaXMgaW50ZXJydXB0IHNvbWUNCj4gaG93Pw0KWWVzLCBoYXZlIGRlYWx0IHdpdGggdGhl IGlkbGUgaW50ZXJydXB0IGluIGkyY19pbXhfc2xhdmVfaXNyKCksIGFzIGZvbGxvd3MsDQp9IGVs c2UgaWYgKCEoY3RsICYgSTJDUl9NVFgpKSB7IC8qIFJlY2VpdmUgbW9kZSAqLw0KICAgICAgICAg ICAgICAgIGlmIChzdGF0dXMgJiBJMlNSX0lCQikgeyAvKiBObyBTVE9QIHNpZ25hbCBkZXRlY3Rl ZCAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBpbXhfaTJjX3JlYWRfcmVnKGky Y19pbXgsIElNWF9JMkNfSTJEUik7DQogICAgICAgICAgICAgICAgICAgICAgICBpMmNfc2xhdmVf ZXZlbnQoaTJjX2lteC0+c2xhdmUsIEkyQ19TTEFWRV9XUklURV9SRUNFSVZFRCwgJnZhbHVlKTsN CiAgICAgICAgICAgICAgICB9IGVsc2UgeyAvKiBTVE9QIHNpZ25hbCBpcyBkZXRlY3RlZCAqLw0K ICAgICAgICAgICAgICAgICAgICAgICAgZGV2X2RiZygmaTJjX2lteC0+YWRhcHRlci5kZXYsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTVE9QIHNpZ25hbCBkZXRlY3RlZCIpOw0K ICAgICAgICAgICAgICAgICAgICAgICAgaTJjX3NsYXZlX2V2ZW50KGkyY19pbXgtPnNsYXZlLCBJ MkNfU0xBVkVfU1RPUCwgJnZhbHVlKTsNCiAgICAgICAgICAgICAgICB9DQoNCj4gDQo+ID4NCj4g PiAgLyogcmVnaXN0ZXIgYml0cyBkaWZmZXJlbnQgb3BlcmF0aW5nIGNvZGVzIGRlZmluaXRpb246 DQo+ID4gICAqIDEpIEkyU1I6IEludGVycnVwdCBmbGFncyBjbGVhciBvcGVyYXRpb24gZGlmZmVy IGJldHdlZW4gU29DczoNCj4gPiBAQCAtMjAxLDYgKzIwNCw3IEBAIHN0cnVjdCBpbXhfaTJjX3N0 cnVjdCB7DQo+ID4gIAlzdHJ1Y3QgcGluY3RybF9zdGF0ZSAqcGluY3RybF9waW5zX2dwaW87DQo+ ID4NCj4gPiAgCXN0cnVjdCBpbXhfaTJjX2RtYQkqZG1hOw0KPiA+ICsJc3RydWN0IGkyY19jbGll bnQJKnNsYXZlOw0KPiA+ICB9Ow0KPiA+DQo+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW14X2ky Y19od2RhdGEgaW14MV9pMmNfaHdkYXRhID0geyBAQCAtMjc3LDYNCj4gPiArMjgxLDE0IEBAIHN0 YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBpbXhfaTJjX3JlYWRfcmVnKHN0cnVjdA0KPiBpbXhf aTJjX3N0cnVjdCAqaTJjX2lteCwNCj4gPiAgCXJldHVybiByZWFkYihpMmNfaW14LT5iYXNlICsg KHJlZyA8PCBpMmNfaW14LT5od2RhdGEtPnJlZ3NoaWZ0KSk7ICB9DQo+ID4NCj4gPiArLyogU2V0 IHVwIGkyYyBjb250cm9sbGVyIHJlZ2lzdGVyIGFuZCBpMmMgc3RhdHVzIHJlZ2lzdGVyIHRvIGRl ZmF1bHQNCj4gPiArdmFsdWUuICovIHN0YXRpYyB2b2lkIGkyY19pbXhfcmVzZXRfcmVncyhzdHJ1 Y3QgaW14X2kyY19zdHJ1Y3QNCj4gPiArKmkyY19pbXgpIHsNCj4gPiArCWlteF9pMmNfd3JpdGVf cmVnKGkyY19pbXgtPmh3ZGF0YS0+aTJjcl9pZW5fb3Bjb2RlIF4gSTJDUl9JRU4sDQo+ID4gKwkJ CWkyY19pbXgsIElNWF9JMkNfSTJDUik7DQo+ID4gKwlpbXhfaTJjX3dyaXRlX3JlZyhpMmNfaW14 LT5od2RhdGEtPmkyc3JfY2xyX29wY29kZSwgaTJjX2lteCwNCj4gPiArSU1YX0kyQ19JMlNSKTsN Cj4gDQo+IGkuTVggYW5kIFZ5YnJpZCBoYXZlIGRpZmZlcmVudCBJTVhfSTJDX0kyU1IgbG9naWMu IHcxYyB2cyB3MGMuDQpZZXMsIHRoZSBmaWVsZCBpMnNyX2Nscl9vcGNvZGUgcmVzb2x2ZWQgdGhl IGRpZmZlcmVudGlhdGlvbi4NCg0KPiANCj4gUGxlYXNlIGFwcGx5IHlvdXIgcGF0Y2hlcyBvbiB0 b3Agb2YgdGhpcyBwYXRjaCBzZXQ6DQo+IGh0dHBzOi8vbGttbC5vcmcvbGttbC8yMDIwLzEwLzIv NjA3DQpPa2F5LCBucC4NCg0KPiANCj4gPiArfQ0KPiA+ICsNCj4gPiAgLyogRnVuY3Rpb25zIGZv ciBETUEgc3VwcG9ydCAqLw0KPiA+ICBzdGF0aWMgdm9pZCBpMmNfaW14X2RtYV9yZXF1ZXN0KHN0 cnVjdCBpbXhfaTJjX3N0cnVjdCAqaTJjX2lteCwNCj4gPiAgCQkJCQkJZG1hX2FkZHJfdCBwaHlf YWRkcikNCj4gPiBAQCAtNjE0LDIwICs2MjYsMTg4IEBAIHN0YXRpYyB2b2lkIGkyY19pbXhfc3Rv cChzdHJ1Y3QgaW14X2kyY19zdHJ1Y3QNCj4gKmkyY19pbXgsIGJvb2wgYXRvbWljKQ0KPiA+ICAJ aW14X2kyY193cml0ZV9yZWcodGVtcCwgaTJjX2lteCwgSU1YX0kyQ19JMkNSKTsgIH0NCj4gPg0K PiA+ICsvKg0KPiA+ICsgKiBFbmFibGUgYnVzIGlkbGUgaW50ZXJydXB0cw0KPiANCj4gUGxlYXNl IHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiwgd2hpY2ggZGF0YXNoZWV0IHdhcyB1c2VkLCB3aGlj aCBTb0MgaXMNCj4gc3VwcG9ydGluZyB0aGlzIGJpdHMgYW5kIHdoeSB3ZSBkbyBub3QgbmVlZCB0 byBoYW5kbGUgdGhpcyBpbnRlcnJ1cHRzLg0KU3VyZSwgbnAuDQpBbGwgb2YgdGhlIGxheWVyc2Nh cGUgc2VyaWVzIFNvQ3Mgc3VwcG9ydCB0aGlzIGJpdHMuDQpUaGlzIGludGVycnVwdCBpcyBwcm9w ZXJseSBkZWFsdCB3aXRoIGJ5IHRoZSBmdW5jdGlvbiBpMmNfaW14X3NsYXZlX2lzcigpLiANCj4g DQo+ID4gKyAqIE5vdGU6IElCSUMgcmVnaXN0ZXIgd2lsbCBiZSBjbGVhcmVkIGFmdGVyIGRpc2Fi bGVkIGkyYyBtb2R1bGUuDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgdm9pZCBpMmNfaW14X2VuYWJs ZV9idXNfaWRsZShzdHJ1Y3QgaW14X2kyY19zdHJ1Y3QgKmkyY19pbXgpIHsNCj4gPiArCXVuc2ln bmVkIGludCB0ZW1wOw0KPiA+ICsNCj4gPiArCXRlbXAgPSBpbXhfaTJjX3JlYWRfcmVnKGkyY19p bXgsIElNWF9JMkNfSUJJQyk7DQo+ID4gKwl0ZW1wIHw9IElCSUNfQklJRTsNCj4gPiArCWlteF9p MmNfd3JpdGVfcmVnKHRlbXAsIGkyY19pbXgsIElNWF9JMkNfSUJJQyk7IH0NCj4gPiArDQo+ID4g K3N0YXRpYyB2b2lkIGkyY19pbXhfY2xyX2lmX2JpdCh1bnNpZ25lZCBpbnQgc3RhdHVzLCBzdHJ1 Y3QNCj4gPiAraW14X2kyY19zdHJ1Y3QgKmkyY19pbXgpIHsNCj4gPiArCXN0YXR1cyAmPSB+STJT Ul9JSUY7DQo+ID4gKwlzdGF0dXMgfD0gKGkyY19pbXgtPmh3ZGF0YS0+aTJzcl9jbHJfb3Bjb2Rl ICYgSTJTUl9JSUYpOw0KPiA+ICsJaW14X2kyY193cml0ZV9yZWcoc3RhdHVzLCBpMmNfaW14LCBJ TVhfSTJDX0kyU1IpOw0KPiANCj4gVGhpcyBjb2RlIHdpbGwgYWNjaWRlbnRhbGx5IGNsZWFyIEky U1JfSUFMIGJpdCBvbiBWeWJyaWQNClllcywgSSB3aWxsIGNvcnJlY3QgaXQgaW4gdjEwLg0KPiAN Cj4gPiArfQ0KPiA+ICsNCj4gPiArLyogQ2xlYXIgYXJiaXRyYXRpb24gbG9zdCBiaXQgKi8NCj4g PiArc3RhdGljIHZvaWQgaTJjX2lteF9jbHJfYWxfYml0KHVuc2lnbmVkIGludCBzdGF0dXMsIHN0 cnVjdA0KPiA+ICtpbXhfaTJjX3N0cnVjdCAqaTJjX2lteCkgew0KPiA+ICsJc3RhdHVzICY9IH5J MlNSX0lBTDsNCj4gPiArCXN0YXR1cyB8PSAoaTJjX2lteC0+aHdkYXRhLT5pMnNyX2Nscl9vcGNv ZGUgJiBJMlNSX0lBTCk7DQo+ID4gKwlpbXhfaTJjX3dyaXRlX3JlZyhzdGF0dXMsIGkyY19pbXgs IElNWF9JMkNfSTJTUik7DQo+IA0KPiBUaGlzIGNvZGUgd2lsbCBhY2NpZGVudGFsbHkgY2xlYXIg STJTUl9JSUYgYml0IG9uIFZ5YnJpZA0KWWVzLCBJIHdpbGwgY29ycmVjdCBpdCBpbiB2MTAuDQo+ IA0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaXJxcmV0dXJuX3QgaTJjX2lteF9zbGF2ZV9p c3Ioc3RydWN0IGlteF9pMmNfc3RydWN0ICppMmNfaW14LA0KPiA+ICsJCQkJICAgICB1bnNpZ25l ZCBpbnQgc3RhdHVzLCB1bnNpZ25lZCBpbnQgY3RsKSB7DQo+ID4gKwl1OCB2YWx1ZTsNCj4gPiAr DQo+ID4gKwlpZiAoc3RhdHVzICYgSTJTUl9JQUwpIHsgLyogQXJiaXRyYXRpb24gbG9zdCAqLw0K PiA+ICsJCWkyY19pbXhfY2xyX2FsX2JpdChzdGF0dXMgfCBJMlNSX0lJRiwgaTJjX2lteCk7DQo+ IA0KPiBXZSBuZXZlciByZW1vdmVkIEkyU1JfSUlGIGJpdCBmcm9tIHN0YXR1cy4gQXJlIHRoZXJl IGFueSByZWFzb24gZm9yIGFkZGluZyBpdA0KPiBoZXJlIGFnYWluPw0KTm8sIEkgd2lsbCBjb3Jy ZWN0IGl0IGluIHYxMC4NCg0KPiANCj4gQWNjb3JkaW5nIHRvICJGaWd1cmUgMzYtNi4gRmxvd2No YXJ0IGZvciB0eXBpY2FsIEkyQyBwb2xsaW5nIHJvdXRpbmUiIEluIGlteDZzZGwsDQo+IHdlIHNo b3VsZCBvbmx5IGNsZWFyIEFyYml0cmF0aW9uIGxvc3QgYml0IGFuZCBjb250aW51ZSB3aXRoIHBy b2Nlc3Npbmcgc3RhdHVzIG9mDQo+IEkyU1JfSUFBUy4gSWYgaXQgaXMgbm90IGNvcnJlY3Qgb3Ig bm90IHdvcmtpbmcgZm9yIHNvbWUgcmVhc29ucywgcGxlYXNlIGFkZA0KPiBjb21tZW50cyB0byB0 aGUgY29kZS4NCkkgd2lsbCBjb3JyZWN0IGl0IGluIHYxMC4NCg0KPiANCj4gPiArCX0gZWxzZSBp ZiAoc3RhdHVzICYgSTJTUl9JQUFTKSB7IC8qIEFkZHJlc3NlZCBhcyBhIHNsYXZlICovDQo+ID4g KwkJaWYgKHN0YXR1cyAmIEkyU1JfU1JXKSB7IC8qIE1hc3RlciB3YW50cyB0byByZWFkIGZyb20g dXMqLw0KPiA+ICsJCQlkZXZfZGJnKCZpMmNfaW14LT5hZGFwdGVyLmRldiwgInJlYWQgcmVxdWVz dGVkIik7DQo+ID4gKwkJCWkyY19zbGF2ZV9ldmVudChpMmNfaW14LT5zbGF2ZSwgSTJDX1NMQVZF X1JFQURfUkVRVUVTVEVELA0KPiAmdmFsdWUpOw0KPiA+ICsNCj4gPiArCQkJLyogU2xhdmUgdHJh bnNtaXQgKi8NCj4gPiArCQkJY3RsIHw9IEkyQ1JfTVRYOw0KPiA+ICsJCQlpbXhfaTJjX3dyaXRl X3JlZyhjdGwsIGkyY19pbXgsIElNWF9JMkNfSTJDUik7DQo+ID4gKw0KPiA+ICsJCQkvKiBTZW5k IGRhdGEgKi8NCj4gPiArCQkJaW14X2kyY193cml0ZV9yZWcodmFsdWUsIGkyY19pbXgsIElNWF9J MkNfSTJEUik7DQo+ID4gKwkJfSBlbHNlIHsgLyogTWFzdGVyIHdhbnRzIHRvIHdyaXRlIHRvIHVz ICovDQo+ID4gKwkJCWRldl9kYmcoJmkyY19pbXgtPmFkYXB0ZXIuZGV2LCAid3JpdGUgcmVxdWVz dGVkIik7DQo+ID4gKwkJCWkyY19zbGF2ZV9ldmVudChpMmNfaW14LT5zbGF2ZSwNCj4gCUkyQ19T TEFWRV9XUklURV9SRVFVRVNURUQsICZ2YWx1ZSk7DQo+ID4gKw0KPiA+ICsJCQkvKiBTbGF2ZSBy ZWNlaXZlICovDQo+ID4gKwkJCWN0bCAmPSB+STJDUl9NVFg7DQo+ID4gKwkJCWlteF9pMmNfd3Jp dGVfcmVnKGN0bCwgaTJjX2lteCwgSU1YX0kyQ19JMkNSKTsNCj4gPiArCQkJLyogRHVtbXkgcmVh ZCAqLw0KPiA+ICsJCQlpbXhfaTJjX3JlYWRfcmVnKGkyY19pbXgsIElNWF9JMkNfSTJEUik7DQo+ ID4gKwkJfQ0KPiA+ICsJfSBlbHNlIGlmICghKGN0bCAmIEkyQ1JfTVRYKSkgeyAvKiBSZWNlaXZl IG1vZGUgKi8NCj4gPiArCQlpZiAoc3RhdHVzICYgSTJTUl9JQkIpIHsgLyogTm8gU1RPUCBzaWdu YWwgZGV0ZWN0ZWQgKi8NCj4gPiArCQkJdmFsdWUgPSBpbXhfaTJjX3JlYWRfcmVnKGkyY19pbXgs IElNWF9JMkNfSTJEUik7DQo+ID4gKwkJCWkyY19zbGF2ZV9ldmVudChpMmNfaW14LT5zbGF2ZSwJ STJDX1NMQVZFX1dSSVRFX1JFQ0VJVkVELA0KPiAmdmFsdWUpOw0KPiA+ICsJCX0gZWxzZSB7IC8q IFNUT1Agc2lnbmFsIGlzIGRldGVjdGVkICovDQo+ID4gKwkJCWRldl9kYmcoJmkyY19pbXgtPmFk YXB0ZXIuZGV2LA0KPiA+ICsJCQkJIlNUT1Agc2lnbmFsIGRldGVjdGVkIik7DQo+ID4gKwkJCWky Y19zbGF2ZV9ldmVudChpMmNfaW14LT5zbGF2ZSwgSTJDX1NMQVZFX1NUT1AsICZ2YWx1ZSk7DQo+ ID4gKwkJfQ0KPiA+ICsJfSBlbHNlIGlmICghKHN0YXR1cyAmIEkyU1JfUlhBSykpIHsgLyogVHJh bnNtaXQgbW9kZSByZWNlaXZlZCBBQ0sgKi8NCj4gPiArCQljdGwgfD0gSTJDUl9NVFg7DQo+ID4g KwkJaW14X2kyY193cml0ZV9yZWcoY3RsLCBpMmNfaW14LCBJTVhfSTJDX0kyQ1IpOw0KPiA+ICsN Cj4gPiArCQlpMmNfc2xhdmVfZXZlbnQoaTJjX2lteC0+c2xhdmUsCUkyQ19TTEFWRV9SRUFEX1BS T0NFU1NFRCwNCj4gJnZhbHVlKTsNCj4gPiArDQo+ID4gKwkJaW14X2kyY193cml0ZV9yZWcodmFs dWUsIGkyY19pbXgsIElNWF9JMkNfSTJEUik7DQo+ID4gKwl9IGVsc2UgeyAvKiBUcmFuc21pdCBt b2RlIHJlY2VpdmVkIE5BSyAqLw0KPiA+ICsJCWN0bCAmPSB+STJDUl9NVFg7DQo+ID4gKwkJaW14 X2kyY193cml0ZV9yZWcoY3RsLCBpMmNfaW14LCBJTVhfSTJDX0kyQ1IpOw0KPiA+ICsJCWlteF9p MmNfcmVhZF9yZWcoaTJjX2lteCwgSU1YX0kyQ19JMkRSKTsNCj4gPiArCX0NCj4gPiArDQo+ID4g KwlyZXR1cm4gSVJRX0hBTkRMRUQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgaTJj X2lteF9zbGF2ZV9pbml0KHN0cnVjdCBpbXhfaTJjX3N0cnVjdCAqaTJjX2lteCkgew0KPiA+ICsJ aW50IHRlbXA7DQo+ID4gKw0KPiA+ICsJLyogUmVzdW1lICovDQo+ID4gKwl0ZW1wID0gcG1fcnVu dGltZV9nZXRfc3luYyhpMmNfaW14LT5hZGFwdGVyLmRldi5wYXJlbnQpOw0KPiANCj4gaTJjX2lt eF9zbGF2ZV9pbml0KCkgaXMgY2FsbGVkIG11bHRpcGxlIHRpbWVzLCBpdCBtZWFucywgcG1fcnVu dGltZV9nZXQgd2lsbCBiZQ0KPiBhc3ltbWV0cmljLCBzbyB0aGUgcGFyZW50IGRldmljZSB3aWxs IGJlIG5vdCBhYmxlIHRvIHN1c3BlbmQuDQpPa2F5LCBJIHdpbGwgY29ycmVjdCBpdCBpbiB2MTAu DQo+IA0KPiA+ICsJaWYgKHRlbXAgPCAwKSB7DQo+ID4gKwkJZGV2X2VycigmaTJjX2lteC0+YWRh cHRlci5kZXYsICJmYWlsZWQgdG8gcmVzdW1lIGkyYyBjb250cm9sbGVyIik7DQo+ID4gKwkJcmV0 dXJuIHRlbXA7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJLyogU2V0IHNsYXZlIGFkZHIuICovDQo+ ID4gKwlpbXhfaTJjX3dyaXRlX3JlZygoaTJjX2lteC0+c2xhdmUtPmFkZHIgPDwgMSksIGkyY19p bXgsDQo+ID4gK0lNWF9JMkNfSUFEUik7DQo+ID4gKw0KPiA+ICsJaTJjX2lteF9yZXNldF9yZWdz KGkyY19pbXgpOw0KPiA+ICsNCj4gPiArCS8qIEVuYWJsZSBtb2R1bGUgKi8NCj4gPiArCXRlbXAg PSBpMmNfaW14LT5od2RhdGEtPmkyY3JfaWVuX29wY29kZTsNCj4gPiArCWlteF9pMmNfd3JpdGVf cmVnKHRlbXAsIGkyY19pbXgsIElNWF9JMkNfSTJDUik7DQo+ID4gKw0KPiA+ICsJLyogRW5hYmxl IGludGVycnVwdCBmcm9tIGkyYyBtb2R1bGUgKi8NCj4gPiArCXRlbXAgfD0gSTJDUl9JSUVOOw0K PiA+ICsJaW14X2kyY193cml0ZV9yZWcodGVtcCwgaTJjX2lteCwgSU1YX0kyQ19JMkNSKTsNCj4g PiArDQo+ID4gKwlpMmNfaW14X2VuYWJsZV9idXNfaWRsZShpMmNfaW14KTsNCj4gPiArDQo+ID4g KwkvKiBXYWl0IGNvbnRyb2xsZXIgdG8gYmUgc3RhYmxlICovDQo+ID4gKwl1c2xlZXBfcmFuZ2Uo NTAsIDE1MCk7DQo+IA0KPiBDYW4geW91IHBsZWFzZSBkZXNjcmliZSwgd2hhdCBpdCBtZWFucz8g V2h5IGl0IGlzIG5vdCBzdGFibGUsIGlzIGl0IGRvY3VtZW50ZWQ/DQo+IElzIGl0IGJvYXJkIG9y IGJ1cyBzcGVjaWZpYyBpc3N1ZT8NClRoaXMgbGluZSBjYW4gYmUgcmVtb3ZlZC4gV2lsbCByZW1v dmUgaXQgaW4gdjEwLg0KDQo+IA0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgaW50IGkyY19pbXhfcmVnX3NsYXZlKHN0cnVjdCBpMmNfY2xpZW50ICpj bGllbnQpIHsNCj4gPiArCXN0cnVjdCBpbXhfaTJjX3N0cnVjdCAqaTJjX2lteCA9IGkyY19nZXRf YWRhcGRhdGEoY2xpZW50LT5hZGFwdGVyKTsNCj4gPiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJ aWYgKCFJU19FTkFCTEVEKENPTkZJR19JMkNfU0xBVkUpKQ0KPiA+ICsJCXJldHVybiAtRUlOVkFM Ow0KPiANCj4gWW91IGFscmVhZHkgYWRkZWQgdGhpcyBzeW1ib2wgaW4gdGhlIEtjb25maWcsIHBs ZWFzZSByZW1vdmUgdGhpcyBjaGVjay4NClN1cmUsIG5wLg0KPiANCj4gPiArCWlmIChpMmNfaW14 LT5zbGF2ZSkNCj4gPiArCQlyZXR1cm4gLUVCVVNZOw0KPiA+ICsNCj4gPiArCWkyY19pbXgtPnNs YXZlID0gY2xpZW50Ow0KPiA+ICsNCj4gPiArCXJldCA9IGkyY19pbXhfc2xhdmVfaW5pdChpMmNf aW14KTsNCj4gPiArCWlmIChyZXQgPCAwKQ0KPiA+ICsJCWRldl9lcnIoJmkyY19pbXgtPmFkYXB0 ZXIuZGV2LCAiZmFpbGVkIHRvIHN3aXRjaCB0byBzbGF2ZSBtb2RlIik7DQo+ID4gKw0KPiA+ICsJ cmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBpMmNfaW14X3VucmVn X3NsYXZlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQpIHsNCj4gPiArCXN0cnVjdCBpbXhfaTJj X3N0cnVjdCAqaTJjX2lteCA9IGkyY19nZXRfYWRhcGRhdGEoY2xpZW50LT5hZGFwdGVyKTsNCj4g PiArCWludCByZXQ7DQo+ID4gKw0KPiA+ICsJaWYgKCFJU19FTkFCTEVEKENPTkZJR19JMkNfU0xB VkUpKQ0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCWlmICghaTJjX2lteC0+ c2xhdmUpDQo+ID4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gKw0KPiA+ICsJLyogUmVzZXQgc2xh dmUgYWRkcmVzcy4gKi8NCj4gPiArCWlteF9pMmNfd3JpdGVfcmVnKDAsIGkyY19pbXgsIElNWF9J MkNfSUFEUik7DQo+ID4gKw0KPiA+ICsJaTJjX2lteF9yZXNldF9yZWdzKGkyY19pbXgpOw0KPiA+ ICsNCj4gPiArCWkyY19pbXgtPnNsYXZlID0gTlVMTDsNCj4gPiArDQo+ID4gKwkvKiBTdXNwZW5k ICovDQo+ID4gKwlyZXQgPSBwbV9ydW50aW1lX3B1dF9zeW5jKGkyY19pbXgtPmFkYXB0ZXIuZGV2 LnBhcmVudCk7DQo+ID4gKwlpZiAocmV0IDwgMCkNCj4gPiArCQlkZXZfZXJyKCZpMmNfaW14LT5h ZGFwdGVyLmRldiwgImZhaWxlZCB0byBzdXNwZW5kIGkyYyBjb250cm9sbGVyIik7DQo+ID4gKw0K PiA+ICsJcmV0dXJuIHJldDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlycXJldHVybl90 IGkyY19pbXhfbWFzdGVyX2lzcihzdHJ1Y3QgaW14X2kyY19zdHJ1Y3QgKmkyY19pbXgsDQo+ID4g K3Vuc2lnbmVkIGludCBzdGF0dXMpIHsNCj4gPiArCS8qIFNhdmUgc3RhdHVzIHJlZ2lzdGVyICov DQo+ID4gKwlpMmNfaW14LT5pMmNzciA9IHN0YXR1cyB8IEkyU1JfSUlGOw0KPiA+ICsJd2FrZV91 cCgmaTJjX2lteC0+cXVldWUpOw0KPiA+ICsNCj4gPiArCXJldHVybiBJUlFfSEFORExFRDsNCj4g PiArfQ0KPiA+ICsNCj4gPiAgc3RhdGljIGlycXJldHVybl90IGkyY19pbXhfaXNyKGludCBpcnEs IHZvaWQgKmRldl9pZCkgIHsNCj4gPiAgCXN0cnVjdCBpbXhfaTJjX3N0cnVjdCAqaTJjX2lteCA9 IGRldl9pZDsNCj4gPiAtCXVuc2lnbmVkIGludCB0ZW1wOw0KPiA+ICsJdW5zaWduZWQgaW50IGN0 bCwgc3RhdHVzOw0KPiA+ICsNCj4gPiArCXN0YXR1cyA9IGlteF9pMmNfcmVhZF9yZWcoaTJjX2lt eCwgSU1YX0kyQ19JMlNSKTsNCj4gPiArCWN0bCA9IGlteF9pMmNfcmVhZF9yZWcoaTJjX2lteCwg SU1YX0kyQ19JMkNSKTsNCj4gPiArDQo+ID4gKwlpZiAoc3RhdHVzICYgSTJTUl9JSUYpIHsNCj4g PiArCQlpMmNfaW14X2Nscl9pZl9iaXQoc3RhdHVzLCBpMmNfaW14KTsNCj4gPiArCQlpZiAoSVNf RU5BQkxFRChDT05GSUdfSTJDX1NMQVZFKSAmJiBpMmNfaW14LT5zbGF2ZSAmJiAhKGN0bCAmDQo+ ID4gK0kyQ1JfTVNUQSkpDQo+IA0KPiBwbGVhc2UgcmVtb3ZlIElTX0VOQUJMRUQoQ09ORklHX0ky Q19TTEFWRSkNClN1cmUsIG5wLg0KPiANCj4gPiArCQkJcmV0dXJuIGkyY19pbXhfc2xhdmVfaXNy KGkyY19pbXgsIHN0YXR1cywgY3RsKTsNCj4gPg0KPiA+IC0JdGVtcCA9IGlteF9pMmNfcmVhZF9y ZWcoaTJjX2lteCwgSU1YX0kyQ19JMlNSKTsNCj4gPiAtCWlmICh0ZW1wICYgSTJTUl9JSUYpIHsN Cj4gPiAtCQkvKiBzYXZlIHN0YXR1cyByZWdpc3RlciAqLw0KPiA+IC0JCWkyY19pbXgtPmkyY3Ny ID0gdGVtcDsNCj4gPiAtCQl0ZW1wICY9IH5JMlNSX0lJRjsNCj4gPiAtCQl0ZW1wIHw9IChpMmNf aW14LT5od2RhdGEtPmkyc3JfY2xyX29wY29kZSAmIEkyU1JfSUlGKTsNCj4gPiAtCQlpbXhfaTJj X3dyaXRlX3JlZyh0ZW1wLCBpMmNfaW14LCBJTVhfSTJDX0kyU1IpOw0KPiA+IC0JCXdha2VfdXAo JmkyY19pbXgtPnF1ZXVlKTsNCj4gPiAtCQlyZXR1cm4gSVJRX0hBTkRMRUQ7DQo+ID4gKwkJcmV0 dXJuIGkyY19pbXhfbWFzdGVyX2lzcihpMmNfaW14LCBzdGF0dXMpOw0KPiA+ICAJfQ0KPiA+DQo+ ID4gIAlyZXR1cm4gSVJRX05PTkU7DQo+ID4gQEAgLTk5OSw2ICsxMTc5LDEyIEBAIHN0YXRpYyBp bnQgaTJjX2lteF94ZmVyX2NvbW1vbihzdHJ1Y3QNCj4gaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsDQo+ ID4gIAlkZXZfZGJnKCZpMmNfaW14LT5hZGFwdGVyLmRldiwgIjwlcz4gZXhpdCB3aXRoOiAlczog JWRcbiIsIF9fZnVuY19fLA0KPiA+ICAJCShyZXN1bHQgPCAwKSA/ICJlcnJvciIgOiAic3VjY2Vz cyBtc2ciLA0KPiA+ICAJCQkocmVzdWx0IDwgMCkgPyByZXN1bHQgOiBudW0pOw0KPiA+ICsJLyog QWZ0ZXIgZGF0YSBpcyB0cmFuc2ZlcnJlZCwgc3dpdGNoIHRvIHNsYXZlIG1vZGUoYXMgYSByZWNl aXZlcikgKi8NCj4gPiArCWlmIChJU19FTkFCTEVEKENPTkZJR19JMkNfU0xBVkUpICYmIGkyY19p bXgtPnNsYXZlKSB7DQo+IA0KPiBwbGVhc2UgcmVtb3ZlIElTX0VOQUJMRUQoQ09ORklHX0kyQ19T TEFWRSkNClN1cmUsIG5wLg0KPiANCj4gPiArCQlpZiAoaTJjX2lteF9zbGF2ZV9pbml0KGkyY19p bXgpIDwgMCkNCj4gDQo+IHBsZWFzZSBzdG9yZSB0aGUgZXJyb3IgaW4gdGhlICJyZXN1bHQiLiBJ biBjdXJyZW50IGkyY19pbXhfc2xhdmVfaW5pdCgpIG9ubHkNCj4gcG1fcnVudGltZV9nZXRfc3lu YygpIHdpbGwgYmUgYWJsZSB0byBmYWlsLiBTbywgaWYgZGV2aWNlIGNhbiBub3QgYmUgd2FrZWQs IHdlDQo+IGhhdmUgYSBwcm9ibGVtIGFueSB3YXkuDQpPa2F5LCBnb3QgaXQuIFdpbGwgY29ycmVj dCBpdCBpbiB2MTAuIFRoYW5rcy4NCj4gDQo+ID4gKwkJCWRldl9lcnIoJmkyY19pbXgtPmFkYXB0 ZXIuZGV2LCAiZmFpbGVkIHRvIHN3aXRjaCB0byBzbGF2ZQ0KPiBtb2RlIik7DQo+ID4gKwl9DQo+ ID4gKw0KPiA+ICAJcmV0dXJuIChyZXN1bHQgPCAwKSA/IHJlc3VsdCA6IG51bTsNCj4gPiAgfQ0K PiA+DQo+ID4gQEAgLTExMTIsNiArMTI5OCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2Fs Z29yaXRobSBpMmNfaW14X2FsZ28gPSB7DQo+ID4gIAkubWFzdGVyX3hmZXIgPSBpMmNfaW14X3hm ZXIsDQo+ID4gIAkubWFzdGVyX3hmZXJfYXRvbWljID0gaTJjX2lteF94ZmVyX2F0b21pYywNCj4g PiAgCS5mdW5jdGlvbmFsaXR5ID0gaTJjX2lteF9mdW5jLA0KPiA+ICsJLnJlZ19zbGF2ZQk9IGky Y19pbXhfcmVnX3NsYXZlLA0KPiA+ICsJLnVucmVnX3NsYXZlCT0gaTJjX2lteF91bnJlZ19zbGF2 ZSwNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdGF0aWMgaW50IGkyY19pbXhfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikgQEAgLTEyMDUsMTANCj4gPiArMTM5Myw3IEBAIHN0YXRpYyBp bnQgaTJjX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+ICAJY2xr X25vdGlmaWVyX3JlZ2lzdGVyKGkyY19pbXgtPmNsaywgJmkyY19pbXgtPmNsa19jaGFuZ2VfbmIp Ow0KPiA+ICAJaTJjX2lteF9zZXRfY2xrKGkyY19pbXgsIGNsa19nZXRfcmF0ZShpMmNfaW14LT5j bGspKTsNCj4gPg0KPiA+IC0JLyogU2V0IHVwIGNoaXAgcmVnaXN0ZXJzIHRvIGRlZmF1bHRzICov DQo+ID4gLQlpbXhfaTJjX3dyaXRlX3JlZyhpMmNfaW14LT5od2RhdGEtPmkyY3JfaWVuX29wY29k ZSBeIEkyQ1JfSUVOLA0KPiA+IC0JCQlpMmNfaW14LCBJTVhfSTJDX0kyQ1IpOw0KPiA+IC0JaW14 X2kyY193cml0ZV9yZWcoaTJjX2lteC0+aHdkYXRhLT5pMnNyX2Nscl9vcGNvZGUsIGkyY19pbXgs DQo+IElNWF9JMkNfSTJTUik7DQo+ID4gKwlpMmNfaW14X3Jlc2V0X3JlZ3MoaTJjX2lteCk7DQo+ ID4NCj4gPiAgCS8qIEluaXQgb3B0aW9uYWwgYnVzIHJlY292ZXJ5IGZ1bmN0aW9uICovDQo+ID4g IAlyZXQgPSBpMmNfaW14X2luaXRfcmVjb3ZlcnlfaW5mbyhpMmNfaW14LCBwZGV2KTsNCj4gPiAt LQ0KPiA+IDIuMTcuMQ0KPiA+DQo+ID4NCj4gDQo+IFJlZ2FyZHMsDQo+IE9sZWtzaWoNCj4gDQo+ IC0tDQo+IFBlbmd1dHJvbml4IGUuSy4gICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+IHwN Cj4gU3RldWVyd2FsZGVyIFN0ci4gMjEgICAgICAgICAgICAgICAgICAgICAgIHwgaHR0cDovL3d3 dy5wZW5ndXRyb25peC5kZS8NCj4gfA0KPiAzMTEzNyBIaWxkZXNoZWltLCBHZXJtYW55ICAgICAg ICAgICAgICAgICAgfCBQaG9uZToNCj4gKzQ5LTUxMjEtMjA2OTE3LTAgICAgfA0KPiBBbXRzZ2Vy aWNodCBIaWxkZXNoZWltLCBIUkEgMjY4NiAgICAgICAgICAgfCBGYXg6DQo+ICs0OS01MTIxLTIw NjkxNy01NTU1IHwNCg==