From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH 7/7] vm-event/arm: implement support for control-register write vm-events Date: Thu, 16 Jun 2016 17:49:49 +0100 Message-ID: <5762D8AD.7070208@arm.com> References: <1466085888-7428-1-git-send-email-czuzu@bitdefender.com> <1466086403-7749-1-git-send-email-czuzu@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1466086403-7749-1-git-send-email-czuzu@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Corneliu ZUZU , xen-devel@lists.xen.org Cc: Stefano Stabellini , Tamas K Lengyel , Razvan Cojocaru List-Id: xen-devel@lists.xenproject.org SGVsbG8gQ29ybmVsaXUsCgpPbiAxNi8wNi8xNiAxNToxMywgQ29ybmVsaXUgWlVaVSB3cm90ZToK PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3RyYXBzLmMgYi94ZW4vYXJjaC9hcm0vdHJhcHMu Ywo+IGluZGV4IDhjNTA2ODUuLmFmNjFhYzMgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3Ry YXBzLmMKPiArKysgYi94ZW4vYXJjaC9hcm0vdHJhcHMuYwo+IEBAIC00Myw2ICs0Myw3IEBACj4g ICAjaW5jbHVkZSA8YXNtL21taW8uaD4KPiAgICNpbmNsdWRlIDxhc20vY3B1ZmVhdHVyZS5oPgo+ ICAgI2luY2x1ZGUgPGFzbS9mbHVzaHRsYi5oPgo+ICsjaW5jbHVkZSA8YXNtL3RyYXBzLmg+Cj4K PiAgICNpbmNsdWRlICJkZWNvZGUuaCIKPiAgICNpbmNsdWRlICJ2dGltZXIuaCIKPiBAQCAtMTI0 LDcgKzEyNSwxMiBAQCB2b2lkIGluaXRfdHJhcHModm9pZCkKPiAgICAgICBXUklURV9TWVNSRUco KEhDUFRSX0NQX01BU0sgJiB+KEhDUFRSX0NQKDEwKSB8IEhDUFRSX0NQKDExKSkpIHwgSENQVFJf VFRBLAo+ICAgICAgICAgICAgICAgICAgICBDUFRSX0VMMik7Cj4KPiAtICAgIC8qIFNldHVwIGh5 cGVydmlzb3IgdHJhcHMgKi8KPiArICAgIC8qIFNldHVwIGh5cGVydmlzb3IgdHJhcHMKPiArICAg ICAqCj4gKyAgICAgKiBOb3RlOiBIQ1JfVFZNIGJpdCBpcyBhbHNvIHNldCBmb3Igc3lzdGVtLXJl Z2lzdGVyIHdyaXRlIG1vbml0b3JpbmcKPiArICAgICAqIHB1cnBvc2VzIChzZWUgdm1fZXZlbnRf bW9uaXRvcl9jciksIGJ1dCAoZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMpIHRoYXQncwo+ICsgICAg ICogZG9uZSBzZWxlY3RpdmVseSAoc2VlIHZjcHVfZW50ZXJfYWRqdXN0X3RyYXBzKS4KPiArICAg ICAqLwo+ICAgICAgIFdSSVRFX1NZU1JFRyhIQ1JfUFRXfEhDUl9CU1VfSU5ORVJ8SENSX0FNT3xI Q1JfSU1PfEhDUl9GTU98SENSX1ZNfAo+ICAgICAgICAgICAgICAgICAgICBIQ1JfVFdFfEhDUl9U V0l8SENSX1RTQ3xIQ1JfVEFDfEhDUl9TV0lPfEhDUl9USURDUHxIQ1JfRkIsCj4gICAgICAgICAg ICAgICAgICAgIEhDUl9FTDIpOwo+IEBAIC0xNzIwLDYgKzE3MjYsNyBAQCBzdGF0aWMgdm9pZCBk b19jcDE1XzMyKHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAo+ICAgICAgIGNvbnN0IHN0cnVj dCBoc3JfY3AzMiBjcDMyID0gaHNyLmNwMzI7Cj4gICAgICAgaW50IHJlZ2lkeCA9IGNwMzIucmVn Owo+ICAgICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKPiArICAgIHJlZ2lzdGVyX3QgciA9 IGdldF91c2VyX3JlZyhyZWdzLCByZWdpZHgpOwo+Cj4gICAgICAgaWYgKCAhY2hlY2tfY29uZGl0 aW9uYWxfaW5zdHIocmVncywgaHNyKSApCj4gICAgICAgewo+IEBAIC0xNzMwLDYgKzE3MzcsNjEg QEAgc3RhdGljIHZvaWQgZG9fY3AxNV8zMihzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKPiAg ICAgICBzd2l0Y2ggKCBoc3IuYml0cyAmIEhTUl9DUDMyX1JFR1NfTUFTSyApCj4gICAgICAgewo+ ICAgICAgIC8qCj4gKyAgICAgKiBIQ1JfRUwyLlRWTSAvIEhDUi5UVk0KPiArICAgICAqCj4gKyAg ICAgKiBBUk12NyAoRERJIDA0MDZDLmIpOiBCMS4xNC4xMwoKUGxlYXNlIHRyeSB0byBtZW50aW9u IHRoZSBtb3N0IHJlY2VudCBzcGVjLiBUaGlzIHdhcyBwdWJsaXNoZWQgaW4gMjAxMiwgCnRoZSBs YXRlc3QgcmVsZWFzZSAoQy5jKSB3YXMgcHVibGlzaGVkIGluIDIwMTQuCgo+ICsgICAgICogQVJN djggKERESSAwNDg3QS5lKTogRDEtMTU2OSBUYWJsZSBEMS0zNAoKRGl0dG8uIFRoaXMgd2FzIHB1 Ymxpc2hlZCBpbiAyMDE0LCB3aGlsc3QgdGhlIG1vc3QgcmVjZW50IHdhcyBwdWJsaXNoZWQgCmlu IDIwMTYuCgo+ICsgICAgICovCj4gKyAgICBjYXNlIEhTUl9DUFJFRzMyKFNDVExSKToKPiArICAg ICAgICBUVk1fRU1VTF9WTUVWVCh2LCByZWdzLCBoc3IsIHIsIFNDVExSKTsKPiArICAgICAgICBi cmVhazsKPiArICAgIGNhc2UgSFNSX0NQUkVHMzIoVFRCUjBfMzIpOgo+ICsgICAgICAgIFRWTV9F TVVMX1ZNRVZUKHYsIHJlZ3MsIGhzciwgciwgVFRCUjBfMzIpOwo+ICsgICAgICAgIGJyZWFrOwo+ ICsgICAgY2FzZSBIU1JfQ1BSRUczMihUVEJSMV8zMik6Cj4gKyAgICAgICAgVFZNX0VNVUxfVk1F VlQodiwgcmVncywgaHNyLCByLCBUVEJSMV8zMik7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyAgICBj YXNlIEhTUl9DUFJFRzMyKFRUQkNSKToKPiArICAgICAgICBUVk1fRU1VTF9WTUVWVCh2LCByZWdz LCBoc3IsIHIsIFRUQkNSKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgSFNSX0NQUkVH MzIoREFDUik6Cj4gKyAgICAgICAgVFZNX0VNVUwocmVncywgaHNyLCByLCBEQUNSKTsKPiArICAg ICAgICBicmVhazsKPiArICAgIGNhc2UgSFNSX0NQUkVHMzIoREZTUik6Cj4gKyAgICAgICAgVFZN X0VNVUwocmVncywgaHNyLCByLCBERlNSKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2Ug SFNSX0NQUkVHMzIoSUZTUik6Cj4gKyAgICAgICAgVFZNX0VNVUwocmVncywgaHNyLCByLCBJRlNS KTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgSFNSX0NQUkVHMzIoREZBUik6Cj4gKyAg ICAgICAgVFZNX0VNVUwocmVncywgaHNyLCByLCBERkFSKTsKPiArICAgICAgICBicmVhazsKPiAr ICAgIGNhc2UgSFNSX0NQUkVHMzIoSUZBUik6Cj4gKyAgICAgICAgVFZNX0VNVUwocmVncywgaHNy LCByLCBJRkFSKTsKPiArICAgICAgICBicmVhazsKWy4uLl0KPiArICAgIGNhc2UgSFNSX0NQUkVH MzIoQURGU1IpOgo+ICsgICAgICAgIFRWTV9FTVVMKHJlZ3MsIGhzciwgciwgQURGU1IpOwo+ICsg ICAgICAgIGJyZWFrOwo+ICsgICAgY2FzZSBIU1JfQ1BSRUczMihBSUZTUik6Cj4gKyAgICAgICAg VFZNX0VNVUwocmVncywgaHNyLCByLCBBSUZTUik7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyAgICBj YXNlIEhTUl9DUFJFRzMyKE1BSVIwKToKPiArICAgICAgICBUVk1fRU1VTChyZWdzLCBoc3IsIHIs IE1BSVIwKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgSFNSX0NQUkVHMzIoTUFJUjEp Ogo+ICsgICAgICAgIFRWTV9FTVVMKHJlZ3MsIGhzciwgciwgTUFJUjEpOwo+ICsgICAgICAgIGJy ZWFrOwoKUGxlYXNlIG1lbnRpb24gdGhhdCBQUlJSIGFuZCBOTVJSIGFyZSBhbGlhc2VkIHRvIHJl c3BlY3RpdmVseSBNQUlSMCBhbmQgCk1BSVIxLiBUaGlzIHdpbGwgYXZvaWQgdG8gc3BlbmQgdGlt ZSB0cnlpbmcgdG8gdW5kZXJzdGFuZGluZyB3aHkgdGhlIApzcGVjIHNheXMgdGhleSBhcmUgdHJh cHBlZCBidXQgeW91IGRvbid0ICJoYW5kbGUiIHRoZW0uCgo+ICsgICAgY2FzZSBIU1JfQ1BSRUcz MihBTUFJUjApOgo+ICsgICAgICAgIFRWTV9FTVVMKHJlZ3MsIGhzciwgciwgQU1BSVIwKTsKPiAr ICAgICAgICBicmVhazsKPiArICAgIGNhc2UgSFNSX0NQUkVHMzIoQU1BSVIxKToKPiArICAgICAg ICBUVk1fRU1VTChyZWdzLCBoc3IsIHIsIEFNQUlSMSk7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyAg ICBjYXNlIEhTUl9DUFJFRzMyKENPTlRFWFRJRFIpOgo+ICsgICAgICAgIFRWTV9FTVVMKHJlZ3Ms IGhzciwgciwgQ09OVEVYVElEUik7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKwo+ICsgICAgLyoKPiAg ICAgICAgKiAhQ05USENUTF9FTDIuRUwxUENFTiAvICFDTlRIQ1RMLlBMMVBDRU4KPiAgICAgICAg Kgo+ICAgICAgICAqIEFSTXY3IChEREkgMDQwNkMuYik6IEI0LjEuMjIKPiBAQCAtMTg1Myw2ICsx OTE1LDEzIEBAIHN0YXRpYyB2b2lkIGRvX2NwMTVfMzIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MsCj4gICBzdGF0aWMgdm9pZCBkb19jcDE1XzY0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdz LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1bmlvbiBoc3IgaHNyKQo+ICAgewo+ ICsgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50Owo+ICsgICAgY29uc3Qgc3RydWN0IGhzcl9j cDY0IGNwNjQgPSBoc3IuY3A2NDsKPiArICAgIHN5c3JlZzY0X3QgciA9IHsKPiArICAgICAgICAu bG93MzIgPSAodWludDMyX3QpIGdldF91c2VyX3JlZyhyZWdzLCBjcDY0LnJlZzEpLAoKVGhlIGNh c3QgaXMgbm90IG5lY2Vzc2FyeS4KCj4gKyAgICAgICAgLmhpZ2gzMiA9ICh1aW50MzJfdCkgZ2V0 X3VzZXJfcmVnKHJlZ3MsIGNwNjQucmVnMikKCkRpdHRvLgoKPiArICAgIH07Cj4gKwo+ICAgICAg IGlmICggIWNoZWNrX2NvbmRpdGlvbmFsX2luc3RyKHJlZ3MsIGhzcikgKQo+ICAgICAgIHsKPiAg ICAgICAgICAgYWR2YW5jZV9wYyhyZWdzLCBoc3IpOwo+IEBAIC0xODYyLDYgKzE5MzEsMTkgQEAg c3RhdGljIHZvaWQgZG9fY3AxNV82NChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKPiAgICAg ICBzd2l0Y2ggKCBoc3IuYml0cyAmIEhTUl9DUDY0X1JFR1NfTUFTSyApCj4gICAgICAgewo+ICAg ICAgIC8qCj4gKyAgICAgKiBIQ1JfRUwyLlRWTSAvIEhDUi5UVk0KPiArICAgICAqCj4gKyAgICAg KiBBUk12NyAoRERJIDA0MDZDLmIpOiBCMS4xNC4xMwo+ICsgICAgICogQVJNdjggKERESSAwNDg3 QS5lKTogRDEtMTU2OSBUYWJsZSBEMS0zNAoKU2FtZSByZW1hcmtzIGFzIGFib3ZlIGZvciB0aGUg c3BlYyB2ZXJzaW9uLgoKPiArICAgICAqLwo+ICsgICAgY2FzZSBIU1JfQ1BSRUc2NChUVEJSMCk6 Cj4gKyAgICAgICAgVFZNX0VNVUxfVk1FVlQodiwgcmVncywgaHNyLCByLnZhbDY0LCBUVEJSMF82 NCk7Cj4gKyAgICAgICAgYnJlYWs7Cj4gKyAgICBjYXNlIEhTUl9DUFJFRzY0KFRUQlIxKToKPiAr ICAgICAgICBUVk1fRU1VTF9WTUVWVCh2LCByZWdzLCBoc3IsIHIudmFsNjQsIFRUQlIxXzY0KTsK PiArICAgICAgICBicmVhazsKPiArCj4gKyAgICAvKgo+ICAgICAgICAqICFDTlRIQ1RMX0VMMi5F TDFQQ0VOIC8gIUNOVEhDVEwuUEwxUENFTgo+ICAgICAgICAqCj4gICAgICAgICogQVJNdjcgKERE SSAwNDA2Qy5iKTogQjQuMS4yMgo+IEBAIC0xODkxLDggKzE5NzMsNiBAQCBzdGF0aWMgdm9pZCBk b19jcDE1XzY0KHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLAo+ICAgICAgICAqLwo+ICAgICAg IGRlZmF1bHQ6Cj4gICAgICAgICAgIHsKPiAtICAgICAgICAgICAgY29uc3Qgc3RydWN0IGhzcl9j cDY0IGNwNjQgPSBoc3IuY3A2NDsKPiAtCj4gICAgICAgICAgICAgICBnZHByaW50ayhYRU5MT0df RVJSLAo+ICAgICAgICAgICAgICAgICAgICAgICAgIiVzIHAxNSwgJWQsIHIlZCwgciVkLCBjciVk IEAgMHglIlBSSXJlZ2lzdGVyIlxuIiwKPiAgICAgICAgICAgICAgICAgICAgICAgIGNwNjQucmVh ZCA/ICJtcnJjIiA6ICJtY3JyIiwKPiBAQCAtMjEyOCwxMCArMjIwOCw1MCBAQCBzdGF0aWMgdm9p ZCBkb19zeXNyZWcoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCj4gICB7Cj4gICAgICAgaW50 IHJlZ2lkeCA9IGhzci5zeXNyZWcucmVnOwo+ICAgICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVu dDsKPiArICAgIHJlZ2lzdGVyX3QgciA9IGdldF91c2VyX3JlZyhyZWdzLCByZWdpZHgpOwo+Cj4g ICAgICAgc3dpdGNoICggaHNyLmJpdHMgJiBIU1JfU1lTUkVHX1JFR1NfTUFTSyApCj4gICAgICAg ewo+ICAgICAgIC8qCj4gKyAgICAgKiBIQ1JfRUwyLlRWTQo+ICsgICAgICoKPiArICAgICAqIEFS TXY4IChEREkgMDQ4N0EuZSk6IEQxLTE1NjkgVGFibGUgRDEtMzQKCkRpdHRvIGZvciB0aGUgc3Bl YyB2ZXJzaW9uLgoKWy4uLl0KCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92bV9ldmVudC5j IGIveGVuL2FyY2gvYXJtL3ZtX2V2ZW50LmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4 IDAwMDAwMDAuLjNmMjNmZWMKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIveGVuL2FyY2gvYXJtL3Zt X2V2ZW50LmMKPiBAQCAtMCwwICsxLDExMiBAQAoKWy4uLl0KCj4gKyNpbmNsdWRlIDx4ZW4vdm1f ZXZlbnQuaD4KPiArI2luY2x1ZGUgPGFzbS90cmFwcy5oPgo+ICsKPiArI2lmIENPTkZJR19BUk1f NjQKPiArCj4gKyNkZWZpbmUgTVdTSU5GX1NDVExSICAgIDMyLFNDVExSX0VMMQo+ICsjZGVmaW5l IE1XU0lORl9UVEJSMCAgICA2NCxUVEJSMF9FTDEKPiArI2RlZmluZSBNV1NJTkZfVFRCUjEgICAg NjQsVFRCUjFfRUwxCj4gKyNkZWZpbmUgTVdTSU5GX1RUQkNSICAgIDY0LFRDUl9FTDEKPiArCj4g KyNlbGlmIENPTkZJR19BUk1fMzIKPiArCj4gKyNkZWZpbmUgTVdTSU5GX1NDVExSICAgIDMyLFND VExSCj4gKyNkZWZpbmUgTVdTSU5GX1RUQlIwICAgIDY0LFRUQlIwCj4gKyNkZWZpbmUgTVdTSU5G X1RUQlIxICAgIDY0LFRUQlIxCgpUaGUgdmFsdWVzIGFyZSB0aGUgc2FtZSBhcyBmb3IgYXJtNjQg KCpfRUwxIGlzIGFsaWFzZWQgdG8gKiBmb3IgYXJtMzIpLiAKUGxlYXNlIGF2b2lkIGR1cGxpY2F0 aW9uLgoKPiArI2RlZmluZSBNV1NJTkZfVFRCUjBfMzIgMzIsVFRCUjBfMzIKPiArI2RlZmluZSBN V1NJTkZfVFRCUjFfMzIgMzIsVFRCUjFfMzIKPiArI2RlZmluZSBNV1NJTkZfVFRCQ1IgICAgMzIs VFRCQ1IKPiArCj4gKyNlbmRpZgo+ICsKPiArI2RlZmluZSBNV1NfRU1VTF8odmFsLCBzeiwgci4u LikgICAgV1JJVEVfU1lTUkVHIyNzeigodWludCMjc3ojI190KSAodmFsKSwgcikKClRoZSBjYXN0 IGlzIG5vdCBuZWNlc3NhcnkuCgo+ICsjZGVmaW5lIE1XU19FTVVMKHIpICAgICAgICAgICAgICAg ICBDQUxMX01BQ1JPKE1XU19FTVVMXywgdy0+dmFsdWUsIE1XU0lORl8jI3IpCj4gKwo+ICtzdGF0 aWMgaW5saW5lIHZvaWQgdmNwdV9lbnRlcl93cml0ZV9kYXRhKHN0cnVjdCB2Y3B1ICp2KQo+ICt7 Cj4gKyAgICBzdHJ1Y3QgbW9uaXRvcl93cml0ZV9kYXRhICp3ID0gJnYtPmFyY2gudm1fZXZlbnQu d3JpdGVfZGF0YTsKPiArCj4gKyAgICBpZiAoIGxpa2VseShNV1NfTk9XUklURSA9PSB3LT5zdGF0 dXMpICkKPiArICAgICAgICByZXR1cm47Cj4gKwo+ICsgICAgc3dpdGNoICggdy0+c3RhdHVzICkK PiArICAgIHsKPiArICAgIGNhc2UgTVdTX1NDVExSOgo+ICsgICAgICAgIE1XU19FTVVMKFNDVExS KTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgTVdTX1RUQlIwOgo+ICsgICAgICAgIE1X U19FTVVMKFRUQlIwKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgTVdTX1RUQlIxOgo+ ICsgICAgICAgIE1XU19FTVVMKFRUQlIxKTsKPiArICAgICAgICBicmVhazsKPiArI2lmIENPTkZJ R19BUk1fMzIKPiArICAgIGNhc2UgTVdTX1RUQlIwXzMyOgo+ICsgICAgICAgIE1XU19FTVVMKFRU QlIwXzMyKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgTVdTX1RUQlIxXzMyOgo+ICsg ICAgICAgIE1XU19FTVVMKFRUQlIxXzMyKTsKPiArICAgICAgICBicmVhazsKPiArI2VuZGlmCgpB YXJjaDMyIGtlcm5lbCBjYW4gcmV0dXJuIG9uIGFuIEFBcmNoNjQgWGVuLiBUaGlzIG1lYW5zIHRo YXQgClRUQlJ7MCwxfV8zMiBjb3VsZCBiZSB0cmFwcGVkIGFuZCB0aGUgd3JpdGUgdGhlcmVmb3Jl IGJlIHByb3Blcmx5IGVtdWxhdGVkLgoKPiArICAgIGNhc2UgTVdTX1RUQkNSOgo+ICsgICAgICAg IE1XU19FTVVMKFRUQkNSKTsKPiArICAgICAgICBicmVhazsKPiArICAgIGRlZmF1bHQ6Cj4gKyAg ICAgICAgYnJlYWs7Cj4gKyAgICB9Cj4gKwo+ICsgICAgdy0+c3RhdHVzID0gTVdTX05PV1JJVEU7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgdm9pZCB2Y3B1X2VudGVyX2FkanVzdF90cmFwcyhz dHJ1Y3QgdmNwdSAqdikKPiArewo+ICsgICAgcmVnaXN0ZXJfdCBvbGRfaGNyLCBoY3I7Cj4gKwo+ ICsgICAgaGNyID0gKG9sZF9oY3IgPSBSRUFEX1NZU1JFRyhIQ1JfRUwyKSk7Cj4gKwo+ICsgICAg aWYgKCB1bmxpa2VseSgwICE9IHYtPmRvbWFpbi0+YXJjaC5tb25pdG9yLndyaXRlX2N0cmxyZWdf ZW5hYmxlZCkgKQo+ICsgICAgICAgIGhjciB8PSBIQ1JfVFZNOwo+ICsgICAgZWxzZQo+ICsgICAg ICAgIGhjciAmPSB+SENSX1RWTTsKPiArCj4gKyAgICBpZiAoIHVubGlrZWx5KGhjciAhPSBvbGRf aGNyKSApCj4gKyAgICB7Cj4gKyAgICAgICAgV1JJVEVfU1lTUkVHKGhjciwgSENSX0VMMik7Cj4g KyAgICAgICAgaXNiKCk7Cj4gKyAgICB9CgpUaGUgSENSIHJlZ2lzdGVyIGlzIGFsc28gdXBkYXRl ZCBpbiBwMm1fcmVzdG9yZV9zdGF0ZSB0byBzZXQgSENSX0VMMi5SVy4gCkkgd291bGQgcHJlZmVy IHRvIGhhdmUgYSBzaW5nbGUgcGxhY2Ugd2hlcmUgSENSIGlzIHVwZGF0ZWQuCgpNYXliZSB3ZSBz aG91bGQgc3RvcmUgdGhlIEhDUiB2YWx1ZSBwZXItZG9tYWluPwoKPiArfQo+ICsKPiArdm9pZCBh cmNoX3ZtX2V2ZW50X3ZjcHVfZW50ZXIoc3RydWN0IHZjcHUgKnYpCj4gK3sKPiArICAgIHZjcHVf ZW50ZXJfd3JpdGVfZGF0YSh2KTsKPiArICAgIHZjcHVfZW50ZXJfYWRqdXN0X3RyYXBzKHYpOwo+ ICt9Cj4gKwo+ICsvKgo+ICsgKiBMb2NhbCB2YXJpYWJsZXM6Cj4gKyAqIG1vZGU6IEMKPiArICog Yy1maWxlLXN0eWxlOiAiQlNEIgo+ICsgKiBjLWJhc2ljLW9mZnNldDogNAo+ICsgKiBpbmRlbnQt dGFicy1tb2RlOiBuaWwKPiArICogRW5kOgo+ICsgKi8KPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1v bi9tb25pdG9yLmMgYi94ZW4vY29tbW9uL21vbml0b3IuYwo+IGluZGV4IDIzNjZiYWUuLmMzNWE3 MTcgMTAwNjQ0Cj4gLS0tIGEveGVuL2NvbW1vbi9tb25pdG9yLmMKPiArKysgYi94ZW4vY29tbW9u L21vbml0b3IuYwo+IEBAIC02Miw3ICs2Miw2IEBAIGludCBtb25pdG9yX2RvbWN0bChzdHJ1Y3Qg ZG9tYWluICpkLCBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wICptb3ApCj4KPiAgICAgICBz d2l0Y2ggKCBtb3AtPmV2ZW50ICkKPiAgICAgICB7Cj4gLSNpZiBDT05GSUdfWDg2Cj4gICAgICAg Y2FzZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfV1JJVEVfQ1RSTFJFRzoKPiAgICAgICB7Cj4g ICAgICAgICAgIHN0cnVjdCBhcmNoX2RvbWFpbiAqYWQgPSAmZC0+YXJjaDsKPiBAQCAtMTAwLDcg Kzk5LDYgQEAgaW50IG1vbml0b3JfZG9tY3RsKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5f ZG9tY3RsX21vbml0b3Jfb3AgKm1vcCkKPgo+ICAgICAgICAgICBicmVhazsKPiAgICAgICB9Cj4g LSNlbmRpZgo+Cj4gICAgICAgY2FzZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfR1VFU1RfUkVR VUVTVDoKPiAgICAgICB7Cj4gZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdm1fZXZlbnQuYyBiL3hl bi9jb21tb24vdm1fZXZlbnQuYwo+IGluZGV4IDUzZGMwNDguLmUwZjk5OWUgMTAwNjQ0Cj4gLS0t IGEveGVuL2NvbW1vbi92bV9ldmVudC5jCj4gKysrIGIveGVuL2NvbW1vbi92bV9ldmVudC5jCj4g QEAgLTgyNCw3ICs4MjQsNiBAQCBpbnQgdm1fZXZlbnRfbW9uaXRvcl90cmFwcyhzdHJ1Y3QgdmNw dSAqdiwgdWludDhfdCBzeW5jLAo+ICAgICAgIHJldHVybiAxOwo+ICAgfQo+Cj4gLSNpZiBDT05G SUdfWDg2Cj4gICBib29sX3Qgdm1fZXZlbnRfbW9uaXRvcl9jcih1bnNpZ25lZCBpbnQgaW5kZXgs IHVuc2lnbmVkIGxvbmcgdmFsdWUsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIG9sZCkKPiAgIHsKPiBAQCAtODUyLDcgKzg1MSw2IEBAIGJvb2xfdCB2bV9ldmVu dF9tb25pdG9yX2NyKHVuc2lnbmVkIGludCBpbmRleCwgdW5zaWduZWQgbG9uZyB2YWx1ZSwKPgo+ ICAgICAgIHJldHVybiAwOwo+ICAgfQo+IC0jZW5kaWYKPgo+ICAgdm9pZCB2bV9ldmVudF9tb25p dG9yX2d1ZXN0X3JlcXVlc3Qodm9pZCkKPiAgIHsKClsuLi5dCgo+IGRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20tYXJtL3RyYXBzLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3RyYXBzLmgKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjllMjQ2YTcKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS90cmFwcy5oCgpUaGlzIGZpbGUgaXMgdmVy eSBkaWZmaWN1bHQgdG8gcmV2aWV3LiBDYW4geW91IGV4cGxhaW4gd2h5IHlvdSBuZWVkIHRvIApk dXBsaWNhdGUgbW9zdCBvZiB0aGUgdGhpbmdzIGJldHdlZW4gdGhlIEFBcmNoNjQgYW5kIEFBcmNo MzIgcG9ydD8KCldoaWxzdCBJIHVuZGVyc3RhbmQgdGhhdCBzb21lIHJlZ2lzdGVycyBhcmUgYWNj ZXNzaWJsZSBpbiBhIGRpZmZlcmVudCAKd2F5IGJldHdlZW4gQUFyY2g2NCBhbmQgQWFyY2gzMiwg d2Ugd2VyZSBhYmxlIHRvIGdldCByaWQgb2YgbW9zdCBvZiB0aGVtIAppbiB0aGUgWGVuIHBvcnQg YnkgYWxpYXNpbmcgcmVnaXN0ZXJzIChzZWUgYXNtLWFybS9jcHJlZ3MuaCkuCgogRnJvbSBhIHF1 aWNrIGxvb2ssIEkgYmVsaWV2ZSB0aGlzIGlzIHBvc3NpYmxlIHRvIGRvIGFuZCB3b3VsZCByZWR1 Y2UgYSAKbG90IHRoZSBzaXplL2NvbXBsZXhpdHkgb2YgdGhpcyBmaWxlLgoKPiBAQCAtMCwwICsx LDI1MyBAQAoKWy4uLl0KCj4gKy8qCj4gKyAqIEVtdWxhdGlvbiBvZiBzeXN0ZW0tcmVnaXN0ZXIg dHJhcHBlZCB3cml0ZXMgdGhhdCBkbyBub3QgY2F1c2UKPiArICogVk1fRVZFTlRfUkVBU09OX1dS SVRFX0NUUkxSRUcgbW9uaXRvciB2bS1ldmVudHMuCj4gKyAqIFN1Y2ggd3JpdGVzIGFyZSBjb2xs YXRlcmFsbHkgdHJhcHBlZCBkdWUgdG8gc2V0dGluZyB0aGUgSENSX0VMMi5UVk0gYml0Lgo+ICsg Kgo+ICsgKiBSZWdhcmRpbmcgYWFyY2gzMiBkb21haW5zLCBub3RlIHRoYXQgZnJvbSBYZW4ncyBw ZXJzcGVjdGl2ZSBzeXN0ZW0tcmVnaXN0ZXJzCj4gKyAqIG9mIHN1Y2ggZG9tYWlucyBhcmUgYXJj aGl0ZWN0dXJhbGx5LW1hcHBlZCB0byBhYXJjaDY0IHJlZ2lzdGVycyBpbiBvbmUgb2YKPiArICog dGhyZWUgd2F5czoKPiArICogIC0gbG93IDMyLWJpdHMgbWFwcGluZyAgIChlLmcuIGFhcmNoMzIg REZBUiAtPiBhYXJjaDY0IEZBUl9FTDFbMzE6MF0pCj4gKyAqICAtIGhpZ2ggMzItYml0cyBtYXBw aW5nICAoZS5nLiBhYXJjaDMyIElGQVIgLT4gYWFyY2g2NCBGQVJfRUwxWzYzOjMyXSkKPiArICog IC0gZnVsbCBtYXBwaW5nICAgICAgICAgIChlLmcuIGFhcmNoMzIgU0NUTFIgLT4gYWFyY2g2NCBT Q1RMUl9FTDEpCj4gKyAqCj4gKyAqIEhlbmNlIHdlIGRlZmluZSAyIG1hY3JvIHZhcmlhbnRzOgo+ ICsgKiAgLSBUVk1fRU1VTF9TWiB2YXJpYW50LCBmb3IgZnVsbCBtYXBwaW5ncwo+ICsgKiAgLSBU Vk1fRU1VTF9MSCB2YXJpYW50LCBmb3IgbG93L2hpZ2ggMzItYml0cyBtYXBwaW5ncwo+ICsgKi8K PiArI2RlZmluZSBUVk1fRU1VTF9TWihyZWdzLCBoc3IsIHZhbCwgc3osIHIuLi4pICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAo+ICt7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gKyAgICBpZiAoIHBzcl9t b2RlX2lzX3VzZXIocmVncykgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKClRob3NlIHJlZ2lzdGVycyBhcmUgbm90IGFjY2Vzc2libGUgYXQgRUwwLgoKPiArICAgICAg ICByZXR1cm4gaW5qZWN0X3VuZGVmX2V4Y2VwdGlvbihyZWdzLCBoc3IpOyAgICAgICAgICAgICAg ICAgICAgICAgXAo+ICsgICAgV1JJVEVfU1lTUkVHIyNzeigodWludCMjc3ojI190KSAodmFsKSwg cik7CgpbLi4uXQoKPiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS92bV9ldmVudC5o IGIveGVuL2luY2x1ZGUvYXNtLWFybS92bV9ldmVudC5oCj4gaW5kZXggNGU1YTI3Mi4uZWRmOTY1 NCAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50LmgKPiArKysgYi94 ZW4vaW5jbHVkZS9hc20tYXJtL3ZtX2V2ZW50LmgKPiBAQCAtMzAsNiArMzAsMTIgQEAgc3RhdGlj IGlubGluZSBpbnQgdm1fZXZlbnRfaW5pdF9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKPgo+ICAg c3RhdGljIGlubGluZSB2b2lkIHZtX2V2ZW50X2NsZWFudXBfZG9tYWluKHN0cnVjdCBkb21haW4g KmQpCj4gICB7Cj4gKyAgICBzdHJ1Y3QgdmNwdSAqdjsKPiArCj4gKyAgICBmb3JfZWFjaF92Y3B1 ICggZCwgdiApCj4gKyAgICAgICAgbWVtc2V0KCZ2LT5hcmNoLnZtX2V2ZW50LCAwLCBzaXplb2Yo di0+YXJjaC52bV9ldmVudCkpOwo+ICsKPiArICAgIG1lbXNldCgmZC0+YXJjaC5tb25pdG9yLCAw LCBzaXplb2YoZC0+YXJjaC5tb25pdG9yKSk7Cj4gICAgICAgbWVtc2V0KCZkLT5tb25pdG9yLCAw LCBzaXplb2YoZC0+bW9uaXRvcikpOwo+ICAgfQo+Cj4gQEAgLTQxLDcgKzQ3LDEzIEBAIHN0YXRp YyBpbmxpbmUgdm9pZCB2bV9ldmVudF90b2dnbGVfc2luZ2xlc3RlcChzdHJ1Y3QgZG9tYWluICpk LCBzdHJ1Y3QgdmNwdSAqdikKPiAgIHN0YXRpYyBpbmxpbmUKPiAgIHZvaWQgdm1fZXZlbnRfcmVn aXN0ZXJfd3JpdGVfcmVzdW1lKHN0cnVjdCB2Y3B1ICp2LCB2bV9ldmVudF9yZXNwb25zZV90ICpy c3ApCj4gICB7Cj4gLSAgICAvKiBOb3Qgc3VwcG9ydGVkIG9uIEFSTS4gKi8KPiArICAgIC8qIFg4 NiBWTV9FVkVOVF9SRUFTT05fTU9WX1RPX01TUiBjb3VsZCAoYnV0IHNob3VsZG4ndCkgZW5kLXVw IGhlcmUgdG9vLiAqLwoKVGhpcyBzaG91bGQgYmUgYW4gQVNTRVJUL0JVR19PTiB0aGVuLgoKPiAr ICAgIGlmICggdW5saWtlbHkoVk1fRVZFTlRfUkVBU09OX1dSSVRFX0NUUkxSRUcgIT0gcnNwLT5y ZWFzb24pICkKPiArICAgICAgICByZXR1cm47Cj4gKwo+ICsgICAgaWYgKCAocnNwLT5mbGFncyAm IFZNX0VWRU5UX0ZMQUdfREVOWSkgJiYKPiArICAgICAgICAgKHJzcC0+ZmxhZ3MgJiBWTV9FVkVO VF9GTEFHX1ZDUFVfUEFVU0VEKSApCj4gKyAgICAgICAgdi0+YXJjaC52bV9ldmVudC53cml0ZV9k YXRhLnN0YXR1cyA9IE1XU19OT1dSSVRFOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW5saW5lCj4gQEAg LTU1LDEwICs2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2bV9ldmVudF9maWxsX3JlZ3Modm1f ZXZlbnRfcmVxdWVzdF90ICpyZXEpCj4gICAgICAgLyogTm90IHN1cHBvcnRlZCBvbiBBUk0uICov Cj4gICB9Cj4KPiAtc3RhdGljIGlubGluZSB2b2lkIGFyY2hfdm1fZXZlbnRfdmNwdV9lbnRlcihz dHJ1Y3QgdmNwdSAqdikKPiAtewo+IC0gICAgLyogTm90aGluZyB0byBkby4gKi8KPiAtfQo+ICt2 b2lkIGFyY2hfdm1fZXZlbnRfdmNwdV9lbnRlcihzdHJ1Y3QgdmNwdSAqdik7Cj4KPiAgIC8qCj4g ICAgKiBNb25pdG9yIHZtLWV2ZW50cy4KPiBAQCAtNjcsNyArNzYsOCBAQCBzdGF0aWMgaW5saW5l IHVpbnQzMl90IHZtX2V2ZW50X21vbml0b3JfZ2V0X2NhcGFiaWxpdGllcyhzdHJ1Y3QgZG9tYWlu ICpkKQo+ICAgewo+ICAgICAgIHVpbnQzMl90IGNhcGFiaWxpdGllcyA9IDA7Cj4KPiAtICAgIGNh cGFiaWxpdGllcyA9ICgxVSA8PCBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfR1VFU1RfUkVRVUVT VCk7Cj4gKyAgICBjYXBhYmlsaXRpZXMgPSAoMVUgPDwgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5U X1dSSVRFX0NUUkxSRUcpIHwKPiArICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5fRE9NQ1RM X01PTklUT1JfRVZFTlRfR1VFU1RfUkVRVUVTVCk7Cj4KPiAgICAgICByZXR1cm4gY2FwYWJpbGl0 aWVzOwo+ICAgfQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvdm1fZXZlbnQuaCBi L3hlbi9pbmNsdWRlL3B1YmxpYy92bV9ldmVudC5oCj4gaW5kZXggOGY5NGUyMC4uZWMzZWFjYSAx MDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvdm1fZXZlbnQuaAo+ICsrKyBiL3hlbi9p bmNsdWRlL3B1YmxpYy92bV9ldmVudC5oCgpbLi4uXQoKLS0gCkp1bGllbiBHcmFsbAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK