From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 7/9] x86/amd: Support context switching legacy SSBD interface Date: Mon, 3 Dec 2018 16:18:20 +0000 Message-ID: <1543853902-6257-8-git-send-email-andrew.cooper3@citrix.com> References: <1543853902-6257-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: <1543853902-6257-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 , Wei Liu , Brian Woods , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org SXQgaXMgY3JpdGljYWwgdGhhdCBNU1JfQU1ENjRfTFNfQ0ZHIGlzIG5ldmVyIG1vZGlmaWVkIG91 dHNpZGUgb2YgdGhpcwpmdW5jdGlvbiwgdG8gYXZvaWQgdHJhbXBsaW5nIG9uIHNpYmxpbmcgc2V0 dGluZ3MuCgpGb3Igbm93LCBwYXNzIGluIE5VTEwgZnJvbSB0aGUgYm9vdCBwYXRocyBhbmQganVz dCBzZXQgWGVuJ3MgZGVmYXVsdC4gIExhdGVyCnBhdGNoZXMgd2lsbCBwbHVtYiBpbiBndWVzdCBj aG9pY2VzLiAgVGhpcyBub3cgc3VwZXJjZWRlcyB0aGUgb2xkZXIgY29kZSB3aGljaAp3cm90ZSB0 byBNU1JfQU1ENjRfTFNfQ0ZHIG9uY2UgZHVyaW5nIGJvb3QuCgpTaWduZWQtb2ZmLWJ5OiBBbmRy ZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNo IDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkND OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KQ0M6IEJyaWFuIFdvb2Rz IDxicmlhbi53b29kc0BhbWQuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9jcHUvYW1kLmMgICAgICAg ICAgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L3NtcGJvb3QuYyAgICAgICAgICB8ICAzICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L3By b2Nlc3Nvci5oIHwgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCAxOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L2FtZC5jIGIveGVuL2Fy Y2gveDg2L2NwdS9hbWQuYwppbmRleCBlYTEwZGJkLi4zYThlYWQ5IDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvY3B1L2FtZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9jcHUvYW1kLmMKQEAgLTQ0Miw2 ICs0NDIsNzQgQEAgc3RhdGljIHN0cnVjdCBzc2JkX2xzX2NmZyB7CiB9ICpzc2JkX2xzX2NmZ1s0 XTsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgc3NiZF9tYXhfY29yZXM7CiAKKy8qCisgKiBNdXN0IG9u bHkgYmUgY2FsbGVkIHdoZW4gdGhlIExFR0FDWV9TU0JEIGlzIGluIHVzZWQuICBDYWxsZWQgd2l0 aCBOVUxMIHRvCisgKiBzd2l0Y2ggYmFjayB0byBYZW4ncyBkZWZhdWx0IHZhbHVlLgorICovCit2 b2lkIGFtZF9jdHh0X3N3aXRjaF9sZWdhY3lfc3NiZChjb25zdCBzdHJ1Y3QgdmNwdSAqbmV4dCkK K3sKKwlzdGF0aWMgREVGSU5FX1BFUl9DUFUoYm9vbCwgc3NiZCk7CisJYm9vbCAqdGhpc19zc2Jk ID0gJnRoaXNfY3B1KHNzYmQpOworCWJvb2wgZGlzYWJsZSA9IG9wdF9zc2JkOworCXN0cnVjdCBj cHVpbmZvX3g4NiAqYyA9ICZjdXJyZW50X2NwdV9kYXRhOworCXVuc2lnbmVkIGludCBzb2NrZXQg PSBjLT5waHlzX3Byb2NfaWQsIGNvcmUgPSBjLT5jcHVfY29yZV9pZDsKKwlzdHJ1Y3Qgc3NiZF9s c19jZmcgKmNmZzsKKwl1aW50NjRfdCB2YWw7CisKKwlBU1NFUlQoY3B1X2hhc19sZWdhY3lfc3Ni ZCk7CisKKwkvKgorCSAqIFVwZGF0ZSBoYXJkd2FyZSBsYXppbHksIGFzIHRoZXNlIE1TUnMgYXJl IGV4cGVuc2l2ZS4gIEhvd2V2ZXIsIG9uCisJICogdGhlIGJvb3QgcGF0aHMgd2hpY2ggcGFzcyBO VUxMLCBmb3JjZSBhIHdyaXRlIHRvIHNldCBhIGNvbnNpc3RlbnQKKwkgKiBpbml0aWFsIHN0YXRl LgorCSAqLworCWlmICgqdGhpc19zc2JkID09IGRpc2FibGUgJiYgbmV4dCkKKwkJcmV0dXJuOwor CisJaWYgKGNwdV9oYXNfdmlydF9zY19zc2JkKSB7CisJCXdybXNybChNU1JfVklSVF9TUEVDX0NU UkwsCisJCSAgICAgICBkaXNhYmxlID8gU1BFQ19DVFJMX1NTQkQgOiAwKTsKKwkJZ290byBkb25l OworCX0KKworCXZhbCA9IGxzX2NmZ19iYXNlIHwgKGRpc2FibGUgPyBsc19jZmdfc3NiZF9tYXNr IDogMCk7CisKKwlpZiAoYy0+eDg2IDwgMHgxNyB8fCBjLT54ODZfbnVtX3NpYmxpbmdzID09IDEp IHsKKwkJLyogTm8gdGhyZWFkcyB0byBiZSBjb25jZXJuZWQgd2l0aC4gKi8KKwkJd3Jtc3JsKE1T Ul9BTUQ2NF9MU19DRkcsIHZhbCk7CisJCWdvdG8gZG9uZTsKKwl9CisKKwkvKiBDaGVjayB0aGF0 IHdlIHdvbid0IG92ZXJmbG93IHRoZSB3b3JzZS1jYXNlIGFsbG9jYXRpb24uICovCisJQlVHX09O KHNvY2tldCA+PSBBUlJBWV9TSVpFKHNzYmRfbHNfY2ZnKSk7CisJQlVHX09OKGNvcmUgICA+PSBz c2JkX21heF9jb3Jlcyk7CisKKwljZmcgPSAmc3NiZF9sc19jZmdbc29ja2V0XVtjb3JlXTsKKwor CWlmIChkaXNhYmxlKSB7CisJCXNwaW5fbG9jaygmY2ZnLT5sb2NrKTsKKworCQkvKiBGaXJzdCBz aWJsaW5nIHRvIGRpc2FibGUgdXBkYXRlcyBoYXJkd2FyZS4gKi8KKwkJaWYgKCFjZmctPmRpc2Fi bGVfY291bnQpCisJCQl3cm1zcmwoTVNSX0FNRDY0X0xTX0NGRywgdmFsKTsKKwkJY2ZnLT5kaXNh YmxlX2NvdW50Kys7CisKKwkJc3Bpbl91bmxvY2soJmNmZy0+bG9jayk7CisJfSBlbHNlIHsKKwkJ c3Bpbl9sb2NrKCZjZmctPmxvY2spOworCisJCS8qIExhc3Qgc2libGluZyB0byBlbmFibGUgdXBk YXRlcyBoYXJkd2FyZS4gKi8KKwkJY2ZnLT5kaXNhYmxlX2NvdW50LS07CisJCWlmICghY2ZnLT5k aXNhYmxlX2NvdW50KQorCQkJd3Jtc3JsKE1TUl9BTUQ2NF9MU19DRkcsIHZhbCk7CisKKwkJc3Bp bl91bmxvY2soJmNmZy0+bG9jayk7CisJfQorCisgZG9uZToKKwkqdGhpc19zc2JkID0gZGlzYWJs ZTsKK30KKwogc3RhdGljIGludCBfX2luaXQgYW1kX2luaXRfbGVnYWN5X3NzYmQodm9pZCkKIHsK IAljb25zdCBzdHJ1Y3QgY3B1aW5mb194ODYgKmMgPSAmYm9vdF9jcHVfZGF0YTsKQEAgLTUwNSw2 ICs1NzMsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBhbWRfaW5pdF9sZWdhY3lfc3NiZCh2b2lkKQog CQkJc3Bpbl9sb2NrX2luaXQoJnNzYmRfbHNfY2ZnW3NvY2tldF1bY29yZV0ubG9jayk7CiAJfQog CisJYW1kX2N0eHRfc3dpdGNoX2xlZ2FjeV9zc2JkKE5VTEwpOworCiAJcmV0dXJuIDA7CiB9CiBw cmVzbXBfaW5pdGNhbGwoYW1kX2luaXRfbGVnYWN5X3NzYmQpOwpAQCAtNzUzLDI1ICs4MjMsNiBA QCBzdGF0aWMgdm9pZCBpbml0X2FtZChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpCiAJaWYgKGMgPT0g JmJvb3RfY3B1X2RhdGEpCiAJCWFtZF9wcm9iZV9sZWdhY3lfc3NiZCgpOwogCi0JLyoKLQkgKiBJ ZiB0aGUgdXNlciBoYXMgZXhwbGljaXRseSBjaG9zZW4gdG8gZGlzYWJsZSBNZW1vcnkgRGlzYW1i aWd1YXRpb24KLQkgKiB0byBtaXRpZ2lhdGUgU3BlY3VsYXRpdmUgU3RvcmUgQnlwYXNzLCBwb2tl IHRoZSBhcHByb3ByaWF0ZSBNU1IuCi0JICovCi0JaWYgKG9wdF9zc2JkKSB7Ci0JCWludCBiaXQg PSAtMTsKLQotCQlzd2l0Y2ggKGMtPng4NikgewotCQljYXNlIDB4MTU6IGJpdCA9IDU0OyBicmVh azsKLQkJY2FzZSAweDE2OiBiaXQgPSAzMzsgYnJlYWs7Ci0JCWNhc2UgMHgxNzogYml0ID0gMTA7 IGJyZWFrOwotCQl9Ci0KLQkJaWYgKGJpdCA+PSAwICYmICFyZG1zcl9zYWZlKE1TUl9BTUQ2NF9M U19DRkcsIHZhbHVlKSkgewotCQkJdmFsdWUgfD0gMXVsbCA8PCBiaXQ7Ci0JCQl3cm1zcl9zYWZl KE1TUl9BTUQ2NF9MU19DRkcsIHZhbHVlKTsKLQkJfQotCX0KLQogCS8qIE1GRU5DRSBzdG9wcyBS RFRTQyBzcGVjdWxhdGlvbiAqLwogCWlmICghY3B1X2hhc19sZmVuY2VfZGlzcGF0Y2gpCiAJCV9f c2V0X2JpdChYODZfRkVBVFVSRV9NRkVOQ0VfUkRUU0MsIGMtPng4Nl9jYXBhYmlsaXR5KTsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5j CmluZGV4IDU2N2NlY2UuLjdkNTQyMDEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zbXBib290 LmMKKysrIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwpAQCAtMzc2LDYgKzM3Niw5IEBAIHZvaWQg c3RhcnRfc2Vjb25kYXJ5KHZvaWQgKnVudXNlZCkKICAgICBpZiAoIGJvb3RfY3B1X2hhcyhYODZf RkVBVFVSRV9JQlJTQikgKQogICAgICAgICB3cm1zcmwoTVNSX1NQRUNfQ1RSTCwgZGVmYXVsdF94 ZW5fc3BlY19jdHJsKTsKIAorICAgIGlmICggY3B1X2hhc19sZWdhY3lfc3NiZCApCisgICAgICAg IGFtZF9jdHh0X3N3aXRjaF9sZWdhY3lfc3NiZChOVUxMKTsKKwogICAgIGlmICggeGVuX2d1ZXN0 ICkKICAgICAgICAgaHlwZXJ2aXNvcl9hcF9zZXR1cCgpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3Iu aAppbmRleCBkZjAxYWUzLi5lOGQyOWE3IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2 L3Byb2Nlc3Nvci5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHJvY2Vzc29yLmgKQEAgLTE1 MSw2ICsxNTEsOCBAQCBleHRlcm4gYm9vbCBwcm9iZV9jcHVpZF9mYXVsdGluZyh2b2lkKTsKIGV4 dGVybiB2b2lkIGN0eHRfc3dpdGNoX2xldmVsbGluZyhjb25zdCBzdHJ1Y3QgdmNwdSAqbmV4dCk7 CiBleHRlcm4gdm9pZCAoKmN0eHRfc3dpdGNoX21hc2tpbmcpKGNvbnN0IHN0cnVjdCB2Y3B1ICpu ZXh0KTsKIAorZXh0ZXJuIHZvaWQgYW1kX2N0eHRfc3dpdGNoX2xlZ2FjeV9zc2JkKGNvbnN0IHN0 cnVjdCB2Y3B1ICpuZXh0KTsKKwogZXh0ZXJuIGJvb2xfdCBvcHRfY3B1X2luZm87CiBleHRlcm4g dTMyIGNwdWlkX2V4dF9mZWF0dXJlczsKIGV4dGVybiB1NjQgdHJhbXBvbGluZV9taXNjX2VuYWJs ZV9vZmY7Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2pl Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4t ZGV2ZWw=