From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v6 04/12] pvh/acpi: Handle ACPI accesses for PVH guests Date: Tue, 3 Jan 2017 09:04:08 -0500 Message-ID: <1483452256-2879-5-git-send-email-boris.ostrovsky@oracle.com> References: <1483452256-2879-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: <1483452256-2879-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 U3Vic2VxdWVudCBkb21jdGwgYWNjZXNzICBWQ1BVIG1hcCB3aWxsIHVzZSB0aGUgc2FtZSBjb2Rl LiBXZSBjcmVhdGUgCmFjcGlfY3B1bWFwX2FjY2Vzc19jb21tb24oKSByb3V0aW5lcyBpbiBhbnRp Y2lwYXRpb24gb2YgdGhlc2UgY2hhbmdlcy4KClNpZ25lZC1vZmYtYnk6IEJvcmlzIE9zdHJvdnNr eSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+Ci0tLQpDaGFuZ2VzIGluIHY2OgoqIEFDUEkg cmVnaXN0ZXJzIGFyZSBvbmx5IGFjY2Vzc2VkIGJ5IGd1ZXN0IGNvZGUgKG5vdCBieSBkb21jdGwp LCB0aHVzCiAgYWNwaV9hY2Nlc3NfY29tbW9uKCkgaXMgbm8gbG9uZ2VyIG5lZWRlZAoqIEFkanVz dGVkIGFjY2VzcyBkaXJlY3Rpb24gKFJXKSB0byBiZSBhIGJvb2xlYW4uCiogRHJvcHBlZCB1bm5l Y2Vzc2FyeSBtYXNraW5nIG9mIHN0YXR1cyByZWdpc3RlcgoKIHhlbi9hcmNoL3g4Ni9odm0vYWNw aS5jIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgfCAgIDEgKwogeGVuL2NvbW1vbi9kb21jdGwuYyAg ICAgfCAgIDUgKysrCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCB8ICAgMyArKwogNCBmaWxlcyBj aGFuZ2VkLCAxMTcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvaHZtL2FjcGkuYyBiL3hlbi9hcmNoL3g4Ni9odm0vYWNwaS5jCmluZGV4IDE1 YTlhMGUuLmYwYTg0ZjkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vYWNwaS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vYWNwaS5jCkBAIC0yLDEyICsyLDQzIEBACiAgKgogICogQ29weXJp Z2h0IChjKSAyMDE2IE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuCiAgKi8KKyNpbmNsdWRlIDx4ZW4vYWNwaS5oPgogI2luY2x1ZGUgPHhlbi9lcnJuby5o PgogI2luY2x1ZGUgPHhlbi9saWIuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KIAogI2luY2x1 ZGUgPHB1YmxpYy9hcmNoLXg4Ni94ZW4uaD4KIAorc3RhdGljIGludCBhY3BpX2NwdW1hcF9hY2Nl c3NfY29tbW9uKHN0cnVjdCBkb21haW4gKmQsIGJvb2wgaXNfd3JpdGUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBvcnQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGJ5dGVzLCB1aW50MzJfdCAqdmFs KQoreworICAgIHVuc2lnbmVkIGludCBmaXJzdF9ieXRlID0gcG9ydCAtIFhFTl9BQ1BJX0NQVV9N QVA7CisKKyAgICBCVUlMRF9CVUdfT04oWEVOX0FDUElfQ1BVX01BUCArIFhFTl9BQ1BJX0NQVV9N QVBfTEVOCisgICAgICAgICAgICAgICAgID4gQUNQSV9HUEUwX0JMS19BRERSRVNTX1YxKTsKKwor ICAgIGlmICggIWlzX3dyaXRlICkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IG1hc2sgPSAoYnl0 ZXMgPCA0KSA/IH4wVSA8PCAoYnl0ZXMgKiA4KSA6IDA7CisKKyAgICAgICAgLyoKKyAgICAgICAg ICogQ2xlYXIgYml0cyB0aGF0IHdlIGFyZSBhYm91dCB0byByZWFkIHRvIGluIGNhc2Ugd2UKKyAg ICAgICAgICogY29weSBmZXdlciB0aGFuIEBieXRlcy4KKyAgICAgICAgICovCisgICAgICAgICp2 YWwgJj0gbWFzazsKKworICAgICAgICBpZiAoICgoZC0+bWF4X3ZjcHVzICsgNykgLyA4KSA+IGZp cnN0X2J5dGUgKQorICAgICAgICAgICAgbWVtY3B5KHZhbCwgKHVpbnQ4X3QgKilkLT5hdmFpbF92 Y3B1cyArIGZpcnN0X2J5dGUsCisgICAgICAgICAgICAgICAgICAgbWluKGJ5dGVzLCAoKGQtPm1h eF92Y3B1cyArIDcpIC8gOCkgLSBmaXJzdF9ieXRlKSk7CisgICAgfQorICAgIGVsc2UKKyAgICAg ICAgLyogR3Vlc3RzIGRvIG5vdCB3cml0ZSBDUFUgbWFwICovCisgICAgICAgIHJldHVybiBYODZF TVVMX1VOSEFORExFQUJMRTsKKworICAgIHJldHVybiBYODZFTVVMX09LQVk7Cit9CisKIGludCBo dm1fYWNwaV9kb21jdGxfYWNjZXNzKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeGVuX2RvbWN0bF9hY3BpX2FjY2VzcyAqYWNjZXNzKQog ewpAQCAtMTcsMTMgKzQ4LDg4IEBAIGludCBodm1fYWNwaV9kb21jdGxfYWNjZXNzKHN0cnVjdCBk b21haW4gKmQsCiBzdGF0aWMgaW50IGFjcGlfY3B1bWFwX2d1ZXN0X2FjY2VzcyhpbnQgZGlyLCB1 bnNpZ25lZCBpbnQgcG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBieXRlcywgdWludDMyX3QgKnZhbCkKIHsKLSAgICByZXR1cm4gWDg2RU1VTF9V TkhBTkRMRUFCTEU7CisgICAgcmV0dXJuICBhY3BpX2NwdW1hcF9hY2Nlc3NfY29tbW9uKGN1cnJl bnQtPmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRpciA9 PSBJT1JFUV9XUklURSkgPyB0cnVlIDogZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBvcnQsIGJ5dGVzLCB2YWwpOwogfQogCiBzdGF0aWMgaW50IGFjcGlfZ3Vl c3RfYWNjZXNzKGludCBkaXIsIHVuc2lnbmVkIGludCBwb3J0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgYnl0ZXMsIHVpbnQzMl90ICp2YWwpCiB7Ci0gICAgcmV0 dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOworICAgIHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50 LT5kb21haW47CisgICAgdWludDE2X3QgKnN0cyA9IE5VTEwsICplbiA9IE5VTEw7CisgICAgY29u c3QgdWludDE2X3QgKm1hc2tfZW4gPSBOVUxMOworICAgIHN0YXRpYyBjb25zdCB1aW50MTZfdCBw bTFhX2VuX21hc2sgPSBBQ1BJX0JJVE1BU0tfR0xPQkFMX0xPQ0tfRU5BQkxFOworICAgIHN0YXRp YyBjb25zdCB1aW50MTZfdCBncGUwX2VuX21hc2sgPSAxVSA8PCBYRU5fQUNQSV9HUEUwX0NQVUhQ X0JJVDsKKworICAgIEFTU0VSVCghaGFzX2FjcGlfZG1fZmYoZCkpOworCisgICAgc3dpdGNoICgg cG9ydCApCisgICAgeworICAgIGNhc2UgQUNQSV9QTTFBX0VWVF9CTEtfQUREUkVTU19WMSAuLi4K KyAgICAgICAgQUNQSV9QTTFBX0VWVF9CTEtfQUREUkVTU19WMSArCisgICAgICAgIHNpemVvZihk LT5hcmNoLmh2bV9kb21haW4uYWNwaS5wbTFhX3N0cykgKworICAgICAgICBzaXplb2YoZC0+YXJj aC5odm1fZG9tYWluLmFjcGkucG0xYV9lbik6CisKKyAgICAgICAgc3RzID0gJmQtPmFyY2guaHZt X2RvbWFpbi5hY3BpLnBtMWFfc3RzOworICAgICAgICBlbiA9ICZkLT5hcmNoLmh2bV9kb21haW4u YWNwaS5wbTFhX2VuOworICAgICAgICBtYXNrX2VuID0gJnBtMWFfZW5fbWFzazsKKyAgICAgICAg YnJlYWs7CisKKyAgICBjYXNlIEFDUElfR1BFMF9CTEtfQUREUkVTU19WMSAuLi4KKyAgICAgICAg QUNQSV9HUEUwX0JMS19BRERSRVNTX1YxICsKKyAgICAgICAgc2l6ZW9mKGQtPmFyY2guaHZtX2Rv bWFpbi5hY3BpLmdwZTBfc3RzKSArCisgICAgICAgIHNpemVvZihkLT5hcmNoLmh2bV9kb21haW4u YWNwaS5ncGUwX2VuKToKKworICAgICAgICBzdHMgPSAmZC0+YXJjaC5odm1fZG9tYWluLmFjcGku Z3BlMF9zdHM7CisgICAgICAgIGVuID0gJmQtPmFyY2guaHZtX2RvbWFpbi5hY3BpLmdwZTBfZW47 CisgICAgICAgIG1hc2tfZW4gPSAmZ3BlMF9lbl9tYXNrOworICAgICAgICBicmVhazsKKworICAg IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBYODZFTVVMX1VOSEFORExFQUJMRTsKKyAgICB9CisK KyAgICBpZiAoIGRpciA9PSBJT1JFUV9SRUFEICkKKyAgICB7CisgICAgICAgIHVpbnQzMl90IG1h c2sgPSAoYnl0ZXMgPCA0KSA/IH4wVSA8PCAoYnl0ZXMgKiA4KSA6IDA7CisgICAgICAgIHVpbnQz Ml90IGRhdGEgPSAoKCh1aW50MzJfdCkqZW4pIDw8IDE2KSB8ICpzdHM7CisKKyAgICAgICAgZGF0 YSA+Pj0gOCAqIChwb3J0ICYgMyk7CisgICAgICAgICp2YWwgPSAoKnZhbCAmIG1hc2spIHwgKGRh dGEgJiB+bWFzayk7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHVpbnQzMl90IHYg PSAqdmFsOworCisgICAgICAgIC8qIFN0YXR1cyByZWdpc3RlciBpcyB3cml0ZS0xLXRvLWNsZWFy ICovCisgICAgICAgIHN3aXRjaCAoIHBvcnQgJiAzICkKKyAgICAgICAgeworICAgICAgICBjYXNl IDA6CisgICAgICAgICAgICAqc3RzICY9IH4odiAmIDB4ZmYpOworICAgICAgICAgICAgaWYgKCAh LS1ieXRlcyApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB2ID4+PSA4Owor ICAgICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgY2FzZSAxOgorICAgICAgICAg ICAgKnN0cyAmPSB+KCh2ICYgMHhmZikgPDwgOCk7CisgICAgICAgICAgICBpZiAoICEtLWJ5dGVz ICkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHYgPj49IDg7CisgICAgICAg ICAgICAvKiBmYWxsdGhyb3VnaCAqLworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICAqZW4g PSAoKCplbiAmIDB4ZmYwMCkgfCAodiAmIDB4ZmYpKSAmICptYXNrX2VuOworICAgICAgICAgICAg aWYgKCAhLS1ieXRlcyApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB2ID4+ PSA4OworICAgICAgICAgICAgLyogZmFsbHRocm91Z2ggKi8KKyAgICAgICAgY2FzZSAzOgorICAg ICAgICAgICAgKmVuID0gKCgodiAmIDB4ZmYpIDw8IDgpIHwgKCplbiAmIDB4ZmYpKSAmICptYXNr X2VuOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g WDg2RU1VTF9PS0FZOwogfQogCiB2b2lkIGh2bV9hY3BpX2luaXQoc3RydWN0IGRvbWFpbiAqZCkK ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFpbi5jCmlu ZGV4IDA1MTMwZTIuLmNhMWYwZWQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMKKysr IGIveGVuL2NvbW1vbi9kb21haW4uYwpAQCAtODQ3LDYgKzg0Nyw3IEBAIHN0YXRpYyB2b2lkIGNv bXBsZXRlX2RvbWFpbl9kZXN0cm95KHN0cnVjdCByY3VfaGVhZCAqaGVhZCkKICAgICB4c21fZnJl ZV9zZWN1cml0eV9kb21haW4oZCk7CiAgICAgZnJlZV9jcHVtYXNrX3ZhcihkLT5kb21haW5fZGly dHlfY3B1bWFzayk7CiAgICAgeGZyZWUoZC0+dmNwdSk7CisgICAgeGZyZWUoZC0+YXZhaWxfdmNw dXMpOwogICAgIGZyZWVfZG9tYWluX3N0cnVjdChkKTsKIAogICAgIHNlbmRfZ2xvYmFsX3ZpcnEo VklSUV9ET01fRVhDKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tY3RsLmMgYi94ZW4vY29t bW9uL2RvbWN0bC5jCmluZGV4IGIwZWU5NjEuLjBhMDhiODMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21t b24vZG9tY3RsLmMKKysrIGIveGVuL2NvbW1vbi9kb21jdGwuYwpAQCAtNjUxLDYgKzY1MSwxMSBA QCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxfdCkgdV9k b21jdGwpCiAgICAgICAgICAgICAgICAgZ290byBtYXh2Y3B1X291dDsKICAgICAgICAgfQogCisg ICAgICAgIGQtPmF2YWlsX3ZjcHVzID0geHphbGxvY19hcnJheSh1bnNpZ25lZCBsb25nLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUU19UT19MT05HUyhkLT5tYXhf dmNwdXMpKTsKKyAgICAgICAgaWYgKCAhZC0+YXZhaWxfdmNwdXMgKQorICAgICAgICAgICAgZ290 byBtYXh2Y3B1X291dDsKKwogICAgICAgICByZXQgPSAwOwogCiAgICAgbWF4dmNwdV9vdXQ6CmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hl ZC5oCmluZGV4IDA2M2VmZTYuLmJlZTE5MGYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9z Y2hlZC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCkBAIC0zMTUsNiArMzE1LDkgQEAg c3RydWN0IGRvbWFpbgogICAgIHVuc2lnbmVkIGludCAgICAgbWF4X3ZjcHVzOwogICAgIHN0cnVj dCB2Y3B1ICAgICoqdmNwdTsKIAorICAgIC8qIEJpdG1hcCBvZiBhdmFpbGFibGUgVkNQVXMuICov CisgICAgdW5zaWduZWQgbG9uZyAgICphdmFpbF92Y3B1czsKKwogICAgIHNoYXJlZF9pbmZvX3Qg ICAqc2hhcmVkX2luZm87ICAgICAvKiBzaGFyZWQgZGF0YSBhcmVhICovCiAKICAgICBzcGlubG9j a190ICAgICAgIGRvbWFpbl9sb2NrOwotLSAKMi43LjQKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK