From mboxrd@z Thu Jan 1 00:00:00 1970 From: Razvan Cojocaru Subject: Re: [PATCH V2] vm_event: Allow subscribing to write events for specific MSR-s Date: Wed, 13 Apr 2016 14:57:35 +0300 Message-ID: <570E342F.5060606@bitdefender.com> References: <1460524280-6902-1-git-send-email-rcojocaru@bitdefender.com> <20160413094726.GA2133@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160413094726.GA2133@localhost.localdomain> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk Cc: kevin.tian@intel.com, tamas@tklengyel.com, wei.liu2@citrix.com, jbeulich@suse.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, jun.nakajima@intel.com, keir@xen.org List-Id: xen-devel@lists.xenproject.org T24gMDQvMTMvMjAxNiAxMjo0NyBQTSwgS29ucmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+PiBk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21vbml0b3IuYyBiL3hlbi9hcmNoL3g4Ni9tb25pdG9y LmMKPj4gaW5kZXggMWZlYzQxMi4uNGM5Njk2OCAxMDA2NDQKPj4gLS0tIGEveGVuL2FyY2gveDg2 L21vbml0b3IuYwo+PiArKysgYi94ZW4vYXJjaC94ODYvbW9uaXRvci5jCj4+IEBAIC0yMiw2ICsy Miw1OCBAQAo+PiAgI2luY2x1ZGUgPGFzbS9tb25pdG9yLmg+Cj4+ICAjaW5jbHVkZSA8cHVibGlj L3ZtX2V2ZW50Lmg+Cj4+ICAKPj4gK3N0YXRpYyBpbnQgYXJjaF9tb25pdG9yX2VuYWJsZV9tc3Io c3RydWN0IGRvbWFpbiAqZCwgdTMyIG1zcikKPj4gK3sKPj4gKyAgICBpZiAoICFkLT5hcmNoLm1v bml0b3JfbXNyX2JpdG1hcCApCj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+IAo+IEkgdGhp cyB3YXMgbm90IHNldCB3b3VsZG4ndCB3ZSBmYWlsIGluIHZtX2V2ZW50X2VuYWJsZSB3aXRoIC1F Tk9NRU0/Cj4gCj4gSSBwcmVzdW1lIHRoZSB1c2VyIGNhbiBzdGlsbCBtYWtlIHRoaXMgaHlwZXJj YWxsLi4gIEFoIHllcy4KPiAKPiBQZXJoYXBzIC1FTlhJTz8KClN1cmUsIEkgY2FuIHJldHVybiAt RU5YSU8uIEkganVzdCB0aG91Z2h0IC1FSU5WQUwgcmVmbGVjdHMgdGhlIGNhc2UKd2VsbDogaXQn cyBub3QgcmlnaHQgdG8gY2FsbCB0aGlzIGh5cGVyY2FsbCBpZiB5b3UgaGF2ZW4ndCBzdWJzY3Jp YmVkCmZvciB2bV9ldmVudHMgYmVmb3JlaGFuZCAoaW4gd2hpY2ggY2FzZSBkLT5hcmNoLm1vbml0 b3JfbXNyX2JpdG1hcCBpcwpOVUxMLCBiZWNhdXNlIGl0J3Mgb25seSBhbGxvY2F0ZWQgdGhlbiwg YW5kIGRlLWFsbG9jYXRlZCBhZ2FpbiB3aGVuIHRoZQpzdWJzY3JpYmVyIHVuc3Vic2NyaWJlcyku Cgo+PiArCj4+ICsgICAgaWYgKCBtc3IgPD0gMHgxZmZmICkKPj4gKyAgICAgICAgc2V0X2JpdCht c3IsIGQtPmFyY2gubW9uaXRvcl9tc3JfYml0bWFwICsgMHgwMDAvQllURVNfUEVSX0xPTkcpOwo+ IAo+IFRoZSAweDAwMC9CWVRFUl9QRVJfTE9ORyBsb29rcyBvZGQuIElzIGl0IGV2ZW4gbmVlZGVk PwoKSSd2ZSBwcmV0dHkgbXVjaCBjb3BpZWQgdGhlIGNvZGUgZnJvbSB0aGUgZW5hYmxlZCBtc3Jz IGJpdG1hcCwgc28gSQphc3N1bWUgaXQgd2FzLCBidXQgSSdsbCBjaGFuZ2UgdGhlIGNvZGUgdG8g Zm9sbG93IEFuZHJldyBDb29wZXIncwpzdWdnZXN0aW9uIHdoaWNoIHNob3VsZCBtYWtlIHRoaXMg Z28gYXdheS4KCj4+ICsgICAgZWxzZSBpZiAoIChtc3IgPj0gMHhjMDAwMDAwMCkgJiYgKG1zciA8 PSAweGMwMDAxZmZmKSApCj4+ICsgICAgewo+PiArICAgICAgICBtc3IgJj0gMHgxZmZmOwo+PiAr ICAgICAgICBzZXRfYml0KG1zciwgZC0+YXJjaC5tb25pdG9yX21zcl9iaXRtYXAgKyAweDQwMC9C WVRFU19QRVJfTE9ORyk7Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgaHZtX2VuYWJsZV9tc3JfaW50 ZXJjZXB0aW9uKGQsIG1zcik7Cj4gCj4gQW5kIGZvciBNU1JzIGFib3ZlIDB4YzAwMDFmZmYgaXQg aXMgT0sgdG8gZW5hYmxlIHRoZSBpbnRlcmNlcHRpb24/Cj4gT3IgYmV0d2VlbiAweDFmZmYgYW5k IDB4YzAwMDAwMDA/Cj4gCj4gTm8gbmVlZCB0byBmaWx0ZXIgdGhlbSBvdXQ/IE9yIGVycm9yIG9u IHRoZW0/Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBh cmNoX21vbml0b3JfZGlzYWJsZV9tc3Ioc3RydWN0IGRvbWFpbiAqZCwgdTMyIG1zcikKPj4gK3sK Pj4gKyAgICBpZiAoICFkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCApCj4+ICsgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+PiArCj4+ICsgICAgaWYgKCBtc3IgPD0gMHgxZmZmICkKPj4gKyAgICAg ICAgY2xlYXJfYml0KG1zciwgZC0+YXJjaC5tb25pdG9yX21zcl9iaXRtYXAgKyAweDAwMC9CWVRF U19QRVJfTE9ORyk7Cj4+ICsgICAgZWxzZSBpZiAoIChtc3IgPj0gMHhjMDAwMDAwMCkgJiYgKG1z ciA8PSAweGMwMDAxZmZmKSApCj4+ICsgICAgewo+PiArICAgICAgICBtc3IgJj0gMHgxZmZmOwo+ PiArICAgICAgICBjbGVhcl9iaXQobXNyLCBkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCArIDB4 NDAwL0JZVEVTX1BFUl9MT05HKTsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICByZXR1cm4gMDsKPj4g K30KPj4gKwo+PiArYm9vbF90IGFyY2hfbW9uaXRvcl9pc19tc3JfZW5hYmxlZChjb25zdCBzdHJ1 Y3QgZG9tYWluICpkLCB1MzIgbXNyKQo+PiArewo+PiArICAgIGJvb2xfdCByYyA9IDA7Cj4+ICsK Pj4gKyAgICBpZiAoICFkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCApCj4+ICsgICAgICAgIHJl dHVybiAwOwo+PiArCj4+ICsgICAgaWYgKCBtc3IgPD0gMHgxZmZmICkKPj4gKyAgICAgICAgcmMg PSB0ZXN0X2JpdChtc3IsIGQtPmFyY2gubW9uaXRvcl9tc3JfYml0bWFwICsgMHgwMDAvQllURVNf UEVSX0xPTkcpOwo+PiArICAgIGVsc2UgaWYgKCAobXNyID49IDB4YzAwMDAwMDApICYmIChtc3Ig PD0gMHhjMDAwMWZmZikgKQo+PiArICAgIHsKPj4gKyAgICAgICAgbXNyICY9IDB4MWZmZjsKPj4g KyAgICAgICAgcmMgPSB0ZXN0X2JpdChtc3IsIGQtPmFyY2gubW9uaXRvcl9tc3JfYml0bWFwICsg MHg0MDAvQllURVNfUEVSX0xPTkcpOwo+PiArICAgIH0KPiAKPiBBbmQgd2hhdCBpZiBtc3IgcmVx dWVzdGVkIGlzIGFib3ZlIDB4YzAwMDFmZmYgPyBXaGF0IHRoZW4/CgpJIHRoaW5rIHRoZSBxdWVz dGlvbnMgYWJvdmUgaGF2ZSBiZWVuIGFuc3dlcmVkIGJ5IEFuZHJldyBDb29wZXIuCgo+PiArCj4+ ICsgICAgcmV0dXJuIHJjOwo+PiArfQo+PiArCj4+ICBpbnQgYXJjaF9tb25pdG9yX2RvbWN0bF9l dmVudChzdHJ1Y3QgZG9tYWluICpkLAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHhlbl9kb21jdGxfbW9uaXRvcl9vcCAqbW9wKQo+PiAgewo+PiBAQCAtNzcsMjUgKzEy OSwyOCBAQCBpbnQgYXJjaF9tb25pdG9yX2RvbWN0bF9ldmVudChzdHJ1Y3QgZG9tYWluICpkLAo+ PiAgCj4+ICAgICAgY2FzZSBYRU5fRE9NQ1RMX01PTklUT1JfRVZFTlRfTU9WX1RPX01TUjoKPiAK PiBTaG91bGQgdGhpcyBiZSByZW5hbWVkPwoKSSdtIGhhcHB5IHRvIHJlbmFtZSBpdCwgYnV0IEkg ZG9uJ3QgdGhpbmsgaXQgc2hvdWxkIC0gaXQgaGFzIHRoZSBleGFjdApzYW1lIHNlbWFudGljcyBh cyBiZWZvcmU6IG1vbml0b3IgYSBNU1Igd3JpdGUuCgo+PiAgICAgIHsKPj4gLSAgICAgICAgYm9v bF90IG9sZF9zdGF0dXMgPSBhZC0+bW9uaXRvci5tb3ZfdG9fbXNyX2VuYWJsZWQ7Cj4+ICsgICAg ICAgIGJvb2xfdCBvbGRfc3RhdHVzOwo+PiArICAgICAgICBpbnQgcmM7Cj4+ICsgICAgICAgIHUz MiBtc3IgPSBtb3AtPnUubW92X3RvX21zci5tc3I7Cj4+ICAKPj4gLSAgICAgICAgaWYgKCB1bmxp a2VseShvbGRfc3RhdHVzID09IHJlcXVlc3RlZF9zdGF0dXMpICkKPj4gLSAgICAgICAgICAgIHJl dHVybiAtRUVYSVNUOwo+PiArICAgICAgICBkb21haW5fcGF1c2UoZCk7Cj4+ICAKPj4gLSAgICAg ICAgaWYgKCByZXF1ZXN0ZWRfc3RhdHVzICYmIG1vcC0+dS5tb3ZfdG9fbXNyLmV4dGVuZGVkX2Nh cHR1cmUgJiYKPj4gLSAgICAgICAgICAgICAhaHZtX2VuYWJsZV9tc3JfZXhpdF9pbnRlcmNlcHRp b24oZCkgKQo+PiAtICAgICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwo+PiArICAgICAgICBv bGRfc3RhdHVzID0gYXJjaF9tb25pdG9yX2lzX21zcl9lbmFibGVkKGQsIG1zcik7Cj4+ICAKPj4g LSAgICAgICAgZG9tYWluX3BhdXNlKGQpOwo+PiArICAgICAgICBpZiAoIHVubGlrZWx5KG9sZF9z dGF0dXMgPT0gcmVxdWVzdGVkX3N0YXR1cykgKQo+PiArICAgICAgICB7Cj4+ICsgICAgICAgICAg ICBkb21haW5fdW5wYXVzZShkKTsKPj4gKyAgICAgICAgICAgIHJldHVybiAtRUVYSVNUOwo+PiAr ICAgICAgICB9Cj4+ICAKPj4gLSAgICAgICAgaWYgKCByZXF1ZXN0ZWRfc3RhdHVzICYmIG1vcC0+ dS5tb3ZfdG9fbXNyLmV4dGVuZGVkX2NhcHR1cmUgKQo+PiAtICAgICAgICAgICAgYWQtPm1vbml0 b3IubW92X3RvX21zcl9leHRlbmRlZCA9IDE7Cj4+ICsgICAgICAgIGlmICggcmVxdWVzdGVkX3N0 YXR1cyApCj4+ICsgICAgICAgICAgICByYyA9IGFyY2hfbW9uaXRvcl9lbmFibGVfbXNyKGQsIG1z cik7Cj4+ICAgICAgICAgIGVsc2UKPj4gLSAgICAgICAgICAgIGFkLT5tb25pdG9yLm1vdl90b19t c3JfZXh0ZW5kZWQgPSAwOwo+PiArICAgICAgICAgICAgcmMgPSBhcmNoX21vbml0b3JfZGlzYWJs ZV9tc3IoZCwgbXNyKTsKPj4gIAo+PiAtICAgICAgICBhZC0+bW9uaXRvci5tb3ZfdG9fbXNyX2Vu YWJsZWQgPSByZXF1ZXN0ZWRfc3RhdHVzOwo+PiAgICAgICAgICBkb21haW5fdW5wYXVzZShkKTsK Pj4gLSAgICAgICAgYnJlYWs7Cj4+ICsKPj4gKyAgICAgICAgcmV0dXJuIHJjOwo+PiAgICAgIH0K Pj4gIAo+PiAgICAgIGNhc2UgWEVOX0RPTUNUTF9NT05JVE9SX0VWRU5UX1NJTkdMRVNURVA6Cj4+ IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyBiL3hlbi9hcmNoL3g4Ni92bV9l dmVudC5jCj4+IGluZGV4IDU2MzU2MDMuLjliNDI2N2UgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9hcmNo L3g4Ni92bV9ldmVudC5jCj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVudC5jCj4+IEBAIC0y Nyw2ICsyNywxMyBAQCBpbnQgdm1fZXZlbnRfaW5pdF9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkK Pj4gIHsKPj4gICAgICBzdHJ1Y3QgdmNwdSAqdjsKPj4gIAo+PiArICAgIGQtPmFyY2gubW9uaXRv cl9tc3JfYml0bWFwID0gYWxsb2NfeGVuaGVhcF9wYWdlKCk7Cj4gCj4gSG93IGFib3V0IHVzaW5n IHZ6YWxsb2M/Cj4+ICsKPj4gKyAgICBpZiAoICFkLT5hcmNoLm1vbml0b3JfbXNyX2JpdG1hcCAp Cj4+ICsgICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiArCj4+ICsgICAgbWVtc2V0KGQtPmFyY2gu bW9uaXRvcl9tc3JfYml0bWFwLCAwLCBQQUdFX1NJWkUpOwo+IAo+IFRoZW4geW91IGRvbid0IGhh dmUgdG8gZG8gdGhhdC4KPiAKPj4gKwo+PiAgICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKPj4g ICAgICB7Cj4+ICAgICAgICAgIGlmICggdi0+YXJjaC52bV9ldmVudCApCj4+IEBAIC01NSw2ICs2 Miw5IEBAIHZvaWQgdm1fZXZlbnRfY2xlYW51cF9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKPj4g ICAgICAgICAgdi0+YXJjaC52bV9ldmVudCA9IE5VTEw7Cj4+ICAgICAgfQo+PiAgCj4+ICsgICAg ZnJlZV94ZW5oZWFwX3BhZ2UoZC0+YXJjaC5tb25pdG9yX21zcl9iaXRtYXApOwo+IAo+IEFuZCB0 aGlzIHdvdWxkIGJlIHZmcmVlLgoKSSdsbCBmb2xsb3cgQW5kcmV3IENvb3BlcidzIHJlcXVlc3Rz IGhlcmUsIHdoaWNoIHNob3VsZCBhZGRyZXNzIHRoZXNlCmlzc3Vlcy4KCj4+ICsgICAgZC0+YXJj aC5tb25pdG9yX21zcl9iaXRtYXAgPSBOVUxMOwo+PiArCj4+ICAgICAgZC0+YXJjaC5tZW1fYWNj ZXNzX2VtdWxhdGVfZWFjaF9yZXAgPSAwOwo+PiAgICAgIG1lbXNldCgmZC0+YXJjaC5tb25pdG9y LCAwLCBzaXplb2YoZC0+YXJjaC5tb25pdG9yKSk7Cj4+ICAgICAgbWVtc2V0KCZkLT5tb25pdG9y LCAwLCBzaXplb2YoZC0+bW9uaXRvcikpOwo+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKPj4gaW5kZXggZDM5 M2VkMi4uZDhkOTFjMiAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4u aAo+PiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCj4+IEBAIC0zOTgsMTIgKzM5 OCwxMiBAQCBzdHJ1Y3QgYXJjaF9kb21haW4KPj4gICAgICAgICAgdW5zaWduZWQgaW50IHdyaXRl X2N0cmxyZWdfZW5hYmxlZCAgICAgICA6IDQ7Cj4+ICAgICAgICAgIHVuc2lnbmVkIGludCB3cml0 ZV9jdHJscmVnX3N5bmMgICAgICAgICAgOiA0Owo+PiAgICAgICAgICB1bnNpZ25lZCBpbnQgd3Jp dGVfY3RybHJlZ19vbmNoYW5nZW9ubHkgIDogNDsKPj4gLSAgICAgICAgdW5zaWduZWQgaW50IG1v dl90b19tc3JfZW5hYmxlZCAgICAgICAgICA6IDE7Cj4+IC0gICAgICAgIHVuc2lnbmVkIGludCBt b3ZfdG9fbXNyX2V4dGVuZGVkICAgICAgICAgOiAxOwo+PiAgICAgICAgICB1bnNpZ25lZCBpbnQg c2luZ2xlc3RlcF9lbmFibGVkICAgICAgICAgIDogMTsKPj4gICAgICAgICAgdW5zaWduZWQgaW50 IHNvZnR3YXJlX2JyZWFrcG9pbnRfZW5hYmxlZCA6IDE7Cj4+ICAgICAgfSBtb25pdG9yOwo+PiAg Cj4+ICsgICAgdW5zaWduZWQgbG9uZyAqbW9uaXRvcl9tc3JfYml0bWFwOwo+PiArCj4+ICAgICAg LyogTWVtX2FjY2VzcyBlbXVsYXRpb24gY29udHJvbCAqLwo+PiAgICAgIGJvb2xfdCBtZW1fYWNj ZXNzX2VtdWxhdGVfZWFjaF9yZXA7Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2h2bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKPj4gaW5kZXgg N2I3ZmYzZi4uOWQxYzBlZiAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v aHZtLmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKPj4gQEAgLTIxMSw3 ICsyMTEsNyBAQCBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIHsKPj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqZWF4LCB1aW50MzJfdCAqZWJ4LAo+PiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICplY3gsIHVpbnQzMl90ICpl ZHgpOwo+PiAgCj4+IC0gICAgdm9pZCAoKmVuYWJsZV9tc3JfZXhpdF9pbnRlcmNlcHRpb24pKHN0 cnVjdCBkb21haW4gKmQpOwo+PiArICAgIHZvaWQgKCplbmFibGVfbXNyX2ludGVyY2VwdGlvbiko c3RydWN0IGRvbWFpbiAqZCwgdWludDMyX3QgbXNyKTsKPj4gICAgICBib29sX3QgKCppc19zaW5n bGVzdGVwX3N1cHBvcnRlZCkodm9pZCk7Cj4+ICAgICAgaW50ICgqc2V0X21vZGUpKHN0cnVjdCB2 Y3B1ICp2LCBpbnQgbW9kZSk7Cj4+ICAKPj4gQEAgLTU2NSwxMSArNTY1LDExIEBAIHN0YXRpYyBp bmxpbmUgZW51bSBodm1faW50YmxrIG5odm1faW50ZXJydXB0X2Jsb2NrZWQoc3RydWN0IHZjcHUg KnYpCj4+ICAgICAgcmV0dXJuIGh2bV9mdW5jcy5uaHZtX2ludHJfYmxvY2tlZCh2KTsKPj4gIH0K Pj4gIAo+PiAtc3RhdGljIGlubGluZSBib29sX3QgaHZtX2VuYWJsZV9tc3JfZXhpdF9pbnRlcmNl cHRpb24oc3RydWN0IGRvbWFpbiAqZCkKPj4gK3N0YXRpYyBpbmxpbmUgYm9vbF90IGh2bV9lbmFi bGVfbXNyX2ludGVyY2VwdGlvbihzdHJ1Y3QgZG9tYWluICpkLCB1aW50MzJfdCBtc3IpCj4+ICB7 Cj4+IC0gICAgaWYgKCBodm1fZnVuY3MuZW5hYmxlX21zcl9leGl0X2ludGVyY2VwdGlvbiApCj4+ ICsgICAgaWYgKCBodm1fZnVuY3MuZW5hYmxlX21zcl9pbnRlcmNlcHRpb24gKQo+PiAgICAgIHsK Pj4gLSAgICAgICAgaHZtX2Z1bmNzLmVuYWJsZV9tc3JfZXhpdF9pbnRlcmNlcHRpb24oZCk7Cj4+ ICsgICAgICAgIGh2bV9mdW5jcy5lbmFibGVfbXNyX2ludGVyY2VwdGlvbihkLCBtc3IpOwo+PiAg ICAgICAgICByZXR1cm4gMTsKPj4gICAgICB9Cj4+ICAKPj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgv dm1jcy5oCj4+IGluZGV4IGI1NGY1MmYuLjdiZjUzMjYgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNs dWRlL2FzbS14ODYvaHZtL3ZteC92bWNzLmgKPj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vdm14L3ZtY3MuaAo+PiBAQCAtNTYyLDEzICs1NjIsNiBAQCBlbnVtIHZtY3NfZmllbGQgewo+ PiAgICAgIEhPU1RfUklQICAgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMDA2YzE2LAo+PiAg fTsKPj4gIAo+PiAtLyoKPj4gLSAqIEEgc2V0IG9mIE1TUi1zIHRoYXQgbmVlZCB0byBiZSBlbmFi bGVkIGZvciBtZW1vcnkgaW50cm9zcGVjdGlvbgo+PiAtICogdG8gd29yay4KPj4gLSAqLwo+PiAt ZXh0ZXJuIGNvbnN0IHUzMiB2bXhfaW50cm9zcGVjdGlvbl9mb3JjZV9lbmFibGVkX21zcnNbXTsK Pj4gLWV4dGVybiBjb25zdCB1bnNpZ25lZCBpbnQgdm14X2ludHJvc3BlY3Rpb25fZm9yY2VfZW5h YmxlZF9tc3JzX3NpemU7Cj4+IC0KPj4gICNkZWZpbmUgVk1DU19WUElEX1dJRFRIIDE2Cj4+ICAK Pj4gICNkZWZpbmUgTVNSX1RZUEVfUiAxCj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20t eDg2L21vbml0b3IuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW9uaXRvci5oCj4+IGluZGV4IDA5 NTRiNTkuLjc0ZTViMWIgMTAwNjQ0Cj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbW9uaXRv ci5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW9uaXRvci5oCj4+IEBAIC01MCw0ICs1 MCw2IEBAIGludCBhcmNoX21vbml0b3JfZG9tY3RsX29wKHN0cnVjdCBkb21haW4gKmQsIHN0cnVj dCB4ZW5fZG9tY3RsX21vbml0b3Jfb3AgKm1vcCkKPj4gIGludCBhcmNoX21vbml0b3JfZG9tY3Rs X2V2ZW50KHN0cnVjdCBkb21haW4gKmQsCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgeGVuX2RvbWN0bF9tb25pdG9yX29wICptb3ApOwo+PiAgCj4+ICtib29sX3QgYXJj aF9tb25pdG9yX2lzX21zcl9lbmFibGVkKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsIHUzMiBtc3Ip Owo+PiArCj4+ICAjZW5kaWYgLyogX19BU01fWDg2X01PTklUT1JfSF9fICovCj4+IGRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9t Y3RsLmgKPj4gaW5kZXggMjQ1NzY5OC4uODc1YzA5YSAxMDA2NDQKPj4gLS0tIGEveGVuL2luY2x1 ZGUvcHVibGljL2RvbWN0bC5oCj4+ICsrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaAo+ PiBAQCAtMTEwNyw4ICsxMTA3LDcgQEAgc3RydWN0IHhlbl9kb21jdGxfbW9uaXRvcl9vcCB7Cj4+ ICAgICAgICAgIH0gbW92X3RvX2NyOwo+PiAgCj4+ICAgICAgICAgIHN0cnVjdCB7Cj4+IC0gICAg ICAgICAgICAvKiBFbmFibGUgdGhlIGNhcHR1cmUgb2YgYW4gZXh0ZW5kZWQgc2V0IG9mIE1TUnMg Ki8KPj4gLSAgICAgICAgICAgIHVpbnQ4X3QgZXh0ZW5kZWRfY2FwdHVyZTsKPj4gKyAgICAgICAg ICAgIHVpbnQzMl90IG1zcjsKPiAKPiBXaG9hIHRoZXJlLiBJc24ndCBpdCBleHBhbmRpbmcgdGhl IHN0cnVjdHVyZT8gV2lsbCB0aGlzIGJlIGJhY2t3YXJkcwo+IGNvbXBhdGlibGU/IFdoYXQgaWYg c29tZWJvZHkgaXMgdXNpbmcgYW4gb2xkZXIgdmVyc2lvbiBvZiB4ZW4tYWNjZXNzCj4gYWdhaW5z dCB0aGlzIGh5cGVydmlzb3I/IFdpbGwgdGhleSB3b3JrPwo+IAo+IFBlcmhhcHMgdGhpcyBzaG91 bGQgaGF2ZSBhIG5ldyBzdHJ1Y3QgLyBzdWItb3BzPyBBbmQgdGhlIG9sZAo+ICdtb3ZfdG9fbXNy JyB3aWxsIGp1c3QgcmUtdXNlIHRoaXMgbmV3IGZhbmdsZWQgY29kZT8KCkluIGFkZGl0aW9uIHRv IEFuZHJldydzIGNvbW1lbnRzLCBJIHRoaW5rIHNpbXBseSBjaGFuZ2luZwpWTV9FVkVOVF9JTlRF UkZBQ0VfVkVSU0lPTiBzaG91bGQgYmUgZW5vdWdoIGZvciB4ZW4tYWNjZXNzLWxpa2UgY2xpZW50 cwp0byBmaWd1cmUgb3V0IHRoZSBpbmNvbXBhdGliaWxpdHkuCgoKVGhhbmtzLApSYXp2YW4KCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv eGVuLWRldmVsCg==