From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v6 6/8] mm: Keep heap accessible to others while scrubbing Date: Fri, 4 Aug 2017 13:05:44 -0400 Message-ID: <1501866346-9774-7-git-send-email-boris.ostrovsky@oracle.com> References: <1501866346-9774-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: <1501866346-9774-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+Ci0tLQpDaGFuZ2VzIGluIHY2 OgoqIE1hZGUgQVNTRVJUIGV4cGxpY2l0bHkgdGVzdCBmb3IgIEJVRERZX05PVF9TQ1JVQkJJTkcu CiogQWRkZWQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHdlIHNldCBidWRkeSdzIGZpcnN0X2Rp cnR5IGluIHRoZSBsb2NrJ3MgY2FsbGJhY2suCgogeGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgIHwg MTExICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiB4ZW4v aW5jbHVkZS9hc20tYXJtL21tLmggfCAgMjYgKysrKysrKy0tLS0KIHhlbi9pbmNsdWRlL2FzbS14 ODYvbW0uaCB8ICAyNyArKysrKysrKy0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlv bnMoKyksIDIyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxv Yy5jIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggM2YwNGYxNi4uZTBiYmMyNyAxMDA2 NDQKLS0tIGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2Fs bG9jLmMKQEAgLTY4Nyw2ICs2ODcsNyBAQCBzdGF0aWMgdm9pZCBwYWdlX2xpc3RfYWRkX3NjcnVi KHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgbm9kZSwKIHsKICAgICBQRk5fT1JE RVIocGcpID0gb3JkZXI7CiAgICAgcGctPnUuZnJlZS5maXJzdF9kaXJ0eSA9IGZpcnN0X2RpcnR5 OworICAgIHBnLT51LmZyZWUuc2NydWJfc3RhdGUgPSBCVUREWV9OT1RfU0NSVUJCSU5HOwogCiAg ICAgaWYgKCBmaXJzdF9kaXJ0eSAhPSBJTlZBTElEX0RJUlRZX0lEWCApCiAgICAgewpAQCAtNjk3 LDYgKzY5OCwyNSBAQCBzdGF0aWMgdm9pZCBwYWdlX2xpc3RfYWRkX3NjcnViKHN0cnVjdCBwYWdl X2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgbm9kZSwKICAgICAgICAgcGFnZV9saXN0X2FkZChwZywg JmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsKIH0KIAorc3RhdGljIHZvaWQgY2hlY2tfYW5kX3N0 b3Bfc2NydWIoc3RydWN0IHBhZ2VfaW5mbyAqaGVhZCkKK3sKKyAgICBpZiAoIGhlYWQtPnUuZnJl ZS5zY3J1Yl9zdGF0ZSA9PSBCVUREWV9TQ1JVQkJJTkcgKQorICAgIHsKKyAgICAgICAgc3RydWN0 IHBhZ2VfaW5mbyBwZzsKKworICAgICAgICBoZWFkLT51LmZyZWUuc2NydWJfc3RhdGUgPSBCVURE WV9TQ1JVQl9BQk9SVDsKKyAgICAgICAgc3Bpbl9sb2NrX2tpY2soKTsKKyAgICAgICAgZm9yICgg OyA7ICkKKyAgICAgICAgeworICAgICAgICAgICAgLyogQ2FuJ3QgQUNDRVNTX09OQ0UoKSBhIGJp dGZpZWxkLiAqLworICAgICAgICAgICAgcGcudS5mcmVlLnZhbCA9IEFDQ0VTU19PTkNFKGhlYWQt PnUuZnJlZS52YWwpOworICAgICAgICAgICAgaWYgKCBwZy51LmZyZWUuc2NydWJfc3RhdGUgIT0g QlVERFlfU0NSVUJfQUJPUlQgKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg Y3B1X3JlbGF4KCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIHN0YXRpYyBzdHJ1Y3QgcGFnZV9p bmZvICpnZXRfZnJlZV9idWRkeSh1bnNpZ25lZCBpbnQgem9uZV9sbywKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgem9uZV9oaSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgb3JkZXIsIHVuc2ln bmVkIGludCBtZW1mbGFncywKQEAgLTc0MSwxNCArNzYxLDE5IEBAIHN0YXRpYyBzdHJ1Y3QgcGFn ZV9pbmZvICpnZXRfZnJlZV9idWRkeSh1bnNpZ25lZCBpbnQgem9uZV9sbywKICAgICAgICAgICAg IHsKICAgICAgICAgICAgICAgICBpZiAoIChwZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmaGVh cChub2RlLCB6b25lLCBqKSkpICkKICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg ICAgIGlmICggcGctPnUuZnJlZS5maXJzdF9kaXJ0eSA9PSBJTlZBTElEX0RJUlRZX0lEWCApCisg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGc7CiAgICAgICAgICAgICAgICAgICAgIC8q CiAgICAgICAgICAgICAgICAgICAgICAqIFdlIGdyYWIgc2luZ2xlIHBhZ2VzIChvcmRlcj0wKSBl dmVuIGlmIHRoZXkgYXJlCiAgICAgICAgICAgICAgICAgICAgICAqIHVuc2NydWJiZWQuIEdpdmVu IHRoYXQgc2NydWJiaW5nIG9uZSBwYWdlIGlzIGZhaXJseSBxdWljawogICAgICAgICAgICAgICAg ICAgICAgKiBpdCBpcyBub3Qgd29ydGggYnJlYWtpbmcgaGlnaGVyIG9yZGVycy4KICAgICAgICAg ICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgIGlmICggKG9yZGVyID09IDApIHx8 IHVzZV91bnNjcnViYmVkIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcGctPnUuZnJlZS5m aXJzdF9kaXJ0eSA9PSBJTlZBTElEX0RJUlRZX0lEWCkKKyAgICAgICAgICAgICAgICAgICAgaWYg KCAob3JkZXIgPT0gMCkgfHwgdXNlX3Vuc2NydWJiZWQgKQorICAgICAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19hbmRfc3RvcF9zY3J1YihwZyk7CiAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGc7CisgICAgICAgICAgICAgICAgICAgIH0KKwog ICAgICAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGcsICZoZWFwKG5vZGUsIHpv bmUsIGopKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC05MjksNiArOTU0 LDcgQEAgc3RhdGljIGludCByZXNlcnZlX29mZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2VfaW5mbyAq aGVhZCkKIAogICAgIGN1cl9oZWFkID0gaGVhZDsKIAorICAgIGNoZWNrX2FuZF9zdG9wX3NjcnVi KGhlYWQpOwogICAgIC8qCiAgICAgICogV2UgbWF5IGJyZWFrIHRoZSBidWRkeSBzbyBsZXQncyBt YXJrIHRoZSBoZWFkIGFzIGNsZWFuLiBUaGVuLCB3aGVuCiAgICAgICogbWVyZ2luZyBjaHVua3Mg YmFjayBpbnRvIHRoZSBoZWFwLCB3ZSB3aWxsIHNlZSB3aGV0aGVyIHRoZSBjaHVuayBoYXMKQEAg LTEwOTAsNiArMTExNiwyOSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IG5vZGVfdG9fc2NydWIoYm9v bCBnZXRfbm9kZSkKICAgICByZXR1cm4gY2xvc2VzdDsKIH0KIAorc3RydWN0IHNjcnViX3dhaXRf c3RhdGUgeworICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOworICAgIHVuc2lnbmVkIGludCBmaXJz dF9kaXJ0eTsKKyAgICBib29sIGRyb3A7Cit9OworCitzdGF0aWMgdm9pZCBzY3J1Yl9jb250aW51 ZSh2b2lkICpkYXRhKQoreworICAgIHN0cnVjdCBzY3J1Yl93YWl0X3N0YXRlICpzdCA9IGRhdGE7 CisKKyAgICBpZiAoIHN0LT5kcm9wICkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCBzdC0+ cGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9PSBCVUREWV9TQ1JVQl9BQk9SVCApCisgICAgeworICAg ICAgICAvKiBUaGVyZSBpcyBhIHdhaXRlciBmb3IgdGhpcyBidWRkeS4gUmVsZWFzZSBpdC4gKi8K KyAgICAgICAgc3QtPmRyb3AgPSB0cnVlOworICAgICAgICBzdC0+cGctPnUuZnJlZS5maXJzdF9k aXJ0eSA9IHN0LT5maXJzdF9kaXJ0eTsKKyAgICAgICAgc21wX3dtYigpOworICAgICAgICBzdC0+ cGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IEJVRERZX05PVF9TQ1JVQkJJTkc7CisgICAgfQorfQor CiBib29sIHNjcnViX2ZyZWVfcGFnZXModm9pZCkKIHsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpw ZzsKQEAgLTExMTIsMjUgKzExNjEsNTMgQEAgYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCiAg ICAgICAgIGRvIHsKICAgICAgICAgICAgIHdoaWxlICggIXBhZ2VfbGlzdF9lbXB0eSgmaGVhcChu b2RlLCB6b25lLCBvcmRlcikpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgaTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaSwgZGlydHlfY250Owor ICAgICAgICAgICAgICAgIHN0cnVjdCBzY3J1Yl93YWl0X3N0YXRlIHN0OwogCiAgICAgICAgICAg ICAgICAgLyogVW5zY3J1YmJlZCBwYWdlcyBhcmUgYWx3YXlzIGF0IHRoZSBlbmQgb2YgdGhlIGxp c3QuICovCiAgICAgICAgICAgICAgICAgcGcgPSBwYWdlX2xpc3RfbGFzdCgmaGVhcChub2RlLCB6 b25lLCBvcmRlcikpOwogICAgICAgICAgICAgICAgIGlmICggcGctPnUuZnJlZS5maXJzdF9kaXJ0 eSA9PSBJTlZBTElEX0RJUlRZX0lEWCApCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCisg ICAgICAgICAgICAgICAgQVNTRVJUKHBnLT51LmZyZWUuc2NydWJfc3RhdGUgPT0gQlVERFlfTk9U X1NDUlVCQklORyk7CisgICAgICAgICAgICAgICAgcGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9IEJV RERZX1NDUlVCQklORzsKKworICAgICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZoZWFwX2xvY2sp OworCisgICAgICAgICAgICAgICAgZGlydHlfY250ID0gMDsKKwogICAgICAgICAgICAgICAgIGZv ciAoIGkgPSBwZy0+dS5mcmVlLmZpcnN0X2RpcnR5OyBpIDwgKDFVIDw8IG9yZGVyKTsgaSsrKQog ICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCB0ZXN0X2JpdChfUEdD X25lZWRfc2NydWIsICZwZ1tpXS5jb3VudF9pbmZvKSApCiAgICAgICAgICAgICAgICAgICAgIHsK ICAgICAgICAgICAgICAgICAgICAgICAgIHNjcnViX29uZV9wYWdlKCZwZ1tpXSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAgICAgICAgICogV2UgY2FuIG1v ZGlmeSBjb3VudF9pbmZvIHdpdGhvdXQgaG9sZGluZyBoZWFwCisgICAgICAgICAgICAgICAgICAg ICAgICAgKiBsb2NrIHNpbmNlIHdlIGVmZmVjdGl2ZWx5IGxvY2tlZCB0aGlzIGJ1ZGR5IGJ5Cisg ICAgICAgICAgICAgICAgICAgICAgICAgKiBzZXR0aW5nIGl0cyBzY3J1Yl9zdGF0ZS4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgcGdbaV0uY291 bnRfaW5mbyAmPSB+UEdDX25lZWRfc2NydWI7Ci0gICAgICAgICAgICAgICAgICAgICAgICBub2Rl X25lZWRfc2NydWJbbm9kZV0tLTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpcnR5X2NudCsr OwogICAgICAgICAgICAgICAgICAgICAgICAgY250ICs9IDEwMDsgLyogc2NydWJiZWQgcGFnZXMg YWRkIGhlYXZpZXIgd2VpZ2h0LiAqLwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIGNudCsrOwogCisgICAgICAg ICAgICAgICAgICAgIGlmICggcGctPnUuZnJlZS5zY3J1Yl9zdGF0ZSA9PSBCVUREWV9TQ1JVQl9B Qk9SVCApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8q IFNvbWVvbmUgd2FudHMgdGhpcyBjaHVuay4gRHJvcCBldmVyeXRoaW5nLiAqLworCisgICAgICAg ICAgICAgICAgICAgICAgICBwZy0+dS5mcmVlLmZpcnN0X2RpcnR5ID0gKGkgPT0gKDFVIDw8IG9y ZGVyKSAtIDEpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTlZBTElEX0RJUlRZX0lE WCA6IGkgKyAxOyAKKyAgICAgICAgICAgICAgICAgICAgICAgIHNtcF93bWIoKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgIHBnLT51LmZyZWUuc2NydWJfc3RhdGUgPSBCVUREWV9OT1RfU0NSVUJC SU5HOworCisgICAgICAgICAgICAgICAgICAgICAgICBzcGluX2xvY2soJmhlYXBfbG9jayk7Cisg ICAgICAgICAgICAgICAgICAgICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0gLT0gZGlydHlfY250 OworICAgICAgICAgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJmhlYXBfbG9jayk7CisgICAg ICAgICAgICAgICAgICAgICAgICBnb3RvIG91dF9ub2xvY2s7CisgICAgICAgICAgICAgICAgICAg IH0KKwogICAgICAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAgICAgKiBTY3J1 YiBhIGZldyAoOCkgcGFnZXMgYmVmb3JlIGJlY29taW5nIGVsaWdpYmxlIGZvcgogICAgICAgICAg ICAgICAgICAgICAgKiBwcmVlbXB0aW9uLiBCdXQgYWxzbyBjb3VudCBub24tc2NydWJiaW5nIGxv b3AgaXRlcmF0aW9ucwpAQCAtMTE0NCw2ICsxMjIxLDIzIEBAIGJvb2wgc2NydWJfZnJlZV9wYWdl cyh2b2lkKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCisgICAg ICAgICAgICAgICAgc3QucGcgPSBwZzsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAg ICAgICAqIGdldF9mcmVlX2J1ZGR5KCkgZ3JhYnMgYSBidWRkeSB3aXRoIGZpcnN0X2RpcnR5IHNl dCB0bworICAgICAgICAgICAgICAgICAqIElOVkFMSURfRElSVFlfSURYIHNvIHdlIGNhbid0IHNl dCBwZydzIGZpcnN0X2RpcnR5IGhlcmUuCisgICAgICAgICAgICAgICAgICogSXQgd2lsbCBiZSBz ZXQgZWl0aGVyIGJlbG93IG9yIGluIHRoZSBsb2NrIGNhbGxiYWNrIChpbgorICAgICAgICAgICAg ICAgICAqIHNjcnViX2NvbnRpbnVlKCkpLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAg ICAgICAgIHN0LmZpcnN0X2RpcnR5ID0gKGkgPj0gKDFVTCA8PCBvcmRlcikgLSAxKSA/CisgICAg ICAgICAgICAgICAgICAgIElOVkFMSURfRElSVFlfSURYIDogaSArIDE7CisgICAgICAgICAgICAg ICAgc3QuZHJvcCA9IGZhbHNlOworICAgICAgICAgICAgICAgIHNwaW5fbG9ja19jYigmaGVhcF9s b2NrLCBzY3J1Yl9jb250aW51ZSwgJnN0KTsKKworICAgICAgICAgICAgICAgIG5vZGVfbmVlZF9z Y3J1Yltub2RlXSAtPSBkaXJ0eV9jbnQ7CisKKyAgICAgICAgICAgICAgICBpZiAoIHN0LmRyb3Ag KQorICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKKwogICAgICAgICAgICAgICAgIGlmICgg aSA+PSAoMVUgPDwgb3JkZXIpIC0gMSApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAg ICAgICAgICBwYWdlX2xpc3RfZGVsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwpAQCAt MTE1Miw2ICsxMjQ2LDggQEAgYm9vbCBzY3J1Yl9mcmVlX3BhZ2VzKHZvaWQpCiAgICAgICAgICAg ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBwZy0+dS5mcmVlLmZpcnN0X2RpcnR5ID0g aSArIDE7CiAKKyAgICAgICAgICAgICAgICBwZy0+dS5mcmVlLnNjcnViX3N0YXRlID0gQlVERFlf Tk9UX1NDUlVCQklORzsKKwogICAgICAgICAgICAgICAgIGlmICggcHJlZW1wdCB8fCAobm9kZV9u ZWVkX3NjcnViW25vZGVdID09IDApICkKICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAg ICAgICAgICAgICB9CkBAIC0xMTYwLDYgKzEyNTYsOCBAQCBib29sIHNjcnViX2ZyZWVfcGFnZXMo dm9pZCkKIAogIG91dDoKICAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKKworIG91dF9ub2xv Y2s6CiAgICAgbm9kZV9jbGVhcihub2RlLCBub2RlX3NjcnViYmluZyk7CiAgICAgcmV0dXJuIG5v ZGVfdG9fc2NydWIoZmFsc2UpICE9IE5VTUFfTk9fTk9ERTsKIH0KQEAgLTEyNDEsNiArMTMzOSw4 IEBAIHN0YXRpYyB2b2lkIGZyZWVfaGVhcF9wYWdlcygKICAgICAgICAgICAgICAgICAgKHBoeXNf dG9fbmlkKHBhZ2VfdG9fbWFkZHIocHJlZGVjZXNzb3IpKSAhPSBub2RlKSApCiAgICAgICAgICAg ICAgICAgYnJlYWs7CiAKKyAgICAgICAgICAgIGNoZWNrX2FuZF9zdG9wX3NjcnViKHByZWRlY2Vz c29yKTsKKwogICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwcmVkZWNlc3NvciwgJmhlYXAobm9k ZSwgem9uZSwgb3JkZXIpKTsKIAogICAgICAgICAgICAgLyogS2VlcCBwcmVkZWNlc3NvcidzIGZp cnN0X2RpcnR5IGlmIGl0IGlzIGFscmVhZHkgc2V0LiAqLwpAQCAtMTI2MSw2ICsxMzYxLDkgQEAg c3RhdGljIHZvaWQgZnJlZV9oZWFwX3BhZ2VzKAogICAgICAgICAgICAgICAgICAoUEZOX09SREVS KHN1Y2Nlc3NvcikgIT0gb3JkZXIpIHx8CiAgICAgICAgICAgICAgICAgIChwaHlzX3RvX25pZChw YWdlX3RvX21hZGRyKHN1Y2Nlc3NvcikpICE9IG5vZGUpICkKICAgICAgICAgICAgICAgICBicmVh azsKKworICAgICAgICAgICAgY2hlY2tfYW5kX3N0b3Bfc2NydWIoc3VjY2Vzc29yKTsKKwogICAg ICAgICAgICAgcGFnZV9saXN0X2RlbChzdWNjZXNzb3IsICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVy KSk7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oIGIv eGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCmluZGV4IGQyNmIyMzIuLmUyZGUwYzEgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL21t LmgKQEAgLTQyLDE4ICs0MiwyNiBAQCBzdHJ1Y3QgcGFnZV9pbmZvCiAgICAgICAgICAgICB1bnNp Z25lZCBsb25nIHR5cGVfaW5mbzsKICAgICAgICAgfSBpbnVzZTsKICAgICAgICAgLyogUGFnZSBp cyBvbiBhIGZyZWUgbGlzdDogKChjb3VudF9pbmZvICYgUEdDX2NvdW50X21hc2spID09IDApLiAq LwotICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgLyogRG8gVExCcyBuZWVkIGZsdXNoaW5n IGZvciBzYWZldHkgYmVmb3JlIG5leHQgcGFnZSB1c2U/ICovCi0gICAgICAgICAgICB1bnNpZ25l ZCBsb25nIG5lZWRfdGxiZmx1c2g6MTsKLQotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAq IEluZGV4IG9mIHRoZSBmaXJzdCAqcG9zc2libHkqIHVuc2NydWJiZWQgcGFnZSBpbiB0aGUgYnVk ZHkuCi0gICAgICAgICAgICAgKiBPbmUgbW9yZSB0aGFuIG1heGltdW0gcG9zc2libGUgb3JkZXIg dG8gYWNjb21tb2RhdGUKLSAgICAgICAgICAgICAqIElOVkFMSURfRElSVFlfSURYLgotICAgICAg ICAgICAgICovCisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIHN0cnVjdCB7CisgICAgICAg ICAgICAgICAgLyogRG8gVExCcyBuZWVkIGZsdXNoaW5nIGZvciBzYWZldHkgYmVmb3JlIG5leHQg cGFnZSB1c2U/ICovCisgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBuZWVkX3RsYmZsdXNo OjE7CisKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEluZGV4IG9mIHRo ZSBmaXJzdCAqcG9zc2libHkqIHVuc2NydWJiZWQgcGFnZSBpbiB0aGUgYnVkZHkuCisgICAgICAg ICAgICAgICAgICogT25lIG1vcmUgdGhhbiBtYXhpbXVtIHBvc3NpYmxlIG9yZGVyIHRvIGFjY29t bW9kYXRlCisgICAgICAgICAgICAgICAgICogSU5WQUxJRF9ESVJUWV9JRFguCisgICAgICAgICAg ICAgICAgICovCiAjZGVmaW5lIElOVkFMSURfRElSVFlfSURYICgoMVVMIDw8IChNQVhfT1JERVIg KyAxKSkgLSAxKQogICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmaXJzdF9kaXJ0eTpNQVhfT1JE RVIgKyAxOwogCisjZGVmaW5lIEJVRERZX05PVF9TQ1JVQkJJTkcgICAgMAorI2RlZmluZSBCVURE WV9TQ1JVQkJJTkcgICAgICAgIDEKKyNkZWZpbmUgQlVERFlfU0NSVUJfQUJPUlQgICAgICAyCisJ CXVuc2lnbmVkIGxvbmcgc2NydWJfc3RhdGU6MjsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgdmFsOwogICAgICAgICB9IGZyZWU7CiAKICAgICB9IHU7CmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21t LmgKaW5kZXggOWI3ZmQwNS4uZGY1ZWJhMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtODYsMTcgKzg2LDI2IEBA IHN0cnVjdCBwYWdlX2luZm8KICAgICAgICAgfSBzaDsKIAogICAgICAgICAvKiBQYWdlIGlzIG9u IGEgZnJlZSBsaXN0OiAoKGNvdW50X2luZm8gJiBQR0NfY291bnRfbWFzaykgPT0gMCkuICovCi0g ICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAvKiBEbyBUTEJzIG5lZWQgZmx1c2hpbmcgZm9y IHNhZmV0eSBiZWZvcmUgbmV4dCBwYWdlIHVzZT8gKi8KLSAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgbmVlZF90bGJmbHVzaDoxOwotCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogSW5k ZXggb2YgdGhlIGZpcnN0ICpwb3NzaWJseSogdW5zY3J1YmJlZCBwYWdlIGluIHRoZSBidWRkeS4K LSAgICAgICAgICAgICAqIE9uZSBtb3JlIHRoYW4gbWF4aW11bSBwb3NzaWJsZSBvcmRlciB0byBh Y2NvbW1vZGF0ZQotICAgICAgICAgICAgICogSU5WQUxJRF9ESVJUWV9JRFguCi0gICAgICAgICAg ICAgKi8KKwl1bmlvbiB7CisJICAgIHN0cnVjdCB7CisJCS8qIERvIFRMQnMgbmVlZCBmbHVzaGlu ZyBmb3Igc2FmZXR5IGJlZm9yZSBuZXh0IHBhZ2UgdXNlPyAqLworCQl1bnNpZ25lZCBsb25nIG5l ZWRfdGxiZmx1c2g6MTsKKworCQkvKgorCQkgKiBJbmRleCBvZiB0aGUgZmlyc3QgKnBvc3NpYmx5 KiB1bnNjcnViYmVkIHBhZ2UgaW4gdGhlIGJ1ZGR5LgorCQkgKiBPbmUgbW9yZSB0aGFuIG1heGlt dW0gcG9zc2libGUgb3JkZXIgdG8gYWNjb21tb2RhdGUKKwkJICogSU5WQUxJRF9ESVJUWV9JRFgu CisJCSAqLwogI2RlZmluZSBJTlZBTElEX0RJUlRZX0lEWCAoKDFVTCA8PCAoTUFYX09SREVSICsg MSkpIC0gMSkKICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZmlyc3RfZGlydHk6TUFYX09SREVS ICsgMTsKKworI2RlZmluZSBCVUREWV9OT1RfU0NSVUJCSU5HICAgIDAKKyNkZWZpbmUgQlVERFlf U0NSVUJCSU5HICAgICAgICAxCisjZGVmaW5lIEJVRERZX1NDUlVCX0FCT1JUICAgICAgMgorCQl1 bnNpZ25lZCBsb25nIHNjcnViX3N0YXRlOjI7CisJICAgIH07CisKKyAgICAgICAgICAgIHVuc2ln bmVkIGxvbmcgdmFsOwogICAgICAgICB9IGZyZWU7CiAKICAgICB9IHU7Ci0tIAoxLjguMy4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3RzLnhlbi5v cmcveGVuLWRldmVsCg==