From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/7] xen/hvm: Rename d->arch.hvm_domain to d->arch.hvm Date: Tue, 28 Aug 2018 18:39:02 +0100 Message-ID: <1535477946-17892-4-git-send-email-andrew.cooper3@citrix.com> References: <1535477946-17892-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1535477946-17892-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Kevin Tian , Tamas K Lengyel , Wei Liu , Jun Nakajima , Razvan Cojocaru , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Paul Durrant , Stefano Stabellini , Jan Beulich , Boris Ostrovsky , Brian Woods , Suravee Suthikulpanit , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIHRyYWlsaW5nIF9kb21haW4gc3VmZml4IGlzIHJlZHVuZGFudCwgYnV0IGFkZHMgdG8gY29k ZSB2b2x1bWUuICBEcm9wIGl0LgoKUmVmbG93IGxpbmVzIGFzIGFwcHJvcHJpYXRlLCBhbmQgc3dp dGNoIHRvIHVzaW5nIHRoZSBuZXcgWEZSRUUvZXRjIHdyYXBwZXJzCndoZXJlIGFwcGxpY2FibGUu CgpObyBmdW5jdGlvbmFsIGNoYW5nZS4KClNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFu ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPEpCZXVsaWNoQHN1 c2UuY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KQ0M6IFJvZ2VyIFBhdSBN b25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+ CkNDOiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGV1LmNpdHJpeC5jb20+CkNDOiBQYXVs IER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpDQzogUmF6dmFuIENvam9jYXJ1IDxy Y29qb2NhcnVAYml0ZGVmZW5kZXIuY29tPgpDQzogVGFtYXMgSyBMZW5neWVsIDx0YW1hc0B0a2xl bmd5ZWwuY29tPgpDQzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3Jn PgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ0M6IEp1biBOYWthamlt YSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4KQ0M6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgpDQzogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4K Q0M6IFN1cmF2ZWUgU3V0aGlrdWxwYW5pdCA8c3VyYXZlZS5zdXRoaWt1bHBhbml0QGFtZC5jb20+ CkNDOiBCcmlhbiBXb29kcyA8YnJpYW4ud29vZHNAYW1kLmNvbT4KLS0tCiB4ZW4vYXJjaC9hcm0v ZG9tYWluX2J1aWxkLmMgICAgICAgICB8ICAgMiArLQogeGVuL2FyY2gvYXJtL2h2bS5jICAgICAg ICAgICAgICAgICAgfCAgIDQgKy0KIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgICAgICAg IHwgICAyICstCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgICAgICAgICAgICB8ICAxMCArLS0K IHhlbi9hcmNoL3g4Ni9odm0vZG9tMF9idWlsZC5jICAgICAgIHwgICA0ICstCiB4ZW4vYXJjaC94 ODYvaHZtL2RvbWFpbi5jICAgICAgICAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L2h2bS9ocGV0 LmMgICAgICAgICAgICAgfCAgIDggKy0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAg ICAgIHwgMTQ1ICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2FyY2gv eDg2L2h2bS9oeXBlcmNhbGwuYyAgICAgICAgfCAgIDYgKy0KIHhlbi9hcmNoL3g4Ni9odm0vaW50 ZXJjZXB0LmMgICAgICAgIHwgIDE0ICsrLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW8uYyAgICAgICAg ICAgICAgIHwgIDQ4ICsrKysrKy0tLS0tLQogeGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jICAgICAg ICAgICAgfCAgODAgKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vaXJxLmMg ICAgICAgICAgICAgIHwgIDUwICsrKysrKy0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vbXRyci5j ICAgICAgICAgICAgIHwgIDE0ICsrLS0KIHhlbi9hcmNoL3g4Ni9odm0vcG10aW1lci5jICAgICAg ICAgIHwgIDQwICsrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vcnRjLmMgICAgICAgICAgICAg IHwgICA0ICstCiB4ZW4vYXJjaC94ODYvaHZtL3NhdmUuYyAgICAgICAgICAgICB8ICAgNiArLQog eGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYyAgICAgICAgICAgfCAgMTggKystLS0KIHhlbi9hcmNo L3g4Ni9odm0vc3ZtL3N2bS5jICAgICAgICAgIHwgICA1ICstCiB4ZW4vYXJjaC94ODYvaHZtL3N2 bS92bWNiLmMgICAgICAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMgICAg ICAgICAgfCAgNDQgKysrKystLS0tLS0KIHhlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYyAgICAg ICAgIHwgIDU2ICsrKysrKystLS0tLS0tCiB4ZW4vYXJjaC94ODYvaHZtL3ZsYXBpYy5jICAgICAg ICAgICB8ICAgOCArLQogeGVuL2FyY2gveDg2L2h2bS92bXNpLmMgICAgICAgICAgICAgfCAgMTQg KystLQogeGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jICAgICAgICAgfCAgMTIgKy0tCiB4ZW4v YXJjaC94ODYvaHZtL3ZteC92bXguYyAgICAgICAgICB8ICA0NiArKysrKystLS0tLS0KIHhlbi9h cmNoL3g4Ni9odm0vdnBpYy5jICAgICAgICAgICAgIHwgIDIwICsrLS0tCiB4ZW4vYXJjaC94ODYv aHZtL3ZwdC5jICAgICAgICAgICAgICB8ICAyMCArKy0tLQogeGVuL2FyY2gveDg2L2lycS5jICAg ICAgICAgICAgICAgICAgfCAgMTAgKy0tCiB4ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5jICAgICAg ICAgICB8ICAxMSArKy0KIHhlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jICAgICAgIHwgICA2 ICstCiB4ZW4vYXJjaC94ODYvbW0vc2hhZG93L2NvbW1vbi5jICAgICB8ICAxOCArKy0tLQogeGVu L2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jICAgICAgfCAgIDggKy0KIHhlbi9hcmNoL3g4Ni9w aHlzZGV2LmMgICAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAg ICAgICAgICAgICB8ICAxMCArLS0KIHhlbi9hcmNoL3g4Ni90aW1lLmMgICAgICAgICAgICAgICAg IHwgICA4ICstCiB4ZW4vY29tbW9uL3ZtX2V2ZW50LmMgICAgICAgICAgICAgICB8ICAgMiArLQog eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMgICAgICAgfCAgIDIgKy0KIHhlbi9kcml2ZXJz L3ZwY2kvbXNpeC5jICAgICAgICAgICAgIHwgICA2ICstCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2Rv bWFpbi5oICAgICAgICB8ICAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCAgICAg ICAgfCAgIDQgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oICAgIHwgICAyICst CiB4ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaCAgICAgICB8ICAxMSArKy0KIHhlbi9pbmNs dWRlL2FzbS14ODYvaHZtL2lycS5oICAgICAgIHwgICAyICstCiB4ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9uZXN0ZWRodm0uaCB8ICAgNCArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdmlvYXBp Yy5oICAgfCAgIDIgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZwdC5oICAgICAgIHwgICA0 ICstCiB4ZW4vaW5jbHVkZS9hc20teDg2L2lycS5oICAgICAgICAgICB8ICAgMyArLQogNDggZmls ZXMgY2hhbmdlZCwgMzk1IGluc2VydGlvbnMoKyksIDQwNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1 aWxkLmMKaW5kZXggZTFjNzliMi4uNzJmZDJhZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2Rv bWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtMjA3NSw3 ICsyMDc1LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGV2dGNobl9hbGxvY2F0ZShzdHJ1Y3QgZG9t YWluICpkKQogICAgIHZhbCB8PSBNQVNLX0lOU1IoSFZNX1BBUkFNX0NBTExCQUNLX1RZUEVfUFBJ X0ZMQUdfTE9XX0xFVkVMLAogICAgICAgICAgICAgICAgICAgICAgSFZNX1BBUkFNX0NBTExCQUNL X1RZUEVfUFBJX0ZMQUdfTUFTSyk7CiAgICAgdmFsIHw9IGQtPmFyY2guZXZ0Y2huX2lycTsKLSAg ICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9DQUxMQkFDS19JUlFdID0gdmFs OworICAgIGQtPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fQ0FMTEJBQ0tfSVJRXSA9IHZhbDsK IH0KIAogc3RhdGljIHZvaWQgX19pbml0IGZpbmRfZ250dGFiX3JlZ2lvbihzdHJ1Y3QgZG9tYWlu ICpkLApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2h2bS5jIGIveGVuL2FyY2gvYXJtL2h2bS5j CmluZGV4IGE1NmIzZmUuLjc2YjI3YzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9odm0uYwor KysgYi94ZW4vYXJjaC9hcm0vaHZtLmMKQEAgLTU5LDExICs1OSwxMSBAQCBsb25nIGRvX2h2bV9v cCh1bnNpZ25lZCBsb25nIG9wLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKIAog ICAgICAgICBpZiAoIG9wID09IEhWTU9QX3NldF9wYXJhbSApCiAgICAgICAgIHsKLSAgICAgICAg ICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbYS5pbmRleF0gPSBhLnZhbHVlOworICAgICAg ICAgICAgZC0+YXJjaC5odm0ucGFyYW1zW2EuaW5kZXhdID0gYS52YWx1ZTsKICAgICAgICAgfQog ICAgICAgICBlbHNlCiAgICAgICAgIHsKLSAgICAgICAgICAgIGEudmFsdWUgPSBkLT5hcmNoLmh2 bV9kb21haW4ucGFyYW1zW2EuaW5kZXhdOworICAgICAgICAgICAgYS52YWx1ZSA9IGQtPmFyY2gu aHZtLnBhcmFtc1thLmluZGV4XTsKICAgICAgICAgICAgIHJjID0gY29weV90b19ndWVzdChhcmcs ICZhLCAxKSA/IC1FRkFVTFQgOiAwOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwppbmRleCA0Y2RjZDVkLi4zZGNk N2Y5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMKKysrIGIveGVuL2FyY2gveDg2 L2RvbWFpbi5jCkBAIC01MDUsNyArNTA1LDcgQEAgaW50IGFyY2hfZG9tYWluX2NyZWF0ZShzdHJ1 Y3QgZG9tYWluICpkLAogCiAgICAgLyogTmVlZCB0byBkZXRlcm1pbmUgaWYgSEFQIGlzIGVuYWJs ZWQgYmVmb3JlIGluaXRpYWxpc2luZyBwYWdpbmcgKi8KICAgICBpZiAoIGlzX2h2bV9kb21haW4o ZCkgKQotICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4uaGFwX2VuYWJsZWQgPQorICAgICAgICBk LT5hcmNoLmh2bS5oYXBfZW5hYmxlZCA9CiAgICAgICAgICAgICBodm1faGFwX3N1cHBvcnRlZCgp ICYmIChjb25maWctPmZsYWdzICYgWEVOX0RPTUNUTF9DREZfaGFwKTsKIAogICAgIGlmICggKHJj ID0gcGFnaW5nX2RvbWFpbl9pbml0KGQsIGNvbmZpZy0+ZmxhZ3MpKSAhPSAwICkKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21jdGwuYwppbmRleCBm ZGJjY2UwLi5mMzA2NjE0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tY3RsLmMKKysrIGIv eGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC03NDUsNyArNzQ1LDcgQEAgbG9uZyBhcmNoX2RvX2Rv bWN0bCgKICAgICAgICAgdW5zaWduZWQgaW50IGZtcCA9IGRvbWN0bC0+dS5pb3BvcnRfbWFwcGlu Zy5maXJzdF9tcG9ydDsKICAgICAgICAgdW5zaWduZWQgaW50IG5wID0gZG9tY3RsLT51LmlvcG9y dF9tYXBwaW5nLm5yX3BvcnRzOwogICAgICAgICB1bnNpZ25lZCBpbnQgYWRkID0gZG9tY3RsLT51 LmlvcG9ydF9tYXBwaW5nLmFkZF9tYXBwaW5nOwotICAgICAgICBzdHJ1Y3QgaHZtX2RvbWFpbiAq aHZtX2RvbWFpbjsKKyAgICAgICAgc3RydWN0IGh2bV9kb21haW4gKmh2bTsKICAgICAgICAgc3Ry dWN0IGcybV9pb3BvcnQgKmcybV9pb3BvcnQ7CiAgICAgICAgIGludCBmb3VuZCA9IDA7CiAKQEAg LTc3NCwxNCArNzc0LDE0IEBAIGxvbmcgYXJjaF9kb19kb21jdGwoCiAgICAgICAgIGlmICggcmV0 ICkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGh2bV9kb21haW4gPSAmZC0+YXJjaC5o dm1fZG9tYWluOworICAgICAgICBodm0gPSAmZC0+YXJjaC5odm07CiAgICAgICAgIGlmICggYWRk ICkKICAgICAgICAgewogICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8KICAgICAgICAg ICAgICAgICAgICAiaW9wb3J0X21hcDphZGQ6IGRvbSVkIGdwb3J0PSV4IG1wb3J0PSV4IG5yPSV4 XG4iLAogICAgICAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgZmdwLCBmbXAsIG5wKTsKIAot ICAgICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShnMm1faW9wb3J0LCAmaHZtX2RvbWFpbi0+ ZzJtX2lvcG9ydF9saXN0LCBsaXN0KQorICAgICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeShn Mm1faW9wb3J0LCAmaHZtLT5nMm1faW9wb3J0X2xpc3QsIGxpc3QpCiAgICAgICAgICAgICAgICAg aWYgKGcybV9pb3BvcnQtPm1wb3J0ID09IGZtcCApCiAgICAgICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgICAgICBnMm1faW9wb3J0LT5ncG9ydCA9IGZncDsKQEAgLTgwMCw3ICs4MDAsNyBA QCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAgICAgICAgICAgICAgIGcybV9pb3BvcnQtPmdwb3J0 ID0gZmdwOwogICAgICAgICAgICAgICAgIGcybV9pb3BvcnQtPm1wb3J0ID0gZm1wOwogICAgICAg ICAgICAgICAgIGcybV9pb3BvcnQtPm5wID0gbnA7Ci0gICAgICAgICAgICAgICAgbGlzdF9hZGRf dGFpbCgmZzJtX2lvcG9ydC0+bGlzdCwgJmh2bV9kb21haW4tPmcybV9pb3BvcnRfbGlzdCk7Cisg ICAgICAgICAgICAgICAgbGlzdF9hZGRfdGFpbCgmZzJtX2lvcG9ydC0+bGlzdCwgJmh2bS0+ZzJt X2lvcG9ydF9saXN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICggIXJldCApCiAg ICAgICAgICAgICAgICAgcmV0ID0gaW9wb3J0c19wZXJtaXRfYWNjZXNzKGQsIGZtcCwgZm1wICsg bnAgLSAxKTsKQEAgLTgxNSw3ICs4MTUsNyBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAgICAg ICAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8KICAgICAgICAgICAgICAgICAgICAiaW9wb3J0X21h cDpyZW1vdmU6IGRvbSVkIGdwb3J0PSV4IG1wb3J0PSV4IG5yPSV4XG4iLAogICAgICAgICAgICAg ICAgICAgIGQtPmRvbWFpbl9pZCwgZmdwLCBmbXAsIG5wKTsKLSAgICAgICAgICAgIGxpc3RfZm9y X2VhY2hfZW50cnkoZzJtX2lvcG9ydCwgJmh2bV9kb21haW4tPmcybV9pb3BvcnRfbGlzdCwgbGlz dCkKKyAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkoZzJtX2lvcG9ydCwgJmh2bS0+ZzJt X2lvcG9ydF9saXN0LCBsaXN0KQogICAgICAgICAgICAgICAgIGlmICggZzJtX2lvcG9ydC0+bXBv cnQgPT0gZm1wICkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIGxpc3Rf ZGVsKCZnMm1faW9wb3J0LT5saXN0KTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vZG9t MF9idWlsZC5jIGIveGVuL2FyY2gveDg2L2h2bS9kb20wX2J1aWxkLmMKaW5kZXggNTA2NTcyOS4u MjJlMzM1ZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9kb20wX2J1aWxkLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9kb20wX2J1aWxkLmMKQEAgLTI0MCw3ICsyNDAsNyBAQCBzdGF0aWMg aW50IF9faW5pdCBwdmhfc2V0dXBfdm14X3JlYWxtb2RlX2hlbHBlcnMoc3RydWN0IGRvbWFpbiAq ZCkKICAgICAgICAgaWYgKCBodm1fY29weV90b19ndWVzdF9waHlzKGdhZGRyLCBOVUxMLCBIVk1f Vk04Nl9UU1NfU0laRSwgdikgIT0KICAgICAgICAgICAgICBIVk1UUkFOU19va2F5ICkKICAgICAg ICAgICAgIHByaW50aygiVW5hYmxlIHRvIHplcm8gVk04NiBUU1MgYXJlYVxuIik7Ci0gICAgICAg IGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX1ZNODZfVFNTX1NJWkVEXSA9Cisg ICAgICAgIGQtPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fVk04Nl9UU1NfU0laRURdID0KICAg ICAgICAgICAgIFZNODZfVFNTX1VQREFURUQgfCAoKHVpbnQ2NF90KUhWTV9WTTg2X1RTU19TSVpF IDw8IDMyKSB8IGdhZGRyOwogICAgICAgICBpZiAoIHB2aF9hZGRfbWVtX3JhbmdlKGQsIGdhZGRy LCBnYWRkciArIEhWTV9WTTg2X1RTU19TSVpFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEU4MjBfUkVTRVJWRUQpICkKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgaW50IF9faW5p dCBwdmhfc2V0dXBfdm14X3JlYWxtb2RlX2hlbHBlcnMoc3RydWN0IGRvbWFpbiAqZCkKICAgICB3 cml0ZV8zMmJpdF9wc2VfaWRlbnRtYXAoaWRlbnRfcHQpOwogICAgIHVubWFwX2RvbWFpbl9wYWdl KGlkZW50X3B0KTsKICAgICBwdXRfcGFnZShtZm5fdG9fcGFnZShtZm4pKTsKLSAgICBkLT5hcmNo Lmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9JREVOVF9QVF0gPSBnYWRkcjsKKyAgICBkLT5h cmNoLmh2bS5wYXJhbXNbSFZNX1BBUkFNX0lERU5UX1BUXSA9IGdhZGRyOwogICAgIGlmICggcHZo X2FkZF9tZW1fcmFuZ2UoZCwgZ2FkZHIsIGdhZGRyICsgUEFHRV9TSVpFLCBFODIwX1JFU0VSVkVE KSApCiAgICAgICAgICAgICBwcmludGsoIlVuYWJsZSB0byBzZXQgaWRlbnRpdHkgcGFnZSB0YWJs ZXMgYXMgcmVzZXJ2ZWQgaW4gdGhlIG1lbW9yeSBtYXBcbiIpOwogCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2h2bS9kb21haW4uYwppbmRleCBh ZTcwYWFmLi44YTJjODNlIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2RvbWFpbi5jCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vZG9tYWluLmMKQEAgLTMxOSw3ICszMTksNyBAQCBpbnQgYXJj aF9zZXRfaW5mb19odm1fZ3Vlc3Qoc3RydWN0IHZjcHUgKnYsIGNvbnN0IHZjcHVfaHZtX2NvbnRl eHRfdCAqY3R4KQogICAgIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNjX29mZnNldCA9CiAgICAg ICAgIGQtPnZjcHVbMF0tPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNjX29mZnNldDsKICAgICBodm1f c2V0X3RzY19vZmZzZXQodiwgdi0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nfb2Zmc2V0LAotICAg ICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4uc3luY190c2MpOworICAgICAg ICAgICAgICAgICAgICAgICBkLT5hcmNoLmh2bS5zeW5jX3RzYyk7CiAKICAgICBwYWdpbmdfdXBk YXRlX3BhZ2luZ19tb2Rlcyh2KTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9ocGV0 LmMgYi94ZW4vYXJjaC94ODYvaHZtL2hwZXQuYwppbmRleCBhNTk0MjU0Li44MDkwNjk5IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2hwZXQuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2hw ZXQuYwpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1ZGUgPHhlbi9ldmVudC5oPgogI2luY2x1ZGUg PHhlbi90cmFjZS5oPgogCi0jZGVmaW5lIGRvbWFpbl92aHBldCh4KSAoJih4KS0+YXJjaC5odm1f ZG9tYWluLnBsX3RpbWUtPnZocGV0KQorI2RlZmluZSBkb21haW5fdmhwZXQoeCkgKCYoeCktPmFy Y2guaHZtLnBsX3RpbWUtPnZocGV0KQogI2RlZmluZSB2Y3B1X3ZocGV0KHgpICAgKGRvbWFpbl92 aHBldCgoeCktPmRvbWFpbikpCiAjZGVmaW5lIHZocGV0X2RvbWFpbih4KSAoY29udGFpbmVyX29m KHgsIHN0cnVjdCBwbF90aW1lLCB2aHBldCktPmRvbWFpbikKICNkZWZpbmUgdmhwZXRfdmNwdSh4 KSAgIChwdF9nbG9iYWxfdmNwdV90YXJnZXQodmhwZXRfZG9tYWluKHgpKSkKQEAgLTE2NCw3ICsx NjQsNyBAQCBzdGF0aWMgaW50IGhwZXRfcmVhZCgKICAgICB1bnNpZ25lZCBsb25nIHJlc3VsdDsK ICAgICB1aW50NjRfdCB2YWw7CiAKLSAgICBpZiAoICF2LT5kb21haW4tPmFyY2guaHZtX2RvbWFp bi5wYXJhbXNbSFZNX1BBUkFNX0hQRVRfRU5BQkxFRF0gKQorICAgIGlmICggIXYtPmRvbWFpbi0+ YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9IUEVUX0VOQUJMRURdICkKICAgICB7CiAgICAgICAg IHJlc3VsdCA9IH4wdWw7CiAgICAgICAgIGdvdG8gb3V0OwpAQCAtMzU0LDcgKzM1NCw3IEBAIHN0 YXRpYyBpbnQgaHBldF93cml0ZSgKICNkZWZpbmUgc2V0X3N0YXJ0X3RpbWVyKG4pICAgKF9fc2V0 X2JpdCgobiksICZzdGFydF90aW1lcnMpKQogI2RlZmluZSBzZXRfcmVzdGFydF90aW1lcihuKSAo c2V0X3N0b3BfdGltZXIobiksc2V0X3N0YXJ0X3RpbWVyKG4pKQogCi0gICAgaWYgKCAhdi0+ZG9t YWluLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9IUEVUX0VOQUJMRURdICkKKyAg ICBpZiAoICF2LT5kb21haW4tPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fSFBFVF9FTkFCTEVE XSApCiAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgYWRkciAmPSBIUEVUX01NQVBfU0laRS0xOwpA QCAtNzM1LDcgKzczNSw3IEBAIHZvaWQgaHBldF9pbml0KHN0cnVjdCBkb21haW4gKmQpCiAKICAg ICBocGV0X3NldChkb21haW5fdmhwZXQoZCkpOwogICAgIHJlZ2lzdGVyX21taW9faGFuZGxlcihk LCAmaHBldF9tbWlvX29wcyk7Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFS QU1fSFBFVF9FTkFCTEVEXSA9IDE7CisgICAgZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9I UEVUX0VOQUJMRURdID0gMTsKIH0KIAogdm9pZCBocGV0X2RlaW5pdChzdHJ1Y3QgZG9tYWluICpk KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0v aHZtLmMKaW5kZXggNzJjNTFmYS4uZjg5NTMzOSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2 bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0zODIsNyArMzgyLDcgQEAg dTY0IGh2bV9nZXRfdHNjX3NjYWxpbmdfcmF0aW8odTMyIGd0c2Nfa2h6KQogCiB1NjQgaHZtX3Nj YWxlX3RzYyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkLCB1NjQgdHNjKQogewotICAgIHU2NCByYXRp byA9IGQtPmFyY2guaHZtX2RvbWFpbi50c2Nfc2NhbGluZ19yYXRpbzsKKyAgICB1NjQgcmF0aW8g PSBkLT5hcmNoLmh2bS50c2Nfc2NhbGluZ19yYXRpbzsKICAgICB1NjQgZHVtbXk7CiAKICAgICBp ZiAoIHJhdGlvID09IGh2bV9kZWZhdWx0X3RzY19zY2FsaW5nX3JhdGlvICkKQEAgLTU4MywxNCAr NTgzLDE0IEBAIGludCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCkKICAg ICAgICAgcmV0dXJuIC1FSU5WQUw7CiAgICAgfQogCi0gICAgc3Bpbl9sb2NrX2luaXQoJmQtPmFy Y2guaHZtX2RvbWFpbi5pcnFfbG9jayk7Ci0gICAgc3Bpbl9sb2NrX2luaXQoJmQtPmFyY2guaHZt X2RvbWFpbi51Y19sb2NrKTsKLSAgICBzcGluX2xvY2tfaW5pdCgmZC0+YXJjaC5odm1fZG9tYWlu LndyaXRlX21hcC5sb2NrKTsKLSAgICByd2xvY2tfaW5pdCgmZC0+YXJjaC5odm1fZG9tYWluLm1t Y2ZnX2xvY2spOwotICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bV9kb21haW4ud3JpdGVf bWFwLmxpc3QpOwotICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bV9kb21haW4uZzJtX2lv cG9ydF9saXN0KTsKLSAgICBJTklUX0xJU1RfSEVBRCgmZC0+YXJjaC5odm1fZG9tYWluLm1tY2Zn X3JlZ2lvbnMpOwotICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bV9kb21haW4ubXNpeF90 YWJsZXMpOworICAgIHNwaW5fbG9ja19pbml0KCZkLT5hcmNoLmh2bS5pcnFfbG9jayk7CisgICAg c3Bpbl9sb2NrX2luaXQoJmQtPmFyY2guaHZtLnVjX2xvY2spOworICAgIHNwaW5fbG9ja19pbml0 KCZkLT5hcmNoLmh2bS53cml0ZV9tYXAubG9jayk7CisgICAgcndsb2NrX2luaXQoJmQtPmFyY2gu aHZtLm1tY2ZnX2xvY2spOworICAgIElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bS53cml0ZV9t YXAubGlzdCk7CisgICAgSU5JVF9MSVNUX0hFQUQoJmQtPmFyY2guaHZtLmcybV9pb3BvcnRfbGlz dCk7CisgICAgSU5JVF9MSVNUX0hFQUQoJmQtPmFyY2guaHZtLm1tY2ZnX3JlZ2lvbnMpOworICAg IElOSVRfTElTVF9IRUFEKCZkLT5hcmNoLmh2bS5tc2l4X3RhYmxlcyk7CiAKICAgICByYyA9IGNy ZWF0ZV9wZXJkb21haW5fbWFwcGluZyhkLCBQRVJET01BSU5fVklSVF9TVEFSVCwgMCwgTlVMTCwg TlVMTCk7CiAgICAgaWYgKCByYyApCkBAIC02MDMsMTUgKzYwMywxNSBAQCBpbnQgaHZtX2RvbWFp bl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIGdvdG8gZmFpbDA7CiAKICAg ICBucl9nc2lzID0gaXNfaGFyZHdhcmVfZG9tYWluKGQpID8gbnJfaXJxc19nc2kgOiBOUl9IVk1f RE9NVV9JUlFTOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi5wbF90aW1lID0geHphbGxvYyhzdHJ1 Y3QgcGxfdGltZSk7Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtcyA9IHh6YWxsb2NfYXJy YXkodWludDY0X3QsIEhWTV9OUl9QQVJBTVMpOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi5pb19o YW5kbGVyID0geHphbGxvY19hcnJheShzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5SX0lPX0hBTkRMRVJTKTsK LSAgICBkLT5hcmNoLmh2bV9kb21haW4uaXJxID0geHphbGxvY19ieXRlcyhodm1faXJxX3NpemUo bnJfZ3NpcykpOworICAgIGQtPmFyY2guaHZtLnBsX3RpbWUgPSB4emFsbG9jKHN0cnVjdCBwbF90 aW1lKTsKKyAgICBkLT5hcmNoLmh2bS5wYXJhbXMgPSB4emFsbG9jX2FycmF5KHVpbnQ2NF90LCBI Vk1fTlJfUEFSQU1TKTsKKyAgICBkLT5hcmNoLmh2bS5pb19oYW5kbGVyID0geHphbGxvY19hcnJh eShzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlJfSU9fSEFORExFUlMpOworICAgIGQtPmFyY2guaHZtLmlycSA9IHh6YWxs b2NfYnl0ZXMoaHZtX2lycV9zaXplKG5yX2dzaXMpKTsKIAogICAgIHJjID0gLUVOT01FTTsKLSAg ICBpZiAoICFkLT5hcmNoLmh2bV9kb21haW4ucGxfdGltZSB8fCAhZC0+YXJjaC5odm1fZG9tYWlu LmlycSB8fAotICAgICAgICAgIWQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXMgIHx8ICFkLT5hcmNo Lmh2bV9kb21haW4uaW9faGFuZGxlciApCisgICAgaWYgKCAhZC0+YXJjaC5odm0ucGxfdGltZSB8 fCAhZC0+YXJjaC5odm0uaXJxIHx8CisgICAgICAgICAhZC0+YXJjaC5odm0ucGFyYW1zICB8fCAh ZC0+YXJjaC5odm0uaW9faGFuZGxlciApCiAgICAgICAgIGdvdG8gZmFpbDE7CiAKICAgICAvKiBT ZXQgdGhlIG51bWJlciBvZiBHU0lzICovCkBAIC02MjEsMjEgKzYyMSwyMSBAQCBpbnQgaHZtX2Rv bWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQpCiAgICAgQVNTRVJUKGh2bV9kb21haW5f aXJxKGQpLT5ucl9nc2lzID49IE5SX0lTQUlSUVMpOwogCiAgICAgLyogbmVlZCBsaW5rIHRvIGNv bnRhaW5pbmcgZG9tYWluICovCi0gICAgZC0+YXJjaC5odm1fZG9tYWluLnBsX3RpbWUtPmRvbWFp biA9IGQ7CisgICAgZC0+YXJjaC5odm0ucGxfdGltZS0+ZG9tYWluID0gZDsKIAogICAgIC8qIFNl dCB0aGUgZGVmYXVsdCBJTyBCaXRtYXAuICovCiAgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4o ZCkgKQogICAgIHsKLSAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLmlvX2JpdG1hcCA9IF94bWFs bG9jKEhWTV9JT0JJVE1BUF9TSVpFLCBQQUdFX1NJWkUpOwotICAgICAgICBpZiAoIGQtPmFyY2gu aHZtX2RvbWFpbi5pb19iaXRtYXAgPT0gTlVMTCApCisgICAgICAgIGQtPmFyY2guaHZtLmlvX2Jp dG1hcCA9IF94bWFsbG9jKEhWTV9JT0JJVE1BUF9TSVpFLCBQQUdFX1NJWkUpOworICAgICAgICBp ZiAoIGQtPmFyY2guaHZtLmlvX2JpdG1hcCA9PSBOVUxMICkKICAgICAgICAgewogICAgICAgICAg ICAgcmMgPSAtRU5PTUVNOwogICAgICAgICAgICAgZ290byBmYWlsMTsKICAgICAgICAgfQotICAg ICAgICBtZW1zZXQoZC0+YXJjaC5odm1fZG9tYWluLmlvX2JpdG1hcCwgfjAsIEhWTV9JT0JJVE1B UF9TSVpFKTsKKyAgICAgICAgbWVtc2V0KGQtPmFyY2guaHZtLmlvX2JpdG1hcCwgfjAsIEhWTV9J T0JJVE1BUF9TSVpFKTsKICAgICB9CiAgICAgZWxzZQotICAgICAgICBkLT5hcmNoLmh2bV9kb21h aW4uaW9fYml0bWFwID0gaHZtX2lvX2JpdG1hcDsKKyAgICAgICAgZC0+YXJjaC5odm0uaW9fYml0 bWFwID0gaHZtX2lvX2JpdG1hcDsKIAogICAgIHJlZ2lzdGVyX2cybV9wb3J0aW9faGFuZGxlcihk KTsKICAgICByZWdpc3Rlcl92cGNpX3BvcnRpb19oYW5kbGVyKGQpOwpAQCAtNjQ0LDcgKzY0NCw3 IEBAIGludCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCkKIAogICAgIGh2 bV9pbml0X2d1ZXN0X3RpbWUoZCk7CiAKLSAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hW TV9QQVJBTV9UUklQTEVfRkFVTFRfUkVBU09OXSA9IFNIVVRET1dOX3JlYm9vdDsKKyAgICBkLT5h cmNoLmh2bS5wYXJhbXNbSFZNX1BBUkFNX1RSSVBMRV9GQVVMVF9SRUFTT05dID0gU0hVVERPV05f cmVib290OwogCiAgICAgdnBpY19pbml0KGQpOwogCkBAIC02NTksNyArNjU5LDcgQEAgaW50IGh2 bV9kb21haW5faW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkKQogICAgIHJlZ2lzdGVyX3BvcnRp b19oYW5kbGVyKGQsIDB4ZTksIDEsIGh2bV9wcmludF9saW5lKTsKIAogICAgIGlmICggaHZtX3Rz Y19zY2FsaW5nX3N1cHBvcnRlZCApCi0gICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi50c2Nfc2Nh bGluZ19yYXRpbyA9IGh2bV9kZWZhdWx0X3RzY19zY2FsaW5nX3JhdGlvOworICAgICAgICBkLT5h cmNoLmh2bS50c2Nfc2NhbGluZ19yYXRpbyA9IGh2bV9kZWZhdWx0X3RzY19zY2FsaW5nX3JhdGlv OwogCiAgICAgcmMgPSBodm1fZnVuY3MuZG9tYWluX2luaXRpYWxpc2UoZCk7CiAgICAgaWYgKCBy YyAhPSAwICkKQEAgLTY3MywxMSArNjczLDExIEBAIGludCBodm1fZG9tYWluX2luaXRpYWxpc2Uo c3RydWN0IGRvbWFpbiAqZCkKICAgICB2aW9hcGljX2RlaW5pdChkKTsKICBmYWlsMToKICAgICBp ZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCi0gICAgICAgIHhmcmVlKGQtPmFyY2guaHZtX2Rv bWFpbi5pb19iaXRtYXApOwotICAgIHhmcmVlKGQtPmFyY2guaHZtX2RvbWFpbi5pb19oYW5kbGVy KTsKLSAgICB4ZnJlZShkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zKTsKLSAgICB4ZnJlZShkLT5h cmNoLmh2bV9kb21haW4ucGxfdGltZSk7Ci0gICAgeGZyZWUoZC0+YXJjaC5odm1fZG9tYWluLmly cSk7CisgICAgICAgIHhmcmVlKGQtPmFyY2guaHZtLmlvX2JpdG1hcCk7CisgICAgeGZyZWUoZC0+ YXJjaC5odm0uaW9faGFuZGxlcik7CisgICAgeGZyZWUoZC0+YXJjaC5odm0ucGFyYW1zKTsKKyAg ICB4ZnJlZShkLT5hcmNoLmh2bS5wbF90aW1lKTsKKyAgICB4ZnJlZShkLT5hcmNoLmh2bS5pcnEp OwogIGZhaWwwOgogICAgIGh2bV9kZXN0cm95X2NhY2hlYXR0cl9yZWdpb25fbGlzdChkKTsKICAg ICBkZXN0cm95X3BlcmRvbWFpbl9tYXBwaW5nKGQsIFBFUkRPTUFJTl9WSVJUX1NUQVJULCAwKTsK QEAgLTcxMCwxMSArNzEwLDggQEAgdm9pZCBodm1fZG9tYWluX2Rlc3Ryb3koc3RydWN0IGRvbWFp biAqZCkKICAgICBzdHJ1Y3QgbGlzdF9oZWFkICppb3BvcnRfbGlzdCwgKnRtcDsKICAgICBzdHJ1 Y3QgZzJtX2lvcG9ydCAqaW9wb3J0OwogCi0gICAgeGZyZWUoZC0+YXJjaC5odm1fZG9tYWluLmlv X2hhbmRsZXIpOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi5pb19oYW5kbGVyID0gTlVMTDsKLQot ICAgIHhmcmVlKGQtPmFyY2guaHZtX2RvbWFpbi5wYXJhbXMpOwotICAgIGQtPmFyY2guaHZtX2Rv bWFpbi5wYXJhbXMgPSBOVUxMOworICAgIFhGUkVFKGQtPmFyY2guaHZtLmlvX2hhbmRsZXIpOwor ICAgIFhGUkVFKGQtPmFyY2guaHZtLnBhcmFtcyk7CiAKICAgICBodm1fZGVzdHJveV9jYWNoZWF0 dHJfcmVnaW9uX2xpc3QoZCk7CiAKQEAgLTcyMywxNCArNzIwLDEwIEBAIHZvaWQgaHZtX2RvbWFp bl9kZXN0cm95KHN0cnVjdCBkb21haW4gKmQpCiAgICAgc3RkdmdhX2RlaW5pdChkKTsKICAgICB2 aW9hcGljX2RlaW5pdChkKTsKIAotICAgIHhmcmVlKGQtPmFyY2guaHZtX2RvbWFpbi5wbF90aW1l KTsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4ucGxfdGltZSA9IE5VTEw7Ci0KLSAgICB4ZnJlZShk LT5hcmNoLmh2bV9kb21haW4uaXJxKTsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4uaXJxID0gTlVM TDsKKyAgICBYRlJFRShkLT5hcmNoLmh2bS5wbF90aW1lKTsKKyAgICBYRlJFRShkLT5hcmNoLmh2 bS5pcnEpOwogCi0gICAgbGlzdF9mb3JfZWFjaF9zYWZlICggaW9wb3J0X2xpc3QsIHRtcCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAmZC0+YXJjaC5odm1fZG9tYWluLmcybV9pb3BvcnRfbGlz dCApCisgICAgbGlzdF9mb3JfZWFjaF9zYWZlICggaW9wb3J0X2xpc3QsIHRtcCwgJmQtPmFyY2gu aHZtLmcybV9pb3BvcnRfbGlzdCApCiAgICAgewogICAgICAgICBpb3BvcnQgPSBsaXN0X2VudHJ5 KGlvcG9ydF9saXN0LCBzdHJ1Y3QgZzJtX2lvcG9ydCwgbGlzdCk7CiAgICAgICAgIGxpc3RfZGVs KCZpb3BvcnQtPmxpc3QpOwpAQCAtNzk4LDcgKzc5MSw3IEBAIHN0YXRpYyBpbnQgaHZtX3NhdmVf Y3B1X2N0eHQoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgpCiAgICAg ICAgIC8qIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyB2bWNzL3ZtY2IgYml0cyAqLwogICAgICAgICBo dm1fZnVuY3Muc2F2ZV9jcHVfY3R4dCh2LCAmY3R4dCk7CiAKLSAgICAgICAgY3R4dC50c2MgPSBo dm1fZ2V0X2d1ZXN0X3RzY19maXhlZCh2LCBkLT5hcmNoLmh2bV9kb21haW4uc3luY190c2MpOwor ICAgICAgICBjdHh0LnRzYyA9IGh2bV9nZXRfZ3Vlc3RfdHNjX2ZpeGVkKHYsIGQtPmFyY2guaHZt LnN5bmNfdHNjKTsKIAogICAgICAgICBjdHh0Lm1zcl90c2NfYXV4ID0gaHZtX21zcl90c2NfYXV4 KHYpOwogCkBAIC0xMDUzLDcgKzEwNDYsNyBAQCBzdGF0aWMgaW50IGh2bV9sb2FkX2NwdV9jdHh0 KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogCiAgICAgdi0+YXJj aC5odm1fdmNwdS5tc3JfdHNjX2F1eCA9IGN0eHQubXNyX3RzY19hdXg7CiAKLSAgICBodm1fc2V0 X2d1ZXN0X3RzY19maXhlZCh2LCBjdHh0LnRzYywgZC0+YXJjaC5odm1fZG9tYWluLnN5bmNfdHNj KTsKKyAgICBodm1fc2V0X2d1ZXN0X3RzY19maXhlZCh2LCBjdHh0LnRzYywgZC0+YXJjaC5odm0u c3luY190c2MpOwogCiAgICAgc2VnLmxpbWl0ID0gY3R4dC5pZHRyX2xpbWl0OwogICAgIHNlZy5i YXNlID0gY3R4dC5pZHRyX2Jhc2U7CkBAIC0xNjM3LDcgKzE2MzAsNyBAQCB2b2lkIGh2bV90cmlw bGVfZmF1bHQodm9pZCkKIHsKICAgICBzdHJ1Y3QgdmNwdSAqdiA9IGN1cnJlbnQ7CiAgICAgc3Ry dWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKLSAgICB1OCByZWFzb24gPSBkLT5hcmNoLmh2bV9k b21haW4ucGFyYW1zW0hWTV9QQVJBTV9UUklQTEVfRkFVTFRfUkVBU09OXTsKKyAgICB1OCByZWFz b24gPSBkLT5hcmNoLmh2bS5wYXJhbXNbSFZNX1BBUkFNX1RSSVBMRV9GQVVMVF9SRUFTT05dOwog CiAgICAgZ3ByaW50ayhYRU5MT0dfSU5GTywKICAgICAgICAgICAgICJUcmlwbGUgZmF1bHQgLSBp bnZva2luZyBIVk0gc2h1dGRvd24gYWN0aW9uICVkXG4iLApAQCAtMjA0Niw3ICsyMDM5LDcgQEAg c3RhdGljIGJvb2xfdCBkb21haW5fZXhpdF91Y19tb2RlKHN0cnVjdCB2Y3B1ICp2KQogCiBzdGF0 aWMgdm9pZCBodm1fc2V0X3VjX21vZGUoc3RydWN0IHZjcHUgKnYsIGJvb2xfdCBpc19pbl91Y19t b2RlKQogewotICAgIHYtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLmlzX2luX3VjX21vZGUgPSBp c19pbl91Y19tb2RlOworICAgIHYtPmRvbWFpbi0+YXJjaC5odm0uaXNfaW5fdWNfbW9kZSA9IGlz X2luX3VjX21vZGU7CiAgICAgc2hhZG93X2Jsb3dfdGFibGVzX3Blcl9kb21haW4odi0+ZG9tYWlu KTsKIH0KIApAQCAtMjEzMCwxMCArMjEyMywxMCBAQCB2b2lkIGh2bV9zaGFkb3dfaGFuZGxlX2Nk KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIHZhbHVlKQogICAgIGlmICggdmFsdWUgJiBY ODZfQ1IwX0NEICkKICAgICB7CiAgICAgICAgIC8qIEVudGVyaW5nIG5vIGZpbGwgY2FjaGUgbW9k ZS4gKi8KLSAgICAgICAgc3Bpbl9sb2NrKCZ2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi51Y19s b2NrKTsKKyAgICAgICAgc3Bpbl9sb2NrKCZ2LT5kb21haW4tPmFyY2guaHZtLnVjX2xvY2spOwog ICAgICAgICB2LT5hcmNoLmh2bV92Y3B1LmNhY2hlX21vZGUgPSBOT19GSUxMX0NBQ0hFX01PREU7 CiAKLSAgICAgICAgaWYgKCAhdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4uaXNfaW5fdWNfbW9k ZSApCisgICAgICAgIGlmICggIXYtPmRvbWFpbi0+YXJjaC5odm0uaXNfaW5fdWNfbW9kZSApCiAg ICAgICAgIHsKICAgICAgICAgICAgIGRvbWFpbl9wYXVzZV9ub3N5bmModi0+ZG9tYWluKTsKIApA QCAtMjE0MywxOSArMjEzNiwxOSBAQCB2b2lkIGh2bV9zaGFkb3dfaGFuZGxlX2NkKHN0cnVjdCB2 Y3B1ICp2LCB1bnNpZ25lZCBsb25nIHZhbHVlKQogCiAgICAgICAgICAgICBkb21haW5fdW5wYXVz ZSh2LT5kb21haW4pOwogICAgICAgICB9Ci0gICAgICAgIHNwaW5fdW5sb2NrKCZ2LT5kb21haW4t PmFyY2guaHZtX2RvbWFpbi51Y19sb2NrKTsKKyAgICAgICAgc3Bpbl91bmxvY2soJnYtPmRvbWFp bi0+YXJjaC5odm0udWNfbG9jayk7CiAgICAgfQogICAgIGVsc2UgaWYgKCAhKHZhbHVlICYgWDg2 X0NSMF9DRCkgJiYKICAgICAgICAgICAgICAgKHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfbW9kZSA9 PSBOT19GSUxMX0NBQ0hFX01PREUpICkKICAgICB7CiAgICAgICAgIC8qIEV4aXQgZnJvbSBubyBm aWxsIGNhY2hlIG1vZGUuICovCi0gICAgICAgIHNwaW5fbG9jaygmdi0+ZG9tYWluLT5hcmNoLmh2 bV9kb21haW4udWNfbG9jayk7CisgICAgICAgIHNwaW5fbG9jaygmdi0+ZG9tYWluLT5hcmNoLmh2 bS51Y19sb2NrKTsKICAgICAgICAgdi0+YXJjaC5odm1fdmNwdS5jYWNoZV9tb2RlID0gTk9STUFM X0NBQ0hFX01PREU7CiAKICAgICAgICAgaWYgKCBkb21haW5fZXhpdF91Y19tb2RlKHYpICkKICAg ICAgICAgICAgIGh2bV9zZXRfdWNfbW9kZSh2LCAwKTsKIAotICAgICAgICBzcGluX3VubG9jaygm di0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4udWNfbG9jayk7CisgICAgICAgIHNwaW5fdW5sb2Nr KCZ2LT5kb21haW4tPmFyY2guaHZtLnVjX2xvY2spOwogICAgIH0KIH0KIApAQCAtMjU5Nyw5ICsy NTkwLDkgQEAgc3RhdGljIHZvaWQgKl9odm1fbWFwX2d1ZXN0X2ZyYW1lKHVuc2lnbmVkIGxvbmcg Z2ZuLCBib29sX3QgcGVybWFuZW50LAogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAg IH0KICAgICAgICAgdHJhY2stPnBhZ2UgPSBwYWdlOwotICAgICAgICBzcGluX2xvY2soJmQtPmFy Y2guaHZtX2RvbWFpbi53cml0ZV9tYXAubG9jayk7Ci0gICAgICAgIGxpc3RfYWRkX3RhaWwoJnRy YWNrLT5saXN0LCAmZC0+YXJjaC5odm1fZG9tYWluLndyaXRlX21hcC5saXN0KTsKLSAgICAgICAg c3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi53cml0ZV9tYXAubG9jayk7CisgICAgICAg IHNwaW5fbG9jaygmZC0+YXJjaC5odm0ud3JpdGVfbWFwLmxvY2spOworICAgICAgICBsaXN0X2Fk ZF90YWlsKCZ0cmFjay0+bGlzdCwgJmQtPmFyY2guaHZtLndyaXRlX21hcC5saXN0KTsKKyAgICAg ICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtLndyaXRlX21hcC5sb2NrKTsKICAgICB9CiAKICAg ICBtYXAgPSBfX21hcF9kb21haW5fcGFnZV9nbG9iYWwocGFnZSk7CkBAIC0yNjQwLDggKzI2MzMs OCBAQCB2b2lkIGh2bV91bm1hcF9ndWVzdF9mcmFtZSh2b2lkICpwLCBib29sX3QgcGVybWFuZW50 KQogICAgICAgICBzdHJ1Y3QgaHZtX3dyaXRlX21hcCAqdHJhY2s7CiAKICAgICAgICAgdW5tYXBf ZG9tYWluX3BhZ2VfZ2xvYmFsKHApOwotICAgICAgICBzcGluX2xvY2soJmQtPmFyY2guaHZtX2Rv bWFpbi53cml0ZV9tYXAubG9jayk7Ci0gICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkodHJhY2ss ICZkLT5hcmNoLmh2bV9kb21haW4ud3JpdGVfbWFwLmxpc3QsIGxpc3QpCisgICAgICAgIHNwaW5f bG9jaygmZC0+YXJjaC5odm0ud3JpdGVfbWFwLmxvY2spOworICAgICAgICBsaXN0X2Zvcl9lYWNo X2VudHJ5KHRyYWNrLCAmZC0+YXJjaC5odm0ud3JpdGVfbWFwLmxpc3QsIGxpc3QpCiAgICAgICAg ICAgICBpZiAoIHRyYWNrLT5wYWdlID09IHBhZ2UgKQogICAgICAgICAgICAgewogICAgICAgICAg ICAgICAgIHBhZ2luZ19tYXJrX2RpcnR5KGQsIG1mbik7CkBAIC0yNjQ5LDcgKzI2NDIsNyBAQCB2 b2lkIGh2bV91bm1hcF9ndWVzdF9mcmFtZSh2b2lkICpwLCBib29sX3QgcGVybWFuZW50KQogICAg ICAgICAgICAgICAgIHhmcmVlKHRyYWNrKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgICAgIH0KLSAgICAgICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi53cml0ZV9t YXAubG9jayk7CisgICAgICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLmh2bS53cml0ZV9tYXAubG9j ayk7CiAgICAgfQogCiAgICAgcHV0X3BhZ2UocGFnZSk7CkBAIC0yNjU5LDEwICsyNjUyLDEwIEBA IHZvaWQgaHZtX21hcHBlZF9ndWVzdF9mcmFtZXNfbWFya19kaXJ0eShzdHJ1Y3QgZG9tYWluICpk KQogewogICAgIHN0cnVjdCBodm1fd3JpdGVfbWFwICp0cmFjazsKIAotICAgIHNwaW5fbG9jaygm ZC0+YXJjaC5odm1fZG9tYWluLndyaXRlX21hcC5sb2NrKTsKLSAgICBsaXN0X2Zvcl9lYWNoX2Vu dHJ5KHRyYWNrLCAmZC0+YXJjaC5odm1fZG9tYWluLndyaXRlX21hcC5saXN0LCBsaXN0KQorICAg IHNwaW5fbG9jaygmZC0+YXJjaC5odm0ud3JpdGVfbWFwLmxvY2spOworICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkodHJhY2ssICZkLT5hcmNoLmh2bS53cml0ZV9tYXAubGlzdCwgbGlzdCkKICAgICAg ICAgcGFnaW5nX21hcmtfZGlydHkoZCwgcGFnZV90b19tZm4odHJhY2stPnBhZ2UpKTsKLSAgICBz cGluX3VubG9jaygmZC0+YXJjaC5odm1fZG9tYWluLndyaXRlX21hcC5sb2NrKTsKKyAgICBzcGlu X3VubG9jaygmZC0+YXJjaC5odm0ud3JpdGVfbWFwLmxvY2spOwogfQogCiBzdGF0aWMgdm9pZCAq aHZtX21hcF9lbnRyeSh1bnNpZ25lZCBsb25nIHZhLCBib29sX3QgKndyaXRhYmxlKQpAQCAtMzk0 Miw3ICszOTM1LDcgQEAgdm9pZCBodm1fdmNwdV9yZXNldF9zdGF0ZShzdHJ1Y3QgdmNwdSAqdiwg dWludDE2X3QgY3MsIHVpbnQxNl90IGlwKQogICAgIHYtPmFyY2guaHZtX3ZjcHUuY2FjaGVfdHNj X29mZnNldCA9CiAgICAgICAgIHYtPmRvbWFpbi0+dmNwdVswXS0+YXJjaC5odm1fdmNwdS5jYWNo ZV90c2Nfb2Zmc2V0OwogICAgIGh2bV9zZXRfdHNjX29mZnNldCh2LCB2LT5hcmNoLmh2bV92Y3B1 LmNhY2hlX3RzY19vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtX2Rv bWFpbi5zeW5jX3RzYyk7CisgICAgICAgICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtLnN5bmNf dHNjKTsKIAogICAgIHYtPmFyY2guaHZtX3ZjcHUubXNyX3RzY19hZGp1c3QgPSAwOwogCkBAIC0z OTY0LDcgKzM5NTcsNyBAQCBzdGF0aWMgdm9pZCBodm1fczNfc3VzcGVuZChzdHJ1Y3QgZG9tYWlu ICpkKQogICAgIGRvbWFpbl9sb2NrKGQpOwogCiAgICAgaWYgKCBkLT5pc19keWluZyB8fCAoZC0+ dmNwdSA9PSBOVUxMKSB8fCAoZC0+dmNwdVswXSA9PSBOVUxMKSB8fAotICAgICAgICAgdGVzdF9h bmRfc2V0X2Jvb2woZC0+YXJjaC5odm1fZG9tYWluLmlzX3MzX3N1c3BlbmRlZCkgKQorICAgICAg ICAgdGVzdF9hbmRfc2V0X2Jvb2woZC0+YXJjaC5odm0uaXNfczNfc3VzcGVuZGVkKSApCiAgICAg ewogICAgICAgICBkb21haW5fdW5sb2NrKGQpOwogICAgICAgICBkb21haW5fdW5wYXVzZShkKTsK QEAgLTM5OTQsNyArMzk4Nyw3IEBAIHN0YXRpYyB2b2lkIGh2bV9zM19zdXNwZW5kKHN0cnVjdCBk b21haW4gKmQpCiAKIHN0YXRpYyB2b2lkIGh2bV9zM19yZXN1bWUoc3RydWN0IGRvbWFpbiAqZCkK IHsKLSAgICBpZiAoIHRlc3RfYW5kX2NsZWFyX2Jvb2woZC0+YXJjaC5odm1fZG9tYWluLmlzX3Mz X3N1c3BlbmRlZCkgKQorICAgIGlmICggdGVzdF9hbmRfY2xlYXJfYm9vbChkLT5hcmNoLmh2bS5p c19zM19zdXNwZW5kZWQpICkKICAgICB7CiAgICAgICAgIHN0cnVjdCB2Y3B1ICp2OwogCkBAIC00 MDc0LDcgKzQwNjcsNyBAQCBzdGF0aWMgaW50IGh2bW9wX3NldF9ldnRjaG5fdXBjYWxsX3ZlY3Rv cigKIHN0YXRpYyBpbnQgaHZtX2FsbG93X3NldF9wYXJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB4ZW5faHZtX3BhcmFtICph KQogewotICAgIHVpbnQ2NF90IHZhbHVlID0gZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1thLT5p bmRleF07CisgICAgdWludDY0X3QgdmFsdWUgPSBkLT5hcmNoLmh2bS5wYXJhbXNbYS0+aW5kZXhd OwogICAgIGludCByYzsKIAogICAgIHJjID0geHNtX2h2bV9wYXJhbShYU01fVEFSR0VULCBkLCBI Vk1PUF9zZXRfcGFyYW0pOwpAQCAtNDE3Nyw3ICs0MTcwLDcgQEAgc3RhdGljIGludCBodm1vcF9z ZXRfcGFyYW0oCiAgICAgICAgICAqLwogICAgICAgICBpZiAoICFwYWdpbmdfbW9kZV9oYXAoZCkg fHwgIWNwdV9oYXNfdm14ICkKICAgICAgICAgewotICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9t YWluLnBhcmFtc1thLmluZGV4XSA9IGEudmFsdWU7CisgICAgICAgICAgICBkLT5hcmNoLmh2bS5w YXJhbXNbYS5pbmRleF0gPSBhLnZhbHVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K IApAQCAtNDE5Miw3ICs0MTg1LDcgQEAgc3RhdGljIGludCBodm1vcF9zZXRfcGFyYW0oCiAKICAg ICAgICAgcmMgPSAwOwogICAgICAgICBkb21haW5fcGF1c2UoZCk7Ci0gICAgICAgIGQtPmFyY2gu aHZtX2RvbWFpbi5wYXJhbXNbYS5pbmRleF0gPSBhLnZhbHVlOworICAgICAgICBkLT5hcmNoLmh2 bS5wYXJhbXNbYS5pbmRleF0gPSBhLnZhbHVlOwogICAgICAgICBmb3JfZWFjaF92Y3B1ICggZCwg diApCiAgICAgICAgICAgICBwYWdpbmdfdXBkYXRlX2NyMyh2LCBmYWxzZSk7CiAgICAgICAgIGRv bWFpbl91bnBhdXNlKGQpOwpAQCAtNDI0MSwxMSArNDIzNCwxMSBAQCBzdGF0aWMgaW50IGh2bW9w X3NldF9wYXJhbSgKICAgICAgICAgaWYgKCAhcGFnaW5nX21vZGVfaGFwKGQpICYmIGEudmFsdWUg KQogICAgICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICBpZiAoIGEudmFsdWUgJiYKLSAg ICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9BTFRQMk1dICkK KyAgICAgICAgICAgICBkLT5hcmNoLmh2bS5wYXJhbXNbSFZNX1BBUkFNX0FMVFAyTV0gKQogICAg ICAgICAgICAgcmMgPSAtRUlOVkFMOwogICAgICAgICAvKiBTZXQgdXAgTkhWTSBzdGF0ZSBmb3Ig YW55IHZjcHVzIHRoYXQgYXJlIGFscmVhZHkgdXAuICovCiAgICAgICAgIGlmICggYS52YWx1ZSAm JgotICAgICAgICAgICAgICFkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9ORVNU RURIVk1dICkKKyAgICAgICAgICAgICAhZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9ORVNU RURIVk1dICkKICAgICAgICAgICAgIGZvcl9lYWNoX3ZjcHUoZCwgdikKICAgICAgICAgICAgICAg ICBpZiAoIHJjID09IDAgKQogICAgICAgICAgICAgICAgICAgICByYyA9IG5lc3RlZGh2bV92Y3B1 X2luaXRpYWxpc2Uodik7CkBAIC00MjYwLDcgKzQyNTMsNyBAQCBzdGF0aWMgaW50IGh2bW9wX3Nl dF9wYXJhbSgKICAgICAgICAgaWYgKCBhLnZhbHVlID4gWEVOX0FMVFAyTV9saW1pdGVkICkKICAg ICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgaWYgKCBhLnZhbHVlICYmCi0gICAgICAg ICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fTkVTVEVESFZNXSApCisg ICAgICAgICAgICAgZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9ORVNURURIVk1dICkKICAg ICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIVk1fUEFS QU1fQlVGSU9SRVFfRVZUQ0hOOgpAQCAtNDI3MSwyMCArNDI2NCwyMCBAQCBzdGF0aWMgaW50IGh2 bW9wX3NldF9wYXJhbSgKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgYnJlYWs7 CiAgICAgY2FzZSBIVk1fUEFSQU1fSU9SRVFfU0VSVkVSX1BGTjoKLSAgICAgICAgZC0+YXJjaC5o dm1fZG9tYWluLmlvcmVxX2dmbi5iYXNlID0gYS52YWx1ZTsKKyAgICAgICAgZC0+YXJjaC5odm0u aW9yZXFfZ2ZuLmJhc2UgPSBhLnZhbHVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEhWTV9Q QVJBTV9OUl9JT1JFUV9TRVJWRVJfUEFHRVM6CiAgICAgewogICAgICAgICB1bnNpZ25lZCBpbnQg aTsKIAogICAgICAgICBpZiAoIGEudmFsdWUgPT0gMCB8fAotICAgICAgICAgICAgIGEudmFsdWUg PiBzaXplb2YoZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX2dmbi5tYXNrKSAqIDggKQorICAgICAg ICAgICAgIGEudmFsdWUgPiBzaXplb2YoZC0+YXJjaC5odm0uaW9yZXFfZ2ZuLm1hc2spICogOCAp CiAgICAgICAgIHsKICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICB9CiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgYS52YWx1ZTsgaSsrICkKLSAg ICAgICAgICAgIHNldF9iaXQoaSwgJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9nZm4ubWFzayk7 CisgICAgICAgICAgICBzZXRfYml0KGksICZkLT5hcmNoLmh2bS5pb3JlcV9nZm4ubWFzayk7CiAK ICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNDMzOSw3ICs0MzMyLDcgQEAgc3RhdGljIGludCBo dm1vcF9zZXRfcGFyYW0oCiAgICAgaWYgKCByYyAhPSAwICkKICAgICAgICAgZ290byBvdXQ7CiAK LSAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW2EuaW5kZXhdID0gYS52YWx1ZTsKKyAgICBk LT5hcmNoLmh2bS5wYXJhbXNbYS5pbmRleF0gPSBhLnZhbHVlOwogCiAgICAgSFZNX0RCR19MT0co REJHX0xFVkVMX0hDQUxMLCAic2V0IHBhcmFtICV1ID0gJSJQUkl4NjQsCiAgICAgICAgICAgICAg ICAgYS5pbmRleCwgYS52YWx1ZSk7CkBAIC00NDE4LDE1ICs0NDExLDE1IEBAIHN0YXRpYyBpbnQg aHZtb3BfZ2V0X3BhcmFtKAogICAgIHN3aXRjaCAoIGEuaW5kZXggKQogICAgIHsKICAgICBjYXNl IEhWTV9QQVJBTV9BQ1BJX1NfU1RBVEU6Ci0gICAgICAgIGEudmFsdWUgPSBkLT5hcmNoLmh2bV9k b21haW4uaXNfczNfc3VzcGVuZGVkID8gMyA6IDA7CisgICAgICAgIGEudmFsdWUgPSBkLT5hcmNo Lmh2bS5pc19zM19zdXNwZW5kZWQgPyAzIDogMDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl IEhWTV9QQVJBTV9WTTg2X1RTUzoKLSAgICAgICAgYS52YWx1ZSA9ICh1aW50MzJfdClkLT5hcmNo Lmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9WTTg2X1RTU19TSVpFRF07CisgICAgICAgIGEu dmFsdWUgPSAodWludDMyX3QpZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9WTTg2X1RTU19T SVpFRF07CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVk1fUEFSQU1fVk04Nl9UU1NfU0la RUQ6Ci0gICAgICAgIGEudmFsdWUgPSBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJB TV9WTTg2X1RTU19TSVpFRF0gJgorICAgICAgICBhLnZhbHVlID0gZC0+YXJjaC5odm0ucGFyYW1z W0hWTV9QQVJBTV9WTTg2X1RTU19TSVpFRF0gJgogICAgICAgICAgICAgICAgICAgflZNODZfVFNT X1VQREFURUQ7CiAgICAgICAgIGJyZWFrOwogCkBAIC00NDUzLDcgKzQ0NDYsNyBAQCBzdGF0aWMg aW50IGh2bW9wX2dldF9wYXJhbSgKIAogICAgIC8qRkFMTFRIUlUqLwogICAgIGRlZmF1bHQ6Ci0g ICAgICAgIGEudmFsdWUgPSBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW2EuaW5kZXhdOworICAg ICAgICBhLnZhbHVlID0gZC0+YXJjaC5odm0ucGFyYW1zW2EuaW5kZXhdOwogICAgICAgICBicmVh azsKICAgICB9CiAKQEAgLTQ1NTMsNyArNDU0Niw3IEBAIHN0YXRpYyBpbnQgZG9fYWx0cDJtX29w KAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBtb2RlID0gZC0+YXJjaC5odm1fZG9t YWluLnBhcmFtc1tIVk1fUEFSQU1fQUxUUDJNXTsKKyAgICBtb2RlID0gZC0+YXJjaC5odm0ucGFy YW1zW0hWTV9QQVJBTV9BTFRQMk1dOwogCiAgICAgaWYgKCBYRU5fQUxUUDJNX2Rpc2FibGVkID09 IG1vZGUgKQogICAgIHsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMg Yi94ZW4vYXJjaC94ODYvaHZtL2h5cGVyY2FsbC5jCmluZGV4IDg1ZWFjZDcuLjNkN2FjNDkgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaHlwZXJjYWxsLmMKKysrIGIveGVuL2FyY2gveDg2 L2h2bS9oeXBlcmNhbGwuYwpAQCAtNDEsNyArNDEsNyBAQCBzdGF0aWMgbG9uZyBodm1fbWVtb3J5 X29wKGludCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgICAgICBy YyA9IGNvbXBhdF9tZW1vcnlfb3AoY21kLCBhcmcpOwogCiAgICAgaWYgKCAoY21kICYgTUVNT1Bf Q01EX01BU0spID09IFhFTk1FTV9kZWNyZWFzZV9yZXNlcnZhdGlvbiApCi0gICAgICAgIGN1cnIt PmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLnFlbXVfbWFwY2FjaGVfaW52YWxpZGF0ZSA9IHRydWU7 CisgICAgICAgIGN1cnItPmRvbWFpbi0+YXJjaC5odm0ucWVtdV9tYXBjYWNoZV9pbnZhbGlkYXRl ID0gdHJ1ZTsKIAogICAgIHJldHVybiByYzsKIH0KQEAgLTI4Niw4ICsyODYsOCBAQCBpbnQgaHZt X2h5cGVyY2FsbChzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICBpZiAoIGN1cnItPmhj YWxsX3ByZWVtcHRlZCApCiAgICAgICAgIHJldHVybiBIVk1fSENBTExfcHJlZW1wdGVkOwogCi0g ICAgaWYgKCB1bmxpa2VseShjdXJyZC0+YXJjaC5odm1fZG9tYWluLnFlbXVfbWFwY2FjaGVfaW52 YWxpZGF0ZSkgJiYKLSAgICAgICAgIHRlc3RfYW5kX2NsZWFyX2Jvb2woY3VycmQtPmFyY2guaHZt X2RvbWFpbi5xZW11X21hcGNhY2hlX2ludmFsaWRhdGUpICkKKyAgICBpZiAoIHVubGlrZWx5KGN1 cnJkLT5hcmNoLmh2bS5xZW11X21hcGNhY2hlX2ludmFsaWRhdGUpICYmCisgICAgICAgICB0ZXN0 X2FuZF9jbGVhcl9ib29sKGN1cnJkLT5hcmNoLmh2bS5xZW11X21hcGNhY2hlX2ludmFsaWRhdGUp ICkKICAgICAgICAgc2VuZF9pbnZhbGlkYXRlX3JlcSgpOwogCiAgICAgcmV0dXJuIEhWTV9IQ0FM TF9jb21wbGV0ZWQ7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jIGIv eGVuL2FyY2gveDg2L2h2bS9pbnRlcmNlcHQuYwppbmRleCAyYmMxNTZkLi5hYWMyMmM1IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9o dm0vaW50ZXJjZXB0LmMKQEAgLTIxOSwxMCArMjE5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aHZtX2lvX2hhbmRsZXIgKmh2bV9maW5kX2lvX2hhbmRsZXIoY29uc3QgaW9yZXFfdCAqcCkKICAg ICBCVUdfT04oKHAtPnR5cGUgIT0gSU9SRVFfVFlQRV9QSU8pICYmCiAgICAgICAgICAgIChwLT50 eXBlICE9IElPUkVRX1RZUEVfQ09QWSkpOwogCi0gICAgZm9yICggaSA9IDA7IGkgPCBjdXJyX2Qt PmFyY2guaHZtX2RvbWFpbi5pb19oYW5kbGVyX2NvdW50OyBpKysgKQorICAgIGZvciAoIGkgPSAw OyBpIDwgY3Vycl9kLT5hcmNoLmh2bS5pb19oYW5kbGVyX2NvdW50OyBpKysgKQogICAgIHsKICAg ICAgICAgY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyID0KLSAgICAgICAgICAg ICZjdXJyX2QtPmFyY2guaHZtX2RvbWFpbi5pb19oYW5kbGVyW2ldOworICAgICAgICAgICAgJmN1 cnJfZC0+YXJjaC5odm0uaW9faGFuZGxlcltpXTsKICAgICAgICAgY29uc3Qgc3RydWN0IGh2bV9p b19vcHMgKm9wcyA9IGhhbmRsZXItPm9wczsKIAogICAgICAgICBpZiAoIGhhbmRsZXItPnR5cGUg IT0gcC0+dHlwZSApCkBAIC0yNTcsOSArMjU3LDkgQEAgaW50IGh2bV9pb19pbnRlcmNlcHQoaW9y ZXFfdCAqcCkKIAogc3RydWN0IGh2bV9pb19oYW5kbGVyICpodm1fbmV4dF9pb19oYW5kbGVyKHN0 cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgdW5zaWduZWQgaW50IGkgPSBkLT5hcmNoLmh2bV9kb21h aW4uaW9faGFuZGxlcl9jb3VudCsrOworICAgIHVuc2lnbmVkIGludCBpID0gZC0+YXJjaC5odm0u aW9faGFuZGxlcl9jb3VudCsrOwogCi0gICAgQVNTRVJUKGQtPmFyY2guaHZtX2RvbWFpbi5pb19o YW5kbGVyKTsKKyAgICBBU1NFUlQoZC0+YXJjaC5odm0uaW9faGFuZGxlcik7CiAKICAgICBpZiAo IGkgPT0gTlJfSU9fSEFORExFUlMgKQogICAgIHsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdHJ1Y3Qg aHZtX2lvX2hhbmRsZXIgKmh2bV9uZXh0X2lvX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCkKICAg ICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgcmV0dXJuICZkLT5hcmNoLmh2bV9kb21h aW4uaW9faGFuZGxlcltpXTsKKyAgICByZXR1cm4gJmQtPmFyY2guaHZtLmlvX2hhbmRsZXJbaV07 CiB9CiAKIHZvaWQgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKHN0cnVjdCBkb21haW4gKmQsCkBAIC0z MDMsMTAgKzMwMywxMCBAQCB2b2lkIHJlbG9jYXRlX3BvcnRpb19oYW5kbGVyKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGludCBvbGRfcG9ydCwKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAot ICAgIGZvciAoIGkgPSAwOyBpIDwgZC0+YXJjaC5odm1fZG9tYWluLmlvX2hhbmRsZXJfY291bnQ7 IGkrKyApCisgICAgZm9yICggaSA9IDA7IGkgPCBkLT5hcmNoLmh2bS5pb19oYW5kbGVyX2NvdW50 OyBpKysgKQogICAgIHsKICAgICAgICAgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyID0K LSAgICAgICAgICAgICZkLT5hcmNoLmh2bV9kb21haW4uaW9faGFuZGxlcltpXTsKKyAgICAgICAg ICAgICZkLT5hcmNoLmh2bS5pb19oYW5kbGVyW2ldOwogCiAgICAgICAgIGlmICggaGFuZGxlci0+ dHlwZSAhPSBJT1JFUV9UWVBFX1BJTyApCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vaW8uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaW8uYwppbmRleCBi ZjRkODc0Li5mMWVhN2Q3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvLmMKKysrIGIv eGVuL2FyY2gveDg2L2h2bS9pby5jCkBAIC0xNzksMTIgKzE3OSwxMiBAQCBzdGF0aWMgYm9vbF90 IGcybV9wb3J0aW9fYWNjZXB0KGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW9yZXFfdCAqcCkKIHsKICAg ICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7Ci0gICAgY29uc3Qgc3RydWN0IGh2bV9kb21h aW4gKmh2bV9kb21haW4gPSAmY3Vyci0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW47CisgICAgY29u c3Qgc3RydWN0IGh2bV9kb21haW4gKmh2bSA9ICZjdXJyLT5kb21haW4tPmFyY2guaHZtOwogICAg IHN0cnVjdCBodm1fdmNwdV9pbyAqdmlvID0gJmN1cnItPmFyY2guaHZtX3ZjcHUuaHZtX2lvOwog ICAgIHN0cnVjdCBnMm1faW9wb3J0ICpnMm1faW9wb3J0OwogICAgIHVuc2lnbmVkIGludCBzdGFy dCwgZW5kOwogCi0gICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggZzJtX2lvcG9ydCwgJmh2bV9kb21h aW4tPmcybV9pb3BvcnRfbGlzdCwgbGlzdCApCisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggZzJt X2lvcG9ydCwgJmh2bS0+ZzJtX2lvcG9ydF9saXN0LCBsaXN0ICkKICAgICB7CiAgICAgICAgIHN0 YXJ0ID0gZzJtX2lvcG9ydC0+Z3BvcnQ7CiAgICAgICAgIGVuZCA9IHN0YXJ0ICsgZzJtX2lvcG9y dC0+bnA7CkBAIC0zMTMsMTIgKzMxMywxMiBAQCBzdGF0aWMgaW50IHZwY2lfcG9ydGlvX3JlYWQo Y29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLAogICAgIGlmICggYWRkciA9PSAw eGNmOCApCiAgICAgewogICAgICAgICBBU1NFUlQoc2l6ZSA9PSA0KTsKLSAgICAgICAgKmRhdGEg PSBkLT5hcmNoLmh2bV9kb21haW4ucGNpX2NmODsKKyAgICAgICAgKmRhdGEgPSBkLT5hcmNoLmh2 bS5wY2lfY2Y4OwogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogICAgIH0KIAogICAgIEFT U0VSVCgoYWRkciAmIH4zKSA9PSAweGNmYyk7Ci0gICAgY2Y4ID0gQUNDRVNTX09OQ0UoZC0+YXJj aC5odm1fZG9tYWluLnBjaV9jZjgpOworICAgIGNmOCA9IEFDQ0VTU19PTkNFKGQtPmFyY2guaHZt LnBjaV9jZjgpOwogICAgIGlmICggIUNGOF9FTkFCTEVEKGNmOCkgKQogICAgICAgICByZXR1cm4g WDg2RU1VTF9VTkhBTkRMRUFCTEU7CiAKQEAgLTM0MywxMiArMzQzLDEyIEBAIHN0YXRpYyBpbnQg dnBjaV9wb3J0aW9fd3JpdGUoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLAog ICAgIGlmICggYWRkciA9PSAweGNmOCApCiAgICAgewogICAgICAgICBBU1NFUlQoc2l6ZSA9PSA0 KTsKLSAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBjaV9jZjggPSBkYXRhOworICAgICAgICBk LT5hcmNoLmh2bS5wY2lfY2Y4ID0gZGF0YTsKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsK ICAgICB9CiAKICAgICBBU1NFUlQoKGFkZHIgJiB+MykgPT0gMHhjZmMpOwotICAgIGNmOCA9IEFD Q0VTU19PTkNFKGQtPmFyY2guaHZtX2RvbWFpbi5wY2lfY2Y4KTsKKyAgICBjZjggPSBBQ0NFU1Nf T05DRShkLT5hcmNoLmh2bS5wY2lfY2Y4KTsKICAgICBpZiAoICFDRjhfRU5BQkxFRChjZjgpICkK ICAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwogCkBAIC0zOTcsNyArMzk3LDcg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBodm1fbW1jZmcgKnZwY2lfbW1jZmdfZmluZChjb25zdCBz dHJ1Y3QgZG9tYWluICpkLAogewogICAgIGNvbnN0IHN0cnVjdCBodm1fbW1jZmcgKm1tY2ZnOwog Ci0gICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIG1tY2ZnLCAmZC0+YXJjaC5odm1fZG9tYWluLm1t Y2ZnX3JlZ2lvbnMsIG5leHQgKQorICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBtbWNmZywgJmQt PmFyY2guaHZtLm1tY2ZnX3JlZ2lvbnMsIG5leHQgKQogICAgICAgICBpZiAoIGFkZHIgPj0gbW1j ZmctPmFkZHIgJiYgYWRkciA8IG1tY2ZnLT5hZGRyICsgbW1jZmctPnNpemUgKQogICAgICAgICAg ICAgcmV0dXJuIG1tY2ZnOwogCkBAIC00MjAsOSArNDIwLDkgQEAgc3RhdGljIGludCB2cGNpX21t Y2ZnX2FjY2VwdChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyKQogICAgIHN0cnVj dCBkb21haW4gKmQgPSB2LT5kb21haW47CiAgICAgYm9vbCBmb3VuZDsKIAotICAgIHJlYWRfbG9j aygmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX2xvY2spOworICAgIHJlYWRfbG9jaygmZC0+YXJj aC5odm0ubW1jZmdfbG9jayk7CiAgICAgZm91bmQgPSB2cGNpX21tY2ZnX2ZpbmQoZCwgYWRkcik7 Ci0gICAgcmVhZF91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5tbWNmZ19sb2NrKTsKKyAgICBy ZWFkX3VubG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7CiAKICAgICByZXR1cm4gZm91bmQ7 CiB9CkBAIC00MzcsMTYgKzQzNywxNiBAQCBzdGF0aWMgaW50IHZwY2lfbW1jZmdfcmVhZChzdHJ1 Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLAogCiAgICAgKmRhdGEgPSB+MHVsOwogCi0g ICAgcmVhZF9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4ubW1jZmdfbG9jayk7CisgICAgcmVhZF9s b2NrKCZkLT5hcmNoLmh2bS5tbWNmZ19sb2NrKTsKICAgICBtbWNmZyA9IHZwY2lfbW1jZmdfZmlu ZChkLCBhZGRyKTsKICAgICBpZiAoICFtbWNmZyApCiAgICAgewotICAgICAgICByZWFkX3VubG9j aygmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX2xvY2spOworICAgICAgICByZWFkX3VubG9jaygm ZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7CiAgICAgICAgIHJldHVybiBYODZFTVVMX1JFVFJZOwog ICAgIH0KIAogICAgIHJlZyA9IHZwY2lfbW1jZmdfZGVjb2RlX2FkZHIobW1jZmcsIGFkZHIsICZz YmRmKTsKLSAgICByZWFkX3VubG9jaygmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX2xvY2spOwor ICAgIHJlYWRfdW5sb2NrKCZkLT5hcmNoLmh2bS5tbWNmZ19sb2NrKTsKIAogICAgIGlmICggIXZw Y2lfYWNjZXNzX2FsbG93ZWQocmVnLCBsZW4pIHx8CiAgICAgICAgICAocmVnICsgbGVuKSA+IFBD SV9DRkdfU1BBQ0VfRVhQX1NJWkUgKQpAQCAtNDc5LDE2ICs0NzksMTYgQEAgc3RhdGljIGludCB2 cGNpX21tY2ZnX3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsCiAgICAg dW5zaWduZWQgaW50IHJlZzsKICAgICBwY2lfc2JkZl90IHNiZGY7CiAKLSAgICByZWFkX2xvY2so JmQtPmFyY2guaHZtX2RvbWFpbi5tbWNmZ19sb2NrKTsKKyAgICByZWFkX2xvY2soJmQtPmFyY2gu aHZtLm1tY2ZnX2xvY2spOwogICAgIG1tY2ZnID0gdnBjaV9tbWNmZ19maW5kKGQsIGFkZHIpOwog ICAgIGlmICggIW1tY2ZnICkKICAgICB7Ci0gICAgICAgIHJlYWRfdW5sb2NrKCZkLT5hcmNoLmh2 bV9kb21haW4ubW1jZmdfbG9jayk7CisgICAgICAgIHJlYWRfdW5sb2NrKCZkLT5hcmNoLmh2bS5t bWNmZ19sb2NrKTsKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfUkVUUlk7CiAgICAgfQogCiAgICAg cmVnID0gdnBjaV9tbWNmZ19kZWNvZGVfYWRkcihtbWNmZywgYWRkciwgJnNiZGYpOwotICAgIHJl YWRfdW5sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4ubW1jZmdfbG9jayk7CisgICAgcmVhZF91bmxv Y2soJmQtPmFyY2guaHZtLm1tY2ZnX2xvY2spOwogCiAgICAgaWYgKCAhdnBjaV9hY2Nlc3NfYWxs b3dlZChyZWcsIGxlbikgfHwKICAgICAgICAgIChyZWcgKyBsZW4pID4gUENJX0NGR19TUEFDRV9F WFBfU0laRSApCkBAIC01MjcsOCArNTI3LDggQEAgaW50IHJlZ2lzdGVyX3ZwY2lfbW1jZmdfaGFu ZGxlcihzdHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IGFkZHIsCiAgICAgbmV3LT5zZWdtZW50ID0g c2VnOwogICAgIG5ldy0+c2l6ZSA9IChlbmRfYnVzIC0gc3RhcnRfYnVzICsgMSkgPDwgMjA7CiAK LSAgICB3cml0ZV9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4ubW1jZmdfbG9jayk7Ci0gICAgbGlz dF9mb3JfZWFjaF9lbnRyeSAoIG1tY2ZnLCAmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX3JlZ2lv bnMsIG5leHQgKQorICAgIHdyaXRlX2xvY2soJmQtPmFyY2guaHZtLm1tY2ZnX2xvY2spOworICAg IGxpc3RfZm9yX2VhY2hfZW50cnkgKCBtbWNmZywgJmQtPmFyY2guaHZtLm1tY2ZnX3JlZ2lvbnMs IG5leHQgKQogICAgICAgICBpZiAoIG5ldy0+YWRkciA8IG1tY2ZnLT5hZGRyICsgbW1jZmctPnNp emUgJiYKICAgICAgICAgICAgICBtbWNmZy0+YWRkciA8IG5ldy0+YWRkciArIG5ldy0+c2l6ZSAp CiAgICAgICAgIHsKQEAgLTUzOSwyNSArNTM5LDI1IEBAIGludCByZWdpc3Rlcl92cGNpX21tY2Zn X2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBhZGRyLAogICAgICAgICAgICAgICAg ICBuZXctPnNlZ21lbnQgPT0gbW1jZmctPnNlZ21lbnQgJiYKICAgICAgICAgICAgICAgICAgbmV3 LT5zaXplID09IG1tY2ZnLT5zaXplICkKICAgICAgICAgICAgICAgICByZXQgPSAwOwotICAgICAg ICAgICAgd3JpdGVfdW5sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4ubW1jZmdfbG9jayk7CisgICAg ICAgICAgICB3cml0ZV91bmxvY2soJmQtPmFyY2guaHZtLm1tY2ZnX2xvY2spOwogICAgICAgICAg ICAgeGZyZWUobmV3KTsKICAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgIH0KIAotICAg IGlmICggbGlzdF9lbXB0eSgmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX3JlZ2lvbnMpICkKKyAg ICBpZiAoIGxpc3RfZW1wdHkoJmQtPmFyY2guaHZtLm1tY2ZnX3JlZ2lvbnMpICkKICAgICAgICAg cmVnaXN0ZXJfbW1pb19oYW5kbGVyKGQsICZ2cGNpX21tY2ZnX29wcyk7CiAKLSAgICBsaXN0X2Fk ZCgmbmV3LT5uZXh0LCAmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX3JlZ2lvbnMpOwotICAgIHdy aXRlX3VubG9jaygmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX2xvY2spOworICAgIGxpc3RfYWRk KCZuZXctPm5leHQsICZkLT5hcmNoLmh2bS5tbWNmZ19yZWdpb25zKTsKKyAgICB3cml0ZV91bmxv Y2soJmQtPmFyY2guaHZtLm1tY2ZnX2xvY2spOwogCiAgICAgcmV0dXJuIDA7CiB9CiAKIHZvaWQg ZGVzdHJveV92cGNpX21tY2ZnKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgc3RydWN0IGxpc3Rf aGVhZCAqbW1jZmdfcmVnaW9ucyA9ICZkLT5hcmNoLmh2bV9kb21haW4ubW1jZmdfcmVnaW9uczsK KyAgICBzdHJ1Y3QgbGlzdF9oZWFkICptbWNmZ19yZWdpb25zID0gJmQtPmFyY2guaHZtLm1tY2Zn X3JlZ2lvbnM7CiAKLSAgICB3cml0ZV9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4ubW1jZmdfbG9j ayk7CisgICAgd3JpdGVfbG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7CiAgICAgd2hpbGUg KCAhbGlzdF9lbXB0eShtbWNmZ19yZWdpb25zKSApCiAgICAgewogICAgICAgICBzdHJ1Y3QgaHZt X21tY2ZnICptbWNmZyA9IGxpc3RfZmlyc3RfZW50cnkobW1jZmdfcmVnaW9ucywKQEAgLTU2Niw3 ICs1NjYsNyBAQCB2b2lkIGRlc3Ryb3lfdnBjaV9tbWNmZyhzdHJ1Y3QgZG9tYWluICpkKQogICAg ICAgICBsaXN0X2RlbCgmbW1jZmctPm5leHQpOwogICAgICAgICB4ZnJlZShtbWNmZyk7CiAgICAg fQotICAgIHdyaXRlX3VubG9jaygmZC0+YXJjaC5odm1fZG9tYWluLm1tY2ZnX2xvY2spOworICAg IHdyaXRlX3VubG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7CiB9CiAKIC8qCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMK aW5kZXggOTQwYTJjOS4uOGQ2MGIwMiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3Jl cS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYwpAQCAtMzgsMTMgKzM4LDEzIEBAIHN0 YXRpYyB2b2lkIHNldF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50 IGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZl ciAqcykKIHsKICAgICBBU1NFUlQoaWQgPCBNQVhfTlJfSU9SRVFfU0VSVkVSUyk7Ci0gICAgQVNT RVJUKCFzIHx8ICFkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVyLnNlcnZlcltpZF0pOwor ICAgIEFTU0VSVCghcyB8fCAhZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLnNlcnZlcltpZF0pOwog Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5zZXJ2ZXJbaWRdID0gczsKKyAg ICBkLT5hcmNoLmh2bS5pb3JlcV9zZXJ2ZXIuc2VydmVyW2lkXSA9IHM7CiB9CiAKICNkZWZpbmUg R0VUX0lPUkVRX1NFUlZFUihkLCBpZCkgXAotICAgIChkKS0+YXJjaC5odm1fZG9tYWluLmlvcmVx X3NlcnZlci5zZXJ2ZXJbaWRdCisgICAgKGQpLT5hcmNoLmh2bS5pb3JlcV9zZXJ2ZXIuc2VydmVy W2lkXQogCiBzdGF0aWMgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKmdldF9pb3JlcV9zZXJ2ZXIo Y29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaWQpCkBAIC0yNDcsMTAgKzI0NywxMCBAQCBz dGF0aWMgZ2ZuX3QgaHZtX2FsbG9jX2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAq cykKIAogICAgIEFTU0VSVCghSVNfREVGQVVMVChzKSk7CiAKLSAgICBmb3IgKCBpID0gMDsgaSA8 IHNpemVvZihkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfZ2ZuLm1hc2spICogODsgaSsrICkKKyAg ICBmb3IgKCBpID0gMDsgaSA8IHNpemVvZihkLT5hcmNoLmh2bS5pb3JlcV9nZm4ubWFzaykgKiA4 OyBpKysgKQogICAgIHsKLSAgICAgICAgaWYgKCB0ZXN0X2FuZF9jbGVhcl9iaXQoaSwgJmQtPmFy Y2guaHZtX2RvbWFpbi5pb3JlcV9nZm4ubWFzaykgKQotICAgICAgICAgICAgcmV0dXJuIF9nZm4o ZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX2dmbi5iYXNlICsgaSk7CisgICAgICAgIGlmICggdGVz dF9hbmRfY2xlYXJfYml0KGksICZkLT5hcmNoLmh2bS5pb3JlcV9nZm4ubWFzaykgKQorICAgICAg ICAgICAgcmV0dXJuIF9nZm4oZC0+YXJjaC5odm0uaW9yZXFfZ2ZuLmJhc2UgKyBpKTsKICAgICB9 CiAKICAgICByZXR1cm4gSU5WQUxJRF9HRk47CkBAIC0yNTksMTIgKzI1OSwxMiBAQCBzdGF0aWMg Z2ZuX3QgaHZtX2FsbG9jX2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcykKIHN0 YXRpYyB2b2lkIGh2bV9mcmVlX2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywg Z2ZuX3QgZ2ZuKQogewogICAgIHN0cnVjdCBkb21haW4gKmQgPSBzLT50YXJnZXQ7Ci0gICAgdW5z aWduZWQgaW50IGkgPSBnZm5feChnZm4pIC0gZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX2dmbi5i YXNlOworICAgIHVuc2lnbmVkIGludCBpID0gZ2ZuX3goZ2ZuKSAtIGQtPmFyY2guaHZtLmlvcmVx X2dmbi5iYXNlOwogCiAgICAgQVNTRVJUKCFJU19ERUZBVUxUKHMpKTsKICAgICBBU1NFUlQoIWdm bl9lcShnZm4sIElOVkFMSURfR0ZOKSk7CiAKLSAgICBzZXRfYml0KGksICZkLT5hcmNoLmh2bV9k b21haW4uaW9yZXFfZ2ZuLm1hc2spOworICAgIHNldF9iaXQoaSwgJmQtPmFyY2guaHZtLmlvcmVx X2dmbi5tYXNrKTsKIH0KIAogc3RhdGljIHZvaWQgaHZtX3VubWFwX2lvcmVxX2dmbihzdHJ1Y3Qg aHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBidWYpCkBAIC0zMDcsOCArMzA3LDggQEAgc3RhdGlj IGludCBodm1fbWFwX2lvcmVxX2dmbihzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqcywgYm9vbCBi dWYpCiAKICAgICBpZiAoIElTX0RFRkFVTFQocykgKQogICAgICAgICBpb3JwLT5nZm4gPSBfZ2Zu KGJ1ZiA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBhcmFt c1tIVk1fUEFSQU1fQlVGSU9SRVFfUEZOXSA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZC0+ YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fSU9SRVFfUEZOXSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9CVUZJT1JFUV9QRk5d IDoKKyAgICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmh2bS5wYXJhbXNbSFZNX1BBUkFN X0lPUkVRX1BGTl0pOwogICAgIGVsc2UKICAgICAgICAgaW9ycC0+Z2ZuID0gaHZtX2FsbG9jX2lv cmVxX2dmbihzKTsKIApAQCAtMzk0LDcgKzM5NCw3IEBAIGJvb2wgaXNfaW9yZXFfc2VydmVyX3Bh Z2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKICAgICB1 bnNpZ25lZCBpbnQgaWQ7CiAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwogCi0gICAgc3Bpbl9sb2Nr X3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBz cGluX2xvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bS5pb3JlcV9zZXJ2ZXIubG9jayk7CiAKICAg ICBGT1JfRUFDSF9JT1JFUV9TRVJWRVIoZCwgaWQsIHMpCiAgICAgewpAQCAtNDA1LDcgKzQwNSw3 IEBAIGJvb2wgaXNfaW9yZXFfc2VydmVyX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZSkKICAgICAgICAgfQogICAgIH0KIAotICAgIHNwaW5fdW5sb2Nr X3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBz cGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsKIAog ICAgIHJldHVybiBmb3VuZDsKIH0KQEAgLTQ5Miw3ICs0OTIsNyBAQCBzdGF0aWMgaW50IGh2bV9p b3JlcV9zZXJ2ZXJfYWRkX3ZjcHUoc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKnMsCiAKICAgICAg ICAgcy0+YnVmaW9yZXFfZXZ0Y2huID0gcmM7CiAgICAgICAgIGlmICggSVNfREVGQVVMVChzKSAp Ci0gICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zW0hWTV9QQVJBTV9CVUZJT1JF UV9FVlRDSE5dID0KKyAgICAgICAgICAgIGQtPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fQlVG SU9SRVFfRVZUQ0hOXSA9CiAgICAgICAgICAgICAgICAgcy0+YnVmaW9yZXFfZXZ0Y2huOwogICAg IH0KIApAQCAtNzk3LDcgKzc5Nyw3IEBAIGludCBodm1fY3JlYXRlX2lvcmVxX3NlcnZlcihzdHJ1 Y3QgZG9tYWluICpkLCBib29sIGlzX2RlZmF1bHQsCiAgICAgICAgIHJldHVybiAtRU5PTUVNOwog CiAgICAgZG9tYWluX3BhdXNlKGQpOwotICAgIHNwaW5fbG9ja19yZWN1cnNpdmUoJmQtPmFyY2gu aHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7CisgICAgc3Bpbl9sb2NrX3JlY3Vyc2l2ZSgm ZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLmxvY2spOwogCiAgICAgaWYgKCBpc19kZWZhdWx0ICkK ICAgICB7CkBAIC04NDEsMTMgKzg0MSwxMyBAQCBpbnQgaHZtX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIo c3RydWN0IGRvbWFpbiAqZCwgYm9vbCBpc19kZWZhdWx0LAogICAgIGlmICggaWQgKQogICAgICAg ICAqaWQgPSBpOwogCi0gICAgc3Bpbl91bmxvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21h aW4uaW9yZXFfc2VydmVyLmxvY2spOworICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJj aC5odm0uaW9yZXFfc2VydmVyLmxvY2spOwogICAgIGRvbWFpbl91bnBhdXNlKGQpOwogCiAgICAg cmV0dXJuIDA7CiAKICBmYWlsOgotICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5o dm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUo JmQtPmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsKICAgICBkb21haW5fdW5wYXVzZShkKTsK IAogICAgIHhmcmVlKHMpOwpAQCAtODYyLDcgKzg2Miw3IEBAIGludCBodm1fZGVzdHJveV9pb3Jl cV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCkKICAgICBpZiAoIGlkID09 IERFRkFVTFRfSU9TRVJWSUQgKQogICAgICAgICByZXR1cm4gLUVQRVJNOwogCi0gICAgc3Bpbl9s b2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAg ICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bS5pb3JlcV9zZXJ2ZXIubG9jayk7CiAK ICAgICBzID0gZ2V0X2lvcmVxX3NlcnZlcihkLCBpZCk7CiAKQEAgLTg5OCw3ICs4OTgsNyBAQCBp bnQgaHZtX2Rlc3Ryb3lfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3Qg aWQpCiAgICAgcmMgPSAwOwogCiAgb3V0OgotICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+ YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBzcGluX3VubG9ja19yZWN1 cnNpdmUoJmQtPmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsKIAogICAgIHJldHVybiByYzsK IH0KQEAgLTkxNCw3ICs5MTQsNyBAQCBpbnQgaHZtX2dldF9pb3JlcV9zZXJ2ZXJfaW5mbyhzdHJ1 Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIGlmICggaWQgPT0gREVGQVVMVF9JT1NF UlZJRCApCiAgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKIAotICAgIHNwaW5fbG9ja19yZWN1 cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7CisgICAgc3Bpbl9s b2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLmxvY2spOwogCiAgICAgcyA9 IGdldF9pb3JlcV9zZXJ2ZXIoZCwgaWQpOwogCkBAIC05NTAsNyArOTUwLDcgQEAgaW50IGh2bV9n ZXRfaW9yZXFfc2VydmVyX2luZm8oc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKICAg ICByYyA9IDA7CiAKICBvdXQ6Ci0gICAgc3Bpbl91bmxvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2 bV9kb21haW4uaW9yZXFfc2VydmVyLmxvY2spOworICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgm ZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLmxvY2spOwogCiAgICAgcmV0dXJuIHJjOwogfQpAQCAt OTY3LDcgKzk2Nyw3IEBAIGludCBodm1fZ2V0X2lvcmVxX3NlcnZlcl9mcmFtZShzdHJ1Y3QgZG9t YWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIGlmICggIWlzX2h2bV9kb21haW4oZCkgKQogICAg ICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIHNwaW5fbG9ja19yZWN1cnNpdmUoJmQtPmFyY2gu aHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7CisgICAgc3Bpbl9sb2NrX3JlY3Vyc2l2ZSgm ZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLmxvY2spOwogCiAgICAgcyA9IGdldF9pb3JlcV9zZXJ2 ZXIoZCwgaWQpOwogCkBAIC0xMDA3LDcgKzEwMDcsNyBAQCBpbnQgaHZtX2dldF9pb3JlcV9zZXJ2 ZXJfZnJhbWUoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwKICAgICB9CiAKICBvdXQ6 Ci0gICAgc3Bpbl91bmxvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2Vy dmVyLmxvY2spOworICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm0uaW9yZXFf c2VydmVyLmxvY2spOwogCiAgICAgcmV0dXJuIHJjOwogfQpAQCAtMTAyNiw3ICsxMDI2LDcgQEAg aW50IGh2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsIGlv c2VydmlkX3QgaWQsCiAgICAgaWYgKCBpZCA9PSBERUZBVUxUX0lPU0VSVklEICkKICAgICAgICAg cmV0dXJuIC1FT1BOT1RTVVBQOwogCi0gICAgc3Bpbl9sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5o dm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZk LT5hcmNoLmh2bS5pb3JlcV9zZXJ2ZXIubG9jayk7CiAKICAgICBzID0gZ2V0X2lvcmVxX3NlcnZl cihkLCBpZCk7CiAKQEAgLTEwNjQsNyArMTA2NCw3IEBAIGludCBodm1fbWFwX2lvX3JhbmdlX3Rv X2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIHJjID0g cmFuZ2VzZXRfYWRkX3JhbmdlKHIsIHN0YXJ0LCBlbmQpOwogCiAgb3V0OgotICAgIHNwaW5fdW5s b2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAg ICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsK IAogICAgIHJldHVybiByYzsKIH0KQEAgLTEwODMsNyArMTA4Myw3IEBAIGludCBodm1fdW5tYXBf aW9fcmFuZ2VfZnJvbV9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBp ZCwKICAgICBpZiAoIGlkID09IERFRkFVTFRfSU9TRVJWSUQgKQogICAgICAgICByZXR1cm4gLUVP UE5PVFNVUFA7CiAKLSAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21haW4u aW9yZXFfc2VydmVyLmxvY2spOworICAgIHNwaW5fbG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZt LmlvcmVxX3NlcnZlci5sb2NrKTsKIAogICAgIHMgPSBnZXRfaW9yZXFfc2VydmVyKGQsIGlkKTsK IApAQCAtMTEyMSw3ICsxMTIxLDcgQEAgaW50IGh2bV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVx X3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIHJjID0gcmFuZ2Vz ZXRfcmVtb3ZlX3JhbmdlKHIsIHN0YXJ0LCBlbmQpOwogCiAgb3V0OgotICAgIHNwaW5fdW5sb2Nr X3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBz cGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsKIAog ICAgIHJldHVybiByYzsKIH0KQEAgLTExNDksNyArMTE0OSw3IEBAIGludCBodm1fbWFwX21lbV90 eXBlX3RvX2lvcmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAg IGlmICggZmxhZ3MgJiB+WEVOX0RNT1BfSU9SRVFfTUVNX0FDQ0VTU19XUklURSApCiAgICAgICAg IHJldHVybiAtRUlOVkFMOwogCi0gICAgc3Bpbl9sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1f ZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5h cmNoLmh2bS5pb3JlcV9zZXJ2ZXIubG9jayk7CiAKICAgICBzID0gZ2V0X2lvcmVxX3NlcnZlcihk LCBpZCk7CiAKQEAgLTExNjYsNyArMTE2Niw3IEBAIGludCBodm1fbWFwX21lbV90eXBlX3RvX2lv cmVxX3NlcnZlcihzdHJ1Y3QgZG9tYWluICpkLCBpb3NlcnZpZF90IGlkLAogICAgIHJjID0gcDJt X3NldF9pb3JlcV9zZXJ2ZXIoZCwgZmxhZ3MsIHMpOwogCiAgb3V0OgotICAgIHNwaW5fdW5sb2Nr X3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZlci5sb2NrKTsKKyAgICBz cGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsKIAog ICAgIGlmICggcmMgPT0gMCAmJiBmbGFncyA9PSAwICkKICAgICB7CkBAIC0xMTg4LDcgKzExODgs NyBAQCBpbnQgaHZtX3NldF9pb3JlcV9zZXJ2ZXJfc3RhdGUoc3RydWN0IGRvbWFpbiAqZCwgaW9z ZXJ2aWRfdCBpZCwKICAgICBpZiAoIGlkID09IERFRkFVTFRfSU9TRVJWSUQgKQogICAgICAgICBy ZXR1cm4gLUVPUE5PVFNVUFA7CiAKLSAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2 bV9kb21haW4uaW9yZXFfc2VydmVyLmxvY2spOworICAgIHNwaW5fbG9ja19yZWN1cnNpdmUoJmQt PmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsKIAogICAgIHMgPSBnZXRfaW9yZXFfc2VydmVy KGQsIGlkKTsKIApAQCAtMTIxNCw3ICsxMjE0LDcgQEAgaW50IGh2bV9zZXRfaW9yZXFfc2VydmVy X3N0YXRlKHN0cnVjdCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsCiAgICAgcmMgPSAwOwogCiAg b3V0OgotICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVx X3NlcnZlci5sb2NrKTsKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtLmlv cmVxX3NlcnZlci5sb2NrKTsKICAgICByZXR1cm4gcmM7CiB9CiAKQEAgLTEyMjQsNyArMTIyNCw3 IEBAIGludCBodm1fYWxsX2lvcmVxX3NlcnZlcnNfYWRkX3ZjcHUoc3RydWN0IGRvbWFpbiAqZCwg c3RydWN0IHZjcHUgKnYpCiAgICAgdW5zaWduZWQgaW50IGlkOwogICAgIGludCByYzsKIAotICAg IHNwaW5fbG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9j ayk7CisgICAgc3Bpbl9sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLmxv Y2spOwogCiAgICAgRk9SX0VBQ0hfSU9SRVFfU0VSVkVSKGQsIGlkLCBzKQogICAgIHsKQEAgLTEy MzMsNyArMTIzMyw3IEBAIGludCBodm1fYWxsX2lvcmVxX3NlcnZlcnNfYWRkX3ZjcHUoc3RydWN0 IGRvbWFpbiAqZCwgc3RydWN0IHZjcHUgKnYpCiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAg fQogCi0gICAgc3Bpbl91bmxvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFf c2VydmVyLmxvY2spOworICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm0uaW9y ZXFfc2VydmVyLmxvY2spOwogCiAgICAgcmV0dXJuIDA7CiAKQEAgLTEyNDgsNyArMTI0OCw3IEBA IGludCBodm1fYWxsX2lvcmVxX3NlcnZlcnNfYWRkX3ZjcHUoc3RydWN0IGRvbWFpbiAqZCwgc3Ry dWN0IHZjcHUgKnYpCiAgICAgICAgIGh2bV9pb3JlcV9zZXJ2ZXJfcmVtb3ZlX3ZjcHUocywgdik7 CiAgICAgfQogCi0gICAgc3Bpbl91bmxvY2tfcmVjdXJzaXZlKCZkLT5hcmNoLmh2bV9kb21haW4u aW9yZXFfc2VydmVyLmxvY2spOworICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5o dm0uaW9yZXFfc2VydmVyLmxvY2spOwogCiAgICAgcmV0dXJuIHJjOwogfQpAQCAtMTI1OCwxMiAr MTI1OCwxMiBAQCB2b2lkIGh2bV9hbGxfaW9yZXFfc2VydmVyc19yZW1vdmVfdmNwdShzdHJ1Y3Qg ZG9tYWluICpkLCBzdHJ1Y3QgdmNwdSAqdikKICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAq czsKICAgICB1bnNpZ25lZCBpbnQgaWQ7CiAKLSAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5h cmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVyLmxvY2spOworICAgIHNwaW5fbG9ja19yZWN1cnNp dmUoJmQtPmFyY2guaHZtLmlvcmVxX3NlcnZlci5sb2NrKTsKIAogICAgIEZPUl9FQUNIX0lPUkVR X1NFUlZFUihkLCBpZCwgcykKICAgICAgICAgaHZtX2lvcmVxX3NlcnZlcl9yZW1vdmVfdmNwdShz LCB2KTsKIAotICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlv cmVxX3NlcnZlci5sb2NrKTsKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZt LmlvcmVxX3NlcnZlci5sb2NrKTsKIH0KIAogdm9pZCBodm1fZGVzdHJveV9hbGxfaW9yZXFfc2Vy dmVycyhzdHJ1Y3QgZG9tYWluICpkKQpAQCAtMTI3MSw3ICsxMjcxLDcgQEAgdm9pZCBodm1fZGVz dHJveV9hbGxfaW9yZXFfc2VydmVycyhzdHJ1Y3QgZG9tYWluICpkKQogICAgIHN0cnVjdCBodm1f aW9yZXFfc2VydmVyICpzOwogICAgIHVuc2lnbmVkIGludCBpZDsKIAotICAgIHNwaW5fbG9ja19y ZWN1cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7CisgICAgc3Bp bl9sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLmxvY2spOwogCiAgICAg LyogTm8gbmVlZCB0byBkb21haW5fcGF1c2UoKSBhcyB0aGUgZG9tYWluIGlzIGJlaW5nIHRvcm4g ZG93biAqLwogCkBAIC0xMjkxLDcgKzEyOTEsNyBAQCB2b2lkIGh2bV9kZXN0cm95X2FsbF9pb3Jl cV9zZXJ2ZXJzKHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIHhmcmVlKHMpOwogICAgIH0KIAot ICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2ZSgmZC0+YXJjaC5odm1fZG9tYWluLmlvcmVxX3NlcnZl ci5sb2NrKTsKKyAgICBzcGluX3VubG9ja19yZWN1cnNpdmUoJmQtPmFyY2guaHZtLmlvcmVxX3Nl cnZlci5sb2NrKTsKIH0KIAogc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKmh2bV9zZWxlY3RfaW9y ZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsCkBAIC0xMzA2LDcgKzEzMDYsNyBAQCBzdHJ1Y3Qg aHZtX2lvcmVxX3NlcnZlciAqaHZtX3NlbGVjdF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAq ZCwKICAgICBpZiAoIHAtPnR5cGUgIT0gSU9SRVFfVFlQRV9DT1BZICYmIHAtPnR5cGUgIT0gSU9S RVFfVFlQRV9QSU8gKQogICAgICAgICByZXR1cm4gR0VUX0lPUkVRX1NFUlZFUihkLCBERUZBVUxU X0lPU0VSVklEKTsKIAotICAgIGNmOCA9IGQtPmFyY2guaHZtX2RvbWFpbi5wY2lfY2Y4OworICAg IGNmOCA9IGQtPmFyY2guaHZtLnBjaV9jZjg7CiAKICAgICBpZiAoIHAtPnR5cGUgPT0gSU9SRVFf VFlQRV9QSU8gJiYKICAgICAgICAgIChwLT5hZGRyICYgfjMpID09IDB4Y2ZjICYmCkBAIC0xNTY0 LDcgKzE1NjQsNyBAQCBzdGF0aWMgaW50IGh2bV9hY2Nlc3NfY2Y4KAogICAgIHN0cnVjdCBkb21h aW4gKmQgPSBjdXJyZW50LT5kb21haW47CiAKICAgICBpZiAoIGRpciA9PSBJT1JFUV9XUklURSAm JiBieXRlcyA9PSA0ICkKLSAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnBjaV9jZjggPSAqdmFs OworICAgICAgICBkLT5hcmNoLmh2bS5wY2lfY2Y4ID0gKnZhbDsKIAogICAgIC8qIFdlIGFsd2F5 cyBuZWVkIHRvIGZhbGwgdGhyb3VnaCB0byB0aGUgY2F0Y2ggYWxsIGVtdWxhdG9yICovCiAgICAg cmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAgc3RhdGlj IGludCBodm1fYWNjZXNzX2NmOCgKIAogdm9pZCBodm1faW9yZXFfaW5pdChzdHJ1Y3QgZG9tYWlu ICpkKQogewotICAgIHNwaW5fbG9ja19pbml0KCZkLT5hcmNoLmh2bV9kb21haW4uaW9yZXFfc2Vy dmVyLmxvY2spOworICAgIHNwaW5fbG9ja19pbml0KCZkLT5hcmNoLmh2bS5pb3JlcV9zZXJ2ZXIu bG9jayk7CiAKICAgICByZWdpc3Rlcl9wb3J0aW9faGFuZGxlcihkLCAweGNmOCwgNCwgaHZtX2Fj Y2Vzc19jZjgpOwogfQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9pcnEuYyBiL3hlbi9h cmNoL3g4Ni9odm0vaXJxLmMKaW5kZXggZGZlOGVkNi4uMWRlZDJjMiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2h2bS9pcnEuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2lycS5jCkBAIC01Miwx MSArNTIsMTEgQEAgaW50IGh2bV9pb2FwaWNfYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCBnc2ksIGJvb2wgbGV2ZWwpCiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAg ICBzcGluX2xvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl9sb2Nr KCZkLT5hcmNoLmh2bS5pcnFfbG9jayk7CiAgICAgaWYgKCAhbGV2ZWwgfHwgaHZtX2lycS0+Z3Np X2Fzc2VydF9jb3VudFtnc2ldKysgPT0gMCApCiAgICAgICAgIGFzc2VydF9nc2koZCwgZ3NpKTsK ICAgICB2ZWN0b3IgPSB2aW9hcGljX2dldF92ZWN0b3IoZCwgZ3NpKTsKLSAgICBzcGluX3VubG9j aygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmZC0+YXJj aC5odm0uaXJxX2xvY2spOwogCiAgICAgcmV0dXJuIHZlY3RvcjsKIH0KQEAgLTcxLDkgKzcxLDkg QEAgdm9pZCBodm1faW9hcGljX2RlYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGlu dCBnc2kpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzcGluX2xvY2soJmQtPmFyY2gu aHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bS5pcnFfbG9j ayk7CiAgICAgaHZtX2lycS0+Z3NpX2Fzc2VydF9jb3VudFtnc2ldLS07Ci0gICAgc3Bpbl91bmxv Y2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl91bmxvY2soJmQtPmFy Y2guaHZtLmlycV9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgYXNzZXJ0X2lycShzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBpb2FwaWNfZ3NpLCB1bnNpZ25lZCBwaWNfaXJxKQpAQCAtMTIyLDkg KzEyMiw5IEBAIHN0YXRpYyB2b2lkIF9faHZtX3BjaV9pbnR4X2Fzc2VydCgKIHZvaWQgaHZtX3Bj aV9pbnR4X2Fzc2VydCgKICAgICBzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZGV2aWNl LCB1bnNpZ25lZCBpbnQgaW50eCkKIHsKLSAgICBzcGluX2xvY2soJmQtPmFyY2guaHZtX2RvbWFp bi5pcnFfbG9jayk7CisgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bS5pcnFfbG9jayk7CiAgICAg X19odm1fcGNpX2ludHhfYXNzZXJ0KGQsIGRldmljZSwgaW50eCk7Ci0gICAgc3Bpbl91bmxvY2so JmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl91bmxvY2soJmQtPmFyY2gu aHZtLmlycV9sb2NrKTsKIH0KIAogc3RhdGljIHZvaWQgX19odm1fcGNpX2ludHhfZGVhc3NlcnQo CkBAIC0xNTYsOSArMTU2LDkgQEAgc3RhdGljIHZvaWQgX19odm1fcGNpX2ludHhfZGVhc3NlcnQo CiB2b2lkIGh2bV9wY2lfaW50eF9kZWFzc2VydCgKICAgICBzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBpbnQgZGV2aWNlLCB1bnNpZ25lZCBpbnQgaW50eCkKIHsKLSAgICBzcGluX2xvY2soJmQt PmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bS5p cnFfbG9jayk7CiAgICAgX19odm1fcGNpX2ludHhfZGVhc3NlcnQoZCwgZGV2aWNlLCBpbnR4KTsK LSAgICBzcGluX3VubG9jaygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKKyAgICBzcGlu X3VubG9jaygmZC0+YXJjaC5odm0uaXJxX2xvY2spOwogfQogCiB2b2lkIGh2bV9nc2lfYXNzZXJ0 KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBnc2kpCkBAIC0xNzksMTMgKzE3OSwxMyBA QCB2b2lkIGh2bV9nc2lfYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBnc2kp CiAgICAgICogZm9yIHRoZSBoYXJkd2FyZSBkb21haW4sIFhlbiBuZWVkcyB0byByZWx5IG9uIGdz aV9hc3NlcnRfY291bnQgaW4gb3JkZXIKICAgICAgKiB0byBrbm93IGlmIHRoZSBHU0kgaXMgcGVu ZGluZyBvciBub3QuCiAgICAgICovCi0gICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4u aXJxX2xvY2spOworICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm0uaXJxX2xvY2spOwogICAgIGlm ICggIWh2bV9pcnEtPmdzaV9hc3NlcnRfY291bnRbZ3NpXSApCiAgICAgewogICAgICAgICBodm1f aXJxLT5nc2lfYXNzZXJ0X2NvdW50W2dzaV0gPSAxOwogICAgICAgICBhc3NlcnRfZ3NpKGQsIGdz aSk7CiAgICAgfQotICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2sp OworICAgIHNwaW5fdW5sb2NrKCZkLT5hcmNoLmh2bS5pcnFfbG9jayk7CiB9CiAKIHZvaWQgaHZt X2dzaV9kZWFzc2VydChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZ3NpKQpAQCAtMTk4 LDkgKzE5OCw5IEBAIHZvaWQgaHZtX2dzaV9kZWFzc2VydChzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBpbnQgZ3NpKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc3Bpbl9sb2NrKCZk LT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOworICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm0u aXJxX2xvY2spOwogICAgIGh2bV9pcnEtPmdzaV9hc3NlcnRfY291bnRbZ3NpXSA9IDA7Ci0gICAg c3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl91bmxv Y2soJmQtPmFyY2guaHZtLmlycV9sb2NrKTsKIH0KIAogaW50IGh2bV9pc2FfaXJxX2Fzc2VydChz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXNhX2lycSwKQEAgLTIxMyw3ICsyMTMsNyBA QCBpbnQgaHZtX2lzYV9pcnFfYXNzZXJ0KHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBp c2FfaXJxLAogCiAgICAgQVNTRVJUKGlzYV9pcnEgPD0gMTUpOwogCi0gICAgc3Bpbl9sb2NrKCZk LT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOworICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm0u aXJxX2xvY2spOwogCiAgICAgaWYgKCAhX190ZXN0X2FuZF9zZXRfYml0KGlzYV9pcnEsICZodm1f aXJxLT5pc2FfaXJxLmkpICYmCiAgICAgICAgICAoaHZtX2lycS0+Z3NpX2Fzc2VydF9jb3VudFtn c2ldKysgPT0gMCkgKQpAQCAtMjIyLDcgKzIyMiw3IEBAIGludCBodm1faXNhX2lycV9hc3NlcnQo c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGlzYV9pcnEsCiAgICAgaWYgKCBnZXRfdmVj dG9yICkKICAgICAgICAgdmVjdG9yID0gZ2V0X3ZlY3RvcihkLCBnc2kpOwogCi0gICAgc3Bpbl91 bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl91bmxvY2soJmQt PmFyY2guaHZtLmlycV9sb2NrKTsKIAogICAgIHJldHVybiB2ZWN0b3I7CiB9CkBAIC0yMzUsMTMg KzIzNSwxMyBAQCB2b2lkIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KAogCiAgICAgQVNTRVJUKGlzYV9p cnEgPD0gMTUpOwogCi0gICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2sp OworICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm0uaXJxX2xvY2spOwogCiAgICAgaWYgKCBfX3Rl c3RfYW5kX2NsZWFyX2JpdChpc2FfaXJxLCAmaHZtX2lycS0+aXNhX2lycS5pKSAmJgogICAgICAg ICAgKC0taHZtX2lycS0+Z3NpX2Fzc2VydF9jb3VudFtnc2ldID09IDApICkKICAgICAgICAgZGVh c3NlcnRfaXJxKGQsIGlzYV9pcnEpOwogCi0gICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2Rv bWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtLmlycV9sb2NrKTsK IH0KIAogc3RhdGljIHZvaWQgaHZtX3NldF9jYWxsYmFja19pcnFfbGV2ZWwoc3RydWN0IHZjcHUg KnYpCkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIHZvaWQgaHZtX3NldF9jYWxsYmFja19pcnFf bGV2ZWwoc3RydWN0IHZjcHUgKnYpCiAKICAgICBBU1NFUlQodi0+dmNwdV9pZCA9PSAwKTsKIAot ICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKKyAgICBzcGluX2xv Y2soJmQtPmFyY2guaHZtLmlycV9sb2NrKTsKIAogICAgIC8qIE5CLiBEbyBub3QgY2hlY2sgdGhl IGV2dGNobl91cGNhbGxfbWFzay4gSXQgaXMgbm90IHVzZWQgaW4gSFZNIG1vZGUuICovCiAgICAg YXNzZXJ0ZWQgPSAhIXZjcHVfaW5mbyh2LCBldnRjaG5fdXBjYWxsX3BlbmRpbmcpOwpAQCAtMjg5 LDcgKzI4OSw3IEBAIHN0YXRpYyB2b2lkIGh2bV9zZXRfY2FsbGJhY2tfaXJxX2xldmVsKHN0cnVj dCB2Y3B1ICp2KQogICAgIH0KIAogIG91dDoKLSAgICBzcGluX3VubG9jaygmZC0+YXJjaC5odm1f ZG9tYWluLmlycV9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmZC0+YXJjaC5odm0uaXJxX2xvY2sp OwogfQogCiB2b2lkIGh2bV9tYXliZV9kZWFzc2VydF9ldnRjaG5faXJxKHZvaWQpCkBAIC0zMzEs NyArMzMxLDcgQEAgaW50IGh2bV9zZXRfcGNpX2xpbmtfcm91dGUoc3RydWN0IGRvbWFpbiAqZCwg dTggbGluaywgdTggaXNhX2lycSkKICAgICBpZiAoIChsaW5rID4gMykgfHwgKGlzYV9pcnEgPiAx NSkgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAotICAgIHNwaW5fbG9jaygmZC0+YXJjaC5o dm1fZG9tYWluLmlycV9sb2NrKTsKKyAgICBzcGluX2xvY2soJmQtPmFyY2guaHZtLmlycV9sb2Nr KTsKIAogICAgIG9sZF9pc2FfaXJxID0gaHZtX2lycS0+cGNpX2xpbmsucm91dGVbbGlua107CiAg ICAgaWYgKCBvbGRfaXNhX2lycSA9PSBpc2FfaXJxICkKQEAgLTM2Myw3ICszNjMsNyBAQCBpbnQg aHZtX3NldF9wY2lfbGlua19yb3V0ZShzdHJ1Y3QgZG9tYWluICpkLCB1OCBsaW5rLCB1OCBpc2Ff aXJxKQogICAgIH0KIAogIG91dDoKLSAgICBzcGluX3VubG9jaygmZC0+YXJjaC5odm1fZG9tYWlu LmlycV9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmZC0+YXJjaC5odm0uaXJxX2xvY2spOwogCiAg ICAgZHByaW50ayhYRU5MT0dfR19JTkZPLCAiRG9tJXUgUENJIGxpbmsgJXUgY2hhbmdlZCAldSAt PiAldVxuIiwKICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgbGluaywgb2xkX2lzYV9pcnEsIGlz YV9pcnEpOwpAQCAtNDMxLDcgKzQzMSw3IEBAIHZvaWQgaHZtX3NldF9jYWxsYmFja192aWEoc3Ry dWN0IGRvbWFpbiAqZCwgdWludDY0X3QgdmlhKQogICAgICAgICAgKCFoYXNfdmxhcGljKGQpIHx8 ICFoYXNfdmlvYXBpYyhkKSB8fCAhaGFzX3ZwaWMoZCkpICkKICAgICAgICAgcmV0dXJuOwogCi0g ICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOworICAgIHNwaW5fbG9j aygmZC0+YXJjaC5odm0uaXJxX2xvY2spOwogCiAgICAgLyogVGVhciBkb3duIG9sZCBjYWxsYmFj ayB2aWEuICovCiAgICAgaWYgKCBodm1faXJxLT5jYWxsYmFja192aWFfYXNzZXJ0ZWQgKQpAQCAt NDgxLDcgKzQ4MSw3IEBAIHZvaWQgaHZtX3NldF9jYWxsYmFja192aWEoc3RydWN0IGRvbWFpbiAq ZCwgdWludDY0X3QgdmlhKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBzcGluX3VubG9j aygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKKyAgICBzcGluX3VubG9jaygmZC0+YXJj aC5odm0uaXJxX2xvY2spOwogCiAgICAgZm9yX2VhY2hfdmNwdSAoIGQsIHYgKQogICAgICAgICBp ZiAoIGlzX3ZjcHVfb25saW5lKHYpICkKQEAgLTUwOSw3ICs1MDksNyBAQCB2b2lkIGh2bV9zZXRf Y2FsbGJhY2tfdmlhKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ2NF90IHZpYSkKIAogc3RydWN0IGh2 bV9pbnRhY2sgaHZtX3ZjcHVfaGFzX3BlbmRpbmdfaXJxKHN0cnVjdCB2Y3B1ICp2KQogewotICAg IHN0cnVjdCBodm1fZG9tYWluICpwbGF0ID0gJnYtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluOwor ICAgIHN0cnVjdCBodm1fZG9tYWluICpwbGF0ID0gJnYtPmRvbWFpbi0+YXJjaC5odm07CiAgICAg aW50IHZlY3RvcjsKIAogICAgIGlmICggdW5saWtlbHkodi0+bm1pX3BlbmRpbmcpICkKQEAgLTY0 NSw3ICs2NDUsNyBAQCBzdGF0aWMgaW50IGlycV9zYXZlX3BjaShzdHJ1Y3QgZG9tYWluICpkLCBo dm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICB1bnNpZ25lZCBpbnQgYXNzZXJ0ZWQsIHBkZXYs IHBpbnR4OwogICAgIGludCByYzsKIAotICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm1fZG9tYWlu LmlycV9sb2NrKTsKKyAgICBzcGluX2xvY2soJmQtPmFyY2guaHZtLmlycV9sb2NrKTsKIAogICAg IHBkZXYgID0gaHZtX2lycS0+Y2FsbGJhY2tfdmlhLnBjaS5kZXY7CiAgICAgcGludHggPSBodm1f aXJxLT5jYWxsYmFja192aWEucGNpLmludHg7CkBAIC02NjYsNyArNjY2LDcgQEAgc3RhdGljIGlu dCBpcnFfc2F2ZV9wY2koc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3QgKmgp CiAgICAgaWYgKCBhc3NlcnRlZCApCiAgICAgICAgIF9faHZtX3BjaV9pbnR4X2Fzc2VydChkLCBw ZGV2LCBwaW50eCk7ICAgIAogCi0gICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5p cnFfbG9jayk7CisgICAgc3Bpbl91bmxvY2soJmQtPmFyY2guaHZtLmlycV9sb2NrKTsKIAogICAg IHJldHVybiByYzsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vbXRyci5jIGIveGVu L2FyY2gveDg2L2h2bS9tdHJyLmMKaW5kZXggZWRmZTVjZC4uOGE3NzJiYyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9tdHJyLmMKQEAg LTUzOSwxMiArNTM5LDEyIEBAIHN0YXRpYyBERUZJTkVfUkNVX1JFQURfTE9DSyhwaW5uZWRfY2Fj aGVhdHRyX3JjdV9sb2NrKTsKIAogdm9pZCBodm1faW5pdF9jYWNoZWF0dHJfcmVnaW9uX2xpc3Qo c3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICBJTklUX0xJU1RfSEVBRCgmZC0+YXJjaC5odm1fZG9t YWluLnBpbm5lZF9jYWNoZWF0dHJfcmFuZ2VzKTsKKyAgICBJTklUX0xJU1RfSEVBRCgmZC0+YXJj aC5odm0ucGlubmVkX2NhY2hlYXR0cl9yYW5nZXMpOwogfQogCiB2b2lkIGh2bV9kZXN0cm95X2Nh Y2hlYXR0cl9yZWdpb25fbGlzdChzdHJ1Y3QgZG9tYWluICpkKQogewotICAgIHN0cnVjdCBsaXN0 X2hlYWQgKmhlYWQgPSAmZC0+YXJjaC5odm1fZG9tYWluLnBpbm5lZF9jYWNoZWF0dHJfcmFuZ2Vz OworICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQgPSAmZC0+YXJjaC5odm0ucGlubmVkX2NhY2hl YXR0cl9yYW5nZXM7CiAgICAgc3RydWN0IGh2bV9tZW1fcGlubmVkX2NhY2hlYXR0cl9yYW5nZSAq cmFuZ2U7CiAKICAgICB3aGlsZSAoICFsaXN0X2VtcHR5KGhlYWQpICkKQEAgLTU2OCw3ICs1Njgs NyBAQCBpbnQgaHZtX2dldF9tZW1fcGlubmVkX2NhY2hlYXR0cihzdHJ1Y3QgZG9tYWluICpkLCBn Zm5fdCBnZm4sCiAKICAgICByY3VfcmVhZF9sb2NrKCZwaW5uZWRfY2FjaGVhdHRyX3JjdV9sb2Nr KTsKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSAoIHJhbmdlLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmQtPmFyY2guaHZtX2RvbWFpbi5waW5uZWRfY2FjaGVhdHRyX3Jhbmdl cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZkLT5hcmNoLmh2bS5waW5uZWRfY2Fj aGVhdHRyX3JhbmdlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgKQogICAg IHsKICAgICAgICAgaWYgKCAoKGdmbl94KGdmbikgJiBtYXNrKSA+PSByYW5nZS0+c3RhcnQpICYm CkBAIC02MTIsNyArNjEyLDcgQEAgaW50IGh2bV9zZXRfbWVtX3Bpbm5lZF9jYWNoZWF0dHIoc3Ry dWN0IGRvbWFpbiAqZCwgdWludDY0X3QgZ2ZuX3N0YXJ0LAogICAgICAgICAvKiBSZW1vdmUgdGhl IHJlcXVlc3RlZCByYW5nZS4gKi8KICAgICAgICAgcmN1X3JlYWRfbG9jaygmcGlubmVkX2NhY2hl YXR0cl9yY3VfbG9jayk7CiAgICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnlfcmN1ICggcmFuZ2Us Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmQtPmFyY2guaHZtX2RvbWFpbi5w aW5uZWRfY2FjaGVhdHRyX3JhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmZC0+YXJjaC5odm0ucGlubmVkX2NhY2hlYXR0cl9yYW5nZXMsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbGlzdCApCiAgICAgICAgICAgICBpZiAoIHJhbmdlLT5zdGFydCA9 PSBnZm5fc3RhcnQgJiYgcmFuZ2UtPmVuZCA9PSBnZm5fZW5kICkKICAgICAgICAgICAgIHsKQEAg LTY1NSw3ICs2NTUsNyBAQCBpbnQgaHZtX3NldF9tZW1fcGlubmVkX2NhY2hlYXR0cihzdHJ1Y3Qg ZG9tYWluICpkLCB1aW50NjRfdCBnZm5fc3RhcnQsCiAKICAgICByY3VfcmVhZF9sb2NrKCZwaW5u ZWRfY2FjaGVhdHRyX3JjdV9sb2NrKTsKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSAoIHJh bmdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmQtPmFyY2guaHZtX2RvbWFpbi5w aW5uZWRfY2FjaGVhdHRyX3JhbmdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZk LT5hcmNoLmh2bS5waW5uZWRfY2FjaGVhdHRyX3JhbmdlcywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpc3QgKQogICAgIHsKICAgICAgICAgaWYgKCByYW5nZS0+c3RhcnQgPT0gZ2Zu X3N0YXJ0ICYmIHJhbmdlLT5lbmQgPT0gZ2ZuX2VuZCApCkBAIC02ODIsNyArNjgyLDcgQEAgaW50 IGh2bV9zZXRfbWVtX3Bpbm5lZF9jYWNoZWF0dHIoc3RydWN0IGRvbWFpbiAqZCwgdWludDY0X3Qg Z2ZuX3N0YXJ0LAogICAgIHJhbmdlLT5lbmQgPSBnZm5fZW5kOwogICAgIHJhbmdlLT50eXBlID0g dHlwZTsKIAotICAgIGxpc3RfYWRkX3JjdSgmcmFuZ2UtPmxpc3QsICZkLT5hcmNoLmh2bV9kb21h aW4ucGlubmVkX2NhY2hlYXR0cl9yYW5nZXMpOworICAgIGxpc3RfYWRkX3JjdSgmcmFuZ2UtPmxp c3QsICZkLT5hcmNoLmh2bS5waW5uZWRfY2FjaGVhdHRyX3Jhbmdlcyk7CiAgICAgcDJtX21lbW9y eV90eXBlX2NoYW5nZWQoZCk7CiAgICAgaWYgKCB0eXBlICE9IFBBVF9UWVBFX1dSQkFDSyApCiAg ICAgICAgIGZsdXNoX2FsbChGTFVTSF9DQUNIRSk7CkBAIC04MjcsNyArODI3LDcgQEAgaW50IGVw dGVfZ2V0X2VudHJ5X2VtdChzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBsb25nIGdmbiwgbWZu X3QgbWZuLAogCiAgICAgaWYgKCBkaXJlY3RfbW1pbyApCiAgICAgewotICAgICAgICBpZiAoICht Zm5feChtZm4pIF4gZC0+YXJjaC5odm1fZG9tYWluLnZteC5hcGljX2FjY2Vzc19tZm4pID4+IG9y ZGVyICkKKyAgICAgICAgaWYgKCAobWZuX3gobWZuKSBeIGQtPmFyY2guaHZtLnZteC5hcGljX2Fj Y2Vzc19tZm4pID4+IG9yZGVyICkKICAgICAgICAgICAgIHJldHVybiBNVFJSX1RZUEVfVU5DQUNI QUJMRTsKICAgICAgICAgaWYgKCBvcmRlciApCiAgICAgICAgICAgICByZXR1cm4gLTE7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3BtdGltZXIuYyBiL3hlbi9hcmNoL3g4Ni9odm0vcG10 aW1lci5jCmluZGV4IDQzNTY0N2YuLjc1Yjk0MDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9o dm0vcG10aW1lci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vcG10aW1lci5jCkBAIC01Niw3ICs1 Niw3IEBACiAvKiBEaXNwYXRjaCBTQ0lzIGJhc2VkIG9uIHRoZSBQTTFhX1NUUyBhbmQgUE0xYV9F TiByZWdpc3RlcnMgKi8KIHN0YXRpYyB2b2lkIHBtdF91cGRhdGVfc2NpKFBNVFN0YXRlICpzKQog ewotICAgIHN0cnVjdCBodm1faHdfYWNwaSAqYWNwaSA9ICZzLT52Y3B1LT5kb21haW4tPmFyY2gu aHZtX2RvbWFpbi5hY3BpOworICAgIHN0cnVjdCBodm1faHdfYWNwaSAqYWNwaSA9ICZzLT52Y3B1 LT5kb21haW4tPmFyY2guaHZtLmFjcGk7CiAKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJnMt PmxvY2spKTsKIApAQCAtNjgsMjYgKzY4LDI2IEBAIHN0YXRpYyB2b2lkIHBtdF91cGRhdGVfc2Np KFBNVFN0YXRlICpzKQogCiB2b2lkIGh2bV9hY3BpX3Bvd2VyX2J1dHRvbihzdHJ1Y3QgZG9tYWlu ICpkKQogewotICAgIFBNVFN0YXRlICpzID0gJmQtPmFyY2guaHZtX2RvbWFpbi5wbF90aW1lLT52 cG10OworICAgIFBNVFN0YXRlICpzID0gJmQtPmFyY2guaHZtLnBsX3RpbWUtPnZwbXQ7CiAKICAg ICBpZiAoICFoYXNfdnBtKGQpICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3Bpbl9sb2NrKCZz LT5sb2NrKTsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4uYWNwaS5wbTFhX3N0cyB8PSBQV1JCVE5f U1RTOworICAgIGQtPmFyY2guaHZtLmFjcGkucG0xYV9zdHMgfD0gUFdSQlROX1NUUzsKICAgICBw bXRfdXBkYXRlX3NjaShzKTsKICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7CiB9CiAKIHZvaWQg aHZtX2FjcGlfc2xlZXBfYnV0dG9uKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgUE1UU3RhdGUg KnMgPSAmZC0+YXJjaC5odm1fZG9tYWluLnBsX3RpbWUtPnZwbXQ7CisgICAgUE1UU3RhdGUgKnMg PSAmZC0+YXJjaC5odm0ucGxfdGltZS0+dnBtdDsKIAogICAgIGlmICggIWhhc192cG0oZCkgKQog ICAgICAgICByZXR1cm47CiAKICAgICBzcGluX2xvY2soJnMtPmxvY2spOwotICAgIGQtPmFyY2gu aHZtX2RvbWFpbi5hY3BpLnBtMWFfc3RzIHw9IFBXUkJUTl9TVFM7CisgICAgZC0+YXJjaC5odm0u YWNwaS5wbTFhX3N0cyB8PSBQV1JCVE5fU1RTOwogICAgIHBtdF91cGRhdGVfc2NpKHMpOwogICAg IHNwaW5fdW5sb2NrKCZzLT5sb2NrKTsKIH0KQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBodm1fYWNw aV9zbGVlcF9idXR0b24oc3RydWN0IGRvbWFpbiAqZCkKIHN0YXRpYyB2b2lkIHBtdF91cGRhdGVf dGltZShQTVRTdGF0ZSAqcykKIHsKICAgICB1aW50NjRfdCBjdXJyX2d0aW1lLCB0bXA7Ci0gICAg c3RydWN0IGh2bV9od19hY3BpICphY3BpID0gJnMtPnZjcHUtPmRvbWFpbi0+YXJjaC5odm1fZG9t YWluLmFjcGk7CisgICAgc3RydWN0IGh2bV9od19hY3BpICphY3BpID0gJnMtPnZjcHUtPmRvbWFp bi0+YXJjaC5odm0uYWNwaTsKICAgICB1aW50MzJfdCB0bXJfdmFsID0gYWNwaS0+dG1yX3ZhbCwg bXNiID0gdG1yX3ZhbCAmIFRNUl9WQUxfTVNCOwogICAgIAogICAgIEFTU0VSVChzcGluX2lzX2xv Y2tlZCgmcy0+bG9jaykpOwpAQCAtMTM3LDcgKzEzNyw3IEBAIHN0YXRpYyB2b2lkIHBtdF90aW1l cl9jYWxsYmFjayh2b2lkICpvcGFxdWUpCiAKICAgICAvKiBIb3cgY2xvc2UgYXJlIHdlIHRvIHRo ZSBuZXh0IE1TQiBmbGlwPyAqLwogICAgIHBtdF9jeWNsZXNfdW50aWxfZmxpcCA9IFRNUl9WQUxf TVNCIC0KLSAgICAgICAgKHMtPnZjcHUtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLmFjcGkudG1y X3ZhbCAmIChUTVJfVkFMX01TQiAtIDEpKTsKKyAgICAgICAgKHMtPnZjcHUtPmRvbWFpbi0+YXJj aC5odm0uYWNwaS50bXJfdmFsICYgKFRNUl9WQUxfTVNCIC0gMSkpOwogCiAgICAgLyogT3ZlcmFs bCB0aW1lIGJldHdlZW4gTVNCIGZsaXBzICovCiAgICAgdGltZV91bnRpbF9mbGlwID0gKDEwMDAw MDAwMDBVTEwgPDwgMjMpIC8gRlJFUVVFTkNFX1BNVElNRVI7CkBAIC0xNTYsMTMgKzE1NiwxMyBA QCBzdGF0aWMgaW50IGhhbmRsZV9ldnRfaW8oCiAgICAgaW50IGRpciwgdW5zaWduZWQgaW50IHBv cnQsIHVuc2lnbmVkIGludCBieXRlcywgdWludDMyX3QgKnZhbCkKIHsKICAgICBzdHJ1Y3QgdmNw dSAqdiA9IGN1cnJlbnQ7Ci0gICAgc3RydWN0IGh2bV9od19hY3BpICphY3BpID0gJnYtPmRvbWFp bi0+YXJjaC5odm1fZG9tYWluLmFjcGk7Ci0gICAgUE1UU3RhdGUgKnMgPSAmdi0+ZG9tYWluLT5h cmNoLmh2bV9kb21haW4ucGxfdGltZS0+dnBtdDsKKyAgICBzdHJ1Y3QgaHZtX2h3X2FjcGkgKmFj cGkgPSAmdi0+ZG9tYWluLT5hcmNoLmh2bS5hY3BpOworICAgIFBNVFN0YXRlICpzID0gJnYtPmRv bWFpbi0+YXJjaC5odm0ucGxfdGltZS0+dnBtdDsKICAgICB1aW50MzJfdCBhZGRyLCBkYXRhLCBi eXRlOwogICAgIGludCBpOwogCiAgICAgYWRkciA9IHBvcnQgLQotICAgICAgICAoKHYtPmRvbWFp bi0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1sKKyAgICAgICAgKCh2LT5kb21haW4tPmFyY2guaHZt LnBhcmFtc1sKICAgICAgICAgICAgIEhWTV9QQVJBTV9BQ1BJX0lPUE9SVFNfTE9DQVRJT05dID09 IDApID8KICAgICAgICAgIFBNMWFfU1RTX0FERFJfVjAgOiBQTTFhX1NUU19BRERSX1YxKTsKIApA QCAtMjIwLDggKzIyMCw4IEBAIHN0YXRpYyBpbnQgaGFuZGxlX3BtdF9pbygKICAgICBpbnQgZGly LCB1bnNpZ25lZCBpbnQgcG9ydCwgdW5zaWduZWQgaW50IGJ5dGVzLCB1aW50MzJfdCAqdmFsKQog ewogICAgIHN0cnVjdCB2Y3B1ICp2ID0gY3VycmVudDsKLSAgICBzdHJ1Y3QgaHZtX2h3X2FjcGkg KmFjcGkgPSAmdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4uYWNwaTsKLSAgICBQTVRTdGF0ZSAq cyA9ICZ2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5wbF90aW1lLT52cG10OworICAgIHN0cnVj dCBodm1faHdfYWNwaSAqYWNwaSA9ICZ2LT5kb21haW4tPmFyY2guaHZtLmFjcGk7CisgICAgUE1U U3RhdGUgKnMgPSAmdi0+ZG9tYWluLT5hcmNoLmh2bS5wbF90aW1lLT52cG10OwogCiAgICAgaWYg KCBieXRlcyAhPSA0IHx8IGRpciAhPSBJT1JFUV9SRUFEICkKICAgICB7CkBAIC0yNTEsOCArMjUx LDggQEAgc3RhdGljIGludCBoYW5kbGVfcG10X2lvKAogCiBzdGF0aWMgaW50IGFjcGlfc2F2ZShz dHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKIHsKLSAgICBzdHJ1Y3Qg aHZtX2h3X2FjcGkgKmFjcGkgPSAmZC0+YXJjaC5odm1fZG9tYWluLmFjcGk7Ci0gICAgUE1UU3Rh dGUgKnMgPSAmZC0+YXJjaC5odm1fZG9tYWluLnBsX3RpbWUtPnZwbXQ7CisgICAgc3RydWN0IGh2 bV9od19hY3BpICphY3BpID0gJmQtPmFyY2guaHZtLmFjcGk7CisgICAgUE1UU3RhdGUgKnMgPSAm ZC0+YXJjaC5odm0ucGxfdGltZS0+dnBtdDsKICAgICB1aW50MzJfdCB4LCBtc2IgPSBhY3BpLT50 bXJfdmFsICYgVE1SX1ZBTF9NU0I7CiAgICAgaW50IHJjOwogCkBAIC0yODIsOCArMjgyLDggQEAg c3RhdGljIGludCBhY3BpX3NhdmUoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0 X3QgKmgpCiAKIHN0YXRpYyBpbnQgYWNwaV9sb2FkKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21h aW5fY29udGV4dF90ICpoKQogewotICAgIHN0cnVjdCBodm1faHdfYWNwaSAqYWNwaSA9ICZkLT5h cmNoLmh2bV9kb21haW4uYWNwaTsKLSAgICBQTVRTdGF0ZSAqcyA9ICZkLT5hcmNoLmh2bV9kb21h aW4ucGxfdGltZS0+dnBtdDsKKyAgICBzdHJ1Y3QgaHZtX2h3X2FjcGkgKmFjcGkgPSAmZC0+YXJj aC5odm0uYWNwaTsKKyAgICBQTVRTdGF0ZSAqcyA9ICZkLT5hcmNoLmh2bS5wbF90aW1lLT52cG10 OwogCiAgICAgaWYgKCAhaGFzX3ZwbShkKSApCiAgICAgICAgIHJldHVybiAtRU5PREVWOwpAQCAt MzIwLDcgKzMyMCw3IEBAIGludCBwbXRpbWVyX2NoYW5nZV9pb3BvcnQoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgaW50IHZlcnNpb24pCiAgICAgICAgIHJldHVybiAtRU5PREVWOwogCiAgICAg LyogQ2hlY2sgdGhhdCB2ZXJzaW9uIGlzIGNoYW5naW5nLiAqLwotICAgIG9sZF92ZXJzaW9uID0g ZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fQUNQSV9JT1BPUlRTX0xPQ0FUSU9O XTsKKyAgICBvbGRfdmVyc2lvbiA9IGQtPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fQUNQSV9J T1BPUlRTX0xPQ0FUSU9OXTsKICAgICBpZiAoIHZlcnNpb24gPT0gb2xkX3ZlcnNpb24gKQogICAg ICAgICByZXR1cm4gMDsKIApAQCAtMzQ2LDcgKzM0Niw3IEBAIGludCBwbXRpbWVyX2NoYW5nZV9p b3BvcnQoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IHZlcnNpb24pCiAKIHZvaWQgcG10 aW1lcl9pbml0KHN0cnVjdCB2Y3B1ICp2KQogewotICAgIFBNVFN0YXRlICpzID0gJnYtPmRvbWFp bi0+YXJjaC5odm1fZG9tYWluLnBsX3RpbWUtPnZwbXQ7CisgICAgUE1UU3RhdGUgKnMgPSAmdi0+ ZG9tYWluLT5hcmNoLmh2bS5wbF90aW1lLT52cG10OwogCiAgICAgaWYgKCAhaGFzX3ZwbSh2LT5k b21haW4pICkKICAgICAgICAgcmV0dXJuOwpAQCAtMzcwLDcgKzM3MCw3IEBAIHZvaWQgcG10aW1l cl9pbml0KHN0cnVjdCB2Y3B1ICp2KQogCiB2b2lkIHBtdGltZXJfZGVpbml0KHN0cnVjdCBkb21h aW4gKmQpCiB7Ci0gICAgUE1UU3RhdGUgKnMgPSAmZC0+YXJjaC5odm1fZG9tYWluLnBsX3RpbWUt PnZwbXQ7CisgICAgUE1UU3RhdGUgKnMgPSAmZC0+YXJjaC5odm0ucGxfdGltZS0+dnBtdDsKIAog ICAgIGlmICggIWhhc192cG0oZCkgKQogICAgICAgICByZXR1cm47CkBAIC0zODQsNyArMzg0LDcg QEAgdm9pZCBwbXRpbWVyX3Jlc2V0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIHJldHVybjsK IAogICAgIC8qIFJlc2V0IHRoZSBjb3VudGVyLiAqLwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi5h Y3BpLnRtcl92YWwgPSAwOworICAgIGQtPmFyY2guaHZtLmFjcGkudG1yX3ZhbCA9IDA7CiB9CiAK IC8qCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL3J0Yy5jIGIveGVuL2FyY2gveDg2L2h2 bS9ydGMuYwppbmRleCA5NjkyMWJiLi4xODI4NTg3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYv aHZtL3J0Yy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vcnRjLmMKQEAgLTM4LDcgKzM4LDcgQEAK ICNkZWZpbmUgTUlOX1BFUl9IT1VSICAgIDYwCiAjZGVmaW5lIEhPVVJfUEVSX0RBWSAgICAyNAog Ci0jZGVmaW5lIGRvbWFpbl92cnRjKHgpICgmKHgpLT5hcmNoLmh2bV9kb21haW4ucGxfdGltZS0+ dnJ0YykKKyNkZWZpbmUgZG9tYWluX3ZydGMoeCkgKCYoeCktPmFyY2guaHZtLnBsX3RpbWUtPnZy dGMpCiAjZGVmaW5lIHZjcHVfdnJ0Yyh4KSAgIChkb21haW5fdnJ0YygoeCktPmRvbWFpbikpCiAj ZGVmaW5lIHZydGNfZG9tYWluKHgpIChjb250YWluZXJfb2YoeCwgc3RydWN0IHBsX3RpbWUsIHZy dGMpLT5kb21haW4pCiAjZGVmaW5lIHZydGNfdmNwdSh4KSAgIChwdF9nbG9iYWxfdmNwdV90YXJn ZXQodnJ0Y19kb21haW4oeCkpKQpAQCAtMTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIHJ0Y190 aW1lcl91cGRhdGUoUlRDU3RhdGUgKnMpCiAgICAgICAgICAgICAgICAgc190aW1lX3Qgbm93ID0g Tk9XKCk7CiAKICAgICAgICAgICAgICAgICBzLT5wZXJpb2QgPSBwZXJpb2Q7Ci0gICAgICAgICAg ICAgICAgaWYgKCB2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX1ZQ VF9BTElHTl0gKQorICAgICAgICAgICAgICAgIGlmICggdi0+ZG9tYWluLT5hcmNoLmh2bS5wYXJh bXNbSFZNX1BBUkFNX1ZQVF9BTElHTl0gKQogICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IDA7 CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBkZWx0YSA9IHBlcmlv ZCAtICgobm93IC0gcy0+c3RhcnRfdGltZSkgJSBwZXJpb2QpOwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L2h2bS9zYXZlLmMgYi94ZW4vYXJjaC94ODYvaHZtL3NhdmUuYwppbmRleCBkMmRjNDMw Li4wYWNlMTYwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3NhdmUuYworKysgYi94ZW4v YXJjaC94ODYvaHZtL3NhdmUuYwpAQCAtMzksNyArMzksNyBAQCB2b2lkIGFyY2hfaHZtX3NhdmUo c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9zYXZlX2hlYWRlciAqaGRyKQogICAgIGhkci0+ Z3RzY19raHogPSBkLT5hcmNoLnRzY19raHo7CiAKICAgICAvKiBUaW1lIHdoZW4gc2F2aW5nIHN0 YXJ0ZWQgKi8KLSAgICBkLT5hcmNoLmh2bV9kb21haW4uc3luY190c2MgPSByZHRzYygpOworICAg IGQtPmFyY2guaHZtLnN5bmNfdHNjID0gcmR0c2MoKTsKIH0KIAogaW50IGFyY2hfaHZtX2xvYWQo c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9zYXZlX2hlYWRlciAqaGRyKQpAQCAtNzQsMTAg Kzc0LDEwIEBAIGludCBhcmNoX2h2bV9sb2FkKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1f c2F2ZV9oZWFkZXIgKmhkcikKICAgICAgICAgaHZtX3NldF9yZHRzY19leGl0aW5nKGQsIDEpOwog CiAgICAgLyogVGltZSB3aGVuIHJlc3RvcmUgc3RhcnRlZCAgKi8KLSAgICBkLT5hcmNoLmh2bV9k b21haW4uc3luY190c2MgPSByZHRzYygpOworICAgIGQtPmFyY2guaHZtLnN5bmNfdHNjID0gcmR0 c2MoKTsKIAogICAgIC8qIFZHQSBzdGF0ZSBpcyBub3Qgc2F2ZWQvcmVzdG9yZWQsIHNvIHdlIG5v YmJsZSB0aGUgY2FjaGUuICovCi0gICAgZC0+YXJjaC5odm1fZG9tYWluLnN0ZHZnYS5jYWNoZSA9 IFNURFZHQV9DQUNIRV9ESVNBQkxFRDsKKyAgICBkLT5hcmNoLmh2bS5zdGR2Z2EuY2FjaGUgPSBT VERWR0FfQ0FDSEVfRElTQUJMRUQ7CiAKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N0ZHZnYS5jCmluZGV4 IDkyNWJhYjIuLmJkMzk4ZGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vc3RkdmdhLmMK KysrIGIveGVuL2FyY2gveDg2L2h2bS9zdGR2Z2EuYwpAQCAtMTM0LDcgKzEzNCw3IEBAIHN0YXRp YyBib29sX3Qgc3RkdmdhX2NhY2hlX2lzX2VuYWJsZWQoY29uc3Qgc3RydWN0IGh2bV9od19zdGR2 Z2EgKnMpCiAKIHN0YXRpYyBpbnQgc3RkdmdhX291dGIodWludDY0X3QgYWRkciwgdWludDhfdCB2 YWwpCiB7Ci0gICAgc3RydWN0IGh2bV9od19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5h cmNoLmh2bV9kb21haW4uc3RkdmdhOworICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0gJmN1 cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0uc3RkdmdhOwogICAgIGludCByYyA9IDEsIHByZXZfc3Rk dmdhID0gcy0+c3RkdmdhOwogCiAgICAgc3dpdGNoICggYWRkciApCkBAIC0yMDIsNyArMjAyLDcg QEAgc3RhdGljIHZvaWQgc3RkdmdhX291dCh1aW50MzJfdCBwb3J0LCB1aW50MzJfdCBieXRlcywg dWludDMyX3QgdmFsKQogc3RhdGljIGludCBzdGR2Z2FfaW50ZXJjZXB0X3BpbygKICAgICBpbnQg ZGlyLCB1bnNpZ25lZCBpbnQgcG9ydCwgdW5zaWduZWQgaW50IGJ5dGVzLCB1aW50MzJfdCAqdmFs KQogewotICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJj aC5odm1fZG9tYWluLnN0ZHZnYTsKKyAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJy ZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsKIAogICAgIGlmICggZGlyID09IElPUkVRX1dS SVRFICkKICAgICB7CkBAIC0yNTIsNyArMjUyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBzdGR2 Z2FfbWVtX29mZnNldCgKIAogc3RhdGljIHVpbnQ4X3Qgc3RkdmdhX21lbV9yZWFkYih1aW50NjRf dCBhZGRyKQogewotICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFp bi0+YXJjaC5odm1fZG9tYWluLnN0ZHZnYTsKKyAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9 ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsKICAgICBpbnQgcGxhbmU7CiAgICAg dWludDMyX3QgcmV0LCAqdnJhbV9sOwogICAgIHVpbnQ4X3QgKnZyYW1fYjsKQEAgLTM0Nyw3ICsz NDcsNyBAQCBzdGF0aWMgaW50IHN0ZHZnYV9tZW1fcmVhZChjb25zdCBzdHJ1Y3QgaHZtX2lvX2hh bmRsZXIgKmhhbmRsZXIsCiAKIHN0YXRpYyB2b2lkIHN0ZHZnYV9tZW1fd3JpdGViKHVpbnQ2NF90 IGFkZHIsIHVpbnQzMl90IHZhbCkKIHsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZj dXJyZW50LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5zdGR2Z2E7CisgICAgc3RydWN0IGh2bV9o d19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS5zdGR2Z2E7CiAgICAgaW50 IHBsYW5lLCB3cml0ZV9tb2RlLCBiLCBmdW5jX3NlbGVjdCwgbWFzazsKICAgICB1aW50MzJfdCB3 cml0ZV9tYXNrLCBiaXRfbWFzaywgc2V0X21hc2ssICp2cmFtX2w7CiAgICAgdWludDhfdCAqdnJh bV9iOwpAQCAtNDU3LDcgKzQ1Nyw3IEBAIHN0YXRpYyBpbnQgc3RkdmdhX21lbV93cml0ZShjb25z dCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDY0X3QgYWRkciwgdWludDMyX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50NjRfdCBkYXRhKQogewotICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0g JmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLnN0ZHZnYTsKKyAgICBzdHJ1Y3QgaHZt X2h3X3N0ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21haW4tPmFyY2guaHZtLnN0ZHZnYTsKICAgICBp b3JlcV90IHAgPSB7CiAgICAgICAgIC50eXBlID0gSU9SRVFfVFlQRV9DT1BZLAogICAgICAgICAu YWRkciA9IGFkZHIsCkBAIC01MTcsNyArNTE3LDcgQEAgc3RhdGljIGludCBzdGR2Z2FfbWVtX3dy aXRlKGNvbnN0IHN0cnVjdCBodm1faW9faGFuZGxlciAqaGFuZGxlciwKIHN0YXRpYyBib29sX3Qg c3RkdmdhX21lbV9hY2NlcHQoY29uc3Qgc3RydWN0IGh2bV9pb19oYW5kbGVyICpoYW5kbGVyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpb3JlcV90ICpwKQogewotICAg IHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm1fZG9t YWluLnN0ZHZnYTsKKyAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZjdXJyZW50LT5kb21h aW4tPmFyY2guaHZtLnN0ZHZnYTsKIAogICAgIC8qCiAgICAgICogVGhlIHJhbmdlIGNoZWNrIG11 c3QgYmUgZG9uZSB3aXRob3V0IHRha2luZyB0aGUgbG9jaywgdG8gYXZvaWQKQEAgLTU2MCw3ICs1 NjAsNyBAQCBzdGF0aWMgYm9vbF90IHN0ZHZnYV9tZW1fYWNjZXB0KGNvbnN0IHN0cnVjdCBodm1f aW9faGFuZGxlciAqaGFuZGxlciwKIAogc3RhdGljIHZvaWQgc3RkdmdhX21lbV9jb21wbGV0ZShj b25zdCBzdHJ1Y3QgaHZtX2lvX2hhbmRsZXIgKmhhbmRsZXIpCiB7Ci0gICAgc3RydWN0IGh2bV9o d19zdGR2Z2EgKnMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4uc3RkdmdhOwor ICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0u c3RkdmdhOwogCiAgICAgc3Bpbl91bmxvY2soJnMtPmxvY2spOwogfQpAQCAtNTc0LDcgKzU3NCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaHZtX2lvX29wcyBzdGR2Z2FfbWVtX29wcyA9IHsKIAog dm9pZCBzdGR2Z2FfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQogewotICAgIHN0cnVjdCBodm1faHdf c3RkdmdhICpzID0gJmQtPmFyY2guaHZtX2RvbWFpbi5zdGR2Z2E7CisgICAgc3RydWN0IGh2bV9o d19zdGR2Z2EgKnMgPSAmZC0+YXJjaC5odm0uc3RkdmdhOwogICAgIHN0cnVjdCBwYWdlX2luZm8g KnBnOwogICAgIHVuc2lnbmVkIGludCBpOwogCkBAIC02MTUsNyArNjE1LDcgQEAgdm9pZCBzdGR2 Z2FfaW5pdChzdHJ1Y3QgZG9tYWluICpkKQogCiB2b2lkIHN0ZHZnYV9kZWluaXQoc3RydWN0IGRv bWFpbiAqZCkKIHsKLSAgICBzdHJ1Y3QgaHZtX2h3X3N0ZHZnYSAqcyA9ICZkLT5hcmNoLmh2bV9k b21haW4uc3RkdmdhOworICAgIHN0cnVjdCBodm1faHdfc3RkdmdhICpzID0gJmQtPmFyY2guaHZt LnN0ZHZnYTsKICAgICBpbnQgaTsKIAogICAgIGlmICggIWhhc192dmdhKGQpICkKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3N2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3Zt LmMKaW5kZXggYTE2ZjM3Mi4uMmQ1MjI0NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9z dm0vc3ZtLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vc3ZtLmMKQEAgLTExOTcsNyArMTE5 Nyw3IEBAIHZvaWQgc3ZtX3ZtZW50ZXJfaGVscGVyKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdz ICpyZWdzKQogCiBzdGF0aWMgdm9pZCBzdm1fZ3Vlc3Rfb3N2d19pbml0KHN0cnVjdCBkb21haW4g KmQpCiB7Ci0gICAgc3RydWN0IHN2bV9kb21haW4gKnN2bSA9ICZkLT5hcmNoLmh2bV9kb21haW4u c3ZtOworICAgIHN0cnVjdCBzdm1fZG9tYWluICpzdm0gPSAmZC0+YXJjaC5odm0uc3ZtOwogCiAg ICAgc3Bpbl9sb2NrKCZvc3Z3X2xvY2spOwogCkBAIC0yMDA2LDggKzIwMDYsNyBAQCBzdGF0aWMg aW50IHN2bV9tc3JfcmVhZF9pbnRlcmNlcHQodW5zaWduZWQgaW50IG1zciwgdWludDY0X3QgKm1z cl9jb250ZW50KQogICAgIGNhc2UgTVNSX0FNRF9PU1ZXX1NUQVRVUzoKICAgICAgICAgaWYgKCAh ZC0+YXJjaC5jcHVpZC0+ZXh0ZC5vc3Z3ICkKICAgICAgICAgICAgIGdvdG8gZ3BmOwotICAgICAg ICAqbXNyX2NvbnRlbnQgPQotICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnN2bS5vc3Z3 LnJhd1ttc3IgLSBNU1JfQU1EX09TVldfSURfTEVOR1RIXTsKKyAgICAgICAgKm1zcl9jb250ZW50 ID0gZC0+YXJjaC5odm0uc3ZtLm9zdncucmF3W21zciAtIE1TUl9BTURfT1NWV19JRF9MRU5HVEhd OwogICAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvaHZtL3N2bS92bWNiLmMgYi94ZW4vYXJjaC94ODYvaHZtL3N2bS92bWNiLmMKaW5kZXggMDQ1 MThmZC4uZDMxZmNmYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jCisr KyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3ZtY2IuYwpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRp YyBpbnQgY29uc3RydWN0X3ZtY2Ioc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIHN2bV9kaXNhYmxl X2ludGVyY2VwdF9mb3JfbXNyKHYsIE1TUl9BTUQ2NF9MV1BfQ0JBRERSKTsKIAogICAgIHZtY2It Pl9tc3JwbV9iYXNlX3BhID0gKHU2NCl2aXJ0X3RvX21hZGRyKGFyY2hfc3ZtLT5tc3JwbSk7Ci0g ICAgdm1jYi0+X2lvcG1fYmFzZV9wYSA9IF9fcGEodi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4u aW9fYml0bWFwKTsKKyAgICB2bWNiLT5faW9wbV9iYXNlX3BhID0gX19wYSh2LT5kb21haW4tPmFy Y2guaHZtLmlvX2JpdG1hcCk7CiAKICAgICAvKiBWaXJ0dWFsaXNlIEVGTEFHUy5JRiBhbmQgTEFQ SUMgVFBSIChDUjgpLiAqLwogICAgIHZtY2ItPl92aW50ci5maWVsZHMuaW50cl9tYXNraW5nID0g MTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlvYXBpYy5jIGIveGVuL2FyY2gveDg2 L2h2bS92aW9hcGljLmMKaW5kZXggOTdiNDE5Zi4uOTY3NTQyNCAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2h2bS92aW9hcGljLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92aW9hcGljLmMKQEAg LTQ5LDcgKzQ5LDcgQEAgc3RhdGljIHN0cnVjdCBodm1fdmlvYXBpYyAqYWRkcl92aW9hcGljKGNv bnN0IHN0cnVjdCBkb21haW4gKmQsCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CiAKLSAgICBmb3Ig KCBpID0gMDsgaSA8IGQtPmFyY2guaHZtX2RvbWFpbi5ucl92aW9hcGljczsgaSsrICkKKyAgICBm b3IgKCBpID0gMDsgaSA8IGQtPmFyY2guaHZtLm5yX3Zpb2FwaWNzOyBpKysgKQogICAgIHsKICAg ICAgICAgc3RydWN0IGh2bV92aW9hcGljICp2aW9hcGljID0gZG9tYWluX3Zpb2FwaWMoZCwgaSk7 CiAKQEAgLTY2LDcgKzY2LDcgQEAgc3RhdGljIHN0cnVjdCBodm1fdmlvYXBpYyAqZ3NpX3Zpb2Fw aWMoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKIAotICAg IGZvciAoIGkgPSAwOyBpIDwgZC0+YXJjaC5odm1fZG9tYWluLm5yX3Zpb2FwaWNzOyBpKysgKQor ICAgIGZvciAoIGkgPSAwOyBpIDwgZC0+YXJjaC5odm0ubnJfdmlvYXBpY3M7IGkrKyApCiAgICAg ewogICAgICAgICBzdHJ1Y3QgaHZtX3Zpb2FwaWMgKnZpb2FwaWMgPSBkb21haW5fdmlvYXBpYyhk LCBpKTsKIApAQCAtMjE0LDcgKzIxNCw3IEBAIHN0YXRpYyB2b2lkIHZpb2FwaWNfd3JpdGVfcmVk aXJlbnQoCiAgICAgaW50IHVubWFza2VkID0gMDsKICAgICB1bnNpZ25lZCBpbnQgZ3NpID0gdmlv YXBpYy0+YmFzZV9nc2kgKyBpZHg7CiAKLSAgICBzcGluX2xvY2soJmQtPmFyY2guaHZtX2RvbWFp bi5pcnFfbG9jayk7CisgICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bS5pcnFfbG9jayk7CiAKICAg ICBwZW50ID0gJnZpb2FwaWMtPnJlZGlydGJsW2lkeF07CiAgICAgZW50ICA9ICpwZW50OwpAQCAt MjY0LDcgKzI2NCw3IEBAIHN0YXRpYyB2b2lkIHZpb2FwaWNfd3JpdGVfcmVkaXJlbnQoCiAgICAg ICAgIHZpb2FwaWNfZGVsaXZlcih2aW9hcGljLCBpZHgpOwogICAgIH0KIAotICAgIHNwaW5fdW5s b2NrKCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2spOworICAgIHNwaW5fdW5sb2NrKCZkLT5h cmNoLmh2bS5pcnFfbG9jayk7CiAKICAgICBpZiAoIGdzaSA9PSAwIHx8IHVubWFza2VkICkKICAg ICAgICAgcHRfbWF5X3VubWFza19pcnEoZCwgTlVMTCk7CkBAIC0zODgsNyArMzg4LDcgQEAgc3Rh dGljIHZvaWQgdmlvYXBpY19kZWxpdmVyKHN0cnVjdCBodm1fdmlvYXBpYyAqdmlvYXBpYywgdW5z aWduZWQgaW50IHBpbikKICAgICBzdHJ1Y3QgdmNwdSAqdjsKICAgICB1bnNpZ25lZCBpbnQgaXJx ID0gdmlvYXBpYy0+YmFzZV9nc2kgKyBwaW47CiAKLSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQo JmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jaykpOworICAgIEFTU0VSVChzcGluX2lzX2xvY2tl ZCgmZC0+YXJjaC5odm0uaXJxX2xvY2spKTsKIAogICAgIEhWTV9EQkdfTE9HKERCR19MRVZFTF9J T0FQSUMsCiAgICAgICAgICAgICAgICAgImRlc3Q9JXggZGVzdF9tb2RlPSV4IGRlbGl2ZXJ5X21v ZGU9JXggIgpAQCAtNDc2LDcgKzQ3Niw3IEBAIHZvaWQgdmlvYXBpY19pcnFfcG9zaXRpdmVfZWRn ZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgaXJxKQogICAgIEhWTV9EQkdfTE9HKERC R19MRVZFTF9JT0FQSUMsICJpcnEgJXgiLCBpcnEpOwogCiAgICAgQVNTRVJUKHBpbiA8IHZpb2Fw aWMtPm5yX3BpbnMpOwotICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmZC0+YXJjaC5odm1fZG9t YWluLmlycV9sb2NrKSk7CisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZkLT5hcmNoLmh2bS5p cnFfbG9jaykpOwogCiAgICAgZW50ID0gJnZpb2FwaWMtPnJlZGlydGJsW3Bpbl07CiAgICAgaWYg KCBlbnQtPmZpZWxkcy5tYXNrICkKQEAgLTUwMSw5ICs1MDEsOSBAQCB2b2lkIHZpb2FwaWNfdXBk YXRlX0VPSShzdHJ1Y3QgZG9tYWluICpkLCB1OCB2ZWN0b3IpCiAKICAgICBBU1NFUlQoaGFzX3Zp b2FwaWMoZCkpOwogCi0gICAgc3Bpbl9sb2NrKCZkLT5hcmNoLmh2bV9kb21haW4uaXJxX2xvY2sp OworICAgIHNwaW5fbG9jaygmZC0+YXJjaC5odm0uaXJxX2xvY2spOwogCi0gICAgZm9yICggaSA9 IDA7IGkgPCBkLT5hcmNoLmh2bV9kb21haW4ubnJfdmlvYXBpY3M7IGkrKyApCisgICAgZm9yICgg aSA9IDA7IGkgPCBkLT5hcmNoLmh2bS5ucl92aW9hcGljczsgaSsrICkKICAgICB7CiAgICAgICAg IHN0cnVjdCBodm1fdmlvYXBpYyAqdmlvYXBpYyA9IGRvbWFpbl92aW9hcGljKGQsIGkpOwogICAg ICAgICB1bnNpZ25lZCBpbnQgcGluOwpAQCAtNTE4LDkgKzUxOCw5IEBAIHZvaWQgdmlvYXBpY191 cGRhdGVfRU9JKHN0cnVjdCBkb21haW4gKmQsIHU4IHZlY3RvcikKIAogICAgICAgICAgICAgaWYg KCBpb21tdV9lbmFibGVkICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzcGluX3Vu bG9jaygmZC0+YXJjaC5odm1fZG9tYWluLmlycV9sb2NrKTsKKyAgICAgICAgICAgICAgICBzcGlu X3VubG9jaygmZC0+YXJjaC5odm0uaXJxX2xvY2spOwogICAgICAgICAgICAgICAgIGh2bV9kcGNp X2VvaShkLCB2aW9hcGljLT5iYXNlX2dzaSArIHBpbiwgZW50KTsKLSAgICAgICAgICAgICAgICBz cGluX2xvY2soJmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgICAgICAgICAgICAg c3Bpbl9sb2NrKCZkLT5hcmNoLmh2bS5pcnFfbG9jayk7CiAgICAgICAgICAgICB9CiAKICAgICAg ICAgICAgIGlmICggKGVudC0+ZmllbGRzLnRyaWdfbW9kZSA9PSBWSU9BUElDX0xFVkVMX1RSSUcp ICYmCkBAIC01MzMsNyArNTMzLDcgQEAgdm9pZCB2aW9hcGljX3VwZGF0ZV9FT0koc3RydWN0IGRv bWFpbiAqZCwgdTggdmVjdG9yKQogICAgICAgICB9CiAgICAgfQogCi0gICAgc3Bpbl91bmxvY2so JmQtPmFyY2guaHZtX2RvbWFpbi5pcnFfbG9jayk7CisgICAgc3Bpbl91bmxvY2soJmQtPmFyY2gu aHZtLmlycV9sb2NrKTsKIH0KIAogaW50IHZpb2FwaWNfZ2V0X21hc2soY29uc3Qgc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IGdzaSkKQEAgLTU3OSw3ICs1NzksNyBAQCBzdGF0aWMgaW50 IGlvYXBpY19zYXZlKHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQog ICAgIHMgPSBkb21haW5fdmlvYXBpYyhkLCAwKTsKIAogICAgIGlmICggcy0+bnJfcGlucyAhPSBB UlJBWV9TSVpFKHMtPmRvbVUucmVkaXJ0YmwpIHx8Ci0gICAgICAgICBkLT5hcmNoLmh2bV9kb21h aW4ubnJfdmlvYXBpY3MgIT0gMSApCisgICAgICAgICBkLT5hcmNoLmh2bS5ucl92aW9hcGljcyAh PSAxICkKICAgICAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwogCiAgICAgcmV0dXJuIGh2bV9zYXZl X2VudHJ5KElPQVBJQywgMCwgaCwgJnMtPmRvbVUpOwpAQCAtNTk1LDcgKzU5NSw3IEBAIHN0YXRp YyBpbnQgaW9hcGljX2xvYWQoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFpbl9jb250ZXh0X3Qg KmgpCiAgICAgcyA9IGRvbWFpbl92aW9hcGljKGQsIDApOwogCiAgICAgaWYgKCBzLT5ucl9waW5z ICE9IEFSUkFZX1NJWkUocy0+ZG9tVS5yZWRpcnRibCkgfHwKLSAgICAgICAgIGQtPmFyY2guaHZt X2RvbWFpbi5ucl92aW9hcGljcyAhPSAxICkKKyAgICAgICAgIGQtPmFyY2guaHZtLm5yX3Zpb2Fw aWNzICE9IDEgKQogICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7CiAKICAgICByZXR1cm4gaHZt X2xvYWRfZW50cnkoSU9BUElDLCBoLCAmcy0+ZG9tVSk7CkBAIC02MDksMTEgKzYwOSwxMSBAQCB2 b2lkIHZpb2FwaWNfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKIAogICAgIGlmICggIWhhc192aW9h cGljKGQpICkKICAgICB7Ci0gICAgICAgIEFTU0VSVCghZC0+YXJjaC5odm1fZG9tYWluLm5yX3Zp b2FwaWNzKTsKKyAgICAgICAgQVNTRVJUKCFkLT5hcmNoLmh2bS5ucl92aW9hcGljcyk7CiAgICAg ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBmb3IgKCBpID0gMDsgaSA8IGQtPmFyY2guaHZtX2Rv bWFpbi5ucl92aW9hcGljczsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgaSA8IGQtPmFyY2guaHZt Lm5yX3Zpb2FwaWNzOyBpKysgKQogICAgIHsKICAgICAgICAgc3RydWN0IGh2bV92aW9hcGljICp2 aW9hcGljID0gZG9tYWluX3Zpb2FwaWMoZCwgaSk7CiAgICAgICAgIHVuc2lnbmVkIGludCBucl9w aW5zID0gdmlvYXBpYy0+bnJfcGlucywgYmFzZV9nc2kgPSB2aW9hcGljLT5iYXNlX2dzaTsKQEAg LTY0Niw3ICs2NDYsNyBAQCBzdGF0aWMgdm9pZCB2aW9hcGljX2ZyZWUoY29uc3Qgc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IG5yX3Zpb2FwaWNzKQogCiAgICAgZm9yICggaSA9IDA7IGkg PCBucl92aW9hcGljczsgaSsrKQogICAgICAgICB4ZnJlZShkb21haW5fdmlvYXBpYyhkLCBpKSk7 Ci0gICAgeGZyZWUoZC0+YXJjaC5odm1fZG9tYWluLnZpb2FwaWMpOworICAgIHhmcmVlKGQtPmFy Y2guaHZtLnZpb2FwaWMpOwogfQogCiBpbnQgdmlvYXBpY19pbml0KHN0cnVjdCBkb21haW4gKmQp CkBAIC02NTUsMTQgKzY1NSwxNCBAQCBpbnQgdmlvYXBpY19pbml0KHN0cnVjdCBkb21haW4gKmQp CiAKICAgICBpZiAoICFoYXNfdmlvYXBpYyhkKSApCiAgICAgewotICAgICAgICBBU1NFUlQoIWQt PmFyY2guaHZtX2RvbWFpbi5ucl92aW9hcGljcyk7CisgICAgICAgIEFTU0VSVCghZC0+YXJjaC5o dm0ubnJfdmlvYXBpY3MpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKICAgICBucl92aW9h cGljcyA9IGlzX2hhcmR3YXJlX2RvbWFpbihkKSA/IG5yX2lvYXBpY3MgOiAxOwogCi0gICAgaWYg KCAoZC0+YXJjaC5odm1fZG9tYWluLnZpb2FwaWMgPT0gTlVMTCkgJiYKLSAgICAgICAgICgoZC0+ YXJjaC5odm1fZG9tYWluLnZpb2FwaWMgPQorICAgIGlmICggKGQtPmFyY2guaHZtLnZpb2FwaWMg PT0gTlVMTCkgJiYKKyAgICAgICAgICgoZC0+YXJjaC5odm0udmlvYXBpYyA9CiAgICAgICAgICAg IHh6YWxsb2NfYXJyYXkoc3RydWN0IGh2bV92aW9hcGljICosIG5yX3Zpb2FwaWNzKSkgPT0gTlVM TCkgKQogICAgICAgICByZXR1cm4gLUVOT01FTTsKIApAQCAtNjk5LDcgKzY5OSw3IEBAIGludCB2 aW9hcGljX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgKi8KICAgICBBU1NFUlQoaHZtX2Rv bWFpbl9pcnEoZCktPm5yX2dzaXMgPj0gbnJfZ3Npcyk7CiAKLSAgICBkLT5hcmNoLmh2bV9kb21h aW4ubnJfdmlvYXBpY3MgPSBucl92aW9hcGljczsKKyAgICBkLT5hcmNoLmh2bS5ucl92aW9hcGlj cyA9IG5yX3Zpb2FwaWNzOwogICAgIHZpb2FwaWNfcmVzZXQoZCk7CiAKICAgICByZWdpc3Rlcl9t bWlvX2hhbmRsZXIoZCwgJnZpb2FwaWNfbW1pb19vcHMpOwpAQCAtNzExLDkgKzcxMSw5IEBAIHZv aWQgdmlvYXBpY19kZWluaXQoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBpZiAoICFoYXNfdmlv YXBpYyhkKSApCiAgICAgewotICAgICAgICBBU1NFUlQoIWQtPmFyY2guaHZtX2RvbWFpbi5ucl92 aW9hcGljcyk7CisgICAgICAgIEFTU0VSVCghZC0+YXJjaC5odm0ubnJfdmlvYXBpY3MpOwogICAg ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdmlvYXBpY19mcmVlKGQsIGQtPmFyY2guaHZtX2Rv bWFpbi5ucl92aW9hcGljcyk7CisgICAgdmlvYXBpY19mcmVlKGQsIGQtPmFyY2guaHZtLm5yX3Zp b2FwaWNzKTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYyBiL3hl bi9hcmNoL3g4Ni9odm0vdmlyaWRpYW4uYwppbmRleCA0ODYwNjUxLi41ZGRiNDFiIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZpcmlkaWFuLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92 aXJpZGlhbi5jCkBAIC0yMjMsNyArMjIzLDcgQEAgdm9pZCBjcHVpZF92aXJpZGlhbl9sZWF2ZXMo Y29uc3Qgc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IGxlYWYsCiAgICAgY2FzZSAyOgogICAgICAg ICAvKiBIeXBlcnZpc29yIGluZm9ybWF0aW9uLCBidXQgb25seSBpZiB0aGUgZ3Vlc3QgaGFzIHNl dCBpdHMKICAgICAgICAgICAgb3duIHZlcnNpb24gbnVtYmVyLiAqLwotICAgICAgICBpZiAoIGQt PmFyY2guaHZtX2RvbWFpbi52aXJpZGlhbi5ndWVzdF9vc19pZC5yYXcgPT0gMCApCisgICAgICAg IGlmICggZC0+YXJjaC5odm0udmlyaWRpYW4uZ3Vlc3Rfb3NfaWQucmF3ID09IDAgKQogICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgIHJlcy0+YSA9IHZpcmlkaWFuX2J1aWxkOwogICAgICAgICBy ZXMtPmIgPSAoKHVpbnQzMl90KXZpcmlkaWFuX21ham9yIDw8IDE2KSB8IHZpcmlkaWFuX21pbm9y OwpAQCAtMjY4LDggKzI2OCw4IEBAIHZvaWQgY3B1aWRfdmlyaWRpYW5fbGVhdmVzKGNvbnN0IHN0 cnVjdCB2Y3B1ICp2LCB1aW50MzJfdCBsZWFmLAogCiAgICAgY2FzZSA0OgogICAgICAgICAvKiBS ZWNvbW1lbmRlZCBoeXBlcmNhbGwgdXNhZ2UuICovCi0gICAgICAgIGlmICggKGQtPmFyY2guaHZt X2RvbWFpbi52aXJpZGlhbi5ndWVzdF9vc19pZC5yYXcgPT0gMCkgfHwKLSAgICAgICAgICAgICAo ZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLmd1ZXN0X29zX2lkLmZpZWxkcy5vcyA8IDQpICkK KyAgICAgICAgaWYgKCAoZC0+YXJjaC5odm0udmlyaWRpYW4uZ3Vlc3Rfb3NfaWQucmF3ID09IDAp IHx8CisgICAgICAgICAgICAgKGQtPmFyY2guaHZtLnZpcmlkaWFuLmd1ZXN0X29zX2lkLmZpZWxk cy5vcyA8IDQpICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICByZXMtPmEgPSBDUFVJRDRB X1JFTEFYX1RJTUVSX0lOVDsKICAgICAgICAgaWYgKCB2aXJpZGlhbl9mZWF0dXJlX21hc2soZCkg JiBIVk1QVl9oY2FsbF9yZW1vdGVfdGxiX2ZsdXNoICkKQEAgLTMwMSw3ICszMDEsNyBAQCBzdGF0 aWMgdm9pZCBkdW1wX2d1ZXN0X29zX2lkKGNvbnN0IHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAg Y29uc3QgdW5pb24gdmlyaWRpYW5fZ3Vlc3Rfb3NfaWQgKmdvaTsKIAotICAgIGdvaSA9ICZkLT5h cmNoLmh2bV9kb21haW4udmlyaWRpYW4uZ3Vlc3Rfb3NfaWQ7CisgICAgZ29pID0gJmQtPmFyY2gu aHZtLnZpcmlkaWFuLmd1ZXN0X29zX2lkOwogCiAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8KICAg ICAgICAgICAgImQlZDogVklSSURJQU4gR1VFU1RfT1NfSUQ6IHZlbmRvcjogJXggb3M6ICV4IG1h am9yOiAleCBtaW5vcjogJXggc3A6ICV4IGJ1aWxkOiAleFxuIiwKQEAgLTMxNSw3ICszMTUsNyBA QCBzdGF0aWMgdm9pZCBkdW1wX2h5cGVyY2FsbChjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQogewog ICAgIGNvbnN0IHVuaW9uIHZpcmlkaWFuX2h5cGVyY2FsbF9ncGEgKmhnOwogCi0gICAgaGcgPSAm ZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLmh5cGVyY2FsbF9ncGE7CisgICAgaGcgPSAmZC0+ YXJjaC5odm0udmlyaWRpYW4uaHlwZXJjYWxsX2dwYTsKIAogICAgIHByaW50ayhYRU5MT0dfR19J TkZPICJkJWQ6IFZJUklESUFOIEhZUEVSQ0FMTDogZW5hYmxlZDogJXggcGZuOiAlbHhcbiIsCiAg ICAgICAgICAgIGQtPmRvbWFpbl9pZCwKQEAgLTMzNiw3ICszMzYsNyBAQCBzdGF0aWMgdm9pZCBk dW1wX3JlZmVyZW5jZV90c2MoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBjb25zdCB1 bmlvbiB2aXJpZGlhbl9yZWZlcmVuY2VfdHNjICpydDsKIAotICAgIHJ0ID0gJmQtPmFyY2guaHZt X2RvbWFpbi52aXJpZGlhbi5yZWZlcmVuY2VfdHNjOworICAgIHJ0ID0gJmQtPmFyY2guaHZtLnZp cmlkaWFuLnJlZmVyZW5jZV90c2M7CiAgICAgCiAgICAgcHJpbnRrKFhFTkxPR19HX0lORk8gImQl ZDogVklSSURJQU4gUkVGRVJFTkNFX1RTQzogZW5hYmxlZDogJXggcGZuOiAlbHhcbiIsCiAgICAg ICAgICAgIGQtPmRvbWFpbl9pZCwKQEAgLTM0NSw3ICszNDUsNyBAQCBzdGF0aWMgdm9pZCBkdW1w X3JlZmVyZW5jZV90c2MoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIAogc3RhdGljIHZvaWQgZW5h YmxlX2h5cGVyY2FsbF9wYWdlKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgdW5zaWduZWQgbG9u ZyBnbWZuID0gZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLmh5cGVyY2FsbF9ncGEuZmllbGRz LnBmbjsKKyAgICB1bnNpZ25lZCBsb25nIGdtZm4gPSBkLT5hcmNoLmh2bS52aXJpZGlhbi5oeXBl cmNhbGxfZ3BhLmZpZWxkcy5wZm47CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSA9IGdldF9w YWdlX2Zyb21fZ2ZuKGQsIGdtZm4sIE5VTEwsIFAyTV9BTExPQyk7CiAgICAgdWludDhfdCAqcDsK IApAQCAtNDgzLDcgKzQ4Myw3IEBAIHZvaWQgdmlyaWRpYW5fYXBpY19hc3Npc3RfY2xlYXIoc3Ry dWN0IHZjcHUgKnYpCiAKIHN0YXRpYyB2b2lkIHVwZGF0ZV9yZWZlcmVuY2VfdHNjKHN0cnVjdCBk b21haW4gKmQsIGJvb2xfdCBpbml0aWFsaXplKQogewotICAgIHVuc2lnbmVkIGxvbmcgZ21mbiA9 IGQtPmFyY2guaHZtX2RvbWFpbi52aXJpZGlhbi5yZWZlcmVuY2VfdHNjLmZpZWxkcy5wZm47Cisg ICAgdW5zaWduZWQgbG9uZyBnbWZuID0gZC0+YXJjaC5odm0udmlyaWRpYW4ucmVmZXJlbmNlX3Rz Yy5maWVsZHMucGZuOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBnZXRfcGFnZV9mcm9t X2dmbihkLCBnbWZuLCBOVUxMLCBQMk1fQUxMT0MpOwogICAgIEhWX1JFRkVSRU5DRV9UU0NfUEFH RSAqcDsKIApAQCAtNTY2LDE1ICs1NjYsMTUgQEAgaW50IHdybXNyX3ZpcmlkaWFuX3JlZ3ModWlu dDMyX3QgaWR4LCB1aW50NjRfdCB2YWwpCiAgICAgewogICAgIGNhc2UgSFZfWDY0X01TUl9HVUVT VF9PU19JRDoKICAgICAgICAgcGVyZmNfaW5jcihtc2h2X3dybXNyX29zaWQpOwotICAgICAgICBk LT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4uZ3Vlc3Rfb3NfaWQucmF3ID0gdmFsOworICAgICAg ICBkLT5hcmNoLmh2bS52aXJpZGlhbi5ndWVzdF9vc19pZC5yYXcgPSB2YWw7CiAgICAgICAgIGR1 bXBfZ3Vlc3Rfb3NfaWQoZCk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVl9YNjRfTVNS X0hZUEVSQ0FMTDoKICAgICAgICAgcGVyZmNfaW5jcihtc2h2X3dybXNyX2hjX3BhZ2UpOwotICAg ICAgICBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4uaHlwZXJjYWxsX2dwYS5yYXcgPSB2YWw7 CisgICAgICAgIGQtPmFyY2guaHZtLnZpcmlkaWFuLmh5cGVyY2FsbF9ncGEucmF3ID0gdmFsOwog ICAgICAgICBkdW1wX2h5cGVyY2FsbChkKTsKLSAgICAgICAgaWYgKCBkLT5hcmNoLmh2bV9kb21h aW4udmlyaWRpYW4uaHlwZXJjYWxsX2dwYS5maWVsZHMuZW5hYmxlZCApCisgICAgICAgIGlmICgg ZC0+YXJjaC5odm0udmlyaWRpYW4uaHlwZXJjYWxsX2dwYS5maWVsZHMuZW5hYmxlZCApCiAgICAg ICAgICAgICBlbmFibGVfaHlwZXJjYWxsX3BhZ2UoZCk7CiAgICAgICAgIGJyZWFrOwogCkBAIC02 MTgsOSArNjE4LDkgQEAgaW50IHdybXNyX3ZpcmlkaWFuX3JlZ3ModWludDMyX3QgaWR4LCB1aW50 NjRfdCB2YWwpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICBwZXJmY19pbmNyKG1z aHZfd3Jtc3JfdHNjX21zcik7Ci0gICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi52aXJpZGlhbi5y ZWZlcmVuY2VfdHNjLnJhdyA9IHZhbDsKKyAgICAgICAgZC0+YXJjaC5odm0udmlyaWRpYW4ucmVm ZXJlbmNlX3RzYy5yYXcgPSB2YWw7CiAgICAgICAgIGR1bXBfcmVmZXJlbmNlX3RzYyhkKTsKLSAg ICAgICAgaWYgKCBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4ucmVmZXJlbmNlX3RzYy5maWVs ZHMuZW5hYmxlZCApCisgICAgICAgIGlmICggZC0+YXJjaC5odm0udmlyaWRpYW4ucmVmZXJlbmNl X3RzYy5maWVsZHMuZW5hYmxlZCApCiAgICAgICAgICAgICB1cGRhdGVfcmVmZXJlbmNlX3RzYyhk LCAxKTsKICAgICAgICAgYnJlYWs7CiAKQEAgLTY4MSw3ICs2ODEsNyBAQCB2b2lkIHZpcmlkaWFu X3RpbWVfcmVmX2NvdW50X2ZyZWV6ZShzdHJ1Y3QgZG9tYWluICpkKQogewogICAgIHN0cnVjdCB2 aXJpZGlhbl90aW1lX3JlZl9jb3VudCAqdHJjOwogCi0gICAgdHJjID0gJmQtPmFyY2guaHZtX2Rv bWFpbi52aXJpZGlhbi50aW1lX3JlZl9jb3VudDsKKyAgICB0cmMgPSAmZC0+YXJjaC5odm0udmly aWRpYW4udGltZV9yZWZfY291bnQ7CiAKICAgICBpZiAoIHRlc3RfYW5kX2NsZWFyX2JpdChfVFJD X3J1bm5pbmcsICZ0cmMtPmZsYWdzKSApCiAgICAgICAgIHRyYy0+dmFsID0gcmF3X3RyY192YWwo ZCkgKyB0cmMtPm9mZjsKQEAgLTY5MSw3ICs2OTEsNyBAQCB2b2lkIHZpcmlkaWFuX3RpbWVfcmVm X2NvdW50X3RoYXcoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAgICBzdHJ1Y3QgdmlyaWRpYW5fdGlt ZV9yZWZfY291bnQgKnRyYzsKIAotICAgIHRyYyA9ICZkLT5hcmNoLmh2bV9kb21haW4udmlyaWRp YW4udGltZV9yZWZfY291bnQ7CisgICAgdHJjID0gJmQtPmFyY2guaHZtLnZpcmlkaWFuLnRpbWVf cmVmX2NvdW50OwogCiAgICAgaWYgKCAhZC0+aXNfc2h1dHRpbmdfZG93biAmJgogICAgICAgICAg IXRlc3RfYW5kX3NldF9iaXQoX1RSQ19ydW5uaW5nLCAmdHJjLT5mbGFncykgKQpAQCAtNzEwLDEy ICs3MTAsMTIgQEAgaW50IHJkbXNyX3ZpcmlkaWFuX3JlZ3ModWludDMyX3QgaWR4LCB1aW50NjRf dCAqdmFsKQogICAgIHsKICAgICBjYXNlIEhWX1g2NF9NU1JfR1VFU1RfT1NfSUQ6CiAgICAgICAg IHBlcmZjX2luY3IobXNodl9yZG1zcl9vc2lkKTsKLSAgICAgICAgKnZhbCA9IGQtPmFyY2guaHZt X2RvbWFpbi52aXJpZGlhbi5ndWVzdF9vc19pZC5yYXc7CisgICAgICAgICp2YWwgPSBkLT5hcmNo Lmh2bS52aXJpZGlhbi5ndWVzdF9vc19pZC5yYXc7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2Fz ZSBIVl9YNjRfTVNSX0hZUEVSQ0FMTDoKICAgICAgICAgcGVyZmNfaW5jcihtc2h2X3JkbXNyX2hj X3BhZ2UpOwotICAgICAgICAqdmFsID0gZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLmh5cGVy Y2FsbF9ncGEucmF3OworICAgICAgICAqdmFsID0gZC0+YXJjaC5odm0udmlyaWRpYW4uaHlwZXJj YWxsX2dwYS5yYXc7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIVl9YNjRfTVNSX1ZQX0lO REVYOgpAQCAtNzYwLDE0ICs3NjAsMTQgQEAgaW50IHJkbXNyX3ZpcmlkaWFuX3JlZ3ModWludDMy X3QgaWR4LCB1aW50NjRfdCAqdmFsKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAg cGVyZmNfaW5jcihtc2h2X3JkbXNyX3RzY19tc3IpOwotICAgICAgICAqdmFsID0gZC0+YXJjaC5o dm1fZG9tYWluLnZpcmlkaWFuLnJlZmVyZW5jZV90c2MucmF3OworICAgICAgICAqdmFsID0gZC0+ YXJjaC5odm0udmlyaWRpYW4ucmVmZXJlbmNlX3RzYy5yYXc7CiAgICAgICAgIGJyZWFrOwogCiAg ICAgY2FzZSBIVl9YNjRfTVNSX1RJTUVfUkVGX0NPVU5UOgogICAgIHsKICAgICAgICAgc3RydWN0 IHZpcmlkaWFuX3RpbWVfcmVmX2NvdW50ICp0cmM7CiAKLSAgICAgICAgdHJjID0gJmQtPmFyY2gu aHZtX2RvbWFpbi52aXJpZGlhbi50aW1lX3JlZl9jb3VudDsKKyAgICAgICAgdHJjID0gJmQtPmFy Y2guaHZtLnZpcmlkaWFuLnRpbWVfcmVmX2NvdW50OwogCiAgICAgICAgIGlmICggISh2aXJpZGlh bl9mZWF0dXJlX21hc2soZCkgJiBIVk1QVl90aW1lX3JlZl9jb3VudCkgKQogICAgICAgICAgICAg cmV0dXJuIDA7CkBAIC05OTMsMTAgKzk5MywxMCBAQCBpbnQgdmlyaWRpYW5faHlwZXJjYWxsKHN0 cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzKQogc3RhdGljIGludCB2aXJpZGlhbl9zYXZlX2RvbWFp bl9jdHh0KHN0cnVjdCBkb21haW4gKmQsIGh2bV9kb21haW5fY29udGV4dF90ICpoKQogewogICAg IHN0cnVjdCBodm1fdmlyaWRpYW5fZG9tYWluX2NvbnRleHQgY3R4dCA9IHsKLSAgICAgICAgLnRp bWVfcmVmX2NvdW50ID0gZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLnRpbWVfcmVmX2NvdW50 LnZhbCwKLSAgICAgICAgLmh5cGVyY2FsbF9ncGEgID0gZC0+YXJjaC5odm1fZG9tYWluLnZpcmlk aWFuLmh5cGVyY2FsbF9ncGEucmF3LAotICAgICAgICAuZ3Vlc3Rfb3NfaWQgICAgPSBkLT5hcmNo Lmh2bV9kb21haW4udmlyaWRpYW4uZ3Vlc3Rfb3NfaWQucmF3LAotICAgICAgICAucmVmZXJlbmNl X3RzYyAgPSBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4ucmVmZXJlbmNlX3RzYy5yYXcsCisg ICAgICAgIC50aW1lX3JlZl9jb3VudCA9IGQtPmFyY2guaHZtLnZpcmlkaWFuLnRpbWVfcmVmX2Nv dW50LnZhbCwKKyAgICAgICAgLmh5cGVyY2FsbF9ncGEgID0gZC0+YXJjaC5odm0udmlyaWRpYW4u aHlwZXJjYWxsX2dwYS5yYXcsCisgICAgICAgIC5ndWVzdF9vc19pZCAgICA9IGQtPmFyY2guaHZt LnZpcmlkaWFuLmd1ZXN0X29zX2lkLnJhdywKKyAgICAgICAgLnJlZmVyZW5jZV90c2MgID0gZC0+ YXJjaC5odm0udmlyaWRpYW4ucmVmZXJlbmNlX3RzYy5yYXcsCiAgICAgfTsKIAogICAgIGlmICgg IWlzX3ZpcmlkaWFuX2RvbWFpbihkKSApCkBAIC0xMDEyLDEyICsxMDEyLDEyIEBAIHN0YXRpYyBp bnQgdmlyaWRpYW5fbG9hZF9kb21haW5fY3R4dChzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWlu X2NvbnRleHRfdCAqaCkKICAgICBpZiAoIGh2bV9sb2FkX2VudHJ5X3plcm9leHRlbmQoVklSSURJ QU5fRE9NQUlOLCBoLCAmY3R4dCkgIT0gMCApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCi0g ICAgZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLnRpbWVfcmVmX2NvdW50LnZhbCA9IGN0eHQu dGltZV9yZWZfY291bnQ7Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLnZpcmlkaWFuLmh5cGVyY2Fs bF9ncGEucmF3ICA9IGN0eHQuaHlwZXJjYWxsX2dwYTsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4u dmlyaWRpYW4uZ3Vlc3Rfb3NfaWQucmF3ICAgID0gY3R4dC5ndWVzdF9vc19pZDsKLSAgICBkLT5h cmNoLmh2bV9kb21haW4udmlyaWRpYW4ucmVmZXJlbmNlX3RzYy5yYXcgID0gY3R4dC5yZWZlcmVu Y2VfdHNjOworICAgIGQtPmFyY2guaHZtLnZpcmlkaWFuLnRpbWVfcmVmX2NvdW50LnZhbCA9IGN0 eHQudGltZV9yZWZfY291bnQ7CisgICAgZC0+YXJjaC5odm0udmlyaWRpYW4uaHlwZXJjYWxsX2dw YS5yYXcgID0gY3R4dC5oeXBlcmNhbGxfZ3BhOworICAgIGQtPmFyY2guaHZtLnZpcmlkaWFuLmd1 ZXN0X29zX2lkLnJhdyAgICA9IGN0eHQuZ3Vlc3Rfb3NfaWQ7CisgICAgZC0+YXJjaC5odm0udmly aWRpYW4ucmVmZXJlbmNlX3RzYy5yYXcgID0gY3R4dC5yZWZlcmVuY2VfdHNjOwogCi0gICAgaWYg KCBkLT5hcmNoLmh2bV9kb21haW4udmlyaWRpYW4ucmVmZXJlbmNlX3RzYy5maWVsZHMuZW5hYmxl ZCApCisgICAgaWYgKCBkLT5hcmNoLmh2bS52aXJpZGlhbi5yZWZlcmVuY2VfdHNjLmZpZWxkcy5l bmFibGVkICkKICAgICAgICAgdXBkYXRlX3JlZmVyZW5jZV90c2MoZCwgMCk7CiAKICAgICByZXR1 cm4gMDsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdmxhcGljLmMgYi94ZW4vYXJjaC94 ODYvaHZtL3ZsYXBpYy5jCmluZGV4IGVjMDg5Y2MuLjA0NzAyZTkgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vdmxhcGljLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bGFwaWMuYwpAQCAt MTIwMywxMCArMTIwMywxMCBAQCBpbnQgdmxhcGljX2FjY2VwdF9waWNfaW50cihzdHJ1Y3QgdmNw dSAqdikKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBUUkFDRV8yRChUUkNfSFZNX0VNVUxfTEFQ SUNfUElDX0lOVFIsCi0gICAgICAgICAgICAgKHYgPT0gdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21h aW4uaTgyNTlfdGFyZ2V0KSwKKyAgICAgICAgICAgICAodiA9PSB2LT5kb21haW4tPmFyY2guaHZt Lmk4MjU5X3RhcmdldCksCiAgICAgICAgICAgICAgdiA/IF9fdmxhcGljX2FjY2VwdF9waWNfaW50 cih2KSA6IC0xKTsKIAotICAgIHJldHVybiAoKHYgPT0gdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21h aW4uaTgyNTlfdGFyZ2V0KSAmJgorICAgIHJldHVybiAoKHYgPT0gdi0+ZG9tYWluLT5hcmNoLmh2 bS5pODI1OV90YXJnZXQpICYmCiAgICAgICAgICAgICBfX3ZsYXBpY19hY2NlcHRfcGljX2ludHIo dikpOwogfQogCkBAIC0xMjI0LDkgKzEyMjQsOSBAQCB2b2lkIHZsYXBpY19hZGp1c3RfaTgyNTlf dGFyZ2V0KHN0cnVjdCBkb21haW4gKmQpCiAgICAgdiA9IGQtPnZjcHUgPyBkLT52Y3B1WzBdIDog TlVMTDsKIAogIGZvdW5kOgotICAgIGlmICggZC0+YXJjaC5odm1fZG9tYWluLmk4MjU5X3Rhcmdl dCA9PSB2ICkKKyAgICBpZiAoIGQtPmFyY2guaHZtLmk4MjU5X3RhcmdldCA9PSB2ICkKICAgICAg ICAgcmV0dXJuOwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi5pODI1OV90YXJnZXQgPSB2OworICAg IGQtPmFyY2guaHZtLmk4MjU5X3RhcmdldCA9IHY7CiAgICAgcHRfYWRqdXN0X2dsb2JhbF92Y3B1 X3RhcmdldCh2KTsKIH0KIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXNpLmMgYi94 ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwppbmRleCAzMDAxZDVjLi5jY2JmMTgxIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwpA QCAtMTczLDcgKzE3Myw3IEBAIHN0YXRpYyBERUZJTkVfUkNVX1JFQURfTE9DSyhtc2l4dGJsX3Jj dV9sb2NrKTsKICAqLwogc3RhdGljIGJvb2wgbXNpeHRibF9pbml0aWFsaXNlZChjb25zdCBzdHJ1 Y3QgZG9tYWluICpkKQogewotICAgIHJldHVybiAhIWQtPmFyY2guaHZtX2RvbWFpbi5tc2l4dGJs X2xpc3QubmV4dDsKKyAgICByZXR1cm4gISFkLT5hcmNoLmh2bS5tc2l4dGJsX2xpc3QubmV4dDsK IH0KIAogc3RhdGljIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICptc2l4dGJsX2ZpbmRfZW50cnkoCkBA IC0xODIsNyArMTgyLDcgQEAgc3RhdGljIHN0cnVjdCBtc2l4dGJsX2VudHJ5ICptc2l4dGJsX2Zp bmRfZW50cnkoCiAgICAgc3RydWN0IG1zaXh0YmxfZW50cnkgKmVudHJ5OwogICAgIHN0cnVjdCBk b21haW4gKmQgPSB2LT5kb21haW47CiAKLSAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KCBlbnRyeSwg JmQtPmFyY2guaHZtX2RvbWFpbi5tc2l4dGJsX2xpc3QsIGxpc3QgKQorICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkoIGVudHJ5LCAmZC0+YXJjaC5odm0ubXNpeHRibF9saXN0LCBsaXN0ICkKICAgICAg ICAgaWYgKCBhZGRyID49IGVudHJ5LT5ndGFibGUgJiYKICAgICAgICAgICAgICBhZGRyIDwgZW50 cnktPmd0YWJsZSArIGVudHJ5LT50YWJsZV9sZW4gKQogICAgICAgICAgICAgcmV0dXJuIGVudHJ5 OwpAQCAtNDMwLDcgKzQzMCw3IEBAIHN0YXRpYyB2b2lkIGFkZF9tc2l4dGJsX2VudHJ5KHN0cnVj dCBkb21haW4gKmQsCiAgICAgZW50cnktPnBkZXYgPSBwZGV2OwogICAgIGVudHJ5LT5ndGFibGUg PSAodW5zaWduZWQgbG9uZykgZ3RhYmxlOwogCi0gICAgbGlzdF9hZGRfcmN1KCZlbnRyeS0+bGlz dCwgJmQtPmFyY2guaHZtX2RvbWFpbi5tc2l4dGJsX2xpc3QpOworICAgIGxpc3RfYWRkX3JjdSgm ZW50cnktPmxpc3QsICZkLT5hcmNoLmh2bS5tc2l4dGJsX2xpc3QpOwogfQogCiBzdGF0aWMgdm9p ZCBmcmVlX21zaXh0YmxfZW50cnkoc3RydWN0IHJjdV9oZWFkICpyY3UpCkBAIC00ODMsNyArNDgz LDcgQEAgaW50IG1zaXh0YmxfcHRfcmVnaXN0ZXIoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBp cnEgKnBpcnEsIHVpbnQ2NF90IGd0YWJsZSkKIAogICAgIHBkZXYgPSBtc2lfZGVzYy0+ZGV2Owog Ci0gICAgbGlzdF9mb3JfZWFjaF9lbnRyeSggZW50cnksICZkLT5hcmNoLmh2bV9kb21haW4ubXNp eHRibF9saXN0LCBsaXN0ICkKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KCBlbnRyeSwgJmQtPmFy Y2guaHZtLm1zaXh0YmxfbGlzdCwgbGlzdCApCiAgICAgICAgIGlmICggcGRldiA9PSBlbnRyeS0+ cGRldiApCiAgICAgICAgICAgICBnb3RvIGZvdW5kOwogCkBAIC01NDIsNyArNTQyLDcgQEAgdm9p ZCBtc2l4dGJsX3B0X3VucmVnaXN0ZXIoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBpcnEgKnBp cnEpCiAKICAgICBwZGV2ID0gbXNpX2Rlc2MtPmRldjsKIAotICAgIGxpc3RfZm9yX2VhY2hfZW50 cnkoIGVudHJ5LCAmZC0+YXJjaC5odm1fZG9tYWluLm1zaXh0YmxfbGlzdCwgbGlzdCApCisgICAg bGlzdF9mb3JfZWFjaF9lbnRyeSggZW50cnksICZkLT5hcmNoLmh2bS5tc2l4dGJsX2xpc3QsIGxp c3QgKQogICAgICAgICBpZiAoIHBkZXYgPT0gZW50cnktPnBkZXYgKQogICAgICAgICAgICAgZ290 byBmb3VuZDsKIApAQCAtNTY0LDcgKzU2NCw3IEBAIHZvaWQgbXNpeHRibF9pbml0KHN0cnVjdCBk b21haW4gKmQpCiAgICAgaWYgKCAhaXNfaHZtX2RvbWFpbihkKSB8fCAhaGFzX3ZsYXBpYyhkKSB8 fCBtc2l4dGJsX2luaXRpYWxpc2VkKGQpICkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSU5JVF9M SVNUX0hFQUQoJmQtPmFyY2guaHZtX2RvbWFpbi5tc2l4dGJsX2xpc3QpOworICAgIElOSVRfTElT VF9IRUFEKCZkLT5hcmNoLmh2bS5tc2l4dGJsX2xpc3QpOwogCiAgICAgaGFuZGxlciA9IGh2bV9u ZXh0X2lvX2hhbmRsZXIoZCk7CiAgICAgaWYgKCBoYW5kbGVyICkKQEAgLTU4NCw3ICs1ODQsNyBA QCB2b2lkIG1zaXh0YmxfcHRfY2xlYW51cChzdHJ1Y3QgZG9tYWluICpkKQogICAgIHNwaW5fbG9j aygmZC0+ZXZlbnRfbG9jayk7CiAKICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoIGVudHJ5 LCB0ZW1wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmQtPmFyY2guaHZtX2RvbWFp bi5tc2l4dGJsX2xpc3QsIGxpc3QgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmQt PmFyY2guaHZtLm1zaXh0YmxfbGlzdCwgbGlzdCApCiAgICAgICAgIGRlbF9tc2l4dGJsX2VudHJ5 KGVudHJ5KTsKIAogICAgIHNwaW5fdW5sb2NrKCZkLT5ldmVudF9sb2NrKTsKZGlmZiAtLWdpdCBh L3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3Mu YwppbmRleCA2NjgxMDMyLi5mMzA4NTBjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Zt eC92bWNzLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jCkBAIC0xMTA4LDggKzEx MDgsOCBAQCBzdGF0aWMgaW50IGNvbnN0cnVjdF92bWNzKHN0cnVjdCB2Y3B1ICp2KQogICAgIH0K IAogICAgIC8qIEkvTyBhY2Nlc3MgYml0bWFwLiAqLwotICAgIF9fdm13cml0ZShJT19CSVRNQVBf QSwgX19wYShkLT5hcmNoLmh2bV9kb21haW4uaW9fYml0bWFwKSk7Ci0gICAgX192bXdyaXRlKElP X0JJVE1BUF9CLCBfX3BhKGQtPmFyY2guaHZtX2RvbWFpbi5pb19iaXRtYXApICsgUEFHRV9TSVpF KTsKKyAgICBfX3Ztd3JpdGUoSU9fQklUTUFQX0EsIF9fcGEoZC0+YXJjaC5odm0uaW9fYml0bWFw KSk7CisgICAgX192bXdyaXRlKElPX0JJVE1BUF9CLCBfX3BhKGQtPmFyY2guaHZtLmlvX2JpdG1h cCkgKyBQQUdFX1NJWkUpOwogCiAgICAgaWYgKCBjcHVfaGFzX3ZteF92aXJ0dWFsX2ludHJfZGVs aXZlcnkgKQogICAgIHsKQEAgLTEyNjMsNyArMTI2Myw3IEBAIHN0YXRpYyBpbnQgY29uc3RydWN0 X3ZtY3Moc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIF9fdm13cml0ZShYU1NfRVhJVF9CSVRNQVAs IDApOwogCiAgICAgaWYgKCBjcHVfaGFzX3ZteF90c2Nfc2NhbGluZyApCi0gICAgICAgIF9fdm13 cml0ZShUU0NfTVVMVElQTElFUiwgZC0+YXJjaC5odm1fZG9tYWluLnRzY19zY2FsaW5nX3JhdGlv KTsKKyAgICAgICAgX192bXdyaXRlKFRTQ19NVUxUSVBMSUVSLCBkLT5hcmNoLmh2bS50c2Nfc2Nh bGluZ19yYXRpbyk7CiAKICAgICAvKiB3aWxsIHVwZGF0ZSBIT1NUICYgR1VFU1RfQ1IzIGFzIHJl cWQgKi8KICAgICBwYWdpbmdfdXBkYXRlX3BhZ2luZ19tb2Rlcyh2KTsKQEAgLTE2NDMsNyArMTY0 Myw3IEBAIHZvaWQgdm14X3ZjcHVfZmx1c2hfcG1sX2J1ZmZlcihzdHJ1Y3QgdmNwdSAqdikKIAog Ym9vbF90IHZteF9kb21haW5fcG1sX2VuYWJsZWQoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIHsK LSAgICByZXR1cm4gISEoZC0+YXJjaC5odm1fZG9tYWluLnZteC5zdGF0dXMgJiBWTVhfRE9NQUlO X1BNTF9FTkFCTEVEKTsKKyAgICByZXR1cm4gISEoZC0+YXJjaC5odm0udm14LnN0YXR1cyAmIFZN WF9ET01BSU5fUE1MX0VOQUJMRUQpOwogfQogCiAvKgpAQCAtMTY2OCw3ICsxNjY4LDcgQEAgaW50 IHZteF9kb21haW5fZW5hYmxlX3BtbChzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICBpZiAoIChy YyA9IHZteF92Y3B1X2VuYWJsZV9wbWwodikpICE9IDAgKQogICAgICAgICAgICAgZ290byBlcnJv cjsKIAotICAgIGQtPmFyY2guaHZtX2RvbWFpbi52bXguc3RhdHVzIHw9IFZNWF9ET01BSU5fUE1M X0VOQUJMRUQ7CisgICAgZC0+YXJjaC5odm0udm14LnN0YXR1cyB8PSBWTVhfRE9NQUlOX1BNTF9F TkFCTEVEOwogCiAgICAgcmV0dXJuIDA7CiAKQEAgLTE2OTcsNyArMTY5Nyw3IEBAIHZvaWQgdm14 X2RvbWFpbl9kaXNhYmxlX3BtbChzdHJ1Y3QgZG9tYWluICpkKQogICAgIGZvcl9lYWNoX3ZjcHUg KCBkLCB2ICkKICAgICAgICAgdm14X3ZjcHVfZGlzYWJsZV9wbWwodik7CiAKLSAgICBkLT5hcmNo Lmh2bV9kb21haW4udm14LnN0YXR1cyAmPSB+Vk1YX0RPTUFJTl9QTUxfRU5BQkxFRDsKKyAgICBk LT5hcmNoLmh2bS52bXguc3RhdHVzICY9IH5WTVhfRE9NQUlOX1BNTF9FTkFCTEVEOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMgYi94ZW4vYXJjaC94ODYv aHZtL3ZteC92bXguYwppbmRleCA3M2YwZDUyLi5jY2ZiYWNiIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvaHZtL3ZteC92bXguYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYwpAQCAt MzE4LDcgKzMxOCw3IEBAIHZvaWQgdm14X3BpX2hvb2tzX2Fzc2lnbihzdHJ1Y3QgZG9tYWluICpk KQogICAgIGlmICggIWlvbW11X2ludHBvc3QgfHwgIWlzX2h2bV9kb21haW4oZCkgKQogICAgICAg ICByZXR1cm47CiAKLSAgICBBU1NFUlQoIWQtPmFyY2guaHZtX2RvbWFpbi5waV9vcHMudmNwdV9i bG9jayk7CisgICAgQVNTRVJUKCFkLT5hcmNoLmh2bS5waV9vcHMudmNwdV9ibG9jayk7CiAKICAg ICAvKgogICAgICAqIFdlIGNhcmVmdWxseSBoYW5kbGUgdGhlIHRpbWluZyBoZXJlOgpAQCAtMzI5 LDggKzMyOSw4IEBAIHZvaWQgdm14X3BpX2hvb2tzX2Fzc2lnbihzdHJ1Y3QgZG9tYWluICpkKQog ICAgICAqIFRoaXMgY2FuIG1ha2Ugc3VyZSB0aGUgUEkgKGVzcGVjaWFsbHkgdGhlIE5EU1QgZmVp bGQpIGlzCiAgICAgICogaW4gcHJvcGVyIHN0YXRlIHdoZW4gd2UgY2FsbCB2bXhfdmNwdV9ibG9j aygpLgogICAgICAqLwotICAgIGQtPmFyY2guaHZtX2RvbWFpbi5waV9vcHMuc3dpdGNoX2Zyb20g PSB2bXhfcGlfc3dpdGNoX2Zyb207Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLnBpX29wcy5zd2l0 Y2hfdG8gPSB2bXhfcGlfc3dpdGNoX3RvOworICAgIGQtPmFyY2guaHZtLnBpX29wcy5zd2l0Y2hf ZnJvbSA9IHZteF9waV9zd2l0Y2hfZnJvbTsKKyAgICBkLT5hcmNoLmh2bS5waV9vcHMuc3dpdGNo X3RvID0gdm14X3BpX3N3aXRjaF90bzsKIAogICAgIGZvcl9lYWNoX3ZjcHUgKCBkLCB2ICkKICAg ICB7CkBAIC0zNDUsOCArMzQ1LDggQEAgdm9pZCB2bXhfcGlfaG9va3NfYXNzaWduKHN0cnVjdCBk b21haW4gKmQpCiAgICAgICAgICAgICAgICAgeDJhcGljX2VuYWJsZWQgPyBkZXN0IDogTUFTS19J TlNSKGRlc3QsIFBJX3hBUElDX05EU1RfTUFTSykpOwogICAgIH0KIAotICAgIGQtPmFyY2guaHZt X2RvbWFpbi5waV9vcHMudmNwdV9ibG9jayA9IHZteF92Y3B1X2Jsb2NrOwotICAgIGQtPmFyY2gu aHZtX2RvbWFpbi5waV9vcHMuZG9fcmVzdW1lID0gdm14X3BpX2RvX3Jlc3VtZTsKKyAgICBkLT5h cmNoLmh2bS5waV9vcHMudmNwdV9ibG9jayA9IHZteF92Y3B1X2Jsb2NrOworICAgIGQtPmFyY2gu aHZtLnBpX29wcy5kb19yZXN1bWUgPSB2bXhfcGlfZG9fcmVzdW1lOwogfQogCiAvKiBUaGlzIGZ1 bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHBjaWRldnNfbG9jayBpcyBoZWxkICovCkBAIC0zNTcsNyAr MzU3LDcgQEAgdm9pZCB2bXhfcGlfaG9va3NfZGVhc3NpZ24oc3RydWN0IGRvbWFpbiAqZCkKICAg ICBpZiAoICFpb21tdV9pbnRwb3N0IHx8ICFpc19odm1fZG9tYWluKGQpICkKICAgICAgICAgcmV0 dXJuOwogCi0gICAgQVNTRVJUKGQtPmFyY2guaHZtX2RvbWFpbi5waV9vcHMudmNwdV9ibG9jayk7 CisgICAgQVNTRVJUKGQtPmFyY2guaHZtLnBpX29wcy52Y3B1X2Jsb2NrKTsKIAogICAgIC8qCiAg ICAgICogUGF1c2luZyB0aGUgZG9tYWluIGNhbiBtYWtlIHN1cmUgdGhlIHZDUFVzIGFyZSBub3QK QEAgLTM2OSw3ICszNjksNyBAQCB2b2lkIHZteF9waV9ob29rc19kZWFzc2lnbihzdHJ1Y3QgZG9t YWluICpkKQogICAgIGRvbWFpbl9wYXVzZShkKTsKIAogICAgIC8qCi0gICAgICogTm90ZSB0aGF0 IHdlIGRvbid0IHNldCAnZC0+YXJjaC5odm1fZG9tYWluLnBpX29wcy5zd2l0Y2hfdG8nIHRvIE5V TEwKKyAgICAgKiBOb3RlIHRoYXQgd2UgZG9uJ3Qgc2V0ICdkLT5hcmNoLmh2bS5waV9vcHMuc3dp dGNoX3RvJyB0byBOVUxMCiAgICAgICogaGVyZS4gSWYgd2UgZGVhc3NpZ24gdGhlIGhvb2tzIHdo aWxlIHRoZSB2Q1BVIGlzIHJ1bm5hYmxlIGluIHRoZQogICAgICAqIHJ1bnF1ZXVlIHdpdGggJ1NO JyBzZXQsIGFsbCB0aGUgZnV0dXJlIG5vdGlmaWNhdGlvbiBldmVudCB3aWxsIGJlCiAgICAgICog c3VwcHJlc3NlZCBzaW5jZSB2bXhfZGVsaXZlcl9wb3N0ZWRfaW50cigpIGFsc28gdXNlICdTTicg Yml0CkBAIC0zODIsOSArMzgyLDkgQEAgdm9pZCB2bXhfcGlfaG9va3NfZGVhc3NpZ24oc3RydWN0 IGRvbWFpbiAqZCkKICAgICAgKiBzeXN0ZW0sIGxlYXZlIGl0IGhlcmUgdW50aWwgd2UgZmluZCBh IGNsZWFuIHNvbHV0aW9uIHRvIGRlYXNzaWduIHRoZQogICAgICAqICdzd2l0Y2hfdG8nIGhvb2sg ZnVuY3Rpb24uCiAgICAgICovCi0gICAgZC0+YXJjaC5odm1fZG9tYWluLnBpX29wcy52Y3B1X2Js b2NrID0gTlVMTDsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4ucGlfb3BzLnN3aXRjaF9mcm9tID0g TlVMTDsKLSAgICBkLT5hcmNoLmh2bV9kb21haW4ucGlfb3BzLmRvX3Jlc3VtZSA9IE5VTEw7Cisg ICAgZC0+YXJjaC5odm0ucGlfb3BzLnZjcHVfYmxvY2sgPSBOVUxMOworICAgIGQtPmFyY2guaHZt LnBpX29wcy5zd2l0Y2hfZnJvbSA9IE5VTEw7CisgICAgZC0+YXJjaC5odm0ucGlfb3BzLmRvX3Jl c3VtZSA9IE5VTEw7CiAKICAgICBmb3JfZWFjaF92Y3B1ICggZCwgdiApCiAgICAgICAgIHZteF9w aV91bmJsb2NrX3ZjcHUodik7CkBAIC05MzQsOCArOTM0LDggQEAgc3RhdGljIHZvaWQgdm14X2N0 eHRfc3dpdGNoX2Zyb20oc3RydWN0IHZjcHUgKnYpCiAgICAgdm14X3Jlc3RvcmVfaG9zdF9tc3Jz KCk7CiAgICAgdm14X3NhdmVfZHIodik7CiAKLSAgICBpZiAoIHYtPmRvbWFpbi0+YXJjaC5odm1f ZG9tYWluLnBpX29wcy5zd2l0Y2hfZnJvbSApCi0gICAgICAgIHYtPmRvbWFpbi0+YXJjaC5odm1f ZG9tYWluLnBpX29wcy5zd2l0Y2hfZnJvbSh2KTsKKyAgICBpZiAoIHYtPmRvbWFpbi0+YXJjaC5o dm0ucGlfb3BzLnN3aXRjaF9mcm9tICkKKyAgICAgICAgdi0+ZG9tYWluLT5hcmNoLmh2bS5waV9v cHMuc3dpdGNoX2Zyb20odik7CiB9CiAKIHN0YXRpYyB2b2lkIHZteF9jdHh0X3N3aXRjaF90byhz dHJ1Y3QgdmNwdSAqdikKQEAgLTk0Myw4ICs5NDMsOCBAQCBzdGF0aWMgdm9pZCB2bXhfY3R4dF9z d2l0Y2hfdG8oc3RydWN0IHZjcHUgKnYpCiAgICAgdm14X3Jlc3RvcmVfZ3Vlc3RfbXNycyh2KTsK ICAgICB2bXhfcmVzdG9yZV9kcih2KTsKIAotICAgIGlmICggdi0+ZG9tYWluLT5hcmNoLmh2bV9k b21haW4ucGlfb3BzLnN3aXRjaF90byApCi0gICAgICAgIHYtPmRvbWFpbi0+YXJjaC5odm1fZG9t YWluLnBpX29wcy5zd2l0Y2hfdG8odik7CisgICAgaWYgKCB2LT5kb21haW4tPmFyY2guaHZtLnBp X29wcy5zd2l0Y2hfdG8gKQorICAgICAgICB2LT5kb21haW4tPmFyY2guaHZtLnBpX29wcy5zd2l0 Y2hfdG8odik7CiB9CiAKIApAQCAtMTEwNCw3ICsxMTA0LDcgQEAgc3RhdGljIHZvaWQgdm14X3Nl dF9zZWdtZW50X3JlZ2lzdGVyKHN0cnVjdCB2Y3B1ICp2LCBlbnVtIHg4Nl9zZWdtZW50IHNlZywK ICAgICAgICAgaWYgKCBzZWcgPT0geDg2X3NlZ190ciApIAogICAgICAgICB7CiAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwotICAgICAgICAgICAgdWludDY0 X3QgdmFsID0gZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fVk04Nl9UU1NfU0la RURdOworICAgICAgICAgICAgdWludDY0X3QgdmFsID0gZC0+YXJjaC5odm0ucGFyYW1zW0hWTV9Q QVJBTV9WTTg2X1RTU19TSVpFRF07CiAKICAgICAgICAgICAgIGlmICggdmFsICkKICAgICAgICAg ICAgIHsKQEAgLTExMTUsNyArMTExNSw3IEBAIHN0YXRpYyB2b2lkIHZteF9zZXRfc2VnbWVudF9y ZWdpc3RlcihzdHJ1Y3QgdmNwdSAqdiwgZW51bSB4ODZfc2VnbWVudCBzZWcsCiAgICAgICAgICAg ICAgICAgaWYgKCB2YWwgJiBWTTg2X1RTU19VUERBVEVEICkKICAgICAgICAgICAgICAgICB7CiAg ICAgICAgICAgICAgICAgICAgIGh2bV9wcmVwYXJlX3ZtODZfdHNzKHYsIGJhc2UsIGxpbWl0KTsK LSAgICAgICAgICAgICAgICAgICAgY21weGNoZygmZC0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tI Vk1fUEFSQU1fVk04Nl9UU1NfU0laRURdLAorICAgICAgICAgICAgICAgICAgICBjbXB4Y2hnKCZk LT5hcmNoLmh2bS5wYXJhbXNbSFZNX1BBUkFNX1ZNODZfVFNTX1NJWkVEXSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2YWwsIHZhbCAmIH5WTTg2X1RTU19VUERBVEVEKTsKICAgICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgICAgdi0+YXJjaC5odm1fdm14LnZtODZfc2VnbWVudF9t YXNrICY9IH4oMXUgPDwgc2VnKTsKQEAgLTE2MjYsNyArMTYyNiw3IEBAIHN0YXRpYyB2b2lkIHZt eF91cGRhdGVfZ3Vlc3RfY3Ioc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBjciwKICAgICAg ICAgewogICAgICAgICAgICAgaWYgKCAhaHZtX3BhZ2luZ19lbmFibGVkKHYpICYmICF2bXhfdW5y ZXN0cmljdGVkX2d1ZXN0KHYpICkKICAgICAgICAgICAgICAgICB2LT5hcmNoLmh2bV92Y3B1Lmh3 X2NyWzNdID0KLSAgICAgICAgICAgICAgICAgICAgdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4u cGFyYW1zW0hWTV9QQVJBTV9JREVOVF9QVF07CisgICAgICAgICAgICAgICAgICAgIHYtPmRvbWFp bi0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9JREVOVF9QVF07CiAgICAgICAgICAgICB2bXhf bG9hZF9wZHB0cnModik7CiAgICAgICAgIH0KIApAQCAtMjk5Nyw3ICsyOTk3LDcgQEAgc3RhdGlj IGludCB2bXhfYWxsb2NfdmxhcGljX21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZCkKICAgICBtZm4g PSBwYWdlX3RvX21mbihwZyk7CiAgICAgY2xlYXJfZG9tYWluX3BhZ2UobWZuKTsKICAgICBzaGFy ZV94ZW5fcGFnZV93aXRoX2d1ZXN0KHBnLCBkLCBTSEFSRV9ydyk7Ci0gICAgZC0+YXJjaC5odm1f ZG9tYWluLnZteC5hcGljX2FjY2Vzc19tZm4gPSBtZm5feChtZm4pOworICAgIGQtPmFyY2guaHZt LnZteC5hcGljX2FjY2Vzc19tZm4gPSBtZm5feChtZm4pOwogICAgIHNldF9tbWlvX3AybV9lbnRy eShkLCBwYWRkcl90b19wZm4oQVBJQ19ERUZBVUxUX1BIWVNfQkFTRSksIG1mbiwKICAgICAgICAg ICAgICAgICAgICAgICAgUEFHRV9PUkRFUl80SywgcDJtX2dldF9ob3N0cDJtKGQpLT5kZWZhdWx0 X2FjY2Vzcyk7CiAKQEAgLTMwMDYsNyArMzAwNiw3IEBAIHN0YXRpYyBpbnQgdm14X2FsbG9jX3Zs YXBpY19tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQpCiAKIHN0YXRpYyB2b2lkIHZteF9mcmVlX3Zs YXBpY19tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQpCiB7Ci0gICAgdW5zaWduZWQgbG9uZyBtZm4g PSBkLT5hcmNoLmh2bV9kb21haW4udm14LmFwaWNfYWNjZXNzX21mbjsKKyAgICB1bnNpZ25lZCBs b25nIG1mbiA9IGQtPmFyY2guaHZtLnZteC5hcGljX2FjY2Vzc19tZm47CiAKICAgICBpZiAoIG1m biAhPSAwICkKICAgICAgICAgZnJlZV9zaGFyZWRfZG9taGVhcF9wYWdlKG1mbl90b19wYWdlKF9t Zm4obWZuKSkpOwpAQCAtMzAxNiwxMyArMzAxNiwxMyBAQCBzdGF0aWMgdm9pZCB2bXhfaW5zdGFs bF92bGFwaWNfbWFwcGluZyhzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBwYWRkcl90IHZpcnRfcGFn ZV9tYSwgYXBpY19wYWdlX21hOwogCi0gICAgaWYgKCB2LT5kb21haW4tPmFyY2guaHZtX2RvbWFp bi52bXguYXBpY19hY2Nlc3NfbWZuID09IDAgKQorICAgIGlmICggdi0+ZG9tYWluLT5hcmNoLmh2 bS52bXguYXBpY19hY2Nlc3NfbWZuID09IDAgKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NF UlQoY3B1X2hhc192bXhfdmlydHVhbGl6ZV9hcGljX2FjY2Vzc2VzKTsKIAogICAgIHZpcnRfcGFn ZV9tYSA9IHBhZ2VfdG9fbWFkZHIodmNwdV92bGFwaWModiktPnJlZ3NfcGFnZSk7Ci0gICAgYXBp Y19wYWdlX21hID0gdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21haW4udm14LmFwaWNfYWNjZXNzX21m bjsKKyAgICBhcGljX3BhZ2VfbWEgPSB2LT5kb21haW4tPmFyY2guaHZtLnZteC5hcGljX2FjY2Vz c19tZm47CiAgICAgYXBpY19wYWdlX21hIDw8PSBQQUdFX1NISUZUOwogCiAgICAgdm14X3ZtY3Nf ZW50ZXIodik7CkBAIC00MzMwLDggKzQzMzAsOCBAQCBib29sIHZteF92bWVudGVyX2hlbHBlcihj b25zdCBzdHJ1Y3QgY3B1X3VzZXJfcmVncyAqcmVncykKICAgICAgaWYgKCBuZXN0ZWRodm1fdmNw dV9pbl9ndWVzdG1vZGUoY3VycikgJiYgdmNwdV9uZXN0ZWRodm0oY3Vycikuc3RhbGVfbnAybSAp CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIGN1cnItPmRvbWFpbi0+YXJjaC5o dm1fZG9tYWluLnBpX29wcy5kb19yZXN1bWUgKQotICAgICAgICBjdXJyLT5kb21haW4tPmFyY2gu aHZtX2RvbWFpbi5waV9vcHMuZG9fcmVzdW1lKGN1cnIpOworICAgIGlmICggY3Vyci0+ZG9tYWlu LT5hcmNoLmh2bS5waV9vcHMuZG9fcmVzdW1lICkKKyAgICAgICAgY3Vyci0+ZG9tYWluLT5hcmNo Lmh2bS5waV9vcHMuZG9fcmVzdW1lKGN1cnIpOwogCiAgICAgaWYgKCAhY3B1X2hhc192bXhfdnBp ZCApCiAgICAgICAgIGdvdG8gb3V0OwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92cGlj LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZwaWMuYwppbmRleCBjZmM5NTQ0Li5lMDUwMGM1IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3ZwaWMuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL3Zw aWMuYwpAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPGFzbS9odm0vc3VwcG9ydC5oPgogCiAj ZGVmaW5lIHZwaWNfZG9tYWluKHYpIChjb250YWluZXJfb2YoKHYpLCBzdHJ1Y3QgZG9tYWluLCBc Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmNoLmh2bV9kb21haW4udnBpY1shdnBpYy0+aXNf bWFzdGVyXSkpCisgICAgICAgICAgICAgICAgICAgICAgICBhcmNoLmh2bS52cGljWyF2cGljLT5p c19tYXN0ZXJdKSkKICNkZWZpbmUgX192cGljX2xvY2sodikgJmNvbnRhaW5lcl9vZigodiksIHN0 cnVjdCBodm1fZG9tYWluLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdnBpY1shKHYpLT5pc19tYXN0ZXJdKS0+aXJxX2xvY2sKICNkZWZpbmUgdnBpY19sb2NrKHYp ICAgc3Bpbl9sb2NrKF9fdnBpY19sb2NrKHYpKQpAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyB2 b2lkIHZwaWNfdXBkYXRlX2ludF9vdXRwdXQoc3RydWN0IGh2bV9od192cGljICp2cGljKQogICAg ICAgICBpZiAoIHZwaWMtPmlzX21hc3RlciApCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIE1h c3RlciBJTlQgbGluZSBpcyBjb25uZWN0ZWQgaW4gVmlydHVhbCBXaXJlIE1vZGUuICovCi0gICAg ICAgICAgICBzdHJ1Y3QgdmNwdSAqdiA9IHZwaWNfZG9tYWluKHZwaWMpLT5hcmNoLmh2bV9kb21h aW4uaTgyNTlfdGFyZ2V0OworICAgICAgICAgICAgc3RydWN0IHZjcHUgKnYgPSB2cGljX2RvbWFp bih2cGljKS0+YXJjaC5odm0uaTgyNTlfdGFyZ2V0OwogICAgICAgICAgICAgaWYgKCB2ICE9IE5V TEwgKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIFRSQUNFXzFEKFRSQ19IVk1fRU1V TF9QSUNfS0lDSywgaXJxKTsKQEAgLTMzNCw3ICszMzQsNyBAQCBzdGF0aWMgaW50IHZwaWNfaW50 ZXJjZXB0X3BpY19pbygKICAgICAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKICAgICB9CiAKLSAg ICB2cGljID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLnZwaWNbcG9ydCA+PiA3 XTsKKyAgICB2cGljID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm0udnBpY1twb3J0ID4+IDdd OwogCiAgICAgaWYgKCBkaXIgPT0gSU9SRVFfV1JJVEUgKQogICAgICAgICB2cGljX2lvcG9ydF93 cml0ZSh2cGljLCBwb3J0LCAodWludDhfdCkqdmFsKTsKQEAgLTM1Miw3ICszNTIsNyBAQCBzdGF0 aWMgaW50IHZwaWNfaW50ZXJjZXB0X2VsY3JfaW8oCiAKICAgICBCVUdfT04oYnl0ZXMgIT0gMSk7 CiAKLSAgICB2cGljID0gJmN1cnJlbnQtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLnZwaWNbcG9y dCAmIDFdOworICAgIHZwaWMgPSAmY3VycmVudC0+ZG9tYWluLT5hcmNoLmh2bS52cGljW3BvcnQg JiAxXTsKIAogICAgIGlmICggZGlyID09IElPUkVRX1dSSVRFICkKICAgICB7CkBAIC0zODIsNyAr MzgyLDcgQEAgc3RhdGljIGludCB2cGljX3NhdmUoc3RydWN0IGRvbWFpbiAqZCwgaHZtX2RvbWFp bl9jb250ZXh0X3QgKmgpCiAgICAgLyogU2F2ZSB0aGUgc3RhdGUgb2YgYm90aCBQSUNzICovCiAg ICAgZm9yICggaSA9IDA7IGkgPCAyIDsgaSsrICkKICAgICB7Ci0gICAgICAgIHMgPSAmZC0+YXJj aC5odm1fZG9tYWluLnZwaWNbaV07CisgICAgICAgIHMgPSAmZC0+YXJjaC5odm0udnBpY1tpXTsK ICAgICAgICAgaWYgKCBodm1fc2F2ZV9lbnRyeShQSUMsIGksIGgsIHMpICkKICAgICAgICAgICAg IHJldHVybiAxOwogICAgIH0KQEAgLTQwMSw3ICs0MDEsNyBAQCBzdGF0aWMgaW50IHZwaWNfbG9h ZChzdHJ1Y3QgZG9tYWluICpkLCBodm1fZG9tYWluX2NvbnRleHRfdCAqaCkKICAgICAvKiBXaGlj aCBQSUMgaXMgdGhpcz8gKi8KICAgICBpZiAoIGluc3QgPiAxICkKICAgICAgICAgcmV0dXJuIC1F SU5WQUw7Ci0gICAgcyA9ICZkLT5hcmNoLmh2bV9kb21haW4udnBpY1tpbnN0XTsKKyAgICBzID0g JmQtPmFyY2guaHZtLnZwaWNbaW5zdF07CiAKICAgICAvKiBMb2FkIHRoZSBzdGF0ZSAqLwogICAg IGlmICggaHZtX2xvYWRfZW50cnkoUElDLCBoLCBzKSAhPSAwICkKQEAgLTQyMCw3ICs0MjAsNyBA QCB2b2lkIHZwaWNfcmVzZXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgcmV0dXJuOwogCiAg ICAgLyogTWFzdGVyIFBJQy4gKi8KLSAgICB2cGljID0gJmQtPmFyY2guaHZtX2RvbWFpbi52cGlj WzBdOworICAgIHZwaWMgPSAmZC0+YXJjaC5odm0udnBpY1swXTsKICAgICBtZW1zZXQodnBpYywg MCwgc2l6ZW9mKCp2cGljKSk7CiAgICAgdnBpYy0+aXNfbWFzdGVyID0gMTsKICAgICB2cGljLT5l bGNyICAgICAgPSAxIDw8IDI7CkBAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCB2cGljX2luaXQoc3Ry dWN0IGRvbWFpbiAqZCkKIAogdm9pZCB2cGljX2lycV9wb3NpdGl2ZV9lZGdlKHN0cnVjdCBkb21h aW4gKmQsIGludCBpcnEpCiB7Ci0gICAgc3RydWN0IGh2bV9od192cGljICp2cGljID0gJmQtPmFy Y2guaHZtX2RvbWFpbi52cGljW2lycSA+PiAzXTsKKyAgICBzdHJ1Y3QgaHZtX2h3X3ZwaWMgKnZw aWMgPSAmZC0+YXJjaC5odm0udnBpY1tpcnEgPj4gM107CiAgICAgdWludDhfdCBtYXNrID0gMSA8 PCAoaXJxICYgNyk7CiAKICAgICBBU1NFUlQoaGFzX3ZwaWMoZCkpOwpAQCAtNDY0LDcgKzQ2NCw3 IEBAIHZvaWQgdnBpY19pcnFfcG9zaXRpdmVfZWRnZShzdHJ1Y3QgZG9tYWluICpkLCBpbnQgaXJx KQogCiB2b2lkIHZwaWNfaXJxX25lZ2F0aXZlX2VkZ2Uoc3RydWN0IGRvbWFpbiAqZCwgaW50IGly cSkKIHsKLSAgICBzdHJ1Y3QgaHZtX2h3X3ZwaWMgKnZwaWMgPSAmZC0+YXJjaC5odm1fZG9tYWlu LnZwaWNbaXJxID4+IDNdOworICAgIHN0cnVjdCBodm1faHdfdnBpYyAqdnBpYyA9ICZkLT5hcmNo Lmh2bS52cGljW2lycSA+PiAzXTsKICAgICB1aW50OF90IG1hc2sgPSAxIDw8IChpcnEgJiA3KTsK IAogICAgIEFTU0VSVChoYXNfdnBpYyhkKSk7CkBAIC00ODMsNyArNDgzLDcgQEAgdm9pZCB2cGlj X2lycV9uZWdhdGl2ZV9lZGdlKHN0cnVjdCBkb21haW4gKmQsIGludCBpcnEpCiBpbnQgdnBpY19h Y2tfcGVuZGluZ19pcnEoc3RydWN0IHZjcHUgKnYpCiB7CiAgICAgaW50IGlycSwgdmVjdG9yOwot ICAgIHN0cnVjdCBodm1faHdfdnBpYyAqdnBpYyA9ICZ2LT5kb21haW4tPmFyY2guaHZtX2RvbWFp bi52cGljWzBdOworICAgIHN0cnVjdCBodm1faHdfdnBpYyAqdnBpYyA9ICZ2LT5kb21haW4tPmFy Y2guaHZtLnZwaWNbMF07CiAKICAgICBBU1NFUlQoaGFzX3ZwaWModi0+ZG9tYWluKSk7CiAKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdnB0LmMgYi94ZW4vYXJjaC94ODYvaHZtL3ZwdC5j CmluZGV4IDZhYzRjOTEuLjdiNTcwMTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdnB0 LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS92cHQuYwpAQCAtMjQsMTEgKzI0LDExIEBACiAjaW5j bHVkZSA8YXNtL21jMTQ2ODE4cnRjLmg+CiAKICNkZWZpbmUgbW9kZV9pcyhkLCBuYW1lKSBcCi0g ICAgKChkKS0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fVElNRVJfTU9ERV0gPT0g SFZNUFRNXyMjbmFtZSkKKyAgICAoKGQpLT5hcmNoLmh2bS5wYXJhbXNbSFZNX1BBUkFNX1RJTUVS X01PREVdID09IEhWTVBUTV8jI25hbWUpCiAKIHZvaWQgaHZtX2luaXRfZ3Vlc3RfdGltZShzdHJ1 Y3QgZG9tYWluICpkKQogewotICAgIHN0cnVjdCBwbF90aW1lICpwbCA9IGQtPmFyY2guaHZtX2Rv bWFpbi5wbF90aW1lOworICAgIHN0cnVjdCBwbF90aW1lICpwbCA9IGQtPmFyY2guaHZtLnBsX3Rp bWU7CiAKICAgICBzcGluX2xvY2tfaW5pdCgmcGwtPnBsX3RpbWVfbG9jayk7CiAgICAgcGwtPnN0 aW1lX29mZnNldCA9IC0odTY0KWdldF9zX3RpbWUoKTsKQEAgLTM3LDcgKzM3LDcgQEAgdm9pZCBo dm1faW5pdF9ndWVzdF90aW1lKHN0cnVjdCBkb21haW4gKmQpCiAKIHVpbnQ2NF90IGh2bV9nZXRf Z3Vlc3RfdGltZV9maXhlZChjb25zdCBzdHJ1Y3QgdmNwdSAqdiwgdWludDY0X3QgYXRfdHNjKQog ewotICAgIHN0cnVjdCBwbF90aW1lICpwbCA9IHYtPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLnBs X3RpbWU7CisgICAgc3RydWN0IHBsX3RpbWUgKnBsID0gdi0+ZG9tYWluLT5hcmNoLmh2bS5wbF90 aW1lOwogICAgIHU2NCBub3c7CiAKICAgICAvKiBDYWxsZWQgZnJvbSBkZXZpY2UgbW9kZWxzIHNo YXJlZCB3aXRoIFBWIGd1ZXN0cy4gQmUgY2FyZWZ1bC4gKi8KQEAgLTg4LDcgKzg4LDcgQEAgc3Rh dGljIGludCBwdF9pcnFfdmVjdG9yKHN0cnVjdCBwZXJpb2RpY190aW1lICpwdCwgZW51bSBodm1f aW50c3JjIHNyYykKICAgICBnc2kgPSBodm1faXNhX2lycV90b19nc2koaXNhX2lycSk7CiAKICAg ICBpZiAoIHNyYyA9PSBodm1faW50c3JjX3BpYyApCi0gICAgICAgIHJldHVybiAodi0+ZG9tYWlu LT5hcmNoLmh2bV9kb21haW4udnBpY1tpc2FfaXJxID4+IDNdLmlycV9iYXNlCisgICAgICAgIHJl dHVybiAodi0+ZG9tYWluLT5hcmNoLmh2bS52cGljW2lzYV9pcnEgPj4gM10uaXJxX2Jhc2UKICAg ICAgICAgICAgICAgICArIChpc2FfaXJxICYgNykpOwogCiAgICAgQVNTRVJUKHNyYyA9PSBodm1f aW50c3JjX2xhcGljKTsKQEAgLTEyMSw3ICsxMjEsNyBAQCBzdGF0aWMgaW50IHB0X2lycV9tYXNr ZWQoc3RydWN0IHBlcmlvZGljX3RpbWUgKnB0KQogCiAgICAgY2FzZSBQVFNSQ19pc2E6CiAgICAg ewotICAgICAgICB1aW50OF90IHBpY19pbXIgPSB2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi52 cGljW3B0LT5pcnEgPj4gM10uaW1yOworICAgICAgICB1aW50OF90IHBpY19pbXIgPSB2LT5kb21h aW4tPmFyY2guaHZtLnZwaWNbcHQtPmlycSA+PiAzXS5pbXI7CiAKICAgICAgICAgLyogQ2hlY2sg aWYgdGhlIGludGVycnVwdCBpcyB1bm1hc2tlZCBpbiB0aGUgUElDLiAqLwogICAgICAgICBpZiAo ICEocGljX2ltciAmICgxIDw8IChwdC0+aXJxICYgNykpKSAmJiB2bGFwaWNfYWNjZXB0X3BpY19p bnRyKHYpICkKQEAgLTM2Myw3ICszNjMsNyBAQCBpbnQgcHRfdXBkYXRlX2lycShzdHJ1Y3QgdmNw dSAqdikKICAgICBjYXNlIFBUU1JDX2lzYToKICAgICAgICAgaHZtX2lzYV9pcnFfZGVhc3NlcnQo di0+ZG9tYWluLCBpcnEpOwogICAgICAgICBpZiAoIHBsYXRmb3JtX2xlZ2FjeV9pcnEoaXJxKSAm JiB2bGFwaWNfYWNjZXB0X3BpY19pbnRyKHYpICYmCi0gICAgICAgICAgICAgdi0+ZG9tYWluLT5h cmNoLmh2bV9kb21haW4udnBpY1tpcnEgPj4gM10uaW50X291dHB1dCApCisgICAgICAgICAgICAg di0+ZG9tYWluLT5hcmNoLmh2bS52cGljW2lycSA+PiAzXS5pbnRfb3V0cHV0ICkKICAgICAgICAg ICAgIGh2bV9pc2FfaXJxX2Fzc2VydCh2LT5kb21haW4sIGlycSwgTlVMTCk7CiAgICAgICAgIGVs c2UKICAgICAgICAgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHZvaWQgY3JlYXRlX3BlcmlvZGljX3Rp bWUoCiAKICAgICBpZiAoICFwdC0+b25lX3Nob3QgKQogICAgIHsKLSAgICAgICAgaWYgKCB2LT5k b21haW4tPmFyY2guaHZtX2RvbWFpbi5wYXJhbXNbSFZNX1BBUkFNX1ZQVF9BTElHTl0gKQorICAg ICAgICBpZiAoIHYtPmRvbWFpbi0+YXJjaC5odm0ucGFyYW1zW0hWTV9QQVJBTV9WUFRfQUxJR05d ICkKICAgICAgICAgewogICAgICAgICAgICAgcHQtPnNjaGVkdWxlZCA9IGFsaWduX3RpbWVyKHB0 LT5zY2hlZHVsZWQsIHB0LT5wZXJpb2QpOwogICAgICAgICB9CkBAIC02MDUsNyArNjA1LDcgQEAg dm9pZCBwdF9hZGp1c3RfZ2xvYmFsX3ZjcHVfdGFyZ2V0KHN0cnVjdCB2Y3B1ICp2KQogICAgIHB0 X2FkanVzdF92Y3B1KCZ2cGl0LT5wdDAsIHYpOwogICAgIHNwaW5fdW5sb2NrKCZ2cGl0LT5sb2Nr KTsKIAotICAgIHBsX3RpbWUgPSB2LT5kb21haW4tPmFyY2guaHZtX2RvbWFpbi5wbF90aW1lOwor ICAgIHBsX3RpbWUgPSB2LT5kb21haW4tPmFyY2guaHZtLnBsX3RpbWU7CiAKICAgICBzcGluX2xv Y2soJnBsX3RpbWUtPnZydGMubG9jayk7CiAgICAgcHRfYWRqdXN0X3ZjcHUoJnBsX3RpbWUtPnZy dGMucHQsIHYpOwpAQCAtNjQwLDkgKzY0MCw5IEBAIHZvaWQgcHRfbWF5X3VubWFza19pcnEoc3Ry dWN0IGRvbWFpbiAqZCwgc3RydWN0IHBlcmlvZGljX3RpbWUgKnZsYXBpY19wdCkKICAgICBpZiAo IGQgKQogICAgIHsKICAgICAgICAgcHRfcmVzdW1lKCZkLT5hcmNoLnZwaXQucHQwKTsKLSAgICAg ICAgcHRfcmVzdW1lKCZkLT5hcmNoLmh2bV9kb21haW4ucGxfdGltZS0+dnJ0Yy5wdCk7CisgICAg ICAgIHB0X3Jlc3VtZSgmZC0+YXJjaC5odm0ucGxfdGltZS0+dnJ0Yy5wdCk7CiAgICAgICAgIGZv ciAoIGkgPSAwOyBpIDwgSFBFVF9USU1FUl9OVU07IGkrKyApCi0gICAgICAgICAgICBwdF9yZXN1 bWUoJmQtPmFyY2guaHZtX2RvbWFpbi5wbF90aW1lLT52aHBldC5wdFtpXSk7CisgICAgICAgICAg ICBwdF9yZXN1bWUoJmQtPmFyY2guaHZtLnBsX3RpbWUtPnZocGV0LnB0W2ldKTsKICAgICB9CiAK ICAgICBpZiAoIHZsYXBpY19wdCApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaXJxLmMgYi94 ZW4vYXJjaC94ODYvaXJxLmMKaW5kZXggNjg2NWM3OS4uZWM5M2FiNiAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L2lycS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwpAQCAtMTI5Myw3ICsxMjkz LDcgQEAgaW50IGluaXRfZG9tYWluX2lycV9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmQpCiAKICAg ICByYWRpeF90cmVlX2luaXQoJmQtPmFyY2guaXJxX3BpcnEpOwogICAgIGlmICggaXNfaHZtX2Rv bWFpbihkKSApCi0gICAgICAgIHJhZGl4X3RyZWVfaW5pdCgmZC0+YXJjaC5odm1fZG9tYWluLmVt dWlycV9waXJxKTsKKyAgICAgICAgcmFkaXhfdHJlZV9pbml0KCZkLT5hcmNoLmh2bS5lbXVpcnFf cGlycSk7CiAKICAgICBmb3IgKCBpID0gMTsgcGxhdGZvcm1fbGVnYWN5X2lycShpKTsgKytpICkK ICAgICB7CkBAIC0xMzE5LDcgKzEzMTksNyBAQCB2b2lkIGNsZWFudXBfZG9tYWluX2lycV9tYXBw aW5nKHN0cnVjdCBkb21haW4gKmQpCiB7CiAgICAgcmFkaXhfdHJlZV9kZXN0cm95KCZkLT5hcmNo LmlycV9waXJxLCBOVUxMKTsKICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQotICAgICAgICBy YWRpeF90cmVlX2Rlc3Ryb3koJmQtPmFyY2guaHZtX2RvbWFpbi5lbXVpcnFfcGlycSwgTlVMTCk7 CisgICAgICAgIHJhZGl4X3RyZWVfZGVzdHJveSgmZC0+YXJjaC5odm0uZW11aXJxX3BpcnEsIE5V TEwpOwogfQogCiBzdHJ1Y3QgcGlycSAqYWxsb2NfcGlycV9zdHJ1Y3Qoc3RydWN0IGRvbWFpbiAq ZCkKQEAgLTI0OTAsNyArMjQ5MCw3IEBAIGludCBtYXBfZG9tYWluX2VtdWlycV9waXJxKHN0cnVj dCBkb21haW4gKmQsIGludCBwaXJxLCBpbnQgZW11aXJxKQogICAgIC8qIGRvIG5vdCBzdG9yZSBl bXVpcnEgbWFwcGluZ3MgZm9yIHB0IGRldmljZXMgKi8KICAgICBpZiAoIGVtdWlycSAhPSBJUlFf UFQgKQogICAgIHsKLSAgICAgICAgaW50IGVyciA9IHJhZGl4X3RyZWVfaW5zZXJ0KCZkLT5hcmNo Lmh2bV9kb21haW4uZW11aXJxX3BpcnEsIGVtdWlycSwKKyAgICAgICAgaW50IGVyciA9IHJhZGl4 X3RyZWVfaW5zZXJ0KCZkLT5hcmNoLmh2bS5lbXVpcnFfcGlycSwgZW11aXJxLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFkaXhfdHJlZV9pbnRfdG9fcHRyKHBpcnEpKTsK IAogICAgICAgICBzd2l0Y2ggKCBlcnIgKQpAQCAtMjUwMCw3ICsyNTAwLDcgQEAgaW50IG1hcF9k b21haW5fZW11aXJxX3BpcnEoc3RydWN0IGRvbWFpbiAqZCwgaW50IHBpcnEsIGludCBlbXVpcnEp CiAgICAgICAgIGNhc2UgLUVFWElTVDoKICAgICAgICAgICAgIHJhZGl4X3RyZWVfcmVwbGFjZV9z bG90KAogICAgICAgICAgICAgICAgIHJhZGl4X3RyZWVfbG9va3VwX3Nsb3QoCi0gICAgICAgICAg ICAgICAgICAgICZkLT5hcmNoLmh2bV9kb21haW4uZW11aXJxX3BpcnEsIGVtdWlycSksCisgICAg ICAgICAgICAgICAgICAgICZkLT5hcmNoLmh2bS5lbXVpcnFfcGlycSwgZW11aXJxKSwKICAgICAg ICAgICAgICAgICByYWRpeF90cmVlX2ludF90b19wdHIocGlycSkpOwogICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgIGRlZmF1bHQ6CkBAIC0yNTQyLDcgKzI1NDIsNyBAQCBpbnQgdW5tYXBfZG9t YWluX3BpcnFfZW11aXJxKHN0cnVjdCBkb21haW4gKmQsIGludCBwaXJxKQogICAgICAgICBwaXJx X2NsZWFudXBfY2hlY2soaW5mbywgZCk7CiAgICAgfQogICAgIGlmICggZW11aXJxICE9IElSUV9Q VCApCi0gICAgICAgIHJhZGl4X3RyZWVfZGVsZXRlKCZkLT5hcmNoLmh2bV9kb21haW4uZW11aXJx X3BpcnEsIGVtdWlycSk7CisgICAgICAgIHJhZGl4X3RyZWVfZGVsZXRlKCZkLT5hcmNoLmh2bS5l bXVpcnFfcGlycSwgZW11aXJxKTsKIAogIGRvbmU6CiAgICAgcmV0dXJuIHJldDsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAvaGFwLmMgYi94ZW4vYXJjaC94ODYvbW0vaGFwL2hhcC5j CmluZGV4IDgxMmE4NDAuLmZlMTBlOWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9oYXAv aGFwLmMKKysrIGIveGVuL2FyY2gveDg2L21tL2hhcC9oYXAuYwpAQCAtODMsNyArODMsNyBAQCBp bnQgaGFwX3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFpbiAqZCwKIAogICAgICAgICBwYWdp bmdfbG9jayhkKTsKIAotICAgICAgICBkaXJ0eV92cmFtID0gZC0+YXJjaC5odm1fZG9tYWluLmRp cnR5X3ZyYW07CisgICAgICAgIGRpcnR5X3ZyYW0gPSBkLT5hcmNoLmh2bS5kaXJ0eV92cmFtOwog ICAgICAgICBpZiAoICFkaXJ0eV92cmFtICkKICAgICAgICAgewogICAgICAgICAgICAgcmMgPSAt RU5PTUVNOwpAQCAtOTMsNyArOTMsNyBAQCBpbnQgaGFwX3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0 IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgIH0KIAot ICAgICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLmRpcnR5X3ZyYW0gPSBkaXJ0eV92cmFtOwor ICAgICAgICAgICAgZC0+YXJjaC5odm0uZGlydHlfdnJhbSA9IGRpcnR5X3ZyYW07CiAgICAgICAg IH0KIAogICAgICAgICBpZiAoIGJlZ2luX3BmbiAhPSBkaXJ0eV92cmFtLT5iZWdpbl9wZm4gfHwK QEAgLTE0NSw3ICsxNDUsNyBAQCBpbnQgaGFwX3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFp biAqZCwKICAgICB7CiAgICAgICAgIHBhZ2luZ19sb2NrKGQpOwogCi0gICAgICAgIGRpcnR5X3Zy YW0gPSBkLT5hcmNoLmh2bV9kb21haW4uZGlydHlfdnJhbTsKKyAgICAgICAgZGlydHlfdnJhbSA9 IGQtPmFyY2guaHZtLmRpcnR5X3ZyYW07CiAgICAgICAgIGlmICggZGlydHlfdnJhbSApCiAgICAg ICAgIHsKICAgICAgICAgICAgIC8qCkBAIC0xNTUsNyArMTU1LDcgQEAgaW50IGhhcF90cmFja19k aXJ0eV92cmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICBiZWdpbl9wZm4gPSBkaXJ0 eV92cmFtLT5iZWdpbl9wZm47CiAgICAgICAgICAgICBuciA9IGRpcnR5X3ZyYW0tPmVuZF9wZm4g LSBkaXJ0eV92cmFtLT5iZWdpbl9wZm47CiAgICAgICAgICAgICB4ZnJlZShkaXJ0eV92cmFtKTsK LSAgICAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFpbi5kaXJ0eV92cmFtID0gTlVMTDsKKyAgICAg ICAgICAgIGQtPmFyY2guaHZtLmRpcnR5X3ZyYW0gPSBOVUxMOwogICAgICAgICB9CiAKICAgICAg ICAgcGFnaW5nX3VubG9jayhkKTsKQEAgLTU3OSw4ICs1NzksNyBAQCB2b2lkIGhhcF90ZWFyZG93 bihzdHJ1Y3QgZG9tYWluICpkLCBib29sICpwcmVlbXB0ZWQpCiAKICAgICBkLT5hcmNoLnBhZ2lu Zy5tb2RlICY9IH5QR19sb2dfZGlydHk7CiAKLSAgICB4ZnJlZShkLT5hcmNoLmh2bV9kb21haW4u ZGlydHlfdnJhbSk7Ci0gICAgZC0+YXJjaC5odm1fZG9tYWluLmRpcnR5X3ZyYW0gPSBOVUxMOwor ICAgIFhGUkVFKGQtPmFyY2guaHZtLmRpcnR5X3ZyYW0pOwogCiBvdXQ6CiAgICAgcGFnaW5nX3Vu bG9jayhkKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jIGIveGVu L2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMKaW5kZXggZmFkOGE5ZC4uZmUxZGY4MyAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L21tL21lbV9zaGFyaW5nLmMKKysrIGIveGVuL2FyY2gveDg2L21t L21lbV9zaGFyaW5nLmMKQEAgLTE1MCw3ICsxNTAsNyBAQCBzdGF0aWMgaW5saW5lIHNocl9oYW5k bGVfdCBnZXRfbmV4dF9oYW5kbGUodm9pZCkKIH0KIAogI2RlZmluZSBtZW1fc2hhcmluZ19lbmFi bGVkKGQpIFwKLSAgICAoaXNfaHZtX2RvbWFpbihkKSAmJiAoZCktPmFyY2guaHZtX2RvbWFpbi5t ZW1fc2hhcmluZ19lbmFibGVkKQorICAgIChpc19odm1fZG9tYWluKGQpICYmIChkKS0+YXJjaC5o dm0ubWVtX3NoYXJpbmdfZW5hYmxlZCkKIAogc3RhdGljIGF0b21pY190IG5yX3NhdmVkX21mbnMg ICA9IEFUT01JQ19JTklUKDApOyAKIHN0YXRpYyBhdG9taWNfdCBucl9zaGFyZWRfbWZucyAgPSBB VE9NSUNfSU5JVCgwKTsKQEAgLTEzMzMsNyArMTMzMyw3IEBAIGludCBtZW1fc2hhcmluZ19tZW1v cChYRU5fR1VFU1RfSEFORExFX1BBUkFNKHhlbl9tZW1fc2hhcmluZ19vcF90KSBhcmcpCiAKICAg ICAvKiBPbmx5IEhBUCBpcyBzdXBwb3J0ZWQgKi8KICAgICByYyA9IC1FTk9ERVY7Ci0gICAgaWYg KCAhaGFwX2VuYWJsZWQoZCkgfHwgIWQtPmFyY2guaHZtX2RvbWFpbi5tZW1fc2hhcmluZ19lbmFi bGVkICkKKyAgICBpZiAoICFoYXBfZW5hYmxlZChkKSB8fCAhZC0+YXJjaC5odm0ubWVtX3NoYXJp bmdfZW5hYmxlZCApCiAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgc3dpdGNoICggbXNvLm9wICkK QEAgLTE2MTMsNyArMTYxMyw3IEBAIGludCBtZW1fc2hhcmluZ19kb21jdGwoc3RydWN0IGRvbWFp biAqZCwgc3RydWN0IHhlbl9kb21jdGxfbWVtX3NoYXJpbmdfb3AgKm1lYykKICAgICAgICAgICAg IGlmICggdW5saWtlbHkobmVlZF9pb21tdShkKSAmJiBtZWMtPnUuZW5hYmxlKSApCiAgICAgICAg ICAgICAgICAgcmMgPSAtRVhERVY7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg ZC0+YXJjaC5odm1fZG9tYWluLm1lbV9zaGFyaW5nX2VuYWJsZWQgPSBtZWMtPnUuZW5hYmxlOwor ICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtLm1lbV9zaGFyaW5nX2VuYWJsZWQgPSBtZWMtPnUu ZW5hYmxlOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbW0vc2hhZG93L2NvbW1vbi5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24u YwppbmRleCAxOTMwYTFkLi5hZmRjMjdkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hh ZG93L2NvbW1vbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvY29tbW9uLmMKQEAgLTI4 ODEsMTEgKzI4ODEsMTEgQEAgdm9pZCBzaGFkb3dfdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCwg Ym9vbCAqcHJlZW1wdGVkKQogICAgICAqIGNhbGxzIG5vdyB0aGF0IHdlJ3ZlIHRvcm4gZG93biB0 aGUgYml0bWFwICovCiAgICAgZC0+YXJjaC5wYWdpbmcubW9kZSAmPSB+UEdfbG9nX2RpcnR5Owog Ci0gICAgaWYgKGQtPmFyY2guaHZtX2RvbWFpbi5kaXJ0eV92cmFtKSB7Ci0gICAgICAgIHhmcmVl KGQtPmFyY2guaHZtX2RvbWFpbi5kaXJ0eV92cmFtLT5zbDFtYSk7Ci0gICAgICAgIHhmcmVlKGQt PmFyY2guaHZtX2RvbWFpbi5kaXJ0eV92cmFtLT5kaXJ0eV9iaXRtYXApOwotICAgICAgICB4ZnJl ZShkLT5hcmNoLmh2bV9kb21haW4uZGlydHlfdnJhbSk7Ci0gICAgICAgIGQtPmFyY2guaHZtX2Rv bWFpbi5kaXJ0eV92cmFtID0gTlVMTDsKKyAgICBpZiAoIGQtPmFyY2guaHZtLmRpcnR5X3ZyYW0g KQorICAgIHsKKyAgICAgICAgeGZyZWUoZC0+YXJjaC5odm0uZGlydHlfdnJhbS0+c2wxbWEpOwor ICAgICAgICB4ZnJlZShkLT5hcmNoLmh2bS5kaXJ0eV92cmFtLT5kaXJ0eV9iaXRtYXApOworICAg ICAgICBYRlJFRShkLT5hcmNoLmh2bS5kaXJ0eV92cmFtKTsKICAgICB9CiAKIG91dDoKQEAgLTMy NjEsNyArMzI2MSw3IEBAIGludCBzaGFkb3dfdHJhY2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWlu ICpkLAogICAgIHAybV9sb2NrKHAybV9nZXRfaG9zdHAybShkKSk7CiAgICAgcGFnaW5nX2xvY2so ZCk7CiAKLSAgICBkaXJ0eV92cmFtID0gZC0+YXJjaC5odm1fZG9tYWluLmRpcnR5X3ZyYW07Cisg ICAgZGlydHlfdnJhbSA9IGQtPmFyY2guaHZtLmRpcnR5X3ZyYW07CiAKICAgICBpZiAoIGRpcnR5 X3ZyYW0gJiYgKCFuciB8fAogICAgICAgICAgICAgICggYmVnaW5fcGZuICE9IGRpcnR5X3ZyYW0t PmJlZ2luX3BmbgpAQCAtMzI3Miw3ICszMjcyLDcgQEAgaW50IHNoYWRvd190cmFja19kaXJ0eV92 cmFtKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgIHhmcmVlKGRpcnR5X3ZyYW0tPnNsMW1hKTsK ICAgICAgICAgeGZyZWUoZGlydHlfdnJhbS0+ZGlydHlfYml0bWFwKTsKICAgICAgICAgeGZyZWUo ZGlydHlfdnJhbSk7Ci0gICAgICAgIGRpcnR5X3ZyYW0gPSBkLT5hcmNoLmh2bV9kb21haW4uZGly dHlfdnJhbSA9IE5VTEw7CisgICAgICAgIGRpcnR5X3ZyYW0gPSBkLT5hcmNoLmh2bS5kaXJ0eV92 cmFtID0gTlVMTDsKICAgICB9CiAKICAgICBpZiAoICFuciApCkBAIC0zMjk5LDcgKzMyOTksNyBA QCBpbnQgc2hhZG93X3RyYWNrX2RpcnR5X3ZyYW0oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAg ICAgIGdvdG8gb3V0OwogICAgICAgICBkaXJ0eV92cmFtLT5iZWdpbl9wZm4gPSBiZWdpbl9wZm47 CiAgICAgICAgIGRpcnR5X3ZyYW0tPmVuZF9wZm4gPSBlbmRfcGZuOwotICAgICAgICBkLT5hcmNo Lmh2bV9kb21haW4uZGlydHlfdnJhbSA9IGRpcnR5X3ZyYW07CisgICAgICAgIGQtPmFyY2guaHZt LmRpcnR5X3ZyYW0gPSBkaXJ0eV92cmFtOwogCiAgICAgICAgIGlmICggKGRpcnR5X3ZyYW0tPnNs MW1hID0geG1hbGxvY19hcnJheShwYWRkcl90LCBucikpID09IE5VTEwgKQogICAgICAgICAgICAg Z290byBvdXRfZGlydHlfdnJhbTsKQEAgLTM0MTgsNyArMzQxOCw3IEBAIGludCBzaGFkb3dfdHJh Y2tfZGlydHlfdnJhbShzdHJ1Y3QgZG9tYWluICpkLAogICAgIHhmcmVlKGRpcnR5X3ZyYW0tPnNs MW1hKTsKIG91dF9kaXJ0eV92cmFtOgogICAgIHhmcmVlKGRpcnR5X3ZyYW0pOwotICAgIGRpcnR5 X3ZyYW0gPSBkLT5hcmNoLmh2bV9kb21haW4uZGlydHlfdnJhbSA9IE5VTEw7CisgICAgZGlydHlf dnJhbSA9IGQtPmFyY2guaHZtLmRpcnR5X3ZyYW0gPSBOVUxMOwogCiBvdXQ6CiAgICAgcGFnaW5n X3VubG9jayhkKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyBi L3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwppbmRleCA5ZTQzNTMzLi42MjgxOWViIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMKKysrIGIveGVuL2FyY2gv eDg2L21tL3NoYWRvdy9tdWx0aS5jCkBAIC01MjcsNyArNTI3LDcgQEAgX3NoX3Byb3BhZ2F0ZShz dHJ1Y3QgdmNwdSAqdiwKICAgICBndWVzdF9sMWVfdCBndWVzdF9lbnRyeSA9IHsgZ3Vlc3RfaW50 cHRlIH07CiAgICAgc2hhZG93X2wxZV90ICpzcCA9IHNoYWRvd19lbnRyeV9wdHI7CiAgICAgc3Ry dWN0IGRvbWFpbiAqZCA9IHYtPmRvbWFpbjsKLSAgICBzdHJ1Y3Qgc2hfZGlydHlfdnJhbSAqZGly dHlfdnJhbSA9IGQtPmFyY2guaHZtX2RvbWFpbi5kaXJ0eV92cmFtOworICAgIHN0cnVjdCBzaF9k aXJ0eV92cmFtICpkaXJ0eV92cmFtID0gZC0+YXJjaC5odm0uZGlydHlfdnJhbTsKICAgICBnZm5f dCB0YXJnZXRfZ2ZuID0gZ3Vlc3RfbDFlX2dldF9nZm4oZ3Vlc3RfZW50cnkpOwogICAgIHUzMiBw YXNzX3RocnVfZmxhZ3M7CiAgICAgdTMyIGdmbGFncywgc2ZsYWdzOwpAQCAtNjE5LDcgKzYxOSw3 IEBAIF9zaF9wcm9wYWdhdGUoc3RydWN0IHZjcHUgKnYsCiAgICAgICAgIGlmICggIW1taW9fbWZu ICYmCiAgICAgICAgICAgICAgKHR5cGUgPSBodm1fZ2V0X21lbV9waW5uZWRfY2FjaGVhdHRyKGQs IHRhcmdldF9nZm4sIDApKSA+PSAwICkKICAgICAgICAgICAgIHNmbGFncyB8PSBwYXRfdHlwZV8y X3B0ZV9mbGFncyh0eXBlKTsKLSAgICAgICAgZWxzZSBpZiAoIGQtPmFyY2guaHZtX2RvbWFpbi5p c19pbl91Y19tb2RlICkKKyAgICAgICAgZWxzZSBpZiAoIGQtPmFyY2guaHZtLmlzX2luX3VjX21v ZGUgKQogICAgICAgICAgICAgc2ZsYWdzIHw9IHBhdF90eXBlXzJfcHRlX2ZsYWdzKFBBVF9UWVBF X1VOQ0FDSEFCTEUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBpZiAoIGlvbWVtX2FjY2Vz c19wZXJtaXR0ZWQoZCwgbWZuX3godGFyZ2V0X21mbiksIG1mbl94KHRhcmdldF9tZm4pKSApCkBA IC0xMTEwLDcgKzExMTAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2hhZG93X3ZyYW1fZ2V0X2wx ZShzaGFkb3dfbDFlX3QgbmV3X3NsMWUsCiAgICAgbWZuX3QgbWZuID0gc2hhZG93X2wxZV9nZXRf bWZuKG5ld19zbDFlKTsKICAgICBpbnQgZmxhZ3MgPSBzaGFkb3dfbDFlX2dldF9mbGFncyhuZXdf c2wxZSk7CiAgICAgdW5zaWduZWQgbG9uZyBnZm47Ci0gICAgc3RydWN0IHNoX2RpcnR5X3ZyYW0g KmRpcnR5X3ZyYW0gPSBkLT5hcmNoLmh2bV9kb21haW4uZGlydHlfdnJhbTsKKyAgICBzdHJ1Y3Qg c2hfZGlydHlfdnJhbSAqZGlydHlfdnJhbSA9IGQtPmFyY2guaHZtLmRpcnR5X3ZyYW07CiAKICAg ICBpZiAoICFkaXJ0eV92cmFtICAgICAgICAgLyogdHJhY2tpbmcgZGlzYWJsZWQ/ICovCiAgICAg ICAgICB8fCAhKGZsYWdzICYgX1BBR0VfUlcpIC8qIHJlYWQtb25seSBtYXBwaW5nPyAqLwpAQCAt MTE0MSw3ICsxMTQxLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNoYWRvd192cmFtX3B1dF9sMWUo c2hhZG93X2wxZV90IG9sZF9zbDFlLAogICAgIG1mbl90IG1mbiA9IHNoYWRvd19sMWVfZ2V0X21m bihvbGRfc2wxZSk7CiAgICAgaW50IGZsYWdzID0gc2hhZG93X2wxZV9nZXRfZmxhZ3Mob2xkX3Ns MWUpOwogICAgIHVuc2lnbmVkIGxvbmcgZ2ZuOwotICAgIHN0cnVjdCBzaF9kaXJ0eV92cmFtICpk aXJ0eV92cmFtID0gZC0+YXJjaC5odm1fZG9tYWluLmRpcnR5X3ZyYW07CisgICAgc3RydWN0IHNo X2RpcnR5X3ZyYW0gKmRpcnR5X3ZyYW0gPSBkLT5hcmNoLmh2bS5kaXJ0eV92cmFtOwogCiAgICAg aWYgKCAhZGlydHlfdnJhbSAgICAgICAgIC8qIHRyYWNraW5nIGRpc2FibGVkPyAqLwogICAgICAg ICAgfHwgIShmbGFncyAmIF9QQUdFX1JXKSAvKiByZWFkLW9ubHkgbWFwcGluZz8gKi8KZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMgYi94ZW4vYXJjaC94ODYvcGh5c2Rldi5jCmlu ZGV4IDQ1MjQ4MjMuLjNhM2MxNTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMK KysrIGIveGVuL2FyY2gveDg2L3BoeXNkZXYuYwpAQCAtOTgsNyArOTgsNyBAQCBpbnQgcGh5c2Rl dl9tYXBfcGlycShkb21pZF90IGRvbWlkLCBpbnQgdHlwZSwgaW50ICppbmRleCwgaW50ICpwaXJx X3AsCiAgICAgewogICAgICAgICAvKgogICAgICAgICAgKiBPbmx5IG1ha2VzIHNlbnNlIGZvciB2 ZWN0b3ItYmFzZWQgY2FsbGJhY2ssIGVsc2UgSFZNLUlSUSBsb2dpYwotICAgICAgICAgKiBjYWxs cyBiYWNrIGludG8gaXRzZWxmIGFuZCBkZWFkbG9ja3Mgb24gaHZtX2RvbWFpbi5pcnFfbG9jay4K KyAgICAgICAgICogY2FsbHMgYmFjayBpbnRvIGl0c2VsZiBhbmQgZGVhZGxvY2tzIG9uIGh2bS5p cnFfbG9jay4KICAgICAgICAgICovCiAgICAgICAgIGlmICggIWlzX2h2bV9wdl9ldnRjaG5fZG9t YWluKGQpICkKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L3NldHVwLmMgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwppbmRleCBkZDExODE1Li5lZDEz M2ZjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYv c2V0dXAuYwpAQCAtMTg3MCw3ICsxODcwLDcgQEAgc3RhdGljIGludCBfX2h3ZG9tX2luaXQgaW9f Yml0bWFwX2NiKHVuc2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlLAogCiAgICAgQVNTRVJU KGUgPD0gSU5UX01BWCk7CiAgICAgZm9yICggaSA9IHM7IGkgPD0gZTsgaSsrICkKLSAgICAgICAg X19jbGVhcl9iaXQoaSwgZC0+YXJjaC5odm1fZG9tYWluLmlvX2JpdG1hcCk7CisgICAgICAgIF9f Y2xlYXJfYml0KGksIGQtPmFyY2guaHZtLmlvX2JpdG1hcCk7CiAKICAgICByZXR1cm4gMDsKIH0K QEAgLTE4ODEsNyArMTg4MSw3IEBAIHZvaWQgX19od2RvbV9pbml0IHNldHVwX2lvX2JpdG1hcChz dHJ1Y3QgZG9tYWluICpkKQogCiAgICAgaWYgKCBpc19odm1fZG9tYWluKGQpICkKICAgICB7Ci0g ICAgICAgIGJpdG1hcF9maWxsKGQtPmFyY2guaHZtX2RvbWFpbi5pb19iaXRtYXAsIDB4MTAwMDAp OworICAgICAgICBiaXRtYXBfZmlsbChkLT5hcmNoLmh2bS5pb19iaXRtYXAsIDB4MTAwMDApOwog ICAgICAgICByYyA9IHJhbmdlc2V0X3JlcG9ydF9yYW5nZXMoZC0+YXJjaC5pb3BvcnRfY2Fwcywg MCwgMHgxMDAwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvX2JpdG1h cF9jYiwgZCk7CiAgICAgICAgIEJVR19PTihyYyk7CkBAIC0xODkyLDkgKzE4OTIsOSBAQCB2b2lk IF9faHdkb21faW5pdCBzZXR1cF9pb19iaXRtYXAoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAg ICogQWNjZXNzIHRvIDEgYnl0ZSBSVEMgcG9ydHMgYWxzbyBuZWVkcyB0byBiZSB0cmFwcGVkIGlu IG9yZGVyCiAgICAgICAgICAqIHRvIGtlZXAgY29uc2lzdGVuY3kgd2l0aCBQVi4KICAgICAgICAg ICovCi0gICAgICAgIF9fc2V0X2JpdCgweGNmOCwgZC0+YXJjaC5odm1fZG9tYWluLmlvX2JpdG1h cCk7Ci0gICAgICAgIF9fc2V0X2JpdChSVENfUE9SVCgwKSwgZC0+YXJjaC5odm1fZG9tYWluLmlv X2JpdG1hcCk7Ci0gICAgICAgIF9fc2V0X2JpdChSVENfUE9SVCgxKSwgZC0+YXJjaC5odm1fZG9t YWluLmlvX2JpdG1hcCk7CisgICAgICAgIF9fc2V0X2JpdCgweGNmOCwgZC0+YXJjaC5odm0uaW9f Yml0bWFwKTsKKyAgICAgICAgX19zZXRfYml0KFJUQ19QT1JUKDApLCBkLT5hcmNoLmh2bS5pb19i aXRtYXApOworICAgICAgICBfX3NldF9iaXQoUlRDX1BPUlQoMSksIGQtPmFyY2guaHZtLmlvX2Jp dG1hcCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGltZS5jIGIveGVu L2FyY2gveDg2L3RpbWUuYwppbmRleCA2OWU5YWFmLi41OTIyZmJmIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvdGltZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni90aW1lLmMKQEAgLTEwMzksNyArMTAz OSw3IEBAIHN0YXRpYyB2b2lkIF9fdXBkYXRlX3ZjcHVfc3lzdGVtX3RpbWUoc3RydWN0IHZjcHUg KnYsIGludCBmb3JjZSkKIAogICAgICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAgICAg ICB7Ci0gICAgICAgICAgICBzdHJ1Y3QgcGxfdGltZSAqcGwgPSB2LT5kb21haW4tPmFyY2guaHZt X2RvbWFpbi5wbF90aW1lOworICAgICAgICAgICAgc3RydWN0IHBsX3RpbWUgKnBsID0gdi0+ZG9t YWluLT5hcmNoLmh2bS5wbF90aW1lOwogCiAgICAgICAgICAgICBzdGltZSArPSBwbC0+c3RpbWVf b2Zmc2V0ICsgdi0+YXJjaC5odm1fdmNwdS5zdGltZV9vZmZzZXQ7CiAgICAgICAgICAgICBpZiAo IHN0aW1lID49IDAgKQpAQCAtMjE4Myw3ICsyMTgzLDcgQEAgdm9pZCB0c2Nfc2V0X2luZm8oc3Ry dWN0IGRvbWFpbiAqZCwKICAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQogICAgIHsKICAgICAg ICAgaWYgKCBodm1fdHNjX3NjYWxpbmdfc3VwcG9ydGVkICYmICFkLT5hcmNoLnZ0c2MgKQotICAg ICAgICAgICAgZC0+YXJjaC5odm1fZG9tYWluLnRzY19zY2FsaW5nX3JhdGlvID0KKyAgICAgICAg ICAgIGQtPmFyY2guaHZtLnRzY19zY2FsaW5nX3JhdGlvID0KICAgICAgICAgICAgICAgICBodm1f Z2V0X3RzY19zY2FsaW5nX3JhdGlvKGQtPmFyY2gudHNjX2toeik7CiAKICAgICAgICAgaHZtX3Nl dF9yZHRzY19leGl0aW5nKGQsIGQtPmFyY2gudnRzYyk7CkBAIC0yMTk3LDEwICsyMTk3LDEwIEBA IHZvaWQgdHNjX3NldF9pbmZvKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgKiBjYWxs IHNldF90c2Nfb2Zmc2V0KCkgbGF0ZXIgZnJvbSBodm1fdmNwdV9yZXNldF9zdGF0ZSgpIGFuZCB0 aGV5CiAgICAgICAgICAgICAgKiB3aWxsIHN5bmMgdGhlaXIgVFNDIHRvIEJTUCdzIHN5bmNfdHNj LgogICAgICAgICAgICAgICovCi0gICAgICAgICAgICBkLT5hcmNoLmh2bV9kb21haW4uc3luY190 c2MgPSByZHRzYygpOworICAgICAgICAgICAgZC0+YXJjaC5odm0uc3luY190c2MgPSByZHRzYygp OwogICAgICAgICAgICAgaHZtX3NldF90c2Nfb2Zmc2V0KGQtPnZjcHVbMF0sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZC0+dmNwdVswXS0+YXJjaC5odm1fdmNwdS5jYWNoZV90c2Nf b2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQtPmFyY2guaHZtX2RvbWFp bi5zeW5jX3RzYyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC5odm0u c3luY190c2MpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3Zt X2V2ZW50LmMgYi94ZW4vY29tbW9uL3ZtX2V2ZW50LmMKaW5kZXggMTQ0YWI4MS4uNDc5M2FhYyAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi92bV9ldmVudC5jCisrKyBiL3hlbi9jb21tb24vdm1fZXZl bnQuYwpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW50IHZtX2V2ZW50X2VuYWJsZSgKICAgICB4 ZW5fZXZlbnRfY2hhbm5lbF9ub3RpZmljYXRpb25fdCBub3RpZmljYXRpb25fZm4pCiB7CiAgICAg aW50IHJjOwotICAgIHVuc2lnbmVkIGxvbmcgcmluZ19nZm4gPSBkLT5hcmNoLmh2bV9kb21haW4u cGFyYW1zW3BhcmFtXTsKKyAgICB1bnNpZ25lZCBsb25nIHJpbmdfZ2ZuID0gZC0+YXJjaC5odm0u cGFyYW1zW3BhcmFtXTsKIAogICAgIGlmICggISp2ZWQgKQogICAgICAgICAqdmVkID0geHphbGxv YyhzdHJ1Y3Qgdm1fZXZlbnRfZG9tYWluKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKaW5kZXggZDFhZGZm YS4uMjY0NDA0OCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysr IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKQEAgLTE0MTcsNyArMTQxNyw3IEBAIHN0 YXRpYyBpbnQgYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluICpkLCB1MTYgc2VnLCB1OCBidXMs IHU4IGRldmZuLCB1MzIgZmxhZykKICAgICAvKiBQcmV2ZW50IGRldmljZSBhc3NpZ24gaWYgbWVt IHBhZ2luZyBvciBtZW0gc2hhcmluZyBoYXZlIGJlZW4gCiAgICAgICogZW5hYmxlZCBmb3IgdGhp cyBkb21haW4gKi8KICAgICBpZiAoIHVubGlrZWx5KCFuZWVkX2lvbW11KGQpICYmCi0gICAgICAg ICAgICAoZC0+YXJjaC5odm1fZG9tYWluLm1lbV9zaGFyaW5nX2VuYWJsZWQgfHwKKyAgICAgICAg ICAgIChkLT5hcmNoLmh2bS5tZW1fc2hhcmluZ19lbmFibGVkIHx8CiAgICAgICAgICAgICAgdm1f ZXZlbnRfY2hlY2tfcmluZyhkLT52bV9ldmVudF9wYWdpbmcpIHx8CiAgICAgICAgICAgICAgcDJt X2dldF9ob3N0cDJtKGQpLT5nbG9iYWxfbG9nZGlydHkpKSApCiAgICAgICAgIHJldHVybiAtRVhE RVY7CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy92cGNpL21zaXguYyBiL3hlbi9kcml2ZXJzL3Zw Y2kvbXNpeC5jCmluZGV4IGJjZjYzMjUuLjE5NjBkYWUgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJz L3ZwY2kvbXNpeC5jCisrKyBiL3hlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jCkBAIC0xNTIsNyArMTUy LDcgQEAgc3RhdGljIHN0cnVjdCB2cGNpX21zaXggKm1zaXhfZmluZChjb25zdCBzdHJ1Y3QgZG9t YWluICpkLCB1bnNpZ25lZCBsb25nIGFkZHIpCiB7CiAgICAgc3RydWN0IHZwY2lfbXNpeCAqbXNp eDsKIAotICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCBtc2l4LCAmZC0+YXJjaC5odm1fZG9tYWlu Lm1zaXhfdGFibGVzLCBuZXh0ICkKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggbXNpeCwgJmQt PmFyY2guaHZtLm1zaXhfdGFibGVzLCBuZXh0ICkKICAgICB7CiAgICAgICAgIGNvbnN0IHN0cnVj dCB2cGNpX2JhciAqYmFycyA9IG1zaXgtPnBkZXYtPnZwY2ktPmhlYWRlci5iYXJzOwogICAgICAg ICB1bnNpZ25lZCBpbnQgaTsKQEAgLTQzOCwxMCArNDM4LDEwIEBAIHN0YXRpYyBpbnQgaW5pdF9t c2l4KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgIGlmICggcmMgKQogICAgICAgICByZXR1cm4g cmM7CiAKLSAgICBpZiAoIGxpc3RfZW1wdHkoJmQtPmFyY2guaHZtX2RvbWFpbi5tc2l4X3RhYmxl cykgKQorICAgIGlmICggbGlzdF9lbXB0eSgmZC0+YXJjaC5odm0ubXNpeF90YWJsZXMpICkKICAg ICAgICAgcmVnaXN0ZXJfbW1pb19oYW5kbGVyKGQsICZ2cGNpX21zaXhfdGFibGVfb3BzKTsKIAot ICAgIGxpc3RfYWRkKCZwZGV2LT52cGNpLT5tc2l4LT5uZXh0LCAmZC0+YXJjaC5odm1fZG9tYWlu Lm1zaXhfdGFibGVzKTsKKyAgICBsaXN0X2FkZCgmcGRldi0+dnBjaS0+bXNpeC0+bmV4dCwgJmQt PmFyY2guaHZtLm1zaXhfdGFibGVzKTsKIAogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWlu LmgKaW5kZXggMjgwYzM5NS4uZDY4MjMwNyAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFy bS9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oCkBAIC01MSw3ICs1 MSw3IEBAIHN0cnVjdCBhcmNoX2RvbWFpbgogICAgIC8qIFZpcnR1YWwgTU1VICovCiAgICAgc3Ry dWN0IHAybV9kb21haW4gcDJtOwogCi0gICAgc3RydWN0IGh2bV9kb21haW4gaHZtX2RvbWFpbjsK KyAgICBzdHJ1Y3QgaHZtX2RvbWFpbiBodm07CiAKICAgICBzdHJ1Y3Qgdm1taW8gdm1taW87CiAK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggYi94ZW4vaW5jbHVkZS9h c20teDg2L2RvbWFpbi5oCmluZGV4IGZkZDY4NTYuLjQ3MjJjMmQgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL2FzbS14ODYvZG9tYWluLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4u aApAQCAtMTcsNyArMTcsNyBAQAogI2RlZmluZSBpc19wdl8zMmJpdF92Y3B1KHYpICAgIChpc19w dl8zMmJpdF9kb21haW4oKHYpLT5kb21haW4pKQogCiAjZGVmaW5lIGlzX2h2bV9wdl9ldnRjaG5f ZG9tYWluKGQpIChpc19odm1fZG9tYWluKGQpICYmIFwKLSAgICAgICAgKGQpLT5hcmNoLmh2bV9k b21haW4uaXJxLT5jYWxsYmFja192aWFfdHlwZSA9PSBIVk1JUlFfY2FsbGJhY2tfdmVjdG9yKQor ICAgICAgICAoZCktPmFyY2guaHZtLmlycS0+Y2FsbGJhY2tfdmlhX3R5cGUgPT0gSFZNSVJRX2Nh bGxiYWNrX3ZlY3RvcikKICNkZWZpbmUgaXNfaHZtX3B2X2V2dGNobl92Y3B1KHYpIChpc19odm1f cHZfZXZ0Y2huX2RvbWFpbih2LT5kb21haW4pKQogI2RlZmluZSBpc19kb21haW5fZGlyZWN0X21h cHBlZChkKSAoKHZvaWQpKGQpLCAwKQogCkBAIC0zMDYsNyArMzA2LDcgQEAgc3RydWN0IGFyY2hf ZG9tYWluCiAKICAgICB1bmlvbiB7CiAgICAgICAgIHN0cnVjdCBwdl9kb21haW4gcHY7Ci0gICAg ICAgIHN0cnVjdCBodm1fZG9tYWluIGh2bV9kb21haW47CisgICAgICAgIHN0cnVjdCBodm1fZG9t YWluIGh2bTsKICAgICB9OwogCiAgICAgc3RydWN0IHBhZ2luZ19kb21haW4gcGFnaW5nOwpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmggYi94ZW4vaW5jbHVkZS9h c20teDg2L2h2bS9kb21haW4uaAppbmRleCA1ODg1OTUwLi5hY2Y4ZTAzIDEwMDY0NAotLS0gYS94 ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9kb21haW4uaApAQCAtMjAyLDcgKzIwMiw3IEBAIHN0cnVjdCBodm1fZG9tYWluIHsKICAg ICB9OwogfTsKIAotI2RlZmluZSBoYXBfZW5hYmxlZChkKSAgKChkKS0+YXJjaC5odm1fZG9tYWlu LmhhcF9lbmFibGVkKQorI2RlZmluZSBoYXBfZW5hYmxlZChkKSAgKChkKS0+YXJjaC5odm0uaGFw X2VuYWJsZWQpCiAKICNlbmRpZiAvKiBfX0FTTV9YODZfSFZNX0RPTUFJTl9IX18gKi8KIApkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9odm0uaAppbmRleCA1ZWE1MDdiLi5hYzBmMDM1IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9odm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0u aApAQCAtMjY2LDcgKzI2Niw3IEBAIHU2NCBodm1fZ2V0X2d1ZXN0X3RzY19maXhlZChzdHJ1Y3Qg dmNwdSAqdiwgdTY0IGF0X3RzYyk7CiAgICAgKDFVTEwgPDwgaHZtX2Z1bmNzLnRzY19zY2FsaW5n LnJhdGlvX2ZyYWNfYml0cykKIAogI2RlZmluZSBodm1fdHNjX3NjYWxpbmdfcmF0aW8oZCkgXAot ICAgICgoZCktPmFyY2guaHZtX2RvbWFpbi50c2Nfc2NhbGluZ19yYXRpbykKKyAgICAoKGQpLT5h cmNoLmh2bS50c2Nfc2NhbGluZ19yYXRpbykKIAogdTY0IGh2bV9zY2FsZV90c2MoY29uc3Qgc3Ry dWN0IGRvbWFpbiAqZCwgdTY0IHRzYyk7CiB1NjQgaHZtX2dldF90c2Nfc2NhbGluZ19yYXRpbyh1 MzIgZ3RzY19raHopOwpAQCAtMzkxLDEwICszOTEsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGh2 bV9nZXRfZ3Vlc3RfYm5kY2ZncyhzdHJ1Y3QgdmNwdSAqdiwgdTY0ICp2YWwpCiBib29sIGh2bV9z ZXRfZ3Vlc3RfYm5kY2ZncyhzdHJ1Y3QgdmNwdSAqdiwgdTY0IHZhbCk7CiAKICNkZWZpbmUgaGFz X2h2bV9wYXJhbXMoZCkgXAotICAgICgoZCktPmFyY2guaHZtX2RvbWFpbi5wYXJhbXMgIT0gTlVM TCkKKyAgICAoKGQpLT5hcmNoLmh2bS5wYXJhbXMgIT0gTlVMTCkKIAogI2RlZmluZSB2aXJpZGlh bl9mZWF0dXJlX21hc2soZCkgXAotICAgIChoYXNfaHZtX3BhcmFtcyhkKSA/IChkKS0+YXJjaC5o dm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fVklSSURJQU5dIDogMCkKKyAgICAoaGFzX2h2bV9w YXJhbXMoZCkgPyAoZCktPmFyY2guaHZtLnBhcmFtc1tIVk1fUEFSQU1fVklSSURJQU5dIDogMCkK IAogI2RlZmluZSBpc192aXJpZGlhbl9kb21haW4oZCkgXAogICAgIChpc19odm1fZG9tYWluKGQp ICYmICh2aXJpZGlhbl9mZWF0dXJlX21hc2soZCkgJiBIVk1QVl9iYXNlX2ZyZXEpKQpAQCAtNjcw LDkgKzY3MCw4IEBAIHVuc2lnbmVkIGxvbmcgaHZtX2NyNF9ndWVzdF92YWxpZF9iaXRzKGNvbnN0 IHN0cnVjdCBkb21haW4gKmQsIGJvb2wgcmVzdG9yZSk7CiAjZGVmaW5lIGFyY2hfdmNwdV9ibG9j ayh2KSAoeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIHN0cnVjdCB2 Y3B1ICp2XyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAg ICBzdHJ1Y3QgZG9tYWluICpkXyA9IHZfLT5kb21haW47ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgaWYgKCBpc19odm1fZG9tYWluKGRfKSAmJiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgICAgICAoZF8tPmFyY2guaHZtX2RvbWFpbi5waV9vcHMudmNwdV9i bG9jaykgKSAgICAgICAgICBcCi0gICAgICAgIGRfLT5hcmNoLmh2bV9kb21haW4ucGlfb3BzLnZj cHVfYmxvY2sodl8pOyAgICAgICAgICBcCisgICAgaWYgKCBpc19odm1fZG9tYWluKGRfKSAmJiBk Xy0+YXJjaC5odm0ucGlfb3BzLnZjcHVfYmxvY2sgKSAgXAorICAgICAgICBkXy0+YXJjaC5odm0u cGlfb3BzLnZjcHVfYmxvY2sodl8pOyAgICAgICAgICAgICAgICAgICAgIFwKIH0pCiAKICNlbmRp ZiAvKiBfX0FTTV9YODZfSFZNX0hWTV9IX18gKi8KZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvaHZtL2lycS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaXJxLmgKaW5kZXggOGE0 M2NiOS4uMmU2ZmE3MCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaXJxLmgK KysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaXJxLmgKQEAgLTk3LDcgKzk3LDcgQEAgc3Ry dWN0IGh2bV9pcnEgewogICAgICgoKCgoZGV2KTw8MikgKyAoKGRldik+PjMpICsgKGludHgpKSAm IDMxKSArIDE2KQogI2RlZmluZSBodm1fcGNpX2ludHhfbGluayhkZXYsIGludHgpIFwKICAgICAo KChkZXYpICsgKGludHgpKSAmIDMpCi0jZGVmaW5lIGh2bV9kb21haW5faXJxKGQpICgoZCktPmFy Y2guaHZtX2RvbWFpbi5pcnEpCisjZGVmaW5lIGh2bV9kb21haW5faXJxKGQpICgoZCktPmFyY2gu aHZtLmlycSkKICNkZWZpbmUgaHZtX2lycV9zaXplKGNudCkgb2Zmc2V0b2Yoc3RydWN0IGh2bV9p cnEsIGdzaV9hc3NlcnRfY291bnRbY250XSkKIAogI2RlZmluZSBodm1faXNhX2lycV90b19nc2ko aXNhX2lycSkgKChpc2FfaXJxKSA/IDogMikKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL25lc3RlZGh2bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vbmVzdGVkaHZtLmgK aW5kZXggM2M4MTBiNy4uNGEwNDFlMiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vbmVzdGVkaHZtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vbmVzdGVkaHZtLmgK QEAgLTM1LDggKzM1LDggQEAgZW51bSBuZXN0ZWRodm1fdm1leGl0cyB7CiAvKiBOZXN0ZWQgSFZN IG9uL29mZiBwZXIgZG9tYWluICovCiBzdGF0aWMgaW5saW5lIGJvb2wgbmVzdGVkaHZtX2VuYWJs ZWQoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIHsKLSAgICByZXR1cm4gaXNfaHZtX2RvbWFpbihk KSAmJiBkLT5hcmNoLmh2bV9kb21haW4ucGFyYW1zICYmCi0gICAgICAgIGQtPmFyY2guaHZtX2Rv bWFpbi5wYXJhbXNbSFZNX1BBUkFNX05FU1RFREhWTV07CisgICAgcmV0dXJuIGlzX2h2bV9kb21h aW4oZCkgJiYgZC0+YXJjaC5odm0ucGFyYW1zICYmCisgICAgICAgIGQtPmFyY2guaHZtLnBhcmFt c1tIVk1fUEFSQU1fTkVTVEVESFZNXTsKIH0KIAogLyogTmVzdGVkIFZDUFUgKi8KZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3Zpb2FwaWMuaCBiL3hlbi9pbmNsdWRlL2FzbS14 ODYvaHZtL3Zpb2FwaWMuaAppbmRleCAxMzhkMmMwLi5hNzJjZDE3IDEwMDY0NAotLS0gYS94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS92aW9hcGljLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vdmlvYXBpYy5oCkBAIC01OCw3ICs1OCw3IEBAIHN0cnVjdCBodm1fdmlvYXBpYyB7CiB9Owog CiAjZGVmaW5lIGh2bV92aW9hcGljX3NpemUoY250KSBvZmZzZXRvZihzdHJ1Y3QgaHZtX3Zpb2Fw aWMsIHJlZGlydGJsW2NudF0pCi0jZGVmaW5lIGRvbWFpbl92aW9hcGljKGQsIGkpICgoZCktPmFy Y2guaHZtX2RvbWFpbi52aW9hcGljW2ldKQorI2RlZmluZSBkb21haW5fdmlvYXBpYyhkLCBpKSAo KGQpLT5hcmNoLmh2bS52aW9hcGljW2ldKQogI2RlZmluZSB2aW9hcGljX2RvbWFpbih2KSAoKHYp LT5kb21haW4pCiAKIGludCB2aW9hcGljX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92cHQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYv aHZtL3ZwdC5oCmluZGV4IDYxYzI2ZWQuLjk5MTY5ZGQgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L2FzbS14ODYvaHZtL3ZwdC5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3ZwdC5oCkBA IC0xNTAsOCArMTUwLDggQEAgdm9pZCBwdF9taWdyYXRlKHN0cnVjdCB2Y3B1ICp2KTsKIAogdm9p ZCBwdF9hZGp1c3RfZ2xvYmFsX3ZjcHVfdGFyZ2V0KHN0cnVjdCB2Y3B1ICp2KTsKICNkZWZpbmUg cHRfZ2xvYmFsX3ZjcHVfdGFyZ2V0KGQpIFwKLSAgICAoaXNfaHZtX2RvbWFpbihkKSAmJiAoZCkt PmFyY2guaHZtX2RvbWFpbi5pODI1OV90YXJnZXQgPyBcCi0gICAgIChkKS0+YXJjaC5odm1fZG9t YWluLmk4MjU5X3RhcmdldCA6IFwKKyAgICAoaXNfaHZtX2RvbWFpbihkKSAmJiAoZCktPmFyY2gu aHZtLmk4MjU5X3RhcmdldCA/IFwKKyAgICAgKGQpLT5hcmNoLmh2bS5pODI1OV90YXJnZXQgOiBc CiAgICAgIChkKS0+dmNwdSA/IChkKS0+dmNwdVswXSA6IE5VTEwpCiAKIHZvaWQgcHRfbWF5X3Vu bWFza19pcnEoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IHBlcmlvZGljX3RpbWUgKnZsYXBpY19w dCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2lycS5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9pcnEuaAppbmRleCBkOWRhZDM5Li4wNTRjM2FiIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2lycS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvaXJxLmgKQEAgLTE4 OCw4ICsxODgsNyBAQCB2b2lkIGNsZWFudXBfZG9tYWluX2lycV9tYXBwaW5nKHN0cnVjdCBkb21h aW4gKik7CiAjZGVmaW5lIGRvbWFpbl9waXJxX3RvX2VtdWlycShkLCBwaXJxKSBwaXJxX2ZpZWxk KGQsIHBpcnEsICAgICAgICAgICAgICBcCiAgICAgYXJjaC5odm0uZW11aXJxLCBJUlFfVU5CT1VO RCkKICNkZWZpbmUgZG9tYWluX2VtdWlycV90b19waXJxKGQsIGVtdWlycSkgKHsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICB2b2lkICpfX3JldCA9IHJhZGl4X3RyZWVfbG9va3Vw KCYoZCktPmFyY2guaHZtX2RvbWFpbi5lbXVpcnFfcGlycSwgIFwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVtdWlycSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KyAgICB2b2lkICpfX3JldCA9IHJhZGl4X3RyZWVfbG9va3VwKCYoZCktPmFyY2guaHZtLmVtdWly cV9waXJxLCBlbXVpcnEpO1wKICAgICBfX3JldCA/IHJhZGl4X3RyZWVfcHRyX3RvX2ludChfX3Jl dCkgOiBJUlFfVU5CT1VORDsgICAgICAgICAgICAgICAgIFwKIH0pCiAjZGVmaW5lIElSUV9VTkJP VU5EIC0xCi0tIAoyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2pl Y3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4t ZGV2ZWw=