From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v2 04/10] x86/cpuid: Handle leaf 0x4 in guest_cpuid() Date: Fri, 10 Mar 2017 16:27:11 +0000 Message-ID: <1489163231-15769-1-git-send-email-andrew.cooper3@citrix.com> References: <1487588434-4359-5-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: <1487588434-4359-5-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 TGVhZiAweDQgaXMgcmVzZXJ2ZWQgYnkgQU1ELiAgRm9yIEludGVsLCBpdCBpcyBhIG11bHRpLWlu dm9jYXRpb24gbGVhZiB3aXRoCmVjeCBlbnVtZXJhdGluZyBkaWZmZXJlbnQgY2FjaGUgZGV0YWls cy4KCkFkZCBhIG5ldyB1bmlvbiBmb3IgaXQgaW4gc3RydWN0IGNwdWlkX3BvbGljeSwgY29sbGVj dCBpdCBmcm9tIGhhcmR3YXJlIGluCmNhbGN1bGF0ZV9yYXdfcG9saWN5KCksIGF1ZGl0IGl0IGlu IHJlY2FsY3VsYXRlX2NwdWlkX3BvbGljeSgpIGFuZCB1cGRhdGUKZ3Vlc3RfY3B1aWQoKSBhbmQg dXBkYXRlX2RvbWFpbl9jcHVpZF9pbmZvKCkgdG8gcHJvcGVybHkgaW5zZXJ0L2V4dHJhY3QgZGF0 YS4KCkEgbG90IG9mIHRoZSBkYXRhIGhlcmUgd2lsbCBuZWVkIGZ1cnRoZXIgYXVkaXRpbmcvcmVm aW5lbWVudCB3aGVuIGJldHRlcgp0b3BvbG9neSBzdXBwb3J0IGlzIGludHJvZHVjZWQsIGJ1dCBm b3Igbm93LCB0aGlzIG1hdGNoZXMgdGhlIGV4aXN0aW5nCnRvb2xzdGFjayBiZWhhdmlvdXIuCgpT aWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgot LS0KQ0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KCnYyOgogKiBUaGUgY2FjaGUg dHlwZSBmaWVsZCBpcyA1IGJpdHMgd2lkZSwgcmF0aGVyIHRoYW4gNC4KICogRG9uJ3QgYm90aGVy IGNsb2JiZXJpbmcgcC0+YmFzaWMucmF3WzB4ezQsNyxkfV0KLS0tCiB4ZW4vYXJjaC94ODYvY3B1 aWQuYyAgICAgICAgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHhlbi9hcmNoL3g4Ni9kb21jdGwuYyAgICAgICB8ICA4ICsrKysrKystCiB4ZW4vaW5j bHVkZS9hc20teDg2L2NwdWlkLmggfCAxMCArKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDYz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2 L2NwdWlkLmMgYi94ZW4vYXJjaC94ODYvY3B1aWQuYwppbmRleCBkNmY2Yjg4Li5lODU0MTVmIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1aWQuYworKysgYi94ZW4vYXJjaC94ODYvY3B1aWQu YwpAQCAtMTk5LDYgKzE5OSw3IEBAIHN0YXRpYyB2b2lkIHJlY2FsY3VsYXRlX21pc2Moc3RydWN0 IGNwdWlkX3BvbGljeSAqcCkKIAogICAgIGNhc2UgWDg2X1ZFTkRPUl9BTUQ6CiAgICAgICAgIHpl cm9fbGVhdmVzKHAtPmJhc2ljLnJhdywgMHgyLCAweDMpOworICAgICAgICBtZW1zZXQocC0+Y2Fj aGUucmF3LCAwLCBzaXplb2YocC0+Y2FjaGUucmF3KSk7CiAgICAgICAgIHAtPmJhc2ljLnJhd1sw eDldID0gRU1QVFlfTEVBRjsKIAogICAgICAgICBwLT5leHRkLnZlbmRvcl9lYnggPSBwLT5iYXNp Yy52ZW5kb3JfZWJ4OwpAQCAtMjQyLDYgKzI0MywyNSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgY2Fs Y3VsYXRlX3Jhd19wb2xpY3kodm9pZCkKICAgICAgICAgY3B1aWRfbGVhZihpLCAmcC0+YmFzaWMu cmF3W2ldKTsKICAgICB9CiAKKyAgICBpZiAoIHAtPmJhc2ljLm1heF9sZWFmID49IDQgKQorICAg IHsKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHAtPmNhY2hlLnJhdyk7ICsr aSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNwdWlkX2NvdW50X2xlYWYoNCwgaSwgJnAtPmNh Y2hlLnJhd1tpXSk7CisKKyAgICAgICAgICAgIGlmICggcC0+Y2FjaGUuc3VibGVhZltpXS50eXBl ID09IDAgKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgLyoK KyAgICAgICAgICogVGhlIGNob2ljZSBvZiBDUFVJRF9HVUVTVF9OUl9DQUNIRSBpcyBhcmJpdHJh cnkuICBJdCBpcyBleHBlY3RlZAorICAgICAgICAgKiB0aGF0IGl0IHdpbGwgZXZlbnR1YWxseSBu ZWVkIGluY3JlYXNpbmcgZm9yIGZ1dHVyZSBoYXJkd2FyZS4KKyAgICAgICAgICovCisgICAgICAg IGlmICggaSA9PSBBUlJBWV9TSVpFKHAtPmNhY2hlLnJhdykgKQorICAgICAgICAgICAgcHJpbnRr KFhFTkxPR19XQVJOSU5HCisgICAgICAgICAgICAgICAgICAgIkNQVUlEOiBJbnN1ZmZpY2llbnQg TGVhZiA0IHNwYWNlIGZvciB0aGlzIGhhcmR3YXJlXG4iKTsKKyAgICB9CisKICAgICBpZiAoIHAt PmJhc2ljLm1heF9sZWFmID49IDcgKQogICAgIHsKICAgICAgICAgY3B1aWRfY291bnRfbGVhZig3 LCAwLCAmcC0+ZmVhdC5yYXdbMF0pOwpAQCAtNTIwLDYgKzU0MCwyMyBAQCB2b2lkIHJlY2FsY3Vs YXRlX2NwdWlkX3BvbGljeShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHJlY2FsY3VsYXRlX3hzdGF0 ZShwKTsKICAgICByZWNhbGN1bGF0ZV9taXNjKHApOwogCisgICAgZm9yICggaSA9IDA7IGkgPCBB UlJBWV9TSVpFKHAtPmNhY2hlLnJhdyk7ICsraSApCisgICAgeworICAgICAgICBpZiAoIHAtPmNh Y2hlLnN1YmxlYWZbaV0udHlwZSA+PSAxICYmCisgICAgICAgICAgICAgcC0+Y2FjaGUuc3VibGVh ZltpXS50eXBlIDw9IDMgKQorICAgICAgICB7CisgICAgICAgICAgICAvKiBTdWJsZWFmIGhhcyBh IHZhbGlkIGNhY2hlIHR5cGUuIFplcm8gcmVzZXJ2ZWQgZmllbGRzLiAqLworICAgICAgICAgICAg cC0+Y2FjaGUucmF3W2ldLmEgJj0gMHhmZmZmYzNmZnU7CisgICAgICAgICAgICBwLT5jYWNoZS5y YXdbaV0uZCAmPSAweDAwMDAwMDA3dTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAg IHsKKyAgICAgICAgICAgIC8qIFN1YmxlYWYgaXMgbm90IHZhbGlkLiAgWmVybyB0aGUgcmVzdCBv ZiB0aGUgdW5pb24uICovCisgICAgICAgICAgICB6ZXJvX2xlYXZlcyhwLT5jYWNoZS5yYXcsIGks IEFSUkFZX1NJWkUocC0+Y2FjaGUucmF3KSAtIDEpOworICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgIH0KKyAgICB9CisKICAgICBpZiAoICFwLT5leHRkLnN2bSApCiAgICAgICAgIHAtPmV4dGQu cmF3WzB4YV0gPSBFTVBUWV9MRUFGOwogCkBAIC02MDUsNyArNjQyLDcgQEAgc3RhdGljIHZvaWQg cHZfY3B1aWQodWludDMyX3QgbGVhZiwgdWludDMyX3Qgc3VibGVhZiwgc3RydWN0IGNwdWlkX2xl YWYgKnJlcykKICAgICAgICAgKnJlcyA9IEVNUFRZX0xFQUY7CiAgICAgICAgIGJyZWFrOwogCi0g ICAgY2FzZSAweDAgLi4uIDB4MzoKKyAgICBjYXNlIDB4MCAuLi4gMHg0OgogICAgIGNhc2UgMHg3 IC4uLiAweDk6CiAgICAgY2FzZSAweGMgLi4uIFhTVEFURV9DUFVJRDoKICAgICBjYXNlIDB4ODAw MDAwMDAgLi4uIDB4ZmZmZmZmZmY6CkBAIC02NDAsNyArNjc3LDcgQEAgc3RhdGljIHZvaWQgaHZt X2NwdWlkKHVpbnQzMl90IGxlYWYsIHVpbnQzMl90IHN1YmxlYWYsIHN0cnVjdCBjcHVpZF9sZWFm ICpyZXMpCiAgICAgICAgICAgICByZXMtPmEgPSAocmVzLT5hICYgfjB4ZmYpIHwgMzsKICAgICAg ICAgYnJlYWs7CiAKLSAgICBjYXNlIDB4MCAuLi4gMHgzOgorICAgIGNhc2UgMHgwIC4uLiAweDQ6 CiAgICAgY2FzZSAweDcgLi4uIDB4OToKICAgICBjYXNlIDB4YyAuLi4gWFNUQVRFX0NQVUlEOgog ICAgIGNhc2UgMHg4MDAwMDAwMCAuLi4gMHhmZmZmZmZmZjoKQEAgLTY3NCw2ICs3MTEsMTMgQEAg dm9pZCBndWVzdF9jcHVpZChjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDMyX3QgbGVhZiwKIAog ICAgICAgICBzd2l0Y2ggKCBsZWFmICkKICAgICAgICAgeworICAgICAgICBjYXNlIDB4NDoKKyAg ICAgICAgICAgIGlmICggc3VibGVhZiA+PSBBUlJBWV9TSVpFKHAtPmNhY2hlLnJhdykgKQorICAg ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgKnJlcyA9IHAtPmNhY2hlLnJhd1tz dWJsZWFmXTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgMHg3OgogICAgICAg ICAgICAgQVNTRVJUKHAtPmZlYXQubWF4X3N1YmxlYWYgPCBBUlJBWV9TSVpFKHAtPmZlYXQucmF3 KSk7CiAgICAgICAgICAgICBpZiAoIHN1YmxlYWYgPiBtaW5fdCh1aW50MzJfdCwgcC0+ZmVhdC5t YXhfc3VibGVhZiwKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNo L3g4Ni9kb21jdGwuYwppbmRleCAwMmI0OGU4Li5kODdlZmEyIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC0xMDEsNiArMTAx LDEwIEBAIHN0YXRpYyBpbnQgdXBkYXRlX2RvbWFpbl9jcHVpZF9pbmZvKHN0cnVjdCBkb21haW4g KmQsCiAgICAgc3dpdGNoICggY3RsLT5pbnB1dFswXSApCiAgICAgewogICAgIGNhc2UgMHgwMDAw MDAwMCAuLi4gQVJSQVlfU0laRShwLT5iYXNpYy5yYXcpIC0gMToKKyAgICAgICAgaWYgKCBjdGwt PmlucHV0WzBdID09IDQgJiYKKyAgICAgICAgICAgICBjdGwtPmlucHV0WzFdID49IEFSUkFZX1NJ WkUocC0+Y2FjaGUucmF3KSApCisgICAgICAgICAgICByZXR1cm4gMDsKKwogICAgICAgICBpZiAo IGN0bC0+aW5wdXRbMF0gPT0gNyAmJgogICAgICAgICAgICAgIGN0bC0+aW5wdXRbMV0gPj0gQVJS QVlfU0laRShwLT5mZWF0LnJhdykgKQogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0xMjksNyAr MTMzLDkgQEAgc3RhdGljIGludCB1cGRhdGVfZG9tYWluX2NwdWlkX2luZm8oc3RydWN0IGRvbWFp biAqZCwKICAgICBzd2l0Y2ggKCBjdGwtPmlucHV0WzBdICkKICAgICB7CiAgICAgY2FzZSAweDAw MDAwMDAwIC4uLiBBUlJBWV9TSVpFKHAtPmJhc2ljLnJhdykgLSAxOgotICAgICAgICBpZiAoIGN0 bC0+aW5wdXRbMF0gPT0gNyApCisgICAgICAgIGlmICggY3RsLT5pbnB1dFswXSA9PSA0ICkKKyAg ICAgICAgICAgIHAtPmNhY2hlLnJhd1tjdGwtPmlucHV0WzFdXSA9IGxlYWY7CisgICAgICAgIGVs c2UgaWYgKCBjdGwtPmlucHV0WzBdID09IDcgKQogICAgICAgICAgICAgcC0+ZmVhdC5yYXdbY3Rs LT5pbnB1dFsxXV0gPSBsZWFmOwogICAgICAgICBlbHNlIGlmICggY3RsLT5pbnB1dFswXSA9PSBY U1RBVEVfQ1BVSUQgKQogICAgICAgICAgICAgcC0+eHN0YXRlLnJhd1tjdGwtPmlucHV0WzFdXSA9 IGxlYWY7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L2NwdWlkLmgKaW5kZXggYWE0ODJiNy4uZDEzYjMyMiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3B1 aWQuaApAQCAtNjMsNiArNjMsNyBAQCBERUNMQVJFX1BFUl9DUFUoYm9vbCwgY3B1aWRfZmF1bHRp bmdfZW5hYmxlZCk7CiAKICNkZWZpbmUgQ1BVSURfR1VFU1RfTlJfQkFTSUMgICAgICAoMHhkdSAr IDEpCiAjZGVmaW5lIENQVUlEX0dVRVNUX05SX0ZFQVQgICAgICAgKDB1ICsgMSkKKyNkZWZpbmUg Q1BVSURfR1VFU1RfTlJfQ0FDSEUgICAgICAoNXUgKyAxKQogI2RlZmluZSBDUFVJRF9HVUVTVF9O Ul9YU1RBVEUgICAgICg2MnUgKyAxKQogI2RlZmluZSBDUFVJRF9HVUVTVF9OUl9FWFREX0lOVEVM ICgweDh1ICsgMSkKICNkZWZpbmUgQ1BVSURfR1VFU1RfTlJfRVhURF9BTUQgICAoMHgxY3UgKyAx KQpAQCAtMTM3LDYgKzEzOCwxNSBAQCBzdHJ1Y3QgY3B1aWRfcG9saWN5CiAgICAgICAgIH07CiAg ICAgfSBiYXNpYzsKIAorICAgIC8qIFN0cnVjdHVyZWQgY2FjaGUgbGVhZjogMHgwMDAwMDAwNFt4 eF0gKi8KKyAgICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9H VUVTVF9OUl9DQUNIRV07CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50MzJfdCB0 eXBlOjUsCisgICAgICAgICAgICAgICAgOjI3LCA6MzIsIDozMiwgOjMyOworICAgICAgICB9IHN1 YmxlYWZbQ1BVSURfR1VFU1RfTlJfQ0FDSEVdOworICAgIH0gY2FjaGU7CisKICAgICAvKiBTdHJ1 Y3R1cmVkIGZlYXR1cmUgbGVhZjogMHgwMDAwMDAwN1t4eF0gKi8KICAgICB1bmlvbiB7CiAgICAg ICAgIHN0cnVjdCBjcHVpZF9sZWFmIHJhd1tDUFVJRF9HVUVTVF9OUl9GRUFUXTsKLS0gCjIuMS40 CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==