From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v5 08/11] x86/vmce, tools/libxl: expose LMCE capability in guest MSR_IA32_MCG_CAP Date: Mon, 3 Jul 2017 11:46:23 +0800 Message-ID: <20170703034626.9429-9-haozhong.zhang@intel.com> References: <20170703034626.9429-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: <20170703034626.9429-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 bmdAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t PiBmb3IgaHlwZXJ2aXNvciBzaWRlCkFja2VkLWJ5OiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXgu Y29tPgotLS0KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzog V2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0t LQogZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluICAgICAgICAgICAgfCAyNCArKysrKysrKysrKysr KysrKysrKysrKysKIHRvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jICAgIHwgIDEgKwog dG9vbHMvbGlieGwvbGlieGwuaCAgICAgICAgICAgICAgICAgfCAgNyArKysrKysrCiB0b29scy9s aWJ4bC9saWJ4bF9kb20uYyAgICAgICAgICAgICB8IDE1ICsrKysrKysrKysrKysrKwogdG9vbHMv bGlieGwvbGlieGxfdHlwZXMuaWRsICAgICAgICAgfCAgMSArCiB0b29scy94bC94bF9wYXJzZS5j ICAgICAgICAgICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhl bi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oICAgICAgIHwgIDEgKwogeGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWNlX2ludGVsLmMgfCAgMiArLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1j ZS5jICAgICAgfCAxOSArKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5j ICAgICAgICAgICAgICB8ICA1ICsrKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L21jZS5oICAgICAg ICAgICB8ICAxICsKIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vcGFyYW1zLmggICAgIHwgIDcgKysr KysrLQogMTIgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluIGIvZG9jcy9tYW4veGwuY2Zn LnBvZC41LmluCmluZGV4IDM4MDg0YzcyM2EuLjUxZWM3NDMyNWQgMTAwNjQ0Ci0tLSBhL2RvY3Mv bWFuL3hsLmNmZy5wb2QuNS5pbgorKysgYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KQEAgLTIx NjgsNiArMjE2OCwzMCBAQCBuYXRpdmVseSBvciB2aWEgaGFyZHdhcmUgYmFja3dhcmRzIGNvbXBh dGliaWxpdHkgc3VwcG9ydC4KIAogPWJhY2sKIAorPWhlYWQzIHg4NgorCis9b3ZlciA0CisKKz1p dGVtIEI8bWNhX2NhcHM9WyAiQ0FQIiwgIkNBUCIsIC4uLiBdPgorCisoSFZNIG9ubHkpIEVuYWJs ZSBNQ0EgY2FwYWJpbGl0aWVzIGJlc2lkZXMgZGVmYXVsdCBvbmVzIGVuYWJsZWQKK2J5IFhlbiBo eXBlcnZpc29yIGZvciB0aGUgSFZNIGRvbWFpbi4gIkNBUCIgY2FuIGJlIG9uZSBpbiB0aGUKK2Zv bGxvd2luZyBsaXN0OgorCis9b3ZlciA0CisKKz1pdGVtIEI8ImxtY2UiPgorCitJbnRlbCBsb2Nh bCBNQ0UKKworPWl0ZW0gQjxkZWZhdWx0PgorCitObyBNQ0EgY2FwYWJpbGl0aWVzIGluIGFib3Zl IGxpc3QgYXJlIGVuYWJsZWQuCisKKz1iYWNrCisKKz1iYWNrCisKID1oZWFkMSBTRUUgQUxTTwog CiA9b3ZlciA0CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9zYXZlX3g4Nl9odm0uYyBi L3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jCmluZGV4IGZjNWM2ZWE5M2UuLmUxN2Ji NTkxNDYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jCisrKyBi L3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jCkBAIC03Nyw2ICs3Nyw3IEBAIHN0YXRp YyBpbnQgd3JpdGVfaHZtX3BhcmFtcyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAgICAg ICBIVk1fUEFSQU1fSU9SRVFfU0VSVkVSX1BGTiwKICAgICAgICAgSFZNX1BBUkFNX05SX0lPUkVR X1NFUlZFUl9QQUdFUywKICAgICAgICAgSFZNX1BBUkFNX1g4N19GSVBfV0lEVEgsCisgICAgICAg IEhWTV9QQVJBTV9NQ0FfQ0FQLAogICAgIH07CiAKICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGN0 eC0+eGNoOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuaCBiL3Rvb2xzL2xpYnhsL2xp YnhsLmgKaW5kZXggY2Y4Njg3YWE3ZS4uN2NmMGYzMWY2OCAxMDA2NDQKLS0tIGEvdG9vbHMvbGli eGwvbGlieGwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bC5oCkBAIC05MjIsNiArOTIyLDEzIEBA IHZvaWQgbGlieGxfbWFjX2NvcHkobGlieGxfY3R4ICpjdHgsIGxpYnhsX21hYyAqZHN0LCBjb25z dCBsaWJ4bF9tYWMgKnNyYyk7CiAgKiBJZiB0aGlzIGlzIGRlZmluZWQsIHRoZSBDb2RlIGFuZCBE YXRhIFByaW9yaXRpemF0aW9uIGZlYXR1cmUgaXMgc3VwcG9ydGVkLgogICovCiAjZGVmaW5lIExJ QlhMX0hBVkVfUFNSX0NEUCAxCisKKy8qCisgKiBMSUJYTF9IQVZFX01DQV9DQVBTCisgKgorICog SWYgdGhpcyBpcyBkZWZpbmVkLCBzZXR0aW5nIE1DQSBjYXBhYmlsaXRpZXMgZm9yIEhWTSBkb21h aW4gaXMgc3VwcG9ydGVkLgorICovCisjZGVmaW5lIExJQlhMX0hBVkVfTUNBX0NBUFMgMQogI2Vu ZGlmCiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xp YnhsL2xpYnhsX2RvbS5jCmluZGV4IDVkOTE0YTU5ZWUuLmY1NGZkNDlhNzMgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBA IC0yNzksNiArMjc5LDE3IEBAIGVycjoKICAgICBsaWJ4bF9iaXRtYXBfZGlzcG9zZSgmZW5saWdo dGVubWVudHMpOwogICAgIHJldHVybiBFUlJPUl9GQUlMOwogfQorCitzdGF0aWMgaW50IGh2bV9z ZXRfbWNhX2NhcGFiaWxpdGllcyhsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpj b25zdCBpbmZvKQoreworICAgIHVuc2lnbmVkIGxvbmcgY2FwcyA9IGluZm8tPnUuaHZtLm1jYV9j YXBzOworCisgICAgaWYgKCFjYXBzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiB4 Y19odm1fcGFyYW1fc2V0KENUWC0+eGNoLCBkb21pZCwgSFZNX1BBUkFNX01DQV9DQVAsIGNhcHMp OworfQogI2VuZGlmCiAKIHN0YXRpYyB2b2lkIGh2bV9zZXRfY29uZl9wYXJhbXMoeGNfaW50ZXJm YWNlICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLApAQCAtNDQwLDYgKzQ1MSwxMCBAQCBpbnQgbGli eGxfX2J1aWxkX3ByZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgcmMg PSBodm1fc2V0X3ZpcmlkaWFuX2ZlYXR1cmVzKGdjLCBkb21pZCwgaW5mbyk7CiAgICAgICAgIGlm IChyYykKICAgICAgICAgICAgIHJldHVybiByYzsKKworICAgICAgICByYyA9IGh2bV9zZXRfbWNh X2NhcGFiaWxpdGllcyhnYywgZG9taWQsIGluZm8pOworICAgICAgICBpZiAocmMpCisgICAgICAg ICAgICByZXR1cm4gcmM7CiAjZW5kaWYKICAgICB9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsX3R5cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAppbmRleCAyMjA0 NDI1OWYzLi44YTk4NDljNjQzIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5p ZGwKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC01NjQsNiArNTY0LDcgQEAg bGlieGxfZG9tYWluX2J1aWxkX2luZm8gPSBTdHJ1Y3QoImRvbWFpbl9idWlsZF9pbmZvIixbCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInNlcmlhbF9saXN0IiwgICAg ICBsaWJ4bF9zdHJpbmdfbGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoInJkbSIsIGxpYnhsX3JkbV9yZXNlcnZlKSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICgicmRtX21lbV9ib3VuZGFyeV9tZW1rYiIsIE1lbUtCKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgibWNhX2NhcHMiLCAgICAgICAgIHVp bnQ2NCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSksCiAgICAg ICAgICAgICAgICAgICgicHYiLCBTdHJ1Y3QoTm9uZSwgWygia2VybmVsIiwgc3RyaW5nKSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJzbGFja19tZW1rYiIsIE1lbUtC KSwKZGlmZiAtLWdpdCBhL3Rvb2xzL3hsL3hsX3BhcnNlLmMgYi90b29scy94bC94bF9wYXJzZS5j CmluZGV4IDg1NmEzMDRiMzAuLjVjMmJmMTcyMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hsX3Bh cnNlLmMKKysrIGIvdG9vbHMveGwveGxfcGFyc2UuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1 ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8eGVuL2h2bS9lODIw Lmg+CisjaW5jbHVkZSA8eGVuL2h2bS9wYXJhbXMuaD4KIAogI2luY2x1ZGUgPGxpYnhsLmg+CiAj aW5jbHVkZSA8bGlieGxfdXRpbHMuaD4KQEAgLTgxMyw4ICs4MTQsOSBAQCB2b2lkIHBhcnNlX2Nv bmZpZ19kYXRhKGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsCiAgICAgWExVX0NvbmZpZyAqY29u ZmlnOwogICAgIFhMVV9Db25maWdMaXN0ICpjcHVzLCAqdmJkcywgKm5pY3MsICpwY2lzLCAqY3Zm YnMsICpjcHVpZHMsICp2dHBtcywKICAgICAgICAgICAgICAgICAgICAqdXNiY3RybHMsICp1c2Jk ZXZzLCAqcDlkZXZzOwotICAgIFhMVV9Db25maWdMaXN0ICpjaGFubmVscywgKmlvcG9ydHMsICpp cnFzLCAqaW9tZW0sICp2aXJpZGlhbiwgKmR0ZGV2czsKLSAgICBpbnQgbnVtX2lvcG9ydHMsIG51 bV9pcnFzLCBudW1faW9tZW0sIG51bV9jcHVzLCBudW1fdmlyaWRpYW47CisgICAgWExVX0NvbmZp Z0xpc3QgKmNoYW5uZWxzLCAqaW9wb3J0cywgKmlycXMsICppb21lbSwgKnZpcmlkaWFuLCAqZHRk ZXZzLAorICAgICAgICAgICAgICAgICAgICptY2FfY2FwczsKKyAgICBpbnQgbnVtX2lvcG9ydHMs IG51bV9pcnFzLCBudW1faW9tZW0sIG51bV9jcHVzLCBudW1fdmlyaWRpYW4sIG51bV9tY2FfY2Fw czsKICAgICBpbnQgcGNpX3Bvd2VyX21nbXQgPSAwOwogICAgIGludCBwY2lfbXNpdHJhbnNsYXRl ID0gMDsKICAgICBpbnQgcGNpX3Blcm1pc3NpdmUgPSAwOwpAQCAtMTE4Miw2ICsxMTg0LDMxIEBA IHZvaWQgcGFyc2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKIAogICAg ICAgICBpZiAoIXhsdV9jZmdfZ2V0X2xvbmcgKGNvbmZpZywgInJkbV9tZW1fYm91bmRhcnkiLCAm bCwgMCkpCiAgICAgICAgICAgICBiX2luZm8tPnUuaHZtLnJkbV9tZW1fYm91bmRhcnlfbWVta2Ig PSBsICogMTAyNDsKKworICAgICAgICBzd2l0Y2ggKHhsdV9jZmdfZ2V0X2xpc3QoY29uZmlnLCAi bWNhX2NhcHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1jYV9jYXBzLCAm bnVtX21jYV9jYXBzLCAxKSkKKyAgICAgICAgeworICAgICAgICBjYXNlIDA6IC8qIFN1Y2Nlc3Mg Ki8KKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fbWNhX2NhcHM7IGkrKykgeworICAg ICAgICAgICAgICAgIGJ1ZiA9IHhsdV9jZmdfZ2V0X2xpc3RpdGVtKG1jYV9jYXBzLCBpKTsKKyAg ICAgICAgICAgICAgICBpZiAoIXN0cmNtcChidWYsICJsbWNlIikpCisgICAgICAgICAgICAgICAg ICAgIGJfaW5mby0+dS5odm0ubWNhX2NhcHMgfD0gWEVOX0hWTV9NQ0FfQ0FQX0xNQ0U7CisgICAg ICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAi RVJST1I6IHVucmVjb2duaXplZCBNQ0EgY2FwYWJpbGl0eSAnJXMnLlxuIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBidWYpOworICAgICAgICAgICAgICAgICAgICBleGl0KC1FUlJPUl9G QUlMKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVh azsKKworICAgICAgICBjYXNlIEVTUkNIOiAvKiBPcHRpb24gbm90IHByZXNlbnQgKi8KKyAgICAg ICAgICAgIGJyZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBmcHJpbnRmKHN0 ZGVyciwgIkVSUk9SOiB1bmFibGUgdG8gcGFyc2UgbWNhX2NhcHMuXG4iKTsKKyAgICAgICAgICAg IGV4aXQoLUVSUk9SX0ZBSUwpOworICAgICAgICB9CisKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz ZSBMSUJYTF9ET01BSU5fVFlQRV9QVjoKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv Y3B1L21jaGVjay9tY2UuaCBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCmluZGV4IDRm MTM3OTE5NDguLjY2NDE2MWEyYWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNr L21jZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCkBAIC0zOCw2ICszOCw3 IEBAIGVudW0gbWNoZWNrX3R5cGUgewogfTsKIAogZXh0ZXJuIHVpbnQ4X3QgY21jaV9hcGljX3Zl Y3RvcjsKK2V4dGVybiBib29sIGxtY2Vfc3VwcG9ydDsKIAogLyogSW5pdCBmdW5jdGlvbnMgKi8K IGVudW0gbWNoZWNrX3R5cGUgYW1kX21jaGVja19pbml0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2VfaW50ZWwuYyBiL3hlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL21jZV9pbnRlbC5jCmluZGV4IDVjYjQ5Y2E2OTcuLjRjMDAxYjQw N2YgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZV9pbnRlbC5jCisrKyBi L3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZV9pbnRlbC5jCkBAIC0zMCw3ICszMCw3IEBAIGJv b2xlYW5fcGFyYW0oIm1jZV9mYiIsIG1jZV9mb3JjZV9icm9hZGNhc3QpOwogc3RhdGljIGludCBf X3JlYWRfbW9zdGx5IG5yX2ludGVsX2V4dF9tc3JzOwogCiAvKiBJZiBtY2VfZm9yY2VfYnJvYWRj YXN0ID09IDEsIGxtY2Vfc3VwcG9ydCB3aWxsIGJlIGRpc2FibGVkIGZvcmNpYmx5LiAqLwotc3Rh dGljIGJvb2wgX19yZWFkX21vc3RseSBsbWNlX3N1cHBvcnQ7Citib29sIF9fcmVhZF9tb3N0bHkg bG1jZV9zdXBwb3J0OwogCiAvKiBJbnRlbCBTRE0gZGVmaW5lIGJpdDE1fmJpdDAgb2YgSUEzMl9N Q2lfU1RBVFVTIGFzIHRoZSBNQyBlcnJvciBjb2RlICovCiAjZGVmaW5lIElOVEVMX01DQ09EX01B U0sgMHhGRkZGCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMgYi94 ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMKaW5kZXggOTgzMDgzNWM1YS4uYTM0YzNkMzhk MSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuYwpAQCAtNzQsNyArNzQsNyBAQCBpbnQgdm1jZV9yZXN0 b3JlX3ZjcHUoc3RydWN0IHZjcHUgKnYsIGNvbnN0IHN0cnVjdCBodm1fdm1jZV92Y3B1ICpjdHh0 KQogICAgIHVuc2lnbmVkIGxvbmcgZ3Vlc3RfbWNnX2NhcDsKIAogICAgIGlmICggYm9vdF9jcHVf ZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQotICAgICAgICBndWVzdF9tY2df Y2FwID0gSU5URUxfR1VFU1RfTUNHX0NBUDsKKyAgICAgICAgZ3Vlc3RfbWNnX2NhcCA9IElOVEVM X0dVRVNUX01DR19DQVAgfCBNQ0dfTE1DRV9QOwogICAgIGVsc2UKICAgICAgICAgZ3Vlc3RfbWNn X2NhcCA9IEFNRF9HVUVTVF9NQ0dfQ0FQOwogCkBAIC01NDYsMyArNTQ2LDIwIEBAIGludCB1bm1t YXBfYnJva2VuX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuLCB1bnNpZ25lZCBsb25n IGdmbikKICAgICByZXR1cm4gcmM7CiB9CiAKK2ludCB2bWNlX2VuYWJsZV9tY2FfY2FwKHN0cnVj dCBkb21haW4gKmQsIHVpbnQ2NF90IGNhcCkKK3sKKyAgICBzdHJ1Y3QgdmNwdSAqdjsKKworICAg IGlmICggY2FwICYgflhFTl9IVk1fTUNBX0NBUF9NQVNLICkKKyAgICAgICAgcmV0dXJuIC1FSU5W QUw7CisKKyAgICBpZiAoIGNhcCAmIFhFTl9IVk1fTUNBX0NBUF9MTUNFICkKKyAgICB7CisgICAg ICAgIGlmICggIWxtY2Vfc3VwcG9ydCApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAg ICAgICAgZm9yX2VhY2hfdmNwdShkLCB2KQorICAgICAgICAgICAgdi0+YXJjaC52bWNlLm1jZ19j YXAgfD0gTUNHX0xNQ0VfUDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDcw ZGRjODFkNDQuLmZhNzJkMWJkMWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMK KysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwpAQCAtMzk4NSw2ICszOTg1LDcgQEAgc3RhdGlj IGludCBodm1fYWxsb3dfc2V0X3BhcmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgY2FzZSBIVk1f UEFSQU1fSU9SRVFfU0VSVkVSX1BGTjoKICAgICBjYXNlIEhWTV9QQVJBTV9OUl9JT1JFUV9TRVJW RVJfUEFHRVM6CiAgICAgY2FzZSBIVk1fUEFSQU1fQUxUUDJNOgorICAgIGNhc2UgSFZNX1BBUkFN X01DQV9DQVA6CiAgICAgICAgIGlmICggdmFsdWUgIT0gMCAmJiBhLT52YWx1ZSAhPSB2YWx1ZSAp CiAgICAgICAgICAgICByYyA9IC1FRVhJU1Q7CiAgICAgICAgIGJyZWFrOwpAQCAtNDE5Niw2ICs0 MTk3LDEwIEBAIHN0YXRpYyBpbnQgaHZtb3Bfc2V0X3BhcmFtKAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMHgxMDAwMCAvIDgpICsgMSkgPDwgMzIpOwog ICAgICAgICBhLnZhbHVlIHw9IFZNODZfVFNTX1VQREFURUQ7CiAgICAgICAgIGJyZWFrOworCisg ICAgY2FzZSBIVk1fUEFSQU1fTUNBX0NBUDoKKyAgICAgICAgcmMgPSB2bWNlX2VuYWJsZV9tY2Ff Y2FwKGQsIGEudmFsdWUpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIHJjICE9 IDAgKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tY2UuaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvbWNlLmgKaW5kZXggMzVmOTk2MjYzOC4uZDI5MzNjOTFiZiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9tY2UuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21jZS5o CkBAIC0zOCw2ICszOCw3IEBAIGV4dGVybiBpbnQgdm1jZV9yZXN0b3JlX3ZjcHUoc3RydWN0IHZj cHUgKiwgY29uc3Qgc3RydWN0IGh2bV92bWNlX3ZjcHUgKik7CiBleHRlcm4gaW50IHZtY2Vfd3Jt c3IodWludDMyX3QgbXNyLCB1aW50NjRfdCB2YWwpOwogZXh0ZXJuIGludCB2bWNlX3JkbXNyKHVp bnQzMl90IG1zciwgdWludDY0X3QgKnZhbCk7CiBleHRlcm4gYm9vbCB2bWNlX2hhc19sbWNlKGNv bnN0IHN0cnVjdCB2Y3B1ICp2KTsKK2V4dGVybiBpbnQgdm1jZV9lbmFibGVfbWNhX2NhcChzdHJ1 Y3QgZG9tYWluICpkLCB1aW50NjRfdCBjYXApOwogCiBleHRlcm4gdW5zaWduZWQgaW50IG5yX21j ZV9iYW5rczsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaCBi L3hlbi9pbmNsdWRlL3B1YmxpYy9odm0vcGFyYW1zLmgKaW5kZXggMWYzZWQwOTA2ZC4uMmVjMmU3 YzgwZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaAorKysgYi94 ZW4vaW5jbHVkZS9wdWJsaWMvaHZtL3BhcmFtcy5oCkBAIC0yNzQsNiArMjc0LDExIEBACiAgKi8K ICNkZWZpbmUgSFZNX1BBUkFNX1ZNODZfVFNTX1NJWkVEIDM3CiAKLSNkZWZpbmUgSFZNX05SX1BB UkFNUyAzOAorLyogRW5hYmxlIE1DQSBjYXBhYmlsaXRpZXMuICovCisjZGVmaW5lIEhWTV9QQVJB TV9NQ0FfQ0FQIDM4CisjZGVmaW5lIFhFTl9IVk1fTUNBX0NBUF9MTUNFICAgKHhlbl9ta191bGxv bmcoMSkgPDwgMCkKKyNkZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX01BU0sgICBYRU5fSFZNX01DQV9D QVBfTE1DRQorCisjZGVmaW5lIEhWTV9OUl9QQVJBTVMgMzkKIAogI2VuZGlmIC8qIF9fWEVOX1BV QkxJQ19IVk1fUEFSQU1TX0hfXyAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==