From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 4/6] x86/vvmx: Switch nested MSR intercept handling to use struct vmx_msr_bitmap Date: Wed, 19 Jul 2017 12:57:55 +0100 Message-ID: <1500465477-23793-5-git-send-email-andrew.cooper3@citrix.com> References: <1500465477-23793-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: <1500465477-23793-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 , Kevin Tian , Jun Nakajima , Jan Beulich List-Id: xen-devel@lists.xenproject.org UmVuYW1lIHZteF9jaGVja19tc3JfYml0bWFwKCkgdG8gdm14X21zcl9pc19pbnRlcmNlcHRlZCgp IGluIG9yZGVyIHRvIG1vcmUKY2xlYXJseSBpZGVudGlmeSB3aGF0IHRoZSBib29sZWFuIHJldHVy biB2YWx1ZSBtZWFucy4gIENoYW5nZSB0aGUgaW50CmFjY2Vzc190eXBlIHRvIGJvb2wgaXNfd3Jp dGUuCgpUaGUgTlVMTCBwb2ludGVyIGNoZWNrIGlzIG1vdmVkIG91dCwgYXMgaXQgZG9lc24ndCBw ZXJ0YWluIHRvIHdoZXRoZXIgdGhlIE1TUgppcyBpbnRlcmNlcHRlZCBvciBub3QuICBUaGUgY2hl Y2sgaXMgbW92ZWQgaW50byBudm14X24yX3ZtZXhpdF9oYW5kbGVyKCksCndoZXJlIGl0IGJlY29t ZXMgYSBoYXJkIGVycm9yIGluIHRoZSBjYXNlIHRoYXQgQUNUSVZBVEVfTVNSX0JJVE1BUCBpcyBz ZXQuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IEp1biBOYWth amltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyAgICAgICAgfCAzMSAr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14 LmMgICAgICAgIHwgMjMgKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL3ZteC92bWNzLmggfCAgMyArKy0KIDMgZmlsZXMgY2hhbmdlZCwgMjMgaW5zZXJ0aW9u cygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgv dm1jcy5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jCmluZGV4IDBlMWExNDIuLmYxNDI3 ZjggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYworKysgYi94ZW4vYXJj aC94ODYvaHZtL3ZteC92bWNzLmMKQEAgLTg2MiwzMSArODYyLDE4IEBAIHZvaWQgdm14X3NldF9t c3JfaW50ZXJjZXB0KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgbXNyLAogICAgICAgICBB U1NFUlQoISJNU1Igb3V0IG9mIHJhbmdlIGZvciBpbnRlcmNlcHRpb25cbiIpOwogfQogCi0vKgot ICogYWNjZXNzX3R5cGU6IHJlYWQgPT0gMCwgd3JpdGUgPT0gMQotICovCi1pbnQgdm14X2NoZWNr X21zcl9iaXRtYXAodW5zaWduZWQgbG9uZyAqbXNyX2JpdG1hcCwgdTMyIG1zciwgaW50IGFjY2Vz c190eXBlKQorYm9vbCB2bXhfbXNyX2lzX2ludGVyY2VwdGVkKHN0cnVjdCB2bXhfbXNyX2JpdG1h cCAqbXNyX2JpdG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg bXNyLCBib29sIGlzX3dyaXRlKQogewotICAgIGludCByZXQgPSAxOwotICAgIGlmICggIW1zcl9i aXRtYXAgKQotICAgICAgICByZXR1cm4gMTsKLQogICAgIGlmICggbXNyIDw9IDB4MWZmZiApCi0g ICAgewotICAgICAgICBpZiAoIGFjY2Vzc190eXBlID09IDAgKQotICAgICAgICAgICAgcmV0ID0g dGVzdF9iaXQobXNyLCBtc3JfYml0bWFwICsgMHgwMDAvQllURVNfUEVSX0xPTkcpOyAvKiByZWFk LWxvdyAqLwotICAgICAgICBlbHNlIGlmICggYWNjZXNzX3R5cGUgPT0gMSApCi0gICAgICAgICAg ICByZXQgPSB0ZXN0X2JpdChtc3IsIG1zcl9iaXRtYXAgKyAweDgwMC9CWVRFU19QRVJfTE9ORyk7 IC8qIHdyaXRlLWxvdyAqLwotICAgIH0KKyAgICAgICAgcmV0dXJuIHRlc3RfYml0KG1zciwgaXNf d3JpdGUgPyBtc3JfYml0bWFwLT53cml0ZV9sb3cKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBtc3JfYml0bWFwLT5yZWFkX2xvdyk7CiAgICAgZWxzZSBpZiAoIChtc3Ig Pj0gMHhjMDAwMDAwMCkgJiYgKG1zciA8PSAweGMwMDAxZmZmKSApCi0gICAgewotICAgICAgICBt c3IgJj0gMHgxZmZmOwotICAgICAgICBpZiAoIGFjY2Vzc190eXBlID09IDAgKQotICAgICAgICAg ICAgcmV0ID0gdGVzdF9iaXQobXNyLCBtc3JfYml0bWFwICsgMHg0MDAvQllURVNfUEVSX0xPTkcp OyAvKiByZWFkLWhpZ2ggKi8KLSAgICAgICAgZWxzZSBpZiAoIGFjY2Vzc190eXBlID09IDEgKQot ICAgICAgICAgICAgcmV0ID0gdGVzdF9iaXQobXNyLCBtc3JfYml0bWFwICsgMHhjMDAvQllURVNf UEVSX0xPTkcpOyAvKiB3cml0ZS1oaWdoICovCi0gICAgfQotICAgIHJldHVybiByZXQ7CisgICAg ICAgIHJldHVybiB0ZXN0X2JpdChtc3IgJiAweDFmZmYsIGlzX3dyaXRlID8gbXNyX2JpdG1hcC0+ d3JpdGVfaGlnaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IG1zcl9iaXRtYXAtPnJlYWRfaGlnaCk7CisgICAgZWxzZQorICAgICAgICAvKiBNU1JzIG91 dHNpZGUgdGhlIGJpdG1hcCByYW5nZXMgYXJlIGFsd2F5cyBpbnRlcmNlcHRlZC4gKi8KKyAgICAg ICAgcmV0dXJuIHRydWU7CiB9CiAKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgv dnZteC5jIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jCmluZGV4IDJjOGNmNjMuLjBkMDg3 ODkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYworKysgYi94ZW4vYXJj aC94ODYvaHZtL3ZteC92dm14LmMKQEAgLTIyODQsMjIgKzIyODQsMjMgQEAgaW50IG52bXhfbjJf dm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgICAgIC8qIGlu amVjdCB0byBMMSAqLwogICAgICAgICBudmNwdS0+bnZfdm1leGl0X3BlbmRpbmcgPSAxOwogICAg ICAgICBicmVhazsKKwogICAgIGNhc2UgRVhJVF9SRUFTT05fTVNSX1JFQUQ6CiAgICAgY2FzZSBF WElUX1JFQVNPTl9NU1JfV1JJVEU6Ci0gICAgewotICAgICAgICBpbnQgc3RhdHVzOwogICAgICAg ICBjdHJsID0gX19uMl9leGVjX2NvbnRyb2wodik7Ci0gICAgICAgIGlmICggY3RybCAmIENQVV9C QVNFRF9BQ1RJVkFURV9NU1JfQklUTUFQICkKLSAgICAgICAgewotICAgICAgICAgICAgc3RhdHVz ID0gdm14X2NoZWNrX21zcl9iaXRtYXAobnZteC0+bXNyYml0bWFwLCByZWdzLT5lY3gsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgISEoZXhpdF9yZWFzb24gPT0gRVhJVF9SRUFTT05fTVNSX1dS SVRFKSk7Ci0gICAgICAgICAgICBpZiAoIHN0YXR1cyApCi0gICAgICAgICAgICAgICAgbnZjcHUt Pm52X3ZtZXhpdF9wZW5kaW5nID0gMTsKLSAgICAgICAgfQotICAgICAgICBlbHNlCisKKyAgICAg ICAgLyogV2l0aG91dCBBQ1RJVkFURV9NU1JfQklUTUFQLCBhbGwgTVNScyBhcmUgaW50ZXJjZXB0 ZWQuICovCisgICAgICAgIGlmICggIShjdHJsICYgQ1BVX0JBU0VEX0FDVElWQVRFX01TUl9CSVRN QVApICkKICAgICAgICAgICAgIG52Y3B1LT5udl92bWV4aXRfcGVuZGluZyA9IDE7CisgICAgICAg IGVsc2UgaWYgKCAhbnZteC0+bXNyYml0bWFwICkKKyAgICAgICAgICAgIC8qIEFDVElWQVRFX01T Ul9CSVRNQVAgc2V0LCBidXQgTDIgYml0bWFwIG5vdCBtYXBwZWQ/Pz8gKi8KKyAgICAgICAgICAg IGRvbWFpbl9jcmFzaCh2LT5kb21haW4pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBudmNw dS0+bnZfdm1leGl0X3BlbmRpbmcgPQorICAgICAgICAgICAgICAgIHZteF9tc3JfaXNfaW50ZXJj ZXB0ZWQobnZteC0+bXNyYml0bWFwLCByZWdzLT5lY3gsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBleGl0X3JlYXNvbiA9PSBFWElUX1JFQVNPTl9NU1JfV1JJVEUpOwog ICAgICAgICBicmVhazsKLSAgICB9CisKICAgICBjYXNlIEVYSVRfUkVBU09OX0lPX0lOU1RSVUNU SU9OOgogICAgICAgICBjdHJsID0gX19uMl9leGVjX2NvbnRyb2wodik7CiAgICAgICAgIGlmICgg Y3RybCAmIENQVV9CQVNFRF9BQ1RJVkFURV9JT19CSVRNQVAgKQpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vdm14L3ZtY3MuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3Zt eC92bWNzLmgKaW5kZXggOTI2ZTc5Mi4uMzJhNjczMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vdm14L3ZtY3MuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92bXgv dm1jcy5oCkBAIC01NDMsNyArNTQzLDggQEAgaW50IHZteF9hZGRfbXNyKHUzMiBtc3IsIGludCB0 eXBlKTsKIHZvaWQgdm14X3ZtY3Nfc3dpdGNoKHBhZGRyX3QgZnJvbSwgcGFkZHJfdCB0byk7CiB2 b2lkIHZteF9zZXRfZW9pX2V4aXRfYml0bWFwKHN0cnVjdCB2Y3B1ICp2LCB1OCB2ZWN0b3IpOwog dm9pZCB2bXhfY2xlYXJfZW9pX2V4aXRfYml0bWFwKHN0cnVjdCB2Y3B1ICp2LCB1OCB2ZWN0b3Ip OwotaW50IHZteF9jaGVja19tc3JfYml0bWFwKHVuc2lnbmVkIGxvbmcgKm1zcl9iaXRtYXAsIHUz MiBtc3IsIGludCBhY2Nlc3NfdHlwZSk7Citib29sIHZteF9tc3JfaXNfaW50ZXJjZXB0ZWQoc3Ry dWN0IHZteF9tc3JfYml0bWFwICptc3JfYml0bWFwLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBtc3IsIGJvb2wgaXNfd3JpdGUpIF9fbm9ubnVsbCgxKTsKIHZvaWQg dmlydHVhbF92bWNzX2VudGVyKGNvbnN0IHN0cnVjdCB2Y3B1ICopOwogdm9pZCB2aXJ0dWFsX3Zt Y3NfZXhpdChjb25zdCBzdHJ1Y3QgdmNwdSAqKTsKIHU2NCB2aXJ0dWFsX3ZtY3Nfdm1yZWFkKGNv bnN0IHN0cnVjdCB2Y3B1ICosIHUzMiBlbmNvZGluZyk7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZl bAo=