From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tamas K Lengyel Subject: Re: [PATCH 2/2] x86/vm_event: Allow returning i-cache for emulation Date: Fri, 16 Sep 2016 09:37:09 -0600 Message-ID: References: <20160913181223.1459-1-tamas.lengyel@zentific.com> <20160913181223.1459-2-tamas.lengyel@zentific.com> <7f0354d8-9cb2-82f7-5292-e67ce19d2780@bitdefender.com> <6e7803c5-6ab2-2472-4a86-9f7339633d3d@bitdefender.com> <9cc478e9-a47b-7330-9c07-55913e8e4406@bitdefender.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 1bkvCT-0005bT-1K for xen-devel@lists.xenproject.org; Fri, 16 Sep 2016 15:37:13 +0000 Received: by mail-vk0-f67.google.com with SMTP id 192so1325077vkl.0 for ; Fri, 16 Sep 2016 08:37:10 -0700 (PDT) In-Reply-To: <9cc478e9-a47b-7330-9c07-55913e8e4406@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Razvan Cojocaru Cc: Kevin Tian , Stefano Stabellini , Jan Beulich , George Dunlap , Andrew Cooper , Julien Grall , Paul Durrant , Jun Nakajima , "xen-devel@lists.xenproject.org" List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBTZXAgMTYsIDIwMTYgYXQgMToyMSBBTSwgUmF6dmFuIENvam9jYXJ1CjxyY29qb2Nh cnVAYml0ZGVmZW5kZXIuY29tPiB3cm90ZToKPiBPbiAwOS8xNS8xNiAyMDowOCwgUmF6dmFuIENv am9jYXJ1IHdyb3RlOgo+PiBPbiAwOS8xNS8xNiAxOTozNiwgVGFtYXMgSyBMZW5neWVsIHdyb3Rl Ogo+Pj4gT24gV2VkLCBTZXAgMTQsIDIwMTYgYXQgMTo1OCBBTSwgUmF6dmFuIENvam9jYXJ1Cj4+ PiA8cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNvbT4gd3JvdGU6Cj4+Pj4gT24gMDkvMTMvMjAxNiAw OToxMiBQTSwgVGFtYXMgSyBMZW5neWVsIHdyb3RlOgo+Pj4+PiBXaGVuIGVtdWxhdGluZyBpbnN0 cnVjdGlvbnMgdGhlIGVtdWxhdG9yIG1haW50YWlucyBhIHNtYWxsIGktY2FjaGUgZmV0Y2hlZAo+ Pj4+PiBmcm9tIHRoZSBndWVzdCBtZW1vcnkuIFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgdm1fZXZl bnQgaW50ZXJmYWNlIHRvIGFsbG93Cj4+Pj4+IHJldHVybmluZyB0aGlzIGktY2FjaGUgdmlhIHRo ZSB2bV9ldmVudCByZXNwb25zZSBpbnN0ZWFkLgo+Pj4+Pgo+Pj4+PiBXaGVuIHJlc3BvbmRpbmcg dG8gYSBTT0ZUV0FSRV9CUkVBS1BPSU5UIGV2ZW50IChJTlQzKSB0aGUgbW9uaXRvciBzdWJzY3Jp YmVyCj4+Pj4+IG5vcm1hbGx5IGhhcyB0byByZW1vdmUgdGhlIElOVDMgZnJvbSBtZW1vcnkgLSBz aW5nbGVzdGVwIC0gcGxhY2UgYmFjayBJTlQzCj4+Pj4+IHRvIGFsbG93IHRoZSBndWVzdCB0byBj b250aW51ZSBleGVjdXRpb24uIFRoaXMgcm91dGluZSBob3dldmVyIGlzIHN1c2NlcHRpYmxlCj4+ Pj4+IHRvIGEgcmFjZS1jb25kaXRpb24gb24gbXVsdGktdkNQVSBndWVzdHMuIEJ5IGFsbG93aW5n IHRoZSBzdWJzY3JpYmVyIHRvIHJldHVybgo+Pj4+PiB0aGUgaS1jYWNoZSB0byBiZSB1c2VkIGZv ciBlbXVsYXRpb24gaXQgY2FuIHNpZGUtc3RlcCB0aGUgcHJvYmxlbSBieSByZXR1cm5pbmcKPj4+ Pj4gYSBjbGVhbiBidWZmZXIgd2l0aG91dCB0aGUgSU5UMyBwcmVzZW50Lgo+Pj4+Pgo+Pj4+PiBB cyBwYXJ0IG9mIHRoaXMgcGF0Y2ggd2UgcmVuYW1lIGh2bV9tZW1fYWNjZXNzX2VtdWxhdGVfb25l IHRvCj4+Pj4+IGh2bV9lbXVsYXRlX29uZV92bV9ldmVudCB0byBiZXR0ZXIgcmVmbGVjdCB0aGF0 IGl0IGlzIHVzZWQgaW4gdmFyaW91cyB2bV9ldmVudAo+Pj4+PiBzY2VuYXJpb3Mgbm93LCBub3Qg anVzdCBpbiByZXNwb25zZSB0byBtZW1fYWNjZXNzIGV2ZW50cy4KPj4+Pj4KPj4+Pj4gU2lnbmVk LW9mZi1ieTogVGFtYXMgSyBMZW5neWVsIDx0YW1hcy5sZW5neWVsQHplbnRpZmljLmNvbT4KPj4+ Pj4gLS0tCj4+Pj4+IENjOiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgo+ Pj4+PiBDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgo+Pj4+PiBDYzogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KPj4+Pj4gQ2M6IEp1biBOYWthamlt YSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4KPj4+Pj4gQ2M6IEtldmluIFRpYW4gPGtldmluLnRp YW5AaW50ZWwuY29tPgo+Pj4+PiBDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5j aXRyaXguY29tPgo+Pj4+PiBDYzogUmF6dmFuIENvam9jYXJ1IDxyY29qb2NhcnVAYml0ZGVmZW5k ZXIuY29tPgo+Pj4+PiBDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgo+Pj4+PiBDYzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KPj4+Pj4K Pj4+Pj4gTm90ZTogVGhpcyBwYXRjaCBvbmx5IGhhcyBiZWVuIGNvbXBpbGUtdGVzdGVkLgo+Pj4+ PiAtLS0KPj4+Pj4gIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jICAgICAgICB8IDQ0ICsrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+Pj4+PiAgeGVuL2FyY2gveDg2L2h2 bS9odm0uYyAgICAgICAgICAgIHwgIDkgKysrKystLS0KPj4+Pj4gIHhlbi9hcmNoL3g4Ni9odm0v dm14L3ZteC5jICAgICAgICB8ICAxICsKPj4+Pj4gIHhlbi9hcmNoL3g4Ni92bV9ldmVudC5jICAg ICAgICAgICB8ICA5ICsrKysrKystCj4+Pj4+ICB4ZW4vY29tbW9uL3ZtX2V2ZW50LmMgICAgICAg ICAgICAgfCAgMSAtCj4+Pj4+ICB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9lbXVsYXRlLmggfCAg OCArKysrLS0tCj4+Pj4+ICB4ZW4vaW5jbHVkZS9hc20teDg2L3ZtX2V2ZW50LmggICAgfCAgMyAr Ky0KPj4+Pj4gIHhlbi9pbmNsdWRlL3B1YmxpYy92bV9ldmVudC5oICAgICB8IDE2ICsrKysrKysr KysrKystCj4+Pj4+ICA4IGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDI0IGRlbGV0 aW9ucygtKQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRl LmMgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+Pj4+PiBpbmRleCBjYzI1Njc2Li41MDRl ZDM1IDEwMDY0NAo+Pj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+Pj4+PiAr KysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwo+Pj4+PiBAQCAtNzYsOSArNzYsOSBAQCBz dGF0aWMgaW50IHNldF9jb250ZXh0X2RhdGEodm9pZCAqYnVmZmVyLCB1bnNpZ25lZCBpbnQgc2l6 ZSkKPj4+Pj4gICAgICBpZiAoIGN1cnItPmFyY2gudm1fZXZlbnQgKQo+Pj4+PiAgICAgIHsKPj4+ Pj4gICAgICAgICAgdW5zaWduZWQgaW50IHNhZmVfc2l6ZSA9Cj4+Pj4+IC0gICAgICAgICAgICBt aW4oc2l6ZSwgY3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bF9yZWFkX2RhdGEuc2l6ZSk7Cj4+Pj4+ ICsgICAgICAgICAgICBtaW4oc2l6ZSwgY3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bF9yZWFkLnNp emUpOwo+Pj4+Pgo+Pj4+PiAtICAgICAgICBtZW1jcHkoYnVmZmVyLCBjdXJyLT5hcmNoLnZtX2V2 ZW50LT5lbXVsX3JlYWRfZGF0YS5kYXRhLCBzYWZlX3NpemUpOwo+Pj4+PiArICAgICAgICBtZW1j cHkoYnVmZmVyLCBjdXJyLT5hcmNoLnZtX2V2ZW50LT5lbXVsX3JlYWQuZGF0YSwgc2FmZV9zaXpl KTsKPj4+Pj4gICAgICAgICAgbWVtc2V0KGJ1ZmZlciArIHNhZmVfc2l6ZSwgMCwgc2l6ZSAtIHNh ZmVfc2l6ZSk7Cj4+Pj4+ICAgICAgICAgIHJldHVybiBYODZFTVVMX09LQVk7Cj4+Pj4+ICAgICAg fQo+Pj4+PiBAQCAtODI3LDcgKzgyNyw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9yZWFkKAo+Pj4+ PiAgICAgIHN0cnVjdCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQgPQo+Pj4+PiAgICAg ICAgICBjb250YWluZXJfb2YoY3R4dCwgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQsIGN0eHQpOwo+ Pj4+Pgo+Pj4+PiAtICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dCkg KQo+Pj4+PiArICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRh KSApCj4+Pj4+ICAgICAgICAgIHJldHVybiBzZXRfY29udGV4dF9kYXRhKHBfZGF0YSwgYnl0ZXMp Owo+Pj4+Pgo+Pj4+PiAgICAgIHJldHVybiBfX2h2bWVtdWxfcmVhZCgKPj4+Pj4gQEAgLTEwMjks NyArMTAyOSw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9jbXB4Y2hnKAo+Pj4+PiAgICAgIHN0cnVj dCBodm1fZW11bGF0ZV9jdHh0ICpodm1lbXVsX2N0eHQgPQo+Pj4+PiAgICAgICAgICBjb250YWlu ZXJfb2YoY3R4dCwgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQsIGN0eHQpOwo+Pj4+Pgo+Pj4+PiAt ICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dCkgKQo+Pj4+PiArICAg IGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhKSApCj4+Pj4+ICAg ICAgewo+Pj4+PiAgICAgICAgICBpbnQgcmMgPSBzZXRfY29udGV4dF9kYXRhKHBfbmV3LCBieXRl cyk7Cj4+Pj4+Cj4+Pj4+IEBAIC0xMTIyLDcgKzExMjIsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxf cmVwX291dHMoCj4+Pj4+ICAgICAgcDJtX3R5cGVfdCBwMm10Owo+Pj4+PiAgICAgIGludCByYzsK Pj4+Pj4KPj4+Pj4gLSAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHQp ICkKPj4+Pj4gKyAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHRfZGF0 YSkgKQo+Pj4+PiAgICAgICAgICByZXR1cm4gaHZtZW11bF9yZXBfb3V0c19zZXRfY29udGV4dChz cmNfc2VnLCBzcmNfb2Zmc2V0LCBkc3RfcG9ydCwKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNfcGVyX3JlcCwgcmVwcywgY3R4dCk7Cj4+Pj4+ Cj4+Pj4+IEBAIC0xMjY0LDcgKzEyNjQsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX21vdnMo Cj4+Pj4+ICAgICAgaWYgKCBidWYgPT0gTlVMTCApCj4+Pj4+ICAgICAgICAgIHJldHVybiBYODZF TVVMX1VOSEFORExFQUJMRTsKPj4+Pj4KPj4+Pj4gLSAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxf Y3R4dC0+c2V0X2NvbnRleHQpICkKPj4+Pj4gKyAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4 dC0+c2V0X2NvbnRleHRfZGF0YSkgKQo+Pj4+PiAgICAgIHsKPj4+Pj4gICAgICAgICAgcmMgPSBz ZXRfY29udGV4dF9kYXRhKGJ1ZiwgYnl0ZXMpOwo+Pj4+Pgo+Pj4+PiBAQCAtMTQ3MCw3ICsxNDcw LDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JlYWRfaW8oCj4+Pj4+Cj4+Pj4+ICAgICAgKnZhbCA9 IDA7Cj4+Pj4+Cj4+Pj4+IC0gICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250 ZXh0KSApCj4+Pj4+ICsgICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0 X2RhdGEpICkKPj4+Pj4gICAgICAgICAgcmV0dXJuIHNldF9jb250ZXh0X2RhdGEodmFsLCBieXRl cyk7Cj4+Pj4+Cj4+Pj4+ICAgICAgcmV0dXJuIGh2bWVtdWxfZG9fcGlvX2J1ZmZlcihwb3J0LCBi eXRlcywgSU9SRVFfUkVBRCwgdmFsKTsKPj4+Pj4gQEAgLTE3OTMsNyArMTc5MywxNCBAQCBzdGF0 aWMgaW50IF9odm1fZW11bGF0ZV9vbmUoc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxf Y3R4dCwKPj4+Pj4gICAgICAgICAgcGZlYyB8PSBQRkVDX3VzZXJfbW9kZTsKPj4+Pj4KPj4+Pj4g ICAgICBodm1lbXVsX2N0eHQtPmluc25fYnVmX2VpcCA9IHJlZ3MtPmVpcDsKPj4+Pj4gLSAgICBp ZiAoICF2aW8tPm1taW9faW5zbl9ieXRlcyApCj4+Pj4+ICsKPj4+Pj4gKyAgICBpZiAoIHVubGlr ZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHRfaW5zbikgJiYgY3Vyci0+YXJjaC52bV9ldmVu dCApCj4+Pj4+ICsgICAgewo+Pj4+PiArICAgICAgICBodm1lbXVsX2N0eHQtPmluc25fYnVmX2J5 dGVzID0gc2l6ZW9mKGN1cnItPmFyY2gudm1fZXZlbnQtPmVtdWxfaW5zbik7Cj4+Pj4+ICsgICAg ICAgIG1lbWNweShodm1lbXVsX2N0eHQtPmluc25fYnVmLCAmY3Vyci0+YXJjaC52bV9ldmVudC0+ ZW11bF9pbnNuLAo+Pj4+PiArICAgICAgICAgICAgICAgaHZtZW11bF9jdHh0LT5pbnNuX2J1Zl9i eXRlcyk7Cj4+Pj4+ICsgICAgfQo+Pj4+PiArICAgIGVsc2UgaWYgKCAhdmlvLT5tbWlvX2luc25f Ynl0ZXMgKQo+Pj4+PiAgICAgIHsKPj4+Pj4gICAgICAgICAgaHZtZW11bF9jdHh0LT5pbnNuX2J1 Zl9ieXRlcyA9Cj4+Pj4+ICAgICAgICAgICAgICBodm1fZ2V0X2luc25fYnl0ZXMoY3VyciwgaHZt ZW11bF9jdHh0LT5pbnNuX2J1ZikgPzoKPj4+Pj4gQEAgLTE5MzEsNyArMTkzOCw3IEBAIGludCBo dm1fZW11bGF0ZV9vbmVfbW1pbyh1bnNpZ25lZCBsb25nIG1mbiwgdW5zaWduZWQgbG9uZyBnbGEp Cj4+Pj4+ICAgICAgcmV0dXJuIHJjOwo+Pj4+PiAgfQo+Pj4+Pgo+Pj4+PiAtdm9pZCBodm1fbWVt X2FjY2Vzc19lbXVsYXRlX29uZShlbnVtIGVtdWxfa2luZCBraW5kLCB1bnNpZ25lZCBpbnQgdHJh cG5yLAo+Pj4+PiArdm9pZCBodm1fZW11bGF0ZV9vbmVfdm1fZXZlbnQoZW51bSBlbXVsX2tpbmQg a2luZCwgdW5zaWduZWQgaW50IHRyYXBuciwKPj4+Pj4gICAgICB1bnNpZ25lZCBpbnQgZXJyY29k ZSkKPj4+Pj4gIHsKPj4+Pj4gICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCBjdHggPSB7eyAw IH19Owo+Pj4+PiBAQCAtMTk0NCwxMSArMTk1MSwxOSBAQCB2b2lkIGh2bV9tZW1fYWNjZXNzX2Vt dWxhdGVfb25lKGVudW0gZW11bF9raW5kIGtpbmQsIHVuc2lnbmVkIGludCB0cmFwbnIsCj4+Pj4+ ICAgICAgY2FzZSBFTVVMX0tJTkRfTk9XUklURToKPj4+Pj4gICAgICAgICAgcmMgPSBodm1fZW11 bGF0ZV9vbmVfbm9fd3JpdGUoJmN0eCk7Cj4+Pj4+ICAgICAgICAgIGJyZWFrOwo+Pj4+PiAtICAg IGNhc2UgRU1VTF9LSU5EX1NFVF9DT05URVhUOgo+Pj4+PiAtICAgICAgICBjdHguc2V0X2NvbnRl eHQgPSAxOwo+Pj4+PiAtICAgICAgICAvKiBJbnRlbnRpb25hbCBmYWxsLXRocm91Z2guICovCj4+ Pj4+IC0gICAgZGVmYXVsdDoKPj4+Pj4gKyAgICBjYXNlIEVNVUxfS0lORF9TRVRfQ09OVEVYVF9E QVRBOgo+Pj4+PiArICAgICAgICBjdHguc2V0X2NvbnRleHRfZGF0YSA9IDE7Cj4+Pj4+ICsgICAg ICAgIHJjID0gaHZtX2VtdWxhdGVfb25lKCZjdHgpOwo+Pj4+PiArICAgICAgICBicmVhazsKPj4+ Pj4gKyAgICBjYXNlIEVNVUxfS0lORF9TRVRfQ09OVEVYVF9JTlNOOgo+Pj4+PiArICAgICAgICBj dHguc2V0X2NvbnRleHRfaW5zbiA9IDE7Cj4+Pj4+ICAgICAgICAgIHJjID0gaHZtX2VtdWxhdGVf b25lKCZjdHgpOwo+Pj4+PiArICAgICAgICBicmVhazsKPj4+Pj4gKyAgICBjYXNlIEVNVUxfS0lO RF9OT1JNQUw6Cj4+Pj4+ICsgICAgICAgIHJjID0gaHZtX2VtdWxhdGVfb25lKCZjdHgpOwo+Pj4+ PiArICAgICAgICBicmVhazsKPj4+Pj4gKyAgICBkZWZhdWx0Ogo+Pj4+PiArICAgICAgICByZXR1 cm47Cj4+Pj4+ICAgICAgfQo+Pj4+Pgo+Pj4+PiAgICAgIHN3aXRjaCAoIHJjICkKPj4+Pj4gQEAg LTE5ODMsNyArMTk5OCw4IEBAIHZvaWQgaHZtX2VtdWxhdGVfcHJlcGFyZSgKPj4+Pj4gICAgICBo dm1lbXVsX2N0eHQtPmN0eHQuZm9yY2Vfd3JpdGViYWNrID0gMTsKPj4+Pj4gICAgICBodm1lbXVs X2N0eHQtPnNlZ19yZWdfYWNjZXNzZWQgPSAwOwo+Pj4+PiAgICAgIGh2bWVtdWxfY3R4dC0+c2Vn X3JlZ19kaXJ0eSA9IDA7Cj4+Pj4+IC0gICAgaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dCA9IDA7 Cj4+Pj4+ICsgICAgaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhID0gMDsKPj4+Pj4gKyAg ICBodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0X2luc24gPSAwOwo+Pj4+PiAgICAgIGh2bWVtdWxf Z2V0X3NlZ19yZWcoeDg2X3NlZ19jcywgaHZtZW11bF9jdHh0KTsKPj4+Pj4gICAgICBodm1lbXVs X2dldF9zZWdfcmVnKHg4Nl9zZWdfc3MsIGh2bWVtdWxfY3R4dCk7Cj4+Pj4+ICB9Cj4+Pj4+IGRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0u Ywo+Pj4+PiBpbmRleCBjYTk2NjQzLi43NDYyNzk0IDEwMDY0NAo+Pj4+PiAtLS0gYS94ZW4vYXJj aC94ODYvaHZtL2h2bS5jCj4+Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPj4+Pj4g QEAgLTQ4OSwxMyArNDg5LDE2IEBAIHZvaWQgaHZtX2RvX3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdikK Pj4+Pj4KPj4+Pj4gICAgICAgICAgICAgIGlmICggdi0+YXJjaC52bV9ldmVudC0+ZW11bGF0ZV9m bGFncyAmCj4+Pj4+ICAgICAgICAgICAgICAgICAgIFZNX0VWRU5UX0ZMQUdfU0VUX0VNVUxfUkVB RF9EQVRBICkKPj4+Pj4gLSAgICAgICAgICAgICAgICBraW5kID0gRU1VTF9LSU5EX1NFVF9DT05U RVhUOwo+Pj4+PiArICAgICAgICAgICAgICAgIGtpbmQgPSBFTVVMX0tJTkRfU0VUX0NPTlRFWFRf REFUQTsKPj4+Pj4gICAgICAgICAgICAgIGVsc2UgaWYgKCB2LT5hcmNoLnZtX2V2ZW50LT5lbXVs YXRlX2ZsYWdzICYKPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICBWTV9FVkVOVF9GTEFHX0VN VUxBVEVfTk9XUklURSApCj4+Pj4+ICAgICAgICAgICAgICAgICAga2luZCA9IEVNVUxfS0lORF9O T1dSSVRFOwo+Pj4+PiArICAgICAgICAgICAgZWxzZSBpZiAoIHYtPmFyY2gudm1fZXZlbnQtPmVt dWxhdGVfZmxhZ3MgJgo+Pj4+PiArICAgICAgICAgICAgICAgICBWTV9FVkVOVF9GTEFHX1NFVF9F TVVMX0lOU05fREFUQSApCj4+Pj4+ICsgICAgICAgICAgICAgICAga2luZCA9IEVNVUxfS0lORF9T RVRfQ09OVEVYVF9JTlNOOwo+Pj4+Pgo+Pj4+PiAtICAgICAgICAgICAgaHZtX21lbV9hY2Nlc3Nf ZW11bGF0ZV9vbmUoa2luZCwgVFJBUF9pbnZhbGlkX29wLAo+Pj4+PiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSFZNX0RFTElWRVJfTk9fRVJST1JfQ09ERSk7Cj4+Pj4+ ICsgICAgICAgICAgICBodm1fZW11bGF0ZV9vbmVfdm1fZXZlbnQoa2luZCwgVFJBUF9pbnZhbGlk X29wLAo+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhWTV9ERUxJ VkVSX05PX0VSUk9SX0NPREUpOwo+Pj4+Pgo+Pj4+PiAgICAgICAgICAgICAgdi0+YXJjaC52bV9l dmVudC0+ZW11bGF0ZV9mbGFncyA9IDA7Cj4+Pj4+ICAgICAgICAgIH0KPj4+Pj4gZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14 LmMKPj4+Pj4gaW5kZXggMjc1OWU2Zi4uZDIxNDcxNiAxMDA2NDQKPj4+Pj4gLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS92bXgvdm14LmMKPj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14 LmMKPj4+Pj4gQEAgLTU3LDYgKzU3LDcgQEAKPj4+Pj4gICNpbmNsdWRlIDxhc20vYWx0cDJtLmg+ Cj4+Pj4+ICAjaW5jbHVkZSA8YXNtL2V2ZW50Lmg+Cj4+Pj4+ICAjaW5jbHVkZSA8YXNtL21vbml0 b3IuaD4KPj4+Pj4gKyNpbmNsdWRlIDxhc20vdm1fZXZlbnQuaD4KPj4+Pj4gICNpbmNsdWRlIDxw dWJsaWMvYXJjaC14ODYvY3B1aWQuaD4KPj4+Pj4KPj4+Pj4gIHN0YXRpYyBib29sX3QgX19pbml0 ZGF0YSBvcHRfZm9yY2VfZXB0Owo+Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3ZtX2V2 ZW50LmMgYi94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYwo+Pj4+PiBpbmRleCAzNDNiOWM4Li4wM2Jl ZWQzIDEwMDY0NAo+Pj4+PiAtLS0gYS94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYwo+Pj4+PiArKysg Yi94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYwo+Pj4+PiBAQCAtMjA5LDExICsyMDksMTggQEAgdm9p ZCB2bV9ldmVudF9lbXVsYXRlX2NoZWNrKHN0cnVjdCB2Y3B1ICp2LCB2bV9ldmVudF9yZXNwb25z ZV90ICpyc3ApCj4+Pj4+ICAgICAgICAgIGlmICggcDJtX21lbV9hY2Nlc3NfZW11bGF0ZV9jaGVj ayh2LCByc3ApICkKPj4+Pj4gICAgICAgICAgewo+Pj4+PiAgICAgICAgICAgICAgaWYgKCByc3At PmZsYWdzICYgVk1fRVZFTlRfRkxBR19TRVRfRU1VTF9SRUFEX0RBVEEgKQo+Pj4+PiAtICAgICAg ICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxfcmVhZF9kYXRhID0gcnNwLT5kYXRhLmVt dWxfcmVhZF9kYXRhOwo+Pj4+PiArICAgICAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVt dWxfcmVhZCA9IHJzcC0+ZGF0YS5lbXVsLnJlYWQ7Cj4+Pj4+Cj4+Pj4+ICAgICAgICAgICAgICB2 LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdzID0gcnNwLT5mbGFnczsKPj4+Pj4gICAgICAg ICAgfQo+Pj4+PiAgICAgICAgICBicmVhazsKPj4+Pj4gKyAgICBjYXNlIFZNX0VWRU5UX1JFQVNP Tl9TT0ZUV0FSRV9CUkVBS1BPSU5UOgo+Pj4+PiArICAgICAgICBpZiAoIHJzcC0+ZmxhZ3MgJiBW TV9FVkVOVF9GTEFHX1NFVF9FTVVMX0lOU05fREFUQSApCj4+Pj4+ICsgICAgICAgIHsKPj4+Pj4g KyAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxfaW5zbiA9IHJzcC0+ZGF0YS5lbXVs Lmluc247Cj4+Pj4+ICsgICAgICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdz ID0gcnNwLT5mbGFnczsKPj4+Pj4gKyAgICAgICAgfQo+Pj4+PiArICAgICAgICBicmVhazsKPj4+ Pj4gICAgICBkZWZhdWx0Ogo+Pj4+PiAgICAgICAgICBicmVhazsKPj4+Pj4gICAgICB9Owo+Pj4+ PiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi92bV9ldmVudC5jIGIveGVuL2NvbW1vbi92bV9ldmVu dC5jCj4+Pj4+IGluZGV4IDkwN2FiNDAuLmQ4ZWU3ZjMgMTAwNjQ0Cj4+Pj4+IC0tLSBhL3hlbi9j b21tb24vdm1fZXZlbnQuYwo+Pj4+PiArKysgYi94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKPj4+Pj4g QEAgLTM5OCw3ICszOTgsNiBAQCB2b2lkIHZtX2V2ZW50X3Jlc3VtZShzdHJ1Y3QgZG9tYWluICpk LCBzdHJ1Y3Qgdm1fZXZlbnRfZG9tYWluICp2ZWQpCj4+Pj4+ICAgICAgICAgICAqIEluIHNvbWUg Y2FzZXMgdGhlIHJlc3BvbnNlIHR5cGUgbmVlZHMgZXh0cmEgaGFuZGxpbmcsIHNvIGhlcmUKPj4+ Pj4gICAgICAgICAgICogd2UgY2FsbCB0aGUgYXBwcm9wcmlhdGUgaGFuZGxlcnMuCj4+Pj4+ICAg ICAgICAgICAqLwo+Pj4+PiAtCj4+Pj4+ICAgICAgICAgIC8qIENoZWNrIGZsYWdzIHdoaWNoIGFw cGx5IG9ubHkgd2hlbiB0aGUgdkNQVSBpcyBwYXVzZWQgKi8KPj4+Pj4gICAgICAgICAgaWYgKCBh dG9taWNfcmVhZCgmdi0+dm1fZXZlbnRfcGF1c2VfY291bnQpICkKPj4+Pj4gICAgICAgICAgewo+ Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZW11bGF0ZS5oIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni9odm0vZW11bGF0ZS5oCj4+Pj4+IGluZGV4IDNhYWJjYmUuLmI1MmY5 OWUgMTAwNjQ0Cj4+Pj4+IC0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaAo+ Pj4+PiArKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9lbXVsYXRlLmgKPj4+Pj4gQEAgLTM0 LDIwICszNCwyMiBAQCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCB7Cj4+Pj4+Cj4+Pj4+ICAgICAg dWludDMyX3QgaW50cl9zaGFkb3c7Cj4+Pj4+Cj4+Pj4+IC0gICAgYm9vbF90IHNldF9jb250ZXh0 Owo+Pj4+PiArICAgIGJvb2xfdCBzZXRfY29udGV4dF9kYXRhOwo+Pj4+PiArICAgIGJvb2xfdCBz ZXRfY29udGV4dF9pbnNuOwo+Pj4+PiAgfTsKPj4+Pj4KPj4+Pj4gIGVudW0gZW11bF9raW5kIHsK Pj4+Pj4gICAgICBFTVVMX0tJTkRfTk9STUFMLAo+Pj4+PiAgICAgIEVNVUxfS0lORF9OT1dSSVRF LAo+Pj4+PiAtICAgIEVNVUxfS0lORF9TRVRfQ09OVEVYVAo+Pj4+PiArICAgIEVNVUxfS0lORF9T RVRfQ09OVEVYVF9EQVRBLAo+Pj4+PiArICAgIEVNVUxfS0lORF9TRVRfQ09OVEVYVF9JTlNOCj4+ Pj4KPj4+PiBTaW5jZSB0aGlzIGJyZWFrcyBjb21waWxhdGlvbiBvZiBleGlzdGluZyBjbGllbnRz LCBJIHRoaW5rIHdlIHNob3VsZAo+Pj4+IGluY3JlbWVudCBzb21lIG1hY3JvIHRvIGFsb3cgZm9y IGNvbXBpbGUtdGltZSBzd2l0Y2hpbmcgKG1heWJlCj4+Pj4gVk1fRVZFTlRfSU5URVJGQUNFX1ZF UlNJT04/KS4KPj4+Cj4+PiBJJ20gbm90IHN1cmUgSSBmb2xsb3cgLSB0aGlzIGlzIGEgWGVuIGlu dGVybmFsLW9ubHkgZW51bWVyYXRpb24uIFdoYXQKPj4+IGtpbmQtb2YgY2xpZW50cyBhcmUgeW91 IHJlZmVycmluZyB0bz8KPj4KPj4gTmV2ZXJtaW5kLCBJIHRob3VnaHQgdGhlc2UgY2hhbmdlcyBw cm9wYWdhdGUgdG8gdGhlIHRvb2xzdGFjayBoZWFkZXJzLgo+PiBTb3JyeSBmb3IgdGhlIGNvbmZ1 c2lvbi4KPgo+IE9uIHNlY29uZCB0aG91Z2h0IChhbmQgYSBuaWdodCdzIHJlc3QpLCB0aGUgcHJv YmxlbSBpcyByZWFsLiBJJ3ZlIG1hZGUKPiBpdCBhIHBvaW50IHRvIHRlc3QgdGhlIHBhdGNoZXMg dG9kYXkgYmVmb3JlIHJlLXJldmlld2luZyB0aGVtLCBhbmQgdGhpcwo+IGhhcHBlbmVkOgo+Cj4g YmR2bWl4ZW5ldmVudG1hbmFnZXIuY3BwOjM1OTo0NjogZXJyb3I6IOKAmHVuaW9uIHZtX2V2ZW50 X3N0Ojo8YW5vbnltb3VzPuKAmQo+IGhhcyBubyBtZW1iZXIgbmFtZWQg4oCYZW11bF9yZWFkX2Rh dGHigJkKPiAgICAgICB1aW50MzJfdCByc3BEYXRhU2l6ZSA9IHNpemVvZiggcnNwLmRhdGEuZW11 bF9yZWFkX2RhdGEuZGF0YSApOwo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCj4gYmR2bWl4ZW5ldmVudG1hbmFnZXIuY3BwOjM4Njo0NDogZXJyb3I6IOKA mHVuaW9uIHZtX2V2ZW50X3N0Ojo8YW5vbnltb3VzPuKAmQo+IGhhcyBubyBtZW1iZXIgbmFtZWQg 4oCYZW11bF9yZWFkX2RhdGHigJkKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24s IHJzcC5kYXRhLmVtdWxfcmVhZF9kYXRhLmRhdGEsCj4gcnNwRGF0YVNpemUsCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCj4gYmR2bWl4ZW5ldmVudG1hbmFn ZXIuY3BwOjM4OToxNjogZXJyb3I6IOKAmHVuaW9uIHZtX2V2ZW50X3N0Ojo8YW5vbnltb3VzPuKA mQo+IGhhcyBubyBtZW1iZXIgbmFtZWQg4oCYZW11bF9yZWFkX2RhdGHigJkKPiAgICAgICAgcnNw LmRhdGEuZW11bF9yZWFkX2RhdGEuc2l6ZSA9IHJzcERhdGFTaXplOwo+ICAgICAgICAgICAgICAg ICBeCj4gbWFrZTogKioqIFtiZHZtaXhlbmV2ZW50bWFuYWdlci5vXSBFcnJvciAxCj4KPiBTbywg YXMgeW91IGNhbiBzZWUsIGV4aXN0aW5nIGNsaWVudHMgcmVhbGx5IGRvbid0IGNvbXBpbGUgd2l0 aG91dAo+IG1vZGlmaWNhdGlvbi4KPgoKSGkgUmF6dmFuLAp5ZXMsIGZvciBYZW4gNC44IHdlIGFs cmVhZHkgYnVtcGVkIHRoZSBWTV9FVkVOVF9JTlRFUkZBQ0VfVkVSU0lPTiwgc28KYW55IGNsaWVu dCBidWlsZGluZyBvbiBpdCBuZWVkIHRvIGFkYXB0IGFjY29yZGluZ2x5LiBUaGF0J3Mgd2h5IHdl CmhhdmUgdGhlIHZlcnNpb25pbmcgaW4gcGxhY2UuIFRoZSB3YXkgd2UgaGFuZGxlIHRoaXMgaW4g TGliVk1JIGlzIGJ5CmRlZmluaW5nIGEgbG9jYWwgY29weSBvZiBhbGwgc3VwcG9ydGVkIFhlbiBl dmVudHMgQUJJIHZlcnNpb25zIGFuZApidWlsZCB3aXRoIHRoYXQgcmF0aGVyIHRoZW4gd2l0aCB4 ZW4vdm1fZXZlbnQuaCBzbyB3ZSBoYXZlIGJhY2t3YXJkcwpjb21wYXRpYmlsaXR5LiBTZWUKaHR0 cHM6Ly9naXRodWIuY29tL2xpYnZtaS9saWJ2bWkvYmxvYi9tYXN0ZXIvbGlidm1pL2RyaXZlci94 ZW4veGVuX2V2ZW50c19hYmkuaC4KCkNoZWVycywKVGFtYXMKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=