From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v11 7/7] vtd: add lookup_page method to iommu_ops Date: Wed, 19 Sep 2018 09:36:02 +0100 Message-ID: <20180919083602.8201-8-paul.durrant@citrix.com> References: <20180919083602.8201-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 1g2XyT-0006kI-AG for xen-devel@lists.xenproject.org; Wed, 19 Sep 2018 08:36:41 +0000 In-Reply-To: <20180919083602.8201-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 MDoKIC0gQWRqdXN0IHRoZSBsb2NraW5nIGNvbW1lbnQuCgp2OToKIC0gQWRkIGNvbW1lbnQgYWJv dXQgbG9ja2luZyBpbiB4ZW4vaW9tbXUuaC4KCnY4OgogLSBSZW1vdmUgY2xlYW4tdXAgYXMgdGhp cyBpcyBub3cgZG9uZSBieSBhIHByaW9yIHBhdGNoLgogLSBNYWtlIGludGVsX2lvbW11X2xvb2t1 cF9wYWdlKCkgcmV0dXJuIGRmbiB2YWx1ZSBpZiB1c2luZyBzaGFyZWQgRVBUCiAgIG9yIGlvbW11 X3Bhc3N0aHJvdWdoIGlzIHNldCwgYXMgcmVxdWVzdGVkIGJ5IEtldmluLgoKdjc6CiAtIFJlLWJh c2UgYW5kIHJlLW5hbWUgQkZOIC0+IERGTi4KIC0gQWRkIG1pc3NpbmcgY2hlY2tzIGZvciBzaGFy ZWQgRVBUIGFuZCBpb21tdV9wYXNzdGhyb3VnaC4KIC0gUmVtb3ZlIHVubmVjZXNzYXJ5IGluaXRp YWxpemVycyBhbmQgdXNlIGFycmF5LXN0eWxlIGRlcmVmZXJlbmNlLgogLSBEcm9wIFdlaSdzIFIt YiBiZWNhdXNlIG9mIGNvZGUgY2h1cm4uCgp2MzoKIC0gQWRkcmVzc2VkIGNvbW1lbnRzIGZyb20g R2VvcmdlLgoKdjI6CiAtIEFkZHJlc3NlZCBzb21lIGNvbW1lbnRzIGZyb20gSmFuLgotLS0KIHhl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAgIHwgMTEgKysrKysrKysrKwogeGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMgfCA0NCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaCB8ICAz ICsrKwogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAgICAgICAgfCAxMCArKysrKysrKysK IDQgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5j CmluZGV4IDI0ZjJhMmE0NjAuLjg1M2ExNDQzOGUgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpA QCAtMzM3LDYgKzMzNywxNyBAQCBpbnQgaW9tbXVfdW5tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpk LCBkZm5fdCBkZm4pCiAgICAgcmV0dXJuIHJjOwogfQogCitpbnQgaW9tbXVfbG9va3VwX3BhZ2Uo c3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCAqbWZuLAorICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCAqZmxhZ3MpCit7CisgICAgY29uc3Qgc3RydWN0IGRvbWFpbl9p b21tdSAqaGQgPSBkb21faW9tbXUoZCk7CisKKyAgICBpZiAoICFpb21tdV9lbmFibGVkIHx8ICFo ZC0+cGxhdGZvcm1fb3BzICkKKyAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOworCisgICAgcmV0 dXJuIGhkLT5wbGF0Zm9ybV9vcHMtPmxvb2t1cF9wYWdlKGQsIGRmbiwgbWZuLCBmbGFncyk7Cit9 CisKIHN0YXRpYyB2b2lkIGlvbW11X2ZyZWVfcGFnZXRhYmxlcyh1bnNpZ25lZCBsb25nIHVudXNl ZCkKIHsKICAgICBkbyB7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCmluZGV4IDBlYWM3 NTVmZjMuLmRlMDU3ZDIyOGEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0x ODM4LDYgKzE4MzgsNDkgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50ZWxfaW9tbXVfdW5t YXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLAogICAgIHJldHVybiBkbWFfcHRlX2NsZWFyX29uZShk LCBkZm5fdG9fZGFkZHIoZGZuKSk7CiB9CiAKK3N0YXRpYyBpbnQgaW50ZWxfaW9tbXVfbG9va3Vw X3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCAqbWZuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsYWdzKQoreworICAgIHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOworICAgIHN0cnVjdCBkbWFfcHRl ICpwYWdlLCB2YWw7CisgICAgdTY0IHBnX21hZGRyOworCisgICAgLyoKKyAgICAgKiBJZiBWVC1k IHNoYXJlcyBFUFQgcGFnZSB0YWJsZSBvciBpZiB0aGUgZG9tYWluIGlzIHRoZSBoYXJkd2FyZQor ICAgICAqIGRvbWFpbiBhbmQgaW9tbXVfcGFzc3Rocm91Z2ggaXMgc2V0IHRoZW4gcGFzcyBiYWNr IHRoZSBkZm4uCisgICAgICovCisgICAgaWYgKCBpb21tdV91c2VfaGFwX3B0KGQpIHx8CisgICAg ICAgICAoaW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGQpKSAp CisgICAgeworICAgICAgICAqbWZuID0gX21mbihkZm5feChkZm4pKTsKKyAgICAgICAgcmV0dXJu IDA7CisgICAgfQorCisgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworCisg ICAgcGdfbWFkZHIgPSBhZGRyX3RvX2RtYV9wYWdlX21hZGRyKGQsIGRmbl90b19kYWRkcihkZm4p LCAwKTsKKyAgICBpZiAoICFwZ19tYWRkciApCisgICAgeworICAgICAgICBzcGluX3VubG9jaygm aGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisgICAgfQor CisgICAgcGFnZSA9IG1hcF92dGRfZG9tYWluX3BhZ2UocGdfbWFkZHIpOworICAgIHZhbCA9IHBh Z2VbZGZuX3goZGZuKSAmIExFVkVMX01BU0tdOworCisgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdl KHBhZ2UpOworICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworCisgICAg aWYgKCAhZG1hX3B0ZV9wcmVzZW50KHZhbCkgKQorICAgICAgICByZXR1cm4gLUVOT0VOVDsKKwor ICAgICptZm4gPSBtYWRkcl90b19tZm4oZG1hX3B0ZV9hZGRyKHZhbCkpOworICAgICpmbGFncyA9 IGRtYV9wdGVfcmVhZCh2YWwpID8gSU9NTVVGX3JlYWRhYmxlIDogMDsKKyAgICAqZmxhZ3MgfD0g ZG1hX3B0ZV93cml0ZSh2YWwpID8gSU9NTVVGX3dyaXRhYmxlIDogMDsKKworICAgIHJldHVybiAw OworfQorCiBpbnQgaW9tbXVfcHRlX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IGRm biwgdWludDY0X3QgKnB0ZSwKICAgICAgICAgICAgICAgICAgICAgaW50IG9yZGVyLCBpbnQgcHJl c2VudCkKIHsKQEAgLTI2NjMsNiArMjcwNiw3IEBAIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgaW50 ZWxfaW9tbXVfb3BzID0gewogICAgIC50ZWFyZG93biA9IGlvbW11X2RvbWFpbl90ZWFyZG93biwK ICAgICAubWFwX3BhZ2UgPSBpbnRlbF9pb21tdV9tYXBfcGFnZSwKICAgICAudW5tYXBfcGFnZSA9 IGludGVsX2lvbW11X3VubWFwX3BhZ2UsCisgICAgLmxvb2t1cF9wYWdlID0gaW50ZWxfaW9tbXVf bG9va3VwX3BhZ2UsCiAgICAgLmZyZWVfcGFnZV90YWJsZSA9IGlvbW11X2ZyZWVfcGFnZV90YWJs ZSwKICAgICAucmVhc3NpZ25fZGV2aWNlID0gcmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcCwKICAg ICAuZ2V0X2RldmljZV9ncm91cF9pZCA9IGludGVsX2lvbW11X2dyb3VwX2lkLApkaWZmIC0tZ2l0 IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmggYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvaW9tbXUuaAppbmRleCA3MmMxYTJlM2NkLi40N2JkZmNiNWVhIDEwMDY0NAot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAorKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaApAQCAtMjcyLDYgKzI3Miw5IEBAIHN0cnVjdCBkbWFf cHRlIHsKICNkZWZpbmUgZG1hX3NldF9wdGVfcHJvdChwLCBwcm90KSBkbyB7IFwKICAgICAgICAg KHApLnZhbCA9ICgocCkudmFsICYgfkRNQV9QVEVfUFJPVCkgfCAoKHByb3QpICYgRE1BX1BURV9Q Uk9UKTsgXAogICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIGRtYV9wdGVfcHJvdChwKSAoKHApLnZh bCAmIERNQV9QVEVfUFJPVCkKKyNkZWZpbmUgZG1hX3B0ZV9yZWFkKHApIChkbWFfcHRlX3Byb3Qo cCkgJiBETUFfUFRFX1JFQUQpCisjZGVmaW5lIGRtYV9wdGVfd3JpdGUocCkgKGRtYV9wdGVfcHJv dChwKSAmIERNQV9QVEVfV1JJVEUpCiAjZGVmaW5lIGRtYV9wdGVfYWRkcihwKSAoKHApLnZhbCAm IFBBRERSX01BU0sgJiBQQUdFX01BU0tfNEspCiAjZGVmaW5lIGRtYV9zZXRfcHRlX2FkZHIocCwg YWRkcikgZG8ge1wKICAgICAgICAgICAgIChwKS52YWwgfD0gKChhZGRyKSAmIFBBR0VfTUFTS180 Syk7IH0gd2hpbGUgKDApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBiL3hl bi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IDczMTM5NTdjODEuLjlhZTgzMjFiYjQgMTAwNjQ0 Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21t dS5oCkBAIC05Miw2ICs5Miw4IEBAIHZvaWQgaW9tbXVfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAq ZCk7CiBpbnQgX19tdXN0X2NoZWNrIGlvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQsIGRm bl90IGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWZuX3QgbWZuLCB1bnNp Z25lZCBpbnQgZmxhZ3MpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcF9wYWdlKHN0cnVj dCBkb21haW4gKmQsIGRmbl90IGRmbik7CitpbnQgX19tdXN0X2NoZWNrIGlvbW11X2xvb2t1cF9w YWdlKHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgKm1mbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncyk7CiAKIGVudW0gaW9t bXVfZmVhdHVyZQogewpAQCAtMTc5LDkgKzE4MSwxNyBAQCBzdHJ1Y3QgaW9tbXVfb3BzIHsKICNl bmRpZiAvKiBIQVNfUENJICovCiAKICAgICB2b2lkICgqdGVhcmRvd24pKHN0cnVjdCBkb21haW4g KmQpOworCisgICAgLyoKKyAgICAgKiBUaGlzIGJsb2NrIG9mIG9wZXJhdGlvbnMgbXVzdCBiZSBh cHByb3ByaWF0ZWx5IGxvY2tlZCBhZ2FpbnN0IGVhY2gKKyAgICAgKiBvdGhlciBieSB0aGUgY2Fs bGVyIGluIG9yZGVyIHRvIGhhdmUgbWVhbmluZ2Z1bCByZXN1bHRzLgorICAgICAqLwogICAgIGlu dCBfX211c3RfY2hlY2sgKCptYXBfcGFnZSkoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBt Zm5fdCBtZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg ZmxhZ3MpOwogICAgIGludCBfX211c3RfY2hlY2sgKCp1bm1hcF9wYWdlKShzdHJ1Y3QgZG9tYWlu ICpkLCBkZm5fdCBkZm4pOworICAgIGludCBfX211c3RfY2hlY2sgKCpsb29rdXBfcGFnZSkoc3Ry dWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCAqbWZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncyk7CisKICAgICB2b2lkICgqZnJl ZV9wYWdlX3RhYmxlKShzdHJ1Y3QgcGFnZV9pbmZvICopOwogI2lmZGVmIENPTkZJR19YODYKICAg ICB2b2lkICgqdXBkYXRlX2lyZV9mcm9tX2FwaWMpKHVuc2lnbmVkIGludCBhcGljLCB1bnNpZ25l ZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgdmFsdWUpOwotLSAKMi4xMS4wCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlz dApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0 Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==