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: Thu, 15 Sep 2016 20:08:44 +0300 Message-ID: <6e7803c5-6ab2-2472-4a86-9f7339633d3d@bitdefender.com> References: <20160913181223.1459-1-tamas.lengyel@zentific.com> <20160913181223.1459-2-tamas.lengyel@zentific.com> <7f0354d8-9cb2-82f7-5292-e67ce19d2780@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 1bka9h-0008E4-9R for xen-devel@lists.xenproject.org; Thu, 15 Sep 2016 17:08:57 +0000 Received: from smtp03.buh.bitdefender.org (smtp.bitdefender.biz [10.17.80.77]) by mx-sr.buh.bitdefender.com (Postfix) with ESMTP id 5E0387FBFF for ; Thu, 15 Sep 2016 20:08:54 +0300 (EEST) In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Tamas K Lengyel Cc: Kevin Tian , Stefano Stabellini , Jun Nakajima , George Dunlap , Andrew Cooper , Julien Grall , Paul Durrant , Jan Beulich , "xen-devel@lists.xenproject.org" List-Id: xen-devel@lists.xenproject.org T24gMDkvMTUvMTYgMTk6MzYsIFRhbWFzIEsgTGVuZ3llbCB3cm90ZToKPiBPbiBXZWQsIFNlcCAx NCwgMjAxNiBhdCAxOjU4IEFNLCBSYXp2YW4gQ29qb2NhcnUKPiA8cmNvam9jYXJ1QGJpdGRlZmVu ZGVyLmNvbT4gd3JvdGU6Cj4+IE9uIDA5LzEzLzIwMTYgMDk6MTIgUE0sIFRhbWFzIEsgTGVuZ3ll bCB3cm90ZToKPj4+IFdoZW4gZW11bGF0aW5nIGluc3RydWN0aW9ucyB0aGUgZW11bGF0b3IgbWFp bnRhaW5zIGEgc21hbGwgaS1jYWNoZSBmZXRjaGVkCj4+PiBmcm9tIHRoZSBndWVzdCBtZW1vcnku IFRoaXMgcGF0Y2ggZXh0ZW5kcyB0aGUgdm1fZXZlbnQgaW50ZXJmYWNlIHRvIGFsbG93Cj4+PiBy ZXR1cm5pbmcgdGhpcyBpLWNhY2hlIHZpYSB0aGUgdm1fZXZlbnQgcmVzcG9uc2UgaW5zdGVhZC4K Pj4+Cj4+PiBXaGVuIHJlc3BvbmRpbmcgdG8gYSBTT0ZUV0FSRV9CUkVBS1BPSU5UIGV2ZW50IChJ TlQzKSB0aGUgbW9uaXRvciBzdWJzY3JpYmVyCj4+PiBub3JtYWxseSBoYXMgdG8gcmVtb3ZlIHRo ZSBJTlQzIGZyb20gbWVtb3J5IC0gc2luZ2xlc3RlcCAtIHBsYWNlIGJhY2sgSU5UMwo+Pj4gdG8g YWxsb3cgdGhlIGd1ZXN0IHRvIGNvbnRpbnVlIGV4ZWN1dGlvbi4gVGhpcyByb3V0aW5lIGhvd2V2 ZXIgaXMgc3VzY2VwdGlibGUKPj4+IHRvIGEgcmFjZS1jb25kaXRpb24gb24gbXVsdGktdkNQVSBn dWVzdHMuIEJ5IGFsbG93aW5nIHRoZSBzdWJzY3JpYmVyIHRvIHJldHVybgo+Pj4gdGhlIGktY2Fj aGUgdG8gYmUgdXNlZCBmb3IgZW11bGF0aW9uIGl0IGNhbiBzaWRlLXN0ZXAgdGhlIHByb2JsZW0g YnkgcmV0dXJuaW5nCj4+PiBhIGNsZWFuIGJ1ZmZlciB3aXRob3V0IHRoZSBJTlQzIHByZXNlbnQu Cj4+Pgo+Pj4gQXMgcGFydCBvZiB0aGlzIHBhdGNoIHdlIHJlbmFtZSBodm1fbWVtX2FjY2Vzc19l bXVsYXRlX29uZSB0bwo+Pj4gaHZtX2VtdWxhdGVfb25lX3ZtX2V2ZW50IHRvIGJldHRlciByZWZs ZWN0IHRoYXQgaXQgaXMgdXNlZCBpbiB2YXJpb3VzIHZtX2V2ZW50Cj4+PiBzY2VuYXJpb3Mgbm93 LCBub3QganVzdCBpbiByZXNwb25zZSB0byBtZW1fYWNjZXNzIGV2ZW50cy4KPj4+Cj4+PiBTaWdu ZWQtb2ZmLWJ5OiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzLmxlbmd5ZWxAemVudGlmaWMuY29tPgo+ Pj4gLS0tCj4+PiBDYzogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KPj4+ IENjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Cj4+PiBDYzogQW5kcmV3IENvb3Bl ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KPj4+IENjOiBKdW4gTmFrYWppbWEgPGp1bi5u YWthamltYUBpbnRlbC5jb20+Cj4+PiBDYzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5j b20+Cj4+PiBDYzogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgo+ Pj4gQ2M6IFJhenZhbiBDb2pvY2FydSA8cmNvam9jYXJ1QGJpdGRlZmVuZGVyLmNvbT4KPj4+IENj OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtlcm5lbC5vcmc+Cj4+PiBDYzogSnVs aWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KPj4+Cj4+PiBOb3RlOiBUaGlzIHBhdGNo IG9ubHkgaGFzIGJlZW4gY29tcGlsZS10ZXN0ZWQuCj4+PiAtLS0KPj4+ICB4ZW4vYXJjaC94ODYv aHZtL2VtdWxhdGUuYyAgICAgICAgfCA0NCArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0KPj4+ICB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgfCAgOSArKysr Ky0tLQo+Pj4gIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jICAgICAgICB8ICAxICsKPj4+ICB4 ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyAgICAgICAgICAgfCAgOSArKysrKysrLQo+Pj4gIHhlbi9j b21tb24vdm1fZXZlbnQuYyAgICAgICAgICAgICB8ICAxIC0KPj4+ICB4ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9lbXVsYXRlLmggfCAgOCArKysrLS0tCj4+PiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni92 bV9ldmVudC5oICAgIHwgIDMgKystCj4+PiAgeGVuL2luY2x1ZGUvcHVibGljL3ZtX2V2ZW50Lmgg ICAgIHwgMTYgKysrKysrKysrKysrKy0KPj4+ICA4IGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlv bnMoKyksIDI0IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCj4+PiBpbmRleCBjYzI1 Njc2Li41MDRlZDM1IDEwMDY0NAo+Pj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMK Pj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jCj4+PiBAQCAtNzYsOSArNzYsOSBA QCBzdGF0aWMgaW50IHNldF9jb250ZXh0X2RhdGEodm9pZCAqYnVmZmVyLCB1bnNpZ25lZCBpbnQg c2l6ZSkKPj4+ICAgICAgaWYgKCBjdXJyLT5hcmNoLnZtX2V2ZW50ICkKPj4+ICAgICAgewo+Pj4g ICAgICAgICAgdW5zaWduZWQgaW50IHNhZmVfc2l6ZSA9Cj4+PiAtICAgICAgICAgICAgbWluKHNp emUsIGN1cnItPmFyY2gudm1fZXZlbnQtPmVtdWxfcmVhZF9kYXRhLnNpemUpOwo+Pj4gKyAgICAg ICAgICAgIG1pbihzaXplLCBjdXJyLT5hcmNoLnZtX2V2ZW50LT5lbXVsX3JlYWQuc2l6ZSk7Cj4+ Pgo+Pj4gLSAgICAgICAgbWVtY3B5KGJ1ZmZlciwgY3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bF9y ZWFkX2RhdGEuZGF0YSwgc2FmZV9zaXplKTsKPj4+ICsgICAgICAgIG1lbWNweShidWZmZXIsIGN1 cnItPmFyY2gudm1fZXZlbnQtPmVtdWxfcmVhZC5kYXRhLCBzYWZlX3NpemUpOwo+Pj4gICAgICAg ICAgbWVtc2V0KGJ1ZmZlciArIHNhZmVfc2l6ZSwgMCwgc2l6ZSAtIHNhZmVfc2l6ZSk7Cj4+PiAg ICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwo+Pj4gICAgICB9Cj4+PiBAQCAtODI3LDcgKzgy Nyw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9yZWFkKAo+Pj4gICAgICBzdHJ1Y3QgaHZtX2VtdWxh dGVfY3R4dCAqaHZtZW11bF9jdHh0ID0KPj4+ICAgICAgICAgIGNvbnRhaW5lcl9vZihjdHh0LCBz dHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7Cj4+Pgo+Pj4gLSAgICBpZiAoIHVubGlrZWx5 KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHQpICkKPj4+ICsgICAgaWYgKCB1bmxpa2VseShodm1l bXVsX2N0eHQtPnNldF9jb250ZXh0X2RhdGEpICkKPj4+ICAgICAgICAgIHJldHVybiBzZXRfY29u dGV4dF9kYXRhKHBfZGF0YSwgYnl0ZXMpOwo+Pj4KPj4+ICAgICAgcmV0dXJuIF9faHZtZW11bF9y ZWFkKAo+Pj4gQEAgLTEwMjksNyArMTAyOSw3IEBAIHN0YXRpYyBpbnQgaHZtZW11bF9jbXB4Y2hn KAo+Pj4gICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCAqaHZtZW11bF9jdHh0ID0KPj4+ICAg ICAgICAgIGNvbnRhaW5lcl9vZihjdHh0LCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCwgY3R4dCk7 Cj4+Pgo+Pj4gLSAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+c2V0X2NvbnRleHQpICkK Pj4+ICsgICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0X2RhdGEpICkK Pj4+ICAgICAgewo+Pj4gICAgICAgICAgaW50IHJjID0gc2V0X2NvbnRleHRfZGF0YShwX25ldywg Ynl0ZXMpOwo+Pj4KPj4+IEBAIC0xMTIyLDcgKzExMjIsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxf cmVwX291dHMoCj4+PiAgICAgIHAybV90eXBlX3QgcDJtdDsKPj4+ICAgICAgaW50IHJjOwo+Pj4K Pj4+IC0gICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0KSApCj4+PiAr ICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhKSApCj4+PiAg ICAgICAgICByZXR1cm4gaHZtZW11bF9yZXBfb3V0c19zZXRfY29udGV4dChzcmNfc2VnLCBzcmNf b2Zmc2V0LCBkc3RfcG9ydCwKPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJ5dGVzX3Blcl9yZXAsIHJlcHMsIGN0eHQpOwo+Pj4KPj4+IEBAIC0xMjY0LDcg KzEyNjQsNyBAQCBzdGF0aWMgaW50IGh2bWVtdWxfcmVwX21vdnMoCj4+PiAgICAgIGlmICggYnVm ID09IE5VTEwgKQo+Pj4gICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwo+Pj4K Pj4+IC0gICAgaWYgKCB1bmxpa2VseShodm1lbXVsX2N0eHQtPnNldF9jb250ZXh0KSApCj4+PiAr ICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhKSApCj4+PiAg ICAgIHsKPj4+ICAgICAgICAgIHJjID0gc2V0X2NvbnRleHRfZGF0YShidWYsIGJ5dGVzKTsKPj4+ Cj4+PiBAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgc3RhdGljIGludCBodm1lbXVsX3JlYWRfaW8oCj4+ Pgo+Pj4gICAgICAqdmFsID0gMDsKPj4+Cj4+PiAtICAgIGlmICggdW5saWtlbHkoaHZtZW11bF9j dHh0LT5zZXRfY29udGV4dCkgKQo+Pj4gKyAgICBpZiAoIHVubGlrZWx5KGh2bWVtdWxfY3R4dC0+ c2V0X2NvbnRleHRfZGF0YSkgKQo+Pj4gICAgICAgICAgcmV0dXJuIHNldF9jb250ZXh0X2RhdGEo dmFsLCBieXRlcyk7Cj4+Pgo+Pj4gICAgICByZXR1cm4gaHZtZW11bF9kb19waW9fYnVmZmVyKHBv cnQsIGJ5dGVzLCBJT1JFUV9SRUFELCB2YWwpOwo+Pj4gQEAgLTE3OTMsNyArMTc5MywxNCBAQCBz dGF0aWMgaW50IF9odm1fZW11bGF0ZV9vbmUoc3RydWN0IGh2bV9lbXVsYXRlX2N0eHQgKmh2bWVt dWxfY3R4dCwKPj4+ICAgICAgICAgIHBmZWMgfD0gUEZFQ191c2VyX21vZGU7Cj4+Pgo+Pj4gICAg ICBodm1lbXVsX2N0eHQtPmluc25fYnVmX2VpcCA9IHJlZ3MtPmVpcDsKPj4+IC0gICAgaWYgKCAh dmlvLT5tbWlvX2luc25fYnl0ZXMgKQo+Pj4gKwo+Pj4gKyAgICBpZiAoIHVubGlrZWx5KGh2bWVt dWxfY3R4dC0+c2V0X2NvbnRleHRfaW5zbikgJiYgY3Vyci0+YXJjaC52bV9ldmVudCApCj4+PiAr ICAgIHsKPj4+ICsgICAgICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZfYnl0ZXMgPSBzaXplb2Yo Y3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bF9pbnNuKTsKPj4+ICsgICAgICAgIG1lbWNweShodm1l bXVsX2N0eHQtPmluc25fYnVmLCAmY3Vyci0+YXJjaC52bV9ldmVudC0+ZW11bF9pbnNuLAo+Pj4g KyAgICAgICAgICAgICAgIGh2bWVtdWxfY3R4dC0+aW5zbl9idWZfYnl0ZXMpOwo+Pj4gKyAgICB9 Cj4+PiArICAgIGVsc2UgaWYgKCAhdmlvLT5tbWlvX2luc25fYnl0ZXMgKQo+Pj4gICAgICB7Cj4+ PiAgICAgICAgICBodm1lbXVsX2N0eHQtPmluc25fYnVmX2J5dGVzID0KPj4+ICAgICAgICAgICAg ICBodm1fZ2V0X2luc25fYnl0ZXMoY3VyciwgaHZtZW11bF9jdHh0LT5pbnNuX2J1ZikgPzoKPj4+ IEBAIC0xOTMxLDcgKzE5MzgsNyBAQCBpbnQgaHZtX2VtdWxhdGVfb25lX21taW8odW5zaWduZWQg bG9uZyBtZm4sIHVuc2lnbmVkIGxvbmcgZ2xhKQo+Pj4gICAgICByZXR1cm4gcmM7Cj4+PiAgfQo+ Pj4KPj4+IC12b2lkIGh2bV9tZW1fYWNjZXNzX2VtdWxhdGVfb25lKGVudW0gZW11bF9raW5kIGtp bmQsIHVuc2lnbmVkIGludCB0cmFwbnIsCj4+PiArdm9pZCBodm1fZW11bGF0ZV9vbmVfdm1fZXZl bnQoZW51bSBlbXVsX2tpbmQga2luZCwgdW5zaWduZWQgaW50IHRyYXBuciwKPj4+ICAgICAgdW5z aWduZWQgaW50IGVycmNvZGUpCj4+PiAgewo+Pj4gICAgICBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4 dCBjdHggPSB7eyAwIH19Owo+Pj4gQEAgLTE5NDQsMTEgKzE5NTEsMTkgQEAgdm9pZCBodm1fbWVt X2FjY2Vzc19lbXVsYXRlX29uZShlbnVtIGVtdWxfa2luZCBraW5kLCB1bnNpZ25lZCBpbnQgdHJh cG5yLAo+Pj4gICAgICBjYXNlIEVNVUxfS0lORF9OT1dSSVRFOgo+Pj4gICAgICAgICAgcmMgPSBo dm1fZW11bGF0ZV9vbmVfbm9fd3JpdGUoJmN0eCk7Cj4+PiAgICAgICAgICBicmVhazsKPj4+IC0g ICAgY2FzZSBFTVVMX0tJTkRfU0VUX0NPTlRFWFQ6Cj4+PiAtICAgICAgICBjdHguc2V0X2NvbnRl eHQgPSAxOwo+Pj4gLSAgICAgICAgLyogSW50ZW50aW9uYWwgZmFsbC10aHJvdWdoLiAqLwo+Pj4g LSAgICBkZWZhdWx0Ogo+Pj4gKyAgICBjYXNlIEVNVUxfS0lORF9TRVRfQ09OVEVYVF9EQVRBOgo+ Pj4gKyAgICAgICAgY3R4LnNldF9jb250ZXh0X2RhdGEgPSAxOwo+Pj4gKyAgICAgICAgcmMgPSBo dm1fZW11bGF0ZV9vbmUoJmN0eCk7Cj4+PiArICAgICAgICBicmVhazsKPj4+ICsgICAgY2FzZSBF TVVMX0tJTkRfU0VUX0NPTlRFWFRfSU5TTjoKPj4+ICsgICAgICAgIGN0eC5zZXRfY29udGV4dF9p bnNuID0gMTsKPj4+ICAgICAgICAgIHJjID0gaHZtX2VtdWxhdGVfb25lKCZjdHgpOwo+Pj4gKyAg ICAgICAgYnJlYWs7Cj4+PiArICAgIGNhc2UgRU1VTF9LSU5EX05PUk1BTDoKPj4+ICsgICAgICAg IHJjID0gaHZtX2VtdWxhdGVfb25lKCZjdHgpOwo+Pj4gKyAgICAgICAgYnJlYWs7Cj4+PiArICAg IGRlZmF1bHQ6Cj4+PiArICAgICAgICByZXR1cm47Cj4+PiAgICAgIH0KPj4+Cj4+PiAgICAgIHN3 aXRjaCAoIHJjICkKPj4+IEBAIC0xOTgzLDcgKzE5OTgsOCBAQCB2b2lkIGh2bV9lbXVsYXRlX3By ZXBhcmUoCj4+PiAgICAgIGh2bWVtdWxfY3R4dC0+Y3R4dC5mb3JjZV93cml0ZWJhY2sgPSAxOwo+ Pj4gICAgICBodm1lbXVsX2N0eHQtPnNlZ19yZWdfYWNjZXNzZWQgPSAwOwo+Pj4gICAgICBodm1l bXVsX2N0eHQtPnNlZ19yZWdfZGlydHkgPSAwOwo+Pj4gLSAgICBodm1lbXVsX2N0eHQtPnNldF9j b250ZXh0ID0gMDsKPj4+ICsgICAgaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9kYXRhID0gMDsK Pj4+ICsgICAgaHZtZW11bF9jdHh0LT5zZXRfY29udGV4dF9pbnNuID0gMDsKPj4+ICAgICAgaHZt ZW11bF9nZXRfc2VnX3JlZyh4ODZfc2VnX2NzLCBodm1lbXVsX2N0eHQpOwo+Pj4gICAgICBodm1l bXVsX2dldF9zZWdfcmVnKHg4Nl9zZWdfc3MsIGh2bWVtdWxfY3R4dCk7Cj4+PiAgfQo+Pj4gZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5j Cj4+PiBpbmRleCBjYTk2NjQzLi43NDYyNzk0IDEwMDY0NAo+Pj4gLS0tIGEveGVuL2FyY2gveDg2 L2h2bS9odm0uYwo+Pj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwo+Pj4gQEAgLTQ4OSwx MyArNDg5LDE2IEBAIHZvaWQgaHZtX2RvX3Jlc3VtZShzdHJ1Y3QgdmNwdSAqdikKPj4+Cj4+PiAg ICAgICAgICAgICAgaWYgKCB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdzICYKPj4+ICAg ICAgICAgICAgICAgICAgIFZNX0VWRU5UX0ZMQUdfU0VUX0VNVUxfUkVBRF9EQVRBICkKPj4+IC0g ICAgICAgICAgICAgICAga2luZCA9IEVNVUxfS0lORF9TRVRfQ09OVEVYVDsKPj4+ICsgICAgICAg ICAgICAgICAga2luZCA9IEVNVUxfS0lORF9TRVRfQ09OVEVYVF9EQVRBOwo+Pj4gICAgICAgICAg ICAgIGVsc2UgaWYgKCB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsYXRlX2ZsYWdzICYKPj4+ICAgICAg ICAgICAgICAgICAgICAgICAgVk1fRVZFTlRfRkxBR19FTVVMQVRFX05PV1JJVEUgKQo+Pj4gICAg ICAgICAgICAgICAgICBraW5kID0gRU1VTF9LSU5EX05PV1JJVEU7Cj4+PiArICAgICAgICAgICAg ZWxzZSBpZiAoIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxhdGVfZmxhZ3MgJgo+Pj4gKyAgICAgICAg ICAgICAgICAgVk1fRVZFTlRfRkxBR19TRVRfRU1VTF9JTlNOX0RBVEEgKQo+Pj4gKyAgICAgICAg ICAgICAgICBraW5kID0gRU1VTF9LSU5EX1NFVF9DT05URVhUX0lOU047Cj4+Pgo+Pj4gLSAgICAg ICAgICAgIGh2bV9tZW1fYWNjZXNzX2VtdWxhdGVfb25lKGtpbmQsIFRSQVBfaW52YWxpZF9vcCwK Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fREVMSVZFUl9O T19FUlJPUl9DT0RFKTsKPj4+ICsgICAgICAgICAgICBodm1fZW11bGF0ZV9vbmVfdm1fZXZlbnQo a2luZCwgVFJBUF9pbnZhbGlkX29wLAo+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBIVk1fREVMSVZFUl9OT19FUlJPUl9DT0RFKTsKPj4+Cj4+PiAgICAgICAgICAgICAg di0+YXJjaC52bV9ldmVudC0+ZW11bGF0ZV9mbGFncyA9IDA7Cj4+PiAgICAgICAgICB9Cj4+PiBk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYvaHZt L3ZteC92bXguYwo+Pj4gaW5kZXggMjc1OWU2Zi4uZDIxNDcxNiAxMDA2NDQKPj4+IC0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCj4+PiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92 bXguYwo+Pj4gQEAgLTU3LDYgKzU3LDcgQEAKPj4+ICAjaW5jbHVkZSA8YXNtL2FsdHAybS5oPgo+ Pj4gICNpbmNsdWRlIDxhc20vZXZlbnQuaD4KPj4+ICAjaW5jbHVkZSA8YXNtL21vbml0b3IuaD4K Pj4+ICsjaW5jbHVkZSA8YXNtL3ZtX2V2ZW50Lmg+Cj4+PiAgI2luY2x1ZGUgPHB1YmxpYy9hcmNo LXg4Ni9jcHVpZC5oPgo+Pj4KPj4+ICBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgb3B0X2ZvcmNl X2VwdDsKPj4+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdm1fZXZlbnQuYyBiL3hlbi9hcmNo L3g4Ni92bV9ldmVudC5jCj4+PiBpbmRleCAzNDNiOWM4Li4wM2JlZWQzIDEwMDY0NAo+Pj4gLS0t IGEveGVuL2FyY2gveDg2L3ZtX2V2ZW50LmMKPj4+ICsrKyBiL3hlbi9hcmNoL3g4Ni92bV9ldmVu dC5jCj4+PiBAQCAtMjA5LDExICsyMDksMTggQEAgdm9pZCB2bV9ldmVudF9lbXVsYXRlX2NoZWNr KHN0cnVjdCB2Y3B1ICp2LCB2bV9ldmVudF9yZXNwb25zZV90ICpyc3ApCj4+PiAgICAgICAgICBp ZiAoIHAybV9tZW1fYWNjZXNzX2VtdWxhdGVfY2hlY2sodiwgcnNwKSApCj4+PiAgICAgICAgICB7 Cj4+PiAgICAgICAgICAgICAgaWYgKCByc3AtPmZsYWdzICYgVk1fRVZFTlRfRkxBR19TRVRfRU1V TF9SRUFEX0RBVEEgKQo+Pj4gLSAgICAgICAgICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT5lbXVs X3JlYWRfZGF0YSA9IHJzcC0+ZGF0YS5lbXVsX3JlYWRfZGF0YTsKPj4+ICsgICAgICAgICAgICAg ICAgdi0+YXJjaC52bV9ldmVudC0+ZW11bF9yZWFkID0gcnNwLT5kYXRhLmVtdWwucmVhZDsKPj4+ Cj4+PiAgICAgICAgICAgICAgdi0+YXJjaC52bV9ldmVudC0+ZW11bGF0ZV9mbGFncyA9IHJzcC0+ ZmxhZ3M7Cj4+PiAgICAgICAgICB9Cj4+PiAgICAgICAgICBicmVhazsKPj4+ICsgICAgY2FzZSBW TV9FVkVOVF9SRUFTT05fU09GVFdBUkVfQlJFQUtQT0lOVDoKPj4+ICsgICAgICAgIGlmICggcnNw LT5mbGFncyAmIFZNX0VWRU5UX0ZMQUdfU0VUX0VNVUxfSU5TTl9EQVRBICkKPj4+ICsgICAgICAg IHsKPj4+ICsgICAgICAgICAgICB2LT5hcmNoLnZtX2V2ZW50LT5lbXVsX2luc24gPSByc3AtPmRh dGEuZW11bC5pbnNuOwo+Pj4gKyAgICAgICAgICAgIHYtPmFyY2gudm1fZXZlbnQtPmVtdWxhdGVf ZmxhZ3MgPSByc3AtPmZsYWdzOwo+Pj4gKyAgICAgICAgfQo+Pj4gKyAgICAgICAgYnJlYWs7Cj4+ PiAgICAgIGRlZmF1bHQ6Cj4+PiAgICAgICAgICBicmVhazsKPj4+ICAgICAgfTsKPj4+IGRpZmYg LS1naXQgYS94ZW4vY29tbW9uL3ZtX2V2ZW50LmMgYi94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKPj4+ IGluZGV4IDkwN2FiNDAuLmQ4ZWU3ZjMgMTAwNjQ0Cj4+PiAtLS0gYS94ZW4vY29tbW9uL3ZtX2V2 ZW50LmMKPj4+ICsrKyBiL3hlbi9jb21tb24vdm1fZXZlbnQuYwo+Pj4gQEAgLTM5OCw3ICszOTgs NiBAQCB2b2lkIHZtX2V2ZW50X3Jlc3VtZShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3Qgdm1fZXZl bnRfZG9tYWluICp2ZWQpCj4+PiAgICAgICAgICAgKiBJbiBzb21lIGNhc2VzIHRoZSByZXNwb25z ZSB0eXBlIG5lZWRzIGV4dHJhIGhhbmRsaW5nLCBzbyBoZXJlCj4+PiAgICAgICAgICAgKiB3ZSBj YWxsIHRoZSBhcHByb3ByaWF0ZSBoYW5kbGVycy4KPj4+ICAgICAgICAgICAqLwo+Pj4gLQo+Pj4g ICAgICAgICAgLyogQ2hlY2sgZmxhZ3Mgd2hpY2ggYXBwbHkgb25seSB3aGVuIHRoZSB2Q1BVIGlz IHBhdXNlZCAqLwo+Pj4gICAgICAgICAgaWYgKCBhdG9taWNfcmVhZCgmdi0+dm1fZXZlbnRfcGF1 c2VfY291bnQpICkKPj4+ICAgICAgICAgIHsKPj4+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9lbXVsYXRlLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9lbXVsYXRlLmgK Pj4+IGluZGV4IDNhYWJjYmUuLmI1MmY5OWUgMTAwNjQ0Cj4+PiAtLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9lbXVsYXRlLmgKPj4+ICsrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2Vt dWxhdGUuaAo+Pj4gQEAgLTM0LDIwICszNCwyMiBAQCBzdHJ1Y3QgaHZtX2VtdWxhdGVfY3R4dCB7 Cj4+Pgo+Pj4gICAgICB1aW50MzJfdCBpbnRyX3NoYWRvdzsKPj4+Cj4+PiAtICAgIGJvb2xfdCBz ZXRfY29udGV4dDsKPj4+ICsgICAgYm9vbF90IHNldF9jb250ZXh0X2RhdGE7Cj4+PiArICAgIGJv b2xfdCBzZXRfY29udGV4dF9pbnNuOwo+Pj4gIH07Cj4+Pgo+Pj4gIGVudW0gZW11bF9raW5kIHsK Pj4+ICAgICAgRU1VTF9LSU5EX05PUk1BTCwKPj4+ICAgICAgRU1VTF9LSU5EX05PV1JJVEUsCj4+ PiAtICAgIEVNVUxfS0lORF9TRVRfQ09OVEVYVAo+Pj4gKyAgICBFTVVMX0tJTkRfU0VUX0NPTlRF WFRfREFUQSwKPj4+ICsgICAgRU1VTF9LSU5EX1NFVF9DT05URVhUX0lOU04KPj4KPj4gU2luY2Ug dGhpcyBicmVha3MgY29tcGlsYXRpb24gb2YgZXhpc3RpbmcgY2xpZW50cywgSSB0aGluayB3ZSBz aG91bGQKPj4gaW5jcmVtZW50IHNvbWUgbWFjcm8gdG8gYWxvdyBmb3IgY29tcGlsZS10aW1lIHN3 aXRjaGluZyAobWF5YmUKPj4gVk1fRVZFTlRfSU5URVJGQUNFX1ZFUlNJT04/KS4KPiAKPiBJJ20g bm90IHN1cmUgSSBmb2xsb3cgLSB0aGlzIGlzIGEgWGVuIGludGVybmFsLW9ubHkgZW51bWVyYXRp b24uIFdoYXQKPiBraW5kLW9mIGNsaWVudHMgYXJlIHlvdSByZWZlcnJpbmcgdG8/CgpOZXZlcm1p bmQsIEkgdGhvdWdodCB0aGVzZSBjaGFuZ2VzIHByb3BhZ2F0ZSB0byB0aGUgdG9vbHN0YWNrIGhl YWRlcnMuClNvcnJ5IGZvciB0aGUgY29uZnVzaW9uLgoKClRoYW5rcywKUmF6dmFuCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxp bmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVu LWRldmVsCg==