From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v5 05/13] pvh/acpi: Handle ACPI accesses for PVH guests Date: Fri, 16 Dec 2016 18:18:31 -0500 Message-ID: <1481930319-4796-6-git-send-email-boris.ostrovsky@oracle.com> References: <1481930319-4796-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1481930319-4796-1-git-send-email-boris.ostrovsky@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, jbeulich@suse.com, Boris Ostrovsky , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org U3Vic2VxdWVudCBkb21jdGwgYWNjZXNzIHRvIEFDUEkgcmVnaXN0ZXJzIGFuZCBWQ1BVIG1hcCB3 aWxsIHVzZSB0aGUKc2FtZSBjb2RlLiBXZSBjcmVhdGUgYWNwaV9bY3B1bWFwX11hY2Nlc3NfY29t bW9uKCkgcm91dGluZXMgaW4gYW50aWNpcGF0aW9uCm9mIHRoZXNlIGNoYW5nZXMuCgpTaWduZWQt b2ZmLWJ5OiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29tPgotLS0K Q2hhbmdlcyBpbiB2NToKKiBDb2RlIG1vdmVtZW50IGR1ZSB0byBjaGFuZ2VzIGluIHBhdGNoIDQK KiBBZGRlZCBmYWxsdGhvdWdoIHN3aXRjaCBzdGF0ZW1udCBjb21tZW50cwoqIEZyZWUgZC0+YXZh aWxfdmNwdXMKCiB4ZW4vYXJjaC94ODYvaHZtL2FjcGkuYyB8IDEyNyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9jb21tb24vZG9tYWluLmMgICAg IHwgICAxICsKIHhlbi9jb21tb24vZG9tY3RsLmMgICAgIHwgICA1ICsrCiB4ZW4vaW5jbHVkZS94 ZW4vc2NoZWQuaCB8ICAgMyArKwogNCBmaWxlcyBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2FjcGkuYyBiL3hl bi9hcmNoL3g4Ni9odm0vYWNwaS5jCmluZGV4IDliMjg4NWUuLmIyMjk5YTQgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9odm0vYWNwaS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vYWNwaS5jCkBA IC0yLDEyICsyLDEyOSBAQAogICoKICAqIENvcHlyaWdodCAoYykgMjAxNiBPcmFjbGUgYW5kL29y IGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICovCisjaW5jbHVkZSA8eGVu L2FjcGkuaD4KICNpbmNsdWRlIDx4ZW4vZXJybm8uaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAj aW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAKICNpbmNsdWRlIDxwdWJsaWMvYXJjaC14ODYveGVuLmg+ CiAKK3N0YXRpYyBpbnQgYWNwaV9jcHVtYXBfYWNjZXNzX2NvbW1vbihzdHJ1Y3QgZG9tYWluICpk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXIsIHVuc2lnbmVk IGludCBwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBieXRlcywgdWludDMyX3QgKnZhbCkKK3sKKyAgICB1bnNpZ25lZCBpbnQgZmlyc3RfYnl0 ZSA9IHBvcnQgLSBYRU5fQUNQSV9DUFVfTUFQOworCisgICAgQlVJTERfQlVHX09OKFhFTl9BQ1BJ X0NQVV9NQVAgKyBYRU5fQUNQSV9DUFVfTUFQX0xFTgorICAgICAgICAgICAgICAgICA+PSBBQ1BJ X0dQRTBfQkxLX0FERFJFU1NfVjEpOworCisgICAgaWYgKCBkaXIgPT0gWEVOX0RPTUNUTF9BQ1BJ X1JFQUQgKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgbWFzayA9IChieXRlcyA8IDQpID8gfjBV IDw8IChieXRlcyAqIDgpIDogMDsKKworICAgICAgICAvKgorICAgICAgICAgKiBDbGVhciBiaXRz IHRoYXQgd2UgYXJlIGFib3V0IHRvIHJlYWQgdG8gaW4gY2FzZSB3ZQorICAgICAgICAgKiBjb3B5 IGZld2VyIHRoYW4gQGJ5dGVzLgorICAgICAgICAgKi8KKyAgICAgICAgKnZhbCAmPSBtYXNrOwor CisgICAgICAgIGlmICggKChkLT5tYXhfdmNwdXMgKyA3KSAvIDgpID4gZmlyc3RfYnl0ZSApCisg ICAgICAgICAgICBtZW1jcHkodmFsLCAodWludDhfdCAqKWQtPmF2YWlsX3ZjcHVzICsgZmlyc3Rf Ynl0ZSwKKyAgICAgICAgICAgICAgICAgICBtaW4oYnl0ZXMsICgoZC0+bWF4X3ZjcHVzICsgNykg LyA4KSAtIGZpcnN0X2J5dGUpKTsKKyAgICB9CisgICAgZWxzZQorICAgICAgICAvKiBHdWVzdHMg ZG8gbm90IHdyaXRlIENQVSBtYXAgKi8KKyAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVB QkxFOworCisgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKK30KKworc3RhdGljIGludCBhY3BpX2Fj Y2Vzc19jb21tb24oc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBkaXIsIHVuc2lnbmVkIGludCBwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IGJ5dGVzLCB1aW50MzJfdCAqdmFsKQoreworICAgIHVpbnQxNl90 ICpzdHMgPSBOVUxMLCAqZW4gPSBOVUxMOworICAgIGNvbnN0IHVpbnQxNl90ICptYXNrX3N0cyA9 IE5VTEwsICptYXNrX2VuID0gTlVMTDsKKyAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgcG0xYV9z dHNfbWFzayA9IEFDUElfQklUTUFTS19HTE9CQUxfTE9DS19TVEFUVVM7CisgICAgc3RhdGljIGNv bnN0IHVpbnQxNl90IHBtMWFfZW5fbWFzayA9IEFDUElfQklUTUFTS19HTE9CQUxfTE9DS19FTkFC TEU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IGdwZTBfc3RzX21hc2sgPSAxVSA8PCBYRU5f QUNQSV9HUEUwX0NQVUhQX0JJVDsKKyAgICBzdGF0aWMgY29uc3QgdWludDE2X3QgZ3BlMF9lbl9t YXNrID0gMVUgPDwgWEVOX0FDUElfR1BFMF9DUFVIUF9CSVQ7CisKKyAgICBBU1NFUlQoIWhhc19h Y3BpX2RtX2ZmKGQpKTsKKworICAgIHN3aXRjaCAoIHBvcnQgKQorICAgIHsKKyAgICBjYXNlIEFD UElfUE0xQV9FVlRfQkxLX0FERFJFU1NfVjEgLi4uCisgICAgICAgIEFDUElfUE0xQV9FVlRfQkxL X0FERFJFU1NfVjEgKworICAgICAgICBzaXplb2YoZC0+YXJjaC5odm1fZG9tYWluLmFjcGkucG0x YV9zdHMpICsKKyAgICAgICAgc2l6ZW9mKGQtPmFyY2guaHZtX2RvbWFpbi5hY3BpLnBtMWFfZW4p OgorCisgICAgICAgIHN0cyA9ICZkLT5hcmNoLmh2bV9kb21haW4uYWNwaS5wbTFhX3N0czsKKyAg ICAgICAgZW4gPSAmZC0+YXJjaC5odm1fZG9tYWluLmFjcGkucG0xYV9lbjsKKyAgICAgICAgbWFz a19zdHMgPSAmcG0xYV9zdHNfbWFzazsKKyAgICAgICAgbWFza19lbiA9ICZwbTFhX2VuX21hc2s7 CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBBQ1BJX0dQRTBfQkxLX0FERFJFU1NfVjEgLi4u CisgICAgICAgIEFDUElfR1BFMF9CTEtfQUREUkVTU19WMSArCisgICAgICAgIHNpemVvZihkLT5h cmNoLmh2bV9kb21haW4uYWNwaS5ncGUwX3N0cykgKworICAgICAgICBzaXplb2YoZC0+YXJjaC5o dm1fZG9tYWluLmFjcGkuZ3BlMF9lbik6CisKKyAgICAgICAgc3RzID0gJmQtPmFyY2guaHZtX2Rv bWFpbi5hY3BpLmdwZTBfc3RzOworICAgICAgICBlbiA9ICZkLT5hcmNoLmh2bV9kb21haW4uYWNw aS5ncGUwX2VuOworICAgICAgICBtYXNrX3N0cyA9ICZncGUwX3N0c19tYXNrOworICAgICAgICBt YXNrX2VuID0gJmdwZTBfZW5fbWFzazsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0Ogor ICAgICAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgfQorCisgICAgaWYgKCBk aXIgPT0gWEVOX0RPTUNUTF9BQ1BJX1JFQUQgKQorICAgIHsKKyAgICAgICAgdWludDMyX3QgbWFz ayA9IChieXRlcyA8IDQpID8gfjBVIDw8IChieXRlcyAqIDgpIDogMDsKKyAgICAgICAgdWludDMy X3QgZGF0YSA9ICgoKHVpbnQzMl90KSplbikgPDwgMTYpIHwgKnN0czsKKworICAgICAgICBkYXRh ID4+PSA4ICogKHBvcnQgJiAzKTsKKyAgICAgICAgKnZhbCA9ICgqdmFsICYgbWFzaykgfCAoZGF0 YSAmIH5tYXNrKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgdWludDMyX3QgdiA9 ICp2YWw7CisKKyAgICAgICAgLyogU3RhdHVzIHJlZ2lzdGVyIGlzIHdyaXRlLTEtdG8tY2xlYXIg YnkgZ3Vlc3RzICovCisgICAgICAgIHN3aXRjaCAoIHBvcnQgJiAzICkKKyAgICAgICAgeworICAg ICAgICBjYXNlIDA6CisgICAgICAgICAgICAqc3RzICY9IH4odiAmIDB4ZmYpOworICAgICAgICAg ICAgKnN0cyAmPSAqbWFza19zdHM7CisgICAgICAgICAgICBpZiAoICEtLWJ5dGVzICkKKyAgICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHYgPj49IDg7CisgICAgICAgICAgICAvKiBm YWxsdGhyb3VnaCAqLworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAqc3RzICY9IH4oKHYg JiAweGZmKSA8PCA4KTsKKyAgICAgICAgICAgICpzdHMgJj0gKm1hc2tfc3RzOworICAgICAgICAg ICAgaWYgKCAhLS1ieXRlcyApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB2 ID4+PSA4OworICAgICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgY2FzZSAyOgor ICAgICAgICAgICAgKmVuID0gKCgqZW4gJiAweGZmMDApIHwgKHYgJiAweGZmKSkgJiAqbWFza19l bjsKKyAgICAgICAgICAgIGlmICggIS0tYnl0ZXMgKQorICAgICAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICAgICAgdiA+Pj0gODsKKyAgICAgICAgICAgIC8qIGZhbGx0aHJvdWdoICovCisgICAg ICAgIGNhc2UgMzoKKyAgICAgICAgICAgICplbiA9ICgoKHYgJiAweGZmKSA8PCA4KSB8ICgqZW4g JiAweGZmKSkgJiAqbWFza19lbjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg fQorCisgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKK30KKworCiBpbnQgaHZtX2FjcGlfZG9tY3Rs X2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IHJ3LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgeGVuX2FjcGlfYWNjZXNzX3QgKmFjY2VzcywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQpAQCAtMTgsMTMg KzEzNSwxOSBAQCBpbnQgaHZtX2FjcGlfZG9tY3RsX2FjY2VzcyhzdHJ1Y3QgZG9tYWluICpkLCB1 aW50OF90IHJ3LAogc3RhdGljIGludCBhY3BpX2d1ZXN0X2FjY2VzcyhpbnQgZGlyLCB1bnNpZ25l ZCBpbnQgcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJ5 dGVzLCB1aW50MzJfdCAqdmFsKQogewotICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsK KyAgICByZXR1cm4gIGFjcGlfYWNjZXNzX2NvbW1vbihjdXJyZW50LT5kb21haW4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGRpciA9PSBJT1JFUV9SRUFEKSA/CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgWEVOX0RPTUNUTF9BQ1BJX1JFQUQ6IFhFTl9ET01DVExfQUNQ SV9XUklURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LCBieXRlcywgdmFs KTsKIH0KIAogc3RhdGljIGludCBhY3BpX2NwdW1hcF9ndWVzdF9hY2Nlc3MoaW50IGRpciwgdW5z aWduZWQgaW50IHBvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgYnl0ZXMsIHVpbnQzMl90ICp2YWwpCiB7Ci0gICAgcmV0dXJuIFg4NkVNVUxfVU5I QU5ETEVBQkxFOworICAgIHJldHVybiAgYWNwaV9jcHVtYXBfYWNjZXNzX2NvbW1vbihjdXJyZW50 LT5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXIgPT0g SU9SRVFfUkVBRCkgPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5f RE9NQ1RMX0FDUElfUkVBRDogWEVOX0RPTUNUTF9BQ1BJX1dSSVRFLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwb3J0LCBieXRlcywgdmFsKTsKIH0KIAogdm9pZCBodm1f YWNwaV9pbml0KHN0cnVjdCBkb21haW4gKmQpCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWFp bi5jIGIveGVuL2NvbW1vbi9kb21haW4uYwppbmRleCAzYWJhY2E5Li5jYjhkZjA5IDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL2RvbWFpbi5jCisrKyBiL3hlbi9jb21tb24vZG9tYWluLmMKQEAgLTg0 Nyw2ICs4NDcsNyBAQCBzdGF0aWMgdm9pZCBjb21wbGV0ZV9kb21haW5fZGVzdHJveShzdHJ1Y3Qg cmN1X2hlYWQgKmhlYWQpCiAgICAgeHNtX2ZyZWVfc2VjdXJpdHlfZG9tYWluKGQpOwogICAgIGZy ZWVfY3B1bWFza192YXIoZC0+ZG9tYWluX2RpcnR5X2NwdW1hc2spOwogICAgIHhmcmVlKGQtPnZj cHUpOworICAgIHhmcmVlKGQtPmF2YWlsX3ZjcHVzKTsKICAgICBmcmVlX2RvbWFpbl9zdHJ1Y3Qo ZCk7CiAKICAgICBzZW5kX2dsb2JhbF92aXJxKFZJUlFfRE9NX0VYQyk7CmRpZmYgLS1naXQgYS94 ZW4vY29tbW9uL2RvbWN0bC5jIGIveGVuL2NvbW1vbi9kb21jdGwuYwppbmRleCBiMGVlOTYxLi4w YTA4YjgzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2RvbWN0bC5jCisrKyBiL3hlbi9jb21tb24v ZG9tY3RsLmMKQEAgLTY1MSw2ICs2NTEsMTEgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hB TkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpIHVfZG9tY3RsKQogICAgICAgICAgICAgICAgIGdvdG8g bWF4dmNwdV9vdXQ7CiAgICAgICAgIH0KIAorICAgICAgICBkLT5hdmFpbF92Y3B1cyA9IHh6YWxs b2NfYXJyYXkodW5zaWduZWQgbG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEJJVFNfVE9fTE9OR1MoZC0+bWF4X3ZjcHVzKSk7CisgICAgICAgIGlmICggIWQtPmF2 YWlsX3ZjcHVzICkKKyAgICAgICAgICAgIGdvdG8gbWF4dmNwdV9vdXQ7CisKICAgICAgICAgcmV0 ID0gMDsKIAogICAgIG1heHZjcHVfb3V0OgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3Nj aGVkLmggYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAppbmRleCAwNjNlZmU2Li5iZWUxOTBmIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4v c2NoZWQuaApAQCAtMzE1LDYgKzMxNSw5IEBAIHN0cnVjdCBkb21haW4KICAgICB1bnNpZ25lZCBp bnQgICAgIG1heF92Y3B1czsKICAgICBzdHJ1Y3QgdmNwdSAgICAqKnZjcHU7CiAKKyAgICAvKiBC aXRtYXAgb2YgYXZhaWxhYmxlIFZDUFVzLiAqLworICAgIHVuc2lnbmVkIGxvbmcgICAqYXZhaWxf dmNwdXM7CisKICAgICBzaGFyZWRfaW5mb190ICAgKnNoYXJlZF9pbmZvOyAgICAgLyogc2hhcmVk IGRhdGEgYXJlYSAqLwogCiAgICAgc3BpbmxvY2tfdCAgICAgICBkb21haW5fbG9jazsKLS0gCjIu Ny40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==