From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH for-4.8] x86/svm: Don't clobber eax and edx if an RDMSR intercept fails Date: Wed, 9 Nov 2016 12:28:27 +0000 Message-ID: <1478694507-26060-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: 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 , Boris Ostrovsky , Wei Liu , Suravee Suthikulpanit , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhlIG9yaWdpbmFsIGNvZGUgaGFzIGEgYnVnOyBlYXggYW5kIGVkeCBnZXQgdW5jb25kaXRpb25h bGx5IHVwZGF0ZWQgZXZlbiB3aGVuCmh2bV9tc3JfcmVhZF9pbnRlcmNlcHQoKSBkb2Vzbid0IHJl dHVybiBYODZFTVVMX09LQVkuCgpJdCBpcyBvbmx5IGJ5IGJsaW5kIGx1Y2sgKHZtY2VfcmRtc3Io KSBlYWdlcmx5IGluaXRpYWxpc2luZyBpdHMgbXNyX2NvbnRlbnQKcG9pbnRlcikgdGhhdCB0aGlz IGlzbid0IGFuIGluZm9ybWF0aW9uIGxlYWsgaW50byBndWVzdHMuCgpXaGlsZSBmaXhpbmcgdGhp cyBidWcsIHJlZHVjZSB0aGUgc2NvcGUgb2YgbXNyX2NvbnRlbnQgYW5kIGluaXRpYWxpc2UgaXQg dG8gMC4KVGhpcyBtYWtlcyBpdCBvYnZpb3VzIHRoYXQgYSBzdGFjayBsZWFrIHdvbid0IG9jY3Vy LCBldmVuIGlmIHRoZXJlIHdlcmUgdG8gYmUKYSBidWdneSBjb2RlcGF0aCBpbiBodm1fbXNyX3Jl YWRfaW50ZXJjZXB0KCkuCgpBbHNvIG1ha2Ugc29tZSBub24tZnVuY3Rpb25hbCBpbXByb3ZlbWVu dHMuICBNYWtlIHRoZSBpbnNuX2xlbiBjYWxjdWxhdGlvbgpjb21tb24sIGFuZCByZWR1Y2UgdGhl IHF1YW50aXR5IG9mIGV4cGxpY2l0IGNhc3RpbmcgYnkgbWFraW5nIGJldHRlciB1c2Ugb2YKdGhl IGV4aXN0aW5nIHJlZ2lzdGVyIG5hbWVzLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hA c3VzZS5jb20+CkNDOiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29t PgpDQzogU3VyYXZlZSBTdXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNv bT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2h2 bS9zdm0vc3ZtLmMgfCAzMiArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE3IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMK aW5kZXggMTY0MjdmNi4uNjUzMGUyMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0v c3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKQEAgLTE5NDgsMjYgKzE5NDgs MjggQEAgc3RhdGljIGludCBzdm1fbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNy LCB1aW50NjRfdCBtc3JfY29udGVudCkKIAogc3RhdGljIHZvaWQgc3ZtX2RvX21zcl9hY2Nlc3Mo c3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCiB7Ci0gICAgaW50IHJjLCBpbnN0X2xlbjsKICAg ICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7Ci0gICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNi ID0gdi0+YXJjaC5odm1fc3ZtLnZtY2I7Ci0gICAgdWludDY0X3QgbXNyX2NvbnRlbnQ7CisgICAg Ym9vbCByZG1zciA9IHYtPmFyY2guaHZtX3N2bS52bWNiLT5leGl0aW5mbzEgPT0gMDsKKyAgICBp bnQgcmMsIGluc3RfbGVuID0gX19nZXRfaW5zdHJ1Y3Rpb25fbGVuZ3RoKAorICAgICAgICB2LCBy ZG1zciA/IElOU1RSX1JETVNSIDogSU5TVFJfV1JNU1IpOworCisgICAgaWYgKCBpbnN0X2xlbiA9 PSAwICkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCB2bWNiLT5leGl0aW5mbzEgPT0gMCAp CisgICAgaWYgKCByZG1zciApCiAgICAgewotICAgICAgICBpZiAoIChpbnN0X2xlbiA9IF9fZ2V0 X2luc3RydWN0aW9uX2xlbmd0aCh2LCBJTlNUUl9SRE1TUikpID09IDAgKQotICAgICAgICAgICAg cmV0dXJuOwotICAgICAgICByYyA9IGh2bV9tc3JfcmVhZF9pbnRlcmNlcHQocmVncy0+ZWN4LCAm bXNyX2NvbnRlbnQpOwotICAgICAgICByZWdzLT5lYXggPSAodWludDMyX3QpbXNyX2NvbnRlbnQ7 Ci0gICAgICAgIHJlZ3MtPmVkeCA9ICh1aW50MzJfdCkobXNyX2NvbnRlbnQgPj4gMzIpOworICAg ICAgICB1aW50NjRfdCBtc3JfY29udGVudCA9IDA7CisKKyAgICAgICAgcmMgPSBodm1fbXNyX3Jl YWRfaW50ZXJjZXB0KHJlZ3MtPl9lY3gsICZtc3JfY29udGVudCk7CisgICAgICAgIGlmICggcmMg PT0gWDg2RU1VTF9PS0FZICkKKyAgICAgICAgeworICAgICAgICAgICAgcmVncy0+cmF4ID0gKHVp bnQzMl90KW1zcl9jb250ZW50OworICAgICAgICAgICAgcmVncy0+cmR4ID0gKHVpbnQzMl90KSht c3JfY29udGVudCA+PiAzMik7CisgICAgICAgIH0KICAgICB9CiAgICAgZWxzZQotICAgIHsKLSAg ICAgICAgaWYgKCAoaW5zdF9sZW4gPSBfX2dldF9pbnN0cnVjdGlvbl9sZW5ndGgodiwgSU5TVFJf V1JNU1IpKSA9PSAwICkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbXNyX2NvbnRlbnQg PSAoKHVpbnQ2NF90KXJlZ3MtPmVkeCA8PCAzMikgfCAodWludDMyX3QpcmVncy0+ZWF4OwotICAg ICAgICByYyA9IGh2bV9tc3Jfd3JpdGVfaW50ZXJjZXB0KHJlZ3MtPmVjeCwgbXNyX2NvbnRlbnQs IDEpOwotICAgIH0KKyAgICAgICAgcmMgPSBodm1fbXNyX3dyaXRlX2ludGVyY2VwdChyZWdzLT5f ZWN4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWdzLT5yZHggPDwg MzIpIHwgcmVncy0+X2VheCwgMSk7CiAKICAgICBpZiAoIHJjID09IFg4NkVNVUxfT0tBWSApCiAg ICAgICAgIF9fdXBkYXRlX2d1ZXN0X2VpcChyZWdzLCBpbnN0X2xlbik7Ci0tIAoyLjEuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=