From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau =?utf-8?B?TW9ubsOp?= Subject: Re: [PATCH v17 12/13] x86/hvm: Remove redundant save functions Date: Wed, 22 Aug 2018 17:04:23 +0200 Message-ID: <20180822150423.4gb4q66guorbgupb@mac> References: <1534946563-12084-1-git-send-email-aisaila@bitdefender.com> <1534946563-12084-13-git-send-email-aisaila@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1534946563-12084-13-git-send-email-aisaila@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Alexandru Isaila Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, paul.durrant@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBBdWcgMjIsIDIwMTggYXQgMDU6MDI6NDJQTSArMDMwMCwgQWxleGFuZHJ1IElzYWls YSB3cm90ZToKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMKPiBpbmRleCA0YTcwMjUxLi44MzFmODZiIDEwMDY0NAo+IC0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vaHZtLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCj4gQEAg LTc0MCw3ICs3NDAsNyBAQCB2b2lkIGh2bV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpk KQo+ICAgICAgZGVzdHJveV92cGNpX21tY2ZnKGQpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGh2 bV9zYXZlX3RzY19hZGp1c3Rfb25lKHN0cnVjdCB2Y3B1ICp2LCBodm1fZG9tYWluX2NvbnRleHRf dCAqaCkKPiArc3RhdGljIGludCBodm1fc2F2ZV90c2NfYWRqdXN0KHN0cnVjdCB2Y3B1ICp2LCBo dm1fZG9tYWluX2NvbnRleHRfdCAqaCkKPiAgewo+ICAgICAgc3RydWN0IGh2bV90c2NfYWRqdXN0 IGN0eHQgPSB7Cj4gICAgICAgICAgLnRzY19hZGp1c3QgPSB2LT5hcmNoLmh2bV92Y3B1Lm1zcl90 c2NfYWRqdXN0LAo+IEBAIC03NDksMjEgKzc0OSw2IEBAIHN0YXRpYyBpbnQgaHZtX3NhdmVfdHNj X2FkanVzdF9vbmUoc3RydWN0IHZjcHUgKnYsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+ICAg ICAgcmV0dXJuIGh2bV9zYXZlX2VudHJ5KFRTQ19BREpVU1QsIHYtPnZjcHVfaWQsIGgsICZjdHh0 KTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBodm1fc2F2ZV90c2NfYWRqdXN0KHN0cnVjdCBkb21h aW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+IC17Cj4gLSAgICBzdHJ1Y3QgdmNwdSAq djsKPiAtICAgIGludCBlcnIgPSAwOwo+IC0KPiAtICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkK PiAtICAgIHsKPiAtICAgICAgICBlcnIgPSBodm1fc2F2ZV90c2NfYWRqdXN0X29uZSh2LCBoKTsK PiAtICAgICAgICBpZiAoIGVyciApCj4gLSAgICAgICAgICAgIGJyZWFrOwo+IC0gICAgfQo+IC0K PiAtICAgIHJldHVybiBlcnI7Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbnQgaHZtX2xvYWRfdHNjX2Fk anVzdChzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKPiAgewo+ICAg ICAgdW5zaWduZWQgaW50IHZjcHVpZCA9IGh2bV9sb2FkX2luc3RhbmNlKGgpOwo+IEBAIC03ODUs MTAgKzc3MCw5IEBAIHN0YXRpYyBpbnQgaHZtX2xvYWRfdHNjX2FkanVzdChzdHJ1Y3QgZG9tYWlu ICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKPiAgfQo+ICAKPiAgSFZNX1JFR0lTVEVSX1NB VkVfUkVTVE9SRShUU0NfQURKVVNULCBodm1fc2F2ZV90c2NfYWRqdXN0LAo+IC0gICAgICAgICAg ICAgICAgICAgICAgICAgIGh2bV9zYXZlX3RzY19hZGp1c3Rfb25lLAo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGh2bV9sb2FkX3RzY19hZGp1c3QsIDEsIEhWTVNSX1BFUl9WQ1BVKTsKPiAg Cj4gLXN0YXRpYyBpbnQgaHZtX3NhdmVfY3B1X2N0eHRfb25lKHN0cnVjdCB2Y3B1ICp2LCBodm1f ZG9tYWluX2NvbnRleHRfdCAqaCkKPiArc3RhdGljIGludCBodm1fc2F2ZV9jcHVfY3R4dChzdHJ1 Y3QgdmNwdSAqdiwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCj4gIHsKPiAgICAgIHN0cnVjdCBz ZWdtZW50X3JlZ2lzdGVyIHNlZzsKPiAgICAgIHN0cnVjdCBodm1faHdfY3B1IGN0eHQgPSB7Cj4g QEAgLTg5NSwyMSArODc5LDYgQEAgc3RhdGljIGludCBodm1fc2F2ZV9jcHVfY3R4dF9vbmUoc3Ry dWN0IHZjcHUgKnYsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+ICAgICAgcmV0dXJuIGh2bV9z YXZlX2VudHJ5KENQVSwgdi0+dmNwdV9pZCwgaCwgJmN0eHQpOwo+ICB9Cj4gIAo+IC1zdGF0aWMg aW50IGh2bV9zYXZlX2NwdV9jdHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4 dF90ICpoKQo+IC17Cj4gLSAgICBzdHJ1Y3QgdmNwdSAqdjsKPiAtICAgIGludCBlcnIgPSAwOwo+ IC0KPiAtICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKPiAtICAgIHsKPiAtICAgICAgICBlcnIg PSBodm1fc2F2ZV9jcHVfY3R4dF9vbmUodiwgaCk7Cj4gLSAgICAgICAgaWYgKCBlcnIgKQo+IC0g ICAgICAgICAgICBicmVhazsKPiAtICAgIH0KPiAtCj4gLSAgICByZXR1cm4gZXJyOwo+IC19Cj4g LQo+ICAvKiBSZXR1cm4gYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgZXJyb3IsIG9yIE5VTEwgZm9y IHZhbGlkLiAqLwo+ICBjb25zdCBjaGFyICpodm1fZWZlcl92YWxpZChjb25zdCBzdHJ1Y3QgdmNw dSAqdiwgdWludDY0X3QgdmFsdWUsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25l ZCBpbnQgY3IwX3BnKQo+IEBAIC0xMTgxLDcgKzExNTAsNyBAQCBzdGF0aWMgaW50IGh2bV9sb2Fk X2NwdV9jdHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+ICAg ICAgcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLUhWTV9SRUdJU1RFUl9TQVZFX1JFU1RPUkUoQ1BVLCBo dm1fc2F2ZV9jcHVfY3R4dCwgaHZtX3NhdmVfY3B1X2N0eHRfb25lLAo+ICtIVk1fUkVHSVNURVJf U0FWRV9SRVNUT1JFKENQVSwgaHZtX3NhdmVfY3B1X2N0eHQsCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgaHZtX2xvYWRfY3B1X2N0eHQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg MSwgSFZNU1JfUEVSX1ZDUFUpOwoKTG9va3MgbGlrZSB5b3UgY2FuIGZpdCBtb3JlIGluIHRoZSBm aXJzdCBsaW5lIEFGQUlDVC4KClsuLi5dCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0v aTgyNTQuYyBiL3hlbi9hcmNoL3g4Ni9odm0vaTgyNTQuYwo+IGluZGV4IGVjNzdiMjMuLmUwZDIy NTUgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pODI1NC5jCj4gKysrIGIveGVuL2Fy Y2gveDg2L2h2bS9pODI1NC5jCj4gQEAgLTM5MCw4ICszOTAsOSBAQCB2b2lkIHBpdF9zdG9wX2No YW5uZWwwX2lycShQSVRTdGF0ZSAqcGl0KQo+ICAgICAgc3Bpbl91bmxvY2soJnBpdC0+bG9jayk7 Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgcGl0X3NhdmUoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2Rv bWFpbl9jb250ZXh0X3QgKmgpCj4gK3N0YXRpYyBpbnQgcGl0X3NhdmUoc3RydWN0IHZjcHUgKnYs IGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+ICB7Cj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkID0g di0+ZG9tYWluOwo+ICAgICAgUElUU3RhdGUgKnBpdCA9IGRvbWFpbl92cGl0KGQpOwo+ICAgICAg aW50IHJjOwo+ICAKPiBAQCAtNDM3LDcgKzQzOCw3IEBAIHN0YXRpYyBpbnQgcGl0X2xvYWQoc3Ry dWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCj4gICAgICByZXR1cm4gMDsK PiAgfQo+ICAKPiAtSFZNX1JFR0lTVEVSX1NBVkVfUkVTVE9SRShQSVQsIHBpdF9zYXZlLCBOVUxM LCBwaXRfbG9hZCwgMSwgSFZNU1JfUEVSX0RPTSk7Cj4gK0hWTV9SRUdJU1RFUl9TQVZFX1JFU1RP UkUoUElULCBwaXRfc2F2ZSwgcGl0X2xvYWQsIDEsIEhWTVNSX1BFUl9ET00pOwo+ICAKPiAgdm9p ZCBwaXRfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKPiAgewo+IGRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL2lycS5jIGIveGVuL2FyY2gveDg2L2h2bS9pcnEuYwo+IGluZGV4IDc3MGVhYjcu LmIzNzI3NWMgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pcnEuYwo+ICsrKyBiL3hl bi9hcmNoL3g4Ni9odm0vaXJxLmMKPiBAQCAtNjMwLDggKzYzMCw5IEBAIHN0YXRpYyBpbnQgX19p bml0IGR1bXBfaXJxX2luZm9fa2V5X2luaXQodm9pZCkKPiAgfQo+ICBfX2luaXRjYWxsKGR1bXBf aXJxX2luZm9fa2V5X2luaXQpOwo+ICAKPiAtc3RhdGljIGludCBpcnFfc2F2ZV9wY2koc3RydWN0 IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCj4gK3N0YXRpYyBpbnQgaXJxX3Nh dmVfcGNpKHN0cnVjdCB2Y3B1ICp2LCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKPiAgewo+ICsg ICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKPiAgICAgIHN0cnVjdCBodm1faXJxICpo dm1faXJxID0gaHZtX2RvbWFpbl9pcnEoZCk7Cj4gICAgICB1bnNpZ25lZCBpbnQgYXNzZXJ0ZWQs IHBkZXYsIHBpbnR4Owo+ICAgICAgaW50IHJjOwo+IEBAIC02NjIsMTYgKzY2MywxOCBAQCBzdGF0 aWMgaW50IGlycV9zYXZlX3BjaShzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRf dCAqaCkKPiAgICAgIHJldHVybiByYzsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBpcnFfc2F2ZV9p c2Eoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCj4gK3N0YXRpYyBp bnQgaXJxX3NhdmVfaXNhKHN0cnVjdCB2Y3B1ICp2LCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkK PiAgewo+ICsgICAgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKCmNvbnN0Cgo+ICAgICAg c3RydWN0IGh2bV9pcnEgKmh2bV9pcnEgPSBodm1fZG9tYWluX2lycShkKTsKPiAgCj4gICAgICAv KiBTYXZlIElTQSBJUlEgbGluZXMgKi8KPiAgICAgIHJldHVybiAoIGh2bV9zYXZlX2VudHJ5KElT QV9JUlEsIDAsIGgsICZodm1faXJxLT5pc2FfaXJxKSApOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50 IGlycV9zYXZlX2xpbmsoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgp Cj4gK3N0YXRpYyBpbnQgaXJxX3NhdmVfbGluayhzdHJ1Y3QgdmNwdSAqdiwgaHZtX2RvbWFpbl9j b250ZXh0X3QgKmgpCj4gIHsKPiArICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47Cgpj b25zdAoKWy4uLl0KPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMgYi94ZW4v YXJjaC94ODYvaHZtL3NhdmUuYwo+IGluZGV4IDFlYjJiMDEuLjQ5NzQxZTAgMTAwNjQ0Cj4gLS0t IGEveGVuL2FyY2gveDg2L2h2bS9zYXZlLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3NhdmUu Ywo+IEBAIC04NSw3ICs4NSw2IEBAIGludCBhcmNoX2h2bV9sb2FkKHN0cnVjdCBkb21haW4gKmQs IHN0cnVjdCBodm1fc2F2ZV9oZWFkZXIgKmhkcikKPiAgLyogTGlzdCBvZiBoYW5kbGVycyBmb3Ig dmFyaW91cyBIVk0gc2F2ZSBhbmQgcmVzdG9yZSB0eXBlcyAqLwo+ICBzdGF0aWMgc3RydWN0IHsK PiAgICAgIGh2bV9zYXZlX2hhbmRsZXIgc2F2ZTsKPiAtICAgIGh2bV9zYXZlX3ZjcHVfaGFuZGxl ciBzYXZlX29uZTsKPiAgICAgIGh2bV9sb2FkX2hhbmRsZXIgbG9hZDsKPiAgICAgIGNvbnN0IGNo YXIgKm5hbWU7Cj4gICAgICBzaXplX3Qgc2l6ZTsKPiBAQCAtOTYsNyArOTUsNiBAQCBzdGF0aWMg c3RydWN0IHsKPiAgdm9pZCBfX2luaXQgaHZtX3JlZ2lzdGVyX3NhdmV2bSh1aW50MTZfdCB0eXBl Y29kZSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpuYW1l LAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh2bV9zYXZlX2hhbmRsZXIgc2F2 ZV9zdGF0ZSwKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodm1fc2F2ZV92Y3B1 X2hhbmRsZXIgc2F2ZV9vbmUsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHZt X2xvYWRfaGFuZGxlciBsb2FkX3N0YXRlLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNpemVfdCBzaXplLCBpbnQga2luZCkKPiAgewo+IEBAIC0xMDQsNyArMTAyLDYgQEAgdm9p ZCBfX2luaXQgaHZtX3JlZ2lzdGVyX3NhdmV2bSh1aW50MTZfdCB0eXBlY29kZSwKPiAgICAgIEFT U0VSVChodm1fc3JfaGFuZGxlcnNbdHlwZWNvZGVdLnNhdmUgPT0gTlVMTCk7Cj4gICAgICBBU1NF UlQoaHZtX3NyX2hhbmRsZXJzW3R5cGVjb2RlXS5sb2FkID09IE5VTEwpOwo+ICAgICAgaHZtX3Ny X2hhbmRsZXJzW3R5cGVjb2RlXS5zYXZlID0gc2F2ZV9zdGF0ZTsKPiAtICAgIGh2bV9zcl9oYW5k bGVyc1t0eXBlY29kZV0uc2F2ZV9vbmUgPSBzYXZlX29uZTsKPiAgICAgIGh2bV9zcl9oYW5kbGVy c1t0eXBlY29kZV0ubG9hZCA9IGxvYWRfc3RhdGU7Cj4gICAgICBodm1fc3JfaGFuZGxlcnNbdHlw ZWNvZGVdLm5hbWUgPSBuYW1lOwo+ICAgICAgaHZtX3NyX2hhbmRsZXJzW3R5cGVjb2RlXS5zaXpl ID0gc2l6ZTsKPiBAQCAtMTQ4LDYgKzE0NSw5IEBAIGludCBodm1fc2F2ZV9vbmUoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IHR5cGVjb2RlLCB1bnNpZ25lZCBpbnQgaW5zdGFuY2UsCj4g ICAgICAgICAgICFodm1fc3JfaGFuZGxlcnNbdHlwZWNvZGVdLnNhdmUgKQo+ICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+ICAKPiArICAgIGlmICggaHZtX3NyX2hhbmRsZXJzW3R5cGVjb2RlXS5r aW5kID09IEhWTVNSX1BFUl9WQ1BVICYmCj4gKyAgICAgICAgaW5zdGFuY2UgPj0gZC0+bWF4X3Zj cHVzICkKPiArICAgICAgICByZXR1cm4gLUVOT0VOVDsKPiAgICAgIGN0eHQuc2l6ZSA9IGh2bV9z cl9oYW5kbGVyc1t0eXBlY29kZV0uc2l6ZTsKPiAgICAgIGlmICggaHZtX3NyX2hhbmRsZXJzW3R5 cGVjb2RlXS5raW5kID09IEhWTVNSX1BFUl9WQ1BVICkKPiAgICAgICAgICBjdHh0LnNpemUgKj0g ZC0+bWF4X3ZjcHVzOwo+IEBAIC0xNTUsNyArMTU1LDcgQEAgaW50IGh2bV9zYXZlX29uZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdHlwZWNvZGUsIHVuc2lnbmVkIGludCBpbnN0YW5j ZSwKPiAgICAgIGlmICggIWN0eHQuZGF0YSApCj4gICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4g IAo+IC0gICAgaWYgKCAocnYgPSBodm1fc3JfaGFuZGxlcnNbdHlwZWNvZGVdLnNhdmUoZCwgJmN0 eHQpKSAhPSAwICkKPiArICAgIGlmICggKHJ2ID0gaHZtX3NyX2hhbmRsZXJzW3R5cGVjb2RlXS5z YXZlKGQtPnZjcHVbaW5zdGFuY2VdLCAmY3R4dCkpICE9IDAgKQo+ICAgICAgICAgIHByaW50ayhY RU5MT0dfR19FUlIgIkhWTSVkIHNhdmU6IGZhaWxlZCB0byBzYXZlIHR5cGUgJSJQUkl1MTYiICgl ZClcbiIsCj4gICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgdHlwZWNvZGUsIHJ2KTsKPiAg ICAgIGVsc2UgaWYgKCBydiA9IC1FTk9FTlQsIGN0eHQuY3VyID49IHNpemVvZigqZGVzYykgKQo+ IEBAIC0yMjMsMTcgKzIyMywxOSBAQCBpbnQgaHZtX3NhdmUoc3RydWN0IGRvbWFpbiAqZCwgaHZt X2RvbWFpbl9jb250ZXh0X3QgKmgpCj4gICAgICBmb3IgKCBpID0gMDsgaSA8PSBIVk1fU0FWRV9D T0RFX01BWDsgaSsrICkKPiAgICAgIHsKPiAgICAgICAgICBzdHJ1Y3QgdmNwdSAqdjsKPiAtICAg ICAgICBodm1fc2F2ZV92Y3B1X2hhbmRsZXIgc2F2ZV9vbmVfaGFuZGxlciA9IGh2bV9zcl9oYW5k bGVyc1tpXS5zYXZlX29uZTsKPiAtICAgICAgICBodm1fc2F2ZV9oYW5kbGVyIGhhbmRsZXIgPSBo dm1fc3JfaGFuZGxlcnNbaV0uc2F2ZTs7Cj4gKyAgICAgICAgaHZtX3NhdmVfaGFuZGxlciBoYW5k bGVyID0gaHZtX3NyX2hhbmRsZXJzW2ldLnNhdmU7Cj4gIAo+IC0gICAgICAgIGlmICggc2F2ZV9v bmVfaGFuZGxlciApCj4gKyAgICAgICAgaWYgKCAhaGFuZGxlciApCj4gKyAgICAgICAgICAgIGNv bnRpbnVlOwo+ICsKPiArICAgICAgICBpZiAoIGh2bV9zcl9oYW5kbGVyc1tpXS5raW5kID09IEhW TVNSX1BFUl9WQ1BVICkKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAgIGZvcl9lYWNoX3ZjcHUg KCBkLCB2ICkKPiAgICAgICAgICAgICAgewo+ICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19HX0lORk8gIkhWTSAlcHYgc2F2ZTogJXNcbiIsCj4gICAgICAgICAgICAgICAgICAgICAgICAg diwgaHZtX3NyX2hhbmRsZXJzW2ldLm5hbWUpOwo+ICAKPiAtICAgICAgICAgICAgICAgIGlmICgg c2F2ZV9vbmVfaGFuZGxlcih2LCBoKSAhPSAwICkKPiArICAgICAgICAgICAgICAgIGlmICggaGFu ZGxlcih2LCBoKSAhPSAwICkKPiAgICAgICAgICAgICAgICAgIHsKPiAgICAgICAgICAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0dfRVJSCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJI Vk0gJXB2IHNhdmU6IGZhaWxlZCB0byBzYXZlIHR5cGUgJSJQUkl1MTYiXG4iLAo+IEBAIC0yNDIs MTUgKzI0NCwxNSBAQCBpbnQgaHZtX3NhdmUoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9j b250ZXh0X3QgKmgpCj4gICAgICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAgIH0KPiAgICAg ICAgICB9Cj4gLSAgICAgICAgZWxzZSBpZiAoIGhhbmRsZXIgKQo+ICsgICAgICAgIGVsc2UKPiAg ICAgICAgICB7Cj4gLSAgICAgICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPICJIVk0lZCBzYXZl OiAlc1xuIiwKPiArICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8gIkhWTSBkJWQgc2F2 ZTogJXNcbiIsCj4gICAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGh2bV9zcl9oYW5k bGVyc1tpXS5uYW1lKTsKPiAgCj4gLSAgICAgICAgICAgIGlmICggaGFuZGxlcihkLCBoKSAhPSAw ICkKPiArICAgICAgICAgICAgaWYgKCBoYW5kbGVyKGQtPnZjcHVbMF0sIGgpICE9IDAgKQo+ICAg ICAgICAgICAgICB7Cj4gICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfRVJSCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgIkhWTSVkIHNhdmU6IGZhaWxlZCB0byBzYXZlIHR5cGUgJSJQ Ukl1MTYiXG4iLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICJIVk0gZCVkIHNhdmU6IGZhaWxl ZCB0byBzYXZlIHR5cGUgJSJQUkl1MTYiXG4iLAoKVGhpcyBsb29rcyBsaWtlIGFuIHVucmVsYXRl ZCBjaGFuZ2UuCgo+ICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgaSk7Cj4g ICAgICAgICAgICAgICAgICByZXR1cm4gLUVOT0RBVEE7Cj4gICAgICAgICAgICAgIH0KPiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMgYi94ZW4vYXJjaC94ODYvaHZtL3Zp b2FwaWMuYwo+IGluZGV4IDY2ZjU0ZTQuLjg2ZDAyY2YgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92aW9hcGljLmMKPiArKysgYi94ZW4vYXJjaC94ODYvaHZtL3Zpb2FwaWMuYwo+IEBA IC01NjksOCArNTY5LDkgQEAgaW50IHZpb2FwaWNfZ2V0X3RyaWdnZXJfbW9kZShjb25zdCBzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZ3NpKQo+ICAgICAgcmV0dXJuIHZpb2FwaWMtPnJl ZGlydGJsW3Bpbl0uZmllbGRzLnRyaWdfbW9kZTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBpb2Fw aWNfc2F2ZShzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKPiArc3Rh dGljIGludCBpb2FwaWNfc2F2ZShzdHJ1Y3QgdmNwdSAqdiwgaHZtX2RvbWFpbl9jb250ZXh0X3Qg KmgpCj4gIHsKPiArICAgIHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47Cgpjb25zdAoKPiAg ICAgIHN0cnVjdCBodm1fdmlvYXBpYyAqczsKPiAgCj4gICAgICBpZiAoICFoYXNfdmlvYXBpYyhk KSApCj4gQEAgLTYwMSw3ICs2MDIsNyBAQCBzdGF0aWMgaW50IGlvYXBpY19sb2FkKHN0cnVjdCBk b21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+ICAgICAgcmV0dXJuIGh2bV9sb2Fk X2VudHJ5KElPQVBJQywgaCwgJnMtPmRvbVUpOwo+ICB9Cj4gIAo+IC1IVk1fUkVHSVNURVJfU0FW RV9SRVNUT1JFKElPQVBJQywgaW9hcGljX3NhdmUsIE5VTEwsIGlvYXBpY19sb2FkLCAxLCBIVk1T Ul9QRVJfRE9NKTsKPiArSFZNX1JFR0lTVEVSX1NBVkVfUkVTVE9SRShJT0FQSUMsIGlvYXBpY19z YXZlLCBpb2FwaWNfbG9hZCwgMSwgSFZNU1JfUEVSX0RPTSk7Cj4gIAo+ICB2b2lkIHZpb2FwaWNf cmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKPiAgewo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv aHZtL3ZpcmlkaWFuLmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKPiBpbmRleCAyNjhj Y2NlLi5jYzM3YWI0IDEwMDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwo+ ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwo+IEBAIC05OTAsOCArOTkwLDkgQEAg b3V0Ogo+ICAgICAgcmV0dXJuIEhWTV9IQ0FMTF9jb21wbGV0ZWQ7Cj4gIH0KPiAgCj4gLXN0YXRp YyBpbnQgdmlyaWRpYW5fc2F2ZV9kb21haW5fY3R4dChzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9t YWluX2NvbnRleHRfdCAqaCkKPiArc3RhdGljIGludCB2aXJpZGlhbl9zYXZlX2RvbWFpbl9jdHh0 KHN0cnVjdCB2Y3B1ICp2LCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKPiAgewo+ICsgICAgc3Ry dWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKCmNvbnN0CgpbLi4uXQo+IGRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL3ZwaWMuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdnBpYy5jCj4gaW5kZXgg Y2E5YjRjYi4uYmFkNTA2NiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZwaWMuYwo+ ICsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdnBpYy5jCj4gQEAgLTM3MSw4ICszNzEsOSBAQCBzdGF0 aWMgaW50IHZwaWNfaW50ZXJjZXB0X2VsY3JfaW8oCj4gICAgICByZXR1cm4gWDg2RU1VTF9PS0FZ Owo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHZwaWNfc2F2ZShzdHJ1Y3QgZG9tYWluICpkLCBodm1f ZG9tYWluX2NvbnRleHRfdCAqaCkKPiArc3RhdGljIGludCB2cGljX3NhdmUoc3RydWN0IHZjcHUg KnYsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQo+ICB7Cj4gKyAgICBzdHJ1Y3QgZG9tYWluICpk ID0gdi0+ZG9tYWluOwoKY29uc3QKClRoYW5rcywgUm9nZXIuCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs