From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v13 7/9] vtd: add lookup_page method to iommu_ops Date: Tue, 2 Oct 2018 18:00:17 +0100 Message-ID: <20181002170019.1911-8-paul.durrant@citrix.com> References: <20181002170019.1911-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.89) (envelope-from ) id 1g7O27-0001TT-Ng for xen-devel@lists.xenproject.org; Tue, 02 Oct 2018 17:00:27 +0000 In-Reply-To: <20181002170019.1911-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: Paul Durrant , Wei Liu , George Dunlap List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGEgbmV3IG1ldGhvZCB0byB0aGUgVlQtZCBJT01NVSBpbXBsZW1lbnRh dGlvbiB0byBmaW5kIHRoZQpNRk4gY3VycmVudGx5IG1hcHBlZCBieSB0aGUgc3BlY2lmaWVkIERG TiBhbG9uZyB3aXRoIGEgd3JhcHBlciBmdW5jdGlvbgppbiBnZW5lcmljIElPTU1VIGNvZGUgdG8g Y2FsbCB0aGUgaW1wbGVtZW50YXRpb24gaWYgaXQgZXhpc3RzLgoKTk9URTogVGhpcyBwYXRjaCBv bmx5IGFkZHMgYSBYZW4taW50ZXJuYWwgaW50ZXJmYWNlLiBUaGlzIHdpbGwgYmUgdXNlZCBieQog ICAgICBhIHN1YnNlcXVlbnQgcGF0Y2guCiAgICAgIEFub3RoZXIgc3Vic2VxdWVudCBwYXRjaCB3 aWxsIGFkZCBzaW1pbGFyIGZ1bmN0aW9uYWxpdHkgZm9yIEFNRAogICAgICBJT01NVXMuCgpTaWdu ZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogS2V2aW4g VGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Ci0tLQpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0 cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KCnYx MToKIC0gRm9sZCBpbiBwYXRjaCB0byBjaGFuZ2UgZmFpbHVyZSBzZW1hbnRpY3MgKGFscmVhZHkg YWNrLWVkIGJ5IEtldmluKS4KCnYxMDoKIC0gQWRqdXN0IHRoZSBsb2NraW5nIGNvbW1lbnQuCgp2 OToKIC0gQWRkIGNvbW1lbnQgYWJvdXQgbG9ja2luZyBpbiB4ZW4vaW9tbXUuaC4KCnY4OgogLSBS ZW1vdmUgY2xlYW4tdXAgYXMgdGhpcyBpcyBub3cgZG9uZSBieSBhIHByaW9yIHBhdGNoLgogLSBN YWtlIGludGVsX2lvbW11X2xvb2t1cF9wYWdlKCkgcmV0dXJuIGRmbiB2YWx1ZSBpZiB1c2luZyBz aGFyZWQgRVBUCiAgIG9yIGlvbW11X3Bhc3N0aHJvdWdoIGlzIHNldCwgYXMgcmVxdWVzdGVkIGJ5 IEtldmluLgoKdjc6CiAtIFJlLWJhc2UgYW5kIHJlLW5hbWUgQkZOIC0+IERGTi4KIC0gQWRkIG1p c3NpbmcgY2hlY2tzIGZvciBzaGFyZWQgRVBUIGFuZCBpb21tdV9wYXNzdGhyb3VnaC4KIC0gUmVt b3ZlIHVubmVjZXNzYXJ5IGluaXRpYWxpemVycyBhbmQgdXNlIGFycmF5LXN0eWxlIGRlcmVmZXJl bmNlLgogLSBEcm9wIFdlaSdzIFItYiBiZWNhdXNlIG9mIGNvZGUgY2h1cm4uCgp2MzoKIC0gQWRk cmVzc2VkIGNvbW1lbnRzIGZyb20gR2VvcmdlLgoKdjI6CiAtIEFkZHJlc3NlZCBzb21lIGNvbW1l bnRzIGZyb20gSmFuLgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgIHwg MTEgKysrKysrKysrKwogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgfCA0MSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQvaW9tbXUuaCB8ICAzICsrKwogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAg ICAgICAgfCAxMCArKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IDQ0ODZiMTYxMDkuLjljYjE3OTMxNDQgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMzI3LDYgKzMyNywxNyBAQCBpbnQgaW9tbXVfdW5tYXBf cGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4pCiAgICAgcmV0dXJuIHJjOwogfQogCitp bnQgaW9tbXVfbG9va3VwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCAq bWZuLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZmxhZ3MpCit7CisgICAg Y29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CisKKyAgICBpZiAo ICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKKyAgICAgICAgcmV0dXJuIC1F T1BOT1RTVVBQOworCisgICAgcmV0dXJuIGhkLT5wbGF0Zm9ybV9vcHMtPmxvb2t1cF9wYWdlKGQs IGRmbiwgbWZuLCBmbGFncyk7Cit9CisKIHN0YXRpYyB2b2lkIGlvbW11X2ZyZWVfcGFnZXRhYmxl cyh1bnNpZ25lZCBsb25nIHVudXNlZCkKIHsKICAgICBkbyB7CmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5jCmluZGV4IDViNjZlZGU1OTkuLjFlODYxYjY5NmQgMTAwNjQ0Ci0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC0xODQwLDYgKzE4NDAsNDYgQEAgc3RhdGljIGludCBfX211c3Rf Y2hlY2sgaW50ZWxfaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLAogICAgIHJldHVy biBkbWFfcHRlX2NsZWFyX29uZShkLCBkZm5fdG9fZGFkZHIoZGZuKSk7CiB9CiAKK3N0YXRpYyBp bnQgaW50ZWxfaW9tbXVfbG9va3VwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBt Zm5fdCAqbWZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgKmZsYWdzKQoreworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQp OworICAgIHN0cnVjdCBkbWFfcHRlICpwYWdlLCB2YWw7CisgICAgdTY0IHBnX21hZGRyOworCisg ICAgLyoKKyAgICAgKiBJZiBWVC1kIHNoYXJlcyBFUFQgcGFnZSB0YWJsZSBvciBpZiB0aGUgZG9t YWluIGlzIHRoZSBoYXJkd2FyZQorICAgICAqIGRvbWFpbiBhbmQgaW9tbXVfcGFzc3Rocm91Z2gg aXMgc2V0IHRoZW4gcGFzcyBiYWNrIHRoZSBkZm4uCisgICAgICovCisgICAgaWYgKCBpb21tdV91 c2VfaGFwX3B0KGQpIHx8CisgICAgICAgICAoaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggJiYgaXNf aGFyZHdhcmVfZG9tYWluKGQpKSApCisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKworICAg IHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKworICAgIHBnX21hZGRyID0gYWRk cl90b19kbWFfcGFnZV9tYWRkcihkLCBkZm5fdG9fZGFkZHIoZGZuKSwgMCk7CisgICAgaWYgKCAh cGdfbWFkZHIgKQorICAgIHsKKyAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKworICAgIHBhZ2UgPSBtYXBf dnRkX2RvbWFpbl9wYWdlKHBnX21hZGRyKTsKKyAgICB2YWwgPSBwYWdlW2Rmbl94KGRmbikgJiBM RVZFTF9NQVNLXTsKKworICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShwYWdlKTsKKyAgICBzcGlu X3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKworICAgIGlmICggIWRtYV9wdGVfcHJl c2VudCh2YWwpICkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAgICAqbWZuID0gbWFkZHJf dG9fbWZuKGRtYV9wdGVfYWRkcih2YWwpKTsKKyAgICAqZmxhZ3MgPSBkbWFfcHRlX3JlYWQodmFs KSA/IElPTU1VRl9yZWFkYWJsZSA6IDA7CisgICAgKmZsYWdzIHw9IGRtYV9wdGVfd3JpdGUodmFs KSA/IElPTU1VRl93cml0YWJsZSA6IDA7CisKKyAgICByZXR1cm4gMDsKK30KKwogaW50IGlvbW11 X3B0ZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1aW50NjRfdCBkZm4sIHVpbnQ2NF90ICpwdGUs CiAgICAgICAgICAgICAgICAgICAgIGludCBvcmRlciwgaW50IHByZXNlbnQpCiB7CkBAIC0yNjY1 LDYgKzI3MDUsNyBAQCBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzIGludGVsX2lvbW11X29wcyA9IHsK ICAgICAudGVhcmRvd24gPSBpb21tdV9kb21haW5fdGVhcmRvd24sCiAgICAgLm1hcF9wYWdlID0g aW50ZWxfaW9tbXVfbWFwX3BhZ2UsCiAgICAgLnVubWFwX3BhZ2UgPSBpbnRlbF9pb21tdV91bm1h cF9wYWdlLAorICAgIC5sb29rdXBfcGFnZSA9IGludGVsX2lvbW11X2xvb2t1cF9wYWdlLAogICAg IC5mcmVlX3BhZ2VfdGFibGUgPSBpb21tdV9mcmVlX3BhZ2VfdGFibGUsCiAgICAgLnJlYXNzaWdu X2RldmljZSA9IHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAsCiAgICAgLmdldF9kZXZpY2VfZ3Jv dXBfaWQgPSBpbnRlbF9pb21tdV9ncm91cF9pZCwKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5oIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmgKaW5kZXggNzJjMWEyZTNjZC4uNDdiZGZjYjVlYSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmgKQEAgLTI3Miw2ICsyNzIsOSBAQCBzdHJ1Y3QgZG1hX3B0ZSB7CiAjZGVmaW5lIGRt YV9zZXRfcHRlX3Byb3QocCwgcHJvdCkgZG8geyBcCiAgICAgICAgIChwKS52YWwgPSAoKHApLnZh bCAmIH5ETUFfUFRFX1BST1QpIHwgKChwcm90KSAmIERNQV9QVEVfUFJPVCk7IFwKICAgICB9IHdo aWxlICgwKQorI2RlZmluZSBkbWFfcHRlX3Byb3QocCkgKChwKS52YWwgJiBETUFfUFRFX1BST1Qp CisjZGVmaW5lIGRtYV9wdGVfcmVhZChwKSAoZG1hX3B0ZV9wcm90KHApICYgRE1BX1BURV9SRUFE KQorI2RlZmluZSBkbWFfcHRlX3dyaXRlKHApIChkbWFfcHRlX3Byb3QocCkgJiBETUFfUFRFX1dS SVRFKQogI2RlZmluZSBkbWFfcHRlX2FkZHIocCkgKChwKS52YWwgJiBQQUREUl9NQVNLICYgUEFH RV9NQVNLXzRLKQogI2RlZmluZSBkbWFfc2V0X3B0ZV9hZGRyKHAsIGFkZHIpIGRvIHtcCiAgICAg ICAgICAgICAocCkudmFsIHw9ICgoYWRkcikgJiBQQUdFX01BU0tfNEspOyB9IHdoaWxlICgwKQpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9t bXUuaAppbmRleCA3MzEzOTU3YzgxLi45YWU4MzIxYmI0IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaApAQCAtOTIsNiArOTIs OCBAQCB2b2lkIGlvbW11X3RlYXJkb3duKHN0cnVjdCBkb21haW4gKmQpOwogaW50IF9fbXVzdF9j aGVjayBpb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbiwgdW5zaWduZWQgaW50IGZsYWdzKTsK IGludCBfX211c3RfY2hlY2sgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5f dCBkZm4pOworaW50IF9fbXVzdF9jaGVjayBpb21tdV9sb29rdXBfcGFnZShzdHJ1Y3QgZG9tYWlu ICpkLCBkZm5fdCBkZm4sIG1mbl90ICptZm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCAqZmxhZ3MpOwogCiBlbnVtIGlvbW11X2ZlYXR1cmUKIHsKQEAg LTE3OSw5ICsxODEsMTcgQEAgc3RydWN0IGlvbW11X29wcyB7CiAjZW5kaWYgLyogSEFTX1BDSSAq LwogCiAgICAgdm9pZCAoKnRlYXJkb3duKShzdHJ1Y3QgZG9tYWluICpkKTsKKworICAgIC8qCisg ICAgICogVGhpcyBibG9jayBvZiBvcGVyYXRpb25zIG11c3QgYmUgYXBwcm9wcmlhdGVseSBsb2Nr ZWQgYWdhaW5zdCBlYWNoCisgICAgICogb3RoZXIgYnkgdGhlIGNhbGxlciBpbiBvcmRlciB0byBo YXZlIG1lYW5pbmdmdWwgcmVzdWx0cy4KKyAgICAgKi8KICAgICBpbnQgX19tdXN0X2NoZWNrICgq bWFwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgbWZuLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKICAgICBpbnQg X19tdXN0X2NoZWNrICgqdW5tYXBfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuKTsK KyAgICBpbnQgX19tdXN0X2NoZWNrICgqbG9va3VwX3BhZ2UpKHN0cnVjdCBkb21haW4gKmQsIGRm bl90IGRmbiwgbWZuX3QgKm1mbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCAqZmxhZ3MpOworCiAgICAgdm9pZCAoKmZyZWVfcGFnZV90YWJsZSkoc3Ry dWN0IHBhZ2VfaW5mbyAqKTsKICNpZmRlZiBDT05GSUdfWDg2CiAgICAgdm9pZCAoKnVwZGF0ZV9p cmVfZnJvbV9hcGljKSh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50IHJlZywgdW5zaWdu ZWQgaW50IHZhbHVlKTsKLS0gCjIuMTEuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz LnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0 aW5mby94ZW4tZGV2ZWw=