From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/3] x86/hvm: Improvements to external users of decode_register() Date: Fri, 26 Jan 2018 13:16:39 +0000 Message-ID: <1516972600-26262-3-git-send-email-andrew.cooper3@citrix.com> References: <1516972600-26262-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: <1516972600-26262-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 , Kevin Tian , Jun Nakajima , Jan Beulich List-Id: xen-devel@lists.xenproject.org ICogUmVuYW1lIHRvIGRlY29kZV9ncHIoKSB0byBiZSBtb3JlIHNwZWNpZmljIGFzIHRvIGl0cyBw dXJwb3NlCiAqIERyb3AgdGhlIGhpZ2hieXRlIGVuY29kaW5nIGhhbmRsaW5nLCBhcyB1c2VycyBj YXJlLCBhbmQgaXQgdW5saWtlbHkgdGhhdAogICBmdXR1cmUgdXNlcnMgd291bGQgY2FyZS4KICog Q2hhbmdlIHRvIGEgc3RhdGljIGlubGluZSwgcmV0dXJuaW5nIGFuIHVuc2lnbmVkIGxvbmcgcG9p bnRlci4KCkRvaW5nIHNvIGhpZ2hsaWdodHMgdGhhdCB0aGUgImludmFsaWQgZ3ByIiBwYXRocyBp biBodm1fbW92X3t0byxmcm9tfV9jcigpCndlcmUgYWN0dWFsbHkgdW5yZWFjaGFibGUuICBBbGwg Y2FsbGVycyBhbHJlYWR5IHBhc3NlZCBpbi1yYW5nZSBncHJzLCB3aGljaAp3b3VsZCBoYXZlIGhp dCBhIEJVRygpIHByZXZpb3VzbHkuCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRy ZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNl LmNvbT4KQ0M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4KQ0M6IEtldmlu IFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKRnV0dXJlIHdvcms6IFdlIHNob3VsZCBoYXZl IGdwcl97cmVhZCx3cml0ZX0oKSBoZWxwZXJzIHdoaWNoIHN1aXRhYmx5CmNhc3QvdHJ1bmNhdGUg dmFsdWVzLCBiZWNhdXNlIGFsbCB0aGVzZSBjYWxsc2l0ZXMgaGF2ZSBicm9rZW4gY29ybmVyIGNh c2VzLApidXQgdGhhdCBpbnZvbHZlcyB3aXJpbmcgdGhlIGN1cnJlbnQgb3BlcmFuZCBzaXplIHRo b3VnaHQsIHdoaWNoIEkgaGF2ZW4ndCBnb3QKdGltZSB0byBkbyByaWdodCBub3cuCi0tLQogeGVu L2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgICAgfCAxNyArKy0tLS0tLS0tLS0tLS0t LQogeGVuL2FyY2gveDg2L2h2bS92bXgvdnZteC5jICAgICAgICAgICAgfCAxNiArKystLS0tLS0t LS0tLS0tCiB4ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYyB8ICAyICstCiB4 ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuaCB8IDI1ICsrKysrKysrKysrKysr KysrKysrKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4 Ni9odm0vaHZtLmMKaW5kZXggMjY4OTA0Ni4uNTllZjc1NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0yMDU5LDE2ICsy MDU5LDkgQEAgc3RhdGljIHZvaWQgaHZtX3NldF91Y19tb2RlKHN0cnVjdCB2Y3B1ICp2LCBib29s X3QgaXNfaW5fdWNfbW9kZSkKIGludCBodm1fbW92X3RvX2NyKHVuc2lnbmVkIGludCBjciwgdW5z aWduZWQgaW50IGdwcikKIHsKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAg dW5zaWduZWQgbG9uZyB2YWwsICpyZWc7CisgICAgdW5zaWduZWQgbG9uZyB2YWwgPSAqZGVjb2Rl X2dwcihndWVzdF9jcHVfdXNlcl9yZWdzKCksIGdwcik7CiAgICAgaW50IHJjOwogCi0gICAgaWYg KCAocmVnID0gZGVjb2RlX3JlZ2lzdGVyKGdwciwgZ3Vlc3RfY3B1X3VzZXJfcmVncygpLCAwKSkg PT0gTlVMTCApCi0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAiaW52YWxpZCBn cHI6ICV1XG4iLCBncHIpOwotICAgICAgICBnb3RvIGV4aXRfYW5kX2NyYXNoOwotICAgIH0KLQot ICAgIHZhbCA9ICpyZWc7CiAgICAgSFZNVFJBQ0VfTE9OR18yRChDUl9XUklURSwgY3IsIFRSQ19Q QVJfTE9ORyh2YWwpKTsKICAgICBIVk1fREJHX0xPRyhEQkdfTEVWRUxfMSwgIkNSJXUsIHZhbHVl ID0gJWx4IiwgY3IsIHZhbCk7CiAKQEAgLTIxMDksMTMgKzIxMDIsNyBAQCBpbnQgaHZtX21vdl90 b19jcih1bnNpZ25lZCBpbnQgY3IsIHVuc2lnbmVkIGludCBncHIpCiBpbnQgaHZtX21vdl9mcm9t X2NyKHVuc2lnbmVkIGludCBjciwgdW5zaWduZWQgaW50IGdwcikKIHsKICAgICBzdHJ1Y3QgdmNw dSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAgdW5zaWduZWQgbG9uZyB2YWwgPSAwLCAqcmVnOwotCi0g ICAgaWYgKCAocmVnID0gZGVjb2RlX3JlZ2lzdGVyKGdwciwgZ3Vlc3RfY3B1X3VzZXJfcmVncygp LCAwKSkgPT0gTlVMTCApCi0gICAgewotICAgICAgICBnZHByaW50ayhYRU5MT0dfRVJSLCAiaW52 YWxpZCBncHI6ICV1XG4iLCBncHIpOwotICAgICAgICBnb3RvIGV4aXRfYW5kX2NyYXNoOwotICAg IH0KKyAgICB1bnNpZ25lZCBsb25nIHZhbCA9IDAsICpyZWcgPSBkZWNvZGVfZ3ByKGd1ZXN0X2Nw dV91c2VyX3JlZ3MoKSwgZ3ByKTsKIAogICAgIHN3aXRjaCAoIGNyICkKICAgICB7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZteC92dm14LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92 dm14LmMKaW5kZXggODg1ZWFiMy4uZGZlOTdiOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS92bXgvdnZteC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3Z2bXguYwpAQCAtMzQ3LDE4 ICszNDcsMTQgQEAgZW51bSB2bXhfaW5zbl9lcnJubyBzZXRfdnZtY3NfcmVhbF9zYWZlKGNvbnN0 IHN0cnVjdCB2Y3B1ICp2LCB1MzIgZW5jb2RpbmcsCiBzdGF0aWMgdW5zaWduZWQgbG9uZyByZWdf cmVhZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBpbmRleCkKIHsKLSAgICB1bnNpZ25lZCBsb25nICpwdmFsID0g ZGVjb2RlX3JlZ2lzdGVyKGluZGV4LCByZWdzLCAwKTsKLQotICAgIHJldHVybiAqcHZhbDsKKyAg ICByZXR1cm4gKmRlY29kZV9ncHIocmVncywgaW5kZXgpOwogfQogCiBzdGF0aWMgdm9pZCByZWdf d3JpdGUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGluZGV4LAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg dmFsdWUpCiB7Ci0gICAgdW5zaWduZWQgbG9uZyAqcHZhbCA9IGRlY29kZV9yZWdpc3RlcihpbmRl eCwgcmVncywgMCk7Ci0KLSAgICAqcHZhbCA9IHZhbHVlOworICAgICpkZWNvZGVfZ3ByKHJlZ3Ms IGluZGV4KSA9IHZhbHVlOwogfQogCiBzdGF0aWMgaW5saW5lIHUzMiBfX24yX3Bpbl9leGVjX2Nv bnRyb2woc3RydWN0IHZjcHUgKnYpCkBAIC0yNDgzLDE0ICsyNDc5LDggQEAgaW50IG52bXhfbjJf dm1leGl0X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsCiAgICAgICAgICAgICBj YXNlIFZNWF9DT05UUk9MX1JFR19BQ0NFU1NfVFlQRV9NT1ZfVE9fQ1I6CiAgICAgICAgICAgICB7 CiAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBncCA9IFZNWF9DT05UUk9MX1JFR19BQ0NF U1NfR1BSKGV4aXRfcXVhbGlmaWNhdGlvbik7Ci0gICAgICAgICAgICAgICAgdW5zaWduZWQgbG9u ZyAqcmVnOworICAgICAgICAgICAgICAgIHZhbCA9ICpkZWNvZGVfZ3ByKGd1ZXN0X2NwdV91c2Vy X3JlZ3MoKSwgZ3ApOwogCi0gICAgICAgICAgICAgICAgaWYgKCAocmVnID0gZGVjb2RlX3JlZ2lz dGVyKGdwLCBndWVzdF9jcHVfdXNlcl9yZWdzKCksIDApKSA9PSBOVUxMICkKLSAgICAgICAgICAg ICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGdkcHJpbnRrKFhFTkxPR19FUlIsICJpbnZhbGlk IGdwcjogJWx4XG4iLCBncCk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICB2YWwgPSAqcmVnOwogICAgICAgICAgICAgICAgIGlm ICggY3IgPT0gMCApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICB1NjQg Y3IwX2doX21hc2sgPSBnZXRfdnZtY3ModiwgQ1IwX0dVRVNUX0hPU1RfTUFTSyk7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxhdGUveDg2X2VtdWxhdGUuYyBiL3hlbi9hcmNoL3g4 Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCmluZGV4IDNmNTYzNmYuLjcwYzM4YTIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCisrKyBiL3hlbi9h cmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5jCkBAIC00MDAsNyArNDAwLDcgQEAgc3Rh dGljIGNvbnN0IHVpbnQ4X3QgcG1vdl9jb252ZXJ0X2RlbHRhW10gPSB7IDEsIDIsIDMsIDEsIDIs IDEgfTsKICAqIE1hcCBHUFJzIGJ5IE1vZFJNIGVuY29kaW5nIHRvIHRoZWlyIG9mZnNldCB3aXRo aW4gc3RydWN0IGNwdV91c2VyX3JlZ3MuCiAgKiBUaGUgQUgsQ0gsREgsQkggb2Zmc2V0cyBhcmUg bWlzYWxpZ25lZC4KICAqLwotc3RhdGljIGNvbnN0IHVpbnQ4X3QgY3B1X3VzZXJfcmVnc19ncHJf b2Zmc2V0c1tdID0geworY29uc3QgdWludDhfdCBjcHVfdXNlcl9yZWdzX2dwcl9vZmZzZXRzW10g PSB7CiAgICAgb2Zmc2V0b2Yoc3RydWN0IGNwdV91c2VyX3JlZ3MsIHIoYXgpKSwKICAgICBvZmZz ZXRvZihzdHJ1Y3QgY3B1X3VzZXJfcmVncywgcihjeCkpLAogICAgIG9mZnNldG9mKHN0cnVjdCBj cHVfdXNlcl9yZWdzLCByKGR4KSksCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2X2VtdWxh dGUveDg2X2VtdWxhdGUuaCBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11bGF0ZS5o CmluZGV4IDBjOGM4MGEuLjVjZGNmZGQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfZW11 bGF0ZS94ODZfZW11bGF0ZS5oCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfZW11bGF0ZS94ODZfZW11 bGF0ZS5oCkBAIC0yNSw2ICsyNSwxNCBAQAogCiAjZGVmaW5lIE1BWF9JTlNUX0xFTiAxNQogCisj aWYgZGVmaW5lZChfX2kzODZfXykKKyMgZGVmaW5lIFg4Nl9OUl9HUFJTIDgKKyNlbGlmIGRlZmlu ZWQoX194ODZfNjRfXykKKyMgZGVmaW5lIFg4Nl9OUl9HUFJTIDE2CisjZWxzZQorIyBlcnJvciBV bmtub3duIGNvbXBpbGF0aW9uIHdpZHRoCisjZW5kaWYKKwogc3RydWN0IHg4Nl9lbXVsYXRlX2N0 eHQ7CiAKIC8qCkBAIC02MDEsMTQgKzYwOSwyMyBAQCBpbnQgeDg2X2VtdWxhdGVfd3JhcHBlcigK ICNkZWZpbmUgeDg2X2VtdWxhdGUgeDg2X2VtdWxhdGVfd3JhcHBlcgogI2VuZGlmCiAKKy8qIE1h cCBHUFJzIGJ5IE1vZFJNIGVuY29kaW5nIHRvIHRoZWlyIG9mZnNldCB3aXRoaW4gc3RydWN0IGNw dV91c2VyX3JlZ3MuICovCitleHRlcm4gY29uc3QgdWludDhfdCBjcHVfdXNlcl9yZWdzX2dwcl9v ZmZzZXRzW1g4Nl9OUl9HUFJTXTsKKwogLyoKICAqIEdpdmVuIHRoZSAncmVnJyBwb3J0aW9uIG9m IGEgTW9kUk0gYnl0ZSwgYW5kIGEgcmVnaXN0ZXIgYmxvY2ssIHJldHVybiBhCiAgKiBwb2ludGVy IGludG8gdGhlIGJsb2NrIHRoYXQgYWRkcmVzc2VzIHRoZSByZWxldmFudCByZWdpc3Rlci4KLSAq IEBoaWdoYnl0ZV9yZWdzIHNwZWNpZmllcyB3aGV0aGVyIHRvIGRlY29kZSBBSCxDSCxESCxCSC4K ICAqLwotdm9pZCAqCi1kZWNvZGVfcmVnaXN0ZXIoCi0gICAgdWludDhfdCBtb2RybV9yZWcsIHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBpbnQgaGlnaGJ5dGVfcmVncyk7CitzdGF0aWMgaW5s aW5lIHVuc2lnbmVkIGxvbmcgKmRlY29kZV9ncHIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3Ms CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1v ZHJtKQoreworICAgIEFTU0VSVChtb2RybSA8IEFSUkFZX1NJWkUoY3B1X3VzZXJfcmVnc19ncHJf b2Zmc2V0cykpOworCisgICAgLyogRm9yIHNhZmV0eSBpbiByZWxlYXNlIGJ1aWxkcy4gIERlYnVn IGJ1aWxkcyB3aWxsIGhpdCB0aGUgQVNTRVJUKCkgKi8KKyAgICBtb2RybSAmPSBBUlJBWV9TSVpF KGNwdV91c2VyX3JlZ3NfZ3ByX29mZnNldHMpIC0gMTsKKworICAgIHJldHVybiAodm9pZCAqKXJl Z3MgKyBjcHVfdXNlcl9yZWdzX2dwcl9vZmZzZXRzW21vZHJtXTsKK30KIAogLyogVW5oYW5kbGVh YmxlIHJlYWQsIHdyaXRlIG9yIGluc3RydWN0aW9uIGZldGNoICovCiBpbnQKLS0gCjIuMS40CgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==