From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCHES v8 6/8] mm: Keep heap accessible to others while scrubbing Date: Wed, 16 Aug 2017 14:33:12 -0400 Message-ID: <1502908394-9760-7-git-send-email-boris.ostrovsky@oracle.com> References: <1502908394-9760-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1502908394-9760-1-git-send-email-boris.ostrovsky@oracle.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: sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBzY3J1YmJpbmcgcGFnZXMgd2hpbGUgaG9sZGluZyBoZWFwIGxvY2sgd2UgY2Fu IG1hcmsKYnVkZHkncyBoZWFkIGFzIGJlaW5nIHNjcnViYmVkIGFuZCBkcm9wIHRoZSBsb2NrIHRl bXBvcmFyaWx5LgpJZiBzb21lb25lIChtb3N0IGxpa2VseSBhbGxvY19oZWFwX3BhZ2VzKCkpIHRy aWVzIHRvIGFjY2Vzcwp0aGlzIGNodW5rIGl0IHdpbGwgc2lnbmFsIHRoZSBzY3J1YmJlciB0byBh Ym9ydCBzY3J1YiBieSBzZXR0aW5nCmhlYWQncyBCVUREWV9TQ1JVQl9BQk9SVCBiaXQuIFRoZSBz Y3J1YmJlciBjaGVja3MgdGhpcyBiaXQgYWZ0ZXIKcHJvY2Vzc2luZyBlYWNoIHBhZ2UgYW5kIHN0 b3BzIGl0cyB3b3JrIGFzIHNvb24gYXMgaXQgc2VlcyBpdC4KClNpZ25lZC1vZmYtYnk6IEJvcmlz IE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+ClJldmlld2VkLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQogeGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMg IHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiB4 ZW4vaW5jbHVkZS9hc20tYXJtL21tLmggfCAgMjkgKysrKysrKystLS0tLQogeGVuL2luY2x1ZGUv YXNtLXg4Ni9tbS5oIHwgIDI3ICsrKysrKysrLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5z ZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9wYWdl X2FsbG9jLmMgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwppbmRleCBkMGMyMDIxLi40ODc5OGNh IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYworKysgYi94ZW4vY29tbW9uL3Bh Z2VfYWxsb2MuYwpAQCAtNjgzLDYgKzY4Myw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VfbGlzdF9hZGRf c2NydWIoc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBub2RlLAogewogICAgIFBG Tl9PUkRFUihwZykgPSBvcmRlcjsKICAgICBwZy0+dS5mcmVlLmZpcnN0X2RpcnR5ID0gZmlyc3Rf ZGlydHk7CisgICAgcGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IEJVRERZX05PVF9TQ1JVQkJJTkc7 CiAKICAgICBpZiAoIGZpcnN0X2RpcnR5ICE9IElOVkFMSURfRElSVFlfSURYICkKICAgICB7CkBA IC02OTMsNiArNjk0LDI1IEBAIHN0YXRpYyB2b2lkIHBhZ2VfbGlzdF9hZGRfc2NydWIoc3RydWN0 IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBub2RlLAogICAgICAgICBwYWdlX2xpc3RfYWRk KHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwogfQogCitzdGF0aWMgdm9pZCBjaGVja19h bmRfc3RvcF9zY3J1YihzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQoreworICAgIGlmICggaGVhZC0+ dS5mcmVlLnNjcnViX3N0YXRlID09IEJVRERZX1NDUlVCQklORyApCisgICAgeworICAgICAgICB0 eXBlb2YoaGVhZC0+dS5mcmVlKSBwZ2ZyZWU7CisKKyAgICAgICAgaGVhZC0+dS5mcmVlLnNjcnVi X3N0YXRlID0gQlVERFlfU0NSVUJfQUJPUlQ7CisgICAgICAgIHNwaW5fbG9ja19raWNrKCk7Cisg ICAgICAgIGZvciAoIDsgOyApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIENhbid0IEFDQ0VT U19PTkNFKCkgYSBiaXRmaWVsZC4gKi8KKyAgICAgICAgICAgIHBnZnJlZS52YWwgPSBBQ0NFU1Nf T05DRShoZWFkLT51LmZyZWUudmFsKTsKKyAgICAgICAgICAgIGlmICggcGdmcmVlLnNjcnViX3N0 YXRlICE9IEJVRERZX1NDUlVCX0FCT1JUICkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgIGNwdV9yZWxheCgpOworICAgICAgICB9CisgICAgfQorfQorCiBzdGF0aWMgc3RydWN0 IHBhZ2VfaW5mbyAqZ2V0X2ZyZWVfYnVkZHkodW5zaWduZWQgaW50IHpvbmVfbG8sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHpvbmVfaGksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG9yZGVy LCB1bnNpZ25lZCBpbnQgbWVtZmxhZ3MsCkBAIC03MzcsMTQgKzc1NywxOSBAQCBzdGF0aWMgc3Ry dWN0IHBhZ2VfaW5mbyAqZ2V0X2ZyZWVfYnVkZHkodW5zaWduZWQgaW50IHpvbmVfbG8sCiAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCAocGcgPSBwYWdlX2xpc3RfcmVtb3ZlX2hl YWQoJmhlYXAobm9kZSwgem9uZSwgaikpKSApCiAgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICBpZiAoIHBnLT51LmZyZWUuZmlyc3RfZGlydHkgPT0gSU5WQUxJRF9ESVJUWV9J RFggKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBnOwogICAgICAgICAgICAgICAg ICAgICAvKgogICAgICAgICAgICAgICAgICAgICAgKiBXZSBncmFiIHNpbmdsZSBwYWdlcyAob3Jk ZXI9MCkgZXZlbiBpZiB0aGV5IGFyZQogICAgICAgICAgICAgICAgICAgICAgKiB1bnNjcnViYmVk LiBHaXZlbiB0aGF0IHNjcnViYmluZyBvbmUgcGFnZSBpcyBmYWlybHkgcXVpY2sKICAgICAgICAg ICAgICAgICAgICAgICogaXQgaXMgbm90IHdvcnRoIGJyZWFraW5nIGhpZ2hlciBvcmRlcnMuCiAg ICAgICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICBpZiAoIChvcmRlciA9 PSAwKSB8fCB1c2VfdW5zY3J1YmJlZCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIHBnLT51 LmZyZWUuZmlyc3RfZGlydHkgPT0gSU5WQUxJRF9ESVJUWV9JRFgpCisgICAgICAgICAgICAgICAg ICAgIGlmICggKG9yZGVyID09IDApIHx8IHVzZV91bnNjcnViYmVkICkKKyAgICAgICAgICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tfYW5kX3N0b3Bfc2NydWIocGcp OwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBnOworICAgICAgICAgICAgICAgICAg ICB9CisKICAgICAgICAgICAgICAgICAgICAgcGFnZV9saXN0X2FkZF90YWlsKHBnLCAmaGVhcChu b2RlLCB6b25lLCBqKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtOTI1 LDYgKzk1MCw3IEBAIHN0YXRpYyBpbnQgcmVzZXJ2ZV9vZmZsaW5lZF9wYWdlKHN0cnVjdCBwYWdl X2luZm8gKmhlYWQpCiAKICAgICBjdXJfaGVhZCA9IGhlYWQ7CiAKKyAgICBjaGVja19hbmRfc3Rv cF9zY3J1YihoZWFkKTsKICAgICAvKgogICAgICAqIFdlIG1heSBicmVhayB0aGUgYnVkZHkgc28g bGV0J3MgbWFyayB0aGUgaGVhZCBhcyBjbGVhbi4gVGhlbiwgd2hlbgogICAgICAqIG1lcmdpbmcg Y2h1bmtzIGJhY2sgaW50byB0aGUgaGVhcCwgd2Ugd2lsbCBzZWUgd2hldGhlciB0aGUgY2h1bmsg aGFzCkBAIC0xMDc1LDYgKzExMDEsMjkgQEAgc3RhdGljIHVuc2lnbmVkIGludCBub2RlX3RvX3Nj cnViKGJvb2wgZ2V0X25vZGUpCiAgICAgcmV0dXJuIGNsb3Nlc3Q7CiB9CiAKK3N0cnVjdCBzY3J1 Yl93YWl0X3N0YXRlIHsKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKKyAgICB1bnNpZ25lZCBp bnQgZmlyc3RfZGlydHk7CisgICAgYm9vbCBkcm9wOworfTsKKworc3RhdGljIHZvaWQgc2NydWJf Y29udGludWUodm9pZCAqZGF0YSkKK3sKKyAgICBzdHJ1Y3Qgc2NydWJfd2FpdF9zdGF0ZSAqc3Qg PSBkYXRhOworCisgICAgaWYgKCBzdC0+ZHJvcCApCisgICAgICAgIHJldHVybjsKKworICAgIGlm ICggc3QtPnBnLT51LmZyZWUuc2NydWJfc3RhdGUgPT0gQlVERFlfU0NSVUJfQUJPUlQgKQorICAg IHsKKyAgICAgICAgLyogVGhlcmUgaXMgYSB3YWl0ZXIgZm9yIHRoaXMgYnVkZHkuIFJlbGVhc2Ug aXQuICovCisgICAgICAgIHN0LT5kcm9wID0gdHJ1ZTsKKyAgICAgICAgc3QtPnBnLT51LmZyZWUu Zmlyc3RfZGlydHkgPSBzdC0+Zmlyc3RfZGlydHk7CisgICAgICAgIHNtcF93bWIoKTsKKyAgICAg ICAgc3QtPnBnLT51LmZyZWUuc2NydWJfc3RhdGUgPSBCVUREWV9OT1RfU0NSVUJCSU5HOworICAg IH0KK30KKwogYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCiB7CiAgICAgc3RydWN0IHBhZ2Vf aW5mbyAqcGc7CkBAIC0xMDk3LDI1ICsxMTQ2LDUzIEBAIGJvb2wgc2NydWJfZnJlZV9wYWdlcyh2 b2lkKQogICAgICAgICBkbyB7CiAgICAgICAgICAgICB3aGlsZSAoICFwYWdlX2xpc3RfZW1wdHko JmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IGk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGksIGRpcnR5 X2NudDsKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2NydWJfd2FpdF9zdGF0ZSBzdDsKIAogICAg ICAgICAgICAgICAgIC8qIFVuc2NydWJiZWQgcGFnZXMgYXJlIGFsd2F5cyBhdCB0aGUgZW5kIG9m IHRoZSBsaXN0LiAqLwogICAgICAgICAgICAgICAgIHBnID0gcGFnZV9saXN0X2xhc3QoJmhlYXAo bm9kZSwgem9uZSwgb3JkZXIpKTsKICAgICAgICAgICAgICAgICBpZiAoIHBnLT51LmZyZWUuZmly c3RfZGlydHkgPT0gSU5WQUxJRF9ESVJUWV9JRFggKQogICAgICAgICAgICAgICAgICAgICBicmVh azsKIAorICAgICAgICAgICAgICAgIEFTU0VSVChwZy0+dS5mcmVlLnNjcnViX3N0YXRlID09IEJV RERZX05PVF9TQ1JVQkJJTkcpOworICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuc2NydWJfc3Rh dGUgPSBCVUREWV9TQ1JVQkJJTkc7CisKKyAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaGVh cF9sb2NrKTsKKworICAgICAgICAgICAgICAgIGRpcnR5X2NudCA9IDA7CisKICAgICAgICAgICAg ICAgICBmb3IgKCBpID0gcGctPnUuZnJlZS5maXJzdF9kaXJ0eTsgaSA8ICgxVSA8PCBvcmRlcik7 IGkrKykKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGlmICggdGVzdF9i aXQoX1BHQ19uZWVkX3NjcnViLCAmcGdbaV0uY291bnRfaW5mbykgKQogICAgICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzY3J1Yl9vbmVfcGFnZSgmcGdbaV0pOwor ICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFdl IGNhbiBtb2RpZnkgY291bnRfaW5mbyB3aXRob3V0IGhvbGRpbmcgaGVhcAorICAgICAgICAgICAg ICAgICAgICAgICAgICogbG9jayBzaW5jZSB3ZSBlZmZlY3RpdmVseSBsb2NrZWQgdGhpcyBidWRk eSBieQorICAgICAgICAgICAgICAgICAgICAgICAgICogc2V0dGluZyBpdHMgc2NydWJfc3RhdGUu CisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgIHBn W2ldLmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnViOwotICAgICAgICAgICAgICAgICAgICAg ICAgbm9kZV9uZWVkX3NjcnViW25vZGVdLS07CisgICAgICAgICAgICAgICAgICAgICAgICBkaXJ0 eV9jbnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgIGNudCArPSAxMDA7IC8qIHNjcnViYmVk IHBhZ2VzIGFkZCBoZWF2aWVyIHdlaWdodC4gKi8KICAgICAgICAgICAgICAgICAgICAgfQogICAg ICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBjbnQrKzsKIAor ICAgICAgICAgICAgICAgICAgICBpZiAoIHBnLT51LmZyZWUuc2NydWJfc3RhdGUgPT0gQlVERFlf U0NSVUJfQUJPUlQgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICAgICAvKiBTb21lb25lIHdhbnRzIHRoaXMgY2h1bmsuIERyb3AgZXZlcnl0aGluZy4gKi8KKwor ICAgICAgICAgICAgICAgICAgICAgICAgcGctPnUuZnJlZS5maXJzdF9kaXJ0eSA9IChpID09ICgx VSA8PCBvcmRlcikgLSAxKSA/CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5WQUxJRF9E SVJUWV9JRFggOiBpICsgMTsgCisgICAgICAgICAgICAgICAgICAgICAgICBzbXBfd21iKCk7Cisg ICAgICAgICAgICAgICAgICAgICAgICBwZy0+dS5mcmVlLnNjcnViX3N0YXRlID0gQlVERFlfTk9U X1NDUlVCQklORzsKKworICAgICAgICAgICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZoZWFwX2xv Y2spOworICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9uZWVkX3NjcnViW25vZGVdIC09IGRp cnR5X2NudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZoZWFwX2xvY2sp OworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXRfbm9sb2NrOworICAgICAgICAgICAg ICAgICAgICB9CisKICAgICAgICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAgICAg ICogU2NydWIgYSBmZXcgKDgpIHBhZ2VzIGJlZm9yZSBiZWNvbWluZyBlbGlnaWJsZSBmb3IKICAg ICAgICAgICAgICAgICAgICAgICogcHJlZW1wdGlvbi4gQnV0IGFsc28gY291bnQgbm9uLXNjcnVi YmluZyBsb29wIGl0ZXJhdGlvbnMKQEAgLTExMjksNiArMTIwNiwyMyBAQCBib29sIHNjcnViX2Zy ZWVfcGFnZXModm9pZCkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0K IAorICAgICAgICAgICAgICAgIHN0LnBnID0gcGc7CisgICAgICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAgICAgKiBnZXRfZnJlZV9idWRkeSgpIGdyYWJzIGEgYnVkZHkgd2l0aCBmaXJzdF9k aXJ0eSBzZXQgdG8KKyAgICAgICAgICAgICAgICAgKiBJTlZBTElEX0RJUlRZX0lEWCBzbyB3ZSBj YW4ndCBzZXQgcGcncyBmaXJzdF9kaXJ0eSBoZXJlLgorICAgICAgICAgICAgICAgICAqIEl0IHdp bGwgYmUgc2V0IGVpdGhlciBiZWxvdyBvciBpbiB0aGUgbG9jayBjYWxsYmFjayAoaW4KKyAgICAg ICAgICAgICAgICAgKiBzY3J1Yl9jb250aW51ZSgpKS4KKyAgICAgICAgICAgICAgICAgKi8KKyAg ICAgICAgICAgICAgICBzdC5maXJzdF9kaXJ0eSA9IChpID49ICgxVSA8PCBvcmRlcikgLSAxKSA/ CisgICAgICAgICAgICAgICAgICAgIElOVkFMSURfRElSVFlfSURYIDogaSArIDE7CisgICAgICAg ICAgICAgICAgc3QuZHJvcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHNwaW5fbG9ja19jYigm aGVhcF9sb2NrLCBzY3J1Yl9jb250aW51ZSwgJnN0KTsKKworICAgICAgICAgICAgICAgIG5vZGVf bmVlZF9zY3J1Yltub2RlXSAtPSBkaXJ0eV9jbnQ7CisKKyAgICAgICAgICAgICAgICBpZiAoIHN0 LmRyb3AgKQorICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKKwogICAgICAgICAgICAgICAg IGlmICggaSA+PSAoMVUgPDwgb3JkZXIpIC0gMSApCiAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBwYWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikp OwpAQCAtMTEzNyw2ICsxMjMxLDggQEAgYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCiAgICAg ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBwZy0+dS5mcmVlLmZpcnN0X2Rp cnR5ID0gaSArIDE7CiAKKyAgICAgICAgICAgICAgICBwZy0+dS5mcmVlLnNjcnViX3N0YXRlID0g QlVERFlfTk9UX1NDUlVCQklORzsKKwogICAgICAgICAgICAgICAgIGlmICggcHJlZW1wdCB8fCAo bm9kZV9uZWVkX3NjcnViW25vZGVdID09IDApICkKICAgICAgICAgICAgICAgICAgICAgZ290byBv dXQ7CiAgICAgICAgICAgICB9CkBAIC0xMTQ1LDYgKzEyNDEsOCBAQCBib29sIHNjcnViX2ZyZWVf cGFnZXModm9pZCkKIAogIG91dDoKICAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKKworIG91 dF9ub2xvY2s6CiAgICAgbm9kZV9jbGVhcihub2RlLCBub2RlX3NjcnViYmluZyk7CiAgICAgcmV0 dXJuIG5vZGVfdG9fc2NydWIoZmFsc2UpICE9IE5VTUFfTk9fTk9ERTsKIH0KQEAgLTEyMjYsNiAr MTMyNCw4IEBAIHN0YXRpYyB2b2lkIGZyZWVfaGVhcF9wYWdlcygKICAgICAgICAgICAgICAgICAg KHBoeXNfdG9fbmlkKHBhZ2VfdG9fbWFkZHIocHJlZGVjZXNzb3IpKSAhPSBub2RlKSApCiAgICAg ICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgICAgIGNoZWNrX2FuZF9zdG9wX3NjcnViKHBy ZWRlY2Vzc29yKTsKKwogICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwcmVkZWNlc3NvciwgJmhl YXAobm9kZSwgem9uZSwgb3JkZXIpKTsKIAogICAgICAgICAgICAgLyogS2VlcCBwcmVkZWNlc3Nv cidzIGZpcnN0X2RpcnR5IGlmIGl0IGlzIGFscmVhZHkgc2V0LiAqLwpAQCAtMTI0Nyw2ICsxMzQ3 LDggQEAgc3RhdGljIHZvaWQgZnJlZV9oZWFwX3BhZ2VzKAogICAgICAgICAgICAgICAgICAocGh5 c190b19uaWQocGFnZV90b19tYWRkcihzdWNjZXNzb3IpKSAhPSBub2RlKSApCiAgICAgICAgICAg ICAgICAgYnJlYWs7CiAKKyAgICAgICAgICAgIGNoZWNrX2FuZF9zdG9wX3NjcnViKHN1Y2Nlc3Nv cik7CisKICAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwoc3VjY2Vzc29yLCAmaGVhcChub2RlLCB6 b25lLCBvcmRlcikpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1h cm0vbW0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAppbmRleCAzYjNkMzhmLi43ZGUyZjMy IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKKysrIGIveGVuL2luY2x1ZGUv YXNtLWFybS9tbS5oCkBAIC00MiwxOCArNDIsMjcgQEAgc3RydWN0IHBhZ2VfaW5mbwogICAgICAg ICAgICAgdW5zaWduZWQgbG9uZyB0eXBlX2luZm87CiAgICAgICAgIH0gaW51c2U7CiAgICAgICAg IC8qIFBhZ2UgaXMgb24gYSBmcmVlIGxpc3Q6ICgoY291bnRfaW5mbyAmIFBHQ19jb3VudF9tYXNr KSA9PSAwKS4gKi8KLSAgICAgICAgc3RydWN0IHsKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAg ICAgKiBJbmRleCBvZiB0aGUgZmlyc3QgKnBvc3NpYmx5KiB1bnNjcnViYmVkIHBhZ2UgaW4gdGhl IGJ1ZGR5LgotICAgICAgICAgICAgICogT25lIG1vcmUgYml0IHRoYW4gbWF4aW11bSBwb3NzaWJs ZSBvcmRlciB0byBhY2NvbW1vZGF0ZQotICAgICAgICAgICAgICogSU5WQUxJRF9ESVJUWV9JRFgu Ci0gICAgICAgICAgICAgKi8KKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgc3RydWN0IHsK KyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEluZGV4IG9mIHRoZSBmaXJz dCAqcG9zc2libHkqIHVuc2NydWJiZWQgcGFnZSBpbiB0aGUgYnVkZHkuCisgICAgICAgICAgICAg ICAgICogT25lIG1vcmUgYml0IHRoYW4gbWF4aW11bSBwb3NzaWJsZSBvcmRlciB0byBhY2NvbW1v ZGF0ZQorICAgICAgICAgICAgICAgICAqIElOVkFMSURfRElSVFlfSURYLgorICAgICAgICAgICAg ICAgICAqLwogI2RlZmluZSBJTlZBTElEX0RJUlRZX0lEWCAoKDFVTCA8PCAoTUFYX09SREVSICsg MSkpIC0gMSkKLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmlyc3RfZGlydHk6TUFYX09SREVS ICsgMTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZpcnN0X2RpcnR5Ok1BWF9PUkRF UiArIDE7CiAKLSAgICAgICAgICAgIC8qIERvIFRMQnMgbmVlZCBmbHVzaGluZyBmb3Igc2FmZXR5 IGJlZm9yZSBuZXh0IHBhZ2UgdXNlPyAqLwotICAgICAgICAgICAgYm9vbCBuZWVkX3RsYmZsdXNo OjE7Ci0gICAgICAgIH0gZnJlZTsKKyAgICAgICAgICAgICAgICAvKiBEbyBUTEJzIG5lZWQgZmx1 c2hpbmcgZm9yIHNhZmV0eSBiZWZvcmUgbmV4dCBwYWdlIHVzZT8gKi8KKyAgICAgICAgICAgICAg ICBib29sIG5lZWRfdGxiZmx1c2g6MTsKKworI2RlZmluZSBCVUREWV9OT1RfU0NSVUJCSU5HICAg IDAKKyNkZWZpbmUgQlVERFlfU0NSVUJCSU5HICAgICAgICAxCisjZGVmaW5lIEJVRERZX1NDUlVC X0FCT1JUICAgICAgMgorICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2NydWJfc3RhdGU6 MjsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdmFsOworICAg ICAgICAgICAgfSBmcmVlOwogCiAgICAgfSB1OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXggODZiMTcyMy4uYjcz OGM4OSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvbW0uaApAQCAtODYsMTcgKzg2LDI2IEBAIHN0cnVjdCBwYWdlX2luZm8KICAg ICAgICAgfSBzaDsKIAogICAgICAgICAvKiBQYWdlIGlzIG9uIGEgZnJlZSBsaXN0OiAoKGNvdW50 X2luZm8gJiBQR0NfY291bnRfbWFzaykgPT0gMCkuICovCi0gICAgICAgIHN0cnVjdCB7Ci0gICAg ICAgICAgICAvKgotICAgICAgICAgICAgICogSW5kZXggb2YgdGhlIGZpcnN0ICpwb3NzaWJseSog dW5zY3J1YmJlZCBwYWdlIGluIHRoZSBidWRkeS4KLSAgICAgICAgICAgICAqIE9uZSBtb3JlIGJp dCB0aGFuIG1heGltdW0gcG9zc2libGUgb3JkZXIgdG8gYWNjb21tb2RhdGUKLSAgICAgICAgICAg ICAqIElOVkFMSURfRElSVFlfSURYLgotICAgICAgICAgICAgICovCisgICAgICAgIHVuaW9uIHsK KyAgICAgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAg ICAgKiBJbmRleCBvZiB0aGUgZmlyc3QgKnBvc3NpYmx5KiB1bnNjcnViYmVkIHBhZ2UgaW4gdGhl IGJ1ZGR5LgorICAgICAgICAgICAgICAgICAqIE9uZSBtb3JlIGJpdCB0aGFuIG1heGltdW0gcG9z c2libGUgb3JkZXIgdG8gYWNjb21tb2RhdGUKKyAgICAgICAgICAgICAgICAgKiBJTlZBTElEX0RJ UlRZX0lEWC4KKyAgICAgICAgICAgICAgICAgKi8KICNkZWZpbmUgSU5WQUxJRF9ESVJUWV9JRFgg KCgxVUwgPDwgKE1BWF9PUkRFUiArIDEpKSAtIDEpCi0gICAgICAgICAgICB1bnNpZ25lZCBpbnQg Zmlyc3RfZGlydHk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZpcnN0X2RpcnR5Owor CisgICAgICAgICAgICAgICAgLyogRG8gVExCcyBuZWVkIGZsdXNoaW5nIGZvciBzYWZldHkgYmVm b3JlIG5leHQgcGFnZSB1c2U/ICovCisgICAgICAgICAgICAgICAgYm9vbCBuZWVkX3RsYmZsdXNo OworCisjZGVmaW5lIEJVRERZX05PVF9TQ1JVQkJJTkcgICAgMAorI2RlZmluZSBCVUREWV9TQ1JV QkJJTkcgICAgICAgIDEKKyNkZWZpbmUgQlVERFlfU0NSVUJfQUJPUlQgICAgICAyCisgICAgICAg ICAgICAgICAgdWludDhfdCAgc2NydWJfc3RhdGU7CisgICAgICAgICAgICB9OwogCi0gICAgICAg ICAgICAvKiBEbyBUTEJzIG5lZWQgZmx1c2hpbmcgZm9yIHNhZmV0eSBiZWZvcmUgbmV4dCBwYWdl IHVzZT8gKi8KLSAgICAgICAgICAgIGJvb2xfdCBuZWVkX3RsYmZsdXNoOworICAgICAgICAgICAg dW5zaWduZWQgbG9uZyB2YWw7CiAgICAgICAgIH0gZnJlZTsKIAogICAgIH0gdTsKLS0gCjEuOC4z LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4t ZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMu eGVuLm9yZy94ZW4tZGV2ZWwK