From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhang Subject: [PATCH v7 4/5] ix86/ioreq server: Asynchronously reset outstanding p2m_ioreq_server entries. Date: Wed, 8 Mar 2017 21:32:29 +0800 Message-ID: <1488979950-10872-5-git-send-email-yu.c.zhang@linux.intel.com> References: <1488979950-10872-1-git-send-email-yu.c.zhang@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1488979950-10872-1-git-send-email-yu.c.zhang@linux.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: zhiyuan.lv@intel.com List-Id: xen-devel@lists.xenproject.org QWZ0ZXIgYW4gaW9yZXEgc2VydmVyIGhhcyB1bm1hcHBlZCwgdGhlIHJlbWFpbmluZyBwMm1faW9y ZXFfc2VydmVyCmVudHJpZXMgbmVlZCB0byBiZSByZXNldCBiYWNrIHRvIHAybV9yYW1fcncuIFRo aXMgcGF0Y2ggZG9lcyB0aGlzCmFzeW5jaHJvbm91c2x5IHdpdGggdGhlIGN1cnJlbnQgcDJtX2No YW5nZV9lbnRyeV90eXBlX2dsb2JhbCgpCmludGVyZmFjZS4KClRoaXMgcGF0Y2ggYWxzbyBkaXNh bGxvd3MgbGl2ZSBtaWdyYXRpb24sIHdoZW4gdGhlcmUncyBzdGlsbCBhbnkKb3V0c3RhbmRpbmcg cDJtX2lvcmVxX3NlcnZlciBlbnRyeSBsZWZ0LiBUaGUgY29yZSByZWFzb24gaXMgb3VyCmN1cnJl bnQgaW1wbGVtZW50YXRpb24gb2YgcDJtX2NoYW5nZV9lbnRyeV90eXBlX2dsb2JhbCgpIGNhbiBu b3QKdGVsbCB0aGUgc3RhdGUgb2YgcDJtX2lvcmVxX3NlcnZlciBlbnRyaWVzKGNhbiBub3QgZGVj aWRlIGlmIGFuCmVudHJ5IGlzIHRvIGJlIGVtdWxhdGVkIG9yIHRvIGJlIHJlc3luY2VkKS4KClNp Z25lZC1vZmYtYnk6IFl1IFpoYW5nIDx5dS5jLnpoYW5nQGxpbnV4LmludGVsLmNvbT4KLS0tCkNj OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpDYzogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0 cml4LmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4LmNvbT4K Q2M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4KQ2M6IEtldmluIFRpYW4g PGtldmluLnRpYW5AaW50ZWwuY29tPgoKY2hhbmdlcyBpbiB2MzogCiAgLSBNb3ZlIHRoZSBzeW5j aHJvbm91c2x5IHJlc2V0dGluZyBsb2dpYyBpbnRvIHBhdGNoIDUuCiAgLSBBY2NvcmRpbmcgdG8g Y29tbWVudHMgZnJvbSBKYW46IGludHJvZHVjZSBwMm1fY2hlY2tfY2hhbmdlYWJsZSgpCiAgICB0 byBjbGFyaWZ5IHRoZSBwMm0gdHlwZSBjaGFuZ2UgY29kZS4KICAtIEFjY29yZGluZyB0byBjb21t ZW50cyBmcm9tIEdlb3JnZTogdXNlIGxvY2tzIGluIHRoZSBzYW1lIG9yZGVyCiAgICB0byBhdm9p ZCBkZWFkbG9jaywgY2FsbCBwMm1fY2hhbmdlX2VudHJ5X3R5cGVfZ2xvYmFsKCkgYWZ0ZXIgdW5t YXAKICAgIG9mIHRoZSBpb3JlcSBzZXJ2ZXIgaXMgZmluaXNoZWQuCgpjaGFuZ2VzIGluIHYyOiAK ICAtIE1vdmUgdGhlIGNhbGN1bGF0aW9uIG9mIGlvcmVxIHNlcnZlciBwYWdlIGVudHJ5X2NvdXQg aW50byAKICAgIHAybV9jaGFuZ2VfdHlwZV9vbmUoKSBzbyB0aGF0IHdlIGRvIG5vdCBuZWVkIGEg c2VwZXJhdGUgbG9jay4KICAgIE5vdGU6IGVudHJ5X2NvdW50IGlzIGFsc28gY2FsY3VsYXRlZCBp biByZXNvbHZlX21pc2NvbmZpZygpLwogICAgZG9fcmVjYWxjKCksIGZvcnR1bmF0ZWx5IGNhbGxl cnMgb2YgYm90aCByb3V0aW5lcyBoYXZlIHAybQogICAgbG9jayBwcm90ZWN0ZWQgYWxyZWFkeS4K ICAtIFNpbXBsaWZ5IGxvZ2ljIGluIGh2bW9wX3NldF9tZW1fdHlwZSgpLgogIC0gSW50cm9kdWNl IHJvdXRpbmUgcDJtX2ZpbmlzaF90eXBlX2NoYW5nZSgpIHRvIHdhbGsgdGhlIHAybQogICAgdGFi bGUgYW5kIGRvIHRoZSBwMm0gcmVzZXQuCi0tLQogeGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jICB8 ICA4ICsrKysrKysrCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jIHwgIDkgKysrKysrKysrCiB4 ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jIHwgIDggKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9tbS9w Mm0tcHQuYyAgfCAxMyArKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgIHwg MjAgKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggfCAgOSAr KysrKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgYi94ZW4vYXJjaC94ODYv aHZtL2lvcmVxLmMKaW5kZXggZmNiOWYzOC4uYzEyOWViNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L2h2bS9pb3JlcS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwpAQCAtOTQ5LDYg Kzk0OSwxNCBAQCBpbnQgaHZtX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0IGRv bWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKIAogICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+ YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKIAorICAgIGlmICggcmMgPT0gMCAm JiBmbGFncyA9PSAwICkKKyAgICB7CisgICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSBw Mm1fZ2V0X2hvc3RwMm0oZCk7CisKKyAgICAgICAgaWYgKCByZWFkX2F0b21pYygmcDJtLT5pb3Jl cS5lbnRyeV9jb3VudCkgKQorICAgICAgICAgICAgcDJtX2NoYW5nZV9lbnRyeV90eXBlX2dsb2Jh bChkLCBwMm1faW9yZXFfc2VydmVyLCBwMm1fcmFtX3J3KTsKKyAgICB9CisKICAgICByZXR1cm4g cmM7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgYi94ZW4vYXJj aC94ODYvbW0vaGFwL2hhcC5jCmluZGV4IGE1N2IzODUuLmYyN2E1NmYgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwpA QCAtMTg3LDYgKzE4NywxNSBAQCBvdXQ6CiAgKi8KIHN0YXRpYyBpbnQgaGFwX2VuYWJsZV9sb2df ZGlydHkoc3RydWN0IGRvbWFpbiAqZCwgYm9vbF90IGxvZ19nbG9iYWwpCiB7CisgICAgc3RydWN0 IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKKworICAgIC8qCisgICAgKiBS ZWZ1c2UgdG8gdHVybiBvbiBnbG9iYWwgbG9nLWRpcnR5IG1vZGUgaWYKKyAgICAqIHRoZXJlJ3Mg b3V0c3RhbmRpbmcgcDJtX2lvcmVxX3NlcnZlciBwYWdlcy4KKyAgICAqLworICAgIGlmICggbG9n X2dsb2JhbCAmJiByZWFkX2F0b21pYygmcDJtLT5pb3JlcS5lbnRyeV9jb3VudCkgKQorICAgICAg ICByZXR1cm4gLUVCVVNZOworCiAgICAgLyogdHVybiBvbiBQR19sb2dfZGlydHkgYml0IGluIHBh Z2luZyBtb2RlICovCiAgICAgcGFnaW5nX2xvY2soZCk7CiAgICAgZC0+YXJjaC5wYWdpbmcubW9k ZSB8PSBQR19sb2dfZGlydHk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5j IGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCBjYzFlYjIxLi4xZGYzZDA5IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9w Mm0tZXB0LmMKQEAgLTU0NCw2ICs1NDQsMTIgQEAgc3RhdGljIGludCByZXNvbHZlX21pc2NvbmZp ZyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICAgICAgICAg ICAgICAgICAgZS5pcGF0ID0gaXBhdDsKICAgICAgICAgICAgICAgICAgICAgaWYgKCBlLnJlY2Fs YyAmJiBwMm1faXNfY2hhbmdlYWJsZShlLnNhX3AybXQpICkKICAgICAgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZS5zYV9wMm10ID09IHAybV9pb3JlcV9z ZXJ2ZXIgKQorICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcDJtLT5pb3JlcS5lbnRyeV9jb3VudC0tOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBU1NFUlQocDJtLT5pb3JlcS5lbnRyeV9jb3VudCA+PSAwKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICAgICAgICAgICBlLnNhX3AybXQgPSBw Mm1faXNfbG9nZGlydHlfcmFuZ2UocDJtLCBnZm4gKyBpLCBnZm4gKyBpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgID8gcDJtX3JhbV9sb2dkaXJ0eSA6IHAybV9yYW1fcnc7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgZXB0X3AybV90eXBlX3RvX2ZsYWdzKHAybSwgJmUs IGUuc2FfcDJtdCwgZS5hY2Nlc3MpOwpAQCAtOTY1LDcgKzk3MSw3IEBAIHN0YXRpYyBtZm5fdCBl cHRfZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sCiAgICAgaWYgKCBpc19lcHRlX3Zh bGlkKGVwdF9lbnRyeSkgKQogICAgIHsKICAgICAgICAgaWYgKCAocmVjYWxjIHx8IGVwdF9lbnRy eS0+cmVjYWxjKSAmJgotICAgICAgICAgICAgIHAybV9pc19jaGFuZ2VhYmxlKGVwdF9lbnRyeS0+ c2FfcDJtdCkgKQorICAgICAgICAgICAgIHAybV9jaGVja19jaGFuZ2VhYmxlKGVwdF9lbnRyeS0+ c2FfcDJtdCkgKQogICAgICAgICAgICAgKnQgPSBwMm1faXNfbG9nZGlydHlfcmFuZ2UocDJtLCBn Zm4sIGdmbikgPyBwMm1fcmFtX2xvZ2RpcnR5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IHAybV9yYW1fcnc7CiAgICAgICAgIGVsc2UKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0t cHQuYwppbmRleCA5N2RjMjVkLi5kOWE3Yjc2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0v cDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCkBAIC00MzcsMTEgKzQzNywx MyBAQCBzdGF0aWMgaW50IGRvX3JlY2FsYyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25l ZCBsb25nIGdmbikKICAgICAgICAgIG5lZWRzX3JlY2FsYyhsMSwgKnBlbnQpICkKICAgICB7CiAg ICAgICAgIGwxX3BnZW50cnlfdCBlID0gKnBlbnQ7CisgICAgICAgIHAybV90eXBlX3QgcDJtdF9v bGQ7CiAKICAgICAgICAgaWYgKCAhdmFsaWRfcmVjYWxjKGwxLCBlKSApCiAgICAgICAgICAgICBQ Mk1fREVCVUcoImJvZ3VzIHJlY2FsYyBsZWFmIGF0IGQlZDolbHg6JXVcbiIsCiAgICAgICAgICAg ICAgICAgICAgICAgcDJtLT5kb21haW4tPmRvbWFpbl9pZCwgZ2ZuLCBsZXZlbCk7Ci0gICAgICAg IGlmICggcDJtX2lzX2NoYW5nZWFibGUocDJtX2ZsYWdzX3RvX3R5cGUobDFlX2dldF9mbGFncyhl KSkpICkKKyAgICAgICAgcDJtdF9vbGQgPSBwMm1fZmxhZ3NfdG9fdHlwZShsMWVfZ2V0X2ZsYWdz KGUpKTsKKyAgICAgICAgaWYgKCBwMm1faXNfY2hhbmdlYWJsZShwMm10X29sZCkgKQogICAgICAg ICB7CiAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIG1hc2sgPSB+MFVMIDw8IChsZXZlbCAqIFBB R0VUQUJMRV9PUkRFUik7CiAgICAgICAgICAgICBwMm1fdHlwZV90IHAybXQgPSBwMm1faXNfbG9n ZGlydHlfcmFuZ2UocDJtLCBnZm4gJiBtYXNrLCBnZm4gfCB+bWFzaykKQEAgLTQ2MSw2ICs0NjMs MTMgQEAgc3RhdGljIGludCBkb19yZWNhbGMoc3RydWN0IHAybV9kb21haW4gKnAybSwgdW5zaWdu ZWQgbG9uZyBnZm4pCiAgICAgICAgICAgICAgICAgICAgICBtZm4gJj0gfihfUEFHRV9QU0VfUEFU ID4+IFBBR0VfU0hJRlQpOwogICAgICAgICAgICAgICAgIGZsYWdzIHw9IF9QQUdFX1BTRTsKICAg ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCBwMm10X29sZCA9PSBwMm1faW9yZXFfc2Vy dmVyICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwMm0tPmlvcmVxLmVudHJ5X2Nv dW50LS07CisgICAgICAgICAgICAgICAgQVNTRVJUKHAybS0+aW9yZXEuZW50cnlfY291bnQgPj0g MCk7CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIGUgPSBsMWVfZnJvbV9wZm4obWZuLCBm bGFncyk7CiAgICAgICAgICAgICBwMm1fYWRkX2lvbW11X2ZsYWdzKCZlLCBsZXZlbCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHAybXQgPT0gcDJtX3JhbV9ydykKQEAgLTczMCw3 ICs3MzksNyBAQCBwMm1fcHRfc2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2ln bmVkIGxvbmcgZ2ZuLCBtZm5fdCBtZm4sCiBzdGF0aWMgaW5saW5lIHAybV90eXBlX3QgcmVjYWxj X3R5cGUoYm9vbF90IHJlY2FsYywgcDJtX3R5cGVfdCB0LAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVuc2lnbmVkIGxvbmcgZ2Zu KQogewotICAgIGlmICggIXJlY2FsYyB8fCAhcDJtX2lzX2NoYW5nZWFibGUodCkgKQorICAgIGlm ICggIXJlY2FsYyB8fCAhcDJtX2NoZWNrX2NoYW5nZWFibGUodCkgKQogICAgICAgICByZXR1cm4g dDsKICAgICByZXR1cm4gcDJtX2lzX2xvZ2RpcnR5X3JhbmdlKHAybSwgZ2ZuLCBnZm4pID8gcDJt X3JhbV9sb2dkaXJ0eQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiBwMm1fcmFtX3J3OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIv eGVuL2FyY2gveDg2L21tL3AybS5jCmluZGV4IDBlZGZjNjEuLjk0ZDcxNDEgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9wMm0uYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKQEAgLTk1 NCw2ICs5NTQsMjYgQEAgaW50IHAybV9jaGFuZ2VfdHlwZV9vbmUoc3RydWN0IGRvbWFpbiAqZCwg dW5zaWduZWQgbG9uZyBnZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgcDJtLT5kZWZhdWx0 X2FjY2VzcykKICAgICAgICAgIDogLUVCVVNZOwogCisgICAgaWYgKCAhcmMgKQorICAgIHsKKyAg ICAgICAgc3dpdGNoICggbnQgKQorICAgICAgICB7CisgICAgICAgIGNhc2UgcDJtX3JhbV9ydzoK KyAgICAgICAgICAgIGlmICggb3QgPT0gcDJtX2lvcmVxX3NlcnZlciApCisgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgcDJtLT5pb3JlcS5lbnRyeV9jb3VudC0tOworICAgICAgICAgICAg ICAgIEFTU0VSVChwMm0tPmlvcmVxLmVudHJ5X2NvdW50ID49IDApOworICAgICAgICAgICAgfQor ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgcDJtX2lvcmVxX3NlcnZlcjoKKyAgICAg ICAgICAgIGlmICggb3QgPT0gcDJtX3JhbV9ydyApCisgICAgICAgICAgICAgICAgcDJtLT5pb3Jl cS5lbnRyeV9jb3VudCsrOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGdmbl91bmxvY2socDJt LCBnZm4sIDApOwogCiAgICAgcmV0dXJuIHJjOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKaW5kZXggMzc4NjY4MC4uMzk1 ZjEyNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L3AybS5oCkBAIC0xMjAsNyArMTIwLDEwIEBAIHR5cGVkZWYgdW5zaWduZWQg aW50IHAybV9xdWVyeV90OwogCiAvKiBUeXBlcyB0aGF0IGNhbiBiZSBzdWJqZWN0IHRvIGJ1bGsg dHJhbnNpdGlvbnMuICovCiAjZGVmaW5lIFAyTV9DSEFOR0VBQkxFX1RZUEVTIChwMm1fdG9fbWFz ayhwMm1fcmFtX3J3KSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHAybV90b19t YXNrKHAybV9yYW1fbG9nZGlydHkpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg cDJtX3RvX21hc2socDJtX3JhbV9sb2dkaXJ0eSkgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBwMm1fdG9fbWFzayhwMm1faW9yZXFfc2VydmVyKSApCisKKyNkZWZpbmUgUDJNX0lP UkVRX1RZUEVTIChwMm1fdG9fbWFzayhwMm1faW9yZXFfc2VydmVyKSkKIAogI2RlZmluZSBQMk1f UE9EX1RZUEVTIChwMm1fdG9fbWFzayhwMm1fcG9wdWxhdGVfb25fZGVtYW5kKSkKIApAQCAtMTU3 LDYgKzE2MCw3IEBAIHR5cGVkZWYgdW5zaWduZWQgaW50IHAybV9xdWVyeV90OwogI2RlZmluZSBw Mm1faXNfcmVhZG9ubHkoX3QpIChwMm1fdG9fbWFzayhfdCkgJiBQMk1fUk9fVFlQRVMpCiAjZGVm aW5lIHAybV9pc19kaXNjYXJkX3dyaXRlKF90KSAocDJtX3RvX21hc2soX3QpICYgUDJNX0RJU0NB UkRfV1JJVEVfVFlQRVMpCiAjZGVmaW5lIHAybV9pc19jaGFuZ2VhYmxlKF90KSAocDJtX3RvX21h c2soX3QpICYgUDJNX0NIQU5HRUFCTEVfVFlQRVMpCisjZGVmaW5lIHAybV9pc19pb3JlcShfdCkg KHAybV90b19tYXNrKF90KSAmIFAyTV9JT1JFUV9UWVBFUykKICNkZWZpbmUgcDJtX2lzX3BvZChf dCkgKHAybV90b19tYXNrKF90KSAmIFAyTV9QT0RfVFlQRVMpCiAjZGVmaW5lIHAybV9pc19ncmFu dChfdCkgKHAybV90b19tYXNrKF90KSAmIFAyTV9HUkFOVF9UWVBFUykKIC8qIEdyYW50IHR5cGVz IGFyZSAqbm90KiBjb25zaWRlcmVkIHZhbGlkLCBiZWNhdXNlIHRoZXkgY2FuIGJlCkBAIC0xNzgs NiArMTgyLDggQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgcDJtX3F1ZXJ5X3Q7CiAKICNkZWZpbmUg cDJtX2FsbG93c19pbnZhbGlkX21mbih0KSAocDJtX3RvX21hc2sodCkgJiBQMk1fSU5WQUxJRF9N Rk5fVFlQRVMpCiAKKyNkZWZpbmUgcDJtX2NoZWNrX2NoYW5nZWFibGUodCkgKHAybV9pc19jaGFu Z2VhYmxlKHQpICYmICFwMm1faXNfaW9yZXEodCkpCisKIHR5cGVkZWYgZW51bSB7CiAgICAgcDJt X2hvc3QsCiAgICAgcDJtX25lc3RlZCwKQEAgLTM0OSw2ICszNTUsNyBAQCBzdHJ1Y3QgcDJtX2Rv bWFpbiB7CiAgICAgICAgICAgKiBhcmUgdG8gYmUgZW11bGF0ZWQgYnkgYW4gaW9yZXEgc2VydmVy LgogICAgICAgICAgICovCiAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3M7CisgICAgICAgICBs b25nIGVudHJ5X2NvdW50OwogICAgICB9IGlvcmVxOwogfTsKIAotLSAKMS45LjEKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK