From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v3 09/15] x86: refactor psr: Implement get value callback function. Date: Tue, 25 Oct 2016 11:40:57 +0800 Message-ID: <1477366863-5246-10-git-send-email-yi.y.sun@linux.intel.com> References: <1477366863-5246-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1byrZ0-0004U0-82 for xen-devel@lists.xenproject.org; Tue, 25 Oct 2016 02:34:06 +0000 In-Reply-To: <1477366863-5246-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, he.chen@linux.intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, Yi Sun , jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org R2V0IGZlYXR1cmUgQ09TIHJlZ2lzdGVyIHZhbHVlIGlzIGFuIGludGVyZmFjZSBwcm92aWRlZCBi eSBwc3IuYy4KSXQgY2FuIGJlIGFic3RyYWN0ZWQgYXMgYW5vdGhlciBvcGVyYXRpb24uCgpUaGlz IHBhdGNoIGFkZHMgJ2dldF92YWwnIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGdldCB0aGUgQ09TIHJl Z2lzdGVyCnZhbHVlIG9mIHRoZSBmZWF0dXJlIGFuZCBpbXBsZW1lbnQgdGhlIGNhbGxiYWNrIGZ1 bmN0aW9uIGZvciBMMwpDQVQvQ0RQLgoKSXQgYWxzbyBtb2RpZmllcyB0aGUgZG9tY3RsIGludGVy ZmFjZSB0byBtYWtlIGl0IGdlbmVyYWwuCgpTaWduZWQtb2ZmLWJ5OiBZaSBTdW4gPHlpLnkuc3Vu QGxpbnV4LmludGVsLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgIHwgMTggKysr KystLS0tLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyAgICAgICAgfCA3OSArKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wc3Iu aCB8ICA0ICstLQogMyBmaWxlcyBjaGFuZ2VkLCA1OSBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMgYi94ZW4vYXJjaC94ODYv ZG9tY3RsLmMKaW5kZXggMmEyZmUwNC4uM2Q3ZmMzNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2RvbWN0bC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwpAQCAtMTQwNCwyMyArMTQwNCwy MyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAg Y2FzZSBYRU5fRE9NQ1RMX1BTUl9DQVRfT1BfR0VUX0wzX0NCTToKLSAgICAgICAgICAgIHJldCA9 IHBzcl9nZXRfbDNfY2JtKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9UWVBFX0wzKTsKKyAgICAgICAg ICAgIHJldCA9IHBzcl9nZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfY2F0X29wLnRhcmdldCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkb21jdGwtPnUucHNyX2NhdF9vcC5kYXRhLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFNSX0NCTV9UWVBFX0wzKTsKICAgICAgICAg ICAgIGNvcHliYWNrID0gMTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgWEVO X0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19DT0RFOgotICAgICAgICAgICAgcmV0ID0gcHNyX2dl dF9sM19jYm0oZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDNfQ09ERSk7CisgICAgICAgICAg ICByZXQgPSBwc3JfZ2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2NhdF9vcC50YXJnZXQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmZG9tY3RsLT51LnBzcl9jYXRfb3AuZGF0YSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTUl9DQk1fVFlQRV9MM19DT0RFKTsKICAgICAg ICAgICAgIGNvcHliYWNrID0gMTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ug WEVOX0RPTUNUTF9QU1JfQ0FUX09QX0dFVF9MM19EQVRBOgotICAgICAgICAgICAgcmV0ID0gcHNy X2dldF9sM19jYm0oZCwgZG9tY3RsLT51LnBzcl9jYXRfb3AudGFyZ2V0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmRvbWN0bC0+dS5wc3JfY2F0X29wLmRhdGEsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQU1JfQ0JNX1RZUEVfTDNfREFUQSk7CisgICAgICAg ICAgICByZXQgPSBwc3JfZ2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2NhdF9vcC50YXJnZXQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZG9tY3RsLT51LnBzcl9jYXRfb3AuZGF0YSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTUl9DQk1fVFlQRV9MM19EQVRBKTsKICAg ICAgICAgICAgIGNvcHliYWNrID0gMTsKICAgICAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXggYWNkMTgwYy4u YjhiYjA5YiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9wc3IuYwpAQCAtNTIsNiArNTIsOSBAQCBzdHJ1Y3QgZmVhdF9vcHMgewogICAgIC8qIGdldF9m ZWF0X2luZm8gaXMgdXNlZCB0byBnZXQgZmVhdHVyZSBIVyBpbmZvLiAqLwogICAgIGJvb2wgKCpn ZXRfZmVhdF9pbmZvKShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCBlbnVtIGNibV90eXBl IHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZGF0W10sIHVpbnQzMl90 IGFycmF5X2xlbik7CisgICAgLyogZ2V0X3ZhbCBpcyB1c2VkIHRvIGdldCBmZWF0dXJlIENPUyBy ZWdpc3RlciB2YWx1ZS4gKi8KKyAgICBpbnQgKCpnZXRfdmFsKShjb25zdCBzdHJ1Y3QgZmVhdF9u b2RlICpmZWF0LCB1bnNpZ25lZCBpbnQgY29zLAorICAgICAgICAgICAgICAgICAgIGVudW0gY2Jt X3R5cGUgdHlwZSwgdWludDY0X3QgKnZhbCk7CiB9OwogCiAvKiBDQVQvQ0RQIEhXIGluZm8gZGF0 YSBzdHJ1Y3R1cmUuICovCkBAIC0yNDQsOSArMjQ3LDQyIEBAIHN0YXRpYyBib29sIGwzX2NhdF9n ZXRfZmVhdF9pbmZvKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsCiAgICAgcmV0dXJuIHRy dWU7CiB9CiAKK3N0YXRpYyBpbnQgbDNfY2F0X2dldF92YWwoY29uc3Qgc3RydWN0IGZlYXRfbm9k ZSAqZmVhdCwgdW5zaWduZWQgaW50IGNvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZW51 bSBjYm1fdHlwZSB0eXBlLCB1aW50NjRfdCAqdmFsKQoreworICAgIGlmICggY29zID4gZmVhdC0+ aW5mby5jb3NfbWF4ICkKKyAgICAgICAgLyogVXNlIGRlZmF1bHQgdmFsdWUuICovCisgICAgICAg IGNvcyA9IDA7CisKKyAgICBzd2l0Y2ggKCB0eXBlICkgeworICAgIC8qIENEUCAqLworICAgIGNh c2UgUFNSX0NCTV9UWVBFX0wzX0RBVEE6CisgICAgY2FzZSBQU1JfQ0JNX1RZUEVfTDNfQ09ERToK KyAgICAgICAgaWYgKCBmZWF0LT5mZWF0dXJlICE9IFBTUl9TT0NLRVRfTDNfQ0RQICkKKyAgICAg ICAgICAgIHJldHVybiAtRU5YSU87CisKKyAgICAgICAgaWYgKCB0eXBlID09IFBTUl9DQk1fVFlQ RV9MM19EQVRBICkKKyAgICAgICAgICAgICp2YWwgPSBnZXRfY2RwX2RhdGEoZmVhdCwgY29zKTsK KyAgICAgICAgZWxzZQorICAgICAgICAgICAgKnZhbCA9IGdldF9jZHBfY29kZShmZWF0LCBjb3Mp OworICAgICAgICBicmVhazsKKworICAgIC8qIENBVCAqLworICAgIGNhc2UgUFNSX0NCTV9UWVBF X0wzOgorICAgICAgICAqdmFsID0gIGZlYXQtPmNvc19yZWdfdmFsW2Nvc107CisgICAgICAgIGJy ZWFrOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0 dXJuIDE7Cit9CisKIHN0cnVjdCBmZWF0X29wcyBsM19jYXRfb3BzID0gewogICAgIC5pbml0X2Zl YXR1cmUgPSBsM19jYXRfaW5pdF9mZWF0dXJlLAogICAgIC5nZXRfZmVhdF9pbmZvID0gbDNfY2F0 X2dldF9mZWF0X2luZm8sCisgICAgLmdldF92YWwgPSBsM19jYXRfZ2V0X3ZhbCwKIH07CiAKIHN0 YXRpYyB1bnNpZ25lZCBpbnQgZ2V0X3NvY2tldF9jcHUodW5zaWduZWQgaW50IHNvY2tldCkKQEAg LTQ4Niw0NSArNTIyLDI2IEBAIGludCBwc3JfZ2V0X2luZm8odW5zaWduZWQgaW50IHNvY2tldCwg ZW51bSBjYm1fdHlwZSB0eXBlLAogICAgIHJldHVybiAtRU5PRU5UOwogfQogCi1pbnQgcHNyX2dl dF9sM19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKLSAgICAgICAg ICAgICAgICAgICB1aW50NjRfdCAqY2JtLCBlbnVtIGNibV90eXBlIHR5cGUpCitpbnQgcHNyX2dl dF92YWwoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHNvY2tldCwKKyAgICAgICAgICAg ICAgICB1aW50NjRfdCAqdmFsLCBlbnVtIGNibV90eXBlIHR5cGUpCiB7Ci0gICAgc3RydWN0IHBz cl9jYXRfc29ja2V0X2luZm8gKmluZm8gPSBnZXRfY2F0X3NvY2tldF9pbmZvKHNvY2tldCk7Ci0g ICAgYm9vbF90IGNkcF9lbmFibGVkID0gY2RwX2lzX2VuYWJsZWQoc29ja2V0KTsKKyAgICBjb25z dCBzdHJ1Y3QgcHNyX2NhdF9zb2NrZXRfaW5mbyAqaW5mbyA9IGdldF9jYXRfc29ja2V0X2luZm8o c29ja2V0KTsKICAgICB1bnNpZ25lZCBpbnQgY29zID0gZC0+YXJjaC5wc3JfY29zX2lkc1tzb2Nr ZXRdOwotICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXRfdG1wOworICAgIGNvbnN0IHN0cnVjdCBm ZWF0X25vZGUgKmZlYXRfdG1wOworICAgIGludCByZXQ7CiAKICAgICBpZiAoIElTX0VSUihpbmZv KSApCiAgICAgICAgIHJldHVybiBQVFJfRVJSKGluZm8pOwogCi0gICAgZmVhdF90bXAgPSBnZXRf ZmVhdF9sMyhpbmZvKTsKLSAgICBpZiAoICFmZWF0X3RtcCApCi0gICAgICAgIHJldHVybiAtRU5P RU5UOwotCi0gICAgc3dpdGNoICggdHlwZSApCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShmZWF0 X3RtcCwgJmluZm8tPmZlYXRfbGlzdCwgbGlzdCkKICAgICB7Ci0gICAgY2FzZSBQU1JfQ0JNX1RZ UEVfTDM6Ci0gICAgICAgIGlmICggY2RwX2VuYWJsZWQgKQotICAgICAgICAgICAgcmV0dXJuIC1F WERFVjsKLSAgICAgICAgKmNibSA9IGZlYXRfdG1wLT5jb3NfcmVnX3ZhbFtjb3NdOwotICAgICAg ICBicmVhazsKKyAgICAgICAgcmV0ID0gZmVhdF90bXAtPm9wcy5nZXRfdmFsKGZlYXRfdG1wLCBj b3MsIHR5cGUsIHZhbCk7CisgICAgICAgIGlmICggcmV0IDwgMCApCisgICAgICAgICAgICByZXR1 cm4gcmV0OwogCi0gICAgY2FzZSBQU1JfQ0JNX1RZUEVfTDNfQ09ERToKLSAgICAgICAgaWYgKCAh Y2RwX2VuYWJsZWQgKQotICAgICAgICAgICAgKmNibSA9IGZlYXRfdG1wLT5jb3NfcmVnX3ZhbFtj b3NdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAqY2JtID0gZ2V0X2NkcF9jb2RlKGZlYXRf dG1wLCBjb3MpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgUFNSX0NCTV9UWVBFX0wzX0RB VEE6Ci0gICAgICAgIGlmICggIWNkcF9lbmFibGVkICkKLSAgICAgICAgICAgICpjYm0gPSBmZWF0 X3RtcC0+Y29zX3JlZ192YWxbY29zXTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgKmNibSA9 IGdldF9jZHBfZGF0YShmZWF0X3RtcCwgY29zKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBkZWZh dWx0OgotICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgaWYgKCByZXQgPiAw ICkKKyAgICAgICAgICAgIC8qIEZvdW5kICovCisgICAgICAgICAgICBicmVhazsKICAgICB9CiAK ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L3Bzci5oCmluZGV4IGVjY2ZhNzUuLmYyODcyYTIgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcHNyLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9w c3IuaApAQCAtNjUsOCArNjUsOCBAQCB2b2lkIHBzcl9jdHh0X3N3aXRjaF90byhzdHJ1Y3QgZG9t YWluICpkKTsKIAogaW50IHBzcl9nZXRfaW5mbyh1bnNpZ25lZCBpbnQgc29ja2V0LCBlbnVtIGNi bV90eXBlIHR5cGUsCiAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRhdFtdLCB1aW50MzJfdCBh cnJheV9sZW4pOwotaW50IHBzcl9nZXRfbDNfY2JtKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVk IGludCBzb2NrZXQsCi0gICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmNibSwgZW51bSBjYm1f dHlwZSB0eXBlKTsKK2ludCBwc3JfZ2V0X3ZhbChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBp bnQgc29ja2V0LAorICAgICAgICAgICAgICAgIHVpbnQ2NF90ICp2YWwsIGVudW0gY2JtX3R5cGUg dHlwZSk7CiBpbnQgcHNyX3NldF9sM19jYm0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50 IHNvY2tldCwKICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBjYm0sIGVudW0gY2JtX3R5cGUg dHlwZSk7CiAKLS0gCjIuNy40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==