From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v4 07/11] x86/vmce: enable injecting LMCE to guest on Intel host Date: Mon, 26 Jun 2017 17:16:21 +0800 Message-ID: <20170626091625.19655-8-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 , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org SW5qZWN0IExNQ0UgdG8gZ3Vlc3QgaWYgdGhlIGhvc3QgTUNFIGlzIExNQ0UgYW5kIHRoZSBhZmZl Y3RlZCB2Y3B1IGlzCmtub3duLiBPdGhlcndpc2UsIGJyb2FkY2FzdCBNQ0UgdG8gYWxsIHZjcHVz IG9uIEludGVsIGhvc3QuCgpTaWduZWQtb2ZmLWJ5OiBIYW96aG9uZyBaaGFuZyA8aGFvemhvbmcu emhhbmdAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CgpDaGFuZ2VzIGluIHY0OgogKFRha2Ug SmFuJ3MgUi1iIHdpdGggZm9sbG93aW5nIGNoYW5nZXMuKQogKiBDaGFuZ2UgdHlwZSBvZiBtY192 Y3B1aWQgaW4gbWNfbWVtZXJyX2RoYW5kbGVyKCkgZnJvbSB1aW50MTZfdCB0bwogICB1bnNpZ25l ZCBpbnQuCiAqIEFkZCBhIG1pc3Npbmcgc3BhY2UgaW4gQVNTRVJUKCkgaW4gZmlsbF92bXNyX2Rh dGEoKS4KLS0tCiB4ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jIHwgMjMgKysrKysr KysrKysrKysrKy0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuYyAgICAgfCAx MSArKysrKysrKysrLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5oICAgICB8ICAyICst CiAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYyBiL3hlbi9hcmNoL3g4 Ni9jcHUvbWNoZWNrL21jYWN0aW9uLmMKaW5kZXggY2ExN2QyMmJkOC4uZjk1OWJlZDJjYiAxMDA2 NDQKLS0tIGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYworKysgYi94ZW4vYXJj aC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jCkBAIC00NCw2ICs0NCw3IEBAIG1jX21lbWVycl9k aGFuZGxlcihzdHJ1Y3QgbWNhX2JpbmZvICpiaW5mbywKICAgICB1bnNpZ25lZCBsb25nIG1mbiwg Z2ZuOwogICAgIHVpbnQzMl90IHN0YXR1czsKICAgICBpbnQgdm1jZV92Y3B1aWQ7CisgICAgdW5z aWduZWQgaW50IG1jX3ZjcHVpZDsKIAogICAgIGlmICghbWNfY2hlY2tfYWRkcihiYW5rLT5tY19z dGF0dXMsIGJhbmstPm1jX21pc2MsIE1DX0FERFJfUEhZU0lDQUwpKSB7CiAgICAgICAgIGRwcmlu dGsoWEVOTE9HX1dBUk5JTkcsCkBAIC04OCwxOCArODksMjYgQEAgbWNfbWVtZXJyX2RoYW5kbGVy KHN0cnVjdCBtY2FfYmluZm8gKmJpbmZvLAogICAgICAgICAgICAgICAgICAgICBnb3RvIHZtY2Vf ZmFpbGVkOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChib290X2Nw dV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCB8fAotICAgICAgICAgICAgICAg ICAgICBnbG9iYWwtPm1jX3ZjcHVpZCA9PSBYRU5fTUNfVkNQVUlEX0lOVkFMSUQpCisgICAgICAg ICAgICAgICAgbWNfdmNwdWlkID0gZ2xvYmFsLT5tY192Y3B1aWQ7CisgICAgICAgICAgICAgICAg aWYgKG1jX3ZjcHVpZCA9PSBYRU5fTUNfVkNQVUlEX0lOVkFMSUQgfHwKKyAgICAgICAgICAgICAg ICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICogQmVjYXVzZSBNQyMgbWF5IGhhcHBlbiBh c3luY2hyb25vdXNseSB3aXRoIHRoZSBhY3R1YWwKKyAgICAgICAgICAgICAgICAgICAgICogb3Bl cmF0aW9uIHRoYXQgdHJpZ2dlcnMgdGhlIGVycm9yLCB0aGUgZG9tYWluIElEIGFzCisgICAgICAg ICAgICAgICAgICAgICAqIHdlbGwgYXMgdGhlIHZDUFUgSUQgY29sbGVjdGVkIGluICdnbG9iYWwn IGF0IE1DIyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICogbm90IGFsd2F5cyBwcmVjaXNlLiBJ biB0aGF0IGNhc2UsIGZhbGxiYWNrIHRvIGJyb2FkY2FzdC4KKyAgICAgICAgICAgICAgICAgICAg ICovCisgICAgICAgICAgICAgICAgICAgIGdsb2JhbC0+bWNfZG9taWQgIT0gYmFuay0+bWNfZG9t aWQgfHwKKyAgICAgICAgICAgICAgICAgICAgKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBY ODZfVkVORE9SX0lOVEVMICYmCisgICAgICAgICAgICAgICAgICAgICAoIShnbG9iYWwtPm1jX2dz dGF0dXMgJiBNQ0dfU1RBVFVTX0xNQ0UpIHx8CisgICAgICAgICAgICAgICAgICAgICAgIShkLT52 Y3B1W21jX3ZjcHVpZF0tPmFyY2gudm1jZS5tY2dfZXh0X2N0bCAmCisgICAgICAgICAgICAgICAg ICAgICAgICBNQ0dfRVhUX0NUTF9MTUNFX0VOKSkpKQogICAgICAgICAgICAgICAgICAgICB2bWNl X3ZjcHVpZCA9IFZNQ0VfSU5KRUNUX0JST0FEQ0FTVDsKICAgICAgICAgICAgICAgICBlbHNlCi0g ICAgICAgICAgICAgICAgICAgIHZtY2VfdmNwdWlkID0gZ2xvYmFsLT5tY192Y3B1aWQ7CisgICAg ICAgICAgICAgICAgICAgIHZtY2VfdmNwdWlkID0gbWNfdmNwdWlkOwogCiAgICAgICAgICAgICAg ICAgYmFuay0+bWNfYWRkciA9IGdmbiA8PCBQQUdFX1NISUZUIHwKICAgICAgICAgICAgICAgICAg IChiYW5rLT5tY19hZGRyICYgKFBBR0VfU0laRSAtMSApKTsKLSAgICAgICAgICAgICAgICAvKiBU T0RPOiBzdXBwb3J0IGluamVjdGluZyBMTUNFICovCi0gICAgICAgICAgICAgICAgaWYgKGZpbGxf dm1zcl9kYXRhKGJhbmssIGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGds b2JhbC0+bWNfZ3N0YXR1cyAmIH5NQ0dfU1RBVFVTX0xNQ0UsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZtY2VfdmNwdWlkID09IFZNQ0VfSU5KRUNUX0JST0FEQ0FTVCkpCisg ICAgICAgICAgICAgICAgaWYgKGZpbGxfdm1zcl9kYXRhKGJhbmssIGQsIGdsb2JhbC0+bWNfZ3N0 YXR1cywgdm1jZV92Y3B1aWQpKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgbWNlX3ByaW50ayhNQ0VfUVVJRVQsICJGaWxsIHZNQ0UjIGRhdGEgZm9yIERPTSVkICIKICAg ICAgICAgICAgICAgICAgICAgICAiZmFpbGVkXG4iLCBiYW5rLT5tY19kb21pZCk7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMgYi94ZW4vYXJjaC94ODYvY3B1L21j aGVjay92bWNlLmMKaW5kZXggMjEwNjcwNjM4Zi4uOTgzMDgzNWM1YSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNr L3ZtY2UuYwpAQCAtNDY0LDE0ICs0NjQsMjMgQEAgc3RhdGljIGludCB2Y3B1X2ZpbGxfbWNfbXNy cyhzdHJ1Y3QgdmNwdSAqdiwgdWludDY0X3QgbWNnX3N0YXR1cywKIH0KIAogaW50IGZpbGxfdm1z cl9kYXRhKHN0cnVjdCBtY2luZm9fYmFuayAqbWNfYmFuaywgc3RydWN0IGRvbWFpbiAqZCwKLSAg ICAgICAgICAgICAgICAgICB1aW50NjRfdCBnc3RhdHVzLCBib29sIGJyb2FkY2FzdCkKKyAgICAg ICAgICAgICAgICAgICB1aW50NjRfdCBnc3RhdHVzLCBpbnQgdm1jZV92Y3B1aWQpCiB7CiAgICAg c3RydWN0IHZjcHUgKnYgPSBkLT52Y3B1WzBdOworICAgIGJvb2wgYnJvYWRjYXN0ID0gKHZtY2Vf dmNwdWlkID09IFZNQ0VfSU5KRUNUX0JST0FEQ0FTVCk7CiAgICAgaW50IHJldCwgZXJyOwogCiAg ICAgaWYgKCBtY19iYW5rLT5tY19kb21pZCA9PSBET01JRF9JTlZBTElEICkKICAgICAgICAgcmV0 dXJuIC1FSU5WQUw7CiAKKyAgICBpZiAoIGJyb2FkY2FzdCApCisgICAgICAgIGdzdGF0dXMgJj0g fk1DR19TVEFUVVNfTE1DRTsKKyAgICBlbHNlIGlmICggZ3N0YXR1cyAmIE1DR19TVEFUVVNfTE1D RSApCisgICAgeworICAgICAgICBBU1NFUlQodm1jZV92Y3B1aWQgPj0gMCAmJiB2bWNlX3ZjcHVp ZCA8IGQtPm1heF92Y3B1cyk7CisgICAgICAgIHYgPSBkLT52Y3B1W3ZtY2VfdmNwdWlkXTsKKyAg ICB9CisKICAgICAvKgogICAgICAqIHZNQ0Ugd2l0aCB0aGUgYWN0dWFsIGVycm9yIGluZm9ybWF0 aW9uIGlzIGluamVjdGVkIHRvIHZDUFUwLAogICAgICAqIGFuZCwgaWYgYnJvYWRjYXN0IGlzIHJl cXVpcmVkLCB3ZSBjaG9vc2UgdG8gaW5qZWN0IGxlc3Mgc2V2ZXJlCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvY3B1L21jaGVjay92bWNlLmggYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNl LmgKaW5kZXggNzRmNjM4MTQ2MC4uMjc5N2UwMDI3NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2NwdS9tY2hlY2svdm1jZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuaApA QCAtMTcsNyArMTcsNyBAQCBpbnQgdm1jZV9hbWRfcmRtc3IoY29uc3Qgc3RydWN0IHZjcHUgKiwg dWludDMyX3QgbXNyLCB1aW50NjRfdCAqdmFsKTsKIGludCB2bWNlX2FtZF93cm1zcihzdHJ1Y3Qg dmNwdSAqLCB1aW50MzJfdCBtc3IsIHVpbnQ2NF90IHZhbCk7CiAKIGludCBmaWxsX3Ztc3JfZGF0 YShzdHJ1Y3QgbWNpbmZvX2JhbmsgKm1jX2JhbmssIHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAg ICAgICAgICAgICAgdWludDY0X3QgZ3N0YXR1cywgYm9vbCBicm9hZGNhc3QpOworICAgICAgICAg ICAgICAgICAgIHVpbnQ2NF90IGdzdGF0dXMsIGludCB2bWNlX3ZjcHVpZCk7CiAKICNkZWZpbmUg Vk1DRV9JTkpFQ1RfQlJPQURDQVNUICgtMSkKIGludCBpbmplY3Rfdm1jZShzdHJ1Y3QgZG9tYWlu ICpkLCBpbnQgdmNwdSk7Ci0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK