From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v3 2/4] iommu: make iommu_inclusive_mapping a suboption of dom0-iommu Date: Tue, 7 Aug 2018 14:20:09 +0000 Message-ID: <49f0c880ad0844f6a998bc80417b05a9@AMSPEX02CL03.citrite.net> References: <20180807140243.11265-1-roger.pau@citrix.com> <20180807140243.11265-3-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1fn2uQ-0006MT-8H for xen-devel@lists.xenproject.org; Tue, 07 Aug 2018 14:24:26 +0000 In-Reply-To: <20180807140243.11265-3-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 , Andrew Cooper , "Tim (Xen.org)" , George Dunlap , Julien Grall , Jan Beulich , Ian Jackson , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBYZW4tZGV2ZWwgW21haWx0bzp4 ZW4tZGV2ZWwtYm91bmNlc0BsaXN0cy54ZW5wcm9qZWN0Lm9yZ10gT24gQmVoYWxmDQo+IE9mIFJv Z2VyIFBhdSBNb25uZQ0KPiBTZW50OiAwNyBBdWd1c3QgMjAxOCAxNTowMw0KPiBUbzogeGVuLWRl dmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IENjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGlu dGVsLmNvbT47IFN0ZWZhbm8gU3RhYmVsbGluaQ0KPiA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz47 IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+OyBHZW9yZ2UgRHVubGFwDQo+IDxHZW9yZ2Uu RHVubGFwQGNpdHJpeC5jb20+OyBBbmRyZXcgQ29vcGVyDQo+IDxBbmRyZXcuQ29vcGVyM0BjaXRy aXguY29tPjsgSWFuIEphY2tzb24gPElhbi5KYWNrc29uQGNpdHJpeC5jb20+OyBUaW0NCj4gKFhl bi5vcmcpIDx0aW1AeGVuLm9yZz47IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+ OyBKYW4gQmV1bGljaA0KPiA8amJldWxpY2hAc3VzZS5jb20+OyBSb2dlciBQYXUgTW9ubmUgPHJv Z2VyLnBhdUBjaXRyaXguY29tPg0KPiBTdWJqZWN0OiBbWGVuLWRldmVsXSBbUEFUQ0ggdjMgMi80 XSBpb21tdTogbWFrZQ0KPiBpb21tdV9pbmNsdXNpdmVfbWFwcGluZyBhIHN1Ym9wdGlvbiBvZiBk b20wLWlvbW11DQo+IA0KPiBJbnRyb2R1Y2UgYSBuZXcgZG9tMC1pb21tdT1pbmNsdXNpdmUgZ2Vu ZXJpYyBvcHRpb24gdGhhdCBzdXBlcnNlZGVzDQo+IGlvbW11X2luY2x1c2l2ZV9tYXBwaW5nLiBU aGUgcHJldmlvdXMgYmVoYXZpb3VyIGlzIHByZXNlcnZlZCBhbmQgdGhlDQo+IG9wdGlvbiBzaG91 bGQgb25seSBiZSBlbmFibGVkIGJ5IGRlZmF1bHQgb24gSW50ZWwgaGFyZHdhcmUuDQo+IA0KPiBO byBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFJvZ2Vy IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KDQpSZXZpZXdlZC1ieTogUGF1bCBE dXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4NCg0KPiAtLS0NCj4gQ2hhbmdlcyBzaW5j ZSB2MjoNCj4gIC0gRml4IHR5cG8gaW4gY29tbWl0IG1lc3NhZ2UuDQo+ICAtIENoYW5nZSBzdHls ZSBhbmQgdGV4dCBvZiB0aGUgZG9jdW1lbnRhdGlvbiBpbiB4ZW4gY29tbWFuZCBsaW5lLg0KPiAg LSBTZXQgdGhlIGRlZmF1bHRzIGluIHtpbnRlbC9hbWR9X2lvbW11X2h3ZG9tX2luaXQgZm9yIGlu Y2x1c2l2ZS4NCj4gIC0gUmUtYWRkIHRoZSBpb21tdV9kb20wX3Bhc3N0aHJvdWdoIHx8ICFpc19w dl9kb21haW4oZCkgY2hlY2suDQo+IA0KPiBDaGFuZ2VzIHNpbmNlIHYxOg0KPiAgLSBVc2UgZG9t MC1pb21tdSBpbnN0ZWFkIG9mIHRoZSBpb21tdSBvcHRpb24uDQo+ICAtIE9ubHkgZW5hYmxlIGJ5 IGRlZmF1bHQgb24gSW50ZWwgaGFyZHdhcmUuDQo+IC0tLQ0KPiBDYzogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCj4gQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5E dW5sYXBAZXUuY2l0cml4LmNvbT4NCj4gQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5j aXRyaXguY29tPg0KPiBDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KPiBDYzog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4NCj4gQ2M6IEtvbnJhZCBSemVzenV0 ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4NCj4gQ2M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4NCj4gQ2M6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3Jn Pg0KPiBDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4NCj4gQ2M6IEtldmluIFRpYW4g PGtldmluLnRpYW5AaW50ZWwuY29tPg0KPiAtLS0NCj4gIGRvY3MvbWlzYy94ZW4tY29tbWFuZC1s aW5lLm1hcmtkb3duICAgICAgICAgfCAxNyArKysrKy0NCj4gIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9wY2lfYW1kX2lvbW11LmMgfCAgNCArKw0KPiAgeGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYXJtL2lvbW11LmMgICAgICAgICB8ICA0ICsrDQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jICAgICAgICAgICAgIHwgMjMgKysrKysrLS0NCj4gIHhlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9leHRlcm4uaCAgICAgICAgfCAgMiAtDQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQvaW9tbXUuYyAgICAgICAgIHwgIDggKystDQo+ICB4ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQveDg2L3Z0ZC5jICAgICAgIHwgNTggKy0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jICAgICAgICAgfCA1OSArKysrKysrKysr KysrKysrKysrKysNCj4gIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAgICAgICAgICAgICAg ICAgfCAgMiArDQo+ICA5IGZpbGVzIGNoYW5nZWQsIDEwOSBpbnNlcnRpb25zKCspLCA2OCBkZWxl dGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5t YXJrZG93biBiL2RvY3MvbWlzYy94ZW4tDQo+IGNvbW1hbmQtbGluZS5tYXJrZG93bg0KPiBpbmRl eCBlYTQ1MWYwODhlLi45MGIzMmZlM2YwIDEwMDY0NA0KPiAtLS0gYS9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bg0KPiArKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5t YXJrZG93bg0KPiBAQCAtMTIwNSw3ICsxMjA1LDcgQEAgZGV0ZWN0aW9uIG9mIHN5c3RlbXMga25v d24gdG8gbWlzYmVoYXZlIHVwb24NCj4gYWNjZXNzZXMgdG8gdGhhdCBwb3J0Lg0KPiAgPj4gRW5h YmxlIElPTU1VIGRlYnVnZ2luZyBjb2RlIChpbXBsaWVzIGB2ZXJib3NlYCkuDQo+IA0KPiAgIyMj IGRvbTAtaW9tbXUNCj4gLT4gYD0gTGlzdCBvZiBbIG5vbmUgfCBzdHJpY3QgfCByZWxheGVkIF1g DQo+ICs+IGA9IExpc3Qgb2YgWyBub25lIHwgc3RyaWN0IHwgcmVsYXhlZCB8IGluY2x1c2l2ZSBd YA0KPiANCj4gICogYG5vbmVgOiBkaXNhYmxlcyBETUEgcmVtYXBwaW5nIGZvciBEb20wLg0KPiAN Cj4gQEAgLTEyMjEsNiArMTIyMSwxOCBAQCBQViBEb20wOg0KPiAgTm90ZSB0aGF0IGFsbCB0aGUg YWJvdmUgb3B0aW9ucyBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLiBTcGVjaWZ5aW5nIG1vcmUgdGhh bg0KPiAgb25lIG9uIHRoZSBgZG9tMC1pb21tdWAgY29tbWFuZCBsaW5lIHdpbGwgcmVzdWx0IGlu IHVuZGVmaW5lZCBiZWhhdmlvci4NCj4gDQo+ICtUaGUgZm9sbG93aW5nIG9wdGlvbnMgY29udHJv bCB3aGV0aGVyIG5vbi1SQU0gcmVnaW9ucyBhcmUgYWRkZWQgdG8gdGhlDQo+IERvbTANCj4gK2lv bW11IHRhYmxlcy4gTm90ZSB0aGF0IHRoZXkgY2FuIGJlIHByZWZpeGVkIHdpdGggYG5vLWAgdG8g ZWZmZWN0IHRoZQ0KPiBpbnZlcnNlDQo+ICttZWFuaW5nOg0KPiArDQo+ICsqIGBpbmNsdXNpdmVg OiBzZXRzIHVwIERNQSByZW1hcHBpbmcgZm9yIGFsbCB0aGUgbm9uLVJBTSBtZW1vcnkgYmVsb3cN Cj4gNEdCDQo+ICsgIGV4Y2VwdCBmb3IgdW51c2FibGUgcmFuZ2VzLiBVc2UgdGhpcyB0byB3b3Jr IGFyb3VuZCBmaXJtd2FyZSBpc3N1ZXMNCj4gcHJvdmlkaW5nDQo+ICsgIGluY29ycmVjdCBSTVJS L0lWTUQgZW50cmllcy4gUmF0aGVyIHRoYW4gb25seSBtYXBwaW5nIFJBTSBwYWdlcyBmb3INCj4g SU9NTVUNCj4gKyAgYWNjZXNzZXMgZm9yIERvbTAsIHdpdGggdGhpcyBvcHRpb24gYWxsIHBhZ2Vz IHVwIHRvIDRHQiwgbm90IG1hcmtlZCBhcw0KPiArICB1bnVzYWJsZSBpbiB0aGUgRTgyMCB0YWJs ZSwgd2lsbCBnZXQgYSBtYXBwaW5nIGVzdGFibGlzaGVkLiBOb3RlIHRoYXQgdGhpcw0KPiArICBv cHRpb24gaXMgb25seSBhcHBsaWNhYmxlIHRvIGEgUFYgRG9tMCBhbmQgaXMgZW5hYmxlZCBieSBk ZWZhdWx0IG9uIEludGVsDQo+ICsgIGhhcmR3YXJlLg0KPiArDQo+ICAjIyMgaW9tbXVcX2Rldlxf aW90bGJcX3RpbWVvdXQNCj4gID4gYD0gPGludGVnZXI+YA0KPiANCj4gQEAgLTEyMzMsNiArMTI0 NSw5IEBAIHdhaXQgZGVzY3JpcHRvciB0aW1lZCBvdXQnLCB0cnkgaW5jcmVhc2luZyB0aGlzIHZh bHVlLg0KPiAgIyMjIGlvbW11XF9pbmNsdXNpdmVcX21hcHBpbmcgKFZULWQpDQo+ICA+IGA9IDxi b29sZWFuPmANCj4gDQo+ICsqKldBUk5JTkc6IFRoaXMgY29tbWFuZCBsaW5lIG9wdGlvbiBpcyBk ZXByZWNhdGVkLCBhbmQgc3VwZXJzZWRlZCBieQ0KPiArX2RvbTAtaW9tbXU9aW5jbHVzaXZlXyAt IHVzaW5nIGJvdGggb3B0aW9ucyBpbiBjb21iaW5hdGlvbiBpcw0KPiB1bmRlZmluZWQuKioNCj4g Kw0KPiAgPiBEZWZhdWx0OiBgdHJ1ZWANCj4gDQo+ICBVc2UgdGhpcyB0byB3b3JrIGFyb3VuZCBm aXJtd2FyZSBpc3N1ZXMgcHJvdmlkaW5nIGluY29ycmVjdCBSTVJSIGVudHJpZXMuDQo+IGRpZmYg LS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jDQo+IGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYw0KPiBpbmRleCBlZWFj ZjcxM2U0Li4wZTBjOTljOTQyIDEwMDY0NA0KPiAtLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvcGNpX2FtZF9pb21tdS5jDQo+ICsrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9wY2lfYW1kX2lvbW11LmMNCj4gQEAgLTI1Myw2ICsyNTMsMTAgQEAgc3RhdGljIHZvaWQgX19o d2RvbV9pbml0DQo+IGFtZF9pb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4gKmQpDQo+ICAg ICAgdW5zaWduZWQgbG9uZyBpOw0KPiAgICAgIGNvbnN0IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11 Ow0KPiANCj4gKyAgICAvKiBJbmNsdXNpdmUgSU9NTVUgbWFwcGluZ3MgYXJlIGRpc2FibGVkIGJ5 IGRlZmF1bHQgb24gQU1EIGhhcmR3YXJlLg0KPiAqLw0KPiArICAgIGlvbW11X2RvbTBfaW5jbHVz aXZlID0gaW9tbXVfZG9tMF9pbmNsdXNpdmUgPT0gLTEgPyBmYWxzZQ0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpb21tdV9kb20wX2lu Y2x1c2l2ZTsNCj4gKw0KPiAgICAgIGlmICggYWxsb2NhdGVfZG9tYWluX3Jlc291cmNlcyhkb21f aW9tbXUoZCkpICkNCj4gICAgICAgICAgQlVHKCk7DQo+IA0KPiBkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lvbW11LmMNCj4gYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hcm0vaW9tbXUuYw0KPiBpbmRleCA5NWIxYWJiOTcyLi4zMjU5OTdiMTlmIDEwMDY0NA0KPiAt LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW9tbXUuYw0KPiArKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hcm0vaW9tbXUuYw0KPiBAQCAtNzMsMyArNzMsNyBAQCBpbnQgYXJj aF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0cnVjdCBkb21haW4NCj4gKmQpDQo+ICAgICAg LyogVGhlIElPTU1VIHNoYXJlcyB0aGUgcDJtIHdpdGggdGhlIENQVSAqLw0KPiAgICAgIHJldHVy biAtRU5PU1lTOw0KPiAgfQ0KPiArDQo+ICt2b2lkIF9faHdkb21faW5pdCBhcmNoX2lvbW11X2h3 ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCkNCj4gK3sNCj4gK30NCj4gZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMNCj4gYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jDQo+IGluZGV4IDgzMDU2MGJkY2YuLmYxNWM5NGJlNDIgMTAwNjQ0DQo+IC0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvaW9tbXUuYw0KPiBAQCAtNzQsNiArNzQsNyBAQCBib29sX3QgX19yZWFkX21vc3Rs eSBhbWRfaW9tbXVfcGVyZGV2X2ludHJlbWFwDQo+ID0gMTsNCj4gIGN1c3RvbV9wYXJhbSgiZG9t MC1pb21tdSIsIHBhcnNlX2RvbTBfaW9tbXVfcGFyYW0pOw0KPiAgYm9vbCBfX2h3ZG9tX2luaXRk YXRhIGlvbW11X2RvbTBfc3RyaWN0Ow0KPiAgYm9vbCBfX3JlYWRfbW9zdGx5IGlvbW11X2RvbTBf cGFzc3Rocm91Z2g7DQo+ICtpbnQ4X3QgX19od2RvbV9pbml0ZGF0YSBpb21tdV9kb20wX2luY2x1 c2l2ZSA9IC0xOw0KPiANCj4gIERFRklORV9QRVJfQ1BVKGJvb2xfdCwgaW9tbXVfZG9udF9mbHVz aF9pb3RsYik7DQo+IA0KPiBAQCAtMTQ0LDE2ICsxNDUsMjMgQEAgc3RhdGljIGludCBfX2luaXQg cGFyc2VfZG9tMF9pb21tdV9wYXJhbShjb25zdA0KPiBjaGFyICpzKQ0KPiAgICAgIGludCByYyA9 IDA7DQo+IA0KPiAgICAgIGRvIHsNCj4gKyAgICAgICAgYm9vbCB2YWwgPSAhIXN0cm5jbXAocywg Im5vLSIsIDMpOw0KPiArDQo+ICsgICAgICAgIGlmICggIXZhbCApDQo+ICsgICAgICAgICAgICBz ICs9IDM7DQo+ICsNCj4gICAgICAgICAgc3MgPSBzdHJjaHIocywgJywnKTsNCj4gICAgICAgICAg aWYgKCAhc3MgKQ0KPiAgICAgICAgICAgICAgc3MgPSBzdHJjaHIocywgJ1wwJyk7DQo+IA0KPiAt ICAgICAgICBpZiAoICFzdHJuY21wKHMsICJub25lIiwgc3MgLSBzKSApDQo+ICsgICAgICAgIGlm ICggIXN0cm5jbXAocywgIm5vbmUiLCBzcyAtIHMpICYmIHZhbCApDQo+ICAgICAgICAgICAgICBp b21tdV9kb20wX3Bhc3N0aHJvdWdoID0gdHJ1ZTsNCj4gLSAgICAgICAgZWxzZSBpZiAoICFzdHJu Y21wKHMsICJzdHJpY3QiLCBzcyAtIHMpICkNCj4gKyAgICAgICAgZWxzZSBpZiAoICFzdHJuY21w KHMsICJzdHJpY3QiLCBzcyAtIHMpICYmIHZhbCApDQo+ICAgICAgICAgICAgICBpb21tdV9kb20w X3N0cmljdCA9IHRydWU7DQo+IC0gICAgICAgIGVsc2UgaWYgKCAhc3RybmNtcChzLCAicmVsYXhl ZCIsIHNzIC0gcykgKQ0KPiArICAgICAgICBlbHNlIGlmICggIXN0cm5jbXAocywgInJlbGF4ZWQi LCBzcyAtIHMpICYmIHZhbCApDQo+ICAgICAgICAgICAgICBpb21tdV9kb20wX3N0cmljdCA9IGZh bHNlOw0KPiArICAgICAgICBlbHNlIGlmICggIXN0cm5jbXAocywgImluY2x1c2l2ZSIsIHNzIC0g cykgKQ0KPiArICAgICAgICAgICAgaW9tbXVfZG9tMF9pbmNsdXNpdmUgPSB2YWw7DQo+ICAgICAg ICAgIGVsc2UNCj4gICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsNCj4gDQo+IEBAIC0yMDIsNiAr MjEwLDEzIEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0DQo+IGRv bWFpbiAqZCkNCj4gICAgICBpZiAoICFpb21tdV9lbmFibGVkICkNCj4gICAgICAgICAgcmV0dXJu Ow0KPiANCj4gKyAgICBpZiAoIGlvbW11X2RvbTBfaW5jbHVzaXZlID09IHRydWUgJiYgIWlzX3B2 X2RvbWFpbihkKSApDQo+ICsgICAgew0KPiArICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcN Cj4gKyAgICAgICAgICAgICAgICJJT01NVSBpbmNsdXNpdmUgbWFwcGluZ3MgYXJlIG9ubHkgc3Vw cG9ydGVkIG9uIFBWIERvbTBcbiIpOw0KPiArICAgICAgICBpb21tdV9kb20wX2luY2x1c2l2ZSA9 IGZhbHNlOw0KPiArICAgIH0NCj4gKw0KPiAgICAgIHJlZ2lzdGVyX2tleWhhbmRsZXIoJ28nLCAm aW9tbXVfZHVtcF9wMm1fdGFibGUsICJkdW1wIGlvbW11IHAybQ0KPiB0YWJsZSIsIDApOw0KPiAg ICAgIGQtPm5lZWRfaW9tbXUgPSAhIWlvbW11X2RvbTBfc3RyaWN0Ow0KPiAgICAgIGlmICggbmVl ZF9pb21tdShkKSAmJiAhaW9tbXVfdXNlX2hhcF9wdChkKSApDQo+IEBAIC0yMzYsNiArMjUxLDgg QEAgdm9pZCBfX2h3ZG9tX2luaXQgaW9tbXVfaHdkb21faW5pdChzdHJ1Y3QNCj4gZG9tYWluICpk KQ0KPiAgICAgIH0NCj4gDQo+ICAgICAgaGQtPnBsYXRmb3JtX29wcy0+aHdkb21faW5pdChkKTsN Cj4gKw0KPiArICAgIGFyY2hfaW9tbXVfaHdkb21faW5pdChkKTsNCj4gIH0NCj4gDQo+ICB2b2lk IGlvbW11X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpDQo+IGRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgNCj4gYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvZXh0ZXJuLmgNCj4gaW5kZXggZmI3ZWRmYWVmOS4uOTFjYWRjNjAyZSAxMDA2NDQNCj4g LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oDQo+ICsrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaA0KPiBAQCAtOTksNiArOTksNCBAQCB2b2lk IHBjaV92dGRfcXVpcmsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKik7DQo+ICBib29sX3QgcGxhdGZv cm1fc3VwcG9ydHNfaW50cmVtYXAodm9pZCk7DQo+ICBib29sX3QgcGxhdGZvcm1fc3VwcG9ydHNf eDJhcGljKHZvaWQpOw0KPiANCj4gLXZvaWQgdnRkX3NldF9od2RvbV9tYXBwaW5nKHN0cnVjdCBk b21haW4gKmQpOw0KPiAtDQo+ICAjZW5kaWYgLy8gX1ZURF9FWFRFUk5fSF8NCj4gZGlmZiAtLWdp dCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jDQo+IGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gaW5kZXggOGFjNzc0MjE1Yi4uN2M3ZTE1NzU1ZCAx MDA2NDQNCj4gLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gKysr IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMNCj4gQEAgLTEzMDQsMTEgKzEz MDQsOSBAQCBzdGF0aWMgdm9pZCBfX2h3ZG9tX2luaXQNCj4gaW50ZWxfaW9tbXVfaHdkb21faW5p dChzdHJ1Y3QgZG9tYWluICpkKQ0KPiAgew0KPiAgICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAq ZHJoZDsNCj4gDQo+IC0gICAgaWYgKCAhaW9tbXVfZG9tMF9wYXNzdGhyb3VnaCAmJiBpc19wdl9k b21haW4oZCkgKQ0KPiAtICAgIHsNCj4gLSAgICAgICAgLyogU2V0IHVwIDE6MSBwYWdlIHRhYmxl IGZvciBoYXJkd2FyZSBkb21haW4uICovDQo+IC0gICAgICAgIHZ0ZF9zZXRfaHdkb21fbWFwcGlu ZyhkKTsNCj4gLSAgICB9DQo+ICsgICAgLyogSW5jbHVzaXZlIG1hcHBpbmdzIGFyZSBlbmFibGVk IGJ5IGRlZmF1bHQgb24gSW50ZWwgaGFyZHdhcmUgZm9yIFBWLiAqLw0KPiArICAgIGlvbW11X2Rv bTBfaW5jbHVzaXZlID0gaW9tbXVfZG9tMF9pbmNsdXNpdmUgPT0gLTEgPw0KPiBpc19wdl9kb21h aW4oZCkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogaW9tbXVfZG9tMF9pbmNsdXNpdmU7DQo+IA0KPiAgICAgIHNldHVwX2h3ZG9tX3Bj aV9kZXZpY2VzKGQsIHNldHVwX2h3ZG9tX2RldmljZSk7DQo+ICAgICAgc2V0dXBfaHdkb21fcm1y cihkKTsNCj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvdnRk LmMNCj4gYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L3Z0ZC5jDQo+IGluZGV4IDAw YTk4OTEwMDUuLjIwMzIzMDUxZDAgMTAwNjQ0DQo+IC0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC94ODYvdnRkLmMNCj4gKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4 Ni92dGQuYw0KPiBAQCAtMjUsNyArMjUsNiBAQA0KPiAgI2luY2x1ZGUgPHhlbi9pcnEuaD4NCj4g ICNpbmNsdWRlIDx4ZW4vbnVtYS5oPg0KPiAgI2luY2x1ZGUgPGFzbS9maXhtYXAuaD4NCj4gLSNp bmNsdWRlIDxhc20vc2V0dXAuaD4NCj4gICNpbmNsdWRlICIuLi9pb21tdS5oIg0KPiAgI2luY2x1 ZGUgIi4uL2RtYXIuaCINCj4gICNpbmNsdWRlICIuLi92dGQuaCINCj4gQEAgLTM1LDggKzM0LDcg QEANCj4gICAqIGlvbW11X2luY2x1c2l2ZV9tYXBwaW5nOiB3aGVuIHNldCwgYWxsIG1lbW9yeSBi ZWxvdyA0R0IgaXMgaW5jbHVkZWQgaW4NCj4gZG9tMA0KPiAgICogMToxIGlvbW11IG1hcHBpbmdz IGV4Y2VwdCB4ZW4gYW5kIHVudXNhYmxlIHJlZ2lvbnMuDQo+ICAgKi8NCj4gLXN0YXRpYyBib29s X3QgX19od2RvbV9pbml0ZGF0YSBpb21tdV9pbmNsdXNpdmVfbWFwcGluZyA9IDE7DQo+IC1ib29s ZWFuX3BhcmFtKCJpb21tdV9pbmNsdXNpdmVfbWFwcGluZyIsIGlvbW11X2luY2x1c2l2ZV9tYXBw aW5nKTsNCj4gK2Jvb2xlYW5fcGFyYW0oImlvbW11X2luY2x1c2l2ZV9tYXBwaW5nIiwgaW9tbXVf ZG9tMF9pbmNsdXNpdmUpOw0KPiANCj4gIHZvaWQgKm1hcF92dGRfZG9tYWluX3BhZ2UodTY0IG1h ZGRyKQ0KPiAgew0KPiBAQCAtMTA4LDU3ICsxMDYsMyBAQCB2b2lkIGh2bV9kcGNpX2lzYWlycV9l b2koc3RydWN0IGRvbWFpbiAqZCwNCj4gdW5zaWduZWQgaW50IGlzYWlycSkNCj4gICAgICBzcGlu X3VubG9jaygmZC0+ZXZlbnRfbG9jayk7DQo+ICB9DQo+IA0KPiAtdm9pZCBfX2h3ZG9tX2luaXQg dnRkX3NldF9od2RvbV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQpDQo+IC17DQo+IC0gICAgdW5z aWduZWQgbG9uZyBpLCB0b3AsIG1heF9wZm47DQo+IC0NCj4gLSAgICBCVUdfT04oIWlzX2hhcmR3 YXJlX2RvbWFpbihkKSk7DQo+IC0NCj4gLSAgICBtYXhfcGZuID0gKEdCKDQpID4+IFBBR0VfU0hJ RlQpIC0gMTsNCj4gLSAgICB0b3AgPSBtYXgobWF4X3BkeCwgcGZuX3RvX3BkeChtYXhfcGZuKSAr IDEpOw0KPiAtDQo+IC0gICAgZm9yICggaSA9IDA7IGkgPCB0b3A7IGkrKyApDQo+IC0gICAgew0K PiAtICAgICAgICB1bnNpZ25lZCBsb25nIHBmbiA9IHBkeF90b19wZm4oaSk7DQo+IC0gICAgICAg IGJvb2wgbWFwOw0KPiAtICAgICAgICBpbnQgcmM7DQo+IC0NCj4gLSAgICAgICAgLyoNCj4gLSAg ICAgICAgICogU2V0IHVwIDE6MSBtYXBwaW5nIGZvciBkb20wLiBEZWZhdWx0IHRvIGluY2x1ZGUg b25seQ0KPiAtICAgICAgICAgKiBjb252ZW50aW9uYWwgUkFNIGFyZWFzIGFuZCBsZXQgUk1SUnMg aW5jbHVkZSBuZWVkZWQgcmVzZXJ2ZWQNCj4gLSAgICAgICAgICogcmVnaW9ucy4gV2hlbiBzZXQs IHRoZSBpbmNsdXNpdmUgbWFwcGluZyBhZGRpdGlvbmFsbHkgbWFwcyBpbg0KPiAtICAgICAgICAg KiBldmVyeSBwZm4gdXAgdG8gNEdCIGV4Y2VwdCB0aG9zZSB0aGF0IGZhbGwgaW4gdW51c2FibGUg cmFuZ2VzLg0KPiAtICAgICAgICAgKi8NCj4gLSAgICAgICAgaWYgKCBwZm4gPiBtYXhfcGZuICYm ICFtZm5fdmFsaWQoX21mbihwZm4pKSApDQo+IC0gICAgICAgICAgICBjb250aW51ZTsNCj4gLQ0K PiAtICAgICAgICBpZiAoIGlvbW11X2luY2x1c2l2ZV9tYXBwaW5nICYmIHBmbiA8PSBtYXhfcGZu ICkNCj4gLSAgICAgICAgICAgIG1hcCA9ICFwYWdlX2lzX3JhbV90eXBlKHBmbiwgUkFNX1RZUEVf VU5VU0FCTEUpOw0KPiAtICAgICAgICBlbHNlDQo+IC0gICAgICAgICAgICBtYXAgPSBwYWdlX2lz X3JhbV90eXBlKHBmbiwgUkFNX1RZUEVfQ09OVkVOVElPTkFMKTsNCj4gLQ0KPiAtICAgICAgICBp ZiAoICFtYXAgKQ0KPiAtICAgICAgICAgICAgY29udGludWU7DQo+IC0NCj4gLSAgICAgICAgLyog RXhjbHVkZSBYZW4gYml0cyAqLw0KPiAtICAgICAgICBpZiAoIHhlbl9pbl9yYW5nZShwZm4pICkN Cj4gLSAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAtDQo+IC0gICAgICAgIC8qDQo+IC0gICAgICAg ICAqIElmIGRvbTAtc3RyaWN0IG1vZGUgaXMgZW5hYmxlZCB0aGVuIGV4Y2x1ZGUgY29udmVudGlv bmFsIFJBTQ0KPiAtICAgICAgICAgKiBhbmQgbGV0IHRoZSBjb21tb24gY29kZSBtYXAgZG9tMCdz IHBhZ2VzLg0KPiAtICAgICAgICAgKi8NCj4gLSAgICAgICAgaWYgKCBpb21tdV9kb20wX3N0cmlj dCAmJg0KPiAtICAgICAgICAgICAgIHBhZ2VfaXNfcmFtX3R5cGUocGZuLCBSQU1fVFlQRV9DT05W RU5USU9OQUwpICkNCj4gLSAgICAgICAgICAgIGNvbnRpbnVlOw0KPiAtDQo+IC0gICAgICAgIHJj ID0gaW9tbXVfbWFwX3BhZ2UoZCwgcGZuLCBwZm4sDQo+IElPTU1VRl9yZWFkYWJsZXxJT01NVUZf d3JpdGFibGUpOw0KPiAtICAgICAgICBpZiAoIHJjICkNCj4gLSAgICAgICAgICAgIHByaW50ayhY RU5MT0dfV0FSTklORyBWVERQUkVGSVggIiBkJWQ6IElPTU1VIG1hcHBpbmcgZmFpbGVkOg0KPiAl ZFxuIiwNCj4gLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIHJjKTsNCj4gLQ0KPiAt ICAgICAgICBpZiAoIShpICYgMHhmZmZmZikpDQo+IC0gICAgICAgICAgICBwcm9jZXNzX3BlbmRp bmdfc29mdGlycXMoKTsNCj4gLSAgICB9DQo+IC19DQo+IC0NCj4gZGlmZiAtLWdpdCBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jDQo+IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gveDg2L2lvbW11LmMNCj4gaW5kZXggNjgxODJhZmQ5MS4uNWE3YTc2NWU5ZCAxMDA2NDQNCj4g LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMNCj4gKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMNCj4gQEAgLTIwLDYgKzIwLDggQEANCj4gICNp bmNsdWRlIDx4ZW4vc29mdGlycS5oPg0KPiAgI2luY2x1ZGUgPHhzbS94c20uaD4NCj4gDQo+ICsj aW5jbHVkZSA8YXNtL3NldHVwLmg+DQo+ICsNCj4gIHZvaWQgaW9tbXVfdXBkYXRlX2lyZV9mcm9t X2FwaWMoDQo+ICAgICAgdW5zaWduZWQgaW50IGFwaWMsIHVuc2lnbmVkIGludCByZWcsIHVuc2ln bmVkIGludCB2YWx1ZSkNCj4gIHsNCj4gQEAgLTEzMiw2ICsxMzQsNjMgQEAgdm9pZCBhcmNoX2lv bW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4NCj4gKmQpDQo+ICB7DQo+ICB9DQo+IA0K PiArdm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9pbml0KHN0cnVjdCBkb21haW4g KmQpDQo+ICt7DQo+ICsgICAgdW5zaWduZWQgbG9uZyBpLCB0b3AsIG1heF9wZm47DQo+ICsNCj4g KyAgICBCVUdfT04oIWlzX2hhcmR3YXJlX2RvbWFpbihkKSk7DQo+ICsNCj4gKyAgICBpZiAoIGlv bW11X2RvbTBfcGFzc3Rocm91Z2ggfHwgIWlzX3B2X2RvbWFpbihkKSApDQo+ICsgICAgICAgIHJl dHVybjsNCj4gKw0KPiArICAgIG1heF9wZm4gPSAoR0IoNCkgPj4gUEFHRV9TSElGVCkgLSAxOw0K PiArICAgIHRvcCA9IG1heChtYXhfcGR4LCBwZm5fdG9fcGR4KG1heF9wZm4pICsgMSk7DQo+ICsN Cj4gKyAgICBmb3IgKCBpID0gMDsgaSA8IHRvcDsgaSsrICkNCj4gKyAgICB7DQo+ICsgICAgICAg IHVuc2lnbmVkIGxvbmcgcGZuID0gcGR4X3RvX3BmbihpKTsNCj4gKyAgICAgICAgYm9vbCBtYXA7 DQo+ICsgICAgICAgIGludCByYzsNCj4gKw0KPiArICAgICAgICAvKg0KPiArICAgICAgICAgKiBT ZXQgdXAgMToxIG1hcHBpbmcgZm9yIGRvbTAuIERlZmF1bHQgdG8gaW5jbHVkZSBvbmx5DQo+ICsg ICAgICAgICAqIGNvbnZlbnRpb25hbCBSQU0gYXJlYXMgYW5kIGxldCBSTVJScyBpbmNsdWRlIG5l ZWRlZCByZXNlcnZlZA0KPiArICAgICAgICAgKiByZWdpb25zLiBXaGVuIHNldCwgdGhlIGluY2x1 c2l2ZSBtYXBwaW5nIGFkZGl0aW9uYWxseSBtYXBzIGluDQo+ICsgICAgICAgICAqIGV2ZXJ5IHBm biB1cCB0byA0R0IgZXhjZXB0IHRob3NlIHRoYXQgZmFsbCBpbiB1bnVzYWJsZSByYW5nZXMuDQo+ ICsgICAgICAgICAqLw0KPiArICAgICAgICBpZiAoIHBmbiA+IG1heF9wZm4gJiYgIW1mbl92YWxp ZChfbWZuKHBmbikpICkNCj4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiArDQo+ICsgICAgICAg IGlmICggaW9tbXVfZG9tMF9pbmNsdXNpdmUgJiYgcGZuIDw9IG1heF9wZm4gKQ0KPiArICAgICAg ICAgICAgbWFwID0gIXBhZ2VfaXNfcmFtX3R5cGUocGZuLCBSQU1fVFlQRV9VTlVTQUJMRSk7DQo+ ICsgICAgICAgIGVsc2UNCj4gKyAgICAgICAgICAgIG1hcCA9IHBhZ2VfaXNfcmFtX3R5cGUocGZu LCBSQU1fVFlQRV9DT05WRU5USU9OQUwpOw0KPiArDQo+ICsgICAgICAgIGlmICggIW1hcCApDQo+ ICsgICAgICAgICAgICBjb250aW51ZTsNCj4gKw0KPiArICAgICAgICAvKiBFeGNsdWRlIFhlbiBi aXRzICovDQo+ICsgICAgICAgIGlmICggeGVuX2luX3JhbmdlKHBmbikgKQ0KPiArICAgICAgICAg ICAgY29udGludWU7DQo+ICsNCj4gKyAgICAgICAgLyoNCj4gKyAgICAgICAgICogSWYgZG9tMC1z dHJpY3QgbW9kZSBpcyBlbmFibGVkIHRoZW4gZXhjbHVkZSBjb252ZW50aW9uYWwgUkFNDQo+ICsg ICAgICAgICAqIGFuZCBsZXQgdGhlIGNvbW1vbiBjb2RlIG1hcCBkb20wJ3MgcGFnZXMuDQo+ICsg ICAgICAgICAqLw0KPiArICAgICAgICBpZiAoIGlvbW11X2RvbTBfc3RyaWN0ICYmDQo+ICsgICAg ICAgICAgICAgcGFnZV9pc19yYW1fdHlwZShwZm4sIFJBTV9UWVBFX0NPTlZFTlRJT05BTCkgKQ0K PiArICAgICAgICAgICAgY29udGludWU7DQo+ICsNCj4gKyAgICAgICAgcmMgPSBpb21tdV9tYXBf cGFnZShkLCBwZm4sIHBmbiwNCj4gSU9NTVVGX3JlYWRhYmxlfElPTU1VRl93cml0YWJsZSk7DQo+ ICsgICAgICAgIGlmICggcmMgKQ0KPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5H ICIgZCVkOiBJT01NVSBtYXBwaW5nIGZhaWxlZDogJWRcbiIsDQo+ICsgICAgICAgICAgICAgICAg ICAgZC0+ZG9tYWluX2lkLCByYyk7DQo+ICsNCj4gKyAgICAgICAgaWYgKCEoaSAmIDB4ZmZmZmYp KQ0KPiArICAgICAgICAgICAgcHJvY2Vzc19wZW5kaW5nX3NvZnRpcnFzKCk7DQo+ICsgICAgfQ0K PiArfQ0KPiArDQo+ICAvKg0KPiAgICogTG9jYWwgdmFyaWFibGVzOg0KPiAgICogbW9kZTogQw0K PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4v aW9tbXUuaA0KPiBpbmRleCBjMGM2OTc1YWM0Li45OWU1Yjg5YzBmIDEwMDY0NA0KPiAtLS0gYS94 ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaA0KPiArKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaA0K PiBAQCAtMzcsNiArMzcsNyBAQCBleHRlcm4gYm9vbF90IGlvbW11X2RlYnVnOw0KPiAgZXh0ZXJu IGJvb2xfdCBhbWRfaW9tbXVfcGVyZGV2X2ludHJlbWFwOw0KPiANCj4gIGV4dGVybiBib29sIGlv bW11X2RvbTBfc3RyaWN0LCBpb21tdV9kb20wX3Bhc3N0aHJvdWdoOw0KPiArZXh0ZXJuIGludDhf dCBpb21tdV9kb20wX2luY2x1c2l2ZTsNCj4gDQo+ICBleHRlcm4gdW5zaWduZWQgaW50IGlvbW11 X2Rldl9pb3RsYl90aW1lb3V0Ow0KPiANCj4gQEAgLTUxLDYgKzUyLDcgQEAgdm9pZCBhcmNoX2lv bW11X2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpOw0KPiAgaW50IGFyY2hfaW9tbXVf ZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7DQo+ICBpbnQgYXJjaF9pb21tdV9wb3B1bGF0 ZV9wYWdlX3RhYmxlKHN0cnVjdCBkb21haW4gKmQpOw0KPiAgdm9pZCBhcmNoX2lvbW11X2NoZWNr X2F1dG90cmFuc2xhdGVkX2h3ZG9tKHN0cnVjdCBkb21haW4gKmQpOw0KPiArdm9pZCBhcmNoX2lv bW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7DQo+IA0KPiAgaW50IGlvbW11X2NvbnN0 cnVjdChzdHJ1Y3QgZG9tYWluICpkKTsNCj4gDQo+IC0tDQo+IDIuMTguMA0KPiANCj4gDQo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+IFhlbi1kZXZl bCBtYWlsaW5nIGxpc3QNCj4gWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnDQo+IGh0dHBz Oi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWwNCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=