From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ethan Zhao Subject: Re: [PATCH 1/2 V3] PCI: introduce device assignment interface and refactory related code Date: Fri, 11 Jul 2014 22:37:08 +0800 Message-ID: <1F7DCDA9-37C9-4001-B383-6CCAFDFB67D1@gmail.com> References: <1405081802-419-1-git-send-email-ethan.zhao@oracle.com> <1405084407.4098.59.camel@ul30vt.home> <1405088147.4098.64.camel@ul30vt.home> Mime-Version: 1.0 (1.0) Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 Cc: "kvm@vger.kernel.org" , "linux-pci@vger.kernel.org" , "e1000-devel@lists.sourceforge.net" , "vaughan.cao@oracle.com" , "jesse.brandeburg@intel.com" , Ethan Zhao , "linux.nics@intel.com" , "konrad.wilk@oracle.com" , "gleb@kernel.org" , "bhelgaas@google.com" , "boris.ostrovsky@oracle.com" , "netdev@vger.kernel.org" , "bruce.w.allan@intel.com" , "linux-kernel@vger.kernel.org" , "john.ronciak@intel.com" , "david.vrabel@citrix.com" , "pbonzini@redhat.com" To: Alex Williamson Return-path: In-Reply-To: <1405088147.4098.64.camel@ul30vt.home> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: e1000-devel-bounces@lists.sourceforge.net List-Id: netdev.vger.kernel.org Cgo+INTaIDIwMTTE6jfUwjExyNWjrM/CzucxMDoxNaOsQWxleCBXaWxsaWFtc29uIDxhbGV4Lndp bGxpYW1zb25AcmVkaGF0LmNvbT4g0LS1wKO6Cj4gCj4+IE9uIEZyaSwgMjAxNC0wNy0xMSBhdCAw NzoxMyAtMDYwMCwgQWxleCBXaWxsaWFtc29uIHdyb3RlOgo+Pj4gT24gRnJpLCAyMDE0LTA3LTEx IGF0IDIwOjMwICswODAwLCBFdGhhbiBaaGFvIHdyb3RlOgo+Pj4gVGhpcyBwYXRjaCBpbnRyb2R1 Y2VzIHR3byBuZXcgZGV2aWNlIGFzc2lnbm1lbnQgZnVuY3Rpb25zCj4+PiAKPj4+IHBjaV9pb3Zf YXNzaWduX2RldmljZSgpLAo+Pj4gcGNpX2lvdl9kZWFzc2lnbl9kZXZpY2UoKQo+Pj4gCj4+PiBh bG9uZyB3aXRoIHRoZSBleGlzdGVkIG9uZQo+Pj4gCj4+PiBwY2lfdmZzX2Fzc2lnbmVkKCkKPj4+ IAo+Pj4gVGhleSBjb25zdHJ1Y3QgdGhlIFZGcyBhc3NpZ25tZW50IG1hbmFnZW1lbnQgaW50ZXJm YWNlLCB1c2VkIHRvIGFzc2lnbi8KPj4+IGRlYXNzaWduIGRldmljZSB0byBWTSBhbmQgcXVlcnkg dGhlIFZGcyByZWZlcmVuY2UgY291bnRlci4gaW5zdGVhZCBvZgo+Pj4gZGlyZWN0IG1hbmlwdWxh dGlvbiBvZiBkZXZpY2UgZmxhZy4KPj4+IAo+Pj4gVGhpcyBwYXRjaCByZWZhc2hpb25lZCB0aGUg cmVsYXRlZCBjb2RlIGFuZCBtYWtlIHRoZW0gYXRvbWljLgo+Pj4gCj4+PiB2MzogY2hhbmdlIHRo ZSBuYW1pbmcgb2YgZGV2aWNlIGFzc2lnbm1lbnQgaGVscGVycywgYmVjYXVzZSB0aGV5IHdvcmsK Pj4+IGZvciBhbGwga2luZCBvZiBQQ0kgZGV2aWNlLCBub3Qgb25seSBTUi1JT1YgKGRhdmlkLnZy YWJlbEBjaXRyaXguY29tKQo+Pj4gCj4+PiB2MjogcmVvcmRlciB0aGUgcGF0Y2hzZXQgYW5kIG1h a2UgaXQgYmlzZWN0YWJsZSBhbmQgYXRvbWljLCBzdGVwcyBjbGVhcgo+Pj4gYmV0d2VlbiBpbnRl cmZhY2UgZGVmaW5hdGlvbiBhbmQgaW1wbGVtZW5hdGlvbiBhY2NvcmRpbmcgdG8gdGhlCj4+PiBz dWdnZXN0aW9uIGZyb20gYWxleC53aWxsaWFtc29uQHJlZGhhdC5jb20KPj4+IAo+Pj4gU2lnbmVk LW9mZi1ieTogRXRoYW4gWmhhbyA8ZXRoYW4uemhhb0BvcmFjbGUuY29tPgo+Pj4gLS0tCj4+IAo+ PiAtIFVzZSBhIGNvdmVyIHBhdGNoIHRvIGRlc2NyaWJlIHRoZSBzZXJpZXMKPj4gCj4+IC0gVmVy c2lvbiBpbmZvcm1hdGlvbiBnb2VzIGhlcmUsIGJlbG93IHRoZSAiLS0tIiwgbm90IGFib3ZlIGl0 Cj4+IAo+PiAtIEkgc3RhbmQgYnkgdGhlIHBhdGNoIGJyZWFrZG93biBJIHN1Z2dlc3RlZCBvcmln aW5hbGx5LCB0aGVyZSBhcmUgdG9vCj4+IG1hbnkgbG9naWNhbCBjaGFuZ2VzIGhlcmUgaW4gcGF0 Y2ggMS4gIFRoZXJlIGFyZSBlYXNpbHkgMyBzZXBhcmF0ZQo+PiBwYXRjaGVzIGhlcmUuCj4+IAo+ PiAtIFJlbmFtaW5nIHMvc3Jpb3YvaW92LyBkb2Vzbid0IGFkZHJlc3MgdGhlIHByb2JsZW0gRGF2 aWQgcmFpc2VkLiAgVGhlCj4+IG5hbWUgaXMgc3RpbGwgc3lub255bW91cyB3aXRoIFNSLUlPViBh bmQgaXQncyBkZWZpbmVkIG9uCj4+IGRyaXZlcnMvcGNpL2lvdi5jLCB3aGljaCBpcyBvbmx5IGJ1 aWx0IHdpdGggQ09ORklHX1BDSV9JT1YuCj4+IAo+PiAtIFBDSV9ERVZfRkxBR1NfQVNTSUdORUQg c2hvdWxkIGJlIHVudXNlZCBhZnRlciB0aGlzIHNlcmllcywgd2h5IGlzIGl0Cj4+IG5vdCByZW1v dmVkPwo+IAo+IEkgZ3Vlc3MgaXQncyBzdGlsbCB1c2VkLCB3aGljaCBpcyBldmVuIHdvcnNlIGJl Y2F1c2Ugbm93IHdlIGhhdmUKPiBzZXBhcmF0ZSBkYXRhIGVsZW1lbnRzLCBvbmUgdHJhY2tpbmcg aG93IG1hbnkgVkZzIGFyZSBhc3NpZ25lZCBmcm9tIGEgUEYKPiBhbmQgYW5vdGhlciB0cmFja2lu ZyBlYWNoIGRldmljZSB0aGF0J3MgYXNzaWduZWQuICBXaGF0IGFyZSB3ZSBhY3R1YWxseQo+IGdh aW5pbmcgb3IgZml4aW5nIGJ5IGRvaW5nIHRoaXM/Cj4gCgpPZiBjb3Vyc2UgaXQgaXMgdXNlZCB0 byB0cmFja2luZyBQRi9WRiBhc3NpZ25lZCwgIHdoYXQgd2UgZ2FpbmVkIGFyZSAtIHdlIGhpZGUg dGhlIGRldGFpbHMKSW4gYXNzaWdubWVudCBoZWxwZXJzLCB3ZSB3b3VsZG4ndCBib3RoZXIgdGhl IHVzZXJzIGFueW1vcmUgYW5kIGltcGxlbWVudCB3aGF0IGluc2lkZQpUaGUgaGVscGVycywgbXkg aW5pdGlhbCBwdXJwb3NlIGlzIHRvIHNpbXBsaWZ5IHRoZSB1Z2x5ICBwY2lfdmZzX2Fzc2lnbmVk KCkgd2l0aCBjb3VudGVyLgoKSSBkb24ndCB3YW50IHRvIHB1c2ggbW9yZSBjaGFuZ2UgaW4gb25l IHN0ZXAsIHRoYXQgd291bGQgb3V0IG9mIGNvbnRyb2wgdG8gZ2V0IHBlcmZlY3QgcmVzdWx0Lgog Cj4+PiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfdmlydGNobmxfcGYuYyB8 ICAgMTcgKystLS0tLS0tLS0tLS0tLS0KPj4+IGRyaXZlcnMvcGNpL2lvdi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyMCArKysrKysrKysrKysrKysrKysrKwo+Pj4gZHJp dmVycy94ZW4veGVuLXBjaWJhY2svcGNpX3N0dWIuYyAgICAgICAgICAgICAgICAgfCAgICA0ICsr LS0KPj4+IGluY2x1ZGUvbGludXgvcGNpLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgNCArKysrCj4+PiB2aXJ0L2t2bS9hc3NpZ25lZC1kZXYuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDIgKy0KPj4+IHZpcnQva3ZtL2lvbW11LmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgNCArKy0tCj4+IAo+PiAtIFRoaXMgcGF0Y2ggdG91Y2gg NCBzZXBhcmF0ZSBsb2dpY2FsIGNvZGUgYXJlYXMsIHdobyBkbyB5b3UgZXhwZWN0IHRvCj4+IGFj ayBhbmQgY29tbWl0IGl0PyAgU3BsaXQgaXQgdXAuCj4+IAo+Pj4gNiBmaWxlcyBjaGFuZ2VkLCAz MSBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMoLSkKPj4+IAo+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV92aXJ0Y2hubF9wZi5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3ZpcnRjaG5sX3BmLmMKPj4+IGluZGV4IDAy YzExYTcuLjc4MTA0MGUgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRl bC9pNDBlL2k0MGVfdmlydGNobmxfcGYuYwo+Pj4gKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv aW50ZWwvaTQwZS9pNDBlX3ZpcnRjaG5sX3BmLmMKPj4+IEBAIC02OTMsMjIgKzY5Myw5IEBAIGNv bXBsZXRlX3Jlc2V0Ogo+Pj4gc3RhdGljIGJvb2wgaTQwZV92ZnNfYXJlX2Fzc2lnbmVkKHN0cnVj dCBpNDBlX3BmICpwZikKPj4+IHsKPj4+ICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gcGYtPnBk ZXY7Cj4+PiAtICAgIHN0cnVjdCBwY2lfZGV2ICp2ZmRldjsKPj4+IC0KPj4+IC0gICAgLyogbG9v cCB0aHJvdWdoIGFsbCB0aGUgVkZzIHRvIHNlZSBpZiB3ZSBvd24gYW55IHRoYXQgYXJlIGFzc2ln bmVkICovCj4+PiAtICAgIHZmZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRPUl9JRF9JTlRF TCwgSTQwRV9ERVZfSURfVkYgLCBOVUxMKTsKPj4+IC0gICAgd2hpbGUgKHZmZGV2KSB7Cj4+PiAt ICAgICAgICAvKiBpZiB3ZSBkb24ndCBvd24gaXQgd2UgZG9uJ3QgY2FyZSAqLwo+Pj4gLSAgICAg ICAgaWYgKHZmZGV2LT5pc192aXJ0Zm4gJiYgcGNpX3BoeXNmbih2ZmRldikgPT0gcGRldikgewo+ Pj4gLSAgICAgICAgICAgIC8qIGlmIGl0IGlzIGFzc2lnbmVkIHdlIGNhbm5vdCByZWxlYXNlIGl0 ICovCj4+PiAtICAgICAgICAgICAgaWYgKHZmZGV2LT5kZXZfZmxhZ3MgJiBQQ0lfREVWX0ZMQUdT X0FTU0lHTkVEKQo+Pj4gLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKPj4+IC0gICAgICAg IH0KPj4+IAo+Pj4gLSAgICAgICAgdmZkZXYgPSBwY2lfZ2V0X2RldmljZShQQ0lfVkVORE9SX0lE X0lOVEVMLAo+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgSTQwRV9ERVZfSURfVkYsCj4+PiAt ICAgICAgICAgICAgICAgICAgICAgICB2ZmRldik7Cj4+PiAtICAgIH0KPj4+ICsgICAgaWYgKHBj aV92ZnNfYXNzaWduZWQocGRldikpCj4+PiArICAgICAgICByZXR1cm4gdHJ1ZTsKPj4+IAo+Pj4g ICAgcmV0dXJuIGZhbHNlOwo+Pj4gfQo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2lvdi5j IGIvZHJpdmVycy9wY2kvaW92LmMKPj4+IGluZGV4IGRlN2E3NDcuLjA5MGY4MjcgMTAwNjQ0Cj4+ PiAtLS0gYS9kcml2ZXJzL3BjaS9pb3YuYwo+Pj4gKysrIGIvZHJpdmVycy9wY2kvaW92LmMKPj4+ IEBAIC02NDQsNiArNjQ0LDI2IEBAIGludCBwY2lfdmZzX2Fzc2lnbmVkKHN0cnVjdCBwY2lfZGV2 ICpkZXYpCj4+PiBFWFBPUlRfU1lNQk9MX0dQTChwY2lfdmZzX2Fzc2lnbmVkKTsKPj4+IAo+Pj4g LyoqCj4+PiArICogcGNpX2lvdl9hc3NpZ25fZGV2aWNlIC0gYXNzaWduIGRldmljZSB0byBWTQo+ Pj4gKyAqIEBwZGV2OiB0aGUgZGV2aWNlIHRvIGJlIGFzc2lnbmVkLgo+Pj4gKyAqLwo+Pj4gK3Zv aWQgcGNpX2lvdl9hc3NpZ25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+Pj4gK3sKPj4+ ICsgICAgcGRldi0+ZGV2X2ZsYWdzIHw9IFBDSV9ERVZfRkxBR1NfQVNTSUdORUQ7Cj4+PiArfQo+ Pj4gK0VYUE9SVF9TWU1CT0xfR1BMKHBjaV9pb3ZfYXNzaWduX2RldmljZSk7Cj4+PiArCj4+PiAr LyoqCj4+PiArICogcGNpX2lvdl9kZWFzc2lnbl9kZXZpY2UgLSBkZWFzaWduIGRldmljZSBmcm9t IFZNCj4+PiArICogQHBkZXY6IHRoZSBkZXZpY2UgdG8gYmUgZGVhc3NpZ25lZC4KPj4+ICsgKi8K Pj4+ICt2b2lkIHBjaV9pb3ZfZGVhc3NpZ25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo+ Pj4gK3sKPj4+ICsgICAgcGRldi0+ZGV2X2ZsYWdzICY9IH5QQ0lfREVWX0ZMQUdTX0FTU0lHTkVE Owo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9MX0dQTChwY2lfaW92X2RlYXNzaWduX2RldmljZSk7 Cj4+PiArCj4+PiArLyoqCj4+PiAgKiBwY2lfc3Jpb3Zfc2V0X3RvdGFsdmZzIC0tIHJlZHVjZSB0 aGUgVG90YWxWRnMgYXZhaWxhYmxlCj4+PiAgKiBAZGV2OiB0aGUgUENJIFBGIGRldmljZQo+Pj4g ICogQG51bXZmczogbnVtYmVyIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIFRvdGFsVkZzIHN1cHBv cnRlZAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMg Yi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lfc3R1Yi5jCj4+PiBpbmRleCA2MmZjZDQ4Li4y N2UwMGQxIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpX3N0dWIu Ywo+Pj4gKysrIGIvZHJpdmVycy94ZW4veGVuLXBjaWJhY2svcGNpX3N0dWIuYwo+Pj4gQEAgLTEz Myw3ICsxMzMsNyBAQCBzdGF0aWMgdm9pZCBwY2lzdHViX2RldmljZV9yZWxlYXNlKHN0cnVjdCBr cmVmICprcmVmKQo+Pj4gICAgeGVuX3BjaWJrX2NvbmZpZ19mcmVlX2R5bl9maWVsZHMoZGV2KTsK Pj4+ICAgIHhlbl9wY2lia19jb25maWdfZnJlZV9kZXYoZGV2KTsKPj4+IAo+Pj4gLSAgICBkZXYt PmRldl9mbGFncyAmPSB+UENJX0RFVl9GTEFHU19BU1NJR05FRDsKPj4+ICsgICAgcGNpX2lvdl9k ZWFzc2lnbl9kZXZpY2UoZGV2KTsKPj4+ICAgIHBjaV9kZXZfcHV0KGRldik7Cj4+PiAKPj4+ICAg IGtmcmVlKHBzZGV2KTsKPj4+IEBAIC00MDQsNyArNDA0LDcgQEAgc3RhdGljIGludCBwY2lzdHVi X2luaXRfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCj4+PiAgICBkZXZfZGJnKCZkZXYtPmRl diwgInJlc2V0IGRldmljZVxuIik7Cj4+PiAgICB4ZW5fcGNpYmtfcmVzZXRfZGV2aWNlKGRldik7 Cj4+PiAKPj4+IC0gICAgZGV2LT5kZXZfZmxhZ3MgfD0gUENJX0RFVl9GTEFHU19BU1NJR05FRDsK Pj4+ICsgICAgcGNpX2lvdl9hc3NpZ25fZGV2aWNlKGRldik7Cj4+PiAgICByZXR1cm4gMDsKPj4+ IAo+Pj4gY29uZmlnX3JlbGVhc2U6Cj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2ku aCBiL2luY2x1ZGUvbGludXgvcGNpLmgKPj4+IGluZGV4IGFhYjU3YjQuLjVlY2U2ZDYgMTAwNjQ0 Cj4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS5oCj4+PiArKysgYi9pbmNsdWRlL2xpbnV4L3Bj aS5oCj4+PiBAQCAtMTYwMyw2ICsxNjAzLDggQEAgaW50IHBjaV9udW1fdmYoc3RydWN0IHBjaV9k ZXYgKmRldik7Cj4+PiBpbnQgcGNpX3Zmc19hc3NpZ25lZChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsK Pj4+IGludCBwY2lfc3Jpb3Zfc2V0X3RvdGFsdmZzKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHUxNiBu dW12ZnMpOwo+Pj4gaW50IHBjaV9zcmlvdl9nZXRfdG90YWx2ZnMoc3RydWN0IHBjaV9kZXYgKmRl dik7Cj4+PiArdm9pZCBwY2lfaW92X2Fzc2lnbl9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldik7 Cj4+PiArdm9pZCBwY2lfaW92X2RlYXNzaWduX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsK Pj4+ICNlbHNlCj4+PiBzdGF0aWMgaW5saW5lIGludCBwY2lfZW5hYmxlX3NyaW92KHN0cnVjdCBw Y2lfZGV2ICpkZXYsIGludCBucl92aXJ0Zm4pCj4+PiB7IHJldHVybiAtRU5PREVWOyB9Cj4+PiBA QCAtMTYxNCw2ICsxNjE2LDggQEAgc3RhdGljIGlubGluZSBpbnQgcGNpX3NyaW92X3NldF90b3Rh bHZmcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCB1MTYgbnVtdmZzKQo+Pj4geyByZXR1cm4gMDsgfQo+ Pj4gc3RhdGljIGlubGluZSBpbnQgcGNpX3NyaW92X2dldF90b3RhbHZmcyhzdHJ1Y3QgcGNpX2Rl diAqZGV2KQo+Pj4geyByZXR1cm4gMDsgfQo+Pj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBwY2lfaW92 X2Fzc2lnbl9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikgeyB9Cj4+PiArc3RhdGljIGlubGlu ZSB2b2lkIHBjaV9pb3ZfZGVhc3NpZ25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpIHsgfQo+ Pj4gI2VuZGlmCj4+PiAKPj4+ICNpZiBkZWZpbmVkKENPTkZJR19IT1RQTFVHX1BDSSkgfHwgZGVm aW5lZChDT05GSUdfSE9UUExVR19QQ0lfTU9EVUxFKQo+Pj4gZGlmZiAtLWdpdCBhL3ZpcnQva3Zt L2Fzc2lnbmVkLWRldi5jIGIvdmlydC9rdm0vYXNzaWduZWQtZGV2LmMKPj4+IGluZGV4IGJmMDY1 NzcuLjdmYWM1OGQgMTAwNjQ0Cj4+PiAtLS0gYS92aXJ0L2t2bS9hc3NpZ25lZC1kZXYuYwo+Pj4g KysrIGIvdmlydC9rdm0vYXNzaWduZWQtZGV2LmMKPj4+IEBAIC0zMDIsNyArMzAyLDcgQEAgc3Rh dGljIHZvaWQga3ZtX2ZyZWVfYXNzaWduZWRfZGV2aWNlKHN0cnVjdCBrdm0gKmt2bSwKPj4+ICAg IGVsc2UKPj4+ICAgICAgICBwY2lfcmVzdG9yZV9zdGF0ZShhc3NpZ25lZF9kZXYtPmRldik7Cj4+ PiAKPj4+IC0gICAgYXNzaWduZWRfZGV2LT5kZXYtPmRldl9mbGFncyAmPSB+UENJX0RFVl9GTEFH U19BU1NJR05FRDsKPj4+ICsgICAgcGNpX2lvdl9kZWFzc2lnbl9kZXZpY2UoYXNzaWduZWRfZGV2 LT5kZXYpOwo+Pj4gCj4+PiAgICBwY2lfcmVsZWFzZV9yZWdpb25zKGFzc2lnbmVkX2Rldi0+ZGV2 KTsKPj4+ICAgIHBjaV9kaXNhYmxlX2RldmljZShhc3NpZ25lZF9kZXYtPmRldik7Cj4+PiBkaWZm IC0tZ2l0IGEvdmlydC9rdm0vaW9tbXUuYyBiL3ZpcnQva3ZtL2lvbW11LmMKPj4+IGluZGV4IDBk ZjdkNGIuLjY0MWVlNzMgMTAwNjQ0Cj4+PiAtLS0gYS92aXJ0L2t2bS9pb21tdS5jCj4+PiArKysg Yi92aXJ0L2t2bS9pb21tdS5jCj4+PiBAQCAtMTk0LDcgKzE5NCw3IEBAIGludCBrdm1fYXNzaWdu X2RldmljZShzdHJ1Y3Qga3ZtICprdm0sCj4+PiAgICAgICAgICAgIGdvdG8gb3V0X3VubWFwOwo+ Pj4gICAgfQo+Pj4gCj4+PiAtICAgIHBkZXYtPmRldl9mbGFncyB8PSBQQ0lfREVWX0ZMQUdTX0FT U0lHTkVEOwo+Pj4gKyAgICBwY2lfaW92X2Fzc2lnbl9kZXZpY2UocGRldik7Cj4+PiAKPj4+ICAg IGRldl9pbmZvKCZwZGV2LT5kZXYsICJrdm0gYXNzaWduIGRldmljZVxuIik7Cj4+PiAKPj4+IEBA IC0yMjAsNyArMjIwLDcgQEAgaW50IGt2bV9kZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGt2bSAqa3Zt LAo+Pj4gCj4+PiAgICBpb21tdV9kZXRhY2hfZGV2aWNlKGRvbWFpbiwgJnBkZXYtPmRldik7Cj4+ PiAKPj4+IC0gICAgcGRldi0+ZGV2X2ZsYWdzICY9IH5QQ0lfREVWX0ZMQUdTX0FTU0lHTkVEOwo+ Pj4gKyAgICBwY2lfaW92X2RlYXNzaWduX2RldmljZShwZGV2KTsKPj4+IAo+Pj4gICAgZGV2X2lu Zm8oJnBkZXYtPmRldiwgImt2bSBkZWFzc2lnbiBkZXZpY2VcbiIpOwo+IAo+IAo+IAoKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZW4gc291cmNlIGJ1c2luZXNzIHByb2Nlc3MgbWFuYWdlbWVudCBz dWl0ZSBidWlsdCBvbiBKYXZhIGFuZCBFY2xpcHNlClR1cm4gcHJvY2Vzc2VzIGludG8gYnVzaW5l c3MgYXBwbGljYXRpb25zIHdpdGggQm9uaXRhIEJQTSBDb21tdW5pdHkgRWRpdGlvbgpRdWlja2x5 IGNvbm5lY3QgcGVvcGxlLCBkYXRhLCBhbmQgc3lzdGVtcyBpbnRvIG9yZ2FuaXplZCB3b3JrZmxv d3MKV2lubmVyIG9mIEJPU1NJRSwgQ09ESUUsIE9XMiBhbmQgR2FydG5lciBhd2FyZHMKaHR0cDov L3Auc2YubmV0L3NmdS9Cb25pdGFzb2Z0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkUxMDAwLWRldmVsIG1haWxpbmcgbGlzdApFMTAwMC1kZXZlbEBsaXN0 cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlz dGluZm8vZTEwMDAtZGV2ZWwKVG8gbGVhcm4gbW9yZSBhYm91dCBJbnRlbCYjMTc0OyBFdGhlcm5l dCwgdmlzaXQgaHR0cDovL2NvbW11bml0aWVzLmludGVsLmNvbS9jb21tdW5pdHkvd2lyZWQK