From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: [Patch v11 2/3] vt-d: synchronize for Device-TLB flush one by one Date: Wed, 1 Jun 2016 17:05:21 +0800 Message-ID: <1464771922-7794-3-git-send-email-quan.xu@intel.com> References: <1464771922-7794-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: <1464771922-7794-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 RnJvbTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgpUb2RheSB3ZSBkbyBEZXZpY2UtVExC IGZsdXNoIHN5bmNocm9uaXphdGlvbiBhZnRlciBpc3N1aW5nIGZsdXNoCnJlcXVlc3RzIGZvciBh bGwgQVRTIGRldmljZXMgYmVsb25naW5nIHRvIGEgVk0uIERvaW5nIHNvIGhvd2V2ZXIKaW1wb3Nl cyBhIGxpbWl0YXRpb24sIGkuZS4gdGhhdCB3ZSBjYW4gbm90IGZpZ3VyZSBvdXQgd2hpY2ggZmx1 c2gKcmVxdWVzdCBpcyBibG9ja2VkIGluIHRoZSBmbHVzaCBxdWV1ZSBsaXN0LCBiYXNlZCBvbiBW VC1kIHNwZWMuCgpUbyBwcmVwYXJlIGNvcnJlY3QgRGV2aWNlLVRMQiBmbHVzaCB0aW1lb3V0IGhh bmRsaW5nIGluIG5leHQgcGF0Y2gsCndlIGNoYW5nZSB0aGUgYmVoYXZpb3IgdG8gc3luY2hyb25p emUgZm9yIGV2ZXJ5IERldmljZS1UTEIgZmx1c2gKcmVxdWVzdC4gU28gdGhlIERldmljZS1UTEIg Zmx1c2ggaW50ZXJmYWNlIGlzIGNoYW5nZWQgYSBsaXR0bGUgYml0LApieSBjaGVja2luZyB0aW1l b3V0IHdpdGhpbiB0aGUgZnVuY3Rpb24gaW5zdGVhZCBvZiBvdXRzaWRlIG9mIGZ1bmN0aW9uLgoK QWNjb3JkaW5nbHkgd2UgYWxzbyBkbyBhIHNpbWlsYXIgY2hhbmdlIGZvciBmbHVzaCBpbnRlcmZh Y2VzIG9mCklPVExCL0lFQy9Db250ZXh0LCBpLmUuIG1vdmluZyBzeW5jaHJvbml6YXRpb24gaW50 byB0aGUgZnVuY3Rpb24uClNpbmNlIHRoZXJlIGlzIG5vIHVzZXIgb2YgYSBub24tc3luY2VkIGlu dGVyZmFjZSwgd2UganVzdCByZW5hbWUKZXhpc3Rpbmcgb25lcyB3aXRoIF9zeW5jIHN1ZmZpeC4K CnYxMToKICAgMS4gQWRkIF9fbXVzdF9jaGVjayBhbm5vdGF0aW9uIHRvIGludmFsaWRhdGVfc3lu YygpLgogICAyLiBSZW1vdmUgdGhlIHJlZHVuZGFudCBpbnZhbGlkYXRlX3N5bmMoKSBpbiBmbHVz aF9pb3RsYl9xaSgpLgogICAzLiBSZWZhY3RvciBpbnZhbGlkYXRlX3N5bmMoKSB0byBpbmRpY2F0 ZSB3aGV0aGVyIHdlIG5lZWQgdG8gZmx1c2gKICAgICAgZGV2aWNlIElPVExCIG9yIG5vdCAoSSds bCBjaGFuZ2UgaXQgYmFjayBpbiBuZXh0IHBhdGNoLCBhcyBJJ2xsCiAgICAgIGFkZCBhIHNwZWNp ZmljIGZ1bmN0aW9uIC0gZGV2X2ludmFsaWRhdGVfc3luYygpIGZvciBkZXZpY2UgSU9UTEIKICAg ICAgaW52YWxpZGF0aW9uKS4KClNpZ25lZC1vZmYtYnk6IFF1YW4gWHUgPHF1YW4ueHVAaW50ZWwu Y29tPgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaCAgfCAgNSArLS0K IHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYyAgfCA2NSArKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9h dHMuYyB8ICA4ICsrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDMzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRl cm4uaCBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaAppbmRleCA2NzcyODM5 Li40NTM1N2YyIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJu LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCkBAIC01OSw4ICs1 OSw5IEBAIGludCBhdHNfZGV2aWNlKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICosIGNvbnN0IHN0cnVj dCBhY3BpX2RyaGRfdW5pdCAqKTsKIGludCBkZXZfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9t bXUgKmlvbW11LCB1MTYgZGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCBhZGRyLCB1 bnNpZ25lZCBpbnQgc2l6ZV9vcmRlciwgdTY0IHR5cGUpOwogCi1pbnQgcWludmFsX2RldmljZV9p b3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LAotICAgICAgICAgICAgICAgICAgICAgICAgdTMyIG1h eF9pbnZzX3BlbmQsIHUxNiBzaWQsIHUxNiBzaXplLCB1NjQgYWRkcik7CitpbnQgX19tdXN0X2No ZWNrIHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIG1heF9pbnZzX3BlbmQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MTYgc2lkLCB1MTYgc2l6 ZSwgdTY0IGFkZHIpOwogCiB1bnNpZ25lZCBpbnQgZ2V0X2NhY2hlX2xpbmVfc2l6ZSh2b2lkKTsK IHZvaWQgY2FjaGVsaW5lX2ZsdXNoKGNoYXIgKik7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvcWludmFsLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWlu dmFsLmMKaW5kZXggMWEzNzU2NS4uOTExNjU4OCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL3FpbnZhbC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9x aW52YWwuYwpAQCAtMzAsNiArMzAsOSBAQAogCiAjZGVmaW5lIElPTU1VX1FJX1RJTUVPVVQgTUlM TElTRUNTKDEpCiAKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGludmFsaWRhdGVfc3luYyhzdHJ1 Y3QgaW9tbXUgKmlvbW11LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvb2xfdCBmbHVzaF9kZXZfaW90bGIpOworCiBzdGF0aWMgdm9pZCBwcmludF9xaV9yZWdzKHN0 cnVjdCBpb21tdSAqaW9tbXUpCiB7CiAgICAgdTY0IHZhbDsKQEAgLTY5LDggKzcyLDEwIEBAIHN0 YXRpYyB2b2lkIHFpbnZhbF91cGRhdGVfcXRhaWwoc3RydWN0IGlvbW11ICppb21tdSwgdW5zaWdu ZWQgaW50IGluZGV4KQogICAgIGRtYXJfd3JpdGVxKGlvbW11LT5yZWcsIERNQVJfSVFUX1JFRywg KHZhbCA8PCBRSU5WQUxfSU5ERVhfU0hJRlQpKTsKIH0KIAotc3RhdGljIHZvaWQgcXVldWVfaW52 YWxpZGF0ZV9jb250ZXh0KHN0cnVjdCBpb21tdSAqaW9tbXUsCi0gICAgdTE2IGRpZCwgdTE2IHNv dXJjZV9pZCwgdTggZnVuY3Rpb25fbWFzaywgdTggZ3JhbnUpCitzdGF0aWMgaW50IF9fbXVzdF9j aGVjayBxdWV1ZV9pbnZhbGlkYXRlX2NvbnRleHRfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2 IGRpZCwgdTE2IHNvdXJjZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHU4IGZ1bmN0aW9uX21hc2ssCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBncmFudSkKIHsKICAgICB1bnNp Z25lZCBsb25nIGZsYWdzOwogICAgIHVuc2lnbmVkIGludCBpbmRleDsKQEAgLTk3LDEwICsxMDIs MTQgQEAgc3RhdGljIHZvaWQgcXVldWVfaW52YWxpZGF0ZV9jb250ZXh0KHN0cnVjdCBpb21tdSAq aW9tbXUsCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ss IGZsYWdzKTsKIAogICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShxaW52YWxfZW50cmllcyk7CisK KyAgICByZXR1cm4gaW52YWxpZGF0ZV9zeW5jKGlvbW11LCAwKTsKIH0KIAotc3RhdGljIHZvaWQg cXVldWVfaW52YWxpZGF0ZV9pb3RsYihzdHJ1Y3QgaW9tbXUgKmlvbW11LAotICAgIHU4IGdyYW51 LCB1OCBkciwgdTggZHcsIHUxNiBkaWQsIHU4IGFtLCB1OCBpaCwgdTY0IGFkZHIpCitzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiX3N5bmMoc3RydWN0IGlvbW11 ICppb21tdSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1OCBncmFudSwgdTggZHIsIHU4IGR3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHUxNiBkaWQsIHU4IGFtLCB1OCBpaCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1NjQgYWRkcikKIHsK ICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHVuc2lnbmVkIGludCBpbmRleDsKQEAgLTEz MCw2ICsxMzksOCBAQCBzdGF0aWMgdm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBp b21tdSAqaW9tbXUsCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHFpbnZhbF9lbnRyaWVzKTsK ICAgICBxaW52YWxfdXBkYXRlX3F0YWlsKGlvbW11LCBpbmRleCk7CiAgICAgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKKworICAgIHJldHVybiBp bnZhbGlkYXRlX3N5bmMoaW9tbXUsIDApOwogfQogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBx dWV1ZV9pbnZhbGlkYXRlX3dhaXQoc3RydWN0IGlvbW11ICppb21tdSwKQEAgLTIwMCw4ICsyMTEs OSBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3RydWN0IGlvbW11 ICppb21tdSwKICAgICByZXR1cm4gMDsKIH0KIAotaW50IHFpbnZhbF9kZXZpY2VfaW90bGIoc3Ry dWN0IGlvbW11ICppb21tdSwKLSAgICB1MzIgbWF4X2ludnNfcGVuZCwgdTE2IHNpZCwgdTE2IHNp emUsIHU2NCBhZGRyKQoraW50IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhzdHJ1Y3QgaW9tbXUg KmlvbW11LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgbWF4X2ludnNfcGVuZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHNpZCwgdTE2IHNpemUsIHU2NCBhZGRy KQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgdW5zaWduZWQgaW50IGluZGV4OwpA QCAtMjMwLDE1ICsyNDIsMTcgQEAgaW50IHFpbnZhbF9kZXZpY2VfaW90bGIoc3RydWN0IGlvbW11 ICppb21tdSwKICAgICBxaW52YWxfdXBkYXRlX3F0YWlsKGlvbW11LCBpbmRleCk7CiAgICAgc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIAotICAg IHJldHVybiAwOworICAgIHJldHVybiBpbnZhbGlkYXRlX3N5bmMoaW9tbXUsIDEpOwogfQogCi1z dGF0aWMgdm9pZCBxdWV1ZV9pbnZhbGlkYXRlX2llYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1OCBn cmFudSwgdTggaW0sIHUxNiBpaWR4KQorc3RhdGljIGludCBfX211c3RfY2hlY2sgcXVldWVfaW52 YWxpZGF0ZV9pZWNfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBncmFudSwgdTggaW0sIHUxNiBpaWR4 KQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgdW5zaWduZWQgaW50IGluZGV4Owog ICAgIHU2NCBlbnRyeV9iYXNlOwogICAgIHN0cnVjdCBxaW52YWxfZW50cnkgKnFpbnZhbF9lbnRy eSwgKnFpbnZhbF9lbnRyaWVzOworICAgIGludCByZXQ7CiAKICAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKICAgICBpbmRleCA9IHFpbnZhbF9uZXh0 X2luZGV4KGlvbW11KTsKQEAgLTI1OCwxNCArMjcyLDkgQEAgc3RhdGljIHZvaWQgcXVldWVfaW52 YWxpZGF0ZV9pZWMoc3RydWN0IGlvbW11ICppb21tdSwgdTggZ3JhbnUsIHU4IGltLCB1MTYgaWlk eCkKICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UocWludmFsX2VudHJpZXMpOwogICAgIHFpbnZh bF91cGRhdGVfcXRhaWwoaW9tbXUsIGluZGV4KTsKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3Jl KCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3MpOwotfQotCi1zdGF0aWMgaW50IF9faW9tbXVf Zmx1c2hfaWVjKHN0cnVjdCBpb21tdSAqaW9tbXUsIHU4IGdyYW51LCB1OCBpbSwgdTE2IGlpZHgp Ci17Ci0gICAgaW50IHJldDsKIAotICAgIHF1ZXVlX2ludmFsaWRhdGVfaWVjKGlvbW11LCBncmFu dSwgaW0sIGlpZHgpOwogICAgIHJldCA9IGludmFsaWRhdGVfc3luYyhpb21tdSwgMCk7CisKICAg ICAvKgogICAgICAqIHJlYWRpbmcgdnQtZCBhcmNoaXRlY3R1cmUgcmVnaXN0ZXIgd2lsbCBlbnN1 cmUKICAgICAgKiBkcmFpbmluZyBoYXBwZW5zIGluIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50 IHdheS4KQEAgLTI3NywxMiArMjg2LDEyIEBAIHN0YXRpYyBpbnQgX19pb21tdV9mbHVzaF9pZWMo c3RydWN0IGlvbW11ICppb21tdSwgdTggZ3JhbnUsIHU4IGltLCB1MTYgaWlkeCkKIAogaW50IGlv bW11X2ZsdXNoX2llY19nbG9iYWwoc3RydWN0IGlvbW11ICppb21tdSkKIHsKLSAgICByZXR1cm4g X19pb21tdV9mbHVzaF9pZWMoaW9tbXUsIElFQ19HTE9CQUxfSU5WTCwgMCwgMCk7CisgICAgcmV0 dXJuIHF1ZXVlX2ludmFsaWRhdGVfaWVjX3N5bmMoaW9tbXUsIElFQ19HTE9CQUxfSU5WTCwgMCwg MCk7CiB9CiAKIGludCBpb21tdV9mbHVzaF9pZWNfaW5kZXgoc3RydWN0IGlvbW11ICppb21tdSwg dTggaW0sIHUxNiBpaWR4KQogewotICAgcmV0dXJuIF9faW9tbXVfZmx1c2hfaWVjKGlvbW11LCBJ RUNfSU5ERVhfSU5WTCwgaW0sIGlpZHgpOworICAgIHJldHVybiBxdWV1ZV9pbnZhbGlkYXRlX2ll Y19zeW5jKGlvbW11LCBJRUNfSU5ERVhfSU5WTCwgaW0sIGlpZHgpOwogfQogCiBzdGF0aWMgaW50 IF9fbXVzdF9jaGVjayBmbHVzaF9jb250ZXh0X3FpKHZvaWQgKl9pb21tdSwgdTE2IGRpZCwKQEAg LTMwOCwxMSArMzE3LDkgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgZmx1c2hfY29udGV4dF9x aSh2b2lkICpfaW9tbXUsIHUxNiBkaWQsCiAgICAgfQogCiAgICAgaWYgKCBxaV9jdHJsLT5xaW52 YWxfbWFkZHIgIT0gMCApCi0gICAgewotICAgICAgICBxdWV1ZV9pbnZhbGlkYXRlX2NvbnRleHQo aW9tbXUsIGRpZCwgc2lkLCBmbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5 cGUgPj4gRE1BX0NDTURfSU5WTF9HUkFOVV9PRkZTRVQpOwotICAgICAgICByZXQgPSBpbnZhbGlk YXRlX3N5bmMoaW9tbXUsIDApOwotICAgIH0KKyAgICAgICAgcmV0ID0gcXVldWVfaW52YWxpZGF0 ZV9jb250ZXh0X3N5bmMoaW9tbXUsIGRpZCwgc2lkLCBmbSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA+PiBETUFfQ0NNRF9JTlZMX0dSQU5VX09GRlNF VCk7CisKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0zNTAsMTQgKzM1NywxOCBAQCBzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBmbHVzaF9pb3RsYl9xaSh2b2lkICpfaW9tbXUsIHUxNiBkaWQsIHU2 NCBhZGRyLAogICAgICAgICBpZiAoY2FwX3JlYWRfZHJhaW4oaW9tbXUtPmNhcCkpCiAgICAgICAg ICAgICBkciA9IDE7CiAgICAgICAgIC8qIE5lZWQgdG8gY29uc2lkZSB0aGUgaWggYml0IGxhdGVy ICovCi0gICAgICAgIHF1ZXVlX2ludmFsaWRhdGVfaW90bGIoaW9tbXUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZSA+PiBETUFfVExCX0ZMVVNIX0dSQU5VX09GRlNFVCwgZHIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHcsIGRpZCwgc2l6ZV9vcmRlciwgMCwg YWRkcik7Ci0gICAgICAgIGlmICggZmx1c2hfZGV2X2lvdGxiICkKLSAgICAgICAgICAgIHJldCA9 IGRldl9pbnZhbGlkYXRlX2lvdGxiKGlvbW11LCBkaWQsIGFkZHIsIHNpemVfb3JkZXIsIHR5cGUp OwotICAgICAgICByYyA9IGludmFsaWRhdGVfc3luYyhpb21tdSwgZmx1c2hfZGV2X2lvdGxiKTsK KyAgICAgICAgcmMgPSBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiX3N5bmMoaW9tbXUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPj4gRE1BX1RMQl9GTFVTSF9H UkFOVV9PRkZTRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRy LCBkdywgZGlkLCBzaXplX29yZGVyLCAwLCBhZGRyKTsKICAgICAgICAgaWYgKCAhcmV0ICkKICAg ICAgICAgICAgIHJldCA9IHJjOworCisgICAgICAgIGlmICggZmx1c2hfZGV2X2lvdGxiICkKKyAg ICAgICAgeworICAgICAgICAgICAgcmMgPSBkZXZfaW52YWxpZGF0ZV9pb3RsYihpb21tdSwgZGlk LCBhZGRyLCBzaXplX29yZGVyLCB0eXBlKTsKKyAgICAgICAgICAgIGlmICggIXJldCApCisgICAg ICAgICAgICAgICAgcmV0ID0gcmM7CisgICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gcmV0 OwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYyBiL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMKaW5kZXggMzM0YjljMS4uZGZhNGQz MCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L2F0cy5jCkBAIC0xMzQsOCArMTM0LDgg QEAgaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQs CiAgICAgICAgICAgICAvKiBpbnZhbGlkYXRlIGFsbCB0cmFuc2xhdGlvbnM6IHNiaXQ9MSxiaXRf NjM9MCxiaXRbNjI6MTJdPTEgKi8KICAgICAgICAgICAgIHNiaXQgPSAxOwogICAgICAgICAgICAg YWRkciA9ICh+MFVMIDw8IFBBR0VfU0hJRlRfNEspICYgMHg3RkZGRkZGRkZGRkZGRkZGOwotICAg ICAgICAgICAgcmMgPSBxaW52YWxfZGV2aWNlX2lvdGxiKGlvbW11LCBwZGV2LT5hdHNfcXVldWVf ZGVwdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkLCBzYml0LCBh ZGRyKTsKKyAgICAgICAgICAgIHJjID0gcWludmFsX2RldmljZV9pb3RsYl9zeW5jKGlvbW11LCBw ZGV2LT5hdHNfcXVldWVfZGVwdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaWQsIHNiaXQsIGFkZHIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh c2UgRE1BX1RMQl9QU0lfRkxVU0g6CiAgICAgICAgICAgICBpZiAoICFkZXZpY2VfaW5fZG9tYWlu KGlvbW11LCBwZGV2LCBkaWQpICkKQEAgLTE1NCw4ICsxNTQsOCBAQCBpbnQgZGV2X2ludmFsaWRh dGVfaW90bGIoc3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRpZCwKICAgICAgICAgICAgICAgICBh ZGRyIHw9ICgoKHU2NCkxIDw8IChzaXplX29yZGVyIC0gMSkpIC0gMSkgPDwgUEFHRV9TSElGVF80 SzsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcmMgPSBxaW52YWxfZGV2aWNlX2lvdGxi KGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2lkLCBzYml0LCBhZGRyKTsKKyAgICAgICAgICAgIHJjID0gcWludmFsX2Rl dmljZV9pb3RsYl9zeW5jKGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWQsIHNiaXQsIGFkZHIpOwogICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBkcHJpbnRrKFhFTkxP R19XQVJOSU5HIFZURFBSRUZJWCwgImludmFsaWQgdnQtZCBmbHVzaCB0eXBlXG4iKTsKLS0gCjEu OS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK