From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v8 7/7] vtd: add lookup_page method to iommu_ops Date: Thu, 13 Sep 2018 11:31:53 +0100 Message-ID: <20180913103153.33377-9-paul.durrant@citrix.com> References: <20180913103153.33377-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 1g0Ouo-0007g5-Ax for xen-devel@lists.xenproject.org; Thu, 13 Sep 2018 10:32:02 +0000 In-Reply-To: <20180913103153.33377-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 ZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KCnY4OgogLSBSZW1vdmUgY2xlYW4t dXAgYXMgdGhpcyBpcyBub3cgZG9uZSBieSBhIHByaW9yIHBhdGNoLgogLSBNYWtlIGludGVsX2lv bW11X2xvb2t1cF9wYWdlKCkgcmV0dXJuIGRmbiB2YWx1ZSBpZiB1c2luZyBzaGFyZWQgRVBUCiAg IG9yIGlvbW11X3Bhc3N0aHJvdWdoIGlzIHNldCwgYXMgcmVxdWVzdGVkIGJ5IEtldmluLgoKdjc6 CiAtIFJlLWJhc2UgYW5kIHJlLW5hbWUgQkZOIC0+IERGTi4KIC0gQWRkIG1pc3NpbmcgY2hlY2tz IGZvciBzaGFyZWQgRVBUIGFuZCBpb21tdV9wYXNzdGhyb3VnaC4KIC0gUmVtb3ZlIHVubmVjZXNz YXJ5IGluaXRpYWxpemVycyBhbmQgdXNlIGFycmF5LXN0eWxlIGRlcmVmZXJlbmNlLgogLSBEcm9w IFdlaSdzIFItYiBiZWNhdXNlIG9mIGNvZGUgY2h1cm4uCgp2MzoKIC0gQWRkcmVzc2VkIGNvbW1l bnRzIGZyb20gR2VvcmdlLgoKdjI6CiAtIEFkZHJlc3NlZCBzb21lIGNvbW1lbnRzIGZyb20gSmFu LgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgIHwgMTEgKysrKysrKysr KwogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgfCA0NCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t bXUuaCB8ICAzICsrKwogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAgICAgfCAgNCAr KysrCiA0IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9t bXUuYwppbmRleCBhMTZmMWEwYzY2Li41MmUzZjUwMGM3IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11 LmMKQEAgLTI5Niw2ICsyOTYsMTcgQEAgaW50IGlvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgZGZuX3QgZGZuKQogICAgIHJldHVybiByYzsKIH0KIAoraW50IGlvbW11X2xvb2t1cF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgKm1mbiwKKyAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKQoreworICAgIGNvbnN0IHN0cnVjdCBkb21h aW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOworCisgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8 fCAhaGQtPnBsYXRmb3JtX29wcyApCisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKworICAg IHJldHVybiBoZC0+cGxhdGZvcm1fb3BzLT5sb29rdXBfcGFnZShkLCBkZm4sIG1mbiwgZmxhZ3Mp OworfQorCiBzdGF0aWMgdm9pZCBpb21tdV9mcmVlX3BhZ2V0YWJsZXModW5zaWduZWQgbG9uZyB1 bnVzZWQpCiB7CiAgICAgZG8gewpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwppbmRleCA0 YTYyMjJmZTFjLi5jZDI4ZjllNjNhIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpA QCAtMTgzNyw2ICsxODM3LDQ5IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11 X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gZG1hX3B0ZV9jbGVhcl9v bmUoZCwgZGZuX3RvX2RhZGRyKGRmbikpOwogfQogCitzdGF0aWMgaW50IGludGVsX2lvbW11X2xv b2t1cF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgKm1mbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncykKK3sKKyAg ICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKKyAgICBzdHJ1Y3QgZG1h X3B0ZSAqcGFnZSwgdmFsOworICAgIHU2NCBwZ19tYWRkcjsKKworICAgIC8qCisgICAgICogSWYg VlQtZCBzaGFyZXMgRVBUIHBhZ2UgdGFibGUgb3IgaWYgdGhlIGRvbWFpbiBpcyB0aGUgaGFyZHdh cmUKKyAgICAgKiBkb21haW4gYW5kIGlvbW11X3Bhc3N0aHJvdWdoIGlzIHNldCB0aGVuIHBhc3Mg YmFjayB0aGUgZGZuLgorICAgICAqLworICAgIGlmICggaW9tbXVfdXNlX2hhcF9wdChkKSB8fAor ICAgICAgICAgKGlvbW11X3Bhc3N0aHJvdWdoICYmIGlzX2hhcmR3YXJlX2RvbWFpbihkKSkgKQor ICAgIHsKKyAgICAgICAgKm1mbiA9IF9tZm4oZGZuX3goZGZuKSk7CisgICAgICAgIHJldHVybiAw OworICAgIH0KKworICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKworICAg IHBnX21hZGRyID0gYWRkcl90b19kbWFfcGFnZV9tYWRkcihkLCBkZm5fdG9fZGFkZHIoZGZuKSwg MCk7CisgICAgaWYgKCAhcGdfbWFkZHIgKQorICAgIHsKKyAgICAgICAgc3Bpbl91bmxvY2soJmhk LT5hcmNoLm1hcHBpbmdfbG9jayk7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKwor ICAgIHBhZ2UgPSBtYXBfdnRkX2RvbWFpbl9wYWdlKHBnX21hZGRyKTsKKyAgICB2YWwgPSBwYWdl W2Rmbl94KGRmbikgJiBMRVZFTF9NQVNLXTsKKworICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShw YWdlKTsKKyAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKworICAgIGlm ICggIWRtYV9wdGVfcHJlc2VudCh2YWwpICkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAg ICAqbWZuID0gbWFkZHJfdG9fbWZuKGRtYV9wdGVfYWRkcih2YWwpKTsKKyAgICAqZmxhZ3MgPSBk bWFfcHRlX3JlYWQodmFsKSA/IElPTU1VRl9yZWFkYWJsZSA6IDA7CisgICAgKmZsYWdzIHw9IGRt YV9wdGVfd3JpdGUodmFsKSA/IElPTU1VRl93cml0YWJsZSA6IDA7CisKKyAgICByZXR1cm4gMDsK K30KKwogaW50IGlvbW11X3B0ZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBkZm4s IHVpbnQ2NF90ICpwdGUsCiAgICAgICAgICAgICAgICAgICAgIGludCBvcmRlciwgaW50IHByZXNl bnQpCiB7CkBAIC0yNjYyLDYgKzI3MDUsNyBAQCBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzIGludGVs X2lvbW11X29wcyA9IHsKICAgICAudGVhcmRvd24gPSBpb21tdV9kb21haW5fdGVhcmRvd24sCiAg ICAgLm1hcF9wYWdlID0gaW50ZWxfaW9tbXVfbWFwX3BhZ2UsCiAgICAgLnVubWFwX3BhZ2UgPSBp bnRlbF9pb21tdV91bm1hcF9wYWdlLAorICAgIC5sb29rdXBfcGFnZSA9IGludGVsX2lvbW11X2xv b2t1cF9wYWdlLAogICAgIC5mcmVlX3BhZ2VfdGFibGUgPSBpb21tdV9mcmVlX3BhZ2VfdGFibGUs CiAgICAgLnJlYXNzaWduX2RldmljZSA9IHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAsCiAgICAg LmdldF9kZXZpY2VfZ3JvdXBfaWQgPSBpbnRlbF9pb21tdV9ncm91cF9pZCwKZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2lvbW11LmgKaW5kZXggNzJjMWEyZTNjZC4uNDdiZGZjYjVlYSAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKQEAgLTI3Miw2ICsyNzIsOSBAQCBzdHJ1Y3QgZG1hX3B0 ZSB7CiAjZGVmaW5lIGRtYV9zZXRfcHRlX3Byb3QocCwgcHJvdCkgZG8geyBcCiAgICAgICAgIChw KS52YWwgPSAoKHApLnZhbCAmIH5ETUFfUFRFX1BST1QpIHwgKChwcm90KSAmIERNQV9QVEVfUFJP VCk7IFwKICAgICB9IHdoaWxlICgwKQorI2RlZmluZSBkbWFfcHRlX3Byb3QocCkgKChwKS52YWwg JiBETUFfUFRFX1BST1QpCisjZGVmaW5lIGRtYV9wdGVfcmVhZChwKSAoZG1hX3B0ZV9wcm90KHAp ICYgRE1BX1BURV9SRUFEKQorI2RlZmluZSBkbWFfcHRlX3dyaXRlKHApIChkbWFfcHRlX3Byb3Qo cCkgJiBETUFfUFRFX1dSSVRFKQogI2RlZmluZSBkbWFfcHRlX2FkZHIocCkgKChwKS52YWwgJiBQ QUREUl9NQVNLICYgUEFHRV9NQVNLXzRLKQogI2RlZmluZSBkbWFfc2V0X3B0ZV9hZGRyKHAsIGFk ZHIpIGRvIHtcCiAgICAgICAgICAgICAocCkudmFsIHw9ICgoYWRkcikgJiBQQUdFX01BU0tfNEsp OyB9IHdoaWxlICgwKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4v aW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCA2NGFhYzEzODZhLi43MWI4ZTRhNTU2IDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aApAQCAtMTAwLDYgKzEwMCw4IEBAIHZvaWQgaW9tbXVfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAq ZCk7CiBpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRm bl90IGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuLCB1bnNp Z25lZCBpbnQgZmxhZ3MpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlKHN0cnVj dCBkb21haW4gKmQsIGRmbl90IGRmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X2xvb2t1cF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgKm1mbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncyk7CiAKIGVudW0gaW9t bXVfZmVhdHVyZQogewpAQCAtMTkwLDYgKzE5Miw4IEBAIHN0cnVjdCBpb21tdV9vcHMgewogICAg IGludCBfX211c3RfY2hlY2sgKCptYXBfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZu LCBtZm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgZmxhZ3MpOwogICAgIGludCBfX211c3RfY2hlY2sgKCp1bm1hcF9wYWdlKShzdHJ1Y3QgZG9t YWluICpkLCBkZm5fdCBkZm4pOworICAgIGludCBfX211c3RfY2hlY2sgKCpsb29rdXBfcGFnZSko c3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCAqbWZuLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncyk7CiAgICAgdm9pZCAoKmZy ZWVfcGFnZV90YWJsZSkoc3RydWN0IHBhZ2VfaW5mbyAqKTsKICNpZmRlZiBDT05GSUdfWDg2CiAg ICAgdm9pZCAoKnVwZGF0ZV9pcmVfZnJvbV9hcGljKSh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWdu ZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHZhbHVlKTsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=