From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v2 07/11] IOMMU/MMU: propagate IOMMU Device-TLB flush error up to iommu_iotlb_flush{, _all} (top level ones). Date: Mon, 18 Apr 2016 22:00:07 +0800 Message-ID: <1460988011-17758-8-git-send-email-quan.xu@intel.com> References: <1460988011-17758-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1460988011-17758-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: dario.faggioli@citrix.com, Jan Beulich , Stefano Stabellini , Julien Grall , Quan Xu List-Id: xen-devel@lists.xenproject.org V2hpbGUgSU9NTVUgRGV2aWNlLVRMQiBmbHVzaCB0aW1lZCBvdXQsIHhlbiBjYWxscyBwYW5pYygp IGF0IHByZXNlbnQuCkhvd2V2ZXIgdGhlIGV4aXN0aW5nIHBhbmljKCkgaXMgZ29pbmcgdG8gYmUg ZWxpbWluYXRlZCwgc28gd2UgbXVzdApwcm9wYWdhdGUgdGhlIElPTU1VIERldmljZS1UTEIgZmx1 c2ggZXJyb3IgdXAgdG8gdGhlIGlvbW11X2lvdGxiX2ZsdXNoeyxfYWxsfS4KCklmIElPTU1VIG1h cHBpbmcgYW5kIHVubWFwcGluZyBmYWlsZWQsIHRoZSBkb21haW4gKHdpdGggdGhlIGV4Y2VwdGlv biBvZgp0aGUgaGFyZHdhcmUgZG9tYWluKSBpcyBjcmFzaGVkLCB0cmVhdGVkIGFzIGEgZmF0YWwg ZXJyb3IuIFJvbGxiYWNrIGNhbgpiZSBsaWdodGVyIHdlaWdodC4KClRoaXMgcGF0Y2ggZml4ZXMg dGhlIHRvcCBsZXZlbCBvbmVzICh0aGlzIHBhdGNoIGRvZXNuJ3QgZml4IHRoZSBsZWFmCm9uZXMg YnV0IHRoZSBuZXh0IHBhdGNoIGRvZXMpLgoKU2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVhbi54 dUBpbnRlbC5jb20+CgpDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlA Y2l0cml4LmNvbT4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+CkNDOiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAg ICAgICAgICAgICAgICAgfCAgNSArKysrLQogeGVuL2NvbW1vbi9tZW1vcnkuYyAgICAgICAgICAg ICAgICAgfCAgNSArKystLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYyAgICAgfCAx MiArKysrKysrKy0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jIHwgIDUg KysrLS0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAgICAgICAgIHwgIDQgKystLQogNSBm aWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vcDJtLmMgYi94ZW4vYXJjaC9hcm0vcDJtLmMKaW5kZXggYTJhOWM0 Yi4uMTFkMmMwMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3AybS5jCisrKyBiL3hlbi9hcmNo L2FybS9wMm0uYwpAQCAtMTE3Nyw3ICsxMTc3LDEwIEBAIG91dDoKICAgICBpZiAoIGZsdXNoICkK ICAgICB7CiAgICAgICAgIGZsdXNoX3RsYl9kb21haW4oZCk7Ci0gICAgICAgIGlvbW11X2lvdGxi X2ZsdXNoKGQsIHNnZm4sIGVnZm4gLSBzZ2ZuKTsKKyAgICAgICAgcmV0ID0gaW9tbXVfaW90bGJf Zmx1c2goZCwgc2dmbiwgZWdmbiAtIHNnZm4pOworCisgICAgICAgIGlmICggcmV0ICkKKyAgICAg ICAgICAgIHJjID0gcmV0OwogICAgIH0KIAogICAgIHdoaWxlICggKHBnID0gcGFnZV9saXN0X3Jl bW92ZV9oZWFkKCZmcmVlX3BhZ2VzKSkgKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9tZW1vcnku YyBiL3hlbi9jb21tb24vbWVtb3J5LmMKaW5kZXggYzdmY2E5Ni4uOTY1YmQ1MSAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi9tZW1vcnkuYworKysgYi94ZW4vY29tbW9uL21lbW9yeS5jCkBAIC02Nzgs OCArNjc4LDkgQEAgc3RhdGljIGludCB4ZW5tZW1fYWRkX3RvX3BoeXNtYXAoc3RydWN0IGRvbWFp biAqZCwKICAgICBpZiAoIG5lZWRfaW9tbXUoZCkgKQogICAgIHsKICAgICAgICAgdGhpc19jcHUo aW9tbXVfZG9udF9mbHVzaF9pb3RsYikgPSAwOwotICAgICAgICBpb21tdV9pb3RsYl9mbHVzaChk LCB4YXRwLT5pZHggLSBkb25lLCBkb25lKTsKLSAgICAgICAgaW9tbXVfaW90bGJfZmx1c2goZCwg eGF0cC0+Z3BmbiAtIGRvbmUsIGRvbmUpOworICAgICAgICByYyA9IGlvbW11X2lvdGxiX2ZsdXNo KGQsIHhhdHAtPmlkeCAtIGRvbmUsIGRvbmUpOworICAgICAgICBpZiAoICFyYyApCisgICAgICAg ICAgICByYyA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIHhhdHAtPmdwZm4gLSBkb25lLCBkb25lKTsK ICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9t bXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKaW5kZXggYzM1MTIwOS4uOTI1 NDc2MCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCkBAIC0zMDEsMjQgKzMwMSwyOCBAQCBzdGF0 aWMgdm9pZCBpb21tdV9mcmVlX3BhZ2V0YWJsZXModW5zaWduZWQgbG9uZyB1bnVzZWQpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY3B1bWFza19jeWNsZShzbXBfcHJvY2Vzc29yX2lkKCks ICZjcHVfb25saW5lX21hcCkpOwogfQogCi12b2lkIGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBk b21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCkKK2lu dCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwg dW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgc3RydWN0IGh2bV9pb21tdSAqaGQgPSBk b21haW5faHZtX2lvbW11KGQpOwogCiAgICAgaWYgKCAhaW9tbXVfZW5hYmxlZCB8fCAhaGQtPnBs YXRmb3JtX29wcyB8fCAhaGQtPnBsYXRmb3JtX29wcy0+aW90bGJfZmx1c2ggKQotICAgICAgICBy ZXR1cm47CisgICAgICAgIHJldHVybiAwOwogCiAgICAgaGQtPnBsYXRmb3JtX29wcy0+aW90bGJf Zmx1c2goZCwgZ2ZuLCBwYWdlX2NvdW50KTsKKworICAgIHJldHVybiAwOwogfQogCi12b2lkIGlv bW11X2lvdGxiX2ZsdXNoX2FsbChzdHJ1Y3QgZG9tYWluICpkKQoraW50IGlvbW11X2lvdGxiX2Zs dXNoX2FsbChzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0cnVjdCBodm1faW9tbXUgKmhkID0g ZG9tYWluX2h2bV9pb21tdShkKTsKIAogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhkLT5w bGF0Zm9ybV9vcHMgfHwgIWhkLT5wbGF0Zm9ybV9vcHMtPmlvdGxiX2ZsdXNoX2FsbCApCi0gICAg ICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBoZC0+cGxhdGZvcm1fb3BzLT5p b3RsYl9mbHVzaF9hbGwoZCk7CisKKyAgICByZXR1cm4gMDsKIH0KIAogaW50IF9faW5pdCBpb21t dV9zZXR1cCh2b2lkKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lv bW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwppbmRleCA4Y2JiNjU1 Li5jMmMxZWUzIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpAQCAtMTA0LDggKzEw NCw5IEBAIGludCBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUoc3RydWN0IGRvbWFpbiAq ZCkKICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7CiAKICAgICBpZiAo ICFyYyApCi0gICAgICAgIGlvbW11X2lvdGxiX2ZsdXNoX2FsbChkKTsKLSAgICBlbHNlIGlmICgg cmMgIT0gLUVSRVNUQVJUICkKKyAgICAgICAgcmMgPSBpb21tdV9pb3RsYl9mbHVzaF9hbGwoZCk7 CisKKyAgICBpZiAoIHJjICYmIHJjICE9IC1FUkVTVEFSVCApCiAgICAgICAgIGlvbW11X3RlYXJk b3duKGQpOwogCiAgICAgcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL2lv bW11LmggYi94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAppbmRleCA4MjE3Y2I3Li5mZjQ2MDhkIDEw MDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4v aW9tbXUuaApAQCAtMTgyLDggKzE4Miw4IEBAIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0cnVj dCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiBpbnQgaW9tbXVfZG9fZG9tY3RsKHN0 cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgICAg IFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSk7CiAKLXZvaWQgaW9tbXVfaW90 bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGlu dCBwYWdlX2NvdW50KTsKLXZvaWQgaW9tbXVfaW90bGJfZmx1c2hfYWxsKHN0cnVjdCBkb21haW4g KmQpOworaW50IGlvbW11X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxv bmcgZ2ZuLCB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCk7CitpbnQgaW9tbXVfaW90bGJfZmx1c2hf YWxsKHN0cnVjdCBkb21haW4gKmQpOwogCiAvKgogICogVGhlIHB1cnBvc2Ugb2YgdGhlIGlvbW11 X2RvbnRfZmx1c2hfaW90bGIgb3B0aW9uYWwgY3B1IGZsYWcgaXMgdG8KLS0gCjEuOS4xCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK