From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v2 08/12] x86/vmce: enable injecting LMCE to guest on Intel host Date: Fri, 17 Mar 2017 14:46:10 +0800 Message-ID: <20170317064614.23539-9-haozhong.zhang@intel.com> References: <20170317064614.23539-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: <20170317064614.23539-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 , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org SW5qZWN0IExNQ0UgdG8gZ3Vlc3QgaWYgdGhlIGhvc3QgTUNFIGlzIExNQ0UgYW5kIHRoZSBhZmZl Y3RlZCB2Y3B1IGlzCmtub3duLiBPdGhlcndpc2UsIGJyb2FkY2FzdCBNQ0UgdG8gYWxsIHZjcHVz IG9uIEludGVsIGhvc3QuCgpTaWduZWQtb2ZmLWJ5OiBIYW96aG9uZyBaaGFuZyA8aGFvemhvbmcu emhhbmdAaW50ZWwuY29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4K Q2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CgpDaGFuZ2VzIGlu IHYyOgogKiBBZGQgY29tbWVudCBmb3IgYSBjaGVjayBpbiBtY19tZW1lcnJfZGhhbmRsZXIoKS4K ICogQWRkIGFuIEFTU0VSVCBmb3Igdm1jZV92Y3B1aWQgaW4gZmlsbF92bXNyX2RhdGEoKS4KICog Q29tYmluZSB0d28gaWYgYnJhbmNoZXMgYWJvdXQgImJyb2FkY2FzdCIuCi0tLQogeGVuL2FyY2gv eDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYyB8IDI2ICsrKysrKysrKysrKysrKysrKysrLS0tLS0t CiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMgICAgIHwgMTEgKysrKysrKysrKy0KIHhl bi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuaCAgICAgfCAgMiArLQogMyBmaWxlcyBjaGFuZ2Vk LCAzMSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2Fj dGlvbi5jCmluZGV4IGNhMTdkMjIuLmYyNDUzNTYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL21jYWN0aW9uLmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rp b24uYwpAQCAtNDQsNiArNDQsNyBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3RydWN0IG1jYV9iaW5m byAqYmluZm8sCiAgICAgdW5zaWduZWQgbG9uZyBtZm4sIGdmbjsKICAgICB1aW50MzJfdCBzdGF0 dXM7CiAgICAgaW50IHZtY2VfdmNwdWlkOworICAgIHVpbnQxNl90IG1jX3ZjcHVpZDsKIAogICAg IGlmICghbWNfY2hlY2tfYWRkcihiYW5rLT5tY19zdGF0dXMsIGJhbmstPm1jX21pc2MsIE1DX0FE RFJfUEhZU0lDQUwpKSB7CiAgICAgICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcsCkBAIC04OCwx OCArODksMzEgQEAgbWNfbWVtZXJyX2RoYW5kbGVyKHN0cnVjdCBtY2FfYmluZm8gKmJpbmZvLAog ICAgICAgICAgICAgICAgICAgICBnb3RvIHZtY2VfZmFpbGVkOwogICAgICAgICAgICAgICAgIH0K IAotICAgICAgICAgICAgICAgIGlmIChib290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZF TkRPUl9JTlRFTCB8fAotICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPm1jX3ZjcHVpZCA9PSBY RU5fTUNfVkNQVUlEX0lOVkFMSUQpCisgICAgICAgICAgICAgICAgbWNfdmNwdWlkID0gZ2xvYmFs LT5tY192Y3B1aWQ7CisgICAgICAgICAgICAgICAgaWYgKG1jX3ZjcHVpZCA9PSBYRU5fTUNfVkNQ VUlEX0lOVkFMSUQgfHwKKyAgICAgICAgICAgICAgICAgICAgKGJvb3RfY3B1X2RhdGEueDg2X3Zl bmRvciA9PSBYODZfVkVORE9SX0lOVEVMICYmCisgICAgICAgICAgICAgICAgICAgICAoIShnbG9i YWwtPm1jX2dzdGF0dXMgJiBNQ0dfU1RBVFVTX0xNQ0UpIHx8CisgICAgICAgICAgICAgICAgICAg ICAgIShkLT52Y3B1W21jX3ZjcHVpZF0tPmFyY2gudm1jZS5sbWNlX2VuYWJsZWQpIHx8CisgICAg ICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgKiBUaGUgZm9sbG93 aW5nIGNoZWNrIHNlcnZlcyBmb3IgTUNFIGluamVjdGlvbgorICAgICAgICAgICAgICAgICAgICAg ICAqIHRlc3QsIGkuZS4geGVuLW1jZWluai4geGVuLW1jZWluaiBtYXkgc3BlY2lmeQorICAgICAg ICAgICAgICAgICAgICAgICAqIHRoZSB0YXJnZXQgZG9tYWluIChpLmUuIGJhbmstPm1jX2RvbWlk KSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgKiB0YXJnZXQgQ1BVLCBidXQgaXQncyBoYXJk IGZvciB4ZW4tbWNlaW5qIHRvCisgICAgICAgICAgICAgICAgICAgICAgICogZW5zdXJlLCB3aGVu IFhlbiBwcmVwYXJlcyB0aGUgYWN0dWFsCisgICAgICAgICAgICAgICAgICAgICAgICogaW5qZWN0 aW9uIGluIHRoaXMgZnVuY3Rpb24sIHZDUFUgY3VycmVudGx5CisgICAgICAgICAgICAgICAgICAg ICAgICogcnVubmluZyBvbiB0aGUgdGFyZ2V0IENQVSBiZWxvbmdzIHRvIHRoZQorICAgICAgICAg ICAgICAgICAgICAgICAqIHRhcmdldCBkb21haW4uIElmIHN1Y2ggaW5jb25zaXN0ZW5jeSBkb2Vz CisgICAgICAgICAgICAgICAgICAgICAgICogaGFwcGVuLCBmYWxsYmFjayB0byBicm9hZGNhc3Qu CisgICAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFs LT5tY19kb21pZCAhPSBiYW5rLT5tY19kb21pZCkpKQogICAgICAgICAgICAgICAgICAgICB2bWNl X3ZjcHVpZCA9IFZNQ0VfSU5KRUNUX0JST0FEQ0FTVDsKICAgICAgICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgICAgIHZtY2VfdmNwdWlkID0gZ2xvYmFsLT5tY192Y3B1aWQ7CisgICAg ICAgICAgICAgICAgICAgIHZtY2VfdmNwdWlkID0gbWNfdmNwdWlkOwogCiAgICAgICAgICAgICAg ICAgYmFuay0+bWNfYWRkciA9IGdmbiA8PCBQQUdFX1NISUZUIHwKICAgICAgICAgICAgICAgICAg IChiYW5rLT5tY19hZGRyICYgKFBBR0VfU0laRSAtMSApKTsKICAgICAgICAgICAgICAgICAvKiBU T0RPOiBzdXBwb3J0IGluamVjdGluZyBMTUNFICovCi0gICAgICAgICAgICAgICAgaWYgKGZpbGxf dm1zcl9kYXRhKGJhbmssIGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGds b2JhbC0+bWNfZ3N0YXR1cyAmIH5NQ0dfU1RBVFVTX0xNQ0UsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZtY2VfdmNwdWlkID09IFZNQ0VfSU5KRUNUX0JST0FEQ0FTVCkpCisg ICAgICAgICAgICAgICAgaWYgKGZpbGxfdm1zcl9kYXRhKGJhbmssIGQsIGdsb2JhbC0+bWNfZ3N0 YXR1cywgdm1jZV92Y3B1aWQpKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgbWNlX3ByaW50ayhNQ0VfUVVJRVQsICJGaWxsIHZNQ0UjIGRhdGEgZm9yIERPTSVkICIKICAg ICAgICAgICAgICAgICAgICAgICAiZmFpbGVkXG4iLCBiYW5rLT5tY19kb21pZCk7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMgYi94ZW4vYXJjaC94ODYvY3B1L21j aGVjay92bWNlLmMKaW5kZXggYzM5NmQwNy4uOTk0YTUwZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2NwdS9tY2hlY2svdm1jZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2Uu YwpAQCAtNDY0LDE0ICs0NjQsMjMgQEAgc3RhdGljIGludCB2Y3B1X2ZpbGxfbWNfbXNycyhzdHJ1 Y3QgdmNwdSAqdiwgdWludDY0X3QgbWNnX3N0YXR1cywKIH0KIAogaW50IGZpbGxfdm1zcl9kYXRh KHN0cnVjdCBtY2luZm9fYmFuayAqbWNfYmFuaywgc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAg ICAgICAgICAgICB1aW50NjRfdCBnc3RhdHVzLCBib29sIGJyb2FkY2FzdCkKKyAgICAgICAgICAg ICAgICAgICB1aW50NjRfdCBnc3RhdHVzLCBpbnQgdm1jZV92Y3B1aWQpCiB7CiAgICAgc3RydWN0 IHZjcHUgKnYgPSBkLT52Y3B1WzBdOworICAgIGJvb2wgYnJvYWRjYXN0ID0gKHZtY2VfdmNwdWlk ID09IFZNQ0VfSU5KRUNUX0JST0FEQ0FTVCk7CiAgICAgaW50IHJldCwgZXJyOwogCiAgICAgaWYg KCBtY19iYW5rLT5tY19kb21pZCA9PSBET01JRF9JTlZBTElEICkKICAgICAgICAgcmV0dXJuIC1F SU5WQUw7CiAKKyAgICBpZiAoIGJyb2FkY2FzdCApCisgICAgICAgIGdzdGF0dXMgJj0gfk1DR19T VEFUVVNfTE1DRTsKKyAgICBlbHNlIGlmICggZ3N0YXR1cyAmIE1DR19TVEFUVVNfTE1DRSApCisg ICAgeworICAgICAgICBBU1NFUlQodm1jZV92Y3B1aWQgPj0wICYmIHZtY2VfdmNwdWlkIDwgZC0+ bWF4X3ZjcHVzKTsKKyAgICAgICAgdiA9IGQtPnZjcHVbdm1jZV92Y3B1aWRdOworICAgIH0KKwog ICAgIC8qCiAgICAgICogdk1DRSB3aXRoIHRoZSBhY3R1YWwgZXJyb3IgaW5mb3JtYXRpb24gaXMg aW5qZWN0ZWQgdG8gdkNQVTAsCiAgICAgICogYW5kLCBpZiBicm9hZGNhc3QgaXMgcmVxdWlyZWQs IHdlIGNob29zZSB0byBpbmplY3QgbGVzcyBzZXZlcmUKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9jcHUvbWNoZWNrL3ZtY2UuaCBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuaAppbmRl eCA3NGY2MzgxLi4yNzk3ZTAwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92 bWNlLmgKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5oCkBAIC0xNyw3ICsxNyw3 IEBAIGludCB2bWNlX2FtZF9yZG1zcihjb25zdCBzdHJ1Y3QgdmNwdSAqLCB1aW50MzJfdCBtc3Is IHVpbnQ2NF90ICp2YWwpOwogaW50IHZtY2VfYW1kX3dybXNyKHN0cnVjdCB2Y3B1ICosIHVpbnQz Ml90IG1zciwgdWludDY0X3QgdmFsKTsKIAogaW50IGZpbGxfdm1zcl9kYXRhKHN0cnVjdCBtY2lu Zm9fYmFuayAqbWNfYmFuaywgc3RydWN0IGRvbWFpbiAqZCwKLSAgICAgICAgICAgICAgICAgICB1 aW50NjRfdCBnc3RhdHVzLCBib29sIGJyb2FkY2FzdCk7CisgICAgICAgICAgICAgICAgICAgdWlu dDY0X3QgZ3N0YXR1cywgaW50IHZtY2VfdmNwdWlkKTsKIAogI2RlZmluZSBWTUNFX0lOSkVDVF9C Uk9BRENBU1QgKC0xKQogaW50IGluamVjdF92bWNlKHN0cnVjdCBkb21haW4gKmQsIGludCB2Y3B1 KTsKLS0gCjIuMTAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0 cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=