From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 11/60] xen/sched: move per cpu scheduler private data into struct sched_resource Date: Tue, 28 May 2019 12:32:24 +0200 Message-ID: <20190528103313.1343-12-jgross@suse.com> References: <20190528103313.1343-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hVZQ5-0004at-49 for xen-devel@lists.xenproject.org; Tue, 28 May 2019 10:33:25 +0000 In-Reply-To: <20190528103313.1343-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Robert VanVossen , Tim Deegan , Julien Grall , Josh Whitehead , Meng Xu , Jan Beulich , Dario Faggioli , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwcmVwYXJlcyBzdXBwb3J0IG9mIGxhcmdlciBzY2hlZHVsaW5nIGdyYW51bGFyaXRpZXMs IGUuZy4gY29yZQpzY2hlZHVsaW5nLgoKV2hpbGUgYXQgaXQgbW92ZSBzY2hlZF9oYXNfdXJnZW50 X3ZjcHUoKSBmcm9tIGluY2x1ZGUvYXNtLXg4Ni9jcHVpZGxlLmgKaW50byBzY2hlZHVsZS5jIHJl bW92aW5nIHRoZSBuZWVkIGZvciBpbmNsdWRpbmcgc2NoZWQtaWYuaCBpbgpjcHVpZGxlLmggYW5k IG11bHRpcGxlIG90aGVyIEMgc291cmNlcy4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3Mg PGpncm9zc0BzdXNlLmNvbT4KLS0tClYxOiBtb3ZlIHNjaGVkX2hhc191cmdlbnRfdmNwdSgpCi0t LQogeGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyAgICAgIHwgIDEgLQogeGVuL2FyY2gveDg2 L2NwdS9tY2hlY2svbWNlLmMgICAgIHwgIDEgLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWN0 ZWxlbS5jIHwgIDEgLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAgIHwgIDEgLQog eGVuL2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgIHwgIDEgLQogeGVuL2NvbW1vbi9zY2hl ZF9hcmluYzY1My5jICAgICAgIHwgIDQgKy0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jICAg ICAgICAgfCAxMiArKystLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyAgICAgICAgfCAy MSArKysrKysrLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX251bGwuYyAgICAgICAgICAgfCAgNiAr Ky0tCiB4ZW4vY29tbW9uL3NjaGVkX3J0LmMgICAgICAgICAgICAgfCAgOSArKystLS0KIHhlbi9j b21tb24vc2NoZWR1bGUuYyAgICAgICAgICAgICB8IDY2ICsrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZGxlLmggICAgIHwgMTEg LS0tLS0tLQogeGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmggICAgICAgIHwgMjAgKysrKystLS0t LS0tCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAgfCAgMSArCiAxNCBmaWxlcyBj aGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCA4MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUu YwppbmRleCA4ODQ2NzIyYmNhLi45ZjY2ZjcwOTg2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv YWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTM4 LDcgKzM4LDYgQEAKICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVu L2tleWhhbmRsZXIuaD4KICNpbmNsdWRlIDx4ZW4vdHJhY2UuaD4KLSNpbmNsdWRlIDx4ZW4vc2No ZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAj aW5jbHVkZSA8YXNtL2lvLmg+CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9t Y2UuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCmluZGV4IDMwY2RiMDY0MDEuLjcy NmRiNzUxODAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCkBAIC0xMCw3ICsxMCw2IEBACiAjaW5jbHVk ZSA8eGVuL2Vycm5vLmg+CiAjaW5jbHVkZSA8eGVuL2NvbnNvbGUuaD4KICNpbmNsdWRlIDx4ZW4v c2NoZWQuaD4KLSNpbmNsdWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vY3B1bWFz ay5oPgogI2luY2x1ZGUgPHhlbi9ldmVudC5oPgogI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3Mu aD4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uYyBiL3hlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uYwppbmRleCAzYmIxM2U1MjY1Li4wMTJhOWI5NWU1 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmMKKysrIGIveGVu L2FyY2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5jCkBAIC0xOCw3ICsxOCw2IEBACiAjaW5jbHVk ZSA8eGVuL3NtcC5oPgogI2luY2x1ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUgPHhlbi9zY2hl ZC5oPgotI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogI2luY2x1ZGUgPHhlbi9jcHVtYXNrLmg+ CiAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1 cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMGVkOTRhNjEzYS4uNWFkNjY2NjdlZiAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVw LmMKQEAgLTMsNyArMyw2IEBACiAjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1ZGUgPHhlbi9n cmFudF90YWJsZS5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgotI2luY2x1ZGUgPHhlbi9zY2hl ZC1pZi5oPgogI2luY2x1ZGUgPHhlbi9kb21haW4uaD4KICNpbmNsdWRlIDx4ZW4vc2VyaWFsLmg+ CiAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zbXBi b290LmMgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCmluZGV4IDI3NDg2NWE3MDUuLjE1M2JmYmI0 YjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKKysrIGIveGVuL2FyY2gveDg2 L3NtcGJvb3QuYwpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgPHhlbi9kb21haW4uaD4KICNp bmNsdWRlIDx4ZW4vZG9tYWluX3BhZ2UuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KLSNpbmNs dWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vaXJxLmg+CiAjaW5jbHVkZSA8eGVu L2RlbGF5Lmg+CiAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWRfYXJpbmM2NTMuYyBiL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYwppbmRleCA3 ZjI2ZTZhMGIwLi42ZTdiMmM5OTY4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2FyaW5j NjUzLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jCkBAIC00NzUsNyArNDc1LDcg QEAgYTY1M3NjaGVkX3VuaXRfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICAgKiBJZiB0aGUgVkNQVSBiZWluZyBwdXQgdG8gc2xl ZXAgaXMgdGhlIHNhbWUgb25lIHRoYXQgaXMgY3VycmVudGx5CiAgICAgICogcnVubmluZywgcmFp c2UgYSBzb2Z0aXJxIHRvIGludm9rZSB0aGUgc2NoZWR1bGVyIHRvIHN3aXRjaCBkb21haW5zLgog ICAgICAqLwotICAgIGlmICggcGVyX2NwdShzY2hlZHVsZV9kYXRhLCB2Yy0+cHJvY2Vzc29yKS5j dXJyID09IHVuaXQgKQorICAgIGlmICggZ2V0X3NjaGVkX3Jlcyh2Yy0+cHJvY2Vzc29yKS0+Y3Vy ciA9PSB1bml0ICkKICAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEodmMtPnByb2Nlc3NvciwgU0NI RURVTEVfU09GVElSUSk7CiB9CiAKQEAgLTY0Miw3ICs2NDIsNyBAQCBzdGF0aWMgc3BpbmxvY2tf dCAqCiBhNjUzX3N3aXRjaF9zY2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25l ZCBpbnQgY3B1LAogICAgICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQgKnZkYXRhKQog ewotICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEs IGNwdSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1 KTsKICAgICBhcmluYzY1M192Y3B1X3QgKnN2YyA9IHZkYXRhOwogCiAgICAgQVNTRVJUKCFwZGF0 YSAmJiBzdmMgJiYgaXNfaWRsZV92Y3B1KHN2Yy0+dmMpKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWRfY3JlZGl0LmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCmluZGV4IGJjODdi ODEzZGMuLmZlNGZjNWFiYjEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMK KysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwpAQCAtODIsNyArODIsNyBAQAogI2RlZmlu ZSBDU0NIRURfUFJJVihfb3BzKSAgIFwKICAgICAoKHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqKSgo X29wcyktPnNjaGVkX2RhdGEpKQogI2RlZmluZSBDU0NIRURfUENQVShfYykgICAgIFwKLSAgICAo KHN0cnVjdCBjc2NoZWRfcGNwdSAqKXBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgX2MpLnNjaGVkX3By aXYpCisgICAgKChzdHJ1Y3QgY3NjaGVkX3BjcHUgKilnZXRfc2NoZWRfcmVzKF9jKS0+c2NoZWRf cHJpdikKICNkZWZpbmUgQ1NDSEVEX1VOSVQodW5pdCkgICAoKHN0cnVjdCBjc2NoZWRfdW5pdCAq KSAodW5pdCktPnByaXYpCiAjZGVmaW5lIENTQ0hFRF9ET00oX2RvbSkgICAgKChzdHJ1Y3QgY3Nj aGVkX2RvbSAqKSAoX2RvbSktPnNjaGVkX3ByaXYpCiAjZGVmaW5lIFJVTlEoX2NwdSkgICAgICAg ICAgKCYoQ1NDSEVEX1BDUFUoX2NwdSktPnJ1bnEpKQpAQCAtMjQ4LDcgKzI0OCw3IEBAIHN0YXRp YyBpbmxpbmUgYm9vbF90IGlzX3J1bnFfaWRsZSh1bnNpZ25lZCBpbnQgY3B1KQogICAgIC8qCiAg ICAgICogV2UncmUgcGVla2luZyBhdCBjcHUncyBydW5xLCB3ZSBtdXN0IGhvbGQgdGhlIHByb3Bl ciBsb2NrLgogICAgICAqLwotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZChwZXJfY3B1KHNjaGVk dWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFTU0VSVChzcGluX2lzX2xvY2tl ZChnZXRfc2NoZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsKIAogICAgIHJldHVybiBsaXN0 X2VtcHR5KFJVTlEoY3B1KSkgfHwKICAgICAgICAgICAgaXNfaWRsZV92Y3B1KF9fcnVucV9lbGVt KFJVTlEoY3B1KS0+bmV4dCktPnZjcHUpOwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBpbmxp bmUgYm9vbF90IGlzX3J1bnFfaWRsZSh1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIGlubGluZSB2 b2lkCiBpbmNfbnJfcnVubmFibGUodW5zaWduZWQgaW50IGNwdSkKIHsKLSAgICBBU1NFUlQoc3Bp bl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsK KyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9s b2NrKSk7CiAgICAgQ1NDSEVEX1BDUFUoY3B1KS0+bnJfcnVubmFibGUrKzsKIAogfQpAQCAtMjY1 LDcgKzI2NSw3IEBAIGluY19ucl9ydW5uYWJsZSh1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIGlu bGluZSB2b2lkCiBkZWNfbnJfcnVubmFibGUodW5zaWduZWQgaW50IGNwdSkKIHsKLSAgICBBU1NF UlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xv Y2spKTsKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hl ZHVsZV9sb2NrKSk7CiAgICAgQVNTRVJUKENTQ0hFRF9QQ1BVKGNwdSktPm5yX3J1bm5hYmxlID49 IDEpOwogICAgIENTQ0hFRF9QQ1BVKGNwdSktPm5yX3J1bm5hYmxlLS07CiB9CkBAIC02MTUsNyAr NjE1LDcgQEAgY3NjaGVkX2luaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2 b2lkICpwZGF0YSwgaW50IGNwdSkKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0 cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEX1BSSVYob3BzKTsKLSAgICBzdHJ1Y3Qg c2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOworICAgIHN0 cnVjdCBzY2hlZF9yZXNvdXJjZSAqc2QgPSBnZXRfc2NoZWRfcmVzKGNwdSk7CiAKICAgICAvKgog ICAgICAqIFRoaXMgaXMgY2FsbGVkIGVpdGhlciBkdXJpbmcgZHVyaW5nIGJvb3QsIHJlc3VtZSBv ciBob3RwbHVnLCBpbgpAQCAtNjM1LDcgKzYzNSw3IEBAIHN0YXRpYyBzcGlubG9ja190ICoKIGNz Y2hlZF9zd2l0Y2hfc2NoZWQoc3RydWN0IHNjaGVkdWxlciAqbmV3X29wcywgdW5zaWduZWQgaW50 IGNwdSwKICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQgKnZkYXRhKQogewot ICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNw dSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1KTsK ICAgICBzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiA9IENTQ0hFRF9QUklWKG5ld19vcHMpOwog ICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjID0gdmRhdGE7CiAKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vc2NoZWRfY3JlZGl0Mi5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKaW5kZXgg MzYyMDE4MTVlMy4uOTllOTkzYjMyZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQyLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKQEAgLTU2Nyw3ICs1NjcsNyBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKmNzY2hlZDJfcHJpdihjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hlZDJf cGNwdSAqY3NjaGVkMl9wY3B1KHVuc2lnbmVkIGludCBjcHUpCiB7Ci0gICAgcmV0dXJuIHBlcl9j cHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZF9wcml2OworICAgIHJldHVybiBnZXRfc2NoZWRf cmVzKGNwdSktPnNjaGVkX3ByaXY7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hlZDJf dW5pdCAqY3NjaGVkMl91bml0KGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQpAQCAtMTI3 Niw3ICsxMjc2LDcgQEAgcnVucV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBz dHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMpCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqIHJ1bnEgPSAm YzJycWQob3BzLCBjcHUpLT5ydW5xOwogICAgIGludCBwb3MgPSAwOwogCi0gICAgQVNTRVJUKHNw aW5faXNfbG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9sb2NrKSk7 CisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1bGVf bG9jaykpOwogCiAgICAgQVNTRVJUKCF2Y3B1X29uX3J1bnEoc3ZjKSk7CiAgICAgQVNTRVJUKGMy cihjcHUpID09IGMycihzdmMtPnZjcHUtPnByb2Nlc3NvcikpOwpAQCAtMTc5Nyw3ICsxNzk3LDcg QEAgc3RhdGljIGJvb2wgdmNwdV9ncmFiX2J1ZGdldChzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMp CiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpzZG9tID0gc3ZjLT5zZG9tOwogICAgIHVuc2lnbmVk IGludCBjcHUgPSBzdmMtPnZjcHUtPnByb2Nlc3NvcjsKIAotICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZChwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFT U0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2NoZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsK IAogICAgIGlmICggc3ZjLT5idWRnZXQgPiAwICkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0x ODQ0LDcgKzE4NDQsNyBAQCB2Y3B1X3JldHVybl9idWRnZXQoc3RydWN0IGNzY2hlZDJfdW5pdCAq c3ZjLCBzdHJ1Y3QgbGlzdF9oZWFkICpwYXJrZWQpCiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpz ZG9tID0gc3ZjLT5zZG9tOwogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzdmMtPnZjcHUtPnByb2Nl c3NvcjsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZChwZXJfY3B1KHNjaGVkdWxlX2RhdGEs IGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2No ZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsKICAgICBBU1NFUlQobGlzdF9lbXB0eShwYXJr ZWQpKTsKIAogICAgIC8qIGJ1ZGdldF9sb2NrIG5lc3RzIGluc2lkZSBydW5xdWV1ZSBsb2NrLiAq LwpAQCAtMjEwMSw3ICsyMTAxLDcgQEAgY3NjaGVkMl91bml0X3dha2UoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICB1bnNpZ25lZCBpbnQg Y3B1ID0gdmMtPnByb2Nlc3NvcjsKICAgICBzX3RpbWVfdCBub3c7CiAKLSAgICBBU1NFUlQoc3Bp bl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsK KyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9s b2NrKSk7CiAKICAgICBBU1NFUlQoIWlzX2lkbGVfdmNwdSh2YykpOwogCkBAIC0yMjI5LDcgKzIy MjksNyBAQCBjc2NoZWQyX3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAgICAgICoganVzdCBncmFiIHRoZSBwcnYgbG9jay4gIElu c3RlYWQsIHdlJ2xsIGhhdmUgdG8gdHJ5bG9jaywgYW5kCiAgICAgICogZG8gc29tZXRoaW5nIGVs c2UgcmVhc29uYWJsZSBpZiB3ZSBmYWlsLgogICAgICAqLwotICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZChwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFT U0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2NoZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsK IAogICAgIGlmICggIXJlYWRfdHJ5bG9jaygmcHJ2LT5sb2NrKSApCiAgICAgewpAQCAtMjU2OSw3 ICsyNTY5LDcgQEAgc3RhdGljIHZvaWQgYmFsYW5jZV9sb2FkKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgaW50IGNwdSwgc190aW1lX3Qgbm93KQogICAgICAqIG9uIGVpdGhlciBzaWRlIG1h eSBiZSBlbXB0eSkuCiAgICAgICovCiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2Nw dShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKKyAgICBBU1NFUlQoc3Bpbl9p c19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9sb2NrKSk7CiAgICAgc3QubHJx ZCA9IGMycnFkKG9wcywgY3B1KTsKIAogICAgIHVwZGF0ZV9ydW5xX2xvYWQob3BzLCBzdC5scnFk LCAwLCBub3cpOwpAQCAtMzQ3NSw3ICszNDc1LDcgQEAgY3NjaGVkMl9zY2hlZHVsZSgKICAgICBy cWQgPSBjMnJxZChvcHMsIGNwdSk7CiAgICAgQlVHX09OKCFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwg JnJxZC0+YWN0aXZlKSk7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hl ZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2Nr ZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9sb2NrKSk7CiAKICAgICBCVUdfT04oIWlz X2lkbGVfdmNwdShzY3Vyci0+dmNwdSkgJiYgc2N1cnItPnJxZCAhPSBycWQpOwogCkBAIC0zODYz LDcgKzM4NjMsNyBAQCBjc2NoZWQyX2luaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCB2b2lkICpwZGF0YSwgaW50IGNwdSkKIAogICAgIHJxaSA9IGluaXRfcGRhdGEocHJ2LCBw ZGF0YSwgY3B1KTsKICAgICAvKiBNb3ZlIHRoZSBzY2hlZHVsZXIgbG9jayB0byB0aGUgbmV3IHJ1 bnEgbG9jay4gKi8KLSAgICBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9j ayA9ICZwcnYtPnJxZFtycWldLmxvY2s7CisgICAgZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVs ZV9sb2NrID0gJnBydi0+cnFkW3JxaV0ubG9jazsKIAogICAgIC8qIF9Ob3RfIHBjcHVfc2NoZWR1 bGVfdW5sb2NrKCk6IHNjaGVkdWxlX2xvY2sgbWF5IGhhdmUgY2hhbmdlZCEgKi8KICAgICBzcGlu X3VubG9jayhvbGRfbG9jayk7CkBAIC0zODc3LDYgKzM4NzcsNyBAQCBjc2NoZWQyX3N3aXRjaF9z Y2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogewogICAg IHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiA9IGNzY2hlZDJfcHJpdihuZXdfb3BzKTsKICAg ICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSB2ZGF0YTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcmVz b3VyY2UgKnNkID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwogICAgIHVuc2lnbmVkIHJxaTsKIAogICAg IEFTU0VSVChwZGF0YSAmJiBzdmMgJiYgaXNfaWRsZV92Y3B1KHN2Yy0+dmNwdSkpOwpAQCAtMzkw Miw3ICszOTAzLDcgQEAgY3NjaGVkMl9zd2l0Y2hfc2NoZWQoc3RydWN0IHNjaGVkdWxlciAqbmV3 X29wcywgdW5zaWduZWQgaW50IGNwdSwKICAgICAgKiB0aGlzIHNjaGVkdWxlciwgYW5kIHNvIGl0 J3Mgc2FmZSB0byBoYXZlIHRha2VuIGl0IC9iZWZvcmUvIG91cgogICAgICAqIHByaXZhdGUgZ2xv YmFsIGxvY2suCiAgICAgICovCi0gICAgQVNTRVJUKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1 KS5zY2hlZHVsZV9sb2NrICE9ICZwcnYtPnJxZFtycWldLmxvY2spOworICAgIEFTU0VSVChzZC0+ c2NoZWR1bGVfbG9jayAhPSAmcHJ2LT5ycWRbcnFpXS5sb2NrKTsKIAogICAgIHdyaXRlX3VubG9j aygmcHJ2LT5sb2NrKTsKIApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMgYi94 ZW4vY29tbW9uL3NjaGVkX251bGwuYwppbmRleCBkZWZjZGZjZjFlLi45ZGY2Zjg2N2FhIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX251bGwuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX251 bGwuYwpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyB2b2lkIGluaXRfcGRhdGEoc3RydWN0IG51 bGxfcHJpdmF0ZSAqcHJ2LCB1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIHZvaWQgbnVsbF9pbml0 X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGRhdGEsIGludCBjcHUp CiB7CiAgICAgc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2ID0gbnVsbF9wcml2KG9wcyk7Ci0gICAg c3RydWN0IHNjaGVkdWxlX2RhdGEgKnNkID0gJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KTsK KyAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwogCiAg ICAgLyogYWxsb2NfcGRhdGEgaXMgbm90IGltcGxlbWVudGVkLCBzbyB3ZSB3YW50IHRoaXMgdG8g YmUgTlVMTC4gKi8KICAgICBBU1NFUlQoIXBkYXRhKTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBwaWNr X3JlcyhzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnYsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQog ICAgIHVuc2lnbmVkIGludCBjcHUgPSB2LT5wcm9jZXNzb3IsIG5ld19jcHU7CiAgICAgY3B1bWFz a190ICpjcHVzID0gY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21haW4pOwogCi0gICAgQVNT RVJUKHNwaW5faXNfbG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9s b2NrKSk7CisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKGdldF9zY2hlZF9yZXMoY3B1KS0+c2No ZWR1bGVfbG9jaykpOwogCiAgICAgZm9yX2VhY2hfYWZmaW5pdHlfYmFsYW5jZV9zdGVwKCBicyAp CiAgICAgewpAQCAtMzg5LDcgKzM4OSw3IEBAIHN0YXRpYyBzcGlubG9ja190ICpudWxsX3N3aXRj aF9zY2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjcHUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQgKnZkYXRhKQogewotICAgIHN0cnVjdCBz Y2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7CisgICAgc3Ry dWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1KTsKICAgICBzdHJ1Y3Qg bnVsbF9wcml2YXRlICpwcnYgPSBudWxsX3ByaXYobmV3X29wcyk7CiAgICAgc3RydWN0IG51bGxf dW5pdCAqbnZjID0gdmRhdGE7CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBi L3hlbi9jb21tb24vc2NoZWRfcnQuYwppbmRleCA4Y2FlYzVjNWRjLi5jZWUwZDY5ZDU0IDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5j CkBAIC03NSw3ICs3NSw3IEBACiAvKgogICogTG9ja2luZzoKICAqIEEgZ2xvYmFsIHN5c3RlbSBs b2NrIGlzIHVzZWQgdG8gcHJvdGVjdCB0aGUgUnVuUSBhbmQgRGVwbGV0ZWRRLgotICogVGhlIGds b2JhbCBsb2NrIGlzIHJlZmVyZW5jZWQgYnkgc2NoZWR1bGVfZGF0YS5zY2hlZHVsZV9sb2NrCisg KiBUaGUgZ2xvYmFsIGxvY2sgaXMgcmVmZXJlbmNlZCBieSBzY2hlZF9yZXMtPnNjaGVkdWxlX2xv Y2sKICAqIGZyb20gYWxsIHBoeXNpY2FsIGNwdXMuCiAgKgogICogVGhlIGxvY2sgaXMgYWxyZWFk eSBncmFiYmVkIHdoZW4gY2FsbGluZyB3YWtlL3NsZWVwL3NjaGVkdWxlLyBmdW5jdGlvbnMKQEAg LTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgdm9pZCByZXBsX3RpbWVyX2hhbmRsZXIodm9pZCAqZGF0 YSk7CiAKIC8qCiAgKiBTeXN0ZW0td2lkZSBwcml2YXRlIGRhdGEsIGluY2x1ZGUgZ2xvYmFsIFJ1 blF1ZXVlL0RlcGxldGVkUQotICogR2xvYmFsIGxvY2sgaXMgcmVmZXJlbmNlZCBieSBzY2hlZHVs ZV9kYXRhLnNjaGVkdWxlX2xvY2sgZnJvbSBhbGwKKyAqIEdsb2JhbCBsb2NrIGlzIHJlZmVyZW5j ZWQgYnkgc2NoZWRfcmVzLT5zY2hlZHVsZV9sb2NrIGZyb20gYWxsCiAgKiBwaHlzaWNhbCBjcHVz LiBJdCBjYW4gYmUgZ3JhYmJlZCB2aWEgdmNwdV9zY2hlZHVsZV9sb2NrX2lycSgpCiAgKi8KIHN0 cnVjdCBydF9wcml2YXRlIHsKQEAgLTcyMyw3ICs3MjMsNyBAQCBydF9pbml0X3BkYXRhKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGRhdGEsIGludCBjcHUpCiAgICAgfQogCiAg ICAgLyogTW92ZSB0aGUgc2NoZWR1bGVyIGxvY2sgdG8gb3VyIGdsb2JhbCBydW5xdWV1ZSBsb2Nr LiAgKi8KLSAgICBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jayA9ICZw cnYtPmxvY2s7CisgICAgZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9sb2NrID0gJnBydi0+ bG9jazsKIAogICAgIC8qIF9Ob3RfIHBjcHVfc2NoZWR1bGVfdW5sb2NrKCk6IHBlcl9jcHUoKS5z Y2hlZHVsZV9sb2NrIGNoYW5nZWQhICovCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShvbGRf bG9jaywgZmxhZ3MpOwpAQCAtNzM2LDYgKzczNiw3IEBAIHJ0X3N3aXRjaF9zY2hlZChzdHJ1Y3Qg c2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogewogICAgIHN0cnVjdCBydF9w cml2YXRlICpwcnYgPSBydF9wcml2KG5ld19vcHMpOwogICAgIHN0cnVjdCBydF91bml0ICpzdmMg PSB2ZGF0YTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkID0gZ2V0X3NjaGVkX3Jlcyhj cHUpOwogCiAgICAgQVNTRVJUKCFwZGF0YSAmJiBzdmMgJiYgaXNfaWRsZV92Y3B1KHN2Yy0+dmNw dSkpOwogCkBAIC03NDUsNyArNzQ2LDcgQEAgcnRfc3dpdGNoX3NjaGVkKHN0cnVjdCBzY2hlZHVs ZXIgKm5ld19vcHMsIHVuc2lnbmVkIGludCBjcHUsCiAgICAgICogYW5vdGhlciBzY2hlZHVsZXIs IGJ1dCB0aGF0IGlzIGhvdyB0aGluZ3MgbmVlZCB0byBiZSwgZm9yCiAgICAgICogcHJldmVudGlu ZyByYWNlcy4KICAgICAgKi8KLSAgICBBU1NFUlQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUp LnNjaGVkdWxlX2xvY2sgIT0gJnBydi0+bG9jayk7CisgICAgQVNTRVJUKHNkLT5zY2hlZHVsZV9s b2NrICE9ICZwcnYtPmxvY2spOwogCiAgICAgLyoKICAgICAgKiBJZiB3ZSBhcmUgdGhlIGFic29s dXRlIGZpcnN0IGNwdSBiZWluZyBzd2l0Y2hlZCB0b3dhcmQgdGhpcwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9zY2hlZHVsZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCmluZGV4IGMwY2VjMGI2 Y2EuLmVhNTNiZDcxODMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWR1bGUuYworKysgYi94 ZW4vY29tbW9uL3NjaGVkdWxlLmMKQEAgLTYxLDcgKzYxLDYgQEAgc3RhdGljIHZvaWQgdmNwdV9z aW5nbGVzaG90X3RpbWVyX2ZuKHZvaWQgKmRhdGEpOwogc3RhdGljIHZvaWQgcG9sbF90aW1lcl9m bih2b2lkICpkYXRhKTsKIAogLyogVGhpcyBpcyBnbG9iYWwgZm9yIG5vdyBzbyB0aGF0IHByaXZh dGUgaW1wbGVtZW50YXRpb25zIGNhbiByZWFjaCBpdCAqLwotREVGSU5FX1BFUl9DUFUoc3RydWN0 IHNjaGVkdWxlX2RhdGEsIHNjaGVkdWxlX2RhdGEpOwogREVGSU5FX1BFUl9DUFUoc3RydWN0IHNj aGVkdWxlciAqLCBzY2hlZHVsZXIpOwogREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX3Jlc291 cmNlICosIHNjaGVkX3Jlcyk7CiAKQEAgLTE1Nyw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgdmNwdV91cmdlbnRfY291bnRfdXBkYXRlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICAg ICF0ZXN0X2JpdCh2LT52Y3B1X2lkLCB2LT5kb21haW4tPnBvbGxfbWFzaykgKQogICAgICAgICB7 CiAgICAgICAgICAgICB2LT5pc191cmdlbnQgPSAwOwotICAgICAgICAgICAgYXRvbWljX2RlYygm cGVyX2NwdShzY2hlZHVsZV9kYXRhLHYtPnByb2Nlc3NvcikudXJnZW50X2NvdW50KTsKKyAgICAg ICAgICAgIGF0b21pY19kZWMoJmdldF9zY2hlZF9yZXModi0+cHJvY2Vzc29yKS0+dXJnZW50X2Nv dW50KTsKICAgICAgICAgfQogICAgIH0KICAgICBlbHNlCkBAIC0xNjYsNyArMTY1LDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIHZjcHVfdXJnZW50X2NvdW50X3VwZGF0ZShzdHJ1Y3QgdmNwdSAqdikK ICAgICAgICAgICAgICB1bmxpa2VseSh0ZXN0X2JpdCh2LT52Y3B1X2lkLCB2LT5kb21haW4tPnBv bGxfbWFzaykpICkKICAgICAgICAgewogICAgICAgICAgICAgdi0+aXNfdXJnZW50ID0gMTsKLSAg ICAgICAgICAgIGF0b21pY19pbmMoJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSx2LT5wcm9jZXNzb3Ip LnVyZ2VudF9jb3VudCk7CisgICAgICAgICAgICBhdG9taWNfaW5jKCZnZXRfc2NoZWRfcmVzKHYt PnByb2Nlc3NvciktPnVyZ2VudF9jb3VudCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xNzcs NyArMTc2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHZjcHVfcnVuc3RhdGVfY2hhbmdlKAogICAg IHNfdGltZV90IGRlbHRhOwogCiAgICAgQVNTRVJUKHYtPnJ1bnN0YXRlLnN0YXRlICE9IG5ld19z dGF0ZSk7Ci0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSx2 LT5wcm9jZXNzb3IpLnNjaGVkdWxlX2xvY2spKTsKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQo Z2V0X3NjaGVkX3Jlcyh2LT5wcm9jZXNzb3IpLT5zY2hlZHVsZV9sb2NrKSk7CiAKICAgICB2Y3B1 X3VyZ2VudF9jb3VudF91cGRhdGUodik7CiAKQEAgLTMzNCw3ICszMzMsNyBAQCBpbnQgc2NoZWRf aW5pdF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgcHJvY2Vzc29yKQogICAgIC8q IElkbGUgVkNQVXMgYXJlIHNjaGVkdWxlZCBpbW1lZGlhdGVseSwgc28gZG9uJ3QgcHV0IHRoZW0g aW4gcnVucXVldWUuICovCiAgICAgaWYgKCBpc19pZGxlX2RvbWFpbihkKSApCiAgICAgewotICAg ICAgICBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIHYtPnByb2Nlc3NvcikuY3VyciA9IHVuaXQ7Cisg ICAgICAgIGdldF9zY2hlZF9yZXModi0+cHJvY2Vzc29yKS0+Y3VyciA9IHVuaXQ7CiAgICAgICAg IHYtPmlzX3J1bm5pbmcgPSAxOwogICAgIH0KICAgICBlbHNlCkBAIC00NTksNyArNDU4LDcgQEAg dm9pZCBzY2hlZF9kZXN0cm95X3ZjcHUoc3RydWN0IHZjcHUgKnYpCiAgICAga2lsbF90aW1lcigm di0+c2luZ2xlc2hvdF90aW1lcik7CiAgICAga2lsbF90aW1lcigmdi0+cG9sbF90aW1lcik7CiAg ICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9ib29sKHYtPmlzX3VyZ2VudCkgKQotICAgICAgICBhdG9t aWNfZGVjKCZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIHYtPnByb2Nlc3NvcikudXJnZW50X2NvdW50 KTsKKyAgICAgICAgYXRvbWljX2RlYygmZ2V0X3NjaGVkX3Jlcyh2LT5wcm9jZXNzb3IpLT51cmdl bnRfY291bnQpOwogICAgIHNjaGVkX3JlbW92ZV91bml0KHZjcHVfc2NoZWR1bGVyKHYpLCB1bml0 KTsKICAgICBzY2hlZF9mcmVlX3ZkYXRhKHZjcHVfc2NoZWR1bGVyKHYpLCB1bml0LT5wcml2KTsK ICAgICBzY2hlZF9mcmVlX3VuaXQodW5pdCk7CkBAIC01MDYsNyArNTA1LDcgQEAgdm9pZCBzY2hl ZF9kZXN0cm95X2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQogCiB2b2lkIHZjcHVfc2xlZXBfbm9z eW5jX2xvY2tlZChzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQo cGVyX2NwdShzY2hlZHVsZV9kYXRhLHYtPnByb2Nlc3Nvcikuc2NoZWR1bGVfbG9jaykpOworICAg IEFTU0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2NoZWRfcmVzKHYtPnByb2Nlc3NvciktPnNjaGVk dWxlX2xvY2spKTsKIAogICAgIGlmICggbGlrZWx5KCF2Y3B1X3J1bm5hYmxlKHYpKSApCiAgICAg ewpAQCAtNjAxLDggKzYwMCw4IEBAIHN0YXRpYyB2b2lkIHZjcHVfbW92ZV9sb2NrZWQoc3RydWN0 IHZjcHUgKnYsIHVuc2lnbmVkIGludCBuZXdfY3B1KQogICAgICAqLwogICAgIGlmICggdW5saWtl bHkodi0+aXNfdXJnZW50KSAmJiAob2xkX2NwdSAhPSBuZXdfY3B1KSApCiAgICAgewotICAgICAg ICBhdG9taWNfaW5jKCZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIG5ld19jcHUpLnVyZ2VudF9jb3Vu dCk7Ci0gICAgICAgIGF0b21pY19kZWMoJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgb2xkX2NwdSku dXJnZW50X2NvdW50KTsKKyAgICAgICAgYXRvbWljX2luYygmZ2V0X3NjaGVkX3JlcyhuZXdfY3B1 KS0+dXJnZW50X2NvdW50KTsKKyAgICAgICAgYXRvbWljX2RlYygmZ2V0X3NjaGVkX3JlcyhvbGRf Y3B1KS0+dXJnZW50X2NvdW50KTsKICAgICB9CiAKICAgICAvKgpAQCAtNjY4LDIwICs2NjcsMjAg QEAgc3RhdGljIHZvaWQgdmNwdV9taWdyYXRlX2ZpbmlzaChzdHJ1Y3QgdmNwdSAqdikKICAgICAg ICAgICogYXJlIG5vdCBjb3JyZWN0IGFueSBsb25nZXIgYWZ0ZXIgZXZhbHVhdGluZyBvbGQgYW5k IG5ldyBjcHUgaG9sZGluZwogICAgICAgICAgKiB0aGUgbG9ja3MuCiAgICAgICAgICAqLwotICAg ICAgICBvbGRfbG9jayA9IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgb2xkX2NwdSkuc2NoZWR1bGVf bG9jazsKLSAgICAgICAgbmV3X2xvY2sgPSBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIG5ld19jcHUp LnNjaGVkdWxlX2xvY2s7CisgICAgICAgIG9sZF9sb2NrID0gZ2V0X3NjaGVkX3JlcyhvbGRfY3B1 KS0+c2NoZWR1bGVfbG9jazsKKyAgICAgICAgbmV3X2xvY2sgPSBnZXRfc2NoZWRfcmVzKG5ld19j cHUpLT5zY2hlZHVsZV9sb2NrOwogCiAgICAgICAgIHNjaGVkX3NwaW5fbG9ja19kb3VibGUob2xk X2xvY2ssIG5ld19sb2NrLCAmZmxhZ3MpOwogCiAgICAgICAgIG9sZF9jcHUgPSB2LT5wcm9jZXNz b3I7Ci0gICAgICAgIGlmICggb2xkX2xvY2sgPT0gcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBvbGRf Y3B1KS5zY2hlZHVsZV9sb2NrICkKKyAgICAgICAgaWYgKCBvbGRfbG9jayA9PSBnZXRfc2NoZWRf cmVzKG9sZF9jcHUpLT5zY2hlZHVsZV9sb2NrICkKICAgICAgICAgewogICAgICAgICAgICAgLyoK ICAgICAgICAgICAgICAqIElmIHdlIHNlbGVjdGVkIGEgQ1BVIG9uIHRoZSBwcmV2aW9zdSBpdGVy YXRpb24sIGNoZWNrIGlmIGl0CiAgICAgICAgICAgICAgKiByZW1haW5zIHN1aXRhYmxlIGZvciBy dW5uaW5nIHRoaXMgdkNQVS4KICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaWYgKCBwaWNr X2NhbGxlZCAmJgotICAgICAgICAgICAgICAgICAobmV3X2xvY2sgPT0gcGVyX2NwdShzY2hlZHVs ZV9kYXRhLCBuZXdfY3B1KS5zY2hlZHVsZV9sb2NrKSAmJgorICAgICAgICAgICAgICAgICAobmV3 X2xvY2sgPT0gZ2V0X3NjaGVkX3JlcyhuZXdfY3B1KS0+c2NoZWR1bGVfbG9jaykgJiYKICAgICAg ICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5jcHVfaGFyZF9hZmZpbml0 eSkgJiYKICAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5kb21h aW4tPmNwdXBvb2wtPmNwdV92YWxpZCkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjg5 LDcgKzY4OCw3IEBAIHN0YXRpYyB2b2lkIHZjcHVfbWlncmF0ZV9maW5pc2goc3RydWN0IHZjcHUg KnYpCiAgICAgICAgICAgICAvKiBTZWxlY3QgYSBuZXcgQ1BVLiAqLwogICAgICAgICAgICAgbmV3 X2NwdSA9IHNjaGVkX3BpY2tfcmVzb3VyY2UodmNwdV9zY2hlZHVsZXIodiksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5zY2hlZF91bml0KS0+cHJvY2Vzc29y OwotICAgICAgICAgICAgaWYgKCAobmV3X2xvY2sgPT0gcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBu ZXdfY3B1KS5zY2hlZHVsZV9sb2NrKSAmJgorICAgICAgICAgICAgaWYgKCAobmV3X2xvY2sgPT0g Z2V0X3NjaGVkX3JlcyhuZXdfY3B1KS0+c2NoZWR1bGVfbG9jaykgJiYKICAgICAgICAgICAgICAg ICAgY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5kb21haW4tPmNwdXBvb2wtPmNwdV92YWxp ZCkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgcGlja19jYWxsZWQgPSAx OwpAQCAtMTQ3Miw3ICsxNDcxLDcgQEAgc3RhdGljIHZvaWQgc2NoZWR1bGUodm9pZCkKICAgICBz dHJ1Y3Qgc2NoZWR1bGVyICAgICAqc2NoZWQ7CiAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgKnRh c2tsZXRfd29yayA9ICZ0aGlzX2NwdSh0YXNrbGV0X3dvcmtfdG9fZG8pOwogICAgIGJvb2xfdCAg ICAgICAgICAgICAgICB0YXNrbGV0X3dvcmtfc2NoZWR1bGVkID0gMDsKLSAgICBzdHJ1Y3Qgc2No ZWR1bGVfZGF0YSAqc2Q7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZDsKICAgICBzcGlu bG9ja190ICAgICAgICAgICAqbG9jazsKICAgICBzdHJ1Y3QgdGFza19zbGljZSAgICAgbmV4dF9z bGljZTsKICAgICBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwpAQCAtMTQ4MSw3ICsxNDgw LDcgQEAgc3RhdGljIHZvaWQgc2NoZWR1bGUodm9pZCkKIAogICAgIFNDSEVEX1NUQVRfQ1JBTkso c2NoZWRfcnVuKTsKIAotICAgIHNkID0gJnRoaXNfY3B1KHNjaGVkdWxlX2RhdGEpOworICAgIHNk ID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwogCiAgICAgLyogVXBkYXRlIHRhc2tsZXQgc2NoZWR1bGlu ZyBzdGF0dXMuICovCiAgICAgc3dpdGNoICggKnRhc2tsZXRfd29yayApCkBAIC0xNjIzLDE1ICsx NjIyLDE0IEBAIHN0YXRpYyB2b2lkIHBvbGxfdGltZXJfZm4odm9pZCAqZGF0YSkKIAogc3RhdGlj IGludCBjcHVfc2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKIHsKLSAgICBzdHJ1Y3Qgc2No ZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOworICAgIHN0cnVj dCBzY2hlZF9yZXNvdXJjZSAqc2Q7CiAgICAgdm9pZCAqc2NoZWRfcHJpdjsKLSAgICBzdHJ1Y3Qg c2NoZWRfcmVzb3VyY2UgKnJlczsKIAotICAgIHJlcyA9IHh6YWxsb2Moc3RydWN0IHNjaGVkX3Jl c291cmNlKTsKLSAgICBpZiAoIHJlcyA9PSBOVUxMICkKKyAgICBzZCA9IHh6YWxsb2Moc3RydWN0 IHNjaGVkX3Jlc291cmNlKTsKKyAgICBpZiAoIHNkID09IE5VTEwgKQogICAgICAgICByZXR1cm4g LUVOT01FTTsKLSAgICByZXMtPnByb2Nlc3NvciA9IGNwdTsKLSAgICBzZXRfc2NoZWRfcmVzKGNw dSwgcmVzKTsKKyAgICBzZC0+cHJvY2Vzc29yID0gY3B1OworICAgIHNldF9zY2hlZF9yZXMoY3B1 LCBzZCk7CiAKICAgICBwZXJfY3B1KHNjaGVkdWxlciwgY3B1KSA9ICZvcHM7CiAgICAgc3Bpbl9s b2NrX2luaXQoJnNkLT5fbG9jayk7CkBAIC0xNjg3LDcgKzE2ODUsNyBAQCBzdGF0aWMgaW50IGNw dV9zY2hlZHVsZV91cCh1bnNpZ25lZCBpbnQgY3B1KQogCiBzdGF0aWMgdm9pZCBjcHVfc2NoZWR1 bGVfZG93bih1bnNpZ25lZCBpbnQgY3B1KQogewotICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpz ZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291 cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1KTsKICAgICBzdHJ1Y3Qgc2NoZWR1bGVyICpzY2hl ZCA9IHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpOwogCiAgICAgc2NoZWRfZnJlZV9wZGF0YShzY2hl ZCwgc2QtPnNjaGVkX3ByaXYsIGNwdSk7CkBAIC0xNzA3LDcgKzE3MDUsNyBAQCBzdGF0aWMgaW50 IGNwdV9zY2hlZHVsZV9jYWxsYmFjaygKIHsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0gKHVuc2ln bmVkIGxvbmcpaGNwdTsKICAgICBzdHJ1Y3Qgc2NoZWR1bGVyICpzY2hlZCA9IHBlcl9jcHUoc2No ZWR1bGVyLCBjcHUpOwotICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNj aGVkdWxlX2RhdGEsIGNwdSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9z Y2hlZF9yZXMoY3B1KTsKICAgICBpbnQgcmMgPSAwOwogCiAgICAgLyoKQEAgLTE4NjQsMTAgKzE4 NjIsMTAgQEAgdm9pZCBfX2luaXQgc2NoZWR1bGVyX2luaXQodm9pZCkKICAgICBpZGxlX2RvbWFp bi0+bWF4X3ZjcHVzID0gbnJfY3B1X2lkczsKICAgICBpZiAoIHZjcHVfY3JlYXRlKGlkbGVfZG9t YWluLCAwLCAwKSA9PSBOVUxMICkKICAgICAgICAgQlVHKCk7Ci0gICAgdGhpc19jcHUoc2NoZWR1 bGVfZGF0YSkuY3VyciA9IGlkbGVfdmNwdVswXS0+c2NoZWRfdW5pdDsKLSAgICB0aGlzX2NwdShz Y2hlZHVsZV9kYXRhKS5zY2hlZF9wcml2ID0gc2NoZWRfYWxsb2NfcGRhdGEoJm9wcywgMCk7Ci0g ICAgQlVHX09OKElTX0VSUih0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5zY2hlZF9wcml2KSk7Ci0g ICAgc2NoZWRfaW5pdF9wZGF0YSgmb3BzLCB0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5zY2hlZF9w cml2LCAwKTsKKyAgICBnZXRfc2NoZWRfcmVzKDApLT5jdXJyID0gaWRsZV92Y3B1WzBdLT5zY2hl ZF91bml0OworICAgIGdldF9zY2hlZF9yZXMoMCktPnNjaGVkX3ByaXYgPSBzY2hlZF9hbGxvY19w ZGF0YSgmb3BzLCAwKTsKKyAgICBCVUdfT04oSVNfRVJSKGdldF9zY2hlZF9yZXMoMCktPnNjaGVk X3ByaXYpKTsKKyAgICBzY2hlZF9pbml0X3BkYXRhKCZvcHMsIGdldF9zY2hlZF9yZXMoMCktPnNj aGVkX3ByaXYsIDApOwogfQogCiAvKgpAQCAtMTg4OCw3ICsxODg2LDcgQEAgaW50IHNjaGVkdWxl X2NwdV9zd2l0Y2godW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdXBvb2wgKmMpCiAgICAgc3Ry dWN0IHNjaGVkdWxlciAqb2xkX29wcyA9IHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpOwogICAgIHN0 cnVjdCBzY2hlZHVsZXIgKm5ld19vcHMgPSAoYyA9PSBOVUxMKSA/ICZvcHMgOiBjLT5zY2hlZDsK ICAgICBzdHJ1Y3QgY3B1cG9vbCAqb2xkX3Bvb2wgPSBwZXJfY3B1KGNwdXBvb2wsIGNwdSk7Ci0g ICAgc3RydWN0IHNjaGVkdWxlX2RhdGEgKnNkID0gJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1 KTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwog ICAgIHNwaW5sb2NrX3QgKm9sZF9sb2NrLCAqbmV3X2xvY2s7CiAKICAgICAvKgpAQCAtMjA3NCw2 ICsyMDcyLDE2IEBAIHZvaWQgd2FpdCh2b2lkKQogICAgIHNjaGVkdWxlKCk7CiB9CiAKKy8qCisg KiB2Y3B1IGlzIHVyZ2VudCBpZiB2Y3B1IGlzIHBvbGxpbmcgZXZlbnQgY2hhbm5lbAorICoKKyAq IGlmIHVyZ2VudCB2Y3B1IGV4aXN0cywgQ1BVIHNob3VsZCBub3QgZW50ZXIgZGVlcCBDIHN0YXRl CisgKi8KK2ludCBzY2hlZF9oYXNfdXJnZW50X3ZjcHUodm9pZCkKK3sKKyAgICByZXR1cm4gYXRv bWljX3JlYWQoJmdldF9zY2hlZF9yZXMoc21wX3Byb2Nlc3Nvcl9pZCgpKS0+dXJnZW50X2NvdW50 KTsKK30KKwogI2lmZGVmIENPTkZJR19DT01QQVQKICNpbmNsdWRlICJjb21wYXQvc2NoZWR1bGUu YyIKICNlbmRpZgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZGxlLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkbGUuaAppbmRleCA0ODhmNzA4MzA1Li41ZDdkZmZkMjI4 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkbGUuaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2NwdWlkbGUuaApAQCAtNCw3ICs0LDYgQEAKICNpbmNsdWRlIDx4ZW4vY3B1 aWRsZS5oPgogI2luY2x1ZGUgPHhlbi9ub3RpZmllci5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5o PgotI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogCiBleHRlcm4gc3RydWN0IGFjcGlfcHJvY2Vz c29yX3Bvd2VyICpwcm9jZXNzb3JfcG93ZXJzW107CiAKQEAgLTI3LDE0ICsyNiw0IEBAIHZvaWQg dXBkYXRlX2lkbGVfc3RhdHMoc3RydWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICosCiB2b2lkIHVw ZGF0ZV9sYXN0X2N4X3N0YXQoc3RydWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICosCiAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGFjcGlfcHJvY2Vzc29yX2N4ICosIHVpbnQ2NF90KTsK IAotLyoKLSAqIHZjcHUgaXMgdXJnZW50IGlmIHZjcHUgaXMgcG9sbGluZyBldmVudCBjaGFubmVs Ci0gKgotICogaWYgdXJnZW50IHZjcHUgZXhpc3RzLCBDUFUgc2hvdWxkIG5vdCBlbnRlciBkZWVw IEMgc3RhdGUKLSAqLwotc3RhdGljIGlubGluZSBpbnQgc2NoZWRfaGFzX3VyZ2VudF92Y3B1KHZv aWQpCi17Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZ0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS51 cmdlbnRfY291bnQpOwotfQotCiAjZW5kaWYgLyogX19YODZfQVNNX0NQVUlETEVfSF9fICovCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaCBiL3hlbi9pbmNsdWRlL3hlbi9z Y2hlZC1pZi5oCmluZGV4IDliNzg1NWU3NzUuLjA0NDNmZTFkN2UgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hlbi9zY2hlZC1pZi5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oCkBA IC0zMywyMiArMzMsMTggQEAgZXh0ZXJuIGludCBzY2hlZF9yYXRlbGltaXRfdXM7CiAgKiBGb3Ig Y2FjaGUgYmV0dGVybmVzcywga2VlcCB0aGUgYWN0dWFsIGxvY2sgaW4gdGhlIHNhbWUgY2FjaGUg YXJlYQogICogYXMgdGhlIHJlc3Qgb2YgdGhlIHN0cnVjdC4gIEp1c3QgaGF2ZSB0aGUgc2NoZWR1 bGVyIHBvaW50IHRvIHRoZQogICogb25lIGl0IHdhbnRzIChUaGlzIG1heSBiZSB0aGUgb25lIHJp Z2h0IGluIGZyb250IG9mIGl0KS4qLwotc3RydWN0IHNjaGVkdWxlX2RhdGEgeworc3RydWN0IHNj aGVkX3Jlc291cmNlIHsKICAgICBzcGlubG9ja190ICAgICAgICAgKnNjaGVkdWxlX2xvY2ssCiAg ICAgICAgICAgICAgICAgICAgICAgIF9sb2NrOwogICAgIHN0cnVjdCBzY2hlZF91bml0ICAqY3Vy cjsgICAgICAgICAgIC8qIGN1cnJlbnQgdGFzayAgICAgICAgICAgICAgICAgICAgKi8KICAgICB2 b2lkICAgICAgICAgICAgICAgKnNjaGVkX3ByaXY7CiAgICAgc3RydWN0IHRpbWVyICAgICAgICBz X3RpbWVyOyAgICAgICAgLyogc2NoZWR1bGluZyB0aW1lciAgICAgICAgICAgICAgICAqLwogICAg IGF0b21pY190ICAgICAgICAgICAgdXJnZW50X2NvdW50OyAgIC8qIGhvdyBtYW55IHVyZ2VudCB2 Y3B1cyAgICAgICAgICAgKi8KKyAgICB1bnNpZ25lZCBpbnQgICAgICAgIHByb2Nlc3NvcjsKIH07 CiAKLSNkZWZpbmUgY3Vycl9vbl9jcHUoYykgICAgKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgYyku Y3VycikKLQotc3RydWN0IHNjaGVkX3Jlc291cmNlIHsKLSAgICB1bnNpZ25lZCBpbnQgcHJvY2Vz c29yOwotfTsKKyNkZWZpbmUgY3Vycl9vbl9jcHUoYykgICAgKGdldF9zY2hlZF9yZXMoYyktPmN1 cnIpCiAKLURFQ0xBUkVfUEVSX0NQVShzdHJ1Y3Qgc2NoZWR1bGVfZGF0YSwgc2NoZWR1bGVfZGF0 YSk7CiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHNjaGVkdWxlciAqLCBzY2hlZHVsZXIpOwogREVD TEFSRV9QRVJfQ1BVKHN0cnVjdCBjcHVwb29sICosIGNwdXBvb2wpOwogREVDTEFSRV9QRVJfQ1BV KHN0cnVjdCBzY2hlZF9yZXNvdXJjZSAqLCBzY2hlZF9yZXMpOwpAQCAtNzksNyArNzUsNyBAQCBz dGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmtpbmQjI19zY2hlZHVsZV9sb2NrIyNpcnEocGFyYW0g RVhUUkFfVFlQRShhcmcpKSBcCiB7IFwKICAgICBmb3IgKCA7IDsgKSBcCiAgICAgeyBcCi0gICAg ICAgIHNwaW5sb2NrX3QgKmxvY2sgPSBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1 bGVfbG9jazsgXAorICAgICAgICBzcGlubG9ja190ICpsb2NrID0gZ2V0X3NjaGVkX3JlcyhjcHUp LT5zY2hlZHVsZV9sb2NrOyBcCiAgICAgICAgIC8qIFwKICAgICAgICAgICogdi0+cHJvY2Vzc29y IG1heSBjaGFuZ2Ugd2hlbiBncmFiYmluZyB0aGUgbG9jazsgYnV0IFwKICAgICAgICAgICogcGVy X2NwdSh2LT5wcm9jZXNzb3IpIG1heSBhbHNvIGNoYW5nZSwgaWYgY2hhbmdpbmcgY3B1IHBvb2wg XApAQCAtODksNyArODUsNyBAQCBzdGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmtpbmQjI19zY2hl ZHVsZV9sb2NrIyNpcnEocGFyYW0gRVhUUkFfVFlQRShhcmcpKSBcCiAgICAgICAgICAqIGxvY2sg bWF5IGJlIHRoZSBzYW1lOyB0aGlzIHdpbGwgc3VjY2VlZCBpbiB0aGF0IGNhc2UuIFwKICAgICAg ICAgICovIFwKICAgICAgICAgc3Bpbl9sb2NrIyNpcnEobG9jaywgIyMgYXJnKTsgXAotICAgICAg ICBpZiAoIGxpa2VseShsb2NrID09IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVs ZV9sb2NrKSApIFwKKyAgICAgICAgaWYgKCBsaWtlbHkobG9jayA9PSBnZXRfc2NoZWRfcmVzKGNw dSktPnNjaGVkdWxlX2xvY2spICkgXAogICAgICAgICAgICAgcmV0dXJuIGxvY2s7IFwKICAgICAg ICAgc3Bpbl91bmxvY2sjI2lycShsb2NrLCAjIyBhcmcpOyBcCiAgICAgfSBcCkBAIC05OSw3ICs5 NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3BpbmxvY2tfdCAqa2luZCMjX3NjaGVkdWxlX2xvY2sjI2ly cShwYXJhbSBFWFRSQV9UWVBFKGFyZykpIFwKIHN0YXRpYyBpbmxpbmUgdm9pZCBraW5kIyNfc2No ZWR1bGVfdW5sb2NrIyNpcnEoc3BpbmxvY2tfdCAqbG9jayBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYVFJBX1RZUEUoYXJnKSwgcGFyYW0pIFwKIHsg XAotICAgIEFTU0VSVChsb2NrID09IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVs ZV9sb2NrKTsgXAorICAgIEFTU0VSVChsb2NrID09IGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1 bGVfbG9jayk7IFwKICAgICBzcGluX3VubG9jayMjaXJxKGxvY2ssICMjIGFyZyk7IFwKIH0KIApA QCAtMTI4LDExICsxMjQsMTEgQEAgc2NoZWRfdW5sb2NrKHZjcHUsIGNvbnN0IHN0cnVjdCB2Y3B1 ICp2LCB2LT5wcm9jZXNzb3IsIF9pcnFyZXN0b3JlLCBmbGFncykKIAogc3RhdGljIGlubGluZSBz cGlubG9ja190ICpwY3B1X3NjaGVkdWxlX3RyeWxvY2sodW5zaWduZWQgaW50IGNwdSkKIHsKLSAg ICBzcGlubG9ja190ICpsb2NrID0gcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxl X2xvY2s7CisgICAgc3BpbmxvY2tfdCAqbG9jayA9IGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1 bGVfbG9jazsKIAogICAgIGlmICggIXNwaW5fdHJ5bG9jayhsb2NrKSApCiAgICAgICAgIHJldHVy biBOVUxMOwotICAgIGlmICggbG9jayA9PSBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2No ZWR1bGVfbG9jayApCisgICAgaWYgKCBsb2NrID09IGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1 bGVfbG9jayApCiAgICAgICAgIHJldHVybiBsb2NrOwogICAgIHNwaW5fdW5sb2NrKGxvY2spOwog ICAgIHJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94 ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAppbmRleCBkM2ExYTMxYzg2Li5lZTMxNmNkZGQ3IDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2No ZWQuaApAQCAtOTAwLDYgKzkwMCw3IEBAIGludCB2Y3B1X3Bpbl9vdmVycmlkZShzdHJ1Y3QgdmNw dSAqdiwgaW50IGNwdSk7CiAKIHZvaWQgdmNwdV9ydW5zdGF0ZV9nZXQoc3RydWN0IHZjcHUgKnYs IHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gKnJ1bnN0YXRlKTsKIHVpbnQ2NF90IGdldF9jcHVf aWRsZV90aW1lKHVuc2lnbmVkIGludCBjcHUpOworaW50IHNjaGVkX2hhc191cmdlbnRfdmNwdSh2 b2lkKTsKIAogLyoKICAqIFVzZWQgYnkgaWRsZSBsb29wIHRvIGRlY2lkZSB3aGV0aGVyIHRoZXJl IGlzIHdvcmsgdG8gZG86Ci0tIAoyLjE2LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 19AAEC04E84 for ; Tue, 28 May 2019 10:33:41 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E2414208C3 for ; Tue, 28 May 2019 10:33:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E2414208C3 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hVZQ7-0004g9-Pm; Tue, 28 May 2019 10:33:27 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hVZQ5-0004at-49 for xen-devel@lists.xenproject.org; Tue, 28 May 2019 10:33:25 +0000 X-Inumbo-ID: 03cb4571-8134-11e9-8980-bc764e045a96 Received: from mx1.suse.de (unknown [195.135.220.15]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 03cb4571-8134-11e9-8980-bc764e045a96; Tue, 28 May 2019 10:33:22 +0000 (UTC) X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 54952B031; Tue, 28 May 2019 10:33:19 +0000 (UTC) From: Juergen Gross To: xen-devel@lists.xenproject.org Date: Tue, 28 May 2019 12:32:24 +0200 Message-Id: <20190528103313.1343-12-jgross@suse.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20190528103313.1343-1-jgross@suse.com> References: <20190528103313.1343-1-jgross@suse.com> Subject: [Xen-devel] [PATCH 11/60] xen/sched: move per cpu scheduler private data into struct sched_resource X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Juergen Gross , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Robert VanVossen , Tim Deegan , Julien Grall , Josh Whitehead , Meng Xu , Jan Beulich , Dario Faggioli , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190528103224.MIJvDGpIVx1E0JAjjtD8bjig9HzbhkWuCVj6LKUNhvg@z> VGhpcyBwcmVwYXJlcyBzdXBwb3J0IG9mIGxhcmdlciBzY2hlZHVsaW5nIGdyYW51bGFyaXRpZXMs IGUuZy4gY29yZQpzY2hlZHVsaW5nLgoKV2hpbGUgYXQgaXQgbW92ZSBzY2hlZF9oYXNfdXJnZW50 X3ZjcHUoKSBmcm9tIGluY2x1ZGUvYXNtLXg4Ni9jcHVpZGxlLmgKaW50byBzY2hlZHVsZS5jIHJl bW92aW5nIHRoZSBuZWVkIGZvciBpbmNsdWRpbmcgc2NoZWQtaWYuaCBpbgpjcHVpZGxlLmggYW5k IG11bHRpcGxlIG90aGVyIEMgc291cmNlcy4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3Mg PGpncm9zc0BzdXNlLmNvbT4KLS0tClYxOiBtb3ZlIHNjaGVkX2hhc191cmdlbnRfdmNwdSgpCi0t LQogeGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUuYyAgICAgIHwgIDEgLQogeGVuL2FyY2gveDg2 L2NwdS9tY2hlY2svbWNlLmMgICAgIHwgIDEgLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWN0 ZWxlbS5jIHwgIDEgLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAgICAgIHwgIDEgLQog eGVuL2FyY2gveDg2L3NtcGJvb3QuYyAgICAgICAgICAgIHwgIDEgLQogeGVuL2NvbW1vbi9zY2hl ZF9hcmluYzY1My5jICAgICAgIHwgIDQgKy0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jICAg ICAgICAgfCAxMiArKystLS0tCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYyAgICAgICAgfCAy MSArKysrKysrLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX251bGwuYyAgICAgICAgICAgfCAgNiAr Ky0tCiB4ZW4vY29tbW9uL3NjaGVkX3J0LmMgICAgICAgICAgICAgfCAgOSArKystLS0KIHhlbi9j b21tb24vc2NoZWR1bGUuYyAgICAgICAgICAgICB8IDY2ICsrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZGxlLmggICAgIHwgMTEg LS0tLS0tLQogeGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmggICAgICAgIHwgMjAgKysrKystLS0t LS0tCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAgfCAgMSArCiAxNCBmaWxlcyBj aGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCA4MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lkbGUu YwppbmRleCA4ODQ2NzIyYmNhLi45ZjY2ZjcwOTg2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv YWNwaS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTM4 LDcgKzM4LDYgQEAKICNpbmNsdWRlIDx4ZW4vZ3Vlc3RfYWNjZXNzLmg+CiAjaW5jbHVkZSA8eGVu L2tleWhhbmRsZXIuaD4KICNpbmNsdWRlIDx4ZW4vdHJhY2UuaD4KLSNpbmNsdWRlIDx4ZW4vc2No ZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vaXJxLmg+CiAjaW5jbHVkZSA8YXNtL2NhY2hlLmg+CiAj aW5jbHVkZSA8YXNtL2lvLmg+CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9t Y2UuYyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCmluZGV4IDMwY2RiMDY0MDEuLjcy NmRiNzUxODAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCkBAIC0xMCw3ICsxMCw2IEBACiAjaW5jbHVk ZSA8eGVuL2Vycm5vLmg+CiAjaW5jbHVkZSA8eGVuL2NvbnNvbGUuaD4KICNpbmNsdWRlIDx4ZW4v c2NoZWQuaD4KLSNpbmNsdWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vY3B1bWFz ay5oPgogI2luY2x1ZGUgPHhlbi9ldmVudC5oPgogI2luY2x1ZGUgPHhlbi9ndWVzdF9hY2Nlc3Mu aD4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uYyBiL3hlbi9h cmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uYwppbmRleCAzYmIxM2U1MjY1Li4wMTJhOWI5NWU1 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmMKKysrIGIveGVu L2FyY2gveDg2L2NwdS9tY2hlY2svbWN0ZWxlbS5jCkBAIC0xOCw3ICsxOCw2IEBACiAjaW5jbHVk ZSA8eGVuL3NtcC5oPgogI2luY2x1ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUgPHhlbi9zY2hl ZC5oPgotI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogI2luY2x1ZGUgPHhlbi9jcHVtYXNrLmg+ CiAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zZXR1 cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMGVkOTRhNjEzYS4uNWFkNjY2NjdlZiAx MDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gveDg2L3NldHVw LmMKQEAgLTMsNyArMyw2IEBACiAjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1ZGUgPHhlbi9n cmFudF90YWJsZS5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgotI2luY2x1ZGUgPHhlbi9zY2hl ZC1pZi5oPgogI2luY2x1ZGUgPHhlbi9kb21haW4uaD4KICNpbmNsdWRlIDx4ZW4vc2VyaWFsLmg+ CiAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zbXBi b290LmMgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCmluZGV4IDI3NDg2NWE3MDUuLjE1M2JmYmI0 YjcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKKysrIGIveGVuL2FyY2gveDg2 L3NtcGJvb3QuYwpAQCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgPHhlbi9kb21haW4uaD4KICNp bmNsdWRlIDx4ZW4vZG9tYWluX3BhZ2UuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KLSNpbmNs dWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vaXJxLmg+CiAjaW5jbHVkZSA8eGVu L2RlbGF5Lmg+CiAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWRfYXJpbmM2NTMuYyBiL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMuYwppbmRleCA3 ZjI2ZTZhMGIwLi42ZTdiMmM5OTY4IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2FyaW5j NjUzLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jCkBAIC00NzUsNyArNDc1LDcg QEAgYTY1M3NjaGVkX3VuaXRfc2xlZXAoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1 Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICAgKiBJZiB0aGUgVkNQVSBiZWluZyBwdXQgdG8gc2xl ZXAgaXMgdGhlIHNhbWUgb25lIHRoYXQgaXMgY3VycmVudGx5CiAgICAgICogcnVubmluZywgcmFp c2UgYSBzb2Z0aXJxIHRvIGludm9rZSB0aGUgc2NoZWR1bGVyIHRvIHN3aXRjaCBkb21haW5zLgog ICAgICAqLwotICAgIGlmICggcGVyX2NwdShzY2hlZHVsZV9kYXRhLCB2Yy0+cHJvY2Vzc29yKS5j dXJyID09IHVuaXQgKQorICAgIGlmICggZ2V0X3NjaGVkX3Jlcyh2Yy0+cHJvY2Vzc29yKS0+Y3Vy ciA9PSB1bml0ICkKICAgICAgICAgY3B1X3JhaXNlX3NvZnRpcnEodmMtPnByb2Nlc3NvciwgU0NI RURVTEVfU09GVElSUSk7CiB9CiAKQEAgLTY0Miw3ICs2NDIsNyBAQCBzdGF0aWMgc3BpbmxvY2tf dCAqCiBhNjUzX3N3aXRjaF9zY2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25l ZCBpbnQgY3B1LAogICAgICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQgKnZkYXRhKQog ewotICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEs IGNwdSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1 KTsKICAgICBhcmluYzY1M192Y3B1X3QgKnN2YyA9IHZkYXRhOwogCiAgICAgQVNTRVJUKCFwZGF0 YSAmJiBzdmMgJiYgaXNfaWRsZV92Y3B1KHN2Yy0+dmMpKTsKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWRfY3JlZGl0LmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCmluZGV4IGJjODdi ODEzZGMuLmZlNGZjNWFiYjEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMK KysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwpAQCAtODIsNyArODIsNyBAQAogI2RlZmlu ZSBDU0NIRURfUFJJVihfb3BzKSAgIFwKICAgICAoKHN0cnVjdCBjc2NoZWRfcHJpdmF0ZSAqKSgo X29wcyktPnNjaGVkX2RhdGEpKQogI2RlZmluZSBDU0NIRURfUENQVShfYykgICAgIFwKLSAgICAo KHN0cnVjdCBjc2NoZWRfcGNwdSAqKXBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgX2MpLnNjaGVkX3By aXYpCisgICAgKChzdHJ1Y3QgY3NjaGVkX3BjcHUgKilnZXRfc2NoZWRfcmVzKF9jKS0+c2NoZWRf cHJpdikKICNkZWZpbmUgQ1NDSEVEX1VOSVQodW5pdCkgICAoKHN0cnVjdCBjc2NoZWRfdW5pdCAq KSAodW5pdCktPnByaXYpCiAjZGVmaW5lIENTQ0hFRF9ET00oX2RvbSkgICAgKChzdHJ1Y3QgY3Nj aGVkX2RvbSAqKSAoX2RvbSktPnNjaGVkX3ByaXYpCiAjZGVmaW5lIFJVTlEoX2NwdSkgICAgICAg ICAgKCYoQ1NDSEVEX1BDUFUoX2NwdSktPnJ1bnEpKQpAQCAtMjQ4LDcgKzI0OCw3IEBAIHN0YXRp YyBpbmxpbmUgYm9vbF90IGlzX3J1bnFfaWRsZSh1bnNpZ25lZCBpbnQgY3B1KQogICAgIC8qCiAg ICAgICogV2UncmUgcGVla2luZyBhdCBjcHUncyBydW5xLCB3ZSBtdXN0IGhvbGQgdGhlIHByb3Bl ciBsb2NrLgogICAgICAqLwotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZChwZXJfY3B1KHNjaGVk dWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFTU0VSVChzcGluX2lzX2xvY2tl ZChnZXRfc2NoZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsKIAogICAgIHJldHVybiBsaXN0 X2VtcHR5KFJVTlEoY3B1KSkgfHwKICAgICAgICAgICAgaXNfaWRsZV92Y3B1KF9fcnVucV9lbGVt KFJVTlEoY3B1KS0+bmV4dCktPnZjcHUpOwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0YXRpYyBpbmxp bmUgYm9vbF90IGlzX3J1bnFfaWRsZSh1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIGlubGluZSB2 b2lkCiBpbmNfbnJfcnVubmFibGUodW5zaWduZWQgaW50IGNwdSkKIHsKLSAgICBBU1NFUlQoc3Bp bl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsK KyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9s b2NrKSk7CiAgICAgQ1NDSEVEX1BDUFUoY3B1KS0+bnJfcnVubmFibGUrKzsKIAogfQpAQCAtMjY1 LDcgKzI2NSw3IEBAIGluY19ucl9ydW5uYWJsZSh1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIGlu bGluZSB2b2lkCiBkZWNfbnJfcnVubmFibGUodW5zaWduZWQgaW50IGNwdSkKIHsKLSAgICBBU1NF UlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xv Y2spKTsKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hl ZHVsZV9sb2NrKSk7CiAgICAgQVNTRVJUKENTQ0hFRF9QQ1BVKGNwdSktPm5yX3J1bm5hYmxlID49 IDEpOwogICAgIENTQ0hFRF9QQ1BVKGNwdSktPm5yX3J1bm5hYmxlLS07CiB9CkBAIC02MTUsNyAr NjE1LDcgQEAgY3NjaGVkX2luaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2 b2lkICpwZGF0YSwgaW50IGNwdSkKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0 cnVjdCBjc2NoZWRfcHJpdmF0ZSAqcHJ2ID0gQ1NDSEVEX1BSSVYob3BzKTsKLSAgICBzdHJ1Y3Qg c2NoZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOworICAgIHN0 cnVjdCBzY2hlZF9yZXNvdXJjZSAqc2QgPSBnZXRfc2NoZWRfcmVzKGNwdSk7CiAKICAgICAvKgog ICAgICAqIFRoaXMgaXMgY2FsbGVkIGVpdGhlciBkdXJpbmcgZHVyaW5nIGJvb3QsIHJlc3VtZSBv ciBob3RwbHVnLCBpbgpAQCAtNjM1LDcgKzYzNSw3IEBAIHN0YXRpYyBzcGlubG9ja190ICoKIGNz Y2hlZF9zd2l0Y2hfc2NoZWQoc3RydWN0IHNjaGVkdWxlciAqbmV3X29wcywgdW5zaWduZWQgaW50 IGNwdSwKICAgICAgICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQgKnZkYXRhKQogewot ICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNw dSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1KTsK ICAgICBzdHJ1Y3QgY3NjaGVkX3ByaXZhdGUgKnBydiA9IENTQ0hFRF9QUklWKG5ld19vcHMpOwog ICAgIHN0cnVjdCBjc2NoZWRfdW5pdCAqc3ZjID0gdmRhdGE7CiAKZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vc2NoZWRfY3JlZGl0Mi5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKaW5kZXgg MzYyMDE4MTVlMy4uOTllOTkzYjMyZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQyLmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKQEAgLTU2Nyw3ICs1NjcsNyBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKmNzY2hlZDJfcHJpdihjb25z dCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMpCiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hlZDJf cGNwdSAqY3NjaGVkMl9wY3B1KHVuc2lnbmVkIGludCBjcHUpCiB7Ci0gICAgcmV0dXJuIHBlcl9j cHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZF9wcml2OworICAgIHJldHVybiBnZXRfc2NoZWRf cmVzKGNwdSktPnNjaGVkX3ByaXY7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNzY2hlZDJf dW5pdCAqY3NjaGVkMl91bml0KGNvbnN0IHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQpAQCAtMTI3 Niw3ICsxMjc2LDcgQEAgcnVucV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBz dHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMpCiAgICAgc3RydWN0IGxpc3RfaGVhZCAqIHJ1bnEgPSAm YzJycWQob3BzLCBjcHUpLT5ydW5xOwogICAgIGludCBwb3MgPSAwOwogCi0gICAgQVNTRVJUKHNw aW5faXNfbG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9sb2NrKSk7 CisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1bGVf bG9jaykpOwogCiAgICAgQVNTRVJUKCF2Y3B1X29uX3J1bnEoc3ZjKSk7CiAgICAgQVNTRVJUKGMy cihjcHUpID09IGMycihzdmMtPnZjcHUtPnByb2Nlc3NvcikpOwpAQCAtMTc5Nyw3ICsxNzk3LDcg QEAgc3RhdGljIGJvb2wgdmNwdV9ncmFiX2J1ZGdldChzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMp CiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpzZG9tID0gc3ZjLT5zZG9tOwogICAgIHVuc2lnbmVk IGludCBjcHUgPSBzdmMtPnZjcHUtPnByb2Nlc3NvcjsKIAotICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZChwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFT U0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2NoZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsK IAogICAgIGlmICggc3ZjLT5idWRnZXQgPiAwICkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0x ODQ0LDcgKzE4NDQsNyBAQCB2Y3B1X3JldHVybl9idWRnZXQoc3RydWN0IGNzY2hlZDJfdW5pdCAq c3ZjLCBzdHJ1Y3QgbGlzdF9oZWFkICpwYXJrZWQpCiAgICAgc3RydWN0IGNzY2hlZDJfZG9tICpz ZG9tID0gc3ZjLT5zZG9tOwogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzdmMtPnZjcHUtPnByb2Nl c3NvcjsKIAotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZChwZXJfY3B1KHNjaGVkdWxlX2RhdGEs IGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2No ZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsKICAgICBBU1NFUlQobGlzdF9lbXB0eShwYXJr ZWQpKTsKIAogICAgIC8qIGJ1ZGdldF9sb2NrIG5lc3RzIGluc2lkZSBydW5xdWV1ZSBsb2NrLiAq LwpAQCAtMjEwMSw3ICsyMTAxLDcgQEAgY3NjaGVkMl91bml0X3dha2UoY29uc3Qgc3RydWN0IHNj aGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfdW5pdCAqdW5pdCkKICAgICB1bnNpZ25lZCBpbnQg Y3B1ID0gdmMtPnByb2Nlc3NvcjsKICAgICBzX3RpbWVfdCBub3c7CiAKLSAgICBBU1NFUlQoc3Bp bl9pc19sb2NrZWQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsK KyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9s b2NrKSk7CiAKICAgICBBU1NFUlQoIWlzX2lkbGVfdmNwdSh2YykpOwogCkBAIC0yMjI5LDcgKzIy MjksNyBAQCBjc2NoZWQyX3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3Ry dWN0IHNjaGVkX3VuaXQgKnVuaXQpCiAgICAgICoganVzdCBncmFiIHRoZSBwcnYgbG9jay4gIElu c3RlYWQsIHdlJ2xsIGhhdmUgdG8gdHJ5bG9jaywgYW5kCiAgICAgICogZG8gc29tZXRoaW5nIGVs c2UgcmVhc29uYWJsZSBpZiB3ZSBmYWlsLgogICAgICAqLwotICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZChwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jaykpOworICAgIEFT U0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2NoZWRfcmVzKGNwdSktPnNjaGVkdWxlX2xvY2spKTsK IAogICAgIGlmICggIXJlYWRfdHJ5bG9jaygmcHJ2LT5sb2NrKSApCiAgICAgewpAQCAtMjU2OSw3 ICsyNTY5LDcgQEAgc3RhdGljIHZvaWQgYmFsYW5jZV9sb2FkKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgaW50IGNwdSwgc190aW1lX3Qgbm93KQogICAgICAqIG9uIGVpdGhlciBzaWRlIG1h eSBiZSBlbXB0eSkuCiAgICAgICovCiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2Nw dShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKKyAgICBBU1NFUlQoc3Bpbl9p c19sb2NrZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9sb2NrKSk7CiAgICAgc3QubHJx ZCA9IGMycnFkKG9wcywgY3B1KTsKIAogICAgIHVwZGF0ZV9ydW5xX2xvYWQob3BzLCBzdC5scnFk LCAwLCBub3cpOwpAQCAtMzQ3NSw3ICszNDc1LDcgQEAgY3NjaGVkMl9zY2hlZHVsZSgKICAgICBy cWQgPSBjMnJxZChvcHMsIGNwdSk7CiAgICAgQlVHX09OKCFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwg JnJxZC0+YWN0aXZlKSk7CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQocGVyX2NwdShzY2hl ZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxlX2xvY2spKTsKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2Nr ZWQoZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9sb2NrKSk7CiAKICAgICBCVUdfT04oIWlz X2lkbGVfdmNwdShzY3Vyci0+dmNwdSkgJiYgc2N1cnItPnJxZCAhPSBycWQpOwogCkBAIC0zODYz LDcgKzM4NjMsNyBAQCBjc2NoZWQyX2luaXRfcGRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAq b3BzLCB2b2lkICpwZGF0YSwgaW50IGNwdSkKIAogICAgIHJxaSA9IGluaXRfcGRhdGEocHJ2LCBw ZGF0YSwgY3B1KTsKICAgICAvKiBNb3ZlIHRoZSBzY2hlZHVsZXIgbG9jayB0byB0aGUgbmV3IHJ1 bnEgbG9jay4gKi8KLSAgICBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9j ayA9ICZwcnYtPnJxZFtycWldLmxvY2s7CisgICAgZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVs ZV9sb2NrID0gJnBydi0+cnFkW3JxaV0ubG9jazsKIAogICAgIC8qIF9Ob3RfIHBjcHVfc2NoZWR1 bGVfdW5sb2NrKCk6IHNjaGVkdWxlX2xvY2sgbWF5IGhhdmUgY2hhbmdlZCEgKi8KICAgICBzcGlu X3VubG9jayhvbGRfbG9jayk7CkBAIC0zODc3LDYgKzM4NzcsNyBAQCBjc2NoZWQyX3N3aXRjaF9z Y2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogewogICAg IHN0cnVjdCBjc2NoZWQyX3ByaXZhdGUgKnBydiA9IGNzY2hlZDJfcHJpdihuZXdfb3BzKTsKICAg ICBzdHJ1Y3QgY3NjaGVkMl91bml0ICpzdmMgPSB2ZGF0YTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcmVz b3VyY2UgKnNkID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwogICAgIHVuc2lnbmVkIHJxaTsKIAogICAg IEFTU0VSVChwZGF0YSAmJiBzdmMgJiYgaXNfaWRsZV92Y3B1KHN2Yy0+dmNwdSkpOwpAQCAtMzkw Miw3ICszOTAzLDcgQEAgY3NjaGVkMl9zd2l0Y2hfc2NoZWQoc3RydWN0IHNjaGVkdWxlciAqbmV3 X29wcywgdW5zaWduZWQgaW50IGNwdSwKICAgICAgKiB0aGlzIHNjaGVkdWxlciwgYW5kIHNvIGl0 J3Mgc2FmZSB0byBoYXZlIHRha2VuIGl0IC9iZWZvcmUvIG91cgogICAgICAqIHByaXZhdGUgZ2xv YmFsIGxvY2suCiAgICAgICovCi0gICAgQVNTRVJUKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1 KS5zY2hlZHVsZV9sb2NrICE9ICZwcnYtPnJxZFtycWldLmxvY2spOworICAgIEFTU0VSVChzZC0+ c2NoZWR1bGVfbG9jayAhPSAmcHJ2LT5ycWRbcnFpXS5sb2NrKTsKIAogICAgIHdyaXRlX3VubG9j aygmcHJ2LT5sb2NrKTsKIApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMgYi94 ZW4vY29tbW9uL3NjaGVkX251bGwuYwppbmRleCBkZWZjZGZjZjFlLi45ZGY2Zjg2N2FhIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX251bGwuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX251 bGwuYwpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0YXRpYyB2b2lkIGluaXRfcGRhdGEoc3RydWN0IG51 bGxfcHJpdmF0ZSAqcHJ2LCB1bnNpZ25lZCBpbnQgY3B1KQogc3RhdGljIHZvaWQgbnVsbF9pbml0 X3BkYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGRhdGEsIGludCBjcHUp CiB7CiAgICAgc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2ID0gbnVsbF9wcml2KG9wcyk7Ci0gICAg c3RydWN0IHNjaGVkdWxlX2RhdGEgKnNkID0gJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KTsK KyAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwogCiAg ICAgLyogYWxsb2NfcGRhdGEgaXMgbm90IGltcGxlbWVudGVkLCBzbyB3ZSB3YW50IHRoaXMgdG8g YmUgTlVMTC4gKi8KICAgICBBU1NFUlQoIXBkYXRhKTsKQEAgLTI3Nyw3ICsyNzcsNyBAQCBwaWNr X3JlcyhzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnYsIHN0cnVjdCBzY2hlZF91bml0ICp1bml0KQog ICAgIHVuc2lnbmVkIGludCBjcHUgPSB2LT5wcm9jZXNzb3IsIG5ld19jcHU7CiAgICAgY3B1bWFz a190ICpjcHVzID0gY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21haW4pOwogCi0gICAgQVNT RVJUKHNwaW5faXNfbG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVsZV9s b2NrKSk7CisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKGdldF9zY2hlZF9yZXMoY3B1KS0+c2No ZWR1bGVfbG9jaykpOwogCiAgICAgZm9yX2VhY2hfYWZmaW5pdHlfYmFsYW5jZV9zdGVwKCBicyAp CiAgICAgewpAQCAtMzg5LDcgKzM4OSw3IEBAIHN0YXRpYyBzcGlubG9ja190ICpudWxsX3N3aXRj aF9zY2hlZChzdHJ1Y3Qgc2NoZWR1bGVyICpuZXdfb3BzLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjcHUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdm9pZCAqcGRhdGEsIHZvaWQgKnZkYXRhKQogewotICAgIHN0cnVjdCBz Y2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7CisgICAgc3Ry dWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1KTsKICAgICBzdHJ1Y3Qg bnVsbF9wcml2YXRlICpwcnYgPSBudWxsX3ByaXYobmV3X29wcyk7CiAgICAgc3RydWN0IG51bGxf dW5pdCAqbnZjID0gdmRhdGE7CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBi L3hlbi9jb21tb24vc2NoZWRfcnQuYwppbmRleCA4Y2FlYzVjNWRjLi5jZWUwZDY5ZDU0IDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5j CkBAIC03NSw3ICs3NSw3IEBACiAvKgogICogTG9ja2luZzoKICAqIEEgZ2xvYmFsIHN5c3RlbSBs b2NrIGlzIHVzZWQgdG8gcHJvdGVjdCB0aGUgUnVuUSBhbmQgRGVwbGV0ZWRRLgotICogVGhlIGds b2JhbCBsb2NrIGlzIHJlZmVyZW5jZWQgYnkgc2NoZWR1bGVfZGF0YS5zY2hlZHVsZV9sb2NrCisg KiBUaGUgZ2xvYmFsIGxvY2sgaXMgcmVmZXJlbmNlZCBieSBzY2hlZF9yZXMtPnNjaGVkdWxlX2xv Y2sKICAqIGZyb20gYWxsIHBoeXNpY2FsIGNwdXMuCiAgKgogICogVGhlIGxvY2sgaXMgYWxyZWFk eSBncmFiYmVkIHdoZW4gY2FsbGluZyB3YWtlL3NsZWVwL3NjaGVkdWxlLyBmdW5jdGlvbnMKQEAg LTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgdm9pZCByZXBsX3RpbWVyX2hhbmRsZXIodm9pZCAqZGF0 YSk7CiAKIC8qCiAgKiBTeXN0ZW0td2lkZSBwcml2YXRlIGRhdGEsIGluY2x1ZGUgZ2xvYmFsIFJ1 blF1ZXVlL0RlcGxldGVkUQotICogR2xvYmFsIGxvY2sgaXMgcmVmZXJlbmNlZCBieSBzY2hlZHVs ZV9kYXRhLnNjaGVkdWxlX2xvY2sgZnJvbSBhbGwKKyAqIEdsb2JhbCBsb2NrIGlzIHJlZmVyZW5j ZWQgYnkgc2NoZWRfcmVzLT5zY2hlZHVsZV9sb2NrIGZyb20gYWxsCiAgKiBwaHlzaWNhbCBjcHVz LiBJdCBjYW4gYmUgZ3JhYmJlZCB2aWEgdmNwdV9zY2hlZHVsZV9sb2NrX2lycSgpCiAgKi8KIHN0 cnVjdCBydF9wcml2YXRlIHsKQEAgLTcyMyw3ICs3MjMsNyBAQCBydF9pbml0X3BkYXRhKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9pZCAqcGRhdGEsIGludCBjcHUpCiAgICAgfQogCiAg ICAgLyogTW92ZSB0aGUgc2NoZWR1bGVyIGxvY2sgdG8gb3VyIGdsb2JhbCBydW5xdWV1ZSBsb2Nr LiAgKi8KLSAgICBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1bGVfbG9jayA9ICZw cnYtPmxvY2s7CisgICAgZ2V0X3NjaGVkX3JlcyhjcHUpLT5zY2hlZHVsZV9sb2NrID0gJnBydi0+ bG9jazsKIAogICAgIC8qIF9Ob3RfIHBjcHVfc2NoZWR1bGVfdW5sb2NrKCk6IHBlcl9jcHUoKS5z Y2hlZHVsZV9sb2NrIGNoYW5nZWQhICovCiAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShvbGRf bG9jaywgZmxhZ3MpOwpAQCAtNzM2LDYgKzczNiw3IEBAIHJ0X3N3aXRjaF9zY2hlZChzdHJ1Y3Qg c2NoZWR1bGVyICpuZXdfb3BzLCB1bnNpZ25lZCBpbnQgY3B1LAogewogICAgIHN0cnVjdCBydF9w cml2YXRlICpwcnYgPSBydF9wcml2KG5ld19vcHMpOwogICAgIHN0cnVjdCBydF91bml0ICpzdmMg PSB2ZGF0YTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkID0gZ2V0X3NjaGVkX3Jlcyhj cHUpOwogCiAgICAgQVNTRVJUKCFwZGF0YSAmJiBzdmMgJiYgaXNfaWRsZV92Y3B1KHN2Yy0+dmNw dSkpOwogCkBAIC03NDUsNyArNzQ2LDcgQEAgcnRfc3dpdGNoX3NjaGVkKHN0cnVjdCBzY2hlZHVs ZXIgKm5ld19vcHMsIHVuc2lnbmVkIGludCBjcHUsCiAgICAgICogYW5vdGhlciBzY2hlZHVsZXIs IGJ1dCB0aGF0IGlzIGhvdyB0aGluZ3MgbmVlZCB0byBiZSwgZm9yCiAgICAgICogcHJldmVudGlu ZyByYWNlcy4KICAgICAgKi8KLSAgICBBU1NFUlQocGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUp LnNjaGVkdWxlX2xvY2sgIT0gJnBydi0+bG9jayk7CisgICAgQVNTRVJUKHNkLT5zY2hlZHVsZV9s b2NrICE9ICZwcnYtPmxvY2spOwogCiAgICAgLyoKICAgICAgKiBJZiB3ZSBhcmUgdGhlIGFic29s dXRlIGZpcnN0IGNwdSBiZWluZyBzd2l0Y2hlZCB0b3dhcmQgdGhpcwpkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9zY2hlZHVsZS5jIGIveGVuL2NvbW1vbi9zY2hlZHVsZS5jCmluZGV4IGMwY2VjMGI2 Y2EuLmVhNTNiZDcxODMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWR1bGUuYworKysgYi94 ZW4vY29tbW9uL3NjaGVkdWxlLmMKQEAgLTYxLDcgKzYxLDYgQEAgc3RhdGljIHZvaWQgdmNwdV9z aW5nbGVzaG90X3RpbWVyX2ZuKHZvaWQgKmRhdGEpOwogc3RhdGljIHZvaWQgcG9sbF90aW1lcl9m bih2b2lkICpkYXRhKTsKIAogLyogVGhpcyBpcyBnbG9iYWwgZm9yIG5vdyBzbyB0aGF0IHByaXZh dGUgaW1wbGVtZW50YXRpb25zIGNhbiByZWFjaCBpdCAqLwotREVGSU5FX1BFUl9DUFUoc3RydWN0 IHNjaGVkdWxlX2RhdGEsIHNjaGVkdWxlX2RhdGEpOwogREVGSU5FX1BFUl9DUFUoc3RydWN0IHNj aGVkdWxlciAqLCBzY2hlZHVsZXIpOwogREVGSU5FX1BFUl9DUFUoc3RydWN0IHNjaGVkX3Jlc291 cmNlICosIHNjaGVkX3Jlcyk7CiAKQEAgLTE1Nyw3ICsxNTYsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgdmNwdV91cmdlbnRfY291bnRfdXBkYXRlKHN0cnVjdCB2Y3B1ICp2KQogICAgICAgICAgICAg ICF0ZXN0X2JpdCh2LT52Y3B1X2lkLCB2LT5kb21haW4tPnBvbGxfbWFzaykgKQogICAgICAgICB7 CiAgICAgICAgICAgICB2LT5pc191cmdlbnQgPSAwOwotICAgICAgICAgICAgYXRvbWljX2RlYygm cGVyX2NwdShzY2hlZHVsZV9kYXRhLHYtPnByb2Nlc3NvcikudXJnZW50X2NvdW50KTsKKyAgICAg ICAgICAgIGF0b21pY19kZWMoJmdldF9zY2hlZF9yZXModi0+cHJvY2Vzc29yKS0+dXJnZW50X2Nv dW50KTsKICAgICAgICAgfQogICAgIH0KICAgICBlbHNlCkBAIC0xNjYsNyArMTY1LDcgQEAgc3Rh dGljIGlubGluZSB2b2lkIHZjcHVfdXJnZW50X2NvdW50X3VwZGF0ZShzdHJ1Y3QgdmNwdSAqdikK ICAgICAgICAgICAgICB1bmxpa2VseSh0ZXN0X2JpdCh2LT52Y3B1X2lkLCB2LT5kb21haW4tPnBv bGxfbWFzaykpICkKICAgICAgICAgewogICAgICAgICAgICAgdi0+aXNfdXJnZW50ID0gMTsKLSAg ICAgICAgICAgIGF0b21pY19pbmMoJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSx2LT5wcm9jZXNzb3Ip LnVyZ2VudF9jb3VudCk7CisgICAgICAgICAgICBhdG9taWNfaW5jKCZnZXRfc2NoZWRfcmVzKHYt PnByb2Nlc3NvciktPnVyZ2VudF9jb3VudCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xNzcs NyArMTc2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHZjcHVfcnVuc3RhdGVfY2hhbmdlKAogICAg IHNfdGltZV90IGRlbHRhOwogCiAgICAgQVNTRVJUKHYtPnJ1bnN0YXRlLnN0YXRlICE9IG5ld19z dGF0ZSk7Ci0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSx2 LT5wcm9jZXNzb3IpLnNjaGVkdWxlX2xvY2spKTsKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQo Z2V0X3NjaGVkX3Jlcyh2LT5wcm9jZXNzb3IpLT5zY2hlZHVsZV9sb2NrKSk7CiAKICAgICB2Y3B1 X3VyZ2VudF9jb3VudF91cGRhdGUodik7CiAKQEAgLTMzNCw3ICszMzMsNyBAQCBpbnQgc2NoZWRf aW5pdF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgcHJvY2Vzc29yKQogICAgIC8q IElkbGUgVkNQVXMgYXJlIHNjaGVkdWxlZCBpbW1lZGlhdGVseSwgc28gZG9uJ3QgcHV0IHRoZW0g aW4gcnVucXVldWUuICovCiAgICAgaWYgKCBpc19pZGxlX2RvbWFpbihkKSApCiAgICAgewotICAg ICAgICBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIHYtPnByb2Nlc3NvcikuY3VyciA9IHVuaXQ7Cisg ICAgICAgIGdldF9zY2hlZF9yZXModi0+cHJvY2Vzc29yKS0+Y3VyciA9IHVuaXQ7CiAgICAgICAg IHYtPmlzX3J1bm5pbmcgPSAxOwogICAgIH0KICAgICBlbHNlCkBAIC00NTksNyArNDU4LDcgQEAg dm9pZCBzY2hlZF9kZXN0cm95X3ZjcHUoc3RydWN0IHZjcHUgKnYpCiAgICAga2lsbF90aW1lcigm di0+c2luZ2xlc2hvdF90aW1lcik7CiAgICAga2lsbF90aW1lcigmdi0+cG9sbF90aW1lcik7CiAg ICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9ib29sKHYtPmlzX3VyZ2VudCkgKQotICAgICAgICBhdG9t aWNfZGVjKCZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIHYtPnByb2Nlc3NvcikudXJnZW50X2NvdW50 KTsKKyAgICAgICAgYXRvbWljX2RlYygmZ2V0X3NjaGVkX3Jlcyh2LT5wcm9jZXNzb3IpLT51cmdl bnRfY291bnQpOwogICAgIHNjaGVkX3JlbW92ZV91bml0KHZjcHVfc2NoZWR1bGVyKHYpLCB1bml0 KTsKICAgICBzY2hlZF9mcmVlX3ZkYXRhKHZjcHVfc2NoZWR1bGVyKHYpLCB1bml0LT5wcml2KTsK ICAgICBzY2hlZF9mcmVlX3VuaXQodW5pdCk7CkBAIC01MDYsNyArNTA1LDcgQEAgdm9pZCBzY2hl ZF9kZXN0cm95X2RvbWFpbihzdHJ1Y3QgZG9tYWluICpkKQogCiB2b2lkIHZjcHVfc2xlZXBfbm9z eW5jX2xvY2tlZChzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQo cGVyX2NwdShzY2hlZHVsZV9kYXRhLHYtPnByb2Nlc3Nvcikuc2NoZWR1bGVfbG9jaykpOworICAg IEFTU0VSVChzcGluX2lzX2xvY2tlZChnZXRfc2NoZWRfcmVzKHYtPnByb2Nlc3NvciktPnNjaGVk dWxlX2xvY2spKTsKIAogICAgIGlmICggbGlrZWx5KCF2Y3B1X3J1bm5hYmxlKHYpKSApCiAgICAg ewpAQCAtNjAxLDggKzYwMCw4IEBAIHN0YXRpYyB2b2lkIHZjcHVfbW92ZV9sb2NrZWQoc3RydWN0 IHZjcHUgKnYsIHVuc2lnbmVkIGludCBuZXdfY3B1KQogICAgICAqLwogICAgIGlmICggdW5saWtl bHkodi0+aXNfdXJnZW50KSAmJiAob2xkX2NwdSAhPSBuZXdfY3B1KSApCiAgICAgewotICAgICAg ICBhdG9taWNfaW5jKCZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIG5ld19jcHUpLnVyZ2VudF9jb3Vu dCk7Ci0gICAgICAgIGF0b21pY19kZWMoJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgb2xkX2NwdSku dXJnZW50X2NvdW50KTsKKyAgICAgICAgYXRvbWljX2luYygmZ2V0X3NjaGVkX3JlcyhuZXdfY3B1 KS0+dXJnZW50X2NvdW50KTsKKyAgICAgICAgYXRvbWljX2RlYygmZ2V0X3NjaGVkX3JlcyhvbGRf Y3B1KS0+dXJnZW50X2NvdW50KTsKICAgICB9CiAKICAgICAvKgpAQCAtNjY4LDIwICs2NjcsMjAg QEAgc3RhdGljIHZvaWQgdmNwdV9taWdyYXRlX2ZpbmlzaChzdHJ1Y3QgdmNwdSAqdikKICAgICAg ICAgICogYXJlIG5vdCBjb3JyZWN0IGFueSBsb25nZXIgYWZ0ZXIgZXZhbHVhdGluZyBvbGQgYW5k IG5ldyBjcHUgaG9sZGluZwogICAgICAgICAgKiB0aGUgbG9ja3MuCiAgICAgICAgICAqLwotICAg ICAgICBvbGRfbG9jayA9IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgb2xkX2NwdSkuc2NoZWR1bGVf bG9jazsKLSAgICAgICAgbmV3X2xvY2sgPSBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIG5ld19jcHUp LnNjaGVkdWxlX2xvY2s7CisgICAgICAgIG9sZF9sb2NrID0gZ2V0X3NjaGVkX3JlcyhvbGRfY3B1 KS0+c2NoZWR1bGVfbG9jazsKKyAgICAgICAgbmV3X2xvY2sgPSBnZXRfc2NoZWRfcmVzKG5ld19j cHUpLT5zY2hlZHVsZV9sb2NrOwogCiAgICAgICAgIHNjaGVkX3NwaW5fbG9ja19kb3VibGUob2xk X2xvY2ssIG5ld19sb2NrLCAmZmxhZ3MpOwogCiAgICAgICAgIG9sZF9jcHUgPSB2LT5wcm9jZXNz b3I7Ci0gICAgICAgIGlmICggb2xkX2xvY2sgPT0gcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBvbGRf Y3B1KS5zY2hlZHVsZV9sb2NrICkKKyAgICAgICAgaWYgKCBvbGRfbG9jayA9PSBnZXRfc2NoZWRf cmVzKG9sZF9jcHUpLT5zY2hlZHVsZV9sb2NrICkKICAgICAgICAgewogICAgICAgICAgICAgLyoK ICAgICAgICAgICAgICAqIElmIHdlIHNlbGVjdGVkIGEgQ1BVIG9uIHRoZSBwcmV2aW9zdSBpdGVy YXRpb24sIGNoZWNrIGlmIGl0CiAgICAgICAgICAgICAgKiByZW1haW5zIHN1aXRhYmxlIGZvciBy dW5uaW5nIHRoaXMgdkNQVS4KICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaWYgKCBwaWNr X2NhbGxlZCAmJgotICAgICAgICAgICAgICAgICAobmV3X2xvY2sgPT0gcGVyX2NwdShzY2hlZHVs ZV9kYXRhLCBuZXdfY3B1KS5zY2hlZHVsZV9sb2NrKSAmJgorICAgICAgICAgICAgICAgICAobmV3 X2xvY2sgPT0gZ2V0X3NjaGVkX3JlcyhuZXdfY3B1KS0+c2NoZWR1bGVfbG9jaykgJiYKICAgICAg ICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5jcHVfaGFyZF9hZmZpbml0 eSkgJiYKICAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5kb21h aW4tPmNwdXBvb2wtPmNwdV92YWxpZCkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjg5 LDcgKzY4OCw3IEBAIHN0YXRpYyB2b2lkIHZjcHVfbWlncmF0ZV9maW5pc2goc3RydWN0IHZjcHUg KnYpCiAgICAgICAgICAgICAvKiBTZWxlY3QgYSBuZXcgQ1BVLiAqLwogICAgICAgICAgICAgbmV3 X2NwdSA9IHNjaGVkX3BpY2tfcmVzb3VyY2UodmNwdV9zY2hlZHVsZXIodiksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5zY2hlZF91bml0KS0+cHJvY2Vzc29y OwotICAgICAgICAgICAgaWYgKCAobmV3X2xvY2sgPT0gcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBu ZXdfY3B1KS5zY2hlZHVsZV9sb2NrKSAmJgorICAgICAgICAgICAgaWYgKCAobmV3X2xvY2sgPT0g Z2V0X3NjaGVkX3JlcyhuZXdfY3B1KS0+c2NoZWR1bGVfbG9jaykgJiYKICAgICAgICAgICAgICAg ICAgY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCB2LT5kb21haW4tPmNwdXBvb2wtPmNwdV92YWxp ZCkgKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgcGlja19jYWxsZWQgPSAx OwpAQCAtMTQ3Miw3ICsxNDcxLDcgQEAgc3RhdGljIHZvaWQgc2NoZWR1bGUodm9pZCkKICAgICBz dHJ1Y3Qgc2NoZWR1bGVyICAgICAqc2NoZWQ7CiAgICAgdW5zaWduZWQgbG9uZyAgICAgICAgKnRh c2tsZXRfd29yayA9ICZ0aGlzX2NwdSh0YXNrbGV0X3dvcmtfdG9fZG8pOwogICAgIGJvb2xfdCAg ICAgICAgICAgICAgICB0YXNrbGV0X3dvcmtfc2NoZWR1bGVkID0gMDsKLSAgICBzdHJ1Y3Qgc2No ZWR1bGVfZGF0YSAqc2Q7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZDsKICAgICBzcGlu bG9ja190ICAgICAgICAgICAqbG9jazsKICAgICBzdHJ1Y3QgdGFza19zbGljZSAgICAgbmV4dF9z bGljZTsKICAgICBpbnQgY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwpAQCAtMTQ4MSw3ICsxNDgw LDcgQEAgc3RhdGljIHZvaWQgc2NoZWR1bGUodm9pZCkKIAogICAgIFNDSEVEX1NUQVRfQ1JBTkso c2NoZWRfcnVuKTsKIAotICAgIHNkID0gJnRoaXNfY3B1KHNjaGVkdWxlX2RhdGEpOworICAgIHNk ID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwogCiAgICAgLyogVXBkYXRlIHRhc2tsZXQgc2NoZWR1bGlu ZyBzdGF0dXMuICovCiAgICAgc3dpdGNoICggKnRhc2tsZXRfd29yayApCkBAIC0xNjIzLDE1ICsx NjIyLDE0IEBAIHN0YXRpYyB2b2lkIHBvbGxfdGltZXJfZm4odm9pZCAqZGF0YSkKIAogc3RhdGlj IGludCBjcHVfc2NoZWR1bGVfdXAodW5zaWduZWQgaW50IGNwdSkKIHsKLSAgICBzdHJ1Y3Qgc2No ZWR1bGVfZGF0YSAqc2QgPSAmcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpOworICAgIHN0cnVj dCBzY2hlZF9yZXNvdXJjZSAqc2Q7CiAgICAgdm9pZCAqc2NoZWRfcHJpdjsKLSAgICBzdHJ1Y3Qg c2NoZWRfcmVzb3VyY2UgKnJlczsKIAotICAgIHJlcyA9IHh6YWxsb2Moc3RydWN0IHNjaGVkX3Jl c291cmNlKTsKLSAgICBpZiAoIHJlcyA9PSBOVUxMICkKKyAgICBzZCA9IHh6YWxsb2Moc3RydWN0 IHNjaGVkX3Jlc291cmNlKTsKKyAgICBpZiAoIHNkID09IE5VTEwgKQogICAgICAgICByZXR1cm4g LUVOT01FTTsKLSAgICByZXMtPnByb2Nlc3NvciA9IGNwdTsKLSAgICBzZXRfc2NoZWRfcmVzKGNw dSwgcmVzKTsKKyAgICBzZC0+cHJvY2Vzc29yID0gY3B1OworICAgIHNldF9zY2hlZF9yZXMoY3B1 LCBzZCk7CiAKICAgICBwZXJfY3B1KHNjaGVkdWxlciwgY3B1KSA9ICZvcHM7CiAgICAgc3Bpbl9s b2NrX2luaXQoJnNkLT5fbG9jayk7CkBAIC0xNjg3LDcgKzE2ODUsNyBAQCBzdGF0aWMgaW50IGNw dV9zY2hlZHVsZV91cCh1bnNpZ25lZCBpbnQgY3B1KQogCiBzdGF0aWMgdm9pZCBjcHVfc2NoZWR1 bGVfZG93bih1bnNpZ25lZCBpbnQgY3B1KQogewotICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpz ZCA9ICZwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291 cmNlICpzZCA9IGdldF9zY2hlZF9yZXMoY3B1KTsKICAgICBzdHJ1Y3Qgc2NoZWR1bGVyICpzY2hl ZCA9IHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpOwogCiAgICAgc2NoZWRfZnJlZV9wZGF0YShzY2hl ZCwgc2QtPnNjaGVkX3ByaXYsIGNwdSk7CkBAIC0xNzA3LDcgKzE3MDUsNyBAQCBzdGF0aWMgaW50 IGNwdV9zY2hlZHVsZV9jYWxsYmFjaygKIHsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0gKHVuc2ln bmVkIGxvbmcpaGNwdTsKICAgICBzdHJ1Y3Qgc2NoZWR1bGVyICpzY2hlZCA9IHBlcl9jcHUoc2No ZWR1bGVyLCBjcHUpOwotICAgIHN0cnVjdCBzY2hlZHVsZV9kYXRhICpzZCA9ICZwZXJfY3B1KHNj aGVkdWxlX2RhdGEsIGNwdSk7CisgICAgc3RydWN0IHNjaGVkX3Jlc291cmNlICpzZCA9IGdldF9z Y2hlZF9yZXMoY3B1KTsKICAgICBpbnQgcmMgPSAwOwogCiAgICAgLyoKQEAgLTE4NjQsMTAgKzE4 NjIsMTAgQEAgdm9pZCBfX2luaXQgc2NoZWR1bGVyX2luaXQodm9pZCkKICAgICBpZGxlX2RvbWFp bi0+bWF4X3ZjcHVzID0gbnJfY3B1X2lkczsKICAgICBpZiAoIHZjcHVfY3JlYXRlKGlkbGVfZG9t YWluLCAwLCAwKSA9PSBOVUxMICkKICAgICAgICAgQlVHKCk7Ci0gICAgdGhpc19jcHUoc2NoZWR1 bGVfZGF0YSkuY3VyciA9IGlkbGVfdmNwdVswXS0+c2NoZWRfdW5pdDsKLSAgICB0aGlzX2NwdShz Y2hlZHVsZV9kYXRhKS5zY2hlZF9wcml2ID0gc2NoZWRfYWxsb2NfcGRhdGEoJm9wcywgMCk7Ci0g ICAgQlVHX09OKElTX0VSUih0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5zY2hlZF9wcml2KSk7Ci0g ICAgc2NoZWRfaW5pdF9wZGF0YSgmb3BzLCB0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS5zY2hlZF9w cml2LCAwKTsKKyAgICBnZXRfc2NoZWRfcmVzKDApLT5jdXJyID0gaWRsZV92Y3B1WzBdLT5zY2hl ZF91bml0OworICAgIGdldF9zY2hlZF9yZXMoMCktPnNjaGVkX3ByaXYgPSBzY2hlZF9hbGxvY19w ZGF0YSgmb3BzLCAwKTsKKyAgICBCVUdfT04oSVNfRVJSKGdldF9zY2hlZF9yZXMoMCktPnNjaGVk X3ByaXYpKTsKKyAgICBzY2hlZF9pbml0X3BkYXRhKCZvcHMsIGdldF9zY2hlZF9yZXMoMCktPnNj aGVkX3ByaXYsIDApOwogfQogCiAvKgpAQCAtMTg4OCw3ICsxODg2LDcgQEAgaW50IHNjaGVkdWxl X2NwdV9zd2l0Y2godW5zaWduZWQgaW50IGNwdSwgc3RydWN0IGNwdXBvb2wgKmMpCiAgICAgc3Ry dWN0IHNjaGVkdWxlciAqb2xkX29wcyA9IHBlcl9jcHUoc2NoZWR1bGVyLCBjcHUpOwogICAgIHN0 cnVjdCBzY2hlZHVsZXIgKm5ld19vcHMgPSAoYyA9PSBOVUxMKSA/ICZvcHMgOiBjLT5zY2hlZDsK ICAgICBzdHJ1Y3QgY3B1cG9vbCAqb2xkX3Bvb2wgPSBwZXJfY3B1KGNwdXBvb2wsIGNwdSk7Ci0g ICAgc3RydWN0IHNjaGVkdWxlX2RhdGEgKnNkID0gJnBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1 KTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcmVzb3VyY2UgKnNkID0gZ2V0X3NjaGVkX3JlcyhjcHUpOwog ICAgIHNwaW5sb2NrX3QgKm9sZF9sb2NrLCAqbmV3X2xvY2s7CiAKICAgICAvKgpAQCAtMjA3NCw2 ICsyMDcyLDE2IEBAIHZvaWQgd2FpdCh2b2lkKQogICAgIHNjaGVkdWxlKCk7CiB9CiAKKy8qCisg KiB2Y3B1IGlzIHVyZ2VudCBpZiB2Y3B1IGlzIHBvbGxpbmcgZXZlbnQgY2hhbm5lbAorICoKKyAq IGlmIHVyZ2VudCB2Y3B1IGV4aXN0cywgQ1BVIHNob3VsZCBub3QgZW50ZXIgZGVlcCBDIHN0YXRl CisgKi8KK2ludCBzY2hlZF9oYXNfdXJnZW50X3ZjcHUodm9pZCkKK3sKKyAgICByZXR1cm4gYXRv bWljX3JlYWQoJmdldF9zY2hlZF9yZXMoc21wX3Byb2Nlc3Nvcl9pZCgpKS0+dXJnZW50X2NvdW50 KTsKK30KKwogI2lmZGVmIENPTkZJR19DT01QQVQKICNpbmNsdWRlICJjb21wYXQvc2NoZWR1bGUu YyIKICNlbmRpZgpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jcHVpZGxlLmggYi94 ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkbGUuaAppbmRleCA0ODhmNzA4MzA1Li41ZDdkZmZkMjI4 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2NwdWlkbGUuaAorKysgYi94ZW4vaW5j bHVkZS9hc20teDg2L2NwdWlkbGUuaApAQCAtNCw3ICs0LDYgQEAKICNpbmNsdWRlIDx4ZW4vY3B1 aWRsZS5oPgogI2luY2x1ZGUgPHhlbi9ub3RpZmllci5oPgogI2luY2x1ZGUgPHhlbi9zY2hlZC5o PgotI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogCiBleHRlcm4gc3RydWN0IGFjcGlfcHJvY2Vz c29yX3Bvd2VyICpwcm9jZXNzb3JfcG93ZXJzW107CiAKQEAgLTI3LDE0ICsyNiw0IEBAIHZvaWQg dXBkYXRlX2lkbGVfc3RhdHMoc3RydWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICosCiB2b2lkIHVw ZGF0ZV9sYXN0X2N4X3N0YXQoc3RydWN0IGFjcGlfcHJvY2Vzc29yX3Bvd2VyICosCiAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGFjcGlfcHJvY2Vzc29yX2N4ICosIHVpbnQ2NF90KTsK IAotLyoKLSAqIHZjcHUgaXMgdXJnZW50IGlmIHZjcHUgaXMgcG9sbGluZyBldmVudCBjaGFubmVs Ci0gKgotICogaWYgdXJnZW50IHZjcHUgZXhpc3RzLCBDUFUgc2hvdWxkIG5vdCBlbnRlciBkZWVw IEMgc3RhdGUKLSAqLwotc3RhdGljIGlubGluZSBpbnQgc2NoZWRfaGFzX3VyZ2VudF92Y3B1KHZv aWQpCi17Ci0gICAgcmV0dXJuIGF0b21pY19yZWFkKCZ0aGlzX2NwdShzY2hlZHVsZV9kYXRhKS51 cmdlbnRfY291bnQpOwotfQotCiAjZW5kaWYgLyogX19YODZfQVNNX0NQVUlETEVfSF9fICovCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaCBiL3hlbi9pbmNsdWRlL3hlbi9z Y2hlZC1pZi5oCmluZGV4IDliNzg1NWU3NzUuLjA0NDNmZTFkN2UgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hlbi9zY2hlZC1pZi5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oCkBA IC0zMywyMiArMzMsMTggQEAgZXh0ZXJuIGludCBzY2hlZF9yYXRlbGltaXRfdXM7CiAgKiBGb3Ig Y2FjaGUgYmV0dGVybmVzcywga2VlcCB0aGUgYWN0dWFsIGxvY2sgaW4gdGhlIHNhbWUgY2FjaGUg YXJlYQogICogYXMgdGhlIHJlc3Qgb2YgdGhlIHN0cnVjdC4gIEp1c3QgaGF2ZSB0aGUgc2NoZWR1 bGVyIHBvaW50IHRvIHRoZQogICogb25lIGl0IHdhbnRzIChUaGlzIG1heSBiZSB0aGUgb25lIHJp Z2h0IGluIGZyb250IG9mIGl0KS4qLwotc3RydWN0IHNjaGVkdWxlX2RhdGEgeworc3RydWN0IHNj aGVkX3Jlc291cmNlIHsKICAgICBzcGlubG9ja190ICAgICAgICAgKnNjaGVkdWxlX2xvY2ssCiAg ICAgICAgICAgICAgICAgICAgICAgIF9sb2NrOwogICAgIHN0cnVjdCBzY2hlZF91bml0ICAqY3Vy cjsgICAgICAgICAgIC8qIGN1cnJlbnQgdGFzayAgICAgICAgICAgICAgICAgICAgKi8KICAgICB2 b2lkICAgICAgICAgICAgICAgKnNjaGVkX3ByaXY7CiAgICAgc3RydWN0IHRpbWVyICAgICAgICBz X3RpbWVyOyAgICAgICAgLyogc2NoZWR1bGluZyB0aW1lciAgICAgICAgICAgICAgICAqLwogICAg IGF0b21pY190ICAgICAgICAgICAgdXJnZW50X2NvdW50OyAgIC8qIGhvdyBtYW55IHVyZ2VudCB2 Y3B1cyAgICAgICAgICAgKi8KKyAgICB1bnNpZ25lZCBpbnQgICAgICAgIHByb2Nlc3NvcjsKIH07 CiAKLSNkZWZpbmUgY3Vycl9vbl9jcHUoYykgICAgKHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgYyku Y3VycikKLQotc3RydWN0IHNjaGVkX3Jlc291cmNlIHsKLSAgICB1bnNpZ25lZCBpbnQgcHJvY2Vz c29yOwotfTsKKyNkZWZpbmUgY3Vycl9vbl9jcHUoYykgICAgKGdldF9zY2hlZF9yZXMoYyktPmN1 cnIpCiAKLURFQ0xBUkVfUEVSX0NQVShzdHJ1Y3Qgc2NoZWR1bGVfZGF0YSwgc2NoZWR1bGVfZGF0 YSk7CiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHNjaGVkdWxlciAqLCBzY2hlZHVsZXIpOwogREVD TEFSRV9QRVJfQ1BVKHN0cnVjdCBjcHVwb29sICosIGNwdXBvb2wpOwogREVDTEFSRV9QRVJfQ1BV KHN0cnVjdCBzY2hlZF9yZXNvdXJjZSAqLCBzY2hlZF9yZXMpOwpAQCAtNzksNyArNzUsNyBAQCBz dGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmtpbmQjI19zY2hlZHVsZV9sb2NrIyNpcnEocGFyYW0g RVhUUkFfVFlQRShhcmcpKSBcCiB7IFwKICAgICBmb3IgKCA7IDsgKSBcCiAgICAgeyBcCi0gICAg ICAgIHNwaW5sb2NrX3QgKmxvY2sgPSBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2NoZWR1 bGVfbG9jazsgXAorICAgICAgICBzcGlubG9ja190ICpsb2NrID0gZ2V0X3NjaGVkX3JlcyhjcHUp LT5zY2hlZHVsZV9sb2NrOyBcCiAgICAgICAgIC8qIFwKICAgICAgICAgICogdi0+cHJvY2Vzc29y IG1heSBjaGFuZ2Ugd2hlbiBncmFiYmluZyB0aGUgbG9jazsgYnV0IFwKICAgICAgICAgICogcGVy X2NwdSh2LT5wcm9jZXNzb3IpIG1heSBhbHNvIGNoYW5nZSwgaWYgY2hhbmdpbmcgY3B1IHBvb2wg XApAQCAtODksNyArODUsNyBAQCBzdGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmtpbmQjI19zY2hl ZHVsZV9sb2NrIyNpcnEocGFyYW0gRVhUUkFfVFlQRShhcmcpKSBcCiAgICAgICAgICAqIGxvY2sg bWF5IGJlIHRoZSBzYW1lOyB0aGlzIHdpbGwgc3VjY2VlZCBpbiB0aGF0IGNhc2UuIFwKICAgICAg ICAgICovIFwKICAgICAgICAgc3Bpbl9sb2NrIyNpcnEobG9jaywgIyMgYXJnKTsgXAotICAgICAg ICBpZiAoIGxpa2VseShsb2NrID09IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVs ZV9sb2NrKSApIFwKKyAgICAgICAgaWYgKCBsaWtlbHkobG9jayA9PSBnZXRfc2NoZWRfcmVzKGNw dSktPnNjaGVkdWxlX2xvY2spICkgXAogICAgICAgICAgICAgcmV0dXJuIGxvY2s7IFwKICAgICAg ICAgc3Bpbl91bmxvY2sjI2lycShsb2NrLCAjIyBhcmcpOyBcCiAgICAgfSBcCkBAIC05OSw3ICs5 NSw3IEBAIHN0YXRpYyBpbmxpbmUgc3BpbmxvY2tfdCAqa2luZCMjX3NjaGVkdWxlX2xvY2sjI2ly cShwYXJhbSBFWFRSQV9UWVBFKGFyZykpIFwKIHN0YXRpYyBpbmxpbmUgdm9pZCBraW5kIyNfc2No ZWR1bGVfdW5sb2NrIyNpcnEoc3BpbmxvY2tfdCAqbG9jayBcCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVYVFJBX1RZUEUoYXJnKSwgcGFyYW0pIFwKIHsg XAotICAgIEFTU0VSVChsb2NrID09IHBlcl9jcHUoc2NoZWR1bGVfZGF0YSwgY3B1KS5zY2hlZHVs ZV9sb2NrKTsgXAorICAgIEFTU0VSVChsb2NrID09IGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1 bGVfbG9jayk7IFwKICAgICBzcGluX3VubG9jayMjaXJxKGxvY2ssICMjIGFyZyk7IFwKIH0KIApA QCAtMTI4LDExICsxMjQsMTEgQEAgc2NoZWRfdW5sb2NrKHZjcHUsIGNvbnN0IHN0cnVjdCB2Y3B1 ICp2LCB2LT5wcm9jZXNzb3IsIF9pcnFyZXN0b3JlLCBmbGFncykKIAogc3RhdGljIGlubGluZSBz cGlubG9ja190ICpwY3B1X3NjaGVkdWxlX3RyeWxvY2sodW5zaWduZWQgaW50IGNwdSkKIHsKLSAg ICBzcGlubG9ja190ICpsb2NrID0gcGVyX2NwdShzY2hlZHVsZV9kYXRhLCBjcHUpLnNjaGVkdWxl X2xvY2s7CisgICAgc3BpbmxvY2tfdCAqbG9jayA9IGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1 bGVfbG9jazsKIAogICAgIGlmICggIXNwaW5fdHJ5bG9jayhsb2NrKSApCiAgICAgICAgIHJldHVy biBOVUxMOwotICAgIGlmICggbG9jayA9PSBwZXJfY3B1KHNjaGVkdWxlX2RhdGEsIGNwdSkuc2No ZWR1bGVfbG9jayApCisgICAgaWYgKCBsb2NrID09IGdldF9zY2hlZF9yZXMoY3B1KS0+c2NoZWR1 bGVfbG9jayApCiAgICAgICAgIHJldHVybiBsb2NrOwogICAgIHNwaW5fdW5sb2NrKGxvY2spOwog ICAgIHJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94 ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAppbmRleCBkM2ExYTMxYzg2Li5lZTMxNmNkZGQ3IDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2No ZWQuaApAQCAtOTAwLDYgKzkwMCw3IEBAIGludCB2Y3B1X3Bpbl9vdmVycmlkZShzdHJ1Y3QgdmNw dSAqdiwgaW50IGNwdSk7CiAKIHZvaWQgdmNwdV9ydW5zdGF0ZV9nZXQoc3RydWN0IHZjcHUgKnYs IHN0cnVjdCB2Y3B1X3J1bnN0YXRlX2luZm8gKnJ1bnN0YXRlKTsKIHVpbnQ2NF90IGdldF9jcHVf aWRsZV90aW1lKHVuc2lnbmVkIGludCBjcHUpOworaW50IHNjaGVkX2hhc191cmdlbnRfdmNwdSh2 b2lkKTsKIAogLyoKICAqIFVzZWQgYnkgaWRsZSBsb29wIHRvIGRlY2lkZSB3aGV0aGVyIHRoZXJl IGlzIHdvcmsgdG8gZG86Ci0tIAoyLjE2LjQKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlz dGluZm8veGVuLWRldmVs