From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v4 08/11] x86/vmce, tools/libxl: expose LMCE capability in guest MSR_IA32_MCG_CAP Date: Mon, 26 Jun 2017 17:16:22 +0800 Message-ID: <20170626091625.19655-9-haozhong.zhang@intel.com> References: <20170626091625.19655-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: <20170626091625.19655-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 PiBmb3IgaHlwZXJ2aXNvciBzaWRlCi0tLQpDaGFuZ2VzIGluIHY0OgogKiBIYW5kbGUgSFZNX1BB UkFNX01DQV9DQVAgaW4geGNfc3Jfc2F2ZV94ODZfaHZtLmM6d3JpdGVfaHZtX3BhcmFtcygpLgoK Q2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzogV2VpIExpdSA8 d2VpLmxpdTJAY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K Q2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQogZG9jcy9t YW4veGwuY2ZnLnBvZC41LmluICAgICAgICAgICAgfCAyNCArKysrKysrKysrKysrKysrKysrKysr KysKIHRvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jICAgIHwgIDEgKwogdG9vbHMvbGli eGwvbGlieGwuaCAgICAgICAgICAgICAgICAgfCAgNyArKysrKysrCiB0b29scy9saWJ4bC9saWJ4 bF9kb20uYyAgICAgICAgICAgICB8IDE1ICsrKysrKysrKysrKysrKwogdG9vbHMvbGlieGwvbGli eGxfdHlwZXMuaWRsICAgICAgICAgfCAgMSArCiB0b29scy94bC94bF9wYXJzZS5jICAgICAgICAg ICAgICAgICB8IDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9hcmNoL3g4 Ni9jcHUvbWNoZWNrL21jZS5oICAgICAgIHwgIDEgKwogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2sv bWNlX2ludGVsLmMgfCAgMiArLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jICAgICAg fCAxOSArKysrKysrKysrKysrKysrKystCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAg ICAgICB8ICA1ICsrKysrCiB4ZW4vaW5jbHVkZS9hc20teDg2L21jZS5oICAgICAgICAgICB8ICAx ICsKIHhlbi9pbmNsdWRlL3B1YmxpYy9odm0vcGFyYW1zLmggICAgIHwgIDcgKysrKysrLQogMTIg ZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jcy9tYW4veGwuY2ZnLnBvZC41LmluIGIvZG9jcy9tYW4veGwuY2ZnLnBvZC41Lmlu CmluZGV4IDM4MDg0YzcyM2EuLjUxZWM3NDMyNWQgMTAwNjQ0Ci0tLSBhL2RvY3MvbWFuL3hsLmNm Zy5wb2QuNS5pbgorKysgYi9kb2NzL21hbi94bC5jZmcucG9kLjUuaW4KQEAgLTIxNjgsNiArMjE2 OCwzMCBAQCBuYXRpdmVseSBvciB2aWEgaGFyZHdhcmUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkg c3VwcG9ydC4KIAogPWJhY2sKIAorPWhlYWQzIHg4NgorCis9b3ZlciA0CisKKz1pdGVtIEI8bWNh X2NhcHM9WyAiQ0FQIiwgIkNBUCIsIC4uLiBdPgorCisoSFZNIG9ubHkpIEVuYWJsZSBNQ0EgY2Fw YWJpbGl0aWVzIGJlc2lkZXMgZGVmYXVsdCBvbmVzIGVuYWJsZWQKK2J5IFhlbiBoeXBlcnZpc29y IGZvciB0aGUgSFZNIGRvbWFpbi4gIkNBUCIgY2FuIGJlIG9uZSBpbiB0aGUKK2ZvbGxvd2luZyBs aXN0OgorCis9b3ZlciA0CisKKz1pdGVtIEI8ImxtY2UiPgorCitJbnRlbCBsb2NhbCBNQ0UKKwor PWl0ZW0gQjxkZWZhdWx0PgorCitObyBNQ0EgY2FwYWJpbGl0aWVzIGluIGFib3ZlIGxpc3QgYXJl IGVuYWJsZWQuCisKKz1iYWNrCisKKz1iYWNrCisKID1oZWFkMSBTRUUgQUxTTwogCiA9b3ZlciA0 CmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9zYXZlX3g4Nl9odm0uYyBiL3Rvb2xzL2xp YnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jCmluZGV4IGZjNWM2ZWE5M2UuLmUxN2JiNTkxNDYgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jCisrKyBiL3Rvb2xzL2xp YnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jCkBAIC03Nyw2ICs3Nyw3IEBAIHN0YXRpYyBpbnQgd3Jp dGVfaHZtX3BhcmFtcyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAgICAgICBIVk1fUEFS QU1fSU9SRVFfU0VSVkVSX1BGTiwKICAgICAgICAgSFZNX1BBUkFNX05SX0lPUkVRX1NFUlZFUl9Q QUdFUywKICAgICAgICAgSFZNX1BBUkFNX1g4N19GSVBfV0lEVEgsCisgICAgICAgIEhWTV9QQVJB TV9NQ0FfQ0FQLAogICAgIH07CiAKICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGN0eC0+eGNoOwpk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsLmgKaW5k ZXggY2Y4Njg3YWE3ZS4uN2NmMGYzMWY2OCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGwu aAorKysgYi90b29scy9saWJ4bC9saWJ4bC5oCkBAIC05MjIsNiArOTIyLDEzIEBAIHZvaWQgbGli eGxfbWFjX2NvcHkobGlieGxfY3R4ICpjdHgsIGxpYnhsX21hYyAqZHN0LCBjb25zdCBsaWJ4bF9t YWMgKnNyYyk7CiAgKiBJZiB0aGlzIGlzIGRlZmluZWQsIHRoZSBDb2RlIGFuZCBEYXRhIFByaW9y aXRpemF0aW9uIGZlYXR1cmUgaXMgc3VwcG9ydGVkLgogICovCiAjZGVmaW5lIExJQlhMX0hBVkVf UFNSX0NEUCAxCisKKy8qCisgKiBMSUJYTF9IQVZFX01DQV9DQVBTCisgKgorICogSWYgdGhpcyBp cyBkZWZpbmVkLCBzZXR0aW5nIE1DQSBjYXBhYmlsaXRpZXMgZm9yIEhWTSBkb21haW4gaXMgc3Vw cG9ydGVkLgorICovCisjZGVmaW5lIExJQlhMX0hBVkVfTUNBX0NBUFMgMQogI2VuZGlmCiAKIC8q CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xpYnhs X2RvbS5jCmluZGV4IDVkOTE0YTU5ZWUuLmY1NGZkNDlhNzMgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xp YnhsL2xpYnhsX2RvbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jCkBAIC0yNzksNiAr Mjc5LDE3IEBAIGVycjoKICAgICBsaWJ4bF9iaXRtYXBfZGlzcG9zZSgmZW5saWdodGVubWVudHMp OwogICAgIHJldHVybiBFUlJPUl9GQUlMOwogfQorCitzdGF0aWMgaW50IGh2bV9zZXRfbWNhX2Nh cGFiaWxpdGllcyhsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpjb25zdCBpbmZv KQoreworICAgIHVuc2lnbmVkIGxvbmcgY2FwcyA9IGluZm8tPnUuaHZtLm1jYV9jYXBzOworCisg ICAgaWYgKCFjYXBzKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiB4Y19odm1fcGFy YW1fc2V0KENUWC0+eGNoLCBkb21pZCwgSFZNX1BBUkFNX01DQV9DQVAsIGNhcHMpOworfQogI2Vu ZGlmCiAKIHN0YXRpYyB2b2lkIGh2bV9zZXRfY29uZl9wYXJhbXMoeGNfaW50ZXJmYWNlICpoYW5k bGUsIHVpbnQzMl90IGRvbWlkLApAQCAtNDQwLDYgKzQ1MSwxMCBAQCBpbnQgbGlieGxfX2J1aWxk X3ByZShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgcmMgPSBodm1fc2V0 X3ZpcmlkaWFuX2ZlYXR1cmVzKGdjLCBkb21pZCwgaW5mbyk7CiAgICAgICAgIGlmIChyYykKICAg ICAgICAgICAgIHJldHVybiByYzsKKworICAgICAgICByYyA9IGh2bV9zZXRfbWNhX2NhcGFiaWxp dGllcyhnYywgZG9taWQsIGluZm8pOworICAgICAgICBpZiAocmMpCisgICAgICAgICAgICByZXR1 cm4gcmM7CiAjZW5kaWYKICAgICB9CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5 cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbAppbmRleCAyMjA0NDI1OWYzLi44 YTk4NDljNjQzIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF90eXBlcy5pZGwKKysrIGIv dG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBAIC01NjQsNiArNTY0LDcgQEAgbGlieGxfZG9t YWluX2J1aWxkX2luZm8gPSBTdHJ1Y3QoImRvbWFpbl9idWlsZF9pbmZvIixbCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInNlcmlhbF9saXN0IiwgICAgICBsaWJ4bF9z dHJpbmdfbGlzdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInJk bSIsIGxpYnhsX3JkbV9yZXNlcnZlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgicmRtX21lbV9ib3VuZGFyeV9tZW1rYiIsIE1lbUtCKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICgibWNhX2NhcHMiLCAgICAgICAgIHVpbnQ2NCksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSksCiAgICAgICAgICAgICAg ICAgICgicHYiLCBTdHJ1Y3QoTm9uZSwgWygia2VybmVsIiwgc3RyaW5nKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJzbGFja19tZW1rYiIsIE1lbUtCKSwKZGlmZiAt LWdpdCBhL3Rvb2xzL3hsL3hsX3BhcnNlLmMgYi90b29scy94bC94bF9wYXJzZS5jCmluZGV4IDg1 NmEzMDRiMzAuLjVjMmJmMTcyMjIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hsL3hsX3BhcnNlLmMKKysr IGIvdG9vbHMveGwveGxfcGFyc2UuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPHN0ZGlv Lmg+CiAjaW5jbHVkZSA8c3RkbGliLmg+CiAjaW5jbHVkZSA8eGVuL2h2bS9lODIwLmg+CisjaW5j bHVkZSA8eGVuL2h2bS9wYXJhbXMuaD4KIAogI2luY2x1ZGUgPGxpYnhsLmg+CiAjaW5jbHVkZSA8 bGlieGxfdXRpbHMuaD4KQEAgLTgxMyw4ICs4MTQsOSBAQCB2b2lkIHBhcnNlX2NvbmZpZ19kYXRh KGNvbnN0IGNoYXIgKmNvbmZpZ19zb3VyY2UsCiAgICAgWExVX0NvbmZpZyAqY29uZmlnOwogICAg IFhMVV9Db25maWdMaXN0ICpjcHVzLCAqdmJkcywgKm5pY3MsICpwY2lzLCAqY3ZmYnMsICpjcHVp ZHMsICp2dHBtcywKICAgICAgICAgICAgICAgICAgICAqdXNiY3RybHMsICp1c2JkZXZzLCAqcDlk ZXZzOwotICAgIFhMVV9Db25maWdMaXN0ICpjaGFubmVscywgKmlvcG9ydHMsICppcnFzLCAqaW9t ZW0sICp2aXJpZGlhbiwgKmR0ZGV2czsKLSAgICBpbnQgbnVtX2lvcG9ydHMsIG51bV9pcnFzLCBu dW1faW9tZW0sIG51bV9jcHVzLCBudW1fdmlyaWRpYW47CisgICAgWExVX0NvbmZpZ0xpc3QgKmNo YW5uZWxzLCAqaW9wb3J0cywgKmlycXMsICppb21lbSwgKnZpcmlkaWFuLCAqZHRkZXZzLAorICAg ICAgICAgICAgICAgICAgICptY2FfY2FwczsKKyAgICBpbnQgbnVtX2lvcG9ydHMsIG51bV9pcnFz LCBudW1faW9tZW0sIG51bV9jcHVzLCBudW1fdmlyaWRpYW4sIG51bV9tY2FfY2FwczsKICAgICBp bnQgcGNpX3Bvd2VyX21nbXQgPSAwOwogICAgIGludCBwY2lfbXNpdHJhbnNsYXRlID0gMDsKICAg ICBpbnQgcGNpX3Blcm1pc3NpdmUgPSAwOwpAQCAtMTE4Miw2ICsxMTg0LDMxIEBAIHZvaWQgcGFy c2VfY29uZmlnX2RhdGEoY29uc3QgY2hhciAqY29uZmlnX3NvdXJjZSwKIAogICAgICAgICBpZiAo IXhsdV9jZmdfZ2V0X2xvbmcgKGNvbmZpZywgInJkbV9tZW1fYm91bmRhcnkiLCAmbCwgMCkpCiAg ICAgICAgICAgICBiX2luZm8tPnUuaHZtLnJkbV9tZW1fYm91bmRhcnlfbWVta2IgPSBsICogMTAy NDsKKworICAgICAgICBzd2l0Y2ggKHhsdV9jZmdfZ2V0X2xpc3QoY29uZmlnLCAibWNhX2NhcHMi LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1jYV9jYXBzLCAmbnVtX21jYV9j YXBzLCAxKSkKKyAgICAgICAgeworICAgICAgICBjYXNlIDA6IC8qIFN1Y2Nlc3MgKi8KKyAgICAg ICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fbWNhX2NhcHM7IGkrKykgeworICAgICAgICAgICAg ICAgIGJ1ZiA9IHhsdV9jZmdfZ2V0X2xpc3RpdGVtKG1jYV9jYXBzLCBpKTsKKyAgICAgICAgICAg ICAgICBpZiAoIXN0cmNtcChidWYsICJsbWNlIikpCisgICAgICAgICAgICAgICAgICAgIGJfaW5m by0+dS5odm0ubWNhX2NhcHMgfD0gWEVOX0hWTV9NQ0FfQ0FQX0xNQ0U7CisgICAgICAgICAgICAg ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IHVu cmVjb2duaXplZCBNQ0EgY2FwYWJpbGl0eSAnJXMnLlxuIiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBidWYpOworICAgICAgICAgICAgICAgICAgICBleGl0KC1FUlJPUl9GQUlMKTsKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKworICAg ICAgICBjYXNlIEVTUkNIOiAvKiBPcHRpb24gbm90IHByZXNlbnQgKi8KKyAgICAgICAgICAgIGJy ZWFrOworCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVS Uk9SOiB1bmFibGUgdG8gcGFyc2UgbWNhX2NhcHMuXG4iKTsKKyAgICAgICAgICAgIGV4aXQoLUVS Uk9SX0ZBSUwpOworICAgICAgICB9CisKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBMSUJYTF9E T01BSU5fVFlQRV9QVjoKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVj ay9tY2UuaCBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCmluZGV4IDRmMTM3OTE5NDgu LjY2NDE2MWEyYWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCisr KyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5oCkBAIC0zOCw2ICszOCw3IEBAIGVudW0g bWNoZWNrX3R5cGUgewogfTsKIAogZXh0ZXJuIHVpbnQ4X3QgY21jaV9hcGljX3ZlY3RvcjsKK2V4 dGVybiBib29sIGxtY2Vfc3VwcG9ydDsKIAogLyogSW5pdCBmdW5jdGlvbnMgKi8KIGVudW0gbWNo ZWNrX3R5cGUgYW1kX21jaGVja19pbml0KHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2VfaW50ZWwuYyBiL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL21jZV9pbnRlbC5jCmluZGV4IDVjYjQ5Y2E2OTcuLjRjMDAxYjQwN2YgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZV9pbnRlbC5jCisrKyBiL3hlbi9hcmNo L3g4Ni9jcHUvbWNoZWNrL21jZV9pbnRlbC5jCkBAIC0zMCw3ICszMCw3IEBAIGJvb2xlYW5fcGFy YW0oIm1jZV9mYiIsIG1jZV9mb3JjZV9icm9hZGNhc3QpOwogc3RhdGljIGludCBfX3JlYWRfbW9z dGx5IG5yX2ludGVsX2V4dF9tc3JzOwogCiAvKiBJZiBtY2VfZm9yY2VfYnJvYWRjYXN0ID09IDEs IGxtY2Vfc3VwcG9ydCB3aWxsIGJlIGRpc2FibGVkIGZvcmNpYmx5LiAqLwotc3RhdGljIGJvb2wg X19yZWFkX21vc3RseSBsbWNlX3N1cHBvcnQ7Citib29sIF9fcmVhZF9tb3N0bHkgbG1jZV9zdXBw b3J0OwogCiAvKiBJbnRlbCBTRE0gZGVmaW5lIGJpdDE1fmJpdDAgb2YgSUEzMl9NQ2lfU1RBVFVT IGFzIHRoZSBNQyBlcnJvciBjb2RlICovCiAjZGVmaW5lIElOVEVMX01DQ09EX01BU0sgMHhGRkZG CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMgYi94ZW4vYXJjaC94 ODYvY3B1L21jaGVjay92bWNlLmMKaW5kZXggOTgzMDgzNWM1YS4uYTM0YzNkMzhkMSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL3ZtY2UuYwpAQCAtNzQsNyArNzQsNyBAQCBpbnQgdm1jZV9yZXN0b3JlX3ZjcHUo c3RydWN0IHZjcHUgKnYsIGNvbnN0IHN0cnVjdCBodm1fdm1jZV92Y3B1ICpjdHh0KQogICAgIHVu c2lnbmVkIGxvbmcgZ3Vlc3RfbWNnX2NhcDsKIAogICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZf dmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwgKQotICAgICAgICBndWVzdF9tY2dfY2FwID0gSU5U RUxfR1VFU1RfTUNHX0NBUDsKKyAgICAgICAgZ3Vlc3RfbWNnX2NhcCA9IElOVEVMX0dVRVNUX01D R19DQVAgfCBNQ0dfTE1DRV9QOwogICAgIGVsc2UKICAgICAgICAgZ3Vlc3RfbWNnX2NhcCA9IEFN RF9HVUVTVF9NQ0dfQ0FQOwogCkBAIC01NDYsMyArNTQ2LDIwIEBAIGludCB1bm1tYXBfYnJva2Vu X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgbWZuLCB1bnNpZ25lZCBsb25nIGdmbikKICAg ICByZXR1cm4gcmM7CiB9CiAKK2ludCB2bWNlX2VuYWJsZV9tY2FfY2FwKHN0cnVjdCBkb21haW4g KmQsIHVpbnQ2NF90IGNhcCkKK3sKKyAgICBzdHJ1Y3QgdmNwdSAqdjsKKworICAgIGlmICggY2Fw ICYgflhFTl9IVk1fTUNBX0NBUF9NQVNLICkKKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisKKyAg ICBpZiAoIGNhcCAmIFhFTl9IVk1fTUNBX0NBUF9MTUNFICkKKyAgICB7CisgICAgICAgIGlmICgg IWxtY2Vfc3VwcG9ydCApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKKyAgICAgICAgZm9y X2VhY2hfdmNwdShkLCB2KQorICAgICAgICAgICAgdi0+YXJjaC52bWNlLm1jZ19jYXAgfD0gTUNH X0xNQ0VfUDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCmluZGV4IDcwZGRjODFkNDQu LmZhNzJkMWJkMWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKKysrIGIveGVu L2FyY2gveDg2L2h2bS9odm0uYwpAQCAtMzk4NSw2ICszOTg1LDcgQEAgc3RhdGljIGludCBodm1f YWxsb3dfc2V0X3BhcmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgY2FzZSBIVk1fUEFSQU1fSU9S RVFfU0VSVkVSX1BGTjoKICAgICBjYXNlIEhWTV9QQVJBTV9OUl9JT1JFUV9TRVJWRVJfUEFHRVM6 CiAgICAgY2FzZSBIVk1fUEFSQU1fQUxUUDJNOgorICAgIGNhc2UgSFZNX1BBUkFNX01DQV9DQVA6 CiAgICAgICAgIGlmICggdmFsdWUgIT0gMCAmJiBhLT52YWx1ZSAhPSB2YWx1ZSApCiAgICAgICAg ICAgICByYyA9IC1FRVhJU1Q7CiAgICAgICAgIGJyZWFrOwpAQCAtNDE5Niw2ICs0MTk3LDEwIEBA IHN0YXRpYyBpbnQgaHZtb3Bfc2V0X3BhcmFtKAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoMHgxMDAwMCAvIDgpICsgMSkgPDwgMzIpOwogICAgICAgICBh LnZhbHVlIHw9IFZNODZfVFNTX1VQREFURUQ7CiAgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBI Vk1fUEFSQU1fTUNBX0NBUDoKKyAgICAgICAgcmMgPSB2bWNlX2VuYWJsZV9tY2FfY2FwKGQsIGEu dmFsdWUpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIHJjICE9IDAgKQpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tY2UuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYv bWNlLmgKaW5kZXggMzVmOTk2MjYzOC4uZDI5MzNjOTFiZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9tY2UuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21jZS5oCkBAIC0zOCw2 ICszOCw3IEBAIGV4dGVybiBpbnQgdm1jZV9yZXN0b3JlX3ZjcHUoc3RydWN0IHZjcHUgKiwgY29u c3Qgc3RydWN0IGh2bV92bWNlX3ZjcHUgKik7CiBleHRlcm4gaW50IHZtY2Vfd3Jtc3IodWludDMy X3QgbXNyLCB1aW50NjRfdCB2YWwpOwogZXh0ZXJuIGludCB2bWNlX3JkbXNyKHVpbnQzMl90IG1z ciwgdWludDY0X3QgKnZhbCk7CiBleHRlcm4gYm9vbCB2bWNlX2hhc19sbWNlKGNvbnN0IHN0cnVj dCB2Y3B1ICp2KTsKK2V4dGVybiBpbnQgdm1jZV9lbmFibGVfbWNhX2NhcChzdHJ1Y3QgZG9tYWlu ICpkLCB1aW50NjRfdCBjYXApOwogCiBleHRlcm4gdW5zaWduZWQgaW50IG5yX21jZV9iYW5rczsK IApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaCBiL3hlbi9pbmNs dWRlL3B1YmxpYy9odm0vcGFyYW1zLmgKaW5kZXggMWYzZWQwOTA2ZC4uMmVjMmU3YzgwZiAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL2h2bS9wYXJhbXMuaAorKysgYi94ZW4vaW5jbHVk ZS9wdWJsaWMvaHZtL3BhcmFtcy5oCkBAIC0yNzQsNiArMjc0LDExIEBACiAgKi8KICNkZWZpbmUg SFZNX1BBUkFNX1ZNODZfVFNTX1NJWkVEIDM3CiAKLSNkZWZpbmUgSFZNX05SX1BBUkFNUyAzOAor LyogRW5hYmxlIE1DQSBjYXBhYmlsaXRpZXMuICovCisjZGVmaW5lIEhWTV9QQVJBTV9NQ0FfQ0FQ IDM4CisjZGVmaW5lIFhFTl9IVk1fTUNBX0NBUF9MTUNFICAgKHhlbl9ta191bGxvbmcoMSkgPDwg MCkKKyNkZWZpbmUgWEVOX0hWTV9NQ0FfQ0FQX01BU0sgICBYRU5fSFZNX01DQV9DQVBfTE1DRQor CisjZGVmaW5lIEhWTV9OUl9QQVJBTVMgMzkKIAogI2VuZGlmIC8qIF9fWEVOX1BVQkxJQ19IVk1f UEFSQU1TX0hfXyAqLwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMu eGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==