From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v4 16/24] x86: refactor psr: implement set value callback functions for CDP. Date: Wed, 14 Dec 2016 12:07:56 +0800 Message-ID: <1481688484-5093-17-git-send-email-yi.y.sun@linux.intel.com> References: <1481688484-5093-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 1cH7S4-0005q6-A3 for xen-devel@lists.xenproject.org; Wed, 14 Dec 2016 11:10:24 +0000 In-Reply-To: <1481688484-5093-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, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, he.chen@linux.intel.com, ian.jackson@eu.citrix.com, Yi Sun , mengxu@cis.upenn.edu, jbeulich@suse.com, chao.p.peng@linux.intel.com List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIEwzIENEUCBzZXQgdmFsdWUgcmVsYXRlZCBjYWxsYmFjayBm dW5jdGlvbnMuCgpXaXRoIHRoaXMgcGF0Y2gsICdwc3ItY2F0LWNibS1zZXQnIGNvbW1hbmQgY2Fu IHdvcmsgZm9yIEwzIENEUC4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXgu aW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4Ni9wc3IuYyB8IDEzOCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDEz OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2Fy Y2gveDg2L3Bzci5jCmluZGV4IGQwMzkyY2EuLmVlZTFmMjQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTU4MSwxMSArNTgxLDE0OSBA QCBzdGF0aWMgYm9vbCBsM19jZHBfZ2V0X3ZhbChjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0 LCB1bnNpZ25lZCBpbnQgY29zLAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdW5zaWdu ZWQgaW50IGwzX2NkcF9nZXRfY29zX251bShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KQor eworICAgIHJldHVybiAyOworfQorCitzdGF0aWMgaW50IGwzX2NkcF9nZXRfb2xkX3ZhbCh1aW50 NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBm ZWF0X25vZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgb2xkX2NvcykKK3sKKyAgICBpZiAoIG9sZF9jb3MgPiBmZWF0LT5pbmZvLmwzX2NkcF9pbmZv LmNvc19tYXggKQorICAgICAgICAvKiBVc2UgZGVmYXVsdCB2YWx1ZS4gKi8KKyAgICAgICAgb2xk X2NvcyA9IDA7CisKKyAgICAvKiBEYXRhICovCisgICAgdmFsWzBdID0gZ2V0X2NkcF9kYXRhKGZl YXQsIG9sZF9jb3MpOworICAgIC8qIENvZGUgKi8KKyAgICB2YWxbMV0gPSBnZXRfY2RwX2NvZGUo ZmVhdCwgb2xkX2Nvcyk7CisKKyAgICAvKiBDRFAgdXNlcyB0d28gQ09Tcywgb25lIGZvciBkYXRh LCBvbmUgZm9yIGNvZGUuICovCisgICAgcmV0dXJuIDI7Cit9CisKK3N0YXRpYyBpbnQgbDNfY2Rw X3NldF9uZXdfdmFsKHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBvbGRfY29zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZW51bSBjYm1fdHlwZSB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDY0X3QgbSkKK3sKKyAgICBpZiAoIHR5cGUgIT0gUFNSX0NCTV9UWVBFX0wzX0RBVEEgJiYgdHlw ZSAhPSBQU1JfQ0JNX1RZUEVfTDNfQ09ERSApCisgICAgICAgIC8qIENEUCB1c2VzIHR3byBDT1Nz LiBTa2lwIHRoZW0gb3V0c2lkZS4gKi8KKyAgICAgICAgcmV0dXJuIDI7CisKKyAgICBpZiAoICFw c3JfY2hlY2tfY2JtKGZlYXQtPmluZm8ubDNfY2RwX2luZm8uY2JtX2xlbiwgbSkgKQorICAgICAg ICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlmICggdHlwZSA9PSBQU1JfQ0JNX1RZUEVfTDNfREFU QSApCisgICAgICAgIHZhbFswXSA9IG07CisgICAgZWxzZQorICAgICAgICB2YWxbMV0gPSBtOwor CisgICAgLyogQ0RQIHVzZXMgdHdvIENPUywgb25lIGZvciBkYXRhLCBvbmUgZm9yIGNvZGUuICov CisgICAgcmV0dXJuIDI7Cit9CisKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbDNfY2RwX2dldF9jb3Nf bWF4X2Zyb21fdHlwZShjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gY2JtX3R5cGUgdHlwZSkK K3sKKyAgICBpZiAoIHR5cGUgIT0gUFNSX0NCTV9UWVBFX0wzX0RBVEEgJiYgdHlwZSAhPSBQU1Jf Q0JNX1RZUEVfTDNfQ09ERSApCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIGZlYXQt PmluZm8ubDNfY2RwX2luZm8uY29zX21heDsKK30KKworc3RhdGljIGludCBsM19jZHBfY29tcGFy ZV92YWwoY29uc3QgdWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGNvcywgYm9vbCAqZm91bmQpCit7CisgICAgdWludDY0X3QgbDNf ZGVmX2NibTsKKworICAgIGwzX2RlZl9jYm0gPSAoMXVsbCA8PCBmZWF0LT5pbmZvLmwzX2NkcF9p bmZvLmNibV9sZW4pIC0gMTsKKworICAgIC8qCisgICAgICogRGlmZmVyZW50IGZlYXR1cmVzJyBj b3NfbWF4IGFyZSBkaWZmZXJlbnQuIElmIGNvcyBpZCBvZiB0aGUgZmVhdHVyZQorICAgICAqIGJl aW5nIHNldCBleGNlZWRzIG90aGVyIGZlYXR1cmUncyBjb3NfbWF4LCB0aGUgdmFsIG9mIG90aGVy IGZlYXR1cmUKKyAgICAgKiBtdXN0IGJlIGRlZmF1bHQgdmFsdWUuIEhXIHN1cHBvcnRzIHN1Y2gg Y2FzZS4KKyAgICAgKi8KKyAgICBpZiAoIGNvcyA+IGZlYXQtPmluZm8ubDNfY2RwX2luZm8uY29z X21heCApCisgICAgeworICAgICAgICBpZiAoIHZhbFswXSAhPSBsM19kZWZfY2JtIHx8CisgICAg ICAgICAgICAgdmFsWzFdICE9IGwzX2RlZl9jYm0gKQorICAgICAgICB7CisgICAgICAgICAgICAq Zm91bmQgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAtRU5PRU5UOworICAgICAgICB9Cisg ICAgICAgICpmb3VuZCA9IHRydWU7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgKmZvdW5kID0g KHZhbFswXSA9PSBnZXRfY2RwX2RhdGEoZmVhdCwgY29zKSAmJgorICAgICAgICAgICAgICAgICAg dmFsWzFdID09IGdldF9jZHBfY29kZShmZWF0LCBjb3MpKTsKKworICAgIC8qIENEUCB1c2VzIHR3 byBDT1MsIG9uZSBmb3IgZGF0YSwgb25lIGZvciBjb2RlLiAqLworICAgIHJldHVybiAyOworfQor CitzdGF0aWMgdW5zaWduZWQgaW50IGwzX2NkcF9leGNlZWRzX2Nvc19tYXgoY29uc3QgdWludDY0 X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29zKQoreworICAgIHVpbnQ2NF90IGwzX2RlZl9j Ym07CisKKyAgICBsM19kZWZfY2JtID0gKDF1bGwgPDwgZmVhdC0+aW5mby5sM19jZHBfaW5mby5j Ym1fbGVuKSAtIDE7CisKKyAgICBpZiAoIGNvcyA+IGZlYXQtPmluZm8ubDNfY2RwX2luZm8uY29z X21heCAmJgorICAgICAgICAgKHZhbFswXSAhPSBsM19kZWZfY2JtIHx8IHZhbFsxXSAhPSBsM19k ZWZfY2JtKSApCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogRXhjZWVkIGNvc19tYXgg YW5kIHZhbHVlIHRvIHNldCBpcyBub3QgZGVmYXVsdCwKKyAgICAgICAgICAgICAqIHJldHVybiBl cnJvci4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvKiBD RFAgdXNlcyB0d28gQ09TLCBvbmUgZm9yIGRhdGEsIG9uZSBmb3IgY29kZS4gKi8KKyAgICByZXR1 cm4gMjsKK30KKworc3RhdGljIGludCBsM19jZHBfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3Ms IGNvbnN0IHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBmZWF0X25vZGUgKmZlYXQpCit7CisgICAgLyoKKyAgICAgKiBJZiBpbnB1dCBjb3MgaXMgbW9y ZSB0aGFuIHRoZSBjb3NfbWF4IG9mIHRoZSBmZWF0dXJlLCB3ZSBzaG91bGQKKyAgICAgKiBub3Qg c2V0IHRoZSB2YWx1ZS4KKyAgICAgKi8KKyAgICBpZiAoIGNvcyA+IGZlYXQtPmluZm8ubDNfY2Rw X2luZm8uY29zX21heCApCisgICAgICAgIC8qIENEUCB1c2VzIHR3byBDT1MsIG9uZSBmb3IgZGF0 YSwgb25lIGZvciBjb2RlLiAqLworICAgICAgICByZXR1cm4gMjsKKworICAgIC8qIERhdGEgKi8K KyAgICBpZiAoIGdldF9jZHBfZGF0YShmZWF0LCBjb3MpICE9IHZhbFswXSApCisgICAgeworICAg ICAgICBnZXRfY2RwX2RhdGEoZmVhdCwgY29zKSA9IHZhbFswXTsKKyAgICAgICAgd3Jtc3JsKE1T Ul9JQTMyX1BTUl9MM19NQVNLX0RBVEEoY29zKSwgdmFsWzBdKTsKKyAgICB9CisgICAgLyogQ29k ZSAqLworICAgIGlmICggZ2V0X2NkcF9jb2RlKGZlYXQsIGNvcykgIT0gdmFsWzFdICkKKyAgICB7 CisgICAgICAgIGdldF9jZHBfY29kZShmZWF0LCBjb3MpID0gdmFsWzFdOworICAgICAgICB3cm1z cmwoTVNSX0lBMzJfUFNSX0wzX01BU0tfQ09ERShjb3MpLCB2YWxbMV0pOworICAgIH0KKyAgICAv KiBDRFAgdXNlcyB0d28gQ09TLCBvbmUgZm9yIGRhdGEsIG9uZSBmb3IgY29kZS4gKi8KKyAgICBy ZXR1cm4gMjsKK30KKwogc3RydWN0IGZlYXRfb3BzIGwzX2NkcF9vcHMgPSB7CiAgICAgLmluaXRf ZmVhdHVyZSA9IGwzX2NkcF9pbml0X2ZlYXR1cmUsCiAgICAgLmdldF9tYXhfY29zX21heCA9IGwz X2NkcF9nZXRfbWF4X2Nvc19tYXgsCiAgICAgLmdldF9mZWF0X2luZm8gPSBsM19jZHBfZ2V0X2Zl YXRfaW5mbywKICAgICAuZ2V0X3ZhbCA9IGwzX2NkcF9nZXRfdmFsLAorICAgIC5nZXRfY29zX251 bSA9IGwzX2NkcF9nZXRfY29zX251bSwKKyAgICAuZ2V0X29sZF92YWwgPSBsM19jZHBfZ2V0X29s ZF92YWwsCisgICAgLnNldF9uZXdfdmFsID0gbDNfY2RwX3NldF9uZXdfdmFsLAorICAgIC5nZXRf Y29zX21heF9mcm9tX3R5cGUgPSBsM19jZHBfZ2V0X2Nvc19tYXhfZnJvbV90eXBlLAorICAgIC5j b21wYXJlX3ZhbCA9IGwzX2NkcF9jb21wYXJlX3ZhbCwKKyAgICAuZXhjZWVkc19jb3NfbWF4ID0g bDNfY2RwX2V4Y2VlZHNfY29zX21heCwKKyAgICAud3JpdGVfbXNyID0gbDNfY2RwX3dyaXRlX21z ciwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9wc3JfYm9vbChjaGFyICpzLCBjaGFy ICp2YWx1ZSwgY2hhciAqZmVhdHVyZSwKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==