From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v3 6/9] x86/vmce, tools/libxl: expose LMCE capability in guest MSR_IA32_MCG_CAP Date: Thu, 30 Mar 2017 14:20:00 +0800 Message-ID: <20170330062003.9119-7-haozhong.zhang@intel.com> References: <20170330062003.9119-1-haozhong.zhang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170330062003.9119-1-haozhong.zhang@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Haozhong Zhang , Ian Jackson , Wei Liu , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org SWYgTE1DRSBpcyBzdXBwb3J0ZWQgYnkgaG9zdCBhbmQgJyBtY2FfY2FwcyA9IFsgImxtY2UiIF0g JyBpcyBwcmVzZW50CmluIHhsIGNvbmZpZywgdGhlIExNQ0UgY2FwYWJpbGl0eSB3aWxsIGJlIGV4 cG9zZWQgaW4gZ3Vlc3QgTVNSX0lBMzJfTUNHX0NBUC4KQnkgZGVmYXVsdCwgTE1DRSBpcyBub3Qg ZXhwb3NlZCB0byBndWVzdCBzbyBhcyB0byBrZWVwIHRoZSBiYWNrd2FyZHMgbWlncmF0aW9uCmNv bXBhdGliaWxpdHkuCgpTaWduZWQtb2ZmLWJ5OiBIYW96aG9uZyBaaGFuZyA8aGFvemhvbmcuemhh bmdAaW50ZWwuY29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXgu Y29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+CgpDaGFuZ2VzIGluIHYzOgogKiBSZW5hbWUgSFZNTUNBX0NBUF8qIHRvIFhFTl9IVk1f TUNBX0NBUF8qLgogKiBVc2UgbWtfeGVuX3VsbG9uZygpIHRvIGRlZmluZSBYRU5fSFZNX01DQV9D QVBfTE1DRSBhbmQgc3RhcnQgZnJvbQogICBiaXQgMC4KICogTWFrZSBsbWNlX3N1cHBvcnQgbm9u LXN0YXRpYyBpbiB0aGlzIHBhdGNoIHJhdGhlciB0aGFuIGluIHBhdGNoIDIuCiAqIFBhcnNlICdt Y2FfY2FwcycgaW4geGwuCiAqIEFkZCBMSUJYTF9IQVZFX01DQV9DQVBTLgotLS0KIGRvY3MvbWFu L3hsLmNmZy5wb2QuNS5pbiAgICAgICAgICAgIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKysr CiB0b29scy9saWJ4bC9saWJ4bC5oICAgICAgICAgICAgICAgICB8ICA3ICsrKysrKysKIHRvb2xz L2xpYnhsL2xpYnhsX2RvbS5jICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKysrCiB0b29s cy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICAgICB8ICAxICsKIHRvb2xzL3hsL3hsX3BhcnNl LmMgICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K IHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oICAgICAgIHwgIDEgKwogeGVuL2FyY2gveDg2 L2NwdS9tY2hlY2svbWNlX2ludGVsLmMgfCAgMiArLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2sv dm1jZS5jICAgICAgfCAxOSArKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYvaHZtL2h2 bS5jICAgICAgICAgICAgICB8ICA1ICsrKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L21jZS5oICAg ICAgICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vcGFyYW1zLmggICAgIHwgIDcg KysrKysrLQogMTEgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluIGIvZG9jcy9tYW4veGwu Y2ZnLnBvZC41LmluCmluZGV4IDk5MTk2MGIuLjM0Njk5NzAgMTAwNjQ0Ci0tLSBhL2RvY3MvbWFu L3hsLmNmZy5wb2QuNS5pbgorKysgYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KQEAgLTIwMjMs NiArMjAyMywzMCBAQCBuYXRpdmVseSBvciB2aWEgaGFyZHdhcmUgYmFja3dhcmRzIGNvbXBhdGli aWxpdHkgc3VwcG9ydC4KIAogPWJhY2sKIAorPWhlYWQzIHg4NgorCis9b3ZlciA0CisKKz1pdGVt IEI8bWNhX2NhcHM9WyAiQ0FQIiwgIkNBUCIsIC4uLiBdPgorCisoSFZNIG9ubHkpIEVuYWJsZSBN Q0EgY2FwYWJpbGl0aWVzIGJlc2lkZXMgZGVmYXVsdCBvbmVzIGVuYWJsZWQKK2J5IFhlbiBoeXBl cnZpc29yIGZvciB0aGUgSFZNIGRvbWFpbi4gIkNBUCIgY2FuIGJlIG9uZSBpbiB0aGUKK2ZvbGxv d2luZyBsaXN0OgorCis9b3ZlciA0CisKKz1pdGVtIEI8ImxtY2UiPgorCitJbnRlbCBsb2NhbCBN Q0UKKworPWl0ZW0gQjxkZWZhdWx0PgorCitObyBNQ0EgY2FwYWJpbGl0aWVzIGluIGFib3ZlIGxp c3QgYXJlIGVuYWJsZWQuCisKKz1iYWNrCisKKz1iYWNrCisKID1oZWFkMSBTRUUgQUxTTwogCiA9 b3ZlciA0CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bC5oIGIvdG9vbHMvbGlieGwvbGli eGwuaAppbmRleCA4MzNmODY2Li5jOGEwYjZlIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4 bC5oCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKQEAgLTkxMCw2ICs5MTAsMTMgQEAgdm9pZCBs aWJ4bF9tYWNfY29weShsaWJ4bF9jdHggKmN0eCwgbGlieGxfbWFjICpkc3QsIGNvbnN0IGxpYnhs X21hYyAqc3JjKTsKICAqIElmIHRoaXMgaXMgZGVmaW5lZCwgdGhlIENvZGUgYW5kIERhdGEgUHJp b3JpdGl6YXRpb24gZmVhdHVyZSBpcyBzdXBwb3J0ZWQuCiAgKi8KICNkZWZpbmUgTElCWExfSEFW RV9QU1JfQ0RQIDEKKworLyoKKyAqIExJQlhMX0hBVkVfTUNBX0NBUFMKKyAqCisgKiBJZiB0aGlz IGlzIGRlZmluZWQsIHNldHRpbmcgTUNBIGNhcGFiaWxpdGllcyBmb3IgSFZNIGRvbWFpbiBpcyBz dXBwb3J0ZWQuCisgKi8KKyNkZWZpbmUgTElCWExfSEFWRV9NQ0FfQ0FQUyAxCiAjZW5kaWYKIAog LyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGli eGxfZG9tLmMKaW5kZXggY2YwM2RlZC4uOWEwMTVlYiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfZG9tLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKQEAgLTI3OSw2ICsyNzks MTcgQEAgZXJyOgogICAgIGxpYnhsX2JpdG1hcF9kaXNwb3NlKCZlbmxpZ2h0ZW5tZW50cyk7CiAg ICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiB9CisKK3N0YXRpYyBpbnQgaHZtX3NldF9tY2FfY2FwYWJp bGl0aWVzKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmNvbnN0IGluZm8pCit7 CisgICAgdW5zaWduZWQgbG9uZyBjYXBzID0gaW5mby0+dS5odm0ubWNhX2NhcHM7CisKKyAgICBp ZiAoIWNhcHMpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIHhjX2h2bV9wYXJhbV9z ZXQoQ1RYLT54Y2gsIGRvbWlkLCBIVk1fUEFSQU1fTUNBX0NBUCwgY2Fwcyk7Cit9CiAjZW5kaWYK IAogc3RhdGljIHZvaWQgaHZtX3NldF9jb25mX3BhcmFtcyh4Y19pbnRlcmZhY2UgKmhhbmRsZSwg dWludDMyX3QgZG9taWQsCkBAIC00NDIsNiArNDUzLDEwIEBAIGludCBsaWJ4bF9fYnVpbGRfcHJl KGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICByYyA9IGh2bV9zZXRfdmly aWRpYW5fZmVhdHVyZXMoZ2MsIGRvbWlkLCBpbmZvKTsKICAgICAgICAgaWYgKHJjKQogICAgICAg ICAgICAgcmV0dXJuIHJjOworCisgICAgICAgIHJjID0gaHZtX3NldF9tY2FfY2FwYWJpbGl0aWVz KGdjLCBkb21pZCwgaW5mbyk7CisgICAgICAgIGlmIChyYykKKyAgICAgICAgICAgIHJldHVybiBy YzsKICNlbmRpZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMu aWRsIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCmluZGV4IDY5ZTc4OWEuLjhlOWQ0ZWQg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAorKysgYi90b29scy9saWJ4 bC9saWJ4bF90eXBlcy5pZGwKQEAgLTU1MSw2ICs1NTEsNyBAQCBsaWJ4bF9kb21haW5fYnVpbGRf aW5mbyA9IFN0cnVjdCgiZG9tYWluX2J1aWxkX2luZm8iLFsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICgic2VyaWFsX2xpc3QiLCAgICAgIGxpYnhsX3N0cmluZ19saXN0 KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgicmRtIiwgbGlieGxf cmRtX3Jlc2VydmUpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJy ZG1fbWVtX2JvdW5kYXJ5X21lbWtiIiwgTWVtS0IpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKCJtY2FfY2FwcyIsICAgICAgICAgdWludDY0KSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pKSwKICAgICAgICAgICAgICAgICAgKCJwdiIs IFN0cnVjdChOb25lLCBbKCJrZXJuZWwiLCBzdHJpbmcpLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoInNsYWNrX21lbWtiIiwgTWVtS0IpLApkaWZmIC0tZ2l0IGEvdG9v bHMveGwveGxfcGFyc2UuYyBiL3Rvb2xzL3hsL3hsX3BhcnNlLmMKaW5kZXggYjcyZjk5MC4uNTg2 Y2I2YSAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYworKysgYi90b29scy94bC94bF9w YXJzZS5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxz dGRsaWIuaD4KICNpbmNsdWRlIDx4ZW4vaHZtL2U4MjAuaD4KKyNpbmNsdWRlIDx4ZW4vaHZtL3Bh cmFtcy5oPgogCiAjaW5jbHVkZSA8bGlieGwuaD4KICNpbmNsdWRlIDxsaWJ4bF91dGlscy5oPgpA QCAtODEzLDggKzgxNCw5IEBAIHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29u ZmlnX3NvdXJjZSwKICAgICBYTFVfQ29uZmlnICpjb25maWc7CiAgICAgWExVX0NvbmZpZ0xpc3Qg KmNwdXMsICp2YmRzLCAqbmljcywgKnBjaXMsICpjdmZicywgKmNwdWlkcywgKnZ0cG1zLAogICAg ICAgICAgICAgICAgICAgICp1c2JjdHJscywgKnVzYmRldnM7Ci0gICAgWExVX0NvbmZpZ0xpc3Qg KmNoYW5uZWxzLCAqaW9wb3J0cywgKmlycXMsICppb21lbSwgKnZpcmlkaWFuLCAqZHRkZXZzOwot ICAgIGludCBudW1faW9wb3J0cywgbnVtX2lycXMsIG51bV9pb21lbSwgbnVtX2NwdXMsIG51bV92 aXJpZGlhbjsKKyAgICBYTFVfQ29uZmlnTGlzdCAqY2hhbm5lbHMsICppb3BvcnRzLCAqaXJxcywg KmlvbWVtLCAqdmlyaWRpYW4sICpkdGRldnMsCisgICAgICAgICAgICAgICAgICAgKm1jYV9jYXBz OworICAgIGludCBudW1faW9wb3J0cywgbnVtX2lycXMsIG51bV9pb21lbSwgbnVtX2NwdXMsIG51 bV92aXJpZGlhbiwgbnVtX21jYV9jYXBzOwogICAgIGludCBwY2lfcG93ZXJfbWdtdCA9IDA7CiAg ICAgaW50IHBjaV9tc2l0cmFuc2xhdGUgPSAwOwogICAgIGludCBwY2lfcGVybWlzc2l2ZSA9IDA7 CkBAIC0xMTc5LDYgKzExODEsMzEgQEAgdm9pZCBwYXJzZV9jb25maWdfZGF0YShjb25zdCBjaGFy ICpjb25maWdfc291cmNlLAogCiAgICAgICAgIGlmICgheGx1X2NmZ19nZXRfbG9uZyAoY29uZmln LCAicmRtX21lbV9ib3VuZGFyeSIsICZsLCAwKSkKICAgICAgICAgICAgIGJfaW5mby0+dS5odm0u cmRtX21lbV9ib3VuZGFyeV9tZW1rYiA9IGwgKiAxMDI0OworCisgICAgICAgIHN3aXRjaCAoeGx1 X2NmZ19nZXRfbGlzdChjb25maWcsICJtY2FfY2FwcyIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmbWNhX2NhcHMsICZudW1fbWNhX2NhcHMsIDEpKQorICAgICAgICB7CisgICAg ICAgIGNhc2UgMDogLyogU3VjY2VzcyAqLworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51 bV9tY2FfY2FwczsgaSsrKSB7CisgICAgICAgICAgICAgICAgYnVmID0geGx1X2NmZ19nZXRfbGlz dGl0ZW0obWNhX2NhcHMsIGkpOworICAgICAgICAgICAgICAgIGlmICghc3RyY21wKGJ1ZiwgImxt Y2UiKSkKKyAgICAgICAgICAgICAgICAgICAgYl9pbmZvLT51Lmh2bS5tY2FfY2FwcyB8PSBYRU5f SFZNX01DQV9DQVBfTE1DRTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg ICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogdW5yZWNvZ25pemVkIE1DQSBjYXBhYmlsaXR5 ICclcycuXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zik7CisgICAgICAgICAg ICAgICAgICAgIGV4aXQoLUVSUk9SX0ZBSUwpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgRVNSQ0g6IC8qIE9wdGlv biBub3QgcHJlc2VudCAqLworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgZGVmYXVsdDoK KyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IHVuYWJsZSB0byBwYXJzZSBtY2Ff Y2Fwcy5cbiIpOworICAgICAgICAgICAgZXhpdCgtRVJST1JfRkFJTCk7CisgICAgICAgIH0KKwog ICAgICAgICBicmVhazsKICAgICBjYXNlIExJQlhMX0RPTUFJTl9UWVBFX1BWOgogICAgIHsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oIGIveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNlLmgKaW5kZXggM2E5MTM0ZS4uMjQ3ZDlhYSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2NwdS9tY2hlY2svbWNlLmgKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNl LmgKQEAgLTM4LDYgKzM4LDcgQEAgZW51bSBtY2hlY2tfdHlwZSB7CiB9OwogCiBleHRlcm4gdWlu dDhfdCBjbWNpX2FwaWNfdmVjdG9yOworZXh0ZXJuIGJvb2wgbG1jZV9zdXBwb3J0OwogCiAvKiBJ bml0IGZ1bmN0aW9ucyAqLwogZW51bSBtY2hlY2tfdHlwZSBhbWRfbWNoZWNrX2luaXQoc3RydWN0 IGNwdWluZm9feDg2ICpjKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21j ZV9pbnRlbC5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlX2ludGVsLmMKaW5kZXggODUy ODQ1Mi4uYTc4ODZjNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlX2lu dGVsLmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNlX2ludGVsLmMKQEAgLTMwLDcg KzMwLDcgQEAgYm9vbGVhbl9wYXJhbSgibWNlX2ZiIiwgbWNlX2ZvcmNlX2Jyb2FkY2FzdCk7CiBz dGF0aWMgaW50IF9fcmVhZF9tb3N0bHkgbnJfaW50ZWxfZXh0X21zcnM7CiAKIC8qIElmIG1jZV9m b3JjZV9icm9hZGNhc3QgPT0gMSwgbG1jZV9zdXBwb3J0IHdpbGwgYmUgZGlzYWJsZWQgZm9yY2li bHkuICovCi1zdGF0aWMgYm9vbCBfX3JlYWRfbW9zdGx5IGxtY2Vfc3VwcG9ydDsKK2Jvb2wgX19y ZWFkX21vc3RseSBsbWNlX3N1cHBvcnQ7CiAKIC8qIEludGVsIFNETSBkZWZpbmUgYml0MTV+Yml0 MCBvZiBJQTMyX01DaV9TVEFUVVMgYXMgdGhlIE1DIGVycm9yIGNvZGUgKi8KICNkZWZpbmUgSU5U RUxfTUNDT0RfTUFTSyAweEZGRkYKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNr L3ZtY2UuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuYwppbmRleCBlMTliZTY5Li43 MDRhZmU4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMKKysrIGIv eGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCkBAIC03NCw3ICs3NCw3IEBAIGludCB2bWNl X3Jlc3RvcmVfdmNwdShzdHJ1Y3QgdmNwdSAqdiwgY29uc3Qgc3RydWN0IGh2bV92bWNlX3ZjcHUg KmN0eHQpCiAgICAgdW5zaWduZWQgbG9uZyBndWVzdF9tY2dfY2FwOwogCiAgICAgaWYgKCBib290 X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCApCi0gICAgICAgIGd1ZXN0 X21jZ19jYXAgPSBJTlRFTF9HVUVTVF9NQ0dfQ0FQOworICAgICAgICBndWVzdF9tY2dfY2FwID0g SU5URUxfR1VFU1RfTUNHX0NBUCB8IE1DR19MTUNFX1A7CiAgICAgZWxzZQogICAgICAgICBndWVz dF9tY2dfY2FwID0gQU1EX0dVRVNUX01DR19DQVA7CiAKQEAgLTU0NiwzICs1NDYsMjAgQEAgaW50 IHVubW1hcF9icm9rZW5fcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBtZm5fdCBtZm4sIHVuc2lnbmVk IGxvbmcgZ2ZuKQogICAgIHJldHVybiByYzsKIH0KIAoraW50IHZtY2VfZW5hYmxlX21jYV9jYXAo c3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3QgY2FwKQoreworICAgIHN0cnVjdCB2Y3B1ICp2Owor CisgICAgaWYgKCBjYXAgJiB+WEVOX0hWTV9NQ0FfQ0FQX01BU0sgKQorICAgICAgICByZXR1cm4g LUVJTlZBTDsKKworICAgIGlmICggY2FwICYgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UgKQorICAgIHsK KyAgICAgICAgaWYgKCAhbG1jZV9zdXBwb3J0ICkKKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OworICAgICAgICBmb3JfZWFjaF92Y3B1KGQsIHYpCisgICAgICAgICAgICB2LT5hcmNoLnZtY2Uu bWNnX2NhcCB8PSBNQ0dfTE1DRV9QOworICAgIH0KKworICAgIHJldHVybiAwOworfQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5k ZXggMDI4Mjk4Ni4uNDNkZWYwNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYwor KysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0zOTcyLDYgKzM5NzIsNyBAQCBzdGF0aWMg aW50IGh2bV9hbGxvd19zZXRfcGFyYW0oc3RydWN0IGRvbWFpbiAqZCwKICAgICBjYXNlIEhWTV9Q QVJBTV9JT1JFUV9TRVJWRVJfUEZOOgogICAgIGNhc2UgSFZNX1BBUkFNX05SX0lPUkVRX1NFUlZF Ul9QQUdFUzoKICAgICBjYXNlIEhWTV9QQVJBTV9BTFRQMk06CisgICAgY2FzZSBIVk1fUEFSQU1f TUNBX0NBUDoKICAgICAgICAgaWYgKCB2YWx1ZSAhPSAwICYmIGEtPnZhbHVlICE9IHZhbHVlICkK ICAgICAgICAgICAgIHJjID0gLUVFWElTVDsKICAgICAgICAgYnJlYWs7CkBAIC00MTgzLDYgKzQx ODQsMTAgQEAgc3RhdGljIGludCBodm1vcF9zZXRfcGFyYW0oCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgweDEwMDAwIC8gOCkgKyAxKSA8PCAzMik7CiAg ICAgICAgIGEudmFsdWUgfD0gVk04Nl9UU1NfVVBEQVRFRDsKICAgICAgICAgYnJlYWs7CisKKyAg ICBjYXNlIEhWTV9QQVJBTV9NQ0FfQ0FQOgorICAgICAgICByYyA9IHZtY2VfZW5hYmxlX21jYV9j YXAoZCwgYS52YWx1ZSk7CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGlmICggcmMgIT0g MCApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21jZS5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9tY2UuaAppbmRleCAzNWY5OTYyLi5kMjkzM2M5IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L21jZS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbWNlLmgKQEAgLTM4 LDYgKzM4LDcgQEAgZXh0ZXJuIGludCB2bWNlX3Jlc3RvcmVfdmNwdShzdHJ1Y3QgdmNwdSAqLCBj b25zdCBzdHJ1Y3QgaHZtX3ZtY2VfdmNwdSAqKTsKIGV4dGVybiBpbnQgdm1jZV93cm1zcih1aW50 MzJfdCBtc3IsIHVpbnQ2NF90IHZhbCk7CiBleHRlcm4gaW50IHZtY2VfcmRtc3IodWludDMyX3Qg bXNyLCB1aW50NjRfdCAqdmFsKTsKIGV4dGVybiBib29sIHZtY2VfaGFzX2xtY2UoY29uc3Qgc3Ry dWN0IHZjcHUgKnYpOworZXh0ZXJuIGludCB2bWNlX2VuYWJsZV9tY2FfY2FwKHN0cnVjdCBkb21h aW4gKmQsIHVpbnQ2NF90IGNhcCk7CiAKIGV4dGVybiB1bnNpZ25lZCBpbnQgbnJfbWNlX2Jhbmtz OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5oIGIveGVuL2lu Y2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaAppbmRleCAxOWM5ZWI4Li5lNmVlMmY2IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5oCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9odm0vcGFyYW1zLmgKQEAgLTI2NCw2ICsyNjQsMTEgQEAKICAqLwogI2RlZmluZSBIVk1f UEFSQU1fVk04Nl9UU1NfU0laRUQgMzcKIAotI2RlZmluZSBIVk1fTlJfUEFSQU1TIDM4CisvKiBF bmFibGUgTUNBIGNhcGFiaWxpdGllcy4gKi8KKyNkZWZpbmUgSFZNX1BBUkFNX01DQV9DQVAgMzgK KyNkZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX0xNQ0UgICAoeGVuX21rX3VsbG9uZygxKSA8PCAwKQor I2RlZmluZSBYRU5fSFZNX01DQV9DQVBfTUFTSyAgIFhFTl9IVk1fTUNBX0NBUF9MTUNFCisKKyNk ZWZpbmUgSFZNX05SX1BBUkFNUyAzOQogCiAjZW5kaWYgLyogX19YRU5fUFVCTElDX0hWTV9QQVJB TVNfSF9fICovCi0tIAoyLjEwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK