From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v8 6/6] x86/iommu: add map-reserved dom0-iommu option to map reserved memory ranges Date: Tue, 11 Sep 2018 07:50:32 +0000 Message-ID: <37d0ff95b1794e518453a28389271352@AMSPEX02CL03.citrite.net> References: <20180907090739.56652-1-roger.pau@citrix.com> <20180907090739.56652-7-roger.pau@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 1fzdRj-0002Sj-JV for xen-devel@lists.xenproject.org; Tue, 11 Sep 2018 07:50:51 +0000 In-Reply-To: <20180907090739.56652-7-roger.pau@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: "xen-devel@lists.xenproject.org" Cc: Kevin Tian , Stefano Stabellini , Wei Liu , Suravee Suthikulpanit , Konrad Rzeszutek Wilk , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , Julien Grall , Jan Beulich , Ian Jackson , Brian Woods , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSb2dlciBQYXUgTW9ubmUgW21h aWx0bzpyb2dlci5wYXVAY2l0cml4LmNvbV0NCj4gU2VudDogMDcgU2VwdGVtYmVyIDIwMTggMTA6 MDgNCj4gVG86IHhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZw0KPiBDYzogUm9nZXIgUGF1 IE1vbm5lIDxyb2dlci5wYXVAY2l0cml4LmNvbT47IEFuZHJldyBDb29wZXINCj4gPEFuZHJldy5D b29wZXIzQGNpdHJpeC5jb20+OyBHZW9yZ2UgRHVubGFwDQo+IDxHZW9yZ2UuRHVubGFwQGNpdHJp eC5jb20+OyBJYW4gSmFja3NvbiA8SWFuLkphY2tzb25AY2l0cml4LmNvbT47IEphbg0KPiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT47IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5j b20+OyBLb25yYWQNCj4gUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+OyBT dGVmYW5vIFN0YWJlbGxpbmkNCj4gPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+OyBUaW0gKFhlbi5v cmcpIDx0aW1AeGVuLm9yZz47IFdlaSBMaXUNCj4gPHdlaS5saXUyQGNpdHJpeC5jb20+OyBQYXVs IER1cnJhbnQgPFBhdWwuRHVycmFudEBjaXRyaXguY29tPjsgU3VyYXZlZQ0KPiBTdXRoaWt1bHBh bml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT47IEJyaWFuIFdvb2RzDQo+IDxicmlh bi53b29kc0BhbWQuY29tPjsgS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+DQo+IFN1 YmplY3Q6IFtQQVRDSCB2OCA2LzZdIHg4Ni9pb21tdTogYWRkIG1hcC1yZXNlcnZlZCBkb20wLWlv bW11IG9wdGlvbg0KPiB0byBtYXAgcmVzZXJ2ZWQgbWVtb3J5IHJhbmdlcw0KPiANCj4gU2V2ZXJh bCBwZW9wbGUgaGF2ZSByZXBvcnRlZCBoYXJkd2FyZSBpc3N1ZXMgKG1hbGZ1bmN0aW9uaW5nIFVT Qg0KPiBjb250cm9sbGVycykgZHVlIHRvIGlvbW11IHBhZ2UgZmF1bHRzIG9uIEludGVsIGhhcmR3 YXJlLiBUaG9zZSBmYXVsdHMNCj4gYXJlIGNhdXNlZCBieSBtaXNzaW5nIFJNUlIgKFZUZCkgZW50 cmllcyBpbiB0aGUgQUNQSSB0YWJsZXMuIFRob3NlIGNhbg0KPiBiZSB3b3JrZWQgYXJvdW5kIG9u IFZUZCBoYXJkd2FyZSBieSBtYW51YWxseSBhZGRpbmcgUk1SUiBlbnRyaWVzIG9uDQo+IHRoZSBj b21tYW5kIGxpbmUsIHRoaXMgaXMgaG93ZXZlciBsaW1pdGVkIHRvIEludGVsIGhhcmR3YXJlIGFu ZCBxdWl0ZQ0KPiBjdW1iZXJzb21lIHRvIGRvLg0KPiANCj4gSW4gb3JkZXIgdG8gc29sdmUgdGhv c2UgaXNzdWVzIGFkZCBhIG5ldyBkb20wLWlvbW11PW1hcC1yZXNlcnZlZA0KPiBvcHRpb24gdGhh dCBpZGVudGl0eSBtYXBzIGFsbCByZWdpb25zIG1hcmtlZCBhcyByZXNlcnZlZCBpbiB0aGUgbWVt b3J5DQo+IG1hcC4gTm90ZSB0aGF0IHJlZ2lvbnMgdXNlZCBieSBkZXZpY2VzIGVtdWxhdGVkIGJ5 IFhlbiAoTEFQSUMsIElPLUFQSUMNCj4gb3IgUENJZSBNQ0ZHIHJlZ2lvbnMpIGFyZSBzcGVjaWZp Y2FsbHkgYXZvaWRlZC4gTm90ZSB0aGF0IHRoaXMgb3B0aW9uDQo+IGlzIGF2YWlsYWJsZSB0byBh bGwgRG9tMCBtb2RlcyAoYXMgb3Bwb3NlZCB0byB0aGUgaW5jbHVzaXZlIG9wdGlvbg0KPiB3aGlj aCBvbmx5IHdvcmtzIGZvciBQViBEb20wKS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KPiBSZXZpZXdlZC1ieTogS2V2aW4gVGlh biA8a2V2aW4udGlhbkBpbnRlbC5jb20+DQo+IFJldmlld2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1 MkBjaXRyaXguY29tPg0KPiBBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t Pg0KDQpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4N Cg0KPiAtLS0NCj4gQ2hhbmdlcyBzaW5jZSB2NzoNCj4gIC0gRG9uJ3QgdXNlIHRydWUvZmFsc2Ug d2l0aCBpbnQ4X3QuDQo+ICAtIFByaW50IGEgd2FybmluZyBtZXNzYWdlIGlmIG1hcC1yZXNlcnZl ZCBpcyBzZXQgb24gQVJNLg0KPiANCj4gQ2hhbmdlcyBzaW5jZSB2NjoNCj4gIC0gUmV3b3JkIHRo ZSBtYXAtcmVzZXJ2ZWQgaGVscCB0byBtYWtlIGl0IGNsZWFyIGl0J3MgYXZhaWxhYmxlIHRvDQo+ ICAgIGJvdGggUFYgYW5kIFBWSCBEb20wLg0KPiAgLSBBc3NpZ24gdHlwZSBpbnNpZGUgb2YgdGhl IHN3aXRjaCBleHByZXNzaW9uLg0KPiAgLSBSZW1vdmUgdGhlIGNvbW1lbnQgYWJvdXQgSU8tQVBJ QyBNTUlPIHJlbG9jYXRpb24sIHRoaXMgaXMgbm90DQo+ICAgIHN1cHBvcnRlZCBBVE0uDQo+IA0K PiBDaGFuZ2VzIHNpbmNlIHY1Og0KPiAgLSBNZXJnZSB3aXRoIHRoZSB2cGNpIE1NQ0ZHIGhlbHBl ciBwYXRjaC4NCj4gIC0gQWRkIGEgVE9ETyBpdGVtIGFib3V0IHRoZSBpc3N1ZXMgd2l0aCByZWxv Y2F0aW5nIHRoZSBMQVBJQyBvcg0KPiAgICBJT0FQSUMgTU1JTyByZWdpb25zLg0KPiAgLSBVc2Ug dGhlIG5ld2x5IGludHJvZHVjZWQgcGFnZV9nZXRfcmFtX3R5cGUgdGhhdCByZXR1cm5zIGFsbCB0 aGUNCj4gICAgdHlwZXMgdGhhdCBmYWxsIGJldHdlZW4gYSBwYWdlLg0KPiAgLSBVc2UgcGFnaW5n X21vZGVfdHJhbnNsYXRlIGluc3RlYWQgb2YgaW9tbXVfdXNlX2hhcF9wdCB3aGVuIGRlY2lkaW5n DQo+ICAgIHdoZXRoZXIgdG8gdXNlIHNldF9pZGVudGl0eV9wMm1fZW50cnkgb3IgaW9tbXVfbWFw X3BhZ2UuDQo+IA0KPiBDaGFuZ2VzIHNpbmNlIHY0Og0KPiAgLSBVc2UgcGZuX3RvX3BhZGRyLg0K PiAgLSBSZWJhc2Ugb24gdG9wIG9mIHByZXZpb3VzIGNoYW5nZXMuDQo+ICAtIENoYW5nZSB0aGUg ZGVmYXVsdCBvcHRpb24gc2V0dGluZyB0byB1c2UgaWYgaW5zdGVhZCBvZiBhIHRlcm5hcnkNCj4g ICAgb3BlcmF0b3IuDQo+ICAtIFJlbmFtZSB0byBtYXAtcmVzZXJ2ZWQuDQo+IA0KPiBDaGFuZ2Vz IHNpbmNlIHYzOg0KPiAgLSBBZGQgbWFwcGluZ3MgaWYgdGhlIGlvbW11IHBhZ2UgdGFibGVzIGFy ZSBzaGFyZWQuDQo+IA0KPiBDaGFuZ2VzIHNpbmNlIHYyOg0KPiAgLSBGaXggY29tbWVudCByZWdh cmRpbmcgZG9tMC1zdHJpY3QuDQo+ICAtIENoYW5nZSBkb2N1bWVudGF0aW9uIHN0eWxlIG9mIHhl biBjb21tYW5kIGxpbmUuDQo+ICAtIFJlbmFtZSBpb21tdV9tYXAgdG8gaHdkb21faW9tbXVfbWFw Lg0KPiAgLSBNb3ZlIGFsbCB0aGUgY2hlY2tzIHRvIGh3ZG9tX2lvbW11X21hcC4NCj4gDQo+IENo YW5nZXMgc2luY2UgdjE6DQo+ICAtIEludHJvZHVjZSBhIG5ldyByZXNlcnZlZCBvcHRpb24gaW5z dGVhZCBvZiBhYnVzaW5nIHRoZSBpbmNsdXNpdmUNCj4gICAgb3B0aW9uLg0KPiAgLSBVc2UgdGhl IHNhbWUgaGVscGVyIGZ1bmN0aW9uIGZvciBQViBhbmQgUFZIIGluIG9yZGVyIHRvIGRlY2lkZSBp ZiBhDQo+ICAgIHBhZ2Ugc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBkb21haW4gcGFnZSB0YWJsZXMu DQo+ICAtIFVzZSB0aGUgZGF0YSBpbnNpZGUgb2YgdGhlIGRvbWFpbiBzdHJ1Y3QgdG8gZGV0ZWN0 IG92ZXJsYXBzIHdpdGgNCj4gICAgZW11bGF0ZWQgTU1JTyByZWdpb25zLg0KPiAtLS0NCj4gQ2M6 IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQo+IENjOiBHZW9yZ2Ug RHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+DQo+IENjOiBJYW4gSmFja3NvbiA8 aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4NCj4gQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4NCj4gQ2M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+DQo+IENj OiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+DQo+IENjOiBT dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+DQo+IENjOiBUaW0gRGVl Z2FuIDx0aW1AeGVuLm9yZz4NCj4gQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+DQo+ IENjOiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPg0KPiBDYzogU3VyYXZl ZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4NCj4gQ2M6IEJy aWFuIFdvb2RzIDxicmlhbi53b29kc0BhbWQuY29tPg0KPiBDYzogS2V2aW4gVGlhbiA8a2V2aW4u dGlhbkBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFy a2Rvd24gICAgICAgICB8ICA5ICsrKysNCj4gIHhlbi9hcmNoL3g4Ni9odm0vaW8uYyAgICAgICAg ICAgICAgICAgICAgICAgfCAgNSArKw0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3Bj aV9hbWRfaW9tbXUuYyB8ICAzICsrDQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vc21t dS5jICAgICAgICAgIHwgIDQgKysNCj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMg ICAgICAgICAgICAgfCAgNSArLQ0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMgICAgICAgICB8ICAzICsrDQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu YyAgICAgICAgIHwgNTIgKysrKysrKysrKysrKysrKysrLS0tDQo+ICB4ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9pby5oICAgICAgICAgICAgICAgIHwgIDMgKysNCj4gIHhlbi9pbmNsdWRlL3hlbi9p b21tdS5oICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgOSBmaWxlcyBjaGFuZ2VkLCA3 OCBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RvY3Mv bWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIGIvZG9jcy9taXNjL3hlbi0NCj4gY29tbWFu ZC1saW5lLm1hcmtkb3duDQo+IGluZGV4IDk4ZjBmM2I2OGIuLjFmZmQ1ODYyMjQgMTAwNjQ0DQo+ IC0tLSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duDQo+ICsrKyBiL2RvY3Mv bWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duDQo+IEBAIC03MDQsNiArNzA0LDE1IEBAIFRo aXMgbGlzdCBvZiBib29sZWFucyBjb250cm9scyB0aGUgaW9tbXUgdXNhZ2UgYnkNCj4gRG9tMDoN Cj4gICAgb3B0aW9uIGlzIG9ubHkgYXBwbGljYWJsZSB0byBhIFBWIERvbTAgYW5kIGlzIGVuYWJs ZWQgYnkgZGVmYXVsdCBvbiBJbnRlbA0KPiAgICBoYXJkd2FyZS4NCj4gDQo+ICsqIGBtYXAtcmVz ZXJ2ZWRgOiBzZXRzIHVwIERNQSByZW1hcHBpbmcgZm9yIGFsbCB0aGUgcmVzZXJ2ZWQgcmVnaW9u cyBpbg0KPiB0aGUNCj4gKyAgbWVtb3J5IG1hcCBmb3IgRG9tMC4gVXNlIHRoaXMgdG8gd29yayBh cm91bmQgZmlybXdhcmUgaXNzdWVzIHByb3ZpZGluZw0KPiArICBpbmNvcnJlY3QgUk1SUi9JVk1E IGVudHJpZXMuIFJhdGhlciB0aGFuIG9ubHkgbWFwcGluZyBSQU0gcGFnZXMgZm9yDQo+IElPTU1V DQo+ICsgIGFjY2Vzc2VzIGZvciBEb20wLCBhbGwgbWVtb3J5IHJlZ2lvbnMgbWFya2VkIGFzIHJl c2VydmVkIGluIHRoZSBtZW1vcnkNCj4gbWFwDQo+ICsgIHRoYXQgZG9uJ3Qgb3ZlcmxhcCB3aXRo IGFueSBNTUlPIHJlZ2lvbiBmcm9tIGVtdWxhdGVkIGRldmljZXMgd2lsbCBiZQ0KPiArICBpZGVu dGl0eSBtYXBwZWQuIFRoaXMgb3B0aW9uIG1hcHMgYSBzdWJzZXQgb2YgdGhlIG1lbW9yeSB0aGF0 IHdvdWxkIGJlDQo+ICsgIG1hcHBlZCB3aGVuIHVzaW5nIHRoZSBgbWFwLWluY2x1c2l2ZWAgb3B0 aW9uLiBUaGlzIG9wdGlvbiBpcyBhdmFpbGFibGUgdG8NCj4gYWxsDQo+ICsgIERvbTAgbW9kZXMg YW5kIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJbnRlbCBoYXJkd2FyZS4NCj4gKw0KPiAgIyMj IGRvbTBcX2lvcG9ydHNcX2Rpc2FibGUgKHg4NikNCj4gID4gYD0gTGlzdCBvZiA8aGV4Pi08aGV4 PmANCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvLmMgYi94ZW4vYXJjaC94 ODYvaHZtL2lvLmMNCj4gaW5kZXggNDdkNmM4NTBjYS4uYTViMGEyM2YwNiAxMDA2NDQNCj4gLS0t IGEveGVuL2FyY2gveDg2L2h2bS9pby5jDQo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW8uYw0K PiBAQCAtNDA0LDYgKzQwNCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGh2bV9tbWNmZw0KPiAq dnBjaV9tbWNmZ19maW5kKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsDQo+ICAgICAgcmV0dXJuIE5V TEw7DQo+ICB9DQo+IA0KPiArYm9vbCB2cGNpX2lzX21tY2ZnX2FkZHJlc3MoY29uc3Qgc3RydWN0 IGRvbWFpbiAqZCwgcGFkZHJfdCBhZGRyKQ0KPiArew0KPiArICAgIHJldHVybiB2cGNpX21tY2Zn X2ZpbmQoZCwgYWRkcik7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyB1bnNpZ25lZCBpbnQgdnBjaV9t bWNmZ19kZWNvZGVfYWRkcihjb25zdCBzdHJ1Y3QgaHZtX21tY2ZnDQo+ICptbWNmZywNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGFkZHIsIHBj aV9zYmRmX3QgKnNiZGYpDQo+ICB7DQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jDQo+IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L3BjaV9hbWRfaW9tbXUuYw0KPiBpbmRleCAwNzNkMThiZDEwLi4zMzBmOWNlMzg2IDEwMDY0NA0K PiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jDQo+ICsr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMNCj4gQEAgLTI1 Niw2ICsyNTYsOSBAQCBzdGF0aWMgdm9pZCBfX2h3ZG9tX2luaXQNCj4gYW1kX2lvbW11X2h3ZG9t X2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCj4gICAgICAvKiBJbmNsdXNpdmUgSU9NTVUgbWFwcGlu Z3MgYXJlIGRpc2FibGVkIGJ5IGRlZmF1bHQgb24gQU1EIGhhcmR3YXJlLg0KPiAqLw0KPiAgICAg IGlmICggaW9tbXVfaHdkb21faW5jbHVzaXZlID09IC0xICkNCj4gICAgICAgICAgaW9tbXVfaHdk b21faW5jbHVzaXZlID0gMDsNCj4gKyAgICAvKiBSZXNlcnZlZCBJT01NVSBtYXBwaW5ncyBhcmUg ZGlzYWJsZWQgYnkgZGVmYXVsdCBvbiBBTUQNCj4gaGFyZHdhcmUuICovDQo+ICsgICAgaWYgKCBp b21tdV9od2RvbV9yZXNlcnZlZCA9PSAtMSApDQo+ICsgICAgICAgIGlvbW11X2h3ZG9tX3Jlc2Vy dmVkID0gMDsNCj4gDQo+ICAgICAgaWYgKCBhbGxvY2F0ZV9kb21haW5fcmVzb3VyY2VzKGRvbV9p b21tdShkKSkgKQ0KPiAgICAgICAgICBCVUcoKTsNCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FybS9zbW11LmMNCj4gYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0v c21tdS5jDQo+IGluZGV4IGE1MTU4YjBiZGYuLjQzZWNlNDJhNTAgMTAwNjQ0DQo+IC0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9zbW11LmMNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYXJtL3NtbXUuYw0KPiBAQCAtMjczMiw2ICsyNzMyLDEwIEBAIHN0YXRpYyB2b2lk IF9faHdkb21faW5pdA0KPiBhcm1fc21tdV9pb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4g KmQpDQo+ICAJCXByaW50ayhYRU5MT0dfV0FSTklORw0KPiAgCQkibWFwLWluY2x1c2l2ZSBkb20w LWlvbW11IG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIG9uDQo+IEFSTVxuIik7DQo+ICAJaW9tbXVf aHdkb21faW5jbHVzaXZlID0gMDsNCj4gKwlpZiAoIGlvbW11X2h3ZG9tX3Jlc2VydmVkID09IDEg KQ0KPiArCQlwcmludGsoWEVOTE9HX1dBUk5JTkcNCj4gKwkJIm1hcC1yZXNlcnZlZCBkb20wLWlv bW11IG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkIG9uDQo+IEFSTVxuIik7DQo+ICsJaW9tbXVfaHdk b21fcmVzZXJ2ZWQgPSAwOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyB2b2lkIGFybV9zbW11X2lvbW11 X2RvbWFpbl90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQ0KPiBkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYw0KPiBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMNCj4gaW5kZXggOTU1MjQ2NGJkYy4uYTI5YmMxM2Y4YSAxMDA2NDQNCj4gLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYw0KPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9pb21tdS5jDQo+IEBAIC02Miw2ICs2Miw3IEBAIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGlv bW11X2ludHJlbWFwID0gMTsNCj4gIGJvb2wgX19od2RvbV9pbml0ZGF0YSBpb21tdV9od2RvbV9z dHJpY3Q7DQo+ICBib29sIF9fcmVhZF9tb3N0bHkgaW9tbXVfaHdkb21fcGFzc3Rocm91Z2g7DQo+ ICBpbnQ4X3QgX19od2RvbV9pbml0ZGF0YSBpb21tdV9od2RvbV9pbmNsdXNpdmUgPSAtMTsNCj4g K2ludDhfdCBfX2h3ZG9tX2luaXRkYXRhIGlvbW11X2h3ZG9tX3Jlc2VydmVkID0gLTE7DQo+IA0K PiAgLyoNCj4gICAqIEluIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIFZULWQgcG9zdGVk IGludGVycnVwdHMsIGluIHNvbWUNCj4gZXh0cmVtZQ0KPiBAQCAtMTU1LDYgKzE1Niw4IEBAIHN0 YXRpYyBpbnQgX19pbml0IHBhcnNlX2RvbTBfaW9tbXVfcGFyYW0oY29uc3QNCj4gY2hhciAqcykN Cj4gICAgICAgICAgICAgIGlvbW11X2h3ZG9tX3N0cmljdCA9IHZhbDsNCj4gICAgICAgICAgZWxz ZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJtYXAtaW5jbHVzaXZlIiwgcywgc3MpKSA+PSAw ICkNCj4gICAgICAgICAgICAgIGlvbW11X2h3ZG9tX2luY2x1c2l2ZSA9IHZhbDsNCj4gKyAgICAg ICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJtYXAtcmVzZXJ2ZWQiLCBzLCBzcykp ID49IDAgKQ0KPiArICAgICAgICAgICAgaW9tbXVfaHdkb21faW5jbHVzaXZlID0gdmFsOw0KPiAg ICAgICAgICBlbHNlDQo+ICAgICAgICAgICAgICByYyA9IC1FSU5WQUw7DQo+IA0KPiBAQCAtMjM2 LDcgKzIzOSw3IEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0DQo+ IGRvbWFpbiAqZCkNCj4gDQo+ICAgICAgaGQtPnBsYXRmb3JtX29wcy0+aHdkb21faW5pdChkKTsN Cj4gDQo+IC0gICAgQVNTRVJUKGlvbW11X2h3ZG9tX2luY2x1c2l2ZSAhPSAtMSk7DQo+ICsgICAg QVNTRVJUKGlvbW11X2h3ZG9tX2luY2x1c2l2ZSAhPSAtMSAmJiBpb21tdV9od2RvbV9pbmNsdXNp dmUgIT0gLQ0KPiAxKTsNCj4gICAgICBpZiAoIGlvbW11X2h3ZG9tX2luY2x1c2l2ZSAmJiAhaXNf cHZfZG9tYWluKGQpICkNCj4gICAgICB7DQo+ICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklO Rw0KPiBkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4g Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYw0KPiBpbmRleCBhMDllMDJjOGRi Li4xMTIxZjVmZjViIDEwMDY0NA0KPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYw0KPiArKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYw0KPiBA QCAtMTMwNyw2ICsxMzA3LDkgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0DQo+IGludGVsX2lv bW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCj4gICAgICAvKiBJbmNsdXNpdmUgbWFw cGluZ3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJbnRlbCBoYXJkd2FyZSBmb3IgUFYuICov DQo+ICAgICAgaWYgKCBpb21tdV9od2RvbV9pbmNsdXNpdmUgPT0gLTEgKQ0KPiAgICAgICAgICBp b21tdV9od2RvbV9pbmNsdXNpdmUgPSBpc19wdl9kb21haW4oZCk7DQo+ICsgICAgLyogUmVzZXJ2 ZWQgSU9NTVUgbWFwcGluZ3MgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBvbiBJbnRlbCBoYXJkd2Fy ZS4NCj4gKi8NCj4gKyAgICBpZiAoIGlvbW11X2h3ZG9tX3Jlc2VydmVkID09IC0xICkNCj4gKyAg ICAgICAgaW9tbXVfaHdkb21fcmVzZXJ2ZWQgPSAxOw0KPiANCj4gICAgICBzZXR1cF9od2RvbV9w Y2lfZGV2aWNlcyhkLCBzZXR1cF9od2RvbV9kZXZpY2UpOw0KPiAgICAgIHNldHVwX2h3ZG9tX3Jt cnIoZCk7DQo+IGRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu Yw0KPiBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jDQo+IGluZGV4IDU4MDkw Mjc1NzMuLjQ3YTA3ODI3MmEgMTAwNjQ0DQo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3g4Ni9pb21tdS5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5j DQo+IEBAIC0yMCw2ICsyMCw3IEBADQo+ICAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4NCj4gICNp bmNsdWRlIDx4c20veHNtLmg+DQo+IA0KPiArI2luY2x1ZGUgPGFzbS9odm0vaW8uaD4NCj4gICNp bmNsdWRlIDxhc20vc2V0dXAuaD4NCj4gDQo+ICB2b2lkIGlvbW11X3VwZGF0ZV9pcmVfZnJvbV9h cGljKA0KPiBAQCAtMTM5LDE3ICsxNDAsMjMgQEAgc3RhdGljIGJvb2wgX19od2RvbV9pbml0DQo+ IGh3ZG9tX2lvbW11X21hcChjb25zdCBzdHJ1Y3QgZG9tYWluICpkLA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1heF9wZm4pDQo+ICB7 DQo+ICAgICAgbWZuX3QgbWZuID0gX21mbihwZm4pOw0KPiArICAgIHVuc2lnbmVkIGludCBpLCB0 eXBlOw0KPiANCj4gICAgICAvKg0KPiAgICAgICAqIFNldCB1cCAxOjEgbWFwcGluZyBmb3IgZG9t MC4gRGVmYXVsdCB0byBpbmNsdWRlIG9ubHkgY29udmVudGlvbmFsIFJBTQ0KPiAgICAgICAqIGFy ZWFzIGFuZCBsZXQgUk1SUnMgaW5jbHVkZSBuZWVkZWQgcmVzZXJ2ZWQgcmVnaW9ucy4gV2hlbiBz ZXQsIHRoZQ0KPiAgICAgICAqIGluY2x1c2l2ZSBtYXBwaW5nIGFkZGl0aW9uYWxseSBtYXBzIGlu IGV2ZXJ5IHBmbiB1cCB0byA0R0IgZXhjZXB0IHRob3NlDQo+IC0gICAgICogdGhhdCBmYWxsIGlu IHVudXNhYmxlIHJhbmdlcy4NCj4gKyAgICAgKiB0aGF0IGZhbGwgaW4gdW51c2FibGUgcmFuZ2Vz IGZvciBQViBEb20wLg0KPiAgICAgICAqLw0KPiAtICAgIGlmICggKHBmbiA+IG1heF9wZm4gJiYg IW1mbl92YWxpZChtZm4pKSB8fCB4ZW5faW5fcmFuZ2UocGZuKSApDQo+ICsgICAgaWYgKCAocGZu ID4gbWF4X3BmbiAmJiAhbWZuX3ZhbGlkKG1mbikpIHx8IHhlbl9pbl9yYW5nZShwZm4pIHx8DQo+ ICsgICAgICAgICAvKg0KPiArICAgICAgICAgICogSWdub3JlIGFueSBhZGRyZXNzIGJlbG93IDFN QiwgdGhhdCdzIGFscmVhZHkgaWRlbnRpdHkgbWFwcGVkIGJ5DQo+IHRoZQ0KPiArICAgICAgICAg ICogRG9tMCBidWlsZGVyIGZvciBIVk0uDQo+ICsgICAgICAgICAgKi8NCj4gKyAgICAgICAgICgh ZC0+ZG9tYWluX2lkICYmIGlzX2h2bV9kb21haW4oZCkgJiYgcGZuIDwgUEZOX0RPV04oTUIoMSkp KSApDQo+ICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4gDQo+IC0gICAgc3dpdGNoICggcGFnZV9n ZXRfcmFtX3R5cGUobWZuKSApDQo+ICsgICAgc3dpdGNoICggdHlwZSA9IHBhZ2VfZ2V0X3JhbV90 eXBlKG1mbikgKQ0KPiAgICAgIHsNCj4gICAgICBjYXNlIFJBTV9UWVBFX1VOVVNBQkxFOg0KPiAg ICAgICAgICByZXR1cm4gZmFsc2U7DQo+IEBAIC0xNjAsMTAgKzE2Nyw0MCBAQCBzdGF0aWMgYm9v bCBfX2h3ZG9tX2luaXQNCj4gaHdkb21faW9tbXVfbWFwKGNvbnN0IHN0cnVjdCBkb21haW4gKmQs DQo+ICAgICAgICAgIGJyZWFrOw0KPiANCj4gICAgICBkZWZhdWx0Og0KPiAtICAgICAgICBpZiAo ICFpb21tdV9od2RvbV9pbmNsdXNpdmUgfHwgcGZuID4gbWF4X3BmbiApDQo+ICsgICAgICAgIGlm ICggdHlwZSAmIFJBTV9UWVBFX1JFU0VSVkVEICkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAg ICAgaWYgKCAhaW9tbXVfaHdkb21faW5jbHVzaXZlICYmICFpb21tdV9od2RvbV9yZXNlcnZlZCAp DQo+ICsgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KPiArICAgICAgICB9DQo+ICsgICAg ICAgIGVsc2UgaWYgKCBpc19odm1fZG9tYWluKGQpIHx8ICFpb21tdV9od2RvbV9pbmNsdXNpdmUg fHwgcGZuID4NCj4gbWF4X3BmbiApDQo+ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICAg ICAgfQ0KPiANCj4gKyAgICAvKg0KPiArICAgICAqIENoZWNrIHRoYXQgaXQgZG9lc24ndCBvdmVy bGFwIHdpdGggdGhlIExBUElDDQo+ICsgICAgICogVE9ETzogaWYgdGhlIGd1ZXN0IHJlbG9jYXRl cyB0aGUgTU1JTyBhcmVhIG9mIHRoZSBMQVBJQyBYZW4gc2hvdWxkDQo+IG1ha2UNCj4gKyAgICAg KiBzdXJlIHRoZXJlJ3Mgbm90aGluZyBpbiB0aGUgbmV3IGFkZHJlc3MgdGhhdCB3b3VsZCBwcmV2 ZW50IHRyYXBwaW5nLg0KPiArICAgICAqLw0KPiArICAgIGlmICggaGFzX3ZsYXBpYyhkKSApDQo+ ICsgICAgew0KPiArICAgICAgICBjb25zdCBzdHJ1Y3QgdmNwdSAqdjsNCj4gKw0KPiArICAgICAg ICBmb3JfZWFjaF92Y3B1KGQsIHYpDQo+ICsgICAgICAgICAgICBpZiAoIHBmbiA9PSBQRk5fRE9X Tih2bGFwaWNfYmFzZV9hZGRyZXNzKHZjcHVfdmxhcGljKHYpKSkgKQ0KPiArICAgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsNCj4gKyAgICB9DQo+ICsgICAgLyogLi4uIG9yIHRoZSBJTy1BUElD ICovDQo+ICsgICAgZm9yICggaSA9IDA7IGhhc192aW9hcGljKGQpICYmIGkgPCBkLT5hcmNoLmh2 bS5ucl92aW9hcGljczsgaSsrICkNCj4gKyAgICAgICAgaWYgKCBwZm4gPT0gUEZOX0RPV04oZG9t YWluX3Zpb2FwaWMoZCwgaSktPmJhc2VfYWRkcmVzcykgKQ0KPiArICAgICAgICAgICAgcmV0dXJu IGZhbHNlOw0KPiArICAgIC8qDQo+ICsgICAgICogLi4uIG9yIHRoZSBQQ0llIE1DRkcgcmVnaW9u cy4NCj4gKyAgICAgKiBUT0RPOiBydW50aW1lIGFkZGVkIE1NQ0ZHIHJlZ2lvbnMgYXJlIG5vdCBj aGVja2VkIHRvIG1ha2Ugc3VyZQ0KPiB0aGV5DQo+ICsgICAgICogZG9uJ3Qgb3ZlcmxhcCB3aXRo IGFscmVhZHkgbWFwcGVkIHJlZ2lvbnMsIHRodXMgcHJldmVudGluZyB0cmFwcGluZy4NCj4gKyAg ICAgKi8NCj4gKyAgICBpZiAoIGhhc192cGNpKGQpICYmIHZwY2lfaXNfbW1jZmdfYWRkcmVzcyhk LCBwZm5fdG9fcGFkZHIocGZuKSkgKQ0KPiArICAgICAgICByZXR1cm4gZmFsc2U7DQo+ICsNCj4g ICAgICByZXR1cm4gdHJ1ZTsNCj4gIH0NCj4gDQo+IEBAIC0xNzMsNyArMjEwLDcgQEAgdm9pZCBf X2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9pbml0KHN0cnVjdA0KPiBkb21haW4gKmQpDQo+ IA0KPiAgICAgIEJVR19PTighaXNfaGFyZHdhcmVfZG9tYWluKGQpKTsNCj4gDQo+IC0gICAgaWYg KCBpb21tdV9od2RvbV9wYXNzdGhyb3VnaCB8fCAhaXNfcHZfZG9tYWluKGQpICkNCj4gKyAgICBp ZiAoIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICkNCj4gICAgICAgICAgcmV0dXJuOw0KPiANCj4g ICAgICBtYXhfcGZuID0gKEdCKDQpID4+IFBBR0VfU0hJRlQpIC0gMTsNCj4gQEAgLTE4Nyw3ICsy MjQsMTAgQEAgdm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9pbml0KHN0cnVjdA0K PiBkb21haW4gKmQpDQo+ICAgICAgICAgIGlmICggIWh3ZG9tX2lvbW11X21hcChkLCBwZm4sIG1h eF9wZm4pICkNCj4gICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiANCj4gLSAgICAgICAgcmMgPSBp b21tdV9tYXBfcGFnZShkLCBwZm4sIHBmbiwNCj4gSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0 YWJsZSk7DQo+ICsgICAgICAgIGlmICggcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkNCj4gKyAg ICAgICAgICAgIHJjID0gc2V0X2lkZW50aXR5X3AybV9lbnRyeShkLCBwZm4sIHAybV9hY2Nlc3Nf cncsIDApOw0KPiArICAgICAgICBlbHNlDQo+ICsgICAgICAgICAgICByYyA9IGlvbW11X21hcF9w YWdlKGQsIHBmbiwgcGZuLA0KPiBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsNCj4g ICAgICAgICAgaWYgKCByYyApDQo+ICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcg IiBkJWQ6IElPTU1VIG1hcHBpbmcgZmFpbGVkOiAlZFxuIiwNCj4gICAgICAgICAgICAgICAgICAg ICBkLT5kb21haW5faWQsIHJjKTsNCj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYv aHZtL2lvLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pby5oDQo+IGluZGV4IDhjODNmZDBj OGIuLjdjZWIxMTliNjQgMTAwNjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lv LmgNCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW8uaA0KPiBAQCAtMTg1LDYgKzE4 NSw5IEBAIGludCByZWdpc3Rlcl92cGNpX21tY2ZnX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwN Cj4gcGFkZHJfdCBhZGRyLA0KPiAgLyogRGVzdHJveSB0cmFja2VkIE1NQ0ZHIGFyZWFzLiAqLw0K PiAgdm9pZCBkZXN0cm95X3ZwY2lfbW1jZmcoc3RydWN0IGRvbWFpbiAqZCk7DQo+IA0KPiArLyog Q2hlY2sgaWYgYW4gYWRkcmVzcyBpcyBiZXR3ZWVuIGEgTU1DRkcgcmVnaW9uIGZvciBhIGRvbWFp bi4gKi8NCj4gK2Jvb2wgdnBjaV9pc19tbWNmZ19hZGRyZXNzKGNvbnN0IHN0cnVjdCBkb21haW4g KmQsIHBhZGRyX3QgYWRkcik7DQo+ICsNCj4gICNlbmRpZiAvKiBfX0FTTV9YODZfSFZNX0lPX0hf XyAqLw0KPiANCj4gDQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBiL3hl bi9pbmNsdWRlL3hlbi9pb21tdS5oDQo+IGluZGV4IDg5YzY4MzA2ODkuLjU3YzRlODFlYzYgMTAw NjQ0DQo+IC0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oDQo+ICsrKyBiL3hlbi9pbmNsdWRl L3hlbi9pb21tdS5oDQo+IEBAIC0zNyw3ICszNyw3IEBAIGV4dGVybiBib29sX3QgaW9tbXVfZGVi dWc7DQo+ICBleHRlcm4gYm9vbF90IGFtZF9pb21tdV9wZXJkZXZfaW50cmVtYXA7DQo+IA0KPiAg ZXh0ZXJuIGJvb2wgaW9tbXVfaHdkb21fc3RyaWN0LCBpb21tdV9od2RvbV9wYXNzdGhyb3VnaDsN Cj4gLWV4dGVybiBpbnQ4X3QgaW9tbXVfaHdkb21faW5jbHVzaXZlOw0KPiArZXh0ZXJuIGludDhf dCBpb21tdV9od2RvbV9pbmNsdXNpdmUsIGlvbW11X2h3ZG9tX3Jlc2VydmVkOw0KPiANCj4gIGV4 dGVybiB1bnNpZ25lZCBpbnQgaW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQ7DQo+IA0KPiAtLQ0KPiAy LjE4LjANCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K WGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0 cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==