From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v5 6/8] mm: Keep heap accessible to others while scrubbing Date: Thu, 22 Jun 2017 14:57:08 -0400 Message-ID: <1498157830-21845-7-git-send-email-boris.ostrovsky@oracle.com> References: <1498157830-21845-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: <1498157830-21845-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, jbeulich@suse.com, Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBzY3J1YmJpbmcgcGFnZXMgd2hpbGUgaG9sZGluZyBoZWFwIGxvY2sgd2UgY2Fu IG1hcmsKYnVkZHkncyBoZWFkIGFzIGJlaW5nIHNjcnViYmVkIGFuZCBkcm9wIHRoZSBsb2NrIHRl bXBvcmFyaWx5LgpJZiBzb21lb25lIChtb3N0IGxpa2VseSBhbGxvY19oZWFwX3BhZ2VzKCkpIHRy aWVzIHRvIGFjY2Vzcwp0aGlzIGNodW5rIGl0IHdpbGwgc2lnbmFsIHRoZSBzY3J1YmJlciB0byBh Ym9ydCBzY3J1YiBieSBzZXR0aW5nCmhlYWQncyBCVUREWV9TQ1JVQl9BQk9SVCBiaXQuIFRoZSBz Y3J1YmJlciBjaGVja3MgdGhpcyBiaXQgYWZ0ZXIKcHJvY2Vzc2luZyBlYWNoIHBhZ2UgYW5kIHN0 b3BzIGl0cyB3b3JrIGFzIHNvb24gYXMgaXQgc2VlcyBpdC4KClNpZ25lZC1vZmYtYnk6IEJvcmlz IE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5jb20+Ci0tLQpDaGFuZ2VzIGluIHY1 OgoqIEZpeGVkIG9mZi1ieS1vbmUgZXJyb3IgaW4gc2V0dGluZyBmaXJzdF9kaXJ0eQoqIENoYW5n ZWQgc3RydWN0IHBhZ2VfaW5mby51LmZyZWUgdG8gYSB1bmlvbiB0byBwZXJtaXQgdXNlIG9mIEFD Q0VTU19PTkNFIGluCiAgY2hlY2tfYW5kX3N0b3Bfc2NydWIoKQoqIFJlbmFtZWQgUEFHRV9TQ1JV QkJJTkcgZXRjLiBtYWNyb3MgdG8gQlVERFlfU0NSVUJCSU5HIGV0YwoKIHhlbi9jb21tb24vcGFn ZV9hbGxvYy5jICB8IDEwNSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLQogeGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oIHwgIDI4ICsrKysrKysrLS0tLS0KIHhl bi9pbmNsdWRlL2FzbS14ODYvbW0uaCB8ICAyOSArKysrKysrKy0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDEzOCBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL3BhZ2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCmluZGV4IDRlMjc3 NWYuLmYwZTUzOTkgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jCisrKyBiL3hl bi9jb21tb24vcGFnZV9hbGxvYy5jCkBAIC02ODcsNiArNjg3LDcgQEAgc3RhdGljIHZvaWQgcGFn ZV9saXN0X2FkZF9zY3J1YihzdHJ1Y3QgcGFnZV9pbmZvICpwZywgdW5zaWduZWQgaW50IG5vZGUs CiB7CiAgICAgUEZOX09SREVSKHBnKSA9IG9yZGVyOwogICAgIHBnLT51LmZyZWUuZmlyc3RfZGly dHkgPSBmaXJzdF9kaXJ0eTsKKyAgICBwZy0+dS5mcmVlLnNjcnViX3N0YXRlID0gQlVERFlfTk9U X1NDUlVCQklORzsKIAogICAgIGlmICggZmlyc3RfZGlydHkgIT0gSU5WQUxJRF9ESVJUWV9JRFgg KQogICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGcsICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVy KSk7CkBAIC02OTQsNiArNjk1LDI1IEBAIHN0YXRpYyB2b2lkIHBhZ2VfbGlzdF9hZGRfc2NydWIo c3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBub2RlLAogICAgICAgICBwYWdlX2xp c3RfYWRkKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwogfQogCitzdGF0aWMgdm9pZCBj aGVja19hbmRfc3RvcF9zY3J1YihzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQoreworICAgIGlmICgg aGVhZC0+dS5mcmVlLnNjcnViX3N0YXRlID09IEJVRERZX1NDUlVCQklORyApCisgICAgeworICAg ICAgICBzdHJ1Y3QgcGFnZV9pbmZvIHBnOworCisgICAgICAgIGhlYWQtPnUuZnJlZS5zY3J1Yl9z dGF0ZSA9IEJVRERZX1NDUlVCX0FCT1JUOworICAgICAgICBzcGluX2xvY2tfa2ljaygpOworICAg ICAgICBmb3IgKCA7IDsgKQorICAgICAgICB7CisgICAgICAgICAgICAvKiBDYW4ndCBBQ0NFU1Nf T05DRSgpIGEgYml0ZmllbGQuICovCisgICAgICAgICAgICBwZy51LmZyZWUudmFsID0gQUNDRVNT X09OQ0UoaGVhZC0+dS5mcmVlLnZhbCk7CisgICAgICAgICAgICBpZiAoIHBnLnUuZnJlZS5zY3J1 Yl9zdGF0ZSAhPSBCVUREWV9TQ1JVQl9BQk9SVCApCisgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICBjcHVfcmVsYXgoKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogc3RhdGljIHN0 cnVjdCBwYWdlX2luZm8gKmdldF9mcmVlX2J1ZGR5KHVuc2lnbmVkIGludCB6b25lX2xvLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB6b25lX2hp LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBv cmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdzLApAQCAtNzM4LDE0ICs3NTgsMTkgQEAgc3RhdGlj IHN0cnVjdCBwYWdlX2luZm8gKmdldF9mcmVlX2J1ZGR5KHVuc2lnbmVkIGludCB6b25lX2xvLAog ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGlmICggKHBnID0gcGFnZV9saXN0X3JlbW92 ZV9oZWFkKCZoZWFwKG5vZGUsIHpvbmUsIGopKSkgKQogICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgaWYgKCBwZy0+dS5mcmVlLmZpcnN0X2RpcnR5ID09IElOVkFMSURfRElS VFlfSURYICkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwZzsKICAgICAgICAgICAg ICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAgICAgICogV2UgZ3JhYiBzaW5nbGUgcGFnZXMg KG9yZGVyPTApIGV2ZW4gaWYgdGhleSBhcmUKICAgICAgICAgICAgICAgICAgICAgICogdW5zY3J1 YmJlZC4gR2l2ZW4gdGhhdCBzY3J1YmJpbmcgb25lIHBhZ2UgaXMgZmFpcmx5IHF1aWNrCiAgICAg ICAgICAgICAgICAgICAgICAqIGl0IGlzIG5vdCB3b3J0aCBicmVha2luZyBoaWdoZXIgb3JkZXJz LgogICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICAgICAgaWYgKCAob3Jk ZXIgPT0gMCkgfHwgdXNlX3Vuc2NydWJiZWQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICBw Zy0+dS5mcmVlLmZpcnN0X2RpcnR5ID09IElOVkFMSURfRElSVFlfSURYKQorICAgICAgICAgICAg ICAgICAgICBpZiAoIChvcmRlciA9PSAwKSB8fCB1c2VfdW5zY3J1YmJlZCApCisgICAgICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2FuZF9zdG9wX3NjcnVi KHBnKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwZzsKKyAgICAgICAgICAgICAg ICAgICAgfQorCiAgICAgICAgICAgICAgICAgICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmhl YXAobm9kZSwgem9uZSwgaikpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAg LTkyOCw2ICs5NTMsNyBAQCBzdGF0aWMgaW50IHJlc2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1Y3Qg cGFnZV9pbmZvICpoZWFkKQogCiAgICAgY3VyX2hlYWQgPSBoZWFkOwogCisgICAgY2hlY2tfYW5k X3N0b3Bfc2NydWIoaGVhZCk7CiAgICAgLyoKICAgICAgKiBXZSBtYXkgYnJlYWsgdGhlIGJ1ZGR5 IHNvIGxldCdzIG1hcmsgdGhlIGhlYWQgYXMgY2xlYW4uIFRoZW4sIHdoZW4KICAgICAgKiBtZXJn aW5nIGNodW5rcyBiYWNrIGludG8gdGhlIGhlYXAsIHdlIHdpbGwgc2VlIHdoZXRoZXIgdGhlIGNo dW5rIGhhcwpAQCAtMTA4NCw2ICsxMTEwLDI5IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgbm9kZV90 b19zY3J1Yihib29sIGdldF9ub2RlKQogICAgIHJldHVybiBjbG9zZXN0OwogfQogCitzdHJ1Y3Qg c2NydWJfd2FpdF9zdGF0ZSB7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CisgICAgdW5zaWdu ZWQgaW50IGZpcnN0X2RpcnR5OworICAgIGJvb2wgZHJvcDsKK307CisKK3N0YXRpYyB2b2lkIHNj cnViX2NvbnRpbnVlKHZvaWQgKmRhdGEpCit7CisgICAgc3RydWN0IHNjcnViX3dhaXRfc3RhdGUg KnN0ID0gZGF0YTsKKworICAgIGlmICggc3QtPmRyb3AgKQorICAgICAgICByZXR1cm47CisKKyAg ICBpZiAoIHN0LT5wZy0+dS5mcmVlLnNjcnViX3N0YXRlID09IEJVRERZX1NDUlVCX0FCT1JUICkK KyAgICB7CisgICAgICAgIC8qIFRoZXJlIGlzIGEgd2FpdGVyIGZvciB0aGlzIGJ1ZGR5LiBSZWxl YXNlIGl0LiAqLworICAgICAgICBzdC0+ZHJvcCA9IHRydWU7CisgICAgICAgIHN0LT5wZy0+dS5m cmVlLmZpcnN0X2RpcnR5ID0gc3QtPmZpcnN0X2RpcnR5OworICAgICAgICBzbXBfd21iKCk7Cisg ICAgICAgIHN0LT5wZy0+dS5mcmVlLnNjcnViX3N0YXRlID0gQlVERFlfTk9UX1NDUlVCQklORzsK KyAgICB9Cit9CisKIGJvb2wgc2NydWJfZnJlZV9wYWdlcyh2b2lkKQogewogICAgIHN0cnVjdCBw YWdlX2luZm8gKnBnOwpAQCAtMTEwNiwyNSArMTE1NSw1MyBAQCBib29sIHNjcnViX2ZyZWVfcGFn ZXModm9pZCkKICAgICAgICAgZG8gewogICAgICAgICAgICAgd2hpbGUgKCAhcGFnZV9saXN0X2Vt cHR5KCZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSkgKQogICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBpOworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBpLCBk aXJ0eV9jbnQ7CisgICAgICAgICAgICAgICAgc3RydWN0IHNjcnViX3dhaXRfc3RhdGUgc3Q7CiAK ICAgICAgICAgICAgICAgICAvKiBVbnNjcnViYmVkIHBhZ2VzIGFyZSBhbHdheXMgYXQgdGhlIGVu ZCBvZiB0aGUgbGlzdC4gKi8KICAgICAgICAgICAgICAgICBwZyA9IHBhZ2VfbGlzdF9sYXN0KCZo ZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7CiAgICAgICAgICAgICAgICAgaWYgKCBwZy0+dS5mcmVl LmZpcnN0X2RpcnR5ID09IElOVkFMSURfRElSVFlfSURYICkKICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CiAKKyAgICAgICAgICAgICAgICBBU1NFUlQoIXBnLT51LmZyZWUuc2NydWJfc3RhdGUp OworICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuc2NydWJfc3RhdGUgPSBCVUREWV9TQ1JVQkJJ Tkc7CisKKyAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKKworICAgICAg ICAgICAgICAgIGRpcnR5X2NudCA9IDA7CisKICAgICAgICAgICAgICAgICBmb3IgKCBpID0gcGct PnUuZnJlZS5maXJzdF9kaXJ0eTsgaSA8ICgxVSA8PCBvcmRlcik7IGkrKykKICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGlmICggdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnVi LCAmcGdbaV0uY291bnRfaW5mbykgKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICBzY3J1Yl9vbmVfcGFnZSgmcGdbaV0pOworICAgICAgICAgICAgICAgICAg ICAgICAgLyoKKyAgICAgICAgICAgICAgICAgICAgICAgICAqIFdlIGNhbiBtb2RpZnkgY291bnRf aW5mbyB3aXRob3V0IGhvbGRpbmcgaGVhcAorICAgICAgICAgICAgICAgICAgICAgICAgICogbG9j ayBzaW5jZSB3ZSBlZmZlY3RpdmVseSBsb2NrZWQgdGhpcyBidWRkeSBieQorICAgICAgICAgICAg ICAgICAgICAgICAgICogc2V0dGluZyBpdHMgc2NydWJfc3RhdGUuCisgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAgIHBnW2ldLmNvdW50X2luZm8gJj0g flBHQ19uZWVkX3NjcnViOwotICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV9uZWVkX3NjcnVi W25vZGVdLS07CisgICAgICAgICAgICAgICAgICAgICAgICBkaXJ0eV9jbnQrKzsKICAgICAgICAg ICAgICAgICAgICAgICAgIGNudCArPSAxMDA7IC8qIHNjcnViYmVkIHBhZ2VzIGFkZCBoZWF2aWVy IHdlaWdodC4gKi8KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBl bHNlCiAgICAgICAgICAgICAgICAgICAgICAgICBjbnQrKzsKIAorICAgICAgICAgICAgICAgICAg ICBpZiAoIHBnLT51LmZyZWUuc2NydWJfc3RhdGUgPT0gQlVERFlfU0NSVUJfQUJPUlQgKQorICAg ICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBTb21lb25lIHdh bnRzIHRoaXMgY2h1bmsuIERyb3AgZXZlcnl0aGluZy4gKi8KKworICAgICAgICAgICAgICAgICAg ICAgICAgcGctPnUuZnJlZS5maXJzdF9kaXJ0eSA9IChpID09ICgxVSA8PCBvcmRlcikgLSAxKSA/ CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5WQUxJRF9ESVJUWV9JRFggOiBpICsgMTsg CisgICAgICAgICAgICAgICAgICAgICAgICBzbXBfd21iKCk7CisgICAgICAgICAgICAgICAgICAg ICAgICBwZy0+dS5mcmVlLnNjcnViX3N0YXRlID0gQlVERFlfTk9UX1NDUlVCQklORzsKKworICAg ICAgICAgICAgICAgICAgICAgICAgc3Bpbl9sb2NrKCZoZWFwX2xvY2spOworICAgICAgICAgICAg ICAgICAgICAgICAgbm9kZV9uZWVkX3NjcnViW25vZGVdIC09IGRpcnR5X2NudDsKKyAgICAgICAg ICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZoZWFwX2xvY2spOworICAgICAgICAgICAgICAg ICAgICAgICAgZ290byBvdXRfbm9sb2NrOworICAgICAgICAgICAgICAgICAgICB9CisKICAgICAg ICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAgICAgICogU2NydWIgYSBmZXcgKDgp IHBhZ2VzIGJlZm9yZSBiZWNvbWluZyBlbGlnaWJsZSBmb3IKICAgICAgICAgICAgICAgICAgICAg ICogcHJlZW1wdGlvbi4gQnV0IGFsc28gY291bnQgbm9uLXNjcnViYmluZyBsb29wIGl0ZXJhdGlv bnMKQEAgLTExMzgsNiArMTIxNSwxNyBAQCBib29sIHNjcnViX2ZyZWVfcGFnZXModm9pZCkKICAg ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgICAg IHN0LnBnID0gcGc7CisgICAgICAgICAgICAgICAgc3QuZmlyc3RfZGlydHkgPSAoaSA+PSAoMVVM IDw8IG9yZGVyKSAtIDEpID8KKyAgICAgICAgICAgICAgICAgICAgSU5WQUxJRF9ESVJUWV9JRFgg OiBpICsgMTsKKyAgICAgICAgICAgICAgICBzdC5kcm9wID0gZmFsc2U7CisgICAgICAgICAgICAg ICAgc3Bpbl9sb2NrX2NiKCZoZWFwX2xvY2ssIHNjcnViX2NvbnRpbnVlLCAmc3QpOworCisgICAg ICAgICAgICAgICAgbm9kZV9uZWVkX3NjcnViW25vZGVdIC09IGRpcnR5X2NudDsKKworICAgICAg ICAgICAgICAgIGlmICggc3QuZHJvcCApCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owor CiAgICAgICAgICAgICAgICAgaWYgKCBpID49ICgxVSA8PCBvcmRlcikgLSAxICkKICAgICAgICAg ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwocGcsICZoZWFwKG5v ZGUsIHpvbmUsIG9yZGVyKSk7CkBAIC0xMTQ2LDYgKzEyMzQsOCBAQCBib29sIHNjcnViX2ZyZWVf cGFnZXModm9pZCkKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHBn LT51LmZyZWUuZmlyc3RfZGlydHkgPSBpICsgMTsKIAorICAgICAgICAgICAgICAgIHBnLT51LmZy ZWUuc2NydWJfc3RhdGUgPSBCVUREWV9OT1RfU0NSVUJCSU5HOworCiAgICAgICAgICAgICAgICAg aWYgKCBwcmVlbXB0IHx8IChub2RlX25lZWRfc2NydWJbbm9kZV0gPT0gMCkgKQogICAgICAgICAg ICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgIH0KQEAgLTExNTQsNiArMTI0NCw4IEBA IGJvb2wgc2NydWJfZnJlZV9wYWdlcyh2b2lkKQogCiAgb3V0OgogICAgIHNwaW5fdW5sb2NrKCZo ZWFwX2xvY2spOworCisgb3V0X25vbG9jazoKICAgICBub2RlX2NsZWFyKG5vZGUsIG5vZGVfc2Ny dWJiaW5nKTsKICAgICByZXR1cm4gc29mdGlycV9wZW5kaW5nKGNwdSkgfHwgKG5vZGVfdG9fc2Ny dWIoZmFsc2UpICE9IE5VTUFfTk9fTk9ERSk7CiB9CkBAIC0xMjM1LDYgKzEzMjcsOCBAQCBzdGF0 aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgICAgICAgICAgIChwaHlzX3RvX25pZChw YWdlX3RvX21hZGRyKHByZWRlY2Vzc29yKSkgIT0gbm9kZSkgKQogICAgICAgICAgICAgICAgIGJy ZWFrOwogCisgICAgICAgICAgICBjaGVja19hbmRfc3RvcF9zY3J1YihwcmVkZWNlc3Nvcik7CisK ICAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwocHJlZGVjZXNzb3IsICZoZWFwKG5vZGUsIHpvbmUs IG9yZGVyKSk7CiAKICAgICAgICAgICAgIGlmICggcHJlZGVjZXNzb3ItPnUuZnJlZS5maXJzdF9k aXJ0eSAhPSBJTlZBTElEX0RJUlRZX0lEWCApCkBAIC0xMjU2LDYgKzEzNTAsOSBAQCBzdGF0aWMg dm9pZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgICAgICAgICAgIChQRk5fT1JERVIoc3VjY2Vz c29yKSAhPSBvcmRlcikgfHwKICAgICAgICAgICAgICAgICAgKHBoeXNfdG9fbmlkKHBhZ2VfdG9f bWFkZHIoc3VjY2Vzc29yKSkgIT0gbm9kZSkgKQogICAgICAgICAgICAgICAgIGJyZWFrOworCisg ICAgICAgICAgICBjaGVja19hbmRfc3RvcF9zY3J1YihzdWNjZXNzb3IpOworCiAgICAgICAgICAg ICBwYWdlX2xpc3RfZGVsKHN1Y2Nlc3NvciwgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKIAog ICAgICAgICAgICAgaWYgKCBzdWNjZXNzb3ItPnUuZnJlZS5maXJzdF9kaXJ0eSAhPSBJTlZBTElE X0RJUlRZX0lEWCApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmggYi94ZW4v aW5jbHVkZS9hc20tYXJtL21tLmgKaW5kZXggODg5YTg1ZS4uNjI1YWExNiAxMDA2NDQKLS0tIGEv eGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaApA QCAtNDIsMTggKzQyLDI2IEBAIHN0cnVjdCBwYWdlX2luZm8KICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgdHlwZV9pbmZvOwogICAgICAgICB9IGludXNlOwogICAgICAgICAvKiBQYWdlIGlzIG9u IGEgZnJlZSBsaXN0OiAoKGNvdW50X2luZm8gJiBQR0NfY291bnRfbWFzaykgPT0gMCkuICovCi0g ICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAvKiBEbyBUTEJzIG5lZWQgZmx1c2hpbmcgZm9y IHNhZmV0eSBiZWZvcmUgbmV4dCBwYWdlIHVzZT8gKi8KLSAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgbmVlZF90bGJmbHVzaDoxOwotCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogSW5k ZXggb2YgdGhlIGZpcnN0ICpwb3NzaWJseSogdW5zY3J1YmJlZCBwYWdlIGluIHRoZSBidWRkeS4K LSAgICAgICAgICAgICAqIE9uZSBtb3JlIHRoYW4gbWF4aW11bSBwb3NzaWJsZSBvcmRlciAoTUFY X09SREVSKzEpIHRvCi0gICAgICAgICAgICAgKiBhY2NvbW1vZGF0ZSBJTlZBTElEX0RJUlRZX0lE WC4KLSAgICAgICAgICAgICAqLworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBzdHJ1Y3Qg eworICAgICAgICAgICAgICAgIC8qIERvIFRMQnMgbmVlZCBmbHVzaGluZyBmb3Igc2FmZXR5IGJl Zm9yZSBuZXh0IHBhZ2UgdXNlPyAqLworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmVl ZF90bGJmbHVzaDoxOworCisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAgKiBJ bmRleCBvZiB0aGUgZmlyc3QgKnBvc3NpYmx5KiB1bnNjcnViYmVkIHBhZ2UgaW4gdGhlIGJ1ZGR5 LgorICAgICAgICAgICAgICAgICAqIE9uZSBtb3JlIHRoYW4gbWF4aW11bSBwb3NzaWJsZSBvcmRl ciAoTUFYX09SREVSKzEpIHRvCisgICAgICAgICAgICAgICAgICogYWNjb21tb2RhdGUgSU5WQUxJ RF9ESVJUWV9JRFguCisgICAgICAgICAgICAgICAgICovCiAjZGVmaW5lIElOVkFMSURfRElSVFlf SURYICgtMVVMICYgKCgoMVVMPDxNQVhfT1JERVIpICsgMikgLSAxKSkKLSAgICAgICAgICAgIHVu c2lnbmVkIGxvbmcgZmlyc3RfZGlydHk6TUFYX09SREVSICsgMjsKKyAgICAgICAgICAgICAgICB1 bnNpZ25lZCBsb25nIGZpcnN0X2RpcnR5Ok1BWF9PUkRFUiArIDI7CisKKyNkZWZpbmUgQlVERFlf Tk9UX1NDUlVCQklORyAgIDAKKyNkZWZpbmUgQlVERFlfU0NSVUJCSU5HICAgICAgIDEKKyNkZWZp bmUgQlVERFlfU0NSVUJfQUJPUlQgICAgIDIKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25n IHNjcnViX3N0YXRlOjI7CisgICAgICAgICAgICB9OwogCisgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgdmFsOwogICAgICAgICB9IGZyZWU7CiAKICAgICB9IHU7CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXggY2QwMGJl Zi4uZGI2ZjNhNSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtODYsMTcgKzg2LDI2IEBAIHN0cnVjdCBwYWdlX2lu Zm8KICAgICAgICAgfSBzaDsKIAogICAgICAgICAvKiBQYWdlIGlzIG9uIGEgZnJlZSBsaXN0OiAo KGNvdW50X2luZm8gJiBQR0NfY291bnRfbWFzaykgPT0gMCkuICovCi0gICAgICAgIHN0cnVjdCB7 Ci0gICAgICAgICAgICAvKiBEbyBUTEJzIG5lZWQgZmx1c2hpbmcgZm9yIHNhZmV0eSBiZWZvcmUg bmV4dCBwYWdlIHVzZT8gKi8KLSAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbmVlZF90bGJmbHVz aDoxOwotCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogSW5kZXggb2YgdGhlIGZpcnN0 ICpwb3NzaWJseSogdW5zY3J1YmJlZCBwYWdlIGluIHRoZSBidWRkeS4KLSAgICAgICAgICAgICAq IE9uZSBtb3JlIHRoYW4gbWF4aW11bSBwb3NzaWJsZSBvcmRlciAoTUFYX09SREVSKzEpIHRvCi0g ICAgICAgICAgICAgKiBhY2NvbW1vZGF0ZSBJTlZBTElEX0RJUlRZX0lEWC4KLSAgICAgICAgICAg ICAqLworICAgICAgICB1bmlvbiB7CisJICAgIHN0cnVjdCB7CisJCS8qIERvIFRMQnMgbmVlZCBm bHVzaGluZyBmb3Igc2FmZXR5IGJlZm9yZSBuZXh0IHBhZ2UgdXNlPyAqLworCQl1bnNpZ25lZCBs b25nIG5lZWRfdGxiZmx1c2g6MTsKKworCQkvKgorCQkgKiBJbmRleCBvZiB0aGUgZmlyc3QgKnBv c3NpYmx5KiB1bnNjcnViYmVkIHBhZ2UgaW4gdGhlIGJ1ZGR5LgorCQkgKiBPbmUgbW9yZSB0aGFu IG1heGltdW0gcG9zc2libGUgb3JkZXIgKE1BWF9PUkRFUisxKSB0bworCQkgKiBhY2NvbW1vZGF0 ZSBJTlZBTElEX0RJUlRZX0lEWC4KKwkJICovCiAjZGVmaW5lIElOVkFMSURfRElSVFlfSURYICgt MVVMICYgKCgoMVVMPDxNQVhfT1JERVIpICsgMikgLSAxKSkKLSAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgZmlyc3RfZGlydHk6TUFYX09SREVSICsgMjsKKwkJdW5zaWduZWQgbG9uZyBmaXJzdF9k aXJ0eTpNQVhfT1JERVIgKyAyOworCisjZGVmaW5lIEJVRERZX05PVF9TQ1JVQkJJTkcgICAwCisj ZGVmaW5lIEJVRERZX1NDUlVCQklORyAgICAgICAxCisjZGVmaW5lIEJVRERZX1NDUlVCX0FCT1JU ICAgICAyCisJCXVuc2lnbmVkIGxvbmcgc2NydWJfc3RhdGU6MjsKKwkgICAgfTsKKworCSAgICB1 bnNpZ25lZCBsb25nIHZhbDsKICAgICAgICAgfSBmcmVlOwogCiAgICAgfSB1OwotLSAKMS44LjMu MQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=