From mboxrd@z Thu Jan 1 00:00:00 1970 From: Haozhong Zhang Subject: [PATCH v5 07/11] x86/vmce: enable injecting LMCE to guest on Intel host Date: Mon, 3 Jul 2017 11:46:22 +0800 Message-ID: <20170703034626.9429-8-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 , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org SW5qZWN0IExNQ0UgdG8gZ3Vlc3QgaWYgdGhlIGhvc3QgTUNFIGlzIExNQ0UgYW5kIHRoZSBhZmZl Y3RlZCB2Y3B1IGlzCmtub3duLiBPdGhlcndpc2UsIGJyb2FkY2FzdCBNQ0UgdG8gYWxsIHZjcHVz IG9uIEludGVsIGhvc3QuCgpTaWduZWQtb2ZmLWJ5OiBIYW96aG9uZyBaaGFuZyA8aGFvemhvbmcu emhhbmdAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgotLS0KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2NwdS9t Y2hlY2svbWNhY3Rpb24uYyB8IDIzICsrKysrKysrKysrKysrKystLS0tLS0tCiB4ZW4vYXJjaC94 ODYvY3B1L21jaGVjay92bWNlLmMgICAgIHwgMTEgKysrKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9j cHUvbWNoZWNrL3ZtY2UuaCAgICAgfCAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRp b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNo ZWNrL21jYWN0aW9uLmMgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2FjdGlvbi5jCmluZGV4 IGNhMTdkMjJiZDguLmY5NTliZWQyY2IgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNo ZWNrL21jYWN0aW9uLmMKKysrIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWNhY3Rpb24uYwpA QCAtNDQsNiArNDQsNyBAQCBtY19tZW1lcnJfZGhhbmRsZXIoc3RydWN0IG1jYV9iaW5mbyAqYmlu Zm8sCiAgICAgdW5zaWduZWQgbG9uZyBtZm4sIGdmbjsKICAgICB1aW50MzJfdCBzdGF0dXM7CiAg ICAgaW50IHZtY2VfdmNwdWlkOworICAgIHVuc2lnbmVkIGludCBtY192Y3B1aWQ7CiAKICAgICBp ZiAoIW1jX2NoZWNrX2FkZHIoYmFuay0+bWNfc3RhdHVzLCBiYW5rLT5tY19taXNjLCBNQ19BRERS X1BIWVNJQ0FMKSkgewogICAgICAgICBkcHJpbnRrKFhFTkxPR19XQVJOSU5HLApAQCAtODgsMTgg Kzg5LDI2IEBAIG1jX21lbWVycl9kaGFuZGxlcihzdHJ1Y3QgbWNhX2JpbmZvICpiaW5mbywKICAg ICAgICAgICAgICAgICAgICAgZ290byB2bWNlX2ZhaWxlZDsKICAgICAgICAgICAgICAgICB9CiAK LSAgICAgICAgICAgICAgICBpZiAoYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5E T1JfSU5URUwgfHwKLSAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLT5tY192Y3B1aWQgPT0gWEVO X01DX1ZDUFVJRF9JTlZBTElEKQorICAgICAgICAgICAgICAgIG1jX3ZjcHVpZCA9IGdsb2JhbC0+ bWNfdmNwdWlkOworICAgICAgICAgICAgICAgIGlmIChtY192Y3B1aWQgPT0gWEVOX01DX1ZDUFVJ RF9JTlZBTElEIHx8CisgICAgICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICAg ICAqIEJlY2F1c2UgTUMjIG1heSBoYXBwZW4gYXN5bmNocm9ub3VzbHkgd2l0aCB0aGUgYWN0dWFs CisgICAgICAgICAgICAgICAgICAgICAqIG9wZXJhdGlvbiB0aGF0IHRyaWdnZXJzIHRoZSBlcnJv ciwgdGhlIGRvbWFpbiBJRCBhcworICAgICAgICAgICAgICAgICAgICAgKiB3ZWxsIGFzIHRoZSB2 Q1BVIElEIGNvbGxlY3RlZCBpbiAnZ2xvYmFsJyBhdCBNQyMgYXJlCisgICAgICAgICAgICAgICAg ICAgICAqIG5vdCBhbHdheXMgcHJlY2lzZS4gSW4gdGhhdCBjYXNlLCBmYWxsYmFjayB0byBicm9h ZGNhc3QuCisgICAgICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgICAgICBnbG9i YWwtPm1jX2RvbWlkICE9IGJhbmstPm1jX2RvbWlkIHx8CisgICAgICAgICAgICAgICAgICAgIChi b290X2NwdV9kYXRhLng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCAmJgorICAgICAgICAg ICAgICAgICAgICAgKCEoZ2xvYmFsLT5tY19nc3RhdHVzICYgTUNHX1NUQVRVU19MTUNFKSB8fAor ICAgICAgICAgICAgICAgICAgICAgICEoZC0+dmNwdVttY192Y3B1aWRdLT5hcmNoLnZtY2UubWNn X2V4dF9jdGwgJgorICAgICAgICAgICAgICAgICAgICAgICAgTUNHX0VYVF9DVExfTE1DRV9FTikp KSkKICAgICAgICAgICAgICAgICAgICAgdm1jZV92Y3B1aWQgPSBWTUNFX0lOSkVDVF9CUk9BRENB U1Q7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICB2bWNlX3ZjcHVp ZCA9IGdsb2JhbC0+bWNfdmNwdWlkOworICAgICAgICAgICAgICAgICAgICB2bWNlX3ZjcHVpZCA9 IG1jX3ZjcHVpZDsKIAogICAgICAgICAgICAgICAgIGJhbmstPm1jX2FkZHIgPSBnZm4gPDwgUEFH RV9TSElGVCB8CiAgICAgICAgICAgICAgICAgICAoYmFuay0+bWNfYWRkciAmIChQQUdFX1NJWkUg LTEgKSk7Ci0gICAgICAgICAgICAgICAgLyogVE9ETzogc3VwcG9ydCBpbmplY3RpbmcgTE1DRSAq LwotICAgICAgICAgICAgICAgIGlmIChmaWxsX3Ztc3JfZGF0YShiYW5rLCBkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwtPm1jX2dzdGF0dXMgJiB+TUNHX1NUQVRV U19MTUNFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bWNlX3ZjcHVpZCA9 PSBWTUNFX0lOSkVDVF9CUk9BRENBU1QpKQorICAgICAgICAgICAgICAgIGlmIChmaWxsX3Ztc3Jf ZGF0YShiYW5rLCBkLCBnbG9iYWwtPm1jX2dzdGF0dXMsIHZtY2VfdmNwdWlkKSkKICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIG1jZV9wcmludGsoTUNFX1FVSUVULCAiRmls bCB2TUNFIyBkYXRhIGZvciBET00lZCAiCiAgICAgICAgICAgICAgICAgICAgICAgImZhaWxlZFxu IiwgYmFuay0+bWNfZG9taWQpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2sv dm1jZS5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5jCmluZGV4IDIxMDY3MDYzOGYu Ljk4MzA4MzVjNWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuYwor KysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay92bWNlLmMKQEAgLTQ2NCwxNCArNDY0LDIzIEBA IHN0YXRpYyBpbnQgdmNwdV9maWxsX21jX21zcnMoc3RydWN0IHZjcHUgKnYsIHVpbnQ2NF90IG1j Z19zdGF0dXMsCiB9CiAKIGludCBmaWxsX3Ztc3JfZGF0YShzdHJ1Y3QgbWNpbmZvX2JhbmsgKm1j X2JhbmssIHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAgICAgdWludDY0X3QgZ3N0 YXR1cywgYm9vbCBicm9hZGNhc3QpCisgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZ3N0YXR1 cywgaW50IHZtY2VfdmNwdWlkKQogewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gZC0+dmNwdVswXTsK KyAgICBib29sIGJyb2FkY2FzdCA9ICh2bWNlX3ZjcHVpZCA9PSBWTUNFX0lOSkVDVF9CUk9BRENB U1QpOwogICAgIGludCByZXQsIGVycjsKIAogICAgIGlmICggbWNfYmFuay0+bWNfZG9taWQgPT0g RE9NSURfSU5WQUxJRCApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCisgICAgaWYgKCBicm9h ZGNhc3QgKQorICAgICAgICBnc3RhdHVzICY9IH5NQ0dfU1RBVFVTX0xNQ0U7CisgICAgZWxzZSBp ZiAoIGdzdGF0dXMgJiBNQ0dfU1RBVFVTX0xNQ0UgKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHZt Y2VfdmNwdWlkID49IDAgJiYgdm1jZV92Y3B1aWQgPCBkLT5tYXhfdmNwdXMpOworICAgICAgICB2 ID0gZC0+dmNwdVt2bWNlX3ZjcHVpZF07CisgICAgfQorCiAgICAgLyoKICAgICAgKiB2TUNFIHdp dGggdGhlIGFjdHVhbCBlcnJvciBpbmZvcm1hdGlvbiBpcyBpbmplY3RlZCB0byB2Q1BVMCwKICAg ICAgKiBhbmQsIGlmIGJyb2FkY2FzdCBpcyByZXF1aXJlZCwgd2UgY2hvb3NlIHRvIGluamVjdCBs ZXNzIHNldmVyZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5oIGIv eGVuL2FyY2gveDg2L2NwdS9tY2hlY2svdm1jZS5oCmluZGV4IDc0ZjYzODE0NjAuLjI3OTdlMDAy NzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL3ZtY2UuaAorKysgYi94ZW4v YXJjaC94ODYvY3B1L21jaGVjay92bWNlLmgKQEAgLTE3LDcgKzE3LDcgQEAgaW50IHZtY2VfYW1k X3JkbXNyKGNvbnN0IHN0cnVjdCB2Y3B1ICosIHVpbnQzMl90IG1zciwgdWludDY0X3QgKnZhbCk7 CiBpbnQgdm1jZV9hbWRfd3Jtc3Ioc3RydWN0IHZjcHUgKiwgdWludDMyX3QgbXNyLCB1aW50NjRf dCB2YWwpOwogCiBpbnQgZmlsbF92bXNyX2RhdGEoc3RydWN0IG1jaW5mb19iYW5rICptY19iYW5r LCBzdHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGdzdGF0dXMs IGJvb2wgYnJvYWRjYXN0KTsKKyAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBnc3RhdHVzLCBp bnQgdm1jZV92Y3B1aWQpOwogCiAjZGVmaW5lIFZNQ0VfSU5KRUNUX0JST0FEQ0FTVCAoLTEpCiBp bnQgaW5qZWN0X3ZtY2Uoc3RydWN0IGRvbWFpbiAqZCwgaW50IHZjcHUpOwotLSAKMi4xMS4wCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==