From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v6 12/24] x86: refactor psr: set value: implement write msr flow. Date: Wed, 8 Feb 2017 16:16:04 +0800 Message-ID: <1486541776-8406-13-git-send-email-yi.y.sun@linux.intel.com> References: <1486541776-8406-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.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cbNTV-000621-6o for xen-devel@lists.xenproject.org; Wed, 08 Feb 2017 08:19:37 +0000 In-Reply-To: <1486541776-8406-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 ZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KIHhlbi9hcmNoL3g4 Ni9wc3IuYyB8IDc4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDc3IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMK aW5kZXggOGYwNmQ2MC4uMjNiZjhkOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisr KyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwpAQCAtMTY5LDYgKzE2OSw5IEBAIHN0cnVjdCBmZWF0X29w cyB7CiAgICAgYm9vbCAoKmZpdHNfY29zX21heCkoY29uc3QgdWludDY0X3QgdmFsW10sCiAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgY29zKTsKKyAgICAvKiB3cml0ZV9tc3Ig aXMgdXNlZCB0byB3cml0ZSBvdXQgZmVhdHVyZSBNU1IgcmVnaXN0ZXIuICovCisgICAgaW50ICgq d3JpdGVfbXNyKSh1bnNpZ25lZCBpbnQgY29zLCBjb25zdCB1aW50NjRfdCB2YWxbXSwKKyAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpOwogfTsKIAogLyoKQEAgLTQy NCw2ICs0MjcsMjEgQEAgc3RhdGljIGJvb2wgbDNfY2F0X2ZpdHNfY29zX21heChjb25zdCB1aW50 NjRfdCB2YWxbXSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGludCBsM19jYXRfd3Jp dGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIGNvbnN0IHVpbnQ2NF90IHZhbFtdLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXQpCit7CisgICAgaWYgKCBj b3MgPiBmZWF0LT5pbmZvLmwzX2NhdF9pbmZvLmNvc19tYXggKQorICAgICAgICByZXR1cm4gLUVJ TlZBTDsKKworICAgIGlmICggZmVhdC0+Y29zX3JlZ192YWxbY29zXSAhPSB2YWxbMF0gKQorICAg IHsKKyAgICAgICAgZmVhdC0+Y29zX3JlZ192YWxbY29zXSA9IHZhbFswXTsKKyAgICAgICAgd3Jt c3JsKE1TUl9JQTMyX1BTUl9MM19NQVNLKGNvcyksIHZhbFswXSk7CisgICAgfQorCisgICAgcmV0 dXJuIDA7Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9vcHMgbDNfY2F0X29wcyA9IHsK ICAgICAuZ2V0X2Nvc19tYXggPSBsM19jYXRfZ2V0X2Nvc19tYXgsCiAgICAgLmdldF9mZWF0X2lu Zm8gPSBsM19jYXRfZ2V0X2ZlYXRfaW5mbywKQEAgLTQzMyw2ICs0NTEsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGZlYXRfb3BzIGwzX2NhdF9vcHMgPSB7CiAgICAgLnNldF9uZXdfdmFsID0gbDNf Y2F0X3NldF9uZXdfdmFsLAogICAgIC5jb21wYXJlX3ZhbCA9IGwzX2NhdF9jb21wYXJlX3ZhbCwK ICAgICAuZml0c19jb3NfbWF4ID0gbDNfY2F0X2ZpdHNfY29zX21heCwKKyAgICAud3JpdGVfbXNy ID0gbDNfY2F0X3dyaXRlX21zciwKIH07CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9wc3Jf Ym9vbChjaGFyICpzLCBjaGFyICp2YWx1ZSwgY2hhciAqZmVhdHVyZSwKQEAgLTkxNSwxMCArOTM0 LDY3IEBAIHN0YXRpYyBpbnQgcGlja19hdmFpbF9jb3MoY29uc3Qgc3RydWN0IHBzcl9zb2NrZXRf aW5mbyAqaW5mbywKICAgICByZXR1cm4gLUVOT0VOVDsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGlu dCBnZXRfc29ja2V0X2NwdSh1bnNpZ25lZCBpbnQgc29ja2V0KQoreworICAgIGlmICggbGlrZWx5 KHNvY2tldCA8IG5yX3NvY2tldHMpICkKKyAgICAgICAgcmV0dXJuIGNwdW1hc2tfYW55KHNvY2tl dF9jcHVtYXNrW3NvY2tldF0pOworCisgICAgcmV0dXJuIG5yX2NwdV9pZHM7Cit9CisKK3N0cnVj dCBjb3Nfd3JpdGVfaW5mbworeworICAgIHVuc2lnbmVkIGludCBjb3M7CisgICAgc3RydWN0IGxp c3RfaGVhZCAqZmVhdF9saXN0OworICAgIGNvbnN0IHVpbnQ2NF90ICp2YWw7Cit9OworCitzdGF0 aWMgdm9pZCBkb193cml0ZV9wc3JfbXNyKHZvaWQgKmRhdGEpCit7CisgICAgc3RydWN0IGNvc193 cml0ZV9pbmZvICppbmZvID0gKHN0cnVjdCBjb3Nfd3JpdGVfaW5mbyAqKWRhdGE7CisgICAgdW5z aWduZWQgaW50IGNvcyAgICAgICAgICAgPSBpbmZvLT5jb3M7CisgICAgc3RydWN0IGxpc3RfaGVh ZCAqZmVhdF9saXN0PSBpbmZvLT5mZWF0X2xpc3Q7CisgICAgY29uc3QgdWludDY0X3QgKnZhbCAg ICAgICAgPSBpbmZvLT52YWw7CisgICAgc3RydWN0IGZlYXRfbm9kZSAqZmVhdDsKKyAgICBpbnQg cmV0OworCisgICAgaWYgKCAhZmVhdF9saXN0ICkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyog V2UgbmVlZCBzZXQgYWxsIGZlYXR1cmVzIHZhbHVlcyBpbnRvIE1TUnMuICovCisgICAgbGlzdF9m b3JfZWFjaF9lbnRyeShmZWF0LCBmZWF0X2xpc3QsIGxpc3QpCisgICAgeworICAgICAgICByZXQg PSBmZWF0LT5vcHMud3JpdGVfbXNyKGNvcywgdmFsLCBmZWF0KTsKKyAgICAgICAgaWYgKCByZXQg PCAwICkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2YWwgKz0gZmVhdC0+b3BzLmdl dF9jb3NfbnVtKGZlYXQpOworICAgIH0KK30KKwogc3RhdGljIGludCB3cml0ZV9wc3JfbXNyKHVu c2lnbmVkIGludCBzb2NrZXQsIHVuc2lnbmVkIGludCBjb3MsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgdWludDY0X3QgKnZhbCkKIHsKLSAgICByZXR1cm4gLUVOT0VOVDsKKyAgICBz dHJ1Y3QgcHNyX3NvY2tldF9pbmZvICppbmZvID0gZ2V0X3NvY2tldF9pbmZvKHNvY2tldCk7Cisg ICAgc3RydWN0IGNvc193cml0ZV9pbmZvIGRhdGEgPQorICAgIHsKKyAgICAgICAgLmNvcyA9IGNv cywKKyAgICAgICAgLmZlYXRfbGlzdCA9ICZpbmZvLT5mZWF0X2xpc3QsCisgICAgICAgIC52YWwg PSB2YWwsCisgICAgfTsKKworICAgIGlmICggc29ja2V0ID09IGNwdV90b19zb2NrZXQoc21wX3By b2Nlc3Nvcl9pZCgpKSApCisgICAgICAgIGRvX3dyaXRlX3Bzcl9tc3IoJmRhdGEpOworICAgIGVs c2UKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBjcHUgPSBnZXRfc29ja2V0X2NwdShzb2Nr ZXQpOworCisgICAgICAgIGlmICggY3B1ID49IG5yX2NwdV9pZHMgKQorICAgICAgICAgICAgcmV0 dXJuIC1FTk9UU09DSzsKKyAgICAgICAgb25fc2VsZWN0ZWRfY3B1cyhjcHVtYXNrX29mKGNwdSks IGRvX3dyaXRlX3Bzcl9tc3IsICZkYXRhLCAxKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKIH0K IAogaW50IHBzcl9zZXRfdmFsKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBzb2NrZXQs Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=