From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v3 09/17] livepatch/arm[32, 64]: Modify livepatch_funcs Date: Mon, 18 Sep 2017 20:35:12 -0400 Message-ID: <20170919003511.GB24480@x230.dumpdata.com> References: <20170912003726.368-1-konrad.wilk@oracle.com> <20170912003726.368-10-konrad.wilk@oracle.com> <84466ea2-e398-0908-3cc5-13eff3760e86@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 1du6Vb-0007Nw-Jx for xen-devel@lists.xenproject.org; Tue, 19 Sep 2017 00:35:27 +0000 Content-Disposition: inline In-Reply-To: <84466ea2-e398-0908-3cc5-13eff3760e86@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall Cc: sstabellini@kernel.org, ross.lagerwall@citrix.com, andrew.cooper3@citrix.com, jbeulich@suse.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMDI6MjA6NDJQTSArMDEwMCwgSnVsaWVuIEdyYWxsIHdy b3RlOgo+IEhpIEtvbnJhZCwKPiAKPiBPbiAxMi8wOS8xNyAwMTozNywgS29ucmFkIFJ6ZXN6dXRl ayBXaWxrIHdyb3RlOgo+ID4gVGhpcyB3YXMgZm91bmQgd2hlbiBwb3J0aW5nIGxpdmVwYXRjaC1i dWlsZC10b29scyB0byBBUk02NC8zMi4KPiA+IAo+ID4gV2hlbiBsaXZlcGF0Y2gtYnVpbGQtdG9v bHMgYXJlIGJ1aWx0IChhbmQgdGVzdC1jYXNlIHRoYW5rcyB0bzoKPiA+IGxpdmVwYXRjaC90ZXN0 czogTWFrZSBzdXJlIGFsbCAubGl2ZXBhdGNoLmZ1bmNzIHNlY3Rpb25zIGFyZSByZWFkLW9ubHkp Cj4gPiB0aGUgLmxpdmVwYXRjaC5mdW5jcyBhcmUgaW4gcmVhZC1vbmx5IHNlY3Rpb24uCj4gPiAK PiA+IEhvd2V2ZXIgdGhlIGh5cGVydmlzb3IgdXNlcyB0aGUgJ29wYXF1ZScgZm9yIGl0cyBvd24g cHVycG9zZSwgdGhhdAo+ID4gaXMgc3Rhc2hpbmcgdGhlIG9yaWdpbmFsIGNvZGUuIEJ1dCB0aGUg LmxpdmVwYXRjaF9mdW5jcyBzZWN0aW9uIGlzCj4gPiBpbiB0aGUgUk8gdm1hcCBhcmVhIHNvIG9u IEFSTVszMiw2NF0gd2UgZ2V0IGEgZmF1bHQuCj4gCj4gVGhpcyBpcyBiZWNhdXNlIHRoZSBwYXls b2FkIGlzIHNlY3VyZSBhdCBsb2FkaW5nIGFuZCB0aGVyZWZvcmUgYmVmb3JlIGl0IGdldAo+IGFw cGxpZWQsIHJpZ2h0PwoKWWVzLgo+IAo+IEkgd2FzIHdvbmRlcmluZyBpZiB3ZSBjb3VsZCBlaXRo ZXIgZGVmZXIgdGhlIGNhbGwgdG8gc2VjdXJlX3BheWxvYWQgb3IgbWFrZQo+IHRoZSByZWdpb24g dGVtcG9yYXJpbHkgd3JpdGVhYmxlPwoKVGhpcyBwYXRjaCBjcmVhdGVzIGEgdGVtcG9yYXJ5IHdy aXRlYWJsZSB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UuCgpCdXQgdGhlIGlkZWEgb2YgbWFraW5nIHRo ZSByZWdpb24gdGVtcG9yYXJpbHkgd3JpdGVhYmxlIGlzIGFsc28gcG9zc2libGUuCklzIHRoZXJl IGEgc3BlY2lmaWMgcmVnaXN0ZXIgSSBjYW4gdXNlIGZvciB0aGlzPwoKPiAKPiA+IAo+ID4gT24g eDg2IHRoZSBzYW1lIHByb3RlY3Rpb24gaXMgaW4gcGxhY2UuIEluICdhcmNoX2xpdmVwYXRjaF9x dWllc2NlJwo+ID4gd2UgZGlzYWJsZSBXUCB0byBhbGxvdyBjaGFuZ2VzIHRvIHJlYWQtb25seSBw YWdlcyAoYW5kIGluIGFyY2hfbGl2ZV9yZXN1bWUKPiAKPiBJIGNhbid0IGZpbmQgYW55IGZ1bmN0 aW9uIGNhbGwgYXJjaF9saXZlX3Jlc3VtZSBpbiBYZW4gY29kZS4gRG8geW91IG1lYW4KPiBhcmNo X2xpdmVwYXRjaF9yZXZpdmU/CgpZZXMsIGxldCBtZSB1cGRhdGUgdGhhdC4KPiAKPiA+IHdlIGVu YWJsZSB0aGUgV1AgcHJvdGVjdGlvbikuCj4gPiAKPiA+IE9uIEFSTVszMiw2NF0gd2UgZG8gbm90 IGhhdmUgdGhlIGx1eHVyeSBvZiBhIGdsb2JhbCByZWdpc3RlciB0aGF0IGNhbgo+ID4gYmUgY2hh bmdlZCBhZnRlciBib290LiBJbiBsaWV1IG9mIHRoYXQgd2UgdXNlIHRoZSB2bWFwIHRvIGNyZWF0 ZQo+ID4gYSB0ZW1wb3JhcnkgdmlydHVhbCBhZGRyZXNzIGluIHdoaWNoIHdlIGNhbiB1c2UgaW5z dGVhZC4KPiA+IAo+ID4gVG8gZG8gdGhpcyB3ZSBuZWVkIHRvIHN0YXNoIGR1cmluZyBsaXZlcGF0 Y2g6IHZtYXAgb2YgdGhlIGh5cGVydmlzb3IKPiA+IGNvZGUsIHZtYXAgb2YgdGhlIC5saXZlcGF0 Y2hfZnVuY3MgKHZtYXAgY29tZXMgaW4gcGFnZSBhbGlnbmVkIHZpcnR1YWwKPiA+IGFkZHJlc3Nl cyksIG9mZnNldCBpbiB0aGUgdm1hcCAoaW4gY2FzZSBpdCBpcyBub3QgbmljZWx5IGFsaWduZWQp LCBhbmQKPiA+IHRoZSBvcmlnaW5hbCBmaXJzdCBsaXZlcGF0Y2hfZnVuY3MgdG8gZmlndXJlIG91 dCB0aGUgaW5kZXguCj4gPiAKPiA+IEVxdWlwcGVkIHdpdGggdGhhdCB3ZSBjYW4gcGF0Y2ggbGl2 ZXBhdGNoIGZ1bmN0aW9ucyB3aGljaCBoYXZlCj4gPiAgIC5saXZlcGF0Y2hfZnVuY3MgaW4gcm9k YXRhIHNlY3Rpb24uCj4gPiAKPiA+IEFuIGFsdGVybmF0aXZlIGlzIHRvIGFkZCB0aGUgJ1cnIGZs YWcgZHVyaW5nIGxvYWRpbmcgb2YgdGhlCj4gPiAubGl2ZXBhdGNoX2Z1bmNzIHdoaWNoIHdvdWxk IHJlc3VsdCB0aGUgc2VjdGlvbiBiZWluZyBpbiB3cml0ZWFibGUKPiA+IHJlZ2lvbiBmcm9tIHRo ZSBnZWNrby4gPgo+ID4gTm90ZSB0aGF0IHRoaXMgdm1hcCBzb2x1dGlvbiBjb3VsZCBiZSBleHRl bmRlZCB0byB4ODYgYXMgd2VsbC4KCkFuZCBhbHNvIHRoaXMsIGFzIHRoZXJlIGlzIG1vcmUgdG8g aXQgKEFzIEFuZHJldyBwb2ludGVkIG91dCkuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IEtvbnJh ZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KPiA+IC0tLQo+ID4gICB4 ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMgIHwgMTEgKysrKysrLS0tCj4gPiAgIHhlbi9h cmNoL2FybS9hcm02NC9saXZlcGF0Y2guYyAgfCAxMSArKysrKystLS0KPiA+ICAgeGVuL2FyY2gv YXJtL2xpdmVwYXRjaC5jICAgICAgICB8IDUyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tCj4gPiAgIHhlbi9hcmNoL3g4Ni9saXZlcGF0Y2guYyAgICAgICAgfCAgMiAr LQo+ID4gICB4ZW4vY29tbW9uL2xpdmVwYXRjaC5jICAgICAgICAgIHwgIDUgKystLQo+ID4gICB4 ZW4vaW5jbHVkZS9hc20tYXJtL2xpdmVwYXRjaC5oIHwgMTMgKysrKysrKystLS0KPiA+ICAgeGVu L2luY2x1ZGUveGVuL2xpdmVwYXRjaC5oICAgICB8ICAyICstCj4gPiAgIDcgZmlsZXMgY2hhbmdl ZCwgNzEgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2 ZXBhdGNoLmMKPiA+IGluZGV4IDEwODg3YWNlODEuLmQ3OTNlYmNhYWQgMTAwNjQ0Cj4gPiAtLS0g YS94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKPiA+ICsrKyBiL3hlbi9hcmNoL2FybS9h cm0zMi9saXZlcGF0Y2guYwo+ID4gQEAgLTE2LDE4ICsxNiwyMyBAQCB2b2lkIGFyY2hfbGl2ZXBh dGNoX2FwcGx5KHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVuYykKPiA+ICAgICAgIHVpbnQzMl90 IGluc247Cj4gPiAgICAgICB1aW50MzJfdCAqbmV3X3B0cjsKPiA+ICAgICAgIHVuc2lnbmVkIGlu dCBpLCBsZW47Cj4gPiArICAgIHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZjsKPiA+ICAgICAgIEJV SUxEX0JVR19PTihBUkNIX1BBVENIX0lOU05fU0laRSA+IHNpemVvZihmdW5jLT5vcGFxdWUpKTsK PiA+ICAgICAgIEJVSUxEX0JVR19PTihBUkNIX1BBVENIX0lOU05fU0laRSAhPSBzaXplb2YoaW5z bikpOwo+ID4gLSAgICBBU1NFUlQodm1hcF9vZl94ZW5fdGV4dCk7Cj4gPiArICAgIEFTU0VSVChs aXZlcGF0Y2hfdm1hcC50ZXh0KTsKPiA+ICAgICAgIGxlbiA9IGxpdmVwYXRjaF9pbnNuX2xlbihm dW5jKTsKPiA+ICAgICAgIGlmICggIWxlbiApCj4gPiAgICAgICAgICAgcmV0dXJuOwo+ID4gKyAg ICAvKiBJbmRleCBpbiB0aGUgdm1hcCByZWdpb24uICovCj4gPiArICAgIGkgPSBsaXZlcGF0Y2hf dm1hcC52YSAtIGZ1bmM7Cj4gPiArICAgIGYgPSAoc3RydWN0IGxpdmVwYXRjaF9mdW5jICopKGxp dmVwYXRjaF92bWFwLmZ1bmNzICsgbGl2ZXBhdGNoX3ZtYXAub2Zmc2V0KSArIGk7Cj4gPiArCj4g PiAgICAgICAvKiBTYXZlIG9sZCBvbmVzLiAqLwo+ID4gLSAgICBtZW1jcHkoZnVuYy0+b3BhcXVl LCBmdW5jLT5vbGRfYWRkciwgbGVuKTsKPiA+ICsgICAgbWVtY3B5KGYtPm9wYXF1ZSwgZnVuYy0+ b2xkX2FkZHIsIGxlbik7Cj4gPiAgICAgICBpZiAoIGZ1bmMtPm5ld19hZGRyICkKPiA+ICAgICAg IHsKPiA+IEBAIC01Niw3ICs2MSw3IEBAIHZvaWQgYXJjaF9saXZlcGF0Y2hfYXBwbHkoc3RydWN0 IGxpdmVwYXRjaF9mdW5jICpmdW5jKQo+ID4gICAgICAgZWxzZQo+ID4gICAgICAgICAgIGluc24g PSAweGUxYTAwMDAwOyAvKiBtb3YgcjAsIHIwICovCj4gPiAtICAgIG5ld19wdHIgPSBmdW5jLT5v bGRfYWRkciAtICh2b2lkICopX3N0YXJ0ICsgdm1hcF9vZl94ZW5fdGV4dDsKPiA+ICsgICAgbmV3 X3B0ciA9IGZ1bmMtPm9sZF9hZGRyIC0gKHZvaWQgKilfc3RhcnQgKyBsaXZlcGF0Y2hfdm1hcC50 ZXh0Owo+ID4gICAgICAgbGVuID0gbGVuIC8gc2l6ZW9mKHVpbnQzMl90KTsKPiA+ICAgICAgIC8q IFBBVENIISAqLwo+ID4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2gu YyBiL3hlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2guYwo+ID4gaW5kZXggMjcyOGUyYTEyNS4u NjYyYmVkYWJjMyAxMDA2NDQKPiA+IC0tLSBhL3hlbi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2gu Ywo+ID4gKysrIGIveGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRjaC5jCj4gPiBAQCAtMjAsMTgg KzIwLDIzIEBAIHZvaWQgYXJjaF9saXZlcGF0Y2hfYXBwbHkoc3RydWN0IGxpdmVwYXRjaF9mdW5j ICpmdW5jKQo+ID4gICAgICAgdWludDMyX3QgaW5zbjsKPiA+ICAgICAgIHVpbnQzMl90ICpuZXdf cHRyOwo+ID4gICAgICAgdW5zaWduZWQgaW50IGksIGxlbjsKPiA+ICsgICAgc3RydWN0IGxpdmVw YXRjaF9mdW5jICpmOwo+ID4gICAgICAgQlVJTERfQlVHX09OKEFSQ0hfUEFUQ0hfSU5TTl9TSVpF ID4gc2l6ZW9mKGZ1bmMtPm9wYXF1ZSkpOwo+ID4gICAgICAgQlVJTERfQlVHX09OKEFSQ0hfUEFU Q0hfSU5TTl9TSVpFICE9IHNpemVvZihpbnNuKSk7Cj4gPiAtICAgIEFTU0VSVCh2bWFwX29mX3hl bl90ZXh0KTsKPiA+ICsgICAgQVNTRVJUKGxpdmVwYXRjaF92bWFwLnRleHQpOwo+ID4gICAgICAg bGVuID0gbGl2ZXBhdGNoX2luc25fbGVuKGZ1bmMpOwo+ID4gICAgICAgaWYgKCAhbGVuICkKPiA+ ICAgICAgICAgICByZXR1cm47Cj4gPiArICAgIC8qIEluZGV4IGluIHRoZSB2bWFwIHJlZ2lvbi4g Ki8KPiA+ICsgICAgaSA9IGxpdmVwYXRjaF92bWFwLnZhIC0gZnVuYzsKPiA+ICsgICAgZiA9IChz dHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKikobGl2ZXBhdGNoX3ZtYXAuZnVuY3MgKyBsaXZlcGF0Y2hf dm1hcC5vZmZzZXQpICsgaTsKPiA+ICsKPiA+ICAgICAgIC8qIFNhdmUgb2xkIG9uZXMuICovCj4g PiAtICAgIG1lbWNweShmdW5jLT5vcGFxdWUsIGZ1bmMtPm9sZF9hZGRyLCBsZW4pOwo+ID4gKyAg ICBtZW1jcHkoZi0+b3BhcXVlLCBmdW5jLT5vbGRfYWRkciwgbGVuKTsKPiA+ICAgICAgIGlmICgg ZnVuYy0+bmV3X2FkZHIgKQo+ID4gICAgICAgICAgIGluc24gPSBhYXJjaDY0X2luc25fZ2VuX2Jy YW5jaF9pbW0oKHVuc2lnbmVkIGxvbmcpZnVuYy0+b2xkX2FkZHIsCj4gPiBAQCAtNDMsNyArNDgs NyBAQCB2b2lkIGFyY2hfbGl2ZXBhdGNoX2FwcGx5KHN0cnVjdCBsaXZlcGF0Y2hfZnVuYyAqZnVu YykKPiA+ICAgICAgIC8qIFZlcmlmaWVkIGluIGxpdmVwYXRjaF92ZXJpZnlfZGlzdGFuY2UuICov Cj4gPiAgICAgICBBU1NFUlQoaW5zbiAhPSBBQVJDSDY0X0JSRUFLX0ZBVUxUKTsKPiA+IC0gICAg bmV3X3B0ciA9IGZ1bmMtPm9sZF9hZGRyIC0gKHZvaWQgKilfc3RhcnQgKyB2bWFwX29mX3hlbl90 ZXh0Owo+ID4gKyAgICBuZXdfcHRyID0gZnVuYy0+b2xkX2FkZHIgLSAodm9pZCAqKV9zdGFydCAr IGxpdmVwYXRjaF92bWFwLnRleHQ7Cj4gPiAgICAgICBsZW4gPSBsZW4gLyBzaXplb2YodWludDMy X3QpOwo+ID4gICAgICAgLyogUEFUQ0ghICovCj4gPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5jCj4gPiBpbmRleCAzZTUzNTI0 MzY1Li4yZjlhZThlNjFlIDEwMDY0NAo+ID4gLS0tIGEveGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5j Cj4gPiArKysgYi94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKPiA+IEBAIC02LDYgKzYsNyBAQAo+ ID4gICAjaW5jbHVkZSA8eGVuL2xpYi5oPgo+ID4gICAjaW5jbHVkZSA8eGVuL2xpdmVwYXRjaF9l bGYuaD4KPiA+ICAgI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2guaD4KPiA+ICsjaW5jbHVkZSA8eGVu L3Bmbi5oPgo+ID4gICAjaW5jbHVkZSA8eGVuL3ZtYXAuaD4KPiA+ICAgI2luY2x1ZGUgPGFzbS9j cHVmZWF0dXJlLmg+Cj4gPiBAQCAtMTYsMTQgKzE3LDE4IEBACj4gPiAgICN1bmRlZiB2aXJ0X3Rv X21mbgo+ID4gICAjZGVmaW5lIHZpcnRfdG9fbWZuKHZhKSBfbWZuKF9fdmlydF90b19tZm4odmEp KQo+ID4gLXZvaWQgKnZtYXBfb2ZfeGVuX3RleHQ7Cj4gPiArc3RydWN0IGxpdmVwYXRjaF92bWFw X3N0YXNoIGxpdmVwYXRjaF92bWFwOwo+ID4gLWludCBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKHZv aWQpCj4gPiAraW50IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uoc3RydWN0IGxpdmVwYXRjaF9mdW5j ICpmdW5jcywgdW5zaWduZWQgaW50IG5mdW5jcykKPiA+ICAgewo+ID4gLSAgICBtZm5fdCB0ZXh0 X21mbjsKPiA+ICsgICAgbWZuX3QgdGV4dF9tZm4sIHJvZGF0YV9tZm47Cj4gPiArICAgIHZvaWQg KnZtYXBfYWRkcjsKPiA+ICAgICAgIHVuc2lnbmVkIGludCB0ZXh0X29yZGVyOwo+ID4gKyAgICB1 bnNpZ25lZCBsb25nIHZhID0gKHVuc2lnbmVkIGxvbmcpKGZ1bmNzKTsKPiA+ICsgICAgdW5zaWdu ZWQgaW50IG9mZnMgPSB2YSAmIChQQUdFX1NJWkUgLSAxKTsKPiA+ICsgICAgdW5zaWduZWQgaW50 IHNpemUgPSBQRk5fVVAob2ZmcyArIG5mdW5jcyAqIHNpemVvZigqZnVuY3MpKTsKPiA+IC0gICAg aWYgKCB2bWFwX29mX3hlbl90ZXh0ICkKPiA+ICsgICAgaWYgKCBsaXZlcGF0Y2hfdm1hcC50ZXh0 IHx8IGxpdmVwYXRjaF92bWFwLmZ1bmNzICkKPiA+ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK PiA+ICAgICAgIHRleHRfbWZuID0gdmlydF90b19tZm4oX3N0YXJ0KTsKPiA+IEBAIC0zMywxNiAr MzgsMzMgQEAgaW50IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCkKPiA+ICAgICAgICAqIFRo ZSB0ZXh0IHNlY3Rpb24gaXMgcmVhZC1vbmx5LiBTbyByZS1tYXAgWGVuIHRvIGJlIGFibGUgdG8g cGF0Y2gKPiA+ICAgICAgICAqIHRoZSBjb2RlLgo+ID4gICAgICAgICovCj4gPiAtICAgIHZtYXBf b2ZfeGVuX3RleHQgPSBfX3ZtYXAoJnRleHRfbWZuLCAxVSA8PCB0ZXh0X29yZGVyLCAxLCAxLCBQ QUdFX0hZUEVSVklTT1IsCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVk1BUF9E RUZBVUxUKTsKPiA+ICsgICAgdm1hcF9hZGRyID0gX192bWFwKCZ0ZXh0X21mbiwgMVUgPDwgdGV4 dF9vcmRlciwgMSwgMSwgUEFHRV9IWVBFUlZJU09SLAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgVk1BUF9ERUZBVUxUKTsKPiA+IC0gICAgaWYgKCAhdm1hcF9vZl94ZW5fdGV4dCApCj4gPiAr ICAgIGlmICggIXZtYXBfYWRkciApCj4gPiAgICAgICB7Cj4gPiAgICAgICAgICAgcHJpbnRrKFhF TkxPR19FUlIgTElWRVBBVENIICJGYWlsZWQgdG8gc2V0dXAgdm1hcCBvZiBoeXBlcnZpc29yISAo b3JkZXI9JXUpXG4iLAo+ID4gICAgICAgICAgICAgICAgICB0ZXh0X29yZGVyKTsKPiA+ICAgICAg ICAgICByZXR1cm4gLUVOT01FTTsKPiA+ICAgICAgIH0KPiA+ICsgICAgbGl2ZXBhdGNoX3ZtYXAu dGV4dCA9IHZtYXBfYWRkcjsKPiA+ICsgICAgbGl2ZXBhdGNoX3ZtYXAub2Zmc2V0ID0gb2ZmczsK PiA+ICsKPiA+ICsgICAgcm9kYXRhX21mbiA9IHZpcnRfdG9fbWZuKHZhICYgUEFHRV9NQVNLKTsK PiA+ICsgICAgdm1hcF9hZGRyICA9IF9fdm1hcCgmcm9kYXRhX21mbiwgc2l6ZSwgMSwgMSwgUEFH RV9IWVBFUlZJU09SLCBWTUFQX0RFRkFVTFQpOwo+ID4gKyAgICBpZiAoICF2bWFwX2FkZHIgKQo+ ID4gKyAgICB7Cj4gPiArICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBMSVZFUEFUQ0ggIkZhaWxl ZCB0byBzZXR1cCB2bWFwIG9mIGxpdmVwYXRjaF9mdW5jcyEgKG1mbj0lIlBSSV9tZm4iLCBzaXpl PSV1KVxuIiwKPiA+ICsgICAgICAgICAgICAgICBtZm5feChyb2RhdGFfbWZuKSwgc2l6ZSk7Cj4g PiArICAgICAgICB2dW5tYXAobGl2ZXBhdGNoX3ZtYXAudGV4dCk7Cj4gPiArICAgICAgICBsaXZl cGF0Y2hfdm1hcC50ZXh0ID0gTlVMTDsKPiA+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ID4g KyAgICB9Cj4gPiArCj4gPiArICAgIGxpdmVwYXRjaF92bWFwLmZ1bmNzID0gdm1hcF9hZGRyOwo+ ID4gKyAgICBsaXZlcGF0Y2hfdm1hcC52YSA9IGZ1bmNzOwo+ID4gKwo+ID4gICAgICAgcmV0dXJu IDA7Cj4gPiAgIH0KPiA+IEBAIC01NCwxMCArNzYsMTggQEAgdm9pZCBhcmNoX2xpdmVwYXRjaF9y ZXZpdmUodm9pZCkKPiA+ICAgICAgICAqLwo+ID4gICAgICAgaW52YWxpZGF0ZV9pY2FjaGUoKTsK PiA+IC0gICAgaWYgKCB2bWFwX29mX3hlbl90ZXh0ICkKPiA+IC0gICAgICAgIHZ1bm1hcCh2bWFw X29mX3hlbl90ZXh0KTsKPiA+ICsgICAgaWYgKCBsaXZlcGF0Y2hfdm1hcC50ZXh0ICkKPiA+ICsg ICAgICAgIHZ1bm1hcChsaXZlcGF0Y2hfdm1hcC50ZXh0KTsKPiA+ICsKPiA+ICsgICAgbGl2ZXBh dGNoX3ZtYXAudGV4dCA9IE5VTEw7Cj4gPiArCj4gPiArICAgIGlmICggbGl2ZXBhdGNoX3ZtYXAu ZnVuY3MgKQo+ID4gKyAgICAgICAgdnVubWFwKGxpdmVwYXRjaF92bWFwLmZ1bmNzKTsKPiA+ICsK PiA+ICsgICAgbGl2ZXBhdGNoX3ZtYXAuZnVuY3MgPSBOVUxMOwo+ID4gLSAgICB2bWFwX29mX3hl bl90ZXh0ID0gTlVMTDsKPiA+ICsgICAgbGl2ZXBhdGNoX3ZtYXAudmEgPSBOVUxMOwo+ID4gKyAg ICBsaXZlcGF0Y2hfdm1hcC5vZmZzZXQgPSAwOwo+ID4gICB9Cj4gPiAgIGludCBhcmNoX2xpdmVw YXRjaF92ZXJpZnlfZnVuYyhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMpCj4gPiBA QCAtNzgsNyArMTA4LDcgQEAgdm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZlcnQoY29uc3Qgc3RydWN0 IGxpdmVwYXRjaF9mdW5jICpmdW5jKQo+ID4gICAgICAgdWludDMyX3QgKm5ld19wdHI7Cj4gPiAg ICAgICB1bnNpZ25lZCBpbnQgbGVuOwo+ID4gLSAgICBuZXdfcHRyID0gZnVuYy0+b2xkX2FkZHIg LSAodm9pZCAqKV9zdGFydCArIHZtYXBfb2ZfeGVuX3RleHQ7Cj4gPiArICAgIG5ld19wdHIgPSBm dW5jLT5vbGRfYWRkciAtICh2b2lkICopX3N0YXJ0ICsgbGl2ZXBhdGNoX3ZtYXAudGV4dDsKPiA+ ICAgICAgIGxlbiA9IGxpdmVwYXRjaF9pbnNuX2xlbihmdW5jKTsKPiA+ICAgICAgIG1lbWNweShu ZXdfcHRyLCBmdW5jLT5vcGFxdWUsIGxlbik7Cj4gPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5jCj4gPiBpbmRleCA0OGQyMGZk YWNkLi44NTIyZmNiZDM2IDEwMDY0NAo+ID4gLS0tIGEveGVuL2FyY2gveDg2L2xpdmVwYXRjaC5j Cj4gPiArKysgYi94ZW4vYXJjaC94ODYvbGl2ZXBhdGNoLmMKPiA+IEBAIC0xNCw3ICsxNCw3IEBA Cj4gPiAgICNpbmNsdWRlIDxhc20vbm1pLmg+Cj4gPiAgICNpbmNsdWRlIDxhc20vbGl2ZXBhdGNo Lmg+Cj4gPiAtaW50IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCkKPiA+ICtpbnQgYXJjaF9s aXZlcGF0Y2hfcXVpZXNjZShzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKmZ1bmMsIHVuc2lnbmVkIGlu dCBuZnVuY3MpCj4gPiAgIHsKPiA+ICAgICAgIC8qIERpc2FibGUgV1AgdG8gYWxsb3cgY2hhbmdl cyB0byByZWFkLW9ubHkgcGFnZXMuICovCj4gPiAgICAgICB3cml0ZV9jcjAocmVhZF9jcjAoKSAm IH5YODZfQ1IwX1dQKTsKPiA+IGRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2xpdmVwYXRjaC5jIGIv eGVuL2NvbW1vbi9saXZlcGF0Y2guYwo+ID4gaW5kZXggZGJhYjhhM2Y2Zi4uZTcwNzgwMjI3OSAx MDA2NDQKPiA+IC0tLSBhL3hlbi9jb21tb24vbGl2ZXBhdGNoLmMKPiA+ICsrKyBiL3hlbi9jb21t b24vbGl2ZXBhdGNoLmMKPiA+IEBAIC01NzEsNyArNTcxLDYgQEAgc3RhdGljIGludCBwcmVwYXJl X3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsCj4gPiAgICAgICAgICAgaWYgKCByYyAp Cj4gPiAgICAgICAgICAgICAgIHJldHVybiByYzsKPiA+ICAgICAgIH0KPiA+IC0KPiA+ICAgICAg IHNlYyA9IGxpdmVwYXRjaF9lbGZfc2VjX2J5X25hbWUoZWxmLCAiLmxpdmVwYXRjaC5ob29rcy5s b2FkIik7Cj4gPiAgICAgICBpZiAoIHNlYyApCj4gPiAgICAgICB7Cj4gPiBAQCAtMTA3MCw3ICsx MDY5LDcgQEAgc3RhdGljIGludCBhcHBseV9wYXlsb2FkKHN0cnVjdCBwYXlsb2FkICpkYXRhKQo+ ID4gICAgICAgcHJpbnRrKFhFTkxPR19JTkZPIExJVkVQQVRDSCAiJXM6IEFwcGx5aW5nICV1IGZ1 bmN0aW9uc1xuIiwKPiA+ICAgICAgICAgICAgICAgZGF0YS0+bmFtZSwgZGF0YS0+bmZ1bmNzKTsK PiA+IC0gICAgcmMgPSBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKCk7Cj4gPiArICAgIHJjID0gYXJj aF9saXZlcGF0Y2hfcXVpZXNjZShkYXRhLT5mdW5jcywgZGF0YS0+bmZ1bmNzKTsKPiA+ICAgICAg IGlmICggcmMgKQo+ID4gICAgICAgewo+ID4gICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSIExJ VkVQQVRDSCAiJXM6IHVuYWJsZSB0byBxdWllc2NlIVxuIiwgZGF0YS0+bmFtZSk7Cj4gPiBAQCAt MTExMSw3ICsxMTEwLDcgQEAgc3RhdGljIGludCByZXZlcnRfcGF5bG9hZChzdHJ1Y3QgcGF5bG9h ZCAqZGF0YSkKPiA+ICAgICAgIHByaW50ayhYRU5MT0dfSU5GTyBMSVZFUEFUQ0ggIiVzOiBSZXZl cnRpbmdcbiIsIGRhdGEtPm5hbWUpOwo+ID4gLSAgICByYyA9IGFyY2hfbGl2ZXBhdGNoX3F1aWVz Y2UoKTsKPiA+ICsgICAgcmMgPSBhcmNoX2xpdmVwYXRjaF9xdWllc2NlKGRhdGEtPmZ1bmNzLCBk YXRhLT5uZnVuY3MpOwo+ID4gICAgICAgaWYgKCByYyApCj4gPiAgICAgICB7Cj4gPiAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19FUlIgTElWRVBBVENIICIlczogdW5hYmxlIHRvIHF1aWVzY2UhXG4i LCBkYXRhLT5uYW1lKTsKPiA+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2xpdmVw YXRjaC5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9saXZlcGF0Y2guaAo+ID4gaW5kZXggNmJjYTc5 ZGViOS4uZTAzMGFlZGNlZCAxMDA2NDQKPiA+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbGl2 ZXBhdGNoLmgKPiA+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbGl2ZXBhdGNoLmgKPiA+IEBA IC0xMiwxMCArMTIsMTcgQEAKPiA+ICAgI2RlZmluZSBBUkNIX1BBVENIX0lOU05fU0laRSA0Cj4g PiAgIC8qCj4gPiAtICogVGhlIHZhIG9mIHRoZSBoeXBlcnZpc29yIC50ZXh0IHJlZ2lvbi4gV2Ug bmVlZCB0aGlzIGFzIHRoZQo+ID4gLSAqIG5vcm1hbCB2YSBhcmUgd3JpdGUgcHJvdGVjdGVkLgo+ ID4gKyAqIFRoZSB2YSBvZiB0aGUgaHlwZXJ2aXNvciAudGV4dCByZWdpb24gYW5kIHRoZSBsaXZl cGF0Y2hfZnVuY3MuCj4gPiArICogV2UgbmVlZCB0aGlzIGFzIHRoZSBub3JtYWwgdmEgYXJlIHdy aXRlIHByb3RlY3RlZC4KPiA+ICAgICovCj4gPiAtZXh0ZXJuIHZvaWQgKnZtYXBfb2ZfeGVuX3Rl eHQ7Cj4gPiArc3RydWN0IGxpdmVwYXRjaF92bWFwX3N0YXNoIHsKPiA+ICsJdm9pZCAqdGV4dDsg ICAgICAgICAgICAgICAgIC8qIHZtYXAgb2YgaHlwZXJ2aXNvciBjb2RlLiAqLwo+ID4gKwl2b2lk ICpmdW5jczsJICAgICAgICAgICAgLyogdm1hcCBvZiB0aGUgLmxpdmVwYXRjaC5mdW5jcy4gKi8K PiA+ICsJdW5zaWduZWQgaW50IG9mZnNldDsJICAgIC8qIE9mZnNldCBpbiAnZnVuY3MnLiAqLwo+ ID4gKwlzdHJ1Y3QgbGl2ZXBhdGNoX2Z1bmMgKnZhOyAgLyogVGhlIG9yaWdpbmFsIHZhLiAqLwo+ ID4gK307Cj4gPiArCj4gPiArZXh0ZXJuIHN0cnVjdCBsaXZlcGF0Y2hfdm1hcF9zdGFzaCBsaXZl cGF0Y2hfdm1hcDsKPiA+ICAgLyogVGhlc2UgcmFuZ2VzIGFyZSBvbmx5IGZvciB1bmNvbmRpdGlv bmFsIGJyYW5jaGVzLiAqLwo+ID4gICAjaWZkZWYgQ09ORklHX0FSTV8zMgo+ID4gZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaCBiL3hlbi9pbmNsdWRlL3hlbi9saXZlcGF0 Y2guaAo+ID4gaW5kZXggZTliYWI4N2YyOC4uYTk3YWZiOTJmOSAxMDA2NDQKPiA+IC0tLSBhL3hl bi9pbmNsdWRlL3hlbi9saXZlcGF0Y2guaAo+ID4gKysrIGIveGVuL2luY2x1ZGUveGVuL2xpdmVw YXRjaC5oCj4gPiBAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGxpdmVwYXRj aF92ZXJpZnlfZGlzdGFuY2UoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKQo+ID4g ICAgKiBUaGVzZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCBhcm91bmQgdGhlIGNyaXRpY2FsIHJlZ2lv biBwYXRjaGluZyBsaXZlIGNvZGUsCj4gPiAgICAqIGZvciBhbiBhcmNoaXRlY3R1cmUgdG8gdGFr ZSBtYWtlIGFwcHJvcHJhdGllIGdsb2JhbCBzdGF0ZSBhZGp1c3RtZW50cy4KPiA+ICAgICovCj4g PiAtaW50IGFyY2hfbGl2ZXBhdGNoX3F1aWVzY2Uodm9pZCk7Cj4gPiAraW50IGFyY2hfbGl2ZXBh dGNoX3F1aWVzY2Uoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jLCB1bnNpZ25lZCBpbnQgbmZ1 bmNzKTsKPiA+ICAgdm9pZCBhcmNoX2xpdmVwYXRjaF9yZXZpdmUodm9pZCk7Cj4gPiAgIHZvaWQg YXJjaF9saXZlcGF0Y2hfYXBwbHkoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5jKTsKPiA+IAo+ IAo+IC0tIAo+IEp1bGllbiBHcmFsbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==