From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 9DE791D7 for ; Tue, 19 Jun 2018 05:23:08 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Jun 2018 20:23:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,241,1526367600"; d="scan'208";a="58359042" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by FMSMGA003.fm.intel.com with ESMTP; 18 Jun 2018 20:22:56 -0700 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 18 Jun 2018 20:22:56 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx115.amr.corp.intel.com (10.18.116.19) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 18 Jun 2018 20:22:56 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.51]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.82]) with mapi id 14.03.0319.002; Tue, 19 Jun 2018 11:22:54 +0800 From: "Zhang, Qi Z" To: "Burakov, Anatoly" , "thomas@monjalon.net" CC: "Ananyev, Konstantin" , "dev@dpdk.org" , "Richardson, Bruce" , "Yigit, Ferruh" , "Shelton, Benjamin H" , "Vangati, Narender" Thread-Topic: [PATCH 04/22] ethdev: enable hotplug on multi-process Thread-Index: AQHUBtzyoDZY11QPm0CDugZc44S6kKRm4aVQ Date: Tue, 19 Jun 2018 03:22:53 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153239FAD@SHSMSX103.ccr.corp.intel.com> References: <20180607123849.14439-1-qi.z.zhang@intel.com> <20180607123849.14439-5-qi.z.zhang@intel.com> <3c273e40-9954-e9a3-2c78-9e245bacc19d@intel.com> In-Reply-To: <3c273e40-9954-e9a3-2c78-9e245bacc19d@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMjE4NTdmYTUtNTQ2Ny00YzdmLTk2MzItNmZmYjJkMjc1YjQyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiRDJCK0Jna0NTOWthdjhyS05xUWJuOGUyZHVxR0Y3VnlyYTFBdVJIRFp2Y3hVc0lkaW4rczBEWDhWR0p1dUZSSCJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 04/22] ethdev: enable hotplug on multi-process 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: , X-List-Received-Date: Tue, 19 Jun 2018 03:23:09 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnVyYWtvdiwgQW5hdG9s eQ0KPiBTZW50OiBNb25kYXksIEp1bmUgMTgsIDIwMTggNDoxOCBQTQ0KPiBUbzogWmhhbmcsIFFp IFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgdGhvbWFzQG1vbmphbG9uLm5ldA0KPiBDYzogQW5h bnlldiwgS29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IGRldkBkcGRr Lm9yZzsNCj4gUmljaGFyZHNvbiwgQnJ1Y2UgPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsg WWlnaXQsIEZlcnJ1aA0KPiA8ZmVycnVoLnlpZ2l0QGludGVsLmNvbT47IFNoZWx0b24sIEJlbmph bWluIEgNCj4gPGJlbmphbWluLmguc2hlbHRvbkBpbnRlbC5jb20+OyBWYW5nYXRpLCBOYXJlbmRl cg0KPiA8bmFyZW5kZXIudmFuZ2F0aUBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg MDQvMjJdIGV0aGRldjogZW5hYmxlIGhvdHBsdWcgb24gbXVsdGktcHJvY2Vzcw0KPiANCj4gT24g MDctSnVuLTE4IDE6MzggUE0sIFFpIFpoYW5nIHdyb3RlOg0KPiA+IFRoZSBwYXRjaCBpbnRyb2R1 Y2UgdGhlIHNvbHV0aW9uIHRvIGhhbmRsZSBkaWZmZXJlbnQgaG90cGx1ZyBjYXNlcyBpbg0KPiA+ IG11bHRpLXByb2Nlc3Mgc2l0dWF0aW9uLCBpdCBpbmNsdWRlIGJlbG93IHNjZW5hcmlvOg0KPiA+ DQo+ID4gMS4gQXR0YWNoIGEgc2hhcmUgZGV2aWNlIGZyb20gcHJpbWFyeQ0KPiA+IDIuIERldGFj aCBhIHNoYXJlIGRldmljZSBmcm9tIHByaW1hcnkNCj4gPiAzLiBBdHRhY2ggYSBzaGFyZSBkZXZp Y2UgZnJvbSBzZWNvbmRhcnkgNC4gRGV0YWNoIGEgc2hhcmUgZGV2aWNlIGZyb20NCj4gPiBzZWNv bmRhcnkgNS4gQXR0YWNoIGEgcHJpdmF0ZSBkZXZpY2UgZnJvbSBzZWNvbmRhcnkgNi4gRGV0YWNo IGENCj4gPiBwcml2YXRlIGRldmljZSBmcm9tIHNlY29uZGFyeSA3LiBEZXRhY2ggYSBzaGFyZSBk ZXZpY2UgZnJvbSBzZWNvbmRhcnkNCj4gPiBwcml2YXRlbHkgOC4gQXR0YWNoIGEgc2hhcmUgZGV2 aWNlIGZyb20gc2Vjb25kYXJ5IHByaXZhdGVseQ0KPiA+DQo+ID4gSW4gcHJpbWFyeS1zZWNvbmRh cnkgcHJvY2VzcyBtb2RlbCwgd2UgYXNzdW1lIGRldmljZSBpcyBzaGFyZWQgYnkNCj4gZGVmYXVs dC4NCj4gPiB0aGF0IG1lYW5zIGF0dGFjaCBvciBkZXRhY2ggYSBkZXZpY2Ugb24gYW55IHByb2Nl c3Mgd2lsbCBicm9hZGNhc3QgdG8NCj4gPiBhbGwgb3RoZXIgcHJvY2Vzc2VzIHRocm91Z2ggbXAg Y2hhbm5lbCB0aGVuIGRldmljZSBpbmZvcm1hdGlvbiB3aWxsIGJlDQo+ID4gc3luY2hyb25pemVk IG9uIGFsbCBwcm9jZXNzZXMuDQo+ID4NCj4gPiBBbnkgZmFpbHVyZSBkdXJpbmcgYXR0YWNoaW5n IHByb2Nlc3Mgd2lsbCBjYXVzZSBpbmNvbnNpc3RlbnQgc3RhdHVzDQo+ID4gYmV0d2VlbiBwcm9j ZXNzZXMsIHNvIHByb3BlciByb2xsYmFjayBhY3Rpb24gc2hvdWxkIGJlIGNvbnNpZGVyZWQuDQo+ ID4gQWxzbyBpdCBpcyBub3Qgc2FmZSB0byBkZXRhY2ggYSBzaGFyZSBkZXZpY2Ugd2hlbiBvdGhl ciBwcm9jZXNzIHN0aWxsDQo+ID4gdXNlIGl0LCBzbyBhIGhhbmRzaGFrZSBtZWNoYW5pc20gaXMg aW50cm9kdWNlZCwgaXQgd2lsbCBiZSBpbXBsZW1lbnRlZA0KPiA+IGluIGZvbGxvd2luZyBzZXBh cmF0ZSBwYXRjaC4NCj4gPg0KPiA+IFNjZW5hcmlvIGZvciBDYXNlIDEsIDI6DQo+ID4NCj4gPiBh dHRhY2ggZGV2aWNlDQo+ID4gYSkgcHJpbWFyeSBhdHRhY2ggdGhlIG5ldyBkZXZpY2UgaWYgZmFp bGVkIGdvdG8gaCkuDQo+ID4gYikgcHJpbWFyeSBzZW5kIGF0dGFjaCBzeW5jIHJlcXVlc3QgdG8g YWxsIHNlY29uZGFyeS4NCj4gPiBjKSBzZWNvbmRhcnkgcmVjZWl2ZSByZXF1ZXN0IGFuZCBhdHRh Y2ggZGV2aWNlIGFuZCBzZW5kIHJlcGx5Lg0KPiA+IGQpIHByaW1hcnkgY2hlY2sgdGhlIHJlcGx5 IGlmIGFsbCBzdWNjZXNzIGdvIHRvIGkpLg0KPiA+IGUpIHByaW1hcnkgc2VuZCBhdHRhY2ggcm9s bGJhY2sgc3luYyByZXF1ZXN0IHRvIGFsbCBzZWNvbmRhcnkuDQo+ID4gZikgc2Vjb25kYXJ5IHJl Y2VpdmUgdGhlIHJlcXVlc3QgYW5kIGRldGFjaCBkZXZpY2UgYW5kIHNlbmQgcmVwbHkuDQo+ID4g ZykgcHJpbWFyeSByZWNlaXZlIHRoZSByZXBseSBhbmQgZGV0YWNoIGRldmljZSBhcyByb2xsYmFj ayBhY3Rpb24uDQo+ID4gaCkgYXR0YWNoIGZhaWwNCj4gPiBpKSBhdHRhY2ggc3VjY2Vzcw0KPiA+ DQo+ID4gZGV0YWNoIGRldmljZQ0KPiA+IGEpIHByaW1hcnkgcGVyZm9ybSBwcmUtZGV0YWNoIGNo ZWNrLCBpZiBkZXZpY2UgaXMgbG9ja2VkLCBnb3RvIGkpLg0KPiA+IGIpIHByaW1hcnkgc2VuZCBw cmUtZGV0YWNoIHN5bmMgcmVxdWVzdCB0byBhbGwgc2Vjb25kYXJ5Lg0KPiA+IGMpIHNlY29uZGFy eSBwZXJmb3JtIHByZS1kZXRhY2ggY2hlY2sgYW5kIHNlbmQgcmVwbHkuDQo+ID4gZCkgcHJpbWFy eSBjaGVjayB0aGUgcmVwbHkgaWYgYW55IGZhaWwgZ290byBpKS4NCj4gPiBlKSBwcmltYXJ5IHNl bmQgZGV0YWNoIHN5bmMgcmVxdWVzdCB0byBhbGwgc2Vjb25kYXJ5DQo+ID4gZikgc2Vjb25kYXJ5 IGRldGFjaCB0aGUgZGV2aWNlIGFuZCBzZW5kIHJlcGx5IChhc3N1bWUgbm8gZmFpbCkNCj4gPiBn KSBwcmltYXJ5IGRldGFjaCB0aGUgZGV2aWNlLg0KPiA+IGgpIGRldGFjaCBzdWNjZXNzDQo+ID4g aSkgZGV0YWNoIGZhaWxlZA0KPiA+DQo+ID4gQ2FzZSAzLCA0Og0KPiA+IFRoaXMgd2lsbCBiZSBp bXBsZW1lbnRlZCBpbiBmb2xsb3dpbmcgcGF0Y2guDQo+IA0KPiBJZiB0aGVzZSB3aWxsIGJlIGlt cGxlbWVudGVkIGluIGZvbGxvd2luZyBwYXRjaCwgd2h5IHNwZW5kIGhhbGYgdGhlIGNvbW1pdA0K PiBtZXNzYWdlIHRhbGtpbmcgYWJvdXQgaXQ/IDopIA0KDQpTb3JyeSwgSSBkaWRuJ3QgZ2V0IHlv dXIgcG9pbnQgYWJvdXQgInNlZSBoYWxmIGNvbW1pdCB0byB0YWxrIGFib3V0IGl0IiA6KQ0KVGhp cyBwYXRjaCBjb3ZlcmVkIGFuIG92ZXJ2aWV3LCBhbmQgYWxzbyB0aGUgaW1wbGVtZW50YXRpb24g b2YgY2FzZSAxLDIsNSw2LDcsOA0KDQpGb3IgY2FzZSAzLCA0LCBqdXN0IGJlbG93IDQgbGluZXMg dG8gZGVzY3JpYmUgaXQNCg0KMy4gQXR0YWNoIGEgc2hhcmUgZGV2aWNlIGZyb20gc2Vjb25kYXJ5 Lg0KNC4gRGV0YWNoIGEgc2hhcmUgZGV2aWNlIGZyb20gc2Vjb25kYXJ5Lg0KQ2FzZSAzLCA0Og0K VGhpcyB3aWxsIGJlIGltcGxlbWVudGVkIGluIGZvbGxvd2luZyBwYXRjaC4NCg0KPiBpcyBjb21t aXQgZG9lc24ndCBpbXBsZW1lbnQgc2Vjb25kYXJ5DQo+IHByb2Nlc3MgZnVuY3Rpb25hbGl0eSBh dCBhbGwsIHNvIHRoZSBjb21taXQgbWVzc2FnZSBzaG91bGQgcHJvYmFibHkgYmUNCj4gcmV3b3Jk ZWQgdG8gb25seSBpbmNsdWRlIHByaW1hcnkgcHJvY2VzcyBsb2dpYywgbm8/DQoNCk9LLCBJIHdp bGwgcmV3b3JkIGl0IHRvIGhpZ2hsaWdodCB0aGUgcGF0Y2gncyBzY29wZSBhcyBkZXNjcmlwdGlv biBhdCBhYm92ZS4NCg0KPiANCj4gPg0KPiA+IENhc2UgNSwgNjoNCj4gPiBTZWNvbmRhcnkgcHJv Y2VzcyBjYW4gYXR0YWNoIHByaXZhdGUgZGV2aWNlIHdoaWNoIG9ubHkgdmlzaWJsZSB0byBpdHNl bGYsDQo+ID4gaW4gdGhpcyBjYXNlIG5vIElQQyBpcyBpbnZvbHZlZCwgcHJpbWFyeSBwcm9jZXNz IGlzIG5vdCBhbGxvd2VkIHRvIGhhdmUNCj4gPiBwcml2YXRlIGRldmljZSBzbyBmYXIuDQo+ID4N Cj4gPiBDYXNlIDcsIDg6DQo+ID4gU2Vjb25kYXJ5IHByb2Nlc3MgY2FuIGFsc28gdGVtcG9yYWxs eSB0byBkZXRhY2ggYSBzaGFyZSBkZXZpY2UgInByaXZhdGVseSINCj4gPiB0aGVuIGF0dGFjaCBp dCBiYWNrIGxhdGVyLCB0aGlzIGFjdGlvbiBhbHNvIG5vdCBpbXBhY3Qgb3RoZXIgcHJvY2Vzc2Vz Lg0KPiA+DQo+ID4gQVBJcyBjaGVuYWdlczoNCj4gDQo+IE11bHRpcGxlIHR5cG9zIC0gImNoZW5h Z2VzIiwgInRlbXBvcmFsbHkiLCAiYWxsb3dkIiwgZXRjLg0KDQpUaGFua3MNCg0KPiANCj4gPg0K PiA+IHJ0ZV9ldGhfZGV2X2F0dGFjaCBhbmQgcnRlX2V0aF9kZXZfYXR0YWNoIGFyZSBleHRlbmRl ZCB0byBzdXBwb3J0DQo+ID4gc2hhcmUgZGV2aWNlIGF0dGFjaC9kZXRhY2ggaW4gcHJpbWFyeS1z ZWNvbmRhcnkgcHJvY2VzcyBtb2RlbCwgaXQgd2lsbA0KPiA+IGJlIGNhbGxlZCBpbiBjYXNlIDEs MiwzLDQuDQo+ID4NCj4gPiBOZXcgQVBJIHJ0ZV9ldGhfZGV2X2F0dGFjaF9wcml2YXRlIGFuZCBy dGVfZXRoX2Rldl9kZXRhY2hfcHJpdmF0ZSBhcmUNCj4gPiBpbnRyb2R1Y2VkIHRvIGNvdmVyIGNh c2UgNSw2LDcsOCwgdGhpcyBBUEkgY2FuIG9ubHkgYmUgaW52b2tlZCBpbiBzZWNvbmRhcnkNCj4g PiBwcm9jZXNzLg0KPiA+ICA+IFNpZ25lZC1vZmYtYnk6IFFpIFpoYW5nIDxxaS56LnpoYW5nQGlu dGVsLmNvbT4NCj4gPiAtLS0NCj4gDQo+IDxzbmlwPg0KPiANCj4gPiAgIAlydGVfZWFsX21jZmdf Y29tcGxldGUoKTsNCj4gPg0KPiA+ICsJaWYgKHJ0ZV9ldGhfZGV2X21wX2luaXQoKSkgew0KPiA+ ICsJCXJ0ZV9lYWxfaW5pdF9hbGVydCgicnRlX2V0aF9kZXZfbXBfaW5pdCgpIGZhaWxlZFxuIik7 DQo+ID4gKwkJcnRlX2Vycm5vID0gRU5PRVhFQzsNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKwl9 DQo+ID4gKw0KPiANCj4gV2h5IGlzIHRoaXMgZG9uZSBhZnRlciB0aGUgZW5kIG9mIGluaXQ/IHJ0 ZV9lYWxfbWNmZ19jb21wbGV0ZSgpIG1ha2VzIGl0DQo+IHNvIHRoYXQgc2Vjb25kYXJpZXMgY2Fu IGluaXRpYWxpemUsIGF0IHRoYXQgcG9pbnQgYWxsIGluaXRpYWxpemF0aW9uDQo+IHNob3VsZCBo YXZlIGJlZW4gZmluaXNoZWQuIEkgd291bGQgZXhwZWN0IHRoaXMgdG8gYmUgY2FsbGVkIGFmdGVy DQo+IChiZWZvcmU/KSBidXMgcHJvYmUsIHNpbmNlIHRoaXMgaXMgZGV2aWNlLXJlbGF0ZWQuDQoN Ck9LIHdpbGwgbW92ZSBhaGVhZC4NCg0KPiANCj4gPiAgIAlyZXR1cm4gZmN0cmV0Ow0KPiA+ICAg fQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZXRoZGV2L01ha2VmaWxlIGIvbGli L2xpYnJ0ZV9ldGhkZXYvTWFrZWZpbGUNCj4gPiBpbmRleCBjMmYyZjdkODIuLjA0ZTkzZjMzNyAx MDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGRldi9NYWtlZmlsZQ0KPiA+ICsrKyBiL2xp Yi9saWJydGVfZXRoZGV2L01ha2VmaWxlDQo+ID4gQEAgLTE5LDYgKzE5LDcgQEAgRVhQT1JUX01B UCA6PSBydGVfZXRoZGV2X3ZlcnNpb24ubWFwDQo+ID4gICBMSUJBQklWRVIgOj0gOQ0KPiA+DQo+ IA0KPiA8c25pcD4NCj4gDQo+ID4gKwlpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSAhPSBSVEVf UFJPQ19QUklNQVJZKSB7DQo+ID4gKw0KPiA+ICsJCS8qKg0KPiA+ICsJCSAqIElmIHNlY29uZGFy eSBwcm9jZXNzLCB3ZSBqdXN0IHNlbmQgcmVxdWVzdCB0byBwcmltcmF5DQo+ID4gKwkJICogdG8g c3RhcnQgdGhlIHByb2Nlc3MuDQo+ID4gKwkJICovDQo+ID4gKwkJcmVxLnQgPSBSRVFfVFlQRV9B VFRBQ0g7DQo+ID4gKwkJc3RybGNweShyZXEuZGV2YXJncywgZGV2YXJncywgTUFYX0RFVl9BUkdT X0xFTik7DQo+ID4gKw0KPiA+ICsJCXJldCA9IHJ0ZV9ldGhfZGV2X3JlcXVlc3RfdG9fcHJpbWFy eSgmcmVxKTsNCj4gPiArCQlpZiAocmV0KSB7DQo+ID4gKwkJCWV0aGRldl9sb2coRVJSLCAiRmFp bGVkIHRvIHNlbmQgZGV2aWNlIGF0dGFjaCByZXF1ZXN0IHRvDQo+IHByaW1hcnlcbiIpOw0KPiAN Cj4gVGhlIGxvZyBtZXNzYWdlIGlzIGEgbGl0dGxlIG1pc2xlYWRpbmcuIEl0IGNhbiBiZSB0aGF0 IHNlY29uZGFyeSBoYXMNCj4gZmFpbGVkIHRvIHNlbmQgcmVxdWVzdC4gSXQgY2FuIGFsc28gYmUg dGhhdCBpdCBzdWNjZWVkZWQsIGJ1dCB0aGUgYXR0YWNoDQo+IGl0c2VsZiBoYXMgZmFpbGVkLiBJ IHRoaW5rIGEgYmV0dGVyIG1lc3NhZ2Ugd291bGQgYmUgImF0dGFjaCByZXF1ZXN0IGhhcw0KPiBm YWlsZWQiIG9yIHNvbWV0aGluZyB0byB0aGF0IGVmZmVjdC4NCg0KVGhlIHJldHVybiB2YWx1ZSBv ZiBydGVfZXRoX2Rldl9yZXF1ZXN0X3RvX3ByaW1hcnkgb25seSBtZWFucyBjb21tdW5pY2F0aW9u IGZhaWwsDQoobWVzc2FnZSBub3QgYWJsZSB0byBzZW5kLCBvciBub3QgZ2V0IHJlcGx5IGluIHRp bWUpLg0KYnV0IG5vdCB0aGUgZmFpbCBvbiBhdHRhY2gvZGV0YWNoIGl0c2VsZi4gKHdoaWNoIGNv bWVzIGZyb20gcmVxLT5yZXN1bHQpDQoNCj4gDQo+ID4gKwkJCXJldHVybiByZXQ7DQo+ID4gKwkJ fQ0KPiA+ICsNCj4gPiArCQkqcG9ydF9pZCA9IHJlcS5wb3J0X2lkOw0KPiA+ICsJCXJldHVybiBy ZXEucmVzdWx0Ow0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldCA9IGRvX2V0aF9kZXZfYXR0YWNo KGRldmFyZ3MsIHBvcnRfaWQpOw0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlyZXR1cm4gcmV0Ow0K PiA+ICsNCj4gPiArCS8qIHNlbmQgYXR0YWNoIHJlcXVlc3QgdG8gc2VvbmNhcnkgKi8NCj4gPiAr CXJlcS50ID0gUkVRX1RZUEVfQVRUQUNIOw0KPiA+ICsJc3RybGNweShyZXEuZGV2YXJncywgZGV2 YXJncywgTUFYX0RFVl9BUkdTX0xFTik7DQo+ID4gKwlyZXEucG9ydF9pZCA9ICpwb3J0X2lkOw0K PiA+ICsJcmV0ID0gcnRlX2V0aF9kZXZfcmVxdWVzdF90b19zZWNvbmRhcnkoJnJlcSk7DQo+ID4g KwlpZiAocmV0KSB7DQo+ID4gKwkJZXRoZGV2X2xvZyhFUlIsICJGYWlsZWQgdG8gc2VuZCBkZXZp Y2UgYXR0YWNoIHJlcXVlc3QgdG8NCj4gc2Vjb25kYXJ5XG4iKTsNCj4gDQo+IFNhbWUgYXMgYWJv dmUgLSBsb2cgbWVzc2FnZSBjYW4vbWlnaHQgYmUgbWlzbGVhZGluZy4gVGhlcmUgYXJlIGEgZmV3 DQo+IG90aGVyIHBsYWNlcyB3aGVyZSBzaW1pbGFyIGxvZyBtZXNzYWdlIGlzIHByZXNlbnQsIHRo b3NlIHNob3VsZCBiZQ0KPiBjb3JyZWN0ZWQgdG9vLg0KDQpTYW1lIGFzIGFib3ZlDQoNCj4gDQo+ ID4gKwkJZ290byByb2xsYmFjazsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAocmVxLnJlc3Vs dCkNCj4gPiArCQlnb3RvIHJvbGxiYWNrOw0KPiA+ICsNCj4gPiArCXJldHVybiAwOw0KPiANCj4g PHNuaXA+DQo+IA0KPiA+ICt7DQo+ID4gKwl1aW50MzJfdCBkZXZfZmxhZ3M7DQo+ID4gKw0KPiA+ ICsJaWYgKHJ0ZV9lYWxfcHJvY2Vzc190eXBlKCkgPT0gUlRFX1BST0NfUFJJTUFSWSkNCj4gPiAr CQlyZXR1cm4gLUVOT1RTVVA7DQo+ID4gKw0KPiA+ICsJUlRFX0VUSF9WQUxJRF9QT1JUSURfT1Jf RVJSX1JFVChwb3J0X2lkLCAtRUlOVkFMKTsNCj4gPiArDQo+ID4gKwlkZXZfZmxhZ3MgPSBydGVf ZXRoX2RldmljZXNbcG9ydF9pZF0uZGF0YS0+ZGV2X2ZsYWdzOw0KPiA+ICsJaWYgKGRldl9mbGFn cyAmIFJURV9FVEhfREVWX0JPTkRFRF9TTEFWRSkgew0KPiA+ICsJCWV0aGRldl9sb2coRVJSLA0K PiA+ICsJCQkiUG9ydCAlIiBQUkl1MTYgIiBpcyBib25kZWQsIGNhbm5vdCBkZXRhY2giLCBwb3J0 X2lkKTsNCj4gPiArCQlyZXR1cm4gLUVOT1RTVVA7DQo+ID4gKwl9DQo+IA0KPiBEbyB3ZSBoYXZl IHRvIGRvIGEgc2ltaWxhciBjaGVjayBmb3IgZmFpbHNhZmUgZGV2aWNlcz8NCg0KSnVzdCBrZWVw IGl0IHNhbWUgbG9naWMgYXMgYmVmb3JlLCBpdCBjb3VsZCBiZSBhIHNlcGFyYXRlIHBhdGNoIHRv IGZpeCBJIGd1ZXNzLg0KDQo+IA0KPiA+ICsNCj4gPiArCXJldHVybiBkb19ldGhfZGV2X2RldGFj aChwb3J0X2lkKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgIHN0YXRpYyBpbnQNCj4gPiAgIHJ0ZV9l dGhfZGV2X3J4X3F1ZXVlX2NvbmZpZyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QN Cj4gbmJfcXVldWVzKQ0KPiA+ICAgew0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2V0aGRl di9ydGVfZXRoZGV2LmggYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPiBpbmRl eCAzNmUzOTg0ZWEuLmJiMDNkNjEzYiAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX2V0aGRl di9ydGVfZXRoZGV2LmgNCj4gPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2LmgN Cj4gDQo+IDxzbmlwPg0KPiANCj4gPiAgIC8qKg0KPiA+ICsgKiBBdHRhY2ggYSBwcml2YXRlIEV0 aGVybmV0IGRldmljZSBzcGVjaWZpZWQgYnkgYXJndW1lbnRzLg0KPiA+ICsgKiBBIHByaXZhdGUg ZGV2aWNlIGlzIGludmlzaWJsZSB0byBvdGhlciBwcm9jZXNzLg0KPiA+ICsgKiBDYW4gb25seSBi ZSBpbnZva2VkIGluIHNlY29uZGFyeSBwcm9jZXNzLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0g ZGV2YXJncw0KPiA+ICsgKiAgQSBwb2ludGVyIHRvIGEgc3RyaW5ncyBhcnJheSBkZXNjcmliaW5n IHRoZSBuZXcgZGV2aWNlDQo+ID4gKyAqICB0byBiZSBhdHRhY2hlZC4gVGhlIHN0cmluZ3Mgc2hv dWxkIGJlIGEgcGNpIGFkZHJlc3MgbGlrZQ0KPiA+ICsgKiAgJzAwMDA6MDE6MDAuMCcgb3Igdmly dHVhbCBkZXZpY2UgbmFtZSBsaWtlICduZXRfcGNhcDAnLg0KPiA+ICsgKiBAcGFyYW0gcG9ydF9p ZA0KPiA+ICsgKiAgQSBwb2ludGVyIHRvIGEgcG9ydCBpZGVudGlmaWVyIGFjdHVhbGx5IGF0dGFj aGVkLg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4gKyAqICAwIG9uIHN1Y2Nlc3MgYW5kIHBvcnRfaWQg aXMgZmlsbGVkLCBuZWdhdGl2ZSBvbiBlcnJvcg0KPiA+ICsgKi8NCj4gPiAraW50IHJ0ZV9ldGhf ZGV2X2F0dGFjaF9wcml2YXRlKGNvbnN0IGNoYXIgKmRldmFyZ3MsIHVpbnQxNl90ICpwb3J0X2lk KTsNCj4gDQo+IE5ldyBBUEkncyBzaG91bGQgYmUgbWFya2VkIGFzIF9fcnRlX2V4cGVyaW1lbnRh bC4NCg0KT0sNCg0KPiANCj4gPiArDQo+ID4gKy8qKg0KPiA+ICAgICogRGV0YWNoIGEgRXRoZXJu ZXQgZGV2aWNlIHNwZWNpZmllZCBieSBwb3J0IGlkZW50aWZpZXIuDQo+ID4gICAgKiBUaGlzIGZ1 bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdoZW4gdGhlIGRldmljZSBpcyBpbiB0aGUNCj4gPiAgICAq IGNsb3NlZCBzdGF0ZS4NCj4gPiArICogSW4gbXVsdGktcHJvY2VzcyBtb2RlLCBpdCB3aWxsIHN5 bmMgd2l0aCBvdGhlciBwcm9jZXNzDQo+ID4gKyAqIHRvIGRldGFjaCB0aGUgZGV2aWNlLg0KPiA+ ICAgICoNCj4gPiAgICAqIEBwYXJhbSBwb3J0X2lkDQo+ID4gICAgKiAgIFRoZSBwb3J0IGlkZW50 aWZpZXIgb2YgdGhlIGRldmljZSB0byBkZXRhY2guDQo+ID4gQEAgLTE0OTAsNiArMTUxMSwyMiBA QCBpbnQgcnRlX2V0aF9kZXZfYXR0YWNoKGNvbnN0IGNoYXIgKmRldmFyZ3MsDQo+IHVpbnQxNl90 ICpwb3J0X2lkKTsNCj4gDQo+IDxzbmlwPg0KPiANCj4gPiArICogRGV0YWNoIGEgRXRoZXJuZXQg ZGV2aWNlIGluIGN1cnJlbnQgcHJvY2Vzcy4NCj4gPiArICoNCj4gPiArICogQHBhcmFtIHBvcnRf aWQNCj4gPiArICogICBUaGUgcG9ydCBpZGVudGlmaWVyIG9mIHRoZSBkZXZpY2UgdG8gZGV0YWNo Lg0KPiA+ICsgKiBAcGFyYW0gZGV2bmFtZQ0KPiA+ICsgKiAgIEEgcG9pbnRlciB0byBhIGJ1ZmZl ciB0aGF0IHdpbGwgYmUgZmlsbGVkIHdpdGggdGhlIGRldmljZSBuYW1lLg0KPiA+ICsgKiAgIFRo aXMgYnVmZmVyIG11c3QgYmUgYXQgbGVhc3QgUlRFX0RFVl9OQU1FX01BWF9MRU4gbG9uZy4NCj4g PiArICogQHJldHVybg0KPiA+ICsgKiAgMCBvbiBzdWNjZXNzIGFuZCBkZXZuYW1lIGlzIGZpbGxl ZCwgbmVnYXRpdmUgb24gZXJyb3INCj4gPiArICovDQo+ID4gK2ludCBkb19ldGhfZGV2X2RldGFj aCh1aW50MTZfdCBwb3J0X2lkKTsNCj4gPiArDQo+IA0KPiBXaHkgaXMgdGhpcyBtYWRlIHBhcnQg b2YgYW4gZXh0ZXJuYWwgQVBJPyBZb3Ugc2hvdWxkIGhhdmUgYSBzZXBhcmF0ZSwNCj4gcHJpdmF0 ZSBoZWFkZXIgZmlsZSBmb3IgdGhlc2UuDQoNCk9LLCB3aWxsIGFkZCB0byBldGhkZXZfcHJpdmF0 ZS5oIGluIHYyLg0KDQo+IA0KPiA+ICAgI2lmZGVmIF9fY3BsdXNwbHVzDQo+ID4gICB9DQo+ID4g ICAjZW5kaWYNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl9t cC5jDQo+IGIvbGliL2xpYnJ0ZV9ldGhkZXYvcnRlX2V0aGRldl9tcC5jDQo+ID4gbmV3IGZpbGUg bW9kZSAxMDA2NDQNCj4gPiBpbmRleCAwMDAwMDAwMDAuLjhlZGU4MTUxZA0KPiA+IC0tLSAvZGV2 L251bGwNCj4gPiArKysgYi9saWIvbGlicnRlX2V0aGRldi9ydGVfZXRoZGV2X21wLmMNCj4gPiBA QCAtMCwwICsxLDE5NSBAQA0KPiA+ICsvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMt Q2xhdXNlDQo+ID4gKyAqIENvcHlyaWdodChjKSAyMDEwLTIwMTggSW50ZWwgQ29ycG9yYXRpb24N Cj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSAicnRlX2V0aGRldl9kcml2ZXIuaCINCj4g PiArI2luY2x1ZGUgInJ0ZV9ldGhkZXZfbXAuaCINCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgZGV0 YWNoX29uX3NlY29uZGFyeSh1aW50MTZfdCBwb3J0X2lkKQ0KPiANCj4gPHNuaXA+DQo+IA0KPiA+ ICsJZnJlZShkYS5hcmdzKTsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50IGhhbmRsZV9zZWNvbmRhcnlfcmVxdWVzdChjb25zdCBzdHJ1Y3QgcnRlX21wX21z ZyAqbXNnLCBjb25zdA0KPiB2b2lkICpwZWVyKQ0KPiA+ICt7DQo+ID4gKwkodm9pZCltc2c7DQo+ ID4gKwkodm9pZCkocGVlcik7DQo+ID4gKwlyZXR1cm4gLUVOT1RTVVA7DQo+IA0KPiBQbGVhc2Ug ZWl0aGVyIG1hcmsgYXJndW1lbnRzIGFzIF9fcnRlX3VudXNlZCwgb3IgdXNlIFJURV9TRVRfVVNF RChibGFoKQ0KPiBtYWNyby4gU2FtZSBpbiBvdGhlciBzaW1pbGFyIHBsYWNlcy4NCg0KT0suDQoN Cj4gDQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgaGFuZGxlX3ByaW1hcnlfcmVzcG9u c2UoY29uc3Qgc3RydWN0IHJ0ZV9tcF9tc2cgKm1zZywgY29uc3QNCj4gdm9pZCAqcGVlcikNCj4g PiArew0KPiA+ICsJKHZvaWQpbXNnOw0KPiA+ICsJKHZvaWQpKHBlZXIpOw0KPiA+ICsJcmV0dXJu IC1FTk9UU1VQOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IGhhbmRsZV9wcmltYXJ5 X3JlcXVlc3QoY29uc3Qgc3RydWN0IHJ0ZV9tcF9tc2cgKm1zZywgY29uc3QNCj4gdm9pZCAqcGVl cikNCj4gPiArew0KPiA+ICsJY29uc3Qgc3RydWN0IGV0aF9kZXZfbXBfcmVxICpyZXEgPQ0KPiA+ ICsJCShjb25zdCBzdHJ1Y3QgZXRoX2Rldl9tcF9yZXEgKiltc2ctPnBhcmFtOw0KPiANCj4gPHNu aXA+DQo+IA0KPiA+ICsJY2FzZSBSRVFfVFlQRV9ERVRBQ0g6DQo+ID4gKwljYXNlIFJFUV9UWVBF X0FUVEFDSF9ST0xMQkFDSzoNCj4gPiArCQlyZXQgPSBkZXRhY2hfb25fc2Vjb25kYXJ5KHJlcS0+ cG9ydF9pZCk7DQo+ID4gKwkJYnJlYWs7DQo+ID4gKwlkZWZhdWx0Og0KPiA+ICsJCXJldCA9IC1F SU5WQUw7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJc3RyY3B5KG1wX3Jlc3AubmFtZSwgRVRIX0RF Vl9NUF9BQ1RJT05fUkVRVUVTVCk7DQo+IA0KPiBIZXJlIGFuZCBpbiBvdGhlciBwbGFjZXM6IHJ0 ZV9zdHJsY3B5Pw0KDQpPSw0KDQpUaGFua3MhDQpRaQ0KPiANCj4gLS0NCj4gVGhhbmtzLA0KPiBB bmF0b2x5DQo=