From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v1 6/9] livepatch: Initial ARM64 support. Date: Wed, 17 Aug 2016 14:57:04 -0400 Message-ID: <20160817185704.GB4750@char.us.oracle.com> References: <1471216074-3007-1-git-send-email-konrad.wilk@oracle.com> <1471216074-3007-7-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ba61k-0000UB-JV for xen-devel@lists.xenproject.org; Wed, 17 Aug 2016 18:57:24 +0000 Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall Cc: xen-devel@lists.xenproject.org, ross.lagerwall@citrix.com, Andrew Cooper , sstabellini@kernel.org List-Id: xen-devel@lists.xenproject.org PiA+ICt2b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5X2ptcChzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMg KmZ1bmMpCj4gPiArewo+ID4gKyAgICB1aW50MzJfdCBpbnNuOwo+ID4gKyAgICB1aW50MzJfdCAq b2xkX3B0cjsKPiA+ICsgICAgdWludDMyX3QgKm5ld19wdHI7Cj4gPiArCj4gPiArICAgIEJVSUxE X0JVR19PTihQQVRDSF9JTlNOX1NJWkUgPiBzaXplb2YoZnVuYy0+b3BhcXVlKSk7Cj4gPiArICAg IEJVSUxEX0JVR19PTihQQVRDSF9JTlNOX1NJWkUgIT0gc2l6ZW9mKGluc24pKTsKPiA+ICsKPiA+ ICsgICAgQVNTRVJUKHZtYXBfb2ZfeGVuX3RleHQpOwo+ID4gKwo+ID4gKyAgICAvKiBTYXZlIG9s ZCBvbmUuICovCj4gPiArICAgIG9sZF9wdHIgPSBmdW5jLT5vbGRfYWRkcjsKPiA+ICsgICAgbWVt Y3B5KGZ1bmMtPm9wYXF1ZSwgb2xkX3B0ciwgUEFUQ0hfSU5TTl9TSVpFKTsKPiA+ICsKPiA+ICsg ICAgaWYgKCBmdW5jLT5uZXdfc2l6ZSApCj4gPiArICAgICAgICBpbnNuID0gYWFyY2g2NF9pbnNu X2dlbl9icmFuY2hfaW1tKCh1bnNpZ25lZCBsb25nKWZ1bmMtPm9sZF9hZGRyLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZylmdW5j LT5uZXdfYWRkciwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQUFSQ0g2NF9JTlNOX0JSQU5DSF9OT0xJTkspOwo+IAo+IFRoZSBmdW5jdGlvbiBhYXJjaDY0 X2luc25fZ2VuX2JyYW5jaF9pbW0gd2lsbCBmYWlsIHRvIGNyZWF0ZSB0aGUgYnJhbmNoIGlmCj4g dGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBvbGRfYWRkciBhbmQgbmV3X2FkZHIgaXMgZ3JlYXRlciB0 aGFuIDEyOE1CLgo+IAo+IEluIHRoaXMgY2FzZSwgdGhlIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIEFB UkNINjRfQlJFQUtfRkFVTFQgd2hpY2ggd2lsbCBjcmFzaAo+IFhlbiB3aGVuIHRoZSBpbnN0cnVj dGlvbiBpcyBleGVjdXRlZC4KPiAKPiBJIGNhbm5vdCBmaW5kIGFueSBzYW5pdHkgY2hlY2sgaW4g dGhlIGh5cGVydmlzb3IgY29kZS4gU28gYXJlIHdlIHRydXN0aW5nCj4gdGhlIHBheWxvYWQ/CgpV Z2guIFRoaXMgaXMgYSB0aG9ybnkgb25lLiBJIGNvbmN1ciB3ZSBuZWVkIHRvIGNoZWNrIHRoaXMg LSBhbmQgYmV0dGVyIG9mCmRvIGl0IHdoZW4gd2UgbG9hZCB0aGUgcGF5bG9hZCB0byBtYWtlIHN1 cmUgdGhlIGRpc3RhbmNlIGlzIGNvcnJlY3QuCgpBbmQgdGhhdCBzaG91bGQgYWxzbyBiZSBvbiB4 ODYsIHNvIHdpbGwgc3BpbiBvZiBhIHNlcGVyYXRlIHBhdGNoLgoKQW5kIGluIGhlcmUgYWRkIGFu IEFTU0VSVCB0aGF0IHRoZSBpbnNuICE9IEFBUkNINjRfQlJFQUtfRkFVTFQKCgouLiBzbmlwLi4K PiA+IC0vKiBPbiBBUk0zMiw2NCBpbnN0cnVjdGlvbnMgYXJlIGFsd2F5cyA0IGJ5dGVzIGxvbmcu ICovCj4gPiAtI2RlZmluZSBQQVRDSF9JTlNOX1NJWkUgNAo+IAo+IFJhdGhlciB0aGFuIG1vdmlu ZyBhZ2FpbiBQQVRDSF9JTlNOX1NJWkUgaW4gdGhpcyBwYXRjaC4gQ2FuIHlvdSBkaXJlY3RseQo+ IG1vdmUgaXQgaW4gcGF0Y2ggWzFdPwoKU3VyZS4KPiAKPiA+ICt2b2lkICp2bWFwX29mX3hlbl90 ZXh0Owo+ID4gCj4gPiAgaW50IGFyY2hfdmVyaWZ5X2luc25fbGVuZ3RoKHVuc2lnbmVkIGxvbmcg bGVuKQo+ID4gIHsKPiA+ICAgICAgcmV0dXJuIGxlbiAhPSBQQVRDSF9JTlNOX1NJWkU7Cj4gPiAg fQo+ID4gCj4gPiAtdm9pZCBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKHZvaWQpCj4gPiAraW50IGFy Y2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCkKPiAKPiBJdCB3b3VsZCBoYXZlIGJlZW4gbmljZSB0 byBtb3ZlIHRoZSBwcm90b3R5cGUgY2hhbmdlIG91dCBvZiB0aGlzIHBhdGNoIHRvCj4ga2VlcCBp dCAic3RyYWlnaHQgZm9yd2FyZCIuCgpPSy4KPiAKPiA+ICB7Cj4gPiArICAgIG1mbl90IHRleHRf bWZuOwo+ID4gKyAgICB1bnNpZ25lZCBpbnQgdGV4dF9vcmRlcjsKPiA+ICsKPiA+ICsgICAgaWYg KCB2bWFwX29mX3hlbl90ZXh0ICkKPiA+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gKwo+ ID4gKyAgICB0ZXh0X21mbiA9IF9tZm4odmlydF90b19tZm4oX3N0ZXh0KSk7Cj4gPiArICAgIHRl eHRfb3JkZXIgPSBnZXRfb3JkZXJfZnJvbV9ieXRlcyhfZW5kIC0gX3N0YXJ0KTsKPiAKPiBJdCBp cyBhIGJpdCBvZGQgdGhhdCB5b3UgdXNlIF9zdGV4dCBiZWZvcmUgYW5kIHRoZSBfc3RhcnQuIEJ1 dCBJIHdvbid0Cj4gY29tcGxhaW4gYXMgSSBkaWQgdGhlIHNhbWUgaW4gYWx0ZXJuYXRpdmVzLmMg Oi8uCgpIZWhlaC4KPiAKPiBIb3dldmVyLCBJIHRoaW5rIGl0IHNob3VsZCBiZSBlbm91Z2ggdG8g cmVtYXAgX3N0ZXh0IC0+IF9ldGV4dC4gSSBoYWQgdG8gbWFwCj4gYWxsIHRoZSBYZW4gYmluYXJ5 IGZvciB0aGUgYWx0ZXJuYXRpdmVzIGJlY2F1c2Ugd2UgbWF5IHBhdGNoIHRoZSBpbml0IHRleHQu CgpJIGFncmVlLgo+IAo+IEkgZm9yZ290IHRvIG1lbnRpb24gaXQgaW4gdGhlIGNvZGUsIHNvIEkg d2lsbCBzZW5kIGEgcGF0Y2ggdG8gdXBkYXRlIGl0LgoKT0suCj4gCj4gPiArCj4gPiArICAgIC8q Cj4gPiArICAgICAqIFRoZSB0ZXh0IHNlY3Rpb24gaXMgcmVhZC1vbmx5LiBTbyByZS1tYXAgWGVu IHRvIGJlIGFibGUgdG8gcGF0Y2gKPiA+ICsgICAgICogdGhlIGNvZGUuCj4gPiArICAgICAqLwo+ ID4gKyAgICB2bWFwX29mX3hlbl90ZXh0ID0gX192bWFwKCZ0ZXh0X21mbiwgMSA8PCB0ZXh0X29y ZGVyLCAxLCAxLCBQQUdFX0hZUEVSVklTT1IsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVk1BUF9ERUZBVUxUKTsKPiA+ICsKPiA+ICsgICAgaWYgKCAhdm1hcF9vZl94ZW5fdGV4 dCApCj4gPiArICAgIHsKPiA+ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIExJVkVQQVRDSCAi RmFpbGVkIHRvIHNldHVwIHZtYXAgb2YgaHlwZXJ2aXNvciEgKG9yZGVyPSV1KVxuIiwKPiA+ICsg ICAgICAgICAgICAgICB0ZXh0X29yZGVyKTsKPiA+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ ID4gKyAgICB9Cj4gPiArICAgIHJldHVybiAwOwo+ID4gIH0KPiA+IAo+ID4gIHZvaWQgYXJjaF9s aXZlcGF0Y2hfcmV2aXZlKHZvaWQpCj4gPiAgewo+ID4gKyAgICAvKgo+ID4gKyAgICAgKiBOdWtl IHRoZSBpbnN0cnVjdGlvbiBjYWNoZS4gSXQgaGFzIGJlZW4gY2xlYW5lZCBiZWZvcmUgaW4KPiAK PiBJIGd1ZXNzIHlvdSB3YW50IHRvIHJlcGxhY2UgIkl0IiBieSAiRGF0YSBjYWNoZSIgb3RoZXJ3 aXNlIGl0IGRvZXMgbm90IG1ha2UKPiBtdWNoIHNlbnNlLgo+IAo+ID4gKyAgICAgKiBhcmNoX2xp dmVwYXRjaF9hcHBseV9qbXAuCj4gCj4gV2hhdCBhYm91dCB0aGUgcGF5bG9hZD8gSXQgbWF5IGNv bnRhaW4gaW5zdHJ1Y3Rpb25zLCBzbyB3ZSBuZWVkIHRvIGVuc3VyZQo+IHRoYXQgYWxsIHRoZSBk YXRhIHJlYWNoZWQgdGhlIG1lbW9yeS4KPiAKPiA+ICsgICAgICovCj4gPiArICAgIGludmFsaWRh dGVfaWNhY2hlKCk7Cj4gPiArCj4gPiArICAgIGlmICggdm1hcF9vZl94ZW5fdGV4dCApCj4gPiAr ICAgICAgICB2dW5tYXAodm1hcF9vZl94ZW5fdGV4dCk7Cj4gPiArCj4gPiArICAgIHZtYXBfb2Zf eGVuX3RleHQgPSBOVUxMOwo+ID4gKwo+ID4gKyAgICAvKgo+ID4gKyAgICAgKiBOZWVkIHRvIGZs dXNoIHRoZSBicmFuY2ggcHJlZGljYXRvciBmb3IgQVJNdjcgYXMgaXQgbWF5IGJlCj4gCj4gcy9w cmVkaWNhdG9yL3ByZWRpY3Rvci8KPiAKPiA+ICsgICAgICogYXJjaGl0ZWN0dXJhbGx5IHZpc2li bGUgdG8gdGhlIHNvZnR3YXJlIChzZWUgQjIuMi40IGluIEFSTSBEREkgMDQwNkMuYikuCj4gPiAr ICAgICAqLwo+ID4gKyAgICBmbHVzaF94ZW5fdGV4dF90bGJfbG9jYWwoKTsKPiAKPiBJIGFtIGEg Yml0IGNvbmZ1c2VkLiBJbiB5b3VyIGNvbW1lbnQgeW91IG1lbnRpb24gdGhlIGJyYW5jaCBidXQg Zmx1c2ggdGhlCj4gVExCcy4gVGhlIHR3byBhcmUgbm90IHJlbGF0ZWQuCj4gCj4gSG93ZXZlciwg SSB3b3VsZCBwcmVmZXIgdGhlIGJyYW5jaCBwcmVkaWN0b3IgdG8gYmUgZmx1c2hlZCBkaXJlY3Rs eSBpbgo+IGludmFsaWRhdGVfaWNhY2hlIGJ5IGNhbGxpbmcgQlBJQUxMSVMuIFRoaXMgaXMgYmVj YXVzZSBmbHVzaGluZyB0aGUgY2FjaGUKPiBtZWFucyB0aGF0IHlvdSBsaWtlbHkgd2FudCB0byBm bHVzaCB0aGUgYnJhbmNoIHByZWRpY3RvciB0b28uCgpPSy4KPiAKPiA+ICB9Cj4gPiAKPiA+ICBp bnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2Z1bmMoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5j ICpmdW5jKQo+ID4gIHsKPiA+IC0gICAgcmV0dXJuIC1FTk9TWVM7Cj4gPiAtfQo+ID4gLQo+ID4g LXZvaWQgYXJjaF9saXZlcGF0Y2hfYXBwbHlfam1wKHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVu YykKPiA+IC17Cj4gPiAtfQo+ID4gKyAgICBpZiAoIGZ1bmMtPm9sZF9zaXplIDwgUEFUQ0hfSU5T Tl9TSVpFICkKPiA+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gCj4gPiAtdm9pZCBhcmNo X2xpdmVwYXRjaF9yZXZlcnRfam1wKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykK PiA+IC17Cj4gPiArICAgIHJldHVybiAwOwo+ID4gIH0KPiA+IAo+ID4gIHZvaWQgYXJjaF9saXZl cGF0Y2hfcG9zdF9hY3Rpb24odm9pZCkKPiA+ICB7Cj4gPiArICAgIC8qIGFyY2hfbGl2ZXBhdGNo X3Jldml2ZSBoYXMgbnVrZWQgdGhlIGluc3RydWN0aW9uIGNhY2hlLiAqLwo+ID4gIH0KPiA+IAo+ ID4gIHZvaWQgYXJjaF9saXZlcGF0Y2hfbWFzayh2b2lkKQo+ID4gIHsKPiA+ICsgICAgLyogTWFz ayBTeXN0ZW0gRXJyb3IgKFNFcnJvcikgKi8KPiA+ICsgICAgbG9jYWxfYWJvcnRfZGlzYWJsZSgp Owo+ID4gIH0KPiA+IAo+ID4gIHZvaWQgYXJjaF9saXZlcGF0Y2hfdW5tYXNrKHZvaWQpCj4gPiAg ewo+ID4gLX0KPiA+IC0KPiA+IC1pbnQgYXJjaF9saXZlcGF0Y2hfdmVyaWZ5X2VsZihjb25zdCBz dHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmKQo+ID4gLXsKPiA+IC0gICAgcmV0dXJuIC1FTk9TWVM7 Cj4gPiArICAgIGxvY2FsX2Fib3J0X2VuYWJsZSgpOwo+ID4gIH0KPiA+IAo+ID4gIGludCBhcmNo X2xpdmVwYXRjaF9wZXJmb3JtX3JlbChzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAo+ID4gQEAg LTYwLDIwICs5NywzNCBAQCBpbnQgYXJjaF9saXZlcGF0Y2hfcGVyZm9ybV9yZWwoc3RydWN0IGxp dmVwYXRjaF9lbGYgKmVsZiwKPiA+ICAgICAgcmV0dXJuIC1FTk9TWVM7Cj4gPiAgfQo+ID4gCj4g PiAtaW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsYShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAq ZWxmLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxp dmVwYXRjaF9lbGZfc2VjICpiYXNlLAo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpyZWxhKQo+ID4gLXsKPiA+IC0gICAg cmV0dXJuIC1FTk9TWVM7Cj4gPiAtfQo+ID4gLQo+ID4gIGludCBhcmNoX2xpdmVwYXRjaF9zZWN1 cmUoY29uc3Qgdm9pZCAqdmEsIHVuc2lnbmVkIGludCBwYWdlcywgZW51bSB2YV90eXBlIHR5cGUp Cj4gPiAgewo+ID4gLSAgICByZXR1cm4gLUVOT1NZUzsKPiA+ICsgICAgdW5zaWduZWQgbG9uZyBz dGFydCA9ICh1bnNpZ25lZCBsb25nKXZhOwo+ID4gKyAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7Cj4g PiArCj4gPiArICAgIEFTU0VSVCh2YSk7Cj4gPiArICAgIEFTU0VSVChwYWdlcyk7Cj4gPiArCj4g PiArICAgIGlmICggdHlwZSA9PSBMSVZFUEFUQ0hfVkFfUlggKQo+ID4gKyAgICAgICAgZmxhZ3Mg PSBQVEVfUk87IC8qIFIgc2V0LCBOWCBjbGVhciAqLwo+ID4gKyAgICBlbHNlIGlmICggdHlwZSA9 PSBMSVZFUEFUQ0hfVkFfUlcgKQo+ID4gKyAgICAgICAgZmxhZ3MgPSBQVEVfTlg7IC8qIFIgY2xl YXIsIE5YIHNldCAqLwo+ID4gKyAgICBlbHNlCj4gPiArICAgICAgICBmbGFncyA9IFBURV9OWCB8 IFBURV9STzsgLyogUiBzZXQsIE5YIHNldCAqLwo+IAo+IHZhX3R5cGUgaXMgYW4gZW51bS4gU28g SSB3b3VsZCBwcmVmZXIgdG8gc2VlIGEgc3dpdGNoLiBTbyB3ZSBjYW4gY2F0Y2ggbW9yZQo+IGVh c2lseSBhbnkgYWRkaXRpb24gb2YgYSBuZXcgbWVtYmVyLgo+IAo+ID4gKwo+ID4gKyAgICBtb2Rp ZnlfeGVuX21hcHBpbmdzKHN0YXJ0LCBzdGFydCArIHBhZ2VzICogUEFHRV9TSVpFLCBmbGFncyk7 Cj4gPiArCj4gPiArICAgIHJldHVybiAwOwo+ID4gIH0KPiA+IAo+ID4gIHZvaWQgX19pbml0IGFy Y2hfbGl2ZXBhdGNoX2luaXQodm9pZCkKPiA+ICB7Cj4gPiArICAgIHZvaWQgKnN0YXJ0LCAqZW5k Owo+ID4gKwo+ID4gKyAgICBzdGFydCA9ICh2b2lkICopTElWRVBBVENIX1ZNQVA7Cj4gPiArICAg IGVuZCA9IHN0YXJ0ICsgTUIoMik7Cj4gCj4gQ291bGQgeW91IGRlZmluZSB0aGUgaW4gY29uZmln Lmg/IFNvIGluIHRoZSBmdXR1cmUgd2UgY2FuIHJld29yayBtb3JlIGVhc2lseQo+IHRoZSBtZW1v cnkgbGF5b3V0LgoKTElWRVBBVENIX1ZNQVBfU1RBUlQgYW5kIExJVkVQQVRDSF9WTUFQX0VORCA/ Cgo+IAo+ID4gKwo+ID4gKyAgICB2bV9pbml0X3R5cGUoVk1BUF9YRU4sIHN0YXJ0LCBlbmQpOwo+ ID4gIH0KPiA+IAo+ID4gIC8qCj4gPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2xpdmVwYXRj aC5oIGIveGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5oCj4gPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ ID4gaW5kZXggMDAwMDAwMC4uOGM4ZDYyNQo+ID4gLS0tIC9kZXYvbnVsbAo+ID4gKysrIGIveGVu L2FyY2gvYXJtL2xpdmVwYXRjaC5oCj4gCj4gSSBhbSBub3Qgc3VyZSB3aHkgdGhpcyBoZWFkZXIg aXMgbGl2aW5nIGluIGFyY2gvYXJtLyBhbmQgbm90Cj4gaW5jbHVkZS9hc20tYXJtLwo+IAo+ID4g QEAgLTAsMCArMSwyOCBAQAo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDE2IE9yYWNs ZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCj4gPiArICoKPiA+ ICsgKi8KPiA+ICsKPiA+ICsjaWZuZGVmIF9fWEVOX0FSTV9MSVZFUEFUQ0hfSF9fCj4gPiArI2Rl ZmluZSBfX1hFTl9BUk1fTElWRVBBVENIX0hfXwo+ID4gKwo+ID4gKy8qIE9uIEFSTTMyLDY0IGlu c3RydWN0aW9ucyBhcmUgYWx3YXlzIDQgYnl0ZXMgbG9uZy4gKi8KPiA+ICsjZGVmaW5lIFBBVENI X0lOU05fU0laRSA0Cj4gPiArCj4gPiArLyoKPiA+ICsgKiBUaGUgdmEgb2YgdGhlIGh5cGVydmlz b3IgLnRleHQgcmVnaW9uLiBXZSBuZWVkIHRoaXMgYXMgdGhlCj4gPiArICogbm9ybWFsIHZhIGFy ZSB3cml0ZSBwcm90ZWN0ZWQuCj4gPiArICovCj4gPiArZXh0ZXJuIHZvaWQgKnZtYXBfb2ZfeGVu X3RleHQ7Cj4gPiArCj4gPiArI2VuZGlmIC8qIF9fWEVOX0FSTV9MSVZFUEFUQ0hfSF9fICovCj4g PiArCj4gPiArLyoKPiA+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gPiArICogbW9kZTogQwo+ID4g KyAqIGMtZmlsZS1zdHlsZTogIkJTRCIKPiA+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ID4gKyAq IHRhYi13aWR0aDogNAo+ID4gKyAqIGluZGVudC10YWJzLW1vZGU6IG5pbAo+ID4gKyAqIEVuZDoK PiA+ICsgKi8KPiA+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMgYi94ZW4v YXJjaC94ODYvbGl2ZXBhdGNoLmMKPiA+IGluZGV4IDA2YzY3YmMuLmUzZjNmMzcgMTAwNjQ0Cj4g PiAtLS0gYS94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMKPiA+ICsrKyBiL3hlbi9hcmNoL3g4Ni9s aXZlcGF0Y2guYwo+ID4gQEAgLTE1LDEwICsxNSwxMiBAQAo+ID4gCj4gPiAgI2RlZmluZSBQQVRD SF9JTlNOX1NJWkUgNQo+ID4gCj4gPiAtdm9pZCBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKHZvaWQp Cj4gPiAraW50IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCkKPiA+ICB7Cj4gPiAgICAgIC8q IERpc2FibGUgV1AgdG8gYWxsb3cgY2hhbmdlcyB0byByZWFkLW9ubHkgcGFnZXMuICovCj4gPiAg ICAgIHdyaXRlX2NyMChyZWFkX2NyMCgpICYgflg4Nl9DUjBfV1ApOwo+ID4gKwo+ID4gKyAgICBy ZXR1cm4gMDsKPiA+ICB9Cj4gPiAKPiA+ICB2b2lkIGFyY2hfbGl2ZXBhdGNoX3Jldml2ZSh2b2lk KQo+ID4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vS2NvbmZpZyBiL3hlbi9jb21tb24vS2NvbmZp Zwo+ID4gaW5kZXggNTFhZmEyNC4uMmZjNzZiNiAxMDA2NDQKPiA+IC0tLSBhL3hlbi9jb21tb24v S2NvbmZpZwo+ID4gKysrIGIveGVuL2NvbW1vbi9LY29uZmlnCj4gPiBAQCAtMjIyLDcgKzIyMiw3 IEBAIGVuZG1lbnUKPiA+ICBjb25maWcgTElWRVBBVENICj4gPiAgCWJvb2wgIkxpdmUgcGF0Y2hp bmcgc3VwcG9ydCAoVEVDSCBQUkVWSUVXKSIKPiA+ICAJZGVmYXVsdCBuCj4gPiAtCWRlcGVuZHMg b24gWDg2ICYmIEhBU19CVUlMRF9JRCA9ICJ5Igo+ID4gKwlkZXBlbmRzIG9uIChYODYgfHwgQVJN XzY0KSAmJiBIQVNfQlVJTERfSUQgPSAieSIKPiA+ICAJLS0taGVscC0tLQo+ID4gIAkgIEFsbG93 cyBhIHJ1bm5pbmcgWGVuIGh5cGVydmlzb3IgdG8gYmUgZHluYW1pY2FsbHkgcGF0Y2hlZCB1c2lu Zwo+ID4gIAkgIGJpbmFyeSBwYXRjaGVzIHdpdGhvdXQgcmVib290aW5nLiBUaGlzIGlzIHByaW1h cmlseSB1c2VkIHRvIGJpbmFyaWx5Cj4gPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9saXZlcGF0 Y2guYyBiL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKPiA+IGluZGV4IDljNDUyNzAuLmFmOTQ0M2Qg MTAwNjQ0Cj4gPiAtLS0gYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jCj4gPiArKysgYi94ZW4vY29t bW9uL2xpdmVwYXRjaC5jCj4gPiBAQCAtNjgyLDcgKzY4Miw3IEBAIHN0YXRpYyBpbnQgcHJlcGFy ZV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpwYXlsb2FkLAo+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaXplb2YoKnJlZ2lvbi0+ZnJhbWVbaV0uYnVncyk7Cj4gPiAgICAg IH0KPiA+IAo+ID4gLSNpZm5kZWYgQ09ORklHX0FSTQo+ID4gKyNpZm5kZWYgQ09ORklHX0FSTV8z Mgo+IAo+IEkgd291bGQgcHJlZmVyIGlmIHlvdSB1c2UgQ09ORklHX0FMVEVSTkFUSVZFIHJhdGhl ciB0aGFuIENPTkZJR19BUk1fMzIuCgpUaGF0IGlzIG5vdCBleHBvc2VkIG9uIHg4NiB0aG91Z2h0 LgoKSSBjYW4gZXhwb3NlIEhBVkVfQUxURVJOQVRJVkUgb24geDg2IGFuZCB1c2UgdGhhdCBpbnN0 ZWFkLgoKPiAKPiA+ICAgICAgc2VjID0gbGl2ZXBhdGNoX2VsZl9zZWNfYnlfbmFtZShlbGYsICIu YWx0aW5zdHJ1Y3Rpb25zIik7Cj4gPiAgICAgIGlmICggc2VjICkKPiA+ICAgICAgewo+ID4gQEAg LTcxMSw5ICs3MTEsMTUgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxv YWQgKnBheWxvYWQsCj4gPiAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gICAg ICAgICAgICAgIH0KPiA+ICAgICAgICAgIH0KPiA+ICsjaWZuZGVmIENPTkZJR19BUk0KPiA+ICAg ICAgICAgIGFwcGx5X2FsdGVybmF0aXZlc19ub2NoZWNrKHN0YXJ0LCBlbmQpOwo+ID4gKyNlbHNl Cj4gPiArICAgICAgICBhcHBseV9hbHRlcm5hdGl2ZXMoc3RhcnQsIHNlYy0+c2VjLT5zaF9zaXpl KTsKPiA+ICsjZW5kaWYKPiA+ICAgICAgfQo+ID4gKyNlbmRpZgo+ID4gCj4gPiArI2lmbmRlZiBD T05GSUdfQVJNCj4gPiAgICAgIHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxmLCAi LmV4X3RhYmxlIik7Cj4gPiAgICAgIGlmICggc2VjICkKPiA+ICAgICAgewo+IAo+IEFueSByZWFz b24gdG8gbm90IG1vdmUgLmV4X3RhYmxlIGluIGFuIHg4NiBzcGVjaWZpYyBmaWxlPyBPciBtYXli ZSB3ZSBzaG91bGQKCldvdWxkIG5lZWQgdG8gY3JlYXRlIGFuIGFyY2ggc3BlY2lmaWMgaG9vayBm b3IgdGhpcy4KCj4gZGVmaW5lIGEgbmV3IGNvbmZpZyBvcHRpb24gSEFWRV9BUkNIX0VYX1RBQkxF IHRvIGF2b2lkIGFyY2hpdGVjdHVyZSBzcGVjaWZpYwo+IGNoZWNrIGluIHRoZSBjb21tb24gY29k ZS4KClRoYXQgY291bGQgZG8gaXQgdG9vLgo+IAo+ID4gQEAgLTEwODMsMTIgKzEwODksMTcgQEAg c3RhdGljIGludCBsaXZlcGF0Y2hfbGlzdCh4ZW5fc3lzY3RsX2xpdmVwYXRjaF9saXN0X3QgKmxp c3QpCj4gPiAgc3RhdGljIGludCBhcHBseV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpkYXRhKQo+ ID4gIHsKPiA+ICAgICAgdW5zaWduZWQgaW50IGk7Cj4gPiArICAgIGludCByYzsKPiA+IAo+ID4g ICAgICBwcmludGsoWEVOTE9HX0lORk8gTElWRVBBVENIICIlczogQXBwbHlpbmcgJXUgZnVuY3Rp b25zXG4iLAo+ID4gICAgICAgICAgICAgIGRhdGEtPm5hbWUsIGRhdGEtPm5mdW5jcyk7Cj4gPiAK PiA+IC0gICAgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSgpOwo+ID4gLQo+ID4gKyAgICByYyA9IGFy Y2hfbGl2ZXBhdGNoX3F1aWVzY2UoKTsKPiA+ICsgICAgaWYgKCByYyApCj4gPiArICAgIHsKPiA+ ICsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIExJVkVQQVRDSCAiJXM6IHVuYWJsZSB0byBxdWll c2NlIVxuIiwgZGF0YS0+bmFtZSk7Cj4gPiArICAgICAgICByZXR1cm4gcmM7Cj4gPiArICAgIH0K PiA+ICAgICAgLyoKPiA+ICAgICAgICogU2luY2Ugd2UgYXJlIHJ1bm5pbmcgd2l0aCBJUlFzIGRp c2FibGVkIGFuZCB0aGUgaG9va3MgbWF5IGNhbGwgY29tbW9uCj4gPiAgICAgICAqIGNvZGUgLSB3 aGljaCBleHBlY3RzIHRoZSBzcGlubG9ja3MgdG8gcnVuIHdpdGggSVJRcyBlbmFibGVkIC0gd2Ug dGVtcG9yYXJseQo+ID4gQEAgLTExMTksMTAgKzExMzAsMTYgQEAgc3RhdGljIGludCBhcHBseV9w YXlsb2FkKHN0cnVjdCBwYXlsb2FkICpkYXRhKQo+ID4gIHN0YXRpYyBpbnQgcmV2ZXJ0X3BheWxv YWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCj4gPiAgewo+ID4gICAgICB1bnNpZ25lZCBpbnQgaTsK PiA+ICsgICAgaW50IHJjOwo+ID4gCj4gPiAgICAgIHByaW50ayhYRU5MT0dfSU5GTyBMSVZFUEFU Q0ggIiVzOiBSZXZlcnRpbmdcbiIsIGRhdGEtPm5hbWUpOwo+ID4gCj4gPiAtICAgIGFyY2hfbGl2 ZXBhdGNoX3F1aWVzY2UoKTsKPiA+ICsgICAgcmMgPSBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKCk7 Cj4gPiArICAgIGlmICggcmMgKQo+ID4gKyAgICB7Cj4gPiArICAgICAgICBwcmludGsoWEVOTE9H X0VSUiBMSVZFUEFUQ0ggIiVzOiB1bmFibGUgdG8gcXVpZXNjZSFcbiIsIGRhdGEtPm5hbWUpOwo+ ID4gKyAgICAgICAgcmV0dXJuIHJjOwo+ID4gKyAgICB9Cj4gPiAKPiA+ICAgICAgZm9yICggaSA9 IDA7IGkgPCBkYXRhLT5uZnVuY3M7IGkrKyApCj4gPiAgICAgICAgICBhcmNoX2xpdmVwYXRjaF9y ZXZlcnRfam1wKCZkYXRhLT5mdW5jc1tpXSk7Cj4gPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUv YXNtLWFybS9jb25maWcuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmgKPiA+IGluZGV4 IGE5NmY4NDUuLjhkODc2ZjYgMTAwNjQ0Cj4gPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2Nv bmZpZy5oCj4gPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2NvbmZpZy5oCj4gPiBAQCAtODAs OSArODAsMTAgQEAKPiA+ICAgKiAgIDRNIC0gICA2TSAgIEZpeG1hcDogc3BlY2lhbC1wdXJwb3Nl IDRLIG1hcHBpbmcgc2xvdHMKPiA+ICAgKiAgIDZNIC0gICA4TSAgIEVhcmx5IGJvb3QgbWFwcGlu ZyBvZiBGRFQKPiA+ICAgKiAgIDhNIC0gIDEwTSAgIEVhcmx5IHJlbG9jYXRpb24gYWRkcmVzcyAo dXNlZCB3aGVuIHJlbG9jYXRpbmcgWGVuKQo+ID4gKyAqICAgICAgICAgICAgICAgYW5kIGxhdGVy IGZvciBsaXZlcGF0Y2ggdm1hcCAoaWYgY29tcGlsZWQgaW4pCj4gPiAgICoKPiA+ICAgKiBBUk0z MiBsYXlvdXQ6Cj4gPiAtICogICAwICAtICAgOE0gICA8Q09NTU9OPgo+ID4gKyAqICAgMCAgLSAg MTBNICAgPENPTU1PTj4KPiAKPiBNYXkgSSBhc2sgdG8gaGF2ZSB0aGlzIGNoYW5nZSBhbmQgLi4u Cj4gCj4gPiAgICoKPiA+ICAgKiAgMzJNIC0gMTI4TSAgIEZyYW1ldGFibGU6IDI0IGJ5dGVzIHBl ciBwYWdlIGZvciAxNkdCIG9mIFJBTQo+ID4gICAqIDI1Nk0gLSAgIDFHICAgVk1BUDogaW9yZW1h cCBhbmQgZWFybHlfaW9yZW1hcCB1c2UgdGhpcyB2aXJ0dWFsIGFkZHJlc3MKPiA+IEBAIC05Myw3 ICs5NCw3IEBACj4gPiAgICoKPiA+ICAgKiBBUk02NCBsYXlvdXQ6Cj4gPiAgICogMHgwMDAwMDAw MDAwMDAwMDAwIC0gMHgwMDAwMDA3ZmZmZmZmZmZmICg1MTJHQiwgTDAgc2xvdCBbMF0pCj4gPiAt ICogICAwICAtICAgOE0gICA8Q09NTU9OPgo+ID4gKyAqICAgMCAgLSAgMTBNICAgPENPTU1PTj4K PiAKPiB0aGlzIGNoYW5nZSBpbiBhIHNlcGFyYXRlIHBhdGNoIHRvIGtlZXAgdGhpcyBwYXRjaCBs aXZlcGF0Y2ggb25seT8KCk9mIGNvdXJzZS4KCj4gCj4gPiAgICoKPiA+ICAgKiAgIDFHIC0gICAy RyAgIFZNQVA6IGlvcmVtYXAgYW5kIGVhcmx5X2lvcmVtYXAKPiA+ICAgKgo+ID4gQEAgLTExMyw2 ICsxMTQsOSBAQAo+ID4gICNkZWZpbmUgRklYTUFQX0FERFIobikgICAgICAgIChfQVQodmFkZHJf dCwweDAwNDAwMDAwKSArIChuKSAqIFBBR0VfU0laRSkKPiA+ICAjZGVmaW5lIEJPT1RfRkRUX1ZJ UlRfU1RBUlQgICAgX0FUKHZhZGRyX3QsMHgwMDYwMDAwMCkKPiA+ICAjZGVmaW5lIEJPT1RfUkVM T0NfVklSVF9TVEFSVCAgX0FUKHZhZGRyX3QsMHgwMDgwMDAwMCkKPiA+ICsjaWZkZWYgQ09ORklH X0xJVkVQQVRDSAo+ID4gKyNkZWZpbmUgTElWRVBBVENIX1ZNQVAgICAgICAgICBfQVQodmFkZHJf dCwweDAwODAwMDAwKQo+ID4gKyNlbmRpZgo+ID4gCj4gPiAgI2RlZmluZSBIWVBFUlZJU09SX1ZJ UlRfU1RBUlQgIFhFTl9WSVJUX1NUQVJUCj4gPiAKPiA+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVk ZS9hc20tYXJtL2N1cnJlbnQuaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vY3VycmVudC5oCj4gPiBp bmRleCA2NWMwY2RmLi5mNGZjZmQ2IDEwMDY0NAo+ID4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFy bS9jdXJyZW50LmgKPiA+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vY3VycmVudC5oCj4gPiBA QCAtMzMsOCArMzMsMTUgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgY3B1X2luZm8gKmdldF9jcHVf aW5mbyh2b2lkKQo+ID4gCj4gPiAgI2RlZmluZSBndWVzdF9jcHVfdXNlcl9yZWdzKCkgKCZnZXRf Y3B1X2luZm8oKS0+Z3Vlc3RfY3B1X3VzZXJfcmVncykKPiA+IAo+ID4gKyNpZmRlZiBDT05GSUdf TElWRVBBVENICj4gPiArI2RlZmluZSBzd2l0Y2hfc3RhY2tfYW5kX2p1bXAoc3RhY2ssIGZuKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4gKyAgICBhc20gdm9sYXRpbGUgKCJt b3Ygc3AsJTA7IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ ICsgICAgICAgICAgICAgICAgICAiYmwgY2hlY2tfZm9yX2xpdmVwYXRjaF93b3JrOyIgICAgICAg ICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICAgICAgImIgIiBTVFIoZm4pIDog OiAiciIgKHN0YWNrKSA6ICJtZW1vcnkiICkKPiA+ICsjZWxzZQo+ID4gICNkZWZpbmUgc3dpdGNo X3N0YWNrX2FuZF9qdW1wKHN0YWNrLCBmbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKPiA+ICAgICAgYXNtIHZvbGF0aWxlICgibW92IHNwLCUwOyBiICIgU1RSKGZuKSA6IDogInIi IChzdGFjaykgOiAibWVtb3J5IiApCj4gPiArI2VuZGlmCj4gCj4gSSBoYXZlIGNvbW1lbnRlZCBv biB0aGUgcHJldmlvdXMgdmVyc2lvbiBhYm91dCBzd2l0Y2hfc3RhY2tfYW5kX2p1bXAgYSB3aGls ZQo+IGFmdGVyIHlvdSBzZW5kIHRoaXMgc2VyaWVzLiBTbyBJIHdpbGwgc3BhcmUgeW91IG5ldyBj b21tZW50cyBoZXJlIDopLgoKOi0pCj4gCj4gPiAgI2RlZmluZSByZXNldF9zdGFja19hbmRfanVt cChmbikgc3dpdGNoX3N0YWNrX2FuZF9qdW1wKGdldF9jcHVfaW5mbygpLCBmbikKPiA+IAo+IAo+ IFsuLi5dCj4gCj4gPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oIGIv eGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oCj4gPiBpbmRleCAyZTY0Njg2Li42ZjMwYzBkIDEw MDY0NAo+ID4gLS0tIGEveGVuL2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oCj4gPiArKysgYi94ZW4v aW5jbHVkZS94ZW4vbGl2ZXBhdGNoLmgKPiA+IEBAIC03Miw3ICs3Miw3IEBAIGludCBhcmNoX2xp dmVwYXRjaF92ZXJpZnlfZnVuYyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpOwo+ ID4gICAqIFRoZXNlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkIGFyb3VuZCB0aGUgY3JpdGljYWwgcmVn aW9uIHBhdGNoaW5nIGxpdmUgY29kZSwKPiA+ICAgKiBmb3IgYW4gYXJjaGl0ZWN0dXJlIHRvIHRh a2UgbWFrZSBhcHByb3ByYXRpZSBnbG9iYWwgc3RhdGUgYWRqdXN0bWVudHMuCj4gPiAgICovCj4g PiAtdm9pZCBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKHZvaWQpOwo+ID4gK2ludCBhcmNoX2xpdmVw YXRjaF9xdWllc2NlKHZvaWQpOwo+ID4gIHZvaWQgYXJjaF9saXZlcGF0Y2hfcmV2aXZlKHZvaWQp Owo+ID4gCj4gPiAgdm9pZCBhcmNoX2xpdmVwYXRjaF9hcHBseV9qbXAoc3RydWN0IGxpdmVwYXRj aF9mdW5jICpmdW5jKTsKPiA+IAo+IAo+IFsxXQo+IGh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNi0wOC9tc2cwMTgzMi5odG1sCj4gCj4gLS0g Cj4gSnVsaWVuIEdyYWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK