From mboxrd@z Thu Jan 1 00:00:00 1970 From: Quan Xu Subject: [PATCH v10 2/3] vt-d: synchronize for Device-TLB flush one by one Date: Fri, 22 Apr 2016 18:54:12 +0800 Message-ID: <1461322453-29216-3-git-send-email-quan.xu@intel.com> References: <1461322453-29216-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: <1461322453-29216-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: Quan Xu , kevin.tian@intel.com, feng.wu@intel.com, dario.faggioli@citrix.com, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org VG9kYXkgd2UgZG8gRGV2aWNlLVRMQiBmbHVzaCBzeW5jaHJvbml6YXRpb24gYWZ0ZXIgaXNzdWlu ZyBmbHVzaApyZXF1ZXN0cyBmb3IgYWxsIEFUUyBkZXZpY2VzIGJlbG9uZ2luZyB0byBhIFZNLiBE b2luZyBzbyBob3dldmVyCmltcG9zZXMgYSBsaW1pdGF0aW9uLCBpLmUuIHRoYXQgd2UgY2FuIG5v dCBmaWd1cmUgb3V0IHdoaWNoIGZsdXNoCnJlcXVlc3QgaXMgYmxvY2tlZCBpbiB0aGUgZmx1c2gg cXVldWUgbGlzdCwgYmFzZWQgb24gVlQtZCBzcGVjLgoKVG8gcHJlcGFyZSBjb3JyZWN0IERldmlj ZS1UTEIgZmx1c2ggdGltZW91dCBoYW5kbGluZyBpbiBuZXh0IHBhdGNoLAp3ZSBjaGFuZ2UgdGhl IGJlaGF2aW9yIHRvIHN5bmNocm9uaXplIGZvciBldmVyeSBEZXZpY2UtVExCIGZsdXNoCnJlcXVl c3QuIFNvIHRoZSBEZXZpY2UtVExCIGZsdXNoIGludGVyZmFjZSBpcyBjaGFuZ2VkIGEgbGl0dGxl IGJpdCwKYnkgY2hlY2tpbmcgdGltZW91dCB3aXRoaW4gdGhlIGZ1bmN0aW9uIGluc3RlYWQgb2Yg b3V0c2lkZSBvZiBmdW5jdGlvbi4KCkFjY29yZGluZ2x5IHdlIGFsc28gZG8gYSBzaW1pbGFyIGNo YW5nZSBmb3IgZmx1c2ggaW50ZXJmYWNlcyBvZgpJT1RMQi9JRUMvQ29udGV4dCwgaS5lLiBtb3Zp bmcgc3luY2hyb25pemF0aW9uIGludG8gdGhlIGZ1bmN0aW9uLgpTaW5jZSB0aGVyZSBpcyBubyB1 c2VyIG9mIGEgbm9uLXN5bmNlZCBpbnRlcmZhY2UsIHdlIGp1c3QgcmVuYW1lCmV4aXN0aW5nIG9u ZXMgd2l0aCBfc3luYyBzdWZmaXguCgpTaWduZWQtb2ZmLWJ5OiBRdWFuIFh1IDxxdWFuLnh1QGlu dGVsLmNvbT4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmggIHwgIDUg Ky0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMgIHwgNjEgKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94 ODYvYXRzLmMgfCAgOCArKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAz MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv ZXh0ZXJuLmggYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgKaW5kZXggZDRk MzdjMy4uYWI3ZWNhZCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4 dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaApAQCAtNTks OCArNTksOSBAQCBpbnQgYXRzX2RldmljZShjb25zdCBzdHJ1Y3QgcGNpX2RldiAqLCBjb25zdCBz dHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKik7CiBpbnQgZGV2X2ludmFsaWRhdGVfaW90bGIoc3RydWN0 IGlvbW11ICppb21tdSwgdTE2IGRpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICB1NjQgYWRk ciwgdW5zaWduZWQgaW50IHNpemVfb3JkZXIsIHU2NCB0eXBlKTsKIAotaW50IHFpbnZhbF9kZXZp Y2VfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHUz MiBtYXhfaW52c19wZW5kLCB1MTYgc2lkLCB1MTYgc2l6ZSwgdTY0IGFkZHIpOworaW50IF9fbXVz dF9jaGVjayBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBtYXhfaW52c19wZW5k LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHNpZCwgdTE2 IHNpemUsIHU2NCBhZGRyKTsKIAogdW5zaWduZWQgaW50IGdldF9jYWNoZV9saW5lX3NpemUodm9p ZCk7CiB2b2lkIGNhY2hlbGluZV9mbHVzaChjaGFyICopOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3FpbnZhbC5jCmluZGV4IDUyYmEyYzIuLjY5Y2M2YmYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvcWludmFsLmMKQEAgLTMzLDYgKzMzLDggQEAgaW50ZWdlcl9wYXJhbSgidnRkX3FpX3RpbWVv dXQiLCB2dGRfcWlfdGltZW91dCk7CiAKICNkZWZpbmUgSU9NTVVfUUlfVElNRU9VVCAodnRkX3Fp X3RpbWVvdXQgKiBNSUxMSVNFQ1MoMSkpCiAKK3N0YXRpYyBpbnQgaW52YWxpZGF0ZV9zeW5jKHN0 cnVjdCBpb21tdSAqaW9tbXUpOworCiBzdGF0aWMgdm9pZCBwcmludF9xaV9yZWdzKHN0cnVjdCBp b21tdSAqaW9tbXUpCiB7CiAgICAgdTY0IHZhbDsKQEAgLTcyLDggKzc0LDEwIEBAIHN0YXRpYyB2 b2lkIHFpbnZhbF91cGRhdGVfcXRhaWwoc3RydWN0IGlvbW11ICppb21tdSwgdW5zaWduZWQgaW50 IGluZGV4KQogICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfSVFUX1JFRywgKHZhbCA8 PCBRSU5WQUxfSU5ERVhfU0hJRlQpKTsKIH0KIAotc3RhdGljIHZvaWQgcXVldWVfaW52YWxpZGF0 ZV9jb250ZXh0KHN0cnVjdCBpb21tdSAqaW9tbXUsCi0gICAgdTE2IGRpZCwgdTE2IHNvdXJjZV9p ZCwgdTggZnVuY3Rpb25fbWFzaywgdTggZ3JhbnUpCitzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBx dWV1ZV9pbnZhbGlkYXRlX2NvbnRleHRfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IGRpZCwg dTE2IHNvdXJjZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHU4IGZ1bmN0aW9uX21hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBncmFudSkKIHsKICAgICB1bnNpZ25lZCBs b25nIGZsYWdzOwogICAgIHVuc2lnbmVkIGludCBpbmRleDsKQEAgLTEwMCwxMCArMTA0LDE0IEBA IHN0YXRpYyB2b2lkIHF1ZXVlX2ludmFsaWRhdGVfY29udGV4dChzdHJ1Y3QgaW9tbXUgKmlvbW11 LAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFn cyk7CiAKICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UocWludmFsX2VudHJpZXMpOworCisgICAg cmV0dXJuIGludmFsaWRhdGVfc3luYyhpb21tdSk7CiB9CiAKLXN0YXRpYyB2b2lkIHF1ZXVlX2lu dmFsaWRhdGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwKLSAgICB1OCBncmFudSwgdTggZHIs IHU4IGR3LCB1MTYgZGlkLCB1OCBhbSwgdTggaWgsIHU2NCBhZGRyKQorc3RhdGljIGludCBfX211 c3RfY2hlY2sgcXVldWVfaW52YWxpZGF0ZV9pb3RsYl9zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTgg Z3JhbnUsIHU4IGRyLCB1OCBkdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1MTYgZGlkLCB1OCBhbSwgdTggaWgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0IGFkZHIpCiB7CiAgICAgdW5z aWduZWQgbG9uZyBmbGFnczsKICAgICB1bnNpZ25lZCBpbnQgaW5kZXg7CkBAIC0xMzMsMTAgKzE0 MSwxMiBAQCBzdGF0aWMgdm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAq aW9tbXUsCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHFpbnZhbF9lbnRyaWVzKTsKICAgICBx aW52YWxfdXBkYXRlX3F0YWlsKGlvbW11LCBpbmRleCk7CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKKworICAgIHJldHVybiBpbnZhbGlk YXRlX3N5bmMoaW9tbXUpOwogfQogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZh bGlkYXRlX3dhaXQoc3RydWN0IGlvbW11ICppb21tdSwKLSAgICB1OCBpZmxhZywgdTggc3csIHU4 IGZuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGlm bGFnLCB1OCBzdywgdTggZm4pCiB7CiAgICAgc190aW1lX3QgdGltZW91dDsKICAgICB2b2xhdGls ZSB1MzIgcG9sbF9zbG90ID0gUUlOVkFMX1NUQVRfSU5JVDsKQEAgLTE5Niw4ICsyMDYsMTAgQEAg c3RhdGljIGludCBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSkKICAgICByZXR1 cm4gMDsKIH0KIAotaW50IHFpbnZhbF9kZXZpY2VfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwK LSAgICB1MzIgbWF4X2ludnNfcGVuZCwgdTE2IHNpZCwgdTE2IHNpemUsIHU2NCBhZGRyKQoraW50 IF9fbXVzdF9jaGVjayBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoc3RydWN0IGlvbW11ICppb21t dSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBtYXhfaW52 c19wZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHNp ZCwgdTE2IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 NjQgYWRkcikKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHVuc2lnbmVkIGludCBp bmRleDsKQEAgLTIyNiwxNSArMjM4LDE3IEBAIGludCBxaW52YWxfZGV2aWNlX2lvdGxiKHN0cnVj dCBpb21tdSAqaW9tbXUsCiAgICAgcWludmFsX3VwZGF0ZV9xdGFpbChpb21tdSwgaW5kZXgpOwog ICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7 CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gaW52YWxpZGF0ZV9zeW5jKGlvbW11KTsKIH0K IAotc3RhdGljIHZvaWQgcXVldWVfaW52YWxpZGF0ZV9pZWMoc3RydWN0IGlvbW11ICppb21tdSwg dTggZ3JhbnUsIHU4IGltLCB1MTYgaWlkeCkKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNrIHF1ZXVl X2ludmFsaWRhdGVfaWVjX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggZ3JhbnUsIHU4IGltLCB1MTYg aWlkeCkKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHVuc2lnbmVkIGludCBpbmRl eDsKICAgICB1NjQgZW50cnlfYmFzZTsKICAgICBzdHJ1Y3QgcWludmFsX2VudHJ5ICpxaW52YWxf ZW50cnksICpxaW52YWxfZW50cmllczsKKyAgICBpbnQgcmV0OwogCiAgICAgc3Bpbl9sb2NrX2ly cXNhdmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7CiAgICAgaW5kZXggPSBxaW52YWxf bmV4dF9pbmRleChpb21tdSk7CkBAIC0yNTQsMTQgKzI2OCw5IEBAIHN0YXRpYyB2b2lkIHF1ZXVl X2ludmFsaWRhdGVfaWVjKHN0cnVjdCBpb21tdSAqaW9tbXUsIHU4IGdyYW51LCB1OCBpbSwgdTE2 IGlpZHgpCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHFpbnZhbF9lbnRyaWVzKTsKICAgICBx aW52YWxfdXBkYXRlX3F0YWlsKGlvbW11LCBpbmRleCk7CiAgICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKLX0KIAotc3RhdGljIGludCBfX2lv bW11X2ZsdXNoX2llYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1OCBncmFudSwgdTggaW0sIHUxNiBp aWR4KQotewotICAgIGludCByZXQ7Ci0KLSAgICBxdWV1ZV9pbnZhbGlkYXRlX2llYyhpb21tdSwg Z3JhbnUsIGltLCBpaWR4KTsKICAgICByZXQgPSBpbnZhbGlkYXRlX3N5bmMoaW9tbXUpOworCiAg ICAgLyoKICAgICAgKiByZWFkaW5nIHZ0LWQgYXJjaGl0ZWN0dXJlIHJlZ2lzdGVyIHdpbGwgZW5z dXJlCiAgICAgICogZHJhaW5pbmcgaGFwcGVucyBpbiBpbXBsZW1lbnRhdGlvbiBpbmRlcGVuZGVu dCB3YXkuCkBAIC0yNzMsMTIgKzI4MiwxMiBAQCBzdGF0aWMgaW50IF9faW9tbXVfZmx1c2hfaWVj KHN0cnVjdCBpb21tdSAqaW9tbXUsIHU4IGdyYW51LCB1OCBpbSwgdTE2IGlpZHgpCiAKIGludCBp b21tdV9mbHVzaF9pZWNfZ2xvYmFsKHN0cnVjdCBpb21tdSAqaW9tbXUpCiB7Ci0gICAgcmV0dXJu IF9faW9tbXVfZmx1c2hfaWVjKGlvbW11LCBJRUNfR0xPQkFMX0lOVkwsIDAsIDApOworICAgIHJl dHVybiBxdWV1ZV9pbnZhbGlkYXRlX2llY19zeW5jKGlvbW11LCBJRUNfR0xPQkFMX0lOVkwsIDAs IDApOwogfQogCiBpbnQgaW9tbXVfZmx1c2hfaWVjX2luZGV4KHN0cnVjdCBpb21tdSAqaW9tbXUs IHU4IGltLCB1MTYgaWlkeCkKIHsKLSAgIHJldHVybiBfX2lvbW11X2ZsdXNoX2llYyhpb21tdSwg SUVDX0lOREVYX0lOVkwsIGltLCBpaWR4KTsKKyAgIHJldHVybiBxdWV1ZV9pbnZhbGlkYXRlX2ll Y19zeW5jKGlvbW11LCBJRUNfSU5ERVhfSU5WTCwgaW0sIGlpZHgpOwogfQogCiBzdGF0aWMgaW50 IGZsdXNoX2NvbnRleHRfcWkoCkBAIC0zMDQsMTEgKzMxMyw5IEBAIHN0YXRpYyBpbnQgZmx1c2hf Y29udGV4dF9xaSgKICAgICB9CiAKICAgICBpZiAoIHFpX2N0cmwtPnFpbnZhbF9tYWRkciAhPSAw ICkKLSAgICB7Ci0gICAgICAgIHF1ZXVlX2ludmFsaWRhdGVfY29udGV4dChpb21tdSwgZGlkLCBz aWQsIGZtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA+PiBETUFfQ0NN RF9JTlZMX0dSQU5VX09GRlNFVCk7Ci0gICAgICAgIHJldCA9IGludmFsaWRhdGVfc3luYyhpb21t dSk7Ci0gICAgfQorICAgICAgICByZXQgPSBxdWV1ZV9pbnZhbGlkYXRlX2NvbnRleHRfc3luYyhp b21tdSwgZGlkLCBzaWQsIGZtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0eXBlID4+IERNQV9DQ01EX0lOVkxfR1JBTlVfT0ZGU0VUKTsKKwogICAgIHJldHVy biByZXQ7CiB9CiAKQEAgLTM0Niw5ICszNTMsMTMgQEAgc3RhdGljIGludCBmbHVzaF9pb3RsYl9x aSgKICAgICAgICAgaWYgKGNhcF9yZWFkX2RyYWluKGlvbW11LT5jYXApKQogICAgICAgICAgICAg ZHIgPSAxOwogICAgICAgICAvKiBOZWVkIHRvIGNvbnNpZGUgdGhlIGloIGJpdCBsYXRlciAqLwot ICAgICAgICBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiKGlvbW11LAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHR5cGUgPj4gRE1BX1RMQl9GTFVTSF9HUkFOVV9PRkZTRVQsIGRyLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3LCBkaWQsIHNpemVfb3JkZXIsIDAsIGFkZHIp OworICAgICAgICByZXQgPSBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiX3N5bmMoaW9tbXUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID4+IERNQV9UTEJfRkxV U0hfR1JBTlVfT0ZGU0VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZHIsIGR3LCBkaWQsIHNpemVfb3JkZXIsIDAsIGFkZHIpOworCisgICAgICAgIGlmICggcmV0 ICkKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisKICAgICAgICAgaWYgKCBmbHVzaF9kZXZfaW90 bGIgKQogICAgICAgICAgICAgcmV0ID0gZGV2X2ludmFsaWRhdGVfaW90bGIoaW9tbXUsIGRpZCwg YWRkciwgc2l6ZV9vcmRlciwgdHlwZSk7CiAgICAgICAgIHJjID0gaW52YWxpZGF0ZV9zeW5jKGlv bW11KTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L2F0cy5jCmluZGV4IDMzNGI5YzEuLmRm YTRkMzAgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYwpAQCAtMTM0LDggKzEz NCw4IEBAIGludCBkZXZfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYg ZGlkLAogICAgICAgICAgICAgLyogaW52YWxpZGF0ZSBhbGwgdHJhbnNsYXRpb25zOiBzYml0PTEs Yml0XzYzPTAsYml0WzYyOjEyXT0xICovCiAgICAgICAgICAgICBzYml0ID0gMTsKICAgICAgICAg ICAgIGFkZHIgPSAofjBVTCA8PCBQQUdFX1NISUZUXzRLKSAmIDB4N0ZGRkZGRkZGRkZGRkZGRjsK LSAgICAgICAgICAgIHJjID0gcWludmFsX2RldmljZV9pb3RsYihpb21tdSwgcGRldi0+YXRzX3F1 ZXVlX2RlcHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZCwgc2Jp dCwgYWRkcik7CisgICAgICAgICAgICByYyA9IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhpb21t dSwgcGRldi0+YXRzX3F1ZXVlX2RlcHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICBjYXNlIERNQV9UTEJfUFNJX0ZMVVNIOgogICAgICAgICAgICAgaWYgKCAhZGV2aWNlX2luX2Rv bWFpbihpb21tdSwgcGRldiwgZGlkKSApCkBAIC0xNTQsOCArMTU0LDggQEAgaW50IGRldl9pbnZh bGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCiAgICAgICAgICAgICAg ICAgYWRkciB8PSAoKCh1NjQpMSA8PCAoc2l6ZV9vcmRlciAtIDEpKSAtIDEpIDw8IFBBR0VfU0hJ RlRfNEs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJjID0gcWludmFsX2RldmljZV9p b3RsYihpb21tdSwgcGRldi0+YXRzX3F1ZXVlX2RlcHRoLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNpZCwgc2JpdCwgYWRkcik7CisgICAgICAgICAgICByYyA9IHFpbnZh bF9kZXZpY2VfaW90bGJfc3luYyhpb21tdSwgcGRldi0+YXRzX3F1ZXVlX2RlcHRoLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsKICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZHByaW50ayhY RU5MT0dfV0FSTklORyBWVERQUkVGSVgsICJpbnZhbGlkIHZ0LWQgZmx1c2ggdHlwZVxuIik7Ci0t IAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Clhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xp c3RzLnhlbi5vcmcveGVuLWRldmVsCg==