From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for-4.7 4/4] x86/hvm: Fix invalidation for emulated invlpg instructions Date: Mon, 9 May 2016 14:15:42 +0100 Message-ID: <1462799742-15507-5-git-send-email-andrew.cooper3@citrix.com> References: <1462799742-15507-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1462799742-15507-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Kevin Tian , Wei Liu , Jan Beulich , George Dunlap , Andrew Cooper , Tim Deegan , Paul Durrant , Jun Nakajima , Boris Ostrovsky , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org aGFwX2ludmxwZygpIGlzIHJlYWNoYWJsZSBmcm9tIHRoZSBpbnN0cnVjdGlvbiBlbXVsYXRvciwg d2hpY2ggbWVhbnMKaW50cm9zcGVjdGlvbiBhbmQgdGVzdHMgdXNpbmcgaHZtX2ZlcCBjYW4gZW5k IHVwIGhlcmUuICBBcyBzdWNoLCBjcmFzaGluZyB0aGUKZG9tYWluIGlzIG5vdCBhbiBhcHByb3By aWF0ZSBhY3Rpb24gdG8gdGFrZS4KCkZpeGluZyB0aGlzIGludm9sdmVzIHJlYXJyYW5naW5nIHRo ZSBjYWxsZ3JhcGguCgpwYWdpbmdfaW52bHBnKCkgaXMgbm93IHRoZSBjZW50cmFsIGVudHJ5IHBv aW50LiAgSXQgZmlyc3QgY2hlY2tzIGZvcgphcHBsaWNhYmlsaXR5IG9mIGludmFsaWRhdGlvbiBi YXNlZCBvbiB2aXJ0dWFsIGFkZHJlc3MsIGFuZCBvcHRpb25hbGx5IGNhbGxzCmludG8gdGhlIHBh Z2luZyBpbnZhbGlkYXRpb24gbG9naWMuICBGb3IgSFZNIGRvbWFpbnMsIGl0IGFsc28gbWFrZXMg QVNJRC9WUElECm1hbmFnZW1lbnQgY2FsbHMuCgpUaGUgc29sZSB1c2VyIG9mIGh2bV9mdW5jcy5p bnZscGdfaW50ZXJjZXB0KCkgaXMgYWx0ZXJlZCB0byB1c2UKcGFnaW5nX2ludmxwZygpIGluc3Rl YWQsIGFsbG93aW5nIHRoZSAuaW52bHBnX2ludGVyY2VwdCgpIGhvb2sgdG8gYmUgcmVtb3ZlZC4K CkZvciBib3RoIFZNWCBhbmQgU1ZNLCB0aGUgZXhpc3RpbmcgJFZFTkRPUl9pbnZscGdfaW50ZXJj ZXB0KCkgaXMgc3BsaXQgaW4KaGFsZi4gICRWRU5ET1JfaW52bHBnX2ludGVyY2VwdCgpIHN0YXlz IGFzIHRoZSBpbnRlcmNlcHQgaGFuZGxlciBvbmx5ICh3aGljaApqdXN0IGNhbGxzIHBhZ2luZ19p bnZscGcoKSksIGFuZCBuZXcgJFZFTkRPUl9pbnZscGcoKSBmdW5jdGlvbnMgZG8gdGhlCkFTSUQv VlBJRCBtYW5hZ2VtZW50LiAgVGhlc2UgbGF0ZXIgZnVuY3Rpb25zIGFyZSBtYWRlIGF2YWlsYWJs ZSBpbiBodm1fZnVuY3MKZm9yIHBhZ2luZ19pbnZscGcoKSB0byB1c2UuCgpTaWduZWQtb2ZmLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBC ZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50 QGNpdHJpeC5jb20+CkNDOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5j b20+CkNDOiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ0M6IEp1biBOYWthamltYSA8anVuLm5h a2FqaW1hQGludGVsLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpD QzogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KQ0M6IFN1cmF2 ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5jb20+CkNDOiBXZWkg TGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5j ICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgICAgfCAxMSArKysrKysr LS0tLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgICAgfCAxNCArKysrKysrKystLS0tLQog eGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgfCAxMyArKysrKysrKysrKysrCiB4ZW4vYXJj aC94ODYvbW0vaGFwL2hhcC5jICAgICB8IDIzICsrKysrKysrKystLS0tLS0tLS0tLS0tCiB4ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9odm0uaCB8ICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L3Bh Z2luZy5oICB8ICA3ICstLS0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwg MzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYwppbmRleCBlNjMxNmJlLi5iOWNhYzhlIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYworKysgYi94ZW4vYXJjaC94ODYvaHZt L2VtdWxhdGUuYwpAQCAtMTYyMyw4ICsxNjIzLDggQEAgc3RhdGljIGludCBodm1lbXVsX2ludmxw ZygKICAgICAgICAgcmMgPSBYODZFTVVMX09LQVk7CiAgICAgfQogCi0gICAgaWYgKCByYyA9PSBY ODZFTVVMX09LQVkgJiYgaXNfY2Fub25pY2FsX2FkZHJlc3MoYWRkcikgKQotICAgICAgICBodm1f ZnVuY3MuaW52bHBnX2ludGVyY2VwdChhZGRyKTsKKyAgICBpZiAoIHJjID09IFg4NkVNVUxfT0tB WSApCisgICAgICAgIHBhZ2luZ19pbnZscGcoY3VycmVudCwgYWRkcik7CiAKICAgICByZXR1cm4g cmM7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyBiL3hlbi9hcmNo L3g4Ni9odm0vc3ZtL3N2bS5jCmluZGV4IDc2MzRjM2YuLjEwODJlNGIgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5j CkBAIC0yMjIyLDEwICsyMjIyLDEzIEBAIHN0YXRpYyB2b2lkIHN2bV9pbnZscGdhX2ludGVyY2Vw dCgKIAogc3RhdGljIHZvaWQgc3ZtX2ludmxwZ19pbnRlcmNlcHQodW5zaWduZWQgbG9uZyB2YWRk cikKIHsKLSAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAgICAgSFZNVFJBQ0VfTE9O R18yRChJTlZMUEcsIDAsIFRSQ19QQVJfTE9ORyh2YWRkcikpOwotICAgIHBhZ2luZ19pbnZscGco Y3VyciwgdmFkZHIpOwotICAgIHN2bV9hc2lkX2dfaW52bHBnKGN1cnIsIHZhZGRyKTsKKyAgICBw YWdpbmdfaW52bHBnKGN1cnJlbnQsIHZhZGRyKTsKK30KKworc3RhdGljIHZvaWQgc3ZtX2ludmxw Zyh1bnNpZ25lZCBsb25nIHZhZGRyKQoreworICAgIHN2bV9hc2lkX2dfaW52bHBnKGN1cnJlbnQs IHZhZGRyKTsKIH0KIAogc3RhdGljIHN0cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgX19pbml0ZGF0 YSBzdm1fZnVuY3Rpb25fdGFibGUgPSB7CkBAIC0yMjU4LDEyICsyMjYxLDEyIEBAIHN0YXRpYyBz dHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIF9faW5pdGRhdGEgc3ZtX2Z1bmN0aW9uX3RhYmxlID0g ewogICAgIC5pbmplY3RfdHJhcCAgICAgICAgICA9IHN2bV9pbmplY3RfdHJhcCwKICAgICAuaW5p dF9oeXBlcmNhbGxfcGFnZSAgPSBzdm1faW5pdF9oeXBlcmNhbGxfcGFnZSwKICAgICAuZXZlbnRf cGVuZGluZyAgICAgICAgPSBzdm1fZXZlbnRfcGVuZGluZywKKyAgICAuaW52bHBnICAgICAgICAg ICAgICAgPSBzdm1faW52bHBnLAogICAgIC5jcHVpZF9pbnRlcmNlcHQgICAgICA9IHN2bV9jcHVp ZF9pbnRlcmNlcHQsCiAgICAgLndiaW52ZF9pbnRlcmNlcHQgICAgID0gc3ZtX3diaW52ZF9pbnRl cmNlcHQsCiAgICAgLmZwdV9kaXJ0eV9pbnRlcmNlcHQgID0gc3ZtX2ZwdV9kaXJ0eV9pbnRlcmNl cHQsCiAgICAgLm1zcl9yZWFkX2ludGVyY2VwdCAgID0gc3ZtX21zcl9yZWFkX2ludGVyY2VwdCwK ICAgICAubXNyX3dyaXRlX2ludGVyY2VwdCAgPSBzdm1fbXNyX3dyaXRlX2ludGVyY2VwdCwKLSAg ICAuaW52bHBnX2ludGVyY2VwdCAgICAgPSBzdm1faW52bHBnX2ludGVyY2VwdCwKICAgICAuc2V0 X3JkdHNjX2V4aXRpbmcgICAgPSBzdm1fc2V0X3JkdHNjX2V4aXRpbmcsCiAgICAgLmdldF9pbnNu X2J5dGVzICAgICAgID0gc3ZtX2dldF9pbnNuX2J5dGVzLAogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCmluZGV4IGJj NDQxMGYuLmE0MWE5ODEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyB2 b2lkIHZteF93YmludmRfaW50ZXJjZXB0KHZvaWQpOwogc3RhdGljIHZvaWQgdm14X2ZwdV9kaXJ0 eV9pbnRlcmNlcHQodm9pZCk7CiBzdGF0aWMgaW50IHZteF9tc3JfcmVhZF9pbnRlcmNlcHQodW5z aWduZWQgaW50IG1zciwgdWludDY0X3QgKm1zcl9jb250ZW50KTsKIHN0YXRpYyBpbnQgdm14X21z cl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgbXNyX2NvbnRlbnQp Owotc3RhdGljIHZvaWQgdm14X2ludmxwZ19pbnRlcmNlcHQodW5zaWduZWQgbG9uZyB2YWRkcik7 CitzdGF0aWMgdm9pZCB2bXhfaW52bHBnKHVuc2lnbmVkIGxvbmcgdmFkZHIpOwogc3RhdGljIGlu dCB2bXhfdm1mdW5jX2ludGVyY2VwdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7CiAKIHN0 cnVjdCB2bXhfcGlfYmxvY2tpbmdfdmNwdSB7CkBAIC0yMTM3LDYgKzIxMzcsNyBAQCBzdGF0aWMg c3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSBfX2luaXRkYXRhIHZteF9mdW5jdGlvbl90YWJsZSA9 IHsKICAgICAuaW5qZWN0X3RyYXAgICAgICAgICAgPSB2bXhfaW5qZWN0X3RyYXAsCiAgICAgLmlu aXRfaHlwZXJjYWxsX3BhZ2UgID0gdm14X2luaXRfaHlwZXJjYWxsX3BhZ2UsCiAgICAgLmV2ZW50 X3BlbmRpbmcgICAgICAgID0gdm14X2V2ZW50X3BlbmRpbmcsCisgICAgLmludmxwZyAgICAgICAg ICAgICAgID0gdm14X2ludmxwZywKICAgICAuY3B1X3VwICAgICAgICAgICAgICAgPSB2bXhfY3B1 X3VwLAogICAgIC5jcHVfZG93biAgICAgICAgICAgICA9IHZteF9jcHVfZG93biwKICAgICAuY3B1 aWRfaW50ZXJjZXB0ICAgICAgPSB2bXhfY3B1aWRfaW50ZXJjZXB0LApAQCAtMjE0NCw3ICsyMTQ1 LDYgQEAgc3RhdGljIHN0cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgX19pbml0ZGF0YSB2bXhfZnVu Y3Rpb25fdGFibGUgPSB7CiAgICAgLmZwdV9kaXJ0eV9pbnRlcmNlcHQgID0gdm14X2ZwdV9kaXJ0 eV9pbnRlcmNlcHQsCiAgICAgLm1zcl9yZWFkX2ludGVyY2VwdCAgID0gdm14X21zcl9yZWFkX2lu dGVyY2VwdCwKICAgICAubXNyX3dyaXRlX2ludGVyY2VwdCAgPSB2bXhfbXNyX3dyaXRlX2ludGVy Y2VwdCwKLSAgICAuaW52bHBnX2ludGVyY2VwdCAgICAgPSB2bXhfaW52bHBnX2ludGVyY2VwdCwK ICAgICAudm1mdW5jX2ludGVyY2VwdCAgICAgPSB2bXhfdm1mdW5jX2ludGVyY2VwdCwKICAgICAu aGFuZGxlX2NkICAgICAgICAgICAgPSB2bXhfaGFuZGxlX2NkLAogICAgIC5zZXRfaW5mb19ndWVz dCAgICAgICA9IHZteF9zZXRfaW5mb19ndWVzdCwKQEAgLTI0MzIsMTAgKzI0MzIsMTQgQEAgc3Rh dGljIHZvaWQgdm14X2RyX2FjY2Vzcyh1bnNpZ25lZCBsb25nIGV4aXRfcXVhbGlmaWNhdGlvbiwK IAogc3RhdGljIHZvaWQgdm14X2ludmxwZ19pbnRlcmNlcHQodW5zaWduZWQgbG9uZyB2YWRkcikK IHsKLSAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAgICAgSFZNVFJBQ0VfTE9OR18y RChJTlZMUEcsIC8qaW52bHBnYT0qLyAwLCBUUkNfUEFSX0xPTkcodmFkZHIpKTsKLSAgICBpZiAo IHBhZ2luZ19pbnZscGcoY3VyciwgdmFkZHIpICYmIGNwdV9oYXNfdm14X3ZwaWQgKQotICAgICAg ICB2cGlkX3N5bmNfdmNwdV9ndmEoY3VyciwgdmFkZHIpOworICAgIHBhZ2luZ19pbnZscGcoY3Vy cmVudCwgdmFkZHIpOworfQorCitzdGF0aWMgdm9pZCB2bXhfaW52bHBnKHVuc2lnbmVkIGxvbmcg dmFkZHIpCit7CisgICAgaWYgKCBjcHVfaGFzX3ZteF92cGlkICkKKyAgICAgICAgdnBpZF9zeW5j X3ZjcHVfZ3ZhKGN1cnJlbnQsIHZhZGRyKTsKIH0KIAogc3RhdGljIGludCB2bXhfdm1mdW5jX2lu dGVyY2VwdChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXggMmJiOTIwYi4uZGFmNTM3NiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTY0 NzgsNiArNjQ3OCwxOSBAQCBjb25zdCB1bnNpZ25lZCBsb25nICpfX2luaXQgZ2V0X3BsYXRmb3Jt X2JhZHBhZ2VzKHVuc2lnbmVkIGludCAqYXJyYXlfc2l6ZSkKICAgICByZXR1cm4gYmFkX3BhZ2Vz OwogfQogCitib29sX3QgcGFnaW5nX2ludmxwZyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9u ZyB2YSkKK3sKKyAgICBib29sX3QgaW52bCA9IHBhZ2luZ19tb2RlX2V4dGVybmFsKHYtPmRvbWFp bikKKyAgICAgICAgPyBpc19jYW5vbmljYWxfYWRkcmVzcyh2YSkgOiBfX2FkZHJfb2sodmEpOwor CisgICAgaWYgKCBpbnZsICkKKyAgICAgICAgaW52bCA9IHBhZ2luZ19nZXRfaG9zdG1vZGUodikt PmludmxwZyh2LCB2YSk7CisgICAgaWYgKCBpbnZsICYmIGlzX2h2bV9kb21haW4odi0+ZG9tYWlu KSApCisgICAgICAgIGh2bV9mdW5jcy5pbnZscGcodmEpOworCisgICAgcmV0dXJuIGludmw7Cit9 CisKIC8qCiAgKiBMb2NhbCB2YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvbW0vaGFwL2hhcC5jIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwppbmRleCA0 YWI5OWJiLi45YzJjZDQ5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jCisr KyBiL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKQEAgLTY4MCwyMyArNjgwLDIwIEBAIHN0YXRp YyBpbnQgaGFwX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxvbmcgdmEsCiAK IC8qCiAgKiBIQVAgZ3Vlc3RzIGNhbiBoYW5kbGUgaW52bHBnIHdpdGhvdXQgbmVlZGluZyBhbnkg YWN0aW9uIGZyb20gWGVuLCBzbwotICogc2hvdWxkIG5vdCBiZSBpbnRlcmNlcHRpbmcgaXQuCisg KiBzaG91bGQgbm90IGJlIGludGVyY2VwdGluZyBpdC4gIEhvd2V2ZXIsIHdlIG5lZWQgdG8gY29y cmVjdGx5IGhhbmRsZQorICogZ2V0dGluZyBoZXJlIGZyb20gaW5zdHJ1Y3Rpb24gZW11bGF0aW9u LgogICovCiBzdGF0aWMgYm9vbF90IGhhcF9pbnZscGcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVk IGxvbmcgdmEpCiB7Ci0gICAgaWYgKG5lc3RlZGh2bV9lbmFibGVkKHYtPmRvbWFpbikpIHsKLSAg ICAgICAgLyogRW11bGF0ZSBJTlZMUEdBOgotICAgICAgICAgKiBNdXN0IHBlcmZvcm0gdGhlIGZs dXNoIHJpZ2h0IG5vdyBvciBhbiBvdGhlciB2Y3B1IG1heQotICAgICAgICAgKiB1c2UgaXQgd2hl biB3ZSB1c2UgdGhlIG5leHQgVk1SVU4gZW11bGF0aW9uLCBvdGhlcndpc2UuCi0gICAgICAgICAq LwotICAgICAgICBpZiAoIHZjcHVfbmVzdGVkaHZtKHYpLm52X3AybSApCi0gICAgICAgICAgICBw Mm1fZmx1c2godiwgdmNwdV9uZXN0ZWRodm0odikubnZfcDJtKTsKLSAgICAgICAgcmV0dXJuIDE7 Ci0gICAgfQorICAgIC8qCisgICAgICogRW11bGF0ZSBJTlZMUEdBOgorICAgICAqIE11c3QgcGVy Zm9ybSB0aGUgZmx1c2ggcmlnaHQgbm93IG9yIGFuIG90aGVyIHZjcHUgbWF5CisgICAgICogdXNl IGl0IHdoZW4gd2UgdXNlIHRoZSBuZXh0IFZNUlVOIGVtdWxhdGlvbiwgb3RoZXJ3aXNlLgorICAg ICAqLworICAgIGlmICggbmVzdGVkaHZtX2VuYWJsZWQodi0+ZG9tYWluKSAmJiB2Y3B1X25lc3Rl ZGh2bSh2KS5udl9wMm0gKQorICAgICAgICBwMm1fZmx1c2godiwgdmNwdV9uZXN0ZWRodm0odiku bnZfcDJtKTsKIAotICAgIEhBUF9FUlJPUigiSW50ZXJjZXB0ZWQgYSBndWVzdCBJTlZMUEcgKCVw dikgd2l0aCBIQVAgZW5hYmxlZFxuIiwgdik7Ci0gICAgZG9tYWluX2NyYXNoKHYtPmRvbWFpbik7 Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyB2b2lkIGhhcF91cGRh dGVfY3IzKHN0cnVjdCB2Y3B1ICp2LCBpbnQgZG9fbG9ja2luZykKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgK aW5kZXggYWRkNmVlOC4uOWUxZmY3ZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vaHZtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKQEAgLTE1NCw2ICsx NTQsNyBAQCBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIHsKICAgICB2b2lkICgqaW5pdF9oeXBl cmNhbGxfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgdm9pZCAqaHlwZXJjYWxsX3BhZ2UpOwogCiAg ICAgaW50ICAoKmV2ZW50X3BlbmRpbmcpKHN0cnVjdCB2Y3B1ICp2KTsKKyAgICB2b2lkICgqaW52 bHBnKSh1bnNpZ25lZCBsb25nIHZhZGRyKTsKIAogICAgIGludCAgKCpjcHVfdXBfcHJlcGFyZSko dW5zaWduZWQgaW50IGNwdSk7CiAgICAgdm9pZCAoKmNwdV9kZWFkKSh1bnNpZ25lZCBpbnQgY3B1 KTsKQEAgLTE3Miw3ICsxNzMsNiBAQCBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIHsKICAgICB2 b2lkICgqZnB1X2RpcnR5X2ludGVyY2VwdCkodm9pZCk7CiAgICAgaW50ICgqbXNyX3JlYWRfaW50 ZXJjZXB0KSh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAqbXNyX2NvbnRlbnQpOwogICAgIGlu dCAoKm1zcl93cml0ZV9pbnRlcmNlcHQpKHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90IG1zcl9j b250ZW50KTsKLSAgICB2b2lkICgqaW52bHBnX2ludGVyY2VwdCkodW5zaWduZWQgbG9uZyB2YWRk cik7CiAgICAgaW50ICgqdm1mdW5jX2ludGVyY2VwdCkoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJl Z3MpOwogICAgIHZvaWQgKCpoYW5kbGVfY2QpKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25n IHZhbHVlKTsKICAgICB2b2lkICgqc2V0X2luZm9fZ3Vlc3QpKHN0cnVjdCB2Y3B1ICp2KTsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGFnaW5nLmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L3BhZ2luZy5oCmluZGV4IGFiMTMxY2MuLjc4NDdkMmMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL2FzbS14ODYvcGFnaW5nLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdpbmcuaApA QCAtMjQwLDEyICsyNDAsNyBAQCBwYWdpbmdfZmF1bHQodW5zaWduZWQgbG9uZyB2YSwgc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiAvKiBIYW5kbGUgaW52bHBnIHJlcXVlc3RzIG9uIHZjcHVz LgogICogUmV0dXJucyAxIGlmIHRoZSBpbnZscGcgaW5zdHJ1Y3Rpb24gc2hvdWxkIGJlIGlzc3Vl ZCBvbiB0aGUgaGFyZHdhcmUsCiAgKiBvciAwIGlmIGl0J3Mgc2FmZSBub3QgdG8gZG8gc28uICov Ci1zdGF0aWMgaW5saW5lIGJvb2xfdCBwYWdpbmdfaW52bHBnKHN0cnVjdCB2Y3B1ICp2LCB1bnNp Z25lZCBsb25nIHZhKQotewotICAgIHJldHVybiAocGFnaW5nX21vZGVfZXh0ZXJuYWwodi0+ZG9t YWluKSA/IGlzX2Nhbm9uaWNhbF9hZGRyZXNzKHZhKQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IF9fYWRkcl9vayh2YSkpICYmCi0gICAgICAgICAgIHBhZ2lu Z19nZXRfaG9zdG1vZGUodiktPmludmxwZyh2LCB2YSk7Ci19Citib29sX3QgcGFnaW5nX2ludmxw ZyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyB2YSk7CiAKIC8qIFRyYW5zbGF0ZSBhIGd1 ZXN0IHZpcnR1YWwgYWRkcmVzcyB0byB0aGUgZnJhbWUgbnVtYmVyIHRoYXQgdGhlCiAgKiAqZ3Vl c3QqIHBhZ2V0YWJsZXMgd291bGQgbWFwIGl0IHRvLiAgUmV0dXJucyBJTlZBTElEX0dGTiBpZiB0 aGUgZ3Vlc3QKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK