From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v1 2/9] mm: Place unscrubbed pages at the end of pagelist Date: Fri, 24 Mar 2017 13:04:57 -0400 Message-ID: <1490375104-15450-3-git-send-email-boris.ostrovsky@oracle.com> References: <1490375104-15450-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: <1490375104-15450-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+Ci0tLQogeGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMgIHwgIDEwMyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiB4ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgg fCAgICA0ICsrCiB4ZW4vaW5jbHVkZS9hc20teDg2L21tLmggfCAgICA0ICsrCiAzIGZpbGVzIGNo YW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hl bi9jb21tb24vcGFnZV9hbGxvYy5jIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggNzkz MTkwMy4uYTI4ZWIzOCAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIv eGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKQEAgLTM4Myw2ICszODMsOCBAQCB0eXBlZGVmIHN0cnVj dCBwYWdlX2xpc3RfaGVhZCBoZWFwX2J5X3pvbmVfYW5kX29yZGVyX3RbTlJfWk9ORVNdW01BWF9P UkRFUisxXTsKIHN0YXRpYyBoZWFwX2J5X3pvbmVfYW5kX29yZGVyX3QgKl9oZWFwW01BWF9OVU1O T0RFU107CiAjZGVmaW5lIGhlYXAobm9kZSwgem9uZSwgb3JkZXIpICgoKl9oZWFwW25vZGVdKVt6 b25lXVtvcmRlcl0pCiAKK3N0YXRpYyB1bnNpZ25lZCBsb25nIG5vZGVfbmVlZF9zY3J1YltNQVhf TlVNTk9ERVNdOworCiBzdGF0aWMgdW5zaWduZWQgbG9uZyAqYXZhaWxbTUFYX05VTU5PREVTXTsK IHN0YXRpYyBsb25nIHRvdGFsX2F2YWlsX3BhZ2VzOwogCkBAIC04MDcsNyArODA5LDcgQEAgc3Rh dGljIHN0cnVjdCBwYWdlX2luZm8gKmFsbG9jX2hlYXBfcGFnZXMoCiAgICAgd2hpbGUgKCBqICE9 IG9yZGVyICkKICAgICB7CiAgICAgICAgIFBGTl9PUkRFUihwZykgPSAtLWo7Ci0gICAgICAgIHBh Z2VfbGlzdF9hZGRfdGFpbChwZywgJmhlYXAobm9kZSwgem9uZSwgaikpOworICAgICAgICBwYWdl X2xpc3RfYWRkKHBnLCAmaGVhcChub2RlLCB6b25lLCBqKSk7CiAgICAgICAgIHBnICs9IDEgPDwg ajsKICAgICB9CiAKQEAgLTgyNyw2ICs4MjksOCBAQCBzdGF0aWMgc3RydWN0IHBhZ2VfaW5mbyAq YWxsb2NfaGVhcF9wYWdlcygKICAgICAgICAgQlVHX09OKHBnW2ldLmNvdW50X2luZm8gIT0gUEdD X3N0YXRlX2ZyZWUpOwogICAgICAgICBwZ1tpXS5jb3VudF9pbmZvID0gUEdDX3N0YXRlX2ludXNl OwogCisgICAgICAgIEJVR19PTih0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIsICZwZ1tpXS5jb3Vu dF9pbmZvKSk7CisKICAgICAgICAgaWYgKCAhKG1lbWZsYWdzICYgTUVNRl9ub190bGJmbHVzaCkg KQogICAgICAgICAgICAgYWNjdW11bGF0ZV90bGJmbHVzaCgmbmVlZF90bGJmbHVzaCwgJnBnW2ld LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGxiZmx1c2hfdGltZXN0YW1wKTsK QEAgLTg1Niw2ICs4NjAsNyBAQCBzdGF0aWMgaW50IHJlc2VydmVfb2ZmbGluZWRfcGFnZShzdHJ1 Y3QgcGFnZV9pbmZvICpoZWFkKQogICAgIGludCB6b25lID0gcGFnZV90b196b25lKGhlYWQpLCBp LCBoZWFkX29yZGVyID0gUEZOX09SREVSKGhlYWQpLCBjb3VudCA9IDA7CiAgICAgc3RydWN0IHBh Z2VfaW5mbyAqY3VyX2hlYWQ7CiAgICAgaW50IGN1cl9vcmRlcjsKKyAgICBib29sX3QgbmVlZF9z Y3J1YiA9ICEhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmaGVhZC0+Y291bnRfaW5mbyk7CiAK ICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykpOwogCkBAIC04OTcsNyArOTAy LDEzIEBAIHN0YXRpYyBpbnQgcmVzZXJ2ZV9vZmZsaW5lZF9wYWdlKHN0cnVjdCBwYWdlX2luZm8g KmhlYWQpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICBtZXJnZToKICAgICAgICAgICAgICAg ICAvKiBXZSBkb24ndCBjb25zaWRlciBtZXJnaW5nIG91dHNpZGUgdGhlIGhlYWRfb3JkZXIuICov Ci0gICAgICAgICAgICAgICAgcGFnZV9saXN0X2FkZF90YWlsKGN1cl9oZWFkLCAmaGVhcChub2Rl LCB6b25lLCBjdXJfb3JkZXIpKTsKKyAgICAgICAgICAgICAgICBpZiAoIG5lZWRfc2NydWIgKQor ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgY3VyX2hlYWQtPmNvdW50X2lu Zm8gfD0gUEdDX25lZWRfc2NydWI7CisgICAgICAgICAgICAgICAgICAgIHBhZ2VfbGlzdF9hZGRf dGFpbChjdXJfaGVhZCwgJmhlYXAobm9kZSwgem9uZSwgY3VyX29yZGVyKSk7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcGFnZV9s aXN0X2FkZChjdXJfaGVhZCwgJmhlYXAobm9kZSwgem9uZSwgY3VyX29yZGVyKSk7CiAgICAgICAg ICAgICAgICAgUEZOX09SREVSKGN1cl9oZWFkKSA9IGN1cl9vcmRlcjsKICAgICAgICAgICAgICAg ICBjdXJfaGVhZCArPSAoMSA8PCBjdXJfb3JkZXIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpA QCAtOTI1LDcgKzkzNiw3IEBAIHN0YXRpYyBpbnQgcmVzZXJ2ZV9vZmZsaW5lZF9wYWdlKHN0cnVj dCBwYWdlX2luZm8gKmhlYWQpCiB9CiAKIHN0YXRpYyBib29sX3QgY2FuX21lcmdlKHN0cnVjdCBw YWdlX2luZm8gKmJ1ZGR5LCB1bnNpZ25lZCBpbnQgbm9kZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBvcmRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBvcmRlciwgYm9vbF90IG5lZWRfc2NydWIpCiB7CiAgICAgaWYgKCAhbWZuX3ZhbGlkKF9t Zm4ocGFnZV90b19tZm4oYnVkZHkpKSkgfHwKICAgICAgICAgICFwYWdlX3N0YXRlX2lzKGJ1ZGR5 LCBmcmVlKSB8fApAQCAtOTMzLDEyICs5NDQsMTggQEAgc3RhdGljIGJvb2xfdCBjYW5fbWVyZ2Uo c3RydWN0IHBhZ2VfaW5mbyAqYnVkZHksIHVuc2lnbmVkIGludCBub2RlLAogICAgICAgICAgKHBo eXNfdG9fbmlkKHBhZ2VfdG9fbWFkZHIoYnVkZHkpKSAhPSBub2RlKSApCiAgICAgICAgIHJldHVy biAwOwogCisgICAgaWYgKCBuZWVkX3NjcnViICE9CisgICAgICAgICAhIXRlc3RfYml0KF9QR0Nf bmVlZF9zY3J1YiwgJmJ1ZGR5LT5jb3VudF9pbmZvKSApCisgICAgICAgIHJldHVybiAwOworCiAg ICAgcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyB2b2lkIG1lcmdlX2NodW5rcyhzdHJ1Y3QgcGFnZV9p bmZvICpwZywgdW5zaWduZWQgaW50IG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IHpvbmUsIHVuc2lnbmVkIGludCBvcmRlcikKIHsKKyAgICBib29sX3QgbmVlZF9z Y3J1YiA9ICEhdGVzdF9iaXQoX1BHQ19uZWVkX3NjcnViLCAmcGctPmNvdW50X2luZm8pOworCiAg ICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZoZWFwX2xvY2spKTsKIAogICAgIC8qIE1lcmdlIGNo dW5rcyBhcyBmYXIgYXMgcG9zc2libGUuICovCkBAIC05NTEsOSArOTY4LDEwIEBAIHN0YXRpYyB2 b2lkIG1lcmdlX2NodW5rcyhzdHJ1Y3QgcGFnZV9pbmZvICpwZywgdW5zaWduZWQgaW50IG5vZGUs CiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIE1lcmdlIHdpdGggcHJlZGVjZXNzb3IgYmxvY2s/ ICovCiAgICAgICAgICAgICBidWRkeSA9IHBnIC0gbWFzazsKLSAgICAgICAgICAgIGlmICggIWNh bl9tZXJnZShidWRkeSwgbm9kZSwgb3JkZXIpICkKKyAgICAgICAgICAgIGlmICggIWNhbl9tZXJn ZShidWRkeSwgbm9kZSwgb3JkZXIsIG5lZWRfc2NydWIpICkKICAgICAgICAgICAgICAgICBicmVh azsKIAorICAgICAgICAgICAgcGctPmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnViOwogICAg ICAgICAgICAgcGcgPSBidWRkeTsKICAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwocGcsICZoZWFw KG5vZGUsIHpvbmUsIG9yZGVyKSk7CiAgICAgICAgIH0KQEAgLTk2MSw5ICs5NzksMTAgQEAgc3Rh dGljIHZvaWQgbWVyZ2VfY2h1bmtzKHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBpbnQg bm9kZSwKICAgICAgICAgewogICAgICAgICAgICAgLyogTWVyZ2Ugd2l0aCBzdWNjZXNzb3IgYmxv Y2s/ICovCiAgICAgICAgICAgICBidWRkeSA9IHBnICsgbWFzazsKLSAgICAgICAgICAgIGlmICgg IWNhbl9tZXJnZShidWRkeSwgbm9kZSwgb3JkZXIpICkKKyAgICAgICAgICAgIGlmICggIWNhbl9t ZXJnZShidWRkeSwgbm9kZSwgb3JkZXIsIG5lZWRfc2NydWIpICkKICAgICAgICAgICAgICAgICBi cmVhazsKIAorICAgICAgICAgICAgYnVkZHktPmNvdW50X2luZm8gJj0gflBHQ19uZWVkX3NjcnVi OwogICAgICAgICAgICAgcGFnZV9saXN0X2RlbChidWRkeSwgJmhlYXAobm9kZSwgem9uZSwgb3Jk ZXIpKTsKICAgICAgICAgfQogCkBAIC05NzEsMTIgKzk5MCw1NCBAQCBzdGF0aWMgdm9pZCBtZXJn ZV9jaHVua3Moc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBub2RlLAogICAgIH0K IAogICAgIFBGTl9PUkRFUihwZykgPSBvcmRlcjsKLSAgICBwYWdlX2xpc3RfYWRkX3RhaWwocGcs ICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7CisgICAgaWYgKCBuZWVkX3NjcnViICkKKyAgICB7 CisgICAgICAgIHBnLT5jb3VudF9pbmZvIHw9IFBHQ19uZWVkX3NjcnViOworICAgICAgICBwYWdl X2xpc3RfYWRkX3RhaWwocGcsICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7CisgICAgfQorICAg IGVsc2UKKyAgICAgICAgcGFnZV9saXN0X2FkZChwZywgJmhlYXAobm9kZSwgem9uZSwgb3JkZXIp KTsKK30KKworc3RhdGljIHZvaWQgc2NydWJfZnJlZV9wYWdlcyh1bnNpZ25lZCBpbnQgbm9kZSkK K3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKKyAgICB1bnNpZ25lZCBpbnQgaSwgem9uZTsK KyAgICBpbnQgb3JkZXI7CisKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhlYXBfbG9jaykp OworCisgICAgaWYgKCAhbm9kZV9uZWVkX3NjcnViW25vZGVdICkKKyAgICAgICAgcmV0dXJuOwor CisgICAgZm9yICggem9uZSA9IDA7IHpvbmUgPCBOUl9aT05FUzsgem9uZSsrICkKKyAgICB7Cisg ICAgICAgIGZvciAoIG9yZGVyID0gTUFYX09SREVSOyBvcmRlciA+PSAwOyBvcmRlci0tICkKKyAg ICAgICAgeworICAgICAgICAgICAgd2hpbGUgKCAhcGFnZV9saXN0X2VtcHR5KCZoZWFwKG5vZGUs IHpvbmUsIG9yZGVyKSkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qIFVuc2Ny dWJiZWQgcGFnZXMgYXJlIGFsd2F5cyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LiAqLworICAgICAg ICAgICAgICAgIHBnID0gcGFnZV9saXN0X2xhc3QoJmhlYXAobm9kZSwgem9uZSwgb3JkZXIpKTsK KyAgICAgICAgICAgICAgICBpZiAoICF0ZXN0X2JpdChfUEdDX25lZWRfc2NydWIsICZwZy0+Y291 bnRfaW5mbykgKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAg IGZvciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBvcmRlcik7IGkrKykKKyAgICAgICAgICAgICAgICAg ICAgc2NydWJfb25lX3BhZ2UoJnBnW2ldKTsKKworICAgICAgICAgICAgICAgIHBnLT5jb3VudF9p bmZvICY9IH5QR0NfbmVlZF9zY3J1YjsKKworICAgICAgICAgICAgICAgIHBhZ2VfbGlzdF9kZWwo cGcsICZoZWFwKG5vZGUsIHpvbmUsIG9yZGVyKSk7CisgICAgICAgICAgICAgICAgbWVyZ2VfY2h1 bmtzKHBnLCBub2RlLCB6b25lLCBvcmRlcik7CisKKyAgICAgICAgICAgICAgICBub2RlX25lZWRf c2NydWJbbm9kZV0gLT0gKDFVTCA8PCBvcmRlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0K KyAgICB9CiB9CiAKIC8qIEZyZWUgMl5Ab3JkZXIgc2V0IG9mIHBhZ2VzLiAqLwogc3RhdGljIHZv aWQgZnJlZV9oZWFwX3BhZ2VzKAotICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnLCB1bnNpZ25lZCBp bnQgb3JkZXIpCisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGcsIHVuc2lnbmVkIGludCBvcmRlciwg Ym9vbF90IG5lZWRfc2NydWIpCiB7CiAgICAgdW5zaWduZWQgbG9uZyBtZm4gPSBwYWdlX3RvX21m bihwZyk7CiAgICAgdW5zaWduZWQgaW50IGksIG5vZGUgPSBwaHlzX3RvX25pZChwYWdlX3RvX21h ZGRyKHBnKSksIHRhaW50ZWQgPSAwOwpAQCAtMTAyNSwxMSArMTA4NiwyMCBAQCBzdGF0aWMgdm9p ZCBmcmVlX2hlYXBfcGFnZXMoCiAgICAgICAgIG1pZHNpemVfYWxsb2Nfem9uZV9wYWdlcyA9IG1h eCgKICAgICAgICAgICAgIG1pZHNpemVfYWxsb2Nfem9uZV9wYWdlcywgdG90YWxfYXZhaWxfcGFn ZXMgLyBNSURTSVpFX0FMTE9DX0ZSQUMpOwogCisgICAgaWYgKCBuZWVkX3NjcnViICYmICF0YWlu dGVkICkKKyAgICB7CisgICAgICAgIHBnLT5jb3VudF9pbmZvIHw9IFBHQ19uZWVkX3NjcnViOwor ICAgICAgICBub2RlX25lZWRfc2NydWJbbm9kZV0gKz0gKDFVTCA8PCBvcmRlcik7CisgICAgfQor CiAgICAgbWVyZ2VfY2h1bmtzKHBnLCBub2RlLCB6b25lLCBvcmRlcik7CiAKICAgICBpZiAoIHRh aW50ZWQgKQogICAgICAgICByZXNlcnZlX29mZmxpbmVkX3BhZ2UocGcpOwogCisgICAgaWYgKCBu ZWVkX3NjcnViICkKKyAgICAgICAgc2NydWJfZnJlZV9wYWdlcyhub2RlKTsKKwogICAgIHNwaW5f dW5sb2NrKCZoZWFwX2xvY2spOwogfQogCkBAIC0xMjUwLDcgKzEzMjAsNyBAQCB1bnNpZ25lZCBp bnQgb25saW5lX3BhZ2UodW5zaWduZWQgbG9uZyBtZm4sIHVpbnQzMl90ICpzdGF0dXMpCiAgICAg c3Bpbl91bmxvY2soJmhlYXBfbG9jayk7CiAKICAgICBpZiAoICh5ICYgUEdDX3N0YXRlKSA9PSBQ R0Nfc3RhdGVfb2ZmbGluZWQgKQotICAgICAgICBmcmVlX2hlYXBfcGFnZXMocGcsIDApOworICAg ICAgICBmcmVlX2hlYXBfcGFnZXMocGcsIDAsIDApOwogCiAgICAgcmV0dXJuIHJldDsKIH0KQEAg LTEzMTksNyArMTM4OSw3IEBAIHN0YXRpYyB2b2lkIGluaXRfaGVhcF9wYWdlcygKICAgICAgICAg ICAgIG5yX3BhZ2VzIC09IG47CiAgICAgICAgIH0KIAotICAgICAgICBmcmVlX2hlYXBfcGFnZXMo cGcraSwgMCk7CisgICAgICAgIGZyZWVfaGVhcF9wYWdlcyhwZyArIGksIDAsIDApOwogICAgIH0K IH0KIApAQCAtMTY0Niw3ICsxNzE2LDcgQEAgdm9pZCBmcmVlX3hlbmhlYXBfcGFnZXModm9pZCAq diwgdW5zaWduZWQgaW50IG9yZGVyKQogCiAgICAgbWVtZ3VhcmRfZ3VhcmRfcmFuZ2UodiwgMSA8 PCAob3JkZXIgKyBQQUdFX1NISUZUKSk7CiAKLSAgICBmcmVlX2hlYXBfcGFnZXModmlydF90b19w YWdlKHYpLCBvcmRlcik7CisgICAgZnJlZV9oZWFwX3BhZ2VzKHZpcnRfdG9fcGFnZSh2KSwgb3Jk ZXIsIDApOwogfQogCiAjZWxzZQpAQCAtMTcwMCwxMiArMTc3MCw5IEBAIHZvaWQgZnJlZV94ZW5o ZWFwX3BhZ2VzKHZvaWQgKnYsIHVuc2lnbmVkIGludCBvcmRlcikKICAgICBwZyA9IHZpcnRfdG9f cGFnZSh2KTsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgKDF1IDw8IG9yZGVyKTsgaSsrICkKLSAg ICB7Ci0gICAgICAgIHNjcnViX29uZV9wYWdlKCZwZ1tpXSk7CiAgICAgICAgIHBnW2ldLmNvdW50 X2luZm8gJj0gflBHQ194ZW5faGVhcDsKLSAgICB9CiAKLSAgICBmcmVlX2hlYXBfcGFnZXMocGcs IG9yZGVyKTsKKyAgICBmcmVlX2hlYXBfcGFnZXMocGcsIG9yZGVyLCAxKTsKIH0KIAogI2VuZGlm CkBAIC0xODE0LDcgKzE4ODEsNyBAQCBzdHJ1Y3QgcGFnZV9pbmZvICphbGxvY19kb21oZWFwX3Bh Z2VzKAogICAgIGlmICggZCAmJiAhKG1lbWZsYWdzICYgTUVNRl9ub19vd25lcikgJiYKICAgICAg ICAgIGFzc2lnbl9wYWdlcyhkLCBwZywgb3JkZXIsIG1lbWZsYWdzKSApCiAgICAgewotICAgICAg ICBmcmVlX2hlYXBfcGFnZXMocGcsIG9yZGVyKTsKKyAgICAgICAgZnJlZV9oZWFwX3BhZ2VzKHBn LCBvcmRlciwgMCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICAKQEAgLTE4ODIs MTEgKzE5NDksNyBAQCB2b2lkIGZyZWVfZG9taGVhcF9wYWdlcyhzdHJ1Y3QgcGFnZV9pbmZvICpw ZywgdW5zaWduZWQgaW50IG9yZGVyKQogICAgICAgICAgICAgc2NydWIgPSAxOwogICAgICAgICB9 CiAKLSAgICAgICAgaWYgKCB1bmxpa2VseShzY3J1YikgKQotICAgICAgICAgICAgZm9yICggaSA9 IDA7IGkgPCAoMSA8PCBvcmRlcik7IGkrKyApCi0gICAgICAgICAgICAgICAgc2NydWJfb25lX3Bh Z2UoJnBnW2ldKTsKLQotICAgICAgICBmcmVlX2hlYXBfcGFnZXMocGcsIG9yZGVyKTsKKyAgICAg ICAgZnJlZV9oZWFwX3BhZ2VzKHBnLCBvcmRlciwgc2NydWIpOwogICAgIH0KIAogICAgIGlmICgg ZHJvcF9kb21fcmVmICkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaCBiL3hl bi9pbmNsdWRlL2FzbS1hcm0vbW0uaAppbmRleCA2MGNjYmYzLi41MmEwM2EwIDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9tbS5o CkBAIC0xMTMsNiArMTEzLDEwIEBAIHN0cnVjdCBwYWdlX2luZm8KICNkZWZpbmUgUEdDX2NvdW50 X3dpZHRoICAgUEdfc2hpZnQoOSkKICNkZWZpbmUgUEdDX2NvdW50X21hc2sgICAgKCgxVUw8PFBH Q19jb3VudF93aWR0aCktMSkKIAorLyogUGFnZSBuZWVkcyB0byBiZSBzY3J1YmJlZCAqLworI2Rl ZmluZSBfUEdDX25lZWRfc2NydWIgICBQR19zaGlmdCgxMCkKKyNkZWZpbmUgUEdDX25lZWRfc2Ny dWIgICAgUEdfbWFzaygxLCAxMCkKKwogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgeGVuaGVhcF9tZm5f c3RhcnQsIHhlbmhlYXBfbWZuX2VuZDsKIGV4dGVybiB2YWRkcl90IHhlbmhlYXBfdmlydF9lbmQ7 CiAjaWZkZWYgQ09ORklHX0FSTV82NApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9t bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oCmluZGV4IGUyMjYwM2MuLmYzZDQ0NDMgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L21tLmgKQEAgLTIzMyw2ICsyMzMsMTAgQEAgc3RydWN0IHBhZ2VfaW5mbwogI2RlZmluZSBQ R0NfY291bnRfd2lkdGggICBQR19zaGlmdCg5KQogI2RlZmluZSBQR0NfY291bnRfbWFzayAgICAo KDFVTDw8UEdDX2NvdW50X3dpZHRoKS0xKQogCisvKiBQYWdlIG5lZWRzIHRvIGJlIHNjcnViYmVk ICovCisjZGVmaW5lIF9QR0NfbmVlZF9zY3J1YiAgIFBHX3NoaWZ0KDEwKQorI2RlZmluZSBQR0Nf bmVlZF9zY3J1YiAgICBQR19tYXNrKDEsIDEwKQorCiBzdHJ1Y3Qgc3BhZ2VfaW5mbwogewogICAg ICAgIHVuc2lnbmVkIGxvbmcgdHlwZV9pbmZvOwotLSAKMS43LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK