From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v2 2/9] mm: Place unscrubbed pages at the end of pagelist Date: Mon, 3 Apr 2017 12:50:49 -0400 Message-ID: <1491238256-5517-3-git-send-email-boris.ostrovsky@oracle.com> References: <1491238256-5517-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: <1491238256-5517-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 LiBzbyB0aGF0IGl0J3MgZWFzeSB0byBmaW5kIHBhZ2VzIHRoYXQgbmVlZCB0byBiZSBzY3J1YmJl ZCAodGhvc2UgcGFnZXMgYXJlCm5vdyBtYXJrZWQgd2l0aCBfUEdDX25lZWRfc2NydWIgYml0KS4K ClNpZ25lZC1vZmYtYnk6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0cm92c2t5QG9yYWNsZS5j b20+Ci0tLQpDaGFuZ2VzIGluIHYyOgoqIEFkZGVkIHBhZ2VfbGlzdF9hZGRfc2NydWIoKQoqIE1h cmsgcGFnZXMgYXMgbmVlZGluZyBhIHNjcnViIGlycmVzcGVjdGl2ZSBvbiB0YW50ZWQgaW4gZnJl ZV9oZWFwX3BhZ2VzKCkKCiB4ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYyAgfCAgMTA2ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS1h cm0vbW0uaCB8ICAgIDQgKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvbW0uaCB8ICAgIDQgKysKIDMg ZmlsZXMgY2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpp bmRleCAxNWZkN2Y0Li41NjQ4NmE4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3BhZ2VfYWxsb2Mu YworKysgYi94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYwpAQCAtMzgzLDYgKzM4Myw4IEBAIHR5cGVk ZWYgc3RydWN0IHBhZ2VfbGlzdF9oZWFkIGhlYXBfYnlfem9uZV9hbmRfb3JkZXJfdFtOUl9aT05F U11bTUFYX09SREVSKzFdOwogc3RhdGljIGhlYXBfYnlfem9uZV9hbmRfb3JkZXJfdCAqX2hlYXBb TUFYX05VTU5PREVTXTsKICNkZWZpbmUgaGVhcChub2RlLCB6b25lLCBvcmRlcikgKCgqX2hlYXBb bm9kZV0pW3pvbmVdW29yZGVyXSkKIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgbm9kZV9uZWVkX3Nj cnViW01BWF9OVU1OT0RFU107CisKIHN0YXRpYyB1bnNpZ25lZCBsb25nICphdmFpbFtNQVhfTlVN Tk9ERVNdOwogc3RhdGljIGxvbmcgdG90YWxfYXZhaWxfcGFnZXM7CiAKQEAgLTY4Myw2ICs2ODUs MjAgQEAgc3RhdGljIHZvaWQgY2hlY2tfbG93X21lbV92aXJxKHZvaWQpCiAgICAgfQogfQogCisv KiBQYWdlcyB0aGF0IG5lZWQgc2NydWIgYXJlIGFkZGVkIHRvIHRhaWwsIG90aGVyd2lzZSB0byBo ZWFkLiAqLworc3RhdGljIHZvaWQgcGFnZV9saXN0X2FkZF9zY3J1YihzdHJ1Y3QgcGFnZV9pbmZv ICpwZywgdW5zaWduZWQgaW50IG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCB6b25lLCB1bnNpZ25lZCBpbnQgb3JkZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2xfdCBuZWVkX3NjcnViKQoreworICAgIGlmICggbmVlZF9zY3J1 YiApCisgICAgeworICAgICAgICBwZy0+Y291bnRfaW5mbyB8PSBQR0NfbmVlZF9zY3J1YjsKKyAg ICAgICAgcGFnZV9saXN0X2FkZF90YWlsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOwor ICAgIH0KKyAgICBlbHNlCisgICAgICAgIHBhZ2VfbGlzdF9hZGQocGcsICZoZWFwKG5vZGUsIHpv bmUsIG9yZGVyKSk7Cit9CisKIC8qIEFsbG9jYXRlIDJeQG9yZGVyIGNvbnRpZ3VvdXMgcGFnZXMu ICovCiBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAqYWxsb2NfaGVhcF9wYWdlcygKICAgICB1bnNp Z25lZCBpbnQgem9uZV9sbywgdW5zaWduZWQgaW50IHpvbmVfaGksCkBAIC04MDcsNyArODIzLDcg QEAgc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFnZXMoCiAgICAgd2hpbGUg KCBqICE9IG9yZGVyICkKICAgICB7CiAgICAgICAgIFBGTl9PUkRFUihwZykgPSAtLWo7Ci0gICAg ICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwgem9uZSwgaikpOworICAgICAg ICBwYWdlX2xpc3RfYWRkKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7CiAgICAgICAgIHBnICs9 IDEgPDwgajsKICAgICB9CiAKQEAgLTgyNyw2ICs4NDMsOCBAQCBzdGF0aWMgc3RydWN0IHBhZ2Vf aW5mbyAqYWxsb2NfaGVhcF9wYWdlcygKICAgICAgICAgQlVHX09OKHBnW2ldLmNvdW50X2luZm8g IT0gUEdDX3N0YXRlX2ZyZWUpOwogICAgICAgICBwZ1tpXS5jb3VudF9pbmZvID0gUEdDX3N0YXRl X2ludXNlOwogCisgICAgICAgIEJVR19PTih0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIsICZwZ1tp XS5jb3VudF9pbmZvKSk7CisKICAgICAgICAgaWYgKCAhKG1lbWZsYWdzICYgTUVNRl9ub190bGJm bHVzaCkgKQogICAgICAgICAgICAgYWNjdW11bGF0ZV90bGJmbHVzaCgmbmVlZF90bGJmbHVzaCwg JnBnW2ldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGxiZmx1c2hfdGltZXN0 YW1wKTsKQEAgLTg1Niw2ICs4NzQsNyBAQCBzdGF0aWMgaW50IHJlc2VydmVfb2ZmbGluZWRfcGFn ZShzdHJ1Y3QgcGFnZV9pbmZvICpoZWFkKQogICAgIGludCB6b25lID0gcGFnZV90b196b25lKGhl YWQpLCBpLCBoZWFkX29yZGVyID0gUEZOX09SREVSKGhlYWQpLCBjb3VudCA9IDA7CiAgICAgc3Ry dWN0IHBhZ2VfaW5mbyAqY3VyX2hlYWQ7CiAgICAgaW50IGN1cl9vcmRlcjsKKyAgICBib29sX3Qg bmVlZF9zY3J1YiA9ICEhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmaGVhZC0+Y291bnRfaW5m byk7CiAKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykpOwogCkBAIC04OTcs OCArOTE2LDggQEAgc3RhdGljIGludCByZXNlcnZlX29mZmxpbmVkX3BhZ2Uoc3RydWN0IHBhZ2Vf aW5mbyAqaGVhZCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgIG1lcmdlOgogICAgICAgICAg ICAgICAgIC8qIFdlIGRvbid0IGNvbnNpZGVyIG1lcmdpbmcgb3V0c2lkZSB0aGUgaGVhZF9vcmRl ci4gKi8KLSAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkX3RhaWwoY3VyX2hlYWQsICZoZWFw KG5vZGUsIHpvbmUsIGN1cl9vcmRlcikpOwogICAgICAgICAgICAgICAgIFBGTl9PUkRFUihjdXJf aGVhZCkgPSBjdXJfb3JkZXI7CisgICAgICAgICAgICAgICAgcGFnZV9saXN0X2FkZF9zY3J1Yihj dXJfaGVhZCwgbm9kZSwgem9uZSwgY3VyX29yZGVyLCBuZWVkX3NjcnViKTsKICAgICAgICAgICAg ICAgICBjdXJfaGVhZCArPSAoMSA8PCBjdXJfb3JkZXIpOwogICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICAgICAgfQpAQCAtOTI1LDcgKzk0NCw3IEBAIHN0YXRpYyBpbnQgcmVzZXJ2ZV9v ZmZsaW5lZF9wYWdlKHN0cnVjdCBwYWdlX2luZm8gKmhlYWQpCiB9CiAKIHN0YXRpYyBib29sX3Qg Y2FuX21lcmdlKHN0cnVjdCBwYWdlX2luZm8gKmJ1ZGR5LCB1bnNpZ25lZCBpbnQgbm9kZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlcikKKyAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBvcmRlciwgYm9vbF90IG5lZWRfc2NydWIpCiB7CiAgICAg aWYgKCAhbWZuX3ZhbGlkKF9tZm4ocGFnZV90b19tZm4oYnVkZHkpKSkgfHwKICAgICAgICAgICFw YWdlX3N0YXRlX2lzKGJ1ZGR5LCBmcmVlKSB8fApAQCAtOTMzLDYgKzk1MiwxMCBAQCBzdGF0aWMg Ym9vbF90IGNhbl9tZXJnZShzdHJ1Y3QgcGFnZV9pbmZvICpidWRkeSwgdW5zaWduZWQgaW50IG5v ZGUsCiAgICAgICAgICAocGh5c190b19uaWQocGFnZV90b19tYWRkcihidWRkeSkpICE9IG5vZGUp ICkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCBuZWVkX3NjcnViICE9CisgICAg ICAgICAhIXRlc3RfYml0KF9QR0NfbmVlZF9zY3J1YiwgJmJ1ZGR5LT5jb3VudF9pbmZvKSApCisg ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC05NDAsNiAr OTYzLDggQEAgc3RhdGljIGJvb2xfdCBjYW5fbWVyZ2Uoc3RydWN0IHBhZ2VfaW5mbyAqYnVkZHks IHVuc2lnbmVkIGludCBub2RlLAogc3RhdGljIHN0cnVjdCBwYWdlX2luZm8gKm1lcmdlX2NodW5r cyhzdHJ1Y3QgcGFnZV9pbmZvICpwZywgdW5zaWduZWQgaW50IG5vZGUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB6b25lLCB1bnNpZ25lZCBpbnQg b3JkZXIpCiB7CisgICAgYm9vbF90IG5lZWRfc2NydWIgPSAhIXRlc3RfYml0KF9QR0NfbmVlZF9z Y3J1YiwgJnBnLT5jb3VudF9pbmZvKTsKKwogICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmaGVh cF9sb2NrKSk7CiAKICAgICAvKiBNZXJnZSBjaHVua3MgYXMgZmFyIGFzIHBvc3NpYmxlLiAqLwpA QCAtOTUyLDkgKzk3NywxMCBAQCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAqbWVyZ2VfY2h1bmtz KHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgbm9kZSwKICAgICAgICAgewogICAg ICAgICAgICAgLyogTWVyZ2Ugd2l0aCBwcmVkZWNlc3NvciBibG9jaz8gKi8KICAgICAgICAgICAg IGJ1ZGR5ID0gcGcgLSBtYXNrOwotICAgICAgICAgICAgaWYgKCAhY2FuX21lcmdlKGJ1ZGR5LCBu b2RlLCBvcmRlcikgKQorICAgICAgICAgICAgaWYgKCAhY2FuX21lcmdlKGJ1ZGR5LCBub2RlLCBv cmRlciwgbmVlZF9zY3J1YikgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgICAg ICBwZy0+Y291bnRfaW5mbyAmPSB+UEdDX25lZWRfc2NydWI7CiAgICAgICAgICAgICBwZyA9IGJ1 ZGR5OwogICAgICAgICAgICAgcGFnZV9saXN0X2RlbChwZywgJmhlYXAobm9kZSwgem9uZSwgb3Jk ZXIpKTsKICAgICAgICAgfQpAQCAtOTYyLDkgKzk4OCwxMCBAQCBzdGF0aWMgc3RydWN0IHBhZ2Vf aW5mbyAqbWVyZ2VfY2h1bmtzKHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgbm9k ZSwKICAgICAgICAgewogICAgICAgICAgICAgLyogTWVyZ2Ugd2l0aCBzdWNjZXNzb3IgYmxvY2s/ ICovCiAgICAgICAgICAgICBidWRkeSA9IHBnICsgbWFzazsKLSAgICAgICAgICAgIGlmICggIWNh bl9tZXJnZShidWRkeSwgbm9kZSwgb3JkZXIpICkKKyAgICAgICAgICAgIGlmICggIWNhbl9tZXJn ZShidWRkeSwgbm9kZSwgb3JkZXIsIG5lZWRfc2NydWIpICkKICAgICAgICAgICAgICAgICBicmVh azsKIAorICAgICAgICAgICAgYnVkZHktPmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnViOwog ICAgICAgICAgICAgcGFnZV9saXN0X2RlbChidWRkeSwgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIp KTsKICAgICAgICAgfQogCkBAIC05NzIsMTQgKzk5OSw1MSBAQCBzdGF0aWMgc3RydWN0IHBhZ2Vf aW5mbyAqbWVyZ2VfY2h1bmtzKHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQgbm9k ZSwKICAgICB9CiAKICAgICBQRk5fT1JERVIocGcpID0gb3JkZXI7Ci0gICAgcGFnZV9saXN0X2Fk ZF90YWlsKHBnLCAmaGVhcChub2RlLCB6b25lLCBvcmRlcikpOworICAgIHBhZ2VfbGlzdF9hZGRf c2NydWIocGcsIG5vZGUsIHpvbmUsIG9yZGVyLCBuZWVkX3NjcnViKTsKIAogICAgIHJldHVybiBw ZzsKIH0KIAorc3RhdGljIHZvaWQgc2NydWJfZnJlZV9wYWdlcyh1bnNpZ25lZCBpbnQgbm9kZSkK K3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKKyAgICB1bnNpZ25lZCBpbnQgaSwgem9uZTsK KyAgICBpbnQgb3JkZXI7CisKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykp OworCisgICAgaWYgKCAhbm9kZV9uZWVkX3NjcnViW25vZGVdICkKKyAgICAgICAgcmV0dXJuOwor CisgICAgZm9yICggem9uZSA9IDA7IHpvbmUgPCBOUl9aT05FUzsgem9uZSsrICkKKyAgICB7Cisg ICAgICAgIGZvciAoIG9yZGVyID0gTUFYX09SREVSOyBvcmRlciA+PSAwOyBvcmRlci0tICkKKyAg ICAgICAgeworICAgICAgICAgICAgd2hpbGUgKCAhcGFnZV9saXN0X2VtcHR5KCZoZWFwKG5vZGUs IHpvbmUsIG9yZGVyKSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qIFVuc2Ny dWJiZWQgcGFnZXMgYXJlIGFsd2F5cyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LiAqLworICAgICAg ICAgICAgICAgIHBnID0gcGFnZV9saXN0X2xhc3QoJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsK KyAgICAgICAgICAgICAgICBpZiAoICF0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIsICZwZy0+Y291 bnRfaW5mbykgKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAg IGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRlcik7IGkrKykKKyAgICAgICAgICAgICAgICAg ICAgc2NydWJfb25lX3BhZ2UoJnBnW2ldKTsKKworICAgICAgICAgICAgICAgIHBnLT5jb3VudF9p bmZvICY9IH5QR0NfbmVlZF9zY3J1YjsKKworICAgICAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwo cGcsICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7CisgICAgICAgICAgICAgICAgKHZvaWQpbWVy Z2VfY2h1bmtzKHBnLCBub2RlLCB6b25lLCBvcmRlcik7CisKKyAgICAgICAgICAgICAgICBub2Rl X25lZWRfc2NydWJbbm9kZV0gLT0gKDFVTCA8PCBvcmRlcik7CisgICAgICAgICAgICB9CisgICAg ICAgIH0KKyAgICB9CisgfQorCisKIC8qIEZyZWUgMl5Ab3JkZXIgc2V0IG9mIHBhZ2VzLiAqLwog c3RhdGljIHZvaWQgZnJlZV9oZWFwX3BhZ2VzKAotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1 bnNpZ25lZCBpbnQgb3JkZXIpCisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGlu dCBvcmRlciwgYm9vbF90IG5lZWRfc2NydWIpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBw YWdlX3RvX21mbihwZyk7CiAgICAgdW5zaWduZWQgaW50IGksIG5vZGUgPSBwaHlzX3RvX25pZChw YWdlX3RvX21hZGRyKHBnKSksIHRhaW50ZWQgPSAwOwpAQCAtMTAyOCwxMSArMTA5MiwyMCBAQCBz dGF0aWMgdm9pZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgIG1pZHNpemVfYWxsb2Nfem9uZV9w YWdlcyA9IG1heCgKICAgICAgICAgICAgIG1pZHNpemVfYWxsb2Nfem9uZV9wYWdlcywgdG90YWxf YXZhaWxfcGFnZXMgLyBNSURTSVpFX0FMTE9DX0ZSQUMpOwogCisgICAgaWYgKCBuZWVkX3NjcnVi ICkKKyAgICB7CisgICAgICAgIHBnLT5jb3VudF9pbmZvIHw9IFBHQ19uZWVkX3NjcnViOworICAg ICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0gKz0gKDFVTCA8PCBvcmRlcik7CisgICAgfQorCiAg ICAgcGcgPSBtZXJnZV9jaHVua3MocGcsIG5vZGUsIHpvbmUsIG9yZGVyKTsKIAogICAgIGlmICgg dGFpbnRlZCApCiAgICAgICAgIHJlc2VydmVfb2ZmbGluZWRfcGFnZShwZyk7CiAKKyAgICBpZiAo IG5lZWRfc2NydWIgKQorICAgICAgICBzY3J1Yl9mcmVlX3BhZ2VzKG5vZGUpOworCiAgICAgc3Bp bl91bmxvY2soJmhlYXBfbG9jayk7CiB9CiAKQEAgLTEyNTMsNyArMTMyNiw3IEBAIHVuc2lnbmVk IGludCBvbmxpbmVfcGFnZSh1bnNpZ25lZCBsb25nIG1mbiwgdWludDMyX3QgKnN0YXR1cykKICAg ICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsKIAogICAgIGlmICggKHkgJiBQR0Nfc3RhdGUpID09 IFBHQ19zdGF0ZV9vZmZsaW5lZCApCi0gICAgICAgIGZyZWVfaGVhcF9wYWdlcyhwZywgMCk7Cisg ICAgICAgIGZyZWVfaGVhcF9wYWdlcyhwZywgMCwgMCk7CiAKICAgICByZXR1cm4gcmV0OwogfQpA QCAtMTMyMiw3ICsxMzk1LDcgQEAgc3RhdGljIHZvaWQgaW5pdF9oZWFwX3BhZ2VzKAogICAgICAg ICAgICAgbnJfcGFnZXMgLT0gbjsKICAgICAgICAgfQogCi0gICAgICAgIGZyZWVfaGVhcF9wYWdl cyhwZytpLCAwKTsKKyAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBnICsgaSwgMCwgMCk7CiAgICAg fQogfQogCkBAIC0xNjQ5LDcgKzE3MjIsNyBAQCB2b2lkIGZyZWVfeGVuaGVhcF9wYWdlcyh2b2lk ICp2LCB1bnNpZ25lZCBpbnQgb3JkZXIpCiAKICAgICBtZW1ndWFyZF9ndWFyZF9yYW5nZSh2LCAx IDw8IChvcmRlciArIFBBR0VfU0hJRlQpKTsKIAotICAgIGZyZWVfaGVhcF9wYWdlcyh2aXJ0X3Rv X3BhZ2UodiksIG9yZGVyKTsKKyAgICBmcmVlX2hlYXBfcGFnZXModmlydF90b19wYWdlKHYpLCBv cmRlciwgMCk7CiB9CiAKICNlbHNlCkBAIC0xNzAzLDEyICsxNzc2LDkgQEAgdm9pZCBmcmVlX3hl bmhlYXBfcGFnZXModm9pZCAqdiwgdW5zaWduZWQgaW50IG9yZGVyKQogICAgIHBnID0gdmlydF90 b19wYWdlKHYpOwogCiAgICAgZm9yICggaSA9IDA7IGkgPCAoMXUgPDwgb3JkZXIpOyBpKysgKQot ICAgIHsKLSAgICAgICAgc2NydWJfb25lX3BhZ2UoJnBnW2ldKTsKICAgICAgICAgcGdbaV0uY291 bnRfaW5mbyAmPSB+UEdDX3hlbl9oZWFwOwotICAgIH0KIAotICAgIGZyZWVfaGVhcF9wYWdlcyhw Zywgb3JkZXIpOworICAgIGZyZWVfaGVhcF9wYWdlcyhwZywgb3JkZXIsIDEpOwogfQogCiAjZW5k aWYKQEAgLTE4MTcsNyArMTg4Nyw3IEBAIHN0cnVjdCBwYWdlX2luZm8gKmFsbG9jX2RvbWhlYXBf cGFnZXMoCiAgICAgaWYgKCBkICYmICEobWVtZmxhZ3MgJiBNRU1GX25vX293bmVyKSAmJgogICAg ICAgICAgYXNzaWduX3BhZ2VzKGQsIHBnLCBvcmRlciwgbWVtZmxhZ3MpICkKICAgICB7Ci0gICAg ICAgIGZyZWVfaGVhcF9wYWdlcyhwZywgb3JkZXIpOworICAgICAgICBmcmVlX2hlYXBfcGFnZXMo cGcsIG9yZGVyLCAwKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIApAQCAtMTg4 NSwxMSArMTk1NSw3IEBAIHZvaWQgZnJlZV9kb21oZWFwX3BhZ2VzKHN0cnVjdCBwYWdlX2luZm8g KnBnLCB1bnNpZ25lZCBpbnQgb3JkZXIpCiAgICAgICAgICAgICBzY3J1YiA9IDE7CiAgICAgICAg IH0KIAotICAgICAgICBpZiAoIHVubGlrZWx5KHNjcnViKSApCi0gICAgICAgICAgICBmb3IgKCBp ID0gMDsgaSA8ICgxIDw8IG9yZGVyKTsgaSsrICkKLSAgICAgICAgICAgICAgICBzY3J1Yl9vbmVf cGFnZSgmcGdbaV0pOwotCi0gICAgICAgIGZyZWVfaGVhcF9wYWdlcyhwZywgb3JkZXIpOworICAg ICAgICBmcmVlX2hlYXBfcGFnZXMocGcsIG9yZGVyLCBzY3J1Yik7CiAgICAgfQogCiAgICAgaWYg KCBkcm9wX2RvbV9yZWYgKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oIGIv eGVuL2luY2x1ZGUvYXNtLWFybS9tbS5oCmluZGV4IDQ4OTIxNTUuLjE0OTk0MGIgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL21t LmgKQEAgLTEwNyw2ICsxMDcsMTAgQEAgc3RydWN0IHBhZ2VfaW5mbwogI2RlZmluZSBQR0NfY291 bnRfd2lkdGggICBQR19zaGlmdCg5KQogI2RlZmluZSBQR0NfY291bnRfbWFzayAgICAoKDFVTDw8 UEdDX2NvdW50X3dpZHRoKS0xKQogCisvKiBQYWdlIG5lZWRzIHRvIGJlIHNjcnViYmVkICovCisj ZGVmaW5lIF9QR0NfbmVlZF9zY3J1YiAgIFBHX3NoaWZ0KDEwKQorI2RlZmluZSBQR0NfbmVlZF9z Y3J1YiAgICBQR19tYXNrKDEsIDEwKQorCiBleHRlcm4gdW5zaWduZWQgbG9uZyB4ZW5oZWFwX21m bl9zdGFydCwgeGVuaGVhcF9tZm5fZW5kOwogZXh0ZXJuIHZhZGRyX3QgeGVuaGVhcF92aXJ0X2Vu ZDsKICNpZmRlZiBDT05GSUdfQVJNXzY0CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2 L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgKaW5kZXggZTIyNjAzYy4uZjNkNDQ0MyAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvbW0uaApAQCAtMjMzLDYgKzIzMywxMCBAQCBzdHJ1Y3QgcGFnZV9pbmZvCiAjZGVmaW5l IFBHQ19jb3VudF93aWR0aCAgIFBHX3NoaWZ0KDkpCiAjZGVmaW5lIFBHQ19jb3VudF9tYXNrICAg ICgoMVVMPDxQR0NfY291bnRfd2lkdGgpLTEpCiAKKy8qIFBhZ2UgbmVlZHMgdG8gYmUgc2NydWJi ZWQgKi8KKyNkZWZpbmUgX1BHQ19uZWVkX3NjcnViICAgUEdfc2hpZnQoMTApCisjZGVmaW5lIFBH Q19uZWVkX3NjcnViICAgIFBHX21hc2soMSwgMTApCisKIHN0cnVjdCBzcGFnZV9pbmZvCiB7CiAg ICAgICAgdW5zaWduZWQgbG9uZyB0eXBlX2luZm87Ci0tIAoxLjcuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=