From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 7/8] x86/emul: Support CPUID fauilting via a speculative MSR read Date: Mon, 5 Dec 2016 10:09:30 +0000 Message-ID: <1480932571-23547-8-git-send-email-andrew.cooper3@citrix.com> References: <1480932571-23547-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480932571-23547-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VXNlIHRoZSBuZXcgc3BlY3VsYXRpdmUgcmVhZCBzdXBwb3J0IHRvIHF1ZXJ5IE1TUl9JTlRFTF9N SVNDX0ZFQVRVUkVTIGZvcgphY3RpdmUgQ1BVSUQgZmF1bHRpbmcsIHdpdGhvdXQgcmFpc2luZyAj R1AgYXMgYSBzaWRlIGVmZmVjdC4KClRoaXMgcmVtb3ZlcyB0aGUgbmVlZCBmb3IgZXZlcnkgY3B1 aWQoKSBlbXVsYXRpb24gaG9vayB0byBpbmRpdmlkdWFsbHkgc3VwcG9ydApDUFVJRCBmYXVsdGlu Zy4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5j b20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogUGF1bCBEdXJy YW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KCkphbjogUHJvYmFibHkgd29ydGggd2FpdGlu ZyB0byByZWJhc2Ugb3ZlciB5b3VyIGNoYW5nZXMgbW92aW5nIHRoZQphcmNoaXRlY3RydWFsIGRl ZmluZXMgZWxzZXdoZXJlCi0tLQogeGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMgICAgICAgICAg ICAgfCAgOSAtLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5j IHwgMTYgKysrKysrKysrKysrKy0tLQogeGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVs YXRlLmggfCAgNyArLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDE4 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZW11bGF0ZS5jIGIv eGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKaW5kZXggYmNlMGIwMC4uMWExMzJlNyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2h2bS9lbXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9l bXVsYXRlLmMKQEAgLTE1NjcsMTUgKzE1NjcsNiBAQCBpbnQgaHZtZW11bF9jcHVpZCgKICAgICB1 bnNpZ25lZCBpbnQgKmVkeCwKICAgICBzdHJ1Y3QgeDg2X2VtdWxhdGVfY3R4dCAqY3R4dCkKIHsK LSAgICAvKgotICAgICAqIHg4Nl9lbXVsYXRlIHVzZXMgdGhpcyBmdW5jdGlvbiB0byBxdWVyeSBD UFUgZmVhdHVyZXMgZm9yIGl0cyBvd24gaW50ZXJuYWwKLSAgICAgKiB1c2UuIE1ha2Ugc3VyZSB3 ZSdyZSBhY3R1YWxseSBlbXVsYXRpbmcgQ1BVSUQgYmVmb3JlIGVtdWxhdGluZyBDUFVJRAotICAg ICAqIGZhdWx0aW5nLgotICAgICAqLwotICAgIGlmICggY3R4dC0+b3Bjb2RlID09IFg4NkVNVUxf T1BDKDB4MGYsIDB4YTIpICYmCi0gICAgICAgICBodm1fY2hlY2tfY3B1aWRfZmF1bHRpbmcoY3Vy cmVudCkgKQotICAgICAgICByZXR1cm4gWDg2RU1VTF9FWENFUFRJT047Ci0KICAgICBodm1fZnVu Y3MuY3B1aWRfaW50ZXJjZXB0KGVheCwgZWJ4LCBlY3gsIGVkeCk7CiAgICAgcmV0dXJuIFg4NkVN VUxfT0tBWTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5jIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKaW5kZXggNWNi YTdlYy4uNjc0OTVlYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9l bXVsYXRlLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRlLmMKQEAg LTQwNiw2ICs0MDYsOCBAQCB0eXBlZGVmIHVuaW9uIHsKIAogLyogTVNScy4gKi8KICNkZWZpbmUg TVNSX1RTQyAgICAgICAgICAweDAwMDAwMDEwCisjZGVmaW5lIE1TUl9JTlRFTF9NSVNDX0ZFQVRV UkVTIDB4MDAwMDAxNDAKKyNkZWZpbmUgTUlTQ19GRUFUVVJFU19DUFVJRF9GQVVMVElORyAoMSA8 PCAwKQogI2RlZmluZSBNU1JfU1lTRU5URVJfQ1MgIDB4MDAwMDAxNzQKICNkZWZpbmUgTVNSX1NZ U0VOVEVSX0VTUCAweDAwMDAwMTc1CiAjZGVmaW5lIE1TUl9TWVNFTlRFUl9FSVAgMHgwMDAwMDE3 NgpAQCAtNTA0NCwxMyArNTA0NiwyMSBAQCB4ODZfZW11bGF0ZSgKICAgICAgICAgc3JjLnZhbCA9 IHg4Nl9zZWdfZnM7CiAgICAgICAgIGdvdG8gcG9wX3NlZzsKIAotICAgIGNhc2UgWDg2RU1VTF9P UEMoMHgwZiwgMHhhMik6IC8qIGNwdWlkICovIHsKKyAgICBjYXNlIFg4NkVNVUxfT1BDKDB4MGYs IDB4YTIpOiAvKiBjcHVpZCAqLworICAgIHsKICAgICAgICAgdW5zaWduZWQgaW50IGVheCA9IF9y ZWdzLmVheCwgZWJ4ID0gX3JlZ3MuZWJ4OwogICAgICAgICB1bnNpZ25lZCBpbnQgZWN4ID0gX3Jl Z3MuZWN4LCBlZHggPSBfcmVncy5lZHg7CisgICAgICAgIHVpbnQ2NF90IG1pc2NfZmVhdHVyZXM7 CisKICAgICAgICAgZmFpbF9pZihvcHMtPmNwdWlkID09IE5VTEwpOworICAgICAgICBnZW5lcmF0 ZV9leGNlcHRpb25faWYoCisgICAgICAgICAgICBvcHMtPnJlYWRfbXNyICYmCisgICAgICAgICAg ICBvcHMtPnJlYWRfbXNyKE1TUl9JTlRFTF9NSVNDX0ZFQVRVUkVTLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAmbWlzY19mZWF0dXJlcywgdHJ1ZSwgY3R4dCkgPT0gWDg2RU1VTF9PS0FZICYm CisgICAgICAgICAgICAobWlzY19mZWF0dXJlcyAmIE1JU0NfRkVBVFVSRVNfQ1BVSURfRkFVTFRJ TkcpICYmCisgICAgICAgICAgICAhbW9kZV9yaW5nMCgpLCBFWENfR1AsIDApOyAvKiBDUFVJRCBG YXVsdGluZz8gKi8KKwogICAgICAgICByYyA9IG9wcy0+Y3B1aWQoJmVheCwgJmVieCwgJmVjeCwg JmVkeCwgY3R4dCk7Ci0gICAgICAgIGdlbmVyYXRlX2V4Y2VwdGlvbl9pZihyYyA9PSBYODZFTVVM X0VYQ0VQVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYQ19HUCwgMCk7IC8q IENQVUlEIEZhdWx0aW5nPyAqLwogICAgICAgICBpZiAoIHJjICE9IFg4NkVNVUxfT0tBWSApCiAg ICAgICAgICAgICBnb3RvIGRvbmU7CiAgICAgICAgIF9yZWdzLmVheCA9IGVheDsgX3JlZ3MuZWJ4 ID0gZWJ4OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3g4Nl9lbXVsYXRlL3g4Nl9lbXVsYXRl LmggYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaAppbmRleCA4OWNmMjBk Li40NmM4NjNmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxh dGUuaAorKysgYi94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaApAQCAtMzk1 LDEyICszOTUsNyBAQCBzdHJ1Y3QgeDg2X2VtdWxhdGVfb3BzCiAgICAgaW50ICgqd2JpbnZkKSgK ICAgICAgICAgc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpOwogCi0gICAgLyoKLSAgICAg KiBjcHVpZDogRW11bGF0ZSBDUFVJRCB2aWEgZ2l2ZW4gc2V0IG9mIEVBWC1FRFggaW5wdXRzL291 dHB1dHMuCi0gICAgICoKLSAgICAgKiBNYXkgcmV0dXJuIFg4NkVNVUxfRVhDRVBUSU9OLCB3aGlj aCBjYXVzZXMgdGhlIGVtdWxhdG9yIHRvIGluamVjdAotICAgICAqICNHUFswXS4gIFVzZWQgdG8g aW1wbGVtZW50IENQVUlEIGZhdWx0aW5nLgotICAgICAqLworICAgIC8qIGNwdWlkOiBFbXVsYXRl IENQVUlEIHZpYSBnaXZlbiBzZXQgb2YgRUFYLUVEWCBpbnB1dHMvb3V0cHV0cy4gKi8KICAgICBp bnQgKCpjcHVpZCkoCiAgICAgICAgIHVuc2lnbmVkIGludCAqZWF4LAogICAgICAgICB1bnNpZ25l ZCBpbnQgKmVieCwKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu Lm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==