From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 08/27] x86/hvm: Dispatch cpuid_viridian_leaves() from guest_cpuid() Date: Wed, 4 Jan 2017 12:39:25 +0000 Message-ID: <1483533584-8015-9-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 Li4uIHJhdGhlciB0aGFuIGZyb20gdGhlIGxlZ2FjeSBwYXRoLiAgVXBkYXRlIHRoZSBBUEkgdG8g bWF0Y2ggZ3Vlc3RfY3B1aWQoKSwKYW5kIHJlbW92ZSBpdHMgZGVwZW5kZW5jZSBvbiBjdXJyZW50 LgoKT25lIGNoZWNrIGFnYWluc3QgRUZFUl9TVk1FIGlzIHJlcGxhY2VkIHdpdGggdGhlIG1vcmUg YXBwcm9wcmlhdGUgY3B1X2hhc19zdm0sCndoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciBNU1IgYml0 bWFwcyBhcmUgYXZhaWxhYmxlLiAgTWFrZSB1c2Ugb2YgZ3Vlc3RfY3B1aWQoKQp1bmNvbmRpdGlv bmFsbHkgemVyb2luZyByZXMgdG8gYXZvaWQgcmVwZWF0ZWQgcmUtemVyb2luZy4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzog SmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9jcHVpZC5j ICAgICAgICAgICAgICAgfCAxMyArKysrKysrKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAg ICAgICAgICB8ICAzIC0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMgICAgICAgIHwgNjUg KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL3ZpcmlkaWFuLmggfCAgOSArKy0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdWlk LmMgYi94ZW4vYXJjaC94ODYvY3B1aWQuYwppbmRleCAzNmQxMWMwLi5jMzhlNDc3IDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvY3B1aWQuYworKysgYi94ZW4vYXJjaC94ODYvY3B1aWQuYwpAQCAt MzE5LDggKzMxOSwyMSBAQCBpbnQgaW5pdF9kb21haW5fY3B1aWRfcG9saWN5KHN0cnVjdCBkb21h aW4gKmQpCiB2b2lkIGd1ZXN0X2NwdWlkKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBp bnQgbGVhZiwKICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHN1YmxlYWYsIHN0cnVjdCBj cHVpZF9sZWFmICpyZXMpCiB7CisgICAgY29uc3Qgc3RydWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFp bjsKKwogICAgICpyZXMgPSBFTVBUWV9MRUFGOwogCisgICAgLyoKKyAgICAgKiBGaXJzdCBwYXNz OgorICAgICAqIC0gRGlzcGF0Y2ggdGhlIHZpcnR1YWxpc2VkIGxlYXZlcyB0byB0aGVpciByZXNw ZWN0aXZlIGhhbmRsZXJzLgorICAgICAqLworICAgIHN3aXRjaCAoIGxlYWYgKQorICAgIHsKKyAg ICBjYXNlIDB4NDAwMDAwMDAgLi4uIDB4NDAwMDAwZmY6CisgICAgICAgIGlmICggaXNfdmlyaWRp YW5fZG9tYWluKGQpICkKKyAgICAgICAgICAgIHJldHVybiBjcHVpZF92aXJpZGlhbl9sZWF2ZXMo diwgbGVhZiwgc3VibGVhZiwgcmVzKTsKKyAgICB9CisKICAgICAvKiB7cHYsaHZtfV9jcHVpZCgp IGhhdmUgdGhpcyBleHBlY3RhdGlvbi4gKi8KICAgICBBU1NFUlQodiA9PSBjdXJyZW50KTsKIApk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMKaW5kZXggNzBhZmNjNi4uY2UyNzg1ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9o dm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0zMzUzLDkgKzMzNTMsNiBAQCB2 b2lkIGh2bV9jcHVpZCh1bnNpZ25lZCBpbnQgaW5wdXQsIHVuc2lnbmVkIGludCAqZWF4LCB1bnNp Z25lZCBpbnQgKmVieCwKICAgICBpZiAoICFlZHggKQogICAgICAgICBlZHggPSAmZHVtbXk7CiAK LSAgICBpZiAoIGNwdWlkX3ZpcmlkaWFuX2xlYXZlcyhpbnB1dCwgZWF4LCBlYngsIGVjeCwgZWR4 KSApCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmICggY3B1aWRfaHlwZXJ2aXNvcl9sZWF2ZXMo aW5wdXQsIGNvdW50LCBlYXgsIGVieCwgZWN4LCBlZHgpICkKICAgICAgICAgcmV0dXJuOwogCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMgYi94ZW4vYXJjaC94ODYvaHZt L3ZpcmlkaWFuLmMKaW5kZXggZjZhYmRkMi4uZjJhYzBhYiAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS92aXJpZGlhbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwpAQCAt NjYsNzcgKzY2LDc0IEBACiAjZGVmaW5lIENQVUlENkFfTVNSX0JJVE1BUFMgICAgICgxIDw8IDEp CiAjZGVmaW5lIENQVUlENkFfTkVTVEVEX1BBR0lORyAgICgxIDw8IDMpCiAKLWludCBjcHVpZF92 aXJpZGlhbl9sZWF2ZXModW5zaWduZWQgaW50IGxlYWYsIHVuc2lnbmVkIGludCAqZWF4LAotICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmVieCwgdW5zaWduZWQgaW50ICpl Y3gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZWR4KQordm9pZCBj cHVpZF92aXJpZGlhbl9sZWF2ZXMoY29uc3Qgc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBs ZWFmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHN1YmxlYWYsIHN0 cnVjdCBjcHVpZF9sZWFmICpyZXMpCiB7Ci0gICAgc3RydWN0IGRvbWFpbiAqZCA9IGN1cnJlbnQt PmRvbWFpbjsKKyAgICBjb25zdCBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwogCi0gICAg aWYgKCAhaXNfdmlyaWRpYW5fZG9tYWluKGQpICkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgQVNT RVJUKGlzX3ZpcmlkaWFuX2RvbWFpbihkKSk7CisgICAgQVNTRVJUKGxlYWYgPj0gMHg0MDAwMDAw MCAmJiBsZWFmIDwgMHg0MDAwMDEwMCk7CiAKICAgICBsZWFmIC09IDB4NDAwMDAwMDA7Ci0gICAg aWYgKCBsZWFmID4gNiApCi0gICAgICAgIHJldHVybiAwOwogCi0gICAgKmVheCA9ICplYnggPSAq ZWN4ID0gKmVkeCA9IDA7CiAgICAgc3dpdGNoICggbGVhZiApCiAgICAgewogICAgIGNhc2UgMDoK LSAgICAgICAgKmVheCA9IDB4NDAwMDAwMDY7IC8qIE1heGltdW0gbGVhZiAqLwotICAgICAgICAq ZWJ4ID0gMHg3MjYzNjk0ZDsgLyogTWFnaWMgbnVtYmVycyAgKi8KLSAgICAgICAgKmVjeCA9IDB4 NjY2RjczNkY7Ci0gICAgICAgICplZHggPSAweDc2NDgyMDc0OworICAgICAgICByZXMtPmEgPSAw eDQwMDAwMDA2OyAvKiBNYXhpbXVtIGxlYWYgKi8KKyAgICAgICAgcmVzLT5iID0gMHg3MjYzNjk0 ZDsgLyogTWFnaWMgbnVtYmVycyAgKi8KKyAgICAgICAgcmVzLT5jID0gMHg2NjZGNzM2RjsKKyAg ICAgICAgcmVzLT5kID0gMHg3NjQ4MjA3NDsKICAgICAgICAgYnJlYWs7CisKICAgICBjYXNlIDE6 Ci0gICAgICAgICplYXggPSAweDMxMjM3NjQ4OyAvKiBWZXJzaW9uIG51bWJlciAqLworICAgICAg ICByZXMtPmEgPSAweDMxMjM3NjQ4OyAvKiBWZXJzaW9uIG51bWJlciAqLwogICAgICAgICBicmVh azsKKwogICAgIGNhc2UgMjoKICAgICAgICAgLyogSHlwZXJ2aXNvciBpbmZvcm1hdGlvbiwgYnV0 IG9ubHkgaWYgdGhlIGd1ZXN0IGhhcyBzZXQgaXRzCiAgICAgICAgICAgIG93biB2ZXJzaW9uIG51 bWJlci4gKi8KICAgICAgICAgaWYgKCBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4uZ3Vlc3Rf b3NfaWQucmF3ID09IDAgKQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICplYXggPSAxOyAv KiBCdWlsZCBudW1iZXIgKi8KLSAgICAgICAgKmVieCA9ICh4ZW5fbWFqb3JfdmVyc2lvbigpIDw8 IDE2KSB8IHhlbl9taW5vcl92ZXJzaW9uKCk7Ci0gICAgICAgICplY3ggPSAwOyAvKiBTUCAqLwot ICAgICAgICAqZWR4ID0gMDsgLyogU2VydmljZSBicmFuY2ggYW5kIG51bWJlciAqLworICAgICAg ICByZXMtPmEgPSAxOyAvKiBCdWlsZCBudW1iZXIgKi8KKyAgICAgICAgcmVzLT5iID0gKHhlbl9t YWpvcl92ZXJzaW9uKCkgPDwgMTYpIHwgeGVuX21pbm9yX3ZlcnNpb24oKTsKICAgICAgICAgYnJl YWs7CisKICAgICBjYXNlIDM6CiAgICAgICAgIC8qIFdoaWNoIGh5cGVydmlzb3IgTVNScyBhcmUg YXZhaWxhYmxlIHRvIHRoZSBndWVzdCAqLwotICAgICAgICAqZWF4ID0gKENQVUlEM0FfTVNSX0FQ SUNfQUNDRVNTIHwKLSAgICAgICAgICAgICAgICBDUFVJRDNBX01TUl9IWVBFUkNBTEwgICB8Ci0g ICAgICAgICAgICAgICAgQ1BVSUQzQV9NU1JfVlBfSU5ERVgpOworICAgICAgICByZXMtPmEgPSAo Q1BVSUQzQV9NU1JfQVBJQ19BQ0NFU1MgfAorICAgICAgICAgICAgICAgICAgQ1BVSUQzQV9NU1Jf SFlQRVJDQUxMICAgfAorICAgICAgICAgICAgICAgICAgQ1BVSUQzQV9NU1JfVlBfSU5ERVgpOwog ICAgICAgICBpZiAoICEodmlyaWRpYW5fZmVhdHVyZV9tYXNrKGQpICYgSFZNUFZfbm9fZnJlcSkg KQotICAgICAgICAgICAgKmVheCB8PSBDUFVJRDNBX01TUl9GUkVROworICAgICAgICAgICAgcmVz LT5hIHw9IENQVUlEM0FfTVNSX0ZSRVE7CiAgICAgICAgIGlmICggdmlyaWRpYW5fZmVhdHVyZV9t YXNrKGQpICYgSFZNUFZfdGltZV9yZWZfY291bnQgKQotICAgICAgICAgICAgKmVheCB8PSBDUFVJ RDNBX01TUl9USU1FX1JFRl9DT1VOVDsKKyAgICAgICAgICAgIHJlcy0+YSB8PSBDUFVJRDNBX01T Ul9USU1FX1JFRl9DT1VOVDsKICAgICAgICAgaWYgKCB2aXJpZGlhbl9mZWF0dXJlX21hc2soZCkg JiBIVk1QVl9yZWZlcmVuY2VfdHNjICkKLSAgICAgICAgICAgICplYXggfD0gQ1BVSUQzQV9NU1Jf UkVGRVJFTkNFX1RTQzsKKyAgICAgICAgICAgIHJlcy0+YSB8PSBDUFVJRDNBX01TUl9SRUZFUkVO Q0VfVFNDOwogICAgICAgICBicmVhazsKKwogICAgIGNhc2UgNDoKICAgICAgICAgLyogUmVjb21t ZW5kZWQgaHlwZXJjYWxsIHVzYWdlLiAqLwogICAgICAgICBpZiAoIChkLT5hcmNoLmh2bV9kb21h aW4udmlyaWRpYW4uZ3Vlc3Rfb3NfaWQucmF3ID09IDApIHx8CiAgICAgICAgICAgICAgKGQtPmFy Y2guaHZtX2RvbWFpbi52aXJpZGlhbi5ndWVzdF9vc19pZC5maWVsZHMub3MgPCA0KSApCiAgICAg ICAgICAgICBicmVhazsKLSAgICAgICAgKmVheCA9IENQVUlENEFfUkVMQVhfVElNRVJfSU5UOwor ICAgICAgICByZXMtPmEgPSBDUFVJRDRBX1JFTEFYX1RJTUVSX0lOVDsKICAgICAgICAgaWYgKCB2 aXJpZGlhbl9mZWF0dXJlX21hc2soZCkgJiBIVk1QVl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNoICkK LSAgICAgICAgICAgICplYXggfD0gQ1BVSUQ0QV9IQ0FMTF9SRU1PVEVfVExCX0ZMVVNIOworICAg ICAgICAgICAgcmVzLT5hIHw9IENQVUlENEFfSENBTExfUkVNT1RFX1RMQl9GTFVTSDsKICAgICAg ICAgaWYgKCAhY3B1X2hhc192bXhfYXBpY19yZWdfdmlydCApCi0gICAgICAgICAgICAqZWF4IHw9 IENQVUlENEFfTVNSX0JBU0VEX0FQSUM7Ci0gICAgICAgICplYnggPSAyMDQ3OyAvKiBsb25nIHNw aW4gY291bnQgKi8KKyAgICAgICAgICAgIHJlcy0+YSB8PSBDUFVJRDRBX01TUl9CQVNFRF9BUElD OworICAgICAgICByZXMtPmIgPSAyMDQ3OyAvKiBsb25nIHNwaW4gY291bnQgKi8KICAgICAgICAg YnJlYWs7CisKICAgICBjYXNlIDY6CiAgICAgICAgIC8qIERldGVjdGVkIGFuZCBpbiB1c2UgaGFy ZHdhcmUgZmVhdHVyZXMuICovCiAgICAgICAgIGlmICggY3B1X2hhc192bXhfdmlydHVhbGl6ZV9h cGljX2FjY2Vzc2VzICkKLSAgICAgICAgICAgICplYXggfD0gQ1BVSUQ2QV9BUElDX09WRVJMQVk7 Ci0gICAgICAgIGlmICggY3B1X2hhc192bXhfbXNyX2JpdG1hcCB8fCAocmVhZF9lZmVyKCkgJiBF RkVSX1NWTUUpICkKLSAgICAgICAgICAgICplYXggfD0gQ1BVSUQ2QV9NU1JfQklUTUFQUzsKKyAg ICAgICAgICAgIHJlcy0+YSB8PSBDUFVJRDZBX0FQSUNfT1ZFUkxBWTsKKyAgICAgICAgaWYgKCBj cHVfaGFzX3ZteF9tc3JfYml0bWFwIHx8IGNwdV9oYXNfc3ZtICkKKyAgICAgICAgICAgIHJlcy0+ YSB8PSBDUFVJRDZBX01TUl9CSVRNQVBTOwogICAgICAgICBpZiAoIGhhcF9lbmFibGVkKGQpICkK LSAgICAgICAgICAgICplYXggfD0gQ1BVSUQ2QV9ORVNURURfUEFHSU5HOworICAgICAgICAgICAg cmVzLT5hIHw9IENQVUlENkFfTkVTVEVEX1BBR0lORzsKICAgICAgICAgYnJlYWs7CiAgICAgfQot Ci0gICAgcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyB2b2lkIGR1bXBfZ3Vlc3Rfb3NfaWQoY29uc3Qg c3RydWN0IGRvbWFpbiAqZCkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3Zp cmlkaWFuLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92aXJpZGlhbi5oCmluZGV4IGJkYmNj ZDUuLjZlMDYyZGYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZpcmlkaWFu LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmlyaWRpYW4uaApAQCAtOTcsMTMgKzk3 LDggQEAgc3RydWN0IHZpcmlkaWFuX2RvbWFpbgogICAgIHVuaW9uIHZpcmlkaWFuX3JlZmVyZW5j ZV90c2MgcmVmZXJlbmNlX3RzYzsKIH07CiAKLWludAotY3B1aWRfdmlyaWRpYW5fbGVhdmVzKAot ICAgIHVuc2lnbmVkIGludCBsZWFmLAotICAgIHVuc2lnbmVkIGludCAqZWF4LAotICAgIHVuc2ln bmVkIGludCAqZWJ4LAotICAgIHVuc2lnbmVkIGludCAqZWN4LAotICAgIHVuc2lnbmVkIGludCAq ZWR4KTsKK3ZvaWQgY3B1aWRfdmlyaWRpYW5fbGVhdmVzKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCB1 bnNpZ25lZCBpbnQgbGVhZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBzdWJsZWFmLCBzdHJ1Y3QgY3B1aWRfbGVhZiAqcmVzKTsKIAogaW50CiB3cm1zcl92aXJpZGlh bl9yZWdzKAotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3Jn Cmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK