From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v5 14/16] livepatch: Initial ARM32 support. Date: Tue, 27 Sep 2016 13:50:00 -0400 Message-ID: <20160927175000.GA3054@localhost.localdomain> References: <1474479154-20991-1-git-send-email-konrad.wilk@oracle.com> <1474479154-20991-15-git-send-email-konrad.wilk@oracle.com> <829630b3-e7ca-b62d-d3a1-7742d64fcc05@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bowWQ-0003f3-OG for xen-devel@lists.xenproject.org; Tue, 27 Sep 2016 17:50:26 +0000 Content-Disposition: inline In-Reply-To: <829630b3-e7ca-b62d-d3a1-7742d64fcc05@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: ross.lagerwall@citrix.com, sstabellini@kernel.org, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVHVlLCBTZXAgMjcsIDIwMTYgYXQgMDk6Mzk6MDZBTSAtMDcwMCwgSnVsaWVuIEdyYWxsIHdy b3RlOgo+IEhpIEtvbnJhZCwKPiAKPiBPbiAyMS8wOS8yMDE2IDEwOjMyLCBLb25yYWQgUnplc3p1 dGVrIFdpbGsgd3JvdGU6Cj4gPiBUaGUgcGF0Y2ggcGlnZ3liYWNrcyBvbjogbGl2ZXBhdGNoOiBJ bml0aWFsIEFSTTY0IHN1cHBvcnQsIHdoaWNoCj4gPiBicmluZ3MgdXAgYWxsIG9mIHRoZSBuZWNl c3NhcnkgbGl2ZXBhdGNoIGluZnJhc3RydWN0dXJlIHBpZWNlcyBpbi4KPiA+IAo+ID4gVGhpcyBw YXRjaCBhZGRzIHRocmVlIG1ham9yIHBpZWNlczoKPiA+IAo+ID4gIDEpIEVMRiByZWxvY2F0aW9u cy4gQVJNMzIgdXNlcyBTSFRfUkVMIGluc3RlYWQgb2YgU0hUX1JFTEEgd2hpY2gKPiA+ICAgICBt ZWFucyB0aGUgYWRkZGVuZHVtIGhhZCB0byBiZSBleHRyYWN0ZWQgZnJvbSB3aXRoaW4gdGhlCj4g PiAgICAgaW5zdHJ1Y3Rpb24uIFdoaWNoIHJlcXVpcmVkIHBhcnNpbmcgQkwvQkxYLCBCL0JMPGNv bmQ+LAo+ID4gICAgIE1PVlQsIGFuZCBNT1ZXIGluc3RydWN0aW9ucy4KPiA+IAo+ID4gICAgIFRo ZSBjb2RlIHdhcyB3cml0dGVuIGZyb20gc2NyYXRjaCB1c2luZyB0aGUgQVJNIEVMRiBtYW51YWwK PiA+ICAgICAoYW5kIHRoZSBBUk0gQXJjaGl0ZWN0dXJlIFJlZmVyZW5jZSBNYW51YWwpCj4gPiAK PiA+ICAyKSBJbnNlcnRpbmcgYW4gdHJhbXBvbGluZS4gV2UgdXNlIHRoZSBCIChicmFuY2ggdG8g YWRkcmVzcykKPiA+ICAgICB3aGljaCB1c2VzIGFuIG9mZnNldCB0aGF0IGlzIGJhc2VkIG9uIHRo ZSBQQyB2YWx1ZTogUEMgKyBpbW0zMi4KPiA+ICAgICBCZWNhdXNlIHdlIGluc2VydCB0aGUgYnJh bmNoIGF0IHRoZSBzdGFydCBvZiB0aGUgb2xkIGZ1bmN0aW9uCj4gPiAgICAgd2UgaGF2ZSB0byBh Y2NvdW50IGZvciB0aGUgaW5zdHJ1Y3Rpb24gYWxyZWFkeSBiZWluZyBmZXRjaGVkCj4gPiAgICAg YW5kIHN1YnRyYWN0IC04IGZyb20gdGhlIGRlbHRhIChuZXdfYWRkciAtIG9sZF9hZGRyKS4gU2Vl Cj4gPiAgICAgQVJNIERESSAwNDA2Qy5jLCBzZWUgQTIuMyAocGcgNDUpIGFuZCBBOC44LjE4IHBn IChwZyAzMzQsMzM1KQo+ID4gCj4gPiAgMykgQWxsb3dzIHRoZSB0ZXN0LWNhc2VzIHRvIGJlIGJ1 aWx0IHVuZGVyIEFSTSAzMi4KPiA+ICAgICBUaGUgImxpdmVwYXRjaDogdGVzdHM6IE1ha2UgdGhl bSBjb21waWxlIHVuZGVyIEFSTTY0Igo+ID4gICAgIHB1dCBpbiB0aGUgcmlnaHQgaW5mcmFzdHJ1 Y3R1cmUgZm9yIGl0IGFuZCB3ZSBwaWdneWJhY2sgb24gaXQuCj4gPiAKPiA+IEFja2VkLWJ5OiBK dWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgo+ID4gQWNrZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4gW2ZvciBub24tQVJNIHBhcnRzXQo+ID4gU2lnbmVkLW9m Zi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgo+ID4g LS0tCj4gPiBDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KPiA+IENjOiBT dGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Cj4gPiAKPiA+IHYyOiBG aXJzdCBzdWJtaXNzaW9uLgo+ID4gdjM6IFVzZSBMSVZFUEFUQ0hfQVJDSF9SQU5HRSBpbnN0ZWFk IG9mIE5FR0FUSVZFXzMyTUIgbWFjcm8KPiA+ICAgIC1Vc2UgUEFUQ0hfSU5TTl9TSVpFIGluc3Rl YWQgb2YgdGhlIHZhbHVlIDQuCj4gPiAgICAtRGl0Y2ggdGhlIG9sZF9wdHIgbG9jYWwgdmFyaWFi bGUuCj4gPiAgICAtVXNlIDggZm9yIGV2YWx1YXRpbmcgdGhlIGJyYW5jaCBpbnN0ZWFkIG9mIDQu IEJhc2VkIG9uIEFSTSBkb2NzLgo+ID4gICAgLU5PUCBwYXRjaCB1cCB0byBzaXplb2Yob3BhcXVl KSAlIFBBVENIX0lOU05fU0laRSAoc28gNyBpbnN0cnVjdGlvbnMpLgo+ID4gICAgLURvbid0IG1h c2sgMHgwMEZGRkZGX0VfIGFmdGVyIHNoaWZ0aW5nLCBpbnN0ZWFkIG1hc2sgYnkgMHgwMEZGRkZG X0ZfLgo+ID4gICAgIFRoZSByZWFzb24gaXMgdGhhdCBvZmZzZXQgaXMgY29uc3RydWN0ZWQgYnkg c2hpZnRpbmcgYnkgdHdvIHRoZSBpbnNuCj4gPiAgICAgKGV4Y2VwdCB0aGUgZmlyc3QgdHdvIGJ5 dGVzKSBieSBsZWZ0IHdoaWNoIG1lYW50IHdlIHdvdWxkIGhhdmUgY2xlYXJlZAo+ID4gICAgIG9m ZnNldFsyXSEgLSBhbmQganVtcGVkIHRvIGEgbG9jYXRpb24gdGhhdCB3YXMgLTQgYnl0ZXMgb2Zm Lgo+ID4gICAgLVVwZGF0ZSBjb21taXQgZGVzY3JpcHRpb24gdG8gaGF2ZSAtOCBpbnN0ZWFkIG9m IC00IGRlbHRhIGFuZCBhbHNvCj4gPiAgICAgaW5jbHVkZSByZWZlcmVuY2UgdG8gc3BlYy4KPiA+ IHY0OiBBZGRlZCBKYW4ncyBBY2suCj4gPiAgICBzL1BBVENIX0lOU05fU0laRS9BUkNIX1BBVENI X0lOU05fU0laRS8KPiA+ICAgIHMvYXJjaF9saXZlcGF0Y2hfaW5zbl9sZW4vbGl2ZXBhdGNoX2lu c25fbGVuLwo+ID4gICAgcy9MSVZFUEFUQ0hfQVJDSF9SQU5HRS9BUkNIX0xJVkVQQVRDSF9SQU5H RS8KPiA+IHY1OiBBZGRlZCBKdWxpZW4ncyBBY2suCj4gCj4gSUhNTyBteSBhY2sgc2hvdWxkIG5v dCBoYXZlIGJlZW4gcmV0YWluZWQgZ2l2ZW4gdGhhdCAuLi4KCk9vb3BzIQo+IAo+ID4gICAgLSBS ZWJhc2VkIG9uICJsaXZlcGF0Y2g6IERyb3AgX2ptcCBmcm9tIGFyY2hfbGl2ZXBhdGNoX1thcHBs eSxyZXZlcnRdX2ptcCIKPiA+ICAgIC0gQWRkZWQgZXhwbGFuYXRpb24gZm9yIHRoZSB1c2FnZSBv ZiBkYXRhIGNhY2hlIGFuZCB3aHkgd2UgbmVlZCB0byBzeW5jIGl0Lgo+IAo+IC4uLiB5b3UgYWxz byByZXBsYWNlIHRoZSBjbGVhbl9hbmRfaW52YWxpZGF0ZSB0byB0aGUgb2xkX3B0ciBieQo+IGNs ZWFuX2FuZF9pbnZhbGlkYXRlIHRvIHRoZSBuZXdfcHRyLgoKQWggeWVzISBJIGhhZCBpdCBpbiBt eSBwYXRjaCBxdWV1ZSBidXQgbmVnbGVjdGVkIHRvIGVtYWlsIGl0IG91dC4KCkhlcmUgaXMgd2hh dCBJIGhhdmUgaW4gdGhlIGdpdCBicmFuY2g6CgpGcm9tIDhiZjA3YWMxOGUyY2ZjZjMwNDg2MGFh MDBhYjE1N2UxZTdmNzdlZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtvbnJhZCBS emVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAyMiBTZXAg MjAxNiAyMDoxNTowOSAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIGxpdmVwYXRjaDogSW5pdGlhbCBB Uk0zMiBzdXBwb3J0LgoKVGhlIHBhdGNoIHBpZ2d5YmFja3Mgb246IGxpdmVwYXRjaDogSW5pdGlh bCBBUk02NCBzdXBwb3J0LCB3aGljaApicmluZ3MgdXAgYWxsIG9mIHRoZSBuZWNlc3NhcnkgbGl2 ZXBhdGNoIGluZnJhc3RydWN0dXJlIHBpZWNlcyBpbi4KClRoaXMgcGF0Y2ggYWRkcyB0aHJlZSBt YWpvciBwaWVjZXM6CgogMSkgRUxGIHJlbG9jYXRpb25zLiBBUk0zMiB1c2VzIFNIVF9SRUwgaW5z dGVhZCBvZiBTSFRfUkVMQSB3aGljaAogICAgbWVhbnMgdGhlIGFkZGRlbmR1bSBoYWQgdG8gYmUg ZXh0cmFjdGVkIGZyb20gd2l0aGluIHRoZQogICAgaW5zdHJ1Y3Rpb24uIFdoaWNoIHJlcXVpcmVk IHBhcnNpbmcgQkwvQkxYLCBCL0JMPGNvbmQ+LAogICAgTU9WVCwgYW5kIE1PVlcgaW5zdHJ1Y3Rp b25zLgoKICAgIFRoZSBjb2RlIHdhcyB3cml0dGVuIGZyb20gc2NyYXRjaCB1c2luZyB0aGUgQVJN IEVMRiBtYW51YWwKICAgIChhbmQgdGhlIEFSTSBBcmNoaXRlY3R1cmUgUmVmZXJlbmNlIE1hbnVh bCkKCiAyKSBJbnNlcnRpbmcgYW4gdHJhbXBvbGluZS4gV2UgdXNlIHRoZSBCIChicmFuY2ggdG8g YWRkcmVzcykKICAgIHdoaWNoIHVzZXMgYW4gb2Zmc2V0IHRoYXQgaXMgYmFzZWQgb24gdGhlIFBD IHZhbHVlOiBQQyArIGltbTMyLgogICAgQmVjYXVzZSB3ZSBpbnNlcnQgdGhlIGJyYW5jaCBhdCB0 aGUgc3RhcnQgb2YgdGhlIG9sZCBmdW5jdGlvbgogICAgd2UgaGF2ZSB0byBhY2NvdW50IGZvciB0 aGUgaW5zdHJ1Y3Rpb24gYWxyZWFkeSBiZWluZyBmZXRjaGVkCiAgICBhbmQgc3VidHJhY3QgLTgg ZnJvbSB0aGUgZGVsdGEgKG5ld19hZGRyIC0gb2xkX2FkZHIpLiBTZWUKICAgIEFSTSBEREkgMDQw NkMuYywgc2VlIEEyLjMgKHBnIDQ1KSBhbmQgQTguOC4xOCBwZyAocGcgMzM0LDMzNSkKCiAzKSBB bGxvd3MgdGhlIHRlc3QtY2FzZXMgdG8gYmUgYnVpbHQgdW5kZXIgQVJNIDMyLgogICAgVGhlICJs aXZlcGF0Y2g6IHRlc3RzOiBNYWtlIHRoZW0gY29tcGlsZSB1bmRlciBBUk02NCIKICAgIHB1dCBp biB0aGUgcmlnaHQgaW5mcmFzdHJ1Y3R1cmUgZm9yIGl0IGFuZCB3ZSBwaWdneWJhY2sgb24gaXQu CgpBY2tlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPiBbZm9yIG5vbi1BUk0g cGFydHNdClNpZ25lZC1vZmYtYnk6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtA b3JhY2xlLmNvbT4KLS0tCkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpD YzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgoKdjI6IEZpcnN0 IHN1Ym1pc3Npb24uCnYzOiBVc2UgTElWRVBBVENIX0FSQ0hfUkFOR0UgaW5zdGVhZCBvZiBORUdB VElWRV8zMk1CIG1hY3JvCiAgIC1Vc2UgUEFUQ0hfSU5TTl9TSVpFIGluc3RlYWQgb2YgdGhlIHZh bHVlIDQuCiAgIC1EaXRjaCB0aGUgb2xkX3B0ciBsb2NhbCB2YXJpYWJsZS4KICAgLVVzZSA4IGZv ciBldmFsdWF0aW5nIHRoZSBicmFuY2ggaW5zdGVhZCBvZiA0LiBCYXNlZCBvbiBBUk0gZG9jcy4K ICAgLU5PUCBwYXRjaCB1cCB0byBzaXplb2Yob3BhcXVlKSAlIFBBVENIX0lOU05fU0laRSAoc28g NyBpbnN0cnVjdGlvbnMpLgogICAtRG9uJ3QgbWFzayAweDAwRkZGRkZfRV8gYWZ0ZXIgc2hpZnRp bmcsIGluc3RlYWQgbWFzayBieSAweDAwRkZGRkZfRl8uCiAgICBUaGUgcmVhc29uIGlzIHRoYXQg b2Zmc2V0IGlzIGNvbnN0cnVjdGVkIGJ5IHNoaWZ0aW5nIGJ5IHR3byB0aGUgaW5zbgogICAgKGV4 Y2VwdCB0aGUgZmlyc3QgdHdvIGJ5dGVzKSBieSBsZWZ0IHdoaWNoIG1lYW50IHdlIHdvdWxkIGhh dmUgY2xlYXJlZAogICAgb2Zmc2V0WzJdISAtIGFuZCBqdW1wZWQgdG8gYSBsb2NhdGlvbiB0aGF0 IHdhcyAtNCBieXRlcyBvZmYuCiAgIC1VcGRhdGUgY29tbWl0IGRlc2NyaXB0aW9uIHRvIGhhdmUg LTggaW5zdGVhZCBvZiAtNCBkZWx0YSBhbmQgYWxzbwogICAgaW5jbHVkZSByZWZlcmVuY2UgdG8g c3BlYy4KdjQ6IEFkZGVkIEphbidzIEFjay4KICAgcy9QQVRDSF9JTlNOX1NJWkUvQVJDSF9QQVRD SF9JTlNOX1NJWkUvCiAgIHMvYXJjaF9saXZlcGF0Y2hfaW5zbl9sZW4vbGl2ZXBhdGNoX2luc25f bGVuLwogICBzL0xJVkVQQVRDSF9BUkNIX1JBTkdFL0FSQ0hfTElWRVBBVENIX1JBTkdFLwp2NTog QWRkZWQgSnVsaWVuJ3MgQWNrLgogIC0gUmViYXNlZCBvbiAibGl2ZXBhdGNoOiBEcm9wIF9qbXAg ZnJvbSBhcmNoX2xpdmVwYXRjaF9bYXBwbHkscmV2ZXJ0XV9qbXAiCiAgLSBBZGRlZCBleHBsYW5h dGlvbiBmb3IgdGhlIHVzYWdlIG9mIGRhdGEgY2FjaGUgYW5kIHdoeSB3ZSBuZWVkIHRvIHN5bmMg aXQuCiAgLSBQdXQgY2xlYW5fYW5kX2ludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlIG9uIG5ld19w dHIgYmFjayBpbi4KICAtIFJlYmFzZWQgb24gdG9wICJsaXZlcGF0Y2gvYXJtL3g4NjogQ2hlY2sg cGF5bG9hZCBmb3IgZm9yIHVud2VsY29tZWQgc3ltYm9scyIKICAtIFNpbXBsaWZpZWQgdGhlICdh cmNoX2xpdmVwYXRjaF9yZXZlcnQnIHRvIGJlIG1lbWNweSBpbnN0ZWFkIG9mIGEgbG9vcC4KICAt IFJlbW92ZWQgSnVsaWVuJ3MgQWNrLgoKLS0tCiB4ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNo LmMgfCAyNzYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9h cmNoL2FybS9hcm02NC9saXZlcGF0Y2guYyB8ICAgNyArKwogeGVuL2FyY2gvYXJtL2xpdmVwYXRj aC5jICAgICAgIHwgICA3IC0tCiB4ZW4vY29tbW9uL0tjb25maWcgICAgICAgICAgICAgfCAgIDIg Ky0KIHhlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmggICB8ICAyNCArKystCiB4ZW4vdGVzdC9N YWtlZmlsZSAgICAgICAgICAgICAgfCAgIDIgLQogeGVuL3Rlc3QvbGl2ZXBhdGNoL01ha2VmaWxl ICAgIHwgICAzICsKIDcgZmlsZXMgY2hhbmdlZCwgMzA4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9hcm0zMi9saXZlcGF0Y2guYyBiL3hl bi9hcmNoL2FybS9hcm0zMi9saXZlcGF0Y2guYwppbmRleCA1ZmMyZTYzLi5kOWE4Y2FhIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vYXJtMzIvbGl2ZXBhdGNoLmMKKysrIGIveGVuL2FyY2gvYXJt L2FybTMyL2xpdmVwYXRjaC5jCkBAIC0zLDIxICszLDExMSBAQAogICovCiAKICNpbmNsdWRlIDx4 ZW4vZXJybm8uaD4KKyNpbmNsdWRlIDx4ZW4va2VybmVsLmg+CiAjaW5jbHVkZSA8eGVuL2xpYi5o PgogI2luY2x1ZGUgPHhlbi9saXZlcGF0Y2hfZWxmLmg+CiAjaW5jbHVkZSA8eGVuL2xpdmVwYXRj aC5oPgogCisjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KKyNpbmNsdWRlIDxhc20vbGl2ZXBhdGNoLmg+ CisKIHZvaWQgYXJjaF9saXZlcGF0Y2hfYXBwbHkoc3RydWN0IGxpdmVwYXRjaF9mdW5jICpmdW5j KQogeworICAgIHVpbnQzMl90IGluc247CisgICAgdWludDMyX3QgKm5ld19wdHI7CisgICAgdW5z aWduZWQgaW50IGksIGxlbjsKKworICAgIEJVSUxEX0JVR19PTihBUkNIX1BBVENIX0lOU05fU0la RSA+IHNpemVvZihmdW5jLT5vcGFxdWUpKTsKKyAgICBCVUlMRF9CVUdfT04oQVJDSF9QQVRDSF9J TlNOX1NJWkUgIT0gc2l6ZW9mKGluc24pKTsKKworICAgIEFTU0VSVCh2bWFwX29mX3hlbl90ZXh0 KTsKKworICAgIGxlbiA9IGxpdmVwYXRjaF9pbnNuX2xlbihmdW5jKTsKKyAgICBpZiAoICFsZW4g KQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBTYXZlIG9sZCBvbmVzLiAqLworICAgIG1lbWNw eShmdW5jLT5vcGFxdWUsIGZ1bmMtPm9sZF9hZGRyLCBsZW4pOworCisgICAgaWYgKCBmdW5jLT5u ZXdfYWRkciApCisgICAgeworICAgICAgICBzMzIgZGVsdGE7CisKKyAgICAgICAgLyoKKyAgICAg ICAgICogUEMgaXMgY3VycmVudCBhZGRyZXNzIChvbGRfYWRkcikgKyA4IGJ5dGVzLiBUaGUgc2Vt YW50aWNzIGZvciBhCisgICAgICAgICAqIHVuY29uZGl0aW9uYWwgYnJhbmNoIGlzIHRvIGp1bXAg dG8gUEMgKyBpbW0zMiAob2Zmc2V0KS4KKyAgICAgICAgICoKKyAgICAgICAgICogQVJNIERESSAw NDA2Qy5jLCBzZWUgQTIuMyAocGcgNDUpIGFuZCBBOC44LjE4IHBnIChwZyAzMzQsMzM1KQorICAg ICAgICAgKgorICAgICAgICAgKi8KKyAgICAgICAgZGVsdGEgPSAoczMyKWZ1bmMtPm5ld19hZGRy IC0gKHMzMikoZnVuYy0+b2xkX2FkZHIgKyA4KTsKKworICAgICAgICAvKiBUaGUgYXJjaF9saXZl cGF0Y2hfc3ltYm9sX29rIHNob3VsZCBoYXZlIGNhdWdodCBpdC4gKi8KKyAgICAgICAgQVNTRVJU KGRlbHRhID49IC0oczMyKUFSQ0hfTElWRVBBVENIX1JBTkdFIHx8CisgICAgICAgICAgICAgICBk ZWx0YSA8IChzMzIpQVJDSF9MSVZFUEFUQ0hfUkFOR0UpOworCisgICAgICAgIC8qIENQVSBzaGlm dHMgYnkgdHdvIChsZWZ0KSB3aGVuIGRlY29kaW5nLCBzbyB3ZSBzaGlmdCByaWdodCBieSB0d28u ICovCisgICAgICAgIGRlbHRhID0gZGVsdGEgPj4gMjsKKyAgICAgICAgLyogTGV0cyBub3QgbW9k aWZ5IHRoZSBjb25kLiAqLworICAgICAgICBkZWx0YSAmPSAweDAwRkZGRkZGOworCisgICAgICAg IGluc24gPSAweGVhMDAwMDAwIHwgZGVsdGE7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgaW5z biA9IDB4ZTFhMDAwMDA7IC8qIG1vdiByMCwgcjAgKi8KKworICAgIG5ld19wdHIgPSBmdW5jLT5v bGRfYWRkciAtICh2b2lkICopX3N0YXJ0ICsgdm1hcF9vZl94ZW5fdGV4dDsKKyAgICBsZW4gPSBs ZW4gLyBzaXplb2YodWludDMyX3QpOworCisgICAgLyogUEFUQ0ghICovCisgICAgZm9yICggaSA9 IDA7IGkgPCBsZW47IGkrKyApCisgICAgICAgICoobmV3X3B0ciArIGkpID0gaW5zbjsKKworICAg IC8qCisgICAgKiBXaGVuIHdlIHVwbG9hZCB0aGUgcGF5bG9hZCwgaXQgd2lsbCBnbyB0aHJvdWdo IHRoZSBkYXRhIGNhY2hlCisgICAgKiAodGhlIHJlZ2lvbiBpcyBjYWNoZWFibGUpLiBVbnRpbCB0 aGUgZGF0YSBjYWNoZSBpcyBjbGVhbmVkLCB0aGUgZGF0YQorICAgICogbWF5IG5vdCByZWFjaCB0 aGUgbWVtb3J5LiBBbmQgaW4gdGhlIGNhc2UgdGhlIGRhdGEgYW5kIGluc3RydWN0aW9uIGNhY2hl CisgICAgKiBhcmUgc2VwYXJhdGVkLCB3ZSBtYXkgcmVhZCBpbnZhbGlkIGluc3RydWN0aW9uIGZy b20gdGhlIG1lbW9yeSBiZWNhdXNlCisgICAgKiB0aGUgZGF0YSBjYWNoZSBoYXZlIG5vdCB5ZXQg c3luY2VkIHdpdGggdGhlIG1lbW9yeS4gSGVuY2Ugc3luYyBpdC4KKyAgICAqLworICAgIGlmICgg ZnVuYy0+bmV3X2FkZHIgKQorICAgICAgICBjbGVhbl9hbmRfaW52YWxpZGF0ZV9kY2FjaGVfdmFf cmFuZ2UoZnVuYy0+bmV3X2FkZHIsIGZ1bmMtPm5ld19zaXplKTsKKyAgICBjbGVhbl9hbmRfaW52 YWxpZGF0ZV9kY2FjaGVfdmFfcmFuZ2UobmV3X3B0ciwgc2l6ZW9mICgqbmV3X3B0cikgKiBsZW4p OwogfQogCiB2b2lkIGFyY2hfbGl2ZXBhdGNoX3JldmVydChjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNo X2Z1bmMgKmZ1bmMpCiB7CisgICAgdWludDMyX3QgKm5ld19wdHI7CisgICAgdW5zaWduZWQgaW50 IGxlbjsKKworICAgIG5ld19wdHIgPSBmdW5jLT5vbGRfYWRkciAtICh2b2lkICopX3N0YXJ0ICsg dm1hcF9vZl94ZW5fdGV4dDsKKworICAgIGxlbiA9IGxpdmVwYXRjaF9pbnNuX2xlbihmdW5jKTsK KyAgICBtZW1jcHkobmV3X3B0ciwgZnVuYy0+b3BhcXVlLCBsZW4pOworCisgICAgY2xlYW5fYW5k X2ludmFsaWRhdGVfZGNhY2hlX3ZhX3JhbmdlKG5ld19wdHIsIGxlbik7CiB9CiAKIGludCBhcmNo X2xpdmVwYXRjaF92ZXJpZnlfZWxmKGNvbnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmICplbGYpCiB7 Ci0gICAgcmV0dXJuIC1FT1BOT1RTVVBQOworICAgIGNvbnN0IEVsZl9FaGRyICpoZHIgPSBlbGYt PmhkcjsKKworICAgIGlmICggaGRyLT5lX21hY2hpbmUgIT0gRU1fQVJNIHx8CisgICAgICAgICBo ZHItPmVfaWRlbnRbRUlfQ0xBU1NdICE9IEVMRkNMQVNTMzIgKQorICAgIHsKKyAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBVbnN1cHBvcnRlZCBFTEYgTWFjaGluZSB0 eXBlIVxuIiwKKyAgICAgICAgICAgICAgICBlbGYtPm5hbWUpOworICAgICAgICByZXR1cm4gLUVP UE5PVFNVUFA7CisgICAgfQorCisgICAgaWYgKCAoaGRyLT5lX2ZsYWdzICYgRUZfQVJNX0VBQklf TUFTSykgIT0gRUZfQVJNX0VBQklfVkVSNSApCisgICAgeworICAgICAgICBkcHJpbnRrKFhFTkxP R19FUlIsIExJVkVQQVRDSCAiJXM6IFVuc3VwcG9ydGVkIEVMRiBFQUJJKCV4KSFcbiIsCisgICAg ICAgICAgICAgICAgZWxmLT5uYW1lLCBoZHItPmVfZmxhZ3MpOworICAgICAgICByZXR1cm4gLUVP UE5PVFNVUFA7CisgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKIGJvb2wgYXJjaF9saXZlcGF0 Y2hfc3ltYm9sX2RlbnkoY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGYgKmVsZiwKQEAgLTMzLDEx ICsxMjMsMTkzIEBAIGJvb2wgYXJjaF9saXZlcGF0Y2hfc3ltYm9sX2RlbnkoY29uc3Qgc3RydWN0 IGxpdmVwYXRjaF9lbGYgKmVsZiwKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBzMzIg Z2V0X2FkZGVuZCh1bnNpZ25lZCBjaGFyIHR5cGUsIHZvaWQgKmRlc3QpCit7CisgICAgczMyIGFk ZGVuZCA9IDA7CisKKyAgICBzd2l0Y2ggKCB0eXBlICkgeworICAgIGNhc2UgUl9BUk1fTk9ORToK KyAgICAgICAgLyogaWdub3JlICovCisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSX0FSTV9B QlMzMjoKKyAgICAgICAgYWRkZW5kID0gKih1MzIgKilkZXN0OworICAgICAgICBicmVhazsKKwor ICAgIGNhc2UgUl9BUk1fUkVMMzI6CisgICAgICAgIGFkZGVuZCA9ICoodTMyICopZGVzdDsKKyAg ICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFJfQVJNX01PVldfQUJTX05DOgorICAgIGNhc2UgUl9B Uk1fTU9WVF9BQlM6CisgICAgICAgIGFkZGVuZCA9ICAoKih1MzIgKilkZXN0ICYgMHgwMDAwMEZG Rik7CisgICAgICAgIGFkZGVuZCB8PSAoKih1MzIgKilkZXN0ICYgMHgwMDBGMDAwMCkgPj4gNDsK KyAgICAgICAgLyogQWRkZW5kIGlzIHRvIHNpZ24tZXh0ZW5kIChbMTk6MTZdLFsxMTowXSkuICov CisgICAgICAgIGFkZGVuZCA9IChzMTYpYWRkZW5kOworICAgICAgICBicmVhazsKKworICAgIGNh c2UgUl9BUk1fQ0FMTDoKKyAgICBjYXNlIFJfQVJNX0pVTVAyNDoKKyAgICAgICAgLyogQWRkZW5k ID0gc2lnbl9leHRlbmQgKGluc25bMjM6MF0pIDw8IDIgKi8KKyAgICAgICAgYWRkZW5kID0gKCgq KHUzMiAqKWRlc3QgJiAweEZGRkZGRikgXiAweDgwMDAwMCkgLSAweDgwMDAwMDsKKyAgICAgICAg YWRkZW5kID0gYWRkZW5kIDw8IDI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVy biBhZGRlbmQ7Cit9CisKK3N0YXRpYyBpbnQgcGVyZm9ybV9yZWwodW5zaWduZWQgY2hhciB0eXBl LCB2b2lkICpkZXN0LCB1aW50MzJfdCB2YWwsIHMzMiBhZGRlbmQpCit7CisKKyAgICBzd2l0Y2gg KCB0eXBlICkgeworICAgIGNhc2UgUl9BUk1fTk9ORToKKyAgICAgICAgLyogaWdub3JlICovCisg ICAgICAgIGJyZWFrOworCisgICAgY2FzZSBSX0FSTV9BQlMzMjogLyogKFMgKyBBKSB8IFQgKi8K KyAgICAgICAgKih1MzIgKilkZXN0ID0gKHZhbCArIGFkZGVuZCk7CisgICAgICAgIGJyZWFrOwor CisgICAgY2FzZSBSX0FSTV9SRUwzMjogLyogKChTICsgQSkgfCBUKSDigJMgUCAqLworICAgICAg ICAqKHUzMiAqKWRlc3QgPSAodmFsICsgYWRkZW5kKSAtICh1aW50MzJfdClkZXN0OworICAgICAg ICBicmVhazsKKworICAgIGNhc2UgUl9BUk1fTU9WV19BQlNfTkM6IC8qIFMgKyBBICovCisgICAg Y2FzZSBSX0FSTV9NT1ZUX0FCUzogLyogUyArIEEgKi8KKyAgICAgICAgLyogQ2xlYXIgYWRkZW5k IGlmIG5lZWRlZCAuICovCisgICAgICAgIGlmICggYWRkZW5kICkKKyAgICAgICAgICAgICoodTMy ICopZGVzdCAmPSAweEZGRjBGMDAwOworCisgICAgICAgIGlmICggdHlwZSA9PSBSX0FSTV9NT1ZU X0FCUyApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBBbG1vc3Qg dGhlIHNhbWUgYXMgTU9WVyBleGNlcHQgaXQgdXNlcyB0aGUgMTYgYml0CisgICAgICAgICAgICAg KiBoaWdoIHZhbHVlLiBQdXR0aW5nIGl0IGluIGluc24gcmVxdWlyZXMgc2hpZnRpbmcgcmlnaHQg YnkKKyAgICAgICAgICAgICAqIDE2LWJpdCAoYXMgd2Ugb25seSBoYXZlIDE2LWJpdCBmb3IgaW1t LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB2YWwgJj0gMHhGRkZGMDAwMDsgLyogUmVz dWx0TWFzayAqLworICAgICAgICAgICAgdmFsID0gdmFsID4+IDE2OworICAgICAgICB9CisgICAg ICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgLyogTU9WVyBsb2FkcyAxNiBiaXRzIGlu dG8gdGhlIGJvdHRvbSBoYWxmIG9mIGEgcmVnaXN0ZXIuICovCisgICAgICAgICAgICB2YWwgJj0g MHhGRkZGOworICAgICAgICB9CisgICAgICAgIC8qIFsxMTowXSA9IFJlc3VsdF9NYXNrKFgpICYg MHhGRkYsWzE5OjE2XSA9IFJlc3VsdF9NYXNrKFgpID4+IDEyICovCisgICAgICAgICoodTMyICop ZGVzdCB8PSB2YWwgJiAweEZGRjsKKyAgICAgICAgKih1MzIgKilkZXN0IHw9ICh2YWwgPj4gMTIp IDw8IDE2OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgUl9BUk1fQ0FMTDoKKyAgICBjYXNl IFJfQVJNX0pVTVAyNDogLyogKFMgKyBBKSAtIFAgKi8KKyAgICAgICAgLyogQ2xlYXIgdGhlIG9s ZCBhZGRlbmQuICovCisgICAgICAgIGlmICggYWRkZW5kICkKKyAgICAgICAgICAgICoodTMyICop ZGVzdCAmPSAweEZGMDAwMDAwOworCisgICAgICAgIHZhbCArPSBhZGRlbmQgLSAodWludDMyX3Qp ZGVzdDsKKworICAgICAgICAvKgorICAgICAgICAgKiBhcmNoX2xpdmVwYXRjaF92ZXJpZnlfZGlz dGFuY2UgY2FuJ3QgYWNjb3VudCBvZiBhZGRlbmQgc28gd2UgaGF2ZQorICAgICAgICAgKiB0byBk byB0aGUgY2hlY2sgaGVyZSBhcyB3ZWxsLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAoczMy KXZhbCA8IC0oczMyKUFSQ0hfTElWRVBBVENIX1JBTkdFIHx8CisgICAgICAgICAgICAgKHMzMil2 YWwgPj0gKHMzMilBUkNIX0xJVkVQQVRDSF9SQU5HRSApCisgICAgICAgICAgICByZXR1cm4gLUVP VkVSRkxPVzsKKworICAgICAgICAvKiBDUFUgYWx3YXlzIHNoaWZ0cyBpbnNuIGJ5IHR3bywgc28g Y29tcGxlbWVudCBpdC4gKi8KKyAgICAgICAgdmFsID0gdmFsID4+IDI7CisgICAgICAgIHZhbCAm PSAweDAwRkZGRkZFOworICAgICAgICAqKHUzMiAqKWRlc3QgfD0gKHVpbnQzMl90KXZhbDsKKyAg ICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQ OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgYXJjaF9saXZlcGF0Y2hfcGVyZm9y bShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpiYXNlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpyZWxhLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCB1c2VfcmVsYSkKK3sKKyAgICBjb25zdCBFbGZfUmVsQSAq cl9hOworICAgIGNvbnN0IEVsZl9SZWwgKnI7CisgICAgdW5zaWduZWQgaW50IHN5bW5keCwgaTsK KyAgICB1aW50MzJfdCB2YWw7CisgICAgdm9pZCAqZGVzdDsKKyAgICBpbnQgcmMgPSAwOworCisg ICAgZm9yICggaSA9IDA7IGkgPCAocmVsYS0+c2VjLT5zaF9zaXplIC8gcmVsYS0+c2VjLT5zaF9l bnRzaXplKTsgaSsrICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgdHlwZTsKKyAgICAg ICAgczMyIGFkZGVuZCA9IDA7CisKKyAgICAgICAgaWYgKCB1c2VfcmVsYSApCisgICAgICAgIHsK KyAgICAgICAgICAgIHJfYSA9IHJlbGEtPmRhdGEgKyBpICogcmVsYS0+c2VjLT5zaF9lbnRzaXpl OworICAgICAgICAgICAgc3ltbmR4ID0gRUxGMzJfUl9TWU0ocl9hLT5yX2luZm8pOworICAgICAg ICAgICAgdHlwZSA9IEVMRjMyX1JfVFlQRShyX2EtPnJfaW5mbyk7CisgICAgICAgICAgICBkZXN0 ID0gYmFzZS0+bG9hZF9hZGRyICsgcl9hLT5yX29mZnNldDsgLyogUCAqLworICAgICAgICAgICAg YWRkZW5kID0gcl9hLT5yX2FkZGVuZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAg IHsKKyAgICAgICAgICAgIHIgPSByZWxhLT5kYXRhICsgaSAqIHJlbGEtPnNlYy0+c2hfZW50c2l6 ZTsKKyAgICAgICAgICAgIHN5bW5keCA9IEVMRjMyX1JfU1lNKHItPnJfaW5mbyk7CisgICAgICAg ICAgICB0eXBlID0gRUxGMzJfUl9UWVBFKHItPnJfaW5mbyk7CisgICAgICAgICAgICBkZXN0ID0g YmFzZS0+bG9hZF9hZGRyICsgci0+cl9vZmZzZXQ7IC8qIFAgKi8KKyAgICAgICAgfQorCisgICAg ICAgIGlmICggc3ltbmR4ID4gZWxmLT5uc3ltICkKKyAgICAgICAgeworICAgICAgICAgICAgZHBy aW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBSZWxhdGl2ZSBzeW1ib2wgd2FudHMgc3lt Ym9sQCV1IHdoaWNoIGlzIHBhc3QgZW5kIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgZWxmLT5u YW1lLCBzeW1uZHgpOworICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgICAgIH0KKwor ICAgICAgICBpZiAoICF1c2VfcmVsYSApCisgICAgICAgICAgICBhZGRlbmQgPSBnZXRfYWRkZW5k KHR5cGUsIGRlc3QpOworCisgICAgICAgIHZhbCA9IGVsZi0+c3ltW3N5bW5keF0uc3ltLT5zdF92 YWx1ZTsgLyogUyAqLworCisgICAgICAgIHJjID0gcGVyZm9ybV9yZWwodHlwZSwgZGVzdCwgdmFs LCBhZGRlbmQpOworICAgICAgICBzd2l0Y2ggKCByYyApIHsKKyAgICAgICAgY2FzZSAtRU9WRVJG TE9XOgorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBPdmVy ZmxvdyBpbiByZWxvY2F0aW9uICV1IGluICVzIGZvciAlcyFcbiIsCisgICAgICAgICAgICAgICAg ICAgIGVsZi0+bmFtZSwgaSwgcmVsYS0+bmFtZSwgYmFzZS0+bmFtZSk7CisgICAgICAgICAgICBi cmVhazsKKworICAgICAgICBjYXNlIC1FT1BOT1RTVVBQOgorICAgICAgICAgICAgZHByaW50ayhY RU5MT0dfRVJSLCBMSVZFUEFUQ0ggIiVzOiBVbmhhbmRsZWQgcmVsb2NhdGlvbiAjJXhcbiIsCisg ICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgdHlwZSk7CisgICAgICAgICAgICBicmVhazsK KworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAg ICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBy YzsKK30KKworaW50IGFyY2hfbGl2ZXBhdGNoX3BlcmZvcm1fcmVsKHN0cnVjdCBsaXZlcGF0Y2hf ZWxmICplbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGxp dmVwYXRjaF9lbGZfc2VjICpiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBsaXZlcGF0Y2hfZWxmX3NlYyAqcmVsYSkKK3sKKyAgICByZXR1cm4gYXJjaF9s aXZlcGF0Y2hfcGVyZm9ybShlbGYsIGJhc2UsIHJlbGEsIGZhbHNlKTsKK30KKwogaW50IGFyY2hf bGl2ZXBhdGNoX3BlcmZvcm1fcmVsYShzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMg KmJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBsaXZl cGF0Y2hfZWxmX3NlYyAqcmVsYSkKIHsKLSAgICByZXR1cm4gLUVOT1NZUzsKKyAgICByZXR1cm4g YXJjaF9saXZlcGF0Y2hfcGVyZm9ybShlbGYsIGJhc2UsIHJlbGEsIHRydWUpOwogfQogCiAvKgpk aWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2FybTY0L2xpdmVwYXRjaC5jIGIveGVuL2FyY2gvYXJt L2FybTY0L2xpdmVwYXRjaC5jCmluZGV4IGYxNDg5MjcuLjU1OGFjYjkgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL2FybS9hcm02NC9saXZlcGF0Y2guYworKysgYi94ZW4vYXJjaC9hcm0vYXJtNjQvbGl2 ZXBhdGNoLmMKQEAgLTI0MSw2ICsyNDEsMTMgQEAgc3RhdGljIGludCByZWxvY19pbnNuX2ltbShl bnVtIGFhcmNoNjRfcmVsb2Nfb3Agb3AsIHZvaWQgKmRlc3QsIHU2NCB2YWwsCiAgICAgcmV0dXJu IDA7CiB9CiAKK2ludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtX3JlbChzdHJ1Y3QgbGl2ZXBhdGNo X2VsZiAqZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBs aXZlcGF0Y2hfZWxmX3NlYyAqYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnJlbGEpCit7CisgICAgcmV0dXJuIC1FTk9T WVM7Cit9CisKIGludCBhcmNoX2xpdmVwYXRjaF9wZXJmb3JtX3JlbGEoc3RydWN0IGxpdmVwYXRj aF9lbGYgKmVsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGxpdmVwYXRjaF9lbGZfc2VjICpiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKnJlbGEpCmRpZmYgLS1naXQgYS94ZW4v YXJjaC9hcm0vbGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKaW5kZXggYjhk YmVlMi4uZGZhMjg1YyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5jCisrKyBi L3hlbi9hcmNoL2FybS9saXZlcGF0Y2guYwpAQCAtMTE4LDEzICsxMTgsNiBAQCBib29sIGFyY2hf bGl2ZXBhdGNoX3N5bWJvbF9vayhjb25zdCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZiAqZWxmLAogICAg IHJldHVybiB0cnVlOwogfQogCi1pbnQgYXJjaF9saXZlcGF0Y2hfcGVyZm9ybV9yZWwoc3RydWN0 IGxpdmVwYXRjaF9lbGYgKmVsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgbGl2ZXBhdGNoX2VsZl9zZWMgKmJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGxpdmVwYXRjaF9lbGZfc2VjICpyZWxhKQotewotICAgIHJl dHVybiAtRU5PU1lTOwotfQotCiBpbnQgYXJjaF9saXZlcGF0Y2hfc2VjdXJlKGNvbnN0IHZvaWQg KnZhLCB1bnNpZ25lZCBpbnQgcGFnZXMsIGVudW0gdmFfdHlwZSB0eXBlKQogewogICAgIHVuc2ln bmVkIGxvbmcgc3RhcnQgPSAodW5zaWduZWQgbG9uZyl2YTsKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vS2NvbmZpZyBiL3hlbi9jb21tb24vS2NvbmZpZwppbmRleCAwZjI2MDI3Li5kNGYxMGNhIDEw MDY0NAotLS0gYS94ZW4vY29tbW9uL0tjb25maWcKKysrIGIveGVuL2NvbW1vbi9LY29uZmlnCkBA IC0yMTcsNyArMjE3LDcgQEAgY29uZmlnIENSWVBUTwogY29uZmlnIExJVkVQQVRDSAogCWJvb2wg IkxpdmUgcGF0Y2hpbmcgc3VwcG9ydCAoVEVDSCBQUkVWSUVXKSIKIAlkZWZhdWx0IG4KLQlkZXBl bmRzIG9uICFBUk1fMzIgJiYgSEFTX0JVSUxEX0lEID0gInkiCisJZGVwZW5kcyBvbiBIQVNfQlVJ TERfSUQgPSAieSIKIAktLS1oZWxwLS0tCiAJICBBbGxvd3MgYSBydW5uaW5nIFhlbiBoeXBlcnZp c29yIHRvIGJlIGR5bmFtaWNhbGx5IHBhdGNoZWQgdXNpbmcKIAkgIGJpbmFyeSBwYXRjaGVzIHdp dGhvdXQgcmVib290aW5nLiBUaGlzIGlzIHByaW1hcmlseSB1c2VkIHRvIGJpbmFyaWx5CmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oIGIveGVuL2luY2x1ZGUveGVuL2Vs ZnN0cnVjdHMuaAppbmRleCA3MzI5OTg3Li5lNTQzMjEyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vZWxmc3RydWN0cy5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmgKQEAg LTEwMyw2ICsxMDMsMTUgQEAgdHlwZWRlZiB1aW50NjRfdAlFbGY2NF9Yd29yZDsKICAgICAgICAg ICAgICAgICAgICAgICAoZWhkcikuZV9pZGVudFtFSV9NQUcyXSA9PSBFTEZNQUcyICYmIFwKICAg ICAgICAgICAgICAgICAgICAgICAoZWhkcikuZV9pZGVudFtFSV9NQUczXSA9PSBFTEZNQUczKQog CisvKiBlX2ZsYWdzICovCisjZGVmaW5lIEVGX0FSTV9FQUJJX01BU0sJMHhmZjAwMDAwMAorI2Rl ZmluZSBFRl9BUk1fRUFCSV9VTktOT1dOCTB4MDAwMDAwMDAKKyNkZWZpbmUgRUZfQVJNX0VBQklf VkVSMQkweDAxMDAwMDAwCisjZGVmaW5lIEVGX0FSTV9FQUJJX1ZFUjIJMHgwMjAwMDAwMAorI2Rl ZmluZSBFRl9BUk1fRUFCSV9WRVIzCTB4MDMwMDAwMDAKKyNkZWZpbmUgRUZfQVJNX0VBQklfVkVS NAkweDA0MDAwMDAwCisjZGVmaW5lIEVGX0FSTV9FQUJJX1ZFUjUJMHgwNTAwMDAwMAorCiAvKiBF TEYgSGVhZGVyICovCiB0eXBlZGVmIHN0cnVjdCBlbGZoZHIgewogCXVuc2lnbmVkIGNoYXIJZV9p ZGVudFtFSV9OSURFTlRdOyAvKiBFTEYgSWRlbnRpZmljYXRpb24gKi8KQEAgLTM2NCw5ICszNzMs MjIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogI2RlZmluZSBSX1g4Nl82NF9QTFQzMgkJNAkvKiAzMiBi aXQgUExUIGFkZHJlc3MgKi8KIAogLyoKKyAqIEFSTTMyIHJlbG9jYXRpb24gdHlwZXMuIFNlZQor ICogaHR0cDovL2luZm9jZW50ZXIuYXJtLmNvbS9oZWxwL3RvcGljL2NvbS5hcm0uZG9jLmloaTAw NDRmL0lISTAwNDRGX2FhZWxmLnBkZgogICogUyAtIGFkZHJlc3Mgb2Ygc3ltYm9sLgotICogQSAt IGFkZGVuZCBmb3IgcmVsb2NhdGlvbiAocl9hZGRlbmQpCisgKiBBIC0gYWRkZW5kIGZvciByZWxv Y2F0aW9uIChyX2FkZGVuZCBvciBuZWVkIHRvIGV4dHJhY3QgZnJvbSBpbnNuKQogICogUCAtIGFk ZHJlc3Mgb2YgdGhlIGRlc3QgYmVpbmcgcmVsb2NhdGVkIChkZXJpZXZlZCBmcm9tIHJfb2Zmc2V0 KQorICovCisjZGVmaW5lIFJfQVJNX05PTkUgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUl9BUk1f QUJTMzIgICAgICAgICAgICAgMgkvKiBEaXJlY3QgMzItYml0LiBTK0EgKi8KKyNkZWZpbmUgUl9B Uk1fUkVMMzIgICAgICAgICAgICAgMwkvKiBQQyByZWxhdGl2ZS4gUytBICovCisjZGVmaW5lIFJf QVJNX0NBTEwgICAgICAgICAgICAgIDI4CS8qIFNpZ25FeHRlbmQoWzIzOjBdKSA8PCAyLiBTK0Et UCAqLworI2RlZmluZSBSX0FSTV9KVU1QMjQgICAgICAgICAgICAyOQkvKiBTYW1lIGFzIFJfQVJN X0NBTEwgKi8KKyNkZWZpbmUgUl9BUk1fTU9WV19BQlNfTkMgICAgICAgNDMJLyogU2lnbkV4dGVu ZChbMTk6MTZdLFsxMTowXSkmMHhGRkZGLCBTK0EgKi8KKyNkZWZpbmUgUl9BUk1fTU9WVF9BQlMg ICAgICAgICAgNDQJLyogU2lnbkV4dGVuZChbMTk6MTZdLFsxMTowKSkmMHhGRkZGMDAwMCAqLwor CQkJCQkvKiAgPj4gMTYsIFMrQS4gKi8KKworLyoKICAqIE5DIC0gIE5vIGNoZWNrIGZvciBvdmVy Zmxvdy4KICAqCiAgKiBUaGUgZGVmaW5lcyBhbHNvIHVzZSBfUFJFTCBmb3IgUEMtcmVsYXRpdmUg YWRkcmVzcywgYW5kIF9OQyBpcyBObyBDaGVjay4KZGlmZiAtLWdpdCBhL3hlbi90ZXN0L01ha2Vm aWxlIGIveGVuL3Rlc3QvTWFrZWZpbGUKaW5kZXggOTVjMTc1NS4uZDkxYjMxOSAxMDA2NDQKLS0t IGEveGVuL3Rlc3QvTWFrZWZpbGUKKysrIGIveGVuL3Rlc3QvTWFrZWZpbGUKQEAgLTEsOCArMSw2 IEBACiAuUEhPTlk6IHRlc3RzCiB0ZXN0czoKLWlmbmVxICQoWEVOX1RBUkdFVF9BUkNIKSxhcm0z MikKIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgLUMgbGl2ZXBhdGNoIGxpdmVwYXRj aAotZW5kaWYKIAogLlBIT05ZOiBjbGVhbgogY2xlYW46OgpkaWZmIC0tZ2l0IGEveGVuL3Rlc3Qv bGl2ZXBhdGNoL01ha2VmaWxlIGIveGVuL3Rlc3QvbGl2ZXBhdGNoL01ha2VmaWxlCmluZGV4IGQ4 NDRhZDQuLjk0MzlmNjIgMTAwNjQ0Ci0tLSBhL3hlbi90ZXN0L2xpdmVwYXRjaC9NYWtlZmlsZQor KysgYi94ZW4vdGVzdC9saXZlcGF0Y2gvTWFrZWZpbGUKQEAgLTYsNiArNiw5IEBAIGVuZGlmCiBp ZmVxICgkKFhFTl9UQVJHRVRfQVJDSCksYXJtNjQpCiBPQkpDT1BZX01BR0lDIDo9IC1JIGJpbmFy eSAtTyBlbGY2NC1saXR0bGVhYXJjaDY0IC1CIGFhcmNoNjQKIGVuZGlmCitpZmVxICgkKFhFTl9U QVJHRVRfQVJDSCksYXJtMzIpCitPQkpDT1BZX01BR0lDIDo9IC1JIGJpbmFyeSAtTyBlbGYzMi1s aXR0bGVhcm0gLUIgYXJtCitlbmRpZgogCiBDT0RFX0FERFI9JChzaGVsbCBubSAtLWRlZmluZWQg JCgxKSB8IGdyZXAgJCgyKSB8IGF3ayAne3ByaW50ICIweCIkJDF9JykKIENPREVfU1o9JChzaGVs bCBubSAtLWRlZmluZWQgLVMgJCgxKSB8IGdyZXAgJCgyKSB8IGF3ayAneyBwcmludCAiMHgiJCQy fScpCi0tIAoyLjQuMTEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0 dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK