From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH RFC 17/49] xen/sched: move some per-vcpu items to struct sched_item Date: Fri, 29 Mar 2019 16:09:02 +0100 Message-ID: <20190329150934.17694-18-jgross@suse.com> References: <20190329150934.17694-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 1h9t8k-0003m6-Ki for xen-devel@lists.xenproject.org; Fri, 29 Mar 2019 15:09:54 +0000 In-Reply-To: <20190329150934.17694-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 , Tim Deegan , Julien Grall , Meng Xu , Jan Beulich , Dario Faggioli , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org QWZmaW5pdGllcyBhcmUgc2NoZWR1bGVyIHNwZWNpZmljIGF0dHJpYnV0ZXMsIHRoZXkgc2hvdWxk IGJlIHBlcgpzY2hlZHVsaW5nIGl0ZW0uIFNvIG1vdmUgYWxsIGFmZmluaXR5IHJlbGF0ZWQgZmll bGRzIGluIHN0cnVjdCB2Y3B1CnRvIHN0cnVjdCBzY2hlZF9pdGVtLiBXaGlsZSBhdCBpdCBzd2l0 Y2ggYWZmaW5pdHkgcmVsYXRlZCBmdW5jdGlvbnMgaW4Kc2NoZWQtaWYuaCB0byB1c2UgYSBwb2lu dGVyIHRvIHNjaGVkX2l0ZW0gaW5zdGVhZCB0byB2Y3B1IGFzIHBhcmFtZXRlci4KCnZjcHUtPmxh c3RfcnVuX3RpbWUgaXMgcHJpbWFyaWx5IHVzZWQgYnkgc2NoZWRfY3JlZGl0LCBzbyBtb3ZlIGl0 IHRvCnN0cnVjdCBzY2hlZF9pdGVtLCB0b28uCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3Nz IDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgICAgIHwg ICAxICsKIHhlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYyB8ICAgMiArCiB4ZW4vYXJjaC94 ODYvcHYvdHJhcHMuYyAgICAgICAgfCAgIDYgKystCiB4ZW4vYXJjaC94ODYvdHJhcHMuYyAgICAg ICAgICAgfCAgMTAgKystLQogeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgIHwgIDE5ICsr LS0tLS0KIHhlbi9jb21tb24vZG9tY3RsLmMgICAgICAgICAgICB8ICAxMyArKystLQogeGVuL2Nv bW1vbi9rZXloYW5kbGVyLmMgICAgICAgIHwgICA1ICstCiB4ZW4vY29tbW9uL3NjaGVkX2NyZWRp dC5jICAgICAgfCAgMjAgKysrKy0tLS0KIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0Mi5jICAgICB8 ICA0MiArKysrKysrKy0tLS0tLS0tCiB4ZW4vY29tbW9uL3NjaGVkX251bGwuYyAgICAgICAgfCAg MTYgKysrLS0tCiB4ZW4vY29tbW9uL3NjaGVkX3J0LmMgICAgICAgICAgfCAgIDkgKystLQogeGVu L2NvbW1vbi9zY2hlZHVsZS5jICAgICAgICAgIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL3dhaXQuYyAgICAgICAgICAgICAgfCAgIDUg Ky0KIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oICAgICB8ICAzMyArKysrKysrKysrLS0tCiB4 ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgfCAgMjAgKy0tLS0tLS0KIDE1IGZpbGVzIGNo YW5nZWQsIDE2OCBpbnNlcnRpb25zKCspLCAxNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDhkNTc5 ZTJjZjkuLjVkOGYzMjU1Y2IgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW4uYworKysg Yi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlIDx4ZW4v bGliLmg+CiAjaW5jbHVkZSA8eGVuL2Vycm5vLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+Cisj aW5jbHVkZSA8eGVuL3NjaGVkLWlmLmg+CiAjaW5jbHVkZSA8eGVuL2RvbWFpbi5oPgogI2luY2x1 ZGUgPHhlbi9zbXAuaD4KICNpbmNsdWRlIDx4ZW4vZGVsYXkuaD4KZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9wdi9lbXVsLXByaXYtb3AuYyBiL3hlbi9hcmNoL3g4Ni9wdi9lbXVsLXByaXYtb3Au YwppbmRleCAzNzQ2ZTJhZDU0Li5mN2Q5OGMyOGYxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv cHYvZW11bC1wcml2LW9wLmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2VtdWwtcHJpdi1vcC5jCkBA IC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+CiAjaW5jbHVkZSA8eGVuL2d1 ZXN0X2FjY2Vzcy5oPgogI2luY2x1ZGUgPHhlbi9pb2NhcC5oPgorI2luY2x1ZGUgPHhlbi9zY2hl ZC5oPgorI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogI2luY2x1ZGUgPHhlbi9zcGlubG9jay5o PgogI2luY2x1ZGUgPHhlbi90cmFjZS5oPgogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYv dHJhcHMuYyBiL3hlbi9hcmNoL3g4Ni9wdi90cmFwcy5jCmluZGV4IDE3NDA3ODRmZjIuLmY1ODZk NDg2ZmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi90cmFwcy5jCisrKyBiL3hlbi9hcmNo L3g4Ni9wdi90cmFwcy5jCkBAIC0yMiw2ICsyMiw4IEBACiAjaW5jbHVkZSA8eGVuL2V2ZW50Lmg+ CiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNpbmNs dWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4ZW4vc2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4 ZW4vdHJhY2UuaD4KICNpbmNsdWRlIDx4ZW4vc29mdGlycS5oPgogCkBAIC0xNTUsOCArMTU3LDgg QEAgc3RhdGljIHZvaWQgbm1pX21jZV9zb2Z0aXJxKHZvaWQpCiAgICAgICogU2V0IHRoZSB0bXAg dmFsdWUgdW5jb25kaXRpb25hbGx5LCBzbyB0aGF0IHRoZSBjaGVjayBpbiB0aGUgaXJldAogICAg ICAqIGh5cGVyY2FsbCB3b3Jrcy4KICAgICAgKi8KLSAgICBjcHVtYXNrX2NvcHkoc3QtPnZjcHUt PmNwdV9oYXJkX2FmZmluaXR5X3RtcCwKLSAgICAgICAgICAgICAgICAgc3QtPnZjcHUtPmNwdV9o YXJkX2FmZmluaXR5KTsKKyAgICBjcHVtYXNrX2NvcHkoc3QtPnZjcHUtPnNjaGVkX2l0ZW0tPmNw dV9oYXJkX2FmZmluaXR5X3RtcCwKKyAgICAgICAgICAgICAgICAgc3QtPnZjcHUtPnNjaGVkX2l0 ZW0tPmNwdV9oYXJkX2FmZmluaXR5KTsKIAogICAgIGlmICggKGNwdSAhPSBzdC0+cHJvY2Vzc29y KSB8fAogICAgICAgICAgKHN0LT5wcm9jZXNzb3IgIT0gc3QtPnZjcHUtPnByb2Nlc3NvcikgKQpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RyYXBzLmMgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpp bmRleCAwNWRkYzM5YmZlLi40ODFkMGIxYzM3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvdHJh cHMuYworKysgYi94ZW4vYXJjaC94ODYvdHJhcHMuYwpAQCAtMjYsNiArMjYsNyBAQAogCiAjaW5j bHVkZSA8eGVuL2luaXQuaD4KICNpbmNsdWRlIDx4ZW4vc2NoZWQuaD4KKyNpbmNsdWRlIDx4ZW4v c2NoZWQtaWYuaD4KICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL2Vyci5oPgog I2luY2x1ZGUgPHhlbi9lcnJuby5oPgpAQCAtMTU5NCwxNiArMTU5NSwxNyBAQCBzdGF0aWMgdm9p ZCBwY2lfc2Vycl9zb2Z0aXJxKHZvaWQpCiB2b2lkIGFzeW5jX2V4Y2VwdGlvbl9jbGVhbnVwKHN0 cnVjdCB2Y3B1ICpjdXJyKQogewogICAgIGludCB0cmFwOworICAgIHN0cnVjdCBzY2hlZF9pdGVt ICppdGVtID0gY3Vyci0+c2NoZWRfaXRlbTsKIAogICAgIGlmICggIWN1cnItPmFzeW5jX2V4Y2Vw dGlvbl9tYXNrICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLyogUmVzdG9yZSBhZmZpbml0eS4g ICovCi0gICAgaWYgKCAhY3B1bWFza19lbXB0eShjdXJyLT5jcHVfaGFyZF9hZmZpbml0eV90bXAp ICYmCi0gICAgICAgICAhY3B1bWFza19lcXVhbChjdXJyLT5jcHVfaGFyZF9hZmZpbml0eV90bXAs IGN1cnItPmNwdV9oYXJkX2FmZmluaXR5KSApCisgICAgaWYgKCAhY3B1bWFza19lbXB0eShpdGVt LT5jcHVfaGFyZF9hZmZpbml0eV90bXApICYmCisgICAgICAgICAhY3B1bWFza19lcXVhbChpdGVt LT5jcHVfaGFyZF9hZmZpbml0eV90bXAsIGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5KSApCiAgICAg ewotICAgICAgICB2Y3B1X3NldF9oYXJkX2FmZmluaXR5KGN1cnIsIGN1cnItPmNwdV9oYXJkX2Fm ZmluaXR5X3RtcCk7Ci0gICAgICAgIGNwdW1hc2tfY2xlYXIoY3Vyci0+Y3B1X2hhcmRfYWZmaW5p dHlfdG1wKTsKKyAgICAgICAgdmNwdV9zZXRfaGFyZF9hZmZpbml0eShjdXJyLCBpdGVtLT5jcHVf aGFyZF9hZmZpbml0eV90bXApOworICAgICAgICBjcHVtYXNrX2NsZWFyKGl0ZW0tPmNwdV9oYXJk X2FmZmluaXR5X3RtcCk7CiAgICAgfQogCiAgICAgaWYgKCAhKGN1cnItPmFzeW5jX2V4Y2VwdGlv bl9tYXNrICYgKGN1cnItPmFzeW5jX2V4Y2VwdGlvbl9tYXNrIC0gMSkpICkKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2RvbWFpbi5jCmluZGV4IDNiMThmMTFm MTIuLjIwNDVlNzYyYWMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tYWluLmMKKysrIGIveGVu L2NvbW1vbi9kb21haW4uYwpAQCAtMTI2LDExICsxMjYsNiBAQCBzdGF0aWMgdm9pZCB2Y3B1X2lu Zm9fcmVzZXQoc3RydWN0IHZjcHUgKnYpCiAKIHN0YXRpYyB2b2lkIHZjcHVfZGVzdHJveShzdHJ1 Y3QgdmNwdSAqdikKIHsKLSAgICBmcmVlX2NwdW1hc2tfdmFyKHYtPmNwdV9oYXJkX2FmZmluaXR5 KTsKLSAgICBmcmVlX2NwdW1hc2tfdmFyKHYtPmNwdV9oYXJkX2FmZmluaXR5X3RtcCk7Ci0gICAg ZnJlZV9jcHVtYXNrX3Zhcih2LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCk7Ci0gICAgZnJlZV9j cHVtYXNrX3Zhcih2LT5jcHVfc29mdF9hZmZpbml0eSk7Ci0KICAgICBmcmVlX3ZjcHVfc3RydWN0 KHYpOwogfQogCkBAIC0xNTQsMTIgKzE0OSw2IEBAIHN0cnVjdCB2Y3B1ICp2Y3B1X2NyZWF0ZSgK IAogICAgIGdyYW50X3RhYmxlX2luaXRfdmNwdSh2KTsKIAotICAgIGlmICggIXphbGxvY19jcHVt YXNrX3Zhcigmdi0+Y3B1X2hhcmRfYWZmaW5pdHkpIHx8Ci0gICAgICAgICAhemFsbG9jX2NwdW1h c2tfdmFyKCZ2LT5jcHVfaGFyZF9hZmZpbml0eV90bXApIHx8Ci0gICAgICAgICAhemFsbG9jX2Nw dW1hc2tfdmFyKCZ2LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCkgfHwKLSAgICAgICAgICF6YWxs b2NfY3B1bWFza192YXIoJnYtPmNwdV9zb2Z0X2FmZmluaXR5KSApCi0gICAgICAgIGdvdG8gZmFp bDsKLQogICAgIGlmICggaXNfaWRsZV9kb21haW4oZCkgKQogICAgIHsKICAgICAgICAgdi0+cnVu c3RhdGUuc3RhdGUgPSBSVU5TVEFURV9ydW5uaW5nOwpAQCAtMTk5LDcgKzE4OCw2IEBAIHN0cnVj dCB2Y3B1ICp2Y3B1X2NyZWF0ZSgKICAgICBzY2hlZF9kZXN0cm95X3ZjcHUodik7CiAgZmFpbF93 cToKICAgICBkZXN0cm95X3dhaXRxdWV1ZV92Y3B1KHYpOwotIGZhaWw6CiAgICAgdmNwdV9kZXN0 cm95KHYpOwogCiAgICAgcmV0dXJuIE5VTEw7CkBAIC01NTksOSArNTQ3LDEwIEBAIHZvaWQgZG9t YWluX3VwZGF0ZV9ub2RlX2FmZmluaXR5KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgICAqLwog ICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNw dW1hc2tfb3IoZG9tX2NwdW1hc2ssIGRvbV9jcHVtYXNrLCB2LT5jcHVfaGFyZF9hZmZpbml0eSk7 CisgICAgICAgICAgICBjcHVtYXNrX29yKGRvbV9jcHVtYXNrLCBkb21fY3B1bWFzaywKKyAgICAg ICAgICAgICAgICAgICAgICAgdi0+c2NoZWRfaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogICAg ICAgICAgICAgY3B1bWFza19vcihkb21fY3B1bWFza19zb2Z0LCBkb21fY3B1bWFza19zb2Z0LAot ICAgICAgICAgICAgICAgICAgICAgICB2LT5jcHVfc29mdF9hZmZpbml0eSk7CisgICAgICAgICAg ICAgICAgICAgICAgIHYtPnNjaGVkX2l0ZW0tPmNwdV9zb2Z0X2FmZmluaXR5KTsKICAgICAgICAg fQogICAgICAgICAvKiBGaWx0ZXIgb3V0IG5vbi1vbmxpbmUgY3B1cyAqLwogICAgICAgICBjcHVt YXNrX2FuZChkb21fY3B1bWFzaywgZG9tX2NwdW1hc2ssIG9ubGluZSk7CkBAIC0xMjMwLDcgKzEy MTksNyBAQCBpbnQgdmNwdV9yZXNldChzdHJ1Y3QgdmNwdSAqdikKICAgICB2LT5hc3luY19leGNl cHRpb25fbWFzayA9IDA7CiAgICAgbWVtc2V0KHYtPmFzeW5jX2V4Y2VwdGlvbl9zdGF0ZSwgMCwg c2l6ZW9mKHYtPmFzeW5jX2V4Y2VwdGlvbl9zdGF0ZSkpOwogI2VuZGlmCi0gICAgY3B1bWFza19j bGVhcih2LT5jcHVfaGFyZF9hZmZpbml0eV90bXApOworICAgIGNwdW1hc2tfY2xlYXIodi0+c2No ZWRfaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHlfdG1wKTsKICAgICBjbGVhcl9iaXQoX1ZQRl9ibG9j a2VkLCAmdi0+cGF1c2VfZmxhZ3MpOwogICAgIGNsZWFyX2JpdChfVlBGX2luX3Jlc2V0LCAmdi0+ cGF1c2VfZmxhZ3MpOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2RvbWN0bC5jIGIveGVuL2Nv bW1vbi9kb21jdGwuYwppbmRleCBiYWRlOWE2M2IxLi44NDY0NzEzZDJiIDEwMDY0NAotLS0gYS94 ZW4vY29tbW9uL2RvbWN0bC5jCisrKyBiL3hlbi9jb21tb24vZG9tY3RsLmMKQEAgLTYxNCw2ICs2 MTQsNyBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9kb21jdGxf dCkgdV9kb21jdGwpCiAgICAgY2FzZSBYRU5fRE9NQ1RMX2dldHZjcHVhZmZpbml0eToKICAgICB7 CiAgICAgICAgIHN0cnVjdCB2Y3B1ICp2OworICAgICAgICBzdHJ1Y3Qgc2NoZWRfaXRlbSAqaXRl bTsKICAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfdmNwdWFmZmluaXR5ICp2Y3B1YWZmID0gJm9w LT51LnZjcHVhZmZpbml0eTsKIAogICAgICAgICByZXQgPSAtRUlOVkFMOwpAQCAtNjI0LDYgKzYy NSw3IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90 KSB1X2RvbWN0bCkKICAgICAgICAgaWYgKCAodiA9IGQtPnZjcHVbdmNwdWFmZi0+dmNwdV0pID09 IE5VTEwgKQogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgaXRlbSA9IHYtPnNjaGVkX2l0 ZW07CiAgICAgICAgIHJldCA9IC1FSU5WQUw7CiAgICAgICAgIGlmICggdmNwdWFmZmluaXR5X3Bh cmFtc19pbnZhbGlkKHZjcHVhZmYpICkKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjQzLDcgKzY0 NSw3IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90 KSB1X2RvbWN0bCkKICAgICAgICAgICAgICAgICByZXQgPSAtRU5PTUVNOwogICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY3B1bWFza19jb3B5KG9sZF9h ZmZpbml0eSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICAgICAgY3B1bWFza19jb3B5 KG9sZF9hZmZpbml0eSwgaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogCiAgICAgICAgICAgICBp ZiAoICFhbGxvY19jcHVtYXNrX3ZhcigmbmV3X2FmZmluaXR5KSApCiAgICAgICAgICAgICB7CkBA IC02NzYsNyArNjc4LDcgQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 ZW5fZG9tY3RsX3QpIHVfZG9tY3RsKQogICAgICAgICAgICAgICAgICAqIEZvciBoYXJkIGFmZmlu aXR5LCB3aGF0IHdlIHJldHVybiBpcyB0aGUgaW50ZXJzZWN0aW9uIG9mCiAgICAgICAgICAgICAg ICAgICogY3B1cG9vbCdzIG9ubGluZSBtYXNrIGFuZCB0aGUgbmV3IGhhcmQgYWZmaW5pdHkuCiAg ICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgY3B1bWFza19hbmQobmV3X2FmZmlu aXR5LCBvbmxpbmUsIHYtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICAgICAgICAgICAgICBjcHVt YXNrX2FuZChuZXdfYWZmaW5pdHksIG9ubGluZSwgaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHkpOwog ICAgICAgICAgICAgICAgIHJldCA9IGNwdW1hc2tfdG9feGVuY3RsX2JpdG1hcCgmdmNwdWFmZi0+ Y3B1bWFwX2hhcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5ld19hZmZpbml0eSk7CiAgICAgICAgICAgICB9CkBAIC03MDUsNyArNzA3LDggQEAgbG9u ZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3RsX3QpIHVfZG9tY3Rs KQogICAgICAgICAgICAgICAgICAqIGhhcmQgYWZmaW5pdHkuCiAgICAgICAgICAgICAgICAgICov CiAgICAgICAgICAgICAgICAgY3B1bWFza19hbmQobmV3X2FmZmluaXR5LCBuZXdfYWZmaW5pdHks IG9ubGluZSk7Ci0gICAgICAgICAgICAgICAgY3B1bWFza19hbmQobmV3X2FmZmluaXR5LCBuZXdf YWZmaW5pdHksIHYtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICAgICAgICAgICAgICBjcHVtYXNr X2FuZChuZXdfYWZmaW5pdHksIG5ld19hZmZpbml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAgICAgICAgICAgICAgcmV0ID0gY3B1 bWFza190b194ZW5jdGxfYml0bWFwKCZ2Y3B1YWZmLT5jcHVtYXBfc29mdCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2FmZmluaXR5KTsKICAgICAg ICAgICAgIH0KQEAgLTcxOCwxMCArNzIxLDEwIEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9I QU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAgewogICAgICAgICAg ICAgaWYgKCB2Y3B1YWZmLT5mbGFncyAmIFhFTl9WQ1BVQUZGSU5JVFlfSEFSRCApCiAgICAgICAg ICAgICAgICAgcmV0ID0gY3B1bWFza190b194ZW5jdGxfYml0bWFwKCZ2Y3B1YWZmLT5jcHVtYXBf aGFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi0+ Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAgICAgICAgICBpZiAoIHZj cHVhZmYtPmZsYWdzICYgWEVOX1ZDUFVBRkZJTklUWV9TT0ZUICkKICAgICAgICAgICAgICAgICBy ZXQgPSBjcHVtYXNrX3RvX3hlbmN0bF9iaXRtYXAoJnZjcHVhZmYtPmNwdW1hcF9zb2Z0LAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5jcHVfc29mdF9h ZmZpbml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGl0ZW0tPmNwdV9zb2Z0X2FmZmluaXR5KTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAg ICB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2tleWhhbmRsZXIuYyBiL3hlbi9jb21tb24va2V5 aGFuZGxlci5jCmluZGV4IDRmNGE2NjBiMGMuLmY1MGRmNTg0MWQgMTAwNjQ0Ci0tLSBhL3hlbi9j b21tb24va2V5aGFuZGxlci5jCisrKyBiL3hlbi9jb21tb24va2V5aGFuZGxlci5jCkBAIC05LDYg KzksNyBAQAogI2luY2x1ZGUgPHhlbi9jb25zb2xlLmg+CiAjaW5jbHVkZSA8eGVuL3NlcmlhbC5o PgogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgorI2luY2x1ZGUgPHhlbi9zY2hlZC1pZi5oPgogI2lu Y2x1ZGUgPHhlbi90YXNrbGV0Lmg+CiAjaW5jbHVkZSA8eGVuL2RvbWFpbi5oPgogI2luY2x1ZGUg PHhlbi9yYW5nZXNldC5oPgpAQCAtMzEyLDggKzMxMyw4IEBAIHN0YXRpYyB2b2lkIGR1bXBfZG9t YWlucyh1bnNpZ25lZCBjaGFyIGtleSkKICAgICAgICAgICAgICAgICBwcmludGsoImRpcnR5X2Nw dT0ldSIsIHYtPmRpcnR5X2NwdSk7CiAgICAgICAgICAgICBwcmludGsoIlxuIik7CiAgICAgICAg ICAgICBwcmludGsoIiAgICBjcHVfaGFyZF9hZmZpbml0eT17JSpwYmx9IGNwdV9zb2Z0X2FmZmlu aXR5PXslKnBibH1cbiIsCi0gICAgICAgICAgICAgICAgICAgbnJfY3B1X2lkcywgY3B1bWFza19i aXRzKHYtPmNwdV9oYXJkX2FmZmluaXR5KSwKLSAgICAgICAgICAgICAgICAgICBucl9jcHVfaWRz LCBjcHVtYXNrX2JpdHModi0+Y3B1X3NvZnRfYWZmaW5pdHkpKTsKKyAgICAgICAgICAgICAgICAg ICBucl9jcHVfaWRzLCBjcHVtYXNrX2JpdHModi0+c2NoZWRfaXRlbS0+Y3B1X2hhcmRfYWZmaW5p dHkpLAorICAgICAgICAgICAgICAgICAgIG5yX2NwdV9pZHMsIGNwdW1hc2tfYml0cyh2LT5zY2hl ZF9pdGVtLT5jcHVfc29mdF9hZmZpbml0eSkpOwogICAgICAgICAgICAgcHJpbnRrKCIgICAgcGF1 c2VfY291bnQ9JWQgcGF1c2VfZmxhZ3M9JWx4XG4iLAogICAgICAgICAgICAgICAgICAgIGF0b21p Y19yZWFkKCZ2LT5wYXVzZV9jb3VudCksIHYtPnBhdXNlX2ZsYWdzKTsKICAgICAgICAgICAgIGFy Y2hfZHVtcF92Y3B1X2luZm8odik7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRp dC5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYwppbmRleCBkZTRmYWNlMmJjLi45ZTdjODQ5 Yjk0IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jCisrKyBiL3hlbi9jb21t b24vc2NoZWRfY3JlZGl0LmMKQEAgLTM1MCw2ICszNTAsNyBAQCBERUZJTkVfUEVSX0NQVSh1bnNp Z25lZCBpbnQsIGxhc3RfdGlja2xlX2NwdSk7CiBzdGF0aWMgaW5saW5lIHZvaWQgX19ydW5xX3Rp Y2tsZShzdHJ1Y3QgY3NjaGVkX2l0ZW0gKm5ldykKIHsKICAgICB1bnNpZ25lZCBpbnQgY3B1ID0g bmV3LT52Y3B1LT5wcm9jZXNzb3I7CisgICAgc3RydWN0IHNjaGVkX2l0ZW0gKml0ZW0gPSBuZXct PnZjcHUtPnNjaGVkX2l0ZW07CiAgICAgc3RydWN0IGNzY2hlZF9pdGVtICogY29uc3QgY3VyID0g Q1NDSEVEX0lURU0oY3Vycl9vbl9jcHUoY3B1KSk7CiAgICAgc3RydWN0IGNzY2hlZF9wcml2YXRl ICpwcnYgPSBDU0NIRURfUFJJVihwZXJfY3B1KHNjaGVkdWxlciwgY3B1KSk7CiAgICAgY3B1bWFz a190IG1hc2ssIGlkbGVfbWFzaywgKm9ubGluZTsKQEAgLTM3NSw3ICszNzYsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgX19ydW5xX3RpY2tsZShzdHJ1Y3QgY3NjaGVkX2l0ZW0gKm5ldykKICAgICBp ZiAoIHVubGlrZWx5KHRlc3RfYml0KENTQ0hFRF9GTEFHX1ZDUFVfUElOTkVELCAmbmV3LT5mbGFn cykgJiYKICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfdGVzdF9jcHUoY3B1LCAmaWRsZV9tYXNr KSkgKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGNwdW1hc2tfY3ljbGUoY3B1LCBuZXctPnZjcHUt PmNwdV9oYXJkX2FmZmluaXR5KSA9PSBjcHUpOworICAgICAgICBBU1NFUlQoY3B1bWFza19jeWNs ZShjcHUsIGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5KSA9PSBjcHUpOwogICAgICAgICBTQ0hFRF9T VEFUX0NSQU5LKHRpY2tsZWRfaWRsZV9jcHVfZXhjbCk7CiAgICAgICAgIF9fY3B1bWFza19zZXRf Y3B1KGNwdSwgJm1hc2spOwogICAgICAgICBnb3RvIHRpY2tsZTsKQEAgLTQxMCwxMSArNDExLDEx IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3J1bnFfdGlja2xlKHN0cnVjdCBjc2NoZWRfaXRlbSAq bmV3KQogICAgICAgICAgICAgaW50IG5ld19pZGxlcnNfZW1wdHk7CiAKICAgICAgICAgICAgIGlm ICggYmFsYW5jZV9zdGVwID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWQotICAgICAgICAgICAgICAg ICAmJiAhaGFzX3NvZnRfYWZmaW5pdHkobmV3LT52Y3B1KSApCisgICAgICAgICAgICAgICAgICYm ICFoYXNfc29mdF9hZmZpbml0eShpdGVtKSApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAK ICAgICAgICAgICAgIC8qIEFyZSB0aGVyZSBpZGxlcnMgc3VpdGFibGUgZm9yIG5ldyAoZm9yIHRo aXMgYmFsYW5jZSBzdGVwKT8gKi8KLSAgICAgICAgICAgIGFmZmluaXR5X2JhbGFuY2VfY3B1bWFz ayhuZXctPnZjcHUsIGJhbGFuY2Vfc3RlcCwKKyAgICAgICAgICAgIGFmZmluaXR5X2JhbGFuY2Vf Y3B1bWFzayhpdGVtLCBiYWxhbmNlX3N0ZXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKTsKICAgICAgICAgICAgIGNwdW1hc2tf YW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNw dW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgJmlkbGVfbWFzayk7CkBAIC00NDMsOCArNDQ0LDcgQEAg c3RhdGljIGlubGluZSB2b2lkIF9fcnVucV90aWNrbGUoc3RydWN0IGNzY2hlZF9pdGVtICpuZXcp CiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgIGlmICggbmV3X2lkbGVyc19lbXB0eSAmJiBu ZXctPnByaSA+IGN1ci0+cHJpICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAo IGNwdW1hc2tfaW50ZXJzZWN0cyhjdXItPnZjcHUtPmNwdV9oYXJkX2FmZmluaXR5LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpZGxlX21hc2spICkKKyAgICAgICAg ICAgICAgICBpZiAoIGNwdW1hc2tfaW50ZXJzZWN0cyhpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSwg JmlkbGVfbWFzaykgKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgU0NI RURfVkNQVV9TVEFUX0NSQU5LKGN1ciwga2lja2VkX2F3YXkpOwogICAgICAgICAgICAgICAgICAg ICBTQ0hFRF9WQ1BVX1NUQVRfQ1JBTksoY3VyLCBtaWdyYXRlX3IpOwpAQCAtNzA0LDcgKzcwNCw3 IEBAIHN0YXRpYyBpbmxpbmUgYm9vbAogX19jc2NoZWRfdmNwdV9pc19jYWNoZV9ob3QoY29uc3Qg c3RydWN0IGNzY2hlZF9wcml2YXRlICpwcnYsIHN0cnVjdCB2Y3B1ICp2KQogewogICAgIGJvb2wg aG90ID0gcHJ2LT52Y3B1X21pZ3JfZGVsYXkgJiYKLSAgICAgICAgICAgICAgIChOT1coKSAtIHYt Pmxhc3RfcnVuX3RpbWUpIDwgcHJ2LT52Y3B1X21pZ3JfZGVsYXk7CisgICAgICAgICAgICAgICAo Tk9XKCkgLSB2LT5zY2hlZF9pdGVtLT5sYXN0X3J1bl90aW1lKSA8IHBydi0+dmNwdV9taWdyX2Rl bGF5OwogCiAgICAgaWYgKCBob3QgKQogICAgICAgICBTQ0hFRF9TVEFUX0NSQU5LKHZjcHVfaG90 KTsKQEAgLTc0Miw3ICs3NDIsNyBAQCBfY3NjaGVkX2NwdV9waWNrKGNvbnN0IHN0cnVjdCBzY2hl ZHVsZXIgKm9wcywgc3RydWN0IHZjcHUgKnZjLCBib29sX3QgY29tbWl0KQogCiAgICAgZm9yX2Vh Y2hfYWZmaW5pdHlfYmFsYW5jZV9zdGVwKCBiYWxhbmNlX3N0ZXAgKQogICAgIHsKLSAgICAgICAg YWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHZjLCBiYWxhbmNlX3N0ZXAsIGNwdXMpOworICAgICAg ICBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2sodmMtPnNjaGVkX2l0ZW0sIGJhbGFuY2Vfc3RlcCwg Y3B1cyk7CiAgICAgICAgIGNwdW1hc2tfYW5kKGNwdXMsIG9ubGluZSwgY3B1cyk7CiAgICAgICAg IC8qCiAgICAgICAgICAqIFdlIHdhbnQgdG8gcGljayB1cCBhIHBjcHUgYW1vbmcgdGhlIG9uZXMg dGhhdCBhcmUgb25saW5lIGFuZApAQCAtNzYxLDcgKzc2MSw3IEBAIF9jc2NoZWRfY3B1X3BpY2so Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgdmNwdSAqdmMsIGJvb2xfdCBjb21t aXQpCiAgICAgICAgICAqIGJhbGFuY2luZyBzdGVwIGFsbCB0b2dldGhlci4KICAgICAgICAgICov CiAgICAgICAgIGlmICggYmFsYW5jZV9zdGVwID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWSAmJgot ICAgICAgICAgICAgICghaGFzX3NvZnRfYWZmaW5pdHkodmMpIHx8IGNwdW1hc2tfZW1wdHkoY3B1 cykpICkKKyAgICAgICAgICAgICAoIWhhc19zb2Z0X2FmZmluaXR5KHZjLT5zY2hlZF9pdGVtKSB8 fCBjcHVtYXNrX2VtcHR5KGNwdXMpKSApCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg ICAvKiBJZiBwcmVzZW50LCBwcmVmZXIgdmMncyBjdXJyZW50IHByb2Nlc3NvciAqLwpAQCAtMTY2 MCwxMCArMTY2MCwxMCBAQCBjc2NoZWRfcnVucV9zdGVhbChpbnQgcGVlcl9jcHUsIGludCBjcHUs IGludCBwcmksIGludCBiYWxhbmNlX3N0ZXApCiAgICAgICAgICAqIG9yIGNvdW50ZXIuCiAgICAg ICAgICAqLwogICAgICAgICBpZiAoIHZjLT5pc19ydW5uaW5nIHx8IChiYWxhbmNlX3N0ZXAgPT0g QkFMQU5DRV9TT0ZUX0FGRklOSVRZICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICFoYXNfc29mdF9hZmZpbml0eSh2YykpICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIWhhc19zb2Z0X2FmZmluaXR5KHZjLT5zY2hlZF9pdGVtKSkgKQogICAgICAgICAgICAgY29u dGludWU7CiAKLSAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHZjLCBiYWxhbmNlX3N0 ZXAsIGNwdW1hc2tfc2NyYXRjaCk7CisgICAgICAgIGFmZmluaXR5X2JhbGFuY2VfY3B1bWFzayh2 Yy0+c2NoZWRfaXRlbSwgYmFsYW5jZV9zdGVwLCBjcHVtYXNrX3NjcmF0Y2gpOwogICAgICAgICBp ZiAoIF9fY3NjaGVkX3ZjcHVfaXNfbWlncmF0ZWFibGUocHJ2LCB2YywgY3B1LCBjcHVtYXNrX3Nj cmF0Y2gpICkKICAgICAgICAgewogICAgICAgICAgICAgLyogV2UgZ290IGEgY2FuZGlkYXRlLiBH cmFiIGl0ISAqLwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4v Y29tbW9uL3NjaGVkX2NyZWRpdDIuYwppbmRleCA2MTA2MjkzYjNmLi41YzE3OTRkYjYxIDEwMDY0 NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYworKysgYi94ZW4vY29tbW9uL3NjaGVk X2NyZWRpdDIuYwpAQCAtNjk5LDEwICs2OTksMTAgQEAgc3RhdGljIGludCBnZXRfZmFsbGJhY2tf Y3B1KHN0cnVjdCBjc2NoZWQyX2l0ZW0gKnN2YykKICAgICB7CiAgICAgICAgIGludCBjcHUgPSB2 LT5wcm9jZXNzb3I7CiAKLSAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NPRlRfQUZGSU5JVFkg JiYgIWhhc19zb2Z0X2FmZmluaXR5KHYpICkKKyAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NP RlRfQUZGSU5JVFkgJiYgIWhhc19zb2Z0X2FmZmluaXR5KHYtPnNjaGVkX2l0ZW0pICkKICAgICAg ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGFmZmluaXR5X2JhbGFuY2VfY3B1bWFzayh2LCBi cywgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKTsKKyAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9j cHVtYXNrKHYtPnNjaGVkX2l0ZW0sIGJzLCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpOwogICAg ICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIGNwdW1hc2tfc2NyYXRj aF9jcHUoY3B1KSwKICAgICAgICAgICAgICAgICAgICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayh2 LT5kb21haW4pKTsKIApAQCAtMTM5MCwxMCArMTM5MCwxMCBAQCBzdGF0aWMgc190aW1lX3QgdGlj a2xlX3Njb3JlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc190aW1lX3Qgbm93LAogICAg ICAqLwogICAgIGlmICggc2NvcmUgPiAwICkKICAgICB7Ci0gICAgICAgIGlmICggY3B1bWFza190 ZXN0X2NwdShjcHUsIG5ldy0+dmNwdS0+Y3B1X3NvZnRfYWZmaW5pdHkpICkKKyAgICAgICAgaWYg KCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgbmV3LT52Y3B1LT5zY2hlZF9pdGVtLT5jcHVfc29mdF9h ZmZpbml0eSkgKQogICAgICAgICAgICAgc2NvcmUgKz0gQ1NDSEVEMl9DUkVESVRfSU5JVDsKIAot ICAgICAgICBpZiAoICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3VyLT52Y3B1LT5jcHVfc29mdF9h ZmZpbml0eSkgKQorICAgICAgICBpZiAoICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3VyLT52Y3B1 LT5zY2hlZF9pdGVtLT5jcHVfc29mdF9hZmZpbml0eSkgKQogICAgICAgICAgICAgc2NvcmUgKz0g Q1NDSEVEMl9DUkVESVRfSU5JVDsKICAgICB9CiAKQEAgLTE0MzYsNiArMTQzNiw3IEBAIHJ1bnFf dGlja2xlKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfaXRlbSAq bmV3LCBzX3RpbWVfdCBub3cpCiB7CiAgICAgaW50IGksIGlwaWQgPSAtMTsKICAgICBzX3RpbWVf dCBtYXggPSAwOworICAgIHN0cnVjdCBzY2hlZF9pdGVtICppdGVtID0gbmV3LT52Y3B1LT5zY2hl ZF9pdGVtOwogICAgIHVuc2lnbmVkIGludCBicywgY3B1ID0gbmV3LT52Y3B1LT5wcm9jZXNzb3I7 CiAgICAgc3RydWN0IGNzY2hlZDJfcnVucXVldWVfZGF0YSAqcnFkID0gYzJycWQob3BzLCBjcHUp OwogICAgIGNwdW1hc2tfdCAqb25saW5lID0gY3B1cG9vbF9kb21haW5fY3B1bWFzayhuZXctPnZj cHUtPmRvbWFpbik7CkBAIC0xNDczLDcgKzE0NzQsNyBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBjc2NoZWQyX2l0ZW0gKm5ldywgc190aW1lX3Qgbm93 KQogICAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShjcHUsICZycWQtPmlkbGUpICYm CiAgICAgICAgICAgICAgICAgICAhY3B1bWFza190ZXN0X2NwdShjcHUsICZycWQtPnRpY2tsZWQp KSApCiAgICAgewotICAgICAgICBBU1NFUlQoY3B1bWFza19jeWNsZShjcHUsIG5ldy0+dmNwdS0+ Y3B1X2hhcmRfYWZmaW5pdHkpID09IGNwdSk7CisgICAgICAgIEFTU0VSVChjcHVtYXNrX2N5Y2xl KGNwdSwgaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHkpID09IGNwdSk7CiAgICAgICAgIFNDSEVEX1NU QVRfQ1JBTksodGlja2xlZF9pZGxlX2NwdV9leGNsKTsKICAgICAgICAgaXBpZCA9IGNwdTsKICAg ICAgICAgZ290byB0aWNrbGU7CkBAIC0xNDgyLDEwICsxNDgzLDEwIEBAIHJ1bnFfdGlja2xlKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfaXRlbSAqbmV3LCBzX3Rp bWVfdCBub3cpCiAgICAgZm9yX2VhY2hfYWZmaW5pdHlfYmFsYW5jZV9zdGVwKCBicyApCiAgICAg ewogICAgICAgICAvKiBKdXN0IHNraXAgZmlyc3Qgc3RlcCwgaWYgd2UgZG9uJ3QgaGF2ZSBhIHNv ZnQgYWZmaW5pdHkgKi8KLSAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NPRlRfQUZGSU5JVFkg JiYgIWhhc19zb2Z0X2FmZmluaXR5KG5ldy0+dmNwdSkgKQorICAgICAgICBpZiAoIGJzID09IEJB TEFOQ0VfU09GVF9BRkZJTklUWSAmJiAhaGFzX3NvZnRfYWZmaW5pdHkoaXRlbSkgKQogICAgICAg ICAgICAgY29udGludWU7CiAKLSAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKG5ldy0+ dmNwdSwgYnMsIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSk7CisgICAgICAgIGFmZmluaXR5X2Jh bGFuY2VfY3B1bWFzayhpdGVtLCBicywgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpKTsKIAogICAg ICAgICAvKgogICAgICAgICAgKiBGaXJzdCBvZiBhbGwsIGNvbnNpZGVyIGlkbGUgY3B1cywgY2hl Y2tpbmcgaWYgd2UgY2FuIGp1c3QKQEAgLTE1NTcsNyArMTU1OCw3IEBAIHJ1bnFfdGlja2xlKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGNzY2hlZDJfaXRlbSAqbmV3LCBzX3Rp bWVfdCBub3cpCiAgICAgICAgICAgICBpcGlkID0gY3B1OwogCiAgICAgICAgICAgICAvKiBJZiB0 aGlzIGlzIGluIG5ldydzIHNvZnQgYWZmaW5pdHksIGp1c3QgdGFrZSBpdCAqLwotICAgICAgICAg ICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgbmV3LT52Y3B1LT5jcHVfc29mdF9hZmZpbml0 eSkgKQorICAgICAgICAgICAgaWYgKCBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgaXRlbS0+Y3B1X3Nv ZnRfYWZmaW5pdHkpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBTQ0hFRF9TVEFU X0NSQU5LKHRpY2tsZWRfYnVzeV9jcHUpOwogICAgICAgICAgICAgICAgIGdvdG8gdGlja2xlOwpA QCAtMjI0Myw3ICsyMjQ0LDcgQEAgY3NjaGVkMl9yZXNfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsIHN0cnVjdCBzY2hlZF9pdGVtICppdGVtKQogICAgICAgICBnb3RvIG91dDsKICAg ICB9CiAKLSAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIHZjLT5jcHVf aGFyZF9hZmZpbml0eSwKKyAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSks IGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5LAogICAgICAgICAgICAgICAgIGNwdXBvb2xfZG9tYWlu X2NwdW1hc2sodmMtPmRvbWFpbikpOwogCiAgICAgLyoKQEAgLTIyODgsNyArMjI4OSw3IEBAIGNz Y2hlZDJfcmVzX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRf aXRlbSAqaXRlbSkKICAgICAgKgogICAgICAqIEZpbmQgYm90aCBydW5xdWV1ZXMgaW4gb25lIHBh c3MuCiAgICAgICovCi0gICAgaGFzX3NvZnQgPSBoYXNfc29mdF9hZmZpbml0eSh2Yyk7CisgICAg aGFzX3NvZnQgPSBoYXNfc29mdF9hZmZpbml0eShpdGVtKTsKICAgICBmb3JfZWFjaF9jcHUoaSwg JnBydi0+YWN0aXZlX3F1ZXVlcykKICAgICB7CiAgICAgICAgIHN0cnVjdCBjc2NoZWQyX3J1bnF1 ZXVlX2RhdGEgKnJxZDsKQEAgLTIzMzUsNyArMjMzNiw3IEBAIGNzY2hlZDJfcmVzX3BpY2soY29u c3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3Qgc2NoZWRfaXRlbSAqaXRlbSkKICAgICAg ICAgICAgIGNwdW1hc2tfdCBtYXNrOwogCiAgICAgICAgICAgICBjcHVtYXNrX2FuZCgmbWFzaywg Y3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCAmcnFkLT5hY3RpdmUpOwotICAgICAgICAgICAgaWYg KCBjcHVtYXNrX2ludGVyc2VjdHMoJm1hc2ssIHN2Yy0+dmNwdS0+Y3B1X3NvZnRfYWZmaW5pdHkp ICkKKyAgICAgICAgICAgIGlmICggY3B1bWFza19pbnRlcnNlY3RzKCZtYXNrLCBpdGVtLT5jcHVf c29mdF9hZmZpbml0eSkgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIG1pbl9zX2F2 Z2xvYWQgPSBycWRfYXZnbG9hZDsKICAgICAgICAgICAgICAgICBtaW5fc19ycWkgPSBpOwpAQCAt MjM1Nyw5ICsyMzU4LDkgQEAgY3NjaGVkMl9yZXNfcGljayhjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVy ICpvcHMsIHN0cnVjdCBzY2hlZF9pdGVtICppdGVtKQogICAgICAgICAgKiBOb3RlIHRoYXQsIHRv IG9idGFpbiB0aGUgc29mdC1hZmZpbml0eSBtYXNrLCB3ZSAianVzdCIgcHV0IHdoYXQgd2UKICAg ICAgICAgICogaGF2ZSBpbiBjcHVtYXNrX3NjcmF0Y2ggaW4gJiYgd2l0aCB2Yy0+Y3B1X3NvZnRf YWZmaW5pdHkuIFRoaXMgaXMKICAgICAgICAgICogb2sgYmVjYXVzZToKLSAgICAgICAgICogLSB3 ZSBrbm93IHRoYXQgdmMtPmNwdV9oYXJkX2FmZmluaXR5IGFuZCB2Yy0+Y3B1X3NvZnRfYWZmaW5p dHkgaGF2ZQorICAgICAgICAgKiAtIHdlIGtub3cgdGhhdCBpdGVtLT5jcHVfaGFyZF9hZmZpbml0 eSBhbmQgLT5jcHVfc29mdF9hZmZpbml0eSBoYXZlCiAgICAgICAgICAqICAgYSBub24tZW1wdHkg aW50ZXJzZWN0aW9uIChiZWNhdXNlIGhhc19zb2Z0IGlzIHRydWUpOwotICAgICAgICAgKiAtIHdl IGhhdmUgdmMtPmNwdV9oYXJkX2FmZmluaXR5ICYgY3B1cG9vbF9kb21haW5fY3B1bWFzaygpIGFs cmVhZHkKKyAgICAgICAgICogLSB3ZSBoYXZlIGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5ICYgY3B1 cG9vbF9kb21haW5fY3B1bWFzaygpIGFscmVhZHkKICAgICAgICAgICogICBpbiBjcHVtYXNrX3Nj cmF0Y2gsIHdlIGRvIHNhdmUgYSBsb3QgZG9pbmcgbGlrZSB0aGlzLgogICAgICAgICAgKgogICAg ICAgICAgKiBJdCdzIGtpbmQgb2YgbGlrZSBvcGVuIGNvZGluZyBhZmZpbml0eV9iYWxhbmNlX2Nw dW1hc2soKSBidXQsIGluCkBAIC0yMzY3LDcgKzIzNjgsNyBAQCBjc2NoZWQyX3Jlc19waWNrKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVkX2l0ZW0gKml0ZW0pCiAgICAg ICAgICAqIGNwdW1hc2sgb3BlcmF0aW9ucy4KICAgICAgICAgICovCiAgICAgICAgIGNwdW1hc2tf YW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLAot ICAgICAgICAgICAgICAgICAgICB2Yy0+Y3B1X3NvZnRfYWZmaW5pdHkpOworICAgICAgICAgICAg ICAgICAgICBpdGVtLT5jcHVfc29mdF9hZmZpbml0eSk7CiAgICAgICAgIGNwdW1hc2tfYW5kKGNw dW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLAogICAgICAg ICAgICAgICAgICAgICAmcHJ2LT5ycWRbbWluX3NfcnFpXS5hY3RpdmUpOwogICAgIH0KQEAgLTI0 NzUsNiArMjQ3Niw3IEBAIHN0YXRpYyB2b2lkIG1pZ3JhdGUoY29uc3Qgc3RydWN0IHNjaGVkdWxl ciAqb3BzLAogICAgICAgICAgICAgICAgICAgICBzX3RpbWVfdCBub3cpCiB7CiAgICAgaW50IGNw dSA9IHN2Yy0+dmNwdS0+cHJvY2Vzc29yOworICAgIHN0cnVjdCBzY2hlZF9pdGVtICppdGVtID0g c3ZjLT52Y3B1LT5zY2hlZF9pdGVtOwogCiAgICAgaWYgKCB1bmxpa2VseSh0Yl9pbml0X2RvbmUp ICkKICAgICB7CkBAIC0yNTEyLDcgKzI1MTQsNyBAQCBzdGF0aWMgdm9pZCBtaWdyYXRlKGNvbnN0 IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywKICAgICAgICAgfQogICAgICAgICBfcnVucV9kZWFzc2ln bihzdmMpOwogCi0gICAgICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwg c3ZjLT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSwKKyAgICAgICAgY3B1bWFza19hbmQoY3B1bWFz a19zY3JhdGNoX2NwdShjcHUpLCBpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSwKICAgICAgICAgICAg ICAgICAgICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayhzdmMtPnZjcHUtPmRvbWFpbikpOwogICAg ICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIGNwdW1hc2tfc2NyYXRj aF9jcHUoY3B1KSwKICAgICAgICAgICAgICAgICAgICAgJnRycWQtPmFjdGl2ZSk7CkBAIC0yNTQ2 LDcgKzI1NDgsNyBAQCBzdGF0aWMgYm9vbCB2Y3B1X2lzX21pZ3JhdGVhYmxlKHN0cnVjdCBjc2No ZWQyX2l0ZW0gKnN2YywKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IHN2Yy0+dmNwdTsKICAgICBpbnQg Y3B1ID0gc3ZjLT52Y3B1LT5wcm9jZXNzb3I7CiAKLSAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3Nj cmF0Y2hfY3B1KGNwdSksIHYtPmNwdV9oYXJkX2FmZmluaXR5LAorICAgIGNwdW1hc2tfYW5kKGNw dW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgdi0+c2NoZWRfaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHks CiAgICAgICAgICAgICAgICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21haW4pKTsKIAog ICAgIHJldHVybiAhKHN2Yy0+ZmxhZ3MgJiBDU0ZMQUdfcnVucV9taWdyYXRlX3JlcXVlc3QpICYm CkBAIC0yNzgwLDcgKzI3ODIsNyBAQCBjc2NoZWQyX2l0ZW1fbWlncmF0ZSgKIAogICAgIC8qIElm IGhlcmUsIG5ld19jcHUgbXVzdCBiZSBhIHZhbGlkIENyZWRpdDIgcENQVSwgYW5kIGluIG91ciBh ZmZpbml0eS4gKi8KICAgICBBU1NFUlQoY3B1bWFza190ZXN0X2NwdShuZXdfY3B1LCAmY3NjaGVk Ml9wcml2KG9wcyktPmluaXRpYWxpemVkKSk7Ci0gICAgQVNTRVJUKGNwdW1hc2tfdGVzdF9jcHUo bmV3X2NwdSwgdmMtPmNwdV9oYXJkX2FmZmluaXR5KSk7CisgICAgQVNTRVJUKGNwdW1hc2tfdGVz dF9jcHUobmV3X2NwdSwgaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHkpKTsKIAogICAgIHRycWQgPSBj MnJxZChvcHMsIG5ld19jcHUpOwogCkBAIC0zMzIwLDkgKzMzMjIsOSBAQCBydW5xX2NhbmRpZGF0 ZShzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1ZV9kYXRhICpycWQsCiAgICAgfQogCiAgICAgLyogSWYg c2N1cnIgaGFzIGEgc29mdC1hZmZpbml0eSwgbGV0J3MgY2hlY2sgd2hldGhlciBjcHUgaXMgcGFy dCBvZiBpdCAqLwotICAgIGlmICggaGFzX3NvZnRfYWZmaW5pdHkoc2N1cnItPnZjcHUpICkKKyAg ICBpZiAoIGhhc19zb2Z0X2FmZmluaXR5KHNjdXJyLT52Y3B1LT5zY2hlZF9pdGVtKSApCiAgICAg ewotICAgICAgICBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2soc2N1cnItPnZjcHUsIEJBTEFOQ0Vf U09GVF9BRkZJTklUWSwKKyAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNrKHNjdXJyLT52 Y3B1LT5zY2hlZF9pdGVtLCBCQUxBTkNFX1NPRlRfQUZGSU5JVFksCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjcHVtYXNrX3NjcmF0Y2gpOwogICAgICAgICBpZiAoIHVubGlrZWx5 KCFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgY3B1bWFza19zY3JhdGNoKSkgKQogICAgICAgICB7CkBA IC0zMzc3LDcgKzMzNzksNyBAQCBydW5xX2NhbmRpZGF0ZShzdHJ1Y3QgY3NjaGVkMl9ydW5xdWV1 ZV9kYXRhICpycWQsCiAgICAgICAgIH0KIAogICAgICAgICAvKiBPbmx5IGNvbnNpZGVyIHZjcHVz IHRoYXQgYXJlIGFsbG93ZWQgdG8gcnVuIG9uIHRoaXMgcHJvY2Vzc29yLiAqLwotICAgICAgICBp ZiAoICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgc3ZjLT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSkg KQorICAgICAgICBpZiAoICFjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgc3ZjLT52Y3B1LT5zY2hlZF9p dGVtLT5jcHVfaGFyZF9hZmZpbml0eSkgKQogICAgICAgICB7CiAgICAgICAgICAgICAoKnNraXBw ZWQpKys7CiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2No ZWRfbnVsbC5jIGIveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKaW5kZXggNjIwOTI1ZThjZS4uYzQ1 YWY5ZjhlZSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKKysrIGIveGVuL2Nv bW1vbi9zY2hlZF9udWxsLmMKQEAgLTEyMyw3ICsxMjMsOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVj dCBudWxsX2l0ZW0gKm51bGxfaXRlbShjb25zdCBzdHJ1Y3Qgc2NoZWRfaXRlbSAqaXRlbSkKIHN0 YXRpYyBpbmxpbmUgYm9vbCB2Y3B1X2NoZWNrX2FmZmluaXR5KHN0cnVjdCB2Y3B1ICp2LCB1bnNp Z25lZCBpbnQgY3B1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IGJhbGFuY2Vfc3RlcCkKIHsKLSAgICBhZmZpbml0eV9iYWxhbmNlX2NwdW1hc2so diwgYmFsYW5jZV9zdGVwLCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpOworICAgIGFmZmluaXR5 X2JhbGFuY2VfY3B1bWFzayh2LT5zY2hlZF9pdGVtLCBiYWxhbmNlX3N0ZXAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSk7CiAgICAgY3B1bWFz a19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSks CiAgICAgICAgICAgICAgICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayh2LT5kb21haW4pKTsKIApA QCAtMjgxLDEwICsyODIsMTAgQEAgcGlja19yZXMoc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2LCBz dHJ1Y3Qgc2NoZWRfaXRlbSAqaXRlbSkKIAogICAgIGZvcl9lYWNoX2FmZmluaXR5X2JhbGFuY2Vf c3RlcCggYnMgKQogICAgIHsKLSAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNFX1NPRlRfQUZGSU5J VFkgJiYgIWhhc19zb2Z0X2FmZmluaXR5KHYpICkKKyAgICAgICAgaWYgKCBicyA9PSBCQUxBTkNF X1NPRlRfQUZGSU5JVFkgJiYgIWhhc19zb2Z0X2FmZmluaXR5KGl0ZW0pICkKICAgICAgICAgICAg IGNvbnRpbnVlOwogCi0gICAgICAgIGFmZmluaXR5X2JhbGFuY2VfY3B1bWFzayh2LCBicywgY3B1 bWFza19zY3JhdGNoX2NwdShjcHUpKTsKKyAgICAgICAgYWZmaW5pdHlfYmFsYW5jZV9jcHVtYXNr KGl0ZW0sIGJzLCBjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpOwogICAgICAgICBjcHVtYXNrX2Fu ZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1 cyk7CiAKICAgICAgICAgLyoKQEAgLTMyMSw3ICszMjIsNyBAQCBwaWNrX3JlcyhzdHJ1Y3QgbnVs bF9wcml2YXRlICpwcnYsIHN0cnVjdCBzY2hlZF9pdGVtICppdGVtKQogICAgICAqIGFzIHdlIHdp bGwgYWN0dWFsbHkgYXNzaWduIHRoZSB2Q1BVIHRvIHRoZSBwQ1BVIHdlIHJldHVybiBmcm9tIGhl cmUsCiAgICAgICogb25seSBpZiB0aGUgcENQVSBpcyBmcmVlLgogICAgICAqLwotICAgIGNwdW1h c2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1cywgdi0+Y3B1X2hhcmRfYWZmaW5p dHkpOworICAgIGNwdW1hc2tfYW5kKGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSwgY3B1cywgaXRl bS0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogICAgIG5ld19jcHUgPSBjcHVtYXNrX2FueShjcHVtYXNr X3NjcmF0Y2hfY3B1KGNwdSkpOwogCiAgb3V0OgpAQCAtNDM4LDcgKzQzOSw3IEBAIHN0YXRpYyB2 b2lkIG51bGxfaXRlbV9pbnNlcnQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLAogCiAgICAg bG9jayA9IGl0ZW1fc2NoZWR1bGVfbG9jayhpdGVtKTsKIAotICAgIGNwdW1hc2tfYW5kKGNwdW1h c2tfc2NyYXRjaF9jcHUoY3B1KSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgY3B1bWFza19h bmQoY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCBpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSwKICAg ICAgICAgICAgICAgICBjcHVwb29sX2RvbWFpbl9jcHVtYXNrKHYtPmRvbWFpbikpOwogCiAgICAg LyogSWYgdGhlIHBDUFUgaXMgZnJlZSwgd2UgYXNzaWduIHYgdG8gaXQgKi8KQEAgLTQ5Niw3ICs0 OTcsOCBAQCBzdGF0aWMgdm9pZCBfdmNwdV9yZW1vdmUoc3RydWN0IG51bGxfcHJpdmF0ZSAqcHJ2 LCBzdHJ1Y3QgdmNwdSAqdikKICAgICB7CiAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoIHd2 YywgJnBydi0+d2FpdHEsIHdhaXRxX2VsZW0gKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAo IGJzID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWSAmJiAhaGFzX3NvZnRfYWZmaW5pdHkod3ZjLT52 Y3B1KSApCisgICAgICAgICAgICBpZiAoIGJzID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWSAmJgor ICAgICAgICAgICAgICAgICAhaGFzX3NvZnRfYWZmaW5pdHkod3ZjLT52Y3B1LT5zY2hlZF9pdGVt KSApCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGlmICggdmNwdV9j aGVja19hZmZpbml0eSh3dmMtPnZjcHUsIGNwdSwgYnMpICkKQEAgLTc3NSw3ICs3NzcsNyBAQCBz dGF0aWMgc3RydWN0IHRhc2tfc2xpY2UgbnVsbF9zY2hlZHVsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1 bGVyICpvcHMsCiAgICAgICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KCB3dmMsICZwcnYtPndh aXRxLCB3YWl0cV9lbGVtICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoIGJz ID09IEJBTEFOQ0VfU09GVF9BRkZJTklUWSAmJgotICAgICAgICAgICAgICAgICAgICAgIWhhc19z b2Z0X2FmZmluaXR5KHd2Yy0+dmNwdSkgKQorICAgICAgICAgICAgICAgICAgICAgIWhhc19zb2Z0 X2FmZmluaXR5KHd2Yy0+dmNwdS0+c2NoZWRfaXRlbSkgKQogICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsKIAogICAgICAgICAgICAgICAgIGlmICggdmNwdV9jaGVja19hZmZpbml0eSh3dmMt PnZjcHUsIGNwdSwgYnMpICkKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRfcnQuYyBiL3hl bi9jb21tb24vc2NoZWRfcnQuYwppbmRleCBhNjA0YTBkNWE2Li41ODU2MGQwODZiIDEwMDY0NAot LS0gYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCkBA IC0zMjcsNyArMzI3LDcgQEAgcnRfZHVtcF92Y3B1KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9w cywgY29uc3Qgc3RydWN0IHJ0X2l0ZW0gKnN2YykKICAgICBtYXNrID0gY3B1bWFza19zY3JhdGNo X2NwdShzdmMtPnZjcHUtPnByb2Nlc3Nvcik7CiAKICAgICBjcHVwb29sX21hc2sgPSBjcHVwb29s X2RvbWFpbl9jcHVtYXNrKHN2Yy0+dmNwdS0+ZG9tYWluKTsKLSAgICBjcHVtYXNrX2FuZChtYXNr LCBjcHVwb29sX21hc2ssIHN2Yy0+dmNwdS0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgIGNwdW1h c2tfYW5kKG1hc2ssIGNwdXBvb2xfbWFzaywgc3ZjLT52Y3B1LT5zY2hlZF9pdGVtLT5jcHVfaGFy ZF9hZmZpbml0eSk7CiAgICAgcHJpbnRrKCJbJTVkLiUtMnVdIGNwdSAldSwgKCUiUFJJX3N0aW1l IiwgJSJQUklfc3RpbWUiKSwiCiAgICAgICAgICAgICIgY3VyX2I9JSJQUklfc3RpbWUiIGN1cl9k PSUiUFJJX3N0aW1lIiBsYXN0X3N0YXJ0PSUiUFJJX3N0aW1lIlxuIgogICAgICAgICAgICAiIFx0 XHQgcHJpb3JpdHlfbGV2ZWw9JWQgaGFzX2V4dHJhdGltZT0lZFxuIgpAQCAtNjQ1LDcgKzY0NSw3 IEBAIHJ0X3Jlc19waWNrKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IHNjaGVk X2l0ZW0gKml0ZW0pCiAgICAgaW50IGNwdTsKIAogICAgIG9ubGluZSA9IGNwdXBvb2xfZG9tYWlu X2NwdW1hc2sodmMtPmRvbWFpbik7Ci0gICAgY3B1bWFza19hbmQoJmNwdXMsIG9ubGluZSwgdmMt PmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICBjcHVtYXNrX2FuZCgmY3B1cywgb25saW5lLCBpdGVt LT5jcHVfaGFyZF9hZmZpbml0eSk7CiAKICAgICBjcHUgPSBjcHVtYXNrX3Rlc3RfY3B1KHZjLT5w cm9jZXNzb3IsICZjcHVzKQogICAgICAgICAgICAgPyB2Yy0+cHJvY2Vzc29yCkBAIC0xMDMwLDcg KzEwMzAsOCBAQCBydW5xX3BpY2soY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBjb25zdCBj cHVtYXNrX3QgKm1hc2spCiAKICAgICAgICAgLyogbWFzayBjcHVfaGFyZF9hZmZpbml0eSAmIGNw dXBvb2wgJiBtYXNrICovCiAgICAgICAgIG9ubGluZSA9IGNwdXBvb2xfZG9tYWluX2NwdW1hc2so aXRlcl9zdmMtPnZjcHUtPmRvbWFpbik7Ci0gICAgICAgIGNwdW1hc2tfYW5kKCZjcHVfY29tbW9u LCBvbmxpbmUsIGl0ZXJfc3ZjLT52Y3B1LT5jcHVfaGFyZF9hZmZpbml0eSk7CisgICAgICAgIGNw dW1hc2tfYW5kKCZjcHVfY29tbW9uLCBvbmxpbmUsCisgICAgICAgICAgICAgICAgICAgIGl0ZXJf c3ZjLT52Y3B1LT5zY2hlZF9pdGVtLT5jcHVfaGFyZF9hZmZpbml0eSk7CiAgICAgICAgIGNwdW1h c2tfYW5kKCZjcHVfY29tbW9uLCBtYXNrLCAmY3B1X2NvbW1vbik7CiAgICAgICAgIGlmICggY3B1 bWFza19lbXB0eSgmY3B1X2NvbW1vbikgKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xMTk5 LDcgKzEyMDAsNyBAQCBydW5xX3RpY2tsZShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0 cnVjdCBydF9pdGVtICpuZXcpCiAgICAgICAgIHJldHVybjsKIAogICAgIG9ubGluZSA9IGNwdXBv b2xfZG9tYWluX2NwdW1hc2sobmV3LT52Y3B1LT5kb21haW4pOwotICAgIGNwdW1hc2tfYW5kKCZu b3RfdGlja2xlZCwgb25saW5lLCBuZXctPnZjcHUtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICBj cHVtYXNrX2FuZCgmbm90X3RpY2tsZWQsIG9ubGluZSwgbmV3LT52Y3B1LT5zY2hlZF9pdGVtLT5j cHVfaGFyZF9hZmZpbml0eSk7CiAgICAgY3B1bWFza19hbmRub3QoJm5vdF90aWNrbGVkLCAmbm90 X3RpY2tsZWQsICZwcnYtPnRpY2tsZWQpOwogCiAgICAgLyoKZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwppbmRleCBhODM4MmQ5ODEyLi5i ZTg1ZmI4MDAwIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVuL2Nv bW1vbi9zY2hlZHVsZS5jCkBAIC0yNzQsNiArMjc0LDEyIEBAIHN0YXRpYyB2b2lkIHNjaGVkX2Zy ZWVfaXRlbShzdHJ1Y3Qgc2NoZWRfaXRlbSAqaXRlbSkKICAgICB9CiAKICAgICBpdGVtLT52Y3B1 LT5zY2hlZF9pdGVtID0gTlVMTDsKKworICAgIGZyZWVfY3B1bWFza192YXIoaXRlbS0+Y3B1X2hh cmRfYWZmaW5pdHkpOworICAgIGZyZWVfY3B1bWFza192YXIoaXRlbS0+Y3B1X2hhcmRfYWZmaW5p dHlfdG1wKTsKKyAgICBmcmVlX2NwdW1hc2tfdmFyKGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5X3Nh dmVkKTsKKyAgICBmcmVlX2NwdW1hc2tfdmFyKGl0ZW0tPmNwdV9zb2Z0X2FmZmluaXR5KTsKKwog ICAgIHhmcmVlKGl0ZW0pOwogfQogCkBAIC0yOTcsNyArMzAzLDE3IEBAIHN0YXRpYyBzdHJ1Y3Qg c2NoZWRfaXRlbSAqc2NoZWRfYWxsb2NfaXRlbShzdHJ1Y3QgdmNwdSAqdikKICAgICBpdGVtLT5u ZXh0X2luX2xpc3QgPSAqcHJldl9pdGVtOwogICAgICpwcmV2X2l0ZW0gPSBpdGVtOwogCisgICAg aWYgKCAhemFsbG9jX2NwdW1hc2tfdmFyKCZpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSkgfHwKKyAg ICAgICAgICF6YWxsb2NfY3B1bWFza192YXIoJml0ZW0tPmNwdV9oYXJkX2FmZmluaXR5X3RtcCkg fHwKKyAgICAgICAgICF6YWxsb2NfY3B1bWFza192YXIoJml0ZW0tPmNwdV9oYXJkX2FmZmluaXR5 X3NhdmVkKSB8fAorICAgICAgICAgIXphbGxvY19jcHVtYXNrX3ZhcigmaXRlbS0+Y3B1X3NvZnRf YWZmaW5pdHkpICkKKyAgICAgICAgZ290byBmYWlsOworCiAgICAgcmV0dXJuIGl0ZW07CisKKyBm YWlsOgorICAgIHNjaGVkX2ZyZWVfaXRlbShpdGVtKTsKKyAgICByZXR1cm4gTlVMTDsKIH0KIAog aW50IHNjaGVkX2luaXRfdmNwdShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHByb2Nlc3Nv cikKQEAgLTM2Nyw3ICszODMsNyBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4oc3RydWN0IGRvbWFp biAqZCwgc3RydWN0IGNwdXBvb2wgKmMpCiAKICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAg ICAgewotICAgICAgICBpZiAoIHYtPmFmZmluaXR5X2Jyb2tlbiApCisgICAgICAgIGlmICggdi0+ c2NoZWRfaXRlbS0+YWZmaW5pdHlfYnJva2VuICkKICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7 CiAgICAgfQogCkBAIC02OTIsNyArNzA4LDcgQEAgc3RhdGljIHZvaWQgdmNwdV9taWdyYXRlX2Zp bmlzaChzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgaWYgKCBw aWNrX2NhbGxlZCAmJgogICAgICAgICAgICAgICAgICAobmV3X2xvY2sgPT0gcGVyX2NwdShzY2hl ZF9yZXMsIG5ld19jcHUpLT5zY2hlZHVsZV9sb2NrKSAmJgotICAgICAgICAgICAgICAgICBjcHVt YXNrX3Rlc3RfY3B1KG5ld19jcHUsIHYtPmNwdV9oYXJkX2FmZmluaXR5KSAmJgorICAgICAgICAg ICAgICAgICBjcHVtYXNrX3Rlc3RfY3B1KG5ld19jcHUsIHYtPnNjaGVkX2l0ZW0tPmNwdV9oYXJk X2FmZmluaXR5KSAmJgogICAgICAgICAgICAgICAgICBjcHVtYXNrX3Rlc3RfY3B1KG5ld19jcHUs IHYtPmRvbWFpbi0+Y3B1cG9vbC0+Y3B1X3ZhbGlkKSApCiAgICAgICAgICAgICAgICAgYnJlYWs7 CiAKQEAgLTc2OCw2ICs3ODQsNyBAQCB2b2lkIHJlc3RvcmVfdmNwdV9hZmZpbml0eShzdHJ1Y3Qg ZG9tYWluICpkKQogICAgIHsKICAgICAgICAgc3BpbmxvY2tfdCAqbG9jazsKICAgICAgICAgdW5z aWduZWQgaW50IG9sZF9jcHUgPSB2LT5wcm9jZXNzb3I7CisgICAgICAgIHN0cnVjdCBzY2hlZF9p dGVtICppdGVtID0gdi0+c2NoZWRfaXRlbTsKIAogICAgICAgICBBU1NFUlQoIXZjcHVfcnVubmFi bGUodikpOwogCkBAIC03NzksMTUgKzc5NiwxNSBAQCB2b2lkIHJlc3RvcmVfdmNwdV9hZmZpbml0 eShzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAgKiBzZXQgdi0+cHJvY2Vzc29yIG9mIGVhY2gg b2YgdGhlaXIgdkNQVXMgdG8gc29tZXRoaW5nIHRoYXQgd2lsbAogICAgICAgICAgKiBtYWtlIHNl bnNlIGZvciB0aGUgc2NoZWR1bGVyIG9mIHRoZSBjcHVwb29sIGluIHdoaWNoIHRoZXkgYXJlIGlu LgogICAgICAgICAgKi8KLSAgICAgICAgY3B1bWFza19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShj cHUpLCB2LT5jcHVfaGFyZF9hZmZpbml0eSwKKyAgICAgICAgY3B1bWFza19hbmQoY3B1bWFza19z Y3JhdGNoX2NwdShjcHUpLCBpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSwKICAgICAgICAgICAgICAg ICAgICAgY3B1cG9vbF9kb21haW5fY3B1bWFzayhkKSk7CiAgICAgICAgIGlmICggY3B1bWFza19l bXB0eShjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSkpICkKICAgICAgICAgewotICAgICAgICAgICAg aWYgKCB2LT5hZmZpbml0eV9icm9rZW4gKQorICAgICAgICAgICAgaWYgKCBpdGVtLT5hZmZpbml0 eV9icm9rZW4gKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNjaGVkX3NldF9hZmZp bml0eSh2LCB2LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCwgTlVMTCk7Ci0gICAgICAgICAgICAg ICAgdi0+YWZmaW5pdHlfYnJva2VuID0gMDsKLSAgICAgICAgICAgICAgICBjcHVtYXNrX2FuZChj cHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIHYtPmNwdV9oYXJkX2FmZmluaXR5LAorICAgICAgICAg ICAgICAgIHNjaGVkX3NldF9hZmZpbml0eSh2LCBpdGVtLT5jcHVfaGFyZF9hZmZpbml0eV9zYXZl ZCwgTlVMTCk7CisgICAgICAgICAgICAgICAgaXRlbS0+YWZmaW5pdHlfYnJva2VuID0gMDsKKyAg ICAgICAgICAgICAgICBjcHVtYXNrX2FuZChjcHVtYXNrX3NjcmF0Y2hfY3B1KGNwdSksIGl0ZW0t PmNwdV9oYXJkX2FmZmluaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdXBvb2xf ZG9tYWluX2NwdW1hc2soZCkpOwogICAgICAgICAgICAgfQogCkBAIC03OTUsMTggKzgxMiwxNyBA QCB2b2lkIHJlc3RvcmVfdmNwdV9hZmZpbml0eShzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICAg ICAgewogICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfREVCVUcgIkJyZWFraW5nIGFmZmlu aXR5IGZvciAlcHZcbiIsIHYpOwogICAgICAgICAgICAgICAgIHNjaGVkX3NldF9hZmZpbml0eSh2 LCAmY3B1bWFza19hbGwsIE5VTEwpOwotICAgICAgICAgICAgICAgIGNwdW1hc2tfYW5kKGNwdW1h c2tfc2NyYXRjaF9jcHUoY3B1KSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHksCisgICAgICAgICAgICAg ICAgY3B1bWFza19hbmQoY3B1bWFza19zY3JhdGNoX2NwdShjcHUpLCBpdGVtLT5jcHVfaGFyZF9h ZmZpbml0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVwb29sX2RvbWFpbl9jcHVt YXNrKGQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIHYtPnByb2Nlc3Nv ciA9IGNwdW1hc2tfYW55KGNwdW1hc2tfc2NyYXRjaF9jcHUoY3B1KSk7Ci0gICAgICAgIHYtPnNj aGVkX2l0ZW0tPnJlcyA9IHBlcl9jcHUoc2NoZWRfcmVzLCB2LT5wcm9jZXNzb3IpOworICAgICAg ICBpdGVtLT5yZXMgPSBwZXJfY3B1KHNjaGVkX3Jlcywgdi0+cHJvY2Vzc29yKTsKIAotICAgICAg ICBsb2NrID0gaXRlbV9zY2hlZHVsZV9sb2NrX2lycSh2LT5zY2hlZF9pdGVtKTsKLSAgICAgICAg di0+c2NoZWRfaXRlbS0+cmVzID0gU0NIRURfT1AodmNwdV9zY2hlZHVsZXIodiksIHBpY2tfcmVz b3VyY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPnNjaGVkX2l0 ZW0pOwotICAgICAgICB2LT5wcm9jZXNzb3IgPSB2LT5zY2hlZF9pdGVtLT5yZXMtPnByb2Nlc3Nv cjsKKyAgICAgICAgbG9jayA9IGl0ZW1fc2NoZWR1bGVfbG9ja19pcnEoaXRlbSk7CisgICAgICAg IGl0ZW0tPnJlcyA9IFNDSEVEX09QKHZjcHVfc2NoZWR1bGVyKHYpLCBwaWNrX3Jlc291cmNlLCBp dGVtKTsKKyAgICAgICAgdi0+cHJvY2Vzc29yID0gaXRlbS0+cmVzLT5wcm9jZXNzb3I7CiAgICAg ICAgIHNwaW5fdW5sb2NrX2lycShsb2NrKTsKIAogICAgICAgICBpZiAoIG9sZF9jcHUgIT0gdi0+ cHJvY2Vzc29yICkKQEAgLTgzOCwxNiArODU0LDE3IEBAIGludCBjcHVfZGlzYWJsZV9zY2hlZHVs ZXIodW5zaWduZWQgaW50IGNwdSkKICAgICAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAg ICAgICB7CiAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwotICAgICAgICAgICAgc3Bp bmxvY2tfdCAqbG9jayA9IGl0ZW1fc2NoZWR1bGVfbG9ja19pcnFzYXZlKHYtPnNjaGVkX2l0ZW0s ICZmbGFncyk7CisgICAgICAgICAgICBzdHJ1Y3Qgc2NoZWRfaXRlbSAqaXRlbSA9IHYtPnNjaGVk X2l0ZW07CisgICAgICAgICAgICBzcGlubG9ja190ICpsb2NrID0gaXRlbV9zY2hlZHVsZV9sb2Nr X2lycXNhdmUoaXRlbSwgJmZsYWdzKTsKIAotICAgICAgICAgICAgY3B1bWFza19hbmQoJm9ubGlu ZV9hZmZpbml0eSwgdi0+Y3B1X2hhcmRfYWZmaW5pdHksIGMtPmNwdV92YWxpZCk7CisgICAgICAg ICAgICBjcHVtYXNrX2FuZCgmb25saW5lX2FmZmluaXR5LCBpdGVtLT5jcHVfaGFyZF9hZmZpbml0 eSwgYy0+Y3B1X3ZhbGlkKTsKICAgICAgICAgICAgIGlmICggY3B1bWFza19lbXB0eSgmb25saW5l X2FmZmluaXR5KSAmJgotICAgICAgICAgICAgICAgICBjcHVtYXNrX3Rlc3RfY3B1KGNwdSwgdi0+ Y3B1X2hhcmRfYWZmaW5pdHkpICkKKyAgICAgICAgICAgICAgICAgY3B1bWFza190ZXN0X2NwdShj cHUsIGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5KSApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg ICAgICAgaWYgKCB2LT5hZmZpbml0eV9icm9rZW4gKQorICAgICAgICAgICAgICAgIGlmICggaXRl bS0+YWZmaW5pdHlfYnJva2VuICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg ICAgIC8qIFRoZSB2Y3B1IGlzIHRlbXBvcmFyaWx5IHBpbm5lZCwgY2FuJ3QgbW92ZSBpdC4gKi8K LSAgICAgICAgICAgICAgICAgICAgaXRlbV9zY2hlZHVsZV91bmxvY2tfaXJxcmVzdG9yZShsb2Nr LCBmbGFncywgdi0+c2NoZWRfaXRlbSk7CisgICAgICAgICAgICAgICAgICAgIGl0ZW1fc2NoZWR1 bGVfdW5sb2NrX2lycXJlc3RvcmUobG9jaywgZmxhZ3MsIGl0ZW0pOwogICAgICAgICAgICAgICAg ICAgICByZXQgPSAtRUFERFJJTlVTRTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg ICAgICAgICAgICAgfQpAQCAtODYwLDcgKzg3Nyw3IEBAIGludCBjcHVfZGlzYWJsZV9zY2hlZHVs ZXIodW5zaWduZWQgaW50IGNwdSkKICAgICAgICAgICAgIGlmICggdi0+cHJvY2Vzc29yICE9IGNw dSApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLyogVGhlIHZjcHUgaXMgbm90IG9u IHRoaXMgY3B1LCBzbyB3ZSBjYW4gbW92ZSBvbi4gKi8KLSAgICAgICAgICAgICAgICBpdGVtX3Nj aGVkdWxlX3VubG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdzLCB2LT5zY2hlZF9pdGVtKTsKKyAg ICAgICAgICAgICAgICBpdGVtX3NjaGVkdWxlX3VubG9ja19pcnFyZXN0b3JlKGxvY2ssIGZsYWdz LCBpdGVtKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIApAQCAt ODczLDcgKzg5MCw3IEBAIGludCBjcHVfZGlzYWJsZV9zY2hlZHVsZXIodW5zaWduZWQgaW50IGNw dSkKICAgICAgICAgICAgICAqICAgIHRoaW5ncyB3b3VsZCBoYXZlIGZhaWxlZCBiZWZvcmUgZ2V0 dGluZyBpbiBoZXJlLgogICAgICAgICAgICAgICovCiAgICAgICAgICAgICB2Y3B1X21pZ3JhdGVf c3RhcnQodik7Ci0gICAgICAgICAgICBpdGVtX3NjaGVkdWxlX3VubG9ja19pcnFyZXN0b3JlKGxv Y2ssIGZsYWdzLCB2LT5zY2hlZF9pdGVtKTsKKyAgICAgICAgICAgIGl0ZW1fc2NoZWR1bGVfdW5s b2NrX2lycXJlc3RvcmUobG9jaywgZmxhZ3MsIGl0ZW0pOwogCiAgICAgICAgICAgICB2Y3B1X21p Z3JhdGVfZmluaXNoKHYpOwogCkBAIC05MDQsNyArOTIxLDcgQEAgc3RhdGljIGludCBjcHVfZGlz YWJsZV9zY2hlZHVsZXJfY2hlY2sodW5zaWduZWQgaW50IGNwdSkKICAgICB7CiAgICAgICAgIGZv cl9lYWNoX3ZjcHUgKCBkLCB2ICkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCB2LT5hZmZp bml0eV9icm9rZW4gKQorICAgICAgICAgICAgaWYgKCB2LT5zY2hlZF9pdGVtLT5hZmZpbml0eV9i cm9rZW4gKQogICAgICAgICAgICAgICAgIHJldHVybiAtRUFERFJJTlVTRTsKICAgICAgICAgICAg IGlmICggc3lzdGVtX3N0YXRlICE9IFNZU19TVEFURV9zdXNwZW5kICYmIHYtPnByb2Nlc3NvciA9 PSBjcHUgKQogICAgICAgICAgICAgICAgIHJldHVybiAtRUFHQUlOOwpAQCAtOTI0LDI5ICs5NDEs MzAgQEAgc3RhdGljIGludCBjcHVfZGlzYWJsZV9zY2hlZHVsZXJfY2hlY2sodW5zaWduZWQgaW50 IGNwdSkKIHZvaWQgc2NoZWRfc2V0X2FmZmluaXR5KAogICAgIHN0cnVjdCB2Y3B1ICp2LCBjb25z dCBjcHVtYXNrX3QgKmhhcmQsIGNvbnN0IGNwdW1hc2tfdCAqc29mdCkKIHsKLSAgICBTQ0hFRF9P UChkb21fc2NoZWR1bGVyKHYtPmRvbWFpbiksIGFkanVzdF9hZmZpbml0eSwgdi0+c2NoZWRfaXRl bSwKLSAgICAgICAgICAgICBoYXJkLCBzb2Z0KTsKKyAgICBzdHJ1Y3Qgc2NoZWRfaXRlbSAqaXRl bSA9IHYtPnNjaGVkX2l0ZW07CisgICAgU0NIRURfT1AoZG9tX3NjaGVkdWxlcih2LT5kb21haW4p LCBhZGp1c3RfYWZmaW5pdHksIGl0ZW0sIGhhcmQsIHNvZnQpOwogCiAgICAgaWYgKCBoYXJkICkK LSAgICAgICAgY3B1bWFza19jb3B5KHYtPmNwdV9oYXJkX2FmZmluaXR5LCBoYXJkKTsKKyAgICAg ICAgY3B1bWFza19jb3B5KGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5LCBoYXJkKTsKICAgICBpZiAo IHNvZnQgKQotICAgICAgICBjcHVtYXNrX2NvcHkodi0+Y3B1X3NvZnRfYWZmaW5pdHksIHNvZnQp OworICAgICAgICBjcHVtYXNrX2NvcHkoaXRlbS0+Y3B1X3NvZnRfYWZmaW5pdHksIHNvZnQpOwog Ci0gICAgdi0+c29mdF9hZmZfZWZmZWN0aXZlID0gIWNwdW1hc2tfc3Vic2V0KHYtPmNwdV9oYXJk X2FmZmluaXR5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 LT5jcHVfc29mdF9hZmZpbml0eSkgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVt YXNrX2ludGVyc2VjdHModi0+Y3B1X3NvZnRfYWZmaW5pdHksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmNwdV9oYXJkX2FmZmluaXR5KTsKKyAgICBp dGVtLT5zb2Z0X2FmZl9lZmZlY3RpdmUgPSAhY3B1bWFza19zdWJzZXQoaXRlbS0+Y3B1X2hhcmRf YWZmaW5pdHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGl0ZW0tPmNwdV9zb2Z0X2FmZmluaXR5KSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNwdW1hc2tfaW50ZXJzZWN0cyhpdGVtLT5jcHVfc29mdF9hZmZpbml0eSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS0+Y3B1X2hhcmRf YWZmaW5pdHkpOwogfQogCiBzdGF0aWMgaW50IHZjcHVfc2V0X2FmZmluaXR5KAogICAgIHN0cnVj dCB2Y3B1ICp2LCBjb25zdCBjcHVtYXNrX3QgKmFmZmluaXR5LCBjb25zdCBjcHVtYXNrX3QgKndo aWNoKQogeworICAgIHN0cnVjdCBzY2hlZF9pdGVtICppdGVtID0gdi0+c2NoZWRfaXRlbTsKICAg ICBzcGlubG9ja190ICpsb2NrOwogICAgIGludCByZXQgPSAwOwogCi0gICAgbG9jayA9IGl0ZW1f c2NoZWR1bGVfbG9ja19pcnEodi0+c2NoZWRfaXRlbSk7CisgICAgbG9jayA9IGl0ZW1fc2NoZWR1 bGVfbG9ja19pcnEoaXRlbSk7CiAKLSAgICBpZiAoIHYtPmFmZmluaXR5X2Jyb2tlbiApCisgICAg aWYgKCBpdGVtLT5hZmZpbml0eV9icm9rZW4gKQogICAgICAgICByZXQgPSAtRUJVU1k7CiAgICAg ZWxzZQogICAgIHsKQEAgLTk1NCwxOSArOTcyLDE5IEBAIHN0YXRpYyBpbnQgdmNwdV9zZXRfYWZm aW5pdHkoCiAgICAgICAgICAqIFRlbGwgdGhlIHNjaGVkdWxlciB3ZSBjaGFuZ2VzIHNvbWV0aGlu ZyBhYm91dCBhZmZpbml0eSwKICAgICAgICAgICogYW5kIGFzayB0byByZS1ldmFsdWF0ZSB2Y3B1 IHBsYWNlbWVudC4KICAgICAgICAgICovCi0gICAgICAgIGlmICggd2hpY2ggPT0gdi0+Y3B1X2hh cmRfYWZmaW5pdHkgKQorICAgICAgICBpZiAoIHdoaWNoID09IGl0ZW0tPmNwdV9oYXJkX2FmZmlu aXR5ICkKICAgICAgICAgewogICAgICAgICAgICAgc2NoZWRfc2V0X2FmZmluaXR5KHYsIGFmZmlu aXR5LCBOVUxMKTsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKLSAgICAgICAg ICAgIEFTU0VSVCh3aGljaCA9PSB2LT5jcHVfc29mdF9hZmZpbml0eSk7CisgICAgICAgICAgICBB U1NFUlQod2hpY2ggPT0gaXRlbS0+Y3B1X3NvZnRfYWZmaW5pdHkpOwogICAgICAgICAgICAgc2No ZWRfc2V0X2FmZmluaXR5KHYsIE5VTEwsIGFmZmluaXR5KTsKICAgICAgICAgfQogICAgICAgICB2 Y3B1X21pZ3JhdGVfc3RhcnQodik7CiAgICAgfQogCi0gICAgaXRlbV9zY2hlZHVsZV91bmxvY2tf aXJxKGxvY2ssIHYtPnNjaGVkX2l0ZW0pOworICAgIGl0ZW1fc2NoZWR1bGVfdW5sb2NrX2lycShs b2NrLCBpdGVtKTsKIAogICAgIGRvbWFpbl91cGRhdGVfbm9kZV9hZmZpbml0eSh2LT5kb21haW4p OwogCkBAIC05ODgsMTIgKzEwMDYsMTIgQEAgaW50IHZjcHVfc2V0X2hhcmRfYWZmaW5pdHkoc3Ry dWN0IHZjcHUgKnYsIGNvbnN0IGNwdW1hc2tfdCAqYWZmaW5pdHkpCiAgICAgaWYgKCBjcHVtYXNr X2VtcHR5KCZvbmxpbmVfYWZmaW5pdHkpICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAg ICByZXR1cm4gdmNwdV9zZXRfYWZmaW5pdHkodiwgYWZmaW5pdHksIHYtPmNwdV9oYXJkX2FmZmlu aXR5KTsKKyAgICByZXR1cm4gdmNwdV9zZXRfYWZmaW5pdHkodiwgYWZmaW5pdHksIHYtPnNjaGVk X2l0ZW0tPmNwdV9oYXJkX2FmZmluaXR5KTsKIH0KIAogaW50IHZjcHVfc2V0X3NvZnRfYWZmaW5p dHkoc3RydWN0IHZjcHUgKnYsIGNvbnN0IGNwdW1hc2tfdCAqYWZmaW5pdHkpCiB7Ci0gICAgcmV0 dXJuIHZjcHVfc2V0X2FmZmluaXR5KHYsIGFmZmluaXR5LCB2LT5jcHVfc29mdF9hZmZpbml0eSk7 CisgICAgcmV0dXJuIHZjcHVfc2V0X2FmZmluaXR5KHYsIGFmZmluaXR5LCB2LT5zY2hlZF9pdGVt LT5jcHVfc29mdF9hZmZpbml0eSk7CiB9CiAKIC8qIEJsb2NrIHRoZSBjdXJyZW50bHktZXhlY3V0 aW5nIGRvbWFpbiB1bnRpbCBhIHBlcnRpbmVudCBldmVudCBvY2N1cnMuICovCkBAIC0xMTg3LDI4 ICsxMjA1LDMwIEBAIHZvaWQgd2F0Y2hkb2dfZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFpbiAq ZCkKIAogaW50IHZjcHVfcGluX292ZXJyaWRlKHN0cnVjdCB2Y3B1ICp2LCBpbnQgY3B1KQogewor ICAgIHN0cnVjdCBzY2hlZF9pdGVtICppdGVtID0gdi0+c2NoZWRfaXRlbTsKICAgICBzcGlubG9j a190ICpsb2NrOwogICAgIGludCByZXQgPSAtRUlOVkFMOwogCi0gICAgbG9jayA9IGl0ZW1fc2No ZWR1bGVfbG9ja19pcnEodi0+c2NoZWRfaXRlbSk7CisgICAgbG9jayA9IGl0ZW1fc2NoZWR1bGVf bG9ja19pcnEoaXRlbSk7CiAKICAgICBpZiAoIGNwdSA8IDAgKQogICAgIHsKLSAgICAgICAgaWYg KCB2LT5hZmZpbml0eV9icm9rZW4gKQorICAgICAgICBpZiAoIGl0ZW0tPmFmZmluaXR5X2Jyb2tl biApCiAgICAgICAgIHsKLSAgICAgICAgICAgIHNjaGVkX3NldF9hZmZpbml0eSh2LCB2LT5jcHVf aGFyZF9hZmZpbml0eV9zYXZlZCwgTlVMTCk7Ci0gICAgICAgICAgICB2LT5hZmZpbml0eV9icm9r ZW4gPSAwOworICAgICAgICAgICAgc2NoZWRfc2V0X2FmZmluaXR5KHYsIGl0ZW0tPmNwdV9oYXJk X2FmZmluaXR5X3NhdmVkLCBOVUxMKTsKKyAgICAgICAgICAgIGl0ZW0tPmFmZmluaXR5X2Jyb2tl biA9IDA7CiAgICAgICAgICAgICByZXQgPSAwOwogICAgICAgICB9CiAgICAgfQogICAgIGVsc2Ug aWYgKCBjcHUgPCBucl9jcHVfaWRzICkKICAgICB7Ci0gICAgICAgIGlmICggdi0+YWZmaW5pdHlf YnJva2VuICkKKyAgICAgICAgaWYgKCBpdGVtLT5hZmZpbml0eV9icm9rZW4gKQogICAgICAgICAg ICAgcmV0ID0gLUVCVVNZOwogICAgICAgICBlbHNlIGlmICggY3B1bWFza190ZXN0X2NwdShjcHUs IFZDUFUyT05MSU5FKHYpKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNwdW1hc2tfY29weSh2 LT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCwgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOwotICAgICAg ICAgICAgdi0+YWZmaW5pdHlfYnJva2VuID0gMTsKKyAgICAgICAgICAgIGNwdW1hc2tfY29weShp dGVtLT5jcHVfaGFyZF9hZmZpbml0eV9zYXZlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBp dGVtLT5jcHVfaGFyZF9hZmZpbml0eSk7CisgICAgICAgICAgICBpdGVtLT5hZmZpbml0eV9icm9r ZW4gPSAxOwogICAgICAgICAgICAgc2NoZWRfc2V0X2FmZmluaXR5KHYsIGNwdW1hc2tfb2YoY3B1 KSwgTlVMTCk7CiAgICAgICAgICAgICByZXQgPSAwOwogICAgICAgICB9CkBAIC0xMjE3LDcgKzEy MzcsNyBAQCBpbnQgdmNwdV9waW5fb3ZlcnJpZGUoc3RydWN0IHZjcHUgKnYsIGludCBjcHUpCiAg ICAgaWYgKCByZXQgPT0gMCApCiAgICAgICAgIHZjcHVfbWlncmF0ZV9zdGFydCh2KTsKIAotICAg IGl0ZW1fc2NoZWR1bGVfdW5sb2NrX2lycShsb2NrLCB2LT5zY2hlZF9pdGVtKTsKKyAgICBpdGVt X3NjaGVkdWxlX3VubG9ja19pcnEobG9jaywgaXRlbSk7CiAKICAgICBkb21haW5fdXBkYXRlX25v ZGVfYWZmaW5pdHkodi0+ZG9tYWluKTsKIApAQCAtMTU2OSw3ICsxNTg5LDcgQEAgc3RhdGljIHZv aWQgc2NoZWR1bGUodm9pZCkKICAgICAgICAgKChwcmV2LT5wYXVzZV9mbGFncyAmIFZQRl9ibG9j a2VkKSA/IFJVTlNUQVRFX2Jsb2NrZWQgOgogICAgICAgICAgKHZjcHVfcnVubmFibGUocHJldikg PyBSVU5TVEFURV9ydW5uYWJsZSA6IFJVTlNUQVRFX29mZmxpbmUpKSwKICAgICAgICAgbm93KTsK LSAgICBwcmV2LT5sYXN0X3J1bl90aW1lID0gbm93OworICAgIHByZXYtPnNjaGVkX2l0ZW0tPmxh c3RfcnVuX3RpbWUgPSBub3c7CiAKICAgICBBU1NFUlQobmV4dC0+cnVuc3RhdGUuc3RhdGUgIT0g UlVOU1RBVEVfcnVubmluZyk7CiAgICAgdmNwdV9ydW5zdGF0ZV9jaGFuZ2UobmV4dCwgUlVOU1RB VEVfcnVubmluZywgbm93KTsKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vd2FpdC5jIGIveGVuL2Nv bW1vbi93YWl0LmMKaW5kZXggNGY4MzBhMTRlOC4uNmI5MTA5MmM3MSAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi93YWl0LmMKKysrIGIveGVuL2NvbW1vbi93YWl0LmMKQEAgLTIwLDYgKzIwLDcgQEAK ICAqLwogCiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CisjaW5jbHVkZSA8eGVuL3NjaGVkLWlmLmg+ CiAjaW5jbHVkZSA8eGVuL3NvZnRpcnEuaD4KICNpbmNsdWRlIDx4ZW4vd2FpdC5oPgogI2luY2x1 ZGUgPHhlbi9lcnJuby5oPgpAQCAtMTMyLDcgKzEzMyw3IEBAIHN0YXRpYyB2b2lkIF9fcHJlcGFy ZV90b193YWl0KHN0cnVjdCB3YWl0cXVldWVfdmNwdSAqd3F2KQogCiAgICAgLyogU2F2ZSBjdXJy ZW50IFZDUFUgYWZmaW5pdHk7IGZvcmNlIHdha2V1cCBvbiAqdGhpcyogQ1BVIG9ubHkuICovCiAg ICAgd3F2LT53YWtldXBfY3B1ID0gc21wX3Byb2Nlc3Nvcl9pZCgpOwotICAgIGNwdW1hc2tfY29w eSgmd3F2LT5zYXZlZF9hZmZpbml0eSwgY3Vyci0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgIGNw dW1hc2tfY29weSgmd3F2LT5zYXZlZF9hZmZpbml0eSwgY3Vyci0+c2NoZWRfaXRlbS0+Y3B1X2hh cmRfYWZmaW5pdHkpOwogICAgIGlmICggdmNwdV9zZXRfaGFyZF9hZmZpbml0eShjdXJyLCBjcHVt YXNrX29mKHdxdi0+d2FrZXVwX2NwdSkpICkKICAgICB7CiAgICAgICAgIGdkcHJpbnRrKFhFTkxP R19FUlIsICJVbmFibGUgdG8gc2V0IHZjcHUgYWZmaW5pdHlcbiIpOwpAQCAtMTk5LDcgKzIwMCw3 IEBAIHZvaWQgY2hlY2tfd2FrZXVwX2Zyb21fd2FpdCh2b2lkKQogICAgIHsKICAgICAgICAgLyog UmUtc2V0IFZDUFUgYWZmaW5pdHkgYW5kIHJlLWVudGVyIHRoZSBzY2hlZHVsZXIuICovCiAgICAg ICAgIHN0cnVjdCB2Y3B1ICpjdXJyID0gY3VycmVudDsKLSAgICAgICAgY3B1bWFza19jb3B5KCZ3 cXYtPnNhdmVkX2FmZmluaXR5LCBjdXJyLT5jcHVfaGFyZF9hZmZpbml0eSk7CisgICAgICAgIGNw dW1hc2tfY29weSgmd3F2LT5zYXZlZF9hZmZpbml0eSwgY3Vyci0+c2NoZWRfaXRlbS0+Y3B1X2hh cmRfYWZmaW5pdHkpOwogICAgICAgICBpZiAoIHZjcHVfc2V0X2hhcmRfYWZmaW5pdHkoY3Vyciwg Y3B1bWFza19vZih3cXYtPndha2V1cF9jcHUpKSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGdk cHJpbnRrKFhFTkxPR19FUlIsICJVbmFibGUgdG8gc2V0IHZjcHUgYWZmaW5pdHlcbiIpOwpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLWlmLmggYi94ZW4vaW5jbHVkZS94ZW4vc2No ZWQtaWYuaAppbmRleCBkNTQ5ZWY2OTZlLi41NzcwMTViODY4IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS94ZW4vc2NoZWQtaWYuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQtaWYuaApAQCAt NTQsNiArNTQsMjIgQEAgc3RydWN0IHNjaGVkX2l0ZW0gewogICAgIHZvaWQgICAgICAgICAgICAg ICAgICAqcHJpdjsgICAgICAvKiBzY2hlZHVsZXIgcHJpdmF0ZSBkYXRhICovCiAgICAgc3RydWN0 IHNjaGVkX2l0ZW0gICAgICpuZXh0X2luX2xpc3Q7CiAgICAgc3RydWN0IHNjaGVkX3Jlc291cmNl ICpyZXM7CisKKyAgICAvKiBMYXN0IHRpbWUgd2hlbiBpdGVtIGhhcyBiZWVuIHNjaGVkdWxlZCBv dXQuICovCisgICAgdWludDY0X3QgICAgICAgICAgICAgICBsYXN0X3J1bl90aW1lOworCisgICAg LyogSXRlbSBuZWVkcyBhZmZpbml0eSByZXN0b3JlZC4gKi8KKyAgICBib29sICAgICAgICAgICAg ICAgICAgIGFmZmluaXR5X2Jyb2tlbjsKKyAgICAvKiBEb2VzIHNvZnQgYWZmaW5pdHkgYWN0dWFs bHkgcGxheSBhIHJvbGUgKGdpdmVuIGhhcmQgYWZmaW5pdHkpPyAqLworICAgIGJvb2wgICAgICAg ICAgICAgICAgICAgc29mdF9hZmZfZWZmZWN0aXZlOworICAgIC8qIEJpdG1hc2sgb2YgQ1BVcyBv biB3aGljaCB0aGlzIFZDUFUgbWF5IHJ1bi4gKi8KKyAgICBjcHVtYXNrX3Zhcl90ICAgICAgICAg IGNwdV9oYXJkX2FmZmluaXR5OworICAgIC8qIFVzZWQgdG8gY2hhbmdlIGFmZmluaXR5IHRlbXBv cmFyaWx5LiAqLworICAgIGNwdW1hc2tfdmFyX3QgICAgICAgICAgY3B1X2hhcmRfYWZmaW5pdHlf dG1wOworICAgIC8qIFVzZWQgdG8gcmVzdG9yZSBhZmZpbml0eSBhY3Jvc3MgUzMuICovCisgICAg Y3B1bWFza192YXJfdCAgICAgICAgICBjcHVfaGFyZF9hZmZpbml0eV9zYXZlZDsKKyAgICAvKiBC aXRtYXNrIG9mIENQVXMgb24gd2hpY2ggdGhpcyBWQ1BVIHByZWZlcnMgdG8gcnVuLiAqLworICAg IGNwdW1hc2tfdmFyX3QgICAgICAgICAgY3B1X3NvZnRfYWZmaW5pdHk7CiB9OwogCiAjZGVmaW5l IGZvcl9lYWNoX3NjaGVkX2l0ZW0oZCwgZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKQEAgLTI5MCwxMSArMzA2LDExIEBAIHN0YXRpYyBpbmxpbmUgY3B1bWFza190 KiBjcHVwb29sX2RvbWFpbl9jcHVtYXNrKHN0cnVjdCBkb21haW4gKmQpCiAgKiAqIFRoZSBoYXJk IGFmZmluaXR5IGlzIG5vdCBhIHN1YnNldCBvZiBzb2Z0IGFmZmluaXR5CiAgKiAqIFRoZXJlIGlz IGFuIG92ZXJsYXAgYmV0d2VlbiB0aGUgc29mdCBhbmQgaGFyZCBhZmZpbml0eSBtYXNrcwogICov Ci1zdGF0aWMgaW5saW5lIGludCBoYXNfc29mdF9hZmZpbml0eShjb25zdCBzdHJ1Y3QgdmNwdSAq dikKK3N0YXRpYyBpbmxpbmUgaW50IGhhc19zb2Z0X2FmZmluaXR5KGNvbnN0IHN0cnVjdCBzY2hl ZF9pdGVtICppdGVtKQogewotICAgIHJldHVybiB2LT5zb2Z0X2FmZl9lZmZlY3RpdmUgJiYKLSAg ICAgICAgICAgIWNwdW1hc2tfc3Vic2V0KGNwdXBvb2xfZG9tYWluX2NwdW1hc2sodi0+ZG9tYWlu KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPmNwdV9zb2Z0X2FmZmluaXR5KTsKKyAg ICByZXR1cm4gaXRlbS0+c29mdF9hZmZfZWZmZWN0aXZlICYmCisgICAgICAgICAgICFjcHVtYXNr X3N1YnNldChjcHVwb29sX2RvbWFpbl9jcHVtYXNrKGl0ZW0tPnZjcHUtPmRvbWFpbiksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBpdGVtLT5jcHVfc29mdF9hZmZpbml0eSk7CiB9CiAKIC8q CkBAIC0zMDQsMTcgKzMyMCwxOCBAQCBzdGF0aWMgaW5saW5lIGludCBoYXNfc29mdF9hZmZpbml0 eShjb25zdCBzdHJ1Y3QgdmNwdSAqdikKICAqIHRvIGF2b2lkIHJ1bm5pbmcgYSB2Y3B1IHdoZXJl IGl0IHdvdWxkIGxpa2UsIGJ1dCBpcyBub3QgYWxsb3dlZCB0byEKICAqLwogc3RhdGljIGlubGlu ZSB2b2lkCi1hZmZpbml0eV9iYWxhbmNlX2NwdW1hc2soY29uc3Qgc3RydWN0IHZjcHUgKnYsIGlu dCBzdGVwLCBjcHVtYXNrX3QgKm1hc2spCithZmZpbml0eV9iYWxhbmNlX2NwdW1hc2soY29uc3Qg c3RydWN0IHNjaGVkX2l0ZW0gKml0ZW0sIGludCBzdGVwLAorICAgICAgICAgICAgICAgICAgICAg ICAgIGNwdW1hc2tfdCAqbWFzaykKIHsKICAgICBpZiAoIHN0ZXAgPT0gQkFMQU5DRV9TT0ZUX0FG RklOSVRZICkKICAgICB7Ci0gICAgICAgIGNwdW1hc2tfYW5kKG1hc2ssIHYtPmNwdV9zb2Z0X2Fm ZmluaXR5LCB2LT5jcHVfaGFyZF9hZmZpbml0eSk7CisgICAgICAgIGNwdW1hc2tfYW5kKG1hc2ss IGl0ZW0tPmNwdV9zb2Z0X2FmZmluaXR5LCBpdGVtLT5jcHVfaGFyZF9hZmZpbml0eSk7CiAKICAg ICAgICAgaWYgKCB1bmxpa2VseShjcHVtYXNrX2VtcHR5KG1hc2spKSApCi0gICAgICAgICAgICBj cHVtYXNrX2NvcHkobWFzaywgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICAgICAgY3B1 bWFza19jb3B5KG1hc2ssIGl0ZW0tPmNwdV9oYXJkX2FmZmluaXR5KTsKICAgICB9CiAgICAgZWxz ZSAvKiBzdGVwID09IEJBTEFOQ0VfSEFSRF9BRkZJTklUWSAqLwotICAgICAgICBjcHVtYXNrX2Nv cHkobWFzaywgdi0+Y3B1X2hhcmRfYWZmaW5pdHkpOworICAgICAgICBjcHVtYXNrX2NvcHkobWFz aywgaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHkpOwogfQogCiAjZW5kaWYgLyogX19YRU5fU0NIRURf SUZfSF9fICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hlbi9pbmNs dWRlL3hlbi9zY2hlZC5oCmluZGV4IDJlOWNlZDI5YTguLjRiNTlkZTQyZGEgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5oCkBA IC0xNzUsOSArMTc1LDYgQEAgc3RydWN0IHZjcHUKICAgICB9IHJ1bnN0YXRlX2d1ZXN0OyAvKiBn dWVzdCBhZGRyZXNzICovCiAjZW5kaWYKIAotICAgIC8qIGxhc3QgdGltZSB3aGVuIHZDUFUgaXMg c2NoZWR1bGVkIG91dCAqLwotICAgIHVpbnQ2NF90IGxhc3RfcnVuX3RpbWU7Ci0KICAgICAvKiBI YXMgdGhlIEZQVSBiZWVuIGluaXRpYWxpc2VkPyAqLwogICAgIGJvb2wgICAgICAgICAgICAgZnB1 X2luaXRpYWxpc2VkOwogICAgIC8qIEhhcyB0aGUgRlBVIGJlZW4gdXNlZCBzaW5jZSBpdCB3YXMg bGFzdCBzYXZlZD8gKi8KQEAgLTIwMyw4ICsyMDAsNiBAQCBzdHJ1Y3QgdmNwdQogICAgIGJvb2wg ICAgICAgICAgICAgZGVmZXJfc2h1dGRvd247CiAgICAgLyogVkNQVSBpcyBwYXVzZWQgZm9sbG93 aW5nIHNodXRkb3duIHJlcXVlc3QgKGQtPmlzX3NodXR0aW5nX2Rvd24pPyAqLwogICAgIGJvb2wg ICAgICAgICAgICAgcGF1c2VkX2Zvcl9zaHV0ZG93bjsKLSAgICAvKiBWQ1BVIG5lZWQgYWZmaW5p dHkgcmVzdG9yZWQgKi8KLSAgICBib29sICAgICAgICAgICAgIGFmZmluaXR5X2Jyb2tlbjsKIAog ICAgIC8qIEEgaHlwZXJjYWxsIGhhcyBiZWVuIHByZWVtcHRlZC4gKi8KICAgICBib29sICAgICAg ICAgICAgIGhjYWxsX3ByZWVtcHRlZDsKQEAgLTIxMyw5ICsyMDgsNiBAQCBzdHJ1Y3QgdmNwdQog ICAgIGJvb2wgICAgICAgICAgICAgaGNhbGxfY29tcGF0OwogI2VuZGlmCiAKLSAgICAvKiBEb2Vz IHNvZnQgYWZmaW5pdHkgYWN0dWFsbHkgcGxheSBhIHJvbGUgKGdpdmVuIGhhcmQgYWZmaW5pdHkp PyAqLwotICAgIGJvb2wgICAgICAgICAgICAgc29mdF9hZmZfZWZmZWN0aXZlOwotCiAgICAgLyog VGhlIENQVSwgaWYgYW55LCB3aGljaCBpcyBob2xkaW5nIG9udG8gdGhpcyBWQ1BVJ3Mgc3RhdGUu ICovCiAjZGVmaW5lIFZDUFVfQ1BVX0NMRUFOICh+MHUpCiAgICAgdW5zaWduZWQgaW50ICAgICBk aXJ0eV9jcHU7CkBAIC0yNDcsMTYgKzIzOSw2IEBAIHN0cnVjdCB2Y3B1CiAgICAgZXZ0Y2huX3Bv cnRfdCAgICB2aXJxX3RvX2V2dGNobltOUl9WSVJRU107CiAgICAgc3BpbmxvY2tfdCAgICAgICB2 aXJxX2xvY2s7CiAKLSAgICAvKiBCaXRtYXNrIG9mIENQVXMgb24gd2hpY2ggdGhpcyBWQ1BVIG1h eSBydW4uICovCi0gICAgY3B1bWFza192YXJfdCAgICBjcHVfaGFyZF9hZmZpbml0eTsKLSAgICAv KiBVc2VkIHRvIGNoYW5nZSBhZmZpbml0eSB0ZW1wb3JhcmlseS4gKi8KLSAgICBjcHVtYXNrX3Zh cl90ICAgIGNwdV9oYXJkX2FmZmluaXR5X3RtcDsKLSAgICAvKiBVc2VkIHRvIHJlc3RvcmUgYWZm aW5pdHkgYWNyb3NzIFMzLiAqLwotICAgIGNwdW1hc2tfdmFyX3QgICAgY3B1X2hhcmRfYWZmaW5p dHlfc2F2ZWQ7Ci0KLSAgICAvKiBCaXRtYXNrIG9mIENQVXMgb24gd2hpY2ggdGhpcyBWQ1BVIHBy ZWZlcnMgdG8gcnVuLiAqLwotICAgIGNwdW1hc2tfdmFyX3QgICAgY3B1X3NvZnRfYWZmaW5pdHk7 Ci0KICAgICAvKiBUYXNrbGV0IGZvciBjb250aW51ZV9oeXBlcmNhbGxfb25fY3B1KCkuICovCiAg ICAgc3RydWN0IHRhc2tsZXQgICBjb250aW51ZV9oeXBlcmNhbGxfdGFza2xldDsKIApAQCAtOTY0 LDcgKzk0Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19odm1fdmNwdShjb25zdCBzdHJ1Y3Qg dmNwdSAqdikKIH0KIAogI2RlZmluZSBpc19waW5uZWRfdmNwdSh2KSAoKHYpLT5kb21haW4tPmlz X3Bpbm5lZCB8fCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjcHVtYXNrX3dlaWdodCgo diktPmNwdV9oYXJkX2FmZmluaXR5KSA9PSAxKQorICAgICAgICAgICAgIGNwdW1hc2tfd2VpZ2h0 KCh2KS0+c2NoZWRfaXRlbS0+Y3B1X2hhcmRfYWZmaW5pdHkpID09IDEpCiAjaWZkZWYgQ09ORklH X0hBU19QQVNTVEhST1VHSAogI2RlZmluZSBoYXNfaW9tbXVfcHQoZCkgKGRvbV9pb21tdShkKS0+ c3RhdHVzICE9IElPTU1VX1NUQVRVU19kaXNhYmxlZCkKICNkZWZpbmUgbmVlZF9pb21tdV9wdF9z eW5jKGQpIChkb21faW9tbXUoZCktPm5lZWRfc3luYykKLS0gCjIuMTYuNAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=