From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v7 6/6] vtd: add lookup_page method to iommu_ops Date: Thu, 13 Sep 2018 11:31:51 +0100 Message-ID: <20180913103153.33377-7-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 1g0Oul-0007eE-HX for xen-devel@lists.xenproject.org; Thu, 13 Sep 2018 10:31:59 +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 Y2FsbCB0aGUgaW1wbGVtZW50YXRpb24gaWYgaXQgZXhpc3RzLgoKVGhpcyBwYXRjaCBhbHNvIGNs ZWFucyB1cCB0aGUgaW5pdGlhbGl6ZXJzIGluIGludGVsX2lvbW11X21hcF9wYWdlKCkgYW5kCnVz ZXMgYXJyYXktc3R5bGUgZGVyZWZlcmVuY2UgdGhlcmUsIGZvciBjb25zaXN0ZW5jeS4gQSBtaXNz aW5nIGNoZWNrIGZvcgpzaGFyZWQgRVBUIGlzIGFsc28gYWRkZWQgdG8gaW50ZWxfaW9tbXVfdW5t YXBfcGFnZSgpLgoKTk9URTogVGhpcyBwYXRjaCBvbmx5IGFkZHMgYSBYZW4taW50ZXJuYWwgaW50 ZXJmYWNlLiBUaGlzIHdpbGwgYmUgdXNlZCBieQogICAgICBhIHN1YnNlcXVlbnQgcGF0Y2guCiAg ICAgIEFub3RoZXIgc3Vic2VxdWVudCBwYXRjaCB3aWxsIGFkZCBzaW1pbGFyIGZ1bmN0aW9uYWxp dHkgZm9yIEFNRAogICAgICBJT01NVXMuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5j b20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ2M6IEphbiBCZXVsaWNo IDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0 cml4LmNvbT4KCnY3OgogLSBSZS1iYXNlIGFuZCByZS1uYW1lIEJGTiAtPiBERk4uCiAtIEFkZCBt aXNzaW5nIGNoZWNrcyBmb3Igc2hhcmVkIEVQVCBhbmQgaW9tbXVfcGFzc3Rocm91Z2guCiAtIFJl bW92ZSB1bm5lY2Vzc2FyeSBpbml0aWFsaXplcnMgYW5kIHVzZSBhcnJheS1zdHlsZSBkZXJlZmVy ZW5jZS4KIC0gRHJvcCBXZWkncyBSLWIgYmVjYXVzZSBvZiBjb2RlIGNodXJuLgoKdjM6CiAtIEFk ZHJlc3NlZCBjb21tZW50cyBmcm9tIEdlb3JnZS4KCnYyOgogLSBBZGRyZXNzZWQgc29tZSBjb21t ZW50cyBmcm9tIEphbi4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jICAgICB8 IDExICsrKysrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyB8IDUyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5oIHwgIDMgKysrCiB4ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCAgICAgICAg ICAgICB8ICA0ICsrKwogNCBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IGExNmYxYTBjNjYuLjUyZTNmNTAw YzcgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMjk2LDYgKzI5NiwxNyBAQCBpbnQgaW9t bXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4pCiAgICAgcmV0dXJuIHJj OwogfQogCitpbnQgaW9tbXVfbG9va3VwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZu LCBtZm5fdCAqbWZuLAorICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZmxhZ3Mp Cit7CisgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CisK KyAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFoZC0+cGxhdGZvcm1fb3BzICkKKyAgICAgICAg cmV0dXJuIC1FT1BOT1RTVVBQOworCisgICAgcmV0dXJuIGhkLT5wbGF0Zm9ybV9vcHMtPmxvb2t1 cF9wYWdlKGQsIGRmbiwgbWZuLCBmbGFncyk7Cit9CisKIHN0YXRpYyB2b2lkIGlvbW11X2ZyZWVf cGFnZXRhYmxlcyh1bnNpZ25lZCBsb25nIHVudXNlZCkKIHsKICAgICBkbyB7CmRpZmYgLS1naXQg YS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCmluZGV4IDAxNjNiYjk0OWIuLjY2MjJjMmRkNGMgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xNzcwLDcgKzE3NzAsNyBAQCBzdGF0aWMgaW50 IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZs YWdzKQogewogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwotICAg IHN0cnVjdCBkbWFfcHRlICpwYWdlID0gTlVMTCwgKnB0ZSA9IE5VTEwsIG9sZCwgbmV3ID0geyAw IH07CisgICAgc3RydWN0IGRtYV9wdGUgKnBhZ2UsICpwdGUsIG9sZCwgbmV3ID0ge307CiAgICAg dTY0IHBnX21hZGRyOwogICAgIGludCByYyA9IDA7CiAKQEAgLTE3OTAsOSArMTc5MCwxMSBAQCBz dGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWlu ICpkLAogICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICAg ICAgcmV0dXJuIC1FTk9NRU07CiAgICAgfQorCiAgICAgcGFnZSA9IChzdHJ1Y3QgZG1hX3B0ZSAq KW1hcF92dGRfZG9tYWluX3BhZ2UocGdfbWFkZHIpOwotICAgIHB0ZSA9IHBhZ2UgKyAoZGZuX3go ZGZuKSAmIExFVkVMX01BU0spOworICAgIHB0ZSA9ICZwYWdlW2Rmbl94KGRmbikgJiBMRVZFTF9N QVNLXTsKICAgICBvbGQgPSAqcHRlOworCiAgICAgZG1hX3NldF9wdGVfYWRkcihuZXcsIG1mbl90 b19tYWRkcihtZm4pKTsKICAgICBkbWFfc2V0X3B0ZV9wcm90KG5ldywKICAgICAgICAgICAgICAg ICAgICAgICgoZmxhZ3MgJiBJT01NVUZfcmVhZGFibGUpID8gRE1BX1BURV9SRUFEICA6IDApIHwK QEAgLTE4MDgsNiArMTgxMCw3IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludGVsX2lvbW11 X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFn ZShwYWdlKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQorCiAgICAgKnB0ZSA9IG5ldzsKIAog ICAgIGlvbW11X2ZsdXNoX2NhY2hlX2VudHJ5KHB0ZSwgc2l6ZW9mKHN0cnVjdCBkbWFfcHRlKSk7 CkBAIC0xODIzLDYgKzE4MjYsMTAgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9t bXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGlu dGVsX2lvbW11X3VubWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZuX3QgZGZuKQogeworICAgIC8qIERvIG5v dGhpbmcgaWYgVlQtZCBzaGFyZXMgRVBUIHBhZ2UgdGFibGUgKi8KKyAgICBpZiAoIGlvbW11X3Vz ZV9oYXBfcHQoZCkgKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIC8qIERvIG5vdGhpbmcgaWYg aGFyZHdhcmUgZG9tYWluIGFuZCBpb21tdSBzdXBwb3J0cyBwYXNzIHRocnUuICovCiAgICAgaWYg KCBpb21tdV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZCkgKQogICAgICAgICBy ZXR1cm4gMDsKQEAgLTE4MzAsNiArMTgzNyw0NiBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBp bnRlbF9pb21tdV91bm1hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsCiAgICAgcmV0dXJuIGRtYV9w dGVfY2xlYXJfb25lKGQsIGRmbl90b19kYWRkcihkZm4pKTsKIH0KIAorc3RhdGljIGludCBpbnRl bF9pb21tdV9sb29rdXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90ICpt Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZmxh Z3MpCit7CisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZCk7CisgICAg c3RydWN0IGRtYV9wdGUgKnBhZ2UsIHZhbDsKKyAgICB1NjQgcGdfbWFkZHI7CisKKyAgICAvKiBG YWlsIGlmIFZULWQgc2hhcmVzIEVQVCBwYWdlIHRhYmxlICovCisgICAgaWYgKCBpb21tdV91c2Vf aGFwX3B0KGQpICkKKyAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisKKyAgICAvKiBGYWlsIGlmIGhh cmR3YXJlIGRvbWFpbiBhbmQgaW9tbXUgc3VwcG9ydHMgcGFzcyB0aHJ1LiAqLworICAgIGlmICgg aW9tbXVfcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKKyAgICAgICAgcmV0 dXJuIC1FTk9FTlQ7CisKKyAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisK KyAgICBwZ19tYWRkciA9IGFkZHJfdG9fZG1hX3BhZ2VfbWFkZHIoZCwgZGZuX3RvX2RhZGRyKGRm biksIDApOworICAgIGlmICggcGdfbWFkZHIgPT0gMCApCisgICAgeworICAgICAgICBzcGluX3Vu bG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07Cisg ICAgfQorCisgICAgcGFnZSA9IG1hcF92dGRfZG9tYWluX3BhZ2UocGdfbWFkZHIpOworICAgIHZh bCA9IHBhZ2VbZGZuX3goZGZuKSAmIExFVkVMX01BU0tdOworCisgICAgdW5tYXBfdnRkX2RvbWFp bl9wYWdlKHBhZ2UpOworICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwor CisgICAgaWYgKCAhZG1hX3B0ZV9wcmVzZW50KHZhbCkgKQorICAgICAgICByZXR1cm4gLUVOT0VO VDsKKworICAgICptZm4gPSBtYWRkcl90b19tZm4oZG1hX3B0ZV9hZGRyKHZhbCkpOworICAgICpm bGFncyA9IGRtYV9wdGVfcmVhZCh2YWwpID8gSU9NTVVGX3JlYWRhYmxlIDogMDsKKyAgICAqZmxh Z3MgfD0gZG1hX3B0ZV93cml0ZSh2YWwpID8gSU9NTVVGX3dyaXRhYmxlIDogMDsKKworICAgIHJl dHVybiAwOworfQorCiBpbnQgaW9tbXVfcHRlX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2 NF90IGRmbiwgdWludDY0X3QgKnB0ZSwKICAgICAgICAgICAgICAgICAgICAgaW50IG9yZGVyLCBp bnQgcHJlc2VudCkKIHsKQEAgLTI2NTUsNiArMjcwMiw3IEBAIGNvbnN0IHN0cnVjdCBpb21tdV9v cHMgaW50ZWxfaW9tbXVfb3BzID0gewogICAgIC50ZWFyZG93biA9IGlvbW11X2RvbWFpbl90ZWFy ZG93biwKICAgICAubWFwX3BhZ2UgPSBpbnRlbF9pb21tdV9tYXBfcGFnZSwKICAgICAudW5tYXBf cGFnZSA9IGludGVsX2lvbW11X3VubWFwX3BhZ2UsCisgICAgLmxvb2t1cF9wYWdlID0gaW50ZWxf aW9tbXVfbG9va3VwX3BhZ2UsCiAgICAgLmZyZWVfcGFnZV90YWJsZSA9IGlvbW11X2ZyZWVfcGFn ZV90YWJsZSwKICAgICAucmVhc3NpZ25fZGV2aWNlID0gcmVhc3NpZ25fZGV2aWNlX293bmVyc2hp cCwKICAgICAuZ2V0X2RldmljZV9ncm91cF9pZCA9IGludGVsX2lvbW11X2dyb3VwX2lkLApkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmggYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAppbmRleCA3MmMxYTJlM2NkLi40N2JkZmNiNWVhIDEw MDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAorKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaApAQCAtMjcyLDYgKzI3Miw5IEBAIHN0cnVj dCBkbWFfcHRlIHsKICNkZWZpbmUgZG1hX3NldF9wdGVfcHJvdChwLCBwcm90KSBkbyB7IFwKICAg ICAgICAgKHApLnZhbCA9ICgocCkudmFsICYgfkRNQV9QVEVfUFJPVCkgfCAoKHByb3QpICYgRE1B X1BURV9QUk9UKTsgXAogICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGRtYV9wdGVfcHJvdChwKSAo KHApLnZhbCAmIERNQV9QVEVfUFJPVCkKKyNkZWZpbmUgZG1hX3B0ZV9yZWFkKHApIChkbWFfcHRl X3Byb3QocCkgJiBETUFfUFRFX1JFQUQpCisjZGVmaW5lIGRtYV9wdGVfd3JpdGUocCkgKGRtYV9w dGVfcHJvdChwKSAmIERNQV9QVEVfV1JJVEUpCiAjZGVmaW5lIGRtYV9wdGVfYWRkcihwKSAoKHAp LnZhbCAmIFBBRERSX01BU0sgJiBQQUdFX01BU0tfNEspCiAjZGVmaW5lIGRtYV9zZXRfcHRlX2Fk ZHIocCwgYWRkcikgZG8ge1wKICAgICAgICAgICAgIChwKS52YWwgfD0gKChhZGRyKSAmIFBBR0Vf TUFTS180Syk7IH0gd2hpbGUgKDApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUu aCBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IDllMGI0ZTg2MzguLmJlYmRkYzJkYjQg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hl bi9pb21tdS5oCkBAIC0xMDAsNiArMTAwLDggQEAgdm9pZCBpb21tdV90ZWFyZG93bihzdHJ1Y3Qg ZG9tYWluICpkKTsKIGludCBfX211c3RfY2hlY2sgaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgZGZuX3QgZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBt Zm4sIHVuc2lnbmVkIGludCBmbGFncyk7CiBpbnQgX19tdXN0X2NoZWNrIGlvbW11X3VubWFwX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuKTsKK2ludCBfX211c3RfY2hlY2sgaW9tbXVf bG9va3VwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCAqbWZuLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKTsKIAog ZW51bSBpb21tdV9mZWF0dXJlCiB7CkBAIC0xOTAsNiArMTkyLDggQEAgc3RydWN0IGlvbW11X29w cyB7CiAgICAgaW50IF9fbXVzdF9jaGVjayAoKm1hcF9wYWdlKShzdHJ1Y3QgZG9tYWluICpkLCBk Zm5fdCBkZm4sIG1mbl90IG1mbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBmbGFncyk7CiAgICAgaW50IF9fbXVzdF9jaGVjayAoKnVubWFwX3BhZ2UpKHN0 cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbik7CisgICAgaW50IF9fbXVzdF9jaGVjayAoKmxvb2t1 cF9wYWdlKShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90ICptZm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKTsKICAgICB2 b2lkICgqZnJlZV9wYWdlX3RhYmxlKShzdHJ1Y3QgcGFnZV9pbmZvICopOwogI2lmZGVmIENPTkZJ R19YODYKICAgICB2b2lkICgqdXBkYXRlX2lyZV9mcm9tX2FwaWMpKHVuc2lnbmVkIGludCBhcGlj LCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpOwotLSAKMi4xMS4wCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==