From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v6 1/5] IOMMU/MMU: Adjust top level functions for VT-d Device-TLB flush error Date: Wed, 2 Mar 2016 22:31:25 +0800 Message-ID: <1456929089-17414-2-git-send-email-quan.xu@intel.com> References: <1456929089-17414-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: <1456929089-17414-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: jbeulich@suse.com, kevin.tian@intel.com Cc: feng.wu@intel.com, ian.campbell@citrix.com, george.dunlap@eu.citrix.com, andrew.cooper3@citrix.com, dario.faggioli@citrix.com, tim@xen.org, xen-devel@lists.xen.org, stefano.stabellini@citrix.com, Aravind.Gopalakrishnan@amd.com, jun.nakajima@intel.com, jinsong.liu@alibaba-inc.com, Quan Xu , keir@xen.org, suravee.suthikulpanit@amd.com List-Id: xen-devel@lists.xenproject.org U2lnbmVkLW9mZi1ieTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+Ci0tLQogeGVuL2FyY2gv eDg2L2FjcGkvcG93ZXIuYyAgICAgICAgICAgICB8IDE0ICsrKysrKysrKysrKystCiB4ZW4vYXJj aC94ODYvbW0uYyAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysrKystLS0tLQogeGVuL2Fy Y2gveDg2L21tL3AybS1lcHQuYyAgICAgICAgICAgICB8IDEwICsrKysrKysrKy0KIHhlbi9hcmNo L3g4Ni9tbS9wMm0tcHQuYyAgICAgICAgICAgICAgfCAxMiArKysrKysrKysrLS0KIHhlbi9jb21t b24vZ3JhbnRfdGFibGUuYyAgICAgICAgICAgICAgfCAgNSArKystLQogeGVuL2NvbW1vbi9tZW1v cnkuYyAgICAgICAgICAgICAgICAgICB8ICA1ICsrKy0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9pb21tdS5jICAgICAgIHwgMTYgKysrKysrKysrKystLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3g4Ni92dGQuYyB8ICA3ICsrKysrLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3g4Ni9pb21tdS5jICAgfCAgNiArKysrKy0KIHhlbi9pbmNsdWRlL3hlbi9pb21tdS5oICAgICAg ICAgICAgICAgfCAgNiArKystLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDcwIGluc2VydGlvbnMoKyks IDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMg Yi94ZW4vYXJjaC94ODYvYWNwaS9wb3dlci5jCmluZGV4IGY0MWYwZGUuLmVkMTE3M2MgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9hY3BpL3Bvd2VyLmMKKysrIGIveGVuL2FyY2gveDg2L2FjcGkv cG93ZXIuYwpAQCAtNDUsNiArNDUsOCBAQCB2b2lkIGRvX3N1c3BlbmRfbG93bGV2ZWwodm9pZCk7 CiAKIHN0YXRpYyBpbnQgZGV2aWNlX3Bvd2VyX2Rvd24odm9pZCkKIHsKKyAgICBpbnQgZXJyOwor CiAgICAgY29uc29sZV9zdXNwZW5kKCk7CiAKICAgICB0aW1lX3N1c3BlbmQoKTsKQEAgLTUzLDEx ICs1NSwyMSBAQCBzdGF0aWMgaW50IGRldmljZV9wb3dlcl9kb3duKHZvaWQpCiAKICAgICBpb2Fw aWNfc3VzcGVuZCgpOwogCi0gICAgaW9tbXVfc3VzcGVuZCgpOworICAgIGVyciA9IGlvbW11X3N1 c3BlbmQoKTsKKyAgICBpZiAoIGVyciApCisgICAgICAgIGdvdG8gaW9tbXVfc3VzcGVuZF9lcnJv cjsKIAogICAgIGxhcGljX3N1c3BlbmQoKTsKIAogICAgIHJldHVybiAwOworCitpb21tdV9zdXNw ZW5kX2Vycm9yOgorICAgIGlvYXBpY19yZXN1bWUoKTsKKyAgICBpODI1OUFfcmVzdW1lKCk7Cisg ICAgdGltZV9yZXN1bWUoKTsKKyAgICBjb25zb2xlX3Jlc3VtZSgpOworCisgICAgcmV0dXJuIGVy cjsKIH0KIAogc3RhdGljIHZvaWQgZGV2aWNlX3Bvd2VyX3VwKHZvaWQpCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jCmluZGV4IDIwMmZmNzYuLjU0ZDhm Y2UgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5j CkBAIC0yMzMyLDcgKzIzMzIsNyBAQCBzdGF0aWMgaW50IF9fZ2V0X3BhZ2VfdHlwZShzdHJ1Y3Qg cGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbnQgcHJlZW1wdGlibGUpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBueCwgeCwgeSA9 IHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvOwotICAgIGludCByYyA9IDA7CisgICAgaW50IHJjID0g MCwgcmV0ID0gMDsKIAogICAgIEFTU0VSVCghKHR5cGUgJiB+KFBHVF90eXBlX21hc2sgfCBQR1Rf cGFlX3hlbl9sMikpKTsKIApAQCAtMjQ0MywxMSArMjQ0MywxMSBAQCBzdGF0aWMgaW50IF9fZ2V0 X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsCiAg ICAgICAgIGlmICggZCAmJiBpc19wdl9kb21haW4oZCkgJiYgdW5saWtlbHkobmVlZF9pb21tdShk KSkgKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoICh4ICYgUEdUX3R5cGVfbWFzaykgPT0g UEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlvbW11X3VubWFwX3BhZ2UoZCwg bWZuX3RvX2dtZm4oZCwgcGFnZV90b19tZm4ocGFnZSkpKTsKKyAgICAgICAgICAgICAgICByZXQg PSBpb21tdV91bm1hcF9wYWdlKGQsIG1mbl90b19nbWZuKGQsIHBhZ2VfdG9fbWZuKHBhZ2UpKSk7 CiAgICAgICAgICAgICBlbHNlIGlmICggdHlwZSA9PSBQR1Rfd3JpdGFibGVfcGFnZSApCi0gICAg ICAgICAgICAgICAgaW9tbXVfbWFwX3BhZ2UoZCwgbWZuX3RvX2dtZm4oZCwgcGFnZV90b19tZm4o cGFnZSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWZuKHBhZ2Up LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZf d3JpdGFibGUpOworICAgICAgICAgICAgICAgIHJldCA9IGlvbW11X21hcF9wYWdlKGQsIG1mbl90 b19nbWZuKGQsIHBhZ2VfdG9fbWZuKHBhZ2UpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwYWdlX3RvX21mbihwYWdlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJT01NVUZfcmVhZGFibGV8SU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgfQog ICAgIH0KIApAQCAtMjQ2NCw2ICsyNDY0LDkgQEAgc3RhdGljIGludCBfX2dldF9wYWdlX3R5cGUo c3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLAogICAgIGlmICggKHgg JiBQR1RfcGFydGlhbCkgJiYgIShueCAmIFBHVF9wYXJ0aWFsKSApCiAgICAgICAgIHB1dF9wYWdl KHBhZ2UpOwogCisgICAgaWYgKCAhcmMgKQorICAgICAgICByYyA9IHJldDsKKwogICAgIHJldHVy biByYzsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyBiL3hlbi9h cmNoL3g4Ni9tbS9wMm0tZXB0LmMKaW5kZXggOTg2MGM2Yy4uZDMxYjlhZiAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L21tL3AybS1lcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5j CkBAIC04MzQsNyArODM0LDE1IEBAIG91dDoKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCBp b21tdV9mbGFncyApCiAgICAgICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMSA8PCBvcmRl cik7IGkrKyApCi0gICAgICAgICAgICAgICAgICAgIGlvbW11X21hcF9wYWdlKGQsIGdmbiArIGks IG1mbl94KG1mbikgKyBpLCBpb21tdV9mbGFncyk7CisgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKGQsIGdmbiArIGksIG1mbl94KG1mbikg KyBpLCBpb21tdV9mbGFncyk7CisgICAgICAgICAgICAgICAgICAgIGlmICggcmMgKQorICAgICAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGktLSA+IDAg KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvbW11X3VubWFwX3BhZ2UoZCwgZ2ZuICsg aSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBm b3IgKCBpID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKICAgICAgICAgICAgICAgICAgICAg aW9tbXVfdW5tYXBfcGFnZShkLCBnZm4gKyBpKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9t bS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYwppbmRleCA3MDk5MjBhLi42OTBm ZmZjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gv eDg2L21tL3AybS1wdC5jCkBAIC02NzUsOCArNjc1LDE2IEBAIHAybV9wdF9zZXRfZW50cnkoc3Ry dWN0IHAybV9kb21haW4gKnAybSwgdW5zaWduZWQgbG9uZyBnZm4sIG1mbl90IG1mbiwKICAgICAg ICAgfQogICAgICAgICBlbHNlIGlmICggaW9tbXVfcHRlX2ZsYWdzICkKICAgICAgICAgICAgIGZv ciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgaSsrICkKLSAgICAgICAgICAgICAg ICBpb21tdV9tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSwgbWZuX3gobWZuKSArIGksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW9tbXVfcHRlX2ZsYWdzKTsKKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcF9wYWdlKHAybS0+ZG9tYWluLCBn Zm4gKyBpLCBtZm5feChtZm4pICsgaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlvbW11X3B0ZV9mbGFncyk7CisgICAgICAgICAgICAgICAgaWYgKCByYyApCisgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICB3aGlsZSAoIGktLSA+IDAgKQorICAgICAg ICAgICAgICAgICAgICAgICAgaW9tbXVfdW5tYXBfcGFnZShwMm0tPmRvbWFpbiwgZ2ZuICsgaSk7 CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICAgZm9yICggaSA9IDA7IGkgPCAoMVVMIDw8 IHBhZ2Vfb3JkZXIpOyBpKysgKQogICAgICAgICAgICAgICAgIGlvbW11X3VubWFwX3BhZ2UocDJt LT5kb21haW4sIGdmbiArIGkpOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5j IGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4IDJiNDQ5ZDUuLmY3ZGQ3MzEgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3Rh YmxlLmMKQEAgLTkxOSw4ICs5MTksOSBAQCBfX2dudHRhYl9tYXBfZ3JhbnRfcmVmKAogICAgICAg ICAgICAgewogICAgICAgICAgICAgICAgIG5yX2dldHMrKzsKICAgICAgICAgICAgICAgICAodm9p ZClnZXRfcGFnZShwZywgcmQpOwotICAgICAgICAgICAgICAgIGlmICggIShvcC0+ZmxhZ3MgJiBH TlRNQVBfcmVhZG9ubHkpICkKLSAgICAgICAgICAgICAgICAgICAgZ2V0X3BhZ2VfdHlwZShwZywg UEdUX3dyaXRhYmxlX3BhZ2UpOworICAgICAgICAgICAgICAgIGlmICggIShvcC0+ZmxhZ3MgJiBH TlRNQVBfcmVhZG9ubHkpICYmCisgICAgICAgICAgICAgICAgICAgICAhZ2V0X3BhZ2VfdHlwZShw ZywgUEdUX3dyaXRhYmxlX3BhZ2UpICkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gY291 bGRfbm90X3BpbjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vbWVtb3J5LmMgYi94ZW4vY29tbW9uL21lbW9yeS5jCmluZGV4IGI1NDFmNGEx Li5jMjI4ZDlmIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL21lbW9yeS5jCisrKyBiL3hlbi9jb21t b24vbWVtb3J5LmMKQEAgLTYzMSw4ICs2MzEsOSBAQCBzdGF0aWMgaW50IHhlbm1lbV9hZGRfdG9f cGh5c21hcChzdHJ1Y3QgZG9tYWluICpkLAogICAgIGlmICggbmVlZF9pb21tdShkKSApCiAgICAg ewogICAgICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9IDA7Ci0gICAgICAg IGlvbW11X2lvdGxiX2ZsdXNoKGQsIHhhdHAtPmlkeCAtIGRvbmUsIGRvbmUpOwotICAgICAgICBp b21tdV9pb3RsYl9mbHVzaChkLCB4YXRwLT5ncGZuIC0gZG9uZSwgZG9uZSk7CisgICAgICAgIHJj ID0gaW9tbXVfaW90bGJfZmx1c2goZCwgeGF0cC0+aWR4IC0gZG9uZSwgZG9uZSk7CisgICAgICAg IGlmICggIXJjICkKKyAgICAgICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1c2goZCwgeGF0cC0+ Z3BmbiAtIGRvbmUsIGRvbmUpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9pb21tdS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUu YwppbmRleCBkNTEzNzczMy4uZGFmZjAwYyAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCkBAIC0y NjYsMjQgKzI2NiwyOCBAQCBzdGF0aWMgdm9pZCBpb21tdV9mcmVlX3BhZ2V0YWJsZXModW5zaWdu ZWQgbG9uZyB1bnVzZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1bWFza19jeWNs ZShzbXBfcHJvY2Vzc29yX2lkKCksICZjcHVfb25saW5lX21hcCkpOwogfQogCi12b2lkIGlvbW11 X2lvdGxiX2ZsdXNoKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGxvbmcgZ2ZuLCB1bnNpZ25l ZCBpbnQgcGFnZV9jb3VudCkKK2ludCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpk LCB1bnNpZ25lZCBsb25nIGdmbiwgdW5zaWduZWQgaW50IHBhZ2VfY291bnQpCiB7CiAgICAgc3Ry dWN0IGh2bV9pb21tdSAqaGQgPSBkb21haW5faHZtX2lvbW11KGQpOwogCiAgICAgaWYgKCAhaW9t bXVfZW5hYmxlZCB8fCAhaGQtPnBsYXRmb3JtX29wcyB8fCAhaGQtPnBsYXRmb3JtX29wcy0+aW90 bGJfZmx1c2ggKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiAwOwogCiAgICAgaGQt PnBsYXRmb3JtX29wcy0+aW90bGJfZmx1c2goZCwgZ2ZuLCBwYWdlX2NvdW50KTsKKworICAgIHJl dHVybiAwOwogfQogCi12b2lkIGlvbW11X2lvdGxiX2ZsdXNoX2FsbChzdHJ1Y3QgZG9tYWluICpk KQoraW50IGlvbW11X2lvdGxiX2ZsdXNoX2FsbChzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0 cnVjdCBodm1faW9tbXUgKmhkID0gZG9tYWluX2h2bV9pb21tdShkKTsKIAogICAgIGlmICggIWlv bW11X2VuYWJsZWQgfHwgIWhkLT5wbGF0Zm9ybV9vcHMgfHwgIWhkLT5wbGF0Zm9ybV9vcHMtPmlv dGxiX2ZsdXNoX2FsbCApCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAg ICBoZC0+cGxhdGZvcm1fb3BzLT5pb3RsYl9mbHVzaF9hbGwoZCk7CisKKyAgICByZXR1cm4gMDsK IH0KIAogaW50IF9faW5pdCBpb21tdV9zZXR1cCh2b2lkKQpAQCAtMzU0LDExICszNTgsMTMgQEAg aW50IGlvbW11X2RvX2RvbWN0bCgKICAgICByZXR1cm4gcmV0OwogfQogCi12b2lkIGlvbW11X3N1 c3BlbmQoKQoraW50IGlvbW11X3N1c3BlbmQoKQogewogICAgIGNvbnN0IHN0cnVjdCBpb21tdV9v cHMgKm9wcyA9IGlvbW11X2dldF9vcHMoKTsKICAgICBpZiAoIGlvbW11X2VuYWJsZWQgKQogICAg ICAgICBvcHMtPnN1c3BlbmQoKTsKKworICAgIHJldHVybiAwOwogfQogCiB2b2lkIGlvbW11X3No YXJlX3AybV90YWJsZShzdHJ1Y3QgZG9tYWluKiBkKQpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94 ODYvdnRkLmMKaW5kZXggYzBkNmFhYi4uZTVhYjEwYSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3g4Ni92dGQuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQveDg2L3Z0ZC5jCkBAIC0xNDAsOCArMTQwLDExIEBAIHZvaWQgX19od2RvbV9pbml0IHZ0ZF9z ZXRfaHdkb21fbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkKQogCiAgICAgICAgIHRtcCA9IDEgPDwg KFBBR0VfU0hJRlQgLSBQQUdFX1NISUZUXzRLKTsKICAgICAgICAgZm9yICggaiA9IDA7IGogPCB0 bXA7IGorKyApCi0gICAgICAgICAgICBpb21tdV9tYXBfcGFnZShkLCBwZm4gKiB0bXAgKyBqLCBw Zm4gKiB0bXAgKyBqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxl fElPTU1VRl93cml0YWJsZSk7CisgICAgICAgICAgICBpZiAoIGlvbW11X21hcF9wYWdlKGQsIHBm biAqIHRtcCArIGosIHBmbiAqIHRtcCArIGosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIElPTU1VRl9yZWFkYWJsZXxJT01NVUZfd3JpdGFibGUpICkKKyAgICAgICAgICAgICAgICBw cmludGsoWEVOTE9HX0dfRVJSCisgICAgICAgICAgICAgICAgICAgICAgICJJT01NVTogTWFwIHBh Z2UgZ2ZuOiAweCVseChtZm46IDB4JWx4KSBmYWlsZWQuXG4iLAorICAgICAgICAgICAgICAgICAg ICAgICBwZm4gKiB0bXAgKyBqLCBwZm4gKiB0bXAgKyBqKTsKIAogICAgICAgICBpZiAoIShpICYg KDB4ZmZmZmYgPj4gKFBBR0VfU0hJRlQgLSBQQUdFX1NISUZUXzRLKSkpKQogICAgICAgICAgICAg cHJvY2Vzc19wZW5kaW5nX3NvZnRpcnFzKCk7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC94ODYvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5j CmluZGV4IDhjYmI2NTUuLmQ4ZTNjOGYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3g4Ni9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5j CkBAIC0xMDQsNyArMTA0LDExIEBAIGludCBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUo c3RydWN0IGRvbWFpbiAqZCkKICAgICB0aGlzX2NwdShpb21tdV9kb250X2ZsdXNoX2lvdGxiKSA9 IDA7CiAKICAgICBpZiAoICFyYyApCi0gICAgICAgIGlvbW11X2lvdGxiX2ZsdXNoX2FsbChkKTsK KyAgICB7CisgICAgICAgIHJjID0gaW9tbXVfaW90bGJfZmx1c2hfYWxsKGQpOworICAgICAgICBp ZiAoIHJjICkKKyAgICAgICAgICAgIGlvbW11X3RlYXJkb3duKGQpOworICAgIH0KICAgICBlbHNl IGlmICggcmMgIT0gLUVSRVNUQVJUICkKICAgICAgICAgaW9tbXVfdGVhcmRvd24oZCk7CiAKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oIGIveGVuL2luY2x1ZGUveGVuL2lvbW11 LmgKaW5kZXggOGYzYTIwZS4uMTM0MTM1NSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lv bW11LmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTE2Nyw3ICsxNjcsNyBAQCBz dHJ1Y3QgaW9tbXVfb3BzIHsKICAgICB2b2lkICgqZHVtcF9wMm1fdGFibGUpKHN0cnVjdCBkb21h aW4gKmQpOwogfTsKIAotdm9pZCBpb21tdV9zdXNwZW5kKHZvaWQpOworaW50IGlvbW11X3N1c3Bl bmQodm9pZCk7CiB2b2lkIGlvbW11X3Jlc3VtZSh2b2lkKTsKIHZvaWQgaW9tbXVfY3Jhc2hfc2h1 dGRvd24odm9pZCk7CiBpbnQgaW9tbXVfZ2V0X3Jlc2VydmVkX2RldmljZV9tZW1vcnkoaW9tbXVf Z3JkbV90ICosIHZvaWQgKik7CkBAIC0xODIsOCArMTgyLDggQEAgaW50IGlvbW11X2RvX3BjaV9k b21jdGwoc3RydWN0IHhlbl9kb21jdGwgKiwgc3RydWN0IGRvbWFpbiAqZCwKIGludCBpb21tdV9k b19kb21jdGwoc3RydWN0IHhlbl9kb21jdGwgKiwgc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAg ICAgICAgICAgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpKTsKIAotdm9p ZCBpb21tdV9pb3RsYl9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwg dW5zaWduZWQgaW50IHBhZ2VfY291bnQpOwotdm9pZCBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3Ry dWN0IGRvbWFpbiAqZCk7CitpbnQgaW9tbXVfaW90bGJfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBnZm4sIHVuc2lnbmVkIGludCBwYWdlX2NvdW50KTsKK2ludCBpb21tdV9p b3RsYl9mbHVzaF9hbGwoc3RydWN0IGRvbWFpbiAqZCk7CiAKIC8qCiAgKiBUaGUgcHVycG9zZSBv ZiB0aGUgaW9tbXVfZG9udF9mbHVzaF9pb3RsYiBvcHRpb25hbCBjcHUgZmxhZyBpcyB0bwotLSAK MS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=