From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: [PATCH v12 6/6] vt-d: fix vt-d Device-TLB flush timeout issue Date: Fri, 24 Jun 2016 13:51:58 +0800 Message-ID: <1466747518-54402-7-git-send-email-quan.xu@intel.com> References: <1466747518-54402-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: <1466747518-54402-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: Kevin Tian , dario.faggioli@citrix.com, Feng Wu , Jan Beulich , Quan Xu List-Id: xen-devel@lists.xenproject.org RnJvbTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgpJZiBEZXZpY2UtVExCIGZsdXNoIHRp bWVkIG91dCwgd2UgaGlkZSB0aGUgdGFyZ2V0IEFUUyBkZXZpY2UKaW1tZWRpYXRlbHkgYW5kIGNy YXNoIHRoZSBkb21haW4gb3duaW5nIHRoaXMgQVRTIGRldmljZS4gSWYKaW1wYWN0ZWQgZG9tYWlu IGlzIGhhcmR3YXJlIGRvbWFpbiwganVzdCB0aHJvdyBvdXQgYSB3YXJuaW5nLgoKQnkgaGlkaW5n IHRoZSBkZXZpY2UsIHdlIG1ha2Ugc3VyZSBpdCBjYW4ndCBiZSBhc3NpZ25lZCB0byBhbnkKZG9t YWluIGFueSBsb25nZXIgKHNlZSBkZXZpY2VfYXNzaWduZWQpLgoKU2lnbmVkLW9mZi1ieTogUXVh biBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpDQzogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+CkNDOiBGZW5nIFd1IDxm ZW5nLnd1QGludGVsLmNvbT4KCi0tLQp2MTI6CiAgIDEuIGEgZm9yd2FyZCBkZWNsYXJhdGlvbiBz dHJ1Y3QgcGNpX2F0c19kZXYqLCBpbnN0ZWFkIG9mCiAgICAgIGluY2x1ZGluZyBhdHMuaC4KICAg Mi4gZWxpbWluYXRlIHRoZSBsb29wLgogICAzLiB1c2UgdGhlIHNhbWUgbG9naWMgZm9yIGxvZ2dp bmcgYW5kIGNyYXNoaW5nIGFzIEkgZGlkIGluCiAgICAgIG90aGVyIHNlcmllcyAoZGVzcGl0ZSBJ IGhhdmUgbW92ZWQgdGhlIGRvbWFpbiBjcmFzaCBsb2dpYwogICAgICB1cCB0byB0aGUgZ2VuZXJp YyBJT01NVSBsYXllciwgSSB0aGluayBJIGFtIGJldHRlciBzdGlsbAogICAgICBsZWF2ZSBpdCBh cyBpcykuCiAgIDQuIGVuaGFuY2UgZGV2X2ludmFsaWRhdGVfc3luYygpIHdpdGggQVNTRVJUKCku Ci0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgICAgICAgICB8ICA2ICstLQogeGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oICB8ICA1ICsrLQogeGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jICB8IDc1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQveDg2L2F0cy5jIHwgIDkgKy0t LS0KIHhlbi9pbmNsdWRlL3hlbi9wY2kuaCAgICAgICAgICAgICAgICAgfCAgMSArCiA1IGZpbGVz IGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv cGNpLmMKaW5kZXggOTg5MzZmNTVjLi44NDNkYzg4IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9wY2kuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9wY2kuYwpAQCAt NDE5LDcgKzQxOSw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfcGRldihzdHJ1Y3QgcGNpX3NlZyAqcHNl Zywgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAgICAgeGZyZWUocGRldik7CiB9CiAKLXN0YXRpYyB2 b2lkIF9wY2lfaGlkZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit2b2lkIHBjaV9oaWRl X2V4aXN0aW5nX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKICAgICBpZiAoIHBkZXYt PmRvbWFpbiApCiAgICAgICAgIHJldHVybjsKQEAgLTQzNiw3ICs0MzYsNyBAQCBpbnQgX19pbml0 IHBjaV9oaWRlX2RldmljZShpbnQgYnVzLCBpbnQgZGV2Zm4pCiAgICAgcGRldiA9IGFsbG9jX3Bk ZXYoZ2V0X3BzZWcoMCksIGJ1cywgZGV2Zm4pOwogICAgIGlmICggcGRldiApCiAgICAgewotICAg ICAgICBfcGNpX2hpZGVfZGV2aWNlKHBkZXYpOworICAgICAgICBwY2lfaGlkZV9leGlzdGluZ19k ZXZpY2UocGRldik7CiAgICAgICAgIHJjID0gMDsKICAgICB9CiAgICAgcGNpZGV2c191bmxvY2so KTsKQEAgLTQ2Niw3ICs0NjYsNyBAQCBpbnQgX19pbml0IHBjaV9yb19kZXZpY2UoaW50IHNlZywg aW50IGJ1cywgaW50IGRldmZuKQogICAgIH0KIAogICAgIF9fc2V0X2JpdChQQ0lfQkRGMihidXMs IGRldmZuKSwgcHNlZy0+cm9fbWFwKTsKLSAgICBfcGNpX2hpZGVfZGV2aWNlKHBkZXYpOworICAg IHBjaV9oaWRlX2V4aXN0aW5nX2RldmljZShwZGV2KTsKIAogICAgIHJldHVybiAwOwogfQpkaWZm IC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCmluZGV4IDQ1MzU3ZjIuLmVmYWZmMjggMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaAorKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvZXh0ZXJuLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2RlZmlu ZSBWVERQUkVGSVggIltWVC1EXSIKIAorc3RydWN0IHBjaV9hdHNfZGV2OwogZXh0ZXJuIGJvb2xf dCByd2JmX3F1aXJrOwogCiB2b2lkIHByaW50X2lvbW11X3JlZ3Moc3RydWN0IGFjcGlfZHJoZF91 bml0ICpkcmhkKTsKQEAgLTYwLDggKzYxLDggQEAgaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0 cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdTY0 IGFkZHIsIHVuc2lnbmVkIGludCBzaXplX29yZGVyLCB1NjQgdHlwZSk7CiAKIGludCBfX211c3Rf Y2hlY2sgcWludmFsX2RldmljZV9pb3RsYl9zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgbWF4X2ludnNfcGVuZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUxNiBzaWQsIHUxNiBz aXplLCB1NjQgYWRkcik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgcGNpX2F0c19kZXYgKmF0c19kZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1MTYgZGlkLCB1MTYgc2l6ZSwgdTY0IGFkZHIpOwogCiB1bnNpZ25l ZCBpbnQgZ2V0X2NhY2hlX2xpbmVfc2l6ZSh2b2lkKTsKIHZvaWQgY2FjaGVsaW5lX2ZsdXNoKGNo YXIgKik7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcWludmFsLmMKaW5kZXggNDQ5MmIyOS4uZTRl Mjc3MSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5jCisr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpAQCAtMjcsMTEgKzI3LDEx IEBACiAjaW5jbHVkZSAiZG1hci5oIgogI2luY2x1ZGUgInZ0ZC5oIgogI2luY2x1ZGUgImV4dGVy bi5oIgorI2luY2x1ZGUgIi4uL2F0cy5oIgogCiAjZGVmaW5lIFZURF9RSV9USU1FT1VUCTEKIAot c3RhdGljIGludCBfX211c3RfY2hlY2sgaW52YWxpZGF0ZV9zeW5jKHN0cnVjdCBpb21tdSAqaW9t bXUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90IGZsdXNo X2Rldl9pb3RsYik7CitzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnZhbGlkYXRlX3N5bmMoc3Ry dWN0IGlvbW11ICppb21tdSk7CiAKIHN0YXRpYyB2b2lkIHByaW50X3FpX3JlZ3Moc3RydWN0IGlv bW11ICppb21tdSkKIHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVj ayBxdWV1ZV9pbnZhbGlkYXRlX2NvbnRleHRfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LAogCiAg ICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHFpbnZhbF9lbnRyaWVzKTsKIAotICAgIHJldHVybiBp bnZhbGlkYXRlX3N5bmMoaW9tbXUsIDApOworICAgIHJldHVybiBpbnZhbGlkYXRlX3N5bmMoaW9t bXUpOwogfQogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxi X3N5bmMoc3RydWN0IGlvbW11ICppb21tdSwKQEAgLTE0MCw3ICsxNDAsNyBAQCBzdGF0aWMgaW50 IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZhbGlkYXRlX2lvdGxiX3N5bmMoc3RydWN0IGlvbW11ICpp b21tdSwKICAgICBxaW52YWxfdXBkYXRlX3F0YWlsKGlvbW11LCBpbmRleCk7CiAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPnJlZ2lzdGVyX2xvY2ssIGZsYWdzKTsKIAotICAgIHJl dHVybiBpbnZhbGlkYXRlX3N5bmMoaW9tbXUsIDApOworICAgIHJldHVybiBpbnZhbGlkYXRlX3N5 bmMoaW9tbXUpOwogfQogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZhbGlkYXRl X3dhaXQoc3RydWN0IGlvbW11ICppb21tdSwKQEAgLTE5OSwyNCArMTk5LDczIEBAIHN0YXRpYyBp bnQgX19tdXN0X2NoZWNrIHF1ZXVlX2ludmFsaWRhdGVfd2FpdChzdHJ1Y3QgaW9tbXUgKmlvbW11 LAogICAgIHJldHVybiAtRU9QTk9UU1VQUDsKIH0KIAotc3RhdGljIGludCBfX211c3RfY2hlY2sg aW52YWxpZGF0ZV9zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYikKK3N0YXRpYyBpbnQg X19tdXN0X2NoZWNrIGludmFsaWRhdGVfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11KQogewogICAg IHN0cnVjdCBxaV9jdHJsICpxaV9jdHJsID0gaW9tbXVfcWlfY3RybChpb21tdSk7CiAKICAgICBB U1NFUlQocWlfY3RybC0+cWludmFsX21hZGRyKTsKIAotICAgIHJldHVybiBxdWV1ZV9pbnZhbGlk YXRlX3dhaXQoaW9tbXUsIDAsIDEsIDEsIGZsdXNoX2Rldl9pb3RsYik7CisgICAgcmV0dXJuIHF1 ZXVlX2ludmFsaWRhdGVfd2FpdChpb21tdSwgMCwgMSwgMSwgMCk7Cit9CisKK3N0YXRpYyB2b2lk IGRldl9pbnZhbGlkYXRlX2lvdGxiX3RpbWVvdXQoc3RydWN0IGlvbW11ICppb21tdSwgdTE2IGRp ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBjaV9k ZXYgKnBkZXYpCit7CisgICAgc3RydWN0IGRvbWFpbiAqZCA9IE5VTEw7CisKKyAgICBpZiAoIHRl c3RfYml0KGRpZCwgaW9tbXUtPmRvbWlkX2JpdG1hcCkgKQorICAgICAgICBkID0gcmN1X2xvY2tf ZG9tYWluX2J5X2lkKGlvbW11LT5kb21pZF9tYXBbZGlkXSk7CisKKyAgICAvKgorICAgICAqIElu IGNhc2UgdGhlIGRvbWFpbiBoYXMgYmVlbiBmcmVlZCBvciB0aGUgSU9NTVUgZG9taWQgYml0bWFw IGlzCisgICAgICogbm90IHZhbGlkLCB0aGUgZGV2aWNlIG5vIGxvbmdlciBiZWxvbmdzIHRvIHRo aXMgZG9tYWluLgorICAgICAqLworICAgIGlmICggZCA9PSBOVUxMICkKKyAgICAgICAgcmV0dXJu OworCisgICAgcGNpZGV2c19sb2NrKCk7CisgICAgQVNTRVJUKHBkZXYtPmRvbWFpbik7CisgICAg bGlzdF9kZWwoJnBkZXYtPmRvbWFpbl9saXN0KTsKKyAgICBwZGV2LT5kb21haW4gPSBOVUxMOwor ICAgIHBjaV9oaWRlX2V4aXN0aW5nX2RldmljZShwZGV2KTsKKyAgICBwY2lkZXZzX3VubG9jaygp OworCisgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJiBwcmludGtfcmF0ZWxpbWl0KCkg KQorICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYCisgICAgICAgICAgICAg ICAiIGRvbSVkOiBBVFMgZGV2aWNlICUwNHg6JTAyeDolMDJ4LiV1IGZsdXNoIGZhaWxlZFxuIiwK KyAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgcGRldi0+c2VnLCBwZGV2LT5idXMsCisgICAg ICAgICAgICAgICBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7 CisKKyAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZCkgKQorICAgICAgICBkb21haW5fY3Jh c2goZCk7CisKKyAgICByY3VfdW5sb2NrX2RvbWFpbihkKTsKK30KKworc3RhdGljIGludCBfX211 c3RfY2hlY2sgZGV2X2ludmFsaWRhdGVfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LCB1MTYgZGlk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNp X2RldiAqcGRldikKK3sKKyAgICBzdHJ1Y3QgcWlfY3RybCAqcWlfY3RybCA9IGlvbW11X3FpX2N0 cmwoaW9tbXUpOworICAgIGludCByYzsKKworICAgIEFTU0VSVChxaV9jdHJsLT5xaW52YWxfbWFk ZHIpOworICAgIHJjID0gcXVldWVfaW52YWxpZGF0ZV93YWl0KGlvbW11LCAwLCAxLCAxLCAxKTsK KworICAgIGlmICggcmMgPT0gLUVUSU1FRE9VVCApCisgICAgICAgIGRldl9pbnZhbGlkYXRlX2lv dGxiX3RpbWVvdXQoaW9tbXUsIGRpZCwgcGRldik7CisKKyAgICByZXR1cm4gcmM7CiB9CiAKIGlu dCBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdTMyIG1heF9pbnZzX3BlbmQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHUxNiBzaWQsIHUxNiBzaXplLCB1NjQgYWRkcikKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHBjaV9hdHNfZGV2ICphdHNfZGV2LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1MTYgZGlkLCB1MTYgc2l6ZSwgdTY0IGFkZHIpCiB7CiAgICAgdW5z aWduZWQgbG9uZyBmbGFnczsKICAgICB1bnNpZ25lZCBpbnQgaW5kZXg7CiAgICAgdTY0IGVudHJ5 X2Jhc2U7CiAgICAgc3RydWN0IHFpbnZhbF9lbnRyeSAqcWludmFsX2VudHJ5LCAqcWludmFsX2Vu dHJpZXM7CisgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYgPSBhdHNfZGV2LT5wY2lfZGV2OwogCiAg ICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5yZWdpc3Rlcl9sb2NrLCBmbGFncyk7CiAgICAg aW5kZXggPSBxaW52YWxfbmV4dF9pbmRleChpb21tdSk7CkBAIC0yMjcsOSArMjc2LDkgQEAgaW50 IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhzdHJ1Y3QgaW9tbXUgKmlvbW11LAogCiAgICAgcWlu dmFsX2VudHJ5LT5xLmRldl9pb3RsYl9pbnZfZHNjLmxvLnR5cGUgPSBUWVBFX0lOVkFMX0RFVklD RV9JT1RMQjsKICAgICBxaW52YWxfZW50cnktPnEuZGV2X2lvdGxiX2ludl9kc2MubG8ucmVzXzEg PSAwOwotICAgIHFpbnZhbF9lbnRyeS0+cS5kZXZfaW90bGJfaW52X2RzYy5sby5tYXhfaW52c19w ZW5kID0gbWF4X2ludnNfcGVuZDsKKyAgICBxaW52YWxfZW50cnktPnEuZGV2X2lvdGxiX2ludl9k c2MubG8ubWF4X2ludnNfcGVuZCA9IGF0c19kZXYtPmF0c19xdWV1ZV9kZXB0aDsKICAgICBxaW52 YWxfZW50cnktPnEuZGV2X2lvdGxiX2ludl9kc2MubG8ucmVzXzIgPSAwOwotICAgIHFpbnZhbF9l bnRyeS0+cS5kZXZfaW90bGJfaW52X2RzYy5sby5zaWQgPSBzaWQ7CisgICAgcWludmFsX2VudHJ5 LT5xLmRldl9pb3RsYl9pbnZfZHNjLmxvLnNpZCA9IFBDSV9CREYyKHBkZXYtPmJ1cywgcGRldi0+ ZGV2Zm4pOwogICAgIHFpbnZhbF9lbnRyeS0+cS5kZXZfaW90bGJfaW52X2RzYy5sby5yZXNfMyA9 IDA7CiAKICAgICBxaW52YWxfZW50cnktPnEuZGV2X2lvdGxiX2ludl9kc2MuaGkuc2l6ZSA9IHNp emU7CkBAIC0yNDAsNyArMjg5LDcgQEAgaW50IHFpbnZhbF9kZXZpY2VfaW90bGJfc3luYyhzdHJ1 Y3QgaW9tbXUgKmlvbW11LAogICAgIHFpbnZhbF91cGRhdGVfcXRhaWwoaW9tbXUsIGluZGV4KTsK ICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+cmVnaXN0ZXJfbG9jaywgZmxhZ3Mp OwogCi0gICAgcmV0dXJuIGludmFsaWRhdGVfc3luYyhpb21tdSwgMSk7CisgICAgcmV0dXJuIGRl dl9pbnZhbGlkYXRlX3N5bmMoaW9tbXUsIGRpZCwgcGRldik7CiB9CiAKIHN0YXRpYyBpbnQgX19t dXN0X2NoZWNrIHF1ZXVlX2ludmFsaWRhdGVfaWVjX3N5bmMoc3RydWN0IGlvbW11ICppb21tdSwK QEAgLTI3MSw3ICszMjAsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBxdWV1ZV9pbnZhbGlk YXRlX2llY19zeW5jKHN0cnVjdCBpb21tdSAqaW9tbXUsCiAgICAgcWludmFsX3VwZGF0ZV9xdGFp bChpb21tdSwgaW5kZXgpOwogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5yZWdp c3Rlcl9sb2NrLCBmbGFncyk7CiAKLSAgICByZXQgPSBpbnZhbGlkYXRlX3N5bmMoaW9tbXUsIDAp OworICAgIHJldCA9IGludmFsaWRhdGVfc3luYyhpb21tdSk7CiAKICAgICAvKgogICAgICAqIHJl YWRpbmcgdnQtZCBhcmNoaXRlY3R1cmUgcmVnaXN0ZXIgd2lsbCBlbnN1cmUKZGlmZiAtLWdpdCBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQveDg2L2F0cy5jCmluZGV4IGE2YzUzZWEuLmJlMmExNTUgMTAwNjQ0Ci0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC94ODYvYXRzLmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3g4Ni9hdHMuYwpAQCAtMTIxLDE1ICsxMjEsMTIgQEAgaW50IGRldl9p bnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCiAgICAgbGlzdF9m b3JfZWFjaF9lbnRyeSggcGRldiwgJmF0c19kZXZpY2VzLCBsaXN0ICkKICAgICB7CiAgICAgICAg IHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2ID0gcGRldi0+cGNpX2RldjsKLSAgICAgICAgdTE2IHNp ZDsKICAgICAgICAgYm9vbF90IHNiaXQ7CiAgICAgICAgIGludCByYyA9IDA7CiAKICAgICAgICAg aWYgKCAhcGNpX2RldiApCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBzaWQgPSBQ Q0lfQkRGMihwY2lfZGV2LT5idXMsIHBjaV9kZXYtPmRldmZuKTsKLQogICAgICAgICAvKiBPbmx5 IGludmFsaWRhdGUgZGV2aWNlcyB0aGF0IGJlbG9uZyB0byB0aGlzIElPTU1VICovCiAgICAgICAg IGlmICggcGRldi0+aW9tbXUgIT0gaW9tbXUgKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0x NDQsOCArMTQxLDcgQEAgaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9t bXUsIHUxNiBkaWQsCiAgICAgICAgICAgICAvKiBpbnZhbGlkYXRlIGFsbCB0cmFuc2xhdGlvbnM6 IHNiaXQ9MSxiaXRfNjM9MCxiaXRbNjI6MTJdPTEgKi8KICAgICAgICAgICAgIHNiaXQgPSAxOwog ICAgICAgICAgICAgYWRkciA9ICh+MFVMIDw8IFBBR0VfU0hJRlRfNEspICYgMHg3RkZGRkZGRkZG RkZGRkZGOwotICAgICAgICAgICAgcmMgPSBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoaW9tbXUs IHBkZXYtPmF0c19xdWV1ZV9kZXB0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpZCwgc2JpdCwgYWRkcik7CisgICAgICAgICAgICByYyA9IHFpbnZhbF9kZXZp Y2VfaW90bGJfc3luYyhpb21tdSwgcGRldiwgZGlkLCBzYml0LCBhZGRyKTsKICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICBjYXNlIERNQV9UTEJfUFNJX0ZMVVNIOgogICAgICAgICAgICAgaWYg KCAhZGV2aWNlX2luX2RvbWFpbihpb21tdSwgcGRldiwgZGlkKSApCkBAIC0xNjQsOCArMTYwLDcg QEAgaW50IGRldl9pbnZhbGlkYXRlX2lvdGxiKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQs CiAgICAgICAgICAgICAgICAgYWRkciB8PSAoKCh1NjQpMSA8PCAoc2l6ZV9vcmRlciAtIDEpKSAt IDEpIDw8IFBBR0VfU0hJRlRfNEs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJjID0g cWludmFsX2RldmljZV9pb3RsYl9zeW5jKGlvbW11LCBwZGV2LT5hdHNfcXVldWVfZGVwdGgsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWQsIHNiaXQsIGFkZHIp OworICAgICAgICAgICAgcmMgPSBxaW52YWxfZGV2aWNlX2lvdGxiX3N5bmMoaW9tbXUsIHBkZXYs IGRpZCwgc2JpdCwgYWRkcik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoK ICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYLCAiaW52YWxpZCB2 dC1kIGZsdXNoIHR5cGVcbiIpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3BjaS5oIGIv eGVuL2luY2x1ZGUveGVuL3BjaS5oCmluZGV4IDZlZDI5ZGQuLmU0OTQwY2QgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hlbi9wY2kuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vcGNpLmgKQEAgLTEx OCw2ICsxMTgsNyBAQCBpbnQgcGNpX2FkZF9kZXZpY2UodTE2IHNlZywgdTggYnVzLCB1OCBkZXZm biwKIGludCBwY2lfcmVtb3ZlX2RldmljZSh1MTYgc2VnLCB1OCBidXMsIHU4IGRldmZuKTsKIGlu dCBwY2lfcm9fZGV2aWNlKGludCBzZWcsIGludCBidXMsIGludCBkZXZmbik7CiBpbnQgcGNpX2hp ZGVfZGV2aWNlKGludCBidXMsIGludCBkZXZmbik7Cit2b2lkIHBjaV9oaWRlX2V4aXN0aW5nX2Rl dmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiBzdHJ1Y3QgcGNpX2RldiAqcGNpX2dldF9wZGV2 KGludCBzZWcsIGludCBidXMsIGludCBkZXZmbik7CiBzdHJ1Y3QgcGNpX2RldiAqcGNpX2dldF9y ZWFsX3BkZXYoaW50IHNlZywgaW50IGJ1cywgaW50IGRldmZuKTsKIHN0cnVjdCBwY2lfZGV2ICpw Y2lfZ2V0X3BkZXZfYnlfZG9tYWluKAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=