From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v5 12/15] x86: add iommu_op to enable modification of IOMMU mappings Date: Tue, 7 Aug 2018 08:32:39 +0000 Message-ID: References: <20180803172220.1657-1-paul.durrant@citrix.com> <20180803172220.1657-13-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fmxQ1-00037D-V2 for xen-devel@lists.xenproject.org; Tue, 07 Aug 2018 08:32:42 +0000 In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Kevin Tian , "xen-devel@lists.xenproject.org" Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , Julien Grall , Jan Beulich , Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUaWFuLCBLZXZpbiBbbWFpbHRv OmtldmluLnRpYW5AaW50ZWwuY29tXQ0KPiBTZW50OiAwNyBBdWd1c3QgMjAxOCAwNTowOA0KPiBU bzogUGF1bCBEdXJyYW50IDxQYXVsLkR1cnJhbnRAY2l0cml4LmNvbT47IHhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBr ZXJuZWwub3JnPjsgV2VpIExpdQ0KPiA8d2VpLmxpdTJAY2l0cml4LmNvbT47IEdlb3JnZSBEdW5s YXAgPEdlb3JnZS5EdW5sYXBAY2l0cml4LmNvbT47DQo+IEFuZHJldyBDb29wZXIgPEFuZHJldy5D b29wZXIzQGNpdHJpeC5jb20+OyBJYW4gSmFja3Nvbg0KPiA8SWFuLkphY2tzb25AY2l0cml4LmNv bT47IFRpbSAoWGVuLm9yZykgPHRpbUB4ZW4ub3JnPjsgSnVsaWVuIEdyYWxsDQo+IDxqdWxpZW4u Z3JhbGxAYXJtLmNvbT47IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCj4gU3ViamVj dDogUkU6IFtYZW4tZGV2ZWxdIFtQQVRDSCB2NSAxMi8xNV0geDg2OiBhZGQgaW9tbXVfb3AgdG8g ZW5hYmxlDQo+IG1vZGlmaWNhdGlvbiBvZiBJT01NVSBtYXBwaW5ncw0KPiANCj4gPiBGcm9tOiBQ YXVsIER1cnJhbnQNCj4gPiBTZW50OiBTYXR1cmRheSwgQXVndXN0IDQsIDIwMTggMToyMiBBTQ0K PiA+DQo+ID4gVGhpcyBwYXRjaCBhZGRzIGFuIGlvbW11X29wIHdoaWNoIGNoZWNrcyB3aGV0aGVy IGl0IGlzIHBvc3NpYmxlIG9yDQo+ID4gc2FmZSBmb3IgYSBkb21haW4gdG8gbW9kaWZ5IGl0cyBv d24gSU9NTVUgbWFwcGluZ3MgYW5kLCBpZiBzbywgY3JlYXRlcw0KPiA+IGEgcmFuZ2VzZXQgdG8g dHJhY2sgbW9kaWZpY2F0aW9ucy4NCj4gDQo+IEhhdmUgdG8gc2F5IHRoYXQgdGhlcmUgbWlnaHQg YmUgYSBjb25jZXB0IG1pc21hdGNoIGJldHdlZW4gdXMsDQo+IHNvIEkgd2lsbCBzdG9wIHJldmll dyBoZXJlIHVudGlsIHdlIGdldCBhbGlnbmVkIG9uIHRoZSBiYXNpYw0KPiB1bmRlcnN0YW5kaW5n Lg0KPiANCj4gV2hhdCBhbiBJT01NVSBkb2VzIGlzIHRvIHByb3ZpZGUgRE1BIGlzb2xhdGlvbiBi ZXR3ZWVuIGRldmljZXMuDQo+IEVhY2ggZGV2aWNlIGNhbiBiZSBob29rZWQgd2l0aCBhIGRpZmZl cmVudCB0cmFuc2xhdGlvbiBzdHJ1Y3R1cmUNCj4gKHJlcHJlc2VudGluZyBhIGRpZmZlcmVudCBi Zm4gYWRkcmVzcyBzcGFjZSkuIExpbnV4IGtlcm5lbCB1c2VzIHRoaXMNCj4gbWVjaGFuaXNtIHRv IGhhcmRlbiBrZXJuZWwgZHJpdmVycyAodGhyb3VnaCBkbWEgQVBJcykuIE11bHRpcGxlDQo+IGRl dmljZXMgY2FuIGJlIGFsc28gYXR0YWNoZWQgdG8gdGhlIHNhbWUgYWRkcmVzcyBzcGFjZSwgdXNl ZCBieQ0KPiBoeXBlcnZpc29yIHdoZW4gZGV2aWNlcyBhcmUgYXNzaWduZWQgdG8gdGhlIHNhbWUg Vk0uDQo+IA0KDQpJbmRlZWQuDQoNCj4gTm93IHdpdGggcHZJT01NVSBleHBvc2VkIHRvIGRvbTAs ICwgZG9tMCBjb3VsZCB1c2UgaXQgdG8gaGFyZGVuDQo+IGtlcm5lbCBkcml2ZXJzIHRvby4gVGhl biB0aGVyZSB3aWxsIGJlIG11bHRpcGxlIGJmbiBhZGRyZXNzIHNwYWNlczoNCj4gDQo+IC0gQSBk ZWZhdWx0IGJmbiBhZGRyZXNzIHNwYWNlIGNyZWF0ZWQgYnkgWGVuLCB3aGVyZSBiZm4gPSBwZm4N Cj4gLSBtdWx0aXBsZSBwZXItYmRmIGJmbiBhZGRyZXNzIHNwYWNlcyBjcmVhdGVkIGJ5IERvbTAs IHdoZXJlDQo+IGJmbiBpcyBjb21wbGV0ZWx5IGlycmVsZXZhbnQgdG8gcGZuLg0KPiANCj4gdGhl IGRlZmF1bHQgc3BhY2Ugc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGJ5IERvbTAuIEl0IGlzIGF0dGFj aGVkDQo+IHRvIGRldmljZXMgd2hpY2ggZG9tMCBkb2Vzbid0IGVuYWJsZSBwdmlvbW11IG1hcHBp bmcuDQoNCk5vIHRoYXQncyBub3QgdGhlIHBvaW50IGhlcmUuIEknbSBub3QgdHJ5aW5nIHRvIHJl LWFyY2hpdGVjdCBYZW4ncyBJT01NVSBoYW5kbGluZy4gQWxsIHRoZSBJT01NVSBjb2RlIGluIFhl biBBRkFJQ1QgaXMgYnVpbHQgYXJvdW5kIHRoZSBhc3N1bXB0aW9uIHRoZXJlIGlzIG9uZSBzZXQg b2YgcGFnZSB0YWJsZXMgcGVyLVZNIGFuZCBhbGwgZGV2aWNlcyBhc3NpZ25lZCB0byB0aGUgVk0g Z2V0IHRoZSBzYW1lIHBhZ2UgdGFibGVzLiBJIHN1c3BlY3QgdHJ5aW5nIHRvIGNoYW5nZSB0aGF0 IHdpbGwgYmUgYSBodWdlIGNhbiBvZiB3b3JtcyBhbmQgSSBoYXZlIG5vIG5lZWQgdG8gZ28gdGhl cmUgZm9yIG15IHB1cnBvc2VzLg0KDQo+IA0KPiBwZXItYmRmIGFkZHJlc3Mgc3BhY2VzIGNhbiBi ZSBjaGFuZ2VkIGJ5IERvbTAsIGF0dGFjaGVkIHRvDQo+IGRldmljZXMgd2hpY2ggZG9tMCBlbmFi bGVzIHB2aW9tbXUgbWFwcGluZy4gdGhlbiBwdmlvbW11IG9wcw0KPiBzaG91bGQgYWNjZXB0IGEg YmRmIHBhcmFtZXRlci4gYW5kIGludGVybmFsbHkgWGVuIG5lZWRzIHRvIG1haW50YWluDQo+IG11 bHRpcGxlIHBhZ2UgdGFibGVzIHVuZGVyIGRvbTAsIGFuZCBmaW5kIGEgcmlnaHQgcGFnZSB0YWJs ZSBhY2NvcmRpbmcNCj4gdG8gc3BlY2lmaWVkIGJkZiB0byBjb21wbGV0ZSB0aGUgb3BlcmF0aW9u Lg0KPiANCj4gTm93IHlvdXIgc2VyaWVzIGxvb2sgYXNzdW1pbmcgYWx3YXlzIGp1c3Qgb25lIGJm biBhZGRyZXNzIHNwYWNlDQo+IGNyb3NzIGFsbCBhc3NpZ25lZCBkZXZpY2VzIHBlciBkb21haW4u Li4gSSdtIG5vdCBzdXJlIGhvdyBpdCB3b3Jrcy4NCj4gDQoNCkl0IGRvZXMgbWFrZSB0aGF0IGFz c3VtcHRpb24gYmVjYXVzZSB0aGF0IGFzc3VtcHRpb24gaXMgYmFrZWQgaW50byBYZW4ncyBJT01N VSBzdXBwb3J0Lg0KDQo+IERpZCBJIG1pc3VuZGVyc3RhbmQgYW55dGhpbmc/DQoNCk9ubHkgcGVy aGFwcyB0aGF0IG1vdmluZyBhd2F5IGZyb20gcGVyLVZNIElPTU1VIHBhZ2V0YWJsZXMgd2lsbCBi ZSBzb21ldGhpbmcgdGhhdCBpcyBzb21ldGhpbmcgSSBjb3VsZCBkbyB3aXRob3V0IG1ha2luZyB2 ZXJ5IGludmFzaXZlIGFuZCBsZW5ndGh5IGNoYW5nZXMgdG8gWGVuJ3MgSU9NTVUgY29kZS4NCg0K ICBQYXVsDQoNCj4gDQo+ID4NCj4gPiBOT1RFOiBUaGUgYWN0dWFsIG1hcCBhbmQgdW5tYXAgb3Bl cmF0aW9ucyBhcmUgaW50cm9kdWNlZCBieQ0KPiA+IHN1YnNlcXVlbnQNCj4gPiAgICAgICBwYXRj aGVzLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRA Y2l0cml4LmNvbT4NCj4gPiAtLS0NCj4gPiBDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPg0KPiA+IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0K PiA+IENjOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+DQo+ID4g Q2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPg0KPiA+IENjOiBKdWxp ZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPg0KPiA+IENjOiBLb25yYWQgUnplc3p1dGVr IFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+DQo+ID4gQ2M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4NCj4gPiBDYzogVGltIERlZWdhbiA8dGltQHhlbi5v cmc+DQo+ID4gQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+DQo+ID4NCj4gPiB2NDoN Cj4gPiAgLSBTZXQgc3luY19pb21tdV9wdCB0byBmYWxzZSBpbnN0ZWFkIG9mIG5lZWRfaW9tbXUu DQo+ID4NCj4gPiB2MjoNCj4gPiAgLSBOZXcgaW4gdjIuDQo+ID4gLS0tDQo+ID4gIHhlbi9hcmNo L3g4Ni9pb21tdV9vcC5jICAgICAgICAgfCA0Mg0KPiA+ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrDQo+ID4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMg fCAgMiArLQ0KPiA+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYyAgIHwgIDQgKystLQ0K PiA+ICB4ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaCAgIHwgIDYgKysrKysrDQo+ID4gIHhl bi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAgICAgfCAgMyArKysNCj4gPiAgNSBmaWxlcyBjaGFu Z2VkLCA1NCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9pb21tdV9vcC5jIGIveGVuL2FyY2gveDg2L2lvbW11X29wLmMNCj4g PiBpbmRleCBiY2ZjZDQ5MTAyLi5iMjk1NDdiZmZkIDEwMDY0NA0KPiA+IC0tLSBhL3hlbi9hcmNo L3g4Ni9pb21tdV9vcC5jDQo+ID4gKysrIGIveGVuL2FyY2gveDg2L2lvbW11X29wLmMNCj4gPiBA QCAtNzgsNiArNzgsNDIgQEAgc3RhdGljIGludCBpb21tdV9vcF9xdWVyeV9yZXNlcnZlZChzdHJ1 Y3QNCj4gPiB4ZW5faW9tbXVfb3BfcXVlcnlfcmVzZXJ2ZWQgKm9wKQ0KPiA+ICAgICAgcmV0dXJu IDA7DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgaW50IGlvbW11X29wX2VuYWJsZV9tb2RpZmlj YXRpb24odm9pZCkNCj4gPiArew0KPiA+ICsgICAgc3RydWN0IGRvbWFpbiAqY3VycmQgPSBjdXJy ZW50LT5kb21haW47DQo+ID4gKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICppb21tdSA9IGRvbV9p b21tdShjdXJyZCk7DQo+ID4gKyAgICBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzICpvcHMgPSBpb21t dS0+cGxhdGZvcm1fb3BzOw0KPiA+ICsNCj4gPiArICAgIC8qIEhhcyBtb2RpZmljYXRpb24gYWxy ZWFkeSBiZWVuIGVuYWJsZWQ/ICovDQo+ID4gKyAgICBpZiAoIGlvbW11LT5pb21tdV9vcF9yYW5n ZXMgKQ0KPiA+ICsgICAgICAgIHJldHVybiAwOw0KPiA+ICsNCj4gPiArICAgIC8qDQo+ID4gKyAg ICAgKiBUaGUgSU9NTVUgbWFwcGluZ3MgY2Fubm90IGJlIG1vZGlmaWVkIGlmOg0KPiA+ICsgICAg ICogLSB0aGUgSU9NTVUgaXMgbm90IGVuYWJsZWQgb3IsDQo+ID4gKyAgICAgKiAtIHRoZSBjdXJy ZW50IGRvbWFpbiBpcyBkb20wIGFuZCB0cmFubHNhdGlvbiBpcyBkaXNhYmxlZCBvciwNCj4gPiAr ICAgICAqIC0gSEFQIGlzIGVuYWJsZWQgYW5kIHRoZSBJT01NVSBzaGFyZXMgdGhlIG1hcHBpbmdz Lg0KPiA+ICsgICAgICovDQo+ID4gKyAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8DQo+ID4gKyAg ICAgICAgIChpc19oYXJkd2FyZV9kb21haW4oY3VycmQpICYmIGlvbW11X3Bhc3N0aHJvdWdoKSB8 fA0KPiA+ICsgICAgICAgICBpb21tdV91c2VfaGFwX3B0KGN1cnJkKSApDQo+ID4gKyAgICAgICAg cmV0dXJuIC1FQUNDRVM7DQo+ID4gKw0KPiA+ICsgICAgLyoNCj4gPiArICAgICAqIFRoZSBJT01N VSBpbXBsZW1lbnRhdGlvbiBtdXN0IHByb3ZpZGUgdGhlIGxvb2t1cCBtZXRob2QgaWYNCj4gPiAr ICAgICAqIG1vZGlmaWNhdGlvbiBvZiB0aGUgbWFwcGluZ3MgaXMgdG8gYmUgc3VwcG9ydGVkLg0K PiA+ICsgICAgICovDQo+ID4gKyAgICBpZiAoICFvcHMtPmxvb2t1cF9wYWdlICkNCj4gPiArICAg ICAgICByZXR1cm4gLUVPUE5PVFNVUFA7DQo+ID4gKw0KPiA+ICsgICAgaW9tbXUtPmlvbW11X29w X3JhbmdlcyA9IHJhbmdlc2V0X25ldyhjdXJyZCwgTlVMTCwgMCk7DQo+ID4gKyAgICBpZiAoICFp b21tdS0+aW9tbXVfb3BfcmFuZ2VzICkNCj4gPiArICAgICAgICByZXR1cm4gLUVOT01FTTsNCj4g PiArDQo+ID4gKyAgICBjdXJyZC0+c3luY19pb21tdV9wdCA9IDA7IC8qIERpc2FibGUgc3luY2hy b25pemF0aW9uICovDQo+ID4gKyAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgc3Rh dGljIHZvaWQgaW9tbXVfb3AoeGVuX2lvbW11X29wX3QgKm9wKQ0KPiA+ICB7DQo+ID4gICAgICBz d2l0Y2ggKCBvcC0+b3AgKQ0KPiA+IEBAIC04Niw2ICsxMjIsMTAgQEAgc3RhdGljIHZvaWQgaW9t bXVfb3AoeGVuX2lvbW11X29wX3QgKm9wKQ0KPiA+ICAgICAgICAgIG9wLT5zdGF0dXMgPSBpb21t dV9vcF9xdWVyeV9yZXNlcnZlZCgmb3AtPnUucXVlcnlfcmVzZXJ2ZWQpOw0KPiA+ICAgICAgICAg IGJyZWFrOw0KPiA+DQo+ID4gKyAgICBjYXNlIFhFTl9JT01NVU9QX2VuYWJsZV9tb2RpZmljYXRp b246DQo+ID4gKyAgICAgICAgb3AtPnN0YXR1cyA9IGlvbW11X29wX2VuYWJsZV9tb2RpZmljYXRp b24oKTsNCj4gPiArICAgICAgICBicmVhazsNCj4gPiArDQo+ID4gICAgICBkZWZhdWx0Og0KPiA+ ICAgICAgICAgIG9wLT5zdGF0dXMgPSAtRU9QTk9UU1VQUDsNCj4gPiAgICAgICAgICBicmVhazsN Cj4gPiBAQCAtOTgsNiArMTM4LDcgQEAgaW50IGRvX29uZV9pb21tdV9vcCh4ZW5faW9tbXVfb3Bf YnVmX3QgKmJ1ZikNCj4gPiAgICAgIHNpemVfdCBvZmZzZXQ7DQo+ID4gICAgICBzdGF0aWMgY29u c3Qgc2l6ZV90IG9wX3NpemVbXSA9IHsNCj4gPiAgICAgICAgICBbWEVOX0lPTU1VT1BfcXVlcnlf cmVzZXJ2ZWRdID0gc2l6ZW9mKHN0cnVjdA0KPiA+IHhlbl9pb21tdV9vcF9xdWVyeV9yZXNlcnZl ZCksDQo+ID4gKyAgICAgICAgW1hFTl9JT01NVU9QX2VuYWJsZV9tb2RpZmljYXRpb25dID0gMCwN Cj4gPiAgICAgIH07DQo+ID4gICAgICBzaXplX3Qgc2l6ZTsNCj4gPiAgICAgIGludCByYzsNCj4g PiBAQCAtMTg0LDYgKzIyNSw3IEBAIGludA0KPiA+IGNvbXBhdF9vbmVfaW9tbXVfb3AoY29tcGF0 X2lvbW11X29wX2J1Zl90ICpidWYpDQo+ID4gICAgICBzaXplX3Qgb2Zmc2V0Ow0KPiA+ICAgICAg c3RhdGljIGNvbnN0IHNpemVfdCBvcF9zaXplW10gPSB7DQo+ID4gICAgICAgICAgW1hFTl9JT01N VU9QX3F1ZXJ5X3Jlc2VydmVkXSA9IHNpemVvZihzdHJ1Y3QNCj4gPiBjb21wYXRfaW9tbXVfb3Bf cXVlcnlfcmVzZXJ2ZWQpLA0KPiA+ICsgICAgICAgIFtYRU5fSU9NTVVPUF9lbmFibGVfbW9kaWZp Y2F0aW9uXSA9IDAsDQo+ID4gICAgICB9Ow0KPiA+ICAgICAgc2l6ZV90IHNpemU7DQo+ID4gICAg ICB4ZW5faW9tbXVfb3BfdCBuYXQ7DQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2lvbW11LmMNCj4gPiBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMNCj4g PiBpbmRleCBjYWYzZDEyNWFlLi44ZjYzNWE1Y2RiIDEwMDY0NA0KPiA+IC0tLSBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMNCj4gPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jDQo+ID4gQEAgLTI2LDcgKzI2LDYgQEAgc3RhdGljIHZvaWQgaW9tbXVfZHVtcF9w Mm1fdGFibGUodW5zaWduZWQgY2hhcg0KPiA+IGtleSk7DQo+ID4NCj4gPiAgdW5zaWduZWQgaW50 IF9fcmVhZF9tb3N0bHkgaW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQgPSAxMDAwOw0KPiA+ICBpbnRl Z2VyX3BhcmFtKCJpb21tdV9kZXZfaW90bGJfdGltZW91dCIsIGlvbW11X2Rldl9pb3RsYl90aW1l b3V0KTsNCj4gPiAtDQo+ID4gIC8qDQo+ID4gICAqIFRoZSAnaW9tbXUnIHBhcmFtZXRlciBlbmFi bGVzIHRoZSBJT01NVS4gIE9wdGlvbmFsIGNvbW1hDQo+ID4gc2VwYXJhdGVkDQo+ID4gICAqIHZh bHVlIG1heSBjb250YWluOg0KPiA+IEBAIC0yNjUsNiArMjY0LDcgQEAgdm9pZCBpb21tdV9kb21h aW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKQ0KPiA+ICAgICAgYXJjaF9pb21tdV9kb21haW5f ZGVzdHJveShkKTsNCj4gPg0KPiA+ICAgICAgcmFuZ2VzZXRfZGVzdHJveShoZC0+cmVzZXJ2ZWRf cmFuZ2VzKTsNCj4gPiArICAgIHJhbmdlc2V0X2Rlc3Ryb3koaGQtPmlvbW11X29wX3Jhbmdlcyk7 DQo+ID4gIH0NCj4gPg0KPiA+ICBpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwg YmZuX3QgYmZuLCBtZm5fdCBtZm4sDQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4gPiBpbmRleCAz ZDNhZDQ4NGU3Li5kNDAzM2FmNDFhIDEwMDY0NA0KPiA+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3BjaS5jDQo+ID4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMNCj4g PiBAQCAtMTQ2MCw3ICsxNDYwLDcgQEAgc3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBk b21haW4gKmQsIHUxNiBzZWcsDQo+ID4gdTggYnVzLCB1OCBkZXZmbiwgdTMyIGZsYWcpDQo+ID4g ICAgICB9DQo+ID4NCj4gPiAgIGRvbmU6DQo+ID4gLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhk KSAmJiBoYXNfaW9tbXVfcHQoZCkgKQ0KPiA+ICsgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMoZCkg JiYgaGFzX2lvbW11X3B0KGQpICYmICFoZC0NCj4gPiA+aW9tbXVfb3BfcmFuZ2VzICkNCj4gPiAg ICAgICAgICBpb21tdV90ZWFyZG93bihkKTsNCj4gPiAgICAgIHBjaWRldnNfdW5sb2NrKCk7DQo+ ID4NCj4gPiBAQCAtMTUxMCw3ICsxNTEwLDcgQEAgaW50IGRlYXNzaWduX2RldmljZShzdHJ1Y3Qg ZG9tYWluICpkLCB1MTYgc2VnLA0KPiA+IHU4IGJ1cywgdTggZGV2Zm4pDQo+ID4NCj4gPiAgICAg IHBkZXYtPmZhdWx0LmNvdW50ID0gMDsNCj4gPg0KPiA+IC0gICAgaWYgKCAhaGFzX2FyY2hfcGRl dnMoZCkgJiYgaGFzX2lvbW11X3B0KGQpICkNCj4gPiArICAgIGlmICggIWhhc19hcmNoX3BkZXZz KGQpICYmIGhhc19pb21tdV9wdChkKSAmJiAhaGQtDQo+ID4gPmlvbW11X29wX3JhbmdlcyApDQo+ ID4gICAgICAgICAgaW9tbXVfdGVhcmRvd24oZCk7DQo+ID4NCj4gPiAgICAgIHJldHVybiByZXQ7 DQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9pb21tdV9vcC5oDQo+ID4gYi94 ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaA0KPiA+IGluZGV4IGFkZTQwNGE4NzcuLjliZjc0 YmQwMDcgMTAwNjQ0DQo+ID4gLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29wLmgNCj4g PiArKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaA0KPiA+IEBAIC02MSw2ICs2MSwx MiBAQCBzdHJ1Y3QgeGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkIHsNCj4gPiAgICAgIFhFTl9H VUVTVF9IQU5ETEUoeGVuX2lvbW11X3Jlc2VydmVkX3JhbmdlX3QpIHJhbmdlczsNCj4gPiAgfTsN Cj4gPg0KPiA+ICsvKg0KPiA+ICsgKiBYRU5fSU9NTVVPUF9lbmFibGVfbW9kaWZpY2F0aW9uOiBF bmFibGUgb3BlcmF0aW9ucyB0aGF0IG1vZGlmeQ0KPiA+IElPTU1VDQo+ID4gKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdzLg0KPiA+ICsgKi8NCj4gPiArI2RlZmlu ZSBYRU5fSU9NTVVPUF9lbmFibGVfbW9kaWZpY2F0aW9uIDINCj4gPiArDQo+ID4gIHN0cnVjdCB4 ZW5faW9tbXVfb3Agew0KPiA+ICAgICAgdWludDE2X3Qgb3A7ICAgIC8qIG9wIHR5cGUgKi8NCj4g PiAgICAgIHVpbnQxNl90IHBhZDsNCj4gPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lv bW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaA0KPiA+IGluZGV4IDdjNWQ0NmRmODEuLjA4 YjE2M2NiY2IgMTAwNjQ0DQo+ID4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgNCj4gPiAr KysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaA0KPiA+IEBAIC0xMzAsNiArMTMwLDkgQEAgc3Ry dWN0IGRvbWFpbl9pb21tdSB7DQo+ID4gICAgICAgKiBtdXN0IG5vdCBiZSBtb2RpZmllZCBhZnRl ciBpbml0aWFsaXphdGlvbi4NCj4gPiAgICAgICAqLw0KPiA+ICAgICAgc3RydWN0IHJhbmdlc2V0 ICpyZXNlcnZlZF9yYW5nZXM7DQo+ID4gKw0KPiA+ICsgICAgLyogUmFuZ2VzIHVuZGVyIHRoZSBj b250cm9sIG9mIGlvbW11X29wICovDQo+ID4gKyAgICBzdHJ1Y3QgcmFuZ2VzZXQgKmlvbW11X29w X3JhbmdlczsNCj4gPiAgfTsNCj4gPg0KPiA+ICAjZGVmaW5lIGRvbV9pb21tdShkKSAgICAgICAg ICAgICAgKCYoZCktPmlvbW11KQ0KPiA+IC0tDQo+ID4gMi4xMS4wDQo+ID4NCj4gPg0KPiA+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gWGVuLWRl dmVsIG1haWxpbmcgbGlzdA0KPiA+IFhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiA+ IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWwN Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlz dHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=