From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 for-4.11] x86/spec_ctrl: Updates to retpoline-safety decision making Date: Thu, 19 Apr 2018 15:25:39 +0100 Message-ID: <1524147939-17421-1-git-send-email-andrew.cooper3@citrix.com> References: <1524075181-7493-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: <1524075181-7493-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: Juergen Gross , Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org QWxsIG9mIHRoaXMgaXMgYXMgcmVjb21tZW5kZWQgYnkgdGhlIEludGVsIHdoaXRlcGFwZXI6Cgpo dHRwczovL3NvZnR3YXJlLmludGVsLmNvbS9zaXRlcy9kZWZhdWx0L2ZpbGVzL21hbmFnZWQvMWQv NDYvUmV0cG9saW5lLUEtQnJhbmNoLVRhcmdldC1JbmplY3Rpb24tTWl0aWdhdGlvbi5wZGYKClRo ZSAnUlNCIEFsdGVybmF0aXZlJyBiaXQgaW4gTVNSX0FSQ0hfQ0FQQUJJTElUSUVTIG1heSBiZSBz ZXQgYnkgYSBoeXBlcnZpc29yCnRvIGluZGljYXRlIHRoYXQgdGhlIHZpcnR1YWwgbWFjaGluZSBt YXkgbWlncmF0ZSB0byBhIHByb2Nlc3NvciB3aGljaCBpc24ndApyZXRwb2xpbmUtc2FmZS4gIElu dHJvZHVjZSBhIHNob3J0ZW5lZCBuYW1lICh0byByZWR1Y2UgY29kZSB2b2x1bWUpLCB0cmVhdCBp dAphcyBhdXRob3JhdGl2ZSBpbiByZXRwb2xpbmVfc2FmZSgpLCBhbmQgcHJpbnQgaXRzIHZhbHVl IGFsb25nIHdpdGggdGhlIG90aGVyCkFSQ0hfQ0FQUyBiaXRzLgoKVGhlIGV4YWN0IHByb2Nlc3Nv ciBtb2RlbHMgd2hpY2ggZG8gaGF2ZSBSU0Igc2VtYW50aWNzIHdoaWNoIGZhbGwgYmFjayB0byBC VEIKcHJlZGljdGlvbnMgYXJlIGVudW1lcmF0ZWQsIGFuZCBpbmNsdWRlIEthYnlsYWtlIGFuZCBD b2ZmZWVsYWtlLiAgTGVhdmUgYQpwcmludGsoKSBpbiB0aGUgZGVmYXVsdCBjYXNlIHRvIGhlbHAg aWRlbnRpZnkgY2FzZXMgd2hpY2ggYXJlbid0IGNvdmVyZWQuCgpUaGUgZXhhY3QgbWljcm9jb2Rl IHZlcnNpb25zIGZyb20gQnJvYWR3ZWxsIFJTQi1zYWZldHkgYXJlIHRha2VuIGZyb20gdGhlCnJl ZmVyZW5jZWQgbWljcm9jb2RlIHVwZGF0ZSBmaWxlIChhZGp1c3RpbmcgZm9yIHRoZSBrbm93bi1i YWQgbWljcm9jb2RlCnZlcnNpb25zKS4gIERlc3BpdGUgdGhlIGV4YWN0IHdvcmRpbmcgb2YgdGhl IHRleHQsIGl0IGlzIG9ubHkgQnJvYWR3ZWxsCnByb2Nlc3NvcnMgd2hpY2ggbmVlZCBhIG1pY3Jv Y29kZSBjaGVjay4KCkluIHByYWN0aWNlLCB0aGlzIG1lYW5zIHRoYXQgYWxsIEJyb2Fkd2VsbCBo YXJkd2FyZSB3aXRoIHVwLXRvLWRhdGUgbWljcm9jb2RlCndpbGwgdXNlIHJldHBvbGluZSBpbiBw cmVmZXJlbmNlIHRvIElCUlMsIHdoaWNoIHdpbGwgYmUgYSBwZXJmb3JtYW5jZQppbXByb3ZlbWVu dCBmb3IgZGVza3RvcCBhbmQgc2VydmVyIHN5c3RlbXMgd2hpY2ggd291bGQgcHJldmlvdXNseSBh bHdheXMgb3B0CmZvciBJQlJTIG92ZXIgcmV0cG9saW5lLgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3 IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8 SkJldWxpY2hAc3VzZS5jb20+CkNDOiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Cgp2 MjoKICogQWRkIGEgQnJvYWR3ZWxsIHN0ZXBwaW5nIGRlZmF1bHQgcHJpbnRrKCkKICogQ2xhcmlm eSB0aGUgQnJvYWR3ZWxsIG1pY3JvY29kZSBzdGF0ZW1lbnQgaW4gdGhlIGNvbW1pdCBtZXNzYWdl CgpUaGlzIHNob3VsZCBiZSBiYWNrcG9ydGVkIHRvIGV2ZXJ5d2hlcmUgd2hpY2ggaGFzIFNwZWN0 cmUgbWl0aWdhdGlvbnMsIGFuZAp0aGVyZWZvcmUgc2hvdWxkIGJlIGNvbnNpZGVyZWQgZm9yIDQu MTEgYXQgdGhpcyBwb2ludC4KLS0tCiB4ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMgICAgICAgIHwg NTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KIHhlbi9pbmNsdWRl L2FzbS14ODYvbXNyLWluZGV4LmggfCAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NwZWNfY3Ry bC5jIGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCmluZGV4IDViNWVjOTAuLmJhYjg1OTUgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYworKysgYi94ZW4vYXJjaC94ODYvc3Bl Y19jdHJsLmMKQEAgLTExMywxMiArMTEzLDEzIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwcmludF9k ZXRhaWxzKGVudW0gaW5kX3RodW5rIHRodW5rKQogICAgIHByaW50ayhYRU5MT0dfREVCVUcgIlNw ZWN1bGF0aXZlIG1pdGlnYXRpb24gZmFjaWxpdGllczpcbiIpOwogCiAgICAgLyogSGFyZHdhcmUg ZmVhdHVyZXMgd2hpY2ggcGVydGFpbiB0byBzcGVjdWxhdGl2ZSBtaXRpZ2F0aW9ucy4gKi8KLSAg ICBwcmludGsoWEVOTE9HX0RFQlVHICIgIEhhcmR3YXJlIGZlYXR1cmVzOiVzJXMlcyVzJXNcbiIs CisgICAgcHJpbnRrKFhFTkxPR19ERUJVRyAiICBIYXJkd2FyZSBmZWF0dXJlczolcyVzJXMlcyVz JXNcbiIsCiAgICAgICAgICAgIChfN2QwICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX0lCUlNC KSkgPyAiIElCUlMvSUJQQiIgOiAiIiwKICAgICAgICAgICAgKF83ZDAgJiBjcHVmZWF0X21hc2so WDg2X0ZFQVRVUkVfU1RJQlApKSA/ICIgU1RJQlAiICAgICA6ICIiLAogICAgICAgICAgICAoZThi ICAmIGNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9JQlBCKSkgID8gIiBJQlBCIiAgICAgIDogIiIs CiAgICAgICAgICAgIChjYXBzICYgQVJDSF9DQVBBQklMSVRJRVNfSUJSU19BTEwpICAgICAgPyAi IElCUlNfQUxMIiAgOiAiIiwKLSAgICAgICAgICAgKGNhcHMgJiBBUkNIX0NBUEFCSUxJVElFU19S RENMX05PKSAgICAgICA/ICIgUkRDTF9OTyIgICA6ICIiKTsKKyAgICAgICAgICAgKGNhcHMgJiBB UkNIX0NBUEFCSUxJVElFU19SRENMX05PKSAgICAgICA/ICIgUkRDTF9OTyIgICA6ICIiLAorICAg ICAgICAgICAoY2FwcyAmIEFSQ0hfQ0FQU19SU0JBKSAgICAgICAgICAgICAgICAgID8gIiBSQlNB IiAgICAgIDogIiIpOwogCiAgICAgLyogQ29tcGlsZWQtaW4gc3VwcG9ydCB3aGljaCBwZXJ0YWlu cyB0byBCVEkgbWl0aWdhdGlvbnMuICovCiAgICAgaWYgKCBJU19FTkFCTEVEKENPTkZJR19JTkRJ UkVDVF9USFVOSykgKQpAQCAtMTUxLDYgKzE1MiwyMCBAQCBzdGF0aWMgYm9vbCBfX2luaXQgcmV0 cG9saW5lX3NhZmUodm9pZCkKICAgICAgICAgIGJvb3RfY3B1X2RhdGEueDg2ICE9IDYgKQogICAg ICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoIGJvb3RfY3B1X2hhcyhYODZfRkVBVFVSRV9B UkNIX0NBUFMpICkKKyAgICB7CisgICAgICAgIHVpbnQ2NF90IGNhcHM7CisKKyAgICAgICAgcmRt c3JsKE1TUl9BUkNIX0NBUEFCSUxJVElFUywgY2Fwcyk7CisKKyAgICAgICAgLyoKKyAgICAgICAg ICogUkJTQSBtYXkgYmUgc2V0IGJ5IGEgaHlwZXJ2aXNvciB0byBpbmRpY2F0ZSB0aGF0IHdlIG1h eSBtb3ZlIHRvIGEKKyAgICAgICAgICogcHJvY2Vzc29yIHdoaWNoIGlzbid0IHJldHBvbGluZS1z YWZlLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBjYXBzICYgQVJDSF9DQVBTX1JTQkEgKQor ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIHN3aXRjaCAoIGJvb3RfY3B1 X2RhdGEueDg2X21vZGVsICkKICAgICB7CiAgICAgY2FzZSAweDE3OiAvKiBQZW5yeW4gKi8KQEAg LTE3NywxOCArMTkyLDQwIEBAIHN0YXRpYyBib29sIF9faW5pdCByZXRwb2xpbmVfc2FmZSh2b2lk KQogICAgICAgICAgKiB2ZXJzaW9ucy4KICAgICAgICAgICovCiAgICAgY2FzZSAweDNkOiAvKiBC cm9hZHdlbGwgKi8KLSAgICAgICAgcmV0dXJuIHVjb2RlX3JldiA+PSAweDI4OworICAgICAgICBy ZXR1cm4gdWNvZGVfcmV2ID49IDB4MmE7CiAgICAgY2FzZSAweDQ3OiAvKiBCcm9hZHdlbGwgSCAq LwotICAgICAgICByZXR1cm4gdWNvZGVfcmV2ID49IDB4MWI7CisgICAgICAgIHJldHVybiB1Y29k ZV9yZXYgPj0gMHgxZDsKICAgICBjYXNlIDB4NGY6IC8qIEJyb2Fkd2VsbCBFUC9FWCAqLwotICAg ICAgICByZXR1cm4gdWNvZGVfcmV2ID49IDB4YjAwMDAyNTsKKyAgICAgICAgcmV0dXJuIHVjb2Rl X3JldiA+PSAweGIwMDAwMjE7CiAgICAgY2FzZSAweDU2OiAvKiBCcm9hZHdlbGwgRCAqLwotICAg ICAgICByZXR1cm4gZmFsc2U7IC8qIFRCRC4gKi8KKyAgICAgICAgc3dpdGNoICggYm9vdF9jcHVf ZGF0YS54ODZfbWFzayApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSAyOiAgcmV0dXJuIHVjb2Rl X3JldiA+PSAweDE1OworICAgICAgICBjYXNlIDM6ICByZXR1cm4gdWNvZGVfcmV2ID49IDB4NzAw MDAxMjsKKyAgICAgICAgY2FzZSA0OiAgcmV0dXJuIHVjb2RlX3JldiA+PSAweGYwMDAwMTE7Cisg ICAgICAgIGNhc2UgNTogIHJldHVybiB1Y29kZV9yZXYgPj0gMHhlMDAwMDA5OworICAgICAgICBk ZWZhdWx0OgorICAgICAgICAgICAgcHJpbnRrKCJVbnJlY29nbmlzZWQgQ1BVIHN0ZXBwaW5nICUj eCAtIGFzc3VtaW5nIG5vdCByZXB0cG9saW5lIHNhZmVcbiIsCisgICAgICAgICAgICAgICAgICAg Ym9vdF9jcHVfZGF0YS54ODZfbWFzayk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgIH0KKyAgICAgICAgYnJlYWs7CiAKICAgICAgICAgLyoKLSAgICAgICAgICogU2t5bGFrZSBh bmQgbGF0ZXIgcHJvY2Vzc29ycyBhcmUgbm90IHJldHBvbGluZS1zYWZlLgorICAgICAgICAgKiBT a3lsYWtlLCBLYWJ5bGFrZSBhbmQgQ2Fubm9ubGFrZSBwcm9jZXNzb3JzIGFyZSBub3QgcmV0cG9s aW5lLXNhZmUuCiAgICAgICAgICAqLworICAgIGNhc2UgMHg0ZToKKyAgICBjYXNlIDB4NTU6Cisg ICAgY2FzZSAweDVlOgorICAgIGNhc2UgMHg2NjoKKyAgICBjYXNlIDB4Njc6CisgICAgY2FzZSAw eDhlOgorICAgIGNhc2UgMHg5ZToKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgZGVmYXVs dDoKKyAgICAgICAgcHJpbnRrKCJVbnJlY29nbmlzZWQgQ1BVIG1vZGVsICUjeCAtIGFzc3VtaW5n IG5vdCByZXB0cG9saW5lIHNhZmVcbiIsCisgICAgICAgICAgICAgICBib290X2NwdV9kYXRhLng4 Nl9tb2RlbCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L21zci1pbmRleC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc3It aW5kZXguaAppbmRleCA4NDE2NzU2Li5jOWY0NGViIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9h c20teDg2L21zci1pbmRleC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNyLWluZGV4LmgK QEAgLTQyLDYgKzQyLDcgQEAKICNkZWZpbmUgTVNSX0FSQ0hfQ0FQQUJJTElUSUVTCQkweDAwMDAw MTBhCiAjZGVmaW5lIEFSQ0hfQ0FQQUJJTElUSUVTX1JEQ0xfTk8JKF9BQygxLCBVTEwpIDw8IDAp CiAjZGVmaW5lIEFSQ0hfQ0FQQUJJTElUSUVTX0lCUlNfQUxMCShfQUMoMSwgVUxMKSA8PCAxKQor I2RlZmluZSBBUkNIX0NBUFNfUlNCQQkJCShfQUMoMSwgVUxMKSA8PCAyKQogCiAvKiBJbnRlbCBN U1JzLiBTb21lIGFsc28gYXZhaWxhYmxlIG9uIG90aGVyIENQVXMgKi8KICNkZWZpbmUgTVNSX0lB MzJfUEVSRkNUUjAJCTB4MDAwMDAwYzEKLS0gCjIuMS40CgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==