From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v4 6/8] mm: Keep heap accessible to others while scrubbing Date: Fri, 19 May 2017 11:50:38 -0400 Message-ID: <1495209040-11101-7-git-send-email-boris.ostrovsky@oracle.com> References: <1495209040-11101-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: <1495209040-11101-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 Ym9ydCBzY3J1YiBieSBzZXR0aW5nCmhlYWQncyBQQUdFX1NDUlVCX0FCT1JUIGJpdC4gVGhlIHNj cnViYmVyIGNoZWNrcyB0aGlzIGJpdCBhZnRlcgpwcm9jZXNzaW5nIGVhY2ggcGFnZSBhbmQgc3Rv cHMgaXRzIHdvcmsgYXMgc29vbiBhcyBpdCBzZWVzIGl0LgoKU2lnbmVkLW9mZi1ieTogQm9yaXMg T3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjQ6 CiogRHJvcCB1bm5lY2Vzc2FyeSBBQ0NFU1NfT05DRSBpbiBzY3J1Yl9mcmVlX3BhZ2VzLCBhZGQg c21wX3dtYigpCiAgaW4gc2NydWJfY29udGludWUoKQoqIEtlZXAgdHJhY2sgb2YgZmlyc3RfZGly dHkgaW4gc2NydWJfd2FpdF9zdGF0ZQoKIHhlbi9jb21tb24vcGFnZV9hbGxvYy5jICB8IDEwMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogeGVuL2luY2x1 ZGUvYXNtLWFybS9tbS5oIHwgICA0ICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L21tLmggfCAgIDQg KysKIDMgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgYi94ZW4vY29tbW9uL3BhZ2VfYWxs b2MuYwppbmRleCA2ZTUwNWIxLi5iMzY1MzA1IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3BhZ2Vf YWxsb2MuYworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpAQCAtNjk0LDYgKzY5NCwxNyBA QCBzdGF0aWMgdm9pZCBwYWdlX2xpc3RfYWRkX3NjcnViKHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1 bnNpZ25lZCBpbnQgbm9kZSwKICAgICAgICAgcGFnZV9saXN0X2FkZChwZywgJmhlYXAobm9kZSwg em9uZSwgb3JkZXIpKTsKIH0KIAorc3RhdGljIHZvaWQgY2hlY2tfYW5kX3N0b3Bfc2NydWIoc3Ry dWN0IHBhZ2VfaW5mbyAqaGVhZCkKK3sKKyAgICBpZiAoIGhlYWQtPnUuZnJlZS5zY3J1Yl9zdGF0 ZSAmIFBBR0VfU0NSVUJCSU5HICkKKyAgICB7CisgICAgICAgIGhlYWQtPnUuZnJlZS5zY3J1Yl9z dGF0ZSB8PSBQQUdFX1NDUlVCX0FCT1JUOworICAgICAgICBzcGluX2xvY2tfa2ljaygpOworICAg ICAgICB3aGlsZSAoIEFDQ0VTU19PTkNFKGhlYWQtPnUuZnJlZS5zY3J1Yl9zdGF0ZSkgJiBQQUdF X1NDUlVCX0FCT1JUICkKKyAgICAgICAgICAgIGNwdV9yZWxheCgpOworICAgIH0KK30KKwogc3Rh dGljIHN0cnVjdCBwYWdlX2luZm8gKmdldF9mcmVlX2J1ZGR5KHVuc2lnbmVkIGludCB6b25lX2xv LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB6 b25lX2hpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBvcmRlciwgdW5zaWduZWQgaW50IG1lbWZsYWdzLApAQCAtNzM4LDkgKzc0OSwxNSBAQCBz dGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAqZ2V0X2ZyZWVfYnVkZHkodW5zaWduZWQgaW50IHpvbmVf bG8sCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaWYgKCAocGcgPSBwYWdlX2xpc3Rf cmVtb3ZlX2hlYWQoJmhlYXAobm9kZSwgem9uZSwgaikpKSApCiAgICAgICAgICAgICAgICAgewot ICAgICAgICAgICAgICAgICAgICBpZiAoIChvcmRlciA9PSAwKSB8fCB1c2VfdW5zY3J1YmJlZCB8 fAotICAgICAgICAgICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuZmlyc3RfZGlydHkgPT0gSU5W QUxJRF9ESVJUWV9JRFgpCisgICAgICAgICAgICAgICAgICAgIGlmICggcGctPnUuZnJlZS5maXJz dF9kaXJ0eSA9PSBJTlZBTElEX0RJUlRZX0lEWCApCiAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcGc7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCAob3JkZXIgPT0gMCkgfHwgdXNl X3Vuc2NydWJiZWQgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICAgICBjaGVja19hbmRfc3RvcF9zY3J1YihwZyk7CisgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcGc7CisgICAgICAgICAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgICAgICAgICBw YWdlX2xpc3RfYWRkX3RhaWwocGcsICZoZWFwKG5vZGUsIHpvbmUsIGopKTsKICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICB9CkBAIC05MjUsNiArOTQyLDcgQEAgc3RhdGljIGludCByZXNl cnZlX29mZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqaGVhZCkKIAogICAgIGN1cl9oZWFk ID0gaGVhZDsKIAorICAgIGNoZWNrX2FuZF9zdG9wX3NjcnViKGhlYWQpOwogICAgIC8qCiAgICAg ICogV2UgbWF5IGJyZWFrIHRoZSBidWRkeSBzbyBsZXQncyBtYXJrIHRoZSBoZWFkIGFzIGNsZWFu LiBUaGVuLCB3aGVuCiAgICAgICogbWVyZ2luZyBjaHVua3MgYmFjayBpbnRvIHRoZSBoZWFwLCB3 ZSB3aWxsIHNlZSB3aGV0aGVyIHRoZSBjaHVuayBoYXMKQEAgLTEwNjksNiArMTA4NywyOSBAQCBz dGF0aWMgdW5zaWduZWQgaW50IG5vZGVfdG9fc2NydWIoYm9vbCBnZXRfbm9kZSkKICAgICByZXR1 cm4gY2xvc2VzdDsKIH0KIAorc3RydWN0IHNjcnViX3dhaXRfc3RhdGUgeworICAgIHN0cnVjdCBw YWdlX2luZm8gKnBnOworICAgIHVuc2lnbmVkIGludCBmaXJzdF9kaXJ0eTsKKyAgICBib29sIGRy b3A7Cit9OworCitzdGF0aWMgdm9pZCBzY3J1Yl9jb250aW51ZSh2b2lkICpkYXRhKQoreworICAg IHN0cnVjdCBzY3J1Yl93YWl0X3N0YXRlICpzdCA9IGRhdGE7CisKKyAgICBpZiAoIHN0LT5kcm9w ICkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCBzdC0+cGctPnUuZnJlZS5zY3J1Yl9zdGF0 ZSAmIFBBR0VfU0NSVUJfQUJPUlQgKQorICAgIHsKKyAgICAgICAgLyogVGhlcmUgaXMgYSB3YWl0 ZXIgZm9yIHRoaXMgYnVkZHkuIFJlbGVhc2UgaXQuICovCisgICAgICAgIHN0LT5kcm9wID0gdHJ1 ZTsKKyAgICAgICAgc3QtPnBnLT51LmZyZWUuZmlyc3RfZGlydHkgPSBzdC0+Zmlyc3RfZGlydHk7 CisgICAgICAgIHNtcF93bWIoKTsKKyAgICAgICAgc3QtPnBnLT51LmZyZWUuc2NydWJfc3RhdGUg PSAwOworICAgIH0KK30KKwogYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCiB7CiAgICAgc3Ry dWN0IHBhZ2VfaW5mbyAqcGc7CkBAIC0xMDkwLDI0ICsxMTMxLDUxIEBAIGJvb2wgc2NydWJfZnJl ZV9wYWdlcyh2b2lkKQogICAgICAgICBkbyB7CiAgICAgICAgICAgICB3aGlsZSAoICFwYWdlX2xp c3RfZW1wdHkoJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKSApCiAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGk7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGksIGRpcnR5X2NudDsKKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2NydWJfd2FpdF9zdGF0ZSBz dDsKIAogICAgICAgICAgICAgICAgIC8qIFVuc2NydWJiZWQgcGFnZXMgYXJlIGFsd2F5cyBhdCB0 aGUgZW5kIG9mIHRoZSBsaXN0LiAqLwogICAgICAgICAgICAgICAgIHBnID0gcGFnZV9saXN0X2xh c3QoJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKICAgICAgICAgICAgICAgICBpZiAoIHBnLT51 LmZyZWUuZmlyc3RfZGlydHkgPT0gSU5WQUxJRF9ESVJUWV9JRFggKQogICAgICAgICAgICAgICAg ICAgICBicmVhazsKIAorICAgICAgICAgICAgICAgIEFTU0VSVCghcGctPnUuZnJlZS5zY3J1Yl9z dGF0ZSk7CisgICAgICAgICAgICAgICAgcGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IFBBR0VfU0NS VUJCSU5HOworCisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmhlYXBfbG9jayk7CisKKyAg ICAgICAgICAgICAgICBkaXJ0eV9jbnQgPSAwOwogICAgICAgICAgICAgICAgIGZvciAoIGkgPSBw Zy0+dS5mcmVlLmZpcnN0X2RpcnR5OyBpIDwgKDFVIDw8IG9yZGVyKTsgaSsrKQogICAgICAgICAg ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgICAgICAgICAg IGlmICggdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGdbaV0uY291bnRfaW5mbykgKQogICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzY3J1Yl9vbmVfcGFn ZSgmcGdbaV0pOworICAgICAgICAgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAqIFdlIGNhbiBtb2RpZnkgY291bnRfaW5mbyB3aXRob3V0IGhvbGRpbmcgaGVhcAor ICAgICAgICAgICAgICAgICAgICAgICAgICogbG9jayBzaW5jZSB3ZSBlZmZlY3RpdmVseSBsb2Nr ZWQgdGhpcyBidWRkeSBieQorICAgICAgICAgICAgICAgICAgICAgICAgICogc2V0dGluZyBpdHMg c2NydWJfc3RhdGUuCisgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAg ICAgICAgICAgIHBnW2ldLmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnViOwotICAgICAgICAg ICAgICAgICAgICAgICAgbm9kZV9uZWVkX3NjcnViW25vZGVdLS07CisgICAgICAgICAgICAgICAg ICAgICAgICBkaXJ0eV9jbnQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgIGNudCArPSAxMDA7 IC8qIHNjcnViYmVkIHBhZ2VzIGFkZCBoZWF2aWVyIHdlaWdodC4gKi8KICAgICAgICAgICAgICAg ICAgICAgfQogCisgICAgICAgICAgICAgICAgICAgIGlmICggcGctPnUuZnJlZS5zY3J1Yl9zdGF0 ZSAmIFBBR0VfU0NSVUJfQUJPUlQgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICAgICAvKiBTb21lb25lIHdhbnRzIHRoaXMgY2h1bmsuIERyb3AgZXZlcnl0aGlu Zy4gKi8KKworICAgICAgICAgICAgICAgICAgICAgICAgcGctPnUuZnJlZS5maXJzdF9kaXJ0eSA9 IChpID09ICgxVSA8PCBvcmRlcikpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlZB TElEX0RJUlRZX0lEWCA6IGkgKyAxOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHNtcF93bWIo KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuc2NydWJfc3RhdGUgPSAwOwor CisgICAgICAgICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmhlYXBfbG9jayk7CisgICAgICAg ICAgICAgICAgICAgICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0gLT0gZGlydHlfY250OworICAg ICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmhlYXBfbG9jayk7CisgICAgICAgICAg ICAgICAgICAgICAgICBnb3RvIG91dF9ub2xvY2s7CisgICAgICAgICAgICAgICAgICAgIH0KKwog ICAgICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAgICAgKiBTY3J1YiBhIGZl dyAoOCkgcGFnZXMgYmVmb3JlIGJlY29taW5nIGVsaWdpYmxlIGZvcgogICAgICAgICAgICAgICAg ICAgICAgKiBwcmVlbXRpb24uIEJ1dCBhbHNvIGNvdW50IG5vbi1zY3J1YmJpbmcgbG9vcCBpdGVy YXRpb24KQEAgLTExMjEsNiArMTE4OSwxNyBAQCBib29sIHNjcnViX2ZyZWVfcGFnZXModm9pZCkK ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAg ICAgIHN0LnBnID0gcGc7CisgICAgICAgICAgICAgICAgc3QuZmlyc3RfZGlydHkgPSAoaSA9PSAo MVVMIDw8IG9yZGVyKSkgPworICAgICAgICAgICAgICAgICAgICBJTlZBTElEX0RJUlRZX0lEWCA6 IGkgKyAxOworICAgICAgICAgICAgICAgIHN0LmRyb3AgPSBmYWxzZTsKKyAgICAgICAgICAgICAg ICBzcGluX2xvY2tfY2IoJmhlYXBfbG9jaywgc2NydWJfY29udGludWUsICZzdCk7CisKKyAgICAg ICAgICAgICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0gLT0gZGlydHlfY250OworCisgICAgICAg ICAgICAgICAgaWYgKCBzdC5kcm9wICkKKyAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7CisK ICAgICAgICAgICAgICAgICBpZiAoIGkgPT0gKDFVIDw8IG9yZGVyKSApCiAgICAgICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgICAgICBwYWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6 b25lLCBvcmRlcikpOwpAQCAtMTEyOCw3ICsxMjA3LDkgQEAgYm9vbCBzY3J1Yl9mcmVlX3BhZ2Vz KHZvaWQpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg ICAgICAgICAgICAgcGctPnUuZnJlZS5maXJzdF9kaXJ0eSA9IGkgKyAxOwotIAorCisgICAgICAg ICAgICAgICAgcGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IDA7CisKICAgICAgICAgICAgICAgICBp ZiAoIHByZWVtcHQgfHwgKG5vZGVfbmVlZF9zY3J1Yltub2RlXSA9PSAwKSApCiAgICAgICAgICAg ICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICAgICAgfQpAQCAtMTEzNyw2ICsxMjE4LDggQEAg Ym9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCiAKICBvdXQ6CiAgICAgc3Bpbl91bmxvY2soJmhl YXBfbG9jayk7CisKKyBvdXRfbm9sb2NrOgogICAgIG5vZGVfY2xlYXIobm9kZSwgbm9kZV9zY3J1 YmJpbmcpOwogICAgIHJldHVybiBzb2Z0aXJxX3BlbmRpbmcoY3B1KSB8fCAobm9kZV90b19zY3J1 YihmYWxzZSkgIT0gTlVNQV9OT19OT0RFKTsKIH0KQEAgLTExNzUsNiArMTI1OCw4IEBAIHN0YXRp YyB2b2lkIGZyZWVfaGVhcF9wYWdlcygKICAgICAgICAgaWYgKCBwYWdlX3N0YXRlX2lzKCZwZ1tp XSwgb2ZmbGluZWQpICkKICAgICAgICAgICAgIHRhaW50ZWQgPSAxOwogCisgICAgICAgIHBnW2ld LnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IDA7CisKICAgICAgICAgLyogSWYgYSBwYWdlIGhhcyBubyBv d25lciBpdCB3aWxsIG5lZWQgbm8gc2FmZXR5IFRMQiBmbHVzaC4gKi8KICAgICAgICAgcGdbaV0u dS5mcmVlLm5lZWRfdGxiZmx1c2ggPSAocGFnZV9nZXRfb3duZXIoJnBnW2ldKSAhPSBOVUxMKTsK ICAgICAgICAgaWYgKCBwZ1tpXS51LmZyZWUubmVlZF90bGJmbHVzaCApCkBAIC0xMjE4LDYgKzEz MDMsOCBAQCBzdGF0aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgICAgICAgICAgIChw aHlzX3RvX25pZChwYWdlX3RvX21hZGRyKHByZWRlY2Vzc29yKSkgIT0gbm9kZSkgKQogICAgICAg ICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAgICBjaGVja19hbmRfc3RvcF9zY3J1YihwcmVk ZWNlc3Nvcik7CisKICAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwocHJlZGVjZXNzb3IsICZoZWFw KG5vZGUsIHpvbmUsIG9yZGVyKSk7CiAKICAgICAgICAgICAgIGlmICggcHJlZGVjZXNzb3ItPnUu ZnJlZS5maXJzdF9kaXJ0eSAhPSBJTlZBTElEX0RJUlRZX0lEWCApCkBAIC0xMjQwLDYgKzEzMjcs OSBAQCBzdGF0aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgICAgICAgICAgIChQRk5f T1JERVIoc3VjY2Vzc29yKSAhPSBvcmRlcikgfHwKICAgICAgICAgICAgICAgICAgKHBoeXNfdG9f bmlkKHBhZ2VfdG9fbWFkZHIoc3VjY2Vzc29yKSkgIT0gbm9kZSkgKQogICAgICAgICAgICAgICAg IGJyZWFrOworCisgICAgICAgICAgICBjaGVja19hbmRfc3RvcF9zY3J1YihzdWNjZXNzb3IpOwor CiAgICAgICAgICAgICBwYWdlX2xpc3RfZGVsKHN1Y2Nlc3NvciwgJmhlYXAobm9kZSwgem9uZSwg b3JkZXIpKTsKIAogICAgICAgICAgICAgbmVlZF9zY3J1YiB8PSAoc3VjY2Vzc29yLT51LmZyZWUu Zmlyc3RfZGlydHkgIT0gSU5WQUxJRF9ESVJUWV9JRFgpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLWFybS9tbS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCmluZGV4IDM4ZDRmYmEu LjE0OGQ2MGIgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAorKysgYi94ZW4v aW5jbHVkZS9hc20tYXJtL21tLmgKQEAgLTQ2LDYgKzQ2LDEwIEBAIHN0cnVjdCBwYWdlX2luZm8K ICAgICAgICAgICAgIC8qIEluZGV4IG9mIHRoZSBmaXJzdCAqcG9zc2libHkqIHVuc2NydWJiZWQg cGFnZSBpbiB0aGUgYnVkZHkuICovCiAjZGVmaW5lIElOVkFMSURfRElSVFlfSURYIC0xVQogICAg ICAgICAgICAgdW5zaWduZWQgaW50IGZpcnN0X2RpcnR5OworI2RlZmluZSBQQUdFX1NDUlVCQklO RyAgICAoMTw8MCkKKyNkZWZpbmUgUEFHRV9TQ1JVQl9BQk9SVCAgKDE8PDEpCisgICAgICAgICAg ICB1bnNpZ25lZCBjaGFyIHNjcnViX3N0YXRlOworCiAgICAgICAgICAgICAvKiBEbyBUTEJzIG5l ZWQgZmx1c2hpbmcgZm9yIHNhZmV0eSBiZWZvcmUgbmV4dCBwYWdlIHVzZT8gKi8KICAgICAgICAg ICAgIGJvb2xfdCBuZWVkX3RsYmZsdXNoOwogICAgICAgICB9IGZyZWU7CmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXgg ZTIwZjE2MS4uZjQ2YjI0MiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtOTAsNiArOTAsMTAgQEAgc3RydWN0IHBh Z2VfaW5mbwogICAgICAgICAgICAgLyogSW5kZXggb2YgdGhlIGZpcnN0ICpwb3NzaWJseSogdW5z Y3J1YmJlZCBwYWdlIGluIHRoZSBidWRkeS4gKi8KICNkZWZpbmUgSU5WQUxJRF9ESVJUWV9JRFgg LTFVCiAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmlyc3RfZGlydHk7CisjZGVmaW5lIFBBR0Vf U0NSVUJCSU5HICAgICgxPDwwKQorI2RlZmluZSBQQUdFX1NDUlVCX0FCT1JUICAoMTw8MSkKKyAg ICAgICAgICAgIHVuc2lnbmVkIGNoYXIgc2NydWJfc3RhdGU7CisKICAgICAgICAgICAgIC8qIERv IFRMQnMgbmVlZCBmbHVzaGluZyBmb3Igc2FmZXR5IGJlZm9yZSBuZXh0IHBhZ2UgdXNlPyAqLwog ICAgICAgICAgICAgYm9vbF90IG5lZWRfdGxiZmx1c2g7CiAgICAgICAgIH0gZnJlZTsKLS0gCjEu OC4zLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlz dHMueGVuLm9yZy94ZW4tZGV2ZWwK