From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Williamson Subject: Re: [PATCH 1/2 V3] PCI: introduce device assignment interface and refactory related code Date: Fri, 11 Jul 2014 08:54:41 -0600 Message-ID: <1405090481.4098.83.camel@ul30vt.home> References: <1405081802-419-1-git-send-email-ethan.zhao@oracle.com> <1405084407.4098.59.camel@ul30vt.home> <1405088147.4098.64.camel@ul30vt.home> <1F7DCDA9-37C9-4001-B383-6CCAFDFB67D1@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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: Ethan Zhao Return-path: In-Reply-To: <1F7DCDA9-37C9-4001-B383-6CCAFDFB67D1@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: e1000-devel-bounces@lists.sourceforge.net List-Id: netdev.vger.kernel.org T24gRnJpLCAyMDE0LTA3LTExIGF0IDIyOjM3ICswODAwLCBFdGhhbiBaaGFvIHdyb3RlOgo+IAo+ ID4g5ZyoIDIwMTTlubQ35pyIMTHml6XvvIzkuIvljYgxMDoxNe+8jEFsZXggV2lsbGlhbXNvbiA8 YWxleC53aWxsaWFtc29uQHJlZGhhdC5jb20+IOWGmemBk++8mgo+ID4gCj4gPj4gT24gRnJpLCAy MDE0LTA3LTExIGF0IDA3OjEzIC0wNjAwLCBBbGV4IFdpbGxpYW1zb24gd3JvdGU6Cj4gPj4+IE9u IEZyaSwgMjAxNC0wNy0xMSBhdCAyMDozMCArMDgwMCwgRXRoYW4gWmhhbyB3cm90ZToKPiA+Pj4g VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHR3byBuZXcgZGV2aWNlIGFzc2lnbm1lbnQgZnVuY3Rpb25z Cj4gPj4+IAo+ID4+PiBwY2lfaW92X2Fzc2lnbl9kZXZpY2UoKSwKPiA+Pj4gcGNpX2lvdl9kZWFz c2lnbl9kZXZpY2UoKQo+ID4+PiAKPiA+Pj4gYWxvbmcgd2l0aCB0aGUgZXhpc3RlZCBvbmUKPiA+ Pj4gCj4gPj4+IHBjaV92ZnNfYXNzaWduZWQoKQo+ID4+PiAKPiA+Pj4gVGhleSBjb25zdHJ1Y3Qg dGhlIFZGcyBhc3NpZ25tZW50IG1hbmFnZW1lbnQgaW50ZXJmYWNlLCB1c2VkIHRvIGFzc2lnbi8K PiA+Pj4gZGVhc3NpZ24gZGV2aWNlIHRvIFZNIGFuZCBxdWVyeSB0aGUgVkZzIHJlZmVyZW5jZSBj b3VudGVyLiBpbnN0ZWFkIG9mCj4gPj4+IGRpcmVjdCBtYW5pcHVsYXRpb24gb2YgZGV2aWNlIGZs YWcuCj4gPj4+IAo+ID4+PiBUaGlzIHBhdGNoIHJlZmFzaGlvbmVkIHRoZSByZWxhdGVkIGNvZGUg YW5kIG1ha2UgdGhlbSBhdG9taWMuCj4gPj4+IAo+ID4+PiB2MzogY2hhbmdlIHRoZSBuYW1pbmcg b2YgZGV2aWNlIGFzc2lnbm1lbnQgaGVscGVycywgYmVjYXVzZSB0aGV5IHdvcmsKPiA+Pj4gZm9y IGFsbCBraW5kIG9mIFBDSSBkZXZpY2UsIG5vdCBvbmx5IFNSLUlPViAoZGF2aWQudnJhYmVsQGNp dHJpeC5jb20pCj4gPj4+IAo+ID4+PiB2MjogcmVvcmRlciB0aGUgcGF0Y2hzZXQgYW5kIG1ha2Ug aXQgYmlzZWN0YWJsZSBhbmQgYXRvbWljLCBzdGVwcyBjbGVhcgo+ID4+PiBiZXR3ZWVuIGludGVy ZmFjZSBkZWZpbmF0aW9uIGFuZCBpbXBsZW1lbmF0aW9uIGFjY29yZGluZyB0byB0aGUKPiA+Pj4g c3VnZ2VzdGlvbiBmcm9tIGFsZXgud2lsbGlhbXNvbkByZWRoYXQuY29tCj4gPj4+IAo+ID4+PiBT aWduZWQtb2ZmLWJ5OiBFdGhhbiBaaGFvIDxldGhhbi56aGFvQG9yYWNsZS5jb20+Cj4gPj4+IC0t LQo+ID4+IAo+ID4+IC0gVXNlIGEgY292ZXIgcGF0Y2ggdG8gZGVzY3JpYmUgdGhlIHNlcmllcwo+ ID4+IAo+ID4+IC0gVmVyc2lvbiBpbmZvcm1hdGlvbiBnb2VzIGhlcmUsIGJlbG93IHRoZSAiLS0t Iiwgbm90IGFib3ZlIGl0Cj4gPj4gCj4gPj4gLSBJIHN0YW5kIGJ5IHRoZSBwYXRjaCBicmVha2Rv d24gSSBzdWdnZXN0ZWQgb3JpZ2luYWxseSwgdGhlcmUgYXJlIHRvbwo+ID4+IG1hbnkgbG9naWNh bCBjaGFuZ2VzIGhlcmUgaW4gcGF0Y2ggMS4gIFRoZXJlIGFyZSBlYXNpbHkgMyBzZXBhcmF0ZQo+ ID4+IHBhdGNoZXMgaGVyZS4KPiA+PiAKPiA+PiAtIFJlbmFtaW5nIHMvc3Jpb3YvaW92LyBkb2Vz bid0IGFkZHJlc3MgdGhlIHByb2JsZW0gRGF2aWQgcmFpc2VkLiAgVGhlCj4gPj4gbmFtZSBpcyBz dGlsbCBzeW5vbnltb3VzIHdpdGggU1ItSU9WIGFuZCBpdCdzIGRlZmluZWQgb24KPiA+PiBkcml2 ZXJzL3BjaS9pb3YuYywgd2hpY2ggaXMgb25seSBidWlsdCB3aXRoIENPTkZJR19QQ0lfSU9WLgo+ ID4+IAo+ID4+IC0gUENJX0RFVl9GTEFHU19BU1NJR05FRCBzaG91bGQgYmUgdW51c2VkIGFmdGVy IHRoaXMgc2VyaWVzLCB3aHkgaXMgaXQKPiA+PiBub3QgcmVtb3ZlZD8KPiA+IAo+ID4gSSBndWVz cyBpdCdzIHN0aWxsIHVzZWQsIHdoaWNoIGlzIGV2ZW4gd29yc2UgYmVjYXVzZSBub3cgd2UgaGF2 ZQo+ID4gc2VwYXJhdGUgZGF0YSBlbGVtZW50cywgb25lIHRyYWNraW5nIGhvdyBtYW55IFZGcyBh cmUgYXNzaWduZWQgZnJvbSBhIFBGCj4gPiBhbmQgYW5vdGhlciB0cmFja2luZyBlYWNoIGRldmlj ZSB0aGF0J3MgYXNzaWduZWQuICBXaGF0IGFyZSB3ZSBhY3R1YWxseQo+ID4gZ2FpbmluZyBvciBm aXhpbmcgYnkgZG9pbmcgdGhpcz8KPiA+IAo+IAo+IE9mIGNvdXJzZSBpdCBpcyB1c2VkIHRvIHRy YWNraW5nIFBGL1ZGIGFzc2lnbmVkLCAgd2hhdCB3ZSBnYWluZWQgYXJlIC0gd2UgaGlkZSB0aGUg ZGV0YWlscwo+IEluIGFzc2lnbm1lbnQgaGVscGVycywgd2Ugd291bGRuJ3QgYm90aGVyIHRoZSB1 c2VycyBhbnltb3JlIGFuZCBpbXBsZW1lbnQgd2hhdCBpbnNpZGUKPiBUaGUgaGVscGVycywgbXkg aW5pdGlhbCBwdXJwb3NlIGlzIHRvIHNpbXBsaWZ5IHRoZSB1Z2x5ICBwY2lfdmZzX2Fzc2lnbmVk KCkgd2l0aCBjb3VudGVyLgo+IAo+IEkgZG9uJ3Qgd2FudCB0byBwdXNoIG1vcmUgY2hhbmdlIGlu IG9uZSBzdGVwLCB0aGF0IHdvdWxkIG91dCBvZiBjb250cm9sIHRvIGdldCBwZXJmZWN0IHJlc3Vs dC4KCkJ1dCBhIGNvdW50ZXIgbWVhbnMgdGhhdCB3ZSdyZSB0cmFja2luZyB0aGUgZGF0YSBpbiB0 d28gc2VwYXJhdGUgcGxhY2VzLAp3aGljaCBpcyBnZW5lcmFsbHkgYSBiYWQgaWRlYS4gIENsZWFu aW5nIHVwIGRpcmVjdCBhY2Nlc3MgdG8gZmxhZ3MgaXMKZmluZSwgYnV0IGNyZWF0aW5nIGEgc2Vw YXJhdGUgY291bnRlciBkb2Vzbid0IHJlYWxseSBzZWVtIHRvIGFkZCBhbnkKdmFsdWUuCgo+ID4+ PiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfdmlydGNobmxfcGYuYyB8ICAg MTcgKystLS0tLS0tLS0tLS0tLS0KPiA+Pj4gZHJpdmVycy9wY2kvaW92LmMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKysrKysrKysrCj4gPj4+IGRy aXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMgICAgICAgICAgICAgICAgIHwgICAgNCAr Ky0tCj4gPj4+IGluY2x1ZGUvbGludXgvcGNpLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgNCArKysrCj4gPj4+IHZpcnQva3ZtL2Fzc2lnbmVkLWRldi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgMiArLQo+ID4+PiB2aXJ0L2t2bS9pb21tdS5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKystLQo+ID4+IAo+ID4+IC0gVGhpcyBw YXRjaCB0b3VjaCA0IHNlcGFyYXRlIGxvZ2ljYWwgY29kZSBhcmVhcywgd2hvIGRvIHlvdSBleHBl Y3QgdG8KPiA+PiBhY2sgYW5kIGNvbW1pdCBpdD8gIFNwbGl0IGl0IHVwLgo+ID4+IAo+ID4+PiA2 IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQo+ID4+PiAK PiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV92 aXJ0Y2hubF9wZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3ZpcnRj aG5sX3BmLmMKPiA+Pj4gaW5kZXggMDJjMTFhNy4uNzgxMDQwZSAxMDA2NDQKPiA+Pj4gLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3ZpcnRjaG5sX3BmLmMKPiA+Pj4g KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3ZpcnRjaG5sX3BmLmMK PiA+Pj4gQEAgLTY5MywyMiArNjkzLDkgQEAgY29tcGxldGVfcmVzZXQ6Cj4gPj4+IHN0YXRpYyBi b29sIGk0MGVfdmZzX2FyZV9hc3NpZ25lZChzdHJ1Y3QgaTQwZV9wZiAqcGYpCj4gPj4+IHsKPiA+ Pj4gICAgc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBwZi0+cGRldjsKPiA+Pj4gLSAgICBzdHJ1Y3Qg cGNpX2RldiAqdmZkZXY7Cj4gPj4+IC0KPiA+Pj4gLSAgICAvKiBsb29wIHRocm91Z2ggYWxsIHRo ZSBWRnMgdG8gc2VlIGlmIHdlIG93biBhbnkgdGhhdCBhcmUgYXNzaWduZWQgKi8KPiA+Pj4gLSAg ICB2ZmRldiA9IHBjaV9nZXRfZGV2aWNlKFBDSV9WRU5ET1JfSURfSU5URUwsIEk0MEVfREVWX0lE X1ZGICwgTlVMTCk7Cj4gPj4+IC0gICAgd2hpbGUgKHZmZGV2KSB7Cj4gPj4+IC0gICAgICAgIC8q IGlmIHdlIGRvbid0IG93biBpdCB3ZSBkb24ndCBjYXJlICovCj4gPj4+IC0gICAgICAgIGlmICh2 ZmRldi0+aXNfdmlydGZuICYmIHBjaV9waHlzZm4odmZkZXYpID09IHBkZXYpIHsKPiA+Pj4gLSAg ICAgICAgICAgIC8qIGlmIGl0IGlzIGFzc2lnbmVkIHdlIGNhbm5vdCByZWxlYXNlIGl0ICovCj4g Pj4+IC0gICAgICAgICAgICBpZiAodmZkZXYtPmRldl9mbGFncyAmIFBDSV9ERVZfRkxBR1NfQVNT SUdORUQpCj4gPj4+IC0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cj4gPj4+IC0gICAgICAg IH0KPiA+Pj4gCj4gPj4+IC0gICAgICAgIHZmZGV2ID0gcGNpX2dldF9kZXZpY2UoUENJX1ZFTkRP Ul9JRF9JTlRFTCwKPiA+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgSTQwRV9ERVZfSURfVkYs Cj4gPj4+IC0gICAgICAgICAgICAgICAgICAgICAgIHZmZGV2KTsKPiA+Pj4gLSAgICB9Cj4gPj4+ ICsgICAgaWYgKHBjaV92ZnNfYXNzaWduZWQocGRldikpCj4gPj4+ICsgICAgICAgIHJldHVybiB0 cnVlOwo+ID4+PiAKPiA+Pj4gICAgcmV0dXJuIGZhbHNlOwo+ID4+PiB9Cj4gPj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL3BjaS9pb3YuYyBiL2RyaXZlcnMvcGNpL2lvdi5jCj4gPj4+IGluZGV4IGRl N2E3NDcuLjA5MGY4MjcgMTAwNjQ0Cj4gPj4+IC0tLSBhL2RyaXZlcnMvcGNpL2lvdi5jCj4gPj4+ ICsrKyBiL2RyaXZlcnMvcGNpL2lvdi5jCj4gPj4+IEBAIC02NDQsNiArNjQ0LDI2IEBAIGludCBw Y2lfdmZzX2Fzc2lnbmVkKHN0cnVjdCBwY2lfZGV2ICpkZXYpCj4gPj4+IEVYUE9SVF9TWU1CT0xf R1BMKHBjaV92ZnNfYXNzaWduZWQpOwo+ID4+PiAKPiA+Pj4gLyoqCj4gPj4+ICsgKiBwY2lfaW92 X2Fzc2lnbl9kZXZpY2UgLSBhc3NpZ24gZGV2aWNlIHRvIFZNCj4gPj4+ICsgKiBAcGRldjogdGhl IGRldmljZSB0byBiZSBhc3NpZ25lZC4KPiA+Pj4gKyAqLwo+ID4+PiArdm9pZCBwY2lfaW92X2Fz c2lnbl9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCj4gPj4+ICt7Cj4gPj4+ICsgICAgcGRl di0+ZGV2X2ZsYWdzIHw9IFBDSV9ERVZfRkxBR1NfQVNTSUdORUQ7Cj4gPj4+ICt9Cj4gPj4+ICtF WFBPUlRfU1lNQk9MX0dQTChwY2lfaW92X2Fzc2lnbl9kZXZpY2UpOwo+ID4+PiArCj4gPj4+ICsv KioKPiA+Pj4gKyAqIHBjaV9pb3ZfZGVhc3NpZ25fZGV2aWNlIC0gZGVhc2lnbiBkZXZpY2UgZnJv bSBWTQo+ID4+PiArICogQHBkZXY6IHRoZSBkZXZpY2UgdG8gYmUgZGVhc3NpZ25lZC4KPiA+Pj4g KyAqLwo+ID4+PiArdm9pZCBwY2lfaW92X2RlYXNzaWduX2RldmljZShzdHJ1Y3QgcGNpX2RldiAq cGRldikKPiA+Pj4gK3sKPiA+Pj4gKyAgICBwZGV2LT5kZXZfZmxhZ3MgJj0gflBDSV9ERVZfRkxB R1NfQVNTSUdORUQ7Cj4gPj4+ICt9Cj4gPj4+ICtFWFBPUlRfU1lNQk9MX0dQTChwY2lfaW92X2Rl YXNzaWduX2RldmljZSk7Cj4gPj4+ICsKPiA+Pj4gKy8qKgo+ID4+PiAgKiBwY2lfc3Jpb3Zfc2V0 X3RvdGFsdmZzIC0tIHJlZHVjZSB0aGUgVG90YWxWRnMgYXZhaWxhYmxlCj4gPj4+ICAqIEBkZXY6 IHRoZSBQQ0kgUEYgZGV2aWNlCj4gPj4+ICAqIEBudW12ZnM6IG51bWJlciB0aGF0IHNob3VsZCBi ZSB1c2VkIGZvciBUb3RhbFZGcyBzdXBwb3J0ZWQKPiA+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv eGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMgYi9kcml2ZXJzL3hlbi94ZW4tcGNpYmFjay9wY2lf c3R1Yi5jCj4gPj4+IGluZGV4IDYyZmNkNDguLjI3ZTAwZDEgMTAwNjQ0Cj4gPj4+IC0tLSBhL2Ry aXZlcnMveGVuL3hlbi1wY2liYWNrL3BjaV9zdHViLmMKPiA+Pj4gKysrIGIvZHJpdmVycy94ZW4v eGVuLXBjaWJhY2svcGNpX3N0dWIuYwo+ID4+PiBAQCAtMTMzLDcgKzEzMyw3IEBAIHN0YXRpYyB2 b2lkIHBjaXN0dWJfZGV2aWNlX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4gPj4+ICAgIHhl bl9wY2lia19jb25maWdfZnJlZV9keW5fZmllbGRzKGRldik7Cj4gPj4+ICAgIHhlbl9wY2lia19j b25maWdfZnJlZV9kZXYoZGV2KTsKPiA+Pj4gCj4gPj4+IC0gICAgZGV2LT5kZXZfZmxhZ3MgJj0g flBDSV9ERVZfRkxBR1NfQVNTSUdORUQ7Cj4gPj4+ICsgICAgcGNpX2lvdl9kZWFzc2lnbl9kZXZp Y2UoZGV2KTsKPiA+Pj4gICAgcGNpX2Rldl9wdXQoZGV2KTsKPiA+Pj4gCj4gPj4+ICAgIGtmcmVl KHBzZGV2KTsKPiA+Pj4gQEAgLTQwNCw3ICs0MDQsNyBAQCBzdGF0aWMgaW50IHBjaXN0dWJfaW5p dF9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikKPiA+Pj4gICAgZGV2X2RiZygmZGV2LT5kZXYs ICJyZXNldCBkZXZpY2VcbiIpOwo+ID4+PiAgICB4ZW5fcGNpYmtfcmVzZXRfZGV2aWNlKGRldik7 Cj4gPj4+IAo+ID4+PiAtICAgIGRldi0+ZGV2X2ZsYWdzIHw9IFBDSV9ERVZfRkxBR1NfQVNTSUdO RUQ7Cj4gPj4+ICsgICAgcGNpX2lvdl9hc3NpZ25fZGV2aWNlKGRldik7Cj4gPj4+ICAgIHJldHVy biAwOwo+ID4+PiAKPiA+Pj4gY29uZmlnX3JlbGVhc2U6Cj4gPj4+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L3BjaS5oIGIvaW5jbHVkZS9saW51eC9wY2kuaAo+ID4+PiBpbmRleCBhYWI1N2I0 Li41ZWNlNmQ2IDEwMDY0NAo+ID4+PiAtLS0gYS9pbmNsdWRlL2xpbnV4L3BjaS5oCj4gPj4+ICsr KyBiL2luY2x1ZGUvbGludXgvcGNpLmgKPiA+Pj4gQEAgLTE2MDMsNiArMTYwMyw4IEBAIGludCBw Y2lfbnVtX3ZmKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwo+ID4+PiBpbnQgcGNpX3Zmc19hc3NpZ25l ZChzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKPiA+Pj4gaW50IHBjaV9zcmlvdl9zZXRfdG90YWx2ZnMo c3RydWN0IHBjaV9kZXYgKmRldiwgdTE2IG51bXZmcyk7Cj4gPj4+IGludCBwY2lfc3Jpb3ZfZ2V0 X3RvdGFsdmZzKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwo+ID4+PiArdm9pZCBwY2lfaW92X2Fzc2ln bl9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldik7Cj4gPj4+ICt2b2lkIHBjaV9pb3ZfZGVhc3Np Z25fZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYpOwo+ID4+PiAjZWxzZQo+ID4+PiBzdGF0aWMg aW5saW5lIGludCBwY2lfZW5hYmxlX3NyaW92KHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBucl92 aXJ0Zm4pCj4gPj4+IHsgcmV0dXJuIC1FTk9ERVY7IH0KPiA+Pj4gQEAgLTE2MTQsNiArMTYxNiw4 IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBjaV9zcmlvdl9zZXRfdG90YWx2ZnMoc3RydWN0IHBjaV9k ZXYgKmRldiwgdTE2IG51bXZmcykKPiA+Pj4geyByZXR1cm4gMDsgfQo+ID4+PiBzdGF0aWMgaW5s aW5lIGludCBwY2lfc3Jpb3ZfZ2V0X3RvdGFsdmZzKHN0cnVjdCBwY2lfZGV2ICpkZXYpCj4gPj4+ IHsgcmV0dXJuIDA7IH0KPiA+Pj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBwY2lfaW92X2Fzc2lnbl9k ZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikgeyB9Cj4gPj4+ICtzdGF0aWMgaW5saW5lIHZvaWQg cGNpX2lvdl9kZWFzc2lnbl9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldikgeyB9Cj4gPj4+ICNl bmRpZgo+ID4+PiAKPiA+Pj4gI2lmIGRlZmluZWQoQ09ORklHX0hPVFBMVUdfUENJKSB8fCBkZWZp bmVkKENPTkZJR19IT1RQTFVHX1BDSV9NT0RVTEUpCj4gPj4+IGRpZmYgLS1naXQgYS92aXJ0L2t2 bS9hc3NpZ25lZC1kZXYuYyBiL3ZpcnQva3ZtL2Fzc2lnbmVkLWRldi5jCj4gPj4+IGluZGV4IGJm MDY1NzcuLjdmYWM1OGQgMTAwNjQ0Cj4gPj4+IC0tLSBhL3ZpcnQva3ZtL2Fzc2lnbmVkLWRldi5j Cj4gPj4+ICsrKyBiL3ZpcnQva3ZtL2Fzc2lnbmVkLWRldi5jCj4gPj4+IEBAIC0zMDIsNyArMzAy LDcgQEAgc3RhdGljIHZvaWQga3ZtX2ZyZWVfYXNzaWduZWRfZGV2aWNlKHN0cnVjdCBrdm0gKmt2 bSwKPiA+Pj4gICAgZWxzZQo+ID4+PiAgICAgICAgcGNpX3Jlc3RvcmVfc3RhdGUoYXNzaWduZWRf ZGV2LT5kZXYpOwo+ID4+PiAKPiA+Pj4gLSAgICBhc3NpZ25lZF9kZXYtPmRldi0+ZGV2X2ZsYWdz ICY9IH5QQ0lfREVWX0ZMQUdTX0FTU0lHTkVEOwo+ID4+PiArICAgIHBjaV9pb3ZfZGVhc3NpZ25f ZGV2aWNlKGFzc2lnbmVkX2Rldi0+ZGV2KTsKPiA+Pj4gCj4gPj4+ICAgIHBjaV9yZWxlYXNlX3Jl Z2lvbnMoYXNzaWduZWRfZGV2LT5kZXYpOwo+ID4+PiAgICBwY2lfZGlzYWJsZV9kZXZpY2UoYXNz aWduZWRfZGV2LT5kZXYpOwo+ID4+PiBkaWZmIC0tZ2l0IGEvdmlydC9rdm0vaW9tbXUuYyBiL3Zp cnQva3ZtL2lvbW11LmMKPiA+Pj4gaW5kZXggMGRmN2Q0Yi4uNjQxZWU3MyAxMDA2NDQKPiA+Pj4g LS0tIGEvdmlydC9rdm0vaW9tbXUuYwo+ID4+PiArKysgYi92aXJ0L2t2bS9pb21tdS5jCj4gPj4+ IEBAIC0xOTQsNyArMTk0LDcgQEAgaW50IGt2bV9hc3NpZ25fZGV2aWNlKHN0cnVjdCBrdm0gKmt2 bSwKPiA+Pj4gICAgICAgICAgICBnb3RvIG91dF91bm1hcDsKPiA+Pj4gICAgfQo+ID4+PiAKPiA+ Pj4gLSAgICBwZGV2LT5kZXZfZmxhZ3MgfD0gUENJX0RFVl9GTEFHU19BU1NJR05FRDsKPiA+Pj4g KyAgICBwY2lfaW92X2Fzc2lnbl9kZXZpY2UocGRldik7Cj4gPj4+IAo+ID4+PiAgICBkZXZfaW5m bygmcGRldi0+ZGV2LCAia3ZtIGFzc2lnbiBkZXZpY2VcbiIpOwo+ID4+PiAKPiA+Pj4gQEAgLTIy MCw3ICsyMjAsNyBAQCBpbnQga3ZtX2RlYXNzaWduX2RldmljZShzdHJ1Y3Qga3ZtICprdm0sCj4g Pj4+IAo+ID4+PiAgICBpb21tdV9kZXRhY2hfZGV2aWNlKGRvbWFpbiwgJnBkZXYtPmRldik7Cj4g Pj4+IAo+ID4+PiAtICAgIHBkZXYtPmRldl9mbGFncyAmPSB+UENJX0RFVl9GTEFHU19BU1NJR05F RDsKPiA+Pj4gKyAgICBwY2lfaW92X2RlYXNzaWduX2RldmljZShwZGV2KTsKPiA+Pj4gCj4gPj4+ ICAgIGRldl9pbmZvKCZwZGV2LT5kZXYsICJrdm0gZGVhc3NpZ24gZGV2aWNlXG4iKTsKPiA+IAo+ ID4gCj4gPiAKCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVuIHNvdXJjZSBidXNpbmVzcyBw cm9jZXNzIG1hbmFnZW1lbnQgc3VpdGUgYnVpbHQgb24gSmF2YSBhbmQgRWNsaXBzZQpUdXJuIHBy b2Nlc3NlcyBpbnRvIGJ1c2luZXNzIGFwcGxpY2F0aW9ucyB3aXRoIEJvbml0YSBCUE0gQ29tbXVu aXR5IEVkaXRpb24KUXVpY2tseSBjb25uZWN0IHBlb3BsZSwgZGF0YSwgYW5kIHN5c3RlbXMgaW50 byBvcmdhbml6ZWQgd29ya2Zsb3dzCldpbm5lciBvZiBCT1NTSUUsIENPRElFLCBPVzIgYW5kIEdh cnRuZXIgYXdhcmRzCmh0dHA6Ly9wLnNmLm5ldC9zZnUvQm9uaXRhc29mdApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpFMTAwMC1kZXZlbCBtYWlsaW5nIGxp c3QKRTEwMDAtZGV2ZWxAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0dHBzOi8vbGlzdHMuc291cmNl Zm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2UxMDAwLWRldmVsClRvIGxlYXJuIG1vcmUgYWJvdXQg SW50ZWwmIzE3NDsgRXRoZXJuZXQsIHZpc2l0IGh0dHA6Ly9jb21tdW5pdGllcy5pbnRlbC5jb20v Y29tbXVuaXR5L3dpcmVkCg==