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 76DF2A0577; Mon, 13 Apr 2020 18:45:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 628851BF4F; Mon, 13 Apr 2020 18:45:09 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 6A6181BEE4 for ; Mon, 13 Apr 2020 18:45:07 +0200 (CEST) IronPort-SDR: uFBKeKZoWYy9O85zW88s2zwlIDCFLq/nXlTc+FzJi7qjk3hD9yx2Mz1KqPJc11D8eJppkDMzKS 3hNitG7uhBpw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Apr 2020 09:45:04 -0700 IronPort-SDR: y9z8zfAZpQFVxVx5kY0riAhBKH1pvAf7QYZsIMI2Nq/QPG3NOsFMUE8AEBY/Iz4V74pSjXi1yT UFYFVxnlwnqQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,378,1580803200"; d="scan'208";a="252924781" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga003.jf.intel.com with ESMTP; 13 Apr 2020 09:45:04 -0700 Received: from shsmsx602.ccr.corp.intel.com (10.109.6.142) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 13 Apr 2020 09:45:04 -0700 Received: from shsmsx603.ccr.corp.intel.com (10.109.6.143) by SHSMSX602.ccr.corp.intel.com (10.109.6.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 14 Apr 2020 00:45:01 +0800 Received: from shsmsx603.ccr.corp.intel.com ([10.109.6.143]) by SHSMSX603.ccr.corp.intel.com ([10.109.6.143]) with mapi id 15.01.1713.004; Tue, 14 Apr 2020 00:45:01 +0800 From: "Wang, Haiyue" To: Andrew Rybchenko , "dev@dpdk.org" , "thomas@monjalon.net" , "vattunuru@marvell.com" , "jerinj@marvell.com" , "alex.williamson@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [dpdk-dev] [PATCH v4] eal: add VFIO-PCI SR-IOV support Thread-Index: AQHWEW7TGVSo7x234U64DiMjtXd2p6h2qgOAgACVhCA= Date: Mon, 13 Apr 2020 16:45:01 +0000 Message-ID: References: <20200305043311.17065-1-vattunuru@marvell.com> <20200413082930.84050-1-haiyue.wang@intel.com> <81fcab72-7d03-befc-f0be-e09e3efbaf30@solarflare.com> In-Reply-To: <81fcab72-7d03-befc-f0be-e09e3efbaf30@solarflare.com> Accept-Language: zh-CN, 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.2.0.6 x-originating-ip: [10.239.127.36] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v4] eal: add VFIO-PCI SR-IOV support 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" SGkgQW5kcmV3LA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEFuZHJl dyBSeWJjaGVua28gPGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb20+DQo+IFNlbnQ6IE1vbmRheSwg QXByaWwgMTMsIDIwMjAgMjM6MzgNCj4gVG86IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50 ZWwuY29tPjsgZGV2QGRwZGsub3JnOyB0aG9tYXNAbW9uamFsb24ubmV0OyB2YXR0dW51cnVAbWFy dmVsbC5jb207DQo+IGplcmluakBtYXJ2ZWxsLmNvbTsgYWxleC53aWxsaWFtc29uQHJlZGhhdC5j b207IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0g W1BBVENIIHY0XSBlYWw6IGFkZCBWRklPLVBDSSBTUi1JT1Ygc3VwcG9ydA0KPiANCj4gT24gNC8x My8yMCAxMToyOSBBTSwgSGFpeXVlIFdhbmcgd3JvdGU6DQo+ID4gVGhlIGtlcm5lbCBtb2R1bGUg dmZpby1wY2kgaW50cm9kdWNlcyB0aGUgVkYgdG9rZW4gdG8gZW5hYmxlIFNSLUlPVg0KPiA+IHN1 cHBvcnQgc2luY2UgNS43Lg0KPiA+DQo+ID4gVGhlIFZGIHRva2VuIGNhbiBiZSBzZXQgYnkgYSB2 ZmlvLXBjaSBiYXNlZCBQRiBkcml2ZXIgYW5kIG11c3QgYmUga25vd24NCj4gPiBieSB0aGUgdmZp by1wY2kgYmFzZWQgVkYgZHJpdmVyIGluIG9yZGVyIHRvIGdhaW4gYWNjZXNzIHRvIHRoZSBkZXZp Y2UuDQo+ID4NCj4gPiBBbiBleGFtcGxlIFZGIHRva2VuIG9wdGlvbiB3b3VsZCB0YWtlIHRoaXMg Zm9ybToNCj4gPg0KPiA+IDEuIEluc3RhbGwgdmZpby1wY2kgd2l0aCBvcHRpb24gJ2VuYWJsZV9z cmlvdj0xJw0KPiA+DQo+ID4gMi4gLi91c2VydG9vbHMvZHBkay1kZXZiaW5kLnB5IC1iIHZmaW8t cGNpIDAwMDA6ODc6MDAuMA0KPiA+DQo+ID4gMy4gZWNobyAyID4gL3N5cy9idXMvcGNpL2Rldmlj ZXMvMDAwMDo4NzowMC4wL3NyaW92X251bXZmcw0KPiA+DQo+ID4gNC4gU3RhcnQgdGhlIFBGOg0K PiA+ICAgLi94ODZfNjQtbmF0aXZlLWxpbnV4LWdjYy9hcHAvdGVzdHBtZCAtbCAyMi0yNSAtbiA0 IFwNCj4gPiAgICAgICAgICAtdyA4NzowMC4wLHZmX3Rva2VuPTJhYjc0OTI0LWMzMzUtNDVmNC05 YjE2LTg1NjllNWIwODI1OCBcDQo+ID4gICAgICAgICAgLS1maWxlLXByZWZpeD1wZiAtLSAtaQ0K PiANCj4gU2hvdWxkIEkgZ2V0IGEgdG9rZW4gZnJvbSBteSBoZWFkPyBBbnk/DQo+IA0KPiA+IDUu IFN0YXJ0IHRoZSBWRjoNCj4gPiAgICAuL3g4Nl82NC1uYXRpdmUtbGludXgtZ2NjL2FwcC90ZXN0 cG1kIC1sIDI2LTI5IC1uIDQgXA0KPiA+ICAgICAgICAgIC13IDg3OjAyLjAsdmZfdG9rZW49MmFi NzQ5MjQtYzMzNS00NWY0LTliMTYtODU2OWU1YjA4MjU4IFwNCj4gPiAgICAgICAgICAtLWZpbGUt cHJlZml4PXZmMSAtLSAtaQ0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogSGFpeXVlIFdhbmcgPGhh aXl1ZS53YW5nQGludGVsLmNvbT4NCj4gPiBBY2tlZC1ieTogVmFtc2kgQXR0dW51cnUgPHZhdHR1 bnVydUBtYXJ2ZWxsLmNvbT4NCj4gPiAtLS0NCj4gPiB2NDogMS4gSWdub3JlIHJ0ZV92ZmlvX3Nl dHVwX2RldmljZSBBQkkgY2hlY2sgc2luY2UgaXQgaXMNCj4gPiAgICAgICAgZm9yIExpbnV4IGRy aXZlciB1c2UuDQo+ID4NCj4gPiB2MzogaHR0cHM6Ly9wYXRjaHdvcmsuZHBkay5vcmcvcGF0Y2gv NjgyNTQvDQo+ID4gCUZpeCB0aGUgVHJhdmlzIGJ1aWxkIGZhaWxlZDoNCj4gPiAgICAgICAgKDEp LiBydGVfdXVpZC5oOjk3OjU1OiBlcnJvcjogdW5rbm93biB0eXBlIG5hbWUg4oCYc2l6ZV904oCZ DQo+ID4gICAgICAgICgyKS4gcnRlX3V1aWQuaDo1ODoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFy YXRpb24gb2YgZnVuY3Rpb24g4oCYbWVtY3B54oCZDQo+ID4NCj4gPiB2MjogaHR0cHM6Ly9wYXRj aHdvcmsuZHBkay5vcmcvcGF0Y2gvNjgyNDAvDQo+ID4gICAgICAgICAgRml4IHRoZSBGcmVlQlNE IGJ1aWxkIGVycm9yLg0KPiA+DQo+ID4gdjE6IGh0dHBzOi8vcGF0Y2h3b3JrLmRwZGsub3JnL3Bh dGNoLzY4MjM3Lw0KPiA+ICAgICAgICAgIFVwZGF0ZSB0aGUgY29tbWl0IG1lc3NhZ2UuDQo+ID4N Cj4gPiBSRkMgdjI6IGh0dHBzOi8vcGF0Y2h3b3JrLmRwZGsub3JnL3BhdGNoLzY4MTE0Lw0KPiA+ IAkgICBCYXNlZCBvbiBWYW1zaSdzIFJGQyB2MSwgYW5kIEFsZXgncyBwYXRjaCBmb3IgUWVtdQ0K PiA+IAkgICAgICAgW2h0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xrbWwvMjAyMDAyMDQxNjE3Mzcu MzQ2OTZiOTFAdzUyMC5ob21lL106DQo+ID4gCSAgIFVzZSB0aGUgZGV2YXJnIHRvIHBhc3MtZG93 biB0aGUgVkYgdG9rZW4uDQo+ID4NCj4gPiBSRkMgdjE6IGh0dHBzOi8vcGF0Y2h3b3JrLmRwZGsu b3JnL3BhdGNoLzY2MjgxLyBieSBWYW1zaS4NCj4gPiAtLS0NCj4gPiAgZGV2dG9vbHMvbGliYWJp Z2FpbC5hYmlnbm9yZSAgICAgIHwgIDMgKysNCj4gPiAgZHJpdmVycy9idXMvcGNpL2xpbnV4L3Bj aV92ZmlvLmMgIHwgNTYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQ0KPiA+ICBsaWIv bGlicnRlX2VhbC9mcmVlYnNkL2VhbC5jICAgICAgfCAgMyArLQ0KPiA+ICBsaWIvbGlicnRlX2Vh bC9pbmNsdWRlL3J0ZV91dWlkLmggfCAgMiArKw0KPiA+ICBsaWIvbGlicnRlX2VhbC9pbmNsdWRl L3J0ZV92ZmlvLmggfCAgOCArKysrLQ0KPiA+ICBsaWIvbGlicnRlX2VhbC9saW51eC9lYWxfdmZp by5jICAgfCAyMCArKysrKysrKystLQ0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZGV2dG9vbHMvbGli YWJpZ2FpbC5hYmlnbm9yZSBiL2RldnRvb2xzL2xpYmFiaWdhaWwuYWJpZ25vcmUNCj4gPiBpbmRl eCBhNTlkZjhmMTMuLmQ5MTg3NDZiNCAxMDA2NDQNCj4gPiAtLS0gYS9kZXZ0b29scy9saWJhYmln YWlsLmFiaWdub3JlDQo+ID4gKysrIGIvZGV2dG9vbHMvbGliYWJpZ2FpbC5hYmlnbm9yZQ0KPiA+ IEBAIC0xMSwzICsxMSw2IEBADQo+ID4gICAgICAgICAgdHlwZV9raW5kID0gZW51bQ0KPiA+ICAg ICAgICAgIG5hbWUgPSBydGVfY3J5cHRvX2FzeW1feGZvcm1fdHlwZQ0KPiA+ICAgICAgICAgIGNo YW5nZWRfZW51bWVyYXRvcnMgPSBSVEVfQ1JZUFRPX0FTWU1fWEZPUk1fVFlQRV9MSVNUX0VORA0K PiA+ICs7IElnbm9yZSB0aGlzIGZ1bmN0aW9uIHdoaWNoIGlzIG9ubHkgcmVsZXZhbnQgdG8gbGlu dXggZm9yIGRyaXZlcg0KPiA+ICtbc3VwcHJlc3NfdHlwZV0NCj4gPiArCW5hbWUgPSBydGVfdmZp b19zZXR1cF9kZXZpY2UNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9idXMvcGNpL2xpbnV4L3Bj aV92ZmlvLmMgYi9kcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpX3ZmaW8uYw0KPiA+IGluZGV4IDY0 Y2Q4NGE2OC4uN2Y5OTMzN2M3IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvYnVzL3BjaS9saW51 eC9wY2lfdmZpby5jDQo+ID4gKysrIGIvZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaV92ZmlvLmMN Cj4gPiBAQCAtMTEsNiArMTEsNyBAQA0KPiA+ICAjaW5jbHVkZSA8c3lzL21tYW4uaD4NCj4gPiAg I2luY2x1ZGUgPHN0ZGJvb2wuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8cnRlX2RldmFyZ3MuaD4N Cj4gPiAgI2luY2x1ZGUgPHJ0ZV9sb2cuaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9wY2kuaD4NCj4g PiAgI2luY2x1ZGUgPHJ0ZV9idXNfcGNpLmg+DQo+ID4gQEAgLTY0NCwxMSArNjQ1LDU5IEBAIHBj aV92ZmlvX21zaXhfaXNfbWFwcGFibGUoaW50IHZmaW9fZGV2X2ZkLCBpbnQgbXNpeF9yZWdpb24p DQo+ID4gIAlyZXR1cm4gcmV0Ow0KPiA+ICB9DQo+ID4NCj4gPiArc3RhdGljIHZvaWQNCj4gPiAr dmZpb19wY2lfdmZfdG9rZW5fYXJnKHN0cnVjdCBydGVfZGV2YXJncyAqZGV2YXJncywgcnRlX3V1 aWRfdCB1dSkNCj4gPiArew0KPiA+ICsjZGVmaW5lIFZGX1RPS0VOX0FSRyAidmZfdG9rZW49Ig0K PiA+ICsJY2hhciBjLCAqcCwgKnZmX3Rva2VuOw0KPiA+ICsNCj4gPiArCWlmIChkZXZhcmdzID09 IE5VTEwpDQo+ID4gKwkJcmV0dXJuOw0KPiA+ICsNCj4gPiArCXAgPSBzdHJzdHIoZGV2YXJncy0+ YXJncywgVkZfVE9LRU5fQVJHKTsNCj4gPiArCWlmICghcCkNCj4gPiArCQlyZXR1cm47DQo+ID4g Kw0KPiA+ICsJdmZfdG9rZW4gPSBwICsgc3RybGVuKFZGX1RPS0VOX0FSRyk7DQo+ID4gKwlpZiAo c3RybGVuKHZmX3Rva2VuKSA8IChSVEVfVVVJRF9TVFJMRU4gLSAxKSkNCj4gPiArCQlyZXR1cm47 DQo+ID4gKw0KPiA+ICsJYyA9IHZmX3Rva2VuW1JURV9VVUlEX1NUUkxFTiAtIDFdOw0KPiA+ICsJ aWYgKGMgIT0gJ1wwJyAmJiBjICE9ICcsJykNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJ dmZfdG9rZW5bUlRFX1VVSURfU1RSTEVOIC0gMV0gPSAnXDAnOw0KPiANCj4gSXMgaXQgcG9zc2li bGUgdG8gcGFyc2UgYW5kIGhhbmRsZSBkZXZhcmdzIHVzaW5nIHJ0ZV9rdmFyZ3MuaD8NCj4gDQoN ClNpbmNlIGl0IG5lZWRzIHRvIHJlbW92ZSB0aGUgJ3ZmX3Rva2VuJywgYXMgJ3ZmX3Rva2VuJyBp cyBub3QgYQ0KdmFsaWQgUE1EIHJlbGF0ZWQgYXJncywgc28gbmVlZCB0byBwYXJzZSBhbmQgZGVs ZXRlIGl0Lg0KDQpydGVfa3ZhcmdzX3BhcnNlKGNvbnN0IGNoYXIgKmFyZ3MsIGNvbnN0IGNoYXIg KiBjb25zdCB2YWxpZF9rZXlzW10pDQoNCj4gPiArCWlmIChydGVfdXVpZF9wYXJzZSh2Zl90b2tl biwgdXUpKSB7DQo+ID4gKwkJUlRFX0xPRyhFUlIsIEVBTCwNCj4gPiArCQkJIlRoZSBWRiB0b2tl biBpcyBub3QgYSB2YWxpZCB1dWlkIDogJXNcbiIsIHZmX3Rva2VuKTsNCj4gPiArCQl2Zl90b2tl bltSVEVfVVVJRF9TVFJMRU4gLSAxXSA9IGM7DQo+ID4gKwkJcmV0dXJuOw0KPiANCj4gSSB0aGlu ayB0aGF0IHRoZSBmdW5jdGlvbiBtdXN0IHJldHVybiBlcnJvciB3aGljaCBpcyBoYW5kbGVkDQo+ IGJ5IHRoZSBjYWxsZXIgd2hlbiBzb21ldGhpbmcgYmFkIGhhcHBlbnMgKGUuZy4gaW52YWxpZA0K PiBVVUlEKS4NCj4gDQoNClllcywgbWFrZSBzZW5zZSwgd2lsbCBhZGQgdGhlIGVycm9yIGhhbmRs aW5nLg0KDQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJUlRFX0xPRyhERUJVRywgRUFMLA0KPiA+ICsJ CSJUaGUgVkYgdG9rZW4gaXMgZm91bmQgOiAlc1xuIiwgdmZfdG9rZW4pOw0KPiA+ICsNCj4gPiAr CXZmX3Rva2VuW1JURV9VVUlEX1NUUkxFTiAtIDFdID0gYzsNCj4gPiArDQo+ID4gKwkvKiBQdXJn ZSB0aGlzIHZmaW8tcGNpIHNwZWNpZmljIHRva2VuIGZyb20gdGhlIGRldmljZSBhcmd1bWVudHMg Ki8NCj4gPiArCWlmIChjICE9ICdcMCcpIHsNCj4gPiArCQkvKiAxLiBIYW5kbGUgdGhlIGNhc2Ug OiAndmZfdG9rZW49dXVpZCxhcmcxPXZhbDEnICovDQo+ID4gKwkJbWVtbW92ZShwLCB2Zl90b2tl biArIFJURV9VVUlEX1NUUkxFTiwNCj4gPiArCQkJc3RybGVuKHZmX3Rva2VuICsgUlRFX1VVSURf U1RSTEVOKSArIDEpOw0KPiA+ICsJfSBlbHNlIHsNCj4gPiArCQkvKiAyLiBIYW5kbGUgdGhlIGNh c2UgOiAnYXJnMT12YWwxLHZmX3Rva2VuPXV1aWQnICovDQo+ID4gKwkJaWYgKHAgIT0gZGV2YXJn cy0+YXJncykNCj4gPiArCQkJcC0tOw0KPiA+ICsNCj4gPiArCQkqcCA9ICdcMCc7DQo+ID4gKwl9 DQo+IA0KPiBJcyBpdCByZWFsbHkgcmVxdWlyZWQgdG8gcHVyZ2U/IFdoeT8gSWYgeWVzLCBpdCBz aG91bGQgYmUgZXhwbGFpbmVkIGluDQo+IHRoZSBjb21tZW50IGFib3ZlLg0KDQpQbGVhc2Ugc2Vl IGFib3ZlIHJlcGx5Lg0KDQo+IA0KPiA+ICt9DQo+ID4NCj4gPiAgc3RhdGljIGludA0KPiA+ICBw Y2lfdmZpb19tYXBfcmVzb3VyY2VfcHJpbWFyeShzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldikN Cj4gPiAgew0KPiA+ICAJc3RydWN0IHZmaW9fZGV2aWNlX2luZm8gZGV2aWNlX2luZm8gPSB7IC5h cmdzeiA9IHNpemVvZihkZXZpY2VfaW5mbykgfTsNCj4gPiArCXJ0ZV91dWlkX3QgdmZfdG9rZW4g PSBSVEVfVVVJRF9JTklUKDAsIDAsIDAsIDAsIDBVTEwpOw0KPiANCj4gTWF5IGJlIGl0IHdvdWxk IGJlIGJldHRlciBpZiB2ZmlvX3BjaV92Zl90b2tlbl9hcmcoKQ0KPiBpbml0aWFsaXplcyBpdCBh bnl3YXkgaW5zdGVhZCBvZiBkdXBsaWNhdGlvbiBpbml0DQo+IGluIHR3byBwbGFjZXM/DQoNCisx LCB3aWxsIHVwZGF0ZSBpdC4NCg0KPiANCj4gPiAgCWNoYXIgcGNpX2FkZHJbUEFUSF9NQVhdID0g ezB9Ow0KPiA+ICAJaW50IHZmaW9fZGV2X2ZkOw0KPiA+ICAJc3RydWN0IHJ0ZV9wY2lfYWRkciAq bG9jID0gJmRldi0+YWRkcjsNCj4gPiBAQCAtNjY4LDggKzcxNyw5IEBAIHBjaV92ZmlvX21hcF9y ZXNvdXJjZV9wcmltYXJ5KHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2KQ0KPiA+ICAJc25wcmlu dGYocGNpX2FkZHIsIHNpemVvZihwY2lfYWRkciksIFBDSV9QUklfRk1ULA0KPiA+ICAJCQlsb2Mt PmRvbWFpbiwgbG9jLT5idXMsIGxvYy0+ZGV2aWQsIGxvYy0+ZnVuY3Rpb24pOw0KPiA+DQo+ID4g Kwl2ZmlvX3BjaV92Zl90b2tlbl9hcmcoZGV2LT5kZXZpY2UuZGV2YXJncywgdmZfdG9rZW4pOw0K PiA+ICAJcmV0ID0gcnRlX3ZmaW9fc2V0dXBfZGV2aWNlKHJ0ZV9wY2lfZ2V0X3N5c2ZzX3BhdGgo KSwgcGNpX2FkZHIsDQo+ID4gLQkJCQkJJnZmaW9fZGV2X2ZkLCAmZGV2aWNlX2luZm8pOw0KPiA+ ICsJCQkJCSZ2ZmlvX2Rldl9mZCwgJmRldmljZV9pbmZvLCB2Zl90b2tlbik7DQo+ID4gIAlpZiAo cmV0KQ0KPiA+ICAJCXJldHVybiByZXQ7DQo+ID4NCj4gPiBAQCAtNzk3LDYgKzg0Nyw3IEBAIHN0 YXRpYyBpbnQNCj4gPiAgcGNpX3ZmaW9fbWFwX3Jlc291cmNlX3NlY29uZGFyeShzdHJ1Y3QgcnRl X3BjaV9kZXZpY2UgKmRldikNCj4gPiAgew0KPiA+ICAJc3RydWN0IHZmaW9fZGV2aWNlX2luZm8g ZGV2aWNlX2luZm8gPSB7IC5hcmdzeiA9IHNpemVvZihkZXZpY2VfaW5mbykgfTsNCj4gPiArCXJ0 ZV91dWlkX3QgdmZfdG9rZW4gPSBSVEVfVVVJRF9JTklUKDAsIDAsIDAsIDAsIDBVTEwpOw0KPiA+ ICAJY2hhciBwY2lfYWRkcltQQVRIX01BWF0gPSB7MH07DQo+ID4gIAlpbnQgdmZpb19kZXZfZmQ7 DQo+ID4gIAlzdHJ1Y3QgcnRlX3BjaV9hZGRyICpsb2MgPSAmZGV2LT5hZGRyOw0KPiA+IEBAIC04 MzAsOCArODgxLDkgQEAgcGNpX3ZmaW9fbWFwX3Jlc291cmNlX3NlY29uZGFyeShzdHJ1Y3QgcnRl X3BjaV9kZXZpY2UgKmRldikNCj4gPiAgCQlyZXR1cm4gLTE7DQo+ID4gIAl9DQo+ID4NCj4gPiAr CXZmaW9fcGNpX3ZmX3Rva2VuX2FyZyhkZXYtPmRldmljZS5kZXZhcmdzLCB2Zl90b2tlbik7DQo+ ID4gIAlyZXQgPSBydGVfdmZpb19zZXR1cF9kZXZpY2UocnRlX3BjaV9nZXRfc3lzZnNfcGF0aCgp LCBwY2lfYWRkciwNCj4gPiAtCQkJCQkmdmZpb19kZXZfZmQsICZkZXZpY2VfaW5mbyk7DQo+ID4g KwkJCQkJJnZmaW9fZGV2X2ZkLCAmZGV2aWNlX2luZm8sIHZmX3Rva2VuKTsNCj4gPiAgCWlmIChy ZXQpDQo+ID4gIAkJcmV0dXJuIHJldDsNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRl X2VhbC9mcmVlYnNkL2VhbC5jIGIvbGliL2xpYnJ0ZV9lYWwvZnJlZWJzZC9lYWwuYw0KPiA+IGlu ZGV4IDZhZTM3ZTdlNi4uYTkyNTg0Nzk1IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJydGVfZWFs L2ZyZWVic2QvZWFsLmMNCj4gPiArKysgYi9saWIvbGlicnRlX2VhbC9mcmVlYnNkL2VhbC5jDQo+ ID4gQEAgLTk5NSw3ICs5OTUsOCBAQCBydGVfZWFsX3ZmaW9faW50cl9tb2RlKHZvaWQpDQo+ID4g IGludCBydGVfdmZpb19zZXR1cF9kZXZpY2UoX19ydGVfdW51c2VkIGNvbnN0IGNoYXIgKnN5c2Zz X2Jhc2UsDQo+ID4gIAkJICAgICAgX19ydGVfdW51c2VkIGNvbnN0IGNoYXIgKmRldl9hZGRyLA0K PiA+ICAJCSAgICAgIF9fcnRlX3VudXNlZCBpbnQgKnZmaW9fZGV2X2ZkLA0KPiA+IC0JCSAgICAg IF9fcnRlX3VudXNlZCBzdHJ1Y3QgdmZpb19kZXZpY2VfaW5mbyAqZGV2aWNlX2luZm8pDQo+ID4g KwkJICAgICAgX19ydGVfdW51c2VkIHN0cnVjdCB2ZmlvX2RldmljZV9pbmZvICpkZXZpY2VfaW5m bywNCj4gPiArCQkgICAgICBfX3J0ZV91bnVzZWQgcnRlX3V1aWRfdCB2Zl90b2tlbikNCj4gPiAg ew0KPiA+ICAJcmV0dXJuIC0xOw0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVf ZWFsL2luY2x1ZGUvcnRlX3V1aWQuaCBiL2xpYi9saWJydGVfZWFsL2luY2x1ZGUvcnRlX3V1aWQu aA0KPiA+IGluZGV4IDA0NGFmYmRmYS4uOGI0MmUwNzBhIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9s aWJydGVfZWFsL2luY2x1ZGUvcnRlX3V1aWQuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfZWFsL2lu Y2x1ZGUvcnRlX3V1aWQuaA0KPiA+IEBAIC0xNSw2ICsxNSw4IEBAIGV4dGVybiAiQyIgew0KPiA+ ICAjZW5kaWYNCj4gPg0KPiA+ICAjaW5jbHVkZSA8c3RkYm9vbC5oPg0KPiA+ICsjaW5jbHVkZSA8 c3RkZGVmLmg+DQo+ID4gKyNpbmNsdWRlIDxzdHJpbmcuaD4NCj4gPg0KPiA+ICAvKioNCj4gPiAg ICogU3RydWN0IGRlc2NyaWJpbmcgYSBVbml2ZXJzYWwgVW5pcXVlIElkZW50aWZpZXINCj4gPiBk aWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV9lYWwvaW5jbHVkZS9ydGVfdmZpby5oIGIvbGliL2xpYnJ0 ZV9lYWwvaW5jbHVkZS9ydGVfdmZpby5oDQo+ID4gaW5kZXggMjBlZDhjNDVhLi4xZjllMjJkODIg MTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV9lYWwvaW5jbHVkZS9ydGVfdmZpby5oDQo+ID4g KysrIGIvbGliL2xpYnJ0ZV9lYWwvaW5jbHVkZS9ydGVfdmZpby5oDQo+ID4gQEAgLTE2LDYgKzE2 LDggQEAgZXh0ZXJuICJDIiB7DQo+ID4NCj4gPiAgI2luY2x1ZGUgPHN0ZGludC5oPg0KPiA+DQo+ ID4gKyNpbmNsdWRlIDxydGVfdXVpZC5oPg0KPiA+ICsNCj4gPiAgLyoNCj4gPiAgICogZGV0ZXJt aW5lIGlmIFZGSU8gaXMgcHJlc2VudCBvbiB0aGUgc3lzdGVtDQo+ID4gICAqLw0KPiA+IEBAIC0x MDIsMTMgKzEwNCwxNyBAQCBzdHJ1Y3QgdmZpb19kZXZpY2VfaW5mbzsNCj4gPiAgICogQHBhcmFt IGRldmljZV9pbmZvDQo+ID4gICAqICAgRGV2aWNlIGluZm9ybWF0aW9uLg0KPiA+ICAgKg0KPiA+ ICsgKiBAcGFyYW0gdmZfdG9rZW4NCj4gPiArICogICBWRiB0b2tlbi4NCj4gDQo+IFN1Y2ggY29t bWVudHMgYXJlIHVzZWxlcyBhbmQganVzdCBlYXQgc3BhY2UgYWRkaW5nICBub3RoaW5nDQo+IHVz ZWZ1bC4gUGxlYXNlLCBtYWtlIGl0IHVzZWZ1bCBhbmQgZXhwbGFpbiB3aGF0IGlzIGJlaGluZCB0 aGUNCj4gcGFyYW1ldGVyLCB3aGVuIGl0IGlzIG5lY2Vzc2FyeSwgd2h5PyBTaG91bGQgaXQgYmUg c3BlY2lmaWVkDQo+IGZvciBQRiBjYXNlLCBWRiBjYXNlLCBib3RoPw0KPiANCg0KV2lsbCBhZGQg bW9yZSBjb21tZW50cywgeWVzIGZvciBib3RoIFBGIGFuZCBWRiwgYXMgQWxleCdzIGxpbnV4IHBh dGNoDQpleHBsYWluZWQuDQoNCj4gPiArICoNCj4gPiAgICogQHJldHVybg0KPiA+ICAgKiAgIDAg b24gc3VjY2Vzcy4NCj4gPiAgICogICA8MCBvbiBmYWlsdXJlLg0KPiA+ICAgKiAgID4xIGlmIHRo ZSBkZXZpY2UgY2Fubm90IGJlIG1hbmFnZWQgdGhpcyB3YXkuDQo+ID4gICAqLw0KPiA+ICBpbnQg cnRlX3ZmaW9fc2V0dXBfZGV2aWNlKGNvbnN0IGNoYXIgKnN5c2ZzX2Jhc2UsIGNvbnN0IGNoYXIg KmRldl9hZGRyLA0KPiA+IC0JCWludCAqdmZpb19kZXZfZmQsIHN0cnVjdCB2ZmlvX2RldmljZV9p bmZvICpkZXZpY2VfaW5mbyk7DQo+ID4gKwkJaW50ICp2ZmlvX2Rldl9mZCwgc3RydWN0IHZmaW9f ZGV2aWNlX2luZm8gKmRldmljZV9pbmZvLA0KPiA+ICsJCXJ0ZV91dWlkX3QgdmZfdG9rZW4pOw0K PiANCj4gInJ0ZV91dWlkX3QgdmZfdG9rZW4iIGxvb2tzIGNvbmZ1c2luZy4gU2hvdWxkbid0IGl0 IGJlDQo+ICJydGVfdXVpZF90ICp2Zl90b2tlbiI/DQoNClRoaXMgaXMgVVVJRCBBUEkgZGVzaWdu IGFuZCB0eXBlIGRlZmluaXRpb246DQoNCmJvb2wgcnRlX3V1aWRfaXNfbnVsbChjb25zdCBydGVf dXVpZF90IHV1KTsNCg0KRFBESzogdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHJ0ZV91dWlkX3RbMTZd Ow0KDQp2cw0KDQpMaW51eDogdHlwZWRlZiBzdHJ1Y3Qgew0KCV9fdTggYltVVUlEX1NJWkVdOw0K fSB1dWlkX3Q7DQoNCj4gDQo+ID4NCj4gPiAgLyoqDQo+ID4gICAqIFJlbGVhc2UgYSBkZXZpY2Ug bWFwcGVkIHRvIGEgVkZJTy1tYW5hZ2VkIEkvTyBNTVUgZ3JvdXAuDQo+ID4gZGlmZiAtLWdpdCBh L2xpYi9saWJydGVfZWFsL2xpbnV4L2VhbF92ZmlvLmMgYi9saWIvbGlicnRlX2VhbC9saW51eC9l YWxfdmZpby5jDQo+ID4gaW5kZXggNDUwMmFlZmVkLi45MTYwODJiNWQgMTAwNjQ0DQo+ID4gLS0t IGEvbGliL2xpYnJ0ZV9lYWwvbGludXgvZWFsX3ZmaW8uYw0KPiA+ICsrKyBiL2xpYi9saWJydGVf ZWFsL2xpbnV4L2VhbF92ZmlvLmMNCj4gPiBAQCAtNzAyLDcgKzcwMiw4IEBAIHJ0ZV92ZmlvX2Ns ZWFyX2dyb3VwKGludCB2ZmlvX2dyb3VwX2ZkKQ0KPiA+DQo+ID4gIGludA0KPiA+ICBydGVfdmZp b19zZXR1cF9kZXZpY2UoY29uc3QgY2hhciAqc3lzZnNfYmFzZSwgY29uc3QgY2hhciAqZGV2X2Fk ZHIsDQo+ID4gLQkJaW50ICp2ZmlvX2Rldl9mZCwgc3RydWN0IHZmaW9fZGV2aWNlX2luZm8gKmRl dmljZV9pbmZvKQ0KPiA+ICsJCWludCAqdmZpb19kZXZfZmQsIHN0cnVjdCB2ZmlvX2RldmljZV9p bmZvICpkZXZpY2VfaW5mbywNCj4gPiArCQlydGVfdXVpZF90IHZmX3Rva2VuKQ0KPiA+ICB7DQo+ ID4gIAlzdHJ1Y3QgdmZpb19ncm91cF9zdGF0dXMgZ3JvdXBfc3RhdHVzID0gew0KPiA+ICAJCQku YXJnc3ogPSBzaXplb2YoZ3JvdXBfc3RhdHVzKQ0KPiA+IEBAIC03MTIsNiArNzEzLDcgQEAgcnRl X3ZmaW9fc2V0dXBfZGV2aWNlKGNvbnN0IGNoYXIgKnN5c2ZzX2Jhc2UsIGNvbnN0IGNoYXIgKmRl dl9hZGRyLA0KPiA+ICAJaW50IHZmaW9fY29udGFpbmVyX2ZkOw0KPiA+ICAJaW50IHZmaW9fZ3Jv dXBfZmQ7DQo+ID4gIAlpbnQgaW9tbXVfZ3JvdXBfbnVtOw0KPiA+ICsJY2hhciBkZXZbUEFUSF9N QVhdOw0KPiANCj4gV2h5IFBBVEhfTUFYPw0KDQpCYXNlZCBvbiBWYW1zaSdzIFJGQyB2MSwgYW5k IGZvdW5kIHRoYXQgaXQgbG9va2VkIGEgbGl0dGxlIHJlYXNvbmFibGUsICcgY2hhciBwY2lfYWRk cltQQVRIX01BWF0gPSB7MH07ICcNCg0Kc3RhdGljIGludA0KcGNpX3ZmaW9fbWFwX3Jlc291cmNl X3ByaW1hcnkoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXYpDQp7DQoJc3RydWN0IHZmaW9fZGV2 aWNlX2luZm8gZGV2aWNlX2luZm8gPSB7IC5hcmdzeiA9IHNpemVvZihkZXZpY2VfaW5mbykgfTsN CgljaGFyIHBjaV9hZGRyW1BBVEhfTUFYXSA9IHswfTsgPC0tLS0NCg0KPiANCj4gPiAgCWludCBp LCByZXQ7DQo+ID4NCj4gPiAgCS8qIGdldCBncm91cCBudW1iZXIgKi8NCj4gPiBAQCAtODk1LDgg Kzg5NywxOSBAQCBydGVfdmZpb19zZXR1cF9kZXZpY2UoY29uc3QgY2hhciAqc3lzZnNfYmFzZSwg Y29uc3QgY2hhciAqZGV2X2FkZHIsDQo+ID4gIAkJCQl0LT50eXBlX2lkLCB0LT5uYW1lKTsNCj4g PiAgCX0NCj4gPg0KPiA+ICsJaWYgKCFydGVfdXVpZF9pc19udWxsKHZmX3Rva2VuKSkgew0KPiA+ ICsJCWNoYXIgdmZfdG9rZW5fc3RyW1JURV9VVUlEX1NUUkxFTl07DQo+ID4gKw0KPiA+ICsJCXJ0 ZV91dWlkX3VucGFyc2UodmZfdG9rZW4sIHZmX3Rva2VuX3N0ciwgc2l6ZW9mKHZmX3Rva2VuX3N0 cikpOw0KPiA+ICsJCXNucHJpbnRmKGRldiwgc2l6ZW9mKGRldiksDQo+ID4gKwkJCSAiJXMgdmZf dG9rZW49JXMiLCBkZXZfYWRkciwgdmZfdG9rZW5fc3RyKTsNCj4gPiArCX0gZWxzZSB7DQo+ID4g KwkJc25wcmludGYoZGV2LCBzaXplb2YoZGV2KSwNCj4gPiArCQkJICIlcyIsIGRldl9hZGRyKTsN Cj4gPiArCX0NCj4gPiArDQo+ID4gIAkvKiBnZXQgYSBmaWxlIGRlc2NyaXB0b3IgZm9yIHRoZSBk ZXZpY2UgKi8NCj4gPiAtCSp2ZmlvX2Rldl9mZCA9IGlvY3RsKHZmaW9fZ3JvdXBfZmQsIFZGSU9f R1JPVVBfR0VUX0RFVklDRV9GRCwgZGV2X2FkZHIpOw0KPiA+ICsJKnZmaW9fZGV2X2ZkID0gaW9j dGwodmZpb19ncm91cF9mZCwgVkZJT19HUk9VUF9HRVRfREVWSUNFX0ZELCBkZXYpOw0KPiA+ICAJ aWYgKCp2ZmlvX2Rldl9mZCA8IDApIHsNCj4gPiAgCQkvKiBpZiB3ZSBjYW5ub3QgZ2V0IGEgZGV2 aWNlIGZkLCB0aGlzIGltcGxpZXMgYSBwcm9ibGVtIHdpdGgNCj4gPiAgCQkgKiB0aGUgVkZJTyBn cm91cCBvciB0aGUgY29udGFpbmVyIG5vdCBoYXZpbmcgSU9NTVUgY29uZmlndXJlZC4NCj4gPiBA QCAtMjA4MSw3ICsyMDk0LDggQEAgaW50DQo+ID4gIHJ0ZV92ZmlvX3NldHVwX2RldmljZShfX3J0 ZV91bnVzZWQgY29uc3QgY2hhciAqc3lzZnNfYmFzZSwNCj4gPiAgCQlfX3J0ZV91bnVzZWQgY29u c3QgY2hhciAqZGV2X2FkZHIsDQo+ID4gIAkJX19ydGVfdW51c2VkIGludCAqdmZpb19kZXZfZmQs DQo+ID4gLQkJX19ydGVfdW51c2VkIHN0cnVjdCB2ZmlvX2RldmljZV9pbmZvICpkZXZpY2VfaW5m bykNCj4gPiArCQlfX3J0ZV91bnVzZWQgc3RydWN0IHZmaW9fZGV2aWNlX2luZm8gKmRldmljZV9p bmZvLA0KPiA+ICsJCV9fcnRlX3VudXNlZCBydGVfdXVpZF90IHZmX3Rva2VuKQ0KPiA+ICB7DQo+ ID4gIAlyZXR1cm4gLTE7DQo+ID4gIH0NCj4gPg0KDQo=