From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 2/2] x86/cpu: Improvements to get_cpu_vendor() Date: Tue, 3 Jan 2017 12:06:05 +0000 Message-ID: <1483445165-28160-2-git-send-email-andrew.cooper3@citrix.com> References: <1483445165-28160-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: <1483445165-28160-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 Q29tcGFyaW5nIDMgaW50ZWdlcnMgaXMgbW9yZSBlZmZpY2llbnQgdGhhbiB1c2luZyBzdHJjbXAo KSwgYW5kIGlzIG1vcmUgdXNlZnVsCnRvIHRoZSBnY3ZfZ3Vlc3QgY2FzZSB0aGFuIGhhdmluZyB0 byBmYWJyaWNhdGUgYSBzdWl0YWJsZSBzdHJpbmcgdG8gcGFzcy4gIFRoZQpnY3ZfaG9zdCBjYXNl cyBoYXZlIGJvdGggb3B0aW9ucyBlYXNpbHkgdG8gaGFuZCwgYW5kIGV4cGVyaW1lbnRhbGx5LCB0 aGUKcmVzdWx0aW5nIGNvZGUgaXMgbW9yZSBlZmZpY2llbnQuCgpXaGlsZSBtb2RpZnlpbmcgZ2V0 X2NwdV92ZW5kb3IoKSwgZml4IGEgYnVnIHdoZXJlIHRoaXNfY3B1IGdvdCB1cGRhdGVkIGV2ZW4g aW4KdGhlIGdjdl9ndWVzdCBjYXNlLgoKVXBkYXRlIHRoZSBjcHVfZGV2IHN0cnVjdHVyZSB0byBi ZSBtb3JlIGVmZmljaWVudC4gIGNfdmVuZG9yW10gb25seSBuZWVkcyB0bwpiZSA4IGJ5dGVzIGxv bmcgdG8gY292ZXIgYWxsIHRoZSBDUFUgZHJpdmVycyBYZW4gaGFzLCB3aGljaCBhdm9pZHMgc3Rv cmluZyBhbgo4LWJ5dGUgcG9pbnRlciB0byA4IGJ5dGVzIG9mIGRhdGEuICBEcm9wIGNfaWRlbnRb MV0gYXMgd2UgaGF2ZSBubyBDUFUgZHJpdmVycwp3aXRoIGEgc2Vjb25kIGlkZW50IHN0cmluZywg YW5kIHR1cm4gaXQgaW50byBhIHRyYW5zcGFyZW50IHVuaW9uIHRvIGFsbG93CmFjY2VzcyB0byB0 aGUgaW50ZWdlciB2YWx1ZXMgZGlyZWN0bHkuCgpUaGlzIGF2b2lkcyBhbGwgbmVlZCBmb3IgdGhl IHZlbmRvcl9pZCB1bmlvbiBpbiB1cGRhdGVfZG9tYWluX2NwdWlkX2luZm8oKS4KClNpZ25lZC1v ZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzog SmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1c2UuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9jcHUvY29t bW9uLmMgICAgICAgfCAzMCArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNo L3g4Ni9jcHUvY3B1LmggICAgICAgICAgfCAxMCArKysrKysrLS0tCiB4ZW4vYXJjaC94ODYvZG9t Y3RsLmMgICAgICAgICAgIHwgMTUgKystLS0tLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20teDg2 L3Byb2Nlc3Nvci5oIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwg MzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyBi L3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMKaW5kZXggYTg5Y2YwNy4uZDE3YTJlZSAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2NwdS9jb21tb24uYworKysgYi94ZW4vYXJjaC94ODYvY3B1L2Nv bW1vbi5jCkBAIC0xNTYsMTcgKzE1NiwxNyBAQCB2b2lkIGRpc3BsYXlfY2FjaGVpbmZvKHN0cnVj dCBjcHVpbmZvX3g4NiAqYykKIAkJICAgICAgIGwyc2l6ZSwgZWN4ICYgMHhGRik7CiB9CiAKLWlu dCBnZXRfY3B1X3ZlbmRvcihjb25zdCBjaGFyIHZbXSwgZW51bSBnZXRfY3B1X3ZlbmRvciBtb2Rl KQoraW50IGdldF9jcHVfdmVuZG9yKHVpbnQzMl90IGIsIHVpbnQzMl90IGMsIHVpbnQzMl90IGQs IGVudW0gZ2V0X2NwdV92ZW5kb3IgbW9kZSkKIHsKIAlpbnQgaTsKIAlzdGF0aWMgaW50IHByaW50 ZWQ7CiAKIAlmb3IgKGkgPSAwOyBpIDwgWDg2X1ZFTkRPUl9OVU07IGkrKykgewogCQlpZiAoY3B1 X2RldnNbaV0pIHsKLQkJCWlmICghc3RyY21wKHYsY3B1X2RldnNbaV0tPmNfaWRlbnRbMF0pIHx8 Ci0JCQkgICAgKGNwdV9kZXZzW2ldLT5jX2lkZW50WzFdICYmIAotCQkJICAgICAhc3RyY21wKHYs Y3B1X2RldnNbaV0tPmNfaWRlbnRbMV0pKSkgewotCQkJCXRoaXNfY3B1ID0gY3B1X2RldnNbaV07 CisJCQlpZiAoY3B1X2RldnNbaV0tPmIgPT0gYiAmJiBjcHVfZGV2c1tpXS0+YyA9PSBjICYmCisJ CQkgICAgY3B1X2RldnNbaV0tPmQgPT0gZCkgeworCQkJCWlmIChtb2RlID09IGdjdl9ob3N0KQor CQkJCQl0aGlzX2NwdSA9IGNwdV9kZXZzW2ldOwogCQkJCXJldHVybiBpOwogCQkJfQogCQl9CkBA IC0yMzMsMTIgKzIzMywxMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZWFybHlfY3B1X2RldGVjdCh2 b2lkKQogCWMtPng4Nl9jYWNoZV9hbGlnbm1lbnQgPSAzMjsKIAogCS8qIEdldCB2ZW5kb3IgbmFt ZSAqLwotCWNwdWlkKDB4MDAwMDAwMDAsICZjLT5jcHVpZF9sZXZlbCwKLQkgICAgICAoaW50ICop JmMtPng4Nl92ZW5kb3JfaWRbMF0sCi0JICAgICAgKGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzhd LAotCSAgICAgIChpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFs0XSk7CisJY3B1aWQoMHgwMDAwMDAw MCwgJmMtPmNwdWlkX2xldmVsLCAmZWJ4LCAmZWN4LCAmZWR4KTsKKwkqKHUzMiAqKSZjLT54ODZf dmVuZG9yX2lkWzBdID0gZWJ4OworCSoodTMyICopJmMtPng4Nl92ZW5kb3JfaWRbOF0gPSBlY3g7 CisJKih1MzIgKikmYy0+eDg2X3ZlbmRvcl9pZFs0XSA9IGVkeDsKIAotCWMtPng4Nl92ZW5kb3Ig PSBnZXRfY3B1X3ZlbmRvcihjLT54ODZfdmVuZG9yX2lkLCBnY3ZfaG9zdCk7CisJYy0+eDg2X3Zl bmRvciA9IGdldF9jcHVfdmVuZG9yKGVieCwgZWN4LCBlZHgsIGdjdl9ob3N0KTsKIAogCWNwdWlk KDB4MDAwMDAwMDEsICZlYXgsICZlYngsICZlY3gsICZlZHgpOwogCWMtPng4NiA9IGdldF9jcHVf ZmFtaWx5KGVheCwgJmMtPng4Nl9tb2RlbCwgJmMtPng4Nl9tYXNrKTsKQEAgLTI3NiwxMiArMjc2 LDEyIEBAIHN0YXRpYyB2b2lkIGdlbmVyaWNfaWRlbnRpZnkoc3RydWN0IGNwdWluZm9feDg2ICpj KQogCXUzMiBlYXgsIGVieCwgZWN4LCBlZHgsIHRtcDsKIAogCS8qIEdldCB2ZW5kb3IgbmFtZSAq LwotCWNwdWlkKDB4MDAwMDAwMDAsICZjLT5jcHVpZF9sZXZlbCwKLQkgICAgICAoaW50ICopJmMt Png4Nl92ZW5kb3JfaWRbMF0sCi0JICAgICAgKGludCAqKSZjLT54ODZfdmVuZG9yX2lkWzhdLAot CSAgICAgIChpbnQgKikmYy0+eDg2X3ZlbmRvcl9pZFs0XSk7CisJY3B1aWQoMHgwMDAwMDAwMCwg JmMtPmNwdWlkX2xldmVsLCAmZWJ4LCAmZWN4LCAmZWR4KTsKKwkqKHUzMiAqKSZjLT54ODZfdmVu ZG9yX2lkWzBdID0gZWJ4OworCSoodTMyICopJmMtPng4Nl92ZW5kb3JfaWRbOF0gPSBlY3g7CisJ Kih1MzIgKikmYy0+eDg2X3ZlbmRvcl9pZFs0XSA9IGVkeDsKIAotCWMtPng4Nl92ZW5kb3IgPSBn ZXRfY3B1X3ZlbmRvcihjLT54ODZfdmVuZG9yX2lkLCBnY3ZfaG9zdCk7CisJYy0+eDg2X3ZlbmRv ciA9IGdldF9jcHVfdmVuZG9yKGVieCwgZWN4LCBlZHgsIGdjdl9ob3N0KTsKIAkvKiBJbml0aWFs aXplIHRoZSBzdGFuZGFyZCBzZXQgb2YgY2FwYWJpbGl0aWVzICovCiAJLyogTm90ZSB0aGF0IHRo ZSB2ZW5kb3Itc3BlY2lmaWMgY29kZSBiZWxvdyBtaWdodCBvdmVycmlkZSAqLwogCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvY3B1L2NwdS5oIGIveGVuL2FyY2gveDg2L2NwdS9jcHUuaAppbmRl eCAxODc3ZTdkLi41YTc5MDVjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L2NwdS5oCisr KyBiL3hlbi9hcmNoL3g4Ni9jcHUvY3B1LmgKQEAgLTEsOSArMSwxMyBAQAogLyogYXR0ZW1wdCB0 byBjb25zb2xpZGF0ZSBjcHUgYXR0cmlidXRlcyAqLwogc3RydWN0IGNwdV9kZXYgewotCWNoYXIJ KiBjX3ZlbmRvcjsKKwljaGFyCWNfdmVuZG9yWzhdOwogCi0JLyogc29tZSBoYXZlIHR3byBwb3Nz aWJpbGl0aWVzIGZvciBjcHVpZCBzdHJpbmcgKi8KLQljaGFyCSogY19pZGVudFsyXTsJCisJdW5p b24geworCQljaGFyCWNfaWRlbnRbMTNdOworCQlzdHJ1Y3QgeworCQkJdWludDMyX3QgYiwgZCwg YzsKKwkJfTsKKwl9OwogCiAJdm9pZAkJKCpjX2Vhcmx5X2luaXQpKHN0cnVjdCBjcHVpbmZvX3g4 NiAqYyk7CiAJdm9pZAkJKCpjX2luaXQpKHN0cnVjdCBjcHVpbmZvX3g4NiAqIGMpOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5jIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCmluZGV4 IGFiOWFkMzkuLmViNzFjOWUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysg Yi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAgLTU0LDIxICs1NCwxMCBAQCBzdGF0aWMgdm9pZCB1 cGRhdGVfZG9tYWluX2NwdWlkX2luZm8oc3RydWN0IGRvbWFpbiAqZCwKICAgICBzd2l0Y2ggKCBj dGwtPmlucHV0WzBdICkKICAgICB7CiAgICAgY2FzZSAwOiB7Ci0gICAgICAgIHVuaW9uIHsKLSAg ICAgICAgICAgIHR5cGVvZihib290X2NwdV9kYXRhLng4Nl92ZW5kb3JfaWQpIHN0cjsKLSAgICAg ICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAgICAgdWludDMyX3QgZWJ4LCBlZHgsIGVjeDsK LSAgICAgICAgICAgIH0gcmVnOwotICAgICAgICB9IHZlbmRvcl9pZCA9IHsKLSAgICAgICAgICAg IC5yZWcgPSB7Ci0gICAgICAgICAgICAgICAgLmVieCA9IGN0bC0+ZWJ4LAotICAgICAgICAgICAg ICAgIC5lZHggPSBjdGwtPmVkeCwKLSAgICAgICAgICAgICAgICAuZWN4ID0gY3RsLT5lY3gKLSAg ICAgICAgICAgIH0KLSAgICAgICAgfTsKICAgICAgICAgaW50IG9sZF92ZW5kb3IgPSBkLT5hcmNo Lng4Nl92ZW5kb3I7CiAKLSAgICAgICAgZC0+YXJjaC54ODZfdmVuZG9yID0gZ2V0X2NwdV92ZW5k b3IodmVuZG9yX2lkLnN0ciwgZ2N2X2d1ZXN0KTsKKyAgICAgICAgZC0+YXJjaC54ODZfdmVuZG9y ID0gZ2V0X2NwdV92ZW5kb3IoCisgICAgICAgICAgICBjdGwtPmVieCwgY3RsLT5lY3gsIGN0bC0+ ZWR4LCBnY3ZfZ3Vlc3QpOwogCiAgICAgICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSAmJiAoZC0+ YXJjaC54ODZfdmVuZG9yICE9IG9sZF92ZW5kb3IpICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9wcm9jZXNzb3IuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHJv Y2Vzc29yLmgKaW5kZXggYmUzMTU4Ni4uYWZmMTE1YiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9wcm9jZXNzb3IuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5o CkBAIC02MjQsNyArNjI0LDcgQEAgZW51bSBnZXRfY3B1X3ZlbmRvciB7CiAgICAgZ2N2X2d1ZXN0 LAogfTsKIAotaW50IGdldF9jcHVfdmVuZG9yKGNvbnN0IGNoYXIgdmVuZG9yX2lkW10sIGVudW0g Z2V0X2NwdV92ZW5kb3IpOworaW50IGdldF9jcHVfdmVuZG9yKHVpbnQzMl90IGIsIHVpbnQzMl90 IGMsIHVpbnQzMl90IGQsIGVudW0gZ2V0X2NwdV92ZW5kb3IgbW9kZSk7CiB1aW50OF90IGdldF9j cHVfZmFtaWx5KHVpbnQzMl90IHJhdywgdWludDhfdCAqbW9kZWwsIHVpbnQ4X3QgKnN0ZXBwaW5n KTsKIAogdm9pZCBwdl9jcHVpZChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncyk7Ci0tIAoyLjEu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=