From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 10/13] x86: add iommu_op to enable modification of IOMMU mappings Date: Tue, 17 Jul 2018 14:38:13 +0100 Message-ID: <20180717133816.37958-11-paul.durrant@citrix.com> References: <20180717133816.37958-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ffQUt-0008N8-0J for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 13:58:35 +0000 In-Reply-To: <20180717133816.37958-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 , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGFuIGlvbW11X29wIHdoaWNoIGNoZWNrcyB3aGV0aGVyIGl0IGlzIHBv c3NpYmxlIG9yCnNhZmUgZm9yIGEgZG9tYWluIHRvIG1vZGlmeSBpdHMgb3duIElPTU1VIG1hcHBp bmdzIGFuZCwgaWYgc28sIGNyZWF0ZXMKYSByYW5nZXNldCB0byB0cmFjayBtb2RpZmljYXRpb25z LgoKTk9URTogVGhlIGFjdHVhbCBtYXAgYW5kIHVubWFwIG9wZXJhdGlvbnMgYXJlIGludHJvZHVj ZWQgYnkgc3Vic2VxdWVudAogICAgICBwYXRjaGVzLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJy YW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFu IEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1 bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2ls a0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgoKdjI6CiAtIE5ldyBpbiB2Mi4KLS0tCiB4ZW4vYXJjaC94ODYvaW9tbXVfb3Au YyAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgfCAgMiArLQogeGVuL2luY2x1ZGUvcHVi bGljL2lvbW11X29wLmggICB8ICA2ICsrKysrKwogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAg ICAgICB8ICAzICsrKwogNCBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2lvbW11X29wLmMgYi94ZW4vYXJjaC94 ODYvaW9tbXVfb3AuYwppbmRleCA5NzgxMWY4Y2VkLi5hNzBjZTlmMjcyIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvaW9tbXVfb3AuYworKysgYi94ZW4vYXJjaC94ODYvaW9tbXVfb3AuYwpAQCAt NzgsNiArNzgsNDIgQEAgc3RhdGljIGludCBpb21tdV9vcF9xdWVyeV9yZXNlcnZlZChzdHJ1Y3Qg eGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkICpvcCkKICAgICByZXR1cm4gMDsKIH0KIAorc3Rh dGljIGludCBpb21tdV9vcF9lbmFibGVfbW9kaWZpY2F0aW9uKHZvaWQpCit7CisgICAgc3RydWN0 IGRvbWFpbiAqY3VycmQgPSBjdXJyZW50LT5kb21haW47CisgICAgc3RydWN0IGRvbWFpbl9pb21t dSAqaW9tbXUgPSBkb21faW9tbXUoY3VycmQpOworICAgIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMg Km9wcyA9IGlvbW11LT5wbGF0Zm9ybV9vcHM7CisKKyAgICAvKiBIYXMgbW9kaWZpY2F0aW9uIGFs cmVhZHkgYmVlbiBlbmFibGVkPyAqLworICAgIGlmICggaW9tbXUtPmlvbW11X29wX3JhbmdlcyAp CisgICAgICAgIHJldHVybiAwOworCisgICAgLyoKKyAgICAgKiBUaGUgSU9NTVUgbWFwcGluZ3Mg Y2Fubm90IGJlIG1vZGlmaWVkIGlmOgorICAgICAqIC0gdGhlIElPTU1VIGlzIG5vdCBlbmFibGVk IG9yLAorICAgICAqIC0gdGhlIGN1cnJlbnQgZG9tYWluIGlzIGRvbTAgYW5kIHRyYW5sc2F0aW9u IGlzIGRpc2FibGVkIG9yLAorICAgICAqIC0gSEFQIGlzIGVuYWJsZWQgYW5kIHRoZSBJT01NVSBz aGFyZXMgdGhlIG1hcHBpbmdzLgorICAgICAqLworICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwK KyAgICAgICAgIChpc19oYXJkd2FyZV9kb21haW4oY3VycmQpICYmIGlvbW11X3Bhc3N0aHJvdWdo KSB8fAorICAgICAgICAgaW9tbXVfdXNlX2hhcF9wdChjdXJyZCkgKQorICAgICAgICByZXR1cm4g LUVBQ0NFUzsKKworICAgIC8qCisgICAgICogVGhlIElPTU1VIGltcGxlbWVudGF0aW9uIG11c3Qg cHJvdmlkZSB0aGUgbG9va3VwIG1ldGhvZCBpZgorICAgICAqIG1vZGlmaWNhdGlvbiBvZiB0aGUg bWFwcGluZ3MgaXMgdG8gYmUgc3VwcG9ydGVkLgorICAgICAqLworICAgIGlmICggIW9wcy0+bG9v a3VwX3BhZ2UgKQorICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CisKKyAgICBpb21tdS0+aW9t bXVfb3BfcmFuZ2VzID0gcmFuZ2VzZXRfbmV3KGN1cnJkLCBOVUxMLCAwKTsKKyAgICBpZiAoICFp b21tdS0+aW9tbXVfb3BfcmFuZ2VzICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICBj dXJyZC0+bmVlZF9pb21tdSA9IDA7IC8qIERpc2FibGUgaWRlbnRpdHkgR0ZOIG1hcHBpbmcgKi8K KyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQgaW9tbXVfb3AoeGVuX2lvbW11X29wX3Qg Km9wKQogewogICAgIHN3aXRjaCAoIG9wLT5vcCApCkBAIC04Niw2ICsxMjIsMTAgQEAgc3RhdGlj IHZvaWQgaW9tbXVfb3AoeGVuX2lvbW11X29wX3QgKm9wKQogICAgICAgICBvcC0+c3RhdHVzID0g aW9tbXVfb3BfcXVlcnlfcmVzZXJ2ZWQoJm9wLT51LnF1ZXJ5X3Jlc2VydmVkKTsKICAgICAgICAg YnJlYWs7CiAKKyAgICBjYXNlIFhFTl9JT01NVU9QX2VuYWJsZV9tb2RpZmljYXRpb246CisgICAg ICAgIG9wLT5zdGF0dXMgPSBpb21tdV9vcF9lbmFibGVfbW9kaWZpY2F0aW9uKCk7CisgICAgICAg IGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgb3AtPnN0YXR1cyA9IC1FT1BOT1RTVVBQ OwogICAgICAgICBicmVhazsKQEAgLTk4LDYgKzEzOCw3IEBAIGludCBkb19vbmVfaW9tbXVfb3Ao eGVuX2lvbW11X29wX2J1Zl90ICpidWYpCiAgICAgc2l6ZV90IG9mZnNldDsKICAgICBzdGF0aWMg Y29uc3Qgc2l6ZV90IG9wX3NpemVbXSA9IHsKICAgICAgICAgW1hFTl9JT01NVU9QX3F1ZXJ5X3Jl c2VydmVkXSA9IHNpemVvZihzdHJ1Y3QgeGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkKSwKKyAg ICAgICAgW1hFTl9JT01NVU9QX2VuYWJsZV9tb2RpZmljYXRpb25dID0gMCwKICAgICB9OwogICAg IHNpemVfdCBzaXplOwogICAgIGludCByYzsKQEAgLTE4Miw2ICsyMjMsNyBAQCBpbnQgY29tcGF0 X29uZV9pb21tdV9vcChjb21wYXRfaW9tbXVfb3BfYnVmX3QgKmJ1ZikKICAgICBzaXplX3Qgb2Zm c2V0OwogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgb3Bfc2l6ZVtdID0gewogICAgICAgICBbWEVO X0lPTU1VT1BfcXVlcnlfcmVzZXJ2ZWRdID0gc2l6ZW9mKHN0cnVjdCBjb21wYXRfaW9tbXVfb3Bf cXVlcnlfcmVzZXJ2ZWQpLAorICAgICAgICBbWEVOX0lPTU1VT1BfZW5hYmxlX21vZGlmaWNhdGlv bl0gPSAwLAogICAgIH07CiAgICAgc2l6ZV90IHNpemU7CiAgICAgeGVuX2lvbW11X29wX3QgbmF0 OwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKaW5kZXggZmI5ZDBlMTg0OC4uYzUxNzQyODYyMSAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9pb21tdS5jCkBAIC0yNiw3ICsyNiw2IEBAIHN0YXRpYyB2b2lkIGlvbW11 X2R1bXBfcDJtX3RhYmxlKHVuc2lnbmVkIGNoYXIga2V5KTsKIAogdW5zaWduZWQgaW50IF9fcmVh ZF9tb3N0bHkgaW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQgPSAxMDAwOwogaW50ZWdlcl9wYXJhbSgi aW9tbXVfZGV2X2lvdGxiX3RpbWVvdXQiLCBpb21tdV9kZXZfaW90bGJfdGltZW91dCk7Ci0KIC8q CiAgKiBUaGUgJ2lvbW11JyBwYXJhbWV0ZXIgZW5hYmxlcyB0aGUgSU9NTVUuICBPcHRpb25hbCBj b21tYSBzZXBhcmF0ZWQKICAqIHZhbHVlIG1heSBjb250YWluOgpAQCAtMjYyLDYgKzI2MSw3IEBA IHZvaWQgaW9tbXVfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAqZCkKICAgICBhcmNoX2lv bW11X2RvbWFpbl9kZXN0cm95KGQpOwogCiAgICAgcmFuZ2VzZXRfZGVzdHJveShoZC0+cmVzZXJ2 ZWRfcmFuZ2VzKTsKKyAgICByYW5nZXNldF9kZXN0cm95KGhkLT5pb21tdV9vcF9yYW5nZXMpOwog fQogCiBpbnQgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgYmZuX3QgYmZuLCBtZm5f dCBtZm4sCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvaW9tbXVfb3AuaCBiL3hlbi9p bmNsdWRlL3B1YmxpYy9pb21tdV9vcC5oCmluZGV4IDAyMjEzYzEyYTQuLjVhMzE0OGMyNDcgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9pb21tdV9vcC5oCisrKyBiL3hlbi9pbmNsdWRl L3B1YmxpYy9pb21tdV9vcC5oCkBAIC02MSw2ICs2MSwxMiBAQCBzdHJ1Y3QgeGVuX2lvbW11X29w X3F1ZXJ5X3Jlc2VydmVkIHsKICAgICBYRU5fR1VFU1RfSEFORExFKHhlbl9pb21tdV9yZXNlcnZl ZF9yYW5nZV90KSByYW5nZXM7CiB9OwogCisvKgorICogWEVOX0lPTU1VT1BfZW5hYmxlX21vZGlm aWNhdGlvbjogRW5hYmxlIG9wZXJhdGlvbnMgdGhhdCBtb2RpZnkgSU9NTVUKKyAqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdzLgorICovCisjZGVmaW5lIFhFTl9JT01N VU9QX2VuYWJsZV9tb2RpZmljYXRpb24gMgorCiBzdHJ1Y3QgeGVuX2lvbW11X29wIHsKICAgICB1 aW50MTZfdCBvcDsgICAgLyogb3AgdHlwZSAqLwogICAgIHVpbnQxNl90IHBhZDsKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5k ZXggN2M1ZDQ2ZGY4MS4uMDhiMTYzY2JjYiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lv bW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTEzMCw2ICsxMzAsOSBAQCBz dHJ1Y3QgZG9tYWluX2lvbW11IHsKICAgICAgKiBtdXN0IG5vdCBiZSBtb2RpZmllZCBhZnRlciBp bml0aWFsaXphdGlvbi4KICAgICAgKi8KICAgICBzdHJ1Y3QgcmFuZ2VzZXQgKnJlc2VydmVkX3Jh bmdlczsKKworICAgIC8qIFJhbmdlcyB1bmRlciB0aGUgY29udHJvbCBvZiBpb21tdV9vcCAqLwor ICAgIHN0cnVjdCByYW5nZXNldCAqaW9tbXVfb3BfcmFuZ2VzOwogfTsKIAogI2RlZmluZSBkb21f aW9tbXUoZCkgICAgICAgICAgICAgICgmKGQpLT5pb21tdSkKLS0gCjIuMTEuMAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5n IGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJv amVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=