From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v6.5 19/26] x86/hvm: Permit guests direct access to MSR_{SPEC_CTRL, PRED_CMD} Date: Thu, 4 Jan 2018 00:15:48 +0000 Message-ID: <1515024955-13390-20-git-send-email-andrew.cooper3@citrix.com> References: <1515024955-13390-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: <1515024955-13390-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 Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KdjQ6CiAqIFJlZG8gYWxtb3N0 IGZyb20gc2NyYXRjaCB0byBzdXBwb3J0IEFNRAp2NjoKICogQWxsb3cgZGlyZWN0IGFjY2VzcyB0 byBQUkVEX0NNRCBmb3IgSUJQQgotLS0KIHhlbi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgIHwgMTkg KysrKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgfCAgNSArKysr KwogeGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgfCAxOCArKysrKysrKysrKysrKysrKysKIHhl bi9hcmNoL3g4Ni9tc3IuYyAgICAgICAgIHwgIDMgKystCiB4ZW4vaW5jbHVkZS9hc20teDg2L21z ci5oICB8ICA1ICsrKystCiA1IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gv eDg2L2RvbWN0bC5jCmluZGV4IDcyYjQ0ODkuLjgxZmJlYWEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTUzLDYgKzUzLDcg QEAgc3RhdGljIGludCB1cGRhdGVfZG9tYWluX2NwdWlkX2luZm8oc3RydWN0IGRvbWFpbiAqZCwK ICAgICBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpwID0gZC0+YXJjaC5jcHVpZDsKICAgICBjb25zdCBz dHJ1Y3QgY3B1aWRfbGVhZiBsZWFmID0geyBjdGwtPmVheCwgY3RsLT5lYngsIGN0bC0+ZWN4LCBj dGwtPmVkeCB9OwogICAgIGludCBvbGRfdmVuZG9yID0gcC0+eDg2X3ZlbmRvcjsKKyAgICB1bnNp Z25lZCBpbnQgb2xkXzdkMCA9IHAtPmZlYXQucmF3WzBdLmQsIG9sZF9lOGIgPSBwLT5leHRkLnJh d1s4XS5iOwogICAgIGJvb2wgY2FsbF9wb2xpY3lfY2hhbmdlZCA9IGZhbHNlOyAvKiBBdm9pZCBm b3JfZWFjaF92Y3B1KCkgdW5uZWNlc3NhcmlseSAqLwogCiAgICAgLyoKQEAgLTIxOCw2ICsyMTks MTQgQEAgc3RhdGljIGludCB1cGRhdGVfZG9tYWluX2NwdWlkX2luZm8oc3RydWN0IGRvbWFpbiAq ZCwKIAogICAgICAgICAgICAgZC0+YXJjaC5wdl9kb21haW4uY3B1aWRtYXNrcy0+XzdhYjAgPSBt YXNrOwogICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgdGhlIElCU1JCL1NU SUJQIHBvbGljeSBoYXMgY2hhbmdlZCwgd2UgbmVlZCB0byByZWNhbGN1bGF0ZSB0aGUKKyAgICAg ICAgICogTVNSIGludGVyY2VwdGlvbiBiaXRtYXBzIGFuZCBTVElCUCBwcm90ZWN0aW9uIGRlZmF1 bHQuCisgICAgICAgICAqLworICAgICAgICBjYWxsX3BvbGljeV9jaGFuZ2VkID0gKChvbGRfN2Qw IF4gcC0+ZmVhdC5yYXdbMF0uZCkgJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj cHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfSUJSU0IpIHwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NUSUJQKSkpOwogICAgICAgICBicmVh azsKIAogICAgIGNhc2UgMHhhOgpAQCAtMjkyLDYgKzMwMSwxNiBAQCBzdGF0aWMgaW50IHVwZGF0 ZV9kb21haW5fY3B1aWRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgZC0+YXJj aC5wdl9kb21haW4uY3B1aWRtYXNrcy0+ZTFjZCA9IG1hc2s7CiAgICAgICAgIH0KICAgICAgICAg YnJlYWs7CisKKyAgICBjYXNlIDB4ODAwMDAwMDg6CisgICAgICAgIC8qCisgICAgICAgICAqIElm IHRoZSBJQlJCIHBvbGljeSBoYXMgY2hhbmdlZCwgd2UgbmVlZCB0byByZWNhbGN1bGF0ZSB0aGUg TVNSCisgICAgICAgICAqIGludGVyY2VwdGlvbiBiaXRtYXBzLgorICAgICAgICAgKi8KKyAgICAg ICAgY2FsbF9wb2xpY3lfY2hhbmdlZCA9IChpc19odm1fZG9tYWluKGQpICYmCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKChvbGRfZThiIF4gcC0+ZXh0ZC5yYXdbOF0uYikgJgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lC UEIpKSkpOworICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBpZiAoIGNhbGxfcG9saWN5X2No YW5nZWQgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMgYi94ZW4vYXJj aC94ODYvaHZtL3N2bS9zdm0uYwppbmRleCBjNDhmZGZhLi5lZTQ3NTA4IDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS9zdm0u YwpAQCAtNjE3LDYgKzYxNyw3IEBAIHN0YXRpYyB2b2lkIHN2bV9jcHVpZF9wb2xpY3lfY2hhbmdl ZChzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBzdHJ1Y3QgYXJjaF9zdm1fc3RydWN0ICphcmNoX3N2 bSA9ICZ2LT5hcmNoLmh2bV9zdm07CiAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiID0gYXJj aF9zdm0tPnZtY2I7CisgICAgY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqY3AgPSB2LT5kb21h aW4tPmFyY2guY3B1aWQ7CiAgICAgdTMyIGJpdG1hcCA9IHZtY2JfZ2V0X2V4Y2VwdGlvbl9pbnRl cmNlcHRzKHZtY2IpOwogCiAgICAgaWYgKCBvcHRfaHZtX2ZlcCB8fApAQCAtNjI2LDYgKzYyNywx MCBAQCBzdGF0aWMgdm9pZCBzdm1fY3B1aWRfcG9saWN5X2NoYW5nZWQoc3RydWN0IHZjcHUgKnYp CiAgICAgICAgIGJpdG1hcCAmPSB+KDFVIDw8IFRSQVBfaW52YWxpZF9vcCk7CiAKICAgICB2bWNi X3NldF9leGNlcHRpb25faW50ZXJjZXB0cyh2bWNiLCBiaXRtYXApOworCisgICAgLyogR2l2ZSBh Y2Nlc3MgdG8gTVNSX1BSRURfQ01EIGlmIHRoZSBndWVzdCBoYXMgYmVlbiB0b2xkIGFib3V0IGl0 LiAqLworICAgIHN2bV9pbnRlcmNlcHRfbXNyKHYsIE1TUl9QUkVEX0NNRCwKKyAgICAgICAgICAg ICAgICAgICAgICBjcC0+ZXh0ZC5pYnBiID8gTVNSX0lOVEVSQ0VQVF9OT05FIDogTVNSX0lOVEVS Q0VQVF9SVyk7CiB9CiAKIHN0YXRpYyB2b2lkIHN2bV9zeW5jX3ZtY2Ioc3RydWN0IHZjcHUgKnYp CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyBiL3hlbi9hcmNoL3g4Ni9o dm0vdm14L3ZteC5jCmluZGV4IGUwMzYzMDMuLjg2MDlkZTMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vdm14L3ZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCkBAIC02 NTYsNiArNjU2LDggQEAgdm9pZCB2bXhfdXBkYXRlX2V4Y2VwdGlvbl9iaXRtYXAoc3RydWN0IHZj cHUgKnYpCiAKIHN0YXRpYyB2b2lkIHZteF9jcHVpZF9wb2xpY3lfY2hhbmdlZChzdHJ1Y3QgdmNw dSAqdikKIHsKKyAgICBjb25zdCBzdHJ1Y3QgY3B1aWRfcG9saWN5ICpjcCA9IHYtPmRvbWFpbi0+ YXJjaC5jcHVpZDsKKwogICAgIGlmICggb3B0X2h2bV9mZXAgfHwKICAgICAgICAgICh2LT5kb21h aW4tPmFyY2guY3B1aWQtPng4Nl92ZW5kb3IgIT0gYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yKSAp CiAgICAgICAgIHYtPmFyY2guaHZtX3ZteC5leGNlcHRpb25fYml0bWFwIHw9ICgxVSA8PCBUUkFQ X2ludmFsaWRfb3ApOwpAQCAtNjY1LDYgKzY2NywyMiBAQCBzdGF0aWMgdm9pZCB2bXhfY3B1aWRf cG9saWN5X2NoYW5nZWQoc3RydWN0IHZjcHUgKnYpCiAgICAgdm14X3ZtY3NfZW50ZXIodik7CiAg ICAgdm14X3VwZGF0ZV9leGNlcHRpb25fYml0bWFwKHYpOwogICAgIHZteF92bWNzX2V4aXQodik7 CisKKyAgICAvKgorICAgICAqIFdlIGNhbiBvbmx5IHBhc3MgdGhvdWdoIE1TUl9TUEVDX0NUUkwg aWYgdGhlIGd1ZXN0IGtub3dzIGFib3V0IGFsbCBiaXRzCisgICAgICogaW4gaXQuICBPdGhlcndp c2UsIFhlbiBtYXkgYmUgZml4aW5nIHVwIGluIHRoZSBiYWNrZ3JvdW5kLgorICAgICAqLworICAg IHYtPmFyY2gubXNyLT5zcGVjX2N0cmwuZGlyZWN0X2FjY2VzcyA9IGNwLT5mZWF0LmlicnNiICYm IGNwLT5mZWF0LnN0aWJwOworICAgIGlmICggdi0+YXJjaC5tc3ItPnNwZWNfY3RybC5kaXJlY3Rf YWNjZXNzICkKKyAgICAgICAgdm14X2NsZWFyX21zcl9pbnRlcmNlcHQodiwgTVNSX1NQRUNfQ1RS TCwgVk1YX01TUl9SVyk7CisgICAgZWxzZQorICAgICAgICB2bXhfc2V0X21zcl9pbnRlcmNlcHQo diwgTVNSX1NQRUNfQ1RSTCwgVk1YX01TUl9SVyk7CisKKyAgICAvKiBNU1JfUFJFRF9DTUQgaXMg c2FmZSB0byBwYXNzIHRocm91Z2ggaWYgdGhlIGd1ZXN0IGtub3dzIGFib3V0IGl0LiAqLworICAg IGlmICggY3AtPmZlYXQuaWJyc2IgfHwgY3AtPmV4dGQuaWJwYiApCisgICAgICAgIHZteF9jbGVh cl9tc3JfaW50ZXJjZXB0KHYsIE1TUl9QUkVEX0NNRCwgIFZNWF9NU1JfUlcpOworICAgIGVsc2UK KyAgICAgICAgdm14X3NldF9tc3JfaW50ZXJjZXB0KHYsIE1TUl9QUkVEX0NNRCwgIFZNWF9NU1Jf UlcpOwogfQogCiBpbnQgdm14X2d1ZXN0X3g4Nl9tb2RlKHN0cnVjdCB2Y3B1ICp2KQpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L21zci5jIGIveGVuL2FyY2gveDg2L21zci5jCmluZGV4IDAyYTdi NDkuLjY5N2NjNmUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tc3IuYworKysgYi94ZW4vYXJj aC94ODYvbXNyLmMKQEAgLTEzMiw3ICsxMzIsOCBAQCBpbnQgZ3Vlc3RfcmRtc3IoY29uc3Qgc3Ry dWN0IHZjcHUgKnYsIHVpbnQzMl90IG1zciwgdWludDY0X3QgKnZhbCkKICAgICBjYXNlIE1TUl9T UEVDX0NUUkw6CiAgICAgICAgIGlmICggIWNwLT5mZWF0LmlicnNiICkKICAgICAgICAgICAgIGdv dG8gZ3BfZmF1bHQ7Ci0gICAgICAgICp2YWwgPSB2cC0+c3BlY19jdHJsLmd1ZXN0OworICAgICAg ICAqdmFsID0gKHZwLT5zcGVjX2N0cmwuZGlyZWN0X2FjY2VzcworICAgICAgICAgICAgICAgID8g dnAtPnNwZWNfY3RybC5ob3N0IDogdnAtPnNwZWNfY3RybC5ndWVzdCk7CiAgICAgICAgIGJyZWFr OwogCiAgICAgY2FzZSBNU1JfSU5URUxfUExBVEZPUk1fSU5GTzoKZGlmZiAtLWdpdCBhL3hlbi9p bmNsdWRlL2FzbS14ODYvbXNyLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21zci5oCmluZGV4IDNk MDAxMmQuLjAwN2U5NjYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLmgKKysr IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3IuaApAQCAtMjI5LDEwICsyMjksMTMgQEAgc3RydWN0 IG1zcl92Y3B1X3BvbGljeQogICAgICAgICAgKiBPbmx5IHRoZSBib3R0b20gdHdvIGJpdHMgYXJl IGRlZmluZWQsIHNvIG5vIG5lZWQgdG8gd2FzdGUgc3BhY2UKICAgICAgICAgICogd2l0aCB1aW50 NjRfdCBhdCB0aGUgbW9tZW50LiAgV2UgbWFpbnRhaW4gdGhlIGd1ZXN0cyBpZGVhIG9mIHRoZQog ICAgICAgICAgKiB2YWx1ZSBpdCB3cm90ZSwgYW5kIGEgdmFsdWUgdG8gaW5zdGFsbCBpbnRvIGhh cmR3YXJlIChleHRlbmRlZCB0bwotICAgICAgICAgKiB1aW50MzJfdCB0byBzaW1wbGlmeSB0aGUg YXNtKSB3aGljaCBtaWdodCBiZSBkaWZmZXJlbnQuCisgICAgICAgICAqIHVpbnQzMl90IHRvIHNp bXBsaWZ5IHRoZSBhc20pIHdoaWNoIG1pZ2h0IGJlIGRpZmZlcmVudC4gIEhWTSBndWVzdHMKKyAg ICAgICAgICogbWlnaHQgYmUgZ2l2ZW4gZGlyZWN0IGFjY2VzcyB0byB0aGUgTVNScywgYXQgd2hp Y2ggcG9pbnQgdGhlCisgICAgICAgICAqICdndWVzdCcgdmFsdWUgYmVjb21lcyBzdGFsZS4KICAg ICAgICAgICovCiAgICAgICAgIHVpbnQzMl90IGhvc3Q7CiAgICAgICAgIHVpbnQ4X3QgZ3Vlc3Q7 CisgICAgICAgIGJvb2wgZGlyZWN0X2FjY2VzczsKICAgICB9IHNwZWNfY3RybDsKIAogICAgIC8q IDB4MDAwMDAxNDAgIE1TUl9JTlRFTF9NSVNDX0ZFQVRVUkVTX0VOQUJMRVMgKi8KLS0gCjIuMS40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9s aXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==