From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arun KS Subject: [PATCH v5 1/2] memory_hotplug: Free pages as higher order Date: Fri, 5 Oct 2018 13:40:05 +0530 Message-ID: <1538727006-5727-1-git-send-email-arunks__34839.9804709063$1538726952$gmane$org@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1g8LBp-000663-2U for xen-devel@lists.xenproject.org; Fri, 05 Oct 2018 08:10:25 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com, boris.ostrovsky@oracle.com, jgross@suse.com, akpm@linux-foundation.org, dan.j.williams@intel.com, mhocko@suse.com, vbabka@suse.cz, iamjoonsoo.kim@lge.com, gregkh@linuxfoundation.org, osalvador@suse.de, malat@debian.org, kirill.shutemov@linux.intel.com, jrdr.linux@gmail.com, yasu.isimatu@gmail.com, mgorman@techsingularity.net, aaron.lu@intel.com, devel@linuxdriverproject.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, xen-devel@lists.xenproject.org Cc: Arun KS , vinmenon@codeaurora.org, vatsa@codeaurora.org, getarunks@gmail.com List-Id: xen-devel@lists.xenproject.org V2hlbiBmcmVlIHBhZ2VzIGFyZSBkb25lIHdpdGggaGlnaGVyIG9yZGVyLCB0aW1lIHNwZW5kIG9u CmNvYWxlc2NpbmcgcGFnZXMgYnkgYnVkZHkgYWxsb2NhdG9yIGNhbiBiZSByZWR1Y2VkLiBXaXRo CnNlY3Rpb24gc2l6ZSBvZiAyNTZNQiwgaG90IGFkZCBsYXRlbmN5IG9mIGEgc2luZ2xlIHNlY3Rp b24Kc2hvd3MgaW1wcm92ZW1lbnQgZnJvbSA1MC02MCBtcyB0byBsZXNzIHRoYW4gMSBtcywgaGVu Y2UKaW1wcm92aW5nIHRoZSBob3QgYWRkIGxhdGVuY3kgYnkgNjAlLiBNb2RpZnkgZXh0ZXJuYWwK cHJvdmlkZXJzIG9mIG9ubGluZSBjYWxsYmFjayB0byBhbGlnbiB3aXRoIHRoZSBjaGFuZ2UuCgpT aWduZWQtb2ZmLWJ5OiBBcnVuIEtTIDxhcnVua3NAY29kZWF1cm9yYS5vcmc+Ci0tLQpDaGFuZ2Vz IHNpbmNlIHY0OgotIEFzIHN1Z2dlc3RlZCBieSBNaWNoYWwgSG9ja28sCi0gU2ltcGxpZnkgbG9n aWMgaW4gb25saW5lX3BhZ2VzX2Jsb2NrKCkgYnkgdXNpbmcgZ2V0X29yZGVyKCkuCi0gU2VwZXJh dGUgb3V0IHJlbW92YWwgb2YgcHJlZmV0Y2ggZnJvbSBfX2ZyZWVfcGFnZXNfY29yZSgpLgoKQ2hh bmdlcyBzaW5jZSB2MzoKLSBSZW5hbWVkIF9mcmVlX3BhZ2VzX2Jvb3RfY29yZSAtPiBfX2ZyZWVf cGFnZXNfY29yZS4KLSBSZW1vdmVkIHByZWZldGNoIGZyb20gX19mcmVlX3BhZ2VzX2NvcmUuCi0g UmVtb3ZlZCB4ZW5fb25saW5lX3BhZ2UoKS4KCkNoYW5nZXMgc2luY2UgdjI6Ci0gUmV1c2UgY29k ZSBmcm9tIF9fZnJlZV9wYWdlc19ib290X2NvcmUoKS4KCkNoYW5nZXMgc2luY2UgdjE6Ci0gUmVt b3ZlZCBwcmVmZXRjaCgpLgoKQ2hhbmdlcyBzaW5jZSBSRkM6Ci0gUmViYXNlLgotIEFzIHN1Z2dl c3RlZCBieSBNaWNoYWwgSG9ja28gcmVtb3ZlIHBhZ2VzX3Blcl9ibG9jay4KLSBNb2RpZmVkIGV4 dGVybmFsIHByb3ZpZGVycyBvZiBvbmxpbmVfcGFnZV9jYWxsYmFjay4KCnY0OiBodHRwczovL2xv cmUua2VybmVsLm9yZy9wYXRjaHdvcmsvcGF0Y2gvOTk1MTExLwp2MzogaHR0cHM6Ly9sb3JlLmtl cm5lbC5vcmcvcGF0Y2h3b3JrL3BhdGNoLzk5MjM0OC8KdjI6IGh0dHBzOi8vbG9yZS5rZXJuZWwu b3JnL3BhdGNod29yay9wYXRjaC85OTEzNjMvCnYxOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9w YXRjaHdvcmsvcGF0Y2gvOTg5NDQ1LwpSRkM6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3BhdGNo d29yay9wYXRjaC85ODQ3NTQvCgotLS0KIGRyaXZlcnMvaHYvaHZfYmFsbG9vbi5jICAgICAgICB8 ICA2ICsrKystLQogZHJpdmVycy94ZW4vYmFsbG9vbi5jICAgICAgICAgIHwgMjMgKysrKysrKysr KysrKysrLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcuaCB8ICAyICstCiBt bS9pbnRlcm5hbC5oICAgICAgICAgICAgICAgICAgfCAgMSArCiBtbS9tZW1vcnlfaG90cGx1Zy5j ICAgICAgICAgICAgfCA0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0KIG1tL3BhZ2VfYWxsb2MuYyAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tCiA2IGZpbGVz IGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvaHYvaHZfYmFsbG9vbi5jIGIvZHJpdmVycy9odi9odl9iYWxsb29uLmMKaW5kZXgg YjFiNzg4MC4uYzViYzBiNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9odi9odl9iYWxsb29uLmMKKysr IGIvZHJpdmVycy9odi9odl9iYWxsb29uLmMKQEAgLTc3MSw3ICs3NzEsNyBAQCBzdGF0aWMgdm9p ZCBodl9tZW1faG90X2FkZCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIHNpemUs CiAJfQogfQogCi1zdGF0aWMgdm9pZCBodl9vbmxpbmVfcGFnZShzdHJ1Y3QgcGFnZSAqcGcpCitz dGF0aWMgaW50IGh2X29ubGluZV9wYWdlKHN0cnVjdCBwYWdlICpwZywgdW5zaWduZWQgaW50IG9y ZGVyKQogewogCXN0cnVjdCBodl9ob3RhZGRfc3RhdGUgKmhhczsKIAl1bnNpZ25lZCBsb25nIGZs YWdzOwpAQCAtNzgzLDEwICs3ODMsMTIgQEAgc3RhdGljIHZvaWQgaHZfb25saW5lX3BhZ2Uoc3Ry dWN0IHBhZ2UgKnBnKQogCQlpZiAoKHBmbiA8IGhhcy0+c3RhcnRfcGZuKSB8fCAocGZuID49IGhh cy0+ZW5kX3BmbikpCiAJCQljb250aW51ZTsKIAotCQlodl9wYWdlX29ubGluZV9vbmUoaGFzLCBw Zyk7CisJCWh2X2JyaW5nX3Bnc19vbmxpbmUoaGFzLCBwZm4sICgxVUwgPDwgb3JkZXIpKTsKIAkJ YnJlYWs7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRtX2RldmljZS5oYV9sb2NrLCBm bGFncyk7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBwZm5fY292ZXJlZCh1bnNpZ25l ZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBwZm5fY250KQpkaWZmIC0tZ2l0IGEvZHJp dmVycy94ZW4vYmFsbG9vbi5jIGIvZHJpdmVycy94ZW4vYmFsbG9vbi5jCmluZGV4IGUxMmJiMjUu LjU4ZGRmNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMveGVuL2JhbGxvb24uYworKysgYi9kcml2ZXJz L3hlbi9iYWxsb29uLmMKQEAgLTM5MCw4ICszOTAsOCBAQCBzdGF0aWMgZW51bSBicF9zdGF0ZSBy ZXNlcnZlX2FkZGl0aW9uYWxfbWVtb3J5KHZvaWQpCiAKIAkvKgogCSAqIGFkZF9tZW1vcnlfcmVz b3VyY2UoKSB3aWxsIGNhbGwgb25saW5lX3BhZ2VzKCkgd2hpY2ggaW4gaXRzIHR1cm4KLQkgKiB3 aWxsIGNhbGwgeGVuX29ubGluZV9wYWdlKCkgY2FsbGJhY2sgY2F1c2luZyBkZWFkbG9jayBpZiB3 ZSBkb24ndAotCSAqIHJlbGVhc2UgYmFsbG9vbl9tdXRleCBoZXJlLiBVbmxvY2tpbmcgaGVyZSBp cyBzYWZlIGJlY2F1c2UgdGhlCisJICogd2lsbCBjYWxsIHhlbl9icmluZ19wZ3Nfb25saW5lKCkg Y2FsbGJhY2sgY2F1c2luZyBkZWFkbG9jayBpZiB3ZQorCSAqIGRvbid0IHJlbGVhc2UgYmFsbG9v bl9tdXRleCBoZXJlLiBVbmxvY2tpbmcgaGVyZSBpcyBzYWZlIGJlY2F1c2UgdGhlCiAJICogY2Fs bGVycyBkcm9wIHRoZSBtdXRleCBiZWZvcmUgdHJ5aW5nIGFnYWluLgogCSAqLwogCW11dGV4X3Vu bG9jaygmYmFsbG9vbl9tdXRleCk7CkBAIC00MTEsMTUgKzQxMSwyMiBAQCBzdGF0aWMgZW51bSBi cF9zdGF0ZSByZXNlcnZlX2FkZGl0aW9uYWxfbWVtb3J5KHZvaWQpCiAJcmV0dXJuIEJQX0VDQU5D RUxFRDsKIH0KIAotc3RhdGljIHZvaWQgeGVuX29ubGluZV9wYWdlKHN0cnVjdCBwYWdlICpwYWdl KQorc3RhdGljIGludCB4ZW5fYnJpbmdfcGdzX29ubGluZShzdHJ1Y3QgcGFnZSAqcGcsIHVuc2ln bmVkIGludCBvcmRlcikKIHsKLQlfX29ubGluZV9wYWdlX3NldF9saW1pdHMocGFnZSk7CisJdW5z aWduZWQgbG9uZyBpLCBzaXplID0gKDEgPDwgb3JkZXIpOworCXVuc2lnbmVkIGxvbmcgc3RhcnRf cGZuID0gcGFnZV90b19wZm4ocGcpOworCXN0cnVjdCBwYWdlICpwOwogCisJcHJfZGVidWcoIk9u bGluZSAlbHUgcGFnZXMgc3RhcnRpbmcgYXQgcGZuIDB4JWx4XG4iLCBzaXplLCBzdGFydF9wZm4p OwogCW11dGV4X2xvY2soJmJhbGxvb25fbXV0ZXgpOwotCi0JX19iYWxsb29uX2FwcGVuZChwYWdl KTsKLQorCWZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKwkJcCA9IHBmbl90b19wYWdlKHN0 YXJ0X3BmbiArIGkpOworCQlfX29ubGluZV9wYWdlX3NldF9saW1pdHMocCk7CisJCV9fYmFsbG9v bl9hcHBlbmQocCk7CisJfQogCW11dGV4X3VubG9jaygmYmFsbG9vbl9tdXRleCk7CisKKwlyZXR1 cm4gMDsKIH0KIAogc3RhdGljIGludCB4ZW5fbWVtb3J5X25vdGlmaWVyKHN0cnVjdCBub3RpZmll cl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLCB2b2lkICp2KQpAQCAtNzQ0LDcgKzc1MSw3 IEBAIHN0YXRpYyBpbnQgX19pbml0IGJhbGxvb25faW5pdCh2b2lkKQogCWJhbGxvb25fc3RhdHMu bWF4X3JldHJ5X2NvdW50ID0gUkVUUllfVU5MSU1JVEVEOwogCiAjaWZkZWYgQ09ORklHX1hFTl9C QUxMT09OX01FTU9SWV9IT1RQTFVHCi0Jc2V0X29ubGluZV9wYWdlX2NhbGxiYWNrKCZ4ZW5fb25s aW5lX3BhZ2UpOworCXNldF9vbmxpbmVfcGFnZV9jYWxsYmFjaygmeGVuX2JyaW5nX3Bnc19vbmxp bmUpOwogCXJlZ2lzdGVyX21lbW9yeV9ub3RpZmllcigmeGVuX21lbW9yeV9uYik7CiAJcmVnaXN0 ZXJfc3lzY3RsX3RhYmxlKHhlbl9yb290KTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9t ZW1vcnlfaG90cGx1Zy5oIGIvaW5jbHVkZS9saW51eC9tZW1vcnlfaG90cGx1Zy5oCmluZGV4IDM0 YTI4MjIuLjdiMDRjMWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbWVtb3J5X2hvdHBsdWcu aAorKysgYi9pbmNsdWRlL2xpbnV4L21lbW9yeV9ob3RwbHVnLmgKQEAgLTg3LDcgKzg3LDcgQEAg ZXh0ZXJuIGludCB0ZXN0X3BhZ2VzX2luX2Ffem9uZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3Bmbiwg dW5zaWduZWQgbG9uZyBlbmRfcGZuLAogCXVuc2lnbmVkIGxvbmcgKnZhbGlkX3N0YXJ0LCB1bnNp Z25lZCBsb25nICp2YWxpZF9lbmQpOwogZXh0ZXJuIHZvaWQgX19vZmZsaW5lX2lzb2xhdGVkX3Bh Z2VzKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwogCi10eXBlZGVmIHZvaWQgKCpvbmxp bmVfcGFnZV9jYWxsYmFja190KShzdHJ1Y3QgcGFnZSAqcGFnZSk7Cit0eXBlZGVmIGludCAoKm9u bGluZV9wYWdlX2NhbGxiYWNrX3QpKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3Jk ZXIpOwogCiBleHRlcm4gaW50IHNldF9vbmxpbmVfcGFnZV9jYWxsYmFjayhvbmxpbmVfcGFnZV9j YWxsYmFja190IGNhbGxiYWNrKTsKIGV4dGVybiBpbnQgcmVzdG9yZV9vbmxpbmVfcGFnZV9jYWxs YmFjayhvbmxpbmVfcGFnZV9jYWxsYmFja190IGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL21tL2lu dGVybmFsLmggYi9tbS9pbnRlcm5hbC5oCmluZGV4IDg3MjU2YWUuLjYzNjY3OWMgMTAwNjQ0Ci0t LSBhL21tL2ludGVybmFsLmgKKysrIGIvbW0vaW50ZXJuYWwuaApAQCAtMTYzLDYgKzE2Myw3IEBA IHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2UgKnBhZ2VibG9ja19wZm5fdG9fcGFnZSh1bnNpZ25l ZCBsb25nIHN0YXJ0X3BmbiwKIGV4dGVybiBpbnQgX19pc29sYXRlX2ZyZWVfcGFnZShzdHJ1Y3Qg cGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKTsKIGV4dGVybiB2b2lkIF9fZnJlZV9wYWdl c19ib290bWVtKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIHBmbiwKIAkJCQkJdW5z aWduZWQgaW50IG9yZGVyKTsKK2V4dGVybiB2b2lkIF9fZnJlZV9wYWdlc19jb3JlKHN0cnVjdCBw YWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpOwogZXh0ZXJuIHZvaWQgcHJlcF9jb21wb3Vu ZF9wYWdlKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIpOwogZXh0ZXJuIHZv aWQgcG9zdF9hbGxvY19ob29rKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIs CiAJCQkJCWdmcF90IGdmcF9mbGFncyk7CmRpZmYgLS1naXQgYS9tbS9tZW1vcnlfaG90cGx1Zy5j IGIvbW0vbWVtb3J5X2hvdHBsdWcuYwppbmRleCAzOGQ5NGI3Li5lMzc5ZTg1IDEwMDY0NAotLS0g YS9tbS9tZW1vcnlfaG90cGx1Zy5jCisrKyBiL21tL21lbW9yeV9ob3RwbHVnLmMKQEAgLTQ3LDcg KzQ3LDcgQEAKICAqIGFuZCByZXN0b3JlX29ubGluZV9wYWdlX2NhbGxiYWNrKCkgZm9yIGdlbmVy aWMgY2FsbGJhY2sgcmVzdG9yZS4KICAqLwogCi1zdGF0aWMgdm9pZCBnZW5lcmljX29ubGluZV9w YWdlKHN0cnVjdCBwYWdlICpwYWdlKTsKK3N0YXRpYyBpbnQgZ2VuZXJpY19vbmxpbmVfcGFnZShz dHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKTsKIAogc3RhdGljIG9ubGluZV9w YWdlX2NhbGxiYWNrX3Qgb25saW5lX3BhZ2VfY2FsbGJhY2sgPSBnZW5lcmljX29ubGluZV9wYWdl Owogc3RhdGljIERFRklORV9NVVRFWChvbmxpbmVfcGFnZV9jYWxsYmFja19sb2NrKTsKQEAgLTY1 NSwyNiArNjU1LDQ0IEBAIHZvaWQgX19vbmxpbmVfcGFnZV9mcmVlKHN0cnVjdCBwYWdlICpwYWdl KQogfQogRVhQT1JUX1NZTUJPTF9HUEwoX19vbmxpbmVfcGFnZV9mcmVlKTsKIAotc3RhdGljIHZv aWQgZ2VuZXJpY19vbmxpbmVfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSkKK3N0YXRpYyBpbnQgZ2Vu ZXJpY19vbmxpbmVfcGFnZShzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKQog ewotCV9fb25saW5lX3BhZ2Vfc2V0X2xpbWl0cyhwYWdlKTsKLQlfX29ubGluZV9wYWdlX2luY3Jl bWVudF9jb3VudGVycyhwYWdlKTsKLQlfX29ubGluZV9wYWdlX2ZyZWUocGFnZSk7CisJX19mcmVl X3BhZ2VzX2NvcmUocGFnZSwgb3JkZXIpOworCXRvdGFscmFtX3BhZ2VzICs9ICgxVUwgPDwgb3Jk ZXIpOworI2lmZGVmIENPTkZJR19ISUdITUVNCisJaWYgKFBhZ2VIaWdoTWVtKHBhZ2UpKQorCQl0 b3RhbGhpZ2hfcGFnZXMgKz0gKDFVTCA8PCBvcmRlcik7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30K Kworc3RhdGljIGludCBvbmxpbmVfcGFnZXNfYmxvY2tzKHVuc2lnbmVkIGxvbmcgc3RhcnQsIHVu c2lnbmVkIGxvbmcgbnJfcGFnZXMpCit7CisJdW5zaWduZWQgbG9uZyBlbmQgPSBzdGFydCArIG5y X3BhZ2VzOworCWludCBvcmRlciwgcmV0LCBvbmxpbmVkX3BhZ2VzID0gMDsKKworCXdoaWxlIChz dGFydCA8IGVuZCkgeworCQlvcmRlciA9IG1pbihNQVhfT1JERVIgLSAxLAorCQkJZ2V0X29yZGVy KFBGTl9QSFlTKGVuZCkgLSBQRk5fUEhZUyhzdGFydCkpKTsKKworCQlyZXQgPSAoKm9ubGluZV9w YWdlX2NhbGxiYWNrKShwZm5fdG9fcGFnZShzdGFydCksIG9yZGVyKTsKKwkJaWYgKCFyZXQpCisJ CQlvbmxpbmVkX3BhZ2VzICs9ICgxVUwgPDwgb3JkZXIpOworCQllbHNlIGlmIChyZXQgPiAwKQor CQkJb25saW5lZF9wYWdlcyArPSByZXQ7CisKKwkJc3RhcnQgKz0gKDFVTCA8PCBvcmRlcik7CisJ fQorCXJldHVybiBvbmxpbmVkX3BhZ2VzOwogfQogCiBzdGF0aWMgaW50IG9ubGluZV9wYWdlc19y YW5nZSh1bnNpZ25lZCBsb25nIHN0YXJ0X3BmbiwgdW5zaWduZWQgbG9uZyBucl9wYWdlcywKIAkJ CXZvaWQgKmFyZykKIHsKLQl1bnNpZ25lZCBsb25nIGk7CiAJdW5zaWduZWQgbG9uZyBvbmxpbmVk X3BhZ2VzID0gKih1bnNpZ25lZCBsb25nICopYXJnOwotCXN0cnVjdCBwYWdlICpwYWdlOwogCiAJ aWYgKFBhZ2VSZXNlcnZlZChwZm5fdG9fcGFnZShzdGFydF9wZm4pKSkKLQkJZm9yIChpID0gMDsg aSA8IG5yX3BhZ2VzOyBpKyspIHsKLQkJCXBhZ2UgPSBwZm5fdG9fcGFnZShzdGFydF9wZm4gKyBp KTsKLQkJCSgqb25saW5lX3BhZ2VfY2FsbGJhY2spKHBhZ2UpOwotCQkJb25saW5lZF9wYWdlcysr OwotCQl9CisJCW9ubGluZWRfcGFnZXMgPSBvbmxpbmVfcGFnZXNfYmxvY2tzKHN0YXJ0X3Bmbiwg bnJfcGFnZXMpOwogCiAJb25saW5lX21lbV9zZWN0aW9ucyhzdGFydF9wZm4sIHN0YXJ0X3BmbiAr IG5yX3BhZ2VzKTsKIApkaWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxvYy5jIGIvbW0vcGFnZV9hbGxv Yy5jCmluZGV4IDg5ZDJhMmEuLjdhYjUyNzQgMTAwNjQ0Ci0tLSBhL21tL3BhZ2VfYWxsb2MuYwor KysgYi9tbS9wYWdlX2FsbG9jLmMKQEAgLTEyNTIsNyArMTI1Miw3IEBAIHN0YXRpYyB2b2lkIF9f ZnJlZV9wYWdlc19vayhzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyKQogCWxv Y2FsX2lycV9yZXN0b3JlKGZsYWdzKTsKIH0KIAotc3RhdGljIHZvaWQgX19pbml0IF9fZnJlZV9w YWdlc19ib290X2NvcmUoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRlcikKK3Zv aWQgX19mcmVlX3BhZ2VzX2NvcmUoc3RydWN0IHBhZ2UgKnBhZ2UsIHVuc2lnbmVkIGludCBvcmRl cikKIHsKIAl1bnNpZ25lZCBpbnQgbnJfcGFnZXMgPSAxIDw8IG9yZGVyOwogCXN0cnVjdCBwYWdl ICpwID0gcGFnZTsKQEAgLTEzMzEsNyArMTMzMSw3IEBAIHZvaWQgX19pbml0IF9fZnJlZV9wYWdl c19ib290bWVtKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBsb25nIHBmbiwKIHsKIAlpZiAo ZWFybHlfcGFnZV91bmluaXRpYWxpc2VkKHBmbikpCiAJCXJldHVybjsKLQlyZXR1cm4gX19mcmVl X3BhZ2VzX2Jvb3RfY29yZShwYWdlLCBvcmRlcik7CisJcmV0dXJuIF9fZnJlZV9wYWdlc19jb3Jl KHBhZ2UsIG9yZGVyKTsKIH0KIAogLyoKQEAgLTE0MjEsMTQgKzE0MjEsMTQgQEAgc3RhdGljIHZv aWQgX19pbml0IGRlZmVycmVkX2ZyZWVfcmFuZ2UodW5zaWduZWQgbG9uZyBwZm4sCiAJaWYgKG5y X3BhZ2VzID09IHBhZ2VibG9ja19ucl9wYWdlcyAmJgogCSAgICAocGZuICYgKHBhZ2VibG9ja19u cl9wYWdlcyAtIDEpKSA9PSAwKSB7CiAJCXNldF9wYWdlYmxvY2tfbWlncmF0ZXR5cGUocGFnZSwg TUlHUkFURV9NT1ZBQkxFKTsKLQkJX19mcmVlX3BhZ2VzX2Jvb3RfY29yZShwYWdlLCBwYWdlYmxv Y2tfb3JkZXIpOworCQlfX2ZyZWVfcGFnZXNfY29yZShwYWdlLCBwYWdlYmxvY2tfb3JkZXIpOwog CQlyZXR1cm47CiAJfQogCiAJZm9yIChpID0gMDsgaSA8IG5yX3BhZ2VzOyBpKyssIHBhZ2UrKywg cGZuKyspIHsKIAkJaWYgKChwZm4gJiAocGFnZWJsb2NrX25yX3BhZ2VzIC0gMSkpID09IDApCiAJ CQlzZXRfcGFnZWJsb2NrX21pZ3JhdGV0eXBlKHBhZ2UsIE1JR1JBVEVfTU9WQUJMRSk7Ci0JCV9f ZnJlZV9wYWdlc19ib290X2NvcmUocGFnZSwgMCk7CisJCV9fZnJlZV9wYWdlc19jb3JlKHBhZ2Us IDApOwogCX0KIH0KIAotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs