From mboxrd@z Thu Jan 1 00:00:00 1970 From: He Chen Subject: [PATCH v3] xen: support enabling SMEP/SMAP for HVM only Date: Fri, 19 Aug 2016 18:20:13 +0800 Message-ID: <1471602013-784-1-git-send-email-he.chen@linux.intel.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@lists.xen.org Cc: Andrew Cooper , Feng Wu , Jan Beulich List-Id: xen-devel@lists.xenproject.org U01FUC9TTUFQIGlzIGEgc2VjdXJpdHkgZmVhdHVyZSB0byBwcmV2ZW50IGtlcm5lbCBleGVjdXRp bmcvYWNjZXNzaW5nCnVzZXIgYWRkcmVzcyBpbnZvbHVudGFyaWx5LCBhbnkgc3VjaCBiZWhhdmlv ciB3aWxsIGxlYWQgdG8gYSBwYWdlIGZhdWx0LgoKU01FUC9TTUFQIGlzIG9wZW4gKGluIENSNCkg Zm9yIGJvdGggWGVuIGFuZCBIVk0gZ3Vlc3QgaW4gZWFybGllciBjb2RlLgpBIDMyLWJpdCBQViBn dWVzdCB3aWxsIHN1ZmZlciB1bmtub3duIFNNRVAvU01BUCBwYWdlIGZhdWx0IHdoZW4gZ3Vlc3QK a2VybmVsIGF0dGVtcHQgdG8gYWNjZXNzIHVzZXIgYWRkcmVzcyBhbHRob3VnaCBTTUVQL1NNQVAg aXMgY2xvc2UgZm9yClBWIGd1ZXN0cyBhbHJlYWR5LgoKVGhpcyBwYXRjaCBpcyBnb2luZyB0byBz dXBwb3J0IGVuYWJsaW5nIFNNRVAvU01BUCBmb3IgSFZNIGJ1dCBkaXNhYmxpbmcKdGhlbSBmb3Ig WGVuIGh5cGVydmlzb3IuIFVzZXJzIGNhbiBjaG9vc2Ugd2hldGhlciBvcGVuaW5nIHRoZW0gZm9y IFhlbiwKZXNwZWNpYWxseSB3aGVuIHRoZXkgYXJlIGdvaW5nIHRvIHJ1biAzMi1iaXQgUFYgZ3Vl c3RzLgoKU2lnbmVkLW9mZi1ieTogSGUgQ2hlbiA8aGUuY2hlbkBsaW51eC5pbnRlbC5jb20+Cgot LS0KQ2hhbmdlcyBpbiB2MzoKKiBGaXggYm9vdCBvcHRpb25zLgoqIEZpeCBDUjQgJiBtbXVfY3I0 X2ZlYXR1cmVzIG9wZXJhdGlvbnMuCiogRGlzYWJsZSBTTUVQL1NNQVAgZm9yIERvbTAuCiogQ29t bWl0IG1lc3NhZ2UgcmVmaW5lbWVudC4KCkNoYW5nZXMgaW4gdjI6CiogQWxsb3cgImh2bSIgYXMg YSB2YWx1ZSB0byAic21lcCIgYW5kICJzbWFwIiBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKiBDbGVh ciBTTUVQL1NNQVAgQ1BVSUQgYml0cyBmb3IgcHYgZ3Vlc3RzIGlmIHRoZXkgYXJlIHNldCB0byBo dm0gb25seS4KKiBSZWZpbmUgZG9jcy4KKiBSZXdyaXRlIGNvbW1pdCBtZXNzYWdlLgotLS0KIGRv Y3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIHwgIDIgKysKIHhlbi9hcmNoL3g4Ni9z ZXR1cC5jICAgICAgICAgICAgICAgIHwgNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLQogeGVuL2FyY2gveDg2L3RyYXBzLmMgICAgICAgICAgICAgICAgfCAgNyArKysrKwog eGVuL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oICAgICAgICAgfCAgNiArKysrCiA0IGZpbGVzIGNo YW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j cy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNvbW1hbmQt bGluZS5tYXJrZG93bgppbmRleCAzYTI1MGNiLi5iMTVmM2U3IDEwMDY0NAotLS0gYS9kb2NzL21p c2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQt bGluZS5tYXJrZG93bgpAQCAtMTQzMyw2ICsxNDMzLDcgQEAgU2V0IHRoZSBzZXJpYWwgdHJhbnNt aXQgYnVmZmVyIHNpemUuCiA+IERlZmF1bHQ6IGB0cnVlYAogCiBGbGFnIHRvIGVuYWJsZSBTdXBl cnZpc29yIE1vZGUgRXhlY3V0aW9uIFByb3RlY3Rpb24KK1VzZSBgc21lcD1odm1gIHRvIGVuYWJs ZSBTTUVQIGZvciBIVk0gZ3Vlc3RzIG9ubHkuCiAKICMjIyBzbWFwCiA+IGA9IDxib29sZWFuPmAK QEAgLTE0NDAsNiArMTQ0MSw3IEBAIEZsYWcgdG8gZW5hYmxlIFN1cGVydmlzb3IgTW9kZSBFeGVj dXRpb24gUHJvdGVjdGlvbgogPiBEZWZhdWx0OiBgdHJ1ZWAKIAogRmxhZyB0byBlbmFibGUgU3Vw ZXJ2aXNvciBNb2RlIEFjY2VzcyBQcmV2ZW50aW9uCitVc2UgYHNtYXA9aHZtYCB0byBlbmFibGUg U01BUCBmb3IgSFZNIGd1ZXN0cyBvbmx5LgogCiAjIyMgc25iXF9pZ2RcX3F1aXJrCiA+IGA9IDxi b29sZWFuPiB8IGNhcCB8IDxpbnRlZ2VyPmAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1 cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMjE3Yzc3NS4uYTQyODU1OCAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVwLmMKQEAg LTYyLDEyICs2MiwxMiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IF9faW5pdGRhdGEgbWF4X2NwdXM7 CiBpbnRlZ2VyX3BhcmFtKCJtYXhjcHVzIiwgbWF4X2NwdXMpOwogCiAvKiBzbWVwOiBFbmFibGUv ZGlzYWJsZSBTdXBlcnZpc29yIE1vZGUgRXhlY3V0aW9uIFByb3RlY3Rpb24gKGRlZmF1bHQgb24p LiAqLwotc3RhdGljIGJvb2xfdCBfX2luaXRkYXRhIG9wdF9zbWVwID0gMTsKLWJvb2xlYW5fcGFy YW0oInNtZXAiLCBvcHRfc21lcCk7CitzdGF0aWMgdm9pZCBwYXJzZV9zbWVwX3BhcmFtKGNoYXIg KnMpOworY3VzdG9tX3BhcmFtKCJzbWVwIiwgcGFyc2Vfc21lcF9wYXJhbSk7CiAKIC8qIHNtYXA6 IEVuYWJsZS9kaXNhYmxlIFN1cGVydmlzb3IgTW9kZSBBY2Nlc3MgUHJldmVudGlvbiAoZGVmYXVs dCBvbikuICovCi1zdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgb3B0X3NtYXAgPSAxOwotYm9vbGVh bl9wYXJhbSgic21hcCIsIG9wdF9zbWFwKTsKK3N0YXRpYyB2b2lkIHBhcnNlX3NtYXBfcGFyYW0o Y2hhciAqcyk7CitjdXN0b21fcGFyYW0oInNtYXAiLCBwYXJzZV9zbWFwX3BhcmFtKTsKIAogdW5z aWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5IGNyNF9wdjMyX21hc2s7CiAKQEAgLTExMSw2ICsxMTEs NDAgQEAgc3RydWN0IGNwdWluZm9feDg2IF9fcmVhZF9tb3N0bHkgYm9vdF9jcHVfZGF0YSA9IHsg MCwgMCwgMCwgMCwgLTEgfTsKIAogdW5zaWduZWQgbG9uZyBfX3JlYWRfbW9zdGx5IG1tdV9jcjRf ZmVhdHVyZXMgPSBYRU5fTUlOSU1BTF9DUjQ7CiAKK2ludCBvcHRfc21lcCA9IDE7CitzdGF0aWMg dm9pZCBfX2luaXQgcGFyc2Vfc21lcF9wYXJhbShjaGFyICpzKQoreworICAgIGlmICggIXN0cmNt cChzLCAiaHZtIikgKQorICAgIHsKKyAgICAgICAgb3B0X3NtZXAgPSBTTUVQX0hWTV9PTkxZOwor ICAgIH0KKyAgICBlbHNlIGlmICggIXBhcnNlX2Jvb2wocykgKQorICAgIHsKKyAgICAgICAgb3B0 X3NtZXAgPSAwOworICAgIH0KKyAgICBlbHNlIGlmICggcGFyc2VfYm9vbChzKSAmJiBvcHRfc21l cCAhPSBTTUVQX0hWTV9PTkxZICkKKyAgICB7CisgICAgICAgIG9wdF9zbWVwID0gMTsKKyAgICB9 Cit9CisKK2ludCBvcHRfc21hcCA9IDE7CitzdGF0aWMgdm9pZCBfX2luaXQgcGFyc2Vfc21hcF9w YXJhbShjaGFyICpzKQoreworICAgIGlmICggIXN0cmNtcChzLCAiaHZtIikgKQorICAgIHsKKyAg ICAgICAgb3B0X3NtYXAgPSBTTUFQX0hWTV9PTkxZOworICAgIH0KKyAgICBlbHNlIGlmICggIXBh cnNlX2Jvb2wocykgKQorICAgIHsKKyAgICAgICAgb3B0X3NtYXAgPSAwOworICAgIH0KKyAgICBl bHNlIGlmICggcGFyc2VfYm9vbChzKSAmJiBvcHRfc21hcCAhPSBTTUFQX0hWTV9PTkxZICkKKyAg ICB7CisgICAgICAgIG9wdF9zbWFwID0gMTsKKyAgICB9Cit9CisKIGJvb2xfdCBfX3JlYWRfbW9z dGx5IGFjcGlfZGlzYWJsZWQ7CiBib29sX3QgX19pbml0ZGF0YSBhY3BpX2ZvcmNlOwogc3RhdGlj IGNoYXIgX19pbml0ZGF0YSBhY3BpX3BhcmFtWzEwXSA9ICIiOwpAQCAtMTQwMywxMiArMTQzNywx MiBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9w KQogCiAgICAgaWYgKCAhb3B0X3NtZXAgKQogICAgICAgICBzZXR1cF9jbGVhcl9jcHVfY2FwKFg4 Nl9GRUFUVVJFX1NNRVApOwotICAgIGlmICggY3B1X2hhc19zbWVwICkKKyAgICBpZiAoIGNwdV9o YXNfc21lcCAmJiBvcHRfc21lcCAhPSBTTUVQX0hWTV9PTkxZICkKICAgICAgICAgc2V0X2luX2Ny NChYODZfQ1I0X1NNRVApOwogCiAgICAgaWYgKCAhb3B0X3NtYXAgKQogICAgICAgICBzZXR1cF9j bGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX1NNQVApOwotICAgIGlmICggY3B1X2hhc19zbWFwICkK KyAgICBpZiAoIGNwdV9oYXNfc21hcCAmJiBvcHRfc21hcCAhPSBTTUFQX0hWTV9PTkxZICkKICAg ICAgICAgc2V0X2luX2NyNChYODZfQ1I0X1NNQVApOwogCiAgICAgY3I0X3B2MzJfbWFzayA9IG1t dV9jcjRfZmVhdHVyZXMgJiBYRU5fQ1I0X1BWMzJfQklUUzsKQEAgLTE0MzAsOCArMTQ2NCwxOSBA QCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQog CiAgICAgYXJjaF9pbml0X21lbW9yeSgpOwogCisgICAgLyoKKyAgICAgKiBUZW1wb3JhcmlseSBj bGVhciBTTUFQIGluIGludGVybmFsIGZlYXR1cmUgYml0bWFwIHRvIGF2b2lkCisgICAgICogcGF0 Y2hpbmcgdW5uZWNlc3NhcnkgU01BUCBpbnN0cnVjdGlvbnMgd2hlbiBTTUFQIGlzIGRpc2FibGVk IGluCisgICAgICogWGVuIGh5cGVydmlzb3IuCisgICAgICovCisgICAgaWYgKCBvcHRfc21hcCA9 PSBTTUFQX0hWTV9PTkxZICkKKyAgICAgICAgX19jbGVhcl9iaXQoWDg2X0ZFQVRVUkVfU01BUCwg Ym9vdF9jcHVfZGF0YS54ODZfY2FwYWJpbGl0eSk7CisKICAgICBhbHRlcm5hdGl2ZV9pbnN0cnVj dGlvbnMoKTsKIAorICAgIGlmICggb3B0X3NtYXAgPT0gU01BUF9IVk1fT05MWSApCisgICAgICAg IF9fc2V0X2JpdChYODZfRkVBVFVSRV9TTUFQLCBib290X2NwdV9kYXRhLng4Nl9jYXBhYmlsaXR5 KTsKKwogICAgIGxvY2FsX2lycV9lbmFibGUoKTsKIAogICAgIHB0X3BjaV9pbml0KCk7CkBAIC0x NTUwLDcgKzE1OTUsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25l ZCBsb25nIG1iaV9wKQogICAgICAqIFRoaXMgc2F2ZXMgYSBsYXJnZSBudW1iZXIgb2YgY29ybmVy IGNhc2VzIGludGVyYWN0aW9ucyB3aXRoCiAgICAgICogY29weV9mcm9tX3VzZXIoKS4KICAgICAg Ki8KLSAgICBpZiAoIGNwdV9oYXNfc21hcCApCisgICAgaWYgKCBjcHVfaGFzX3NtYXAgJiYgb3B0 X3NtYXAgIT0gU01BUF9IVk1fT05MWSApCiAgICAgewogICAgICAgICBjcjRfcHYzMl9tYXNrICY9 IH5YODZfQ1I0X1NNQVA7CiAgICAgICAgIHdyaXRlX2NyNChyZWFkX2NyNCgpICYgflg4Nl9DUjRf U01BUCk7CkBAIC0xNTcwLDcgKzE2MTUsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0 X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAgICAgICAgICAgICAgICAgYm9vdHN0 cmFwX21hcCwgY21kbGluZSkgIT0gMCkKICAgICAgICAgcGFuaWMoIkNvdWxkIG5vdCBzZXQgdXAg RE9NMCBndWVzdCBPUyIpOwogCi0gICAgaWYgKCBjcHVfaGFzX3NtYXAgKQorICAgIGlmICggY3B1 X2hhc19zbWFwICYmIG9wdF9zbWFwICE9IFNNQVBfSFZNX09OTFkgKQogICAgIHsKICAgICAgICAg d3JpdGVfY3I0KHJlYWRfY3I0KCkgfCBYODZfQ1I0X1NNQVApOwogICAgICAgICBjcjRfcHYzMl9t YXNrIHw9IFg4Nl9DUjRfU01BUDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90cmFwcy5jIGIv eGVuL2FyY2gveDg2L3RyYXBzLmMKaW5kZXggZTgyMjcxOS4uNTg5ODljNCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L3RyYXBzLmMKKysrIGIveGVuL2FyY2gveDg2L3RyYXBzLmMKQEAgLTc3LDYg Kzc3LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvYXJjaC14ODYvY3B1aWQuaD4KICNpbmNsdWRlIDxh c20vY3B1aWQuaD4KICNpbmNsdWRlIDx4c20veHNtLmg+CisjaW5jbHVkZSA8YXNtL3NldHVwLmg+ CiAKIC8qCiAgKiBvcHRfbm1pOiBvbmUgb2YgJ2lnbm9yZScsICdkb20wJywgb3IgJ2ZhdGFsJy4K QEAgLTEwOTgsNiArMTA5OSwxMiBAQCB2b2lkIHB2X2NwdWlkKHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogICAgICAgICAgICAgYiB8PSAoaG9zdF9mZWF0dXJlc2V0W0ZFQVRVUkVTRVRfN2Iw XSAmCiAgICAgICAgICAgICAgICAgICBzcGVjaWFsX2ZlYXR1cmVzW0ZFQVRVUkVTRVRfN2IwXSk7 CiAKKyAgICAgICAgICAgIGlmICggb3B0X3NtZXAgPT0gU01FUF9IVk1fT05MWSApCisgICAgICAg ICAgICAgICAgYiAmPSB+Y3B1ZmVhdF9tYXNrKFg4Nl9GRUFUVVJFX1NNRVApOworCisgICAgICAg ICAgICBpZiAoIG9wdF9zbWFwID09IFNNQVBfSFZNX09OTFkgKQorICAgICAgICAgICAgICAgIGIg Jj0gfmNwdWZlYXRfbWFzayhYODZfRkVBVFVSRV9TTUFQKTsKKwogICAgICAgICAgICAgYyAmPSBw dl9mZWF0dXJlc2V0W0ZFQVRVUkVTRVRfN2MwXTsKIAogICAgICAgICAgICAgaWYgKCAhaXNfcHZo X2RvbWFpbihjdXJyZCkgKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5o IGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9zZXR1cC5oCmluZGV4IGM2NWI3OWMuLjcxMDJiNWMgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvc2V0dXAuaAorKysgYi94ZW4vaW5jbHVkZS9h c20teDg2L3NldHVwLmgKQEAgLTUxLDYgKzUxLDEyIEBAIHZvaWQgbWljcm9jb2RlX2dyYWJfbW9k dWxlKAogCiBleHRlcm4gdWludDhfdCBrYmRfc2hpZnRfZmxhZ3M7CiAKKyNkZWZpbmUgU01FUF9I Vk1fT05MWSAtMQorZXh0ZXJuIGludCBvcHRfc21lcDsKKworI2RlZmluZSBTTUFQX0hWTV9PTkxZ IC0xCitleHRlcm4gaW50IG9wdF9zbWFwOworCiAjaWZkZWYgTkRFQlVHCiAjIGRlZmluZSBoaWdo bWVtX3N0YXJ0IDAKICNlbHNlCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxp c3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=