From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH RESEND v5 16/24] x86: refactor psr: implement set value callback functions for CDP. Date: Thu, 19 Jan 2017 14:01:18 +0800 Message-ID: <1484805686-7249-17-git-send-email-yi.y.sun@linux.intel.com> References: <1484805686-7249-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cU5ol-0007EB-Fo for xen-devel@lists.xenproject.org; Thu, 19 Jan 2017 06:03:27 +0000 In-Reply-To: <1484805686-7249-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, konrad.wilk@oracle.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 aW50ZWwuY29tPgotLS0KdjU6CiAgICAtIHJlbW92ZSB0eXBlIGNoZWNrIGluIGNhbGxiYWNrIGZ1 bmN0aW9uLgogICAgLSBtb2RpZnkgcmV0dXJuIHZhbHVlIG9mIGNhbGxiYWNrIGZ1bmN0aW9ucyBi ZWNhdXNlIHdlIGRvIG5vdCBuZWVkIHRoZW0KICAgICAgdG8gcmV0dXJuIG51bWJlciBvZiBlbnRy aWVzIHRoZSBmZWF0dXJlIHVzZXMuIEluIGNhbGxlciwgd2UgY2FsbAogICAgICAnZ2V0X2Nvc19u dW0nIHRvIGdldCB0aGUgbnVtYmVyIG9mIGVudHJpZXMgdGhlIGZlYXR1cmUgdXNlcy4KICAgIC0g cmVtb3ZlICdsM19jZHBfZ2V0X2Nvc19tYXhfZnJvbV90eXBlJy4KICAgIC0gcmVuYW1lICdsM19j ZHBfZXhjZWVkc19jb3NfbWF4JyB0byAnbDNfY2RwX2ZpdHNfY29zX21heCcuCi0tLQogeGVuL2Fy Y2gveDg2L3Bzci5jIHwgMTE4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXggZGMw NjJmZi4uNTk2ZTViMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hlbi9h cmNoL3g4Ni9wc3IuYwpAQCAtNTQ4LDEwICs1NDgsMTI4IEBAIHN0YXRpYyBib29sIGwzX2NkcF9n ZXRfdmFsKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIHVuc2lnbmVkIGludCBjb3MsCiAg ICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0YXRpYyB1bnNpZ25lZCBpbnQgbDNfY2RwX2dldF9jb3Nf bnVtKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpCit7CisgICAgcmV0dXJuIDI7Cit9CisK K3N0YXRpYyBpbnQgbDNfY2RwX2dldF9vbGRfdmFsKHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvbGRfY29zKQoreworICAgIGlm ICggb2xkX2NvcyA+IGZlYXQtPmluZm8ubDNfY2RwX2luZm8uY29zX21heCApCisgICAgICAgIC8q IFVzZSBkZWZhdWx0IHZhbHVlLiAqLworICAgICAgICBvbGRfY29zID0gMDsKKworICAgIC8qIERh dGEgKi8KKyAgICB2YWxbMF0gPSBnZXRfY2RwX2RhdGEoZmVhdCwgb2xkX2Nvcyk7CisgICAgLyog Q29kZSAqLworICAgIHZhbFsxXSA9IGdldF9jZHBfY29kZShmZWF0LCBvbGRfY29zKTsKKworICAg IHJldHVybiAwOworfQorCitzdGF0aWMgaW50IGwzX2NkcF9zZXRfbmV3X3ZhbCh1aW50NjRfdCB2 YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmZWF0X25v ZGUgKmZlYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIGNibV90eXBlIHR5 cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBtKQoreworICAgIGlm ICggIXBzcl9jaGVja19jYm0oZmVhdC0+aW5mby5sM19jZHBfaW5mby5jYm1fbGVuLCBtKSApCisg ICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCB0eXBlID09IFBTUl9DQk1fVFlQRV9M M19EQVRBICkKKyAgICAgICAgdmFsWzBdID0gbTsKKyAgICBlbHNlCisgICAgICAgIHZhbFsxXSA9 IG07CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludCBsM19jZHBfY29tcGFyZV92YWwo Y29uc3QgdWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dW5zaWduZWQgaW50IGNvcywgYm9vbCAqZm91bmQpCit7CisgICAgdWludDY0X3QgbDNfZGVmX2Ni bTsKKworICAgIGwzX2RlZl9jYm0gPSAoMXVsbCA8PCBmZWF0LT5pbmZvLmwzX2NkcF9pbmZvLmNi bV9sZW4pIC0gMTsKKworICAgIC8qCisgICAgICogRGlmZmVyZW50IGZlYXR1cmVzJyBjb3NfbWF4 IGFyZSBkaWZmZXJlbnQuIElmIGNvcyBpZCBvZiB0aGUgZmVhdHVyZQorICAgICAqIGJlaW5nIHNl dCBleGNlZWRzIG90aGVyIGZlYXR1cmUncyBjb3NfbWF4LCB0aGUgdmFsIG9mIG90aGVyIGZlYXR1 cmUKKyAgICAgKiBtdXN0IGJlIGRlZmF1bHQgdmFsdWUuIEhXIHN1cHBvcnRzIHN1Y2ggY2FzZS4K KyAgICAgKi8KKyAgICBpZiAoIGNvcyA+IGZlYXQtPmluZm8ubDNfY2RwX2luZm8uY29zX21heCAp CisgICAgeworICAgICAgICBpZiAoIHZhbFswXSAhPSBsM19kZWZfY2JtIHx8CisgICAgICAgICAg ICAgdmFsWzFdICE9IGwzX2RlZl9jYm0gKQorICAgICAgICB7CisgICAgICAgICAgICAqZm91bmQg PSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiAtRU5PRU5UOworICAgICAgICB9CisgICAgICAg ICpmb3VuZCA9IHRydWU7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgKmZvdW5kID0gKHZhbFsw XSA9PSBnZXRfY2RwX2RhdGEoZmVhdCwgY29zKSAmJgorICAgICAgICAgICAgICAgICAgdmFsWzFd ID09IGdldF9jZHBfY29kZShmZWF0LCBjb3MpKTsKKworICAgIHJldHVybiAwOworfQorCitzdGF0 aWMgYm9vbCBsM19jZHBfZml0c19jb3NfbWF4KGNvbnN0IHVpbnQ2NF90IHZhbFtdLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29zKQoreworICAg IHVpbnQ2NF90IGwzX2RlZl9jYm07CisKKyAgICBsM19kZWZfY2JtID0gKDF1bGwgPDwgZmVhdC0+ aW5mby5sM19jZHBfaW5mby5jYm1fbGVuKSAtIDE7CisKKyAgICBpZiAoIGNvcyA+IGZlYXQtPmlu Zm8ubDNfY2RwX2luZm8uY29zX21heCAmJgorICAgICAgICAgKHZhbFswXSAhPSBsM19kZWZfY2Jt IHx8IHZhbFsxXSAhPSBsM19kZWZfY2JtKSApCisgICAgICAgICAgICAvKgorICAgICAgICAgICAg ICogRXhjZWVkIGNvc19tYXggYW5kIHZhbHVlIHRvIHNldCBpcyBub3QgZGVmYXVsdCwKKyAgICAg ICAgICAgICAqIHJldHVybiBlcnJvci4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBpbnQgbDNfY2RwX3dy aXRlX21zcih1bnNpZ25lZCBpbnQgY29zLCBjb25zdCB1aW50NjRfdCB2YWxbXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0KQoreworICAgIC8qCisg ICAgICogSWYgaW5wdXQgY29zIGlzIG1vcmUgdGhhbiB0aGUgY29zX21heCBvZiB0aGUgZmVhdHVy ZSwgd2Ugc2hvdWxkCisgICAgICogbm90IHNldCB0aGUgdmFsdWUuCisgICAgICovCisgICAgaWYg KCBjb3MgPiBmZWF0LT5pbmZvLmwzX2NkcF9pbmZvLmNvc19tYXggKQorICAgICAgICByZXR1cm4g LUVJTlZBTDsKKworICAgIC8qIERhdGEgKi8KKyAgICBpZiAoIGdldF9jZHBfZGF0YShmZWF0LCBj b3MpICE9IHZhbFswXSApCisgICAgeworICAgICAgICBnZXRfY2RwX2RhdGEoZmVhdCwgY29zKSA9 IHZhbFswXTsKKyAgICAgICAgd3Jtc3JsKE1TUl9JQTMyX1BTUl9MM19NQVNLX0RBVEEoY29zKSwg dmFsWzBdKTsKKyAgICB9CisgICAgLyogQ29kZSAqLworICAgIGlmICggZ2V0X2NkcF9jb2RlKGZl YXQsIGNvcykgIT0gdmFsWzFdICkKKyAgICB7CisgICAgICAgIGdldF9jZHBfY29kZShmZWF0LCBj b3MpID0gdmFsWzFdOworICAgICAgICB3cm1zcmwoTVNSX0lBMzJfUFNSX0wzX01BU0tfQ09ERShj b3MpLCB2YWxbMV0pOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiBzdHJ1Y3QgZmVhdF9v cHMgbDNfY2RwX29wcyA9IHsKICAgICAuZ2V0X2Nvc19tYXggPSBsM19jZHBfZ2V0X2Nvc19tYXgs CiAgICAgLmdldF9mZWF0X2luZm8gPSBsM19jZHBfZ2V0X2ZlYXRfaW5mbywKICAgICAuZ2V0X3Zh bCA9IGwzX2NkcF9nZXRfdmFsLAorICAgIC5nZXRfY29zX251bSA9IGwzX2NkcF9nZXRfY29zX251 bSwKKyAgICAuZ2V0X29sZF92YWwgPSBsM19jZHBfZ2V0X29sZF92YWwsCisgICAgLnNldF9uZXdf dmFsID0gbDNfY2RwX3NldF9uZXdfdmFsLAorICAgIC5jb21wYXJlX3ZhbCA9IGwzX2NkcF9jb21w YXJlX3ZhbCwKKyAgICAuZml0c19jb3NfbWF4ID0gbDNfY2RwX2ZpdHNfY29zX21heCwKKyAgICAu d3JpdGVfbXNyID0gbDNfY2RwX3dyaXRlX21zciwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBw YXJzZV9wc3JfYm9vbChjaGFyICpzLCBjaGFyICp2YWx1ZSwgY2hhciAqZmVhdHVyZSwKLS0gCjEu OS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==