From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH 2/8] x86/head: Refactor 32-bit pgtable setup Date: Mon, 31 Oct 2016 08:33:12 -0400 Message-ID: <0b9894e4-753c-7e49-45a7-3ee5e82abe3e@oracle.com> References: <1476468318-24422-1-git-send-email-boris.ostrovsky@oracle.com> <1476468318-24422-3-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c1Bmo-0000EO-T4 for xen-devel@lists.xenproject.org; Mon, 31 Oct 2016 12:33:59 +0000 In-Reply-To: <1476468318-24422-3-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: david.vrabel@citrix.com, JGross@suse.com, Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" Cc: Matt Fleming , xen-devel@lists.xenproject.org, x86@kernel.org, linux-kernel@vger.kernel.org, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org CgpPbiAxMC8xNC8yMDE2IDAyOjA1IFBNLCBCb3JpcyBPc3Ryb3Zza3kgd3JvdGU6Cj4gRnJvbTog TWF0dCBGbGVtaW5nIDxtYXR0QGNvZGVibHVlcHJpbnQuY28udWs+Cj4KPiBUaGUgbmV3IFhlbiBQ VkggZW50cnkgcG9pbnQgcmVxdWlyZXMgcGFnZSB0YWJsZXMgdG8gYmUgc2V0dXAgYnkgdGhlCj4g a2VybmVsIHNpbmNlIGl0IGlzIGVudGVyZWQgd2l0aCBwYWdpbmcgZGlzYWJsZWQuCj4KPiBQdWxs IHRoZSBjb21tb24gY29kZSBvdXQgb2YgaGVhZF8zMi5TIGFuZCBpbnRvIHBndGFibGVfMzIuUyBz byB0aGF0Cj4gc2V0dXBfcGd0YWJsZV8zMiBjYW4gYmUgaW52b2tlZCBmcm9tIGJvdGggdGhlIG5l dyBYZW4gZW50cnkgcG9pbnQgYW5kCj4gdGhlIGV4aXN0aW5nIHN0YXJ0dXBfMzIgY29kZS4KCgpQ aW5nIHRvIHg4NiBtYWludGFpbmVycy4KClBldGVyLCB5b3UgaGFkIHF1ZXN0aW9ucyBhYm91dCB0 aGlzIHBhdGNoLiBEaWQgSSBhbnN3ZXIgdGhlbT8KCi1ib3JpcwoKCj4KPiBDYzogQm9yaXMgT3N0 cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KPiBDYzogVGhvbWFzIEdsZWl4bmVy IDx0Z2x4QGxpbnV0cm9uaXguZGU+Cj4gQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29t Pgo+IENjOiAiSC4gUGV0ZXIgQW52aW4iIDxocGFAenl0b3IuY29tPgo+IENjOiB4ODZAa2VybmVs Lm9yZwo+IFNpZ25lZC1vZmYtYnk6IE1hdHQgRmxlbWluZyA8bWF0dEBjb2RlYmx1ZXByaW50LmNv LnVrPgo+IC0tLQo+ICBhcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgIHwgICAyICsKPiAgYXJj aC94ODYva2VybmVsL01ha2VmaWxlICAgICB8ICAgMiArCj4gIGFyY2gveDg2L2tlcm5lbC9oZWFk XzMyLlMgICAgfCAxNjggKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBh cmNoL3g4Ni9rZXJuZWwvcGd0YWJsZV8zMi5TIHwgMTk2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMDEgaW5zZXJ0aW9ucygr KSwgMTY3IGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgYXJjaC94ODYva2VybmVs L3BndGFibGVfMzIuUwo+Cj4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L01ha2VmaWxlIGIvYXJjaC94 ODYvTWFrZWZpbGUKPiBpbmRleCAyZDQ0OTMzLi42N2NjNzcxIDEwMDY0NAo+IC0tLSBhL2FyY2gv eDg2L01ha2VmaWxlCj4gKysrIGIvYXJjaC94ODYvTWFrZWZpbGUKPiBAQCAtMjA0LDYgKzIwNCw4 IEBAIGhlYWQteSArPSBhcmNoL3g4Ni9rZXJuZWwvaGVhZCQoQklUUykubwo+ICBoZWFkLXkgKz0g YXJjaC94ODYva2VybmVsL2ViZGEubwo+ICBoZWFkLXkgKz0gYXJjaC94ODYva2VybmVsL3BsYXRm b3JtLXF1aXJrcy5vCj4KPiAraGVhZC0kKENPTkZJR19YODZfMzIpICs9IGFyY2gveDg2L2tlcm5l bC9wZ3RhYmxlXzMyLm8KPiArCj4gIGxpYnMteSAgKz0gYXJjaC94ODYvbGliLwo+Cj4gICMgU2Vl IGFyY2gveDg2L0tidWlsZCBmb3IgY29udGVudCBvZiBjb3JlIHBhcnQgb2YgdGhlIGtlcm5lbAo+ IGRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvTWFrZWZpbGUgYi9hcmNoL3g4Ni9rZXJuZWwv TWFrZWZpbGUKPiBpbmRleCA0ZGQ1ZDUwLi5lYWU4NWE1IDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2 L2tlcm5lbC9NYWtlZmlsZQo+ICsrKyBiL2FyY2gveDg2L2tlcm5lbC9NYWtlZmlsZQo+IEBAIC04 LDYgKzgsOCBAQCBleHRyYS15CSs9IGViZGEubwo+ICBleHRyYS15CSs9IHBsYXRmb3JtLXF1aXJr cy5vCj4gIGV4dHJhLXkJKz0gdm1saW51eC5sZHMKPgo+ICtleHRyYS0kKENPTkZJR19YODZfMzIp ICs9IHBndGFibGVfMzIubwo+ICsKPiAgQ1BQRkxBR1Nfdm1saW51eC5sZHMgKz0gLVUkKFVUU19N QUNISU5FKQo+Cj4gIGlmZGVmIENPTkZJR19GVU5DVElPTl9UUkFDRVIKPiBkaWZmIC0tZ2l0IGEv YXJjaC94ODYva2VybmVsL2hlYWRfMzIuUyBiL2FyY2gveDg2L2tlcm5lbC9oZWFkXzMyLlMKPiBp bmRleCA1ZjQwMTI2Li4wZGIwNjZlIDEwMDY0NAo+IC0tLSBhL2FyY2gveDg2L2tlcm5lbC9oZWFk XzMyLlMKPiArKysgYi9hcmNoL3g4Ni9rZXJuZWwvaGVhZF8zMi5TCj4gQEAgLTQxLDUxICs0MSw2 IEBACj4gICNkZWZpbmUgWDg2X1ZFTkRPUl9JRAluZXdfY3B1X2RhdGErQ1BVSU5GT194ODZfdmVu ZG9yX2lkCj4KPiAgLyoKPiAtICogVGhpcyBpcyBob3cgbXVjaCBtZW1vcnkgaW4gYWRkaXRpb24g dG8gdGhlIG1lbW9yeSBjb3ZlcmVkIHVwIHRvCj4gLSAqIGFuZCBpbmNsdWRpbmcgX2VuZCB3ZSBu ZWVkIG1hcHBlZCBpbml0aWFsbHkuCj4gLSAqIFdlIG5lZWQ6Cj4gLSAqICAgICAoS0VSTkVMX0lN QUdFX1NJWkUvNDA5NikgLyAxMDI0IHBhZ2VzICh3b3JzdCBjYXNlLCBub24gUEFFKQo+IC0gKiAg ICAgKEtFUk5FTF9JTUFHRV9TSVpFLzQwOTYpIC8gNTEyICsgNCBwYWdlcyAod29yc3QgY2FzZSBm b3IgUEFFKQo+IC0gKgo+IC0gKiBNb2R1bG8gcm91bmRpbmcsIGVhY2ggbWVnYWJ5dGUgYXNzaWdu ZWQgaGVyZSByZXF1aXJlcyBhIGtpbG9ieXRlIG9mCj4gLSAqIG1lbW9yeSwgd2hpY2ggaXMgY3Vy cmVudGx5IHVucmVjbGFpbWVkLgo+IC0gKgo+IC0gKiBUaGlzIHNob3VsZCBiZSBhIG11bHRpcGxl IG9mIGEgcGFnZS4KPiAtICoKPiAtICogS0VSTkVMX0lNQUdFX1NJWkUgc2hvdWxkIGJlIGdyZWF0 ZXIgdGhhbiBwYShfZW5kKQo+IC0gKiBhbmQgc21hbGwgdGhhbiBtYXhfbG93X3Bmbiwgb3RoZXJ3 aXNlIHdpbGwgd2FzdGUgc29tZSBwYWdlIHRhYmxlIGVudHJpZXMKPiAtICovCj4gLQo+IC0jaWYg UFRSU19QRVJfUE1EID4gMQo+IC0jZGVmaW5lIFBBR0VfVEFCTEVfU0laRShwYWdlcykgKCgocGFn ZXMpIC8gUFRSU19QRVJfUE1EKSArIFBUUlNfUEVSX1BHRCkKPiAtI2Vsc2UKPiAtI2RlZmluZSBQ QUdFX1RBQkxFX1NJWkUocGFnZXMpICgocGFnZXMpIC8gUFRSU19QRVJfUEdEKQo+IC0jZW5kaWYK PiAtCj4gLS8qCj4gLSAqIE51bWJlciBvZiBwb3NzaWJsZSBwYWdlcyBpbiB0aGUgbG93bWVtIHJl Z2lvbi4KPiAtICoKPiAtICogV2Ugc2hpZnQgMiBieSAzMSBpbnN0ZWFkIG9mIDEgYnkgMzIgdG8g dGhlIGxlZnQgaW4gb3JkZXIgdG8gYXZvaWQgYQo+IC0gKiBnYXMgd2FybmluZyBhYm91dCBvdmVy Zmxvd2luZyBzaGlmdCBjb3VudCB3aGVuIGdhcyBoYXMgYmVlbiBjb21waWxlZAo+IC0gKiB3aXRo IG9ubHkgYSBob3N0IHRhcmdldCBzdXBwb3J0IHVzaW5nIGEgMzItYml0IHR5cGUgZm9yIGludGVy bmFsCj4gLSAqIHJlcHJlc2VudGF0aW9uLgo+IC0gKi8KPiAtTE9XTUVNX1BBR0VTID0gKCgoMjw8 MzEpIC0gX19QQUdFX09GRlNFVCkgPj4gUEFHRV9TSElGVCkKPiAtCj4gLS8qIEVub3VnaCBzcGFj ZSB0byBmaXQgcGFnZXRhYmxlcyBmb3IgdGhlIGxvdyBtZW1vcnkgbGluZWFyIG1hcCAqLwo+IC1N QVBQSU5HX0JFWU9ORF9FTkQgPSBQQUdFX1RBQkxFX1NJWkUoTE9XTUVNX1BBR0VTKSA8PCBQQUdF X1NISUZUCj4gLQo+IC0vKgo+IC0gKiBXb3JzdC1jYXNlIHNpemUgb2YgdGhlIGtlcm5lbCBtYXBw aW5nIHdlIG5lZWQgdG8gbWFrZToKPiAtICogYSByZWxvY2F0YWJsZSBrZXJuZWwgY2FuIGxpdmUg YW55d2hlcmUgaW4gbG93bWVtLCBzbyB3ZSBuZWVkIHRvIGJlIGFibGUKPiAtICogdG8gbWFwIGFs bCBvZiBsb3dtZW0uCj4gLSAqLwo+IC1LRVJORUxfUEFHRVMgPSBMT1dNRU1fUEFHRVMKPiAtCj4g LUlOSVRfTUFQX1NJWkUgPSBQQUdFX1RBQkxFX1NJWkUoS0VSTkVMX1BBR0VTKSAqIFBBR0VfU0la RQo+IC1SRVNFUlZFX0JSSyhwYWdldGFibGVzLCBJTklUX01BUF9TSVpFKQo+IC0KPiAtLyoKPiAg ICogMzItYml0IGtlcm5lbCBlbnRyeXBvaW50OyBvbmx5IHVzZWQgYnkgdGhlIGJvb3QgQ1BVLiAg T24gZW50cnksCj4gICAqICVlc2kgcG9pbnRzIHRvIHRoZSByZWFsLW1vZGUgY29kZSBhcyBhIDMy LWJpdCBwb2ludGVyLgo+ICAgKiBDUyBhbmQgRFMgbXVzdCBiZSA0IEdCIGZsYXQgc2VnbWVudHMs IGJ1dCB3ZSBkb24ndCBkZXBlbmQgb24KPiBAQCAtMTU3LDkyICsxMTIsNyBAQCBFTlRSWShzdGFy dHVwXzMyKQo+ICAJY2FsbCBsb2FkX3Vjb2RlX2JzcAo+ICAjZW5kaWYKPgo+IC0vKgo+IC0gKiBJ bml0aWFsaXplIHBhZ2UgdGFibGVzLiAgVGhpcyBjcmVhdGVzIGEgUERFIGFuZCBhIHNldCBvZiBw YWdlCj4gLSAqIHRhYmxlcywgd2hpY2ggYXJlIGxvY2F0ZWQgaW1tZWRpYXRlbHkgYmV5b25kIF9f YnJrX2Jhc2UuICBUaGUgdmFyaWFibGUKPiAtICogX2Jya19lbmQgaXMgc2V0IHVwIHRvIHBvaW50 IHRvIHRoZSBmaXJzdCAic2FmZSIgbG9jYXRpb24uCj4gLSAqIE1hcHBpbmdzIGFyZSBjcmVhdGVk IGJvdGggYXQgdmlydHVhbCBhZGRyZXNzIDAgKGlkZW50aXR5IG1hcHBpbmcpCj4gLSAqIGFuZCBQ QUdFX09GRlNFVCBmb3IgdXAgdG8gX2VuZC4KPiAtICovCj4gLSNpZmRlZiBDT05GSUdfWDg2X1BB RQo+IC0KPiAtCS8qCj4gLQkgKiBJbiBQQUUgbW9kZSBpbml0aWFsX3BhZ2VfdGFibGUgaXMgc3Rh dGljYWxseSBkZWZpbmVkIHRvIGNvbnRhaW4KPiAtCSAqIGVub3VnaCBlbnRyaWVzIHRvIGNvdmVy IHRoZSBWTVNQTElUIG9wdGlvbiAodGhhdCBpcyB0aGUgdG9wIDEsIDIgb3IgMwo+IC0JICogZW50 cmllcykuIFRoZSBpZGVudGl0eSBtYXBwaW5nIGlzIGhhbmRsZWQgYnkgcG9pbnRpbmcgdHdvIFBH RCBlbnRyaWVzCj4gLQkgKiB0byB0aGUgZmlyc3Qga2VybmVsIFBNRC4KPiAtCSAqCj4gLQkgKiBO b3RlIHRoZSB1cHBlciBoYWxmIG9mIGVhY2ggUE1EIG9yIFBURSBhcmUgYWx3YXlzIHplcm8gYXQg dGhpcyBzdGFnZS4KPiAtCSAqLwo+IC0KPiAtI2RlZmluZSBLUE1EUyAoKCgtX19QQUdFX09GRlNF VCkgPj4gMzApICYgMykgLyogTnVtYmVyIG9mIGtlcm5lbCBQTURzICovCj4gLQo+IC0JeG9ybCAl ZWJ4LCVlYngJCQkJLyogJWVieCBpcyBrZXB0IGF0IHplcm8gKi8KPiAtCj4gLQltb3ZsICRwYShf X2Jya19iYXNlKSwgJWVkaQo+IC0JbW92bCAkcGEoaW5pdGlhbF9wZ19wbWQpLCAlZWR4Cj4gLQlt b3ZsICRQVEVfSURFTlRfQVRUUiwgJWVheAo+IC0xMDoKPiAtCWxlYWwgUERFX0lERU5UX0FUVFIo JWVkaSksJWVjeAkJLyogQ3JlYXRlIFBNRCBlbnRyeSAqLwo+IC0JbW92bCAlZWN4LCglZWR4KQkJ CS8qIFN0b3JlIFBNRCBlbnRyeSAqLwo+IC0JCQkJCQkvKiBVcHBlciBoYWxmIGFscmVhZHkgemVy byAqLwo+IC0JYWRkbCAkOCwlZWR4Cj4gLQltb3ZsICQ1MTIsJWVjeAo+IC0xMToKPiAtCXN0b3Ns Cj4gLQl4Y2hnbCAlZWF4LCVlYngKPiAtCXN0b3NsCj4gLQl4Y2hnbCAlZWF4LCVlYngKPiAtCWFk ZGwgJDB4MTAwMCwlZWF4Cj4gLQlsb29wIDExYgo+IC0KPiAtCS8qCj4gLQkgKiBFbmQgY29uZGl0 aW9uOiB3ZSBtdXN0IG1hcCB1cCB0byB0aGUgZW5kICsgTUFQUElOR19CRVlPTkRfRU5ELgo+IC0J ICovCj4gLQltb3ZsICRwYShfZW5kKSArIE1BUFBJTkdfQkVZT05EX0VORCArIFBURV9JREVOVF9B VFRSLCAlZWJwCj4gLQljbXBsICVlYnAsJWVheAo+IC0JamIgMTBiCj4gLTE6Cj4gLQlhZGRsICRf X1BBR0VfT0ZGU0VULCAlZWRpCj4gLQltb3ZsICVlZGksIHBhKF9icmtfZW5kKQo+IC0Jc2hybCAk MTIsICVlYXgKPiAtCW1vdmwgJWVheCwgcGEobWF4X3Bmbl9tYXBwZWQpCj4gLQo+IC0JLyogRG8g ZWFybHkgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGZpeG1hcCBhcmVhICovCj4gLQltb3ZsICRwYShp bml0aWFsX3BnX2ZpeG1hcCkrUERFX0lERU5UX0FUVFIsJWVheAo+IC0JbW92bCAlZWF4LHBhKGlu aXRpYWxfcGdfcG1kKzB4MTAwMCpLUE1EUy04KQo+IC0jZWxzZQkvKiBOb3QgUEFFICovCj4gLQo+ IC1wYWdlX3BkZV9vZmZzZXQgPSAoX19QQUdFX09GRlNFVCA+PiAyMCk7Cj4gLQo+IC0JbW92bCAk cGEoX19icmtfYmFzZSksICVlZGkKPiAtCW1vdmwgJHBhKGluaXRpYWxfcGFnZV90YWJsZSksICVl ZHgKPiAtCW1vdmwgJFBURV9JREVOVF9BVFRSLCAlZWF4Cj4gLTEwOgo+IC0JbGVhbCBQREVfSURF TlRfQVRUUiglZWRpKSwlZWN4CQkvKiBDcmVhdGUgUERFIGVudHJ5ICovCj4gLQltb3ZsICVlY3gs KCVlZHgpCQkJLyogU3RvcmUgaWRlbnRpdHkgUERFIGVudHJ5ICovCj4gLQltb3ZsICVlY3gscGFn ZV9wZGVfb2Zmc2V0KCVlZHgpCQkvKiBTdG9yZSBrZXJuZWwgUERFIGVudHJ5ICovCj4gLQlhZGRs ICQ0LCVlZHgKPiAtCW1vdmwgJDEwMjQsICVlY3gKPiAtMTE6Cj4gLQlzdG9zbAo+IC0JYWRkbCAk MHgxMDAwLCVlYXgKPiAtCWxvb3AgMTFiCj4gLQkvKgo+IC0JICogRW5kIGNvbmRpdGlvbjogd2Ug bXVzdCBtYXAgdXAgdG8gdGhlIGVuZCArIE1BUFBJTkdfQkVZT05EX0VORC4KPiAtCSAqLwo+IC0J bW92bCAkcGEoX2VuZCkgKyBNQVBQSU5HX0JFWU9ORF9FTkQgKyBQVEVfSURFTlRfQVRUUiwgJWVi cAo+IC0JY21wbCAlZWJwLCVlYXgKPiAtCWpiIDEwYgo+IC0JYWRkbCAkX19QQUdFX09GRlNFVCwg JWVkaQo+IC0JbW92bCAlZWRpLCBwYShfYnJrX2VuZCkKPiAtCXNocmwgJDEyLCAlZWF4Cj4gLQlt b3ZsICVlYXgsIHBhKG1heF9wZm5fbWFwcGVkKQo+IC0KPiAtCS8qIERvIGVhcmx5IGluaXRpYWxp emF0aW9uIG9mIHRoZSBmaXhtYXAgYXJlYSAqLwo+IC0JbW92bCAkcGEoaW5pdGlhbF9wZ19maXht YXApK1BERV9JREVOVF9BVFRSLCVlYXgKPiAtCW1vdmwgJWVheCxwYShpbml0aWFsX3BhZ2VfdGFi bGUrMHhmZmMpCj4gLSNlbmRpZgo+ICsJY2FsbCBzZXR1cF9wZ3RhYmxlXzMyCj4KPiAgI2lmZGVm IENPTkZJR19QQVJBVklSVAo+ICAJLyogVGhpcyBpcyBjYW4gb25seSB0cmlwIGZvciBhIGJyb2tl biBib290bG9hZGVyLi4uICovCj4gQEAgLTY2MCw0NyArNTMwLDExIEBAIEVOVFJZKHNldHVwX29u Y2VfcmVmKQo+ICAgKi8KPiAgX19QQUdFX0FMSUdORURfQlNTCj4gIAkuYWxpZ24gUEFHRV9TSVpF Cj4gLSNpZmRlZiBDT05GSUdfWDg2X1BBRQo+IC1pbml0aWFsX3BnX3BtZDoKPiAtCS5maWxsIDEw MjQqS1BNRFMsNCwwCj4gLSNlbHNlCj4gLUVOVFJZKGluaXRpYWxfcGFnZV90YWJsZSkKPiAtCS5m aWxsIDEwMjQsNCwwCj4gLSNlbmRpZgo+IC1pbml0aWFsX3BnX2ZpeG1hcDoKPiAtCS5maWxsIDEw MjQsNCwwCj4gIEVOVFJZKGVtcHR5X3plcm9fcGFnZSkKPiAgCS5maWxsIDQwOTYsMSwwCj4gIEVO VFJZKHN3YXBwZXJfcGdfZGlyKQo+ICAJLmZpbGwgMTAyNCw0LDAKPgo+IC0vKgo+IC0gKiBUaGlz IHN0YXJ0cyB0aGUgZGF0YSBzZWN0aW9uLgo+IC0gKi8KPiAtI2lmZGVmIENPTkZJR19YODZfUEFF Cj4gLV9fUEFHRV9BTElHTkVEX0RBVEEKPiAtCS8qIFBhZ2UtYWxpZ25lZCBmb3IgdGhlIGJlbmVm aXQgb2YgcGFyYXZpcnQ/ICovCj4gLQkuYWxpZ24gUEFHRV9TSVpFCj4gLUVOVFJZKGluaXRpYWxf cGFnZV90YWJsZSkKPiAtCS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRSKSww CS8qIGxvdyBpZGVudGl0eSBtYXAgKi8KPiAtIyBpZiBLUE1EUyA9PSAzCj4gLQkubG9uZwlwYShp bml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRUUiksMAo+IC0JLmxvbmcJcGEoaW5pdGlhbF9wZ19w bWQrUEdEX0lERU5UX0FUVFIrMHgxMDAwKSwwCj4gLQkubG9uZwlwYShpbml0aWFsX3BnX3BtZCtQ R0RfSURFTlRfQVRUUisweDIwMDApLDAKPiAtIyBlbGlmIEtQTURTID09IDIKPiAtCS5sb25nCTAs MAo+IC0JLmxvbmcJcGEoaW5pdGlhbF9wZ19wbWQrUEdEX0lERU5UX0FUVFIpLDAKPiAtCS5sb25n CXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRSKzB4MTAwMCksMAo+IC0jIGVsaWYgS1BN RFMgPT0gMQo+IC0JLmxvbmcJMCwwCj4gLQkubG9uZwkwLDAKPiAtCS5sb25nCXBhKGluaXRpYWxf cGdfcG1kK1BHRF9JREVOVF9BVFRSKSwwCj4gLSMgZWxzZQo+IC0jICBlcnJvciAiS2VybmVsIFBN RHMgc2hvdWxkIGJlIDEsIDIgb3IgMyIKPiAtIyBlbmRpZgo+IC0JLmFsaWduIFBBR0VfU0laRQkJ LyogbmVlZHMgdG8gYmUgcGFnZS1zaXplZCB0b28gKi8KPiAtI2VuZGlmCj4gLQo+ICAuZGF0YQo+ ICAuYmFsaWduIDQKPiAgRU5UUlkoaW5pdGlhbF9zdGFjaykKPiBkaWZmIC0tZ2l0IGEvYXJjaC94 ODYva2VybmVsL3BndGFibGVfMzIuUyBiL2FyY2gveDg2L2tlcm5lbC9wZ3RhYmxlXzMyLlMKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmFkZWQ3MTgKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvYXJjaC94ODYva2VybmVsL3BndGFibGVfMzIuUwo+IEBAIC0wLDAgKzEsMTk2 IEBACj4gKyNpbmNsdWRlIDxsaW51eC90aHJlYWRzLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9pbml0 Lmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+Cj4gKyNpbmNsdWRlIDxhc20vc2VnbWVu dC5oPgo+ICsjaW5jbHVkZSA8YXNtL3BhZ2VfdHlwZXMuaD4KPiArI2luY2x1ZGUgPGFzbS9wZ3Rh YmxlX3R5cGVzLmg+Cj4gKyNpbmNsdWRlIDxhc20vY2FjaGUuaD4KPiArI2luY2x1ZGUgPGFzbS90 aHJlYWRfaW5mby5oPgo+ICsjaW5jbHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+Cj4gKyNpbmNsdWRl IDxhc20vc2V0dXAuaD4KPiArI2luY2x1ZGUgPGFzbS9wcm9jZXNzb3ItZmxhZ3MuaD4KPiArI2lu Y2x1ZGUgPGFzbS9tc3ItaW5kZXguaD4KPiArI2luY2x1ZGUgPGFzbS9jcHVmZWF0dXJlcy5oPgo+ ICsjaW5jbHVkZSA8YXNtL3BlcmNwdS5oPgo+ICsjaW5jbHVkZSA8YXNtL25vcHMuaD4KPiArI2lu Y2x1ZGUgPGFzbS9ib290cGFyYW0uaD4KPiArCj4gKy8qIFBoeXNpY2FsIGFkZHJlc3MgKi8KPiAr I2RlZmluZSBwYShYKSAoKFgpIC0gX19QQUdFX09GRlNFVCkKPiArCj4gKy8qCj4gKyAqIFRoaXMg aXMgaG93IG11Y2ggbWVtb3J5IGluIGFkZGl0aW9uIHRvIHRoZSBtZW1vcnkgY292ZXJlZCB1cCB0 bwo+ICsgKiBhbmQgaW5jbHVkaW5nIF9lbmQgd2UgbmVlZCBtYXBwZWQgaW5pdGlhbGx5Lgo+ICsg KiBXZSBuZWVkOgo+ICsgKiAgICAgKEtFUk5FTF9JTUFHRV9TSVpFLzQwOTYpIC8gMTAyNCBwYWdl cyAod29yc3QgY2FzZSwgbm9uIFBBRSkKPiArICogICAgIChLRVJORUxfSU1BR0VfU0laRS80MDk2 KSAvIDUxMiArIDQgcGFnZXMgKHdvcnN0IGNhc2UgZm9yIFBBRSkKPiArICoKPiArICogTW9kdWxv IHJvdW5kaW5nLCBlYWNoIG1lZ2FieXRlIGFzc2lnbmVkIGhlcmUgcmVxdWlyZXMgYSBraWxvYnl0 ZSBvZgo+ICsgKiBtZW1vcnksIHdoaWNoIGlzIGN1cnJlbnRseSB1bnJlY2xhaW1lZC4KPiArICoK PiArICogVGhpcyBzaG91bGQgYmUgYSBtdWx0aXBsZSBvZiBhIHBhZ2UuCj4gKyAqCj4gKyAqIEtF Uk5FTF9JTUFHRV9TSVpFIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gcGEoX2VuZCkKPiArICogYW5k IHNtYWxsIHRoYW4gbWF4X2xvd19wZm4sIG90aGVyd2lzZSB3aWxsIHdhc3RlIHNvbWUgcGFnZSB0 YWJsZSBlbnRyaWVzCj4gKyAqLwo+ICsKPiArI2lmIFBUUlNfUEVSX1BNRCA+IDEKPiArI2RlZmlu ZSBQQUdFX1RBQkxFX1NJWkUocGFnZXMpICgoKHBhZ2VzKSAvIFBUUlNfUEVSX1BNRCkgKyBQVFJT X1BFUl9QR0QpCj4gKyNlbHNlCj4gKyNkZWZpbmUgUEFHRV9UQUJMRV9TSVpFKHBhZ2VzKSAoKHBh Z2VzKSAvIFBUUlNfUEVSX1BHRCkKPiArI2VuZGlmCj4gKwo+ICsvKgo+ICsgKiBOdW1iZXIgb2Yg cG9zc2libGUgcGFnZXMgaW4gdGhlIGxvd21lbSByZWdpb24uCj4gKyAqCj4gKyAqIFdlIHNoaWZ0 IDIgYnkgMzEgaW5zdGVhZCBvZiAxIGJ5IDMyIHRvIHRoZSBsZWZ0IGluIG9yZGVyIHRvIGF2b2lk IGEKPiArICogZ2FzIHdhcm5pbmcgYWJvdXQgb3ZlcmZsb3dpbmcgc2hpZnQgY291bnQgd2hlbiBn YXMgaGFzIGJlZW4gY29tcGlsZWQKPiArICogd2l0aCBvbmx5IGEgaG9zdCB0YXJnZXQgc3VwcG9y dCB1c2luZyBhIDMyLWJpdCB0eXBlIGZvciBpbnRlcm5hbAo+ICsgKiByZXByZXNlbnRhdGlvbi4K PiArICovCj4gK0xPV01FTV9QQUdFUyA9ICgoKDI8PDMxKSAtIF9fUEFHRV9PRkZTRVQpID4+IFBB R0VfU0hJRlQpCj4gKwo+ICsvKiBFbm91Z2ggc3BhY2UgdG8gZml0IHBhZ2V0YWJsZXMgZm9yIHRo ZSBsb3cgbWVtb3J5IGxpbmVhciBtYXAgKi8KPiArTUFQUElOR19CRVlPTkRfRU5EID0gUEFHRV9U QUJMRV9TSVpFKExPV01FTV9QQUdFUykgPDwgUEFHRV9TSElGVAo+ICsKPiArLyoKPiArICogV29y c3QtY2FzZSBzaXplIG9mIHRoZSBrZXJuZWwgbWFwcGluZyB3ZSBuZWVkIHRvIG1ha2U6Cj4gKyAq IGEgcmVsb2NhdGFibGUga2VybmVsIGNhbiBsaXZlIGFueXdoZXJlIGluIGxvd21lbSwgc28gd2Ug bmVlZCB0byBiZSBhYmxlCj4gKyAqIHRvIG1hcCBhbGwgb2YgbG93bWVtLgo+ICsgKi8KPiArS0VS TkVMX1BBR0VTID0gTE9XTUVNX1BBR0VTCj4gKwo+ICtJTklUX01BUF9TSVpFID0gUEFHRV9UQUJM RV9TSVpFKEtFUk5FTF9QQUdFUykgKiBQQUdFX1NJWkUKPiArUkVTRVJWRV9CUksocGFnZXRhYmxl cywgSU5JVF9NQVBfU0laRSkKPiArCj4gKy8qCj4gKyAqIEluaXRpYWxpemUgcGFnZSB0YWJsZXMu ICBUaGlzIGNyZWF0ZXMgYSBQREUgYW5kIGEgc2V0IG9mIHBhZ2UKPiArICogdGFibGVzLCB3aGlj aCBhcmUgbG9jYXRlZCBpbW1lZGlhdGVseSBiZXlvbmQgX19icmtfYmFzZS4gIFRoZSB2YXJpYWJs ZQo+ICsgKiBfYnJrX2VuZCBpcyBzZXQgdXAgdG8gcG9pbnQgdG8gdGhlIGZpcnN0ICJzYWZlIiBs b2NhdGlvbi4KPiArICogTWFwcGluZ3MgYXJlIGNyZWF0ZWQgYm90aCBhdCB2aXJ0dWFsIGFkZHJl c3MgMCAoaWRlbnRpdHkgbWFwcGluZykKPiArICogYW5kIFBBR0VfT0ZGU0VUIGZvciB1cCB0byBf ZW5kLgo+ICsgKi8KPiArCS50ZXh0Cj4gK0VOVFJZKHNldHVwX3BndGFibGVfMzIpCj4gKyNpZmRl ZiBDT05GSUdfWDg2X1BBRQo+ICsJLyoKPiArCSAqIEluIFBBRSBtb2RlIGluaXRpYWxfcGFnZV90 YWJsZSBpcyBzdGF0aWNhbGx5IGRlZmluZWQgdG8gY29udGFpbgo+ICsJICogZW5vdWdoIGVudHJp ZXMgdG8gY292ZXIgdGhlIFZNU1BMSVQgb3B0aW9uICh0aGF0IGlzIHRoZSB0b3AgMSwgMiBvciAz Cj4gKwkgKiBlbnRyaWVzKS4gVGhlIGlkZW50aXR5IG1hcHBpbmcgaXMgaGFuZGxlZCBieSBwb2lu dGluZyB0d28gUEdEIGVudHJpZXMKPiArCSAqIHRvIHRoZSBmaXJzdCBrZXJuZWwgUE1ELgo+ICsJ ICoKPiArCSAqIE5vdGUgdGhlIHVwcGVyIGhhbGYgb2YgZWFjaCBQTUQgb3IgUFRFIGFyZSBhbHdh eXMgemVybyBhdCB0aGlzIHN0YWdlLgo+ICsJICovCj4gKwo+ICsjZGVmaW5lIEtQTURTICgoKC1f X1BBR0VfT0ZGU0VUKSA+PiAzMCkgJiAzKSAvKiBOdW1iZXIgb2Yga2VybmVsIFBNRHMgKi8KPiAr Cj4gKwl4b3JsICVlYngsJWVieAkJCQkvKiAlZWJ4IGlzIGtlcHQgYXQgemVybyAqLwo+ICsKPiAr CW1vdmwgJHBhKF9fYnJrX2Jhc2UpLCAlZWRpCj4gKwltb3ZsICRwYShpbml0aWFsX3BnX3BtZCks ICVlZHgKPiArCW1vdmwgJFBURV9JREVOVF9BVFRSLCAlZWF4Cj4gKzEwOgo+ICsJbGVhbCBQREVf SURFTlRfQVRUUiglZWRpKSwlZWN4CQkvKiBDcmVhdGUgUE1EIGVudHJ5ICovCj4gKwltb3ZsICVl Y3gsKCVlZHgpCQkJLyogU3RvcmUgUE1EIGVudHJ5ICovCj4gKwkJCQkJCS8qIFVwcGVyIGhhbGYg YWxyZWFkeSB6ZXJvICovCj4gKwlhZGRsICQ4LCVlZHgKPiArCW1vdmwgJDUxMiwlZWN4Cj4gKzEx Ogo+ICsJc3Rvc2wKPiArCXhjaGdsICVlYXgsJWVieAo+ICsJc3Rvc2wKPiArCXhjaGdsICVlYXgs JWVieAo+ICsJYWRkbCAkMHgxMDAwLCVlYXgKPiArCWxvb3AgMTFiCj4gKwo+ICsJLyoKPiArCSAq IEVuZCBjb25kaXRpb246IHdlIG11c3QgbWFwIHVwIHRvIHRoZSBlbmQgKyBNQVBQSU5HX0JFWU9O RF9FTkQuCj4gKwkgKi8KPiArCW1vdmwgJHBhKF9lbmQpICsgTUFQUElOR19CRVlPTkRfRU5EICsg UFRFX0lERU5UX0FUVFIsICVlYnAKPiArCWNtcGwgJWVicCwlZWF4Cj4gKwlqYiAxMGIKPiArMToK PiArCWFkZGwgJF9fUEFHRV9PRkZTRVQsICVlZGkKPiArCW1vdmwgJWVkaSwgcGEoX2Jya19lbmQp Cj4gKwlzaHJsICQxMiwgJWVheAo+ICsJbW92bCAlZWF4LCBwYShtYXhfcGZuX21hcHBlZCkKPiAr Cj4gKwkvKiBEbyBlYXJseSBpbml0aWFsaXphdGlvbiBvZiB0aGUgZml4bWFwIGFyZWEgKi8KPiAr CW1vdmwgJHBhKGluaXRpYWxfcGdfZml4bWFwKStQREVfSURFTlRfQVRUUiwlZWF4Cj4gKwltb3Zs ICVlYXgscGEoaW5pdGlhbF9wZ19wbWQrMHgxMDAwKktQTURTLTgpCj4gKyNlbHNlCS8qIE5vdCBQ QUUgKi8KPiArCj4gK3BhZ2VfcGRlX29mZnNldCA9IChfX1BBR0VfT0ZGU0VUID4+IDIwKTsKPiAr Cj4gKwltb3ZsICRwYShfX2Jya19iYXNlKSwgJWVkaQo+ICsJbW92bCAkcGEoaW5pdGlhbF9wYWdl X3RhYmxlKSwgJWVkeAo+ICsJbW92bCAkUFRFX0lERU5UX0FUVFIsICVlYXgKPiArMTA6Cj4gKwls ZWFsIFBERV9JREVOVF9BVFRSKCVlZGkpLCVlY3gJCS8qIENyZWF0ZSBQREUgZW50cnkgKi8KPiAr CW1vdmwgJWVjeCwoJWVkeCkJCQkvKiBTdG9yZSBpZGVudGl0eSBQREUgZW50cnkgKi8KPiArCW1v dmwgJWVjeCxwYWdlX3BkZV9vZmZzZXQoJWVkeCkJCS8qIFN0b3JlIGtlcm5lbCBQREUgZW50cnkg Ki8KPiArCWFkZGwgJDQsJWVkeAo+ICsJbW92bCAkMTAyNCwgJWVjeAo+ICsxMToKPiArCXN0b3Ns Cj4gKwlhZGRsICQweDEwMDAsJWVheAo+ICsJbG9vcCAxMWIKPiArCS8qCj4gKwkgKiBFbmQgY29u ZGl0aW9uOiB3ZSBtdXN0IG1hcCB1cCB0byB0aGUgZW5kICsgTUFQUElOR19CRVlPTkRfRU5ELgo+ ICsJICovCj4gKwltb3ZsICRwYShfZW5kKSArIE1BUFBJTkdfQkVZT05EX0VORCArIFBURV9JREVO VF9BVFRSLCAlZWJwCj4gKwljbXBsICVlYnAsJWVheAo+ICsJamIgMTBiCj4gKwlhZGRsICRfX1BB R0VfT0ZGU0VULCAlZWRpCj4gKwltb3ZsICVlZGksIHBhKF9icmtfZW5kKQo+ICsJc2hybCAkMTIs ICVlYXgKPiArCW1vdmwgJWVheCwgcGEobWF4X3Bmbl9tYXBwZWQpCj4gKwo+ICsJLyogRG8gZWFy bHkgaW5pdGlhbGl6YXRpb24gb2YgdGhlIGZpeG1hcCBhcmVhICovCj4gKwltb3ZsICRwYShpbml0 aWFsX3BnX2ZpeG1hcCkrUERFX0lERU5UX0FUVFIsJWVheAo+ICsJbW92bCAlZWF4LHBhKGluaXRp YWxfcGFnZV90YWJsZSsweGZmYykKPiArI2VuZGlmCj4gKwlyZXQKPiArRU5EUFJPQyhzZXR1cF9w Z3RhYmxlXzMyKQo+ICsKPiArLyoKPiArICogQlNTIHNlY3Rpb24KPiArICovCj4gK19fUEFHRV9B TElHTkVEX0JTUwo+ICsJLmFsaWduIFBBR0VfU0laRQo+ICsjaWZkZWYgQ09ORklHX1g4Nl9QQUUK PiAraW5pdGlhbF9wZ19wbWQ6Cj4gKwkuZmlsbCAxMDI0KktQTURTLDQsMAo+ICsjZWxzZQo+ICtF TlRSWShpbml0aWFsX3BhZ2VfdGFibGUpCj4gKwkuZmlsbCAxMDI0LDQsMAo+ICsjZW5kaWYKPiAr aW5pdGlhbF9wZ19maXhtYXA6Cj4gKwkuZmlsbCAxMDI0LDQsMAo+ICsKPiArLyoKPiArICogVGhp cyBzdGFydHMgdGhlIGRhdGEgc2VjdGlvbi4KPiArICovCj4gKyNpZmRlZiBDT05GSUdfWDg2X1BB RQo+ICtfX1BBR0VfQUxJR05FRF9EQVRBCj4gKwkvKiBQYWdlLWFsaWduZWQgZm9yIHRoZSBiZW5l Zml0IG9mIHBhcmF2aXJ0PyAqLwo+ICsJLmFsaWduIFBBR0VfU0laRQo+ICtFTlRSWShpbml0aWFs X3BhZ2VfdGFibGUpCj4gKwkubG9uZwlwYShpbml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRUUiks MAkvKiBsb3cgaWRlbnRpdHkgbWFwICovCj4gKyMgaWYgS1BNRFMgPT0gMwo+ICsJLmxvbmcJcGEo aW5pdGlhbF9wZ19wbWQrUEdEX0lERU5UX0FUVFIpLDAKPiArCS5sb25nCXBhKGluaXRpYWxfcGdf cG1kK1BHRF9JREVOVF9BVFRSKzB4MTAwMCksMAo+ICsJLmxvbmcJcGEoaW5pdGlhbF9wZ19wbWQr UEdEX0lERU5UX0FUVFIrMHgyMDAwKSwwCj4gKyMgZWxpZiBLUE1EUyA9PSAyCj4gKwkubG9uZwkw LDAKPiArCS5sb25nCXBhKGluaXRpYWxfcGdfcG1kK1BHRF9JREVOVF9BVFRSKSwwCj4gKwkubG9u ZwlwYShpbml0aWFsX3BnX3BtZCtQR0RfSURFTlRfQVRUUisweDEwMDApLDAKPiArIyBlbGlmIEtQ TURTID09IDEKPiArCS5sb25nCTAsMAo+ICsJLmxvbmcJMCwwCj4gKwkubG9uZwlwYShpbml0aWFs X3BnX3BtZCtQR0RfSURFTlRfQVRUUiksMAo+ICsjIGVsc2UKPiArIyAgZXJyb3IgIktlcm5lbCBQ TURzIHNob3VsZCBiZSAxLCAyIG9yIDMiCj4gKyMgZW5kaWYKPiArCS5hbGlnbiBQQUdFX1NJWkUJ CS8qIG5lZWRzIHRvIGJlIHBhZ2Utc2l6ZWQgdG9vICovCj4gKyNlbmRpZgo+CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2 ZWwK