From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v4 08/15] pvh/acpi: Handle ACPI accesses for PVH guests Date: Tue, 29 Nov 2016 10:33:15 -0500 Message-ID: <1480433602-13290-9-git-send-email-boris.ostrovsky@oracle.com> References: <1480433602-13290-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: <1480433602-13290-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 U2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNv bT4KLS0tCkNoYW5nZXMgaW4gdjQ6CiogUmVnaXN0ZXJzIGFyZSBub3cgZXhwbGljaXRseSBzcGxp dCBpbnRvIDItYnl0ZSBzdGF0dXMgYW5kIGVuYWJsZS4KCiB4ZW4vYXJjaC94ODYvaHZtL2FjcGku YyB8IDEyMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0K IHhlbi9jb21tb24vZG9tY3RsLmMgICAgIHwgICA1ICsrCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aCB8ICAgMyArKwogMyBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vYWNwaS5jIGIveGVuL2FyY2gveDg2 L2h2bS9hY3BpLmMKaW5kZXggYTFmN2ZkMi4uYzgwYzQ2NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9hY3BpLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9hY3BpLmMKQEAgLTIsMTIgKzIs MTI5IEBACiAgKgogICogQ29weXJpZ2h0IChjKSAyMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmls aWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKi8KKyNpbmNsdWRlIDx4ZW4vYWNwaS5oPgog I2luY2x1ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4 ZW4vc2NoZWQuaD4KIAogI2luY2x1ZGUgPHB1YmxpYy9hcmNoLXg4Ni94ZW4uaD4KIAorc3RhdGlj IGludCBhY3BpX2FjY2Vzc19jb21tb24oc3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBkaXIsIHVuc2lnbmVkIGludCBwb3J0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJ5dGVzLCB1aW50MzJfdCAqdmFsKQorewor ICAgIHVpbnQxNl90ICpzdHMgPSBOVUxMLCAqZW4gPSBOVUxMOworICAgIGNvbnN0IHVpbnQxNl90 ICptYXNrX3N0cyA9IE5VTEwsICptYXNrX2VuID0gTlVMTDsKKyAgICBzdGF0aWMgY29uc3QgdWlu dDE2X3QgcG0xYV9zdHNfbWFzayA9IEFDUElfQklUTUFTS19HTE9CQUxfTE9DS19TVEFUVVM7Cisg ICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IHBtMWFfZW5fbWFzayA9IEFDUElfQklUTUFTS19HTE9C QUxfTE9DS19FTkFCTEU7CisgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IGdwZTBfc3RzX21hc2sg PSAxVSA8PCBYRU5fR1BFMF9DUFVIUF9CSVQ7CisgICAgc3RhdGljIGNvbnN0IHVpbnQxNl90IGdw ZTBfZW5fbWFzayA9IDFVIDw8IFhFTl9HUEUwX0NQVUhQX0JJVDsKKworICAgIEJVSUxEX0JVR19P TihYRU5fQUNQSV9DUFVfTUFQICsgWEVOX0FDUElfQ1BVX01BUF9MRU4KKyAgICAgICAgICAgICAg ICAgPj0gQUNQSV9HUEUwX0JMS19BRERSRVNTX1YxKTsKKworICAgIEFTU0VSVCghaGFzX2FjcGlf ZG1fZmYoZCkpOworCisgICAgc3dpdGNoICggcG9ydCApCisgICAgeworICAgIGNhc2UgQUNQSV9Q TTFBX0VWVF9CTEtfQUREUkVTU19WMSAuLi4KKyAgICAgICAgQUNQSV9QTTFBX0VWVF9CTEtfQURE UkVTU19WMSArCisgICAgICAgIHNpemVvZiAoZC0+YXJjaC5odm1fZG9tYWluLmFjcGkucG0xYV9z dHMpICsKKyAgICAgICAgc2l6ZW9mIChkLT5hcmNoLmh2bV9kb21haW4uYWNwaS5wbTFhX2VuKToK KworICAgICAgICBzdHMgPSAmZC0+YXJjaC5odm1fZG9tYWluLmFjcGkucG0xYV9zdHM7CisgICAg ICAgIGVuID0gJmQtPmFyY2guaHZtX2RvbWFpbi5hY3BpLnBtMWFfZW47CisgICAgICAgIG1hc2tf c3RzID0gJnBtMWFfc3RzX21hc2s7CisgICAgICAgIG1hc2tfZW4gPSAmcG0xYV9lbl9tYXNrOwor ICAgICAgICBicmVhazsKKworICAgIGNhc2UgQUNQSV9HUEUwX0JMS19BRERSRVNTX1YxIC4uLgor ICAgICAgICBBQ1BJX0dQRTBfQkxLX0FERFJFU1NfVjEgKworICAgICAgICBzaXplb2YgKGQtPmFy Y2guaHZtX2RvbWFpbi5hY3BpLmdwZTBfc3RzKSArCisgICAgICAgIHNpemVvZiAoZC0+YXJjaC5o dm1fZG9tYWluLmFjcGkuZ3BlMF9lbik6CisKKyAgICAgICAgc3RzID0gJmQtPmFyY2guaHZtX2Rv bWFpbi5hY3BpLmdwZTBfc3RzOworICAgICAgICBlbiA9ICZkLT5hcmNoLmh2bV9kb21haW4uYWNw aS5ncGUwX2VuOworICAgICAgICBtYXNrX3N0cyA9ICZncGUwX3N0c19tYXNrOworICAgICAgICBt YXNrX2VuID0gJmdwZTBfZW5fbWFzazsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFhFTl9B Q1BJX0NQVV9NQVAgLi4uCisgICAgICAgICBYRU5fQUNQSV9DUFVfTUFQICsgWEVOX0FDUElfQ1BV X01BUF9MRU4gLSAxOgorICAgICAgICBicmVhazsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl dHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKKyAgICB9CisKKyAgICBpZiAoIGRpciA9PSBYRU5f RE9NQ1RMX0FDUElfUkVBRCApCisgICAgeworICAgICAgICB1aW50MzJfdCBtYXNrID0gKGJ5dGVz IDwgNCkgPyB+MFUgPDwgKGJ5dGVzICogOCkgOiAwOworCisgICAgICAgIGlmICggIW1hc2tfc3Rz ICkKKyAgICAgICAgeworICAgICAgICAgICAgdW5zaWduZWQgaW50IGZpcnN0X2J5dGUgPSBwb3J0 IC0gWEVOX0FDUElfQ1BVX01BUDsKKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIENs ZWFyIGJpdHMgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gcmVhZCB0byBpbiBjYXNlIHdlCisgICAgICAg ICAgICAgKiBjb3B5IGZld2VyIHRoYW4gQGJ5dGVzLgorICAgICAgICAgICAgICovCisgICAgICAg ICAgICAqdmFsICY9IG1hc2s7CisKKyAgICAgICAgICAgIGlmICggKChkLT5tYXhfdmNwdXMgKyA3 KSAvIDgpID4gZmlyc3RfYnl0ZSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVt Y3B5KHZhbCwgKHVpbnQ4X3QgKilkLT5hdmFpbF92Y3B1cyArIGZpcnN0X2J5dGUsCisgICAgICAg ICAgICAgICAgICAgICAgIG1pbihieXRlcywgKChkLT5tYXhfdmNwdXMgKyA3KSAvIDgpIC0gZmly c3RfYnl0ZSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAg ICAgeworICAgICAgICAgICAgdWludDMyX3QgZGF0YSA9ICgoKHVpbnQzMl90KSplbikgPDwgMTYp IHwgKnN0czsKKyAgICAgICAgICAgIGRhdGEgPj49IDggKiAocG9ydCAmIDMpOworICAgICAgICAg ICAgKnZhbCA9ICgqdmFsICYgbWFzaykgfCAoZGF0YSAmIH5tYXNrKTsKKyAgICAgICAgfQorICAg IH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKiBHdWVzdHMgZG8gbm90IHdyaXRlIENQVSBt YXAgKi8KKyAgICAgICAgaWYgKCAhbWFza19zdHMgKQorICAgICAgICAgICAgcmV0dXJuIFg4NkVN VUxfVU5IQU5ETEVBQkxFOworICAgICAgICBlbHNlIGlmICggbWFza19zdHMgKQorICAgICAgICB7 CisgICAgICAgICAgICB1aW50MzJfdCB2ID0gKnZhbDsKKworICAgICAgICAgICAgLyogU3RhdHVz IHJlZ2lzdGVyIGlzIHdyaXRlLTEtdG8tY2xlYXIgYnkgZ3Vlc3RzICovCisgICAgICAgICAgICBz d2l0Y2ggKCBwb3J0ICYgMyApCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlIDA6Cisg ICAgICAgICAgICAgICAgKnN0cyAmPSB+KHYgJiAweGZmKTsKKyAgICAgICAgICAgICAgICAqc3Rz ICY9ICptYXNrX3N0czsKKyAgICAgICAgICAgICAgICBpZiAoICEtLWJ5dGVzICkKKyAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgdiA+Pj0gODsKKworICAgICAgICAg ICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICpzdHMgJj0gfigodiAmIDB4ZmYpIDw8IDgpOwor ICAgICAgICAgICAgICAgICpzdHMgJj0gKm1hc2tfc3RzOworICAgICAgICAgICAgICAgIGlmICgg IS0tYnl0ZXMgKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB2 ID4+PSA4OworCisgICAgICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgKmVuID0gKCgq ZW4gJiAweGZmMDApIHwgKHYgJiAweGZmKSkgJiAqbWFza19lbjsKKyAgICAgICAgICAgICAgICBp ZiAoICEtLWJ5dGVzICkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg ICAgdiA+Pj0gODsKKworICAgICAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgICAgICplbiA9 ICgoKHYgJiAweGZmKSA8PCA4KSB8ICgqZW4gJiAweGZmKSkgJiAqbWFza19lbjsKKyAgICAgICAg ICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBYODZFTVVMX09LQVk7Cit9CisK IGludCBodm1fYWNwaV9kb21jdGxfYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ4X3Qgcncs IGdhc190ICpnYXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBYRU5fR1VFU1RfSEFORExF X1BBUkFNKHVpbnQ4KSBhcmcpCiB7CkBAIC0xNyw3ICsxMzQsMTAgQEAgaW50IGh2bV9hY3BpX2Rv bWN0bF9hY2Nlc3Moc3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBydywgZ2FzX3QgKmdhcywKIHN0 YXRpYyBpbnQgYWNwaV9ndWVzdF9hY2Nlc3MoaW50IGRpciwgdW5zaWduZWQgaW50IHBvcnQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBieXRlcywgdWludDMyX3Qg KnZhbCkKIHsKLSAgICByZXR1cm4gWDg2RU1VTF9VTkhBTkRMRUFCTEU7CisgICAgcmV0dXJuICBh Y3BpX2FjY2Vzc19jb21tb24oY3VycmVudC0+ZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChkaXIgPT0gSU9SRVFfUkVBRCkgPworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFhFTl9ET01DVExfQUNQSV9SRUFEOiBYRU5fRE9NQ1RMX0FDUElfV1JJVEUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydCwgYnl0ZXMsIHZhbCk7CiB9CiAKIHZvaWQg aHZtX2FjcGlfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9k b21jdGwuYyBiL3hlbi9jb21tb24vZG9tY3RsLmMKaW5kZXggYjBlZTk2MS4uMGEwOGI4MyAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysgYi94ZW4vY29tbW9uL2RvbWN0bC5jCkBA IC02NTEsNiArNjUxLDExIEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o eGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAgICAgICAgICBnb3RvIG1heHZjcHVfb3V0 OwogICAgICAgICB9CiAKKyAgICAgICAgZC0+YXZhaWxfdmNwdXMgPSB4emFsbG9jX2FycmF5KHVu c2lnbmVkIGxvbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVRT X1RPX0xPTkdTKGQtPm1heF92Y3B1cykpOworICAgICAgICBpZiAoICFkLT5hdmFpbF92Y3B1cyAp CisgICAgICAgICAgICBnb3RvIG1heHZjcHVfb3V0OworCiAgICAgICAgIHJldCA9IDA7CiAKICAg ICBtYXh2Y3B1X291dDoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oIGIveGVu L2luY2x1ZGUveGVuL3NjaGVkLmgKaW5kZXggMWZiZGE4Ny4uM2VmOWM5ZSAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKQEAg LTMxNSw2ICszMTUsOSBAQCBzdHJ1Y3QgZG9tYWluCiAgICAgdW5zaWduZWQgaW50ICAgICBtYXhf dmNwdXM7CiAgICAgc3RydWN0IHZjcHUgICAgKip2Y3B1OwogCisgICAgLyogQml0bWFwIG9mIGF2 YWlsYWJsZSBWQ1BVcy4gKi8KKyAgICB1bnNpZ25lZCBsb25nICAgKmF2YWlsX3ZjcHVzOworCiAg ICAgc2hhcmVkX2luZm9fdCAgICpzaGFyZWRfaW5mbzsgICAgIC8qIHNoYXJlZCBkYXRhIGFyZWEg Ki8KIAogICAgIHNwaW5sb2NrX3QgICAgICAgZG9tYWluX2xvY2s7Ci0tIAoyLjcuNAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hl bi1kZXZlbAo=