From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v8 12/24] x86: refactor psr: set value: implement write msr flow. Date: Wed, 15 Feb 2017 16:49:27 +0800 Message-ID: <1487148579-7243-13-git-send-email-yi.y.sun@linux.intel.com> References: <1487148579-7243-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 1cdvL4-0007Vy-Ls for xen-devel@lists.xenproject.org; Wed, 15 Feb 2017 08:53:26 +0000 In-Reply-To: <1487148579-7243-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: kevin.tian@intel.com, 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 Q29udGludWUgd2l0aCBwcmV2aW91cyBwYXRjaDoKJ3g4NjogcmVmYWN0b3IgcHNyOiBzZXQgdmFs dWU6IGltcGxlbWVudCBjb3MgaWQgcGlja2luZyBmbG93LicKCldlIGhhdmUgZ290IGFsbCBmZWF0 dXJlcyB2YWx1ZXMgYW5kIENPUyBJRCB0byBzZXQuIFRoZW4sIHdlIHdyaXRlIE1TUnMgb2YgYWxs CmZlYXR1cmVzIGV4Y2VwdCB0aGUgc2V0dGluZyB2YWx1ZSBpcyBzYW1lIGFzIG9yaWdpbmFsIHZh bHVlLgoKVGlsbCBub3csIHNldCB2YWx1ZSBwcm9jZXNzIGlzIGNvbXBsZXRlZC4KClNpZ25lZC1v ZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0Kdjg6CiAgICAtIG1v ZGlmeSAnd3JpdGVfbXNyJyBjYWxsYmFjayBmdW5jdGlvbiB0byAndm9pZCcgYmVjYXVzZSB3ZSBo YXZlIHRvIHNldAogICAgICBhbGwgZmVhdHVyZXMnIGNibS4gV2hlbiBpbnB1dCBjb3MgZXhjZWVk cyBzb21lIGZlYXR1cmVzJyBjb3NfbWF4LCBqdXN0CiAgICAgIHNraXAgdGhlbSBidXQgbm90IGJy ZWFrIHRoZSBpdGVyYXRpb24uCi0tLQogeGVuL2FyY2gveDg2L3Bzci5jIHwgNzcgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hh bmdlZCwgNzYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9wc3IuYyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwppbmRleCA1ZGU1M2FjLi44MmJiOGZl IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHNyLmMKKysrIGIveGVuL2FyY2gveDg2L3Bzci5j CkBAIC0xNjksNiArMTY5LDkgQEAgc3RydWN0IGZlYXRfb3BzIHsKICAgICBib29sICgqZml0c19j b3NfbWF4KShjb25zdCB1aW50NjRfdCB2YWxbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBjb3MpOworICAgIC8qIHdyaXRlX21zciBpcyB1c2VkIHRvIHdyaXRlIG91dCBm ZWF0dXJlIE1TUiByZWdpc3Rlci4gKi8KKyAgICB2b2lkICgqd3JpdGVfbXNyKSh1bnNpZ25lZCBp bnQgY29zLCBjb25zdCB1aW50NjRfdCB2YWxbXSwKKyAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgZmVhdF9ub2RlICpmZWF0KTsKIH07CiAKIC8qCkBAIC00MjcsNiArNDMwLDIxIEBAIHN0YXRp YyBib29sIGwzX2NhdF9maXRzX2Nvc19tYXgoY29uc3QgdWludDY0X3QgdmFsW10sCiAgICAgcmV0 dXJuIHRydWU7CiB9CiAKK3N0YXRpYyB2b2lkIGwzX2NhdF93cml0ZV9tc3IodW5zaWduZWQgaW50 IGNvcywgY29uc3QgdWludDY0X3QgdmFsW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpCit7CisgICAgaWYgKCBjb3MgPiBmZWF0LT5pbmZvLmwz X2NhdF9pbmZvLmNvc19tYXggKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIGZlYXQtPmNv c19yZWdfdmFsW2Nvc10gIT0gdmFsWzBdICkKKyAgICB7CisgICAgICAgIGZlYXQtPmNvc19yZWdf dmFsW2Nvc10gPSB2YWxbMF07CisgICAgICAgIHdybXNybChNU1JfSUEzMl9QU1JfTDNfTUFTSyhj b3MpLCB2YWxbMF0pOworICAgIH0KKworICAgIHJldHVybjsKK30KKwogc3RhdGljIGNvbnN0IHN0 cnVjdCBmZWF0X29wcyBsM19jYXRfb3BzID0gewogICAgIC5nZXRfY29zX21heCA9IGwzX2NhdF9n ZXRfY29zX21heCwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGwzX2NhdF9nZXRfZmVhdF9pbmZvLApA QCAtNDM2LDYgKzQ1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9vcHMgbDNfY2F0X29w cyA9IHsKICAgICAuc2V0X25ld192YWwgPSBsM19jYXRfc2V0X25ld192YWwsCiAgICAgLmNvbXBh cmVfdmFsID0gbDNfY2F0X2NvbXBhcmVfdmFsLAogICAgIC5maXRzX2Nvc19tYXggPSBsM19jYXRf Zml0c19jb3NfbWF4LAorICAgIC53cml0ZV9tc3IgPSBsM19jYXRfd3JpdGVfbXNyLAogfTsKIAog c3RhdGljIHZvaWQgX19pbml0IHBhcnNlX3Bzcl9ib29sKGNoYXIgKnMsIGNoYXIgKnZhbHVlLCBj aGFyICpmZWF0dXJlLApAQCAtOTE4LDEwICs5MzcsNjYgQEAgc3RhdGljIGludCBwaWNrX2F2YWls X2Nvcyhjb25zdCBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvLAogICAgIHJldHVybiAtRU5P RU5UOwogfQogCitzdGF0aWMgdW5zaWduZWQgaW50IGdldF9zb2NrZXRfY3B1KHVuc2lnbmVkIGlu dCBzb2NrZXQpCit7CisgICAgaWYgKCBsaWtlbHkoc29ja2V0IDwgbnJfc29ja2V0cykgKQorICAg ICAgICByZXR1cm4gY3B1bWFza19hbnkoc29ja2V0X2NwdW1hc2tbc29ja2V0XSk7CisKKyAgICBy ZXR1cm4gbnJfY3B1X2lkczsKK30KKworc3RydWN0IGNvc193cml0ZV9pbmZvCit7CisgICAgdW5z aWduZWQgaW50IGNvczsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkICpmZWF0X2xpc3Q7CisgICAgY29u c3QgdWludDY0X3QgKnZhbDsKK307CisKK3N0YXRpYyB2b2lkIGRvX3dyaXRlX3Bzcl9tc3Iodm9p ZCAqZGF0YSkKK3sKKyAgICBzdHJ1Y3QgY29zX3dyaXRlX2luZm8gKmluZm8gPSAoc3RydWN0IGNv c193cml0ZV9pbmZvICopZGF0YTsKKyAgICB1bnNpZ25lZCBpbnQgY29zICAgICAgICAgICA9IGlu Zm8tPmNvczsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkICpmZWF0X2xpc3Q9IGluZm8tPmZlYXRfbGlz dDsKKyAgICBjb25zdCB1aW50NjRfdCAqdmFsICAgICAgICA9IGluZm8tPnZhbDsKKyAgICBzdHJ1 Y3QgZmVhdF9ub2RlICpmZWF0OworCisgICAgaWYgKCAhZmVhdF9saXN0ICkKKyAgICAgICAgcmV0 dXJuOworCisgICAgLyoKKyAgICAgKiBXZSBuZWVkIHNldCBhbGwgZmVhdHVyZXMgdmFsdWVzIGlu dG8gTVNScy4gRXZlbiB0aGUgY29zIGV4Y2VlZHMgc29tZQorICAgICAqIGZlYXR1cmVzJyBjb3Nf bWF4LCBqdXN0IHNraXAgdGhlbS4KKyAgICAgKi8KKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGZl YXQsIGZlYXRfbGlzdCwgbGlzdCkKKyAgICB7CisgICAgICAgIGZlYXQtPm9wcy53cml0ZV9tc3Io Y29zLCB2YWwsIGZlYXQpOworICAgICAgICB2YWwgKz0gZmVhdC0+b3BzLmdldF9jb3NfbnVtKGZl YXQpOworICAgIH0KK30KKwogc3RhdGljIGludCB3cml0ZV9wc3JfbXNyKHVuc2lnbmVkIGludCBz b2NrZXQsIHVuc2lnbmVkIGludCBjb3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg dWludDY0X3QgKnZhbCkKIHsKLSAgICByZXR1cm4gLUVOT0VOVDsKKyAgICBzdHJ1Y3QgcHNyX3Nv Y2tldF9pbmZvICppbmZvID0gZ2V0X3NvY2tldF9pbmZvKHNvY2tldCk7CisgICAgc3RydWN0IGNv c193cml0ZV9pbmZvIGRhdGEgPQorICAgIHsKKyAgICAgICAgLmNvcyA9IGNvcywKKyAgICAgICAg LmZlYXRfbGlzdCA9ICZpbmZvLT5mZWF0X2xpc3QsCisgICAgICAgIC52YWwgPSB2YWwsCisgICAg fTsKKworICAgIGlmICggc29ja2V0ID09IGNwdV90b19zb2NrZXQoc21wX3Byb2Nlc3Nvcl9pZCgp KSApCisgICAgICAgIGRvX3dyaXRlX3Bzcl9tc3IoJmRhdGEpOworICAgIGVsc2UKKyAgICB7Cisg ICAgICAgIHVuc2lnbmVkIGludCBjcHUgPSBnZXRfc29ja2V0X2NwdShzb2NrZXQpOworCisgICAg ICAgIGlmICggY3B1ID49IG5yX2NwdV9pZHMgKQorICAgICAgICAgICAgcmV0dXJuIC1FTk9UU09D SzsKKyAgICAgICAgb25fc2VsZWN0ZWRfY3B1cyhjcHVtYXNrX29mKGNwdSksIGRvX3dyaXRlX3Bz cl9tc3IsICZkYXRhLCAxKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogaW50IHBzcl9z ZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQsCi0tIAoxLjkuMQoK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZl bCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=