From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH 6/7] x86: add iommu_op to query reserved ranges Date: Mon, 12 Feb 2018 10:47:13 +0000 Message-ID: <20180212104714.1922-7-paul.durrant@citrix.com> References: <20180212104714.1922-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1elBhN-0004se-7F for xen-devel@lists.xenproject.org; Mon, 12 Feb 2018 10:51:01 +0000 In-Reply-To: <20180212104714.1922-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org Q2VydGFpbiBhcmVhcyBvZiBtZW1vcnksIHN1Y2ggYXMgUk1SUnMsIG11c3QgYmUgbWFwcGVkIDE6 MQooaS5lLiBCRk4gPT0gTUZOKSB0aHJvdWdoIHRoZSBJT01NVS4KClRoaXMgcGF0Y2ggYWRkcyBh biBpb21tdV9vcCB0byBhbGxvdyB0aGVzZSByYW5nZXMgdG8gYmUgcXVlcmllZC4KClNpZ25lZC1v ZmYtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpDYzogSmFu IEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNv b3BlcjNAY2l0cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPEdlb3JnZS5EdW5sYXBAZXUuY2l0 cml4LmNvbT4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBldS5jaXRyaXguY29tPgpDYzog S29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFu byBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGlt QHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNo L3g4Ni9pb21tdV9vcC5jICAgICAgIHwgMTIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogeGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29wLmggfCAgMzUgKysrKysr KysrKysrCiB4ZW4vaW5jbHVkZS94bGF0LmxzdCAgICAgICAgICB8ICAgMiArCiAzIGZpbGVzIGNo YW5nZWQsIDE1OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2lvbW11 X29wLmMgYi94ZW4vYXJjaC94ODYvaW9tbXVfb3AuYwppbmRleCBlZGQ4YTM4NGIzLi5hYzgxYjk4 YjdhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaW9tbXVfb3AuYworKysgYi94ZW4vYXJjaC94 ODYvaW9tbXVfb3AuYwpAQCAtMjIsNiArMjIsNTggQEAKICNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4K ICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5o PgorI2luY2x1ZGUgPHhlbi9pb21tdS5oPgorCitzdHJ1Y3QgZ2V0X3JkbV9jdHh0IHsKKyAgICB1 bnNpZ25lZCBpbnQgbWF4X2VudHJpZXM7CisgICAgdW5zaWduZWQgaW50IG5yX2VudHJpZXM7Cisg ICAgWEVOX0dVRVNUX0hBTkRMRSh4ZW5faW9tbXVfcmVzZXJ2ZWRfcmVnaW9uX3QpIHJlZ2lvbnM7 Cit9OworCitzdGF0aWMgaW50IGdldF9yZG0oeGVuX3Bmbl90IHN0YXJ0LCB4ZW5fdWxvbmdfdCBu ciwgdTMyIGlkLCB2b2lkICphcmcpCit7CisgICAgc3RydWN0IGdldF9yZG1fY3R4dCAqY3R4dCA9 IGFyZzsKKworICAgIGlmICggY3R4dC0+bnJfZW50cmllcyA8IGN0eHQtPm1heF9lbnRyaWVzICkK KyAgICB7CisgICAgICAgIHhlbl9pb21tdV9yZXNlcnZlZF9yZWdpb25fdCByZWdpb24gPSB7Cisg ICAgICAgICAgICAuc3RhcnRfYmZuID0gc3RhcnQsCisgICAgICAgICAgICAubnJfZnJhbWVzID0g bnIsCisgICAgICAgIH07CisKKyAgICAgICAgaWYgKCBjb3B5X3RvX2d1ZXN0X29mZnNldChjdHh0 LT5yZWdpb25zLCBjdHh0LT5ucl9lbnRyaWVzLCAmcmVnaW9uLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDEpICkKKyAgICAgICAgICAgIHJldHVybiAtRUZBVUxUOworICAgIH0K KworICAgIGN0eHQtPm5yX2VudHJpZXMrKzsKKworICAgIHJldHVybiAxOworfQorCitzdGF0aWMg aW50IGlvbW11b3BfcXVlcnlfcmVzZXJ2ZWQoc3RydWN0IHhlbl9pb21tdV9vcF9xdWVyeV9yZXNl cnZlZCAqb3ApCit7CisgICAgc3RydWN0IGdldF9yZG1fY3R4dCBjdHh0ID0geworICAgICAgICAu bWF4X2VudHJpZXMgPSBvcC0+bnJfZW50cmllcywKKyAgICAgICAgLnJlZ2lvbnMgPSBvcC0+cmVn aW9ucywKKyAgICB9OworICAgIGludCByYzsKKworICAgIGlmIChvcC0+cGFkICE9IDApCisgICAg ICAgIHJldHVybiAtRUlOVkFMOworCisgICAgcmMgPSBpb21tdV9nZXRfcmVzZXJ2ZWRfZGV2aWNl X21lbW9yeShnZXRfcmRtLCAmY3R4dCk7CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiBy YzsKKworICAgIC8qIFBhc3MgYmFjayB0aGUgYWN0dWFsIG51bWJlciBvZiByZXNlcnZlZCByZWdp b25zICovCisgICAgb3AtPm5yX2VudHJpZXMgPSBjdHh0Lm5yX2VudHJpZXM7CisKKyAgICBpZiAo IGN0eHQubnJfZW50cmllcyA+IGN0eHQubWF4X2VudHJpZXMgKQorICAgICAgICByZXR1cm4gLUVO T0JVRlM7CisKKyAgICByZXR1cm4gMDsKK30KIAogc3RhdGljIGJvb2wgY2FuX2NvbnRyb2xfaW9t bXUodm9pZCkKIHsKQEAgLTQ1LDYgKzk3LDEwIEBAIHN0YXRpYyB2b2lkIGlvbW11X29wKHhlbl9p b21tdV9vcF90ICpvcCkKIHsKICAgICBzd2l0Y2ggKCBvcC0+b3AgKQogICAgIHsKKyAgICBjYXNl IFhFTl9JT01NVU9QX3F1ZXJ5X3Jlc2VydmVkOgorICAgICAgICBvcC0+c3RhdHVzID0gaW9tbXVv cF9xdWVyeV9yZXNlcnZlZCgmb3AtPnUucXVlcnlfcmVzZXJ2ZWQpOworICAgICAgICBicmVhazsK KwogICAgIGRlZmF1bHQ6CiAgICAgICAgIG9wLT5zdGF0dXMgPSAtRU9QTk9UU1VQUDsKICAgICAg ICAgYnJlYWs7CkBAIC0xMTksNiArMTc1LDggQEAgaW50IGNvbXBhdF9pb21tdV9vcChYRU5fR1VF U1RfSEFORExFX1BBUkFNKGNvbXBhdF9pb21tdV9vcF90KSB1b3BzLAogICAgIHsKICAgICAgICAg Y29tcGF0X2lvbW11X29wX3QgY21wOwogICAgICAgICB4ZW5faW9tbXVfb3BfdCBuYXQ7CisgICAg ICAgIHVuc2lnbmVkIGludCB1OworICAgICAgICBpbnQzMl90IHN0YXR1czsKIAogICAgICAgICBp ZiAoICgoaSAmIDB4ZmYpID09IDB4ZmYpICYmIGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQog ICAgICAgICB7CkBAIC0xMzIsMTIgKzE5MCw3NSBAQCBpbnQgY29tcGF0X2lvbW11X29wKFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0oY29tcGF0X2lvbW11X29wX3QpIHVvcHMsCiAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgfQogCisgICAgICAgIC8qCisgICAgICAgICAqIFRoZSB4bGF0IG1hZ2lj IGRvZXNuJ3QgcXVpdGUga25vdyBob3cgdG8gaGFuZGxlIHRoZSB1bmlvbiBzbworICAgICAgICAg KiB3ZSBuZWVkIHRvIGZpeCB0aGluZ3MgdXAgaGVyZS4KKyAgICAgICAgICovCisjZGVmaW5lIFhM QVRfaW9tbXVfb3BfdV9xdWVyeV9yZXNlcnZlZCBYRU5fSU9NTVVPUF9xdWVyeV9yZXNlcnZlZAor ICAgICAgICB1ID0gY21wLm9wOworCisjZGVmaW5lIFhMQVRfaW9tbXVfb3BfcXVlcnlfcmVzZXJ2 ZWRfSE5ETF9yZWdpb25zKF9kXywgX3NfKSBcCisgICAgICAgIGRvIFwKKyAgICAgICAgeyBcCisg ICAgICAgICAgICBpZiAoICFjb21wYXRfaGFuZGxlX2lzX251bGwoKF9zXyktPnJlZ2lvbnMpICkg XAorICAgICAgICAgICAgeyBcCisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpucl9lbnRy aWVzID0gQ09NUEFUX0FSR19YTEFUX1ZJUlRfQkFTRTsgXAorICAgICAgICAgICAgICAgIHhlbl9p b21tdV9yZXNlcnZlZF9yZWdpb25fdCAqcmVnaW9ucyA9IFwKKyAgICAgICAgICAgICAgICAgICAg KHZvaWQgKikobnJfZW50cmllcyArIDEpOyBcCisgICAgICAgICAgICAgICAgXAorICAgICAgICAg ICAgICAgIGlmICggc2l6ZW9mKCpucl9lbnRyaWVzKSArIFwKKyAgICAgICAgICAgICAgICAgICAg IChzaXplb2YoKnJlZ2lvbnMpICogKF9zXyktPm5yX2VudHJpZXMpID4gXAorICAgICAgICAgICAg ICAgICAgICAgQ09NUEFUX0FSR19YTEFUX1NJWkUgKSBcCisgICAgICAgICAgICAgICAgICAgIHJl dHVybiAtRTJCSUc7IFwKKyAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKm5yX2Vu dHJpZXMgPSAoX3NfKS0+bnJfZW50cmllczsgXAorICAgICAgICAgICAgICAgIHNldF94ZW5fZ3Vl c3RfaGFuZGxlKChfZF8pLT5yZWdpb25zLCByZWdpb25zKTsgXAorICAgICAgICAgICAgfSBcCisg ICAgICAgICAgICBlbHNlIFwKKyAgICAgICAgICAgICAgICBzZXRfeGVuX2d1ZXN0X2hhbmRsZSgo X2RfKS0+cmVnaW9ucywgTlVMTCk7IFwKKyAgICAgICAgfSB3aGlsZSAoZmFsc2UpCisKICAgICAg ICAgWExBVF9pb21tdV9vcCgmbmF0LCAmY21wKTsKIAorI3VuZGVmIFhMQVRfaW9tbXVfb3BfcXVl cnlfcmVzZXJ2ZWRfSE5ETF9yZWdpb25zCisKICAgICAgICAgaW9tbXVfb3AoJm5hdCk7CiAKKyAg ICAgICAgc3RhdHVzID0gbmF0LnN0YXR1czsKKworI2RlZmluZSBYTEFUX2lvbW11X29wX3F1ZXJ5 X3Jlc2VydmVkX0hORExfcmVnaW9ucyhfZF8sIF9zXykgXAorICAgICAgICBkbyBcCisgICAgICAg IHsgXAorICAgICAgICAgICAgaWYgKCAhY29tcGF0X2hhbmRsZV9pc19udWxsKChfZF8pLT5yZWdp b25zKSApIFwKKyAgICAgICAgICAgIHsgXAorICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAq bnJfZW50cmllcyA9IENPTVBBVF9BUkdfWExBVF9WSVJUX0JBU0U7IFwKKyAgICAgICAgICAgICAg ICB4ZW5faW9tbXVfcmVzZXJ2ZWRfcmVnaW9uX3QgKnJlZ2lvbnMgPSBcCisgICAgICAgICAgICAg ICAgICAgICh2b2lkICopKG5yX2VudHJpZXMgKyAxKTsgXAorICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBqOyBcCisgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGZvciAoIGog PSAwOyBcCisgICAgICAgICAgICAgICAgICAgICAgaiA8IG1pbl90KHVuc2lnbmVkIGludCwgKF9k XyktPm5yX2VudHJpZXMsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5yX2Vu dHJpZXMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgaisrICkgXAorICAgICAgICAgICAgICAg IHsgXAorICAgICAgICAgICAgICAgICAgICBjb21wYXRfaW9tbXVfcmVzZXJ2ZWRfcmVnaW9uX3Qg cmVnaW9uOyBcCisgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgWExB VF9pb21tdV9yZXNlcnZlZF9yZWdpb24oJnJlZ2lvbiwgJnJlZ2lvbnNbal0pOyBcCisgICAgICAg ICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBfX2NvcHlfdG9fY29tcGF0 X29mZnNldCgoX2RfKS0+cmVnaW9ucywgaiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZyZWdpb24sIDEpICkgXAorICAgICAgICAgICAgICAgICAg ICAgICAgc3RhdHVzID0gLUVGQVVMVDsgXAorICAgICAgICAgICAgICAgIH0gXAorICAgICAgICAg ICAgfSBcCisgICAgICAgIH0gd2hpbGUgKGZhbHNlKQorCiAgICAgICAgIFhMQVRfaW9tbXVfb3Ao JmNtcCwgJm5hdCk7CiAKKyAgICAgICAgLyogVGhlIHN0YXR1cyB3aWxsIGhhdmUgYmVlbiBtb2Rp ZmllZCBpZiBjb3B5X3RvX2NvbXBhdCgpIGZhaWxlZCAqLworICAgICAgICBjbXAuc3RhdHVzID0g c3RhdHVzOworCisjdW5kZWYgWExBVF9pb21tdV9vcF9xdWVyeV9yZXNlcnZlZF9ITkRMX3JlZ2lv bnMKKwogICAgICAgICBpZiAoIGNvcHlfdG9fZ3Vlc3Rfb2Zmc2V0KHVvcHMsIGksICZjbXAsIDEp ICkKICAgICAgICAgewogICAgICAgICAgICAgcmMgPSAtRUZBVUxUOwpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvcHVibGljL2lvbW11X29wLmggYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3Au aAppbmRleCAyMDJjYjYzZmI1Li4yNGI4YjllMGNjIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9w dWJsaWMvaW9tbXVfb3AuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaApAQCAt MjUsMTEgKzI1LDQ2IEBACiAKICNpbmNsdWRlICJ4ZW4uaCIKIAordHlwZWRlZiB1bnNpZ25lZCBs b25nIHhlbl9iZm5fdDsKKworLyogU3RydWN0dXJlIGRlc2NyaWJpbmcgYSBzaW5nbGUgcmVnaW9u IHJlc2VydmVkIGluIHRoZSBJT01NVSAqLworc3RydWN0IHhlbl9pb21tdV9yZXNlcnZlZF9yZWdp b24geworICAgIHhlbl9iZm5fdCBzdGFydF9iZm47CisgICAgdW5zaWduZWQgaW50IG5yX2ZyYW1l czsKKyAgICB1bnNpZ25lZCBpbnQgcGFkOworfTsKK3R5cGVkZWYgc3RydWN0IHhlbl9pb21tdV9y ZXNlcnZlZF9yZWdpb24geGVuX2lvbW11X3Jlc2VydmVkX3JlZ2lvbl90OworREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX2lvbW11X3Jlc2VydmVkX3JlZ2lvbl90KTsKKworLyoKKyAqIFhFTl9J T01NVU9QX3F1ZXJ5X3Jlc2VydmVkOiBRdWVyeSByYW5nZXMgcmVzZXJ2ZWQgaW4gdGhlIElPTU1V LgorICovCisjZGVmaW5lIFhFTl9JT01NVU9QX3F1ZXJ5X3Jlc2VydmVkIDEKKworc3RydWN0IHhl bl9pb21tdV9vcF9xdWVyeV9yZXNlcnZlZCB7CisgICAgLyoKKyAgICAgKiBJTi9PVVQgLSBPbiBl bnRyaWVzIHRoaXMgaXMgdGhlIG51bWJlciBvZiBlbnRyaWVzIGF2YWlsYWJsZQorICAgICAqICAg ICAgICAgIGluIHRoZSByZWdpb25zIGFycmF5IGJlbG93LgorICAgICAqICAgICAgICAgIE9uIGV4 aXQgdGhpcyBpcyB0aGUgYWN0dWFsIG51bWJlciBvZiByZXNlcnZlZCByZWdpb25zLgorICAgICAq LworICAgIHVuc2lnbmVkIGludCBucl9lbnRyaWVzOworICAgIHVuc2lnbmVkIGludCBwYWQ7Cisg ICAgLyoKKyAgICAgKiBPVVQgLSBUaGlzIGFycmF5IGlzIHBvcHVsYXRlZCB3aXRoIHJlc2VydmVk IHJlZ2lvbnMuIElmIGl0IGlzCisgICAgICogICAgICAgbm90IHN1ZmZpY2llbnRseSBsYXJnZSB0 aGVuIGF2YWlsYWJsZSBlbnRyaWVzIGFyZSBwb3B1bGF0ZWQsCisgICAgICogICAgICAgYnV0IHRo ZSBvcCBzdGF0dXMgY29kZSB3aWxsIGJlIHNldCB0byAtRU5PQlVGUy4KKyAgICAgKi8KKyAgICBY RU5fR1VFU1RfSEFORExFKHhlbl9pb21tdV9yZXNlcnZlZF9yZWdpb25fdCkgcmVnaW9uczsKK307 CisKIHN0cnVjdCB4ZW5faW9tbXVfb3AgewogICAgIHVpbnQxNl90IG9wOwogICAgIHVpbnQxNl90 IGZsYWdzOyAvKiBvcCBzcGVjaWZpYyBmbGFncyAqLwogICAgIGludDMyX3Qgc3RhdHVzOyAvKiBv cCBjb21wbGV0aW9uIHN0YXR1czogKi8KICAgICAgICAgICAgICAgICAgICAgLyogMCBmb3Igc3Vj Y2VzcyBvdGhlcndpc2UsIG5lZ2F0aXZlIGVycm5vICovCisgICAgdW5pb24geworICAgICAgICBz dHJ1Y3QgeGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkIHF1ZXJ5X3Jlc2VydmVkOworICAgIH0g dTsKIH07CiB0eXBlZGVmIHN0cnVjdCB4ZW5faW9tbXVfb3AgeGVuX2lvbW11X29wX3Q7CiBERUZJ TkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5faW9tbXVfb3BfdCk7CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS94bGF0LmxzdCBiL3hlbi9pbmNsdWRlL3hsYXQubHN0CmluZGV4IDc0MDk3NTkwODQuLmEy MDcwYjZkN2QgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hsYXQubHN0CisrKyBiL3hlbi9pbmNs dWRlL3hsYXQubHN0CkBAIC03Niw2ICs3Niw4IEBACiA/CXZjcHVfaHZtX2NvbnRleHQJCWh2bS9o dm1fdmNwdS5oCiA/CXZjcHVfaHZtX3g4Nl8zMgkJCWh2bS9odm1fdmNwdS5oCiA/CXZjcHVfaHZt X3g4Nl82NAkJCWh2bS9odm1fdmNwdS5oCishCWlvbW11X3Jlc2VydmVkX3JlZ2lvbgkJaW9tbXVf b3AuaAorIQlpb21tdV9vcF9xdWVyeV9yZXNlcnZlZAkJaW9tbXVfb3AuaAogIQlpb21tdV9vcAkJ CWlvbW11X29wLmgKID8Ja2V4ZWNfZXhlYwkJCWtleGVjLmgKICEJa2V4ZWNfaW1hZ2UJCQlrZXhl Yy5oCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0 Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRl dmVs