From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH] x86/svm: Fixes to OS Visible Workaround handling Date: Wed, 15 Aug 2018 18:07:49 +0100 Message-ID: <1534352869-27401-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.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Boris Ostrovsky , Brian Woods , Jan Beulich , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org T1NWVyBkYXRhIGlzIHRlY2huaWNhbGx5IHBlci1jcHUsIGJ1dCBpdCBpcyB0aGUgZmlybXdhcmVz IHJlcG9uc2liaWxpdHkgdG8KbWFrZSBpdCBlcXVpdmVsZW50IG9uIGVhY2ggY3B1LiAgQSBndWVz dHMgT1NWVyBkYXRhIGlzIHNvdXJjZXMgZnJvbSBnbG9iYWwKZGF0YSBpbiBYZW4sIGNsZWFybHkg bWFraW5nIGl0IHBlci1kb21haW4gZGF0YSByYXRoZXIgdGhhbiBwZXItdmNwdSBkYXRhLgoKTW92 ZSB0aGUgZGF0YSBmcm9tIHN0cnVjdCBhcmNoX3N2bV9zdHJ1Y3QgdG8gc3RydWN0IHN2bV9kb21h aW4sIGFuZCBjYWxsCnN2bV9ndWVzdF9vc3Z3X2luaXQoKSBmcm9tIHN2bV9kb21haW5faW5pdGlh bGlzZSgpIGluc3RlYWQgb2YKc3ZtX3ZjcHVfaW5pdGlhbGlzZSgpLgoKSW4gc3ZtX2d1ZXN0X29z dndfaW5pdCgpLCByZWFkaW5nIG9zdndfbGVuZ3RoIGFuZCBvc3Z3X3N0YXR1cyBtdXN0IGJlIGRv bmUKdW5kZXIgdGhlIG9zdndfbG9jayB0byBhdm9pZCBvYnNlcnZpbmcgbWlzbWF0Y2hlZCB2YWx1 ZXMuICBUaGUgZ3Vlc3RzIHZpZXcgb2YKb3N2d19sZW5ndGggYWxzbyBuZWVkcyBjbGlwcGluZyBh dCA2NCBhcyB3ZSBvbmx5IG9mZmVyIG9uZSBzdGF0dXMgcmVnaXN0ZXIgKFRvCmRhdGUsIDUgaXMg dGhlIG1heGltdW0gaW5kZXggZGVmaW5lZCBBRkFJQ1QpLiAgQXZvaWQgb3BlbmNvZGluZyBtYXgo KS4KCkRyb3Agc3ZtX2hhbmRsZV9vc3Z3KCkgYXMgaXRzIHNob3J0ZXIgYW5kIHNpbXBsZXIgdG8g aW1wbGVtZW50IHRoZQpmdW5jdGlvbmFsaXR5IGlubGluZSBpbiBzdm1fbXNyX3tyZWFkLHdyaXRl fV9pbnRlcmNlcHQoKS4gIEFzIHRoZSBPU1ZXIE1TUnMKYXJlIGEgY29udGlndW91cyBibG9jaywg d2UgY2FuIGFjY2VzcyB0aGVtIGFzIGFuIGFycmF5IGZvciBzaW1wbGljaXR5LgoKU2lnbmVkLW9m Zi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBC b3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgpDQzogU3VyYXZlZSBT dXRoaWt1bHBhbml0IDxzdXJhdmVlLnN1dGhpa3VscGFuaXRAYW1kLmNvbT4KQ0M6IEJyaWFuIFdv b2RzIDxicmlhbi53b29kc0BhbWQuY29tPgpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2Uu Y29tPgotLS0KIHhlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jICAgICAgICAgfCA0NyArKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0v c3ZtL3ZtY2IuaCB8IDE0ICsrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRp b25zKCspLCAzNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3N2 bS9zdm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCmluZGV4IDM3Zjc4MmIuLmExNmYz NzIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9odm0vc3ZtL3N2bS5jCkBAIC0xMTk1LDE3ICsxMTk1LDE4IEBAIHZvaWQgc3ZtX3ZtZW50 ZXJfaGVscGVyKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogICAgIHZtY2ItPnJm bGFncyA9IHJlZ3MtPnJmbGFncyB8IFg4Nl9FRkxBR1NfTUJTOwogfQogCi1zdGF0aWMgdm9pZCBz dm1fZ3Vlc3Rfb3N2d19pbml0KHN0cnVjdCB2Y3B1ICp2Y3B1KQorc3RhdGljIHZvaWQgc3ZtX2d1 ZXN0X29zdndfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQogewotICAgIGlmICggYm9vdF9jcHVfZGF0 YS54ODZfdmVuZG9yICE9IFg4Nl9WRU5ET1JfQU1EICkKLSAgICAgICAgcmV0dXJuOworICAgIHN0 cnVjdCBzdm1fZG9tYWluICpzdm0gPSAmZC0+YXJjaC5odm1fZG9tYWluLnN2bTsKKworICAgIHNw aW5fbG9jaygmb3N2d19sb2NrKTsKIAogICAgIC8qCiAgICAgICogR3Vlc3RzIHNob3VsZCBzZWUg ZXJyYXRhIDQwMCBhbmQgNDE1IGFzIGZpeGVkIChhc3N1bWluZyB0aGF0CiAgICAgICogSExUIGFu ZCBJTyBpbnN0cnVjdGlvbnMgYXJlIGludGVyY2VwdGVkKS4KICAgICAgKi8KLSAgICB2Y3B1LT5h cmNoLmh2bV9zdm0ub3N2dy5sZW5ndGggPSAob3N2d19sZW5ndGggPj0gMykgPyBvc3Z3X2xlbmd0 aCA6IDM7Ci0gICAgdmNwdS0+YXJjaC5odm1fc3ZtLm9zdncuc3RhdHVzID0gb3N2d19zdGF0dXMg JiB+KDZVTEwpOworICAgIHN2bS0+b3N2dy5sZW5ndGggPSBtaW4obWF4KDN1bCwgb3N2d19sZW5n dGgpLCA2NHVsKTsKKyAgICBzdm0tPm9zdncuc3RhdHVzID0gb3N2d19zdGF0dXMgJiB+NjsKIAog ICAgIC8qCiAgICAgICogQnkgaW5jcmVhc2luZyBWQ1BVJ3Mgb3N2dy5sZW5ndGggdG8gMyB3ZSBh cmUgdGVsbGluZyB0aGUgZ3Vlc3QgdGhhdApAQCAtMTIxNiw3ICsxMjE3LDkgQEAgc3RhdGljIHZv aWQgc3ZtX2d1ZXN0X29zdndfaW5pdChzdHJ1Y3QgdmNwdSAqdmNwdSkKICAgICAgKiBpcyBwcmVz ZW50IChiZWNhdXNlIHdlIHJlYWxseSBkb24ndCBrbm93KS4KICAgICAgKi8KICAgICBpZiAoIG9z dndfbGVuZ3RoID09IDAgJiYgYm9vdF9jcHVfZGF0YS54ODYgPT0gMHgxMCApCi0gICAgICAgIHZj cHUtPmFyY2guaHZtX3N2bS5vc3Z3LnN0YXR1cyB8PSAxOworICAgICAgICBzdm0tPm9zdncuc3Rh dHVzIHw9IDE7CisKKyAgICBzcGluX3VubG9jaygmb3N2d19sb2NrKTsKIH0KIAogdm9pZCBzdm1f aG9zdF9vc3Z3X3Jlc2V0KCkKQEAgLTEyNjgsNiArMTI3MSw4IEBAIHN0YXRpYyBpbnQgc3ZtX2Rv bWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBkLT5hcmNoLmN0eHRfc3dp dGNoID0gJmNzdzsKIAorICAgIHN2bV9ndWVzdF9vc3Z3X2luaXQoZCk7CisKICAgICByZXR1cm4g MDsKIH0KIApAQCAtMTI4OSw4ICsxMjk0LDYgQEAgc3RhdGljIGludCBzdm1fdmNwdV9pbml0aWFs aXNlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICByZXR1cm4gcmM7CiAgICAgfQogCi0gICAgc3Zt X2d1ZXN0X29zdndfaW5pdCh2KTsKLQogICAgIHJldHVybiAwOwogfQogCkBAIC0xNjI3LDIzICsx NjMwLDYgQEAgc3RhdGljIHZvaWQgc3ZtX2luaXRfZXJyYXR1bV8zODMoY29uc3Qgc3RydWN0IGNw dWluZm9feDg2ICpjKQogICAgIH0KIH0KIAotc3RhdGljIGludCBzdm1faGFuZGxlX29zdncoc3Ry dWN0IHZjcHUgKnYsIHVpbnQzMl90IG1zciwgdWludDY0X3QgKnZhbCwgYm9vbF90IHJlYWQpCi17 Ci0gICAgaWYgKCAhdi0+ZG9tYWluLT5hcmNoLmNwdWlkLT5leHRkLm9zdncgKQotICAgICAgICBy ZXR1cm4gLTE7Ci0KLSAgICBpZiAoIHJlYWQgKQotICAgIHsKLSAgICAgICAgaWYgKG1zciA9PSBN U1JfQU1EX09TVldfSURfTEVOR1RIKQotICAgICAgICAgICAgKnZhbCA9IHYtPmFyY2guaHZtX3N2 bS5vc3Z3Lmxlbmd0aDsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgKnZhbCA9IHYtPmFyY2gu aHZtX3N2bS5vc3Z3LnN0YXR1czsKLSAgICB9Ci0gICAgLyogV3JpdGVzIGFyZSBpZ25vcmVkICov Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogc3RhdGljIGludCBfc3ZtX2NwdV91cChib29sIGJzcCkK IHsKICAgICB1aW50NjRfdCBtc3JfY29udGVudDsKQEAgLTE4NzUsNiArMTg2MSw3IEBAIHN0YXRp YyBpbnQgc3ZtX21zcl9yZWFkX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgbXNyLCB1aW50NjRfdCAq bXNyX2NvbnRlbnQpCiB7CiAgICAgaW50IHJldDsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJl bnQ7CisgICAgY29uc3Qgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKICAgICBzdHJ1Y3Qg dm1jYl9zdHJ1Y3QgKnZtY2IgPSB2LT5hcmNoLmh2bV9zdm0udm1jYjsKIAogICAgIHN3aXRjaCAo IG1zciApCkBAIC0yMDE3LDkgKzIwMDQsMTAgQEAgc3RhdGljIGludCBzdm1fbXNyX3JlYWRfaW50 ZXJjZXB0KHVuc2lnbmVkIGludCBtc3IsIHVpbnQ2NF90ICptc3JfY29udGVudCkKIAogICAgIGNh c2UgTVNSX0FNRF9PU1ZXX0lEX0xFTkdUSDoKICAgICBjYXNlIE1TUl9BTURfT1NWV19TVEFUVVM6 Ci0gICAgICAgIHJldCA9IHN2bV9oYW5kbGVfb3N2dyh2LCBtc3IsIG1zcl9jb250ZW50LCAxKTsK LSAgICAgICAgaWYgKCByZXQgPCAwICkKKyAgICAgICAgaWYgKCAhZC0+YXJjaC5jcHVpZC0+ZXh0 ZC5vc3Z3ICkKICAgICAgICAgICAgIGdvdG8gZ3BmOworICAgICAgICAqbXNyX2NvbnRlbnQgPQor ICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnN2bS5vc3Z3LnJhd1ttc3IgLSBNU1JfQU1E X09TVldfSURfTEVOR1RIXTsKICAgICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtMjA2 Myw2ICsyMDUxLDcgQEAgc3RhdGljIGludCBzdm1fbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25l ZCBpbnQgbXNyLCB1aW50NjRfdCBtc3JfY29udGVudCkKIHsKICAgICBpbnQgcmV0LCByZXN1bHQg PSBYODZFTVVMX09LQVk7CiAgICAgc3RydWN0IHZjcHUgKnYgPSBjdXJyZW50OworICAgIHN0cnVj dCBkb21haW4gKmQgPSB2LT5kb21haW47CiAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiID0g di0+YXJjaC5odm1fc3ZtLnZtY2I7CiAKICAgICBzd2l0Y2ggKCBtc3IgKQpAQCAtMjIxOCw5ICsy MjA3LDkgQEAgc3RhdGljIGludCBzdm1fbXNyX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQg bXNyLCB1aW50NjRfdCBtc3JfY29udGVudCkKIAogICAgIGNhc2UgTVNSX0FNRF9PU1ZXX0lEX0xF TkdUSDoKICAgICBjYXNlIE1TUl9BTURfT1NWV19TVEFUVVM6Ci0gICAgICAgIHJldCA9IHN2bV9o YW5kbGVfb3N2dyh2LCBtc3IsICZtc3JfY29udGVudCwgMCk7Ci0gICAgICAgIGlmICggcmV0IDwg MCApCisgICAgICAgIGlmICggIWQtPmFyY2guY3B1aWQtPmV4dGQub3N2dyApCiAgICAgICAgICAg ICBnb3RvIGdwZjsKKyAgICAgICAgLyogV3JpdGUtZGlzY2FyZCAqLwogICAgICAgICBicmVhazsK IAogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0v dm1jYi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL3ZtY2IuaAppbmRleCA2YWRkODE4 Li5mNzk3NGRhIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vdm1jYi5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2bS92bWNiLmgKQEAgLTQ5Myw2ICs0OTMs MTQgQEAgc3RydWN0IHZtY2Jfc3RydWN0IHsKIH07CiAKIHN0cnVjdCBzdm1fZG9tYWluIHsKKyAg ICAvKiBPU1ZXIE1TUnMgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHVpbnQ2NF90IHJhd1syXTsK KyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGxlbmd0aDsKKyAgICAgICAg ICAgIHVpbnQ2NF90IHN0YXR1czsKKyAgICAgICAgfTsKKyAgICB9IG9zdnc7CiB9OwogCiAvKgpA QCAtNTM2LDEyICs1NDQsNiBAQCBzdHJ1Y3QgYXJjaF9zdm1fc3RydWN0IHsKIAogICAgIC8qIGRh dGEgYnJlYWtwb2ludCBleHRlbnNpb24gTVNScyAqLwogICAgIHVpbnQzMl90IGRyX21hc2tbNF07 Ci0KLSAgICAvKiBPU1ZXIE1TUnMgKi8KLSAgICBzdHJ1Y3QgewotICAgICAgICB1NjQgbGVuZ3Ro OwotICAgICAgICB1NjQgc3RhdHVzOwotICAgIH0gb3N2dzsKIH07CiAKIHN0cnVjdCB2bWNiX3N0 cnVjdCAqYWxsb2Nfdm1jYih2b2lkKTsKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==