From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 125FEA04BA; Thu, 1 Oct 2020 23:08:06 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 69C1C1D5C7; Thu, 1 Oct 2020 23:08:04 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id 332FE1D5B9 for ; Thu, 1 Oct 2020 23:08:01 +0200 (CEST) IronPort-SDR: eqWHooCsDTp5cozsuOY3QGgJuRg3KopllehxcY5sgY09nSVeWfcpwflH6UQ6YJM5rq58EAYkrY qgbWWCqpUTpg== X-IronPort-AV: E=McAfee;i="6000,8403,9761"; a="142847238" X-IronPort-AV: E=Sophos;i="5.77,325,1596524400"; d="scan'208";a="142847238" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Oct 2020 14:07:56 -0700 IronPort-SDR: /OPh9+XdsExyTfMA4VoWVnBqZ7CIuDh4ayx4SNx3rMhO/voZhgDaGBbikG/gVdF/2ze2Jvuw7U 7GhcZV8rOQrg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,325,1596524400"; d="scan'208";a="514918266" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga006.fm.intel.com with ESMTP; 01 Oct 2020 14:07:54 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 1 Oct 2020 14:07:54 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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; Thu, 1 Oct 2020 14:07:54 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 1 Oct 2020 14:07:53 -0700 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.102) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Thu, 1 Oct 2020 14:07:52 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VfptNy6jDkSMMvnk9S9Im5ab4FokhlZ2OOKk3xCrOuIVwiCfgrA+fV2RrP2Ojf6p9sLlMo17zSUHfEC0DXhpl0BCbsa6CltrP/heG/zIz8N2GZbbwIcOtq4POWu9G786+dqOiW5V2Y+7Khgi/8Jwti3Sc/BG4L0xix/w813Gfi2lMktJfvt0CYE8ZG9h1zi20YFSJMqOMEUbASXMTZs2dl8tywC8/iN2uxC4xb07z67JqlJDtEy4gvsSz/L9wJNv9jG2W7mBfYTvh0qGu2Jkm3UQxdl3Dbl/ReynP2TSZpy6dlbC8WduXRWgHIyvEyH921O1Exmk0Sxwl78wKH6AMA== 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=zAu+KeC1klwh9oMVolBStOXSPK8rGTHrGiZnzEmCaW8=; b=n9V+pHEZk5Xu28hlJ5y4Ipler70tzvweChLBIH4D76BStytCOT/nupBypCtpCMVi2LG3SJq9v8RDts4hNwhXwESpvt2CcgGxuIc61hrsv+l1rDrKa2uOMSkBxCU8BR6oFo143HCUeQ+zSAX8fkE8THfgLTjbOQ4RiUsas8KmtwXEq3gKOq4HKhVy1kY37YOM3TVvJwe5t2oGAg2rLfKu9mQu8iXiXAKJmPViWSenkjpiABicwn5OC2s/M5C/jkJjxwZBxfb6V4KWz10VgTsQBNMxfVBD1Tm38u1JkFxY9bSQ7gpUXF2XP+qk73lHr2jG4fOLzWwjtYsXYNanmhbtJg== 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=zAu+KeC1klwh9oMVolBStOXSPK8rGTHrGiZnzEmCaW8=; b=bFTeN6T44+TAAw1sP+EzGirZoEJAA1TlJJPVjg66ImcLhFIr2rSPXYTXrcfcW3dbQhgU/fGJt7auVSICXv5zhdSCODLxyg2gyiOMVuhrjB7Jc+5GQRY1LhctMR10l6HqwUb5jkIBDcS9wDAr/BuMa4BkWICuw4jqHzDuzolnEAg= Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by BYAPR11MB2616.namprd11.prod.outlook.com (2603:10b6:a02:c6::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.38; Thu, 1 Oct 2020 21:07:45 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::4162:97e1:7d04:a508%7]) with mapi id 15.20.3412.028; Thu, 1 Oct 2020 21:07:45 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "akhil.goyal@nxp.com" CC: "Richardson, Bruce" , "Xu, Rosen" , "dave.burley@accelercomm.com" , "aidan.goddard@accelercomm.com" , "Yigit, Ferruh" , "Liu, Tianjiao" Thread-Topic: [dpdk-dev] [PATCH v9 08/10] baseband/acc100: add interrupt support to PMD Thread-Index: AQHWlffhmFZRJrzE0EmOSkxOy21O76mBjMIAgAAC5LCAAV26AIAAVFaQ Date: Thu, 1 Oct 2020 21:07:45 +0000 Message-ID: References: <1597796731-57841-12-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-1-git-send-email-nicolas.chautru@intel.com> <1601339385-117424-9-git-send-email-nicolas.chautru@intel.com> <5f42d8ad-e19d-0601-da5a-492b1b84333b@redhat.com> <9f51d38e-4485-a844-6e63-d2fd4c2385f6@redhat.com> In-Reply-To: <9f51d38e-4485-a844-6e63-d2fd4c2385f6@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [45.28.143.88] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fd42e02d-5e00-4e06-0db1-08d8664e0b42 x-ms-traffictypediagnostic: BYAPR11MB2616: 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:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OmGgg9mH2QBgwtwgZEI8XMGCQFntxj1WAwQX8fIDWnxawHuw2Jx8omLcusTjnTT/IiBVAxCpZgl5D/jsUArtLoWxtQRMpOLK8SjR/WshpMsKsTWjiRGWmpjdy4hjXNCFYfpdRdahjdMtzIU9Iiijf9TNRITp523ECNz/zDq2EZkLpFWNziZ27dD/C2tl+ucw/g7FrhczA/xi2p/PDw8iwU113CszSrc5sDbvnjQk+AFMEm4FyV+E2hmr5fZwzDWv5lY5sLzPc0bFsh0jS+IhB/OXm03JP6y7Gojzc/EtfEsRPRVN99KqOyZtcgmuQwB0aPvRSZBMV1X7fruzqfE+BA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(366004)(136003)(376002)(346002)(396003)(107886003)(86362001)(33656002)(55016002)(8936002)(186003)(110136005)(54906003)(316002)(9686003)(8676002)(71200400001)(26005)(83380400001)(30864003)(5660300002)(2906002)(478600001)(66946007)(76116006)(6506007)(64756008)(53546011)(66556008)(66476007)(7696005)(66446008)(52536014)(4326008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: xEzodJoh8uBmOUY1RTUl7T3HAAlhDKyp6G7TSQ8l6TyskHjK1mQY+Hmrsci7QCW59e4S7q90JnRbs7xfL3TSThIUQFIocJe6tbp2IZYt4SEzyx+2rfDCQO3n1B7/Vw7C8LgsSaae04ntK2nE0D+Di7XldRtPL8FvQzVgCYRx5mS/h0PHwMsI90a7wfazrj15Zi7w0O1OV+cvrU+D1sSU2E92B41iNc+4iO4YuB0tQYBqXYI34sNRhKAoyxBru02x6i5NaU7yW5gvlOOrCebwcc9b00UqJNz8Chny5yhkH7rPglDm2OR7DhF/qHo1T4F1Mm1ApkskhFhFAIWC5B/tr2+KRNg83LR2z7fy9hpNxNNKR551QOTGTc6bq2/9rUHKsc5UXSHth6uLl0lpjN90AhF62MVV9Obivo5eMedSMgwzjVZI7cf2ZKi3afdSMKzxGESlgMMb4r542YirCMV/jwgnoqNWWym1+BXM4loFZfKcleoHFlU67j9AbXDaQSClbsSA2iBVk+dgKy2bvxPz+kO6moXYTqQA7A8URI0blTJPUYoVparMwUkdTlYNb+QTIIhE4iUXoceIRyLPF84bZXZP9DJgPxXTZO6oaLsJSm5G9MxHKVsJmKoYOIokCDX62fPjvCRHaekXbRtKP5VCKA== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd42e02d-5e00-4e06-0db1-08d8664e0b42 X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Oct 2020 21:07:45.2727 (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: jhP1uPJYRXESGQIW3WMW21D4rKQ1Gvu8nLLkGdoFQMG3DO0eXORTGYYoKS0q2a6vZLEv5CaRlIM7v9be9glHxOHlMIsAOf5wGWsgKTv5bWI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR11MB2616 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v9 08/10] baseband/acc100: add interrupt support to PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgVG9tLCANCg0KPiBGcm9tOiBUb20gUml4IDx0cml4QHJlZGhhdC5jb20+DQo+IE9uIDkvMzAv MjAgMTI6NDUgUE0sIENoYXV0cnUsIE5pY29sYXMgd3JvdGU6DQo+ID4gSGkgVG9tLA0KPiA+DQo+ ID4+IEZyb206IFRvbSBSaXggPHRyaXhAcmVkaGF0LmNvbT4NCj4gPj4gT24gOS8yOC8yMCA1OjI5 IFBNLCBOaWNvbGFzIENoYXV0cnUgd3JvdGU6DQo+ID4+PiBBZGRpbmcgY2FwYWJpbGl0eSBhbmQg ZnVuY3Rpb25zIHRvIHN1cHBvcnQgTVNJIGludGVycnVwdHMsIGNhbGwNCj4gPj4+IGJhY2tzIGFu ZCBpbmZvcmluZy4NCj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFzIENoYXV0cnUg PG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+DQo+ID4+PiBBY2tlZC1ieTogTGl1IFRpYW5qaWFv IDxUaWFuamlhby5saXVAaW50ZWwuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiAgZHJpdmVycy9iYXNl YmFuZC9hY2MxMDAvcnRlX2FjYzEwMF9wbWQuYyB8IDI4OA0KPiA+Pj4gKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLQ0KPiA+Pj4gZHJpdmVycy9iYXNlYmFuZC9hY2MxMDAvcnRlX2FjYzEw MF9wbWQuaCB8ICAxNSArKw0KPiA+Pj4gIDIgZmlsZXMgY2hhbmdlZCwgMzAwIGluc2VydGlvbnMo KyksIDMgZGVsZXRpb25zKC0pDQo+ID4+Pg0KPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFz ZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4gPj4+IGIvZHJpdmVycy9iYXNlYmFuZC9h Y2MxMDAvcnRlX2FjYzEwMF9wbWQuYw0KPiA+Pj4gaW5kZXggN2Q0YzNkZi4uYjZkOWU3YyAxMDA2 NDQNCj4gPj4+IC0tLSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMN Cj4gPj4+ICsrKyBiL2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmMNCj4g Pj4+IEBAIC0zMzksNiArMzM5LDIxMyBAQA0KPiA+Pj4gIAlmcmVlX2Jhc2VfYWRkcmVzc2VzKGJh c2VfYWRkcnMsIGkpOyAgfQ0KPiA+Pj4NCj4gPj4+ICsvKg0KPiA+Pj4gKyAqIEZpbmQgcXVldWVf aWQgb2YgYSBkZXZpY2UgcXVldWUgYmFzZWQgb24gZGV0YWlscyBmcm9tIHRoZSBJbmZvIFJpbmcu DQo+ID4+PiArICogSWYgYSBxdWV1ZSBpc24ndCBmb3VuZCBVSU5UMTZfTUFYIGlzIHJldHVybmVk Lg0KPiA+Pj4gKyAqLw0KPiA+Pj4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gPj4+ICtnZXRf cXVldWVfaWRfZnJvbV9yaW5nX2luZm8oc3RydWN0IHJ0ZV9iYmRldl9kYXRhICpkYXRhLA0KPiA+ Pj4gKwkJY29uc3QgdW5pb24gYWNjMTAwX2luZm9fcmluZ19kYXRhIHJpbmdfZGF0YSkgew0KPiA+ Pj4gKwl1aW50MTZfdCBxdWV1ZV9pZDsNCj4gPj4+ICsNCj4gPj4+ICsJZm9yIChxdWV1ZV9pZCA9 IDA7IHF1ZXVlX2lkIDwgZGF0YS0+bnVtX3F1ZXVlczsgKytxdWV1ZV9pZCkgew0KPiA+Pj4gKwkJ c3RydWN0IGFjYzEwMF9xdWV1ZSAqYWNjMTAwX3EgPQ0KPiA+Pj4gKwkJCQlkYXRhLT5xdWV1ZXNb cXVldWVfaWRdLnF1ZXVlX3ByaXZhdGU7DQo+ID4+PiArCQlpZiAoYWNjMTAwX3EgIT0gTlVMTCAm JiBhY2MxMDBfcS0+YXFfaWQgPT0gcmluZ19kYXRhLmFxX2lkDQo+ID4+ICYmDQo+ID4+PiArCQkJ CWFjYzEwMF9xLT5xZ3JwX2lkID09IHJpbmdfZGF0YS5xZ19pZCAmJg0KPiA+Pj4gKwkJCQlhY2Mx MDBfcS0+dmZfaWQgPT0gcmluZ19kYXRhLnZmX2lkKQ0KPiA+Pj4gKwkJCXJldHVybiBxdWV1ZV9p ZDsNCj4gPj4gSWYgbnVtX3F1ZXVlcyBpcyBsYXJnZSwgdGhpcyBsaW5lYXIgc2VhcmNoIHdpbGwg YmUgc2xvdy4NCj4gPj4NCj4gPj4gQ29uc2lkZXIgY2hhbmdpbmcgdGhlIHNlYXJjaCBhbGdvcml0 aG0uDQo+ID4gVGhpcyBpcyBub3QgaW4gdGhlIHRpbWUgY3JpdGljYWwgcGFydCBvZiB0aGUgY29k ZQ0KPiBvaw0KPiA+DQo+ID4NCj4gPj4+ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwlyZXR1cm4gVUlO VDE2X01BWDsNCj4gPj4gdGhlIGludGVycnVwdCBoYW5kbGVycyB0aGF0IHVzZSB0aGlzIGZ1bmN0 aW9uIGRvIG5vdCBhIGdyZWF0IGpvYiBvZg0KPiA+PiBoYW5kbGluZyB0aGlzIGVycm9yLg0KPiA+ IGlmIHRoYXQgZXJyb3IgYWN0dWFseSBoYXBwZW5lZCB0aGVuIHRoZXJlIGlzIG5vdCBtdWNoIGVs c2UgdGhhdCBjYW4gYmUNCj4gZG9uZSBleGNlcHQgcmVwb3J0aW5nIHRoZSB1bmV4cGVjdGVkIGRh dGEuDQo+IG9rDQo+ID4NCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiArLyogQ2hlY2tzIFBGIElu Zm8gUmluZyB0byBmaW5kIHRoZSBpbnRlcnJ1cHQgY2F1c2UgYW5kIGhhbmRsZXMgaXQNCj4gPj4+ ICthY2NvcmRpbmdseSAqLyBzdGF0aWMgaW5saW5lIHZvaWQgYWNjMTAwX2NoZWNrX2lyKHN0cnVj dA0KPiA+Pj4gK2FjYzEwMF9kZXZpY2UgKmFjYzEwMF9kZXYpIHsNCj4gPj4+ICsJdm9sYXRpbGUg dW5pb24gYWNjMTAwX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7DQo+ID4+PiArCXVpbnQxNl90 IGluZm9fcmluZ19oZWFkID0gYWNjMTAwX2Rldi0+aW5mb19yaW5nX2hlYWQ7DQo+ID4+PiArCWlm IChhY2MxMDBfZGV2LT5pbmZvX3JpbmcgPT0gTlVMTCkNCj4gPj4+ICsJCXJldHVybjsNCj4gPj4+ ICsNCj4gPj4+ICsJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+aW5mb19yaW5nICsgKGFjYzEwMF9k ZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPj4+ICsJCQlBQ0MxMDBfSU5GT19SSU5HX01BU0spOw0K PiA+Pj4gKw0KPiA+Pj4gKwl3aGlsZSAocmluZ19kYXRhLT52YWxpZCkgew0KPiA+Pj4gKwkJaWYg KChyaW5nX2RhdGEtPmludF9uYiA8DQo+ID4+IEFDQzEwMF9QRl9JTlRfRE1BX0RMX0RFU0NfSVJR KSB8fCAoDQo+ID4+PiArCQkJCXJpbmdfZGF0YS0+aW50X25iID4NCj4gPj4+ICsJCQkJQUNDMTAw X1BGX0lOVF9ETUFfREw1R19ERVNDX0lSUSkpDQo+ID4+PiArCQkJcnRlX2JiZGV2X2xvZyhXQVJO SU5HLCAiSW5mb1Jpbmc6IElUUjolZA0KPiA+PiBJbmZvOjB4JXgiLA0KPiA+Pj4gKwkJCQlyaW5n X2RhdGEtPmludF9uYiwgcmluZ19kYXRhLQ0KPiA+Pj4gZGV0YWlsZWRfaW5mbyk7DQo+ID4+PiAr CQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92ZSBmb3J3YXJkICovDQo+ID4+ PiArCQlyaW5nX2RhdGEtPnZhbCA9IDA7DQo+ID4+PiArCQlpbmZvX3JpbmdfaGVhZCsrOw0KPiA+ Pj4gKwkJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+aW5mb19yaW5nICsNCj4gPj4+ICsJCQkJKGlu Zm9fcmluZ19oZWFkICYNCj4gPj4gQUNDMTAwX0lORk9fUklOR19NQVNLKTsNCj4gPj4gVGhlc2Ug dGhyZWUgc3RhdGVtZW50cyBhcmUgY29tbW9uIGZvciB0aGUgcmluZyBoYW5kbGluZywgY29uc2lk ZXIgYQ0KPiA+PiBtYWNybyBvciBpbmxpbmUgZnVuY3Rpb24uDQo+ID4gb2sNCj4gPg0KPiA+Pj4g Kwl9DQo+ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4gKy8qIENoZWNrcyBQRiBJbmZvIFJpbmcgdG8g ZmluZCB0aGUgaW50ZXJydXB0IGNhdXNlIGFuZCBoYW5kbGVzIGl0DQo+ID4+PiArYWNjb3JkaW5n bHkgKi8gc3RhdGljIGlubGluZSB2b2lkDQo+ID4+PiArYWNjMTAwX3BmX2ludGVycnVwdF9oYW5k bGVyKHN0cnVjdA0KPiA+Pj4gK3J0ZV9iYmRldiAqZGV2KSB7DQo+ID4+PiArCXN0cnVjdCBhY2Mx MDBfZGV2aWNlICphY2MxMDBfZGV2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPj4+ICsJ dm9sYXRpbGUgdW5pb24gYWNjMTAwX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7DQo+ID4+PiAr CXN0cnVjdCBhY2MxMDBfZGVxX2ludHJfZGV0YWlscyBkZXFfaW50cl9kZXQ7DQo+ID4+PiArDQo+ ID4+PiArCXJpbmdfZGF0YSA9IGFjYzEwMF9kZXYtPmluZm9fcmluZyArIChhY2MxMDBfZGV2LT5p bmZvX3JpbmdfaGVhZCAmDQo+ID4+PiArCQkJQUNDMTAwX0lORk9fUklOR19NQVNLKTsNCj4gPj4+ ICsNCj4gPj4+ICsJd2hpbGUgKHJpbmdfZGF0YS0+dmFsaWQpIHsNCj4gPj4+ICsNCj4gPj4+ICsJ CXJ0ZV9iYmRldl9sb2dfZGVidWcoDQo+ID4+PiArCQkJCSJBQ0MxMDAgUEYgSW50ZXJydXB0IHJl Y2VpdmVkLCBJbmZvIFJpbmcNCj4gPj4gZGF0YTogMHgleCIsDQo+ID4+PiArCQkJCXJpbmdfZGF0 YS0+dmFsKTsNCj4gPj4+ICsNCj4gPj4+ICsJCXN3aXRjaCAocmluZ19kYXRhLT5pbnRfbmIpIHsN Cj4gPj4+ICsJCWNhc2UgQUNDMTAwX1BGX0lOVF9ETUFfRExfREVTQ19JUlE6DQo+ID4+PiArCQlj YXNlIEFDQzEwMF9QRl9JTlRfRE1BX1VMX0RFU0NfSVJROg0KPiA+Pj4gKwkJY2FzZSBBQ0MxMDBf UEZfSU5UX0RNQV9VTDVHX0RFU0NfSVJROg0KPiA+Pj4gKwkJY2FzZSBBQ0MxMDBfUEZfSU5UX0RN QV9ETDVHX0RFU0NfSVJROg0KPiA+Pj4gKwkJCWRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9DQo+ID4+ IGdldF9xdWV1ZV9pZF9mcm9tX3JpbmdfaW5mbygNCj4gPj4+ICsJCQkJCWRldi0+ZGF0YSwgKnJp bmdfZGF0YSk7DQo+ID4+PiArCQkJaWYgKGRlcV9pbnRyX2RldC5xdWV1ZV9pZCA9PSBVSU5UMTZf TUFYKSB7DQo+ID4+PiArCQkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+Pj4gKwkJCQkJCSJDb3Vs ZG4ndCBmaW5kIHF1ZXVlOiBhcV9pZDoNCj4gPj4gJXUsIHFnX2lkOiAldSwgdmZfaWQ6ICV1IiwN Cj4gPj4+ICsJCQkJCQlyaW5nX2RhdGEtPmFxX2lkLA0KPiA+Pj4gKwkJCQkJCXJpbmdfZGF0YS0+ cWdfaWQsDQo+ID4+PiArCQkJCQkJcmluZ19kYXRhLT52Zl9pZCk7DQo+ID4+PiArCQkJCXJldHVy bjsNCj4gPj4+ICsJCQl9DQo+ID4+PiArCQkJcnRlX2JiZGV2X3BtZF9jYWxsYmFja19wcm9jZXNz KGRldiwNCj4gPj4+ICsJCQkJCVJURV9CQkRFVl9FVkVOVF9ERVFVRVVFLA0KPiA+PiAmZGVxX2lu dHJfZGV0KTsNCj4gPj4+ICsJCQlicmVhazsNCj4gPj4+ICsJCWRlZmF1bHQ6DQo+ID4+PiArCQkJ cnRlX2JiZGV2X3BtZF9jYWxsYmFja19wcm9jZXNzKGRldiwNCj4gPj4+ICsJCQkJCVJURV9CQkRF Vl9FVkVOVF9FUlJPUiwgTlVMTCk7DQo+ID4+PiArCQkJYnJlYWs7DQo+ID4+PiArCQl9DQo+ID4+ PiArDQo+ID4+PiArCQkvKiBJbml0aWFsaXplIEluZm8gUmluZyBlbnRyeSBhbmQgbW92ZSBmb3J3 YXJkICovDQo+ID4+PiArCQlyaW5nX2RhdGEtPnZhbCA9IDA7DQo+ID4+PiArCQkrK2FjYzEwMF9k ZXYtPmluZm9fcmluZ19oZWFkOw0KPiA+Pj4gKwkJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+aW5m b19yaW5nICsNCj4gPj4+ICsJCQkJKGFjYzEwMF9kZXYtPmluZm9fcmluZ19oZWFkICYNCj4gPj4+ ICsJCQkJQUNDMTAwX0lORk9fUklOR19NQVNLKTsNCj4gPj4+ICsJfQ0KPiA+Pj4gK30NCj4gPj4+ ICsNCj4gPj4+ICsvKiBDaGVja3MgVkYgSW5mbyBSaW5nIHRvIGZpbmQgdGhlIGludGVycnVwdCBj YXVzZSBhbmQgaGFuZGxlcyBpdA0KPiA+Pj4gK2FjY29yZGluZ2x5ICovIHN0YXRpYyBpbmxpbmUg dm9pZA0KPiA+Pj4gK2FjYzEwMF92Zl9pbnRlcnJ1cHRfaGFuZGxlcihzdHJ1Y3QNCj4gPj4+ICty dGVfYmJkZXYgKmRldikNCj4gPj4gdmVyeSBzaW1pbGFyIHRvIHBmIGNhc2UsIGNvbnNpZGVyIGNv bWJpbmluZy4NCj4gPj4+ICt7DQo+ID4+PiArCXN0cnVjdCBhY2MxMDBfZGV2aWNlICphY2MxMDBf ZGV2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPj4+ICsJdm9sYXRpbGUgdW5pb24gYWNj MTAwX2luZm9fcmluZ19kYXRhICpyaW5nX2RhdGE7DQo+ID4+PiArCXN0cnVjdCBhY2MxMDBfZGVx X2ludHJfZGV0YWlscyBkZXFfaW50cl9kZXQ7DQo+ID4+PiArDQo+ID4+PiArCXJpbmdfZGF0YSA9 IGFjYzEwMF9kZXYtPmluZm9fcmluZyArIChhY2MxMDBfZGV2LT5pbmZvX3JpbmdfaGVhZCAmDQo+ ID4+PiArCQkJQUNDMTAwX0lORk9fUklOR19NQVNLKTsNCj4gPj4+ICsNCj4gPj4+ICsJd2hpbGUg KHJpbmdfZGF0YS0+dmFsaWQpIHsNCj4gPj4+ICsNCj4gPj4+ICsJCXJ0ZV9iYmRldl9sb2dfZGVi dWcoDQo+ID4+PiArCQkJCSJBQ0MxMDAgVkYgSW50ZXJydXB0IHJlY2VpdmVkLCBJbmZvIFJpbmcN Cj4gPj4gZGF0YTogMHgleCIsDQo+ID4+PiArCQkJCXJpbmdfZGF0YS0+dmFsKTsNCj4gPj4+ICsN Cj4gPj4+ICsJCXN3aXRjaCAocmluZ19kYXRhLT5pbnRfbmIpIHsNCj4gPj4+ICsJCWNhc2UgQUND MTAwX1ZGX0lOVF9ETUFfRExfREVTQ19JUlE6DQo+ID4+PiArCQljYXNlIEFDQzEwMF9WRl9JTlRf RE1BX1VMX0RFU0NfSVJROg0KPiA+Pj4gKwkJY2FzZSBBQ0MxMDBfVkZfSU5UX0RNQV9VTDVHX0RF U0NfSVJROg0KPiA+Pj4gKwkJY2FzZSBBQ0MxMDBfVkZfSU5UX0RNQV9ETDVHX0RFU0NfSVJROg0K PiA+Pj4gKwkJCS8qIFZGcyBhcmUgbm90IGF3YXJlIG9mIHRoZWlyIHZmX2lkIC0gaXQncyBzZXQg dG8gMCBpbg0KPiA+Pj4gKwkJCSAqIHF1ZXVlIHN0cnVjdHVyZXMuDQo+ID4+PiArCQkJICovDQo+ ID4+PiArCQkJcmluZ19kYXRhLT52Zl9pZCA9IDA7DQo+ID4+PiArCQkJZGVxX2ludHJfZGV0LnF1 ZXVlX2lkID0NCj4gPj4gZ2V0X3F1ZXVlX2lkX2Zyb21fcmluZ19pbmZvKA0KPiA+Pj4gKwkJCQkJ ZGV2LT5kYXRhLCAqcmluZ19kYXRhKTsNCj4gPj4+ICsJCQlpZiAoZGVxX2ludHJfZGV0LnF1ZXVl X2lkID09IFVJTlQxNl9NQVgpIHsNCj4gPj4+ICsJCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4+ PiArCQkJCQkJIkNvdWxkbid0IGZpbmQgcXVldWU6IGFxX2lkOg0KPiA+PiAldSwgcWdfaWQ6ICV1 IiwNCj4gPj4+ICsJCQkJCQlyaW5nX2RhdGEtPmFxX2lkLA0KPiA+Pj4gKwkJCQkJCXJpbmdfZGF0 YS0+cWdfaWQpOw0KPiA+Pj4gKwkJCQlyZXR1cm47DQo+ID4+PiArCQkJfQ0KPiA+Pj4gKwkJCXJ0 ZV9iYmRldl9wbWRfY2FsbGJhY2tfcHJvY2VzcyhkZXYsDQo+ID4+PiArCQkJCQlSVEVfQkJERVZf RVZFTlRfREVRVUVVRSwNCj4gPj4gJmRlcV9pbnRyX2RldCk7DQo+ID4+PiArCQkJYnJlYWs7DQo+ ID4+PiArCQlkZWZhdWx0Og0KPiA+Pj4gKwkJCXJ0ZV9iYmRldl9wbWRfY2FsbGJhY2tfcHJvY2Vz cyhkZXYsDQo+ID4+PiArCQkJCQlSVEVfQkJERVZfRVZFTlRfRVJST1IsIE5VTEwpOw0KPiA+Pj4g KwkJCWJyZWFrOw0KPiA+Pj4gKwkJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwkJLyogSW5pdGlhbGl6ZSBJ bmZvIFJpbmcgZW50cnkgYW5kIG1vdmUgZm9yd2FyZCAqLw0KPiA+Pj4gKwkJcmluZ19kYXRhLT52 YWxpZCA9IDA7DQo+ID4+PiArCQkrK2FjYzEwMF9kZXYtPmluZm9fcmluZ19oZWFkOw0KPiA+Pj4g KwkJcmluZ19kYXRhID0gYWNjMTAwX2Rldi0+aW5mb19yaW5nICsgKGFjYzEwMF9kZXYtDQo+ID4+ PiBpbmZvX3JpbmdfaGVhZA0KPiA+Pj4gKwkJCQkmIEFDQzEwMF9JTkZPX1JJTkdfTUFTSyk7DQo+ ID4+PiArCX0NCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiArLyogSW50ZXJydXB0IGhhbmRsZXIg dHJpZ2dlcmVkIGJ5IEFDQzEwMCBkZXYgZm9yIGhhbmRsaW5nIHNwZWNpZmljDQo+ID4+PiAraW50 ZXJydXB0ICovIHN0YXRpYyB2b2lkIGFjYzEwMF9kZXZfaW50ZXJydXB0X2hhbmRsZXIodm9pZCAq Y2JfYXJnKSB7DQo+ID4+PiArCXN0cnVjdCBydGVfYmJkZXYgKmRldiA9IGNiX2FyZzsNCj4gPj4+ ICsJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmFjYzEwMF9kZXYgPSBkZXYtPmRhdGEtPmRldl9wcml2 YXRlOw0KPiA+Pj4gKw0KPiA+Pj4gKwkvKiBSZWFkIGluZm8gcmluZyAqLw0KPiA+Pj4gKwlpZiAo YWNjMTAwX2Rldi0+cGZfZGV2aWNlKQ0KPiA+Pj4gKwkJYWNjMTAwX3BmX2ludGVycnVwdF9oYW5k bGVyKGRldik7DQo+ID4+IGNvbWJpbmVkIGxpa2UgLi4NCj4gPj4NCj4gPj4gYWNjMTAwX2ludGVy cnVwdF9oYW5kbGVyKGRldiwgaXNfcGYpDQo+ID4gdW5zdXJlIGl0IHdpbGwgaGVscCByZWFkYWJp bGl0eS4gTXVjaCBvZiB0aGUgY29kZSB3b3VsZCBzdGlsbCBiZQ0KPiA+IGRpc3RpbmN0DQo+IG9r DQo+ID4NCj4gPj4+ICsJZWxzZQ0KPiA+Pj4gKwkJYWNjMTAwX3ZmX2ludGVycnVwdF9oYW5kbGVy KGRldik7IH0NCj4gPj4+ICsNCj4gPj4+ICsvKiBBbGxvY2F0ZSBhbmQgc2V0dXAgaW5mb3Jpbmcg Ki8NCj4gPj4+ICtzdGF0aWMgaW50DQo+ID4+PiArYWxsb2NhdGVfaW5mb3Jpbmcoc3RydWN0IHJ0 ZV9iYmRldiAqZGV2KQ0KPiA+PiBjb25zaWRlciByZW5hbWluZw0KPiA+Pg0KPiA+PiBhbGxvY2F0 ZV9pbmZvX3JpbmcNCj4gPiBvaw0KPiA+DQo+ID4+PiArew0KPiA+Pj4gKwlzdHJ1Y3QgYWNjMTAw X2RldmljZSAqZCA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4+PiArCWNvbnN0IHN0cnVj dCBhY2MxMDBfcmVnaXN0cnlfYWRkciAqcmVnX2FkZHI7DQo+ID4+PiArCXJ0ZV9pb3ZhX3QgaW5m b19yaW5nX3BoeXM7DQo+ID4+PiArCXVpbnQzMl90IHBoeXNfbG93LCBwaHlzX2hpZ2g7DQo+ID4+ PiArDQo+ID4+PiArCWlmIChkLT5pbmZvX3JpbmcgIT0gTlVMTCkNCj4gPj4+ICsJCXJldHVybiAw OyAvKiBBbHJlYWR5IGNvbmZpZ3VyZWQgKi8NCj4gPj4+ICsNCj4gPj4+ICsJLyogQ2hvb3NlIGNv cnJlY3QgcmVnaXN0cnkgYWRkcmVzc2VzIGZvciB0aGUgZGV2aWNlIHR5cGUgKi8NCj4gPj4+ICsJ aWYgKGQtPnBmX2RldmljZSkNCj4gPj4+ICsJCXJlZ19hZGRyID0gJnBmX3JlZ19hZGRyOw0KPiA+ Pj4gKwllbHNlDQo+ID4+PiArCQlyZWdfYWRkciA9ICZ2Zl9yZWdfYWRkcjsNCj4gPj4+ICsJLyog QWxsb2NhdGUgSW5mb1JpbmcgKi8NCj4gPj4+ICsJZC0+aW5mb19yaW5nID0gcnRlX3ptYWxsb2Nf c29ja2V0KCJJbmZvIFJpbmciLA0KPiA+Pj4gKwkJCUFDQzEwMF9JTkZPX1JJTkdfTlVNX0VOVFJJ RVMgKg0KPiA+Pj4gKwkJCXNpemVvZigqZC0+aW5mb19yaW5nKSwgUlRFX0NBQ0hFX0xJTkVfU0la RSwNCj4gPj4+ICsJCQlkZXYtPmRhdGEtPnNvY2tldF9pZCk7DQo+ID4+PiArCWlmIChkLT5pbmZv X3JpbmcgPT0gTlVMTCkgew0KPiA+Pj4gKwkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4+PiArCQkJ CSJGYWlsZWQgdG8gYWxsb2NhdGUgSW5mbyBSaW5nIGZvciAlczoldSIsDQo+ID4+PiArCQkJCWRl di0+ZGV2aWNlLT5kcml2ZXItPm5hbWUsDQo+ID4+PiArCQkJCWRldi0+ZGF0YS0+ZGV2X2lkKTsN Cj4gPj4gVGhlIGNhbGxlcnMgZG8gbm90IGNoZWNrIHRoYXQgdGhpcyBmYWlscy4NCj4gPiBhcmd1 YWJseSB0aGUgZXJyb3Igd291bGQgYmUgc2VsZiBjb250YWluZWQgaWYgdGhhdCBkaWQgZmFpbC4g QnV0IGRvZXNuJ3QgaHVydA0KPiB0byBhZGQsIG9rLg0KPiA+DQo+ID4+PiArCQlyZXR1cm4gLUVO T01FTTsNCj4gPj4+ICsJfQ0KPiA+Pj4gKwlpbmZvX3JpbmdfcGh5cyA9IHJ0ZV9tYWxsb2Nfdmly dDJpb3ZhKGQtPmluZm9fcmluZyk7DQo+ID4+PiArDQo+ID4+PiArCS8qIFNldHVwIEluZm8gUmlu ZyAqLw0KPiA+Pj4gKwlwaHlzX2hpZ2ggPSAodWludDMyX3QpKGluZm9fcmluZ19waHlzID4+IDMy KTsNCj4gPj4+ICsJcGh5c19sb3cgID0gKHVpbnQzMl90KShpbmZvX3JpbmdfcGh5cyk7DQo+ID4+ PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmluZm9fcmluZ19oaSwgcGh5c19oaWdo KTsNCj4gPj4+ICsJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+aW5mb19yaW5nX2xvLCBw aHlzX2xvdyk7DQo+ID4+PiArCWFjYzEwMF9yZWdfd3JpdGUoZCwgcmVnX2FkZHItPmluZm9fcmlu Z19lbiwNCj4gPj4gQUNDMTAwX1JFR19JUlFfRU5fQUxMKTsNCj4gPj4+ICsJZC0+aW5mb19yaW5n X2hlYWQgPSAoYWNjMTAwX3JlZ19yZWFkKGQsIHJlZ19hZGRyLT5pbmZvX3JpbmdfcHRyKSAmDQo+ ID4+PiArCQkJMHhGRkYpIC8gc2l6ZW9mKHVuaW9uIGFjYzEwMF9pbmZvX3JpbmdfZGF0YSk7DQo+ ID4+PiArCXJldHVybiAwOw0KPiA+Pj4gK30NCj4gPj4+ICsNCj4gPj4+ICsNCj4gPj4+ICAvKiBB bGxvY2F0ZSA2NE1CIG1lbW9yeSB1c2VkIGZvciBhbGwgc29mdHdhcmUgcmluZ3MgKi8gIHN0YXRp YyBpbnQNCj4gPj4+IGFjYzEwMF9zZXR1cF9xdWV1ZXMoc3RydWN0IHJ0ZV9iYmRldiAqZGV2LCB1 aW50MTZfdCBudW1fcXVldWVzLCBpbnQNCj4gPj4+IHNvY2tldF9pZCkgQEAgLTQyNiw2ICs2MzMs NyBAQA0KPiA+Pj4gIAlhY2MxMDBfcmVnX3dyaXRlKGQsIHJlZ19hZGRyLT50YWlsX3B0cnNfZGw0 Z19oaSwgcGh5c19oaWdoKTsNCj4gPj4+ICAJYWNjMTAwX3JlZ193cml0ZShkLCByZWdfYWRkci0+ dGFpbF9wdHJzX2RsNGdfbG8sIHBoeXNfbG93KTsNCj4gPj4+DQo+ID4+PiArCWFsbG9jYXRlX2lu Zm9yaW5nKGRldik7DQo+ID4+IG5lZWQgdG8gY2hlY2sgaGVyZQ0KPiA+Pj4gIAlkLT5oYXJxX2xh eW91dCA9IHJ0ZV96bWFsbG9jX3NvY2tldCgiSEFSUSBMYXlvdXQiLA0KPiA+Pj4gIAkJCUFDQzEw MF9IQVJRX0xBWU9VVCAqIHNpemVvZigqZC0+aGFycV9sYXlvdXQpLA0KPiA+Pj4gIAkJCVJURV9D QUNIRV9MSU5FX1NJWkUsIGRldi0+ZGF0YS0+c29ja2V0X2lkKTsgQEAgLQ0KPiA+PiA0MzcsMTMg KzY0NSw1MyBAQA0KPiA+Pj4gIAlyZXR1cm4gMDsNCj4gPj4+ICB9DQo+ID4+Pg0KPiA+Pj4gK3N0 YXRpYyBpbnQNCj4gPj4+ICthY2MxMDBfaW50cl9lbmFibGUoc3RydWN0IHJ0ZV9iYmRldiAqZGV2 KSB7DQo+ID4+PiArCWludCByZXQ7DQo+ID4+PiArCXN0cnVjdCBhY2MxMDBfZGV2aWNlICpkID0g ZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPj4+ICsNCj4gPj4+ICsJLyogT25seSBNU0kgYXJl IGN1cnJlbnRseSBzdXBwb3J0ZWQgKi8NCj4gPj4+ICsJaWYgKGRldi0+aW50cl9oYW5kbGUtPnR5 cGUgPT0gUlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJIHx8DQo+ID4+PiArCQkJZGV2LT5pbnRyX2hh bmRsZS0+dHlwZSA9PSBSVEVfSU5UUl9IQU5ETEVfVUlPKQ0KPiA+PiB7DQo+ID4+PiArDQo+ID4+ PiArCQlhbGxvY2F0ZV9pbmZvcmluZyhkZXYpOw0KPiA+PiBuZWVkIHRvIGNoZWNrIGhlcmUNCj4g Pj4+ICsNCj4gPj4+ICsJCXJldCA9IHJ0ZV9pbnRyX2VuYWJsZShkZXYtPmludHJfaGFuZGxlKTsN Cj4gPj4+ICsJCWlmIChyZXQgPCAwKSB7DQo+ID4+PiArCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ ID4+PiArCQkJCQkiQ291bGRuJ3QgZW5hYmxlIGludGVycnVwdHMgZm9yDQo+ID4+IGRldmljZTog JXMiLA0KPiA+Pj4gKwkJCQkJZGV2LT5kYXRhLT5uYW1lKTsNCj4gPj4+ICsJCQlydGVfZnJlZShk LT5pbmZvX3JpbmcpOw0KPiA+Pj4gKwkJCXJldHVybiByZXQ7DQo+ID4+PiArCQl9DQo+ID4+PiAr CQlyZXQgPSBydGVfaW50cl9jYWxsYmFja19yZWdpc3RlcihkZXYtPmludHJfaGFuZGxlLA0KPiA+ Pj4gKwkJCQlhY2MxMDBfZGV2X2ludGVycnVwdF9oYW5kbGVyLCBkZXYpOw0KPiA+Pj4gKwkJaWYg KHJldCA8IDApIHsNCj4gPj4+ICsJCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPj4+ICsJCQkJCSJD b3VsZG4ndCByZWdpc3RlciBpbnRlcnJ1cHQgY2FsbGJhY2sNCj4gPj4gZm9yIGRldmljZTogJXMi LA0KPiA+Pj4gKwkJCQkJZGV2LT5kYXRhLT5uYW1lKTsNCj4gPj4+ICsJCQlydGVfZnJlZShkLT5p bmZvX3JpbmcpOw0KPiA+PiBkb2VzIGludHIgbmVlZCB0byBiZSBkaXNhYmxlZCBoZXJlID8NCj4g PiBXZWxsIEkgZG9uJ3Qgc2VlIGEgbG90IG9mIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgZHJpdmVy cy4gU29tZXRpbWVzIHRoZXNlDQo+IGFyZSBub3QgZXZlbiBjaGVjayBmb3IgZmFpbHVyZS4NCj4g PiBJIHdvdWxkIHJhdGhlciBkZWZlciBjaGFuZ2luZyB0aHJvdWdoIG90aGVyIGZ1dHVyZSBwYXRj aCBpZiByZXF1aXJlZCBhcyB0aGlzDQo+IGlzIHNhbWUgY29kZSBvbiBvdGhlciBiYmRldiBkcml2 ZXJzIGFscmVhZHkgdXNlZCAoaWYgY2hhbmdlZCBJIHdvdWxkIHJhdGhlcg0KPiBhbGwgY2hhbmdl ZCB0aGUgc2FtZSB3YXkpLg0KPiANCj4gb2suDQo+IA0KPiANCj4gPg0KPiA+Pj4gKwkJCXJldHVy biByZXQ7DQo+ID4+PiArCQl9DQo+ID4+PiArDQo+ID4+PiArCQlyZXR1cm4gMDsNCj4gPj4+ICsJ fQ0KPiA+Pj4gKw0KPiA+Pj4gKwlydGVfYmJkZXZfbG9nKEVSUiwgIkFDQzEwMCAoJXMpIHN1cHBv cnRzIG9ubHkgVkZJTyBNU0kNCj4gPj4gaW50ZXJydXB0cyIsDQo+ID4+PiArCQkJZGV2LT5kYXRh LT5uYW1lKTsNCj4gPj4+ICsJcmV0dXJuIC1FTk9UU1VQOw0KPiA+Pj4gK30NCj4gPj4+ICsNCj4g Pj4+ICAvKiBGcmVlIDY0TUIgbWVtb3J5IHVzZWQgZm9yIHNvZnR3YXJlIHJpbmdzICovICBzdGF0 aWMgaW50DQo+ID4+PiBhY2MxMDBfZGV2X2Nsb3NlKHN0cnVjdCBydGVfYmJkZXYgKmRldikgIHsN Cj4gPj4+ICAJc3RydWN0IGFjYzEwMF9kZXZpY2UgKmQgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRl Ow0KPiA+Pj4gKwlhY2MxMDBfY2hlY2tfaXIoZCk7DQo+ID4+PiAgCWlmIChkLT5zd19yaW5nc19i YXNlICE9IE5VTEwpIHsNCj4gPj4+ICAJCXJ0ZV9mcmVlKGQtPnRhaWxfcHRycyk7DQo+ID4+PiAr CQlydGVfZnJlZShkLT5pbmZvX3JpbmcpOw0KPiA+Pj4gIAkJcnRlX2ZyZWUoZC0+c3dfcmluZ3Nf YmFzZSk7DQo+ID4+PiAgCQlkLT5zd19yaW5nc19iYXNlID0gTlVMTDsNCj4gPj4+ICAJfQ0KPiA+ Pj4gQEAgLTY0Myw2ICs4OTEsNyBAQA0KPiA+Pj4gIAkJCQkJUlRFX0JCREVWX1RVUkJPX0NSQ19U WVBFXzI0Qg0KPiA+PiB8DQo+ID4+IAlSVEVfQkJERVZfVFVSQk9fSEFMRl9JVEVSQVRJT05fRVZF TiB8DQo+ID4+IAlSVEVfQkJERVZfVFVSQk9fRUFSTFlfVEVSTUlOQVRJT04gfA0KPiA+Pj4gKw0K PiA+PiAJUlRFX0JCREVWX1RVUkJPX0RFQ19JTlRFUlJVUFRTIHwNCj4gPj4gCVJURV9CQkRFVl9U VVJCT19ORUdfTExSXzFfQklUX0lOIHwNCj4gPj4+ICAJCQkJCVJURV9CQkRFVl9UVVJCT19NQVBf REVDIHwNCj4gPj4+DQo+ID4+IAlSVEVfQkJERVZfVFVSQk9fREVDX1RCX0NSQ18yNEJfS0VFUCB8 IEBAIC02NjMsNiArOTEyLDcNCj4gQEANCj4gPj4gCVJURV9CQkRFVl9UVVJCT19DUkNfMjRCX0FU VEFDSCB8DQo+ID4+IAlSVEVfQkJERVZfVFVSQk9fUlZfSU5ERVhfQllQQVNTIHwNCj4gPj4+ICAJ CQkJCVJURV9CQkRFVl9UVVJCT19SQVRFX01BVENIIHwNCj4gPj4+ICsNCj4gPj4gCVJURV9CQkRF Vl9UVVJCT19FTkNfSU5URVJSVVBUUyB8DQo+ID4+IAlSVEVfQkJERVZfVFVSQk9fRU5DX1NDQVRU RVJfR0FUSEVSLA0KPiA+Pj4gIAkJCQkubnVtX2J1ZmZlcnNfc3JjID0NCj4gPj4+DQo+ID4+IAlS VEVfQkJERVZfVFVSQk9fTUFYX0NPREVfQkxPQ0tTLCBAQCAtNjc2LDcgKzkyNiw4IEBADQo+ID4+ PiAgCQkJCS5jYXBhYmlsaXR5X2ZsYWdzID0NCj4gPj4+ICAJCQkJCVJURV9CQkRFVl9MRFBDX1JB VEVfTUFUQ0ggfA0KPiA+Pj4NCj4gPj4gCVJURV9CQkRFVl9MRFBDX0NSQ18yNEJfQVRUQUNIIHwN Cj4gPj4+IC0NCj4gPj4gCVJURV9CQkRFVl9MRFBDX0lOVEVSTEVBVkVSX0JZUEFTUywNCj4gPj4+ ICsNCj4gPj4gCVJURV9CQkRFVl9MRFBDX0lOVEVSTEVBVkVSX0JZUEFTUyB8DQo+ID4+PiArDQo+ ID4+IAlSVEVfQkJERVZfTERQQ19FTkNfSU5URVJSVVBUUywNCj4gPj4+ICAJCQkJLm51bV9idWZm ZXJzX3NyYyA9DQo+ID4+Pg0KPiA+PiAJUlRFX0JCREVWX0xEUENfTUFYX0NPREVfQkxPQ0tTLA0K PiA+Pj4gIAkJCQkubnVtX2J1ZmZlcnNfZHN0ID0NCj4gPj4+IEBAIC03MDEsNyArOTUyLDggQEAN Cj4gPj4+ICAJCQkJUlRFX0JCREVWX0xEUENfREVDT0RFX0JZUEFTUyB8DQo+ID4+PiAgCQkJCVJU RV9CQkRFVl9MRFBDX0RFQ19TQ0FUVEVSX0dBVEhFUiB8DQo+ID4+Pg0KPiA+PiAJUlRFX0JCREVW X0xEUENfSEFSUV82QklUX0NPTVBSRVNTSU9OIHwNCj4gPj4+IC0JCQkJUlRFX0JCREVWX0xEUENf TExSX0NPTVBSRVNTSU9OLA0KPiA+Pj4gKwkJCQlSVEVfQkJERVZfTERQQ19MTFJfQ09NUFJFU1NJ T04gfA0KPiA+Pj4gKwkJCQlSVEVfQkJERVZfTERQQ19ERUNfSU5URVJSVVBUUywNCj4gPj4+ICAJ CQkubGxyX3NpemUgPSA4LA0KPiA+Pj4gIAkJCS5sbHJfZGVjaW1hbHMgPSAxLA0KPiA+Pj4gIAkJ CS5udW1fYnVmZmVyc19zcmMgPQ0KPiA+Pj4gQEAgLTc1MSwxNCArMTAwMywzOSBAQA0KPiA+Pj4g ICNlbHNlDQo+ID4+PiAgCWRldl9pbmZvLT5oYXJxX2J1ZmZlcl9zaXplID0gMDsNCj4gPj4+ICAj ZW5kaWYNCj4gPj4+ICsJYWNjMTAwX2NoZWNrX2lyKGQpOw0KPiA+Pj4gK30NCj4gPj4+ICsNCj4g Pj4+ICtzdGF0aWMgaW50DQo+ID4+PiArYWNjMTAwX3F1ZXVlX2ludHJfZW5hYmxlKHN0cnVjdCBy dGVfYmJkZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWQpDQo+IHsNCj4gPj4+ICsJc3RydWN0IGFj YzEwMF9xdWV1ZSAqcSA9IGRldi0+ZGF0YS0NCj4gPj4+IHF1ZXVlc1txdWV1ZV9pZF0ucXVldWVf cHJpdmF0ZTsNCj4gPj4+ICsNCj4gPj4+ICsJaWYgKGRldi0+aW50cl9oYW5kbGUtPnR5cGUgIT0g UlRFX0lOVFJfSEFORExFX1ZGSU9fTVNJICYmDQo+ID4+PiArCQkJZGV2LT5pbnRyX2hhbmRsZS0+ dHlwZSAhPSBSVEVfSU5UUl9IQU5ETEVfVUlPKQ0KPiA+Pj4gKwkJcmV0dXJuIC1FTk9UU1VQOw0K PiA+Pj4gKw0KPiA+Pj4gKwlxLT5pcnFfZW5hYmxlID0gMTsNCj4gPj4+ICsJcmV0dXJuIDA7DQo+ ID4+PiArfQ0KPiA+Pj4gKw0KPiA+Pj4gK3N0YXRpYyBpbnQNCj4gPj4+ICthY2MxMDBfcXVldWVf aW50cl9kaXNhYmxlKHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWQpDQo+ IHsNCj4gPj4+ICsJc3RydWN0IGFjYzEwMF9xdWV1ZSAqcSA9IGRldi0+ZGF0YS0NCj4gPj4+IHF1 ZXVlc1txdWV1ZV9pZF0ucXVldWVfcHJpdmF0ZTsNCj4gPj4+ICsJcS0+aXJxX2VuYWJsZSA9IDA7 DQo+ID4+IEEgLUVOT1RTVVAgYWJvdmUsIHNob3VsZCBuZWVkIHNpbWlsYXIgY2hlY2sgaGVyZS4N Cj4gPiBIb3cgY2FuIHRoaXMgZmFpbCB3aGVuIHdlIHB1cmVseSBkaXNhYmxlPw0KPiANCj4gSXQg aXMgZm9yIGFwaSBjb25zaXN0ZW5jeS4NCj4gDQo+IHRoZSBlbmFibGUgZmFpbHMNCj4gDQo+IHRo ZSBkaXNhYmxlIHN1Y2NlZWRzDQo+IA0KPiB0aGF0IGlzIG5vdCBjb25zaXN0ZW50Lg0KPiANCg0K T0sgY2FuIGRvLiBUaGFua3MNCg0KDQo+IFRvbQ0KPiANCj4gPg0KPiA+Pj4gKwlyZXR1cm4gMDsN Cj4gPj4+ICB9DQo+ID4+Pg0KPiA+Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcnRlX2JiZGV2X29w cyBhY2MxMDBfYmJkZXZfb3BzID0gew0KPiA+Pj4gIAkuc2V0dXBfcXVldWVzID0gYWNjMTAwX3Nl dHVwX3F1ZXVlcywNCj4gPj4+ICsJLmludHJfZW5hYmxlID0gYWNjMTAwX2ludHJfZW5hYmxlLA0K PiA+Pj4gIAkuY2xvc2UgPSBhY2MxMDBfZGV2X2Nsb3NlLA0KPiA+Pj4gIAkuaW5mb19nZXQgPSBh Y2MxMDBfZGV2X2luZm9fZ2V0LA0KPiA+Pj4gIAkucXVldWVfc2V0dXAgPSBhY2MxMDBfcXVldWVf c2V0dXAsDQo+ID4+PiAgCS5xdWV1ZV9yZWxlYXNlID0gYWNjMTAwX3F1ZXVlX3JlbGVhc2UsDQo+ ID4+PiArCS5xdWV1ZV9pbnRyX2VuYWJsZSA9IGFjYzEwMF9xdWV1ZV9pbnRyX2VuYWJsZSwNCj4g Pj4+ICsJLnF1ZXVlX2ludHJfZGlzYWJsZSA9IGFjYzEwMF9xdWV1ZV9pbnRyX2Rpc2FibGUNCj4g Pj4+ICB9Ow0KPiA+Pj4NCj4gPj4+ICAvKiBBQ0MxMDAgUENJIFBGIGFkZHJlc3MgbWFwICovDQo+ ID4+PiBAQCAtMzAxOCw4ICszMjk1LDEwIEBADQo+ID4+PiAgCQkJPyAoMSA8PCBSVEVfQkJERVZf REFUQV9FUlJPUikgOiAwKTsNCj4gPj4+ICAJb3AtPnN0YXR1cyB8PSAoKHJzcC5kbWFfZXJyKSA/ ICgxIDw8IFJURV9CQkRFVl9EUlZfRVJST1IpIDogMCk7DQo+ID4+PiAgCW9wLT5zdGF0dXMgfD0g KChyc3AuZmN3X2VycikgPyAoMSA8PCBSVEVfQkJERVZfRFJWX0VSUk9SKSA6IDApOw0KPiA+Pj4g LQlpZiAob3AtPnN0YXR1cyAhPSAwKQ0KPiA+Pj4gKwlpZiAob3AtPnN0YXR1cyAhPSAwKSB7DQo+ ID4+PiAgCQlxX2RhdGEtPnF1ZXVlX3N0YXRzLmRlcXVldWVfZXJyX2NvdW50Kys7DQo+ID4+PiAr CQlhY2MxMDBfY2hlY2tfaXIocS0+ZCk7DQo+ID4+PiArCX0NCj4gPj4+DQo+ID4+PiAgCS8qIENS QyBpbnZhbGlkIGlmIGVycm9yIGV4aXN0cyAqLw0KPiA+Pj4gIAlpZiAoIW9wLT5zdGF0dXMpDQo+ ID4+PiBAQCAtMzA3Niw2ICszMzU1LDkgQEANCj4gPj4+ICAJCW9wLT5zdGF0dXMgfD0gMSA8PCBS VEVfQkJERVZfU1lORFJPTUVfRVJST1I7DQo+ID4+PiAgCW9wLT5sZHBjX2RlYy5pdGVyX2NvdW50 ID0gKHVpbnQ4X3QpIHJzcC5pdGVyX2NudDsNCj4gPj4+DQo+ID4+PiArCWlmIChvcC0+c3RhdHVz ICYgKDEgPDwgUlRFX0JCREVWX0RSVl9FUlJPUikpDQo+ID4+PiArCQlhY2MxMDBfY2hlY2tfaXIo cS0+ZCk7DQo+ID4+PiArDQo+ID4+PiAgCS8qIENoZWNrIGlmIHRoaXMgaXMgdGhlIGxhc3QgZGVz YyBpbiBiYXRjaCAoQXRvbWljIFF1ZXVlKSAqLw0KPiA+Pj4gIAlpZiAoZGVzYy0+cmVxLmxhc3Rf ZGVzY19pbl9iYXRjaCkgew0KPiA+Pj4gIAkJKCphcV9kZXF1ZXVlZCkrKzsNCj4gPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9ydGVfYWNjMTAwX3BtZC5oDQo+ID4+PiBi L2RyaXZlcnMvYmFzZWJhbmQvYWNjMTAwL3J0ZV9hY2MxMDBfcG1kLmgNCj4gPj4+IGluZGV4IDc4 Njg2YzEuLjg5ODBmYTUgMTAwNjQ0DQo+ID4+PiAtLS0gYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEw MC9ydGVfYWNjMTAwX3BtZC5oDQo+ID4+PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYzEwMC9y dGVfYWNjMTAwX3BtZC5oDQo+ID4+PiBAQCAtNTU5LDcgKzU1OSwxNCBAQCBzdHJ1Y3QgYWNjMTAw X2RldmljZSB7DQo+ID4+PiAgCS8qIFZpcnR1YWwgYWRkcmVzcyBvZiB0aGUgaW5mbyBtZW1vcnkg cm91dGVkIHRvIHRoZSB0aGlzIGZ1bmN0aW9uDQo+ID4+IHVuZGVyDQo+ID4+PiAgCSAqIG9wZXJh dGlvbiwgd2hldGhlciBpdCBpcyBQRiBvciBWRi4NCj4gPj4+ICAJICovDQo+ID4+PiArCXVuaW9u IGFjYzEwMF9pbmZvX3JpbmdfZGF0YSAqaW5mb19yaW5nOw0KPiA+PiBOZWVkIGEgY29tbWVudCB0 aGF0IHRoaXMgYXJyYXkgbmVlZHMgYSBzZW50aW5lbCA/DQo+ID4gQ2FuIGNsYXJpZnkgYSBiaXQg ZXhwZWN0ZWQgSFcgYmVoYXZpb3VyDQo+ID4NCj4gPiBUaGFua3MNCj4gPg0KPiA+PiBUb20NCj4g Pj4NCj4gPj4+ICsNCj4gPj4+ICAJdW5pb24gYWNjMTAwX2hhcnFfbGF5b3V0X2RhdGEgKmhhcnFf bGF5b3V0Ow0KPiA+Pj4gKwkvKiBWaXJ0dWFsIEluZm8gUmluZyBoZWFkICovDQo+ID4+PiArCXVp bnQxNl90IGluZm9fcmluZ19oZWFkOw0KPiA+Pj4gKwkvKiBOdW1iZXIgb2YgYnl0ZXMgYXZhaWxh YmxlIGZvciBlYWNoIHF1ZXVlIGluIGRldmljZSwgZGVwZW5kaW5nDQo+ID4+IG9uDQo+ID4+PiAr CSAqIGhvdyBtYW55IHF1ZXVlcyBhcmUgZW5hYmxlZCB3aXRoIGNvbmZpZ3VyZSgpDQo+ID4+PiAr CSAqLw0KPiA+Pj4gIAl1aW50MzJfdCBzd19yaW5nX3NpemU7DQo+ID4+PiAgCXVpbnQzMl90IGRk cl9zaXplOyAvKiBTaXplIGluIGtCICovDQo+ID4+PiAgCXVpbnQzMl90ICp0YWlsX3B0cnM7IC8q IEJhc2UgYWRkcmVzcyBvZiByZXNwb25zZSB0YWlsIHBvaW50ZXINCj4gPj4+IGJ1ZmZlciAqLyBA QCAtNTc1LDQgKzU4MiwxMiBAQCBzdHJ1Y3QgYWNjMTAwX2RldmljZSB7DQo+ID4+PiAgCWJvb2wg Y29uZmlndXJlZDsgLyoqPCBUcnVlIGlmIHRoaXMgQUNDMTAwIGRldmljZSBpcyBjb25maWd1cmVk ICovDQo+ID4+PiB9Ow0KPiA+Pj4NCj4gPj4+ICsvKioNCj4gPj4+ICsgKiBTdHJ1Y3R1cmUgd2l0 aCBkZXRhaWxzIGFib3V0IFJURV9CQkRFVl9FVkVOVF9ERVFVRVVFIGV2ZW50Lg0KPiBJdCdzDQo+ ID4+PiArcGFzc2VkIHRvDQo+ID4+PiArICogdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLg0KPiA+Pj4g KyAqLw0KPiA+Pj4gK3N0cnVjdCBhY2MxMDBfZGVxX2ludHJfZGV0YWlscyB7DQo+ID4+PiArCXVp bnQxNl90IHF1ZXVlX2lkOw0KPiA+Pj4gK307DQo+ID4+PiArDQo+ID4+PiAgI2VuZGlmIC8qIF9S VEVfQUNDMTAwX1BNRF9IXyAqLw0KDQo=