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=-9.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 E2721C433DF for ; Fri, 9 Oct 2020 23:57:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 85F47207CD for ; Fri, 9 Oct 2020 23:57:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=intel.onmicrosoft.com header.i=@intel.onmicrosoft.com header.b="LqJbzUjx" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728582AbgJIX5c (ORCPT ); Fri, 9 Oct 2020 19:57:32 -0400 Received: from mga07.intel.com ([134.134.136.100]:11052 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728431AbgJIXxe (ORCPT ); Fri, 9 Oct 2020 19:53:34 -0400 IronPort-SDR: wQavk3zFgWuRf8IVRA+j9iQYm7iDKTWYCmFKDiBLMpRc6dwIXLfmiuJQgDe6biTwH3nC3abdPH 3p2ROCJExzsw== X-IronPort-AV: E=McAfee;i="6000,8403,9769"; a="229732996" X-IronPort-AV: E=Sophos;i="5.77,356,1596524400"; d="scan'208";a="229732996" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 16:51:54 -0700 IronPort-SDR: 6ldq2pWp3ZvvDzOb4InihEnUcSDaTWfWuFrF53BIGjNxGx5XbABAx36lusU0zAKMyIUaNugH1D 1bZbfxjHevbQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,356,1596524400"; d="scan'208";a="298592742" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by fmsmga008.fm.intel.com with ESMTP; 09 Oct 2020 16:51:53 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 9 Oct 2020 16:51:46 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 9 Oct 2020 16:51:46 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 9 Oct 2020 16:51:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SQODH7UnUMeR/D0/oos4M8izxOOmeyvd9xxfGUW17LIWMfxglFeae3+GzxOMW4ZVky8KQuofflPMzUanPHtQ0x82SJNZqqqeN6vxBNX1zLBfmZHhiYM9+J3popDZKOkkOL2/Oe0cMj/Sl4nS33ErvHRzqst8wMRFV8K4s8RidVRH2GeHCNv1lbefhqu1xSKhQf6+LOyWgnXlFTbIxKb3CV5qcOh4jyjGJuwueNGkCk3tl+gLF5BXsNwFybv897+OQPJF1+ONo/hE6PfuRR5m1nNId7G1hbSKjOsXuGKKdbw8Ivd8PIQTGrGwnqkC3eFswXZ4pbl8wZkABqUm2oE2rg== 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=bPYp3M1Kd0MM5FGPo6Gfb1k9IjvLBvJzABd/N3oT0SE=; b=OKiy8xlDSsbzUPnTinQOOgxQuABDPg67nKOnGVCZ7VA3SSTg4gUNeDcU/Or0Hu65hP/71GojQIGWTGdnN/BOdY32qfewku79Qzzp9k9Uqt172pQMHIdFiPHrjrgmQn+nWhwdw0iEKZPzwM6PeeF2b7kI2EeFo3pnc432tXkcbZxeIi/hIJERYU11bkc6+WncxBVJGbtltCNg0ojMNl3U4mkeBB3ndb4thOC1e2xunfSdx8yGRWvSuwWE3x9QK48ftHONA46w6DeTK9C/r9M5yWbWwSufvxQVjP32JHrnXXlelm5lw8HM5PO73+MljoxJ0uZYgv9ME7GZQXOp0sIliw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bPYp3M1Kd0MM5FGPo6Gfb1k9IjvLBvJzABd/N3oT0SE=; b=LqJbzUjxeHq1MJ2y/HL6utoxsslTP+oGBdtbmSDDtJPOBvuS/LcDx3RtGcNGFY1klGwBtTE/8Tav335LOWXKDWVmQUy3WCSOuI/hkKsbHg2ms9VehLwqv2gcQb8A+K+x9ch3PNnKz6YhG148E9f2DvGnkhEFDGbriXmlNrllIlQ= Received: from MW3PR11MB4699.namprd11.prod.outlook.com (2603:10b6:303:54::13) by MWHPR11MB1293.namprd11.prod.outlook.com (2603:10b6:300:1e::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.23; Fri, 9 Oct 2020 23:51:39 +0000 Received: from MW3PR11MB4699.namprd11.prod.outlook.com ([fe80::7cac:24ae:6d36:aa90]) by MW3PR11MB4699.namprd11.prod.outlook.com ([fe80::7cac:24ae:6d36:aa90%4]) with mapi id 15.20.3455.028; Fri, 9 Oct 2020 23:51:39 +0000 From: "Kelley, Sean V" To: "helgaas@kernel.org" CC: "Zhuo, Qiuxu" , "Jonathan.Cameron@huawei.com" , "Kuppuswamy, Sathyanarayanan" , "Raj, Ashok" , "linux-kernel@vger.kernel.org" , "Luck, Tony" , "Wysocki, Rafael J" , "linux-pci@vger.kernel.org" , "seanvk.dev@oregontracks.org" , "bhelgaas@google.com" Subject: Re: [PATCH v8 11/14] PCI/RCEC: Add RCiEP's linked RCEC to AER/ERR Thread-Topic: [PATCH v8 11/14] PCI/RCEC: Add RCiEP's linked RCEC to AER/ERR Thread-Index: AQHWnmW4aqtbxhl8YU2ALieyuO2d2KmPyfCAgAAKXwCAABz+AA== Date: Fri, 9 Oct 2020 23:51:39 +0000 Message-ID: <96d2cf35723265ce189ba2053fe4c347a816e9a4.camel@intel.com> References: <20201009213011.GA3504871@bjorn-Precision-5520> <56145784-8C7B-4206-B172-997F8D8C97D5@intel.com> In-Reply-To: <56145784-8C7B-4206-B172-997F8D8C97D5@intel.com> Reply-To: "Kelley, Sean V" Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5 authentication-results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=intel.com; x-originating-ip: [2601:1c0:6a00:1804:88d3:6720:250a:6d10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d5463ca5-7bb2-4e4c-06a6-08d86cae444c x-ms-traffictypediagnostic: MWHPR11MB1293: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: f7Rm4BmCEMncqZFilhP9jodvR7nUSRWCNPAcCcLqaiWNcD7DYJZHI/i05TtU9gOh+JVJQBlxyN4aw19HW1OU4HcpYKyetcHy+xxF5hJHOhdrTom6lLfs26UuARRSif6yipC4O0u6pHlRQXddXZ7NQn5Cl99wLUOL/OmdV2ugdUJWNeufeYubjRSt+bSyHeTm0BCoia4GCz9IjyL2VD6twbcqloYqOs2CGKG5S8dahtACAsKTG5EPMzsdvlH4VrvocgIirGBw3uwvxrg6Ph3PSOgGbe2mCauS3PNc0HFz9HmGN7s1CguDRAPWXBotyyzLJMHUgScsP9CYyTmxW4l5HA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW3PR11MB4699.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(376002)(346002)(396003)(136003)(39860400002)(66476007)(53546011)(6506007)(6512007)(2906002)(6486002)(30864003)(83380400001)(76116006)(3450700001)(66946007)(5660300002)(71200400001)(64756008)(66446008)(478600001)(316002)(2616005)(186003)(86362001)(54906003)(66556008)(36756003)(4326008)(8676002)(6916009)(8936002)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: 33KtLYhKwULl0kSIvlR4pfzaYEC5A6ZvpEHjPHg9uLHOY6FUDRfha2i4fA/YnBYyR89jE2o7/vZMGEVFnkuXQNNU6E4CuM8j2XePiqfX6e0irs82VY8KK7rm/KDotZxIuUOs4OuNiVdeU7nTXANcwHt0TVVuibouQpk8f1R1ved4Xg89W2n11IKdQHN593xGLaeqk4pbE1Kr9iPdG4qlWtfVE14AQr3QqkrFX8lkCrQ3tDoAudAZv8eXso+8Z3G15EIP7bi4AIrJITj85Z60ulgyvlgtmq6dRbXaqY0lylMAqZlxf1nN8yHO7AeKb55LEbrHayVK+MV1MYMKtDCiSv3VoWt8mq0o5XeDhMl5wxdG32zh6YmBn4raAXSBDWhpLZnBzDiTiuo7QqEWcyiB3JACWnYdmvOdvHbh8zsSvrDzNoex/MynuBnno3ILwmkeWoCqk7z3m7Oy1u0F8V8xomVIymCBoOUcE6/Ymd4PIUDOaEFcKPqwJHUrL9j8gK5pjVjylUO1axhVeOEcQYKJ5iD8g5mtJLMpyxCsPFI8f1LEihMrdYAA5u7GIfXCTsDepLDosRYESmRbED0J3+3rx1jH5NstRvYKyC5tiQ+oYDWG6yt6KfXndoxaadLFyw/0ep2ncp6vyduxsZiTeQYs3rj02oAzkx5t0hYw0KUfu/+IYZ3jJcNglKzBm/VzxnZxIMTEbAefoR2OB35mpH0pXg== Content-Type: text/plain; charset="utf-8" Content-ID: <44D257A6AF261A4FA9B1719AF3400FB6@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW3PR11MB4699.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5463ca5-7bb2-4e4c-06a6-08d86cae444c X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2020 23:51:39.6288 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: coCph+REZo1wSnNgpRlPWFjZd+NlFqOKIKCaflALVvotPPMnEeYRvZYvIvXswsk9Luda1ggyzQmCmUTyJZt1fA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1293 X-OriginatorOrg: intel.com Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gRnJpLCAyMDIwLTEwLTA5IGF0IDE1OjA3IC0wNzAwLCBTZWFuIFYgS2VsbGV5IHdyb3RlOg0K PiBPbiA5IE9jdCAyMDIwLCBhdCAxNDozMCwgQmpvcm4gSGVsZ2FhcyB3cm90ZToNCj4gDQo+ID4g T24gRnJpLCBPY3QgMDksIDIwMjAgYXQgMTI6NTc6NDVQTSAtMDUwMCwgQmpvcm4gSGVsZ2FhcyB3 cm90ZToNCj4gPiA+IE9uIEZyaSwgT2N0IDAyLCAyMDIwIGF0IDExOjQ3OjMyQU0gLTA3MDAsIFNl YW4gViBLZWxsZXkgd3JvdGU6DQo+ID4gPiA+IEZyb206IFFpdXh1IFpodW8gPHFpdXh1LnpodW9A aW50ZWwuY29tPg0KPiA+ID4gPiANCj4gPiA+ID4gV2hlbiBhdHRlbXB0aW5nIGVycm9yIHJlY292 ZXJ5IGZvciBhbiBSQ2lFUCBhc3NvY2lhdGVkIHdpdGggYW4NCj4gPiA+ID4gUkNFQyANCj4gPiA+ ID4gZGV2aWNlLA0KPiA+ID4gPiB0aGVyZSBuZWVkcyB0byBiZSBhIHdheSB0byB1cGRhdGUgdGhl IFJvb3QgRXJyb3IgU3RhdHVzLCB0aGUgDQo+ID4gPiA+IFVuY29ycmVjdGFibGUNCj4gPiA+ID4g RXJyb3IgU3RhdHVzIGFuZCB0aGUgVW5jb3JyZWN0YWJsZSBFcnJvciBTZXZlcml0eSBvZiB0aGUN Cj4gPiA+ID4gcGFyZW50IA0KPiA+ID4gPiBSQ0VDLg0KPiA+ID4gPiBJbiBzb21lIG5vbi1uYXRp dmUgY2FzZXMgaW4gd2hpY2ggdGhlcmUgaXMgbm8gT1MgdmlzaWJsZSBkZXZpY2UNCj4gPiA+ID4g YXNzb2NpYXRlZCB3aXRoIHRoZSBSQ2lFUCwgdGhlcmUgaXMgbm90aGluZyB0byBhY3QgdXBvbiBh cyB0aGUgDQo+ID4gPiA+IGZpcm13YXJlDQo+ID4gPiA+IGlzIGFjdGluZyBiZWZvcmUgdGhlIE9T LiBTbyBhZGQgaGFuZGxpbmcgZm9yIHRoZSBsaW5rZWQgJ3JjZWMnDQo+ID4gPiA+IGluIA0KPiA+ ID4gPiBBRVIvRVJSDQo+ID4gPiA+IHdoaWxlIHRha2luZyBpbnRvIGFjY291bnQgbm9uLW5hdGl2 ZSBjYXNlcy4NCj4gPiA+ID4gDQo+ID4gPiA+IENvLWRldmVsb3BlZC1ieTogU2VhbiBWIEtlbGxl eSA8c2Vhbi52LmtlbGxleUBpbnRlbC5jb20+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFNlYW4g ViBLZWxsZXkgPHNlYW4udi5rZWxsZXlAaW50ZWwuY29tPg0KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5 OiBRaXV4dSBaaHVvIDxxaXV4dS56aHVvQGludGVsLmNvbT4NCj4gPiA+ID4gUmV2aWV3ZWQtYnk6 IEpvbmF0aGFuIENhbWVyb24gPEpvbmF0aGFuLkNhbWVyb25AaHVhd2VpLmNvbT4NCj4gPiA+ID4g LS0tDQo+ID4gPiA+ICBkcml2ZXJzL3BjaS9wY2llL2Flci5jIHwgIDkgKysrKystLS0tDQo+ID4g PiA+ICBkcml2ZXJzL3BjaS9wY2llL2Vyci5jIHwgMzkgKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0NCj4gPiA+ID4gLS0tLS0tLQ0KPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAzMyBp bnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkNCj4gPiA+ID4gDQo+ID4gPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3BjaS9wY2llL2Flci5jIGIvZHJpdmVycy9wY2kvcGNpZS9hZXIuYw0KPiA+ ID4gPiBpbmRleCA2NWRmZjVmMzQ1N2EuLmRjY2RiYTYwYjVkOSAxMDA2NDQNCj4gPiA+ID4gLS0t IGEvZHJpdmVycy9wY2kvcGNpZS9hZXIuYw0KPiA+ID4gPiArKysgYi9kcml2ZXJzL3BjaS9wY2ll L2Flci5jDQo+ID4gPiA+IEBAIC0xMzU4LDE3ICsxMzU4LDE4IEBAIHN0YXRpYyBpbnQgYWVyX3By b2JlKHN0cnVjdA0KPiA+ID4gPiBwY2llX2RldmljZSANCj4gPiA+ID4gKmRldikNCj4gPiA+ID4g IHN0YXRpYyBwY2lfZXJzX3Jlc3VsdF90IGFlcl9yb290X3Jlc2V0KHN0cnVjdCBwY2lfZGV2ICpk ZXYpDQo+ID4gPiA+ICB7DQo+ID4gPiA+ICAJaW50IGFlciA9IGRldi0+YWVyX2NhcDsNCj4gPiA+ ID4gKwlpbnQgcmMgPSAwOw0KPiA+ID4gPiAgCXUzMiByZWczMjsNCj4gPiA+ID4gLQlpbnQgcmM7 DQo+ID4gPiA+IC0NCj4gPiA+ID4gDQo+ID4gPiA+ICAJLyogRGlzYWJsZSBSb290J3MgaW50ZXJy dXB0IGluIHJlc3BvbnNlIHRvIGVycm9yDQo+ID4gPiA+IG1lc3NhZ2VzICovDQo+ID4gPiA+ICAJ cGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgYWVyICsgUENJX0VSUl9ST09UX0NPTU1BTkQsDQo+ ID4gPiA+ICZyZWczMik7DQo+ID4gPiA+ICAJcmVnMzIgJj0gflJPT1RfUE9SVF9JTlRSX09OX01F U0dfTUFTSzsNCj4gPiA+ID4gIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgYWVyICsgUENJ X0VSUl9ST09UX0NPTU1BTkQsDQo+ID4gPiA+IHJlZzMyKTsNCj4gPiA+ID4gDQo+ID4gPiA+IC0J cmMgPSBwY2lfYnVzX2Vycm9yX3Jlc2V0KGRldik7DQo+ID4gPiA+IC0JcGNpX2luZm8oZGV2LCAi Um9vdCBQb3J0IGxpbmsgaGFzIGJlZW4gcmVzZXRcbiIpOw0KPiA+ID4gPiArCWlmIChwY2lfcGNp ZV90eXBlKGRldikgIT0gUENJX0VYUF9UWVBFX1JDX0VDKSB7DQo+ID4gPiA+ICsJCXJjID0gcGNp X2J1c19lcnJvcl9yZXNldChkZXYpOw0KPiA+ID4gPiArCQlwY2lfaW5mbyhkZXYsICJSb290IFBv cnQgbGluayBoYXMgYmVlbg0KPiA+ID4gPiByZXNldFxuIik7DQo+ID4gPiA+ICsJfQ0KPiA+ID4g PiANCj4gPiA+ID4gIAkvKiBDbGVhciBSb290IEVycm9yIFN0YXR1cyAqLw0KPiA+ID4gPiAgCXBj aV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIGFlciArIFBDSV9FUlJfUk9PVF9TVEFUVVMsDQo+ID4g PiA+ICZyZWczMik7DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2llL2Vyci5j IGIvZHJpdmVycy9wY2kvcGNpZS9lcnIuYw0KPiA+ID4gPiBpbmRleCAzOGFiZDc5ODQ5OTYuLjk1 NmFkNGM4NmQ1MyAxMDA2NDQNCj4gPiA+ID4gLS0tIGEvZHJpdmVycy9wY2kvcGNpZS9lcnIuYw0K PiA+ID4gPiArKysgYi9kcml2ZXJzL3BjaS9wY2llL2Vyci5jDQo+ID4gPiA+IEBAIC0xNDksNyAr MTQ5LDggQEAgc3RhdGljIGludCByZXBvcnRfcmVzdW1lKHN0cnVjdCBwY2lfZGV2DQo+ID4gPiA+ ICpkZXYsIA0KPiA+ID4gPiB2b2lkICpkYXRhKQ0KPiA+ID4gPiAgLyoqDQo+ID4gPiA+ICAgKiBw Y2lfd2Fsa19icmlkZ2UgLSB3YWxrIGJyaWRnZXMgcG90ZW50aWFsbHkgQUVSIGFmZmVjdGVkDQo+ ID4gPiA+ICAgKiBAYnJpZGdlICAgYnJpZGdlIHdoaWNoIG1heSBiZSBhbiBSQ0VDIHdpdGggYXNz b2NpYXRlZA0KPiA+ID4gPiBSQ2lFUHMsDQo+ID4gPiA+IC0gKiAgICAgICAgICAgYW4gUkNpRVAg YXNzb2NpYXRlZCB3aXRoIGFuIFJDRUMsIG9yIGEgUG9ydC4NCj4gPiA+ID4gKyAqICAgICAgICAg ICBvciBhIFBvcnQuDQo+ID4gPiA+ICsgKiBAZGV2ICAgICAgYW4gUkNpRVAgbGFja2luZyBhbiBh c3NvY2lhdGVkIFJDRUMuDQo+ID4gPiA+ICAgKiBAY2IgICAgICAgY2FsbGJhY2sgdG8gYmUgY2Fs bGVkIGZvciBlYWNoIGRldmljZSBmb3VuZA0KPiA+ID4gPiAgICogQHVzZXJkYXRhIGFyYml0cmFy eSBwb2ludGVyIHRvIGJlIHBhc3NlZCB0byBjYWxsYmFjay4NCj4gPiA+ID4gICAqDQo+ID4gPiA+ IEBAIC0xNjAsMTMgKzE2MSwyMCBAQCBzdGF0aWMgaW50IHJlcG9ydF9yZXN1bWUoc3RydWN0IHBj aV9kZXYNCj4gPiA+ID4gKmRldiwgDQo+ID4gPiA+IHZvaWQgKmRhdGEpDQo+ID4gPiA+ICAgKiBJ ZiB0aGUgZGV2aWNlIHByb3ZpZGVkIGhhcyBubyBzdWJvcmRpbmF0ZSBidXMsIGNhbGwgdGhlDQo+ ID4gPiA+IHByb3ZpZGVkDQo+ID4gPiA+ICAgKiBjYWxsYmFjayBvbiB0aGUgZGV2aWNlIGl0c2Vs Zi4NCj4gPiA+ID4gICAqLw0KPiA+ID4gPiAtc3RhdGljIHZvaWQgcGNpX3dhbGtfYnJpZGdlKHN0 cnVjdCBwY2lfZGV2ICpicmlkZ2UsIGludCANCj4gPiA+ID4gKCpjYikoc3RydWN0IHBjaV9kZXYg Kiwgdm9pZCAqKSwNCj4gPiA+ID4gK3N0YXRpYyB2b2lkIHBjaV93YWxrX2JyaWRnZShzdHJ1Y3Qg cGNpX2RldiAqYnJpZGdlLCBzdHJ1Y3QNCj4gPiA+ID4gcGNpX2RldiANCj4gPiA+ID4gKmRldiwN Cj4gPiA+ID4gKwkJCSAgICBpbnQgKCpjYikoc3RydWN0IHBjaV9kZXYgKiwgdm9pZA0KPiA+ID4g PiAqKSwNCj4gPiA+ID4gIAkJCSAgICB2b2lkICp1c2VyZGF0YSkNCj4gPiA+ID4gIHsNCj4gPiA+ ID4gLQlpZiAoYnJpZGdlLT5zdWJvcmRpbmF0ZSkNCj4gPiA+ID4gKwkvKg0KPiA+ID4gPiArCSAq IEluIGEgbm9uLW5hdGl2ZSBjYXNlIHdoZXJlIHRoZXJlIGlzIG5vIE9TLXZpc2libGUNCj4gPiA+ ID4gcmVwb3J0aW5nDQo+ID4gPiA+ICsJICogZGV2aWNlIHRoZSBicmlkZ2Ugd2lsbCBiZSBOVUxM LCBpLmUuLCBubyBSQ0VDLCBubw0KPiA+ID4gPiBQT1JULg0KPiA+ID4gPiArCSAqLw0KPiA+ID4g PiArCWlmIChicmlkZ2UgJiYgYnJpZGdlLT5zdWJvcmRpbmF0ZSkNCj4gPiA+ID4gIAkJcGNpX3dh bGtfYnVzKGJyaWRnZS0+c3Vib3JkaW5hdGUsIGNiLA0KPiA+ID4gPiB1c2VyZGF0YSk7DQo+ID4g PiA+IC0JZWxzZQ0KPiA+ID4gPiArCWVsc2UgaWYgKGJyaWRnZSkNCj4gPiA+ID4gIAkJY2IoYnJp ZGdlLCB1c2VyZGF0YSk7DQo+ID4gPiA+ICsJZWxzZQ0KPiA+ID4gPiArCQljYihkZXYsIHVzZXJk YXRhKTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4gDQo+ID4gPiA+ICBzdGF0aWMgcGNpX2Vyc19yZXN1 bHRfdCBmbHJfb25fcmNpZXAoc3RydWN0IHBjaV9kZXYgKmRldikNCj4gPiA+ID4gQEAgLTE5Niwx NiArMjA0LDI1IEBAIHBjaV9lcnNfcmVzdWx0X3QgcGNpZV9kb19yZWNvdmVyeShzdHJ1Y3QgDQo+ ID4gPiA+IHBjaV9kZXYgKmRldiwNCj4gPiA+ID4gIAl0eXBlID0gcGNpX3BjaWVfdHlwZShkZXYp Ow0KPiA+ID4gPiAgCWlmICh0eXBlID09IFBDSV9FWFBfVFlQRV9ST09UX1BPUlQgfHwNCj4gPiA+ ID4gIAkgICAgdHlwZSA9PSBQQ0lfRVhQX1RZUEVfRE9XTlNUUkVBTSB8fA0KPiA+ID4gPiAtCSAg ICB0eXBlID09IFBDSV9FWFBfVFlQRV9SQ19FQyB8fA0KPiA+ID4gPiAtCSAgICB0eXBlID09IFBD SV9FWFBfVFlQRV9SQ19FTkQpDQo+ID4gPiA+ICsJICAgIHR5cGUgPT0gUENJX0VYUF9UWVBFX1JD X0VDKQ0KPiA+ID4gPiAgCQlicmlkZ2UgPSBkZXY7DQo+ID4gPiA+ICsJZWxzZSBpZiAodHlwZSA9 PSBQQ0lfRVhQX1RZUEVfUkNfRU5EKQ0KPiA+ID4gPiArCQlicmlkZ2UgPSBkZXYtPnJjZWM7DQo+ ID4gPiA+ICAJZWxzZQ0KPiA+ID4gPiAgCQlicmlkZ2UgPSBwY2lfdXBzdHJlYW1fYnJpZGdlKGRl dik7DQo+ID4gPiA+IA0KPiA+ID4gPiAgCXBjaV9kYmcoZGV2LCAiYnJvYWRjYXN0IGVycm9yX2Rl dGVjdGVkIG1lc3NhZ2VcbiIpOw0KPiA+ID4gPiAgCWlmIChzdGF0ZSA9PSBwY2lfY2hhbm5lbF9p b19mcm96ZW4pIHsNCj4gPiA+ID4gLQkJcGNpX3dhbGtfYnJpZGdlKGJyaWRnZSwgcmVwb3J0X2Zy b3plbl9kZXRlY3RlZCwNCj4gPiA+ID4gJnN0YXR1cyk7DQo+ID4gPiA+ICsJCXBjaV93YWxrX2Jy aWRnZShicmlkZ2UsIGRldiwNCj4gPiA+ID4gcmVwb3J0X2Zyb3plbl9kZXRlY3RlZCwgJnN0YXR1 cyk7DQo+ID4gPiA+ICAJCWlmICh0eXBlID09IFBDSV9FWFBfVFlQRV9SQ19FTkQpIHsNCj4gPiA+ ID4gKwkJCS8qDQo+ID4gPiA+ICsJCQkgKiBUaGUgY2FsbGJhY2sgb25seSBjbGVhcnMgdGhlIFJv b3QNCj4gPiA+ID4gRXJyb3IgU3RhdHVzDQo+ID4gPiA+ICsJCQkgKiBvZiB0aGUgUkNFQyAoc2Vl IGFlci5jKS4gT25seQ0KPiA+ID4gPiBwZXJmb3JtIHRoaXMgZm9yIHRoZQ0KPiA+ID4gPiArCQkJ ICogbmF0aXZlIGNhc2UsIGkuZS4sIGFuIFJDRUMgaXMNCj4gPiA+ID4gcHJlc2VudC4NCj4gPiA+ ID4gKwkJCSAqLw0KPiA+ID4gPiArCQkJaWYgKGJyaWRnZSkNCj4gPiA+ID4gKwkJCQlyZXNldF9z dWJvcmRpbmF0ZV9kZXZpY2VzKGJyaWRnDQo+ID4gPiA+IGUpOw0KPiA+ID4gDQo+ID4gPiBIZWxw IG1lIHVuZGVyc3RhbmQgdGhpcy4gIFRoZXJlIGFyZSBsb3RzIG9mIGNhbGxiYWNrcyBpbiB0aGlz IA0KPiA+ID4gcGljdHVyZSwNCj4gPiA+IGJ1dCBJIGd1ZXNzIHRoaXMgImNhbGxiYWNrIG9ubHkg Y2xlYXJzIFJvb3QgRXJyb3IgU3RhdHVzIiBtdXN0DQo+ID4gPiByZWZlcg0KPiA+ID4gdG8gYWVy X3Jvb3RfcmVzZXQoKSwgaS5lLiwgdGhlIHJlc2V0X3N1Ym9yZGluYXRlX2RldmljZXMgcG9pbnRl cj8NCj4gPiA+IA0KPiA+ID4gT2YgY291cnNlLCB0aGUgY2FsbGVyIG9mIHBjaWVfZG9fcmVjb3Zl cnkoKSBzdXBwbGllZCB0aGF0DQo+ID4gPiBwb2ludGVyLg0KPiA+ID4gQW5kIHdlIGNhbiBpbmZl ciB0aGF0IGl0IG11c3QgYmUgYWVyX3Jvb3RfcmVzZXQoKSwgbm90DQo+ID4gPiBkcGNfcmVzZXRf bGluaygpLCBiZWNhdXNlIFJDRUNzIGFuZCBSQ2lFUHMgYXJlIG5vdCBhbGxvd2VkIHRvDQo+ID4g PiBpbXBsZW1lbnQgRFBDLg0KPiA+ID4gDQo+ID4gPiBJIHdpc2ggd2UgZGlkbid0IGhhdmUgZWl0 aGVyIHRoaXMgYXNzdW1wdGlvbiBhYm91dCB3aGF0DQo+ID4gPiByZXNldF9zdWJvcmRpbmF0ZV9k ZXZpY2VzIHBvaW50cyB0bywgb3IgdGhlIGFzc3VtcHRpb24gYWJvdXQgd2hhdA0KPiA+ID4gYWVy X3Jvb3RfcmVzZXQoKSBkb2VzLiAgVGhleSBib3RoIHNlZW0gYSBsaXR0bGUgYml0IHRlbnVvdXMu DQo+ID4gPiANCj4gPiA+IFdlIGFscmVhZHkgbWFkZSBhZXJfcm9vdF9yZXNldCgpIHNtYXJ0IGVu b3VnaCB0byBjaGVjayBmb3INCj4gPiA+IFJDRUNzLiAgDQo+ID4gPiBDYW4NCj4gPiA+IHdlIHB1 dCB0aGUgRkxSIHRoZXJlLCB0b28/ICBUaGVuIHdlIHdvdWxkbid0IGhhdmUgdGhpcyB3ZWlyZCAN Cj4gPiA+IHNpdHVhdGlvbg0KPiA+ID4gd2hlcmUgcmVzZXRfc3Vib3JkaW5hdGVfZGV2aWNlcygp IGRvZXMgYSByZXNldCBhbmQgY2xlYXJzIGVycm9yDQo+ID4gPiBzdGF0dXMsIEVYQ0VQVCBmb3Ig dGhpcyBjYXNlIHdoZXJlIGl0IG9ubHkgY2xlYXJzIGVycm9yIHN0YXR1cw0KPiA+ID4gYW5kIHdl DQo+ID4gPiBkbyB0aGUgcmVzZXQgaGVyZT8NCj4gPiANCj4gPiBKdXN0IGFzIGFuIGV4YW1wbGUg dG8gbWFrZSB0aGlzIGNvbmNyZXRlLiAgRG9lc24ndCBldmVuIGNvbXBpbGUuDQo+IA0KPiBPa2F5 LCBJIHRyaWVkIHNvbWV0aGluZyBzaW1pbGFyLiAgQ29tbWVudHMgYmVsb3c6DQo+IA0KPiA+IA0K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9wY2llL2Flci5jIGIvZHJpdmVycy9wY2kvcGNp ZS9hZXIuYw0KPiA+IGluZGV4IGQ2OTI3ZTY1MzVlNS4uZTM4OWRiN2NiYmE2IDEwMDY0NA0KPiA+ IC0tLSBhL2RyaXZlcnMvcGNpL3BjaWUvYWVyLmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9wY2ll L2Flci5jDQo+ID4gQEAgLTEzNzIsMjggKzEzNzIsNDUgQEAgc3RhdGljIGludCBhZXJfcHJvYmUo c3RydWN0IHBjaWVfZGV2aWNlDQo+ID4gKmRldikNCj4gPiAgICovDQo+ID4gIHN0YXRpYyBwY2lf ZXJzX3Jlc3VsdF90IGFlcl9yb290X3Jlc2V0KHN0cnVjdCBwY2lfZGV2ICpkZXYpDQo+ID4gIHsN Cj4gPiAtCWludCBhZXIgPSBkZXYtPmFlcl9jYXA7DQo+ID4gKwlpbnQgdHlwZSA9IHBjaV9wY2ll X3R5cGUoZGV2KTsNCj4gPiArCXN0cnVjdCBwY2lfZGV2ICpyb290Ow0KPiA+ICsJaW50IGFlciA9 IDA7DQo+ID4gIAlpbnQgcmMgPSAwOw0KPiA+ICAJdTMyIHJlZzMyOw0KPiA+IA0KPiA+IC0JLyog RGlzYWJsZSBSb290J3MgaW50ZXJydXB0IGluIHJlc3BvbnNlIHRvIGVycm9yIG1lc3NhZ2VzICov DQo+ID4gLQlwY2lfcmVhZF9jb25maWdfZHdvcmQoZGV2LCBhZXIgKyBQQ0lfRVJSX1JPT1RfQ09N TUFORCwgJnJlZzMyKTsNCj4gPiAtCXJlZzMyICY9IH5ST09UX1BPUlRfSU5UUl9PTl9NRVNHX01B U0s7DQo+ID4gLQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgYWVyICsgUENJX0VSUl9ST09U X0NPTU1BTkQsIHJlZzMyKTsNCj4gPiArCWlmICh0eXBlID09IFBDSV9FWFBfVFlQRV9SQ19FTkQp DQo+ID4gKwkJcm9vdCA9IGRldi0+cmNlYzsNCj4gPiArCWVsc2UNCj4gPiArCQlyb290ID0gZGV2 Ow0KPiA+ICsNCj4gPiArCWlmIChyb290KQ0KPiA+ICsJCWFlciA9IHJvb3QtPmFlcl9jYXA7DQo+ IA0KPiBFeGNlcHQgaGVyZSBkZXYtPnJjZWMgbWF5IGJlIE5VTEwgZm9yIHRoZSBub24tbmF0aXZl IGNhc2UuIFNvIEkgaGFkDQo+IGEgDQo+IGdvdG8gbGFiZWwgdG8gYnlwYXNzIHdoYXQgZm9sbG93 cy4gIEkgbGVmdCB0aGUgRkxSIGluIGVyci5jLg0KPiANCj4gDQo+ID4gLQlpZiAocGNpX3BjaWVf dHlwZShkZXYpICE9IFBDSV9FWFBfVFlQRV9SQ19FQykgew0KPiA+ICsJaWYgKGFlcikgew0KPiA+ ICsJCS8qIERpc2FibGUgUm9vdCdzIGludGVycnVwdCBpbiByZXNwb25zZSB0byBlcnJvcg0KPiA+ IG1lc3NhZ2VzICovDQo+ID4gKwkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKHJvb3QsIGFlciArIFBD SV9FUlJfUk9PVF9DT01NQU5ELA0KPiA+ICZyZWczMik7DQo+ID4gKwkJcmVnMzIgJj0gflJPT1Rf UE9SVF9JTlRSX09OX01FU0dfTUFTSzsNCj4gPiArCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKHJv b3QsIGFlciArDQo+ID4gUENJX0VSUl9ST09UX0NPTU1BTkQsIHJlZzMyKTsNCj4gPiArCX0NCj4g PiArDQo+ID4gKwlpZiAodHlwZSA9PSBQQ0lfRVhQX1RZUEVfUkNfRUMgfHwgdHlwZSA9PSBQQ0lf RVhQX1RZUEVfUkNfRU5EKQ0KPiA+IHsNCj4gPiArCQlyYyA9IGZscl9vbl9yY2llcChkZXYpOw0K PiA+ICsJCXBjaV9pbmZvKGRldiwgImhhcyBiZWVuIHJlc2V0ICglZClcbiIsIHJjKTsNCj4gPiAr CX0gZWxzZSB7DQo+ID4gIAkJcmMgPSBwY2lfYnVzX2Vycm9yX3Jlc2V0KGRldik7DQo+ID4gLQkJ cGNpX2luZm8oZGV2LCAiUm9vdCBQb3J0IGxpbmsgaGFzIGJlZW4gcmVzZXRcbiIpOw0KPiA+ICsJ CXBjaV9pbmZvKGRldiwgIlJvb3QgUG9ydCBsaW5rIGhhcyBiZWVuIHJlc2V0ICglZClcbiIsDQo+ ID4gcmMpOw0KPiA+ICAJfQ0KPiA+IA0KPiA+IC0JLyogQ2xlYXIgUm9vdCBFcnJvciBTdGF0dXMg Ki8NCj4gPiAtCXBjaV9yZWFkX2NvbmZpZ19kd29yZChkZXYsIGFlciArIFBDSV9FUlJfUk9PVF9T VEFUVVMsICZyZWczMik7DQo+ID4gLQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgYWVyICsg UENJX0VSUl9ST09UX1NUQVRVUywgcmVnMzIpOw0KPiA+ICsJaWYgKGFlcikgew0KPiA+ICsJCS8q IENsZWFyIFJvb3QgRXJyb3IgU3RhdHVzICovDQo+ID4gKwkJcGNpX3JlYWRfY29uZmlnX2R3b3Jk KHJvb3QsIGFlciArIFBDSV9FUlJfUk9PVF9TVEFUVVMsDQo+ID4gJnJlZzMyKTsNCj4gPiArCQlw Y2lfd3JpdGVfY29uZmlnX2R3b3JkKHJvb3QsIGFlciArIFBDSV9FUlJfUk9PVF9TVEFUVVMsDQo+ ID4gcmVnMzIpOw0KPiA+IA0KPiA+IC0JLyogRW5hYmxlIFJvb3QgUG9ydCdzIGludGVycnVwdCBp biByZXNwb25zZSB0byBlcnJvciBtZXNzYWdlcw0KPiA+ICovDQo+ID4gLQlwY2lfcmVhZF9jb25m aWdfZHdvcmQoZGV2LCBhZXIgKyBQQ0lfRVJSX1JPT1RfQ09NTUFORCwgJnJlZzMyKTsNCj4gPiAt CXJlZzMyIHw9IFJPT1RfUE9SVF9JTlRSX09OX01FU0dfTUFTSzsNCj4gPiAtCXBjaV93cml0ZV9j b25maWdfZHdvcmQoZGV2LCBhZXIgKyBQQ0lfRVJSX1JPT1RfQ09NTUFORCwgcmVnMzIpOw0KPiA+ ICsJCS8qIEVuYWJsZSBSb290IFBvcnQncyBpbnRlcnJ1cHQgaW4gcmVzcG9uc2UgdG8gZXJyb3IN Cj4gPiBtZXNzYWdlcyAqLw0KPiA+ICsJCXBjaV9yZWFkX2NvbmZpZ19kd29yZChyb290LCBhZXIg KyBQQ0lfRVJSX1JPT1RfQ09NTUFORCwNCj4gPiAmcmVnMzIpOw0KPiA+ICsJCXJlZzMyIHw9IFJP T1RfUE9SVF9JTlRSX09OX01FU0dfTUFTSzsNCj4gPiArCQlwY2lfd3JpdGVfY29uZmlnX2R3b3Jk KHJvb3QsIGFlciArDQo+ID4gUENJX0VSUl9ST09UX0NPTU1BTkQsIHJlZzMyKTsNCj4gPiArCX0N Cj4gPiANCj4gPiAgCXJldHVybiByYyA/IFBDSV9FUlNfUkVTVUxUX0RJU0NPTk5FQ1QgOg0KPiA+ IFBDSV9FUlNfUkVTVUxUX1JFQ09WRVJFRDsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3BjaS9wY2llL2Vyci5jIGIvZHJpdmVycy9wY2kvcGNpZS9lcnIuYw0KPiA+IGluZGV4IDc5 YWUxMzU2MTQxZC4uMDg5NzYwMzRhODljIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvcGNpL3Bj aWUvZXJyLmMNCj4gPiArKysgYi9kcml2ZXJzL3BjaS9wY2llL2Vyci5jDQo+ID4gQEAgLTIwMywz NiArMjAzLDE5IEBAIHBjaV9lcnNfcmVzdWx0X3QgcGNpZV9kb19yZWNvdmVyeShzdHJ1Y3QNCj4g PiBwY2lfZGV2IA0KPiA+ICpkZXYsDQo+ID4gIAkgKi8NCj4gPiAgCWlmICh0eXBlID09IFBDSV9F WFBfVFlQRV9ST09UX1BPUlQgfHwNCj4gPiAgCSAgICB0eXBlID09IFBDSV9FWFBfVFlQRV9ET1dO U1RSRUFNIHx8DQo+ID4gLQkgICAgdHlwZSA9PSBQQ0lfRVhQX1RZUEVfUkNfRUMpDQo+ID4gKwkg ICAgdHlwZSA9PSBQQ0lfRVhQX1RZUEVfUkNfRUMgfHwNCj4gPiArCSAgICB0eXBlID09IFBDSV9F WFBfVFlQRV9SQ19FTkQpDQo+ID4gIAkJYnJpZGdlID0gZGV2Ow0KPiA+IC0JZWxzZSBpZiAodHlw ZSA9PSBQQ0lfRVhQX1RZUEVfUkNfRU5EKQ0KPiA+IC0JCWJyaWRnZSA9IGRldi0+cmNlYzsNCj4g PiAgCWVsc2UNCj4gPiAgCQlicmlkZ2UgPSBwY2lfdXBzdHJlYW1fYnJpZGdlKGRldik7DQo+ID4g DQo+ID4gIAlwY2lfZGJnKGJyaWRnZSwgImJyb2FkY2FzdCBlcnJvcl9kZXRlY3RlZCBtZXNzYWdl XG4iKTsNCj4gPiAgCWlmIChzdGF0ZSA9PSBwY2lfY2hhbm5lbF9pb19mcm96ZW4pIHsNCj4gPiAg CQlwY2lfd2Fsa19icmlkZ2UoYnJpZGdlLCBkZXYsIHJlcG9ydF9mcm96ZW5fZGV0ZWN0ZWQsDQo+ ID4gJnN0YXR1cyk7DQo+IA0KPiBXZeKAmWQgbmVlZCB0byB3YWxrIGJhY2sgdGhlIGRldiBhZGRp dGlvbiB0byB0aGUgcGNpX3dhbGtfYnJpZGdlKCkgYW5kIA0KPiByZXZlcnQgdG8gcHJpb3IgdG8g dGhlIGNoZWNrcyBvbiBkZXYtPnJjZWMuDQo+IA0KPiA+IC0JCWlmICh0eXBlID09IFBDSV9FWFBf VFlQRV9SQ19FTkQpIHsNCj4gPiAtCQkJLyoNCj4gPiAtCQkJICogVGhlIGNhbGxiYWNrIG9ubHkg Y2xlYXJzIHRoZSBSb290IEVycm9yDQo+ID4gU3RhdHVzDQo+ID4gLQkJCSAqIG9mIHRoZSBSQ0VD IChzZWUgYWVyLmMpLiBPbmx5IHBlcmZvcm0gdGhpcw0KPiA+IGZvciB0aGUNCj4gPiAtCQkJICog bmF0aXZlIGNhc2UsIGkuZS4sIGFuIFJDRUMgaXMgcHJlc2VudC4NCj4gPiAtCQkJICovDQo+ID4g LQkJCWlmIChicmlkZ2UpDQo+ID4gLQkJCQlyZXNldF9zdWJvcmRpbmF0ZXMoYnJpZGdlKTsNCj4g PiAtDQo+ID4gLQkJCXN0YXR1cyA9IGZscl9vbl9yY2llcChkZXYpOw0KPiA+IC0JCQlpZiAoc3Rh dHVzICE9IFBDSV9FUlNfUkVTVUxUX1JFQ09WRVJFRCkgew0KPiA+IC0JCQkJcGNpX3dhcm4oZGV2 LCAiRnVuY3Rpb24gTGV2ZWwgUmVzZXQNCj4gPiBmYWlsZWRcbiIpOw0KPiA+IC0JCQkJZ290byBm YWlsZWQ7DQo+ID4gLQkJCX0NCj4gPiAtCQl9IGVsc2Ugew0KPiA+IC0JCQlzdGF0dXMgPSByZXNl dF9zdWJvcmRpbmF0ZXMoYnJpZGdlKTsNCj4gPiAtCQkJaWYgKHN0YXR1cyAhPSBQQ0lfRVJTX1JF U1VMVF9SRUNPVkVSRUQpIHsNCj4gPiAtCQkJCXBjaV93YXJuKGRldiwgInN1Ym9yZGluYXRlIGRl dmljZSByZXNldA0KPiA+IGZhaWxlZFxuIik7DQo+ID4gLQkJCQlnb3RvIGZhaWxlZDsNCj4gPiAt CQkJfQ0KPiA+ICsJCXN0YXR1cyA9IHJlc2V0X3N1Ym9yZGluYXRlcyhicmlkZ2UpOw0KPiA+ICsJ CWlmIChzdGF0dXMgIT0gUENJX0VSU19SRVNVTFRfUkVDT1ZFUkVEKSB7DQo+ID4gKwkJCXBjaV93 YXJuKGJyaWRnZSwgInN1Ym9yZGluYXRlIGRldmljZSByZXNldA0KPiA+IGZhaWxlZFxuIik7DQo+ ID4gKwkJCWdvdG8gZmFpbGVkOw0KPiA+ICAJCX0NCj4gPiAgCX0gZWxzZSB7DQo+ID4gIAkJcGNp X3dhbGtfYnJpZGdlKGJyaWRnZSwgZGV2LCByZXBvcnRfbm9ybWFsX2RldGVjdGVkLA0KPiA+ICZz dGF0dXMpOw0KPiANCj4gU28gdGhpcyBpcyB3aGF0IEkgZXhwZXJpbWVudGVkIHdpdGggZm9yIHRo ZSBtb3N0IHBhcnQgYnV0IHdpdGggdGhlIA0KPiBjaGFuZ2VzIHRoYXQgSSBoaWdobGlnaHRlZCAt IGFkZHJlc3Npbmcgbm9uLW5hdGl2ZSBjYXNlIGluIHRoZQ0KPiBjYWxsYmFjayANCj4gYW5kIGFs c28gaW4gdGhlIGJyaWRnZSB3YWxrLg0KPiANCj4gSSBjYW4gdGVzdCBpdCBvdXQuDQoNCg0KU28g SSB0ZXN0ZWQgdGhlIGZvbGxvd2luZyBvdXQsIGluY2x1ZGluZyB5b3VyIG1vdmluZyBmbHIgdG8g YWVyLmM6DQoNCi0gUmVuYW1lZCBmbHJfb25fcmNpZXAoKSB0byBmbHJfb25fcmMoKSBmb3IgUkMg ZGV2aWNlcyAoUkNfRU5EIGFuZA0KUkNfRUMpDQoNCi0gTW92ZWQgY2hlY2sgb24gZGV2LT5yY2Vj IGludG8gYWVyX3Jvb3RfcmVzZXQoKSBpbmNsdWRpbmcgdGhlIEZMUi4NCg0KLSBSZXdvcmtlZCBw Y2lfd2Fsa19icmlkZ2UoKSB0byBkcm9wIGV4dHJhIGRldiBhcmd1bWVudCBhbmQgY2hlY2sNCmxv Y2FsbHkgZm9yIHRoZSBicmlkZ2UtPnJjZWMuIE1heWJlIHNob3VsZCBhbHNvIGNoZWNrIG9uIHR5 cGUgd2hlbg0KY2hlY2tpbmcgb24gYnJpZGdlLT5yY2VjLg0KDQpOb3RlIEkgZGlkbid0IHVzZSB0 aGUgY2hlY2sgb24gYWVyX2NhcCBleGlzdGVuY2UgYmVjYXVzZSBJIHRoaW5rIHlvdQ0KaGFkIGFk ZGVkIHRoYXQgZm9yIHNpbXBseSBiZWluZyBhYmxlIHRvIHNraXAgb3ZlciBmb3IgdGhlIG5vbi1u YXRpdmUNCmNhc2UgYW5kIEkgaGFuZGxlIHRoYXQgd2l0aCB0aGUgc2luZ2xlIGdvdG8gYXQgdGhl IGJlZ2lubmluZyB3aGljaA0KdGFrZXMgeW91IHRvIHRoZSBGTFIuDQoNClNvIHRoaXMgaXMgcm91 Z2gsIGNvbXBpbGVkLCB0ZXN0ZWQgd2l0aCBBRVIgaW5qZWN0aW9ucyBidXQgdGhhdCdzIGl0Li4u DQoNClBsZWFzZSB0YWtlIGEgbG9vay4NCg0KVGhhbmtzLA0KDQpTZWFuDQoNCg0KDQoNCiBkcml2 ZXJzL3BjaS9wY2llL2Flci5jIHwgNTcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0NCiBkcml2ZXJzL3BjaS9wY2llL2Vyci5jIHwgNjIgKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogMiBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCsp LCA1NiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3BjaWUvYWVyLmMg Yi9kcml2ZXJzL3BjaS9wY2llL2Flci5jDQppbmRleCAzY2RlNjQ2ZjcxYzAuLjM1YjMyMzA5YTk3 YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvcGNpL3BjaWUvYWVyLmMNCisrKyBiL2RyaXZlcnMvcGNp L3BjaWUvYWVyLmMNCkBAIC0xMzYyLDYgKzEzNjIsMjMgQEAgc3RhdGljIGludCBhZXJfcHJvYmUo c3RydWN0IHBjaWVfZGV2aWNlICpkZXYpDQogICAgICAgIHJldHVybiAwOw0KIH0NCiANCisvKioN CisgKiBmbHJfb25fcmMgLSBmdW5jdGlvbiBsZXZsIHJlc2V0IG9uIHJvb3QgY29tcGxleCBkZXZp Y2UNCisgKiBAZGV2OiBwb2ludGVyIHRvIHJvb3QgY29tcGxleCBkZXZpY2UncyBwY2lfZGV2IGRh dGEgc3RydWN0dXJlDQorICoNCisgKiBJbnZva2VkIGJ5IGFlcl9yb290X3Jlc2V0KCkgd2hlbiBw ZXJmb3JtaW5nIGxpbmsgcmVzZXQuDQorICovDQorc3RhdGljIHBjaV9lcnNfcmVzdWx0X3QgZmxy X29uX3JjKHN0cnVjdCBwY2lfZGV2ICpkZXYpDQorew0KKyAgICAgICBpZiAoIXBjaWVfaGFzX2Zs cihkZXYpKQ0KKyAgICAgICAgICAgICAgIHJldHVybiBQQ0lfRVJTX1JFU1VMVF9ESVNDT05ORUNU Ow0KKw0KKyAgICAgICBpZiAocGNpZV9mbHIoZGV2KSkNCisgICAgICAgICAgICAgICByZXR1cm4g UENJX0VSU19SRVNVTFRfRElTQ09OTkVDVDsNCisNCisgICAgICAgcmV0dXJuIFBDSV9FUlNfUkVT VUxUX1JFQ09WRVJFRDsNCit9DQorDQogLyoqDQogICogYWVyX3Jvb3RfcmVzZXQgLSByZXNldCBs aW5rIG9uIFJvb3QgUG9ydA0KICAqIEBkZXY6IHBvaW50ZXIgdG8gUm9vdCBQb3J0J3MgcGNpX2Rl diBkYXRhIHN0cnVjdHVyZQ0KQEAgLTEzNzAsMjggKzEzODcsNDYgQEAgc3RhdGljIGludCBhZXJf cHJvYmUoc3RydWN0IHBjaWVfZGV2aWNlICpkZXYpDQogICovDQogc3RhdGljIHBjaV9lcnNfcmVz dWx0X3QgYWVyX3Jvb3RfcmVzZXQoc3RydWN0IHBjaV9kZXYgKmRldikNCiB7DQorICAgICAgIGlu dCB0eXBlID0gcGNpX3BjaWVfdHlwZShkZXYpOw0KKyAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcm9v dCA9IGRldjsNCiAgICAgICAgaW50IGFlciA9IGRldi0+YWVyX2NhcDsNCiAgICAgICAgaW50IHJj ID0gMDsNCiAgICAgICAgdTMyIHJlZzMyOw0KIA0KKyAgICAgICBpZiAocGNpX3BjaWVfdHlwZShk ZXYpID09IFBDSV9FWFBfVFlQRV9SQ19FTkQpIHsNCisgICAgICAgICAgICAgICAvKg0KKyAgICAg ICAgICAgICAgICAqIFRoZSByZXNldCBzaG91bGQgb25seSBjbGVhciB0aGUgUm9vdCBFcnJvciBT dGF0dXMNCisgICAgICAgICAgICAgICAgKiBvZiB0aGUgUkNFQy4gT25seSBwZXJmb3JtIHRoaXMg Zm9yIHRoZQ0KKyAgICAgICAgICAgICAgICAqIG5hdGl2ZSBjYXNlLCBpLmUuLCBhbiBSQ0VDIGlz IHByZXNlbnQuDQorICAgICAgICAgICAgICAgICovDQorICAgICAgICAgICAgICAgaWYgKCEoZGV2 LT5yY2VjKSkNCisgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gbm9uX25hdGl2ZTsNCisgICAg ICAgICAgICAgICBlbHNlDQorICAgICAgICAgICAgICAgICAgICAgICByb290ID0gZGV2LT5yY2Vj Ow0KKyAgICAgICB9DQorDQogICAgICAgIC8qIERpc2FibGUgUm9vdCdzIGludGVycnVwdCBpbiBy ZXNwb25zZSB0byBlcnJvciBtZXNzYWdlcyAqLw0KLSAgICAgICBwY2lfcmVhZF9jb25maWdfZHdv cmQoZGV2LCBhZXIgKyBQQ0lfRVJSX1JPT1RfQ09NTUFORCwgJnJlZzMyKTsNCisgICAgICAgcGNp X3JlYWRfY29uZmlnX2R3b3JkKHJvb3QsIGFlciArIFBDSV9FUlJfUk9PVF9DT01NQU5ELA0KJnJl ZzMyKTsNCiAgICAgICAgcmVnMzIgJj0gflJPT1RfUE9SVF9JTlRSX09OX01FU0dfTUFTSzsNCi0g ICAgICAgcGNpX3dyaXRlX2NvbmZpZ19kd29yZChkZXYsIGFlciArIFBDSV9FUlJfUk9PVF9DT01N QU5ELCByZWczMik7DQotDQotICAgICAgIGlmIChwY2lfcGNpZV90eXBlKGRldikgIT0gUENJX0VY UF9UWVBFX1JDX0VDKSB7DQotICAgICAgICAgICAgICAgcmMgPSBwY2lfYnVzX2Vycm9yX3Jlc2V0 KGRldik7DQotICAgICAgICAgICAgICAgcGNpX2luZm8oZGV2LCAiUm9vdCBQb3J0IGxpbmsgaGFz IGJlZW4gcmVzZXRcbiIpOw0KLSAgICAgICB9DQorICAgICAgIHBjaV93cml0ZV9jb25maWdfZHdv cmQocm9vdCwgYWVyICsgUENJX0VSUl9ST09UX0NPTU1BTkQsDQpyZWczMik7DQogDQogICAgICAg IC8qIENsZWFyIFJvb3QgRXJyb3IgU3RhdHVzICovDQotICAgICAgIHBjaV9yZWFkX2NvbmZpZ19k d29yZChkZXYsIGFlciArIFBDSV9FUlJfUk9PVF9TVEFUVVMsICZyZWczMik7DQotICAgICAgIHBj aV93cml0ZV9jb25maWdfZHdvcmQoZGV2LCBhZXIgKyBQQ0lfRVJSX1JPT1RfU1RBVFVTLCByZWcz Mik7DQorICAgICAgIHBjaV9yZWFkX2NvbmZpZ19kd29yZChyb290LCBhZXIgKyBQQ0lfRVJSX1JP T1RfU1RBVFVTLCAmcmVnMzIpOw0KKyAgICAgICBwY2lfd3JpdGVfY29uZmlnX2R3b3JkKHJvb3Qs IGFlciArIFBDSV9FUlJfUk9PVF9TVEFUVVMsIHJlZzMyKTsNCiANCiAgICAgICAgLyogRW5hYmxl IFJvb3QgUG9ydCdzIGludGVycnVwdCBpbiByZXNwb25zZSB0byBlcnJvciBtZXNzYWdlcw0KKi8N Ci0gICAgICAgcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldiwgYWVyICsgUENJX0VSUl9ST09UX0NP TU1BTkQsICZyZWczMik7DQorICAgICAgIHBjaV9yZWFkX2NvbmZpZ19kd29yZChyb290LCBhZXIg KyBQQ0lfRVJSX1JPT1RfQ09NTUFORCwNCiZyZWczMik7DQogICAgICAgIHJlZzMyIHw9IFJPT1Rf UE9SVF9JTlRSX09OX01FU0dfTUFTSzsNCi0gICAgICAgcGNpX3dyaXRlX2NvbmZpZ19kd29yZChk ZXYsIGFlciArIFBDSV9FUlJfUk9PVF9DT01NQU5ELCByZWczMik7DQorICAgICAgIHBjaV93cml0 ZV9jb25maWdfZHdvcmQocm9vdCwgYWVyICsgUENJX0VSUl9ST09UX0NPTU1BTkQsDQpyZWczMik7 DQorDQorbm9uX25hdGl2ZToNCisgICAgICAgaWYgKCh0eXBlID09IFBDSV9FWFBfVFlQRV9SQ19F QykgfHwgKHR5cGUgPT0NClBDSV9FWFBfVFlQRV9SQ19FTkQpKSB7DQorICAgICAgICAgICAgICAg cmMgPSBmbHJfb25fcmMocm9vdCk7DQorICAgICAgICAgICAgICAgcGNpX2luZm8oZGV2LCAiaGFz IGJlZW4gcmVzZXQgKCVkKVxuIiwgcmMpOw0KKyAgICAgICB9IGVsc2Ugew0KKyAgICAgICAgICAg ICAgIHJjID0gcGNpX2J1c19lcnJvcl9yZXNldChyb290KTsNCisgICAgICAgICAgICAgICBwY2lf aW5mbyhkZXYsICJSb290IFBvcnQgbGluayBoYXMgYmVlbiByZXNldCAoJWQpXG4iLA0KcmMpOw0K KyAgICAgICB9DQogDQogICAgICAgIHJldHVybiByYyA/IFBDSV9FUlNfUkVTVUxUX0RJU0NPTk5F Q1QgOg0KUENJX0VSU19SRVNVTFRfUkVDT1ZFUkVEOw0KIH0NCmRpZmYgLS1naXQgYS9kcml2ZXJz L3BjaS9wY2llL2Vyci5jIGIvZHJpdmVycy9wY2kvcGNpZS9lcnIuYw0KaW5kZXggOTU2YWQ0Yzg2 ZDUzLi44MWJiZjhhNDAwNmQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL3BjaS9wY2llL2Vyci5jDQor KysgYi9kcml2ZXJzL3BjaS9wY2llL2Vyci5jDQpAQCAtMTUwLDcgKzE1MCw2IEBAIHN0YXRpYyBp bnQgcmVwb3J0X3Jlc3VtZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCB2b2lkDQoqZGF0YSkNCiAgKiBw Y2lfd2Fsa19icmlkZ2UgLSB3YWxrIGJyaWRnZXMgcG90ZW50aWFsbHkgQUVSIGFmZmVjdGVkDQog ICogQGJyaWRnZSAgIGJyaWRnZSB3aGljaCBtYXkgYmUgYW4gUkNFQyB3aXRoIGFzc29jaWF0ZWQg UkNpRVBzLA0KICAqICAgICAgICAgICBvciBhIFBvcnQuDQotICogQGRldiAgICAgIGFuIFJDaUVQ IGxhY2tpbmcgYW4gYXNzb2NpYXRlZCBSQ0VDLg0KICAqIEBjYiAgICAgICBjYWxsYmFjayB0byBi ZSBjYWxsZWQgZm9yIGVhY2ggZGV2aWNlIGZvdW5kDQogICogQHVzZXJkYXRhIGFyYml0cmFyeSBw b2ludGVyIHRvIGJlIHBhc3NlZCB0byBjYWxsYmFjay4NCiAgKg0KQEAgLTE2MSw3ICsxNjAsNyBA QCBzdGF0aWMgaW50IHJlcG9ydF9yZXN1bWUoc3RydWN0IHBjaV9kZXYgKmRldiwgdm9pZA0KKmRh dGEpDQogICogSWYgdGhlIGRldmljZSBwcm92aWRlZCBoYXMgbm8gc3Vib3JkaW5hdGUgYnVzLCBj YWxsIHRoZSBwcm92aWRlZA0KICAqIGNhbGxiYWNrIG9uIHRoZSBkZXZpY2UgaXRzZWxmLg0KICAq Lw0KLXN0YXRpYyB2b2lkIHBjaV93YWxrX2JyaWRnZShzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlLCBz dHJ1Y3QgcGNpX2Rldg0KKmRldiwNCitzdGF0aWMgdm9pZCBwY2lfd2Fsa19icmlkZ2Uoc3RydWN0 IHBjaV9kZXYgKmJyaWRnZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpjYiko c3RydWN0IHBjaV9kZXYgKiwgdm9pZCAqKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkICp1c2VyZGF0YSkNCiB7DQpAQCAtMTY5LDIzICsxNjgsMTIgQEAgc3RhdGljIHZvaWQgcGNp X3dhbGtfYnJpZGdlKHN0cnVjdCBwY2lfZGV2DQoqYnJpZGdlLCBzdHJ1Y3QgcGNpX2RldiAqZGV2 LA0KICAgICAgICAgKiBJbiBhIG5vbi1uYXRpdmUgY2FzZSB3aGVyZSB0aGVyZSBpcyBubyBPUy12 aXNpYmxlIHJlcG9ydGluZw0KICAgICAgICAgKiBkZXZpY2UgdGhlIGJyaWRnZSB3aWxsIGJlIE5V TEwsIGkuZS4sIG5vIFJDRUMsIG5vIFBPUlQuDQogICAgICAgICAqLw0KLSAgICAgICBpZiAoYnJp ZGdlICYmIGJyaWRnZS0+c3Vib3JkaW5hdGUpDQorICAgICAgIGlmIChicmlkZ2UtPnN1Ym9yZGlu YXRlKQ0KICAgICAgICAgICAgICAgIHBjaV93YWxrX2J1cyhicmlkZ2UtPnN1Ym9yZGluYXRlLCBj YiwgdXNlcmRhdGEpOw0KLSAgICAgICBlbHNlIGlmIChicmlkZ2UpDQotICAgICAgICAgICAgICAg Y2IoYnJpZGdlLCB1c2VyZGF0YSk7DQorICAgICAgIGVsc2UgaWYgKGJyaWRnZS0+cmNlYykNCisg ICAgICAgICAgICAgICBjYihicmlkZ2UtPnJjZWMsIHVzZXJkYXRhKTsNCiAgICAgICAgZWxzZQ0K LSAgICAgICAgICAgICAgIGNiKGRldiwgdXNlcmRhdGEpOw0KLX0NCi0NCi1zdGF0aWMgcGNpX2Vy c19yZXN1bHRfdCBmbHJfb25fcmNpZXAoc3RydWN0IHBjaV9kZXYgKmRldikNCi17DQotICAgICAg IGlmICghcGNpZV9oYXNfZmxyKGRldikpDQotICAgICAgICAgICAgICAgcmV0dXJuIFBDSV9FUlNf UkVTVUxUX0RJU0NPTk5FQ1Q7DQotDQotICAgICAgIGlmIChwY2llX2ZscihkZXYpKQ0KLSAgICAg ICAgICAgICAgIHJldHVybiBQQ0lfRVJTX1JFU1VMVF9ESVNDT05ORUNUOw0KLQ0KLSAgICAgICBy ZXR1cm4gUENJX0VSU19SRVNVTFRfUkVDT1ZFUkVEOw0KKyAgICAgICAgICAgICAgIGNiKGJyaWRn ZSwgdXNlcmRhdGEpOw0KIH0NCiANCiBwY2lfZXJzX3Jlc3VsdF90IHBjaWVfZG9fcmVjb3Zlcnko c3RydWN0IHBjaV9kZXYgKmRldiwNCkBAIC0yMDQsNDUgKzE5MiwyOSBAQCBwY2lfZXJzX3Jlc3Vs dF90IHBjaWVfZG9fcmVjb3Zlcnkoc3RydWN0IHBjaV9kZXYNCipkZXYsDQogICAgICAgIHR5cGUg PSBwY2lfcGNpZV90eXBlKGRldik7DQogICAgICAgIGlmICh0eXBlID09IFBDSV9FWFBfVFlQRV9S T09UX1BPUlQgfHwNCiAgICAgICAgICAgIHR5cGUgPT0gUENJX0VYUF9UWVBFX0RPV05TVFJFQU0g fHwNCi0gICAgICAgICAgIHR5cGUgPT0gUENJX0VYUF9UWVBFX1JDX0VDKQ0KKyAgICAgICAgICAg dHlwZSA9PSBQQ0lfRVhQX1RZUEVfUkNfRUMgfHwNCisgICAgICAgICAgIHR5cGUgPT0gUENJX0VY UF9UWVBFX1JDX0VORCkNCiAgICAgICAgICAgICAgICBicmlkZ2UgPSBkZXY7DQotICAgICAgIGVs c2UgaWYgKHR5cGUgPT0gUENJX0VYUF9UWVBFX1JDX0VORCkNCi0gICAgICAgICAgICAgICBicmlk Z2UgPSBkZXYtPnJjZWM7DQogICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICBicmlkZ2UgPSBw Y2lfdXBzdHJlYW1fYnJpZGdlKGRldik7DQogDQogICAgICAgIHBjaV9kYmcoZGV2LCAiYnJvYWRj YXN0IGVycm9yX2RldGVjdGVkIG1lc3NhZ2VcbiIpOw0KICAgICAgICBpZiAoc3RhdGUgPT0gcGNp X2NoYW5uZWxfaW9fZnJvemVuKSB7DQotICAgICAgICAgICAgICAgcGNpX3dhbGtfYnJpZGdlKGJy aWRnZSwgZGV2LCByZXBvcnRfZnJvemVuX2RldGVjdGVkLA0KJnN0YXR1cyk7DQotICAgICAgICAg ICAgICAgaWYgKHR5cGUgPT0gUENJX0VYUF9UWVBFX1JDX0VORCkgew0KLSAgICAgICAgICAgICAg ICAgICAgICAgLyoNCi0gICAgICAgICAgICAgICAgICAgICAgICAqIFRoZSBjYWxsYmFjayBvbmx5 IGNsZWFycyB0aGUgUm9vdCBFcnJvcg0KU3RhdHVzDQotICAgICAgICAgICAgICAgICAgICAgICAg KiBvZiB0aGUgUkNFQyAoc2VlIGFlci5jKS4gT25seSBwZXJmb3JtIHRoaXMNCmZvciB0aGUNCi0g ICAgICAgICAgICAgICAgICAgICAgICAqIG5hdGl2ZSBjYXNlLCBpLmUuLCBhbiBSQ0VDIGlzIHBy ZXNlbnQuDQotICAgICAgICAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgICAgICAgICAgICAg ICAgIGlmIChicmlkZ2UpDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0X3N1 Ym9yZGluYXRlX2RldmljZXMoYnJpZGdlKTsNCi0NCi0gICAgICAgICAgICAgICAgICAgICAgIHN0 YXR1cyA9IGZscl9vbl9yY2llcChkZXYpOw0KLSAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0 YXR1cyAhPSBQQ0lfRVJTX1JFU1VMVF9SRUNPVkVSRUQpIHsNCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGNpX3dhcm4oZGV2LCAiZnVuY3Rpb24gbGV2ZWwgcmVzZXQNCmZhaWxlZFxu Iik7DQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOw0KLSAgICAg ICAgICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICAgIH0gZWxzZSB7DQotICAgICAgICAg ICAgICAgICAgICAgICBzdGF0dXMgPSByZXNldF9zdWJvcmRpbmF0ZV9kZXZpY2VzKGJyaWRnZSk7 DQotICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFBDSV9FUlNfUkVTVUxUX1JF Q09WRVJFRCkgew0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfd2FybihkZXYs ICJzdWJvcmRpbmF0ZSBkZXZpY2UgcmVzZXQNCmZhaWxlZFxuIik7DQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOw0KLSAgICAgICAgICAgICAgICAgICAgICAgfQ0K KyAgICAgICAgICAgICAgIHBjaV93YWxrX2JyaWRnZShicmlkZ2UsIHJlcG9ydF9mcm96ZW5fZGV0 ZWN0ZWQsDQomc3RhdHVzKTsNCisgICAgICAgICAgICAgICBzdGF0dXMgPSByZXNldF9zdWJvcmRp bmF0ZV9kZXZpY2VzKGJyaWRnZSk7DQorICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBQQ0lf RVJTX1JFU1VMVF9SRUNPVkVSRUQpIHsNCisgICAgICAgICAgICAgICAgICAgICAgIHBjaV93YXJu KGRldiwgInN1Ym9yZGluYXRlIGRldmljZSByZXNldA0KZmFpbGVkXG4iKTsNCisgICAgICAgICAg ICAgICAgICAgICAgIGdvdG8gZmFpbGVkOw0KICAgICAgICAgICAgICAgIH0NCisNCiAgICAgICAg fSBlbHNlIHsNCi0gICAgICAgICAgICAgICBwY2lfd2Fsa19icmlkZ2UoYnJpZGdlLCBkZXYsIHJl cG9ydF9ub3JtYWxfZGV0ZWN0ZWQsDQomc3RhdHVzKTsNCisgICAgICAgICAgICAgICBwY2lfd2Fs a19icmlkZ2UoYnJpZGdlLCByZXBvcnRfbm9ybWFsX2RldGVjdGVkLA0KJnN0YXR1cyk7DQogICAg ICAgIH0NCiANCiAgICAgICAgaWYgKHN0YXR1cyA9PSBQQ0lfRVJTX1JFU1VMVF9DQU5fUkVDT1ZF Uikgew0KICAgICAgICAgICAgICAgIHN0YXR1cyA9IFBDSV9FUlNfUkVTVUxUX1JFQ09WRVJFRDsN CiAgICAgICAgICAgICAgICBwY2lfZGJnKGRldiwgImJyb2FkY2FzdCBtbWlvX2VuYWJsZWQgbWVz c2FnZVxuIik7DQotICAgICAgICAgICAgICAgcGNpX3dhbGtfYnJpZGdlKGJyaWRnZSwgZGV2LCBy ZXBvcnRfbW1pb19lbmFibGVkLA0KJnN0YXR1cyk7DQorICAgICAgICAgICAgICAgcGNpX3dhbGtf YnJpZGdlKGJyaWRnZSwgcmVwb3J0X21taW9fZW5hYmxlZCwgJnN0YXR1cyk7DQogICAgICAgIH0N CiANCiAgICAgICAgaWYgKHN0YXR1cyA9PSBQQ0lfRVJTX1JFU1VMVF9ORUVEX1JFU0VUKSB7DQpA QCAtMjUzLDE0ICsyMjUsMTQgQEAgcGNpX2Vyc19yZXN1bHRfdCBwY2llX2RvX3JlY292ZXJ5KHN0 cnVjdCBwY2lfZGV2DQoqZGV2LA0KICAgICAgICAgICAgICAgICAqLw0KICAgICAgICAgICAgICAg IHN0YXR1cyA9IFBDSV9FUlNfUkVTVUxUX1JFQ09WRVJFRDsNCiAgICAgICAgICAgICAgICBwY2lf ZGJnKGRldiwgImJyb2FkY2FzdCBzbG90X3Jlc2V0IG1lc3NhZ2VcbiIpOw0KLSAgICAgICAgICAg ICAgIHBjaV93YWxrX2JyaWRnZShicmlkZ2UsIGRldiwgcmVwb3J0X3Nsb3RfcmVzZXQsDQomc3Rh dHVzKTsNCisgICAgICAgICAgICAgICBwY2lfd2Fsa19icmlkZ2UoYnJpZGdlLCByZXBvcnRfc2xv dF9yZXNldCwgJnN0YXR1cyk7DQogICAgICAgIH0NCiANCiAgICAgICAgaWYgKHN0YXR1cyAhPSBQ Q0lfRVJTX1JFU1VMVF9SRUNPVkVSRUQpDQogICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7DQog DQogICAgICAgIHBjaV9kYmcoZGV2LCAiYnJvYWRjYXN0IHJlc3VtZSBtZXNzYWdlXG4iKTsNCi0g ICAgICAgcGNpX3dhbGtfYnJpZGdlKGJyaWRnZSwgZGV2LCByZXBvcnRfcmVzdW1lLCAmc3RhdHVz KTsNCisgICAgICAgcGNpX3dhbGtfYnJpZGdlKGJyaWRnZSwgcmVwb3J0X3Jlc3VtZSwgJnN0YXR1 cyk7DQogDQogICAgICAgIGlmICh0eXBlID09IFBDSV9FWFBfVFlQRV9ST09UX1BPUlQgfHwNCiAg ICAgICAgICAgIHR5cGUgPT0gUENJX0VYUF9UWVBFX0RPV05TVFJFQU0gfHwNCi0tIA0KMi4yOC4w DQo+IA0KPiBUaGFua3MsDQo+IA0KPiBTZWFuDQo=