From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 11/27] x86/hvm: Improve hvm_efer_valid() using named features Date: Wed, 4 Jan 2017 12:39:28 +0000 Message-ID: <1483533584-8015-12-git-send-email-andrew.cooper3@citrix.com> References: <1483533584-8015-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: <1483533584-8015-1-git-send-email-andrew.cooper3@citrix.com> 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 , Jan Beulich List-Id: xen-devel@lists.xenproject.org UGljayB0aGUgYXBwcm9wcmlhdGUgY3B1aWRfcG9saWN5IG9iamVjdCByYXRoZXIgdGhhbiB1c2lu ZyBodm1fY3B1aWQoKSBvcgpib290X2NwdV9kYXRhLiAgVGhpcyBicmVha3MgdGhlIGRlcGVuZGVu Y3kgb24gY3VycmVudC4KCkFzIGRhdGEgaXMgcmVhZCBzdHJhaWdodCBvdXQgb2YgY3B1aWRfcG9s aWN5LCB0aGVyZSBpcyBubyBuZWVkIHRvIHdvcmsgYXJvdW5kCnRoZSBmYWN0IHRoYXQgWDg2X0ZF QVRVUkVfU1lTQ0FMTCBtaWdodCBiZSBjbGVhciBiZWNhdXNlIG9mIHRoZSBkeW5hbWljCmFkanVz dG1lbnQgaW4gaHZtX2NwdWlkKCkuICBUaGlzIHNpbXBsaWZpZXMgdGhlIFNDRSBoYW5kbGluZywg YXMgRUZFUi5TQ0UgY2FuCmJlIHNldCBpbiBpc29sYXRpb24gaW4gMzJiaXQgbW9kZSBvbiBJbnRl bCBoYXJkd2FyZS4KCkFsdGVyIG5lc3RlZGh2bV9lbmFibGVkKCkgdG8gYmUgY29uc3QtY29ycmVj dCwgYWxsb3dpbmcgaHZtX2VmZXJfdmFsaWQoKSB0byBiZQpwcm9wZXJseSBjb25zdC1jb3JyZWN0 LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5jb20+Ci0tLQogeGVuL2FyY2gv eDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgfCA0MyArKysrKysrKysrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL25lc3RlZGh2bS5jICAgICAgICB8ICA2ICsr LS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggICAgICAgfCAgMyArLS0KIHhlbi9p bmNsdWRlL2FzbS14ODYvaHZtL25lc3RlZGh2bS5oIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwg MTUgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gv eDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggYmRmOGNhOC4uZDY1 MWQwYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jCkBAIC05MTQsNTYgKzkxNCwzNSBAQCBzdGF0aWMgaW50IGh2bV9zYXZlX2Nw dV9jdHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogfQogCiAv KiBSZXR1cm4gYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgZXJyb3IsIG9yIE5VTEwgZm9yIHZhbGlk LiAqLwotY29uc3QgY2hhciAqaHZtX2VmZXJfdmFsaWQoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVp bnQ2NF90IHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCBjcjBf cGcpCitjb25zdCBjaGFyICpodm1fZWZlcl92YWxpZChjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWlu dDY0X3QgdmFsdWUsIGludCBjcjBfcGcpCiB7Ci0gICAgdW5zaWduZWQgaW50IGV4dDFfZWN4ID0g MCwgZXh0MV9lZHggPSAwOworICAgIGNvbnN0IHN0cnVjdCBkb21haW4gKmQgPSB2LT5kb21haW47 CisgICAgY29uc3Qgc3RydWN0IGNwdWlkX3BvbGljeSAqcDsKIAotICAgIGlmICggY3IwX3BnIDwg MCAmJiAhaXNfaGFyZHdhcmVfZG9tYWluKHYtPmRvbWFpbikgKQotICAgIHsKLSAgICAgICAgdW5z aWduZWQgaW50IGxldmVsOwotCi0gICAgICAgIEFTU0VSVCh2LT5kb21haW4gPT0gY3VycmVudC0+ ZG9tYWluKTsKLSAgICAgICAgaHZtX2NwdWlkKDB4ODAwMDAwMDAsICZsZXZlbCwgTlVMTCwgTlVM TCwgTlVMTCk7Ci0gICAgICAgIGlmICggKGxldmVsID4+IDE2KSA9PSAweDgwMDAgJiYgbGV2ZWwg PiAweDgwMDAwMDAwICkKLSAgICAgICAgICAgIGh2bV9jcHVpZCgweDgwMDAwMDAxLCBOVUxMLCBO VUxMLCAmZXh0MV9lY3gsICZleHQxX2VkeCk7Ci0gICAgfQorICAgIGlmICggY3IwX3BnIDwgMCAm JiAhaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKKyAgICAgICAgcCA9IGQtPmFyY2guY3B1aWQ7CiAg ICAgZWxzZQotICAgIHsKLSAgICAgICAgZXh0MV9lZHggPSBib290X2NwdV9kYXRhLng4Nl9jYXBh YmlsaXR5W2NwdWZlYXRfd29yZChYODZfRkVBVFVSRV9MTSldOwotICAgICAgICBleHQxX2VjeCA9 IGJvb3RfY3B1X2RhdGEueDg2X2NhcGFiaWxpdHlbY3B1ZmVhdF93b3JkKFg4Nl9GRUFUVVJFX1NW TSldOwotICAgIH0KKyAgICAgICAgcCA9ICZob3N0X3BvbGljeTsKIAotICAgIC8qCi0gICAgICog R3Vlc3RzIG1heSB3YW50IHRvIHNldCBFRkVSLlNDRSBhbmQgRUZFUi5MTUUgYXQgdGhlIHNhbWUg dGltZSwgc28gd2UKLSAgICAgKiBjYW4ndCBtYWtlIHRoZSBjaGVjayBkZXBlbmQgb24gb25seSBY ODZfRkVBVFVSRV9TWVNDQUxMICh3aGljaCBvbiBWTVgKLSAgICAgKiB3aWxsIGJlIGNsZWFyIHdp dGhvdXQgdGhlIGd1ZXN0IGhhdmluZyBlbnRlcmVkIDY0LWJpdCBtb2RlKS4KLSAgICAgKi8KLSAg ICBpZiAoICh2YWx1ZSAmIEVGRVJfU0NFKSAmJgotICAgICAgICAgIShleHQxX2VkeCAmIGNwdWZl YXRfbWFzayhYODZfRkVBVFVSRV9TWVNDQUxMKSkgJiYKLSAgICAgICAgIChjcjBfcGcgPj0gMCB8 fCAhKHZhbHVlICYgRUZFUl9MTUUpKSApCisgICAgaWYgKCAodmFsdWUgJiBFRkVSX1NDRSkgJiYg IXAtPmV4dGQuc3lzY2FsbCApCiAgICAgICAgIHJldHVybiAiU0NFIHdpdGhvdXQgZmVhdHVyZSI7 CiAKLSAgICBpZiAoICh2YWx1ZSAmIChFRkVSX0xNRSB8IEVGRVJfTE1BKSkgJiYKLSAgICAgICAg ICEoZXh0MV9lZHggJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfTE0pKSApCisgICAgaWYgKCAo dmFsdWUgJiAoRUZFUl9MTUUgfCBFRkVSX0xNQSkpICYmICFwLT5leHRkLmxtICkKICAgICAgICAg cmV0dXJuICJMTUUvTE1BIHdpdGhvdXQgZmVhdHVyZSI7CiAKICAgICBpZiAoICh2YWx1ZSAmIEVG RVJfTE1BKSAmJiAoISh2YWx1ZSAmIEVGRVJfTE1FKSB8fCAhY3IwX3BnKSApCiAgICAgICAgIHJl dHVybiAiTE1BL0xNRS9DUjAuUEcgaW5jb25zaXN0ZW5jeSI7CiAKLSAgICBpZiAoICh2YWx1ZSAm IEVGRVJfTlgpICYmICEoZXh0MV9lZHggJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfTlgpKSAp CisgICAgaWYgKCAodmFsdWUgJiBFRkVSX05YKSAmJiAhcC0+ZXh0ZC5ueCApCiAgICAgICAgIHJl dHVybiAiTlggd2l0aG91dCBmZWF0dXJlIjsKIAotICAgIGlmICggKHZhbHVlICYgRUZFUl9TVk1F KSAmJgotICAgICAgICAgKCEoZXh0MV9lY3ggJiBjcHVmZWF0X21hc2soWDg2X0ZFQVRVUkVfU1ZN KSkgfHwKLSAgICAgICAgICAhbmVzdGVkaHZtX2VuYWJsZWQodi0+ZG9tYWluKSkgKQorICAgIGlm ICggKHZhbHVlICYgRUZFUl9TVk1FKSAmJiAoIXAtPmV4dGQuc3ZtIHx8ICFuZXN0ZWRodm1fZW5h YmxlZChkKSkgKQogICAgICAgICByZXR1cm4gIlNWTUUgd2l0aG91dCBuZXN0ZWQgdmlydCI7CiAK ICAgICBpZiAoICh2YWx1ZSAmIEVGRVJfTE1TTEUpICYmICFjcHVfaGFzX2xtc2wgKQogICAgICAg ICByZXR1cm4gIkxNU0xFIHdpdGhvdXQgc3VwcG9ydCI7CiAKLSAgICBpZiAoICh2YWx1ZSAmIEVG RVJfRkZYU0UpICYmCi0gICAgICAgICAhKGV4dDFfZWR4ICYgY3B1ZmVhdF9tYXNrKFg4Nl9GRUFU VVJFX0ZGWFNSKSkgKQorICAgIGlmICggKHZhbHVlICYgRUZFUl9GRlhTRSkgJiYgIXAtPmV4dGQu ZmZ4c3IgKQogICAgICAgICByZXR1cm4gIkZGWFNFIHdpdGhvdXQgZmVhdHVyZSI7CiAKICAgICBy ZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vbmVzdGVkaHZtLmMgYi94 ZW4vYXJjaC94ODYvaHZtL25lc3RlZGh2bS5jCmluZGV4IGMwOWM1YjIuLmE0MDBkNTUgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vbmVzdGVkaHZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2 bS9uZXN0ZWRodm0uYwpAQCAtMjcsMTEgKzI3LDkgQEAKIHN0YXRpYyB1bnNpZ25lZCBsb25nICpz aGFkb3dfaW9fYml0bWFwWzNdOwogCiAvKiBOZXN0ZWQgSFZNIG9uL29mZiBwZXIgZG9tYWluICov Ci1ib29sX3QKLW5lc3RlZGh2bV9lbmFibGVkKHN0cnVjdCBkb21haW4gKmQpCitib29sIG5lc3Rl ZGh2bV9lbmFibGVkKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgcmV0dXJuIGlzX2h2 bV9kb21haW4oZCkgJiYKLSAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1f UEFSQU1fTkVTVEVESFZNXTsKKyAgICByZXR1cm4gaXNfaHZtX2RvbWFpbihkKSAmJiBkLT5hcmNo Lmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9ORVNURURIVk1dOwogfQogCiAvKiBOZXN0ZWQg VkNQVSAqLwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggYi94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAppbmRleCA4Yzk1YzA4Li40MjQ4NTQ2IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9odm0uaApAQCAtNjEzLDggKzYxMyw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhbHRw Mm1fdmNwdV9lbXVsYXRlX3ZlKHN0cnVjdCB2Y3B1ICp2KQogfQogCiAvKiBDaGVjayBDUjQvRUZF UiB2YWx1ZXMgKi8KLWNvbnN0IGNoYXIgKmh2bV9lZmVyX3ZhbGlkKGNvbnN0IHN0cnVjdCB2Y3B1 ICp2LCB1aW50NjRfdCB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBp bnQgY3IwX3BnKTsKK2NvbnN0IGNoYXIgKmh2bV9lZmVyX3ZhbGlkKGNvbnN0IHN0cnVjdCB2Y3B1 ICp2LCB1aW50NjRfdCB2YWx1ZSwgaW50IGNyMF9wZyk7CiB1bnNpZ25lZCBsb25nIGh2bV9jcjRf Z3Vlc3RfcmVzZXJ2ZWRfYml0cyhjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgYm9vbF90IHJlc3RvcmUp OwogCiAvKgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vbmVzdGVkaHZtLmgg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaAppbmRleCBiYzgyNDI1Li40NzE2 NWZjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9uZXN0ZWRodm0uaApAQCAtMzMsNyArMzMsNyBAQCBl bnVtIG5lc3RlZGh2bV92bWV4aXRzIHsKIH07CiAKIC8qIE5lc3RlZCBIVk0gb24vb2ZmIHBlciBk b21haW4gKi8KLWJvb2xfdCBuZXN0ZWRodm1fZW5hYmxlZChzdHJ1Y3QgZG9tYWluICpkKTsKK2Jv b2wgbmVzdGVkaHZtX2VuYWJsZWQoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCk7CiAKIC8qIE5lc3Rl ZCBWQ1BVICovCiBpbnQgbmVzdGVkaHZtX3ZjcHVfaW5pdGlhbGlzZShzdHJ1Y3QgdmNwdSAqdik7 Ci0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=