From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [RFC 1/2] drm/i915: Rename intel_crtc_state->base to hw Date: Fri, 14 Jun 2019 22:21:14 +0200 Message-ID: <20190614202115.14098-2-maarten.lankhorst@linux.intel.com> References: <20190614202115.14098-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id BCEE2892CC for ; Fri, 14 Jun 2019 20:21:19 +0000 (UTC) In-Reply-To: <20190614202115.14098-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhpcyB3aWxsIGFsbG93IHVzIHRvIHByZXBhcmUgZm9yIHNwbGl0dGluZyBvZmYgdWFwaSBhbmQg aHcgc3RhdGUuCgpSZWxldmFudCBzcGF0Y2g6CgpAQApzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq eDsKQEAKLSB4LT5iYXNlCisgeC0+aHcKClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgfCAgMTQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ljbF9kc2kuYyAgICAgICAgICAgIHwgIDE4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9hdG9taWMuYyAgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRv bWljX3BsYW5lLmMgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMg ICAgICAgIHwgIDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9idy5jICAgICAgICAg ICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyAgICAgICAgfCAg IDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICAgICAgIHwgMTQwICsr Ky0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jICAgICAgICAgIHwgIDI0ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgICB8ICAyOCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgICAgfCA0NjcgKysrKysrKysrKyst LS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICAgfCAg NDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICAgICAgIHwgICA2ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGlvX3BoeS5jICAgICB8ICAxNCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyAgICAgfCAgMzYgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kdm8uYyAgICAgICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmJjLmMgICAgICAgICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYyAgICAgICAgIHwgIDYyICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHNwY29uLmMgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMu YyAgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jICAg ICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYyAgICAg fCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgIHwgMTY5 ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYyAgICAgICAgICB8ICAx MCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jICAgICAgICAgfCAgMjIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgIHwgIDI1ICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jICAgICAgICAgICB8ICAgOCArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jICAgICAgICAgfCAgMTAgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L3Zsdl9kc2kuYyAgICAgICAgICAgIHwgIDIwICstCiAzMCBmaWxlcyBjaGFuZ2VkLCA2 MDggaW5zZXJ0aW9ucygrKSwgNjA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMKaW5kZXggMzIzODYzNTA0MTExLi44NzA4NWIxNWUyY2UgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZGVidWdmcy5jCkBAIC0yODI2LDExICsyODI2LDExIEBAIHN0YXRpYyBpbnQgaTkx NV9kaXNwbGF5X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAkJc2Vx X3ByaW50ZihtLCAiQ1JUQyAlZDogcGlwZTogJWMsIGFjdGl2ZT0lcywgKHNpemU9JWR4JWQpLCBk aXRoZXI9JXMsIGJwcD0lZFxuIiwKIAkJCSAgIGNydGMtPmJhc2UuYmFzZS5pZCwgcGlwZV9uYW1l KGNydGMtPnBpcGUpLAotCQkJICAgeWVzbm8ocGlwZV9jb25maWctPmJhc2UuYWN0aXZlKSwKKwkJ CSAgIHllc25vKHBpcGVfY29uZmlnLT5ody5hY3RpdmUpLAogCQkJICAgcGlwZV9jb25maWctPnBp cGVfc3JjX3csIHBpcGVfY29uZmlnLT5waXBlX3NyY19oLAogCQkJICAgeWVzbm8ocGlwZV9jb25m aWctPmRpdGhlciksIHBpcGVfY29uZmlnLT5waXBlX2JwcCk7CiAKLQkJaWYgKHBpcGVfY29uZmln LT5iYXNlLmFjdGl2ZSkgeworCQlpZiAocGlwZV9jb25maWctPmh3LmFjdGl2ZSkgewogCQkJc3Ry dWN0IGludGVsX3BsYW5lICpjdXJzb3IgPQogCQkJCXRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2Uu Y3Vyc29yKTsKIApAQCAtNDI1NCwxMSArNDI1NCwxMSBAQCBzdGF0aWMgaW50IGk5MTVfZHJyc19j dGxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiAKIAkJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2Ny dGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAKLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSB8fAorCQlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fAogCQkgICAgIWNydGNfc3Rh dGUtPmhhc19kcnJzKQogCQkJZ290byBvdXQ7CiAKLQkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+YmFz ZS5jb21taXQ7CisJCWNvbW1pdCA9IGNydGNfc3RhdGUtPmh3LmNvbW1pdDsKIAkJaWYgKGNvbW1p dCkgewogCQkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZjb21taXQt Pmh3X2RvbmUpOwogCQkJaWYgKHJldCkKQEAgLTQyNzAsNyArNDI3MCw3IEBAIHN0YXRpYyBpbnQg aTkxNV9kcnJzX2N0bF9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAkJCXN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyOwogCQkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcDsKIAotCQkJaWYg KCEoY3J0Y19zdGF0ZS0+YmFzZS5jb25uZWN0b3JfbWFzayAmCisJCQlpZiAoIShjcnRjX3N0YXRl LT5ody5jb25uZWN0b3JfbWFzayAmCiAJCQkgICAgICBkcm1fY29ubmVjdG9yX21hc2soY29ubmVj dG9yKSkpCiAJCQkJY29udGludWU7CiAKQEAgLTQzMjksMTQgKzQzMjksMTQgQEAgaTkxNV9maWZv X3VuZGVycnVuX3Jlc2V0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAogCQkJcmV0dXJuIHJldDsK IAogCQljcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShpbnRlbF9jcnRjLT5iYXNlLnN0 YXRlKTsKLQkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+YmFzZS5jb21taXQ7CisJCWNvbW1pdCA9IGNy dGNfc3RhdGUtPmh3LmNvbW1pdDsKIAkJaWYgKGNvbW1pdCkgewogCQkJcmV0ID0gd2FpdF9mb3Jf Y29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZjb21taXQtPmh3X2RvbmUpOwogCQkJaWYgKCFyZXQp CiAJCQkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZjb21taXQtPmZs aXBfZG9uZSk7CiAJCX0KIAotCQlpZiAoIXJldCAmJiBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkg eworCQlpZiAoIXJldCAmJiBjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsKIAkJCURSTV9ERUJVR19L TVMoIlJlLWFybWluZyBGSUZPIHVuZGVycnVucyBvbiBwaXBlICVjXG4iLAogCQkJCSAgICAgIHBp cGVfbmFtZShpbnRlbF9jcnRjLT5waXBlKSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ljbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ljbF9kc2kuYwppbmRleCA3 NDQ0OGU2YmY3NDkuLmRmNjE1ZDM2MTZjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaWNsX2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ljbF9kc2kuYwpAQCAtMjc3 LDcgKzI3Nyw3IEBAIHN0YXRpYyB2b2lkIGNvbmZpZ3VyZV9kdWFsX2xpbmtfbW9kZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluayA9PSBE U0lfRFVBTF9MSU5LX0ZST05UX0JBQ0spIHsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCQl1MzIgZHNzX2N0bDI7 CiAJCXUxNiBoYWN0aXZlID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKIAkJdTE2IGRs X2J1ZmZlcl9kZXB0aDsKQEAgLTYwMSw3ICs2MDEsNyBAQCBnZW4xMV9kc2lfY29uZmlndXJlX3Ry YW5zY29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFz ZSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+aHcuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwogCXUzMiB0bXA7CiAJZW51bSBwb3J0IHBvcnQ7CkBAIC03MzksNyArNzM5 LDcgQEAgZ2VuMTFfZHNpX3NldF90cmFuc2NvZGVyX3RpbWluZ3Moc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWVudW0gcG9ydCBw b3J0OwogCWVudW0gdHJhbnNjb2RlciBkc2lfdHJhbnM7CiAJLyogaG9yaXpvbnRhbCB0aW1pbmdz ICovCkBAIC0xMTgwLDcgKzExODAsNyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZ2V0X3RpbWlu Z3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJ aWYgKGludGVsX2RzaS0+ZHVhbF9saW5rKSB7CiAJCWFkanVzdGVkX21vZGUtPmNydGNfaGRpc3Bs YXkgKj0gMjsKQEAgLTEyMDYsMTYgKzEyMDYsMTYgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2dl dF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5ody5jcnRjKTsK IAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVy LT5iYXNlKTsKIAogCS8qIEZJWE1FOiBhZGFwdCBpY2xfZGRpX2Nsb2NrX2dldCgpIGZvciBEU0kg YW5kIHVzZSB0aGF0PyAqLwogCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0KIAkJY25sX2NhbGNf d3JwbGxfbGluayhkZXZfcHJpdiwgJnBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlKTsKIAotCXBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGludGVsX2RzaS0+cGNs azsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gaW50ZWxfZHNp LT5wY2xrOwogCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykKLQkJcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrICo9IDI7CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlLmNydGNfY2xvY2sgKj0gMjsKIAogCWdlbjExX2RzaV9nZXRfdGltaW5ncyhlbmNvZGVy LCBwaXBlX2NvbmZpZyk7CiAJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxf T1VUUFVUX0RTSSk7CkBAIC0xMjI5LDExICsxMjI5LDExIEBAIHN0YXRpYyBpbnQgZ2VuMTFfZHNp X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBp bnRlbF9kc2kgKmludGVsX2RzaSA9IGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxf ZHNpLAogCQkJCQkJICAgYmFzZSk7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29u bmVjdG9yID0gaW50ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3I7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+aHcuY3J0Yyk7 CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUgPQogCQkJCQlpbnRl bF9jb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGU7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsK KwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJcGlwZV9jb25maWctPm91 dHB1dF9mb3JtYXQgPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JHQjsKIAlpbnRlbF9maXhlZF9wYW5l bF9tb2RlKGZpeGVkX21vZGUsIGFkanVzdGVkX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9h dG9taWMuYwppbmRleCA2Yjk4NWU4OTVhOTcuLjFmODkxYjU1NGVhZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljLmMKQEAgLTE5MCw3ICsxOTAsNyBAQCBpbnRlbF9jcnRjX2R1cGxpY2F0 ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJaWYgKCFjcnRjX3N0YXRlKQogCQlyZXR1 cm4gTlVMTDsKIAotCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVfc3RhdGUoY3J0 YywgJmNydGNfc3RhdGUtPmJhc2UpOworCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNh dGVfc3RhdGUoY3J0YywgJmNydGNfc3RhdGUtPmh3KTsKIAogCWNydGNfc3RhdGUtPnVwZGF0ZV9w aXBlID0gZmFsc2U7CiAJY3J0Y19zdGF0ZS0+ZGlzYWJsZV9scF93bSA9IGZhbHNlOwpAQCAtMjAz LDcgKzIwMyw3IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAljcnRjX3N0YXRlLT5mYl9iaXRzID0gMDsKIAljcnRjX3N0YXRlLT51cGRhdGVfcGxh bmVzID0gMDsKIAotCXJldHVybiAmY3J0Y19zdGF0ZS0+YmFzZTsKKwlyZXR1cm4gJmNydGNfc3Rh dGUtPmh3OwogfQogCiAvKioKQEAgLTMxNCw3ICszMTQsNyBAQCBpbnQgaW50ZWxfYXRvbWljX3Nl dHVwX3NjYWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0cnVjdCBp bnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9jcnRj X3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KIAkJJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0 ZTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRlID0gY3J0Y19zdGF0ZS0+YmFz ZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRlID0gY3J0Y19zdGF0 ZS0+aHcuc3RhdGU7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0 b19pbnRlbF9hdG9taWNfc3RhdGUoZHJtX3N0YXRlKTsKIAlpbnQgbnVtX3NjYWxlcnNfbmVlZDsK IAlpbnQgaTsKQEAgLTM4Miw3ICszODIsNyBAQCBpbnQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxl cnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAqIGJ1dCBzaW5jZSB0 aGlzIHBsYW5lIGlzIHVuY2hhbmdlZCBqdXN0IGRvIHRoZQogCQkJCSAqIG1pbmltdW0gcmVxdWly ZWQgdmFsaWRhdGlvbi4KIAkJCQkgKi8KLQkJCQljcnRjX3N0YXRlLT5iYXNlLnBsYW5lc19jaGFu Z2VkID0gdHJ1ZTsKKwkJCQljcnRjX3N0YXRlLT5ody5wbGFuZXNfY2hhbmdlZCA9IHRydWU7CiAJ CQl9CiAKIAkJCWludGVsX3BsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwppbmRleCA1OGVhMWI2NzJhMWEuLjNjNjQ1 MmY3ZDQ4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3Bs YW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAg LTE3Nyw3ICsxNzcsNyBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjXwogCQlpbnRlbF9wbGFuZV9k YXRhX3JhdGUobmV3X2NydGNfc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7CiAKIAlyZXR1cm4gaW50 ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhvbGRfY3J0Y19zdGF0ZSwKLQkJCQkJICAgICAg ICZuZXdfY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJICAgICAgICZuZXdfY3J0Y19zdGF0ZS0+aHcs CiAJCQkJCSAgICAgICBvbGRfcGxhbmVfc3RhdGUsCiAJCQkJCSAgICAgICAmbmV3X3BsYW5lX3N0 YXRlLT5iYXNlKTsKIH0KQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIGludGVsX3VwZGF0ZV9wbGFu ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAogCXRyYWNlX2ludGVsX3VwZGF0ZV9wbGFu ZSgmcGxhbmUtPmJhc2UsIGNydGMpOwogCXBsYW5lLT51cGRhdGVfcGxhbmUocGxhbmUsIGNydGNf c3RhdGUsIHBsYW5lX3N0YXRlKTsKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIGludGVsX3VwZGF0 ZV9zbGF2ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQkJY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAogCXRyYWNlX2ludGVsX3VwZGF0 ZV9wbGFuZSgmcGxhbmUtPmJhc2UsIGNydGMpOwogCXBsYW5lLT51cGRhdGVfc2xhdmUocGxhbmUs IGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKQEAgLTI3Miw3ICsyNzIsNyBAQCB2b2lkIGludGVs X3VwZGF0ZV9zbGF2ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogdm9pZCBpbnRlbF9kaXNh YmxlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJCQkgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCiAJdHJhY2Vf aW50ZWxfZGlzYWJsZV9wbGFuZSgmcGxhbmUtPmJhc2UsIGNydGMpOwogCXBsYW5lLT5kaXNhYmxl X3BsYW5lKHBsYW5lLCBjcnRjX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCmlu ZGV4IDg0MGRhZmYxMjI0Ni4uM2JlNDI4M2EzMWEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMKQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKIHN0YXRpYyB1 MzIgYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0 Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKGhkbWlfYXVkaW9fY2xvY2spOyBpKyspIHsKQEAgLTIxMyw3ICsyMTMsNyBAQCBz dGF0aWMgaW50IGF1ZGlvX2NvbmZpZ19oZG1pX2dldF9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgIGludCByYXRlKQogewogCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IGk7CiAK IAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShoZG1pX2F1ZF9uY3RzKTsgaSsrKSB7CkBAIC00 OTksNyArNDk5LDcgQEAgc3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5j cnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJZW51bSBwb3J0IHBvcnQgPSBl bmNvZGVyLT5wb3J0OwogCXUzMiB0bXAsIGVsZHY7CkBAIC01NDUsNyArNTQ1LDcgQEAgc3RhdGlj IHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvciA9IGNvbm5fc3RhdGUtPmNvbm5lY3RvcjsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBp cGU7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwpAQCAtNjM0LDEwICs2MzQsMTAg QEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9 IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAllbnVt IHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBl OwogCkBAIC02OTUsNyArNjk1LDcgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50OwotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNf c3RhdGUtPmh3LmNydGMpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2J3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9idy5jCmluZGV4IDc1 M2FjMzE2NTA2MS4uMzJlOTI0YzVjYzU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9idy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2J3LmMKQEAgLTI1 OSw3ICsyNTksNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2J3X2NydGNfbnVtX2FjdGl2 ZV9wbGFuZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdAogCiBzdGF0aWMgdW5zaWduZWQg aW50IGludGVsX2J3X2NydGNfZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAl1bnNpZ25lZCBpbnQgZGF0YV9yYXRl ID0gMDsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkOwogCkBAIC0yODAsNyArMjgwLDcgQEAgc3Rh dGljIHVuc2lnbmVkIGludCBpbnRlbF9id19jcnRjX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y18KIHZvaWQgaW50ZWxfYndfY3J0Y191cGRhdGUoc3RydWN0IGlu dGVsX2J3X3N0YXRlICpid19zdGF0ZSwKIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCiAJYndfc3RhdGUtPmRhdGFfcmF0 ZVtjcnRjLT5waXBlXSA9CiAJCWludGVsX2J3X2NydGNfZGF0YV9yYXRlKGNydGNfc3RhdGUpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKaW5kZXggODk5M2FiMjgzNTYyLi4wZDQ4OWU3YjRi ZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwpAQCAtMjIwMiwxMCArMjIwMiwxMCBA QCBzdGF0aWMgaW50IGludGVsX3BpeGVsX3JhdGVfdG9fY2RjbGsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogaW50IGludGVsX2NydGNfY29tcHV0ZV9taW5fY2RjbGsoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7CisJCXRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAlpbnQgbWluX2NkY2xr OwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3 LmVuYWJsZSkKIAkJcmV0dXJuIDA7CiAKIAltaW5fY2RjbGsgPSBpbnRlbF9waXhlbF9yYXRlX3Rv X2NkY2xrKGRldl9wcml2LCBjcnRjX3N0YXRlLT5waXhlbF9yYXRlKTsKQEAgLTIzMTMsNyArMjMx Myw3IEBAIHN0YXRpYyB1OCBjbmxfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkgICAgICAgc2l6ZW9mKHN0YXRlLT5taW5fdm9sdGFn ZV9sZXZlbCkpOwogCiAJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNy dGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJaWYgKGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQorCQlp ZiAoY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQogCQkJc3RhdGUtPm1pbl92b2x0YWdlX2xldmVsW2ld ID0KIAkJCQljcnRjX3N0YXRlLT5taW5fdm9sdGFnZV9sZXZlbDsKIAkJZWxzZQpAQCAtMjM5OSw3 ICsyMzk5LDcgQEAgc3RhdGljIGludCBza2xfZHBsbDBfdmNvKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogCQl2Y28gPSBkZXZfcHJpdi0+c2tsX3ByZWZlcnJlZF92Y29fZnJlcTsK IAogCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0 YXRlLCBpKSB7Ci0JCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCisJCWlmICghY3J0Y19z dGF0ZS0+aHcuZW5hYmxlKQogCQkJY29udGludWU7CiAKIAkJaWYgKCFpbnRlbF9jcnRjX2hhc190 eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9FRFApKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nv bG9yLmMKaW5kZXggMGI4Y2YzZThjOTYzLi5mMGYzNDk4NGNlMGYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY29sb3IuYwpAQCAtMTAwLDEwICsxMDAsMTAgQEAgc3RhdGljIGJvb2wgbHV0X2lzX2xl Z2FjeShjb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmx1dCkKIAogc3RhdGljIGJvb2wg Y3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiB7Ci0JcmV0dXJuICFjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0ICYm Ci0JCSFjcnRjX3N0YXRlLT5iYXNlLmN0bSAmJgotCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1 dCAmJgotCQlsdXRfaXNfbGVnYWN5KGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0KTsKKwlyZXR1 cm4gIWNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0ICYmCisJCSFjcnRjX3N0YXRlLT5ody5jdG0g JiYKKwkJY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0ICYmCisJCWx1dF9pc19sZWdhY3koY3J0Y19z dGF0ZS0+aHcuZ2FtbWFfbHV0KTsKIH0KIAogLyoKQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMg dm9pZCBpY2xfdXBkYXRlX291dHB1dF9jc2Moc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0 YXRpYyBib29sIGlsa19jc2NfbGltaXRlZF9yYW5nZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CiAK IAkvKgogCSAqIEZJWE1FIGlmIHRoZXJlJ3MgYSBnYW1tYSBMVVQgYWZ0ZXIgdGhlIENTQywgd2Ug c2hvdWxkCkBAIC0yMDIsNyArMjAyLDcgQEAgc3RhdGljIGJvb2wgaWxrX2NzY19saW1pdGVkX3Jh bmdlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHZv aWQgaWxrX2NzY19jb252ZXJ0X2N0bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAkJCQl1MTYgY29lZmZzWzldKQogewotCWNvbnN0IHN0cnVjdCBkcm1fY29sb3Jf Y3RtICpjdG0gPSBjcnRjX3N0YXRlLT5iYXNlLmN0bS0+ZGF0YTsKKwljb25zdCBzdHJ1Y3QgZHJt X2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+aHcuY3RtLT5kYXRhOwogCWNvbnN0IHU2NCAq aW5wdXQ7CiAJdTY0IHRlbXBbOV07CiAJaW50IGk7CkBAIC0yNTMsMTEgKzI1MywxMSBAQCBzdGF0 aWMgdm9pZCBpbGtfY3NjX2NvbnZlcnRfY3RtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgdm9pZCBpbGtfbG9hZF9jc2NfbWF0cml4KGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAlib29sIGxpbWl0ZWRfY29sb3JfcmFuZ2UgPSBpbGtfY3NjX2xpbWl0ZWRfcmFuZ2UoY3J0 Y19zdGF0ZSk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5jdG0pIHsKKwlpZiAoY3J0Y19zdGF0 ZS0+aHcuY3RtKSB7CiAJCXUxNiBjb2VmZls5XTsKIAogCQlpbGtfY3NjX2NvbnZlcnRfY3RtKGNy dGNfc3RhdGUsIGNvZWZmKTsKQEAgLTI5MiwxMCArMjkyLDEwIEBAIHN0YXRpYyB2b2lkIGlsa19s b2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAKIHN0YXRpYyB2b2lkIGljbF9sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCi0JaWYgKGNy dGNfc3RhdGUtPmJhc2UuY3RtKSB7CisJaWYgKGNydGNfc3RhdGUtPmh3LmN0bSkgewogCQl1MTYg Y29lZmZbOV07CiAKIAkJaWxrX2NzY19jb252ZXJ0X2N0bShjcnRjX3N0YXRlLCBjb2VmZik7CkBA IC0zMjEsMTIgKzMyMSwxMiBAQCBzdGF0aWMgdm9pZCBpY2xfbG9hZF9jc2NfbWF0cml4KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogICovCiBzdGF0aWMgdm9pZCBj aGVycnl2aWV3X2xvYWRfY3NjX21hdHJpeChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuY3RtKSB7Ci0JCWNvbnN0IHN0cnVj dCBkcm1fY29sb3JfY3RtICpjdG0gPSBjcnRjX3N0YXRlLT5iYXNlLmN0bS0+ZGF0YTsKKwlpZiAo Y3J0Y19zdGF0ZS0+aHcuY3RtKSB7CisJCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfY3RtICpjdG0g PSBjcnRjX3N0YXRlLT5ody5jdG0tPmRhdGE7CiAJCXUxNiBjb2VmZnNbOV0gPSB7fTsKIAkJaW50 IGk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCBzdGF0aWMgdTMyIGlsa19sdXRfMTAoY29uc3Qgc3Ry dWN0IGRybV9jb2xvcl9sdXQgKmNvbG9yKQogc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50 ZXJuYWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAg IGNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikKIHsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludCBpOwpAQCAtNDE4LDEy ICs0MTgsMTIgQEAgc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhfbG9h ZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWk5 eHhfbG9hZF9sdXRzX2ludGVybmFsKGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFf bHV0KTsKKwlpOXh4X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjX3N0YXRlLCBjcnRjX3N0YXRlLT5o dy5nYW1tYV9sdXQpOwogfQogCiBzdGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB2YWw7CkBAIC00MzYsNyAr NDM2LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGlsa19jb2xvcl9jb21taXQo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdmFsOwpAQCAt NDUxLDcgKzQ1MSw3IEBAIHN0YXRpYyB2b2lkIGlsa19jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGhzd19jb2xvcl9j b21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt Pmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCiAJSTkxNV9XUklURShHQU1NQV9NT0RFKGNydGMtPnBpcGUpLCBj cnRjX3N0YXRlLT5nYW1tYV9tb2RlKTsKQEAgLTQ2MSw3ICs0NjEsNyBAQCBzdGF0aWMgdm9pZCBo c3dfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogCiBzdGF0aWMgdm9pZCBza2xfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbCA9IDA7CkBAIC01MDcsOCArNTA3LDggQEAgc3Rh dGljIHZvaWQgaTk2NV9sb2FkX2x1dF8xMHA2KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBz dGF0aWMgdm9pZCBpOTY1X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKKwljb25zdCBz dHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1h X2x1dDsKIAogCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84 QklUKQogCQlpOXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsKQEAgLTUzMCw4ICs1MzAsOCBAQCBz dGF0aWMgdm9pZCBpbGtfbG9hZF9sdXRfMTAoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0 YXRpYyB2b2lkIGlsa19sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpn YW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CisJY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9s dXQ7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJ VCkKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC02MzEsOSArNjMxLDkgQEAgc3Rh dGljIHZvaWQgaXZiX2xvYWRfbHV0XzEwX21heChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAog c3RhdGljIHZvaWQgaXZiX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OwotCWNvbnN0IHN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFf bHV0OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5ody5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9 IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQ7CiAKIAlpZiAoY3J0 Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkgewogCQlpOXh4X2xv YWRfbHV0cyhjcnRjX3N0YXRlKTsKQEAgLTY1NCw5ICs2NTQsOSBAQCBzdGF0aWMgdm9pZCBpdmJf bG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBz dGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq Z2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0JY29uc3Qgc3RydWN0IGRy bV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9s dXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt Pmh3LmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0g Y3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dDsKIAogCWlmIChjcnRj X3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84QklUKSB7CiAJCWk5eHhfbG9h ZF9sdXRzKGNydGNfc3RhdGUpOwpAQCAtNjc3LDExICs2NzcsMTEgQEAgc3RhdGljIHZvaWQgYmR3 X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAog c3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1tYV9sdXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCB1MzIgbHV0X3NpemUgPSBJTlRFTF9JTkZPKGRldl9w cml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKLQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1 dCAqbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dC0+ZGF0YTsKKwljb25zdCBzdHJ1 Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQtPmRhdGE7 CiAJdTMyIGk7CiAKIAkvKgpAQCAtNzE2LDcgKzcxNiw3IEBAIHN0YXRpYyB2b2lkIGdsa19sb2Fk X2RlZ2FtbWFfbHV0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CiBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCB1MzIgbHV0X3NpemUgPSBJTlRFTF9J TkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKQEAgLTc0Myw4ICs3NDMsOCBA QCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAogCiBzdGF0aWMgdm9pZCBnbGtfbG9hZF9sdXRzKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWNvbnN0IHN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9s dXQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQg PSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCiAJLyoKIAkgKiBPbiBHTEsrIGJv dGggcGlwZSBDU0MgYW5kIGRlZ2FtbWEgTFVUIGFyZSBjb250cm9sbGVkCkBAIC03NTQsNyArNzU0 LDcgQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIAkgKiB0aGUgZGVnYW1hIExVVCBzbyB0aGF0IHdlIGRvbid0IGhh dmUgdG8gcmVsb2FkCiAJICogaXQgZXZlcnkgdGltZSB0aGUgcGlwZSBDU0MgaXMgYmVpbmcgZW5h YmxlZC4KIAkgKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkKKwlpZiAoY3J0 Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpCiAJCWdsa19sb2FkX2RlZ2FtbWFfbHV0KGNydGNfc3Rh dGUpOwogCWVsc2UKIAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFyKGNydGNfc3RhdGUpOwpA QCAtNzY5LDEwICs3NjksMTAgQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaWNsX2xvYWRf bHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQljb25z dCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2Uu Z2FtbWFfbHV0OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2Ft bWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAotCWlmIChjcnRjX3N0 YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCkK IAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXQoY3J0Y19zdGF0ZSk7CiAKIAlpZiAoKGNydGNfc3RhdGUt PmdhbW1hX21vZGUgJiBHQU1NQV9NT0RFX01PREVfTUFTSykgPT0KQEAgLTg0MCw5ICs4NDAsOSBA QCBzdGF0aWMgdm9pZCBjaHZfbG9hZF9jZ21fZ2FtbWEoc3RydWN0IGludGVsX2NydGMgKmNydGMs CiAKIHN0YXRpYyB2b2lkIGNodl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKLQljb25zdCBzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5kZWdh bW1hX2x1dDsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+aHcuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9s dXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0OwogCiAJY2hl cnJ5dmlld19sb2FkX2NzY19tYXRyaXgoY3J0Y19zdGF0ZSk7CiAKQEAgLTg2MCwyOCArODYwLDI4 IEBAIHN0YXRpYyB2b2lkIGNodl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcu Y3J0Yy0+ZGV2KTsKIAogCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfbHV0cyhjcnRjX3N0YXRlKTsK IH0KIAogdm9pZCBpbnRlbF9jb2xvcl9jb21taXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5ody5jcnRjLT5kZXYpOwogCiAJ ZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY29tbWl0KGNydGNfc3RhdGUpOwogfQogCiBpbnQgaW50 ZWxfY29sb3JfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5i YXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjX3N0YXRlLT5ody5jcnRjLT5kZXYpOwogCiAJcmV0dXJuIGRldl9wcml2LT5kaXNw bGF5LmNvbG9yX2NoZWNrKGNydGNfc3RhdGUpOwogfQogCiB2b2lkIGludGVsX2NvbG9yX2dldF9j b25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMt PmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj X3N0YXRlLT5ody5jcnRjLT5kZXYpOwogCiAJaWYgKGRldl9wcml2LT5kaXNwbGF5LnJlYWRfbHV0 cykKIAkJZGV2X3ByaXYtPmRpc3BsYXkucmVhZF9sdXRzKGNydGNfc3RhdGUpOwpAQCAtOTA1LDE2 ICs5MDUsMTYgQEAgc3RhdGljIGJvb2wgbmVlZF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSwKIHN0YXRpYyBpbnQKIGludGVsX2NvbG9yX2FkZF9hZmZlY3RlZF9wbGFuZXMo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUt Pmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJ dG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9f aW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5ody5zdGF0ZSk7CiAJY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0KIAkJaW50ZWxfYXRvbWljX2dl dF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZTsKIAotCWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8Ci0JICAgIGRybV9hdG9t aWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpCisJaWYgKCFuZXdf Y3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CisJICAgIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rl c2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpKQogCQlyZXR1cm4gMDsKIAogCWlmIChuZXdfY3J0Y19z dGF0ZS0+Z2FtbWFfZW5hYmxlID09IG9sZF9jcnRjX3N0YXRlLT5nYW1tYV9lbmFibGUgJiYKQEAg LTk1Niw5ICs5NTYsOSBAQCBzdGF0aWMgaW50IGNoZWNrX2x1dF9zaXplKGNvbnN0IHN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqbHV0LCBpbnQgZXhwZWN0ZWQpCiAKIHN0YXRpYyBpbnQgY2hlY2tf bHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9 IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlf YmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0OworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0 Yy0+ZGV2KTsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNy dGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQ7CiAJaW50IGdhbW1hX2xl bmd0aCwgZGVnYW1tYV9sZW5ndGg7CiAJdTMyIGdhbW1hX3Rlc3RzLCBkZWdhbW1hX3Rlc3RzOwog CkBAIC0xMDA2LDcgKzEwMDYsNyBAQCBzdGF0aWMgaW50IGk5eHhfY29sb3JfY2hlY2soc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCXJldHVybiByZXQ7CiAKIAljcnRjX3N0 YXRlLT5nYW1tYV9lbmFibGUgPQotCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCAmJgorCQlj cnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgJiYKIAkJIWNydGNfc3RhdGUtPmM4X3BsYW5lczsKIAog CWNydGNfc3RhdGUtPmdhbW1hX21vZGUgPSBpOXh4X2dhbW1hX21vZGUoY3J0Y19zdGF0ZSk7CkBA IC0xMDI1LDExICsxMDI1LDExIEBAIHN0YXRpYyB1MzIgY2h2X2NnbV9tb2RlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWlmIChjcnRjX3N0YXRlX2lzX2xlZ2Fj eV9nYW1tYShjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFz ZS5kZWdhbW1hX2x1dCkKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpCiAJCWNnbV9t b2RlIHw9IENHTV9QSVBFX01PREVfREVHQU1NQTsKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5jdG0p CisJaWYgKGNydGNfc3RhdGUtPmh3LmN0bSkKIAkJY2dtX21vZGUgfD0gQ0dNX1BJUEVfTU9ERV9D U0M7Ci0JaWYgKGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0KQorCWlmIChjcnRjX3N0YXRlLT5o dy5nYW1tYV9sdXQpCiAJCWNnbV9tb2RlIHw9IENHTV9QSVBFX01PREVfR0FNTUE7CiAKIAlyZXR1 cm4gY2dtX21vZGU7CkBAIC0xMDg4LDcgKzEwODgsNyBAQCBzdGF0aWMgaW50IGlsa19jb2xvcl9j aGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsK IAogCWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFf bHV0ICYmCisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCQkhY3J0Y19zdGF0ZS0+Yzhf cGxhbmVzOwogCiAJLyoKQEAgLTExMTQsOCArMTExNCw4IEBAIHN0YXRpYyB1MzIgaXZiX2dhbW1h X21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKCFj cnRjX3N0YXRlLT5nYW1tYV9lbmFibGUgfHwKIAkgICAgY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2Ft bWEoY3J0Y19zdGF0ZSkpCiAJCXJldHVybiBHQU1NQV9NT0RFX01PREVfOEJJVDsKLQllbHNlIGlm IChjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCAmJgotCQkgY3J0Y19zdGF0ZS0+YmFzZS5kZWdh bW1hX2x1dCkKKwllbHNlIGlmIChjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgJiYKKwkJIGNydGNf c3RhdGUtPmh3LmRlZ2FtbWFfbHV0KQogCQlyZXR1cm4gR0FNTUFfTU9ERV9NT0RFX1NQTElUOwog CWVsc2UKIAkJcmV0dXJuIEdBTU1BX01PREVfTU9ERV8xMEJJVDsKQEAgLTExMjksNyArMTEyOSw3 IEBAIHN0YXRpYyB1MzIgaXZiX2NzY19tb2RlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogCSAqIENTQyBjb21lcyBhZnRlciB0aGUgTFVUIGluIGRlZ2FtbWEsIFJH Qi0+WUNiQ3IsCiAJICogYW5kIFJHQiBmdWxsLT5saW1pdGVkIHJhbmdlIG1vZGUuCiAJICovCi0J aWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQgfHwKKwlpZiAoY3J0Y19zdGF0ZS0+aHcu ZGVnYW1tYV9sdXQgfHwKIAkgICAgY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCAhPSBJTlRFTF9P VVRQVVRfRk9STUFUX1JHQiB8fAogCSAgICBsaW1pdGVkX2NvbG9yX3JhbmdlKQogCQlyZXR1cm4g MDsKQEAgLTExNDcsMTMgKzExNDcsMTMgQEAgc3RhdGljIGludCBpdmJfY29sb3JfY2hlY2soc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCXJldHVybiByZXQ7CiAKIAljcnRj X3N0YXRlLT5nYW1tYV9lbmFibGUgPQotCQkoY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgfHwK LQkJIGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpICYmCisJCShjcnRjX3N0YXRlLT5ody5n YW1tYV9sdXQgfHwKKwkJIGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0KSAmJgogCQkhY3J0Y19z dGF0ZS0+YzhfcGxhbmVzOwogCiAJY3J0Y19zdGF0ZS0+Y3NjX2VuYWJsZSA9CiAJCWNydGNfc3Rh dGUtPm91dHB1dF9mb3JtYXQgIT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0IgfHwKLQkJY3J0Y19z dGF0ZS0+YmFzZS5jdG0gfHwgbGltaXRlZF9jb2xvcl9yYW5nZTsKKwkJY3J0Y19zdGF0ZS0+aHcu Y3RtIHx8IGxpbWl0ZWRfY29sb3JfcmFuZ2U7CiAKIAljcnRjX3N0YXRlLT5nYW1tYV9tb2RlID0g aXZiX2dhbW1hX21vZGUoY3J0Y19zdGF0ZSk7CiAKQEAgLTExODQsMTQgKzExODQsMTQgQEAgc3Rh dGljIGludCBnbGtfY29sb3JfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiAJCXJldHVybiByZXQ7CiAKIAljcnRjX3N0YXRlLT5nYW1tYV9lbmFibGUgPQotCQljcnRj X3N0YXRlLT5iYXNlLmdhbW1hX2x1dCAmJgorCQljcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgJiYK IAkJIWNydGNfc3RhdGUtPmM4X3BsYW5lczsKIAogCS8qIE9uIEdMSysgZGVnYW1tYSBMVVQgaXMg Y29udHJvbGxlZCBieSBjc2NfZW5hYmxlICovCiAJY3J0Y19zdGF0ZS0+Y3NjX2VuYWJsZSA9Ci0J CWNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQgfHwKKwkJY3J0Y19zdGF0ZS0+aHcuZGVnYW1t YV9sdXQgfHwKIAkJY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCAhPSBJTlRFTF9PVVRQVVRfRk9S TUFUX1JHQiB8fAotCQljcnRjX3N0YXRlLT5iYXNlLmN0bSB8fCBjcnRjX3N0YXRlLT5saW1pdGVk X2NvbG9yX3JhbmdlOworCQljcnRjX3N0YXRlLT5ody5jdG0gfHwgY3J0Y19zdGF0ZS0+bGltaXRl ZF9jb2xvcl9yYW5nZTsKIAogCWNydGNfc3RhdGUtPmdhbW1hX21vZGUgPSBnbGtfZ2FtbWFfbW9k ZShjcnRjX3N0YXRlKTsKIApAQCAtMTIwOCwxNCArMTIwOCwxNCBAQCBzdGF0aWMgdTMyIGljbF9n YW1tYV9tb2RlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewog CXUzMiBnYW1tYV9tb2RlID0gMDsKIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0 KQorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCkKIAkJZ2FtbWFfbW9kZSB8PSBQUkVf Q1NDX0dBTU1BX0VOQUJMRTsKIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCAmJgor CWlmIChjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgJiYKIAkgICAgIWNydGNfc3RhdGUtPmM4X3Bs YW5lcykKIAkJZ2FtbWFfbW9kZSB8PSBQT1NUX0NTQ19HQU1NQV9FTkFCTEU7CiAKLQlpZiAoIWNy dGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0IHx8CisJaWYgKCFjcnRjX3N0YXRlLT5ody5nYW1tYV9s dXQgfHwKIAkgICAgY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoY3J0Y19zdGF0ZSkpCiAJCWdh bW1hX21vZGUgfD0gR0FNTUFfTU9ERV9NT0RFXzhCSVQ7CiAJZWxzZQpAQCAtMTIyOCw3ICsxMjI4 LDcgQEAgc3RhdGljIHUzMiBpY2xfY3NjX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7CiAJdTMyIGNzY19tb2RlID0gMDsKIAotCWlmIChjcnRjX3N0YXRl LT5iYXNlLmN0bSkKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKQogCQljc2NfbW9kZSB8PSBJQ0xf Q1NDX0VOQUJMRTsKIAogCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ICE9IElOVEVMX09V VFBVVF9GT1JNQVRfUkdCIHx8CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCmluZGV4IDNmY2YyZjg0 YmNjZS4uZDBjODczOWU3ZTRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jcnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwpAQCAtMTMyLDkg KzEzMiw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydF9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogewogCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElO VEVMX09VVFBVVF9BTkFMT0cpOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5m bGFncyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVuY29kZXIpOworCXBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGludGVsX2NydF9nZXRfZmxhZ3MoZW5jb2Rlcik7CiAKLQlw aXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+ cG9ydF9jbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0g cGlwZV9jb25maWctPnBvcnRfY2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGhzd19jcnRfZ2V0X2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKQEAgLTE0NCwxMyArMTQ0LDEzIEBA IHN0YXRpYyB2b2lkIGhzd19jcnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAogCWludGVsX2RkaV9nZXRfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIAot CXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJj0gfihEUk1fTU9ERV9GTEFH X1BIU1lOQyB8CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJj0gfihEUk1f TU9ERV9GTEFHX1BIU1lOQyB8CiAJCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwKIAkJ CQkJICAgICAgRFJNX01PREVfRkxBR19QVlNZTkMgfAogCQkJCQkgICAgICBEUk1fTU9ERV9GTEFH X05WU1lOQyk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBpbnRl bF9jcnRfZ2V0X2ZsYWdzKGVuY29kZXIpOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl LmZsYWdzIHw9IGludGVsX2NydF9nZXRfZmxhZ3MoZW5jb2Rlcik7CiAKLQlwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBscHRfZ2V0X2ljbGtpcChkZXZfcHJpdik7 CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGxwdF9nZXRfaWNs a2lwKGRldl9wcml2KTsKIH0KIAogLyogTm90ZTogVGhlIGNhbGxlciBpcyByZXF1aXJlZCB0byBm aWx0ZXIgb3V0IGRwbXMgbW9kZXMgbm90IHN1cHBvcnRlZCBieSB0aGUKQEAgLTE2MSw4ICsxNjEs OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRfc2V0X2RwbXMoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2NydCAqY3J0ID0gaW50ZWxfZW5j b2Rlcl90b19jcnQoZW5jb2Rlcik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5j cnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBhZHBhOwogCiAJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPj0gNSkKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgdm9pZCBoc3dfcHJl X2VuYWJsZV9jcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmh3LmNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAogCVdBUk5fT04o IWNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2Rlcik7CkBAIC0yODgsNyArMjg4LDcgQEAgc3RhdGlj IHZvaWQgaHN3X2VuYWJsZV9jcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkg ICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCiAJV0FS Tl9PTighY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVyKTsKQEAgLTM1OCw3ICszNTgsNyBAQCBz dGF0aWMgaW50IGludGVsX2NydF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp CiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlOwogCiAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FO KQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgaW50IHBjaF9j cnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAlpZiAoYWRqdXN0 ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCiAJCXJldHVybiAtRUlOVkFM OwpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyBpbnQgaHN3X2NydF9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAlpZiAoYWRqdXN0 ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCiAJCXJldHVybiAtRUlOVkFM OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwppbmRleCA3OTI1YTE3NmY5MDAuLjJhNzhmMGI2YmEy ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKQEAgLTE0NzcsNyArMTQ3Nyw3IEBAIHN0YXRp YyB2b2lkIGRkaV9kb3RjbG9ja19nZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQogCWlmIChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJZG90Y2xvY2sgLz0g cGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZS5jcnRjX2Nsb2NrID0gZG90Y2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9kZGlf Y2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLApAQCAtMTY5MSw3ICsxNjkx LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAogdm9pZCBpbnRlbF9kZGlfc2V0X3BpcGVfc2V0dGluZ3MoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp OwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyOwogCXUzMiB0ZW1wOwpAQCAtMTc0NSw3ICsxNzQ1LDcgQEAgdm9pZCBpbnRlbF9kZGlf c2V0X3BpcGVfc2V0dGluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgICAgYm9vbCBzdGF0ZSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19z dGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAJdTMyIHRlbXA7CkBAIC0xNzYwLDcgKzE3NjAsNyBAQCB2 b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJf ZnVuYyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ aHcuY3J0Yyk7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRlbF9kZGlfZ2V0 X2NydGNfZW5jb2RlcihjcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 CkBAIC0xNzg5LDkgKzE3ODksOSBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9m dW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQlCVUcoKTsK IAl9CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01P REVfRkxBR19QVlNZTkMpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKIAkJdGVtcCB8PSBUUkFOU19ERElfUFZTWU5DOwotCWlm IChjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BI U1lOQykKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RF X0ZMQUdfUEhTWU5DKQogCQl0ZW1wIHw9IFRSQU5TX0RESV9QSFNZTkM7CiAKIAlpZiAoY3B1X3Ry YW5zY29kZXIgPT0gVFJBTlNDT0RFUl9FRFApIHsKQEAgLTE4NDQsNyArMTg0NCw3IEBAIHZvaWQg aW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rlcl9m dW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5o dy5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0 YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAlpOTE1X3JlZ190IHJlZyA9IFRSQU5TX0RESV9GVU5DX0NU TChjcHVfdHJhbnNjb2Rlcik7CkBAIC0yMTE2LDcgKzIxMTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kZGlfZ2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAK IHZvaWQgaW50ZWxfZGRpX2VuYWJsZV9waXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0Y19lbmNvZGVyKGNydGMpOwog CWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKQEAgLTIxMjksNyArMjEyOSw3IEBAIHZv aWQgaW50ZWxfZGRpX2VuYWJsZV9waXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogCiB2b2lkIGludGVsX2RkaV9kaXNhYmxlX3BpcGVfY2xvY2soY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT5ody5jcnRjLT5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNy dGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCiAJaWYgKGNwdV90cmFuc2NvZGVyICE9IFRSQU5T Q09ERVJfRURQKQpAQCAtMzIxMiw3ICszMjEyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3By ZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC0zNzM1LDcgKzM3MzUsNyBAQCB2b2lkIGlu dGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhw aXBlX2NvbmZpZy0+aHcuY3J0Yyk7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g cGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0OwogCXUzMiB0ZW1wLCBmbGFncyA9IDA7CkBAIC0zNzU0LDcgKzM3NTQs NyBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCWVsc2UKIAkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OVlNZTkM7CiAKLQlwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOworCXBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJc3dpdGNoICh0ZW1wICYgVFJBTlNf RERJX0JQQ19NQVNLKSB7CiAJY2FzZSBUUkFOU19ERElfQlBDXzY6CkBAIC0zODg0LDcgKzM4ODQs NyBAQCBzdGF0aWMgaW50IGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBv cnQ7CiAJaW50IHJldDsKQEAgLTQwNDYsNyArNDA0Niw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRt aV9yZXNldF9saW5rKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJV0FSTl9PTigh aW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpOwogCi0J aWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2 ZSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIWNydGNfc3RhdGUtPmhkbWlfaGlnaF90bWRzX2Nsb2Nr X3JhdGlvICYmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZTY4MWVkOTlj ZGYyLi45YWEyNzNmYjU0MTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAg LTYzMCw3ICs2MzAsNyBAQCBpOXh4X3NlbGVjdF9wMl9kaXYoY29uc3Qgc3RydWN0IGludGVsX2xp bWl0ICpsaW1pdCwKIAkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCSAgIGludCB0YXJnZXQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5ody5jcnRjLT5kZXYp OwogCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xW RFMpKSB7CiAJCS8qCkBAIC02NjYsNyArNjY2LDcgQEAgaTl4eF9maW5kX2Jlc3RfZHBsbChjb25z dCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAogCQkgICAgaW50IHRhcmdldCwgaW50IHJlZmNs aywgc3RydWN0IGRwbGwgKm1hdGNoX2Nsb2NrLAogCQkgICAgc3RydWN0IGRwbGwgKmJlc3RfY2xv Y2spCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5ody5jcnRjLT5kZXY7 CiAJc3RydWN0IGRwbGwgY2xvY2s7CiAJaW50IGVyciA9IHRhcmdldDsKIApAQCAtNzI0LDcgKzcy NCw3IEBAIHBudl9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0 LAogCQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ss CiAJCSAgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcGxsIGNsb2NrOwogCWludCBl cnIgPSB0YXJnZXQ7CiAKQEAgLTc4MCw3ICs3ODAsNyBAQCBnNHhfZmluZF9iZXN0X2RwbGwoY29u c3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNs aywgc3RydWN0IGRwbGwgKm1hdGNoX2Nsb2NrLAogCQkgICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9j aykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5k ZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmh3LmNydGMtPmRldjsK IAlzdHJ1Y3QgZHBsbCBjbG9jazsKIAlpbnQgbWF4X247CiAJYm9vbCBmb3VuZCA9IGZhbHNlOwpA QCAtODc0LDcgKzg3NCw3IEBAIHZsdl9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxf bGltaXQgKmxpbWl0LAogCQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAq bWF0Y2hfY2xvY2ssCiAJCSAgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5j cnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0 IGRwbGwgY2xvY2s7CiAJdW5zaWduZWQgaW50IGJlc3RwcG0gPSAxMDAwMDAwOwpAQCAtOTM0LDcg KzkzNCw3IEBAIGNodl9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxp bWl0LAogCQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xv Y2ssCiAJCSAgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJdW5zaWduZWQgaW50IGJl c3RfZXJyb3JfcHBtOwogCXN0cnVjdCBkcGxsIGNsb2NrOwpAQCAtMTAxMyw3ICsxMDEzLDcgQEAg Ym9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkgKiBmb3Ig YXRvbWljLgogCSAqLwogCXJldHVybiBjcnRjLT5hY3RpdmUgJiYgY3J0Yy0+YmFzZS5wcmltYXJ5 LT5zdGF0ZS0+ZmIgJiYKLQkJY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19j bG9jazsKKwkJY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiB9CiAK IGVudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEwNjcsNyArMTA2Nyw3IEBAIHN0YXRpYyB2b2lk IGludGVsX3dhaXRfZm9yX3BpcGVfc2NhbmxpbmVfbW92aW5nKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQogc3RhdGljIHZvaWQKIGludGVsX3dhaXRfZm9yX3BpcGVfb2ZmKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5jcnRj KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKQEAgLTE1MzMsNyAr MTUzMyw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfZW5hYmxlX3BsbChzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKIAogc3RhdGljIHZvaWQgaTl4eF9kaXNhYmxlX3BsbChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBw aXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC0xNjI1LDcgKzE2MjUsNyBAQCB2b2lkIHZsdl93 YWl0X3BvcnRfcmVhZHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9lbmFibGVfcGNoX3RyYW5zY29kZXIoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190IHJlZzsKQEAgLTE3NzcsNyArMTc3 Nyw3IEBAIGVudW0gcGlwZSBpbnRlbF9jcnRjX3BjaF90cmFuc2NvZGVyKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQogCiBzdGF0aWMgdTMyIGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPmh3LmNydGMtPmRldik7CiAKIAkvKgogCSAqIE9uIGk5NjVnbSB0aGUgaGFyZHdhcmUgZnJh bWUgY291bnRlciByZWFkcwpAQCAtMTc5Nyw3ICsxNzk3LDcgQEAgc3RhdGljIHUzMiBpbnRlbF9j cnRjX21heF92YmxhbmtfY291bnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUKIAogc3RhdGljIHZvaWQgaW50ZWxfY3J0Y192Ymxhbmtfb24oY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCiAJZHJtX2Ny dGNfc2V0X21heF92YmxhbmtfY291bnQoJmNydGMtPmJhc2UsCiAJCQkJICAgICAgaW50ZWxfY3J0 Y19tYXhfdmJsYW5rX2NvdW50KGNydGNfc3RhdGUpKTsKQEAgLTE4MDYsNyArMTgwNiw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2NydGNfdmJsYW5rX29uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfcGlwZShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+ aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gbmV3X2Ny dGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK QEAgLTE4NjQsNyArMTg2NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9waXBlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQg aW50ZWxfZGlzYWJsZV9waXBlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xk X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29k ZXIgY3B1X3RyYW5zY29kZXIgPSBvbGRfY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtMzEyOCwxNCArMzEyOCwxNCBAQCBpbnRlbF9z ZXRfcGxhbmVfdmlzaWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlw bGFuZV9zdGF0ZS0+YmFzZS52aXNpYmxlID0gdmlzaWJsZTsKIAogCWlmICh2aXNpYmxlKQotCQlj cnRjX3N0YXRlLT5iYXNlLnBsYW5lX21hc2sgfD0gZHJtX3BsYW5lX21hc2soJnBsYW5lLT5iYXNl KTsKKwkJY3J0Y19zdGF0ZS0+aHcucGxhbmVfbWFzayB8PSBkcm1fcGxhbmVfbWFzaygmcGxhbmUt PmJhc2UpOwogCWVsc2UKLQkJY3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9tYXNrICY9IH5kcm1fcGxh bmVfbWFzaygmcGxhbmUtPmJhc2UpOworCQljcnRjX3N0YXRlLT5ody5wbGFuZV9tYXNrICY9IH5k cm1fcGxhbmVfbWFzaygmcGxhbmUtPmJhc2UpOwogfQogCiBzdGF0aWMgdm9pZCBmaXh1cF9hY3Rp dmVfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAog CS8qCkBAIC0zMTQ2LDcgKzMxNDYsNyBAQCBzdGF0aWMgdm9pZCBmaXh1cF9hY3RpdmVfcGxhbmVz KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWNydGNfc3RhdGUtPmFjdGl2 ZV9wbGFuZXMgPSAwOwogCiAJZHJtX2Zvcl9lYWNoX3BsYW5lX21hc2socGxhbmUsICZkZXZfcHJp di0+ZHJtLAotCQkJCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzaykKKwkJCQljcnRjX3N0YXRl LT5ody5wbGFuZV9tYXNrKQogCQljcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzIHw9IEJJVCh0b19p bnRlbF9wbGFuZShwbGFuZSktPmlkKTsKIH0KIApAQCAtMzU4OCw3ICszNTg4LDcgQEAgaTl4eF9w bGFuZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAKIHN0YXRpYyB1MzIg aTl4eF9wbGFuZV9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGRzcGNudHIgPSAwOwogCkBAIC0z NzI1LDcgKzM3MjUsNyBAQCBpOXh4X3BsYW5lX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gcmV0OwogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJf Y2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19zdGF0 ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPmh3LAogCQkJCQkJICBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkcsCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJ CQkJCSAgZmFsc2UsIHRydWUpOwpAQCAtMzg5Niw3ICszODk2LDcgQEAgc3RhdGljIHZvaWQgc2ts X2RldGFjaF9zY2FsZXIoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIGludCBpZCkKICAq Lwogc3RhdGljIHZvaWQgc2tsX2RldGFjaF9zY2FsZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAljb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9CiAJCSZjcnRj X3N0YXRlLT5zY2FsZXJfc3RhdGU7CiAJaW50IGk7CkBAIC00MDkxLDcgKzQwOTEsNyBAQCBzdGF0 aWMgdTMyIGNubF9wbGFuZV9jdGxfZmxpcCh1bnNpZ25lZCBpbnQgcmVmbGVjdCkKIAogdTMyIHNr bF9wbGFuZV9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CiAJdTMyIHBsYW5lX2N0bCA9 IDA7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCB8fCBJU19HRU1JTklMQUtFKGRl dl9wcml2KSkKQEAgLTQxNDcsNyArNDE0Nyw3IEBAIHUzMiBza2xfcGxhbmVfY3RsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiB1MzIgZ2xrX3BsYW5lX2NvbG9y X2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAl1MzIgcGxhbmVfY29sb3JfY3RsID0g MDsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQpAQCAtNDM2OCwxMSArNDM2OCwx MSBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X3BpcGVfY2hpY2tlbihzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkJICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+aHcuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CiAKIAkvKiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRf c3RhdGUgbWlnaHQgbm90IGJlIGNhbGxlZC4gKi8KLQljcnRjLT5iYXNlLm1vZGUgPSBuZXdfY3J0 Y19zdGF0ZS0+YmFzZS5tb2RlOworCWNydGMtPmJhc2UubW9kZSA9IG5ld19jcnRjX3N0YXRlLT5o dy5tb2RlOwogCiAJLyoKIAkgKiBVcGRhdGUgcGlwZSBzaXplIGFuZCBhZGp1c3QgZml0dGVyIGlm IG5lZWRlZDogdGhlIHJlYXNvbiBmb3IgdGhpcyBpcwpAQCAtNDgwMSw3ICs0ODAxLDcgQEAgc3Rh dGljIHZvaWQgaXZiX21hbnVhbF9mZGlfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAogc3RhdGljIHZvaWQgaXJvbmxha2VfZmRpX3BsbF9lbmFibGUoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0 Yy0+YmFzZS5kZXYpOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190 IHJlZzsKQEAgLTQ5NjIsOSArNDk2Miw5IEBAIHZvaWQgbHB0X2Rpc2FibGVfaWNsa2lwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIC8qIFByb2dyYW0gaUNMS0lQIGNsb2NrIHRv IHRoZSBkZXNpcmVkIGZyZXF1ZW5jeSAqLwogc3RhdGljIHZvaWQgbHB0X3Byb2dyYW1faWNsa2lw KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5j cnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKLQlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUu Y3J0Y19jbG9jazsKKwlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2s7CiAJdTMyIGRpdnNlbCwgcGhhc2VpbmMsIGF1eGRpdiwgcGhhc2VkaXIgPSAwOwog CXUzMiB0ZW1wOwogCkBAIC01MDc4LDcgKzUwNzgsNyBAQCBpbnQgbHB0X2dldF9pY2xraXAoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQgaXJvbmxha2VfcGNo X3RyYW5zY29kZXJfc2V0X3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJCQkJCQllbnVtIHBpcGUgcGNoX3RyYW5zY29kZXIpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUt PmNwdV90cmFuc2NvZGVyOwogCkBAIC01MTIxLDcgKzUxMjEsNyBAQCBzdGF0aWMgdm9pZCBjcHRf c2V0X2ZkaV9iY19iaWZ1cmNhdGlvbihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGJvb2wgZQogCiBzdGF0aWMgdm9pZCBpdnlicmlkZ2VfdXBkYXRlX2ZkaV9iY19iaWZ1cmNhdGlv bihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcu Y3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CiAKIAlzd2l0Y2ggKGNydGMtPnBpcGUpIHsKQEAgLTUxNTEsNyArNTE1MSw3 IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqCiBpbnRlbF9nZXRfY3J0Y19uZXdfZW5j b2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCSAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsK IAljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwogCWNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CiAJc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIgPSBOVUxMOwpAQCAtNTE4Myw3ICs1MTgzLDcgQEAgaW50ZWxfZ2V0X2NydGNf bmV3X2VuY29kZXIoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9wY2hfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFz ZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OwogCWludCBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTUyMzcsNyArNTIzNyw3IEBAIHN0YXRpYyB2 b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCiAJaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSAmJgogCSAgICBpbnRlbF9jcnRjX2hh c19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJdTMyIGJwYyA9IChJOTE1X1JF QUQoUElQRUNPTkYocGlwZSkpICYgUElQRUNPTkZfQlBDX01BU0spID4+IDU7CiAJCWk5MTVfcmVn X3QgcmVnID0gVFJBTlNfRFBfQ1RMKHBpcGUpOwogCQllbnVtIHBvcnQgcG9ydDsKQEAgLTUyNjcs NyArNTI2Nyw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoY29uc3Qgc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBscHRfcGNoX2VuYWJsZShj b25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCSAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK IAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNj b2RlcjsKIApAQCAtNTM4NCwxMCArNTM4NCwxMCBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCiAJc3RydWN0 IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpzY2FsZXJfc3RhdGUgPQogCQkmY3J0Y19zdGF0ZS0+ c2NhbGVyX3N0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0KLQkJdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCQl0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJ JmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAKIAkvKgogCSAqIFNyYyBjb29yZGluYXRl cyBhcmUgYWxyZWFkeSByb3RhdGVkIGJ5IDI3MCBkZWdyZWVzIGZvcgpAQCAtNTQwMyw3ICs1NDAz LDcgQEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsIGJvb2wgZm9yY2VfZGV0YWNoLAogCSAqIE9uY2UgTlYxMiBpcyBlbmFibGVkLCBoYW5kbGUg aXQgaGVyZSB3aGlsZSBhbGxvY2F0aW5nIHNjYWxlcgogCSAqIGZvciBOVjEyLgogCSAqLwotCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgJiYgY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgJiYK KwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmIGNydGNfc3RhdGUtPmh3LmVuYWJsZSAm JgogCSAgICBuZWVkX3NjYWxlciAmJiBhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZM QUdfSU5URVJMQUNFKSB7CiAJCURSTV9ERUJVR19LTVMoIlBpcGUvUGxhbmUgc2NhbGluZyBub3Qg c3VwcG9ydGVkIHdpdGggSUYtSUQgbW9kZVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNTQ3 NSwxMyArNTQ3NSwxMyBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCiAgKi8KIGludCBza2xfdXBkYXRlX3Nj YWxlcl9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKLQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZzdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0g JnN0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWJvb2wgbmVlZF9zY2FsZXIgPSBmYWxzZTsKIAog CWlmIChzdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIw KQogCQluZWVkX3NjYWxlciA9IHRydWU7CiAKLQlyZXR1cm4gc2tsX3VwZGF0ZV9zY2FsZXIoc3Rh dGUsICFzdGF0ZS0+YmFzZS5hY3RpdmUsIFNLTF9DUlRDX0lOREVYLAorCXJldHVybiBza2xfdXBk YXRlX3NjYWxlcihzdGF0ZSwgIXN0YXRlLT5ody5hY3RpdmUsIFNLTF9DUlRDX0lOREVYLAogCQkJ CSAmc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJfaWQsCiAJCQkJIHN0YXRlLT5waXBlX3NyY193 LCBzdGF0ZS0+cGlwZV9zcmNfaCwKIAkJCQkgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSwK QEAgLTU1ODEsNyArNTU4MSw3IEBAIHN0YXRpYyB2b2lkIHNreWxha2Vfc2NhbGVyX2Rpc2FibGUo c3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0YXRpYyB2b2lkIHNreWxha2VfcGZpdF9lbmFi bGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3 LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9CkBAIC01NjE4LDcgKzU2 MTgsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Vu YWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAJaW50IHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC01NjM5LDcgKzU2 MzksNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogdm9pZCBoc3dfZW5hYmxlX2lwcyhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIApAQCAtNTY3Nyw3ICs1Njc3LDcg QEAgdm9pZCBoc3dfZW5hYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAogdm9pZCBoc3dfZGlzYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAKQEAgLTU3ODksMTMgKzU3ODksMTMgQEAgaW50ZWxfcHJlX2Rp c2FibGVfcHJpbWFyeV9ub2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiBzdGF0aWMgYm9v bCBoc3dfcHJlX3VwZGF0ZV9kaXNhYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAog CWlmICghb2xkX2NydGNfc3RhdGUtPmlwc19lbmFibGVkKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlp ZiAobmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKQorCWlmIChuZWVkc19tb2Rl c2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCS8qCkBAIC01ODA1 LDcgKzU4MDUsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcHJlX3VwZGF0ZV9kaXNhYmxlX2lwcyhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfcwogCSAqIERpc2FibGUgSVBTIGJl Zm9yZSB3ZSBwcm9ncmFtIHRoZSBMVVQuCiAJICovCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYp ICYmCi0JICAgIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKKwkg ICAgKG5ld19jcnRjX3N0YXRlLT5ody5jb2xvcl9tZ210X2NoYW5nZWQgfHwKIAkgICAgIG5ld19j cnRjX3N0YXRlLT51cGRhdGVfcGlwZSkgJiYKIAkgICAgbmV3X2NydGNfc3RhdGUtPmdhbW1hX21v ZGUgPT0gR0FNTUFfTU9ERV9NT0RFX1NQTElUKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTU4MTYsMTMg KzU4MTYsMTMgQEAgc3RhdGljIGJvb2wgaHN3X3ByZV91cGRhdGVfZGlzYWJsZV9pcHMoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3MKIHN0YXRpYyBib29sIGhzd19wb3N0 X3VwZGF0ZV9lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSwKIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhu ZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYgKCFuZXdf Y3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQpCiAJCXJldHVybiBmYWxzZTsKIAotCWlmIChuZWVkc19t b2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpCisJaWYgKG5lZWRzX21vZGVzZXQoJm5ld19j cnRjX3N0YXRlLT5odykpCiAJCXJldHVybiB0cnVlOwogCiAJLyoKQEAgLTU4MzIsNyArNTgzMiw3 IEBAIHN0YXRpYyBib29sIGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zCiAJICogUmUtZW5hYmxlIElQUyBhZnRlciB0aGUg TFVUIGhhcyBiZWVuIHByb2dyYW1tZWQuCiAJICovCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYp ICYmCi0JICAgIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKKwkg ICAgKG5ld19jcnRjX3N0YXRlLT5ody5jb2xvcl9tZ210X2NoYW5nZWQgfHwKIAkgICAgIG5ld19j cnRjX3N0YXRlLT51cGRhdGVfcGlwZSkgJiYKIAkgICAgbmV3X2NydGNfc3RhdGUtPmdhbW1hX21v ZGUgPT0gR0FNTUFfTU9ERV9NT0RFX1NQTElUKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTU4NDIsNyAr NTg0Miw3IEBAIHN0YXRpYyBib29sIGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zCiAJICogZm9yY2libHkgZW5hYmxlIElQ UyBvbiB0aGUgZmlyc3QgZmFzdHNldC4KIAkgKi8KIAlpZiAobmV3X2NydGNfc3RhdGUtPnVwZGF0 ZV9waXBlICYmCi0JICAgIG9sZF9jcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUucHJpdmF0 ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKKwkgICAgb2xkX2NydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRF RCkKIAkJcmV0dXJuIHRydWU7CiAKIAlyZXR1cm4gIW9sZF9jcnRjX3N0YXRlLT5pcHNfZW5hYmxl ZDsKQEAgLTU4NzMsMTAgKzU4NzMsMTAgQEAgc3RhdGljIGJvb2wgbmVlZHNfc2NhbGVyY2xrX3dh KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgaW50ZWxf cG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMob2xkX2NydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSA9IG9sZF9jcnRj X3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUg PSBvbGRfY3J0Y19zdGF0ZS0+aHcuc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnID0KIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZSh0b19pbnRlbF9h dG9taWNfc3RhdGUob2xkX3N0YXRlKSwKIAkJCQkJCWNydGMpOwpAQCAtNTg4Niw3ICs1ODg2LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCiAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcCh0b19pOTE1 KGNydGMtPmJhc2UuZGV2KSwgcGlwZV9jb25maWctPmZiX2JpdHMpOwogCi0JaWYgKHBpcGVfY29u ZmlnLT51cGRhdGVfd21fcG9zdCAmJiBwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUpCisJaWYgKHBp cGVfY29uZmlnLT51cGRhdGVfd21fcG9zdCAmJiBwaXBlX2NvbmZpZy0+aHcuYWN0aXZlKQogCQlp bnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKIAogCWlmIChoc3dfcG9zdF91cGRhdGVfZW5h YmxlX2lwcyhvbGRfY3J0Y19zdGF0ZSwgcGlwZV9jb25maWcpKQpAQCAtNTg5OSw3ICs1ODk5LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCQlpbnRlbF9mYmNfcG9zdF91cGRhdGUoY3J0Yyk7CiAK IAkJaWYgKG5ld19wcmltYXJ5X3N0YXRlLT52aXNpYmxlICYmCi0JCSAgICAobmVlZHNfbW9kZXNl dCgmcGlwZV9jb25maWctPmJhc2UpIHx8CisJCSAgICAobmVlZHNfbW9kZXNldCgmcGlwZV9jb25m aWctPmh3KSB8fAogCQkgICAgICFvbGRfcHJpbWFyeV9zdGF0ZS0+dmlzaWJsZSkpCiAJCQlpbnRl bF9wb3N0X2VuYWJsZV9wcmltYXJ5KCZjcnRjLT5iYXNlLCBwaXBlX2NvbmZpZyk7CiAJfQpAQCAt NTkxNiwxNCArNTkxNiwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpbnRl bF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0 Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2Uu ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK LQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlID0gb2xkX2NydGNfc3RhdGUtPmJh c2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSA9IG9sZF9jcnRj X3N0YXRlLT5ody5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0Yy0+YmFz ZS5wcmltYXJ5OwogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wcmltYXJ5X3N0YXRlID0K IAkJZHJtX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKG9sZF9zdGF0ZSwgcHJpbWFyeSk7Ci0J Ym9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldCgmcGlwZV9jb25maWctPmJhc2UpOworCWJvb2wg bW9kZXNldCA9IG5lZWRzX21vZGVzZXQoJnBpcGVfY29uZmlnLT5odyk7CiAJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqb2xkX2ludGVsX3N0YXRlID0KIAkJdG9faW50ZWxfYXRvbWljX3N0YXRl KG9sZF9zdGF0ZSk7CiAKQEAgLTU5NjQsNyArNTk2NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3By ZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAog CSAqIGV2ZW50IHdoaWNoIGlzIGFmdGVyIHRoZSB2Ymxhbmsgc3RhcnQgZXZlbnQsIHNvIHdlIG5l ZWQgdG8gaGF2ZSBhCiAJICogd2FpdC1mb3ItdmJsYW5rIGJldHdlZW4gZGlzYWJsaW5nIHRoZSBw bGFuZSBhbmQgdGhlIHBpcGUuCiAJICovCi0JaWYgKEhBU19HTUNIKGRldl9wcml2KSAmJiBvbGRf Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYKKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpICYmIG9s ZF9jcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYKIAkgICAgcGlwZV9jb25maWctPmRpc2FibGVfY3hz ciAmJiBpbnRlbF9zZXRfbWVtb3J5X2N4c3IoZGV2X3ByaXYsIGZhbHNlKSkKIAkJaW50ZWxfd2Fp dF9mb3JfdmJsYW5rKGRldl9wcml2LCBjcnRjLT5waXBlKTsKIApAQCAtNTk3NiwxNCArNTk3Niwx NCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkgKiBXYUN4U1JEaXNhYmxlZEZvclNwcml0ZVNjYWxp bmc6aXZiCiAJICovCiAJaWYgKHBpcGVfY29uZmlnLT5kaXNhYmxlX2xwX3dtICYmIGlsa19kaXNh YmxlX2xwX3dtKGRldikgJiYKLQkgICAgb2xkX2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCSAg ICBvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2 X3ByaXYsIGNydGMtPnBpcGUpOwogCiAJLyoKIAkgKiBJZiB3ZSdyZSBkb2luZyBhIG1vZGVzZXQs IHdlJ3JlIGRvbmUuICBObyBuZWVkIHRvIGRvIGFueSBwcmUtdmJsYW5rCiAJICogd2F0ZXJtYXJr IHByb2dyYW1taW5nIGhlcmUuCiAJICovCi0JaWYgKG5lZWRzX21vZGVzZXQoJnBpcGVfY29uZmln LT5iYXNlKSkKKwlpZiAobmVlZHNfbW9kZXNldCgmcGlwZV9jb25maWctPmh3KSkKIAkJcmV0dXJu OwogCiAJLyoKQEAgLTYxNzksNyArNjE3OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJz X3VwZGF0ZV9waXBlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogc3RhdGljIHZvaWQgaW50ZWxf ZGlzYWJsZV9wcmltYXJ5X3BsYW5lKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0g dG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsKIAogCXBsYW5lLT5kaXNhYmxlX3Bs YW5lKHBsYW5lLCBjcnRjX3N0YXRlKTsKQEAgLTYxODgsNyArNjE4OCw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0CiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpvbGRfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJh c2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+aHcuY3J0YzsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC02MzE4LDcgKzYzMTgsNyBAQCBzdGF0 aWMgdm9pZCBpY2xfcGlwZV9tYnVzX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHN0 YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLAogCQkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7Ci0J c3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJhc2UuY3J0YzsKKwlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+aHcuY3J0YzsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCWludCBwaXBlID0gaW50ZWxf Y3J0Yy0+cGlwZSwgaHN3X3dvcmthcm91bmRfcGlwZTsKQEAgLTY0MjksNyArNjQyOSw3IEBAIHN0 YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLAogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmh3 LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtNjQ0NSw3 ICs2NDQ1LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGlyb25sYWtl X2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJ CQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQogewotCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRj ICpjcnRjID0gb2xkX2NydGNfc3RhdGUtPmh3LmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGMpOwpAQCAtNjUwNCw3ICs2NTA0LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19k aXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIHN0YXRpYyB2 b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSwKIAkJCQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKIHsKLQlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOworCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT5ody5jcnRjOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJZW51bSB0cmFuc2Nv ZGVyIGNwdV90cmFuc2NvZGVyID0gb2xkX2NydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwpAQCAt NjUzOCw3ICs2NTM4LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCiBzdGF0aWMgdm9pZCBpOXh4X3Bm aXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCWlmICghY3J0Y19zdGF0ZS0+Z21jaF9wZml0LmNvbnRy b2wpCkBAIC02NjQzLDcgKzY2NDMsNyBAQCBzdGF0aWMgdTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFp bnMoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCXU2NCBtYXNrOwogCWVudW0gdHJhbnNjb2RlciB0 cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAKLQlpZiAoIWNydGNfc3Rh dGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm4g MDsKIAogCW1hc2sgPSBCSVRfVUxMKFBPV0VSX0RPTUFJTl9QSVBFKHBpcGUpKTsKQEAgLTY2NTIs NyArNjY1Miw3IEBAIHN0YXRpYyB1NjQgZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJICAgIGNydGNfc3RhdGUtPnBjaF9wZml0LmZvcmNlX3RocnUpCiAJCW1h c2sgfD0gQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9QQU5FTF9GSVRURVIocGlwZSkpOwogCi0J ZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBkZXYsIGNydGNfc3RhdGUtPmJhc2Uu ZW5jb2Rlcl9tYXNrKSB7CisJZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBkZXYs IGNydGNfc3RhdGUtPmh3LmVuY29kZXJfbWFzaykgewogCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoZW5jb2Rlcik7CiAKIAkJbWFzayB8PSBC SVRfVUxMKGludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbik7CkBAIC02NzAyLDcgKzY3MDIsNyBA QCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZywKIHsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfaW50 ZWxfc3RhdGUgPQogCQl0b19pbnRlbF9hdG9taWNfc3RhdGUob2xkX3N0YXRlKTsKLQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5ody5jcnRjOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjKTsKQEAgLTY3NTksNyArNjc1OSw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19l bmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCiBzdGF0aWMgdm9p ZCBpOXh4X3NldF9wbGxfZGl2aWRlcnMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJSTkxNV9XUklURShGUDAoY3J0 Yy0+cGlwZSksIGNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGUuZnAwKTsKQEAgLTY3NzEsNyArNjc3 MSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnLAogewogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKm9sZF9pbnRl bF9zdGF0ZSA9CiAJCXRvX2ludGVsX2F0b21pY19zdGF0ZShvbGRfc3RhdGUpOwotCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRj ICpjcnRjID0gcGlwZV9jb25maWctPmh3LmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGMpOwpAQCAtNjgyMSw3ICs2ODIxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAKIHN0YXRpYyB2b2lkIGk5eHhf cGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKG9sZF9jcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCWlmICghb2xkX2NydGNfc3Rh dGUtPmdtY2hfcGZpdC5jb250cm9sKQpAQCAtNjgzNyw3ICs2ODM3LDcgQEAgc3RhdGljIHZvaWQg aTl4eF9wZml0X2Rpc2FibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRj X3N0YXRlKQogc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJICAgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUg Km9sZF9zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT5ody5j cnRjOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKQEAgLTcwMjYsNyArNzAyNiw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2Nvbm5lY3Rvcl92ZXJpZnlfc3RhdGUoc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50IHBpcGVfcmVxdWlyZWRfZmRpX2xhbmVz KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWlmIChjcnRjX3N0YXRl LT5iYXNlLmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCisJaWYgKGNydGNf c3RhdGUtPmh3LmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCiAJCXJldHVy biBjcnRjX3N0YXRlLT5mZGlfbGFuZXM7CiAKIAlyZXR1cm4gMDsKQEAgLTcwMzYsNyArNzAzNiw3 IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIGVudW0gcGlwZSBwaXBlLAogCQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZp Zy0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2Nv bmZpZy0+aHcuc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKm90aGVyX2NydGM7CiAJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm90aGVyX2NydGNfc3RhdGU7CiAKQEAgLTcxMDksNyArNzEwOSw3 IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjLAogCQkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2NydGMtPmJhc2Uu ZGV2OwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJ aW50IGxhbmUsIGxpbmtfYncsIGZkaV9kb3RjbG9jaywgcmV0OwogCWJvb2wgbmVlZHNfcmVjb21w dXRlID0gZmFsc2U7CiAKQEAgLTcxNTUsNyArNzE1NSw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2Vf ZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCiBib29s IGhzd19jcnRjX3N0YXRlX2lwc19jYXBhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCS8qIElQUyBvbmx5IGV4 aXN0cyBvbiBVTFQgbWFjaGluZXMgYW5kIGlzIHRpZWQgdG8gcGlwZSBBLiAqLwpAQCAtNzE4NSw5 ICs3MTg1LDkgQEAgYm9vbCBoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyBib29sIGhzd19jb21wdXRlX2lw c19jb25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJdG9faTkxNShjcnRjX3N0YXRlLT5iYXNl LmNydGMtPmRldik7CisJCXRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19z dGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNy dGNfc3RhdGUtPmh3LnN0YXRlKTsKIAogCWlmICghaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFibGUo Y3J0Y19zdGF0ZSkpCiAJCXJldHVybiBmYWxzZTsKQEAgLTcyMjYsNyArNzIyNiw3IEBAIHN0YXRp YyB1MzIgaWxrX3BpcGVfcGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcpCiB7CiAJdTMyIHBpeGVsX3JhdGU7CiAKLQlwaXhlbF9yYXRlID0gcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCXBpeGVsX3JhdGUgPSBwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCiAJLyoKIAkgKiBXZSBvbmx5 IHVzZSBJRi1JRCBpbnRlcmxhY2luZy4gSWYgd2UgZXZlciB1c2UKQEAgLTcyNTksMTIgKzcyNTks MTIgQEAgc3RhdGljIHUzMiBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAogc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19jb21wdXRl X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNl LmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjX3N0YXRlLT5ody5jcnRjLT5kZXYpOwogCiAJaWYgKEhBU19HTUNIKGRldl9wcml2KSkK IAkJLyogRklYTUUgY2FsY3VsYXRlIHByb3BlciBwaXBlIHBpeGVsIHJhdGUgZm9yIEdNQ0ggcGZp dCAqLwogCQljcnRjX3N0YXRlLT5waXhlbF9yYXRlID0KLQkJCWNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCQkJY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX2Nsb2NrOwogCWVsc2UKIAkJY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSA9CiAJCQlpbGtfcGlw ZV9waXhlbF9yYXRlKGNydGNfc3RhdGUpOwpAQCAtNzI3NCw3ICs3Mjc0LDcgQEAgc3RhdGljIGlu dCBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJ CSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IGNsb2Nr X2xpbWl0ID0gZGV2X3ByaXYtPm1heF9kb3RjbGtfZnJlcTsKIAogCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpIDwgNCkgewpAQCAtNzMwMCw3ICs3MzAwLDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRj X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJaWYgKChwaXBlX2Nv bmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwIHx8CiAJ ICAgICBwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lD QkNSNDQ0KSAmJgotCSAgICAgcGlwZV9jb25maWctPmJhc2UuY3RtKSB7CisJICAgICBwaXBlX2Nv bmZpZy0+aHcuY3RtKSB7CiAJCS8qCiAJCSAqIFRoZXJlIGlzIG9ubHkgb25lIHBpcGUgQ1NDIHVu aXQgcGVyIHBpcGUsIGFuZCB3ZSBuZWVkIHRoYXQKIAkJICogZm9yIG91dHB1dCBjb252ZXJzaW9u IGZyb20gUkdCLT5ZQ0JDUi4gU28gaWYgQ1RNIGlzIGFscmVhZHkKQEAgLTc0NjksNyArNzQ2OSw3 IEBAIHN0YXRpYyB2b2lkIHZsdl9wbGxiX3JlY2FsX29wYW1wKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlCiBzdGF0aWMgdm9pZCBpbnRlbF9wY2hfdHJhbnNjb2Rl cl9zZXRfbV9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJ CQkgY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24pCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtNzQ5Niw3ICs3NDk2LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfY3B1X3RyYW5zY29kZXJfc2V0X21fbihjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGEKIAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9saW5r X21fbiAqbV9uLAogCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptMl9uMikKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWVu dW0gdHJhbnNjb2RlciB0cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CkBA IC03ODA5LDcgKzc4MDksNyBAQCBpbnQgdmx2X2ZvcmNlX3BsbF9vbihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlLAogCWlmICghcGlwZV9jb25maWcpCiAJ CXJldHVybiAtRU5PTUVNOwogCi0JcGlwZV9jb25maWctPmJhc2UuY3J0YyA9ICZjcnRjLT5iYXNl OworCXBpcGVfY29uZmlnLT5ody5jcnRjID0gJmNydGMtPmJhc2U7CiAJcGlwZV9jb25maWctPnBp eGVsX211bHRpcGxpZXIgPSAxOwogCXBpcGVfY29uZmlnLT5kcGxsID0gKmRwbGw7CiAKQEAgLTc5 NjksMTEgKzc5NjksMTEgQEAgc3RhdGljIHZvaWQgaTh4eF9jb21wdXRlX2RwbGwoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3RpbWluZ3MoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAllbnVtIHRyYW5zY29kZXIg Y3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKLQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1MzIgY3J0Y192dG90YWwsIGNy dGNfdmJsYW5rX2VuZDsKIAlpbnQgdnN5bmNzaGlmdCA9IDA7CiAKQEAgLTgwMzEsNyArODAzMSw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3Ny Y19zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKQEAgLTgw NTIsMzkgKzgwNTIsMzkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZ2V0X3BpcGVfdGltaW5ncyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAl1MzIgdG1wOwogCiAJdG1wID0gSTkxNV9SRUFEKEhUT1RB TChjcHVfdHJhbnNjb2RlcikpOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0 Y19oZGlzcGxheSA9ICh0bXAgJiAweGZmZmYpICsgMTsKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlLmNydGNfaHRvdGFsID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CisJcGlw ZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheSA9ICh0bXAgJiAweGZmZmYp ICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCA9ICgodG1w ID4+IDE2KSAmIDB4ZmZmZikgKyAxOwogCiAJaWYgKCF0cmFuc2NvZGVyX2lzX2RzaShjcHVfdHJh bnNjb2RlcikpIHsKIAkJdG1wID0gSTkxNV9SRUFEKEhCTEFOSyhjcHVfdHJhbnNjb2RlcikpOwot CQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX3N0YXJ0ID0KKwkJ cGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQgPQogCQkJCQkJ CSh0bXAgJiAweGZmZmYpICsgMTsKLQkJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5j cnRjX2hibGFua19lbmQgPQorCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hi bGFua19lbmQgPQogCQkJCQkJKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAJfQogCXRtcCA9 IEk5MTVfUkVBRChIU1lOQyhjcHVfdHJhbnNjb2RlcikpOwotCXBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y19oc3luY19zdGFydCA9ICh0bXAgJiAweGZmZmYpICsgMTsKLQlwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfZW5kID0gKCh0bXAgPj4gMTYp ICYgMHhmZmZmKSArIDE7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19oc3lu Y19zdGFydCA9ICh0bXAgJiAweGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZS5jcnRjX2hzeW5jX2VuZCA9ICgodG1wID4+IDE2KSAmIDB4ZmZmZikgKyAxOwogCiAJdG1w ID0gSTkxNV9SRUFEKFZUT1RBTChjcHVfdHJhbnNjb2RlcikpOwotCXBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheSA9ICh0bXAgJiAweGZmZmYpICsgMTsKLQlwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsID0gKCh0bXAgPj4gMTYpICYg MHhmZmZmKSArIDE7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxh eSA9ICh0bXAgJiAweGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX3Z0b3RhbCA9ICgodG1wID4+IDE2KSAmIDB4ZmZmZikgKyAxOwogCiAJaWYgKCF0cmFuc2Nv ZGVyX2lzX2RzaShjcHVfdHJhbnNjb2RlcikpIHsKIAkJdG1wID0gSTkxNV9SRUFEKFZCTEFOSyhj cHVfdHJhbnNjb2RlcikpOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf dmJsYW5rX3N0YXJ0ID0KKwkJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192Ymxh bmtfc3RhcnQgPQogCQkJCQkJCSh0bXAgJiAweGZmZmYpICsgMTsKLQkJcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19lbmQgPQorCQlwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX3ZibGFua19lbmQgPQogCQkJCQkJKCh0bXAgPj4gMTYpICYgMHhmZmZm KSArIDE7CiAJfQogCXRtcCA9IEk5MTVfUkVBRChWU1lOQyhjcHVfdHJhbnNjb2RlcikpOwotCXBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192c3luY19zdGFydCA9ICh0bXAgJiAw eGZmZmYpICsgMTsKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNf ZW5kID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CisJcGlwZV9jb25maWctPmh3LmFkanVz dGVkX21vZGUuY3J0Y192c3luY19zdGFydCA9ICh0bXAgJiAweGZmZmYpICsgMTsKKwlwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX2VuZCA9ICgodG1wID4+IDE2KSAmIDB4 ZmZmZikgKyAxOwogCiAJaWYgKEk5MTVfUkVBRChQSVBFQ09ORihjcHVfdHJhbnNjb2RlcikpICYg UElQRUNPTkZfSU5URVJMQUNFX01BU0spIHsKLQkJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZS5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRTsKLQkJcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3Z0b3RhbCArPSAxOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5rX2VuZCArPSAxOworCQlwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRTsKKwkJcGlwZV9jb25m aWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192dG90YWwgKz0gMTsKKwkJcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGUuY3J0Y192YmxhbmtfZW5kICs9IDE7CiAJfQogfQogCkBAIC04MDk5LDI3 ICs4MDk5LDI3IEBAIHN0YXRpYyB2b2lkIGludGVsX2dldF9waXBlX3NyY19zaXplKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAogCXBpcGVfY29uZmlnLT5waXBlX3NyY19oID0gKHRtcCAmIDB4ZmZm ZikgKyAxOwogCXBpcGVfY29uZmlnLT5waXBlX3NyY193ID0gKCh0bXAgPj4gMTYpICYgMHhmZmZm KSArIDE7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5tb2RlLnZkaXNwbGF5ID0gcGlwZV9jb25maWct PnBpcGVfc3JjX2g7Ci0JcGlwZV9jb25maWctPmJhc2UubW9kZS5oZGlzcGxheSA9IHBpcGVfY29u ZmlnLT5waXBlX3NyY193OworCXBpcGVfY29uZmlnLT5ody5tb2RlLnZkaXNwbGF5ID0gcGlwZV9j b25maWctPnBpcGVfc3JjX2g7CisJcGlwZV9jb25maWctPmh3Lm1vZGUuaGRpc3BsYXkgPSBwaXBl X2NvbmZpZy0+cGlwZV9zcmNfdzsKIH0KIAogdm9pZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25m aWcoc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiAJCQkJIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZykKIHsKLQltb2RlLT5oZGlzcGxheSA9IHBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheTsKLQltb2RlLT5odG90YWwgPSBwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOwotCW1vZGUtPmhzeW5jX3N0YXJ0 ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0OwotCW1v ZGUtPmhzeW5jX2VuZCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oc3lu Y19lbmQ7CisJbW9kZS0+aGRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX2hkaXNwbGF5OworCW1vZGUtPmh0b3RhbCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlLmNydGNfaHRvdGFsOworCW1vZGUtPmhzeW5jX3N0YXJ0ID0gcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGUuY3J0Y19oc3luY19zdGFydDsKKwltb2RlLT5oc3luY19lbmQgPSBwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX2VuZDsKIAotCW1vZGUtPnZkaXNwbGF5 ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OwotCW1vZGUt PnZ0b3RhbCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192dG90YWw7Ci0J bW9kZS0+dnN5bmNfc3RhcnQgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf dnN5bmNfc3RhcnQ7Ci0JbW9kZS0+dnN5bmNfZW5kID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX3ZzeW5jX2VuZDsKKwltb2RlLT52ZGlzcGxheSA9IHBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlLmNydGNfdmRpc3BsYXk7CisJbW9kZS0+dnRvdGFsID0gcGlwZV9jb25m aWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192dG90YWw7CisJbW9kZS0+dnN5bmNfc3RhcnQgPSBw aXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0YXJ0OworCW1vZGUtPnZz eW5jX2VuZCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5kOwog Ci0JbW9kZS0+ZmxhZ3MgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzOwor CW1vZGUtPmZsYWdzID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3M7CiAJbW9k ZS0+dHlwZSA9IERSTV9NT0RFX1RZUEVfRFJJVkVSOwogCi0JbW9kZS0+Y2xvY2sgPSBwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CisJbW9kZS0+Y2xvY2sgPSBwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCiAJbW9kZS0+aHN5bmMgPSBk cm1fbW9kZV9oc3luYyhtb2RlKTsKIAltb2RlLT52cmVmcmVzaCA9IGRybV9tb2RlX3ZyZWZyZXNo KG1vZGUpOwpAQCAtODEyOCw3ICs4MTI4LDcgQEAgdm9pZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9j b25maWcoc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhf c2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAl1MzIgcGlwZWNvbmY7CiAKQEAgLTgxNjUsNyArODE2 NSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQl9CiAJfQogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2Uu YWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSB7CisJaWYgKGNy dGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFD RSkgewogCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQgfHwKIAkJICAgIGludGVsX2NydGNf aGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX1NEVk8pKQogCQkJcGlwZWNvbmYgfD0g UElQRUNPTkZfSU5URVJMQUNFX1dfRklFTERfSU5ESUNBVElPTjsKQEAgLTg1OTcsNyArODU5Nyw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2dldF9jcnRjX3ljYmNyX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAogc3RhdGljIHZvaWQgaTl4eF9nZXRfcGlwZV9jb2xvcl9jb25maWcoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1h cnkpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lID0gcGxhbmUtPmk5eHhf cGxhbmU7CkBAIC04NzIwLDcgKzg3MjAsNyBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkgKiBidXQgaW4gY2FzZSB0aGUgcGlwZSBp cyBlbmFibGVkIHcvbyBhbnkgcG9ydHMgd2UgbmVlZCBhIHNhbmUKIAkgKiBkZWZhdWx0LgogCSAq LwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CisJcGlwZV9j b25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CiAJCXBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrIC8gcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKIAlyZXQgPSB0cnVlOwpA QCAtOTIzNSw3ICs5MjM1LDcgQEAgdm9pZCBpbnRlbF9pbml0X3BjaF9yZWZjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlw ZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt Pmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdmFs OwpAQCAtOTI2Myw3ICs5MjYzLDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vfc2V0X3BpcGVjb25m KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWlmIChjcnRjX3N0 YXRlLT5kaXRoZXIpCiAJCXZhbCB8PSAoUElQRUNPTkZfRElUSEVSX0VOIHwgUElQRUNPTkZfRElU SEVSX1RZUEVfU1ApOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFn cyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXZhbCB8PSBQSVBFQ09O Rl9JTlRFUkxBQ0VEX0lMSzsKIAllbHNlCiAJCXZhbCB8PSBQSVBFQ09ORl9QUk9HUkVTU0lWRTsK QEAgLTkyNzksNyArOTI3OSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3NldF9waXBlY29uZihj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQg aGFzd2VsbF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJh bnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCXUzMiB2YWwgPSAwOwpAQCAt OTI4Nyw3ICs5Mjg3LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcGlwZWNvbmYoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKElTX0hBU1dFTEwoZGV2 X3ByaXYpICYmIGNydGNfc3RhdGUtPmRpdGhlcikKIAkJdmFsIHw9IChQSVBFQ09ORl9ESVRIRVJf RU4gfCBQSVBFQ09ORl9ESVRIRVJfVFlQRV9TUCk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCisJaWYgKGNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkK IAkJdmFsIHw9IFBJUEVDT05GX0lOVEVSTEFDRURfSUxLOwogCWVsc2UKIAkJdmFsIHw9IFBJUEVD T05GX1BST0dSRVNTSVZFOwpAQCAtOTI5OCw3ICs5Mjk4LDcgQEAgc3RhdGljIHZvaWQgaGFzd2Vs bF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAKIHN0YXRpYyB2b2lkIGJkd19zZXRfcGlwZW1pc2MoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXUzMiB2YWwgPSAw OwogCkBAIC05ODk4LDcgKzk4OTgsNyBAQCBzdGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRl X2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUt PmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+aHcuc3Rh dGUpOwogCiAJaWYgKCFpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBV VF9EU0kpIHx8CiAJICAgIElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKQEAgLTEwNDI4LDcg KzEwNDI4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jaGVja19jdXJzb3Ioc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hl Y2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19zdGF0ZS0+ YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPmh3LAogCQkJCQkJICBEUk1fUExBTkVfSEVMUEVS X05PX1NDQUxJTkcsCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJCQkJ CSAgdHJ1ZSwgdHJ1ZSk7CkBAIC0xMDYxMSw3ICsxMDYxMSw3IEBAIGk5eHhfY3Vyc29yX21heF9z dHJpZGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAogc3RhdGljIHUzMiBpOXh4X2N1cnNv cl9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGNudGwgPSAwOwogCkBAIC0xMTAxOCwxMiArMTEw MTgsMTIgQEAgaW50IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCiAJCWdvdG8gZmFpbDsKIAl9CiAKLQljcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlID0gdHJ1ZTsKKwljcnRjX3N0YXRlLT5ody5h Y3RpdmUgPSBjcnRjX3N0YXRlLT5ody5lbmFibGUgPSB0cnVlOwogCiAJaWYgKCFtb2RlKQogCQlt b2RlID0gJmxvYWRfZGV0ZWN0X21vZGU7CiAKLQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX2Zv cl9jcnRjKCZjcnRjX3N0YXRlLT5iYXNlLCBtb2RlKTsKKwlyZXQgPSBkcm1fYXRvbWljX3NldF9t b2RlX2Zvcl9jcnRjKCZjcnRjX3N0YXRlLT5odywgbW9kZSk7CiAJaWYgKHJldCkKIAkJZ290byBm YWlsOwogCkBAIC0xMTIzMSw3ICsxMTIzMSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9j bG9ja19nZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJICogd2UgbWF5IG5lZWQgc29tZSBp ZGVhIGZvciB0aGUgZG90Y2xvY2sgYW55d2F5LgogCSAqIENhbGN1bGF0ZSBvbmUgYmFzZWQgb24g dGhlIEZESSBjb25maWd1cmF0aW9uLgogCSAqLwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuY3J0Y19jbG9jayA9CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19j bG9jayA9CiAJCWludGVsX2RvdGNsb2NrX2NhbGN1bGF0ZShpbnRlbF9mZGlfbGlua19mcmVxKGRl dl9wcml2LCBwaXBlX2NvbmZpZyksCiAJCQkJCSAmcGlwZV9jb25maWctPmZkaV9tX24pOwogfQpA QCAtMTEyNjEsNyArMTEyNjEsNyBAQCBpbnRlbF9lbmNvZGVyX2N1cnJlbnRfbW9kZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7CisJY3J0Y19zdGF0ZS0+aHcuY3J0YyA9ICZjcnRj LT5iYXNlOwogCiAJaWYgKCFkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0Yywg Y3J0Y19zdGF0ZSkpIHsKIAkJa2ZyZWUoY3J0Y19zdGF0ZSk7CkBAIC0xMTMzOSw3ICsxMTMzOSw3 IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNy dGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7CiAJYm9vbCBtb2RlX2NoYW5nZWQgPSBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpOwotCWJv b2wgd2FzX2NydGNfZW5hYmxlZCA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZTsKKwlib29s IHdhc19jcnRjX2VuYWJsZWQgPSBvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCWJvb2wgaXNf Y3J0Y19lbmFibGVkID0gY3J0Y19zdGF0ZS0+YWN0aXZlOwogCWJvb2wgdHVybl9vZmYsIHR1cm5f b24sIHZpc2libGUsIHdhc192aXNpYmxlOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0g cGxhbmVfc3RhdGUtPmZiOwpAQCAtMTE1MTgsOSArMTE1MTgsOSBAQCBzdGF0aWMgaW50IGljbF9h ZGRfbGlua2VkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogc3Rh dGljIGludCBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3Rh dGUpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKGNydGNfc3RhdGUtPmh3LnN0YXRlKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l LCAqbGlua2VkOwogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CiAJaW50 IGk7CkBAIC0xMTU5MCw5ICsxMTU5MCw5IEBAIHN0YXRpYyBpbnQgaWNsX2NoZWNrX252MTJfcGxh bmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgYm9vbCBj OF9wbGFuZXNfY2hhbmdlZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19j cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPmJh c2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPmh3LnN0 YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQog CQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIApAQCAtMTE3 NTMsNyArMTE3NTMsNyBAQCBjb21wdXRlX2Jhc2VsaW5lX3BpcGVfYnBwKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAogCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPmJh c2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWct Pmh3LnN0YXRlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CiAJc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKIAlpbnQgYnBwLCBpOwpAQCAtMTE5 MDYsNyArMTE5MDYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQkgICBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBjb25zdCBjaGFyICpjb250ZXh0KQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9j b25maWctPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq cGxhbmVfc3RhdGU7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKQEAgLTExOTE1LDE0ICsx MTkxNSwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogCURSTV9ERUJVR19LTVMoIltDUlRD OiVkOiVzXSBlbmFibGU6ICVzICVzXG4iLAogCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNy dGMtPmJhc2UubmFtZSwKLQkJICAgICAgeWVzbm8ocGlwZV9jb25maWctPmJhc2UuZW5hYmxlKSwg Y29udGV4dCk7CisJCSAgICAgIHllc25vKHBpcGVfY29uZmlnLT5ody5lbmFibGUpLCBjb250ZXh0 KTsKIAotCWlmICghcGlwZV9jb25maWctPmJhc2UuZW5hYmxlKQorCWlmICghcGlwZV9jb25maWct Pmh3LmVuYWJsZSkKIAkJZ290byBkdW1wX3BsYW5lczsKIAogCXNucHJpbnRmX291dHB1dF90eXBl cyhidWYsIHNpemVvZihidWYpLCBwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzKTsKIAlEUk1fREVC VUdfS01TKCJhY3RpdmU6ICVzLCBvdXRwdXRfdHlwZXM6ICVzICgweCV4KSwgb3V0cHV0IGZvcm1h dDogJXNcbiIsCi0JCSAgICAgIHllc25vKHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSksCisJCSAg ICAgIHllc25vKHBpcGVfY29uZmlnLT5ody5hY3RpdmUpLAogCQkgICAgICBidWYsIHBpcGVfY29u ZmlnLT5vdXRwdXRfdHlwZXMsCiAJCSAgICAgIG91dHB1dF9mb3JtYXRzKHBpcGVfY29uZmlnLT5v dXRwdXRfZm9ybWF0KSk7CiAKQEAgLTExOTYyLDEwICsxMTk2MiwxMCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kdW1wX3BpcGVfY29uZmlnKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZywKIAkJaW50ZWxfZHVtcF9pbmZvZnJhbWUoZGV2X3ByaXYsICZwaXBlX2NvbmZpZy0+ aW5mb2ZyYW1lcy5oZG1pKTsKIAogCURSTV9ERUJVR19LTVMoInJlcXVlc3RlZCBtb2RlOlxuIik7 Ci0JZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZSgmcGlwZV9jb25maWctPmJhc2UubW9kZSk7 CisJZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZSgmcGlwZV9jb25maWctPmh3Lm1vZGUpOwog CURSTV9ERUJVR19LTVMoImFkanVzdGVkIG1vZGU6XG4iKTsKLQlkcm1fbW9kZV9kZWJ1Z19wcmlu dG1vZGVsaW5lKCZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKLQlpbnRlbF9kdW1w X2NydGNfdGltaW5ncygmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJZHJtX21v ZGVfZGVidWdfcHJpbnRtb2RlbGluZSgmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUpOwor CWludGVsX2R1bXBfY3J0Y190aW1pbmdzKCZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZSk7 CiAJRFJNX0RFQlVHX0tNUygicG9ydCBjbG9jazogJWQsIHBpcGUgc3JjIHNpemU6ICVkeCVkLCBw aXhlbCByYXRlICVkXG4iLAogCQkgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJICAg ICAgcGlwZV9jb25maWctPnBpcGVfc3JjX3csIHBpcGVfY29uZmlnLT5waXBlX3NyY19oLApAQCAt MTIwNzQsNyArMTIwNzQsNyBAQCBzdGF0aWMgaW50CiBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYp OworCQl0b19pOTE1KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnNhdmVkX3N0YXRlOwogCiAJc2F2ZWRfc3RhdGUgPSBremFsbG9jKHNpemVvZigq c2F2ZWRfc3RhdGUpLCBHRlBfS0VSTkVMKTsKQEAgLTEyMDk1LDkgKzEyMDk1LDkgQEAgY2xlYXJf aW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJ c2F2ZWRfc3RhdGUtPndtID0gY3J0Y19zdGF0ZS0+d207CiAKIAkvKiBLZWVwIGJhc2UgZHJtX2Ny dGNfc3RhdGUgaW50YWN0LCBvbmx5IGNsZWFyIG91ciBleHRlbmRlZCBzdHJ1Y3QgKi8KLQlCVUlM RF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpKTsKLQltZW1j cHkoJmNydGNfc3RhdGUtPmJhc2UgKyAxLCAmc2F2ZWRfc3RhdGUtPmJhc2UgKyAxLAotCSAgICAg ICBzaXplb2YoKmNydGNfc3RhdGUpIC0gc2l6ZW9mKGNydGNfc3RhdGUtPmJhc2UpKTsKKwlCVUlM RF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGh3KSk7CisJbWVtY3B5 KCZjcnRjX3N0YXRlLT5odyArIDEsICZzYXZlZF9zdGF0ZS0+aHcgKyAxLAorCSAgICAgICBzaXpl b2YoKmNydGNfc3RhdGUpIC0gc2l6ZW9mKGNydGNfc3RhdGUtPmh3KSk7CiAKIAlrZnJlZShzYXZl ZF9zdGF0ZSk7CiAJcmV0dXJuIDA7CkBAIC0xMjEwNiw4ICsxMjEwNiw4IEBAIGNsZWFyX2ludGVs X2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMg aW50CiBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFz ZS5jcnRjOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT5i YXNlLnN0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5ody5jcnRj OworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT5ody5zdGF0 ZTsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3Rh dGU7CkBAIC0xMjEyNywxMyArMTIxMjcsMTMgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiAJICogcG9zaXRpdmUgb3IgbmVn YXRpdmUgcG9sYXJpdHkgaXMgcmVxdWVzdGVkLCB0cmVhdCB0aGlzIGFzIG1lYW5pbmcKIAkgKiBu ZWdhdGl2ZSBwb2xhcml0eS4KIAkgKi8KLQlpZiAoIShwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmZsYWdzICYKKwlpZiAoIShwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFn cyAmCiAJICAgICAgKERSTV9NT0RFX0ZMQUdfUEhTWU5DIHwgRFJNX01PREVfRkxBR19OSFNZTkMp KSkKLQkJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9ERV9G TEFHX05IU1lOQzsKKwkJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gRFJN X01PREVfRkxBR19OSFNZTkM7CiAKLQlpZiAoIShwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlLmZsYWdzICYKKwlpZiAoIShwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAm CiAJICAgICAgKERSTV9NT0RFX0ZMQUdfUFZTWU5DIHwgRFJNX01PREVfRkxBR19OVlNZTkMpKSkK LQkJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9ERV9GTEFH X05WU1lOQzsKKwkJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gRFJNX01P REVfRkxBR19OVlNZTkM7CiAKIAlyZXQgPSBjb21wdXRlX2Jhc2VsaW5lX3BpcGVfYnBwKHRvX2lu dGVsX2NydGMoY3J0YyksCiAJCQkJCXBpcGVfY29uZmlnKTsKQEAgLTEyMTUwLDcgKzEyMTUwLDcg QEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCiAJICogY29tcHV0YXRpb24gdG8gY2xlYXJseSBkaXN0aW5ndWlzaCBpdCBmcm9t IHRoZSBhZGp1c3RlZCBtb2RlLCB3aGljaAogCSAqIGNhbiBiZSBjaGFuZ2VkIGJ5IHRoZSBjb25u ZWN0b3JzIGluIHRoZSBiZWxvdyByZXRyeSBsb29wLgogCSAqLwotCWRybV9tb2RlX2dldF9odl90 aW1pbmcoJnBpcGVfY29uZmlnLT5iYXNlLm1vZGUsCisJZHJtX21vZGVfZ2V0X2h2X3RpbWluZygm cGlwZV9jb25maWctPmh3Lm1vZGUsCiAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5waXBlX3NyY193 LAogCQkJICAgICAgICZwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCk7CiAKQEAgLTEyMTgzLDcgKzEy MTgzLDcgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcpCiAJcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXIgPSAxOwogCiAJ LyogRmlsbCBpbiBkZWZhdWx0IGNydGMgdGltaW5ncywgYWxsb3cgZW5jb2RlcnMgdG8gb3Zlcndy aXRlIHRoZW0uICovCi0JZHJtX21vZGVfc2V0X2NydGNpbmZvKCZwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLAorCWRybV9tb2RlX3NldF9jcnRjaW5mbygmcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGUsCiAJCQkgICAgICBDUlRDX1NURVJFT19ET1VCTEUpOwogCiAJLyogUGFzcyBv dXIgbW9kZSB0byB0aGUgY29ubmVjdG9ycyBhbmQgdGhlIENSVEMgdG8gZ2l2ZSB0aGVtIGEgY2hh bmNlIHRvCkBAIC0xMjIwOCw3ICsxMjIwOCw3IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWco c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCS8qIFNldCBkZWZhdWx0IHBv cnQgY2xvY2sgaWYgbm90IG92ZXJ3cml0dGVuIGJ5IHRoZSBlbmNvZGVyLiBOZWVkcyB0byBiZQog CSAqIGRvbmUgYWZ0ZXJ3YXJkcyBpbiBjYXNlIHRoZSBlbmNvZGVyIGFkanVzdHMgdGhlIG1vZGUu ICovCiAJaWYgKCFwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaykKLQkJcGlwZV9jb25maWctPnBvcnRf Y2xvY2sgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sKKwkJcGlw ZV9jb25maWctPnBvcnRfY2xvY2sgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrCiAJCQkqIHBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyOwogCiAJcmV0ID0gaW50 ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyh0b19pbnRlbF9jcnRjKGNydGMpLCBwaXBlX2NvbmZpZyk7 CkBAIC0xMjM4Miw4ICsxMjM4Miw4IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogewogCWJvb2wgcmV0ID0gdHJ1ZTsKIAlib29s IGZpeHVwX2luaGVyaXRlZCA9IGFkanVzdCAmJgotCQkoY3VycmVudF9jb25maWctPmJhc2UubW9k ZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKSAmJgotCQkhKHBpcGVf Y29uZmlnLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRF RCk7CisJCShjdXJyZW50X2NvbmZpZy0+aHcubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RF X0ZMQUdfSU5IRVJJVEVEKSAmJgorCQkhKHBpcGVfY29uZmlnLT5ody5tb2RlLnByaXZhdGVfZmxh Z3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpOwogCiAJaWYgKGZpeHVwX2luaGVyaXRlZCAm JiAhZmFzdGJvb3RfZW5hYmxlZChkZXZfcHJpdikpIHsKIAkJRFJNX0RFQlVHX0tNUygiaW5pdGlh bCBtb2Rlc2V0IGFuZCBmYXN0Ym9vdCBub3Qgc2V0XG4iKTsKQEAgLTEyNTU0LDE5ICsxMjU1NCwx OSBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAogCVBJUEVfQ09ORl9DSEVDS19YKG91dHB1dF90eXBlcyk7CiAKLQlQSVBFX0NP TkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheSk7Ci0JUElQRV9DT05G X0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsKTsKLQlQSVBFX0NPTkZfQ0hF Q0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQpOwotCVBJUEVfQ09ORl9D SEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19lbmQpOwotCVBJUEVfQ09ORl9D SEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0KTsKLQlQSVBFX0NPTkZf Q0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oc3luY19lbmQpOworCVBJUEVfQ09ORl9D SEVDS19JKGh3LmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheSk7CisJUElQRV9DT05GX0NIRUNL X0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcu YWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19zdGFydCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcu YWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19lbmQpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFk anVzdGVkX21vZGUuY3J0Y19oc3luY19zdGFydCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2hzeW5jX2VuZCk7CiAKLQlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFk anVzdGVkX21vZGUuY3J0Y192ZGlzcGxheSk7Ci0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1 c3RlZF9tb2RlLmNydGNfdnRvdGFsKTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVk X21vZGUuY3J0Y192Ymxhbmtfc3RhcnQpOwotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX3ZibGFua19lbmQpOwotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0YXJ0KTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVz dGVkX21vZGUuY3J0Y192c3luY19lbmQpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVzdGVk X21vZGUuY3J0Y192ZGlzcGxheSk7CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9k ZS5jcnRjX3Z0b3RhbCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRj X3ZibGFua19zdGFydCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRj X3ZibGFua19lbmQpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVzdGVkX21vZGUuY3J0Y192 c3luY19zdGFydCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3Zz eW5jX2VuZCk7CiAKIAlQSVBFX0NPTkZfQ0hFQ0tfSShwaXhlbF9tdWx0aXBsaWVyKTsKIAlQSVBF X0NPTkZfQ0hFQ0tfSShvdXRwdXRfZm9ybWF0KTsKQEAgLTEyNTgxLDE3ICsxMjU4MSwxNyBAQCBp bnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAogCVBJUEVfQ09ORl9DSEVDS19CT09MX0lOQ09NUExFVEUoaGFzX2F1ZGlvKTsKIAotCVBJ UEVfQ09ORl9DSEVDS19GTEFHUyhiYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MsCisJUElQRV9DT05G X0NIRUNLX0ZMQUdTKGh3LmFkanVzdGVkX21vZGUuZmxhZ3MsCiAJCQkgICAgICBEUk1fTU9ERV9G TEFHX0lOVEVSTEFDRSk7CiAKIAlpZiAoIVBJUEVfQ09ORl9RVUlSSyhQSVBFX0NPTkZJR19RVUlS S19NT0RFX1NZTkNfRkxBR1MpKSB7Ci0JCVBJUEVfQ09ORl9DSEVDS19GTEFHUyhiYXNlLmFkanVz dGVkX21vZGUuZmxhZ3MsCisJCVBJUEVfQ09ORl9DSEVDS19GTEFHUyhody5hZGp1c3RlZF9tb2Rl LmZsYWdzLAogCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfUEhTWU5DKTsKLQkJUElQRV9DT05GX0NI RUNLX0ZMQUdTKGJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncywKKwkJUElQRV9DT05GX0NIRUNLX0ZM QUdTKGh3LmFkanVzdGVkX21vZGUuZmxhZ3MsCiAJCQkJICAgICAgRFJNX01PREVfRkxBR19OSFNZ TkMpOwotCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoYmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzLAor CQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoaHcuYWRqdXN0ZWRfbW9kZS5mbGFncywKIAkJCQkgICAg ICBEUk1fTU9ERV9GTEFHX1BWU1lOQyk7Ci0JCVBJUEVfQ09ORl9DSEVDS19GTEFHUyhiYXNlLmFk anVzdGVkX21vZGUuZmxhZ3MsCisJCVBJUEVfQ09ORl9DSEVDS19GTEFHUyhody5hZGp1c3RlZF9t b2RlLmZsYWdzLAogCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfTlZTWU5DKTsKIAl9CiAKQEAgLTEy NjcwLDcgKzEyNjcwLDcgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKElTX0c0WChkZXZfcHJpdikgfHwgSU5URUxfR0VO KGRldl9wcml2KSA+PSA1KQogCQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX2JwcCk7CiAKLQlQSVBF X0NPTkZfQ0hFQ0tfQ0xPQ0tfRlVaWlkoYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2spOwor CVBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWShody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sp OwogCVBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWShwb3J0X2Nsb2NrKTsKIAogCVBJUEVfQ09O Rl9DSEVDS19JKG1pbl92b2x0YWdlX2xldmVsKTsKQEAgLTEyNzAwLDcgKzEyNzAwLDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfcGlwZV9jb25maWdfc2FuaXR5X2NoZWNrKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAlpZiAocGlwZV9jb25maWctPmhhc19wY2hfZW5jb2Rlcikgewog CQlpbnQgZmRpX2RvdGNsb2NrID0gaW50ZWxfZG90Y2xvY2tfY2FsY3VsYXRlKGludGVsX2ZkaV9s aW5rX2ZyZXEoZGV2X3ByaXYsIHBpcGVfY29uZmlnKSwKIAkJCQkJCQkgICAgJnBpcGVfY29uZmln LT5mZGlfbV9uKTsKLQkJaW50IGRvdGNsb2NrID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZS5jcnRjX2Nsb2NrOworCQlpbnQgZG90Y2xvY2sgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCiAJCS8qCiAJCSAqIEZESSBhbHJlYWR5IHByb3ZpZGVkIG9u ZSBpZGVhIGZvciB0aGUgZG90Y2xvY2suCkBAIC0xMjk0NCw4ICsxMjk0NCw4IEBAIHZlcmlmeV9j cnRjX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlfX2RybV9hdG9taWNfaGVscGVyX2Ny dGNfZGVzdHJveV9zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7CiAJcGlwZV9jb25maWcgPSB0b19pbnRl bF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKTsKIAltZW1zZXQocGlwZV9jb25maWcsIDAsIHNp emVvZigqcGlwZV9jb25maWcpKTsKLQlwaXBlX2NvbmZpZy0+YmFzZS5jcnRjID0gY3J0YzsKLQlw aXBlX2NvbmZpZy0+YmFzZS5zdGF0ZSA9IG9sZF9zdGF0ZTsKKwlwaXBlX2NvbmZpZy0+aHcuY3J0 YyA9IGNydGM7CisJcGlwZV9jb25maWctPmh3LnN0YXRlID0gb2xkX3N0YXRlOwogCiAJRFJNX0RF QlVHX0tNUygiW0NSVEM6JWQ6JXNdXG4iLCBjcnRjLT5iYXNlLmlkLCBjcnRjLT5uYW1lKTsKIApA QCAtMTMxMjYsNyArMTMxMjYsNyBAQCBpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCiBzdGF0aWMgdm9pZCB1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5j cnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKIAogCS8qCkBAIC0xMzE1Nyw3ICsxMzE1Nyw3IEBAIHN0YXRpYyB2b2lkIHVw ZGF0ZV9zY2FubGluZV9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiAJICogYW5zd2VyIHRoYXQncyBzbGlnaHRseSBpbiB0aGUgZnV0dXJlLgogCSAqLwog CWlmIChJU19HRU4oZGV2X3ByaXYsIDIpKSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJaW50IHZ0b3RhbDsKIAogCQl2dG90YWwgPSBhZGp1c3Rl ZF9tb2RlLT5jcnRjX3Z0b3RhbDsKQEAgLTEzMTg3LDcgKzEzMTg3LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfbW9kZXNldF9jbGVhcl9wbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogCQlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKm9sZF9kcGxsID0KIAkJCW9sZF9jcnRjX3N0 YXRlLT5zaGFyZWRfZHBsbDsKIAotCQlpZiAoIW5lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRl LT5iYXNlKSkKKwkJaWYgKCFuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpKQogCQkJ Y29udGludWU7CiAKIAkJbmV3X2NydGNfc3RhdGUtPnNoYXJlZF9kcGxsID0gTlVMTDsKQEAgLTEz MjE2LDggKzEzMjE2LDggQEAgc3RhdGljIGludCBoYXN3ZWxsX21vZGVfc2V0X3BsYW5lc193b3Jr YXJvdW5kKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJLyogbG9vayBhdCBh bGwgY3J0YydzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGVuYWJsZWQgaW4gZHVyaW5nIG1vZGVzZXQg Ki8KIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19z dGF0ZSwgaSkgewotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8Ci0JCSAgICAhbmVl ZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFzZSkpCisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0 aXZlIHx8CisJCSAgICAhbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+aHcpKQogCQkJY29udGlu dWU7CiAKIAkJaWYgKGZpcnN0X2NydGNfc3RhdGUpIHsKQEAgLTEzMjQxLDggKzEzMjQxLDggQEAg c3RhdGljIGludCBoYXN3ZWxsX21vZGVfc2V0X3BsYW5lc193b3JrYXJvdW5kKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJCWNydGNfc3RhdGUtPmhzd193b3JrYXJvdW5kX3Bp cGUgPSBJTlZBTElEX1BJUEU7CiAKLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fAot CQkgICAgbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFzZSkpCisJCWlmICghY3J0Y19zdGF0 ZS0+aHcuYWN0aXZlIHx8CisJCSAgICBuZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT5odykpCiAJ CQljb250aW51ZTsKIAogCQkvKiAyIG9yIG1vcmUgZW5hYmxlZCBjcnRjcyBtZWFucyBubyBuZWVk IGZvciB3L2EgKi8KQEAgLTEzMzMzLDEyICsxMzMzMywxMiBAQCBzdGF0aWMgaW50IGludGVsX21v ZGVzZXRfY2hlY2tzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJZm9yX2Vh Y2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRl LAogCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5i YXNlLmFjdGl2ZSkKKwkJaWYgKG5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCQlzdGF0ZS0+ YWN0aXZlX2NydGNzIHw9IDEgPDwgaTsKIAkJZWxzZQogCQkJc3RhdGUtPmFjdGl2ZV9jcnRjcyAm PSB+KDEgPDwgaSk7CiAKLQkJaWYgKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAhPSBuZXdf Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZl ICE9IG5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCQlzdGF0ZS0+YWN0aXZlX3BpcGVfY2hh bmdlcyB8PSBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKTsKIAl9CiAKQEAgLTEzNDUxLDkgKzEz NDUxLDkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkvKiBDYXRjaCBJOTE1X01PREVfRkxBR19JTkhFUklURUQgKi8KIAlmb3JfZWFjaF9v bGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCiAJ CQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAobmV3X2NydGNfc3RhdGUtPmJhc2Uu bW9kZS5wcml2YXRlX2ZsYWdzICE9Ci0JCSAgICBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLnBy aXZhdGVfZmxhZ3MpCi0JCQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0cnVl OworCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAhPQorCQkgICAg b2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncykKKwkJCW5ld19jcnRjX3N0YXRl LT5ody5tb2RlX2NoYW5nZWQgPSB0cnVlOwogCX0KIAogCXJldCA9IGRybV9hdG9taWNfaGVscGVy X2NoZWNrX21vZGVzZXQoZGV2LCAmc3RhdGUtPmJhc2UpOwpAQCAtMTM0NjIsMTAgKzEzNDYyLDEw IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAKIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xk X2NydGNfc3RhdGUsCiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIW5lZWRz X21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKKwkJaWYgKCFuZWVkc19tb2Rlc2V0KCZu ZXdfY3J0Y19zdGF0ZS0+aHcpKQogCQkJY29udGludWU7CiAKLQkJaWYgKCFuZXdfY3J0Y19zdGF0 ZS0+YmFzZS5lbmFibGUpIHsKKwkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKSB7CiAJ CQlhbnlfbXMgPSB0cnVlOwogCQkJY29udGludWU7CiAJCX0KQEAgLTEzNDc2LDExICsxMzQ3Niwx MSBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCiAJCWlmIChpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKGRldl9wcml2LCBvbGRfY3J0Y19z dGF0ZSwKIAkJCQkJICAgICAgbmV3X2NydGNfc3RhdGUsIHRydWUpKSB7Ci0JCQluZXdfY3J0Y19z dGF0ZS0+YmFzZS5tb2RlX2NoYW5nZWQgPSBmYWxzZTsKKwkJCW5ld19jcnRjX3N0YXRlLT5ody5t b2RlX2NoYW5nZWQgPSBmYWxzZTsKIAkJCW5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSA9IHRy dWU7CiAJCX0KIAotCQlpZiAobmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKQor CQlpZiAobmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KSkKIAkJCWFueV9tcyA9IHRy dWU7CiAJfQogCkBAIC0xMzUxNSwxMiArMTM1MTUsMTIgQEAgc3RhdGljIGludCBpbnRlbF9hdG9t aWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWZvcl9lYWNoX29sZG5ld19pbnRl bF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJICAgIG5l d19jcnRjX3N0YXRlLCBpKSB7Ci0JCWlmICghbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUt PmJhc2UpICYmCisJCWlmICghbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KSAmJgog CQkgICAgIW5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkKIAkJCWNvbnRpbnVlOwogCiAJCWlu dGVsX2R1bXBfcGlwZV9jb25maWcobmV3X2NydGNfc3RhdGUsIHN0YXRlLAotCQkJCSAgICAgICBu ZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkgPworCQkJCSAgICAgICBuZWVkc19t b2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcpID8KIAkJCQkgICAgICAgIlttb2Rlc2V0XSIgOiAi W2Zhc3RzZXRdIik7CiAJfQogCkBAIC0xMzY1OCw3ICsxMzY1OCw3IEBAIHN0YXRpYyB2b2lkIHNr bF91cGRhdGVfY3J0Y3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJY3N0YXRl ID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7CiAJCQlwaXBlID0gaW50ZWxf Y3J0Yy0+cGlwZTsKIAotCQkJaWYgKHVwZGF0ZWQgJiBjbWFzayB8fCAhY3N0YXRlLT5iYXNlLmFj dGl2ZSkKKwkJCWlmICh1cGRhdGVkICYgY21hc2sgfHwgIWNzdGF0ZS0+aHcuYWN0aXZlKQogCQkJ CWNvbnRpbnVlOwogCiAJCQlpZiAoc2tsX2RkYl9hbGxvY2F0aW9uX292ZXJsYXBzKCZjc3RhdGUt PndtLnNrbC5kZGIsCkBAIC0xMzg4MCw3ICsxMzg4MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0 b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJaWYg KG5ld19jcnRjX3N0YXRlLT5hY3RpdmUgJiYKIAkJICAgICFuZWVkc19tb2Rlc2V0KG5ld19jcnRj X3N0YXRlKSAmJgotCQkgICAgKG5ld19pbnRlbF9jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRf Y2hhbmdlZCB8fAorCQkgICAgKG5ld19pbnRlbF9jcnRjX3N0YXRlLT5ody5jb2xvcl9tZ210X2No YW5nZWQgfHwKIAkJICAgICBuZXdfaW50ZWxfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpKQogCQkJ aW50ZWxfY29sb3JfbG9hZF9sdXRzKG5ld19pbnRlbF9jcnRjX3N0YXRlKTsKIAl9CkBAIC0xNDM2 MiwxNiArMTQzNjIsMTYgQEAgaW50CiBza2xfbWF4X3NjYWxlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCSAgICAgIHUzMiBwaXhlbF9mb3JtYXQpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt Pmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWludCBtYXhfc2NhbGUsIG11bHQ7CiAJaW50IGNydGNfY2xvY2ss IG1heF9kb3RjbGssIHRtcGNsazEsIHRtcGNsazI7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2Uu ZW5hYmxlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQogCQlyZXR1cm4gRFJNX1BMQU5F X0hFTFBFUl9OT19TQ0FMSU5HOwogCi0JY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwotCW1heF9kb3RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3Rh dGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSktPmNkY2xrLmxvZ2ljYWwuY2RjbGs7CisJY3J0Y19j bG9jayA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwltYXhfZG90 Y2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmh3LnN0YXRlKS0+Y2RjbGsu bG9naWNhbC5jZGNsazsKIAogCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSB8fCBJTlRFTF9H RU4oZGV2X3ByaXYpID49IDEwKQogCQltYXhfZG90Y2xrICo9IDI7CkBAIC0xNDQwMSw3ICsxNDQw MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0 YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUgPQog CQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKLQlib29sIG1v ZGVzZXQgPSBuZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSk7CisJYm9vbCBtb2Rl c2V0ID0gbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KTsKIAogCS8qIFBlcmZvcm0g dmJsYW5rIGV2YXNpb24gYXJvdW5kIGNvbW1pdCBvcGVyYXRpb24gKi8KIAlpbnRlbF9waXBlX3Vw ZGF0ZV9zdGFydChuZXdfY3J0Y19zdGF0ZSk7CkBAIC0xNDQwOSw3ICsxNDQwOSw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAogCWlmIChtb2Rlc2V0KQogCQlnb3RvIG91dDsKIAotCWlmIChuZXdfY3J0Y19zdGF0 ZS0+YmFzZS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKKwlpZiAobmV3X2NydGNfc3RhdGUtPmh3LmNv bG9yX21nbXRfY2hhbmdlZCB8fAogCSAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCiAJ CWludGVsX2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7CiAKQEAgLTE0NDU0LDggKzE0NDU0 LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAogCWludGVsX3BpcGVfdXBkYXRlX2VuZChuZXdfY3J0Y19zdGF0 ZSk7CiAKIAlpZiAobmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlICYmCi0JICAgICFuZWVkc19t b2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkgJiYKLQkgICAgb2xkX2NydGNfc3RhdGUtPmJh c2UubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKQorCSAgICAh bmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KSAmJgorCSAgICBvbGRfY3J0Y19zdGF0 ZS0+aHcubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKQogCQlp bnRlbF9jcnRjX2FybV9maWZvX3VuZGVycnVuKGNydGMsIG5ld19jcnRjX3N0YXRlKTsKIH0KIApA QCAtMTQ1NzIsNyArMTQ1NzIsNyBAQCBpbnRlbF9sZWdhY3lfY3Vyc29yX3VwZGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAkgKiBXaGVuIGNydGMgaXMgaW5hY3RpdmUgb3IgdGhlcmUgaXMg YSBtb2Rlc2V0IHBlbmRpbmcsCiAJICogd2FpdCBmb3IgaXQgdG8gY29tcGxldGUgaW4gdGhlIHNs b3dwYXRoCiAJICovCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCBuZWVkc19tb2Rl c2V0KCZjcnRjX3N0YXRlLT5iYXNlKSB8fAorCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8 IG5lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmh3KSB8fAogCSAgICBjcnRjX3N0YXRlLT51cGRh dGVfcGlwZSkKIAkJZ290byBzbG93OwogCkBAIC0xNDY2Nyw3ICsxNDY2Nyw3IEBAIGludGVsX2xl Z2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogb3V0X2ZyZWU6CiAJaWYgKG5ld19jcnRj X3N0YXRlKQotCQlpbnRlbF9jcnRjX2Rlc3Ryb3lfc3RhdGUoY3J0YywgJm5ld19jcnRjX3N0YXRl LT5iYXNlKTsKKwkJaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMsICZuZXdfY3J0Y19zdGF0 ZS0+aHcpOwogCWlmIChyZXQpCiAJCWludGVsX3BsYW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUsIG5l d19wbGFuZV9zdGF0ZSk7CiAJZWxzZQpAQCAtMTQ5MjEsNyArMTQ5MjEsNyBAQCBzdGF0aWMgaW50 IGludGVsX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0g cGlwZSBwaXBlKQogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGZhaWw7CiAJfQotCV9fZHJtX2F0 b21pY19oZWxwZXJfY3J0Y19yZXNldCgmaW50ZWxfY3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPmJh c2UpOworCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgmaW50ZWxfY3J0Yy0+YmFzZSwg JmNydGNfc3RhdGUtPmh3KTsKIAlpbnRlbF9jcnRjLT5jb25maWcgPSBjcnRjX3N0YXRlOwogCiAJ cHJpbWFyeSA9IGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKGRldl9wcml2LCBwaXBlKTsKQEAg LTE2MjM4LDcgKzE2MjM4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCSAgIEk5MTVfUkVBRChyZWcpICYgflBJUEVDT05GX0ZS QU1FX1NUQVJUX0RFTEFZX01BU0spOwogCX0KIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2 ZSkgeworCWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsKIAkJc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZTsKIAogCQkvKiBEaXNhYmxlIGV2ZXJ5dGhpbmcgYnV0IHRoZSBwcmltYXJ5IHBsYW5l ICovCkBAIC0xNjI2MywxMCArMTYyNjMsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVf Y3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogCS8qIEFkanVzdCB0aGUgc3RhdGUgb2Yg dGhlIG91dHB1dCBwaXBlIGFjY29yZGluZyB0byB3aGV0aGVyIHdlCiAJICogaGF2ZSBhY3RpdmUg Y29ubmVjdG9ycy9lbmNvZGVycy4gKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYg IWludGVsX2NydGNfaGFzX2VuY29kZXJzKGNydGMpKQorCWlmIChjcnRjX3N0YXRlLT5ody5hY3Rp dmUgJiYgIWludGVsX2NydGNfaGFzX2VuY29kZXJzKGNydGMpKQogCQlpbnRlbF9jcnRjX2Rpc2Fi bGVfbm9hdG9taWMoJmNydGMtPmJhc2UsIGN0eCk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5h Y3RpdmUgfHwgSEFTX0dNQ0goZGV2X3ByaXYpKSB7CisJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2 ZSB8fCBIQVNfR01DSChkZXZfcHJpdikpIHsKIAkJLyoKIAkJICogV2Ugc3RhcnQgb3V0IHdpdGgg dW5kZXJydW4gcmVwb3J0aW5nIGRpc2FibGVkIHRvIGF2b2lkIHJhY2VzLgogCQkgKiBGb3IgY29y cmVjdCBib29ra2VlcGluZyBtYXJrIHRoaXMgb24gYWN0aXZlIGNydGNzLgpAQCAtMTYyOTcsNyAr MTYyOTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAogCiBzdGF0aWMgYm9vbCBoYXNfYm9ndXNfZHBsbF9jb25maWcoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5o dy5jcnRjLT5kZXYpOwogCiAJLyoKIAkgKiBTb21lIFNOQiBCSU9TZW4gKGVnLiBBU1VTIEs1M1NW KSBhcmUga25vd24gdG8gbWlzcHJvZ3JhbQpAQCAtMTYzMTAsNyArMTYzMTAsNyBAQCBzdGF0aWMg Ym9vbCBoYXNfYm9ndXNfZHBsbF9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiAJICogcm9hZC4KIAkgKi8KIAlyZXR1cm4gSVNfR0VOKGRldl9wcml2LCA2 KSAmJgotCQljcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJgorCQljcnRjX3N0YXRlLT5ody5hY3Rp dmUgJiYKIAkJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgJiYKIAkJY3J0Y19zdGF0ZS0+cG9ydF9j bG9jayA9PSAwOwogfQpAQCAtMTYzMjcsNyArMTYzMjcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9z YW5pdGl6ZV9lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCSAqIGVuY29k ZXIgaXMgYWN0aXZlIGFuZCB0cnlpbmcgdG8gcmVhZCBmcm9tIGEgcGlwZSkgYW5kIHRoZQogCSAq IHBpcGUgaXRzZWxmIGJlaW5nIGFjdGl2ZS4gKi8KIAlib29sIGhhc19hY3RpdmVfY3J0YyA9IGNy dGNfc3RhdGUgJiYKLQkJY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7CisJCWNydGNfc3RhdGUtPmh3 LmFjdGl2ZTsKIAogCWlmIChjcnRjX3N0YXRlICYmIGhhc19ib2d1c19kcGxsX2NvbmZpZyhjcnRj X3N0YXRlKSkgewogCQlEUk1fREVCVUdfS01TKCJCSU9TIGhhcyBtaXNwcm9ncmFtbWVkIHRoZSBo YXJkd2FyZS4gRGlzYWJsaW5nIHBpcGUgJWNcbiIsCkBAIC0xNjQ2NCwyMiArMTY0NjQsMjIgQEAg c3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KIAkJCXRv X2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAKLQkJX19kcm1fYXRvbWljX2hl bHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJmNydGNfc3RhdGUtPmJhc2UpOworCQlfX2RybV9hdG9t aWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Y19zdGF0ZS0+aHcpOwogCQltZW1zZXQo Y3J0Y19zdGF0ZSwgMCwgc2l6ZW9mKCpjcnRjX3N0YXRlKSk7Ci0JCV9fZHJtX2F0b21pY19oZWxw ZXJfY3J0Y19yZXNldCgmY3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPmJhc2UpOworCQlfX2RybV9h dG9taWNfaGVscGVyX2NydGNfcmVzZXQoJmNydGMtPmJhc2UsICZjcnRjX3N0YXRlLT5odyk7CiAK LQkJY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgPSBjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSA9CisJ CWNydGNfc3RhdGUtPmh3LmFjdGl2ZSA9IGNydGNfc3RhdGUtPmh3LmVuYWJsZSA9CiAJCQlkZXZf cHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0YywgY3J0Y19zdGF0ZSk7CiAKLQkJY3J0 Yy0+YmFzZS5lbmFibGVkID0gY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGU7Ci0JCWNydGMtPmFjdGl2 ZSA9IGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlOworCQljcnRjLT5iYXNlLmVuYWJsZWQgPSBjcnRj X3N0YXRlLT5ody5lbmFibGU7CisJCWNydGMtPmFjdGl2ZSA9IGNydGNfc3RhdGUtPmh3LmFjdGl2 ZTsKIAotCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChjcnRjX3N0YXRlLT5o dy5hY3RpdmUpCiAJCQlkZXZfcHJpdi0+YWN0aXZlX2NydGNzIHw9IDEgPDwgY3J0Yy0+cGlwZTsK IAogCQlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc10gaHcgc3RhdGUgcmVhZG91dDogJXNcbiIs CiAJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwKLQkJCSAgICAg IGVuYWJsZWRkaXNhYmxlZChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkpOworCQkJICAgICAgZW5h YmxlZGRpc2FibGVkKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkpOwogCX0KIAogCXJlYWRvdXRfcGxh bmVfc3RhdGUoZGV2X3ByaXYpOwpAQCAtMTY0OTQsNyArMTY0OTQsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJ CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KIAkJCQl0b19pbnRlbF9jcnRj X3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwogCi0JCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUgJiYKKwkJCWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYKIAkJCSAgICBjcnRjX3N0YXRl LT5zaGFyZWRfZHBsbCA9PSBwbGwpCiAJCQkJcGxsLT5zdGF0ZS5jcnRjX21hc2sgfD0gMSA8PCBj cnRjLT5waXBlOwogCQl9CkBAIC0xNjU2NSwxMSArMTY1NjUsMTIgQEAgc3RhdGljIHZvaWQgaW50 ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWlu dCBtaW5fY2RjbGsgPSAwOwogCiAJCW1lbXNldCgmY3J0Yy0+YmFzZS5tb2RlLCAwLCBzaXplb2Yo Y3J0Yy0+YmFzZS5tb2RlKSk7Ci0JCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgeworCQlp ZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQlpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25m aWcoJmNydGMtPmJhc2UubW9kZSwgY3J0Y19zdGF0ZSk7CiAJCQljcnRjLT5iYXNlLm1vZGUuaGRp c3BsYXkgPSBjcnRjX3N0YXRlLT5waXBlX3NyY193OwogCQkJY3J0Yy0+YmFzZS5tb2RlLnZkaXNw bGF5ID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfaDsKLQkJCWludGVsX21vZGVfZnJvbV9waXBlX2Nv bmZpZygmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLCBjcnRjX3N0YXRlKTsKKwkJCWlu dGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZygmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSwK KwkJCQkJCSAgICBjcnRjX3N0YXRlKTsKIAkJCVdBUk5fT04oZHJtX2F0b21pY19zZXRfbW9kZV9m b3JfY3J0YyhjcnRjLT5iYXNlLnN0YXRlLCAmY3J0Yy0+YmFzZS5tb2RlKSk7CiAKIAkJCS8qCkBA IC0xNjU4MSw3ICsxNjU4Miw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICogc2V0IGEgZmxhZyB0byBpbmRp Y2F0ZSB0aGF0IGEgZnVsbCByZWNhbGN1bGF0aW9uIGlzCiAJCQkgKiBuZWVkZWQgb24gdGhlIG5l eHQgY29tbWl0LgogCQkJICovCi0JCQljcnRjX3N0YXRlLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFn cyA9IEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRDsKKwkJCWNydGNfc3RhdGUtPmh3Lm1vZGUucHJp dmF0ZV9mbGFncyA9IEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRDsKIAogCQkJaW50ZWxfY3J0Y19j b21wdXRlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7CiAKQEAgLTE2NTkyLDcgKzE2NTkzLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJCQl9CiAKIAkJCWRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoJmNy dGMtPmJhc2UsCi0JCQkJCQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJCQkJ CQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUpOwogCQkJdXBkYXRlX3NjYW5saW5lX29m ZnNldChjcnRjX3N0YXRlKTsKIAkJfQogCkBAIC0xNjc1Miw3ICsxNjc1Myw3IEBAIGludGVsX21v ZGVzZXRfc2V0dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCQlkcm1fY3J0 Y192YmxhbmtfcmVzZXQoJmNydGMtPmJhc2UpOwogCi0JCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSkKKwkJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCWludGVsX2NydGNfdmJsYW5r X29uKGNydGNfc3RhdGUpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggNDMzNmRm NDZmZTc4Li5kMmI0YTM3NmZkYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwpAQCAtMTg3Myw3 ICsxODczLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAsCiAJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCiAJCQkJICBjb25zdCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCiB7Ci0J c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgYnBwLCBjbG9jaywgbGFu ZV9jb3VudDsKIAlpbnQgbW9kZV9yYXRlLCBsaW5rX2Nsb2NrLCBsaW5rX2F2YWlsOwogCkBAIC0x OTI1LDcgKzE5MjUsNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwotCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJdTggZHNjX21heF9icGM7CiAJaW50 IHBpcGVfYnBwOwogCWludCByZXQ7CkBAIC0yMDI5LDcgKzIwMjksNyBAQCBpbnRlbF9kcF9jb21w dXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGU7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7CiAJ aW50IGNvbW1vbl9sZW47CkBAIC0yMTE3LDggKzIxMTcsOCBAQCBpbnRlbF9kcF95Y2JjcjQyMF9j b25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIHsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKIAljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGU7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2Rl OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5o dy5jcnRjKTsKIAlpbnQgcmV0OwogCiAJaWYgKCFkcm1fbW9kZV9pc180MjBfb25seShpbmZvLCBh ZGp1c3RlZF9tb2RlKSB8fApAQCAtMjE0Niw3ICsyMTQ2LDcgQEAgYm9vbCBpbnRlbF9kcF9saW1p dGVkX2NvbG9yX3JhbmdlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCWNvbnN0IHN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29u bl9zdGF0ZSA9CiAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUp OwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNy dGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVk X21vZGU7CiAKIAlpZiAoaW50ZWxfY29ubl9zdGF0ZS0+YnJvYWRjYXN0X3JnYiA9PSBJTlRFTF9C Uk9BRENBU1RfUkdCX0FVVE8pIHsKIAkJLyoKQEAgLTIxNjksMTEgKzIxNjksMTEgQEAgaW50ZWxf ZHBfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9sc3Bjb24g KmxzcGNvbiA9IGVuY190b19pbnRlbF9sc3Bjb24oJmVuY29kZXItPmJhc2UpOwogCWVudW0gcG9y dCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5ody5jcnRjKTsKIAlz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNo ZWRfY29ubmVjdG9yOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50 ZWxfY29ubl9zdGF0ZSA9CiAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5f c3RhdGUpOwpAQCAtMjI4NCw4ICsyMjg0LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJlcGFy ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBv cnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmln LT5ody5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWludGVsX2RwX3NldF9saW5r X3BhcmFtcyhpbnRlbF9kcCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkJIHBpcGVfY29u ZmlnLT5sYW5lX2NvdW50LApAQCAtMjg3Myw3ICsyODczLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0 X2VkcF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0YXRlKQog c3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LAogCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29u ZmlnLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9wcml2LCBj cnRjLT5waXBlKTsKQEAgLTI5MTMsNyArMjkxMyw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2Vk cF9wbGxfb24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIHN0YXRpYyB2b2lkIGlyb25sYWtl X2VkcF9wbGxfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJIGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5j cnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKIAogCWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9wcml2LCBjcnRjLT5waXBl KTsKQEAgLTMwNzMsNyArMzA3Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJdTMyIHRtcCwgZmxhZ3MgPSAw OwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5ody5jcnRjKTsKIAog CWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9FRFApCiAJCXBpcGVfY29uZmlnLT5v dXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9FRFApOwpAQCAtMzEwOCw3ICszMTA4LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCWZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTlZTWU5DOwogCX0KIAotCXBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKIAlpZiAoSVNfRzRYKGRldl9wcml2 KSAmJiB0bXAgJiBEUF9DT0xPUl9SQU5HRV8xNl8yMzUpCiAJCXBpcGVfY29uZmlnLT5saW1pdGVk X2NvbG9yX3JhbmdlID0gdHJ1ZTsKQEAgLTMxMjUsNyArMzEyNSw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2RwX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlwaXBl X2NvbmZpZy0+cG9ydF9jbG9jayA9IDI3MDAwMDsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPQorCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl LmNydGNfY2xvY2sgPQogCQlpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUocGlwZV9jb25maWctPnBv cnRfY2xvY2ssCiAJCQkJCSAmcGlwZV9jb25maWctPmRwX21fbik7CiAKQEAgLTMzNDAsNyArMzM0 MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5ody5jcnRjKTsKIAl1MzIgZHBfcmVn ID0gSTkxNV9SRUFEKGludGVsX2RwLT5vdXRwdXRfcmVnKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNy dGMtPnBpcGU7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CkBAIC0zNDcxLDcgKzM0NzEsNyBA QCBzdGF0aWMgdm9pZCB2bHZfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXIoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCiAJ bG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAKQEAgLTM5OTQsNyAr Mzk5NCw3IEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29k ZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVs X2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5jcnRjKTsKIAllbnVtIHBvcnQg cG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJdTMyIERQID0gaW50ZWxfZHAtPkRQOwogCkBAIC00ODM2 LDcgKzQ4MzYsNyBAQCBpbnQgaW50ZWxfZHBfcmV0cmFpbl9saW5rKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCiAJV0FSTl9PTighaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRj X3N0YXRlKSk7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3J0Y19z dGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm4gMDsKIAogCWlmIChjb25uX3N0YXRlLT5jb21taXQg JiYKQEAgLTY4MzcsNyArNjgzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3NldF9kcnJzX3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IE5V TEw7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGRldl9wcml2LT5kcnJzLmRwOwotCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAllbnVtIGRycnNfcmVmcmVzaF9yYXRlX3R5cGUgaW5k ZXggPSBEUlJTX0hJR0hfUlI7CiAKIAlpZiAocmVmcmVzaF9yYXRlIDw9IDApIHsKQEAgLTY4NzMs NyArNjg3Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3NldF9kcnJzX3N0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuOwogCX0KIAotCWlmICghY3J0Y19z dGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewogCQlE Uk1fREVCVUdfS01TKCJlRFAgZW5jb2RlciBkaXNhYmxlZC4gQ1JUQyBub3QgQWN0aXZlXG4iKTsK IAkJcmV0dXJuOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw X21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKaW5kZXggMGNhZjY0 NWZiYmI4Li4zOWY4NjU4ZDYyNDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX21zdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCkBA IC00MiwxMyArNDIsMTMgQEAgc3RhdGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9saW5rX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAogCQkJCQkgICAgc3RydWN0IGxpbmtfY29uZmln X2xpbWl0cyAqbGltaXRzKQogewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNy dGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0g Y3J0Y19zdGF0ZS0+aHcuc3RhdGU7CiAJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRl bF9tc3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gJmludGVsX21zdC0+cHJpbWFyeS0+ZHA7CiAJc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yID0KIAkJdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rv cik7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkm Y3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAl2b2lkICpwb3J0ID0gY29ubmVjdG9yLT5wb3J0OwogCWJvb2wgY29uc3RhbnRf biA9IGRybV9kcF9oYXNfcXVpcmsoJmludGVsX2RwLT5kZXNjLAogCQkJCQkgICBEUF9EUENEX1FV SVJLX0NPTlNUQU5UX04pOwpAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX21z dF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQogCQl0b19p bnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJdm9pZCAq cG9ydCA9IGNvbm5lY3Rvci0+cG9ydDsKIAlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0 czsKIAlpbnQgcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBp b19waHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwaW9fcGh5LmMKaW5kZXggYmRi ZTQxNzU5ODI3Li42OTdjOWNkYzFhYmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwaW9fcGh5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBpb19w aHkuYwpAQCAtNzQwLDcgKzc0MCw3IEBAIHZvaWQgY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gZHBpb19jaGFu bmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5i YXNlKSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmh3LmNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1 MzIgdmFsOwogCkBAIC03ODQsNyArNzg0LDcgQEAgdm9pZCBjaHZfcGh5X3ByZV9wbGxfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+aHcuY3J0Yyk7CiAJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hh bm5lbChkcG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXVuc2lnbmVkIGlu dCBsYW5lX21hc2sgPQpAQCAtODY1LDcgKzg2NSw3IEBAIHZvaWQgY2h2X3BoeV9wcmVfZW5jb2Rl cl9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmh3LmNydGMpOwogCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3Rv X2NoYW5uZWwoZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpbnQgZGF0 YSwgaSwgc3RhZ2dlcjsKQEAgLTk1NCw3ICs5NTQsNyBAQCB2b2lkIGNodl9waHlfcG9zdF9wbGxf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQllbnVt IHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBp cGU7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5j cnRjKS0+cGlwZTsKIAl1MzIgdmFsOwogCiAJdmx2X2RwaW9fZ2V0KGRldl9wcml2KTsKQEAgLTEw MTcsNyArMTAxNyw3IEBAIHZvaWQgdmx2X3BoeV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9 IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMp OwogCWVudW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7 CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC0xMDQ3LDcgKzEwNDcsNyBAQCB2 b2lkIHZsdl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29k ZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGln X3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAllbnVtIGRwaW9fY2hh bm5lbCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKIAl1MzIgdmFsOwpAQCAtMTA3Niw3ICsxMDc2LDcgQEAgdm9pZCB2bHZf cGh5X3Jlc2V0X2xhbmVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5i YXNlKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29k ZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo b2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5jcnRjKTsKIAllbnVtIGRwaW9fY2hhbm5l bCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBs bF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggMmQ0 ZTdiOWE3YjlkLi5iNzI0MWUxZDIzMzUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwbGxfbWdyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYwpAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgYXNzZXJ0X3NoYXJlZF9kcGxsKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKICAqLwogdm9pZCBpbnRlbF9wcmVwYXJlX3NoYXJl ZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNf c3RhdGUtPnNoYXJlZF9kcGxsOwogCkBAIC0xNjIsNyArMTYyLDcgQEAgdm9pZCBpbnRlbF9wcmVw YXJlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogICovCiB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0 IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKIAl1bnNp Z25lZCBpbnQgY3J0Y19tYXNrID0gZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSk7CkBAIC0yMDcs NyArMjA3LDcgQEAgdm9pZCBpbnRlbF9lbmFibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAgKi8KIHZvaWQgaW50ZWxfZGlzYWJsZV9zaGFy ZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRj X3N0YXRlLT5zaGFyZWRfZHBsbDsKIAl1bnNpZ25lZCBpbnQgY3J0Y19tYXNrID0gZHJtX2NydGNf bWFzaygmY3J0Yy0+YmFzZSk7CkBAIC0yNDcsMTMgKzI0NywxMyBAQCBpbnRlbF9maW5kX3NoYXJl ZF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgICAgZW51 bSBpbnRlbF9kcGxsX2lkIHJhbmdlX21pbiwKIAkJICAgICAgIGVudW0gaW50ZWxfZHBsbF9pZCBy YW5nZV9tYXgpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRf ZHBsbCAqcGxsLCAqdW51c2VkX3BsbCA9IE5VTEw7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxs X3N0YXRlICpzaGFyZWRfZHBsbDsKIAllbnVtIGludGVsX2RwbGxfaWQgaTsKIAotCXNoYXJlZF9k cGxsID0gaW50ZWxfYXRvbWljX2dldF9zaGFyZWRfZHBsbF9zdGF0ZShjcnRjX3N0YXRlLT5iYXNl LnN0YXRlKTsKKwlzaGFyZWRfZHBsbCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3Rh dGUoY3J0Y19zdGF0ZS0+aHcuc3RhdGUpOwogCiAJZm9yIChpID0gcmFuZ2VfbWluOyBpIDw9IHJh bmdlX21heDsgaSsrKSB7CiAJCXBsbCA9ICZkZXZfcHJpdi0+c2hhcmVkX2RwbGxzW2ldOwpAQCAt MjkzLDEwICsyOTMsMTAgQEAgaW50ZWxfcmVmZXJlbmNlX3NoYXJlZF9kcGxsKHN0cnVjdCBpbnRl bF9zaGFyZWRfZHBsbCAqcGxsLAogCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbF9zdGF0ZSAqc2hhcmVkX2RwbGw7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmh3LmNydGMpOwogCWNvbnN0IGVudW0gaW50ZWxfZHBsbF9pZCBpZCA9IHBsbC0+aW5m by0+aWQ7CiAKLQlzaGFyZWRfZHBsbCA9IGludGVsX2F0b21pY19nZXRfc2hhcmVkX2RwbGxfc3Rh dGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CisJc2hhcmVkX2RwbGwgPSBpbnRlbF9hdG9taWNf Z2V0X3NoYXJlZF9kcGxsX3N0YXRlKGNydGNfc3RhdGUtPmh3LnN0YXRlKTsKIAogCWlmIChzaGFy ZWRfZHBsbFtpZF0uY3J0Y19tYXNrID09IDApCiAJCXNoYXJlZF9kcGxsW2lkXS5od19zdGF0ZSA9 CkBAIC00MjUsNyArNDI1LDcgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCiBp YnhfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJICAgICBz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJ c3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CiAJZW51bSBpbnRlbF9kcGxsX2lkIGk7CkBA IC03OTMsNyArNzkzLDcgQEAgc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqaHN3X2Rk aV9oZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICoKIHN0YXRpYyBzdHJ1Y3Qg aW50ZWxfc2hhcmVkX2RwbGwgKgogaHN3X2RkaV9kcF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7 CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CiAJZW51bSBpbnRlbF9kcGxsX2lkIHBs bF9pZDsKIAlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrOwpAQCAtMTY5Myw3ICsx NjkzLDcgQEAgc3RhdGljIGJvb2wKIGJ4dF9kZGlfaGRtaV9wbGxfZGl2aWRlcnMoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgIHN0cnVjdCBieHRfY2xrX2RpdiAqY2xr X2RpdikKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRwbGwgYmVzdF9jbG9jazsKIAogCS8q IENhbGN1bGF0ZSBIRE1JIGRpdiAqLwpAQCAtMTgzMSw3ICsxODMxLDcgQEAgc3RhdGljIHN0cnVj dCBpbnRlbF9zaGFyZWRfZHBsbCAqCiBieHRfZ2V0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGw7CiAJ ZW51bSBpbnRlbF9kcGxsX2lkIGlkOwpAQCAtMjIxNyw3ICsyMjE3LDcgQEAgc3RhdGljIGJvb2wK IGNubF9kZGlfY2FsY3VsYXRlX3dycGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCQkJc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKndycGxsX3BhcmFtcykKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CiAJdTMyIGFmZV9jbG9jayA9IGNydGNfc3RhdGUt PnBvcnRfY2xvY2sgKiA1OwogCXUzMiByZWZfY2xvY2s7CiAJdTMyIGRjb19taW4gPSA3OTk4MDAw OwpAQCAtMjQ3Niw3ICsyNDc2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBza2xfd3JwbGxfcGFy YW1zIGljbF90YnRfcGxsXzE5XzJNSHpfdmFsdWVzID0gewogc3RhdGljIGJvb2wgaWNsX2NhbGNf ZHBfY29tYm9fcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAg c3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT5ody5jcnRjLT5kZXYpOwogCWNvbnN0IHN0cnVjdCBpY2xfY29tYm9fcGxsX3BhcmFtcyAqcGFy YW1zID0KIAkJZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiA9PSAyNDAwMCA/CiAJCWljbF9kcF9jb21i b19wbGxfMjRNSHpfdmFsdWVzIDoKQEAgLTI0OTgsNyArMjQ5OCw3IEBAIHN0YXRpYyBib29sIGlj bF9jYWxjX2RwX2NvbWJvX3BsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IHN0YXRpYyBib29sIGljbF9jYWxjX3RidF9wbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJCQkgICAgIHN0cnVjdCBza2xfd3JwbGxfcGFyYW1zICpwbGxfcGFyYW1zKQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAogCSpwbGxfcGFyYW1zID0gZGV2 X3ByaXYtPmNkY2xrLmh3LnJlZiA9PSAyNDAwMCA/CiAJCQlpY2xfdGJ0X3BsbF8yNE1Iel92YWx1 ZXMgOiBpY2xfdGJ0X3BsbF8xOV8yTUh6X3ZhbHVlczsKQEAgLTI1MDgsNyArMjUwOCw3IEBAIHN0 YXRpYyBib29sIGljbF9jYWxjX3RidF9wbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiBzdGF0aWMgYm9vbCBpY2xfY2FsY19kcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAl1MzIgY2ZnY3IwLCBjZmdjcjE7 CiAJc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgcGxsX3BhcmFtcyA9IHsgMCB9OwogCWJvb2wgcmV0 OwpAQCAtMjYyOSw3ICsyNjI5LDcgQEAgc3RhdGljIGJvb2wgaWNsX21nX3BsbF9maW5kX2Rpdmlz b3JzKGludCBjbG9ja19raHosIGJvb2wgaXNfZHAsIGJvb2wgdXNlX3NzYywKICAqLwogc3RhdGlj IGJvb2wgaWNsX2NhbGNfbWdfcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfZHBsbF9od19zdGF0ZSAqcGxsX3N0YXRlID0gJmNydGNfc3RhdGUtPmRwbGxfaHdfc3RhdGU7 CiAJaW50IHJlZmNsa19raHogPSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmOwogCWludCBjbG9jayA9 IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7CkBAIC0yNzk2LDcgKzI3OTYsNyBAQCBzdGF0aWMgc3Ry dWN0IGludGVsX3NoYXJlZF9kcGxsICoKIGljbF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsK IAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CkBAIC0zMzA0LDcgKzMzMDQsNyBAQCBz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgogaW50ZWxfZ2V0X3NoYXJlZF9kcGxsKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CiAJY29uc3Qg c3RydWN0IGludGVsX2RwbGxfbWdyICpkcGxsX21nciA9IGRldl9wcml2LT5kcGxsX21ncjsKIAog CWlmIChXQVJOX09OKCFkcGxsX21ncikpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDNl MzM3MzE3Zjc3ZS4uZWM1MGY5MTY3MTYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAt NzEzLDcgKzcxMyw3IEBAIGVudW0gaW50ZWxfb3V0cHV0X2Zvcm1hdCB7CiB9OwogCiBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSB7Ci0Jc3RydWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7CisJc3RydWN0 IGRybV9jcnRjX3N0YXRlIGh3OwogCiAJLyoqCiAJICogcXVpcmtzIC0gYml0ZmllbGQgd2l0aCBo dyBzdGF0ZSByZWFkb3V0IHF1aXJrcwpAQCAtMTA0Niw3ICsxMDQ2LDcgQEAgc3RydWN0IGN4c3Jf bGF0ZW5jeSB7CiAKICNkZWZpbmUgdG9faW50ZWxfYXRvbWljX3N0YXRlKHgpIGNvbnRhaW5lcl9v Zih4LCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlLCBiYXNlKQogI2RlZmluZSB0b19pbnRlbF9j cnRjKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY3J0YywgYmFzZSkKLSNkZWZpbmUg dG9faW50ZWxfY3J0Y19zdGF0ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2NydGNf c3RhdGUsIGJhc2UpCisjZGVmaW5lIHRvX2ludGVsX2NydGNfc3RhdGUoeCkgY29udGFpbmVyX29m KHgsIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBodykKICNkZWZpbmUgdG9faW50ZWxfY29ubmVj dG9yKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBiYXNlKQogI2Rl ZmluZSB0b19pbnRlbF9lbmNvZGVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZW5j b2RlciwgYmFzZSkKICNkZWZpbmUgdG9faW50ZWxfZnJhbWVidWZmZXIoeCkgY29udGFpbmVyX29m KHgsIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciwgYmFzZSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZv LmMKaW5kZXggMjI2NjZkMjhmNGFhLi5iMTNiODliNzc5YTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2R2by5jCkBAIC0xNzgsOSArMTc4LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX2dldF9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZWxzZQogCQlmbGFncyB8PSBEUk1f TU9ERV9GTEFHX05WU1lOQzsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxh Z3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxh Z3M7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBl X2NvbmZpZy0+cG9ydF9jbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVs X2Rpc2FibGVfZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLApAQCAtMjA3LDggKzIw Nyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kdm8oc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJdTMyIHRlbXAgPSBJOTE1X1JFQUQoZHZvX3JlZyk7CiAKIAlpbnRlbF9kdm8t PmRldi5kZXZfb3BzLT5tb2RlX3NldCgmaW50ZWxfZHZvLT5kZXYsCi0JCQkJCSAmcGlwZV9jb25m aWctPmJhc2UubW9kZSwKLQkJCQkJICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKTsK KwkJCQkJICZwaXBlX2NvbmZpZy0+aHcubW9kZSwKKwkJCQkJICZwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZSk7CiAKIAlJOTE1X1dSSVRFKGR2b19yZWcsIHRlbXAgfCBEVk9fRU5BQkxFKTsK IAlJOTE1X1JFQUQoZHZvX3JlZyk7CkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGludCBpbnRl bF9kdm9fY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3Ry dWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNvZGVyKTsKIAljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSA9CiAJCWludGVsX2R2by0+YXR0YWNo ZWRfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGU7CiAKIAkvKgogCSAqIElmIHdlIGhhdmUgdGltaW5ncyBmcm9tIHRoZSBCSU9T IGZvciB0aGUgcGFuZWwsIHB1dCB0aGVtIGluCkBAIC0yNzcsOCArMjc3LDggQEAgc3RhdGljIHZv aWQgaW50ZWxfZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ CQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZp Zy0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+aHcuY3J0Yyk7CisJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2 byhlbmNvZGVyKTsKIAlpbnQgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIGR2b192YWw7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiYy5jCmluZGV4IDU2NzlmMmZmZmI3Yy4uN2RiMTg0NTJhODBkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9mYmMuYwpAQCAtNjY0LDcgKzY2NCw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2ZiY191cGRhdGVfc3RhdGVfY2FjaGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJY2Fj aGUtPnZtYSA9IE5VTEw7CiAJY2FjaGUtPmZsYWdzID0gMDsKIAotCWNhY2hlLT5jcnRjLm1vZGVf ZmxhZ3MgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3M7CisJY2FjaGUtPmNy dGMubW9kZV9mbGFncyA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3M7CiAJaWYg KElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJCWNhY2hl LT5jcnRjLmhzd19iZHdfcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUtPnBpeGVsX3JhdGU7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRleCAxODdhMmI4MjhiOTcuLmE0ZTE1OWQxZGZlNyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwpAQCAtMjc5LDcgKzI3OSw3IEBAIHN0YXRpYyB2 b2lkIGlieF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7 CiAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3 LmNydGMpOwogCWk5MTVfcmVnX3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlw ZSk7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwogCWludCBpOwpAQCAtMzE1LDcgKzMxNSw3 IEBAIHN0YXRpYyB2b2lkIGlieF9yZWFkX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCSAgICAgICB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmh3LmNydGMpOwogCXUzMiB2YWwsICpkYXRhID0gZnJhbWU7CiAJaW50IGk7CiAKQEAg LTMzNCw3ICszMzQsNyBAQCBzdGF0aWMgdTMyIGlieF9pbmZvZnJhbWVzX2VuYWJsZWQoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlOworCWVudW0gcGlwZSBwaXBlID0g dG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+aHcuY3J0YyktPnBpcGU7CiAJaTkxNV9yZWdfdCBy ZWcgPSBUVklERU9fRElQX0NUTChwaXBlKTsKIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAK QEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgdm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCWNvbnN0IHUzMiAqZGF0YSA9IGZyYW1lOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAlpOTE1X3JlZ190IHJlZyA9IFRW SURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVn KTsKIAlpbnQgaTsKQEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgdm9pZCBjcHRfcmVhZF9pbmZv ZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAgdm9pZCAqZnJh bWUsIHNzaXplX3QgbGVuKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAl1MzIgdmFsLCAq ZGF0YSA9IGZyYW1lOwogCWludCBpOwogCkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIHUzMiBj cHRfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJ CSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp OwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRj KS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3 LmNydGMpLT5waXBlOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQoVFZJREVPX0RJUF9DVEwocGlwZSkp OwogCiAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxFKSA9PSAwKQpAQCAtNDMyLDcgKzQzMiw3 IEBAIHN0YXRpYyB2b2lkIHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiB7CiAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmh3LmNydGMpOwogCWk5MTVfcmVnX3QgcmVnID0gVkxWX1RWSURFT19ESVBfQ1RM KGludGVsX2NydGMtPnBpcGUpOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKIAlpbnQgaTsK QEAgLTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCB2bHZfcmVhZF9pbmZvZnJhbWUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAgdm9pZCAqZnJhbWUsIHNzaXplX3Qg bGVuKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAl1MzIgdmFsLCAqZGF0YSA9IGZyYW1l OwogCWludCBpOwogCkBAIC00ODcsNyArNDg3LDcgQEAgc3RhdGljIHUzMiB2bHZfaW5mb2ZyYW1l c19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCWVudW0gcGlw ZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKS0+cGlwZTsKKwll bnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3LmNydGMpLT5waXBl OwogCXUzMiB2YWwgPSBJOTE1X1JFQUQoVkxWX1RWSURFT19ESVBfQ1RMKHBpcGUpKTsKIAogCWlm ICgodmFsICYgVklERU9fRElQX0VOQUJMRSkgPT0gMCkKQEAgLTcwMCw3ICs3MDAsNyBAQCBpbnRl bF9oZG1pX2NvbXB1dGVfYXZpX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIHsKIAlzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSA9ICZjcnRjX3N0YXRlLT5p bmZvZnJhbWVzLmF2aS5hdmk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19z dGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y ID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwogCWludCByZXQ7CiAKQEAgLTc4Nyw3ICs3ODcsNyBA QCBpbnRlbF9oZG1pX2NvbXB1dGVfaGRtaV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAKIAlyZXQgPSBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlzcGxh eV9tb2RlKGZyYW1lLAogCQkJCQkJCSAgY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAotCQkJCQkJCSAg JmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJCQkJCQkJICAmY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZSk7CiAJaWYgKFdBUk5fT04ocmV0KSkKIAkJcmV0dXJuIGZhbHNlOwog CkBAIC05NDgsNyArOTQ4LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9m cmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJIGNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRj KTsKIAlpOTE1X3JlZ190IHJlZzsKIAogCWlmICgoY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5lbmFi bGUgJgpAQCAtOTczLDcgKzk3Myw3IEBAIHZvaWQgaW50ZWxfaGRtaV9yZWFkX2djcF9pbmZvZnJh bWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCWk5MTVf cmVnX3QgcmVnOwogCiAJaWYgKChjcnRjX3N0YXRlLT5pbmZvZnJhbWVzLmVuYWJsZSAmCkBAIC0x MDEwLDcgKzEwMTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2NvbXB1dGVfZ2NwX2luZm9m cmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCS8qIEVuYWJsZSBkZWZhdWx0 X3BoYXNlIHdoZW5ldmVyIHRoZSBkaXNwbGF5IG1vZGUgaXMgc3VpdGFibHkgYWxpZ25lZCAqLwog CWlmIChnY3BfZGVmYXVsdF9waGFzZV9wb3NzaWJsZShjcnRjX3N0YXRlLT5waXBlX2JwcCwKLQkJ CQkgICAgICAgJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSkpCisJCQkJICAgICAgICZj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlKSkKIAkJY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5n Y3AgfD0gR0NQX0RFRkFVTFRfUEhBU0VfRU5BQkxFOwogfQogCkBAIC0xMDIwLDcgKzEwMjAsNyBA QCBzdGF0aWMgdm9pZCBpYnhfc2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNv ZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZpbnRlbF9kaWdf cG9ydC0+aGRtaTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMt PnBpcGUpOwpAQCAtMTA3OSw3ICsxMDc5LDcgQEAgc3RhdGljIHZvaWQgY3B0X3NldF9pbmZvZnJh bWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190 b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19E SVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKQEAg LTExMjgsNyArMTEyOCw3IEBAIHN0YXRpYyB2b2lkIHZsdl9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcu Y3J0Yyk7CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRt aSgmZW5jb2Rlci0+YmFzZSk7CiAJaTkxNV9yZWdfdCByZWcgPSBWTFZfVFZJREVPX0RJUF9DVEwo aW50ZWxfY3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwpAQCAtMTcyMSw5 ICsxNzIxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5i YXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRl dik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5j X3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsK Kwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0 YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBoZG1pX3ZhbDsKIAogCWludGVsX2RwX2R1YWxf bW9kZV9zZXRfdG1kc19vdXRwdXQoaW50ZWxfaGRtaSwgdHJ1ZSk7CkBAIC0xODE0LDcgKzE4MTQs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJICAgIHRtcCAmIEhETUlfQ09MT1JfUkFOR0VfMTZfMjM1KQogCQlwaXBl X2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRydWU7CiAKLQlwaXBlX2NvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJaWYgKCh0bXAgJiBTRFZPX0NPTE9SX0ZPUk1BVF9N QVNLKSA9PSBIRE1JX0NPTE9SX0ZPUk1BVF8xMmJwYykKIAkJZG90Y2xvY2sgPSBwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jayAqIDIgLyAzOwpAQCAtMTgyNCw3ICsxODI0LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfaGRtaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlm IChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJZG90Y2xvY2sgLz0gcGlwZV9jb25m aWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl LmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX2Nsb2NrID0gZG90Y2xvY2s7CiAKIAlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IDQ7CiAK QEAgLTE4NDUsNyArMTg0NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9oZG1pX2F1ZGlv KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3LmNydGMpOwogCiAJV0FSTl9P TighcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmspOwogCURSTV9ERUJVR19EUklWRVIoIkVuYWJs aW5nIEhETUkgYXVkaW8gb24gcGlwZSAlY1xuIiwKQEAgLTE5MzEsNyArMTkzMSw3IEBAIHN0YXRp YyB2b2lkIGNwdF9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3LmNydGMp OwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVu Y29kZXItPmJhc2UpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdGVtcDsK QEAgLTE5OTUsNyArMTk5NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfaGRtaShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRt aSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9CiAJCWhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRt aSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhvbGRfY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJdTMyIHRlbXA7CiAKIAl0ZW1wID0gSTkxNV9S RUFEKGludGVsX2hkbWktPmhkbWlfcmVnKTsKQEAgLTIxOTMsMTIgKzIxOTMsMTIgQEAgc3RhdGlj IGJvb2wgaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICAgaW50IGJwYykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPQotCQl0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0 YXRlOworCQl0b19pOTE1KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CisJc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+aHcuc3RhdGU7CiAJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGU7CiAJaW50IGk7CiAKIAlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKQpAQCAt MjIyMyw3ICsyMjIzLDcgQEAgc3RhdGljIGJvb2wgaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWZvcl9lYWNoX25ld19j b25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7 CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvOwogCi0JCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKQorCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmh3 LmNydGMpCiAJCQljb250aW51ZTsKIAogCQlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9 PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwKSB7CkBAIC0yMjY2LDcgKzIyNjYsNyBAQCBp bnRlbF9oZG1pX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAogCQkJICAgaW50ICpjbG9ja18xMmJwYywgaW50ICpjbG9ja18xMGJwYywKIAkJCSAgIGludCAq Y2xvY2tfOGJwYykKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0Yyhjb25maWctPmh3LmNydGMpOwogCiAJaWYgKCFjb25uZWN0b3ItPnlj YmNyXzQyMF9hbGxvd2VkKSB7CiAJCURSTV9FUlJPUigiUGxhdGZvcm0gZG9lc24ndCBzdXBwb3J0 IFlDQkNSNDIwIG91dHB1dFxuIik7CkBAIC0yMjk4LDEyICsyMjk4LDEyIEBAIGludCBpbnRlbF9o ZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0 cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXIt PmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbm5fc3RhdGUtPmNvbm5lY3RvcjsK IAlzdHJ1Y3QgZHJtX3NjZGMgKnNjZGMgPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGRtaS5z Y2RjOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9z dGF0ZSA9CiAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwot CWludCBjbG9ja184YnBjID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Ns b2NrOworCWludCBjbG9ja184YnBjID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0 Y19jbG9jazsKIAlpbnQgY2xvY2tfMTBicGMgPSBjbG9ja184YnBjICogNSAvIDQ7CiAJaW50IGNs b2NrXzEyYnBjID0gY2xvY2tfOGJwYyAqIDMgLyAyOwogCWludCBkZXNpcmVkX2JwcDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHNwY29uLmMKaW5kZXggNzAyOGQwY2YzYmIxLi42Y2EzZjIyZDA1NTAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xzcGNvbi5jCkBAIC0xODksNyArMTg5LDcgQEAgdm9p ZCBsc3Bjb25feWNiY3I0MjBfY29uZmlnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is CiB7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5k aXNwbGF5X2luZm87CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPQotCQkJCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkJCQkmY3J0Y19z dGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWlmIChkcm1fbW9kZV9pc180MjBfb25seShpbmZv LCBhZGp1c3RlZF9tb2RlKSAmJgogCSAgICBjb25uZWN0b3ItPnljYmNyXzQyMF9hbGxvd2VkKSB7 CkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBsc3Bjb25fc2V0X2luZm9mcmFtZXMoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9sc3Bj b24gKmxzcGNvbiA9ICZkaWdfcG9ydC0+bHNwY29uOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAKIAlpZiAoIWxzcGNvbi0+YWN0 aXZlKSB7CiAJCURSTV9FUlJPUigiV3JpdGluZyBpbmZvZnJhbWVzIHdoaWxlIExTUENPTiBkaXNh YmxlZCA/XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYwppbmRleCBlZmVmZWQ2MmE3Zjgu LjgzYzIxNmEzZGY5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZk cy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYwpAQCAtMTM1LDcgKzEz NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2x2ZHNfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAllbHNlCiAJCWZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfUFZTWU5DOwog Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKKwlwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKIAogCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpIDwgNSkKIAkJcGlwZV9jb25maWctPmdtY2hfcGZpdC5sdmRzX2JvcmRlcl9i aXRzID0KQEAgLTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9sdmRzX2dldF9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXBpcGVfY29uZmlnLT5nbWNoX3Bm aXQuY29udHJvbCB8PSB0bXAgJiBQQU5FTF84VE82X0RJVEhFUl9FTkFCTEU7CiAJfQogCi0JcGlw ZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWctPnBv cnRfY2xvY2s7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9sdmRzX3Bwc19n ZXRfaHdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjMwLDgg KzIzMCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9lbmFibGVfbHZkcyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2Vu Y29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRj KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+aHcuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21v ZGU7CiAJaW50IHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB0ZW1wOwogCkBAIC0zOTQsOCArMzk0 LDggQEAgc3RhdGljIGludCBpbnRlbF9sdmRzX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyLAogCQl0b19sdmRzX2VuY29kZXIoJmludGVsX2VuY29kZXIt PmJhc2UpOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9CiAJCWx2 ZHNfZW5jb2Rlci0+YXR0YWNoZWRfY29ubmVjdG9yOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5i YXNlLmNydGMpOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+aHcuY3J0Yyk7CiAJdW5zaWduZWQgaW50 IGx2ZHNfYnBwOwogCiAJLyogU2hvdWxkIG5ldmVyIGhhcHBlbiEhICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcGFuZWwuYwppbmRleCA5Y2Q0ZTM3ZTM5MzQuLjhlYzY1NjVhMDY1NiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wYW5lbC5jCkBAIC0xNzgsNyArMTc4LDcgQEAgaW50ZWxfcGNoX3BhbmVs X2ZpdHRpbmcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCQlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQlpbnQgZml0dGluZ19tb2RlKQogewotCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IHggPSAwLCB5 ID0gMCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwogCiAJLyogTmF0aXZlIG1vZGVzIGRvbid0IG5l ZWQgZml0dGluZyAqLwpAQCAtMzAwLDcgKzMwMCw3IEBAIHN0YXRpYyBpbmxpbmUgdTMyIHBhbmVs X2ZpdHRlcl9zY2FsaW5nKHUzMiBzb3VyY2UsIHUzMiB0YXJnZXQpCiBzdGF0aWMgdm9pZCBpOTY1 X3NjYWxlX2FzcGVjdChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkg ICAgICB1MzIgKnBmaXRfY29udHJvbCkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBzY2FsZWRfd2lkdGggPSBhZGp1c3RlZF9tb2RlLT5j cnRjX2hkaXNwbGF5ICoKIAkJcGlwZV9jb25maWctPnBpcGVfc3JjX2g7CiAJdTMyIHNjYWxlZF9o ZWlnaHQgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAqCkBAIC0zMjEsNyArMzIxLDcgQEAgc3Rh dGljIHZvaWQgaTl4eF9zY2FsZV9hc3BlY3Qoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnLAogCQkJICAgICAgdTMyICpwZml0X2NvbnRyb2wsIHUzMiAqcGZpdF9wZ21fcmF0aW9z LAogCQkJICAgICAgdTMyICpib3JkZXIpCiB7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAl1MzIgc2NhbGVkX3dpZHRoID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxh eSAqCiAJCXBpcGVfY29uZmlnLT5waXBlX3NyY19oOwogCXUzMiBzY2FsZWRfaGVpZ2h0ID0gcGlw ZV9jb25maWctPnBpcGVfc3JjX3cgKgpAQCAtMzgwLDcgKzM4MCw3IEBAIHZvaWQgaW50ZWxfZ21j aF9wYW5lbF9maXR0aW5nKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5k ZXYpOwogCXUzMiBwZml0X2NvbnRyb2wgPSAwLCBwZml0X3BnbV9yYXRpb3MgPSAwLCBib3JkZXIg PSAwOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAkvKiBOYXRpdmUg bW9kZXMgZG9uJ3QgbmVlZCBmaXR0aW5nICovCiAJaWYgKGFkanVzdGVkX21vZGUtPmNydGNfaGRp c3BsYXkgPT0gcGlwZV9jb25maWctPnBpcGVfc3JjX3cgJiYKQEAgLTEwNDcsNyArMTA0Nyw3IEBA IHN0YXRpYyB2b2lkIHZsdl9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9 IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJ c3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwotCWVudW0gcGlw ZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOworCWVu dW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKS0+cGlwZTsK IAl1MzIgY3RsLCBjdGwyOwogCiAJY3RsMiA9IEk5MTVfUkVBRChWTFZfQkxDX1BXTV9DVEwyKHBp cGUpKTsKQEAgLTEwNzcsNyArMTA3Nyw3IEBAIHN0YXRpYyB2b2lkIGJ4dF9lbmFibGVfYmFja2xp Z2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRl LT5jb25uZWN0b3IpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZj b25uZWN0b3ItPnBhbmVsOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpLT5waXBlOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5ody5jcnRjKS0+cGlwZTsKIAl1MzIgcHdtX2N0bCwgdmFsOwogCiAJLyogQ29u dHJvbGxlciAxIHVzZXMgdGhlIHV0aWxpdHkgcGluLiAqLwpAQCAtMTE4OSw3ICsxMTg5LDcgQEAg dm9pZCBpbnRlbF9wYW5lbF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9 IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJ c3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwotCWVudW0gcGlw ZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOworCWVu dW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKS0+cGlwZTsK IAogCWlmICghcGFuZWwtPmJhY2tsaWdodC5wcmVzZW50KQogCQlyZXR1cm47CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcGlwZV9jcmMuYwppbmRleCAxZTJjNDMwN2QwNWEuLmFkOWJiYWRjODU0NyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGlwZV9jcmMuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9waXBlX2NyYy5jCkBAIC0zMDksMTMgKzMwOSwxMyBA QCBpbnRlbF9jcnRjX2NyY19zZXR1cF93b3JrYXJvdW5kcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywgYm9vbCBlbmFibGUpCiAJCWdvdG8gcHV0X3N0YXRlOwogCX0KIAotCXBpcGVfY29uZmlnLT5i YXNlLm1vZGVfY2hhbmdlZCA9IHBpcGVfY29uZmlnLT5oYXNfcHNyOworCXBpcGVfY29uZmlnLT5o dy5tb2RlX2NoYW5nZWQgPSBwaXBlX2NvbmZpZy0+aGFzX3BzcjsKIAlwaXBlX2NvbmZpZy0+Y3Jj X2VuYWJsZWQgPSBlbmFibGU7CiAKIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYKLQkgICAg cGlwZV9jb25maWctPmJhc2UuYWN0aXZlICYmIGNydGMtPnBpcGUgPT0gUElQRV9BICYmCisJICAg IHBpcGVfY29uZmlnLT5ody5hY3RpdmUgJiYgY3J0Yy0+cGlwZSA9PSBQSVBFX0EgJiYKIAkgICAg cGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID09IFRSQU5TQ09ERVJfRURQKQotCQlwaXBlX2Nv bmZpZy0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0cnVlOworCQlwaXBlX2NvbmZpZy0+aHcubW9kZV9j aGFuZ2VkID0gdHJ1ZTsKIAogCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRlKTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKaW5kZXggMmM3ZjNlYmMwMTE3Li44NjIzOTlhNjBmMGQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNDgyLDcgKzQ4Miw3IEBAIHN0YXRpYyBjb25zdCBpbnQg cGVzc2ltYWxfbGF0ZW5jeV9ucyA9IDUwMDA7CiAKIHN0YXRpYyB2b2lkIHZsdl9nZXRfZmlmb19z aXplKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRj KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKIAlzdHJ1Y3Qgdmx2X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUgPSAmY3J0Y19zdGF0 ZS0+d20udmx2LmZpZm9fc3RhdGU7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAt ODE2LDcgKzgxNiw3IEBAIHN0YXRpYyBib29sIGludGVsX3dtX3BsYW5lX3Zpc2libGUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAogCS8q IEZJWE1FIGNoZWNrIHRoZSAnZW5hYmxlJyBpbnN0ZWFkICovCi0JaWYgKCFjcnRjX3N0YXRlLT5i YXNlLmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIGZhbHNl OwogCiAJLyoKQEAgLTg2OSw3ICs4NjksNyBAQCBzdGF0aWMgdm9pZCBwaW5ldmlld191cGRhdGVf d20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWNydGMgPSBzaW5nbGVfZW5hYmxl ZF9jcnRjKGRldl9wcml2KTsKIAlpZiAoY3J0YykgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGU7CisJCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJCQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5m YjsKIAkJaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKQEAgLTExMDUsNyArMTEwNSw3IEBA IHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9t b2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1bnNpZ25lZCBpbnQgbGF0 ZW5jeSA9IGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVtsZXZlbF0gKiAxMDsKIAl1bnNpZ25lZCBp bnQgY2xvY2ssIGh0b3RhbCwgY3BwLCB3aWR0aCwgd207CiAKQEAgLTExNjUsNyArMTE2NSw3IEBA IHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiBzdGF0aWMgYm9vbCBnNHhfcmF3X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgaW50IGxldmVsLCBlbnVtIHBsYW5lX2lk IHBsYW5lX2lkLCB1MTYgdmFsdWUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5ody5jcnRjLT5kZXYp OwogCWJvb2wgZGlydHkgPSBmYWxzZTsKIAogCWZvciAoOyBsZXZlbCA8IGludGVsX3dtX251bV9s ZXZlbHMoZGV2X3ByaXYpOyBsZXZlbCsrKSB7CkBAIC0xMTgxLDcgKzExODEsNyBAQCBzdGF0aWMg Ym9vbCBnNHhfcmF3X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIHN0YXRpYyBib29sIGc0eF9yYXdfZmJjX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgICBpbnQgbGV2ZWwsIHUxNiB2YWx1ZSkKIHsKLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJh c2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CiAJYm9vbCBkaXJ0eSA9IGZhbHNlOwogCiAJ LyogTk9STUFMIGxldmVsIGRvZXNuJ3QgaGF2ZSBhbiBGQkMgd2F0ZXJtYXJrICovCkBAIC0xMjgz LDcgKzEyODMsNyBAQCBzdGF0aWMgYm9vbCBnNHhfcmF3X3BsYW5lX3dtX2lzX3ZhbGlkKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIGJvb2wgZzR4X3Jh d19jcnRjX3dtX2lzX3ZhbGlkKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCQkJCSAgICAgaW50IGxldmVsKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+aHcuY3J0Yy0+ ZGV2KTsKIAogCWlmIChsZXZlbCA+IGRldl9wcml2LT53bS5tYXhfbGV2ZWwpCiAJCXJldHVybiBm YWxzZTsKQEAgLTEzMjEsOSArMTMyMSw5IEBAIHN0YXRpYyB2b2lkIGc0eF9pbnZhbGlkYXRlX3dt cyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogc3RhdGljIGludCBnNHhfY29tcHV0ZV9waXBl X3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRj KTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21p Y19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRl KGNydGNfc3RhdGUtPmh3LnN0YXRlKTsKIAlzdHJ1Y3QgZzR4X3dtX3N0YXRlICp3bV9zdGF0ZSA9 ICZjcnRjX3N0YXRlLT53bS5nNHgub3B0aW1hbDsKIAlpbnQgbnVtX2FjdGl2ZV9wbGFuZXMgPSBo d2VpZ2h0MzIoY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyAmCiAJCQkJCSAgfkJJVChQTEFORV9D VVJTT1IpKTsKQEAgLTE0MTAsMTcgKzE0MTAsMTcgQEAgc3RhdGljIGludCBnNHhfY29tcHV0ZV9w aXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgaW50 IGc0eF9jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3 X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGc0eF93bV9z dGF0ZSAqaW50ZXJtZWRpYXRlID0gJm5ld19jcnRjX3N0YXRlLT53bS5nNHguaW50ZXJtZWRpYXRl OwogCWNvbnN0IHN0cnVjdCBnNHhfd21fc3RhdGUgKm9wdGltYWwgPSAmbmV3X2NydGNfc3RhdGUt PndtLmc0eC5vcHRpbWFsOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRl ID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsK KwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5ody5zdGF0ZSk7CiAJY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0KIAkJaW50ZWxfYXRv bWljX2dldF9vbGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0Yyk7CiAJY29uc3Qgc3RydWN0 IGc0eF93bV9zdGF0ZSAqYWN0aXZlID0gJm9sZF9jcnRjX3N0YXRlLT53bS5nNHgub3B0aW1hbDsK IAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkOwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5h Y3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5i YXNlKSkgeworCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2Ny dGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmh3KSkgewogCQkqaW50ZXJtZWRpYXRl ID0gKm9wdGltYWw7CiAKIAkJaW50ZXJtZWRpYXRlLT5jeHNyID0gZmFsc2U7CkBAIC0xNTUyLDgg KzE1NTIsOCBAQCBzdGF0aWMgdm9pZCBnNHhfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHN0YXRpYyB2b2lkIGc0eF9pbml0aWFsX3dhdGVybWFy a3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5k ZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5ody5jcnRjKTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiAJY3J0 Yy0+d20uYWN0aXZlLmc0eCA9IGNydGNfc3RhdGUtPndtLmc0eC5pbnRlcm1lZGlhdGU7CkBAIC0x NTY0LDggKzE1NjQsOCBAQCBzdGF0aWMgdm9pZCBnNHhfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZvaWQgZzR4X29wdGltaXplX3dh dGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo c3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAKIAlpZiAoIWNydGNfc3RhdGUtPndtLm5l ZWRfcG9zdHZibF91cGRhdGUpCiAJCXJldHVybjsKQEAgLTE2MTQsNyArMTYxNCw3IEBAIHN0YXRp YyB1MTYgdmx2X2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9t b2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1bnNpZ25lZCBpbnQgY2xv Y2ssIGh0b3RhbCwgY3BwLCB3aWR0aCwgd207CiAKIAlpZiAoZGV2X3ByaXYtPndtLnByaV9sYXRl bmN5W2xldmVsXSA9PSAwKQpAQCAtMTY1Miw3ICsxNjUyLDcgQEAgc3RhdGljIGJvb2wgdmx2X25l ZWRfc3ByaXRlMF9maWZvX3dvcmthcm91bmQodW5zaWduZWQgaW50IGFjdGl2ZV9wbGFuZXMpCiAK IHN0YXRpYyBpbnQgdmx2X2NvbXB1dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGc0eF9waXBlX3dtICpy YXcgPQogCQkmY3J0Y19zdGF0ZS0+d20udmx2LnJhd1tWTFZfV01fTEVWRUxfUE0yXTsKIAlzdHJ1 Y3Qgdmx2X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9f c3RhdGU7CkBAIC0xNzY0LDcgKzE3NjQsNyBAQCBzdGF0aWMgdTE2IHZsdl9pbnZlcnRfd21fdmFs dWUodTE2IHdtLCB1MTYgZmlmb19zaXplKQogc3RhdGljIGJvb2wgdmx2X3Jhd19wbGFuZV93bV9z ZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZlbCwg ZW51bSBwbGFuZV9pZCBwbGFuZV9pZCwgdTE2IHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ aHcuY3J0Yy0+ZGV2KTsKIAlpbnQgbnVtX2xldmVscyA9IGludGVsX3dtX251bV9sZXZlbHMoZGV2 X3ByaXYpOwogCWJvb2wgZGlydHkgPSBmYWxzZTsKIApAQCAtMTgzOSwxNiArMTgzOSwxNiBAQCBz dGF0aWMgYm9vbCB2bHZfcmF3X2NydGNfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIHN0YXRpYyBpbnQgdmx2X2NvbXB1dGVfcGlwZV93bShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0 Yyk7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQotCQl0b19pbnRlbF9hdG9t aWNfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CisJCXRvX2ludGVsX2F0b21pY19zdGF0 ZShjcnRjX3N0YXRlLT5ody5zdGF0ZSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwogCXN0cnVjdCB2bHZfd21fc3RhdGUgKndt X3N0YXRlID0gJmNydGNfc3RhdGUtPndtLnZsdi5vcHRpbWFsOwogCWNvbnN0IHN0cnVjdCB2bHZf Zmlmb19zdGF0ZSAqZmlmb19zdGF0ZSA9CiAJCSZjcnRjX3N0YXRlLT53bS52bHYuZmlmb19zdGF0 ZTsKIAlpbnQgbnVtX2FjdGl2ZV9wbGFuZXMgPSBod2VpZ2h0MzIoY3J0Y19zdGF0ZS0+YWN0aXZl X3BsYW5lcyAmCiAJCQkJCSAgfkJJVChQTEFORV9DVVJTT1IpKTsKLQlib29sIG5lZWRzX21vZGVz ZXQgPSBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFzZSk7CisJ Ym9vbCBuZWVkc19tb2Rlc2V0ID0gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJmNydGNf c3RhdGUtPmh3KTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9z dGF0ZTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm5ld19wbGFuZV9zdGF0ZTsK IAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwpAQCAtMTk0Nyw4ICsxOTQ3LDggQEAgc3RhdGlj IGludCB2bHZfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogc3RhdGljIHZvaWQgdmx2X2F0b21pY191cGRhdGVfZmlmbyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF91bmNv cmUgKnVuY29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCWNvbnN0IHN0cnVjdCB2bHZfZmlmb19z dGF0ZSAqZmlmb19zdGF0ZSA9CiAJCSZjcnRjX3N0YXRlLT53bS52bHYuZmlmb19zdGF0ZTsKQEAg LTIwNDMsMTcgKzIwNDMsMTcgQEAgc3RhdGljIHZvaWQgdmx2X2F0b21pY191cGRhdGVfZmlmbyhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAogc3RhdGljIGludCB2bHZfY29tcHV0 ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRl KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMobmV3X2NydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCB2bHZfd21fc3RhdGUgKmludGVy bWVkaWF0ZSA9ICZuZXdfY3J0Y19zdGF0ZS0+d20udmx2LmludGVybWVkaWF0ZTsKIAljb25zdCBz dHJ1Y3Qgdmx2X3dtX3N0YXRlICpvcHRpbWFsID0gJm5ld19jcnRjX3N0YXRlLT53bS52bHYub3B0 aW1hbDsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2lu dGVsX2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CisJCXRvX2ludGVs X2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+aHcuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0b21pY19nZXRfb2xk X2NydGNfc3RhdGUoaW50ZWxfc3RhdGUsIGNydGMpOwogCWNvbnN0IHN0cnVjdCB2bHZfd21fc3Rh dGUgKmFjdGl2ZSA9ICZvbGRfY3J0Y19zdGF0ZS0+d20udmx2Lm9wdGltYWw7CiAJaW50IGxldmVs OwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRj X25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkgeworCWlmICghbmV3X2NydGNf c3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2Ny dGNfc3RhdGUtPmh3KSkgewogCQkqaW50ZXJtZWRpYXRlID0gKm9wdGltYWw7CiAKIAkJaW50ZXJt ZWRpYXRlLT5jeHNyID0gZmFsc2U7CkBAIC0yMTcxLDggKzIxNzEsOCBAQCBzdGF0aWMgdm9pZCB2 bHZfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IHN0YXRpYyB2b2lkIHZsdl9pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCiAJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKTsKIAogCW11dGV4X2xv Y2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiAJY3J0Yy0+d20uYWN0aXZlLnZsdiA9IGNydGNf c3RhdGUtPndtLnZsdi5pbnRlcm1lZGlhdGU7CkBAIC0yMTgzLDggKzIxODMsOCBAQCBzdGF0aWMg dm9pZCB2bHZfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLAogc3RhdGljIHZvaWQgdmx2X29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+aHcu Y3J0Yyk7CiAKIAlpZiAoIWNydGNfc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUpCiAJCXJl dHVybjsKQEAgLTIyMDksNyArMjIwOSw3IEBAIHN0YXRpYyB2b2lkIGk5NjVfdXBkYXRlX3dtKHN0 cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAkJLyogc2VsZi1yZWZyZXNoIGhhcyBtdWNo IGhpZ2hlciBsYXRlbmN5ICovCiAJCXN0YXRpYyBjb25zdCBpbnQgc3JfbGF0ZW5jeV9ucyA9IDEy MDAwOwogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0J CQkmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkmY3J0Yy0+Y29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJ CQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJaW50IGNsb2NrID0gYWRqdXN0ZWRf bW9kZS0+Y3J0Y19jbG9jazsKQEAgLTIyOTAsNyArMjI5MCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhf dXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAljcnRjID0gaW50ZWxf Z2V0X2NydGNfZm9yX3BsYW5lKGRldl9wcml2LCBQTEFORV9BKTsKIAlpZiAoaW50ZWxfY3J0Y19h Y3RpdmUoY3J0YykpIHsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPQotCQkJJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkJJmNydGMt PmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHA7CkBA IC0yMzE3LDcgKzIzMTcsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShk ZXZfcHJpdiwgUExBTkVfQik7CiAJaWYgKGludGVsX2NydGNfYWN0aXZlKGNydGMpKSB7CiAJCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVk X21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJCWNydGMtPmJh c2UucHJpbWFyeS0+c3RhdGUtPmZiOwogCQlpbnQgY3BwOwpAQCAtMjM2NSw3ICsyMzY1LDcgQEAg c3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRj KQogCQkvKiBzZWxmLXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KIAkJc3RhdGlj IGNvbnN0IGludCBzcl9sYXRlbmN5X25zID0gNjAwMDsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmVuYWJsZWQtPmNvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkJJmVuYWJsZWQtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJY29u c3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJZW5hYmxlZC0+YmFzZS5wcmltYXJ5 LT5zdGF0ZS0+ZmI7CiAJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7CkBA IC0yNDIzLDcgKzI0MjMsNyBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJaWYgKGNydGMgPT0gTlVMTCkKIAkJcmV0dXJuOwogCi0J YWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlhZGp1 c3RlZF9tb2RlID0gJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlwbGFuZWFfd20g PSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKIAkJCQkgICAg ICAgJmk4NDVfd21faW5mbywKIAkJCQkgICAgICAgZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2ZpZm9f c2l6ZShkZXZfcHJpdiwgUExBTkVfQSksCkBAIC0yNTEzLDcgKzI1MTMsNyBAQCBzdGF0aWMgdTMy IGlsa19jb21wdXRlX3ByaV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRl LAogCQlyZXR1cm4gbWV0aG9kMTsKIAogCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihjc3RhdGUt PnBpeGVsX3JhdGUsCi0JCQkJIGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFs LAorCQkJCSBjc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCiAJCQkJIGRybV9y ZWN0X3dpZHRoKCZwc3RhdGUtPmJhc2UuZHN0KSwKIAkJCQkgY3BwLCBtZW1fdmFsdWUpOwogCkBA IC0yNTQxLDcgKzI1NDEsNyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX3Nwcl93bShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCiAJbWV0aG9kMSA9IGlsa193bV9tZXRo b2QxKGNzdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOwogCW1ldGhvZDIgPSBpbGtf d21fbWV0aG9kMihjc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkJIGNzdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJCSBjc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19o dG90YWwsCiAJCQkJIGRybV9yZWN0X3dpZHRoKCZwc3RhdGUtPmJhc2UuZHN0KSwKIAkJCQkgY3Bw LCBtZW1fdmFsdWUpOwogCXJldHVybiBtaW4obWV0aG9kMSwgbWV0aG9kMik7CkBAIC0yNTY2LDcg KzI1NjYsNyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX2N1cl93bShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAogCWNwcCA9IHBzdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5j cHBbMF07CiAKIAlyZXR1cm4gaWxrX3dtX21ldGhvZDIoY3N0YXRlLT5waXhlbF9yYXRlLAotCQkJ ICAgICAgY3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCisJCQkgICAgICBj c3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCiAJCQkgICAgICBwc3RhdGUtPmJh c2UuY3J0Y193LCBjcHAsIG1lbV92YWx1ZSk7CiB9CiAKQEAgLTI3ODcsMTIgKzI3ODcsMTIgQEAg c3RhdGljIHUzMgogaHN3X2NvbXB1dGVfbGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNzdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpp bnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjc3RhdGUtPmJhc2Uuc3RhdGUp OworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3N0YXRlLT5ody5zdGF0ZSk7CiAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGU7CisJCSZjc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdTMyIGxpbmV0aW1l LCBpcHNfbGluZXRpbWU7CiAKLQlpZiAoIWNzdGF0ZS0+YmFzZS5hY3RpdmUpCisJaWYgKCFjc3Rh dGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIDA7CiAJaWYgKFdBUk5fT04oYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19jbG9jayA9PSAwKSkKIAkJcmV0dXJuIDA7CkBAIC0zMTAyLDggKzMxMDIsOCBAQCBzdGF0 aWMgYm9vbCBpbGtfdmFsaWRhdGVfcGlwZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAvKiBDb21wdXRlIG5ldyB3YXRlcm1hcmtzIGZvciB0aGUgcGlwZSAqLwog c3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj c3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3N0YXRlLT5iYXNl LnN0YXRlOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3N0 YXRlLT5ody5zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcGlwZV93bTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKIAljb25zdCBzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CkBAIC0zMTE3LDcgKzMxMTcs OCBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNzdGF0ZSkKIAogCXBpcGVfd20gPSAmY3N0YXRlLT53bS5pbGsub3B0aW1hbDsKIAotCWRy bV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgcGxhbmVfc3Rh dGUsICZjc3RhdGUtPmJhc2UpIHsKKwlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxh bmVfc3RhdGUocGxhbmUsIHBsYW5lX3N0YXRlLAorCQkJCQkJICAgJmNzdGF0ZS0+aHcpIHsKIAkJ Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwcyA9IHRvX2ludGVsX3BsYW5lX3N0YXRl KHBsYW5lX3N0YXRlKTsKIAogCQlpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJ TUFSWSkKQEAgLTMxMjgsNyArMzEyOSw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93 bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCQkJY3Vyc3RhdGUgPSBwczsKIAl9 CiAKLQlwaXBlX3dtLT5waXBlX2VuYWJsZWQgPSBjc3RhdGUtPmJhc2UuYWN0aXZlOworCXBpcGVf d20tPnBpcGVfZW5hYmxlZCA9IGNzdGF0ZS0+aHcuYWN0aXZlOwogCWlmIChzcHJzdGF0ZSkgewog CQlwaXBlX3dtLT5zcHJpdGVzX2VuYWJsZWQgPSBzcHJzdGF0ZS0+YmFzZS52aXNpYmxlOwogCQlw aXBlX3dtLT5zcHJpdGVzX3NjYWxlZCA9IHNwcnN0YXRlLT5iYXNlLnZpc2libGUgJiYKQEAgLTMx ODUsMTEgKzMxODYsMTEgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiAgKi8KIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50 ZXJtZWRpYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdzdGF0ZSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMobmV3c3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKG5l d3N0YXRlLT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYSA9 ICZuZXdzdGF0ZS0+d20uaWxrLmludGVybWVkaWF0ZTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0ZS0+YmFz ZS5zdGF0ZSk7CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0ZS0+aHcuc3RhdGUpOwog CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRzdGF0ZSA9CiAJCWludGVsX2F0b21p Y19nZXRfb2xkX2NydGNfc3RhdGUoaW50ZWxfc3RhdGUsIGludGVsX2NydGMpOwogCWNvbnN0IHN0 cnVjdCBpbnRlbF9waXBlX3dtICpiID0gJm9sZHN0YXRlLT53bS5pbGsub3B0aW1hbDsKQEAgLTMy MDEsNyArMzIwMiw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdzdGF0ZSkKIAkgKiBhbmQgYWZ0ZXIgdGhlIHZibGFu ay4KIAkgKi8KIAkqYSA9IG5ld3N0YXRlLT53bS5pbGsub3B0aW1hbDsKLQlpZiAoIW5ld3N0YXRl LT5iYXNlLmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3c3RhdGUt PmJhc2UpIHx8CisJaWYgKCFuZXdzdGF0ZS0+aHcuYWN0aXZlIHx8IGRybV9hdG9taWNfY3J0Y19u ZWVkc19tb2Rlc2V0KCZuZXdzdGF0ZS0+aHcpIHx8CiAJICAgIGludGVsX3N0YXRlLT5za2lwX2lu dGVybWVkaWF0ZV93bSkKIAkJcmV0dXJuIDA7CiAKQEAgLTM4MjUsNyArMzgyNiw3IEBAIHN0YXRp YyB1MTYgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQogCQlyZXR1cm4gZGRiX3NpemUgLSA0 OyAvKiA0IGJsb2NrcyBmb3IgYnlwYXNzIHBhdGggYWxsb2NhdGlvbiAqLwogCi0JYWRqdXN0ZWRf bW9kZSA9ICZjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlhZGp1c3RlZF9tb2RlID0gJmNz dGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl0b3RhbF9kYXRhX2J3ID0gdG90YWxfZGF0YV9yYXRl ICogZHJtX21vZGVfdnJlZnJlc2goYWRqdXN0ZWRfbW9kZSk7CiAKIAkvKgpAQCAtMzg1NCw5ICsz ODU1LDkgQEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9j LCAvKiBvdXQgKi8KIAkJCQkgICBpbnQgKm51bV9hY3RpdmUgLyogb3V0ICovKQogewotCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPmh3LnN0YXRlOwogCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRl KTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmZvcl9jcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7CisJc3Ry dWN0IGRybV9jcnRjICpmb3JfY3J0YyA9IGNzdGF0ZS0+aHcuY3J0YzsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJY29uc3Qgc3RydWN0IGRybV9jcnRjICpjcnRj OwogCXUzMiBwaXBlX3dpZHRoID0gMCwgdG90YWxfd2lkdGggPSAwLCB3aWR0aF9iZWZvcmVfcGlw ZSA9IDA7CkBAIC0zODY0LDcgKzM4NjUsNyBAQCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25f bGltaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MTYgZGRiX3NpemU7 CiAJdTMyIGk7CiAKLQlpZiAoV0FSTl9PTighc3RhdGUpIHx8ICFjc3RhdGUtPmJhc2UuYWN0aXZl KSB7CisJaWYgKFdBUk5fT04oIXN0YXRlKSB8fCAhY3N0YXRlLT5ody5hY3RpdmUpIHsKIAkJYWxs b2MtPnN0YXJ0ID0gMDsKIAkJYWxsb2MtPmVuZCA9IDA7CiAJCSpudW1fYWN0aXZlID0gaHdlaWdo dDMyKGRldl9wcml2LT5hY3RpdmVfY3J0Y3MpOwpAQCAtMzkzOSw3ICszOTQwLDcgQEAgc3RhdGlj IHVuc2lnbmVkIGludAogc2tsX2N1cnNvcl9hbGxvY2F0aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgICBpbnQgbnVtX2FjdGl2ZSkKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGNfc3RhdGUtPmh3LmNydGMtPmRldik7CiAJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtf d21fbWF4X2xldmVsKGRldl9wcml2KTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHdtID0ge307CiAJ aW50IHJldCwgbWluX2RkYl9hbGxvYyA9IDA7CkBAIC00MTA3LDcgKzQxMDgsNyBAQCBza2xfcGlw ZV9kb3duc2NhbGVfYW1vdW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewogCXVpbnRfZml4ZWRfMTZfMTZfdCBwaXBlX2Rvd25zY2FsZSA9IHUzMl90b19maXhl ZDE2KDEpOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3Rh dGUtPmh3LmVuYWJsZSkKIAkJcmV0dXJuIHBpcGVfZG93bnNjYWxlOwogCiAJaWYgKGNydGNfc3Rh dGUtPnBjaF9wZml0LmVuYWJsZWQpIHsKQEAgLTQxMzksNyArNDE0MCw3IEBAIGludCBza2xfY2hl Y2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7Ci0Jc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0gJmNzdGF0ZS0+YmFzZTsKKwlzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSAmY3N0YXRlLT5odzsKIAlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZTsKIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7CkBAIC00MTQ5 LDcgKzQxNTAsNyBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMsCiAJdWludF9maXhlZF8xNl8xNl90IHBpcGVfZG93bnNjYWxl OwogCXVpbnRfZml4ZWRfMTZfMTZfdCBtYXhfZG93bnNjYWxlID0gdTMyX3RvX2ZpeGVkMTYoMSk7 CiAKLQlpZiAoIWNzdGF0ZS0+YmFzZS5lbmFibGUpCisJaWYgKCFjc3RhdGUtPmh3LmVuYWJsZSkK IAkJcmV0dXJuIDA7CiAKIAlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3Rh dGUocGxhbmUsIHBzdGF0ZSwgY3J0Y19zdGF0ZSkgewpAQCAtNDI0OCw3ICs0MjQ5LDcgQEAgc2ts X2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmlu dGVsX2NzdGF0ZSwKIAkJCQkgdTY0ICpwbGFuZV9kYXRhX3JhdGUsCiAJCQkJIHU2NCAqdXZfcGxh bmVfZGF0YV9yYXRlKQogewotCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlID0gJmludGVs X2NzdGF0ZS0+YmFzZTsKKwlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNzdGF0ZSA9ICZpbnRlbF9j c3RhdGUtPmh3OwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNzdGF0ZS0+c3Rh dGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9z dGF0ZSAqcHN0YXRlOwpAQCAtNDI4NCw3ICs0Mjg1LDcgQEAgc3RhdGljIHU2NAogaWNsX2dldF90 b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2Nz dGF0ZSwKIAkJCQkgdTY0ICpwbGFuZV9kYXRhX3JhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjX3N0 YXRlICpjc3RhdGUgPSAmaW50ZWxfY3N0YXRlLT5iYXNlOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3N0YXRlID0gJmludGVsX2NzdGF0ZS0+aHc7CiAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlID0gY3N0YXRlLT5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAljb25z dCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGU7CkBAIC00MzM5LDggKzQzNDAsOCBAQCBz dGF0aWMgaW50CiBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNzdGF0ZSwKIAkJICAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiIC8qIG91dCAq LykKIHsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjc3RhdGUtPmJhc2Uuc3Rh dGU7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3N0YXRlLT5ody5zdGF0ZTsKKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBjc3RhdGUtPmh3LmNydGM7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxs b2MgPSAmY3N0YXRlLT53bS5za2wuZGRiOwpAQCAtNDM2Miw3ICs0MzYzLDcgQEAgc2tsX2FsbG9j YXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAJaWYgKFdBUk5f T04oIXN0YXRlKSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoIWNzdGF0ZS0+YmFzZS5hY3RpdmUpIHsK KwlpZiAoIWNzdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCWFsbG9jLT5zdGFydCA9IGFsbG9jLT5lbmQg PSAwOwogCQlyZXR1cm4gMDsKIAl9CkBAIC00NjA0LDcgKzQ2MDUsNyBAQCBpbnRlbF9nZXRfbGlu ZXRpbWVfdXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIAl1MzIgY3J0 Y19odG90YWw7CiAJdWludF9maXhlZF8xNl8xNl90IGxpbmV0aW1lX3VzOwogCi0JaWYgKCFjc3Rh dGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiB1MzJf dG9fZml4ZWQxNigwKTsKIAogCXBpeGVsX3JhdGUgPSBjc3RhdGUtPnBpeGVsX3JhdGU7CkBAIC00 NjEyLDcgKzQ2MTMsNyBAQCBpbnRlbF9nZXRfbGluZXRpbWVfdXMoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNzdGF0ZSkKIAlpZiAoV0FSTl9PTihwaXhlbF9yYXRlID09IDApKQogCQly ZXR1cm4gdTMyX3RvX2ZpeGVkMTYoMCk7CiAKLQljcnRjX2h0b3RhbCA9IGNzdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOworCWNydGNfaHRvdGFsID0gY3N0YXRlLT5ody5hZGp1 c3RlZF9tb2RlLmNydGNfaHRvdGFsOwogCWxpbmV0aW1lX3VzID0gZGl2X2ZpeGVkMTYoY3J0Y19o dG90YWwgKiAxMDAwLCBwaXhlbF9yYXRlKTsKIAogCXJldHVybiBsaW5ldGltZV91czsKQEAgLTQ2 NDcsNyArNDY0OCw3IEBAIHNrbF9jb21wdXRlX3dtX3BhcmFtcyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgICAgdTMyIHBsYW5lX3BpeGVsX3JhdGUsIHN0 cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJICAgICAgaW50IGNvbG9yX3BsYW5lKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5ody5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKIAl1MzIgaW50ZXJtX3BicGw7CiAKQEAgLTQ3NzMsNyArNDc3NCw3 IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsCiAJCQkJIGNvbnN0IHN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3Vs dF9wcmV2LAogCQkJCSBzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHQgLyogb3V0ICovKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0YXRlLT5iYXNl LmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjc3RhdGUtPmh3LmNydGMtPmRldik7CiAJdTMyIGxhdGVuY3kgPSBkZXZfcHJpdi0+d20uc2ts X2xhdGVuY3lbbGV2ZWxdOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBtZXRob2QxLCBtZXRob2QyOwog CXVpbnRfZml4ZWRfMTZfMTZfdCBzZWxlY3RlZF9yZXN1bHQ7CkBAIC00Nzk5LDE0ICs0ODAwLDE0 IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsCiAJbWV0aG9kMSA9IHNrbF93bV9tZXRob2QxKGRldl9wcml2LCB3 cC0+cGxhbmVfcGl4ZWxfcmF0ZSwKIAkJCQkgd3AtPmNwcCwgbGF0ZW5jeSwgd3AtPmRidWZfYmxv Y2tfc2l6ZSk7CiAJbWV0aG9kMiA9IHNrbF93bV9tZXRob2QyKHdwLT5wbGFuZV9waXhlbF9yYXRl LAotCQkJCSBjc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3N0 YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBsYXRlbmN5LAogCQkJCSB3 cC0+cGxhbmVfYmxvY2tzX3Blcl9saW5lKTsKIAogCWlmICh3cC0+eV90aWxlZCkgewogCQlzZWxl Y3RlZF9yZXN1bHQgPSBtYXhfZml4ZWQxNihtZXRob2QyLCB3cC0+eV90aWxlX21pbmltdW0pOwog CX0gZWxzZSB7Ci0JCWlmICgod3AtPmNwcCAqIGNzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfaHRvdGFsIC8KKwkJaWYgKCh3cC0+Y3BwICogY3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfaHRvdGFsIC8KIAkJICAgICB3cC0+ZGJ1Zl9ibG9ja19zaXplIDwgMSkgJiYKIAkJICAgICAo d3AtPnBsYW5lX2J5dGVzX3Blcl9saW5lIC8gd3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEpKSB7CiAJ CQlzZWxlY3RlZF9yZXN1bHQgPSBtZXRob2QyOwpAQCAtNDg5Nyw3ICs0ODk4LDcgQEAgc2tsX2Nv bXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiAJ CSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3bV9wYXJhbXMsCiAJCSAgICAgIHN0 cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0YXRlLT5ody5jcnRjLT5kZXYpOwog CWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJc3Ry dWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYgPSAmbGV2ZWxzWzBdOwogCkBAIC00OTE0LDcg KzQ5MTUsNyBAQCBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSwKIHN0YXRpYyB1MzIKIHNrbF9jb21wdXRlX2xpbmV0aW1lX3dtKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlID0gY3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSA9IGNzdGF0ZS0+aHcuc3RhdGU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKIAl1aW50X2ZpeGVkXzE2XzE2X3QgbGlu ZXRpbWVfdXM7CiAJdTMyIGxpbmV0aW1lX3dtOwpAQCAtNDkzMyw3ICs0OTM0LDcgQEAgc3RhdGlj IHZvaWQgc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3N0YXRlLAogCQkJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwK IAkJCQkgICAgICBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICp3bSkKIHsKLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3N0YXRlLT5iYXNlLmNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY3N0YXRlLT5ody5jcnRjLT5kZXY7CiAJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXUxNiB0cmFuc19taW4sIHRyYW5zX3lfdGlsZV9t aW47CiAJY29uc3QgdTE2IHRyYW5zX2Ftb3VudCA9IDEwOyAvKiBUaGlzIGlzIGNvbmZpZ3VyYWJs ZSBhbW91bnQgKi8KQEAgLTUwOTMsOSArNTA5NCw5IEBAIHN0YXRpYyBpbnQgaWNsX2J1aWxkX3Bs YW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50 IHNrbF9idWlsZF9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNzdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAm Y3N0YXRlLT53bS5za2wub3B0aW1hbDsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUgPSAmY3N0YXRlLT5iYXNlOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9 ICZjc3RhdGUtPmh3OwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCWNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBzdGF0ZTsKIAlpbnQgcmV0OwpAQCAtNTI4NSw4ICs1Mjg2LDggQEAg c3RhdGljIGludAogc2tsX2RkYl9hZGRfYWZmZWN0ZWRfcGxhbmVzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVs X2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+aHcuc3RhdGUpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKIApAQCAtNTU4Niw3ICs1NTg3LDcgQEAgc3Rh dGljIGludCBza2xfd21fYWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSwKIAkJICogcG93ZXIgd2VsbCB0aGUgaGFyZHdhcmUgc3RhdGUgd2lsbCBnbyBv dXQgb2Ygc3luYwogCQkgKiB3aXRoIHRoZSBzb2Z0d2FyZSBzdGF0ZS4KIAkJICovCi0JCWlmICgh ZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSAmJgor CQlpZiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+aHcp ICYmCiAJCSAgICBza2xfcGxhbmVfd21fZXF1YWxzKGRldl9wcml2LAogCQkJCQkmb2xkX2NydGNf c3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF0sCiAJCQkJCSZuZXdfY3J0Y19z dGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW3BsYW5lX2lkXSkpCkBAIC01NjUzLDcgKzU2NTQs NyBAQCBza2xfY29tcHV0ZV93bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHN0 YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCiAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUt Pmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo c3RhdGUtPmJhc2UuZGV2KTsKIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3N0YXRl LT53bS5za2wub3B0aW1hbDsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC01NjY3 LDcgKzU2NjgsNyBAQCBzdGF0aWMgdm9pZCBza2xfYXRvbWljX3VwZGF0ZV9jcnRjX3dtKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZvaWQgc2tsX2luaXRpYWxfd20o c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0Yyhjc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGludGVsX2NydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qgc2tsX2RkYl92YWx1ZXMgKnJlc3Vs dHMgPSAmc3RhdGUtPndtX3Jlc3VsdHM7CkBAIC01Njc3LDcgKzU2NzgsNyBAQCBzdGF0aWMgdm9p ZCBza2xfaW5pdGlhbF93bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAogCW11 dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiAKLQlpZiAoY3N0YXRlLT5iYXNlLmFj dGl2ZV9jaGFuZ2VkKQorCWlmIChjc3RhdGUtPmh3LmFjdGl2ZV9jaGFuZ2VkKQogCQlza2xfYXRv bWljX3VwZGF0ZV9jcnRjX3dtKHN0YXRlLCBjc3RhdGUpOwogCiAJbXV0ZXhfdW5sb2NrKCZkZXZf cHJpdi0+d20ud21fbXV0ZXgpOwpAQCAtNTczNiw4ICs1NzM3LDggQEAgc3RhdGljIHZvaWQgaWxr X3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBz dGF0aWMgdm9pZCBpbGtfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3N0YXRlLT5ody5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmh3LmNydGMpOwogCiAJbXV0ZXhfbG9j aygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIAlpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrID0g Y3N0YXRlLT53bS5pbGsuaW50ZXJtZWRpYXRlOwpAQCAtNTc0OCw4ICs1NzQ5LDggQEAgc3RhdGlj IHZvaWQgaWxrX2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKIHN0YXRpYyB2b2lkIGlsa19vcHRpbWl6ZV93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0 YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3N0 YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNzdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+aHcuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3N0YXRlLT5ody5jcnRjKTsKIAog CW11dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiAJaWYgKGNzdGF0ZS0+d20ubmVl ZF9wb3N0dmJsX3VwZGF0ZSkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwppbmRleCAwMWNhNTAy MDk5ZGYuLmU5MTA2NTcwNGI5NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcHNyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKQEAgLTUzNiw4 ICs1MzYsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9wc3IyX2NvbmZpZ192YWxpZChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLAogCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1 KGludGVsX2RwKTsKLQlpbnQgY3J0Y19oZGlzcGxheSA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCWludCBjcnRjX3ZkaXNwbGF5ID0gY3J0Y19zdGF0ZS0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdmRpc3BsYXk7CisJaW50IGNydGNfaGRpc3BsYXkgPSBj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7CisJaW50IGNydGNfdmRp c3BsYXkgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdmRpc3BsYXk7CiAJaW50 IHBzcl9tYXhfaCA9IDAsIHBzcl9tYXhfdiA9IDA7CiAKIAlpZiAoIWRldl9wcml2LT5wc3Iuc2lu a19wc3IyX3N1cHBvcnQpCkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBpbnRlbF9wc3JfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKIAljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5i YXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWlu dCBwc3Jfc2V0dXBfdGltZTsKIAogCWlmICghQ0FOX1BTUihkZXZfcHJpdikpCkBAIC03MzEsNyAr NzMxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9sb2NrZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJZGV2X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPSBp bnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUpOwogCWRldl9wcml2LT5wc3Iu YnVzeV9mcm9udGJ1ZmZlcl9iaXRzID0gMDsKLQlkZXZfcHJpdi0+cHNyLnBpcGUgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CisJZGV2X3ByaXYtPnBzci5waXBl ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5ody5jcnRjKS0+cGlwZTsKIAogCURSTV9ERUJV R19LTVMoIkVuYWJsaW5nIFBTUiVzXG4iLAogCQkgICAgICBkZXZfcHJpdi0+cHNyLnBzcjJfZW5h YmxlZCA/ICIyIiA6ICIxIik7CkBAIC05MjksNyArOTI5LDcgQEAgdm9pZCBpbnRlbF9wc3JfdXBk YXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiBpbnQgaW50ZWxfcHNyX3dhaXRfZm9yX2lk bGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlLAogCQkJICAg IHUzMiAqb3V0X3ZhbHVlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYg KCFkZXZfcHJpdi0+cHNyLmVuYWJsZWQgfHwgIW5ld19jcnRjX3N0YXRlLT5oYXNfcHNyKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc2R2by5jCmluZGV4IDA4NjBhZTM2YmI4Ny4uYjQxYzYxZmRmOTY0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jCkBAIC0xMDU5LDcgKzEwNTksNyBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9zZHZvX2NvbXB1dGVfYXZpX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfc2R2byAq aW50ZWxfc2R2bywKIHsKIAlzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSA9ICZjcnRj X3N0YXRlLT5pbmZvZnJhbWVzLmF2aS5hdmk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwor CQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgcmV0OwogCiAJaWYgKCFjcnRj X3N0YXRlLT5oYXNfaGRtaV9zaW5rKQpAQCAtMTI0OCw4ICsxMjQ4LDggQEAgc3RhdGljIGludCBp bnRlbF9zZHZvX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAlzdHJ1Y3QgaW50 ZWxfc2R2b19jb25uZWN0b3IgKmludGVsX3Nkdm9fY29ubmVjdG9yID0KIAkJdG9faW50ZWxfc2R2 b19jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwot CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLm1vZGU7 CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmcGlw ZV9jb25maWctPmh3Lm1vZGU7CiAKIAlEUk1fREVCVUdfS01TKCJmb3JjaW5nIGJwYyB0byA4IGZv ciBTRFZPXG4iKTsKIAlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSA4KjM7CkBAIC0xNDAxLDEzICsx NDAxLDEzIEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAkJCQkgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAljb25zdCBzdHJ1 Y3QgaW50ZWxfc2R2b19jb25uZWN0b3Jfc3RhdGUgKnNkdm9fc3RhdGUgPQogCQl0b19pbnRlbF9z ZHZvX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfc2R2 b19jb25uZWN0b3IgKmludGVsX3Nkdm9fY29ubmVjdG9yID0KIAkJdG9faW50ZWxfc2R2b19jb25u ZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLm1vZGU7CisJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm1vZGUgPSAmY3J0Y19zdGF0ZS0+aHcubW9kZTsKIAlzdHJ1Y3QgaW50ZWxf c2R2byAqaW50ZWxfc2R2byA9IHRvX3Nkdm8oaW50ZWxfZW5jb2Rlcik7CiAJdTMyIHNkdm94Owog CXN0cnVjdCBpbnRlbF9zZHZvX2luX291dF9tYXAgaW5fb3V0OwpAQCAtMTYwMSw3ICsxNjAxLDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OVlNZTkM7CiAJfQogCi0JcGlw ZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKKwlwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKIAogCS8qCiAJICogcGl4ZWwgbXVs dGlwbGllciByZWFkb3V0IGlzIHRyaWNreTogT25seSBvbiBpOTE1Zy9nbSBpdCBpcyBzdG9yZWQg aW4KQEAgLTE2MjEsNyArMTYyMSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fZ2V0X2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlpZiAocGlwZV9jb25maWctPnBpeGVs X211bHRpcGxpZXIpCiAJCWRvdGNsb2NrIC89IHBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVy OwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gZG90Y2xv Y2s7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGRvdGNsb2Nr OwogCiAJLyogQ3Jvc3MgY2hlY2sgdGhlIHBvcnQgcGl4ZWwgbXVsdGlwbGllciB3aXRoIHRoZSBz ZHZvIGVuY29kZXIgc3RhdGUuICovCiAJaWYgKGludGVsX3Nkdm9fZ2V0X3ZhbHVlKGludGVsX3Nk dm8sIFNEVk9fQ01EX0dFVF9DTE9DS19SQVRFX01VTFQsCkBAIC0xNjczLDcgKzE2NzMsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9zZHZvX2VuYWJsZV9hdWRpbyhzdHJ1Y3QgaW50ZWxfc2R2byAqaW50 ZWxfc2R2bywKIAkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUpCiB7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9z dGF0ZS0+Y29ubmVjdG9yOwogCXU4ICplbGQgPSBjb25uZWN0b3ItPmVsZDsKIApAQCAtMTY5NSw3 ICsxNjk1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9z ZHZvID0gdG9fc2R2byhlbmNvZGVyKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5ody5jcnRjKTsKIAl1MzIgdGVt cDsKIAogCWlmIChvbGRfY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQpAQCAtMTc1Nyw3ICsxNzU3LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX3Nkdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfc2R2byAqaW50ZWxfc2R2byA9IHRvX3Nkdm8oZW5jb2Rlcik7Ci0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+aHcuY3J0Yyk7CiAJdTMyIHRlbXA7CiAJYm9vbCBpbnB1dDEsIGlucHV0MjsKIAlpbnQg aTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggYzE4MDgxNWZhYWJkLi5iNTc5 NzFjOGM0YWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC05Myw5ICs5Myw5 IEBAIGludCBpbnRlbF91c2Vjc190b19zY2FubGluZXMoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUsCiAgKi8KIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNf c3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0gJm5ld19jcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmbmV3X2NydGNfc3Rh dGUtPmh3LmFkanVzdGVkX21vZGU7CiAJbG9uZyB0aW1lb3V0ID0gbXNlY3NfdG9famlmZmllc190 aW1lb3V0KDEpOwogCWludCBzY2FubGluZSwgbWluLCBtYXgsIHZibGFua19zdGFydDsKIAl3YWl0 X3F1ZXVlX2hlYWRfdCAqd3EgPSBkcm1fY3J0Y192Ymxhbmtfd2FpdHF1ZXVlKCZjcnRjLT5iYXNl KTsKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKICAqLwogdm9pZCBpbnRl bF9waXBlX3VwZGF0ZV9lbmQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRl KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMobmV3X2NydGNfc3RhdGUtPmh3LmNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKIAlpbnQgc2NhbmxpbmVfZW5kID0gaW50ZWxfZ2V0X2NydGNfc2NhbmxpbmUoY3J0Yyk7CiAJ dTMyIGVuZF92YmxfY291bnQgPSBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291bnRlcihjcnRjKTsK QEAgLTIxNSwxNCArMjE1LDE1IEBAIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfZW5kKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIAkgKiBXb3VsZCBiZSBzbGlnaHRseSBu aWNlIHRvIGp1c3QgZ3JhYiB0aGUgdmJsYW5rIGNvdW50IGFuZCBhcm0gdGhlCiAJICogZXZlbnQg b3V0c2lkZSBvZiB0aGUgY3JpdGljYWwgc2VjdGlvbiAtIHRoZSBzcGlubG9jayBtaWdodCBzcGlu IGZvciBhCiAJICogd2hpbGUgLi4uICovCi0JaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50 KSB7CisJaWYgKG5ld19jcnRjX3N0YXRlLT5ody5ldmVudCkgewogCQlXQVJOX09OKGRybV9jcnRj X3ZibGFua19nZXQoJmNydGMtPmJhc2UpICE9IDApOwogCiAJCXNwaW5fbG9jaygmY3J0Yy0+YmFz ZS5kZXYtPmV2ZW50X2xvY2spOwotCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KCZjcnRjLT5i YXNlLCBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCk7CisJCWRybV9jcnRjX2FybV92Ymxhbmtf ZXZlbnQoJmNydGMtPmJhc2UsCisJCQkJICAgICAgICAgIG5ld19jcnRjX3N0YXRlLT5ody5ldmVu dCk7CiAJCXNwaW5fdW5sb2NrKCZjcnRjLT5iYXNlLmRldi0+ZXZlbnRfbG9jayk7CiAKLQkJbmV3 X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQgPSBOVUxMOworCQluZXdfY3J0Y19zdGF0ZS0+aHcuZXZl bnQgPSBOVUxMOwogCX0KIAogCWxvY2FsX2lycV9lbmFibGUoKTsKQEAgLTEzNDksNyArMTM1MCw3 IEBAIGc0eF9zcHJpdGVfY2hlY2tfc2NhbGluZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAljb25zdCBzdHJ1Y3QgZHJtX3JlY3QgKmRzdCA9ICZwbGFuZV9zdGF0ZS0+YmFz ZS5kc3Q7CiAJaW50IHNyY194LCBzcmNfeSwgc3JjX3csIHNyY19oLCBjcnRjX3csIGNydGNfaDsK IAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRj X3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9t b2RlOwogCXVuc2lnbmVkIGludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CiAJdW5zaWduZWQg aW50IHdpZHRoX2J5dGVzOwogCWludCBtaW5fd2lkdGgsIG1pbl9oZWlnaHQ7CkBAIC0xNDIyLDcg KzE0MjMsNyBAQCBnNHhfc3ByaXRlX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCX0KIAogCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRl KCZwbGFuZV9zdGF0ZS0+YmFzZSwKLQkJCQkJCSAgJmNydGNfc3RhdGUtPmJhc2UsCisJCQkJCQkg ICZjcnRjX3N0YXRlLT5odywKIAkJCQkJCSAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCiAJCQkJCQkg IHRydWUsIHRydWUpOwogCWlmIChyZXQpCkBAIC0xNDc5LDcgKzE0ODAsNyBAQCB2bHZfc3ByaXRl X2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gcmV0 OwogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0 YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3Rh dGUtPmh3LAogCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJCQkJCQkgIERS TV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7CkBAIC0xNTYz LDggKzE1NjQsOCBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVja19mYihjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAkvKiBZLXRpbGluZyBpcyBub3Qg c3VwcG9ydGVkIGluIElGLUlEIEludGVybGFjZSBtb2RlICovCi0JaWYgKGNydGNfc3RhdGUtPmJh c2UuZW5hYmxlICYmCi0JICAgIGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyAm IERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFICYmCisJaWYgKGNydGNfc3RhdGUtPmh3LmVuYWJsZSAm JgorCSAgICBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxB R19JTlRFUkxBQ0UgJiYKIAkgICAgKGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9U SUxFRCB8fAogCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCB8 fAogCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fApA QCAtMTY0NCw3ICsxNjQ1LDcgQEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2soc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxw ZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19z dGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPmh3LAogCQkJCQkJICBtaW5fc2NhbGUs IG1heF9zY2FsZSwKIAkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7CiAJaWYgKHJldCkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF90di5jCmluZGV4IDVkYzU5NGVhZmFmMi4uMTQ0MWY5ODQ1NjI2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3R2LmMKQEAgLTkyNCw3ICs5MjQsNyBAQCBpbnRlbF9lbmFibGVfdHYoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkvKiBQcmV2ZW50cyB2Ymxhbmsgd2FpdHMgZnJvbSB0 aW1pbmcgb3V0IGluIGludGVsX3R2X2RldGVjdF90eXBlKCkgKi8KIAlpbnRlbF93YWl0X2Zvcl92 YmxhbmsoZGV2X3ByaXYsCi0JCQkgICAgICB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNl LmNydGMpLT5waXBlKTsKKwkJCSAgICAgIHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3LmNy dGMpLT5waXBlKTsKIAogCUk5MTVfV1JJVEUoVFZfQ1RMLCBJOTE1X1JFQUQoVFZfQ1RMKSB8IFRW X0VOQ19FTkFCTEUpOwogfQpAQCAtMTA4Niw3ICsxMDg2LDcgQEAgaW50ZWxfdHZfZ2V0X2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgbW9kZSA9IHt9OwogCXUzMiB0dl9jdGwsIGhjdGwxLCBoY3RsMywgdmN0 bDEsIHZjdGwyLCB0bXA7CiAJc3RydWN0IHR2X21vZGUgdHZfbW9kZSA9IHt9OwpAQCAtMTE4OSw3 ICsxMTg5LDcgQEAgaW50ZWxfdHZfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJCXRvX2ludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAlj b25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChjb25uX3N0 YXRlKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVk X21vZGU7CiAJaW50IGhkaXNwbGF5ID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKIAlp bnQgdmRpc3BsYXkgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5OwogCkBAIC0xNDE4LDcg KzE0MTgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3LmNydGMpOwogCXN0 cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYoZW5jb2Rlcik7CiAJY29uc3Qgc3Ry dWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfY29ubl9zdGF0ZSA9CiAJCXRvX2ludGVs X3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Zkc2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Zkc2Mu YwppbmRleCBmZmVjODA3Yjg5NjAuLjkxNTg4OTk1MDJlYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdmRzYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Zkc2MuYwpAQCAtMzI5LDggKzMyOSw4IEBAIGludCBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJh bXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlpbnQgY29sdW1uX2luZGV4ID0gMDsKIAl1 OCBsaW5lX2J1Zl9kZXB0aCA9IDA7CiAKLQl2ZHNjX2NmZy0+cGljX3dpZHRoID0gcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCXZkc2NfY2ZnLT5waWNfaGVp Z2h0ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OworCXZk c2NfY2ZnLT5waWNfd2lkdGggPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hk aXNwbGF5OworCXZkc2NfY2ZnLT5waWNfaGVpZ2h0ID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVk X21vZGUuY3J0Y192ZGlzcGxheTsKIAl2ZHNjX2NmZy0+c2xpY2Vfd2lkdGggPSBESVZfUk9VTkRf VVAodmRzY19jZmctPnBpY193aWR0aCwKIAkJCQkJICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFt cy5zbGljZV9jb3VudCk7CiAJLyoKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBpbnRlbF9kc2NfcG93ZXJf ZG9tYWluKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGlj IHZvaWQgaW50ZWxfY29uZmlndXJlX3Bwc19mb3JfZHNjX2VuY29kZXIoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCQkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGRybV9k c2NfY29uZmlnICp2ZHNjX2NmZyA9ICZjcnRjX3N0YXRlLT5kcF9kc2NfY2ZnOwogCWVudW0gcGlw ZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTg5Niw3ICs4OTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kcF93cml0ZV9kc2NfcHBzX3NkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHZv aWQgaW50ZWxfZHNjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICAg ICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3 LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpOTE1X3Jl Z190IGRzc19jdGwxX3JlZywgZHNzX2N0bDJfcmVnOwpAQCAtOTMyLDcgKzkzMiw3IEBAIHZvaWQg aW50ZWxfZHNjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogdm9pZCBp bnRlbF9kc2NfZGlzYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9j cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+aHcuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUg PSBjcnRjLT5waXBlOwogCWk5MTVfcmVnX3QgZHNzX2N0bDFfcmVnLCBkc3NfY3RsMl9yZWc7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS92bHZfZHNpLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS92bHZfZHNpLmMKaW5kZXggZTI3MmQ4MjYyMTBhLi43MTcwYmJjODI2MjcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Zsdl9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS92bHZfZHNpLmMKQEAgLTI3MCw5ICsyNzAsOSBAQCBzdGF0aWMgaW50IGludGVsX2Rz aV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3Qg aW50ZWxfZHNpICppbnRlbF9kc2kgPSBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVs X2RzaSwKIAkJCQkJCSAgIGJhc2UpOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nv bm5lY3RvciA9IGludGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yOwotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3LmNydGMp OwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhlZF9tb2RlID0gaW50ZWxfY29u bmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVk X21vZGU7CiAJaW50IHJldDsKIAogCURSTV9ERUJVR19LTVMoIlxuIik7CkBAIC02NTIsNyArNjUy LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3BvcnRfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmh3LmNydGMpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwogCWVudW0gcG9ydCBw b3J0OwogCkBAIC03NzQsNyArNzc0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIGNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVs X2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwotCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRj ID0gcGlwZV9jb25maWctPmh3LmNydGM7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CkBA IC0xMDYwLDkgKzEwNjAsOSBAQCBzdGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0K LQkJCQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkJCSZwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZV9zdzsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9j b25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKHBpcGVfY29uZmlnLT5ody5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kg PSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAl1bnNpZ25lZCBpbnQgbGFuZV9j b3VudCA9IGludGVsX2RzaS0+bGFuZV9jb3VudDsKIAl1bnNpZ25lZCBpbnQgYnBwLCBmbXQ7CkBA IC0xMDczLDcgKzEwNzMsNyBAQCBzdGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQljcnRjX2hibGFua19zdGFydF9zdywg Y3J0Y19oYmxhbmtfZW5kX3N3OwogCiAJLyogRklYTUU6IGh3IHJlYWRvdXQgc2hvdWxkIG5vdCBk ZXBlbmQgb24gU1cgc3RhdGUgKi8KLQlhZGp1c3RlZF9tb2RlX3N3ID0gJmNydGMtPmNvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlOworCWFkanVzdGVkX21vZGVfc3cgPSAmY3J0Yy0+Y29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlOwogCiAJLyoKIAkgKiBBdGxlYXN0IG9uZSBwb3J0IGlzIGFjdGl2ZSBh cyBlbmNvZGVyLT5nZXRfY29uZmlnIGNhbGxlZCBvbmx5IGlmCkBAIC0xMjMyLDcgKzEyMzIsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAl9CiAKIAlpZiAocGNsaykgewotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmNydGNfY2xvY2sgPSBwY2xrOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZS5jcnRjX2Nsb2NrID0gcGNsazsKIAkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBwY2xrOwog CX0KIH0KQEAgLTEzNDMsOSArMTM0Myw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBlbmNvZGVyLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmh3LmNydGMpOwogCXN0cnVjdCBpbnRl bF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Ci0JY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAllbnVtIHBvcnQgcG9ydDsK IAl1bnNpZ25lZCBpbnQgYnBwID0gbWlwaV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2JwcChpbnRlbF9k c2ktPnBpeGVsX2Zvcm1hdCk7CiAJdTMyIHZhbCwgdG1wOwotLSAKMi4yMC4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=