From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Adalbert=20Laz=C4=83r?= Subject: [RFC PATCH v6 51/92] kvm: introspection: add KVMI_SET_REGISTERS Date: Fri, 9 Aug 2019 19:00:06 +0300 Message-ID: <20190809160047.8319-52-alazar@bitdefender.com> References: <20190809160047.8319-1-alazar@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809160047.8319-1-alazar@bitdefender.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org To: kvm@vger.kernel.org Cc: Tamas K Lengyel , Weijiang Yang , Yu C , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Jan Kiszka , =?UTF-8?q?Samuel=20Laur=C3=A9n?= , Konrad Rzeszutek Wilk , virtualization@lists.linux-foundation.org, =?UTF-8?q?Adalbert=20Laz=C4=83r?= , linux-mm@kvack.org, Patrick Colp , Mathieu Tarral , Stefan Hajnoczi , =?UTF-8?q?Mircea=20C=C3=AErjaliu?= , Paolo Bonzini , Zhang@mail.linuxfoundation.org, =?UTF-8?q?Mihai=20Don=C8=9Bu?= List-Id: virtualization@lists.linuxfoundation.org RnJvbTogTWloYWkgRG9uyJt1IDxtZG9udHVAYml0ZGVmZW5kZXIuY29tPgoKVGhpcyBjb21tYW5k IGlzIGFsbG93ZWQgb25seSBkdXJpbmcgYSB2Q1BVIGV2ZW50IChhbiBldmVudCBoYXMgYmVlbiBz ZW50CmFuZCB0aGUgdkNQVSBpcyB3YWl0aW5nIGZvciB0aGUgcmVwbHkpLiBUaGUgcmVnaXN0ZXJz IHdpbGwgYmUgc2V0IG9ubHkKd2hlbiB0aGUgcmVwbHkgaGFzIGJlZW4gcmVjZWl2ZWQuCgpTdWdn ZXN0ZWQtYnk6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+ClNpZ25lZC1vZmYt Ynk6IE1paGFpIERvbsibdSA8bWRvbnR1QGJpdGRlZmVuZGVyLmNvbT4KQ28tZGV2ZWxvcGVkLWJ5 OiBNaXJjZWEgQ8OucmphbGl1IDxtY2lyamFsaXVAYml0ZGVmZW5kZXIuY29tPgpTaWduZWQtb2Zm LWJ5OiBNaXJjZWEgQ8OucmphbGl1IDxtY2lyamFsaXVAYml0ZGVmZW5kZXIuY29tPgpTaWduZWQt b2ZmLWJ5OiBBZGFsYmVydCBMYXrEg3IgPGFsYXphckBiaXRkZWZlbmRlci5jb20+Ci0tLQogRG9j dW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdCB8IDI4ICsrKysrKysrKysrKysrKysrKysr KysrKysKIGFyY2gveDg2L2t2bS94ODYuYyAgICAgICAgICAgICAgICAgfCAzMyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvbGludXgva3ZtX2hvc3QuaCAgICAgICAgICAg fCAgMSArCiB2aXJ0L2t2bS9rdm1pLmMgICAgICAgICAgICAgICAgICAgIHwgMjUgKysrKysrKysr KysrKysrKysrKysrKwogdmlydC9rdm0va3ZtaV9pbnQuaCAgICAgICAgICAgICAgICB8ICA1ICsr KysrCiB2aXJ0L2t2bS9rdm1pX21zZy5jICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKysrKysr KysrCiA2IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvRG9j dW1lbnRhdGlvbi92aXJ0dWFsL2t2bS9rdm1pLnJzdCBiL0RvY3VtZW50YXRpb24vdmlydHVhbC9r dm0va3ZtaS5yc3QKaW5kZXggZWRmODFlMDNjYTNjLi5iNjcyMmQwNzFhYjcgMTAwNjQ0Ci0tLSBh L0RvY3VtZW50YXRpb24vdmlydHVhbC9rdm0va3ZtaS5yc3QKKysrIGIvRG9jdW1lbnRhdGlvbi92 aXJ0dWFsL2t2bS9rdm1pLnJzdApAQCAtOTA1LDYgKzkwNSwzNCBAQCByZWdpc3RlcnMsIHRoZSBz cGVjaWFsIHJlZ2lzdGVycyBhbmQgdGhlIHJlcXVlc3RlZCBzZXQgb2YgTVNScy4KICogLUtWTV9F QUdBSU4gLSB0aGUgc2VsZWN0ZWQgdkNQVSBjYW4ndCBiZSBpbnRyb3NwZWN0ZWQgeWV0CiAqIC1L Vk1fRU5PTUVNIC0gbm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgdGhlIHJlcGx5CiAKKzE4 LiBLVk1JX1NFVF9SRUdJU1RFUlMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworOkFyY2hpdGVj dHVyZXM6IHg4NgorOlZlcnNpb25zOiA+PSAxCis6UGFyYW1ldGVyczoKKworOjoKKworCXN0cnVj dCBrdm1pX3ZjcHVfaGRyOworCXN0cnVjdCBrdm1fcmVnczsKKworOlJldHVybnM6CisKKzo6CisK KwlzdHJ1Y3Qga3ZtaV9lcnJvcl9jb2RlCisKK1NldHMgdGhlIGdlbmVyYWwgcHVycG9zZSByZWdp c3RlcnMgZm9yIHRoZSBnaXZlbiB2Q1BVLiBUaGUgY2hhbmdlcyBiZWNvbWUKK3Zpc2libGUgdG8g b3RoZXIgdGhyZWFkcyBhY2Nlc3NpbmcgdGhlIEtWTSB2Q1BVIHN0cnVjdHVyZSBhZnRlciB0aGUg ZXZlbnQKK2N1cnJlbnRseSBiZWluZyBoYW5kbGVkIGlzIHJlcGxpZWQgdG8uCisKKzpFcnJvcnM6 CisKKyogLUtWTV9FSU5WQUwgLSB0aGUgc2VsZWN0ZWQgdkNQVSBpcyBpbnZhbGlkCisqIC1LVk1f RUlOVkFMIC0gcGFkZGluZyBpcyBub3QgemVybworKiAtS1ZNX0VBR0FJTiAtIHRoZSBzZWxlY3Rl ZCB2Q1BVIGNhbid0IGJlIGludHJvc3BlY3RlZCB5ZXQKKwogRXZlbnRzCiA9PT09PT0KIApkaWZm IC0tZ2l0IGEvYXJjaC94ODYva3ZtL3g4Ni5jIGIvYXJjaC94ODYva3ZtL3g4Ni5jCmluZGV4IGVm MjllZjc2MTdiZi4uNjJkMTViYmIyMzMyIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rdm0veDg2LmMK KysrIGIvYXJjaC94ODYva3ZtL3g4Ni5jCkBAIC04NDMxLDYgKzg0MzEsMzkgQEAgaW50IGt2bV9h cmNoX3ZjcHVfaW9jdGxfc2V0X3JlZ3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3Zt X3JlZ3MgKnJlZ3MpCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBTaW1pbGFyIHRvIF9fc2V0X3Jl Z3MoKSBidXQgaXQgZG9lcyBub3QgcmVzZXQgdGhlIGV4Y2VwdGlvbnMKKyAqLwordm9pZCBrdm1f YXJjaF92Y3B1X3NldF9yZWdzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9yZWdz ICpyZWdzKQoreworCXZjcHUtPmFyY2guZW11bGF0ZV9yZWdzX25lZWRfc3luY19mcm9tX3ZjcHUg PSB0cnVlOworCXZjcHUtPmFyY2guZW11bGF0ZV9yZWdzX25lZWRfc3luY190b192Y3B1ID0gZmFs c2U7CisKKwlrdm1fcmVnaXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1JBWCwgcmVncy0+cmF4 KTsKKwlrdm1fcmVnaXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1JCWCwgcmVncy0+cmJ4KTsK Kwlrdm1fcmVnaXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1JDWCwgcmVncy0+cmN4KTsKKwlr dm1fcmVnaXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1JEWCwgcmVncy0+cmR4KTsKKwlrdm1f cmVnaXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1JTSSwgcmVncy0+cnNpKTsKKwlrdm1fcmVn aXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1JESSwgcmVncy0+cmRpKTsKKwlrdm1fcmVnaXN0 ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1JTUCwgcmVncy0+cnNwKTsKKwlrdm1fcmVnaXN0ZXJf d3JpdGUodmNwdSwgVkNQVV9SRUdTX1JCUCwgcmVncy0+cmJwKTsKKyNpZmRlZiBDT05GSUdfWDg2 XzY0CisJa3ZtX3JlZ2lzdGVyX3dyaXRlKHZjcHUsIFZDUFVfUkVHU19SOCwgcmVncy0+cjgpOwor CWt2bV9yZWdpc3Rlcl93cml0ZSh2Y3B1LCBWQ1BVX1JFR1NfUjksIHJlZ3MtPnI5KTsKKwlrdm1f cmVnaXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1IxMCwgcmVncy0+cjEwKTsKKwlrdm1fcmVn aXN0ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1IxMSwgcmVncy0+cjExKTsKKwlrdm1fcmVnaXN0 ZXJfd3JpdGUodmNwdSwgVkNQVV9SRUdTX1IxMiwgcmVncy0+cjEyKTsKKwlrdm1fcmVnaXN0ZXJf d3JpdGUodmNwdSwgVkNQVV9SRUdTX1IxMywgcmVncy0+cjEzKTsKKwlrdm1fcmVnaXN0ZXJfd3Jp dGUodmNwdSwgVkNQVV9SRUdTX1IxNCwgcmVncy0+cjE0KTsKKwlrdm1fcmVnaXN0ZXJfd3JpdGUo dmNwdSwgVkNQVV9SRUdTX1IxNSwgcmVncy0+cjE1KTsKKyNlbmRpZgorCisJa3ZtX3JpcF93cml0 ZSh2Y3B1LCByZWdzLT5yaXApOworCWt2bV9zZXRfcmZsYWdzKHZjcHUsIHJlZ3MtPnJmbGFncyB8 IFg4Nl9FRkxBR1NfRklYRUQpOworCisJa3ZtX21ha2VfcmVxdWVzdChLVk1fUkVRX0VWRU5ULCB2 Y3B1KTsKK30KKwogdm9pZCBrdm1fZ2V0X2NzX2RiX2xfYml0cyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZj cHUsIGludCAqZGIsIGludCAqbCkKIHsKIAlzdHJ1Y3Qga3ZtX3NlZ21lbnQgY3M7CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmggYi9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgK aW5kZXggMDliYzA2NzQ3NjQyLi5jOGViMWE0ZDk5N2YgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGlu dXgva3ZtX2hvc3QuaAorKysgYi9pbmNsdWRlL2xpbnV4L2t2bV9ob3N0LmgKQEAgLTc5MSw2ICs3 OTEsNyBAQCBpbnQga3ZtX2FyY2hfdmNwdV9pb2N0bF90cmFuc2xhdGUoc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LAogaW50IGt2bV9hcmNoX3ZjcHVfaW9jdGxfZ2V0X3JlZ3Moc3RydWN0IGt2bV92Y3B1 ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3JlZ3MgKnJlZ3MpOwogdm9pZCBrdm1fYXJjaF92Y3B1X2dldF9y ZWdzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9yZWdzICpyZWdzKTsKIGludCBr dm1fYXJjaF92Y3B1X2lvY3RsX3NldF9yZWdzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0 IGt2bV9yZWdzICpyZWdzKTsKK3ZvaWQga3ZtX2FyY2hfdmNwdV9zZXRfcmVncyhzdHJ1Y3Qga3Zt X3ZjcHUgKnZjcHUsIHN0cnVjdCBrdm1fcmVncyAqcmVncyk7CiBpbnQga3ZtX2FyY2hfdmNwdV9p b2N0bF9nZXRfc3JlZ3Moc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAogCQkJCSAgc3RydWN0IGt2bV9z cmVncyAqc3JlZ3MpOwogdm9pZCBrdm1fYXJjaF92Y3B1X2dldF9zcmVncyhzdHJ1Y3Qga3ZtX3Zj cHUgKnZjcHUsCmRpZmYgLS1naXQgYS92aXJ0L2t2bS9rdm1pLmMgYi92aXJ0L2t2bS9rdm1pLmMK aW5kZXggODVkZTJkYTNlYjdiLi5hMjA4OTFkM2EyY2UgMTAwNjQ0Ci0tLSBhL3ZpcnQva3ZtL2t2 bWkuYworKysgYi92aXJ0L2t2bS9rdm1pLmMKQEAgLTEyMTIsNiArMTIxMiwzMSBAQCB2b2lkIGt2 bWlfaGFuZGxlX3JlcXVlc3RzKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSkKIAlrdm1pX3B1dCh2Y3B1 LT5rdm0pOwogfQogCit2b2lkIGt2bWlfcG9zdF9yZXBseShzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUp Cit7CisJc3RydWN0IGt2bWlfdmNwdSAqaXZjcHUgPSBJVkNQVSh2Y3B1KTsKKworCWlmIChpdmNw dS0+aGF2ZV9kZWxheWVkX3JlZ3MpIHsKKwkJa3ZtX2FyY2hfdmNwdV9zZXRfcmVncyh2Y3B1LCAm aXZjcHUtPmRlbGF5ZWRfcmVncyk7CisJCWl2Y3B1LT5oYXZlX2RlbGF5ZWRfcmVncyA9IGZhbHNl OworCX0KK30KKworaW50IGt2bWlfY21kX3NldF9yZWdpc3RlcnMoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1LCBjb25zdCBzdHJ1Y3Qga3ZtX3JlZ3MgKnJlZ3MpCit7CisJc3RydWN0IGt2bWlfdmNwdSAq aXZjcHUgPSBJVkNQVSh2Y3B1KTsKKworCWlmIChpdmNwdS0+cmVwbHlfd2FpdGluZykgeworCQkv KiBkZWZlciBzZXQgcmVnaXN0ZXJzIHVudGlsIHdlIGdldCB0aGUgcmVwbHkgKi8KKwkJbWVtY3B5 KCZpdmNwdS0+ZGVsYXllZF9yZWdzLCByZWdzLCBzaXplb2YoaXZjcHUtPmRlbGF5ZWRfcmVncykp OworCQlpdmNwdS0+aGF2ZV9kZWxheWVkX3JlZ3MgPSB0cnVlOworCX0gZWxzZSB7CisJCWt2bWlf ZXJyKElLVk0odmNwdS0+a3ZtKSwgIkRyb3BwZWQgS1ZNSV9TRVRfUkVHSVNURVJTXG4iKTsKKwl9 CisKKwlyZXR1cm4gMDsKK30KKwogaW50IGt2bWlfY21kX2dldF9wYWdlX2FjY2VzcyhzdHJ1Y3Qg a3ZtaSAqaWt2bSwgdTY0IGdwYSwgdTggKmFjY2VzcykKIHsKIAlnZm5fdCBnZm4gPSBncGFfdG9f Z2ZuKGdwYSk7CmRpZmYgLS1naXQgYS92aXJ0L2t2bS9rdm1pX2ludC5oIGIvdmlydC9rdm0va3Zt aV9pbnQuaAppbmRleCBiNTQ3ODA5ZDEzYWUuLjdiYzNkZDFmMjI5OCAxMDA2NDQKLS0tIGEvdmly dC9rdm0va3ZtaV9pbnQuaAorKysgYi92aXJ0L2t2bS9rdm1pX2ludC5oCkBAIC0xMDUsNiArMTA1 LDkgQEAgc3RydWN0IGt2bWlfdmNwdSB7CiAJYm9vbCByZXBseV93YWl0aW5nOwogCXN0cnVjdCBr dm1pX3ZjcHVfcmVwbHkgcmVwbHk7CiAKKwlib29sIGhhdmVfZGVsYXllZF9yZWdzOworCXN0cnVj dCBrdm1fcmVncyBkZWxheWVkX3JlZ3M7CisKIAlERUNMQVJFX0JJVE1BUChldl9tYXNrLCBLVk1J X05VTV9FVkVOVFMpOwogCiAJc3RydWN0IGxpc3RfaGVhZCBqb2JfbGlzdDsKQEAgLTE3Myw2ICsx NzYsNyBAQCBpbnQga3ZtaV9tc2dfc2VuZF91bmhvb2soc3RydWN0IGt2bWkgKmlrdm0pOwogdm9p ZCAqa3ZtaV9tc2dfYWxsb2Modm9pZCk7CiB2b2lkICprdm1pX21zZ19hbGxvY19jaGVjayhzaXpl X3Qgc2l6ZSk7CiB2b2lkIGt2bWlfbXNnX2ZyZWUodm9pZCAqYWRkcik7CitpbnQga3ZtaV9jbWRf c2V0X3JlZ2lzdGVycyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIGNvbnN0IHN0cnVjdCBrdm1fcmVn cyAqcmVncyk7CiBpbnQga3ZtaV9jbWRfZ2V0X3BhZ2VfYWNjZXNzKHN0cnVjdCBrdm1pICppa3Zt LCB1NjQgZ3BhLCB1OCAqYWNjZXNzKTsKIGludCBrdm1pX2NtZF9zZXRfcGFnZV9hY2Nlc3Moc3Ry dWN0IGt2bWkgKmlrdm0sIHU2NCBncGEsIHU4IGFjY2Vzcyk7CiBpbnQga3ZtaV9jbWRfZ2V0X3Bh Z2Vfd3JpdGVfYml0bWFwKHN0cnVjdCBrdm1pICppa3ZtLCB1NjQgZ3BhLCB1MzIgKmJpdG1hcCk7 CkBAIC0xOTAsNiArMTk0LDcgQEAgaW50IGt2bWlfY21kX2NvbnRyb2xfdm1fZXZlbnRzKHN0cnVj dCBrdm1pICppa3ZtLCB1bnNpZ25lZCBpbnQgZXZlbnRfaWQsCiAJCQkgICAgICAgYm9vbCBlbmFi bGUpOwogaW50IGt2bWlfY21kX3BhdXNlX3ZjcHUoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBib29s IHdhaXQpOwogaW50IGt2bWlfcnVuX2pvYnNfYW5kX3dhaXQoc3RydWN0IGt2bV92Y3B1ICp2Y3B1 KTsKK3ZvaWQga3ZtaV9wb3N0X3JlcGx5KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSk7CiBpbnQga3Zt aV9hZGRfam9iKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwKIAkJIHZvaWQgKCpmY3QpKHN0cnVjdCBr dm1fdmNwdSAqdmNwdSwgdm9pZCAqY3R4KSwKIAkJIHZvaWQgKmN0eCwgdm9pZCAoKmZyZWVfZmN0 KSh2b2lkICpjdHgpKTsKZGlmZiAtLWdpdCBhL3ZpcnQva3ZtL2t2bWlfbXNnLmMgYi92aXJ0L2t2 bS9rdm1pX21zZy5jCmluZGV4IDlhZTA2MjJmZjA5ZS4uMzU1Y2VjNzBhMjhkIDEwMDY0NAotLS0g YS92aXJ0L2t2bS9rdm1pX21zZy5jCisrKyBiL3ZpcnQva3ZtL2t2bWlfbXNnLmMKQEAgLTM5LDYg KzM5LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IG1zZ19JRHNbXSA9IHsKIAlbS1ZNSV9S RUFEX1BIWVNJQ0FMXSAgICAgICAgID0gIktWTUlfUkVBRF9QSFlTSUNBTCIsCiAJW0tWTUlfU0VU X1BBR0VfQUNDRVNTXSAgICAgICA9ICJLVk1JX1NFVF9QQUdFX0FDQ0VTUyIsCiAJW0tWTUlfU0VU X1BBR0VfV1JJVEVfQklUTUFQXSA9ICJLVk1JX1NFVF9QQUdFX1dSSVRFX0JJVE1BUCIsCisJW0tW TUlfU0VUX1JFR0lTVEVSU10gICAgICAgICA9ICJLVk1JX1NFVF9SRUdJU1RFUlMiLAogCVtLVk1J X1dSSVRFX1BIWVNJQ0FMXSAgICAgICAgPSAiS1ZNSV9XUklURV9QSFlTSUNBTCIsCiB9OwogCkBA IC02MDUsNiArNjA2LDE5IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2dldF9yZWdpc3RlcnMoc3RydWN0 IGt2bV92Y3B1ICp2Y3B1LAogCXJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBpbnQgaGFuZGxlX3Nl dF9yZWdpc3RlcnMoc3RydWN0IGt2bV92Y3B1ICp2Y3B1LAorCQkJCWNvbnN0IHN0cnVjdCBrdm1p X21zZ19oZHIgKm1zZywKKwkJCQljb25zdCB2b2lkICpfcmVxLAorCQkJCXZjcHVfcmVwbHlfZmN0 IHJlcGx5X2NiKQoreworCWNvbnN0IHN0cnVjdCBrdm1fcmVncyAqcmVncyA9IF9yZXE7CisJaW50 IGVycjsKKworCWVyciA9IGt2bWlfY21kX3NldF9yZWdpc3RlcnModmNwdSwgcmVncyk7CisKKwly ZXR1cm4gcmVwbHlfY2IodmNwdSwgbXNnLCBlcnIsIE5VTEwsIDApOworfQorCiBzdGF0aWMgaW50 IGhhbmRsZV9jb250cm9sX2V2ZW50cyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsCiAJCQkJIGNvbnN0 IHN0cnVjdCBrdm1pX21zZ19oZHIgKm1zZywKIAkJCQkgY29uc3Qgdm9pZCAqX3JlcSwKQEAgLTY0 MCw2ICs2NTQsNyBAQCBzdGF0aWMgaW50KCpjb25zdCBtc2dfdmNwdVtdKShzdHJ1Y3Qga3ZtX3Zj cHUgKiwKIAlbS1ZNSV9FVkVOVF9SRVBMWV0gICAgICA9IGhhbmRsZV9ldmVudF9yZXBseSwKIAlb S1ZNSV9HRVRfUkVHSVNURVJTXSAgICA9IGhhbmRsZV9nZXRfcmVnaXN0ZXJzLAogCVtLVk1JX0dF VF9WQ1BVX0lORk9dICAgID0gaGFuZGxlX2dldF92Y3B1X2luZm8sCisJW0tWTUlfU0VUX1JFR0lT VEVSU10gICAgPSBoYW5kbGVfc2V0X3JlZ2lzdGVycywKIH07CiAKIHN0YXRpYyB2b2lkIGt2bWlf am9iX3ZjcHVfY21kKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdm9pZCAqX2N0eCkKQEAgLTkzNyw2 ICs5NTIsNyBAQCBpbnQga3ZtaV9zZW5kX2V2ZW50KHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdTMy IGV2X2lkLAogCWlmIChlcnIpCiAJCWdvdG8gb3V0OwogCisJa3ZtaV9wb3N0X3JlcGx5KHZjcHUp OwogCSphY3Rpb24gPSBpdmNwdS0+cmVwbHkuYWN0aW9uOwogCiBvdXQ6Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9uIG1haWxpbmcg bGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpodHRwczovL2xp c3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFsaXphdGlvbg==