From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v9 7/7] vtd: add lookup_page method to iommu_ops Date: Thu, 13 Sep 2018 16:21:28 +0100 Message-ID: <20180913152128.6114-9-paul.durrant@citrix.com> References: <20180913152128.6114-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 1g0TR3-0008V6-AU for xen-devel@lists.xenproject.org; Thu, 13 Sep 2018 15:21:37 +0000 In-Reply-To: <20180913152128.6114-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: Kevin Tian , Paul Durrant , Wei Liu , George Dunlap , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGEgbmV3IG1ldGhvZCB0byB0aGUgVlQtZCBJT01NVSBpbXBsZW1lbnRh dGlvbiB0byBmaW5kIHRoZQpNRk4gY3VycmVudGx5IG1hcHBlZCBieSB0aGUgc3BlY2lmaWVkIERG TiBhbG9uZyB3aXRoIGEgd3JhcHBlciBmdW5jdGlvbgppbiBnZW5lcmljIElPTU1VIGNvZGUgdG8g Y2FsbCB0aGUgaW1wbGVtZW50YXRpb24gaWYgaXQgZXhpc3RzLgoKTk9URTogVGhpcyBwYXRjaCBv bmx5IGFkZHMgYSBYZW4taW50ZXJuYWwgaW50ZXJmYWNlLiBUaGlzIHdpbGwgYmUgdXNlZCBieQog ICAgICBhIHN1YnNlcXVlbnQgcGF0Y2guCiAgICAgIEFub3RoZXIgc3Vic2VxdWVudCBwYXRjaCB3 aWxsIGFkZCBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIEFNRAogICAgICBJT01NVXMuCgpTaWdu ZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6 IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFu QGludGVsLmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEdlb3Jn ZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KCnY5OgogLSBBZGQgY29tbWVudCBh Ym91dCBsb2NraW5nIGluIHhlbi9pb21tdS5oLgoKdjg6CiAtIFJlbW92ZSBjbGVhbi11cCBhcyB0 aGlzIGlzIG5vdyBkb25lIGJ5IGEgcHJpb3IgcGF0Y2guCiAtIE1ha2UgaW50ZWxfaW9tbXVfbG9v a3VwX3BhZ2UoKSByZXR1cm4gZGZuIHZhbHVlIGlmIHVzaW5nIHNoYXJlZCBFUFQKICAgb3IgaW9t bXVfcGFzc3Rocm91Z2ggaXMgc2V0LCBhcyByZXF1ZXN0ZWQgYnkgS2V2aW4uCgp2NzoKIC0gUmUt YmFzZSBhbmQgcmUtbmFtZSBCRk4gLT4gREZOLgogLSBBZGQgbWlzc2luZyBjaGVja3MgZm9yIHNo YXJlZCBFUFQgYW5kIGlvbW11X3Bhc3N0aHJvdWdoLgogLSBSZW1vdmUgdW5uZWNlc3NhcnkgaW5p dGlhbGl6ZXJzIGFuZCB1c2UgYXJyYXktc3R5bGUgZGVyZWZlcmVuY2UuCiAtIERyb3AgV2VpJ3Mg Ui1iIGJlY2F1c2Ugb2YgY29kZSBjaHVybi4KCnYzOgogLSBBZGRyZXNzZWQgY29tbWVudHMgZnJv bSBHZW9yZ2UuCgp2MjoKIC0gQWRkcmVzc2VkIHNvbWUgY29tbWVudHMgZnJvbSBKYW4uCi0tLQog eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgfCAxMSArKysrKysrKysrCiB4ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyB8IDQ0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oIHwg IDMgKysrCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAgICAgICB8IDEwICsrKysrKysr KwogNCBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11 LmMKaW5kZXggMjRmMmEyYTQ2MC4uODUzYTE0NDM4ZSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j CkBAIC0zMzcsNiArMzM3LDE3IEBAIGludCBpb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4g KmQsIGRmbl90IGRmbikKICAgICByZXR1cm4gcmM7CiB9CiAKK2ludCBpb21tdV9sb29rdXBfcGFn ZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90ICptZm4sCisgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncykKK3sKKyAgICBjb25zdCBzdHJ1Y3QgZG9tYWlu X2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKKworICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwg IWhkLT5wbGF0Zm9ybV9vcHMgKQorICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CisKKyAgICBy ZXR1cm4gaGQtPnBsYXRmb3JtX29wcy0+bG9va3VwX3BhZ2UoZCwgZGZuLCBtZm4sIGZsYWdzKTsK K30KKwogc3RhdGljIHZvaWQgaW9tbXVfZnJlZV9wYWdldGFibGVzKHVuc2lnbmVkIGxvbmcgdW51 c2VkKQogewogICAgIGRvIHsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKaW5kZXggMGVh Yzc1NWZmMy4uZGUwNTdkMjI4YSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAg LTE4MzgsNiArMTgzOCw0OSBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV91 bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgcmV0dXJuIGRtYV9wdGVfY2xlYXJfb25l KGQsIGRmbl90b19kYWRkcihkZm4pKTsKIH0KIAorc3RhdGljIGludCBpbnRlbF9pb21tdV9sb29r dXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90ICptZm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZmxhZ3MpCit7CisgICAg c3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CisgICAgc3RydWN0IGRtYV9w dGUgKnBhZ2UsIHZhbDsKKyAgICB1NjQgcGdfbWFkZHI7CisKKyAgICAvKgorICAgICAqIElmIFZU LWQgc2hhcmVzIEVQVCBwYWdlIHRhYmxlIG9yIGlmIHRoZSBkb21haW4gaXMgdGhlIGhhcmR3YXJl CisgICAgICogZG9tYWluIGFuZCBpb21tdV9wYXNzdGhyb3VnaCBpcyBzZXQgdGhlbiBwYXNzIGJh Y2sgdGhlIGRmbi4KKyAgICAgKi8KKyAgICBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkgfHwKKyAg ICAgICAgIChpb21tdV9od2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZCkp ICkKKyAgICB7CisgICAgICAgICptZm4gPSBfbWZuKGRmbl94KGRmbikpOworICAgICAgICByZXR1 cm4gMDsKKyAgICB9CisKKyAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisK KyAgICBwZ19tYWRkciA9IGFkZHJfdG9fZG1hX3BhZ2VfbWFkZHIoZCwgZGZuX3RvX2RhZGRyKGRm biksIDApOworICAgIGlmICggIXBnX21hZGRyICkKKyAgICB7CisgICAgICAgIHNwaW5fdW5sb2Nr KCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICB9 CisKKyAgICBwYWdlID0gbWFwX3Z0ZF9kb21haW5fcGFnZShwZ19tYWRkcik7CisgICAgdmFsID0g cGFnZVtkZm5feChkZm4pICYgTEVWRUxfTUFTS107CisKKyAgICB1bm1hcF92dGRfZG9tYWluX3Bh Z2UocGFnZSk7CisgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisKKyAg ICBpZiAoICFkbWFfcHRlX3ByZXNlbnQodmFsKSApCisgICAgICAgIHJldHVybiAtRU5PRU5UOwor CisgICAgKm1mbiA9IG1hZGRyX3RvX21mbihkbWFfcHRlX2FkZHIodmFsKSk7CisgICAgKmZsYWdz ID0gZG1hX3B0ZV9yZWFkKHZhbCkgPyBJT01NVUZfcmVhZGFibGUgOiAwOworICAgICpmbGFncyB8 PSBkbWFfcHRlX3dyaXRlKHZhbCkgPyBJT01NVUZfd3JpdGFibGUgOiAwOworCisgICAgcmV0dXJu IDA7Cit9CisKIGludCBpb21tdV9wdGVfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3Qg ZGZuLCB1aW50NjRfdCAqcHRlLAogICAgICAgICAgICAgICAgICAgICBpbnQgb3JkZXIsIGludCBw cmVzZW50KQogewpAQCAtMjY2Myw2ICsyNzA2LDcgQEAgY29uc3Qgc3RydWN0IGlvbW11X29wcyBp bnRlbF9pb21tdV9vcHMgPSB7CiAgICAgLnRlYXJkb3duID0gaW9tbXVfZG9tYWluX3RlYXJkb3du LAogICAgIC5tYXBfcGFnZSA9IGludGVsX2lvbW11X21hcF9wYWdlLAogICAgIC51bm1hcF9wYWdl ID0gaW50ZWxfaW9tbXVfdW5tYXBfcGFnZSwKKyAgICAubG9va3VwX3BhZ2UgPSBpbnRlbF9pb21t dV9sb29rdXBfcGFnZSwKICAgICAuZnJlZV9wYWdlX3RhYmxlID0gaW9tbXVfZnJlZV9wYWdlX3Rh YmxlLAogICAgIC5yZWFzc2lnbl9kZXZpY2UgPSByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlwLAog ICAgIC5nZXRfZGV2aWNlX2dyb3VwX2lkID0gaW50ZWxfaW9tbXVfZ3JvdXBfaWQsCmRpZmYgLS1n aXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaCBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5oCmluZGV4IDcyYzFhMmUzY2QuLjQ3YmRmY2I1ZWEgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oCkBAIC0yNzIsNiArMjcyLDkgQEAgc3RydWN0IGRt YV9wdGUgewogI2RlZmluZSBkbWFfc2V0X3B0ZV9wcm90KHAsIHByb3QpIGRvIHsgXAogICAgICAg ICAocCkudmFsID0gKChwKS52YWwgJiB+RE1BX1BURV9QUk9UKSB8ICgocHJvdCkgJiBETUFfUFRF X1BST1QpOyBcCiAgICAgfSB3aGlsZSAoMCkKKyNkZWZpbmUgZG1hX3B0ZV9wcm90KHApICgocCku dmFsICYgRE1BX1BURV9QUk9UKQorI2RlZmluZSBkbWFfcHRlX3JlYWQocCkgKGRtYV9wdGVfcHJv dChwKSAmIERNQV9QVEVfUkVBRCkKKyNkZWZpbmUgZG1hX3B0ZV93cml0ZShwKSAoZG1hX3B0ZV9w cm90KHApICYgRE1BX1BURV9XUklURSkKICNkZWZpbmUgZG1hX3B0ZV9hZGRyKHApICgocCkudmFs ICYgUEFERFJfTUFTSyAmIFBBR0VfTUFTS180SykKICNkZWZpbmUgZG1hX3NldF9wdGVfYWRkcihw LCBhZGRyKSBkbyB7XAogICAgICAgICAgICAgKHApLnZhbCB8PSAoKGFkZHIpICYgUEFHRV9NQVNL XzRLKTsgfSB3aGlsZSAoMCkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIv eGVuL2luY2x1ZGUveGVuL2lvbW11LmgKaW5kZXggNzMxMzk1N2M4MS4uZjk0YjYwNmY2YiAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lv bW11LmgKQEAgLTkyLDYgKzkyLDggQEAgdm9pZCBpb21tdV90ZWFyZG93bihzdHJ1Y3QgZG9tYWlu ICpkKTsKIGludCBfX211c3RfY2hlY2sgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwg ZGZuX3QgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sIHVu c2lnbmVkIGludCBmbGFncyk7CiBpbnQgX19tdXN0X2NoZWNrIGlvbW11X3VubWFwX3BhZ2Uoc3Ry dWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuKTsKK2ludCBfX211c3RfY2hlY2sgaW9tbXVfbG9va3Vw X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCAqbWZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKTsKIAogZW51bSBp b21tdV9mZWF0dXJlCiB7CkBAIC0xNzksOSArMTgxLDE3IEBAIHN0cnVjdCBpb21tdV9vcHMgewog I2VuZGlmIC8qIEhBU19QQ0kgKi8KIAogICAgIHZvaWQgKCp0ZWFyZG93bikoc3RydWN0IGRvbWFp biAqZCk7CisKKyAgICAvKgorICAgICAqIFRoaXMgYmxvY2sgb2Ygb3BlcmF0aW9ucyBtdXN0IGJl IGFwcHJvcHJpYXRlbHkgbG9ja2VkIGFnYWluc3QgZWFjaAorICAgICAqIG90aGVyIHRvIGhhdmUg bWVhbmluZ2Z1bCByZXN1bHRzLgorICAgICAqLwogICAgIGludCBfX211c3RfY2hlY2sgKCptYXBf cGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCBtZm4sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogICAgIGludCBfX211 c3RfY2hlY2sgKCp1bm1hcF9wYWdlKShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4pOworICAg IGludCBfX211c3RfY2hlY2sgKCpsb29rdXBfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3Qg ZGZuLCBtZm5fdCAqbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50ICpmbGFncyk7CisKICAgICB2b2lkICgqZnJlZV9wYWdlX3RhYmxlKShzdHJ1Y3Qg cGFnZV9pbmZvICopOwogI2lmZGVmIENPTkZJR19YODYKICAgICB2b2lkICgqdXBkYXRlX2lyZV9m cm9tX2FwaWMpKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBp bnQgdmFsdWUpOwotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==