From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v8 10/17] x86/hvm: Permit guests direct access to MSR_{SPEC_CTRL, PRED_CMD} Date: Fri, 12 Jan 2018 18:01:00 +0000 Message-ID: <1515780067-31735-11-git-send-email-andrew.cooper3@citrix.com> References: <1515780067-31735-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: <1515780067-31735-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper List-Id: xen-devel@lists.xenproject.org Rm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIEhWTSBndWVzdHMgc2hvdWxkIGhhdmUgZGlyZWN0IGFj Y2VzcyB0byB0aGVzZSBNU1JzCndoZW4gcG9zc2libGUuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0Kdjc6CiAqIERyb3AgZXhjZXNz IGJyYWNrZXRzCi0tLQogeGVuL2FyY2gveDg2L2RvbWN0bC5jICAgICAgfCAxOSArKysrKysrKysr KysrKysrKysrCiB4ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYyB8ICA1ICsrKysrCiB4ZW4vYXJj aC94ODYvaHZtL3ZteC92bXguYyB8IDE4ICsrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2 L21zci5jICAgICAgICAgfCAgMyArKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvbXNyLmggIHwgIDUg KysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMgYi94ZW4vYXJjaC94ODYvZG9tY3Rs LmMKaW5kZXggNzJiNDQ4OS4uZTVmZGRlNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWN0 bC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwpAQCAtNTMsNiArNTMsNyBAQCBzdGF0aWMg aW50IHVwZGF0ZV9kb21haW5fY3B1aWRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogICAgIHN0cnVj dCBjcHVpZF9wb2xpY3kgKnAgPSBkLT5hcmNoLmNwdWlkOwogICAgIGNvbnN0IHN0cnVjdCBjcHVp ZF9sZWFmIGxlYWYgPSB7IGN0bC0+ZWF4LCBjdGwtPmVieCwgY3RsLT5lY3gsIGN0bC0+ZWR4IH07 CiAgICAgaW50IG9sZF92ZW5kb3IgPSBwLT54ODZfdmVuZG9yOworICAgIHVuc2lnbmVkIGludCBv bGRfN2QwID0gcC0+ZmVhdC5yYXdbMF0uZCwgb2xkX2U4YiA9IHAtPmV4dGQucmF3WzhdLmI7CiAg ICAgYm9vbCBjYWxsX3BvbGljeV9jaGFuZ2VkID0gZmFsc2U7IC8qIEF2b2lkIGZvcl9lYWNoX3Zj cHUoKSB1bm5lY2Vzc2FyaWx5ICovCiAKICAgICAvKgpAQCAtMjE4LDYgKzIxOSwxNCBAQCBzdGF0 aWMgaW50IHVwZGF0ZV9kb21haW5fY3B1aWRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogCiAgICAg ICAgICAgICBkLT5hcmNoLnB2X2RvbWFpbi5jcHVpZG1hc2tzLT5fN2FiMCA9IG1hc2s7CiAgICAg ICAgIH0KKworICAgICAgICAvKgorICAgICAgICAgKiBJZiB0aGUgSUJTUkIvU1RJQlAgcG9saWN5 IGhhcyBjaGFuZ2VkLCB3ZSBuZWVkIHRvIHJlY2FsY3VsYXRlIHRoZQorICAgICAgICAgKiBNU1Ig aW50ZXJjZXB0aW9uIGJpdG1hcHMgYW5kIFNUSUJQIHByb3RlY3Rpb24gZGVmYXVsdC4KKyAgICAg ICAgICovCisgICAgICAgIGNhbGxfcG9saWN5X2NoYW5nZWQgPSAoKG9sZF83ZDAgXiBwLT5mZWF0 LnJhd1swXS5kKSAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNwdWZlYXRfbWFz ayhYODZfRkVBVFVSRV9JQlJTQikgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1RJQlApKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAg Y2FzZSAweGE6CkBAIC0yOTIsNiArMzAxLDE2IEBAIHN0YXRpYyBpbnQgdXBkYXRlX2RvbWFpbl9j cHVpZF9pbmZvKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICBkLT5hcmNoLnB2X2RvbWFp bi5jcHVpZG1hc2tzLT5lMWNkID0gbWFzazsKICAgICAgICAgfQogICAgICAgICBicmVhazsKKwor ICAgIGNhc2UgMHg4MDAwMDAwODoKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgdGhlIElCUkIg cG9saWN5IGhhcyBjaGFuZ2VkLCB3ZSBuZWVkIHRvIHJlY2FsY3VsYXRlIHRoZSBNU1IKKyAgICAg ICAgICogaW50ZXJjZXB0aW9uIGJpdG1hcHMuCisgICAgICAgICAqLworICAgICAgICBjYWxsX3Bv bGljeV9jaGFuZ2VkID0gKGlzX2h2bV9kb21haW4oZCkgJiYKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoKG9sZF9lOGIgXiBwLT5leHRkLnJhd1s4XS5iKSAmCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCKSkpOworICAg ICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIGNhbGxfcG9saWN5X2NoYW5nZWQgKQpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2 bS9zdm0uYwppbmRleCBjNDhmZGZhLi5lZTQ3NTA4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv aHZtL3N2bS9zdm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYwpAQCAtNjE3LDYg KzYxNyw3IEBAIHN0YXRpYyB2b2lkIHN2bV9jcHVpZF9wb2xpY3lfY2hhbmdlZChzdHJ1Y3QgdmNw dSAqdikKIHsKICAgICBzdHJ1Y3QgYXJjaF9zdm1fc3RydWN0ICphcmNoX3N2bSA9ICZ2LT5hcmNo Lmh2bV9zdm07CiAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiID0gYXJjaF9zdm0tPnZtY2I7 CisgICAgY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqY3AgPSB2LT5kb21haW4tPmFyY2guY3B1 aWQ7CiAgICAgdTMyIGJpdG1hcCA9IHZtY2JfZ2V0X2V4Y2VwdGlvbl9pbnRlcmNlcHRzKHZtY2Ip OwogCiAgICAgaWYgKCBvcHRfaHZtX2ZlcCB8fApAQCAtNjI2LDYgKzYyNywxMCBAQCBzdGF0aWMg dm9pZCBzdm1fY3B1aWRfcG9saWN5X2NoYW5nZWQoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIGJp dG1hcCAmPSB+KDFVIDw8IFRSQVBfaW52YWxpZF9vcCk7CiAKICAgICB2bWNiX3NldF9leGNlcHRp b25faW50ZXJjZXB0cyh2bWNiLCBiaXRtYXApOworCisgICAgLyogR2l2ZSBhY2Nlc3MgdG8gTVNS X1BSRURfQ01EIGlmIHRoZSBndWVzdCBoYXMgYmVlbiB0b2xkIGFib3V0IGl0LiAqLworICAgIHN2 bV9pbnRlcmNlcHRfbXNyKHYsIE1TUl9QUkVEX0NNRCwKKyAgICAgICAgICAgICAgICAgICAgICBj cC0+ZXh0ZC5pYnBiID8gTVNSX0lOVEVSQ0VQVF9OT05FIDogTVNSX0lOVEVSQ0VQVF9SVyk7CiB9 CiAKIHN0YXRpYyB2b2lkIHN2bV9zeW5jX3ZtY2Ioc3RydWN0IHZjcHUgKnYpCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j CmluZGV4IGUwMzYzMDMuLjg2MDlkZTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14 L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC02NTYsNiArNjU2LDgg QEAgdm9pZCB2bXhfdXBkYXRlX2V4Y2VwdGlvbl9iaXRtYXAoc3RydWN0IHZjcHUgKnYpCiAKIHN0 YXRpYyB2b2lkIHZteF9jcHVpZF9wb2xpY3lfY2hhbmdlZChzdHJ1Y3QgdmNwdSAqdikKIHsKKyAg ICBjb25zdCBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpjcCA9IHYtPmRvbWFpbi0+YXJjaC5jcHVpZDsK KwogICAgIGlmICggb3B0X2h2bV9mZXAgfHwKICAgICAgICAgICh2LT5kb21haW4tPmFyY2guY3B1 aWQtPng4Nl92ZW5kb3IgIT0gYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yKSApCiAgICAgICAgIHYt PmFyY2guaHZtX3ZteC5leGNlcHRpb25fYml0bWFwIHw9ICgxVSA8PCBUUkFQX2ludmFsaWRfb3Ap OwpAQCAtNjY1LDYgKzY2NywyMiBAQCBzdGF0aWMgdm9pZCB2bXhfY3B1aWRfcG9saWN5X2NoYW5n ZWQoc3RydWN0IHZjcHUgKnYpCiAgICAgdm14X3ZtY3NfZW50ZXIodik7CiAgICAgdm14X3VwZGF0 ZV9leGNlcHRpb25fYml0bWFwKHYpOwogICAgIHZteF92bWNzX2V4aXQodik7CisKKyAgICAvKgor ICAgICAqIFdlIGNhbiBvbmx5IHBhc3MgdGhvdWdoIE1TUl9TUEVDX0NUUkwgaWYgdGhlIGd1ZXN0 IGtub3dzIGFib3V0IGFsbCBiaXRzCisgICAgICogaW4gaXQuICBPdGhlcndpc2UsIFhlbiBtYXkg YmUgZml4aW5nIHVwIGluIHRoZSBiYWNrZ3JvdW5kLgorICAgICAqLworICAgIHYtPmFyY2gubXNy LT5zcGVjX2N0cmwuZGlyZWN0X2FjY2VzcyA9IGNwLT5mZWF0LmlicnNiICYmIGNwLT5mZWF0LnN0 aWJwOworICAgIGlmICggdi0+YXJjaC5tc3ItPnNwZWNfY3RybC5kaXJlY3RfYWNjZXNzICkKKyAg ICAgICAgdm14X2NsZWFyX21zcl9pbnRlcmNlcHQodiwgTVNSX1NQRUNfQ1RSTCwgVk1YX01TUl9S Vyk7CisgICAgZWxzZQorICAgICAgICB2bXhfc2V0X21zcl9pbnRlcmNlcHQodiwgTVNSX1NQRUNf Q1RSTCwgVk1YX01TUl9SVyk7CisKKyAgICAvKiBNU1JfUFJFRF9DTUQgaXMgc2FmZSB0byBwYXNz IHRocm91Z2ggaWYgdGhlIGd1ZXN0IGtub3dzIGFib3V0IGl0LiAqLworICAgIGlmICggY3AtPmZl YXQuaWJyc2IgfHwgY3AtPmV4dGQuaWJwYiApCisgICAgICAgIHZteF9jbGVhcl9tc3JfaW50ZXJj ZXB0KHYsIE1TUl9QUkVEX0NNRCwgIFZNWF9NU1JfUlcpOworICAgIGVsc2UKKyAgICAgICAgdm14 X3NldF9tc3JfaW50ZXJjZXB0KHYsIE1TUl9QUkVEX0NNRCwgIFZNWF9NU1JfUlcpOwogfQogCiBp bnQgdm14X2d1ZXN0X3g4Nl9tb2RlKHN0cnVjdCB2Y3B1ICp2KQpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21zci5jIGIveGVuL2FyY2gveDg2L21zci5jCmluZGV4IDAyYTdiNDkuLjY5N2NjNmUg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tc3IuYworKysgYi94ZW4vYXJjaC94ODYvbXNyLmMK QEAgLTEzMiw3ICsxMzIsOCBAQCBpbnQgZ3Vlc3RfcmRtc3IoY29uc3Qgc3RydWN0IHZjcHUgKnYs IHVpbnQzMl90IG1zciwgdWludDY0X3QgKnZhbCkKICAgICBjYXNlIE1TUl9TUEVDX0NUUkw6CiAg ICAgICAgIGlmICggIWNwLT5mZWF0LmlicnNiICkKICAgICAgICAgICAgIGdvdG8gZ3BfZmF1bHQ7 Ci0gICAgICAgICp2YWwgPSB2cC0+c3BlY19jdHJsLmd1ZXN0OworICAgICAgICAqdmFsID0gKHZw LT5zcGVjX2N0cmwuZGlyZWN0X2FjY2VzcworICAgICAgICAgICAgICAgID8gdnAtPnNwZWNfY3Ry bC5ob3N0IDogdnAtPnNwZWNfY3RybC5ndWVzdCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz ZSBNU1JfSU5URUxfUExBVEZPUk1fSU5GTzoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvbXNyLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21zci5oCmluZGV4IDNkMDAxMmQuLjAwN2U5 NjYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9tc3IuaApAQCAtMjI5LDEwICsyMjksMTMgQEAgc3RydWN0IG1zcl92Y3B1X3Bv bGljeQogICAgICAgICAgKiBPbmx5IHRoZSBib3R0b20gdHdvIGJpdHMgYXJlIGRlZmluZWQsIHNv IG5vIG5lZWQgdG8gd2FzdGUgc3BhY2UKICAgICAgICAgICogd2l0aCB1aW50NjRfdCBhdCB0aGUg bW9tZW50LiAgV2UgbWFpbnRhaW4gdGhlIGd1ZXN0cyBpZGVhIG9mIHRoZQogICAgICAgICAgKiB2 YWx1ZSBpdCB3cm90ZSwgYW5kIGEgdmFsdWUgdG8gaW5zdGFsbCBpbnRvIGhhcmR3YXJlIChleHRl bmRlZCB0bwotICAgICAgICAgKiB1aW50MzJfdCB0byBzaW1wbGlmeSB0aGUgYXNtKSB3aGljaCBt aWdodCBiZSBkaWZmZXJlbnQuCisgICAgICAgICAqIHVpbnQzMl90IHRvIHNpbXBsaWZ5IHRoZSBh c20pIHdoaWNoIG1pZ2h0IGJlIGRpZmZlcmVudC4gIEhWTSBndWVzdHMKKyAgICAgICAgICogbWln aHQgYmUgZ2l2ZW4gZGlyZWN0IGFjY2VzcyB0byB0aGUgTVNScywgYXQgd2hpY2ggcG9pbnQgdGhl CisgICAgICAgICAqICdndWVzdCcgdmFsdWUgYmVjb21lcyBzdGFsZS4KICAgICAgICAgICovCiAg ICAgICAgIHVpbnQzMl90IGhvc3Q7CiAgICAgICAgIHVpbnQ4X3QgZ3Vlc3Q7CisgICAgICAgIGJv b2wgZGlyZWN0X2FjY2VzczsKICAgICB9IHNwZWNfY3RybDsKIAogICAgIC8qIDB4MDAwMDAxNDAg IE1TUl9JTlRFTF9NSVNDX0ZFQVRVUkVTX0VOQUJMRVMgKi8KLS0gCjIuMS40CgoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcg bGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9q ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==