From mboxrd@z Thu Jan 1 00:00:00 1970 From: Razvan Cojocaru Subject: Re: [PATCH 2/2] x86/vm_event: Allow returning i-cache for emulation Date: Wed, 14 Sep 2016 10:58:49 +0300 Message-ID: <7f0354d8-9cb2-82f7-5292-e67ce19d2780@bitdefender.com> References: <20160913181223.1459-1-tamas.lengyel@zentific.com> <20160913181223.1459-2-tamas.lengyel@zentific.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 1bk55o-0001w5-Pa for xen-devel@lists.xenproject.org; Wed, 14 Sep 2016 07:58:52 +0000 Received: from smtp02.buh.bitdefender.net (smtp.bitdefender.biz [10.17.80.76]) by mx-sr.buh.bitdefender.com (Postfix) with ESMTP id BB5747FC3D for ; Wed, 14 Sep 2016 10:58:49 +0300 (EEST) In-Reply-To: <20160913181223.1459-2-tamas.lengyel@zentific.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Tamas K Lengyel , xen-devel@lists.xenproject.org Cc: Kevin Tian , Stefano Stabellini , Jan Beulich , George Dunlap , Andrew Cooper , Julien Grall , Paul Durrant , Jun Nakajima List-Id: xen-devel@lists.xenproject.org T24gMDkvMTMvMjAxNiAwOToxMiBQTSwgVGFtYXMgSyBMZW5neWVsIHdyb3RlOgo+IFdoZW4gZW11 bGF0aW5nIGluc3RydWN0aW9ucyB0aGUgZW11bGF0b3IgbWFpbnRhaW5zIGEgc21hbGwgaS1jYWNo ZSBmZXRjaGVkCj4gZnJvbSB0aGUgZ3Vlc3QgbWVtb3J5LiBUaGlzIHBhdGNoIGV4dGVuZHMgdGhl IHZtX2V2ZW50IGludGVyZmFjZSB0byBhbGxvdwo+IHJldHVybmluZyB0aGlzIGktY2FjaGUgdmlh IHRoZSB2bV9ldmVudCByZXNwb25zZSBpbnN0ZWFkLgo+IAo+IFdoZW4gcmVzcG9uZGluZyB0byBh IFNPRlRXQVJFX0JSRUFLUE9JTlQgZXZlbnQgKElOVDMpIHRoZSBtb25pdG9yIHN1YnNjcmliZXIK PiBub3JtYWxseSBoYXMgdG8gcmVtb3ZlIHRoZSBJTlQzIGZyb20gbWVtb3J5IC0gc2luZ2xlc3Rl cCAtIHBsYWNlIGJhY2sgSU5UMwo+IHRvIGFsbG93IHRoZSBndWVzdCB0byBjb250aW51ZSBleGVj dXRpb24uIFRoaXMgcm91dGluZSBob3dldmVyIGlzIHN1c2NlcHRpYmxlCj4gdG8gYSByYWNlLWNv bmRpdGlvbiBvbiBtdWx0aS12Q1BVIGd1ZXN0cy4gQnkgYWxsb3dpbmcgdGhlIHN1YnNjcmliZXIg dG8gcmV0dXJuCj4gdGhlIGktY2FjaGUgdG8gYmUgdXNlZCBmb3IgZW11bGF0aW9uIGl0IGNhbiBz aWRlLXN0ZXAgdGhlIHByb2JsZW0gYnkgcmV0dXJuaW5nCj4gYSBjbGVhbiBidWZmZXIgd2l0aG91 dCB0aGUgSU5UMyBwcmVzZW50Lgo+IAo+IEFzIHBhcnQgb2YgdGhpcyBwYXRjaCB3ZSByZW5hbWUg aHZtX21lbV9hY2Nlc3NfZW11bGF0ZV9vbmUgdG8KPiBodm1fZW11bGF0ZV9vbmVfdm1fZXZlbnQg dG8gYmV0dGVyIHJlZmxlY3QgdGhhdCBpdCBpcyB1c2VkIGluIHZhcmlvdXMgdm1fZXZlbnQKPiBz Y2VuYXJpb3Mgbm93LCBub3QganVzdCBpbiByZXNwb25zZSB0byBtZW1fYWNjZXNzIGV2ZW50cy4K PiAKPiBTaWduZWQtb2ZmLWJ5OiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzLmxlbmd5ZWxAemVudGlm aWMuY29tPgo+IC0tLQo+IENjOiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29t Pgo+IENjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Cj4gQ2M6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cj4gQ2M6IEp1biBOYWthamltYSA8anVuLm5h a2FqaW1hQGludGVsLmNvbT4KPiBDYzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ Cj4gQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4KPiBDYzog UmF6dmFuIENvam9jYXJ1IDxyY29qb2NhcnVAYml0ZGVmZW5kZXIuY29tPgo+IENjOiBTdGVmYW5v IFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Cj4gQ2M6IEp1bGllbiBHcmFsbCA8 anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gCj4gTm90ZTogVGhpcyBwYXRjaCBvbmx5IGhhcyBiZWVu IGNvbXBpbGUtdGVzdGVkLgo+IC0tLQo+ICB4ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYyAgICAg ICAgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgeGVuL2Fy Y2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgIHwgIDkgKysrKystLS0KPiAgeGVuL2FyY2gveDg2 L2h2bS92bXgvdm14LmMgICAgICAgIHwgIDEgKwo+ICB4ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyAg ICAgICAgICAgfCAgOSArKysrKysrLQo+ICB4ZW4vY29tbW9uL3ZtX2V2ZW50LmMgICAgICAgICAg ICAgfCAgMSAtCj4gIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaCB8ICA4ICsrKyst LS0KPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni92bV9ldmVudC5oICAgIHwgIDMgKystCj4gIHhlbi9p bmNsdWRlL3B1YmxpYy92bV9ldmVudC5oICAgICB8IDE2ICsrKysrKysrKysrKystCj4gIDggZmls ZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIveGVuL2FyY2gveDg2L2h2bS9lbXVs YXRlLmMKPiBpbmRleCBjYzI1Njc2Li41MDRlZDM1IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4 Ni9odm0vZW11bGF0ZS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKPiBAQCAt NzYsOSArNzYsOSBAQCBzdGF0aWMgaW50IHNldF9jb250ZXh0X2RhdGEodm9pZCAqYnVmZmVyLCB1 bnNpZ25lZCBpbnQgc2l6ZSkKPiAgICAgIGlmICggY3Vyci0+YXJjaC52bV9ldmVudCApCj4gICAg ICB7Cj4gICAgICAgICAgdW5zaWduZWQgaW50IHNhZmVfc2l6ZSA9Cj4gLSAgICAgICAgICAgIG1p bihzaXplLCBjdXJyLT5hcmNoLnZtX2V2ZW50LT5lbXVsX3JlYWRfZGF0YS5zaXplKTsKPiArICAg ICAgICAgICAgbWluKHNpemUsIGN1cnItPmFyY2gudm1fZXZlbnQtPmVtdWxfcmVhZC5zaXplKTsK PiAgCj4gLSAgICAgICAgbWVtY3B5KGJ1ZmZlciwgY3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bF9y ZWFkX2RhdGEuZGF0YSwgc2FmZV9zaXplKTsKPiArICAgICAgICBtZW1jcHkoYnVmZmVyLCBjdXJy LT5hcmNoLnZtX2V2ZW50LT5lbXVsX3JlYWQuZGF0YSwgc2FmZV9zaXplKTsKPiAgICAgICAgICBt ZW1zZXQoYnVmZmVyICsgc2FmZV9zaXplLCAwLCBzaXplIC0gc2FmZV9zaXplKTsKPiAgICAgICAg ICByZXR1cm4gWDg2RU1VTF9PS0FZOwo+ICAgICAgfQo+IEBAIC04MjcsNyArODI3LDcgQEAgc3Rh dGljIGludCBodm1lbXVsX3JlYWQoCj4gICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZt ZW11bF9jdHh0ID0KPiAgICAgICAgICBjb250YWluZXJfb2YoY3R4dCwgc3RydWN0IGh2bV9lbXVs YXRlX2N0eHQsIGN0eHQpOwo+ICAKPiAtICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5z ZXRfY29udGV4dCkgKQo+ICsgICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250 ZXh0X2RhdGEpICkKPiAgICAgICAgICByZXR1cm4gc2V0X2NvbnRleHRfZGF0YShwX2RhdGEsIGJ5 dGVzKTsKPiAgCj4gICAgICByZXR1cm4gX19odm1lbXVsX3JlYWQoCj4gQEAgLTEwMjksNyArMTAy OSw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9jbXB4Y2hnKAo+ICAgICAgc3RydWN0IGh2bV9lbXVs YXRlX2N0eHQgKmh2bWVtdWxfY3R4dCA9Cj4gICAgICAgICAgY29udGFpbmVyX29mKGN0eHQsIHN0 cnVjdCBodm1fZW11bGF0ZV9jdHh0LCBjdHh0KTsKPiAgCj4gLSAgICBpZiAoIHVubGlrZWx5KGh2 bWVtdWxfY3R4dC0+c2V0X2NvbnRleHQpICkKPiArICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9j dHh0LT5zZXRfY29udGV4dF9kYXRhKSApCj4gICAgICB7Cj4gICAgICAgICAgaW50IHJjID0gc2V0 X2NvbnRleHRfZGF0YShwX25ldywgYnl0ZXMpOwo+ICAKPiBAQCAtMTEyMiw3ICsxMTIyLDcgQEAg c3RhdGljIGludCBodm1lbXVsX3JlcF9vdXRzKAo+ICAgICAgcDJtX3R5cGVfdCBwMm10Owo+ICAg ICAgaW50IHJjOwo+ICAKPiAtICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29u dGV4dCkgKQo+ICsgICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0X2Rh dGEpICkKPiAgICAgICAgICByZXR1cm4gaHZtZW11bF9yZXBfb3V0c19zZXRfY29udGV4dChzcmNf c2VnLCBzcmNfb2Zmc2V0LCBkc3RfcG9ydCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBieXRlc19wZXJfcmVwLCByZXBzLCBjdHh0KTsKPiAgCj4gQEAgLTEy NjQsNyArMTI2NCw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9yZXBfbW92cygKPiAgICAgIGlmICgg YnVmID09IE5VTEwgKQo+ICAgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKPiAg Cj4gLSAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHQpICkKPiArICAg IGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhKSApCj4gICAgICB7 Cj4gICAgICAgICAgcmMgPSBzZXRfY29udGV4dF9kYXRhKGJ1ZiwgYnl0ZXMpOwo+ICAKPiBAQCAt MTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JlYWRfaW8oCj4gIAo+ICAgICAg KnZhbCA9IDA7Cj4gIAo+IC0gICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250 ZXh0KSApCj4gKyAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHRfZGF0 YSkgKQo+ICAgICAgICAgIHJldHVybiBzZXRfY29udGV4dF9kYXRhKHZhbCwgYnl0ZXMpOwo+ICAK PiAgICAgIHJldHVybiBodm1lbXVsX2RvX3Bpb19idWZmZXIocG9ydCwgYnl0ZXMsIElPUkVRX1JF QUQsIHZhbCk7Cj4gQEAgLTE3OTMsNyArMTc5MywxNCBAQCBzdGF0aWMgaW50IF9odm1fZW11bGF0 ZV9vbmUoc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVtdWxfY3R4dCwKPiAgICAgICAgICBw ZmVjIHw9IFBGRUNfdXNlcl9tb2RlOwo+ICAKPiAgICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZf ZWlwID0gcmVncy0+ZWlwOwo+IC0gICAgaWYgKCAhdmlvLT5tbWlvX2luc25fYnl0ZXMgKQo+ICsK PiArICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9pbnNuKSAmJiBj dXJyLT5hcmNoLnZtX2V2ZW50ICkKPiArICAgIHsKPiArICAgICAgICBodm1lbXVsX2N0eHQtPmlu c25fYnVmX2J5dGVzID0gc2l6ZW9mKGN1cnItPmFyY2gudm1fZXZlbnQtPmVtdWxfaW5zbik7Cj4g KyAgICAgICAgbWVtY3B5KGh2bWVtdWxfY3R4dC0+aW5zbl9idWYsICZjdXJyLT5hcmNoLnZtX2V2 ZW50LT5lbXVsX2luc24sCj4gKyAgICAgICAgICAgICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZf Ynl0ZXMpOwo+ICsgICAgfQo+ICsgICAgZWxzZSBpZiAoICF2aW8tPm1taW9faW5zbl9ieXRlcyAp Cj4gICAgICB7Cj4gICAgICAgICAgaHZtZW11bF9jdHh0LT5pbnNuX2J1Zl9ieXRlcyA9Cj4gICAg ICAgICAgICAgIGh2bV9nZXRfaW5zbl9ieXRlcyhjdXJyLCBodm1lbXVsX2N0eHQtPmluc25fYnVm KSA/Ogo+IEBAIC0xOTMxLDcgKzE5MzgsNyBAQCBpbnQgaHZtX2VtdWxhdGVfb25lX21taW8odW5z aWduZWQgbG9uZyBtZm4sIHVuc2lnbmVkIGxvbmcgZ2xhKQo+ICAgICAgcmV0dXJuIHJjOwo+ICB9 Cj4gIAo+IC12b2lkIGh2bV9tZW1fYWNjZXNzX2VtdWxhdGVfb25lKGVudW0gZW11bF9raW5kIGtp bmQsIHVuc2lnbmVkIGludCB0cmFwbnIsCj4gK3ZvaWQgaHZtX2VtdWxhdGVfb25lX3ZtX2V2ZW50 KGVudW0gZW11bF9raW5kIGtpbmQsIHVuc2lnbmVkIGludCB0cmFwbnIsCj4gICAgICB1bnNpZ25l ZCBpbnQgZXJyY29kZSkKPiAgewo+ICAgICAgc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgY3R4ID0g e3sgMCB9fTsKPiBAQCAtMTk0NCwxMSArMTk1MSwxOSBAQCB2b2lkIGh2bV9tZW1fYWNjZXNzX2Vt dWxhdGVfb25lKGVudW0gZW11bF9raW5kIGtpbmQsIHVuc2lnbmVkIGludCB0cmFwbnIsCj4gICAg ICBjYXNlIEVNVUxfS0lORF9OT1dSSVRFOgo+ICAgICAgICAgIHJjID0gaHZtX2VtdWxhdGVfb25l X25vX3dyaXRlKCZjdHgpOwo+ICAgICAgICAgIGJyZWFrOwo+IC0gICAgY2FzZSBFTVVMX0tJTkRf U0VUX0NPTlRFWFQ6Cj4gLSAgICAgICAgY3R4LnNldF9jb250ZXh0ID0gMTsKPiAtICAgICAgICAv KiBJbnRlbnRpb25hbCBmYWxsLXRocm91Z2guICovCj4gLSAgICBkZWZhdWx0Ogo+ICsgICAgY2Fz ZSBFTVVMX0tJTkRfU0VUX0NPTlRFWFRfREFUQToKPiArICAgICAgICBjdHguc2V0X2NvbnRleHRf ZGF0YSA9IDE7Cj4gKyAgICAgICAgcmMgPSBodm1fZW11bGF0ZV9vbmUoJmN0eCk7Cj4gKyAgICAg ICAgYnJlYWs7Cj4gKyAgICBjYXNlIEVNVUxfS0lORF9TRVRfQ09OVEVYVF9JTlNOOgo+ICsgICAg ICAgIGN0eC5zZXRfY29udGV4dF9pbnNuID0gMTsKPiAgICAgICAgICByYyA9IGh2bV9lbXVsYXRl X29uZSgmY3R4KTsKPiArICAgICAgICBicmVhazsKPiArICAgIGNhc2UgRU1VTF9LSU5EX05PUk1B TDoKPiArICAgICAgICByYyA9IGh2bV9lbXVsYXRlX29uZSgmY3R4KTsKPiArICAgICAgICBicmVh azsKPiArICAgIGRlZmF1bHQ6Cj4gKyAgICAgICAgcmV0dXJuOwo+ICAgICAgfQo+ICAKPiAgICAg IHN3aXRjaCAoIHJjICkKPiBAQCAtMTk4Myw3ICsxOTk4LDggQEAgdm9pZCBodm1fZW11bGF0ZV9w cmVwYXJlKAo+ICAgICAgaHZtZW11bF9jdHh0LT5jdHh0LmZvcmNlX3dyaXRlYmFjayA9IDE7Cj4g ICAgICBodm1lbXVsX2N0eHQtPnNlZ19yZWdfYWNjZXNzZWQgPSAwOwo+ICAgICAgaHZtZW11bF9j dHh0LT5zZWdfcmVnX2RpcnR5ID0gMDsKPiAtICAgIGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHQg PSAwOwo+ICsgICAgaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhID0gMDsKPiArICAgIGh2 bWVtdWxfY3R4dC0+c2V0X2NvbnRleHRfaW5zbiA9IDA7Cj4gICAgICBodm1lbXVsX2dldF9zZWdf cmVnKHg4Nl9zZWdfY3MsIGh2bWVtdWxfY3R4dCk7Cj4gICAgICBodm1lbXVsX2dldF9zZWdfcmVn KHg4Nl9zZWdfc3MsIGh2bWVtdWxfY3R4dCk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPiBpbmRleCBjYTk2NjQzLi43 NDYyNzk0IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKPiArKysgYi94ZW4v YXJjaC94ODYvaHZtL2h2bS5jCj4gQEAgLTQ4OSwxMyArNDg5LDE2IEBAIHZvaWQgaHZtX2RvX3Jl c3VtZShzdHJ1Y3QgdmNwdSAqdikKPiAgCj4gICAgICAgICAgICAgIGlmICggdi0+YXJjaC52bV9l dmVudC0+ZW11bGF0ZV9mbGFncyAmCj4gICAgICAgICAgICAgICAgICAgVk1fRVZFTlRfRkxBR19T RVRfRU1VTF9SRUFEX0RBVEEgKQo+IC0gICAgICAgICAgICAgICAga2luZCA9IEVNVUxfS0lORF9T RVRfQ09OVEVYVDsKPiArICAgICAgICAgICAgICAgIGtpbmQgPSBFTVVMX0tJTkRfU0VUX0NPTlRF WFRfREFUQTsKPiAgICAgICAgICAgICAgZWxzZSBpZiAoIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxh dGVfZmxhZ3MgJgo+ICAgICAgICAgICAgICAgICAgICAgICAgVk1fRVZFTlRfRkxBR19FTVVMQVRF X05PV1JJVEUgKQo+ICAgICAgICAgICAgICAgICAga2luZCA9IEVNVUxfS0lORF9OT1dSSVRFOwo+ ICsgICAgICAgICAgICBlbHNlIGlmICggdi0+YXJjaC52bV9ldmVudC0+ZW11bGF0ZV9mbGFncyAm Cj4gKyAgICAgICAgICAgICAgICAgVk1fRVZFTlRfRkxBR19TRVRfRU1VTF9JTlNOX0RBVEEgKQo+ ICsgICAgICAgICAgICAgICAga2luZCA9IEVNVUxfS0lORF9TRVRfQ09OVEVYVF9JTlNOOwo+ICAK PiAtICAgICAgICAgICAgaHZtX21lbV9hY2Nlc3NfZW11bGF0ZV9vbmUoa2luZCwgVFJBUF9pbnZh bGlkX29wLAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fREVM SVZFUl9OT19FUlJPUl9DT0RFKTsKPiArICAgICAgICAgICAgaHZtX2VtdWxhdGVfb25lX3ZtX2V2 ZW50KGtpbmQsIFRSQVBfaW52YWxpZF9vcCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEhWTV9ERUxJVkVSX05PX0VSUk9SX0NPREUpOwo+ICAKPiAgICAgICAgICAgICAg di0+YXJjaC52bV9ldmVudC0+ZW11bGF0ZV9mbGFncyA9IDA7Cj4gICAgICAgICAgfQo+IGRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jCj4gaW5kZXggMjc1OWU2Zi4uZDIxNDcxNiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94 ODYvaHZtL3ZteC92bXguYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCj4gQEAg LTU3LDYgKzU3LDcgQEAKPiAgI2luY2x1ZGUgPGFzbS9hbHRwMm0uaD4KPiAgI2luY2x1ZGUgPGFz bS9ldmVudC5oPgo+ICAjaW5jbHVkZSA8YXNtL21vbml0b3IuaD4KPiArI2luY2x1ZGUgPGFzbS92 bV9ldmVudC5oPgo+ICAjaW5jbHVkZSA8cHVibGljL2FyY2gteDg2L2NwdWlkLmg+Cj4gIAo+ICBz dGF0aWMgYm9vbF90IF9faW5pdGRhdGEgb3B0X2ZvcmNlX2VwdDsKPiBkaWZmIC0tZ2l0IGEveGVu L2FyY2gveDg2L3ZtX2V2ZW50LmMgYi94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYwo+IGluZGV4IDM0 M2I5YzguLjAzYmVlZDMgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L3ZtX2V2ZW50LmMKPiAr KysgYi94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYwo+IEBAIC0yMDksMTEgKzIwOSwxOCBAQCB2b2lk IHZtX2V2ZW50X2VtdWxhdGVfY2hlY2soc3RydWN0IHZjcHUgKnYsIHZtX2V2ZW50X3Jlc3BvbnNl X3QgKnJzcCkKPiAgICAgICAgICBpZiAoIHAybV9tZW1fYWNjZXNzX2VtdWxhdGVfY2hlY2sodiwg cnNwKSApCj4gICAgICAgICAgewo+ICAgICAgICAgICAgICBpZiAoIHJzcC0+ZmxhZ3MgJiBWTV9F VkVOVF9GTEFHX1NFVF9FTVVMX1JFQURfREFUQSApCj4gLSAgICAgICAgICAgICAgICB2LT5hcmNo LnZtX2V2ZW50LT5lbXVsX3JlYWRfZGF0YSA9IHJzcC0+ZGF0YS5lbXVsX3JlYWRfZGF0YTsKPiAr ICAgICAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxfcmVhZCA9IHJzcC0+ZGF0YS5l bXVsLnJlYWQ7Cj4gIAo+ICAgICAgICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2Zs YWdzID0gcnNwLT5mbGFnczsKPiAgICAgICAgICB9Cj4gICAgICAgICAgYnJlYWs7Cj4gKyAgICBj YXNlIFZNX0VWRU5UX1JFQVNPTl9TT0ZUV0FSRV9CUkVBS1BPSU5UOgo+ICsgICAgICAgIGlmICgg cnNwLT5mbGFncyAmIFZNX0VWRU5UX0ZMQUdfU0VUX0VNVUxfSU5TTl9EQVRBICkKPiArICAgICAg ICB7Cj4gKyAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxfaW5zbiA9IHJzcC0+ZGF0 YS5lbXVsLmluc247Cj4gKyAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxhdGVfZmxh Z3MgPSByc3AtPmZsYWdzOwo+ICsgICAgICAgIH0KPiArICAgICAgICBicmVhazsKPiAgICAgIGRl ZmF1bHQ6Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICB9Owo+IGRpZmYgLS1naXQgYS94ZW4vY29t bW9uL3ZtX2V2ZW50LmMgYi94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKPiBpbmRleCA5MDdhYjQwLi5k OGVlN2YzIDEwMDY0NAo+IC0tLSBhL3hlbi9jb21tb24vdm1fZXZlbnQuYwo+ICsrKyBiL3hlbi9j b21tb24vdm1fZXZlbnQuYwo+IEBAIC0zOTgsNyArMzk4LDYgQEAgdm9pZCB2bV9ldmVudF9yZXN1 bWUoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHZtX2V2ZW50X2RvbWFpbiAqdmVkKQo+ICAgICAg ICAgICAqIEluIHNvbWUgY2FzZXMgdGhlIHJlc3BvbnNlIHR5cGUgbmVlZHMgZXh0cmEgaGFuZGxp bmcsIHNvIGhlcmUKPiAgICAgICAgICAgKiB3ZSBjYWxsIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVy cy4KPiAgICAgICAgICAgKi8KPiAtCj4gICAgICAgICAgLyogQ2hlY2sgZmxhZ3Mgd2hpY2ggYXBw bHkgb25seSB3aGVuIHRoZSB2Q1BVIGlzIHBhdXNlZCAqLwo+ICAgICAgICAgIGlmICggYXRvbWlj X3JlYWQoJnYtPnZtX2V2ZW50X3BhdXNlX2NvdW50KSApCj4gICAgICAgICAgewo+IGRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9lbXVsYXRlLmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9lbXVsYXRlLmgKPiBpbmRleCAzYWFiY2JlLi5iNTJmOTllIDEwMDY0NAo+IC0tLSBh L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2VtdWxhdGUuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2VtdWxhdGUuaAo+IEBAIC0zNCwyMCArMzQsMjIgQEAgc3RydWN0IGh2bV9lbXVs YXRlX2N0eHQgewo+ICAKPiAgICAgIHVpbnQzMl90IGludHJfc2hhZG93Owo+ICAKPiAtICAgIGJv b2xfdCBzZXRfY29udGV4dDsKPiArICAgIGJvb2xfdCBzZXRfY29udGV4dF9kYXRhOwo+ICsgICAg Ym9vbF90IHNldF9jb250ZXh0X2luc247Cj4gIH07Cj4gIAo+ICBlbnVtIGVtdWxfa2luZCB7Cj4g ICAgICBFTVVMX0tJTkRfTk9STUFMLAo+ICAgICAgRU1VTF9LSU5EX05PV1JJVEUsCj4gLSAgICBF TVVMX0tJTkRfU0VUX0NPTlRFWFQKPiArICAgIEVNVUxfS0lORF9TRVRfQ09OVEVYVF9EQVRBLAo+ ICsgICAgRU1VTF9LSU5EX1NFVF9DT05URVhUX0lOU04KClNpbmNlIHRoaXMgYnJlYWtzIGNvbXBp bGF0aW9uIG9mIGV4aXN0aW5nIGNsaWVudHMsIEkgdGhpbmsgd2Ugc2hvdWxkCmluY3JlbWVudCBz b21lIG1hY3JvIHRvIGFsb3cgZm9yIGNvbXBpbGUtdGltZSBzd2l0Y2hpbmcgKG1heWJlClZNX0VW RU5UX0lOVEVSRkFDRV9WRVJTSU9OPykuCgoKVGhhbmtzLApSYXp2YW4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=