From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yu Zhang Subject: [PATCH v10 5/6] x86/ioreq server: Asynchronously reset outstanding p2m_ioreq_server entries. Date: Sun, 2 Apr 2017 20:24:26 +0800 Message-ID: <1491135867-623-6-git-send-email-yu.c.zhang@linux.intel.com> References: <1491135867-623-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: <1491135867-623-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: Kevin Tian , Jun Nakajima , George Dunlap , Andrew Cooper , Paul Durrant , zhiyuan.lv@intel.com, Jan Beulich List-Id: xen-devel@lists.xenproject.org QWZ0ZXIgYW4gaW9yZXEgc2VydmVyIGhhcyB1bm1hcHBlZCwgdGhlIHJlbWFpbmluZyBwMm1faW9y ZXFfc2VydmVyCmVudHJpZXMgbmVlZCB0byBiZSByZXNldCBiYWNrIHRvIHAybV9yYW1fcncuIFRo aXMgcGF0Y2ggZG9lcyB0aGlzCmFzeW5jaHJvbm91c2x5IHdpdGggdGhlIGN1cnJlbnQgcDJtX2No YW5nZV9lbnRyeV90eXBlX2dsb2JhbCgpCmludGVyZmFjZS4KCk5ldyBmaWVsZCBlbnRyeV9jb3Vu dCBpcyBpbnRyb2R1Y2VkIGluIHN0cnVjdCBwMm1fZG9tYWluLCB0byByZWNvcmQKdGhlIG51bWJl ciBvZiBwMm1faW9yZXFfc2VydmVyIHAybSBwYWdlIHRhYmxlIGVudHJpZXMuIE9uZSBuYXR1cmUg b2YKdGhlc2UgZW50cmllcyBpcyB0aGF0IHRoZXkgb25seSBwb2ludCB0byA0SyBzaXplZCBwYWdl IGZyYW1lcywgYmVjYXVzZQphbGwgcDJtX2lvcmVxX3NlcnZlciBlbnRyaWVzIGFyZSBvcmlnaW5h dGVkIGZyb20gcDJtX3JhbV9ydyBvbmVzIGluCnAybV9jaGFuZ2VfdHlwZV9vbmUoKS4gV2UgZG8g bm90IG5lZWQgdG8gd29ycnkgYWJvdXQgdGhlIGNvdW50aW5nIGZvcgoyTS8xRyBzaXplZCBwYWdl cy4KClRoaXMgcGF0Y2ggZGlzYWxsb3dzIG1hcHBpbmcgb2YgYW4gaW9yZXEgc2VydmVyLCB3aGVu IHRoZXJlJ3Mgc3RpbGwKcDJtX2lvcmVxX3NlcnZlciBlbnRyeSBsZWZ0LCBpbiBjYXNlIGFub3Ro ZXIgbWFwcGluZyBvY2N1cnMgcmlnaHQgYWZ0ZXIKdGhlIGN1cnJlbnQgb25lIGJlaW5nIHVubWFw cGVkLCByZWxlYXNlcyBpdHMgbG9jaywgd2l0aCBwMm0gdGFibGUgbm90CnN5bmNlZCB5ZXQuCgpU aGlzIHBhdGNoIGFsc28gZGlzYWxsb3dzIGxpdmUgbWlncmF0aW9uLCB3aGVuIHRoZXJlJ3MgcmVt YWluaW5nCnAybV9pb3JlcV9zZXJ2ZXIgZW50cnkgaW4gcDJtIHRhYmxlLiBUaGUgY29yZSByZWFz b24gaXMgb3VyIGN1cnJlbnQKaW1wbGVtZW50YXRpb24gb2YgcDJtX2NoYW5nZV9lbnRyeV90eXBl X2dsb2JhbCgpIGxhY2tzIGluZm9ybWF0aW9uCnRvIHJlc3luYyBwMm1faW9yZXFfc2VydmVyIGVu dHJpZXMgY29ycmVjdGx5IGlmIGdsb2JhbF9sb2dkaXJ0eSBpcwpvbi4KClNpZ25lZC1vZmYtYnk6 IFl1IFpoYW5nIDx5dS5jLnpoYW5nQGxpbnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg RHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+Ci0tLQpDYzogUGF1bCBEdXJyYW50IDxw YXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KQ2M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNjOiBHZW9y Z2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNjOiBKdW4gTmFrYWppbWEg PGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVs LmNvbT4KCmNoYW5nZXMgaW4gdjU6IAogIC0gQWNjb3JkaW5nIHRvIGNvbW1lbnRzIGZyb20gSmFu OiB1c2UgdW5zaWduZWQgbG9uZyBmb3IgZW50cnlfY291bnQ7CiAgLSBBY2NvcmRpbmcgdG8gY29t bWVudHMgZnJvbSBKYW46IHJlZnVzZSBtYXBwaW5nIHJlcXVpcmVtZW50IHdoZW4KICAgIHRoZXJl J3MgcDJtX2lvcmVxX3NlcnZlciByZW1haW5lZCBpbiBwMm0gdGFibGUuCiAgLSBBZGRlZCAiUmV2 aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bC5kdXJyYW50QGNpdHJpeC5jb20+IgoKY2hhbmdl cyBpbiB2NDogCiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBKYW46IHVzZSBBU1NFUlQo KSBpbnN0ZWFkIG9mICdpZicKICAgIGNvbmRpdGlvbiBpbiBwMm1fY2hhbmdlX3R5cGVfb25lKCku CiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJvbSBKYW46IGNvbW1pdCBtZXNzYWdlIGNoYW5n ZXMgdG8gbWVudGlvbgogICAgdGhlIHAybV9pb3JlcV9zZXJ2ZXIgYXJlIGFsbCBiYXNlZCBvbiA0 SyBzaXplZCBwYWdlcy4KCmNoYW5nZXMgaW4gdjM6IAogIC0gTW92ZSB0aGUgc3luY2hyb25vdXNs eSByZXNldHRpbmcgbG9naWMgaW50byBwYXRjaCA1LgogIC0gQWNjb3JkaW5nIHRvIGNvbW1lbnRz IGZyb20gSmFuOiBpbnRyb2R1Y2UgcDJtX2NoZWNrX2NoYW5nZWFibGUoKQogICAgdG8gY2xhcmlm eSB0aGUgcDJtIHR5cGUgY2hhbmdlIGNvZGUuCiAgLSBBY2NvcmRpbmcgdG8gY29tbWVudHMgZnJv bSBHZW9yZ2U6IHVzZSBsb2NrcyBpbiB0aGUgc2FtZSBvcmRlcgogICAgdG8gYXZvaWQgZGVhZGxv Y2ssIGNhbGwgcDJtX2NoYW5nZV9lbnRyeV90eXBlX2dsb2JhbCgpIGFmdGVyIHVubWFwCiAgICBv ZiB0aGUgaW9yZXEgc2VydmVyIGlzIGZpbmlzaGVkLgoKY2hhbmdlcyBpbiB2MjogCiAgLSBNb3Zl IHRoZSBjYWxjdWxhdGlvbiBvZiBpb3JlcSBzZXJ2ZXIgcGFnZSBlbnRyeV9jb3V0IGludG8gCiAg ICBwMm1fY2hhbmdlX3R5cGVfb25lKCkgc28gdGhhdCB3ZSBkbyBub3QgbmVlZCBhIHNlcGVyYXRl IGxvY2suCiAgICBOb3RlOiBlbnRyeV9jb3VudCBpcyBhbHNvIGNhbGN1bGF0ZWQgaW4gcmVzb2x2 ZV9taXNjb25maWcoKS8KICAgIGRvX3JlY2FsYygpLCBmb3J0dW5hdGVseSBjYWxsZXJzIG9mIGJv dGggcm91dGluZXMgaGF2ZSBwMm0gCiAgICBsb2NrIHByb3RlY3RlZCBhbHJlYWR5LgogIC0gU2lt cGxpZnkgbG9naWMgaW4gaHZtb3Bfc2V0X21lbV90eXBlKCkuCiAgLSBJbnRyb2R1Y2Ugcm91dGlu ZSBwMm1fZmluaXNoX3R5cGVfY2hhbmdlKCkgdG8gd2FsayB0aGUgcDJtIAogICAgdGFibGUgYW5k IGRvIHRoZSBwMm0gcmVzZXQuCi0tLQogeGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jICB8ICA4ICsr KysrKysrCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jIHwgIDkgKysrKysrKysrCiB4ZW4vYXJj aC94ODYvbW0vcDJtLWVwdC5jIHwgIDggKysrKysrKy0KIHhlbi9hcmNoL3g4Ni9tbS9wMm0tcHQu YyAgfCAxMyArKysrKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvbW0vcDJtLmMgICAgIHwgMjkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmggfCAg OSArKysrKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgYi94ZW4vYXJjaC94 ODYvaHZtL2lvcmVxLmMKaW5kZXggNWJmM2I2ZC4uMDdhNmMyNiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS9pb3JlcS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwpAQCAtOTU1 LDYgKzk1NSwxNCBAQCBpbnQgaHZtX21hcF9tZW1fdHlwZV90b19pb3JlcV9zZXJ2ZXIoc3RydWN0 IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKIAogICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgm ZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKIAorICAgIGlmICggcmMgPT0g MCAmJiBmbGFncyA9PSAwICkKKyAgICB7CisgICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0g PSBwMm1fZ2V0X2hvc3RwMm0oZCk7CisKKyAgICAgICAgaWYgKCByZWFkX2F0b21pYygmcDJtLT5p b3JlcS5lbnRyeV9jb3VudCkgKQorICAgICAgICAgICAgcDJtX2NoYW5nZV9lbnRyeV90eXBlX2ds b2JhbChkLCBwMm1faW9yZXFfc2VydmVyLCBwMm1fcmFtX3J3KTsKKyAgICB9CisKICAgICByZXR1 cm4gcmM7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgYi94ZW4v YXJjaC94ODYvbW0vaGFwL2hhcC5jCmluZGV4IGE1N2IzODUuLjZlYzk1MGEgMTAwNjQ0Ci0tLSBh L3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAu YwpAQCAtMTg3LDYgKzE4NywxNSBAQCBvdXQ6CiAgKi8KIHN0YXRpYyBpbnQgaGFwX2VuYWJsZV9s b2dfZGlydHkoc3RydWN0IGRvbWFpbiAqZCwgYm9vbF90IGxvZ19nbG9iYWwpCiB7CisgICAgc3Ry dWN0IHAybV9kb21haW4gKnAybSA9IHAybV9nZXRfaG9zdHAybShkKTsKKworICAgIC8qCisgICAg ICogUmVmdXNlIHRvIHR1cm4gb24gZ2xvYmFsIGxvZy1kaXJ0eSBtb2RlIGlmCisgICAgICogdGhl cmUncyBvdXRzdGFuZGluZyBwMm1faW9yZXFfc2VydmVyIHBhZ2VzLgorICAgICAqLworICAgIGlm ICggbG9nX2dsb2JhbCAmJiByZWFkX2F0b21pYygmcDJtLT5pb3JlcS5lbnRyeV9jb3VudCkgKQor ICAgICAgICByZXR1cm4gLUVCVVNZOworCiAgICAgLyogdHVybiBvbiBQR19sb2dfZGlydHkgYml0 IGluIHBhZ2luZyBtb2RlICovCiAgICAgcGFnaW5nX2xvY2soZCk7CiAgICAgZC0+YXJjaC5wYWdp bmcubW9kZSB8PSBQR19sb2dfZGlydHk7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJt LWVwdC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRleCBjYzFlYjIxLi42MmU5ZGRm IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tZXB0LmMKQEAgLTU0NCw2ICs1NDQsMTIgQEAgc3RhdGljIGludCByZXNvbHZlX21p c2NvbmZpZyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbikKICAgICAg ICAgICAgICAgICAgICAgZS5pcGF0ID0gaXBhdDsKICAgICAgICAgICAgICAgICAgICAgaWYgKCBl LnJlY2FsYyAmJiBwMm1faXNfY2hhbmdlYWJsZShlLnNhX3AybXQpICkKICAgICAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggZS5zYV9wMm10ID09IHAybV9p b3JlcV9zZXJ2ZXIgKQorICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQVNTRVJUKHAybS0+aW9yZXEuZW50cnlfY291bnQgPiAwKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcDJtLT5pb3JlcS5lbnRyeV9jb3VudC0tOworICAgICAg ICAgICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgICAgICAgICAgIGUuc2FfcDJt dCA9IHAybV9pc19sb2dkaXJ0eV9yYW5nZShwMm0sIGdmbiArIGksIGdmbiArIGkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBwMm1fcmFtX2xvZ2RpcnR5IDogcDJtX3Jh bV9ydzsKICAgICAgICAgICAgICAgICAgICAgICAgICBlcHRfcDJtX3R5cGVfdG9fZmxhZ3MocDJt LCAmZSwgZS5zYV9wMm10LCBlLmFjY2Vzcyk7CkBAIC05NjUsNyArOTcxLDcgQEAgc3RhdGljIG1m bl90IGVwdF9nZXRfZW50cnkoc3RydWN0IHAybV9kb21haW4gKnAybSwKICAgICBpZiAoIGlzX2Vw dGVfdmFsaWQoZXB0X2VudHJ5KSApCiAgICAgewogICAgICAgICBpZiAoIChyZWNhbGMgfHwgZXB0 X2VudHJ5LT5yZWNhbGMpICYmCi0gICAgICAgICAgICAgcDJtX2lzX2NoYW5nZWFibGUoZXB0X2Vu dHJ5LT5zYV9wMm10KSApCisgICAgICAgICAgICAgcDJtX2NoZWNrX2NoYW5nZWFibGUoZXB0X2Vu dHJ5LT5zYV9wMm10KSApCiAgICAgICAgICAgICAqdCA9IHAybV9pc19sb2dkaXJ0eV9yYW5nZShw Mm0sIGdmbiwgZ2ZuKSA/IHAybV9yYW1fbG9nZGlydHkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcDJtX3JhbV9ydzsKICAgICAgICAgZWxz ZQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS1wdC5jIGIveGVuL2FyY2gveDg2L21t L3AybS1wdC5jCmluZGV4IGMwMDU1ZjMuLjBhNzBkYzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tcHQuYworKysgYi94ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKQEAgLTQzNiwxMSAr NDM2LDEzIEBAIHN0YXRpYyBpbnQgZG9fcmVjYWxjKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIHVu c2lnbmVkIGxvbmcgZ2ZuKQogICAgICAgICAgbmVlZHNfcmVjYWxjKGwxLCAqcGVudCkgKQogICAg IHsKICAgICAgICAgbDFfcGdlbnRyeV90IGUgPSAqcGVudDsKKyAgICAgICAgcDJtX3R5cGVfdCBw Mm10X29sZDsKIAogICAgICAgICBpZiAoICF2YWxpZF9yZWNhbGMobDEsIGUpICkKICAgICAgICAg ICAgIFAyTV9ERUJVRygiYm9ndXMgcmVjYWxjIGxlYWYgYXQgZCVkOiVseDoldVxuIiwKICAgICAg ICAgICAgICAgICAgICAgICBwMm0tPmRvbWFpbi0+ZG9tYWluX2lkLCBnZm4sIGxldmVsKTsKLSAg ICAgICAgaWYgKCBwMm1faXNfY2hhbmdlYWJsZShwMm1fZmxhZ3NfdG9fdHlwZShsMWVfZ2V0X2Zs YWdzKGUpKSkgKQorICAgICAgICBwMm10X29sZCA9IHAybV9mbGFnc190b190eXBlKGwxZV9nZXRf ZmxhZ3MoZSkpOworICAgICAgICBpZiAoIHAybV9pc19jaGFuZ2VhYmxlKHAybXRfb2xkKSApCiAg ICAgICAgIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbWFzayA9IH4wVUwgPDwgKGxldmVs ICogUEFHRVRBQkxFX09SREVSKTsKICAgICAgICAgICAgIHAybV90eXBlX3QgcDJtdCA9IHAybV9p c19sb2dkaXJ0eV9yYW5nZShwMm0sIGdmbiAmIG1hc2ssIGdmbiB8IH5tYXNrKQpAQCAtNDYwLDYg KzQ2MiwxMyBAQCBzdGF0aWMgaW50IGRvX3JlY2FsYyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1 bnNpZ25lZCBsb25nIGdmbikKICAgICAgICAgICAgICAgICAgICAgIG1mbiAmPSB+KCh1bnNpZ25l ZCBsb25nKV9QQUdFX1BTRV9QQVQgPj4gUEFHRV9TSElGVCk7CiAgICAgICAgICAgICAgICAgZmxh Z3MgfD0gX1BBR0VfUFNFOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIHAybXRf b2xkID09IHAybV9pb3JlcV9zZXJ2ZXIgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg IEFTU0VSVChwMm0tPmlvcmVxLmVudHJ5X2NvdW50ID4gMCk7CisgICAgICAgICAgICAgICAgcDJt LT5pb3JlcS5lbnRyeV9jb3VudC0tOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBlID0g bDFlX2Zyb21fcGZuKG1mbiwgZmxhZ3MpOwogICAgICAgICAgICAgcDJtX2FkZF9pb21tdV9mbGFn cygmZSwgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwMm10ID09IHAy bV9yYW1fcncpCkBAIC03MjksNyArNzM4LDcgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJt X2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZuX3QgbWZuLAogc3RhdGljIGlubGlu ZSBwMm1fdHlwZV90IHJlY2FsY190eXBlKGJvb2xfdCByZWNhbGMsIHAybV90eXBlX3QgdCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJt LCB1bnNpZ25lZCBsb25nIGdmbikKIHsKLSAgICBpZiAoICFyZWNhbGMgfHwgIXAybV9pc19jaGFu Z2VhYmxlKHQpICkKKyAgICBpZiAoICFyZWNhbGMgfHwgIXAybV9jaGVja19jaGFuZ2VhYmxlKHQp ICkKICAgICAgICAgcmV0dXJuIHQ7CiAgICAgcmV0dXJuIHAybV9pc19sb2dkaXJ0eV9yYW5nZShw Mm0sIGdmbiwgZ2ZuKSA/IHAybV9yYW1fbG9nZGlydHkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogcDJtX3JhbV9ydzsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCBiODRhZGQwLi43 YTFiZGQ4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gv eDg2L21tL3AybS5jCkBAIC0zMTcsNiArMzE3LDE1IEBAIGludCBwMm1fc2V0X2lvcmVxX3NlcnZl cihzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICBpZiAoIHAybS0+aW9yZXEuc2VydmVyICE9IE5V TEwgKQogICAgICAgICAgICAgZ290byBvdXQ7CiAKKyAgICAgICAgLyoKKyAgICAgICAgICogSXQg aXMgcG9zc2libGUgdGhhdCBhbiBpb3JlcSBzZXJ2ZXIgaGFzIGp1c3QgYmVlbiB1bm1hcHBlZCwK KyAgICAgICAgICogcmVsZWFzZWQgdGhlIHNwaW4gbG9jaywgd2l0aCBzb21lIHAybV9pb3JlcV9z ZXJ2ZXIgZW50cmllcworICAgICAgICAgKiBpbiBwMm0gdGFibGUgcmVtYWluZWQuIFdlIHNoYWxs IHJlZnVzZSBhbm90aGVyIGlvcmVxIHNlcnZlcgorICAgICAgICAgKiBtYXBwaW5nIHJlcXVlc3Qg aW4gc3VjaCBjYXNlLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCByZWFkX2F0b21pYygmcDJt LT5pb3JlcS5lbnRyeV9jb3VudCkgKQorICAgICAgICAgICAgZ290byBvdXQ7CisKICAgICAgICAg cDJtLT5pb3JlcS5zZXJ2ZXIgPSBzOwogICAgICAgICBwMm0tPmlvcmVxLmZsYWdzID0gZmxhZ3M7 CiAgICAgfQpAQCAtOTM4LDYgKzk0NywyNiBAQCBpbnQgcDJtX2NoYW5nZV90eXBlX29uZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwKICAgICAgICAgICAgICAgICAgICAgICAg ICBwMm0tPmRlZmF1bHRfYWNjZXNzKQogICAgICAgICAgOiAtRUJVU1k7CiAKKyAgICBpZiAoICFy YyApCisgICAgeworICAgICAgICBzd2l0Y2ggKCBudCApCisgICAgICAgIHsKKyAgICAgICAgY2Fz ZSBwMm1fcmFtX3J3OgorICAgICAgICAgICAgaWYgKCBvdCA9PSBwMm1faW9yZXFfc2VydmVyICkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQocDJtLT5pb3JlcS5lbnRyeV9j b3VudCA+IDApOworICAgICAgICAgICAgICAgIHAybS0+aW9yZXEuZW50cnlfY291bnQtLTsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHAybV9pb3JlcV9z ZXJ2ZXI6CisgICAgICAgICAgICBBU1NFUlQob3QgPT0gcDJtX3JhbV9ydyk7CisgICAgICAgICAg ICBwMm0tPmlvcmVxLmVudHJ5X2NvdW50Kys7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg ZGVmYXVsdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCiAgICAgZ2Zu X3VubG9jayhwMm0sIGdmbiwgMCk7CiAKICAgICByZXR1cm4gcmM7CmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS9hc20teDg2L3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaAppbmRleCA0 NTIxNjIwLi5lN2UzOTBkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3AybS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcDJtLmgKQEAgLTEyMCw3ICsxMjAsMTAgQEAgdHlwZWRl ZiB1bnNpZ25lZCBpbnQgcDJtX3F1ZXJ5X3Q7CiAKIC8qIFR5cGVzIHRoYXQgY2FuIGJlIHN1Ympl Y3QgdG8gYnVsayB0cmFuc2l0aW9ucy4gKi8KICNkZWZpbmUgUDJNX0NIQU5HRUFCTEVfVFlQRVMg KHAybV90b19tYXNrKHAybV9yYW1fcncpIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcDJtX3RvX21hc2socDJtX3JhbV9sb2dkaXJ0eSkgKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBwMm1fdG9fbWFzayhwMm1fcmFtX2xvZ2RpcnR5KSBcCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHAybV90b19tYXNrKHAybV9pb3JlcV9zZXJ2ZXIpICkKKworI2Rl ZmluZSBQMk1fSU9SRVFfVFlQRVMgKHAybV90b19tYXNrKHAybV9pb3JlcV9zZXJ2ZXIpKQogCiAj ZGVmaW5lIFAyTV9QT0RfVFlQRVMgKHAybV90b19tYXNrKHAybV9wb3B1bGF0ZV9vbl9kZW1hbmQp KQogCkBAIC0xNTcsNiArMTYwLDcgQEAgdHlwZWRlZiB1bnNpZ25lZCBpbnQgcDJtX3F1ZXJ5X3Q7 CiAjZGVmaW5lIHAybV9pc19yZWFkb25seShfdCkgKHAybV90b19tYXNrKF90KSAmIFAyTV9ST19U WVBFUykKICNkZWZpbmUgcDJtX2lzX2Rpc2NhcmRfd3JpdGUoX3QpIChwMm1fdG9fbWFzayhfdCkg JiBQMk1fRElTQ0FSRF9XUklURV9UWVBFUykKICNkZWZpbmUgcDJtX2lzX2NoYW5nZWFibGUoX3Qp IChwMm1fdG9fbWFzayhfdCkgJiBQMk1fQ0hBTkdFQUJMRV9UWVBFUykKKyNkZWZpbmUgcDJtX2lz X2lvcmVxKF90KSAocDJtX3RvX21hc2soX3QpICYgUDJNX0lPUkVRX1RZUEVTKQogI2RlZmluZSBw Mm1faXNfcG9kKF90KSAocDJtX3RvX21hc2soX3QpICYgUDJNX1BPRF9UWVBFUykKICNkZWZpbmUg cDJtX2lzX2dyYW50KF90KSAocDJtX3RvX21hc2soX3QpICYgUDJNX0dSQU5UX1RZUEVTKQogLyog R3JhbnQgdHlwZXMgYXJlICpub3QqIGNvbnNpZGVyZWQgdmFsaWQsIGJlY2F1c2UgdGhleSBjYW4g YmUKQEAgLTE3OCw2ICsxODIsOCBAQCB0eXBlZGVmIHVuc2lnbmVkIGludCBwMm1fcXVlcnlfdDsK IAogI2RlZmluZSBwMm1fYWxsb3dzX2ludmFsaWRfbWZuKHQpIChwMm1fdG9fbWFzayh0KSAmIFAy TV9JTlZBTElEX01GTl9UWVBFUykKIAorI2RlZmluZSBwMm1fY2hlY2tfY2hhbmdlYWJsZSh0KSAo cDJtX2lzX2NoYW5nZWFibGUodCkgJiYgIXAybV9pc19pb3JlcSh0KSkKKwogdHlwZWRlZiBlbnVt IHsKICAgICBwMm1faG9zdCwKICAgICBwMm1fbmVzdGVkLApAQCAtMzQ5LDYgKzM1NSw3IEBAIHN0 cnVjdCBwMm1fZG9tYWluIHsKICAgICAgICAgICAqIGFyZSB0byBiZSBlbXVsYXRlZCBieSBhbiBp b3JlcSBzZXJ2ZXIuCiAgICAgICAgICAgKi8KICAgICAgICAgIHVuc2lnbmVkIGludCBmbGFnczsK KyAgICAgICAgIHVuc2lnbmVkIGxvbmcgZW50cnlfY291bnQ7CiAgICAgIH0gaW9yZXE7CiB9Owog Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6 Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=