From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [RFC 1/7] drm/i915: Prepare to split crtc state in uapi and hw state Date: Tue, 2 Jul 2019 21:41:59 +0200 Message-ID: <20190702194205.13366-2-maarten.lankhorst@linux.intel.com> References: <20190702194205.13366-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 [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id A62A76E03A for ; Tue, 2 Jul 2019 19:42:10 +0000 (UTC) In-Reply-To: <20190702194205.13366-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 V2Ugd2FudCB0byBzcGxpdCBkcm1fY3J0Y19zdGF0ZSBpbnRvIHRoZSB1c2VyIHZpc2libGUgc3Rh dGUKYW5kIGFjdHVhbCBoYXJkd2FyZSBzdGF0ZS4gVG8gcHJlcGFyZSBmb3IgdGhpcywgd2UgbmVl ZCBzb21lCmdyb3VuZCBydWxlcyB3aGF0IHNob3VsZCBiZSBpbiBlYWNoIHN0YXRlOgoKSW4gdWFw aSB3ZSB1c2U6Ci0gY3J0YywgKl9jaGFuZ2VkIGZsYWdzLCBldmVudCwgY29tbWl0LCBzdGF0ZSwg bW9kZV9ibG9iLCAocGxhbmUvY29ubmVjdG9yL2VuY29kZXIpX21hc2suCgpJbiBodyBzdGF0ZSB3 ZSB1c2Ugd2hhdCdzIGRpc3BsYXllZCBpbiBoYXJkd2FyZToKLSBlbmFibGUsIGFjdGl2ZSwgKGFk anVzdGVkKSBtb2RlLCBjb2xvciBwcm9wZXJ0eSBibG9icy4KCmNsZWFyX2ludGVsX2NydGNfc3Rh dGUgYW5kIGh3IHJlYWRvdXQgbmVlZCB0byBiZSB1cGRhdGVkIGZvciB0aGVzZSBydWxlcywKd2hp Y2ggd2lsbCBhbGxvdyB1cyB0byBlbmFibGUgMiBqb2luZWQgcGlwZXMuCgpTaWduZWQtb2ZmLWJ5 OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jICAgICAgICB8ICAxOCAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyAgIHwgIDE2ICst CiAuLi4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMgfCAgIDYgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYyAgICB8ICAxNCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jICAgICAgIHwgICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMgICAgfCAgIDggKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYyAgICB8IDE1MCArKy0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYyAgICAgIHwgIDI0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCAgMzAgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8IDUyMyArKysrKysr KystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAgICAg ICB8ICA0MiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYyAg IHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwaW9fcGh5LmMg fCAgMTQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyB8 ICAyMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8uYyAgICAgIHwg IDE0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jICAgICAgfCAg IDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jICAgICB8ICA2 MiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMgICB8ICAg NCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMgICAgIHwgIDEy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMgICAgfCAgMTQg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGlwZV9jcmMuYyB8ICAgNiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyAgICAgIHwgIDEwICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8uYyAgICAgfCAgMjIgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgICB8ICAyNSArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5jICAgICAgIHwgICA4ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zkc2MuYyAgICAgfCAgMTAgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jICAgICAgICB8ICAyMCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgICAgICAgIHwgIDE0ICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAgMjggKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICAgICB8IDE4MCArKystLS0KIDMw IGZpbGVzIGNoYW5nZWQsIDY3MSBpbnNlcnRpb25zKCspLCA2MzUgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwppbmRleCBiODY3M2RlYmY5MzIuLjFkNDU5 ZGM3Y2ZhNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNp LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMKQEAgLTI3Nyw3 ICsyNzcsNyBAQCBzdGF0aWMgdm9pZCBjb25maWd1cmVfZHVhbF9saW5rX21vZGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmsgPT0gRFNJ X0RVQUxfTElOS19GUk9OVF9CQUNLKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJCQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJCQkJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJdTMyIGRzc19jdGwyOwog CQl1MTYgaGFjdGl2ZSA9IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXk7CiAJCXUxNiBkbF9i dWZmZXJfZGVwdGg7CkBAIC02MjIsNyArNjIyLDcgQEAgZ2VuMTFfZHNpX2NvbmZpZ3VyZV90cmFu c2NvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVj dCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2Up OwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRl bF9jcnRjLT5waXBlOwogCXUzMiB0bXA7CiAJZW51bSBwb3J0IHBvcnQ7CkBAIC03NjAsNyArNzYw LDcgQEAgZ2VuMTFfZHNpX3NldF90cmFuc2NvZGVyX3RpbWluZ3Moc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWVudW0gcG9ydCBw b3J0OwogCWVudW0gdHJhbnNjb2RlciBkc2lfdHJhbnM7CiAJLyogaG9yaXpvbnRhbCB0aW1pbmdz ICovCkBAIC0xMjAxLDcgKzEyMDEsNyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZ2V0X3RpbWlu Z3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJ aWYgKGludGVsX2RzaS0+ZHVhbF9saW5rKSB7CiAJCWFkanVzdGVkX21vZGUtPmNydGNfaGRpc3Bs YXkgKj0gMjsKQEAgLTEyMjcsMTYgKzEyMjcsMTYgQEAgc3RhdGljIHZvaWQgZ2VuMTFfZHNpX2dl dF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMp OwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koJmVuY29k ZXItPmJhc2UpOwogCiAJLyogRklYTUU6IGFkYXB0IGljbF9kZGlfY2xvY2tfZ2V0KCkgZm9yIERT SSBhbmQgdXNlIHRoYXQ/ICovCiAJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPQogCQljbmxfY2Fs Y193cnBsbF9saW5rKGRldl9wcml2LCAmcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUpOwogCi0J cGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gaW50ZWxfZHNpLT5w Y2xrOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBpbnRlbF9k c2ktPnBjbGs7CiAJaWYgKGludGVsX2RzaS0+ZHVhbF9saW5rKQotCQlwaXBlX2NvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgKj0gMjsKKwkJcGlwZV9jb25maWctPmh3LmFkanVz dGVkX21vZGUuY3J0Y19jbG9jayAqPSAyOwogCiAJZ2VuMTFfZHNpX2dldF90aW1pbmdzKGVuY29k ZXIsIHBpcGVfY29uZmlnKTsKIAlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRF TF9PVVRQVVRfRFNJKTsKQEAgLTEyNTAsMTEgKzEyNTAsMTEgQEAgc3RhdGljIGludCBnZW4xMV9k c2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVjdCBpbnRl bF9kc2ksCiAJCQkJCQkgICBiYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uZWN0b3IgPSBpbnRlbF9kc2ktPmF0dGFjaGVkX2Nvbm5lY3RvcjsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNy dGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhlZF9tb2RlID0KIAkJCQkJ aW50ZWxfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0KLQkJCQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGU7CisJCQkJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCXBpcGVfY29uZmln LT5vdXRwdXRfZm9ybWF0ID0gSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0I7CiAJaW50ZWxfZml4ZWRf cGFuZWxfbW9kZShmaXhlZF9tb2RlLCBhZGp1c3RlZF9tb2RlKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jCmluZGV4IDkwY2ExMWE0YWU4OC4uYjk1MDE1Y2Zh NWRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21p Yy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKQEAg LTE4NiwxMyArMTg2LDE0IEBAIGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogc3RydWN0IGRybV9jcnRjX3N0YXRl ICoKIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsK Kwljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPSB0b19pbnRl bF9jcnRjX3N0YXRlKGNydGMtPnN0YXRlKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZTsKIAotCWNydGNfc3RhdGUgPSBrbWVtZHVwKGNydGMtPnN0YXRlLCBzaXplb2YoKmNy dGNfc3RhdGUpLCBHRlBfS0VSTkVMKTsKKwljcnRjX3N0YXRlID0ga21lbWR1cChvbGRfY3J0Y19z dGF0ZSwgc2l6ZW9mKCpjcnRjX3N0YXRlKSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFjcnRjX3N0YXRl KQogCQlyZXR1cm4gTlVMTDsKIAotCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kdXBsaWNhdGVf c3RhdGUoY3J0YywgJmNydGNfc3RhdGUtPmJhc2UpOworCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0 Y19kdXBsaWNhdGVfc3RhdGUoY3J0YywgJmNydGNfc3RhdGUtPnVhcGkpOwogCiAJY3J0Y19zdGF0 ZS0+dXBkYXRlX3BpcGUgPSBmYWxzZTsKIAljcnRjX3N0YXRlLT5kaXNhYmxlX2xwX3dtID0gZmFs c2U7CkBAIC0yMDUsNyArMjA2LDcgQEAgaW50ZWxfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjKQogCWNydGNfc3RhdGUtPmZiX2JpdHMgPSAwOwogCWNydGNfc3RhdGUt PnVwZGF0ZV9wbGFuZXMgPSAwOwogCi0JcmV0dXJuICZjcnRjX3N0YXRlLT5iYXNlOworCXJldHVy biAmY3J0Y19zdGF0ZS0+dWFwaTsKIH0KIAogLyoqCkBAIC0yMjAsNyArMjIxLDEwIEBAIHZvaWQK IGludGVsX2NydGNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJCQkgc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKLQlkcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rl c3Ryb3lfc3RhdGUoY3J0Yywgc3RhdGUpOworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShzdGF0ZSk7CisKKwlfX2RybV9hdG9taWNfaGVs cGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Y19zdGF0ZS0+dWFwaSk7CisJa2ZyZWUoY3J0Y19z dGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19zZXR1cF9zY2FsZXIoc3RydWN0 IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpzY2FsZXJfc3RhdGUsCkBAIC0zMTYsNyArMzIwLDcg QEAgaW50IGludGVsX2F0b21pY19zZXR1cF9zY2FsZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0gTlVM TDsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9CiAJCSZj cnRjX3N0YXRlLT5zY2FsZXJfc3RhdGU7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9z dGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KmRybV9zdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoZHJtX3N0YXRlKTsK IAlpbnQgbnVtX3NjYWxlcnNfbmVlZDsKIAlpbnQgaTsKQEAgLTM4NCw3ICszODgsNyBAQCBpbnQg aW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkJCSAqIGJ1dCBzaW5jZSB0aGlzIHBsYW5lIGlzIHVuY2hhbmdlZCBqdXN0IGRvIHRo ZQogCQkJCSAqIG1pbmltdW0gcmVxdWlyZWQgdmFsaWRhdGlvbi4KIAkJCQkgKi8KLQkJCQljcnRj X3N0YXRlLT5iYXNlLnBsYW5lc19jaGFuZ2VkID0gdHJ1ZTsKKwkJCQljcnRjX3N0YXRlLT51YXBp LnBsYW5lc19jaGFuZ2VkID0gdHJ1ZTsKIAkJCX0KIAogCQkJaW50ZWxfcGxhbmUgPSB0b19pbnRl bF9wbGFuZShwbGFuZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9hdG9taWNfcGxhbmUuYwppbmRleCBhYjQxMWQ1ZTA5M2MuLjU5ZDE1M2VlMTlmNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCkBA IC0yNjksNyArMjY5LDcgQEAgdm9pZCBpbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAogCXRyYWNlX2ludGVsX3VwZGF0ZV9wbGFuZSgmcGxhbmUtPmJhc2Us IGNydGMpOwogCXBsYW5lLT51cGRhdGVfcGxhbmUocGxhbmUsIGNydGNfc3RhdGUsIHBsYW5lX3N0 YXRlKTsKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIGludGVsX3VwZGF0ZV9zbGF2ZShzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lLAogCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJdHJhY2VfaW50ZWxfdXBkYXRlX3BsYW5lKCZwbGFu ZS0+YmFzZSwgY3J0Yyk7CiAJcGxhbmUtPnVwZGF0ZV9zbGF2ZShwbGFuZSwgY3J0Y19zdGF0ZSwg cGxhbmVfc3RhdGUpOwpAQCAtMjg4LDcgKzI4OCw3IEBAIHZvaWQgaW50ZWxfdXBkYXRlX3NsYXZl KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiB2b2lkIGludGVsX2Rpc2FibGVfcGxhbmUoc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSwKIAkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCXRyYWNlX2ludGVsX2Rpc2Fi bGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBjcnRjKTsKIAlwbGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFu ZSwgY3J0Y19zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlv LmMKaW5kZXggODQwZGFmZjEyMjQ2Li4zMjdmODQ5ZjEzZjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMKQEAgLTE4OCw3ICsxODgsNyBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHsKIHN0YXRpYyB1MzIgYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgaTsK IAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGhkbWlfYXVkaW9fY2xvY2spOyBpKyspIHsK QEAgLTIxMyw3ICsyMTMsNyBAQCBzdGF0aWMgaW50IGF1ZGlvX2NvbmZpZ19oZG1pX2dldF9uKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgIGludCByYXRl KQogewogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJ JmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGU7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShoZG1pX2F1 ZF9uY3RzKTsgaSsrKSB7CkBAIC00OTksNyArNDk5LDcgQEAgc3RhdGljIHZvaWQgaWxrX2F1ZGlv X2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJdTMyIHRtcCwgZWxkdjsKQEAg LTU0NSw3ICs1NDUsNyBAQCBzdGF0aWMgdm9pZCBpbGtfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+ cG9ydDsKQEAgLTYzNCwxMCArNjM0LDEwIEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpOTE1 X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50OwotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0 YXRlLT5jb25uZWN0b3I7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC02OTUsNyArNjk1LDcgQEAgdm9pZCBp bnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwogCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJp di0+YXVkaW9fY29tcG9uZW50OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBwb3J0 IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jCmluZGV4IDc1M2FjMzE2NTA2MS4u MWYyMWRmYmMyODhiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2J3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jCkBA IC0yNTksNyArMjU5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9id19jcnRjX251bV9h Y3RpdmVfcGxhbmVzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXQKIAogc3RhdGljIHVuc2ln bmVkIGludCBpbnRlbF9id19jcnRjX2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAl1bnNpZ25lZCBpbnQgZGF0 YV9yYXRlID0gMDsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkOwogCkBAIC0yODAsNyArMjgwLDcg QEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9id19jcnRjX2RhdGFfcmF0ZShjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y18KIHZvaWQgaW50ZWxfYndfY3J0Y191cGRhdGUoc3Ry dWN0IGludGVsX2J3X3N0YXRlICpid19zdGF0ZSwKIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAlid19zdGF0ZS0+ ZGF0YV9yYXRlW2NydGMtPnBpcGVdID0KIAkJaW50ZWxfYndfY3J0Y19kYXRhX3JhdGUoY3J0Y19z dGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nk Y2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKaW5kZXgg MGI4YjhhZTNiN2ZjLi43ODYzYTY3MjViNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2NkY2xrLmMKQEAgLTIyMjUsMTAgKzIyMjUsMTAgQEAgc3RhdGljIGludCBpbnRl bF9waXhlbF9yYXRlX3RvX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IGludCBpbnRlbF9jcnRjX2NvbXB1dGVfbWluX2NkY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCQl0b19pOTE1KGNy dGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlpbnQgbWluX2NkY2xrOwogCi0JaWYgKCFjcnRj X3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmVuYWJsZSkKIAkJcmV0 dXJuIDA7CiAKIAltaW5fY2RjbGsgPSBpbnRlbF9waXhlbF9yYXRlX3RvX2NkY2xrKGRldl9wcml2 LCBjcnRjX3N0YXRlLT5waXhlbF9yYXRlKTsKQEAgLTIzMzYsNyArMjMzNiw3IEBAIHN0YXRpYyB1 OCBjbmxfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAkgICAgICAgc2l6ZW9mKHN0YXRlLT5taW5fdm9sdGFnZV9sZXZlbCkpOwogCiAJ Zm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUs IGkpIHsKLQkJaWYgKGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQorCQlpZiAoY3J0Y19zdGF0ZS0+ aHcuZW5hYmxlKQogCQkJc3RhdGUtPm1pbl92b2x0YWdlX2xldmVsW2ldID0KIAkJCQljcnRjX3N0 YXRlLT5taW5fdm9sdGFnZV9sZXZlbDsKIAkJZWxzZQpAQCAtMjQyMiw3ICsyNDIyLDcgQEAgc3Rh dGljIGludCBza2xfZHBsbDBfdmNvKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog CQl2Y28gPSBkZXZfcHJpdi0+c2tsX3ByZWZlcnJlZF92Y29fZnJlcTsKIAogCWZvcl9lYWNoX25l d19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Ci0JCWlm ICghY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCisJCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxl KQogCQkJY29udGludWU7CiAKIAkJaWYgKCFpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUs IElOVEVMX09VVFBVVF9FRFApKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9j b2xvci5jCmluZGV4IDIzYTg0ZGQ3OTg5Zi4uMWQyM2Y4YTllMzUxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBzdGF0 aWMgYm9vbCBsdXRfaXNfbGVnYWN5KGNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbHV0 KQogCiBzdGF0aWMgYm9vbCBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlyZXR1cm4gIWNydGNfc3RhdGUtPmJh c2UuZGVnYW1tYV9sdXQgJiYKLQkJIWNydGNfc3RhdGUtPmJhc2UuY3RtICYmCi0JCWNydGNfc3Rh dGUtPmJhc2UuZ2FtbWFfbHV0ICYmCi0JCWx1dF9pc19sZWdhY3koY3J0Y19zdGF0ZS0+YmFzZS5n YW1tYV9sdXQpOworCXJldHVybiAhY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQgJiYKKwkJIWNy dGNfc3RhdGUtPmh3LmN0bSAmJgorCQljcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgJiYKKwkJbHV0 X2lzX2xlZ2FjeShjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQpOwogfQogCiAvKgpAQCAtMTg5LDcg KzE4OSw3IEBAIHN0YXRpYyB2b2lkIGljbF91cGRhdGVfb3V0cHV0X2NzYyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAogc3RhdGljIGJvb2wgaWxrX2NzY19saW1pdGVkX3JhbmdlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjLT5kZXYpOwogCiAJLyoKIAkgKiBGSVhNRSBpZiB0aGVyZSdzIGEgZ2FtbWEgTFVU IGFmdGVyIHRoZSBDU0MsIHdlIHNob3VsZApAQCAtMjAzLDcgKzIwMyw3IEBAIHN0YXRpYyBib29s IGlsa19jc2NfbGltaXRlZF9yYW5nZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGlsa19jc2NfY29udmVydF9jdG0oY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJdTE2IGNvZWZmc1s5XSkKIHsKLQljb25z dCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+YmFzZS5jdG0tPmRhdGE7 CisJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9jdG0gKmN0bSA9IGNydGNfc3RhdGUtPmh3LmN0bS0+ ZGF0YTsKIAljb25zdCB1NjQgKmlucHV0OwogCXU2NCB0ZW1wWzldOwogCWludCBpOwpAQCAtMjU0 LDExICsyNTQsMTEgQEAgc3RhdGljIHZvaWQgaWxrX2NzY19jb252ZXJ0X2N0bShjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogc3RhdGljIHZvaWQgaWxrX2xvYWRf Y3NjX21hdHJpeChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlib29sIGxpbWl0ZWRfY29sb3JfcmFuZ2UgPSBpbGtf Y3NjX2xpbWl0ZWRfcmFuZ2UoY3J0Y19zdGF0ZSk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5j dG0pIHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKSB7CiAJCXUxNiBjb2VmZls5XTsKIAogCQlp bGtfY3NjX2NvbnZlcnRfY3RtKGNydGNfc3RhdGUsIGNvZWZmKTsKQEAgLTI5MywxMCArMjkzLDEw IEBAIHN0YXRpYyB2b2lkIGlsa19sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGljbF9sb2FkX2NzY19tYXRyaXgo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5jdG0pIHsKKwlpZiAoY3J0Y19z dGF0ZS0+aHcuY3RtKSB7CiAJCXUxNiBjb2VmZls5XTsKIAogCQlpbGtfY3NjX2NvbnZlcnRfY3Rt KGNydGNfc3RhdGUsIGNvZWZmKTsKQEAgLTMyMiwxMiArMzIyLDEyIEBAIHN0YXRpYyB2b2lkIGlj bF9sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiAgKi8KIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfbG9hZF9jc2NfbWF0cml4KGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAotCWlmIChjcnRjX3N0YXRlLT5i YXNlLmN0bSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0 ZS0+YmFzZS5jdG0tPmRhdGE7CisJaWYgKGNydGNfc3RhdGUtPmh3LmN0bSkgeworCQljb25zdCBz dHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+aHcuY3RtLT5kYXRhOwogCQl1 MTYgY29lZmZzWzldID0ge307CiAJCWludCBpOwogCkBAIC0zODgsNyArMzg4LDcgQEAgc3RhdGlj IHUzMiBpbGtfbHV0XzEwKGNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpjb2xvcikKIHN0YXRp YyB2b2lkIGk5eHhfbG9hZF9sdXRzX2ludGVybmFsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmJsb2IpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRj LT5waXBlOwogCWludCBpOwpAQCAtNDE5LDEyICs0MTksMTIgQEAgc3RhdGljIHZvaWQgaTl4eF9s b2FkX2x1dHNfaW50ZXJuYWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCWk5eHhfbG9hZF9sdXRzX2ludGVybmFsKGNydGNfc3Rh dGUsIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0KTsKKwlpOXh4X2xvYWRfbHV0c19pbnRlcm5h bChjcnRjX3N0YXRlLCBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQpOwogfQogCiBzdGF0aWMgdm9p ZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CiAJdTMyIHZhbDsKQEAgLTQzNyw3ICs0MzcsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Nv bG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAog c3RhdGljIHZvaWQgaWxrX2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKQEAgLTQ1Miw3ICs0NTIsNyBAQCBzdGF0aWMgdm9p ZCBpbGtfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogCiBzdGF0aWMgdm9pZCBoc3dfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJSTkx NV9XUklURShHQU1NQV9NT0RFKGNydGMtPnBpcGUpLCBjcnRjX3N0YXRlLT5nYW1tYV9tb2RlKTsK QEAgLTQ2Miw3ICs0NjIsNyBAQCBzdGF0aWMgdm9pZCBoc3dfY29sb3JfY29tbWl0KGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBza2xfY29s b3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1 MzIgdmFsID0gMDsKQEAgLTUwOCw4ICs1MDgsOCBAQCBzdGF0aWMgdm9pZCBpOTY1X2xvYWRfbHV0 XzEwcDYoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIGk5NjVfbG9hZF9s dXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0 ZS0+YmFzZS5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CiAKIAlpZiAoY3J0Y19z dGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkKIAkJaTl4eF9sb2FkX2x1 dHMoY3J0Y19zdGF0ZSk7CkBAIC01MzEsOCArNTMxLDggQEAgc3RhdGljIHZvaWQgaWxrX2xvYWRf bHV0XzEwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpbGtfbG9hZF9s dXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0 ZS0+YmFzZS5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CiAKIAlpZiAoY3J0Y19z dGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkKIAkJaTl4eF9sb2FkX2x1 dHMoY3J0Y19zdGF0ZSk7CkBAIC02MzIsOSArNjMyLDkgQEAgc3RhdGljIHZvaWQgaXZiX2xvYWRf bHV0X2V4dF9tYXgoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0YXRpYyB2b2lkIGl2Yl9s b2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRj X3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2Ig KmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dDsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKKwlj b25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3 LmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0 ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQ7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFf bW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkgewogCQlpOXh4X2xvYWRfbHV0cyhjcnRjX3N0 YXRlKTsKQEAgLTY1NSw5ICs2NTUsOSBAQCBzdGF0aWMgdm9pZCBpdmJfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBiZHdf bG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0 Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9i ICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQ7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJ Y29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5o dy5nYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1 dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0OwogCiAJaWYgKGNydGNfc3RhdGUtPmdhbW1h X21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19z dGF0ZSk7CkBAIC02NzgsMTEgKzY3OCwxMSBAQCBzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRzKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBn bGtfbG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CiAJY29uc3QgdTMyIGx1dF9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9y LmRlZ2FtbWFfbHV0X3NpemU7Ci0JY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGNy dGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQtPmRhdGE7CisJY29uc3Qgc3RydWN0IGRybV9jb2xv cl9sdXQgKmx1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0LT5kYXRhOwogCXUzMiBpOwog CiAJLyoKQEAgLTcxNyw3ICs3MTcsNyBAQCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1 dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZv aWQgZ2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFyKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCB1MzIgbHV0X3NpemUgPSBJTlRFTF9JTkZPKGRldl9w cml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKQEAgLTc0NCw4ICs3NDQsOCBAQCBzdGF0aWMg dm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdAogCiBzdGF0aWMgdm9pZCBnbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fcHJv cGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0 YXRlLT5ody5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAkvKgogCSAqIE9uIEdMSysgYm90aCBwaXBl IENTQyBhbmQgZGVnYW1tYSBMVVQgYXJlIGNvbnRyb2xsZWQKQEAgLTc1NSw3ICs3NTUsNyBAQCBz dGF0aWMgdm9pZCBnbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogCSAqIHRoZSBkZWdhbWEgTFVUIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSB0byBy ZWxvYWQKIAkgKiBpdCBldmVyeSB0aW1lIHRoZSBwaXBlIENTQyBpcyBiZWluZyBlbmFibGVkLgog CSAqLwotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQorCWlmIChjcnRjX3N0YXRl LT5ody5kZWdhbW1hX2x1dCkKIAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXQoY3J0Y19zdGF0ZSk7CiAJ ZWxzZQogCQlnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY3J0Y19zdGF0ZSk7CkBAIC03ODYs NyArNzg2LDcgQEAgc3RhdGljIHZvaWQKIGljbF9sb2FkX2djbWF4KGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2NvbG9y X2x1dCAqY29sb3IpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUg PSBjcnRjLT5waXBlOwogCkBAIC03OTksOSArNzk5LDkgQEAgaWNsX2xvYWRfZ2NtYXgoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiBzdGF0aWMgdm9pZAogaWNsX3By b2dyYW1fZ2FtbWFfc3VwZXJmaW5lX3NlZ21lbnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7CisJ Y29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+aHcuZ2Ft bWFfbHV0OwogCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRhOwog CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgaTsKQEAgLTgyOCw5ICs4MjgsOSBA QCBpY2xfcHJvZ3JhbV9nYW1tYV9zdXBlcmZpbmVfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkCiBpY2xfcHJvZ3JhbV9nYW1tYV9t dWx0aV9zZWdtZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqYmxvYiA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1f cHJvcGVydHlfYmxvYiAqYmxvYiA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKIAljb25zdCBz dHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gYmxvYi0+ZGF0YTsKIAljb25zdCBzdHJ1Y3QgZHJt X2NvbG9yX2x1dCAqZW50cnk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtODgw LDEwICs4ODAsMTAgQEAgaWNsX3Byb2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaWNsX2xvYWRf bHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQljb25z dCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2Uu Z2FtbWFfbHV0OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2Ft bWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCi0JaWYgKGNydGNf c3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpCisJaWYgKGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0 KQogCQlnbGtfbG9hZF9kZWdhbW1hX2x1dChjcnRjX3N0YXRlKTsKIAogCXN3aXRjaCAoY3J0Y19z dGF0ZS0+Z2FtbWFfbW9kZSAmIEdBTU1BX01PREVfTU9ERV9NQVNLKSB7CkBAIC05NTgsOSArOTU4 LDkgQEAgc3RhdGljIHZvaWQgY2h2X2xvYWRfY2dtX2dhbW1hKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCiBzdGF0aWMgdm9pZCBjaHZfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVy dHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0JY29uc3Qg c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2Uu ZGVnYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpn YW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0Owog CiAJY2hlcnJ5dmlld19sb2FkX2NzY19tYXRyaXgoY3J0Y19zdGF0ZSk7CiAKQEAgLTk3OCwyOCAr OTc4LDI4IEBAIHN0YXRpYyB2b2lkIGNodl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzKGNydGNf c3RhdGUpOwogfQogCiB2b2lkIGludGVsX2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2KTsKIAogCWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NvbW1pdChjcnRjX3N0YXRlKTsKIH0K IAogaW50IGludGVsX2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJcmV0dXJuIGRl dl9wcml2LT5kaXNwbGF5LmNvbG9yX2NoZWNrKGNydGNfc3RhdGUpOwogfQogCiB2b2lkIGludGVs X2NvbG9yX2dldF9jb25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAKIAlpZiAoZGV2X3ByaXYtPmRp c3BsYXkucmVhZF9sdXRzKQogCQlkZXZfcHJpdi0+ZGlzcGxheS5yZWFkX2x1dHMoY3J0Y19zdGF0 ZSk7CkBAIC0xMDIzLDE2ICsxMDIzLDE2IEBAIHN0YXRpYyBib29sIG5lZWRfcGxhbmVfdXBkYXRl KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiBzdGF0aWMgaW50CiBpbnRlbF9jb2xvcl9hZGRf YWZmZWN0ZWRfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5i YXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBp LnN0YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUg PQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUgfHwKLQkgICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRl LT5iYXNlKSkKKwlpZiAoIW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwKKwkgICAgZHJtX2F0 b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT51YXBpKSkKIAkJcmV0dXJu IDA7CiAKIAlpZiAobmV3X2NydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9PSBvbGRfY3J0Y19zdGF0 ZS0+Z2FtbWFfZW5hYmxlICYmCkBAIC0xMDc0LDkgKzEwNzQsOSBAQCBzdGF0aWMgaW50IGNoZWNr X2x1dF9zaXplKGNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbHV0LCBpbnQgZXhwZWN0 ZWQpCiAKIHN0YXRpYyBpbnQgY2hlY2tfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OwotCWNv bnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5i YXNlLmRlZ2FtbWFfbHV0OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOworCWNvbnN0IHN0cnVjdCBkcm1fcHJv cGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OworCWNvbnN0 IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5k ZWdhbW1hX2x1dDsKIAlpbnQgZ2FtbWFfbGVuZ3RoLCBkZWdhbW1hX2xlbmd0aDsKIAl1MzIgZ2Ft bWFfdGVzdHMsIGRlZ2FtbWFfdGVzdHM7CiAKQEAgLTExMjQsNyArMTEyNCw3IEBAIHN0YXRpYyBp bnQgaTl4eF9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IAkJcmV0dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCWNydGNfc3Rh dGUtPmJhc2UuZ2FtbWFfbHV0ICYmCisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCQkh Y3J0Y19zdGF0ZS0+YzhfcGxhbmVzOwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9IGk5eHhf Z2FtbWFfbW9kZShjcnRjX3N0YXRlKTsKQEAgLTExNDMsMTEgKzExNDMsMTEgQEAgc3RhdGljIHUz MiBjaHZfY2dtX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAJaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKQogCQlyZXR1cm4g MDsKIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQorCWlmIChjcnRjX3N0YXRl LT5ody5kZWdhbW1hX2x1dCkKIAkJY2dtX21vZGUgfD0gQ0dNX1BJUEVfTU9ERV9ERUdBTU1BOwot CWlmIChjcnRjX3N0YXRlLT5iYXNlLmN0bSkKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKQogCQlj Z21fbW9kZSB8PSBDR01fUElQRV9NT0RFX0NTQzsKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5nYW1t YV9sdXQpCisJaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCkKIAkJY2dtX21vZGUgfD0gQ0dN X1BJUEVfTU9ERV9HQU1NQTsKIAogCXJldHVybiBjZ21fbW9kZTsKQEAgLTEyMDYsNyArMTIwNiw3 IEBAIHN0YXRpYyBpbnQgaWxrX2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogCQlyZXR1cm4gcmV0OwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlID0K LQkJY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgJiYKKwkJY3J0Y19zdGF0ZS0+aHcuZ2FtbWFf bHV0ICYmCiAJCSFjcnRjX3N0YXRlLT5jOF9wbGFuZXM7CiAKIAkvKgpAQCAtMTIzMiw4ICsxMjMy LDggQEAgc3RhdGljIHUzMiBpdmJfZ2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoIWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSB8fAogCSAg ICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIEdBTU1B X01PREVfTU9ERV84QklUOwotCWVsc2UgaWYgKGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYm Ci0JCSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQorCWVsc2UgaWYgKGNydGNfc3RhdGUt Pmh3LmdhbW1hX2x1dCAmJgorCQkgY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpCiAJCXJldHVy biBHQU1NQV9NT0RFX01PREVfU1BMSVQ7CiAJZWxzZQogCQlyZXR1cm4gR0FNTUFfTU9ERV9NT0RF XzEwQklUOwpAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAgc3RhdGljIHUzMiBpdmJfY3NjX21vZGUoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJICogQ1NDIGNvbWVzIGFm dGVyIHRoZSBMVVQgaW4gZGVnYW1tYSwgUkdCLT5ZQ2JDciwKIAkgKiBhbmQgUkdCIGZ1bGwtPmxp bWl0ZWQgcmFuZ2UgbW9kZS4KIAkgKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1 dCB8fAorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCB8fAogCSAgICBjcnRjX3N0YXRl LT5vdXRwdXRfZm9ybWF0ICE9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCIHx8CiAJICAgIGxpbWl0 ZWRfY29sb3JfcmFuZ2UpCiAJCXJldHVybiAwOwpAQCAtMTI2NSwxMyArMTI2NSwxMyBAQCBzdGF0 aWMgaW50IGl2Yl9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIAkJcmV0dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCShjcnRj X3N0YXRlLT5iYXNlLmdhbW1hX2x1dCB8fAotCQkgY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1 dCkgJiYKKwkJKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCB8fAorCQkgY3J0Y19zdGF0ZS0+aHcu ZGVnYW1tYV9sdXQpICYmCiAJCSFjcnRjX3N0YXRlLT5jOF9wbGFuZXM7CiAKIAljcnRjX3N0YXRl LT5jc2NfZW5hYmxlID0KIAkJY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCAhPSBJTlRFTF9PVVRQ VVRfRk9STUFUX1JHQiB8fAotCQljcnRjX3N0YXRlLT5iYXNlLmN0bSB8fCBsaW1pdGVkX2NvbG9y X3JhbmdlOworCQljcnRjX3N0YXRlLT5ody5jdG0gfHwgbGltaXRlZF9jb2xvcl9yYW5nZTsKIAog CWNydGNfc3RhdGUtPmdhbW1hX21vZGUgPSBpdmJfZ2FtbWFfbW9kZShjcnRjX3N0YXRlKTsKIApA QCAtMTMwMiwxNCArMTMwMiwxNCBAQCBzdGF0aWMgaW50IGdsa19jb2xvcl9jaGVjayhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAogCWNydGNfc3Rh dGUtPmdhbW1hX2VuYWJsZSA9Ci0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCisJCWNy dGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCQkhY3J0Y19zdGF0ZS0+YzhfcGxhbmVzOwogCiAJ LyogT24gR0xLKyBkZWdhbW1hIExVVCBpcyBjb250cm9sbGVkIGJ5IGNzY19lbmFibGUgKi8KIAlj cnRjX3N0YXRlLT5jc2NfZW5hYmxlID0KLQkJY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCB8 fAorCQljcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCB8fAogCQljcnRjX3N0YXRlLT5vdXRwdXRf Zm9ybWF0ICE9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCIHx8Ci0JCWNydGNfc3RhdGUtPmJhc2Uu Y3RtIHx8IGNydGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2U7CisJCWNydGNfc3RhdGUtPmh3 LmN0bSB8fCBjcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9yX3JhbmdlOwogCiAJY3J0Y19zdGF0ZS0+ Z2FtbWFfbW9kZSA9IGdsa19nYW1tYV9tb2RlKGNydGNfc3RhdGUpOwogCkBAIC0xMzI2LDE0ICsx MzI2LDE0IEBAIHN0YXRpYyB1MzIgaWNsX2dhbW1hX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJdTMyIGdhbW1hX21vZGUgPSAwOwogCi0JaWYgKGNy dGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpCisJaWYgKGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFf bHV0KQogCQlnYW1tYV9tb2RlIHw9IFBSRV9DU0NfR0FNTUFfRU5BQkxFOwogCi0JaWYgKGNydGNf c3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCisJaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAm JgogCSAgICAhY3J0Y19zdGF0ZS0+YzhfcGxhbmVzKQogCQlnYW1tYV9tb2RlIHw9IFBPU1RfQ1ND X0dBTU1BX0VOQUJMRTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgfHwKKwlp ZiAoIWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCB8fAogCSAgICBjcnRjX3N0YXRlX2lzX2xlZ2Fj eV9nYW1tYShjcnRjX3N0YXRlKSkKIAkJZ2FtbWFfbW9kZSB8PSBHQU1NQV9NT0RFX01PREVfOEJJ VDsKIAllbHNlCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBzdGF0aWMgdTMyIGljbF9jc2NfbW9kZShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAl1MzIgY3NjX21v ZGUgPSAwOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuY3RtKQorCWlmIChjcnRjX3N0YXRlLT5o dy5jdG0pCiAJCWNzY19tb2RlIHw9IElDTF9DU0NfRU5BQkxFOwogCiAJaWYgKGNydGNfc3RhdGUt Pm91dHB1dF9mb3JtYXQgIT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0IgfHwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCmluZGV4IDNmY2YyZjg0YmNjZS4uZWY4MTQ0NTA5 M2Q2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKQEAgLTEzMiw5 ICsxMzIsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJ TlRFTF9PVVRQVVRfQU5BTE9HKTsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUu ZmxhZ3MgfD0gaW50ZWxfY3J0X2dldF9mbGFncyhlbmNvZGVyKTsKKwlwaXBlX2NvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVuY29kZXIpOwogCi0J cGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWct PnBvcnRfY2xvY2s7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9 IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrOwogfQogCiBzdGF0aWMgdm9pZCBoc3dfY3J0X2dldF9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCkBAIC0xNDQsMTMgKzE0NCwxMyBA QCBzdGF0aWMgdm9pZCBoc3dfY3J0X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAKIAlpbnRlbF9kZGlfZ2V0X2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CiAK LQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICY9IH4oRFJNX01PREVfRkxB R19QSFNZTkMgfAorCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICY9IH4oRFJN X01PREVfRkxBR19QSFNZTkMgfAogCQkJCQkgICAgICBEUk1fTU9ERV9GTEFHX05IU1lOQyB8CiAJ CQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfUFZTWU5DIHwKIAkJCQkJICAgICAgRFJNX01PREVfRkxB R19OVlNZTkMpOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gaW50 ZWxfY3J0X2dldF9mbGFncyhlbmNvZGVyKTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZS5mbGFncyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVuY29kZXIpOwogCi0JcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gbHB0X2dldF9pY2xraXAoZGV2X3ByaXYp OworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBscHRfZ2V0X2lj bGtpcChkZXZfcHJpdik7CiB9CiAKIC8qIE5vdGU6IFRoZSBjYWxsZXIgaXMgcmVxdWlyZWQgdG8g ZmlsdGVyIG91dCBkcG1zIG1vZGVzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlCkBAIC0xNjEsOCArMTYx LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0X3NldF9kcG1zKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnQgKmNydCA9IGludGVsX2Vu Y29kZXJfdG9fY3J0KGVuY29kZXIpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBhZHBhOwogCiAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gNSkKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgdm9pZCBoc3df cHJlX2VuYWJsZV9jcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCiAJV0FS Tl9PTighY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVyKTsKQEAgLTI4OCw3ICsyODgsNyBAQCBz dGF0aWMgdm9pZCBoc3dfZW5hYmxlX2NydChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK IAogCVdBUk5fT04oIWNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2Rlcik7CkBAIC0zNTgsNyArMzU4 LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJ JnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZTsKIAogCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdf REJMU0NBTikKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIGlu dCBwY2hfY3J0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYg KGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQogCQlyZXR1cm4g LUVJTlZBTDsKQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgaW50IGhzd19jcnRfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYg KGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19EQkxTQ0FOKQogCQlyZXR1cm4g LUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCmluZGV4IGE0 MTcyNTk1YzhkOC4uMWZjNzZlNjA0MGEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGRpLmMKQEAgLTE0NzgsNyArMTQ3OCw3IEBAIHN0YXRpYyB2b2lkIGRkaV9kb3RjbG9j a19nZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCWlmIChwaXBlX2Nv bmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJZG90Y2xvY2sgLz0gcGlwZV9jb25maWctPnBpeGVs X211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xv Y2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2Nr ID0gZG90Y2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLApAQCAtMTY5Miw3ICsxNjkyLDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogdm9p ZCBpbnRlbF9kZGlfc2V0X3BpcGVfc2V0dGluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2Nv ZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAJdTMyIHRl bXA7CkBAIC0xNzQ2LDcgKzE3NDYsNyBAQCB2b2lkIGludGVsX2RkaV9zZXRfcGlwZV9zZXR0aW5n cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHZvaWQgaW50ZWxf ZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQkJCSAgICBib29sIHN0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp OwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyOwogCXUzMiB0ZW1wOwpAQCAtMTc2MSw3ICsxNzYxLDcgQEAgdm9pZCBpbnRlbF9kZGlf c2V0X3ZjX3BheWxvYWRfYWxsb2MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUsCiAKIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRlbF9kZGlfZ2V0X2NydGNfZW5jb2Rl cihjcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC0xNzkwLDkg KzE3OTAsOSBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQlCVUcoKTsKIAl9CiAKLQlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19QVlNZ TkMpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX1BWU1lOQykKIAkJdGVtcCB8PSBUUkFOU19ERElfUFZTWU5DOwotCWlmIChjcnRjX3N0YXRl LT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BIU1lOQykKKwlpZiAo Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5D KQogCQl0ZW1wIHw9IFRSQU5TX0RESV9QSFNZTkM7CiAKIAlpZiAoY3B1X3RyYW5zY29kZXIgPT0g VFJBTlNDT0RFUl9FRFApIHsKQEAgLTE4NDUsNyArMTg0NSw3IEBAIHZvaWQgaW50ZWxfZGRpX2Vu YWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiAKIHZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90 cmFuc2NvZGVyOwogCWk5MTVfcmVnX3QgcmVnID0gVFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFu c2NvZGVyKTsKQEAgLTIxMTcsNyArMjExNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9nZXRf cG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogdm9pZCBpbnRl bF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIgPSBpbnRlbF9kZGlfZ2V0X2NydGNfZW5jb2RlcihjcnRjKTsKIAllbnVtIHBv cnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CkBAIC0yMTMwLDcgKzIxMzAsNyBAQCB2b2lkIGludGVs X2RkaV9lbmFibGVfcGlwZV9jbG9jayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAogdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Nsb2NrKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjLT5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3Rh dGUtPmNwdV90cmFuc2NvZGVyOwogCiAJaWYgKGNwdV90cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJf RURQKQpAQCAtMzIxMyw3ICszMjEzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBp cGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKQEAgLTM2MzcsNyArMzYzNyw3IEBAIGludGVsX2RkaV91 cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlXQVJOX09O KGNydGMgJiYgY3J0Yy0+YWN0aXZlKTsKIAogCWludGVsX3RjX3BvcnRfZ2V0X2xpbmsoZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSwgcmVxdWlyZWRfbGFuZXMpOwotCWlmIChjcnRjX3N0 YXRlICYmIGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmIChjcnRjX3N0YXRlICYmIGNydGNf c3RhdGUtPmh3LmFjdGl2ZSkKIAkJaW50ZWxfdXBkYXRlX2FjdGl2ZV9kcGxsKHN0YXRlLCBjcnRj LCBlbmNvZGVyKTsKIH0KIApAQCAtMzc2OSw3ICszNzY5LDcgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWct PnVhcGkuY3J0Yyk7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gcGlwZV9jb25m aWctPmNwdV90cmFuc2NvZGVyOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0OwogCXUzMiB0ZW1wLCBmbGFncyA9IDA7CkBAIC0zNzg4LDcgKzM3ODgsNyBAQCB2b2lk IGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWVs c2UKIAkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OVlNZTkM7CiAKLQlwaXBlX2NvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJc3dpdGNoICh0ZW1wICYgVFJBTlNfRERJX0JQQ19N QVNLKSB7CiAJY2FzZSBUUkFOU19ERElfQlBDXzY6CkBAIC0zOTE4LDcgKzM5MTgsNyBAQCBzdGF0 aWMgaW50IGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJ CSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKIAlp bnQgcmV0OwpAQCAtNDA0OSw3ICs0MDQ5LDcgQEAgc3RhdGljIGludCBpbnRlbF9oZG1pX3Jlc2V0 X2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlXQVJOX09OKCFpbnRlbF9j cnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9IRE1JKSk7CiAKLQlpZiAoIWNy dGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQly ZXR1cm4gMDsKIAogCWlmICghY3J0Y19zdGF0ZS0+aGRtaV9oaWdoX3RtZHNfY2xvY2tfcmF0aW8g JiYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKaW5kZXgg OTE5ZjVhYzg0NGM4Li43MzA2MDYyM2I4M2YgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC01MTgsNyArNTE4LDcgQEAgaWNsX3dhX3NjYWxlcmNs a2dhdGluZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBl LAogc3RhdGljIGJvb2wKIG5lZWRzX21vZGVzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnN0YXRlKQogewotCXJldHVybiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmc3Rh dGUtPmJhc2UpOworCXJldHVybiBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmc3RhdGUt PnVhcGkpOwogfQogCiAvKgpAQCAtNjMyLDcgKzYzMiw3IEBAIGk5eHhfc2VsZWN0X3AyX2Rpdihj b25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAogCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgaW50IHRhcmdldCkKIHsKLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc190eXBlKGNydGNf c3RhdGUsIElOVEVMX09VVFBVVF9MVkRTKSkgewogCQkvKgpAQCAtNjY4LDcgKzY2OCw3IEBAIGk5 eHhfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKIAkJICAg IGludCB0YXJnZXQsIGludCByZWZjbGssIHN0cnVjdCBkcGxsICptYXRjaF9jbG9jaywKIAkJICAg IHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXY7CiAJc3RydWN0IGRwbGwgY2xvY2s7CiAJaW50IGVyciA9 IHRhcmdldDsKIApAQCAtNzI2LDcgKzcyNiw3IEBAIHBudl9maW5kX2Jlc3RfZHBsbChjb25zdCBz dHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAogCQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBz dHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCiAJCSAgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQog ewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXY7CiAJ c3RydWN0IGRwbGwgY2xvY2s7CiAJaW50IGVyciA9IHRhcmdldDsKIApAQCAtNzgyLDcgKzc4Miw3 IEBAIGc0eF9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAog CQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCiAJ CSAgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXY7CiAJc3RydWN0IGRwbGwgY2xvY2s7CiAJaW50IG1h eF9uOwogCWJvb2wgZm91bmQgPSBmYWxzZTsKQEAgLTg3Niw3ICs4NzYsNyBAQCB2bHZfZmluZF9i ZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKIAkJICAgaW50IHRhcmdl dCwgaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKm1hdGNoX2Nsb2NrLAogCQkgICBzdHJ1Y3QgZHBs bCAqYmVzdF9jbG9jaykKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRwbGwgY2xvY2s7CiAJdW5zaWduZWQgaW50 IGJlc3RwcG0gPSAxMDAwMDAwOwpAQCAtOTM2LDcgKzkzNiw3IEBAIGNodl9maW5kX2Jlc3RfZHBs bChjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAogCQkgICBpbnQgdGFyZ2V0LCBpbnQg cmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCiAJCSAgIHN0cnVjdCBkcGxsICpiZXN0 X2Nsb2NrKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5iYXNlLmRldjsKIAl1bnNpZ25lZCBpbnQgYmVzdF9lcnJvcl9wcG07CiAJc3RydWN0IGRw bGwgY2xvY2s7CkBAIC0xMDE1LDcgKzEwMTUsNyBAQCBib29sIGludGVsX2NydGNfYWN0aXZlKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCSAqIGZvciBhdG9taWMuCiAJICovCiAJcmV0dXJuIGNy dGMtPmFjdGl2ZSAmJiBjcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYiAmJgotCQljcnRjLT5j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCQljcnRjLT5jb25maWctPmh3 LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKIH0KIAogZW51bSB0cmFuc2NvZGVyIGludGVsX3Bp cGVfdG9fY3B1X3RyYW5zY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApA QCAtMTA2OSw3ICsxMDY5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfd2FpdF9mb3JfcGlwZV9zY2Fu bGluZV9tb3Zpbmcoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiBzdGF0aWMgdm9pZAogaW50ZWxf d2FpdF9mb3JfcGlwZV9vZmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRj X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSA0KSB7CkBAIC0xNTM1LDcgKzE1MzUsNyBAQCBzdGF0aWMgdm9pZCBp OXh4X2VuYWJsZV9wbGwoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIGk5 eHhfZGlzYWJsZV9wbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBl OwogCkBAIC0xNjI3LDcgKzE2MjcsNyBAQCB2b2lkIHZsdl93YWl0X3BvcnRfcmVhZHkoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lbmFi bGVfcGNoX3RyYW5zY29kZXIoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5w aXBlOwogCWk5MTVfcmVnX3QgcmVnOwpAQCAtMTc3OSw3ICsxNzc5LDcgQEAgZW51bSBwaXBlIGlu dGVsX2NydGNfcGNoX3RyYW5zY29kZXIoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0YXRp YyB1MzIgaW50ZWxfY3J0Y19tYXhfdmJsYW5rX2NvdW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYp OwogCiAJLyoKIAkgKiBPbiBpOTY1Z20gdGhlIGhhcmR3YXJlIGZyYW1lIGNvdW50ZXIgcmVhZHMK QEAgLTE3OTksNyArMTc5OSw3IEBAIHN0YXRpYyB1MzIgaW50ZWxfY3J0Y19tYXhfdmJsYW5rX2Nv dW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlCiAKIHN0YXRpYyB2 b2lkIGludGVsX2NydGNfdmJsYW5rX29uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJZHJtX2NydGNfc2V0X21heF92Ymxh bmtfY291bnQoJmNydGMtPmJhc2UsCiAJCQkJICAgICAgaW50ZWxfY3J0Y19tYXhfdmJsYW5rX2Nv dW50KGNydGNfc3RhdGUpKTsKQEAgLTE4MDgsNyArMTgwOCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2NydGNfdmJsYW5rX29uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogCiBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfcGlwZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBuZXdfY3J0Y19zdGF0ZS0+Y3B1 X3RyYW5zY29kZXI7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtMTg2Niw3ICsx ODY2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX3BpcGUoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxl X3BpcGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xk X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFu c2NvZGVyID0gb2xkX2NydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKQEAgLTMxMzAsMTQgKzMxMzAsMTQgQEAgaW50ZWxfc2V0X3BsYW5lX3Zp c2libGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJcGxhbmVfc3RhdGUt PmJhc2UudmlzaWJsZSA9IHZpc2libGU7CiAKIAlpZiAodmlzaWJsZSkKLQkJY3J0Y19zdGF0ZS0+ YmFzZS5wbGFuZV9tYXNrIHw9IGRybV9wbGFuZV9tYXNrKCZwbGFuZS0+YmFzZSk7CisJCWNydGNf c3RhdGUtPnVhcGkucGxhbmVfbWFzayB8PSBkcm1fcGxhbmVfbWFzaygmcGxhbmUtPmJhc2UpOwog CWVsc2UKLQkJY3J0Y19zdGF0ZS0+YmFzZS5wbGFuZV9tYXNrICY9IH5kcm1fcGxhbmVfbWFzaygm cGxhbmUtPmJhc2UpOworCQljcnRjX3N0YXRlLT51YXBpLnBsYW5lX21hc2sgJj0gfmRybV9wbGFu ZV9tYXNrKCZwbGFuZS0+YmFzZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGZpeHVwX2FjdGl2ZV9wbGFu ZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT51YXBpLmNydGMtPmRldik7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAKIAkvKgpA QCAtMzE0OCw3ICszMTQ4LDcgQEAgc3RhdGljIHZvaWQgZml4dXBfYWN0aXZlX3BsYW5lcyhzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAljcnRjX3N0YXRlLT5hY3RpdmVfcGxh bmVzID0gMDsKIAogCWRybV9mb3JfZWFjaF9wbGFuZV9tYXNrKHBsYW5lLCAmZGV2X3ByaXYtPmRy bSwKLQkJCQljcnRjX3N0YXRlLT5iYXNlLnBsYW5lX21hc2spCisJCQkJY3J0Y19zdGF0ZS0+dWFw aS5wbGFuZV9tYXNrKQogCQljcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzIHw9IEJJVCh0b19pbnRl bF9wbGFuZShwbGFuZSktPmlkKTsKIH0KIApAQCAtMzU5MCw3ICszNTkwLDcgQEAgaTl4eF9wbGFu ZV9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAKIHN0YXRpYyB1MzIgaTl4 eF9wbGFuZV9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAl1MzIgZHNwY250ciA9IDA7CiAKQEAgLTM3 MjcsNyArMzcyNyw3IEBAIGk5eHhfcGxhbmVfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJCXJldHVybiByZXQ7CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9j aGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0YXRl LT5iYXNlLAorCQkJCQkJICAmY3J0Y19zdGF0ZS0+dWFwaSwKIAkJCQkJCSAgRFJNX1BMQU5FX0hF TFBFUl9OT19TQ0FMSU5HLAogCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJ CQkJCQkgIGZhbHNlLCB0cnVlKTsKQEAgLTM4OTgsNyArMzg5OCw3IEBAIHN0YXRpYyB2b2lkIHNr bF9kZXRhY2hfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLCBpbnQgaWQpCiAg Ki8KIHN0YXRpYyB2b2lkIHNrbF9kZXRhY2hfc2NhbGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9CiAJCSZj cnRjX3N0YXRlLT5zY2FsZXJfc3RhdGU7CiAJaW50IGk7CkBAIC00MDkzLDcgKzQwOTMsNyBAQCBz dGF0aWMgdTMyIGNubF9wbGFuZV9jdGxfZmxpcCh1bnNpZ25lZCBpbnQgcmVmbGVjdCkKIAogdTMy IHNrbF9wbGFuZV9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgcGxhbmVf Y3RsID0gMDsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwIHx8IElTX0dFTUlOSUxB S0UoZGV2X3ByaXYpKQpAQCAtNDE0OSw3ICs0MTQ5LDcgQEAgdTMyIHNrbF9wbGFuZV9jdGwoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIHUzMiBnbGtfcGxhbmVf Y29sb3JfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJdTMyIHBsYW5lX2NvbG9y X2N0bCA9IDA7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKQEAgLTQzNzAsMTEg KzQzNzAsMTEgQEAgc3RhdGljIHZvaWQgaWNsX3NldF9waXBlX2NoaWNrZW4oc3RydWN0IGludGVs X2NydGMgKmNydGMpCiBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfcGlwZV9jb25maWcoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJCSAgICAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUt PnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjLT5iYXNlLmRldik7CiAKIAkvKiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5 X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJlIGNhbGxlZC4gKi8KLQljcnRjLT5iYXNlLm1vZGUg PSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlOworCWNydGMtPmJhc2UubW9kZSA9IG5ld19jcnRj X3N0YXRlLT51YXBpLm1vZGU7CiAKIAkvKgogCSAqIFVwZGF0ZSBwaXBlIHNpemUgYW5kIGFkanVz dCBmaXR0ZXIgaWYgbmVlZGVkOiB0aGUgcmVhc29uIGZvciB0aGlzIGlzCkBAIC00ODAzLDcgKzQ4 MDMsNyBAQCBzdGF0aWMgdm9pZCBpdmJfbWFudWFsX2ZkaV9saW5rX3RyYWluKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9mZGlfcGxsX2VuYWJsZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7 CiAJaTkxNV9yZWdfdCByZWc7CkBAIC00OTY0LDkgKzQ5NjQsOSBAQCB2b2lkIGxwdF9kaXNhYmxl X2ljbGtpcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAvKiBQcm9ncmFtIGlD TEtJUCBjbG9jayB0byB0aGUgZGVzaXJlZCBmcmVxdWVuY3kgKi8KIHN0YXRpYyB2b2lkIGxwdF9w cm9ncmFtX2ljbGtpcChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5ody5h ZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAJdTMyIGRpdnNlbCwgcGhhc2VpbmMsIGF1eGRpdiwg cGhhc2VkaXIgPSAwOwogCXUzMiB0ZW1wOwogCkBAIC01MDgwLDcgKzUwODAsNyBAQCBpbnQgbHB0 X2dldF9pY2xraXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZv aWQgaXJvbmxha2VfcGNoX3RyYW5zY29kZXJfc2V0X3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJCQllbnVtIHBpcGUgcGNoX3RyYW5zY29kZXIp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2Nv ZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAKQEAgLTUxMjMsNyArNTEyMyw3IEBA IHN0YXRpYyB2b2lkIGNwdF9zZXRfZmRpX2JjX2JpZnVyY2F0aW9uKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgYm9vbCBlCiAKIHN0YXRpYyB2b2lkIGl2eWJyaWRnZV91cGRhdGVf ZmRpX2JjX2JpZnVyY2F0aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJc3dpdGNoIChjcnRjLT5waXBlKSB7 CkBAIC01MTUzLDcgKzUxNTMsNyBAQCBzdGF0aWMgc3RydWN0IGludGVsX2VuY29kZXIgKgogaW50 ZWxfZ2V0X2NydGNfbmV3X2VuY29kZXIoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCiAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubmVjdG9yX3N0YXRlOwogCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7 CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBOVUxMOwpAQCAtNTE4NSw3ICs1MTg1 LDcgQEAgaW50ZWxfZ2V0X2NydGNfbmV3X2VuY29kZXIoY29uc3Qgc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wY2hfZW5hYmxlKGNvbnN0IHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJaW50IHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtNTIz OSw3ICs1MjM5LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGNoX2VuYWJsZShjb25zdCBzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYp ICYmCiAJICAgIGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkpIHsKIAkJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2Rl OwogCQl1MzIgYnBjID0gKEk5MTVfUkVBRChQSVBFQ09ORihwaXBlKSkgJiBQSVBFQ09ORl9CUENf TUFTSykgPj4gNTsKIAkJaTkxNV9yZWdfdCByZWcgPSBUUkFOU19EUF9DVEwocGlwZSk7CiAJCWVu dW0gcG9ydCBwb3J0OwpAQCAtNTI2OSw3ICs1MjY5LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vf cGNoX2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIHN0YXRp YyB2b2lkIGxwdF9wY2hfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLAogCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVy ID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAKQEAgLTUzODYsMTAgKzUzODYsMTAgQEAg c2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGJv b2wgZm9yY2VfZGV0YWNoLAogCXN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVy X3N0YXRlID0KIAkJJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9Ci0JCXRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwkJdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwogCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7 CiAKIAkvKgogCSAqIFNyYyBjb29yZGluYXRlcyBhcmUgYWxyZWFkeSByb3RhdGVkIGJ5IDI3MCBk ZWdyZWVzIGZvcgpAQCAtNTQwNSw3ICs1NDA1LDcgQEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNoLAogCSAqIE9u Y2UgTlYxMiBpcyBlbmFibGVkLCBoYW5kbGUgaXQgaGVyZSB3aGlsZSBhbGxvY2F0aW5nIHNjYWxl cgogCSAqIGZvciBOVjEyLgogCSAqLwotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgJiYg Y3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgJiYKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5 ICYmIGNydGNfc3RhdGUtPmh3LmVuYWJsZSAmJgogCSAgICBuZWVkX3NjYWxlciAmJiBhZGp1c3Rl ZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKSB7CiAJCURSTV9ERUJVR19L TVMoIlBpcGUvUGxhbmUgc2NhbGluZyBub3Qgc3VwcG9ydGVkIHdpdGggSUYtSUQgbW9kZVxuIik7 CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtNTQ3NywxMyArNTQ3NywxMyBAQCBza2xfdXBkYXRlX3Nj YWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRh Y2gsCiAgKi8KIGludCBza2xfdXBkYXRlX3NjYWxlcl9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpzdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZzdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnN0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWJv b2wgbmVlZF9zY2FsZXIgPSBmYWxzZTsKIAogCWlmIChzdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBJ TlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwKQogCQluZWVkX3NjYWxlciA9IHRydWU7CiAKLQly ZXR1cm4gc2tsX3VwZGF0ZV9zY2FsZXIoc3RhdGUsICFzdGF0ZS0+YmFzZS5hY3RpdmUsIFNLTF9D UlRDX0lOREVYLAorCXJldHVybiBza2xfdXBkYXRlX3NjYWxlcihzdGF0ZSwgIXN0YXRlLT5ody5h Y3RpdmUsIFNLTF9DUlRDX0lOREVYLAogCQkJCSAmc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJf aWQsCiAJCQkJIHN0YXRlLT5waXBlX3NyY193LCBzdGF0ZS0+cGlwZV9zcmNfaCwKIAkJCQkgYWRq dXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSwKQEAgLTU1ODMsNyArNTU4Myw3IEBAIHN0YXRpYyB2 b2lkIHNreWxha2Vfc2NhbGVyX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0 YXRpYyB2b2lkIHNreWxha2VfcGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBp cGUgPSBjcnRjLT5waXBlOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAq c2NhbGVyX3N0YXRlID0KQEAgLTU2MjAsNyArNTYyMCw3IEBAIHN0YXRpYyB2b2lkIHNreWxha2Vf cGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAK IHN0YXRpYyB2b2lkIGlyb25sYWtlX3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWludCBwaXBl ID0gY3J0Yy0+cGlwZTsKIApAQCAtNTY0MSw3ICs1NjQxLDcgQEAgc3RhdGljIHZvaWQgaXJvbmxh a2VfcGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAKIHZvaWQgaHN3X2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKIApAQCAtNTY3OSw3ICs1Njc5LDcgQEAgdm9pZCBoc3dfZW5hYmxlX2lwcyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogdm9pZCBoc3dfZGlz YWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2 OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIApA QCAtNTc5MSw3ICs1NzkxLDcgQEAgaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeV9ub2F0b21pYyhz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCiBzdGF0aWMgYm9vbCBoc3dfcHJlX3VwZGF0ZV9kaXNhYmxl X2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkJ ICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5l d19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+ aXBzX2VuYWJsZWQpCkBAIC01ODA3LDcgKzU4MDcsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcHJlX3Vw ZGF0ZV9kaXNhYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNf cwogCSAqIERpc2FibGUgSVBTIGJlZm9yZSB3ZSBwcm9ncmFtIHRoZSBMVVQuCiAJICovCiAJaWYg KElTX0hBU1dFTEwoZGV2X3ByaXYpICYmCi0JICAgIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jb2xv cl9tZ210X2NoYW5nZWQgfHwKKwkgICAgKG5ld19jcnRjX3N0YXRlLT51YXBpLmNvbG9yX21nbXRf Y2hhbmdlZCB8fAogCSAgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKSAmJgogCSAgICBu ZXdfY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfU1BMSVQpCiAJCXJl dHVybiB0cnVlOwpAQCAtNTgxOCw3ICs1ODE4LDcgQEAgc3RhdGljIGJvb2wgaHN3X3ByZV91cGRh dGVfZGlzYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3MK IHN0YXRpYyBib29sIGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CiAKIAlpZiAoIW5ld19jcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKQEAgLTU4MzQs NyArNTgzNCw3IEBAIHN0YXRpYyBib29sIGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zCiAJICogUmUtZW5hYmxlIElQUyBh ZnRlciB0aGUgTFVUIGhhcyBiZWVuIHByb2dyYW1tZWQuCiAJICovCiAJaWYgKElTX0hBU1dFTEwo ZGV2X3ByaXYpICYmCi0JICAgIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jb2xvcl9tZ210X2NoYW5n ZWQgfHwKKwkgICAgKG5ld19jcnRjX3N0YXRlLT51YXBpLmNvbG9yX21nbXRfY2hhbmdlZCB8fAog CSAgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKSAmJgogCSAgICBuZXdfY3J0Y19zdGF0 ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfU1BMSVQpCiAJCXJldHVybiB0cnVlOwpA QCAtNTg0NCw3ICs1ODQ0LDcgQEAgc3RhdGljIGJvb2wgaHN3X3Bvc3RfdXBkYXRlX2VuYWJsZV9p cHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3MKIAkgKiBmb3JjaWJs eSBlbmFibGUgSVBTIG9uIHRoZSBmaXJzdCBmYXN0c2V0LgogCSAqLwogCWlmIChuZXdfY3J0Y19z dGF0ZS0+dXBkYXRlX3BpcGUgJiYKLQkgICAgb2xkX2NydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRf bW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKQorCSAgICBvbGRf Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZM QUdfSU5IRVJJVEVEKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJldHVybiAhb2xkX2NydGNfc3RhdGUt Pmlwc19lbmFibGVkOwpAQCAtNTg3NSwxMCArNTg3NSwxMCBAQCBzdGF0aWMgYm9vbCBuZWVkc19z Y2FsZXJjbGtfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0aWMg dm9pZCBpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9 IG9sZF9jcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT51YXBpLnN0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZyA9CiAJCWludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUodG9f aW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKSwKIAkJCQkJCWNydGMpOwpAQCAtNTg4OCw3ICs1ODg4 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogCiAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcCh0b19p OTE1KGNydGMtPmJhc2UuZGV2KSwgcGlwZV9jb25maWctPmZiX2JpdHMpOwogCi0JaWYgKHBpcGVf Y29uZmlnLT51cGRhdGVfd21fcG9zdCAmJiBwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUpCisJaWYg KHBpcGVfY29uZmlnLT51cGRhdGVfd21fcG9zdCAmJiBwaXBlX2NvbmZpZy0+aHcuYWN0aXZlKQog CQlpbnRlbF91cGRhdGVfd2F0ZXJtYXJrcyhjcnRjKTsKIAogCWlmIChoc3dfcG9zdF91cGRhdGVf ZW5hYmxlX2lwcyhvbGRfY3J0Y19zdGF0ZSwgcGlwZV9jb25maWcpKQpAQCAtNTkxOCwxMCArNTkx OCwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVf dXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCQkgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT51YXBpLnN0YXRl OwogCXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSBjcnRjLT5iYXNlLnByaW1hcnk7CiAJc3Ry dWN0IGRybV9wbGFuZV9zdGF0ZSAqb2xkX3ByaW1hcnlfc3RhdGUgPQogCQlkcm1fYXRvbWljX2dl dF9vbGRfcGxhbmVfc3RhdGUoc3RhdGUsIHByaW1hcnkpOwpAQCAtNTk2Niw3ICs1OTY2LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGUsCiAJICogZXZlbnQgd2hpY2ggaXMgYWZ0ZXIgdGhlIHZibGFuayBz dGFydCBldmVudCwgc28gd2UgbmVlZCB0byBoYXZlIGEKIAkgKiB3YWl0LWZvci12YmxhbmsgYmV0 d2VlbiBkaXNhYmxpbmcgdGhlIHBsYW5lIGFuZCB0aGUgcGlwZS4KIAkgKi8KLQlpZiAoSEFTX0dN Q0goZGV2X3ByaXYpICYmIG9sZF9jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJgorCWlmIChIQVNf R01DSChkZXZfcHJpdikgJiYgb2xkX2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgogCSAgICBwaXBl X2NvbmZpZy0+ZGlzYWJsZV9jeHNyICYmIGludGVsX3NldF9tZW1vcnlfY3hzcihkZXZfcHJpdiwg ZmFsc2UpKQogCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIGNydGMtPnBpcGUpOwog CkBAIC01OTc4LDcgKzU5NzgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRl KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkgKiBXYUN4U1JEaXNh YmxlZEZvclNwcml0ZVNjYWxpbmc6aXZiCiAJICovCiAJaWYgKHBpcGVfY29uZmlnLT5kaXNhYmxl X2xwX3dtICYmIGlsa19kaXNhYmxlX2xwX3dtKGRldikgJiYKLQkgICAgb2xkX2NydGNfc3RhdGUt PmJhc2UuYWN0aXZlKQorCSAgICBvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlpbnRlbF93 YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIGNydGMtPnBpcGUpOwogCiAJLyoKQEAgLTYyNzMsNyAr NjI3Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3VwZGF0ZV9waXBlKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3ByaW1hcnlfcGxh bmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKGNy dGMtPmJhc2UucHJpbWFyeSk7CiAKIAlwbGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSwgY3J0Y19z dGF0ZSk7CkBAIC02MjgyLDcgKzYyODIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3By aW1hcnlfcGxhbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAogc3Rh dGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLAogCQkJCSBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRjOworCXN0cnVjdCBk cm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGMpOwpAQCAtNjQxMCw3ICs2NDEwLDcgQEAgc3RhdGljIHZvaWQgaWNsX3BpcGVf bWJ1c19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiBzdGF0aWMgdm9pZCBoYXN3ZWxs X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBp cGVfY29uZmlnLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjKTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGUsIGhzd193 b3JrYXJvdW5kX3BpcGU7CkBAIC02NTE5LDcgKzY1MTksNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxs X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogc3Rh dGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwog CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtNjUzNSw3ICs2NTM1LDcgQEAgc3Rh dGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkJICBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRj X3N0YXRlLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwpAQCAtNjU5 NCw3ICs2NTk0LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0 Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCQkg c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpj cnRjID0gb2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMg PSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2Nv ZGVyID0gb2xkX2NydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwpAQCAtNjYyOCw3ICs2NjI4LDcg QEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlLAogCiBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZW5hYmxlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCiAJaWYgKCFjcnRjX3N0YXRlLT5nbWNoX3BmaXQuY29udHJvbCkKQEAgLTY3NTEs NyArNjc1MSw3IEBAIHN0YXRpYyB1NjQgZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAl1NjQgbWFzazsKIAllbnVtIHRyYW5zY29kZXIgdHJhbnNjb2RlciA9 IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIDA7CiAKIAltYXNr ID0gQklUX1VMTChQT1dFUl9ET01BSU5fUElQRShwaXBlKSk7CkBAIC02NzYwLDcgKzY3NjAsNyBA QCBzdGF0aWMgdTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2NydGMgKmNy dGMsCiAJICAgIGNydGNfc3RhdGUtPnBjaF9wZml0LmZvcmNlX3RocnUpCiAJCW1hc2sgfD0gQklU X1VMTChQT1dFUl9ET01BSU5fUElQRV9QQU5FTF9GSVRURVIocGlwZSkpOwogCi0JZHJtX2Zvcl9l YWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBkZXYsIGNydGNfc3RhdGUtPmJhc2UuZW5jb2Rlcl9t YXNrKSB7CisJZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBkZXYsIGNydGNfc3Rh dGUtPnVhcGkuZW5jb2Rlcl9tYXNrKSB7CiAJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyID0gdG9faW50ZWxfZW5jb2RlcihlbmNvZGVyKTsKIAogCQltYXNrIHw9IEJJVF9VTEwo aW50ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluKTsKQEAgLTY4MDcsNyArNjgwNyw3IEBAIHN0YXRp YyB2b2lkIG1vZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJICAgc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJh c2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFwaS5jcnRj OwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKQEAgLTY4NjMsNyArNjg2Myw3IEBAIHN0 YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAogCiBzdGF0aWMgdm9pZCBpOXh4X3NldF9wbGxfZGl2aWRlcnMoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAKIAlJOTE1X1dSSVRFKEZQMChjcnRjLT5waXBlKSwgY3J0Y19zdGF0ZS0+ZHBsbF9o d19zdGF0ZS5mcDApOwpAQCAtNjg3Myw3ICs2ODczLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9zZXRf cGxsX2RpdmlkZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog c3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewot CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3RydWN0 IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Yyk7CkBAIC02OTIzLDcgKzY5MjMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Ny dGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogc3RhdGlj IHZvaWQgaTl4eF9wZml0X2Rpc2FibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9s ZF9jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlpZiAo IW9sZF9jcnRjX3N0YXRlLT5nbWNoX3BmaXQuY29udHJvbCkKQEAgLTY5MzksNyArNjkzOSw3IEBA IHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCSAgICAgIHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9j cnRjX3N0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gb2xkX2NydGNf c3RhdGUtPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC03MTA3 LDggKzcxMDcsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlpZiAoIWNydGNfc3RhdGUpCiAJ CQlyZXR1cm47CiAKLQkJSTkxNV9TVEFURV9XQVJOKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwK LQkJICAgICAgImNvbm5lY3RvciBpcyBhY3RpdmUsIGJ1dCBhdHRhY2hlZCBjcnRjIGlzbid0XG4i KTsKKwkJSTkxNV9TVEFURV9XQVJOKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUsCisJCQkJImNvbm5l Y3RvciBpcyBhY3RpdmUsIGJ1dCBhdHRhY2hlZCBjcnRjIGlzbid0XG4iKTsKIAogCQlpZiAoIWVu Y29kZXIgfHwgZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQogCQkJcmV0dXJu OwpAQCAtNzExOSw4ICs3MTE5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX3Zlcmlm eV9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJSTkxNV9TVEFU RV9XQVJOKGNvbm5fc3RhdGUtPmNydGMgIT0gZW5jb2Rlci0+YmFzZS5jcnRjLAogCQkJImF0dGFj aGVkIGVuY29kZXIgY3J0YyBkaWZmZXJzIGZyb20gY29ubmVjdG9yIGNydGNcbiIpOwogCX0gZWxz ZSB7Ci0JCUk5MTVfU1RBVEVfV0FSTihjcnRjX3N0YXRlICYmIGNydGNfc3RhdGUtPmJhc2UuYWN0 aXZlLAotCQkJImF0dGFjaGVkIGNydGMgaXMgYWN0aXZlLCBidXQgY29ubmVjdG9yIGlzbid0XG4i KTsKKwkJSTkxNV9TVEFURV9XQVJOKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+aHcuYWN0aXZl LAorCQkJCSJhdHRhY2hlZCBjcnRjIGlzIGFjdGl2ZSwgYnV0IGNvbm5lY3RvciBpc24ndFxuIik7 CiAJCUk5MTVfU1RBVEVfV0FSTighY3J0Y19zdGF0ZSAmJiBjb25uX3N0YXRlLT5iZXN0X2VuY29k ZXIsCiAJCQkiYmVzdCBlbmNvZGVyIHNldCB3aXRob3V0IGNydGMhXG4iKTsKIAl9CkBAIC03MTI4 LDcgKzcxMjgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50IHBpcGVfcmVx dWlyZWRfZmRpX2xhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CWlmIChjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29k ZXIpCisJaWYgKGNydGNfc3RhdGUtPmh3LmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNfcGNoX2Vu Y29kZXIpCiAJCXJldHVybiBjcnRjX3N0YXRlLT5mZGlfbGFuZXM7CiAKIAlyZXR1cm4gMDsKQEAg LTcxMzgsNyArNzEzOCw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLAogCQkJCSAgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUgPSBwaXBlX2NvbmZpZy0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqb3Ro ZXJfY3J0YzsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb3RoZXJfY3J0Y19zdGF0ZTsKIApA QCAtNzIxMSw3ICs3MjExLDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g aW50ZWxfY3J0Yy0+YmFzZS5kZXY7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZTsKIAlpbnQgbGFuZSwgbGlua19idywgZmRpX2RvdGNsb2NrLCByZXQ7CiAJ Ym9vbCBuZWVkc19yZWNvbXB1dGUgPSBmYWxzZTsKIApAQCAtNzI1Nyw3ICs3MjU3LDcgQEAgc3Rh dGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMsCiAKIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFibGUoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 CiAKIAkvKiBJUFMgb25seSBleGlzdHMgb24gVUxUIG1hY2hpbmVzIGFuZCBpcyB0aWVkIHRvIHBp cGUgQS4gKi8KQEAgLTcyODcsOSArNzI4Nyw5IEBAIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2Nh cGFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMg Ym9vbCBoc3dfY29tcHV0ZV9pcHNfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCXRvX2k5 MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCQl0b19pOTE1KGNydGNfc3RhdGUtPnVh cGkuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9 Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9f aW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCiAJaWYgKCFoc3df Y3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAt NzMyOCw3ICs3MzI4LDcgQEAgc3RhdGljIHUzMiBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAl1MzIgcGl4ZWxfcmF0ZTsK IAotCXBpeGVsX3JhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xv Y2s7CisJcGl4ZWxfcmF0ZSA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xv Y2s7CiAKIAkvKgogCSAqIFdlIG9ubHkgdXNlIElGLUlEIGludGVybGFjaW5nLiBJZiB3ZSBldmVy IHVzZQpAQCAtNzM2MSwxMiArNzM2MSwxMiBAQCBzdGF0aWMgdTMyIGlsa19waXBlX3BpeGVsX3Jh dGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCiBzdGF0aWMg dm9pZCBpbnRlbF9jcnRjX2NvbXB1dGVfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAog CWlmIChIQVNfR01DSChkZXZfcHJpdikpCiAJCS8qIEZJWE1FIGNhbGN1bGF0ZSBwcm9wZXIgcGlw ZSBwaXhlbCByYXRlIGZvciBHTUNIIHBmaXQgKi8KIAkJY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSA9 Ci0JCQljcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwkJCWNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAllbHNlCiAJCWNydGNfc3RhdGUt PnBpeGVsX3JhdGUgPQogCQkJaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKQEAgLTcz NzYsNyArNzM3Niw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlOwogCWludCBjbG9ja19saW1pdCA9IGRldl9wcml2LT5tYXhfZG90Y2xrX2Zy ZXE7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQpIHsKQEAgLTc0MDIsNyArNzQwMiw3 IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKIAogCWlmICgocGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VU UFVUX0ZPUk1BVF9ZQ0JDUjQyMCB8fAogCSAgICAgcGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQg PT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQ0NCkgJiYKLQkgICAgIHBpcGVfY29uZmlnLT5i YXNlLmN0bSkgeworCSAgICAgcGlwZV9jb25maWctPmh3LmN0bSkgewogCQkvKgogCQkgKiBUaGVy ZSBpcyBvbmx5IG9uZSBwaXBlIENTQyB1bml0IHBlciBwaXBlLCBhbmQgd2UgbmVlZCB0aGF0CiAJ CSAqIGZvciBvdXRwdXQgY29udmVyc2lvbiBmcm9tIFJHQi0+WUNCQ1IuIFNvIGlmIENUTSBpcyBh bHJlYWR5CkBAIC03NTcxLDcgKzc1NzEsNyBAQCBzdGF0aWMgdm9pZCB2bHZfcGxsYl9yZWNhbF9v cGFtcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZQogc3RhdGlj IHZvaWQgaW50ZWxfcGNoX3RyYW5zY29kZXJfc2V0X21fbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9saW5rX21fbiAq bV9uKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKIApAQCAtNzU5OCw3ICs3NTk4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3B1X3RyYW5z Y29kZXJfc2V0X21fbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGEKIAkJ CQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uLAogCQkJCQkgY29uc3Qgc3RydWN0 IGludGVsX2xpbmtfbV9uICptMl9uMikKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJZW51bSB0cmFuc2NvZGVyIHRyYW5zY29kZXIgPSBj cnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKQEAgLTc5MTEsNyArNzkxMSw3IEBAIGludCB2bHZf Zm9yY2VfcGxsX29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBl IHBpcGUsCiAJaWYgKCFwaXBlX2NvbmZpZykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwaXBlX2Nv bmZpZy0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7CisJcGlwZV9jb25maWctPnVhcGkuY3J0YyA9 ICZjcnRjLT5iYXNlOwogCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0gMTsKIAlwaXBl X2NvbmZpZy0+ZHBsbCA9ICpkcGxsOwogCkBAIC04MDcxLDExICs4MDcxLDExIEBAIHN0YXRpYyB2 b2lkIGk4eHhfY29tcHV0ZV9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMg dm9pZCBpbnRlbF9zZXRfcGlwZV90aW1pbmdzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0 YXRlLT5jcHVfdHJhbnNjb2RlcjsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRq dXN0ZWRfbW9kZTsKIAl1MzIgY3J0Y192dG90YWwsIGNydGNfdmJsYW5rX2VuZDsKIAlpbnQgdnN5 bmNzaGlmdCA9IDA7CiAKQEAgLTgxMzMsNyArODEzMyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nl dF9waXBlX3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAKIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3NyY19zaXplKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtODE1NCwzOSArODE1NCwzOSBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9nZXRfcGlwZV90aW1pbmdzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAog CXUzMiB0bXA7CiAKIAl0bXAgPSBJOTE1X1JFQUQoSFRPVEFMKGNwdV90cmFuc2NvZGVyKSk7Ci0J cGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5ID0gKHRtcCAmIDB4 ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwg PSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZS5jcnRjX2hkaXNwbGF5ID0gKHRtcCAmIDB4ZmZmZikgKyAxOworCXBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7 CiAKIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkgewogCQl0bXAgPSBJ OTE1X1JFQUQoSEJMQU5LKGNwdV90cmFuc2NvZGVyKSk7Ci0JCXBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQgPQorCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZS5jcnRjX2hibGFua19zdGFydCA9CiAJCQkJCQkJKHRtcCAmIDB4ZmZmZikgKyAxOwot CQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCA9CisJCXBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCA9CiAJCQkJCQkoKHRt cCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAl9CiAJdG1wID0gSTkxNV9SRUFEKEhTWU5DKGNwdV90 cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5j X3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuY3J0Y19oc3luY19lbmQgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKKwlwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZm ZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfZW5kID0g KCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAKIAl0bXAgPSBJOTE1X1JFQUQoVlRPVEFMKGNw dV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3Zk aXNwbGF5ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuY3J0Y192dG90YWwgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKKwlwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5ID0gKHRtcCAmIDB4ZmZmZikgKyAx OworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsID0gKCh0bXAgPj4g MTYpICYgMHhmZmZmKSArIDE7CiAKIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2Nv ZGVyKSkgewogCQl0bXAgPSBJOTE1X1JFQUQoVkJMQU5LKGNwdV90cmFuc2NvZGVyKSk7Ci0JCXBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192Ymxhbmtfc3RhcnQgPQorCQlwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19zdGFydCA9CiAJCQkJCQkJKHRt cCAmIDB4ZmZmZikgKyAxOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf dmJsYW5rX2VuZCA9CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5r X2VuZCA9CiAJCQkJCQkoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAl9CiAJdG1wID0gSTkx NV9SRUFEKFZTWU5DKGNwdV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192c3luY19lbmQgPSAoKHRtcCA+PiAxNikgJiAw eGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0 YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl LmNydGNfdnN5bmNfZW5kID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAKIAlpZiAoSTkx NV9SRUFEKFBJUEVDT05GKGNwdV90cmFuc2NvZGVyKSkgJiBQSVBFQ09ORl9JTlRFUkxBQ0VfTUFT SykgewotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RF X0ZMQUdfSU5URVJMQUNFOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf dnRvdGFsICs9IDE7Ci0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192Ymxh bmtfZW5kICs9IDE7CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERS TV9NT0RFX0ZMQUdfSU5URVJMQUNFOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX3Z0b3RhbCArPSAxOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3Zi bGFua19lbmQgKz0gMTsKIAl9CiB9CiAKQEAgLTgyMDEsMjcgKzgyMDEsMjcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZ2V0X3BpcGVfc3JjX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJcGlw ZV9jb25maWctPnBpcGVfc3JjX2ggPSAodG1wICYgMHhmZmZmKSArIDE7CiAJcGlwZV9jb25maWct PnBpcGVfc3JjX3cgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAotCXBpcGVfY29uZmln LT5iYXNlLm1vZGUudmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKLQlwaXBlX2Nv bmZpZy0+YmFzZS5tb2RlLmhkaXNwbGF5ID0gcGlwZV9jb25maWctPnBpcGVfc3JjX3c7CisJcGlw ZV9jb25maWctPmh3Lm1vZGUudmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKKwlw aXBlX2NvbmZpZy0+aHcubW9kZS5oZGlzcGxheSA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193Owog fQogCiB2b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqbW9kZSwKIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQog ewotCW1vZGUtPmhkaXNwbGF5ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2hkaXNwbGF5OwotCW1vZGUtPmh0b3RhbCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGUuY3J0Y19odG90YWw7Ci0JbW9kZS0+aHN5bmNfc3RhcnQgPSBwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfc3RhcnQ7Ci0JbW9kZS0+aHN5bmNfZW5kID0gcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX2VuZDsKKwltb2RlLT5oZGlzcGxh eSA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7CisJbW9kZS0+ aHRvdGFsID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7CisJbW9k ZS0+aHN5bmNfc3RhcnQgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5j X3N0YXJ0OworCW1vZGUtPmhzeW5jX2VuZCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl LmNydGNfaHN5bmNfZW5kOwogCi0JbW9kZS0+dmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfdmRpc3BsYXk7Ci0JbW9kZS0+dnRvdGFsID0gcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3Z0b3RhbDsKLQltb2RlLT52c3luY19zdGFydCA9IHBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192c3luY19zdGFydDsKLQltb2RlLT52 c3luY19lbmQgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5k OworCW1vZGUtPnZkaXNwbGF5ID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192 ZGlzcGxheTsKKwltb2RlLT52dG90YWwgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX3Z0b3RhbDsKKwltb2RlLT52c3luY19zdGFydCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlLmNydGNfdnN5bmNfc3RhcnQ7CisJbW9kZS0+dnN5bmNfZW5kID0gcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGUuY3J0Y192c3luY19lbmQ7CiAKLQltb2RlLT5mbGFncyA9IHBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3M7CisJbW9kZS0+ZmxhZ3MgPSBwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFnczsKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQ RV9EUklWRVI7CiAKLQltb2RlLT5jbG9jayA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGUuY3J0Y19jbG9jazsKKwltb2RlLT5jbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2s7CiAKIAltb2RlLT5oc3luYyA9IGRybV9tb2RlX2hzeW5jKG1vZGUpOwog CW1vZGUtPnZyZWZyZXNoID0gZHJtX21vZGVfdnJlZnJlc2gobW9kZSk7CkBAIC04MjMwLDcgKzgy MzAsNyBAQCB2b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZSwKIAogc3RhdGljIHZvaWQgaTl4eF9zZXRfcGlwZWNvbmYoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAJdTMyIHBpcGVjb25mOwogCkBAIC04MjY3LDcgKzgyNjcsNyBAQCBzdGF0aWMgdm9pZCBp OXh4X3NldF9waXBlY29uZihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIAkJfQogCX0KIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkgeworCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKIAkJaWYgKElOVEVMX0dF TihkZXZfcHJpdikgPCA0IHx8CiAJCSAgICBpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUs IElOVEVMX09VVFBVVF9TRFZPKSkKIAkJCXBpcGVjb25mIHw9IFBJUEVDT05GX0lOVEVSTEFDRV9X X0ZJRUxEX0lORElDQVRJT047CkBAIC04Njk5LDcgKzg2OTksNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9nZXRfY3J0Y195Y2Jjcl9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRp YyB2b2lkIGk5eHhfZ2V0X3BpcGVfY29sb3JfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUgPSB0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0g aTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lID0gcGxhbmUtPmk5eHhfcGxhbmU7CkBAIC04ODIyLDcg Kzg4MjIsNyBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAkgKiBidXQgaW4gY2FzZSB0aGUgcGlwZSBpcyBlbmFibGVkIHcvbyBhbnkg cG9ydHMgd2UgbmVlZCBhIHNhbmUKIAkgKiBkZWZhdWx0LgogCSAqLwotCXBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVk X21vZGUuY3J0Y19jbG9jayA9CiAJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrIC8gcGlwZV9jb25m aWctPnBpeGVsX211bHRpcGxpZXI7CiAKIAlyZXQgPSB0cnVlOwpAQCAtOTMzNyw3ICs5MzM3LDcg QEAgdm9pZCBpbnRlbF9pbml0X3BjaF9yZWZjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB2YWw7CkBAIC05MzY1LDcgKzkz NjUsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKGNydGNfc3RhdGUtPmRpdGhlcikKIAkJ dmFsIHw9IChQSVBFQ09ORl9ESVRIRVJfRU4gfCBQSVBFQ09ORl9ESVRIRVJfVFlQRV9TUCk7CiAK LQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxB R19JTlRFUkxBQ0UpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKIAkJdmFsIHw9IFBJUEVDT05GX0lOVEVSTEFDRURfSUxL OwogCWVsc2UKIAkJdmFsIHw9IFBJUEVDT05GX1BST0dSRVNTSVZFOwpAQCAtOTM4MSw3ICs5Mzgx LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9waXBl Y29uZihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRj X3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAl1MzIgdmFsID0gMDsKQEAgLTkzODksNyArOTM4OSw3 IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBjcnRj X3N0YXRlLT5kaXRoZXIpCiAJCXZhbCB8PSAoUElQRUNPTkZfRElUSEVSX0VOIHwgUElQRUNPTkZf RElUSEVSX1RZUEVfU1ApOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5m bGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1 c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXZhbCB8PSBQSVBF Q09ORl9JTlRFUkxBQ0VEX0lMSzsKIAllbHNlCiAJCXZhbCB8PSBQSVBFQ09ORl9QUk9HUkVTU0lW RTsKQEAgLTk0MDAsNyArOTQwMCw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVjb25m KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9p ZCBiZHdfc2V0X3BpcGVtaXNjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXUzMiB2YWwgPSAwOwogCkBAIC05NTg2 LDcgKzk1ODYsNyBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRl KTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCWNv bnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQ7CiAJaW50IHJlZmNsayA9IDEyMDAwMDsKIApA QCAtMTAwMDIsNyArMTAwMDIsNyBAQCBzdGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Ns b2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJh c2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0 ZSk7CiAKIAlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVU X0RTSSkgfHwKIAkgICAgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewpAQCAtMTA1NDYsNyAr MTA1NDYsNyBAQCBzdGF0aWMgaW50IGludGVsX2NoZWNrX2N1cnNvcihzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVj a19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0YXRlLT5i YXNlLAorCQkJCQkJICAmY3J0Y19zdGF0ZS0+dWFwaSwKIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBF Ul9OT19TQ0FMSU5HLAogCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJCQkJ CQkgIHRydWUsIHRydWUpOwpAQCAtMTA3MjksNyArMTA3MjksNyBAQCBpOXh4X2N1cnNvcl9tYXhf c3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAKIHN0YXRpYyB1MzIgaTl4eF9jdXJz b3JfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGNudGwgPSAwOwogCkBAIC0xMTEzNiwxMiAr MTExMzYsMTIgQEAgaW50IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCiAJCWdvdG8gZmFpbDsKIAl9CiAKLQljcnRjX3N0YXRlLT5iYXNl LmFjdGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlID0gdHJ1ZTsKKwljcnRjX3N0YXRlLT51 YXBpLmFjdGl2ZSA9IGNydGNfc3RhdGUtPnVhcGkuZW5hYmxlID0gdHJ1ZTsKIAogCWlmICghbW9k ZSkKIAkJbW9kZSA9ICZsb2FkX2RldGVjdF9tb2RlOwogCi0JcmV0ID0gZHJtX2F0b21pY19zZXRf bW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+YmFzZSwgbW9kZSk7CisJcmV0ID0gZHJtX2F0b21p Y19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+dWFwaSwgbW9kZSk7CiAJaWYgKHJldCkK IAkJZ290byBmYWlsOwogCkBAIC0xMTM0OSw3ICsxMTM0OSw3IEBAIHN0YXRpYyB2b2lkIGlyb25s YWtlX3BjaF9jbG9ja19nZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJICogd2UgbWF5IG5l ZWQgc29tZSBpZGVhIGZvciB0aGUgZG90Y2xvY2sgYW55d2F5LgogCSAqIENhbGN1bGF0ZSBvbmUg YmFzZWQgb24gdGhlIEZESSBjb25maWd1cmF0aW9uLgogCSAqLwotCXBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21v ZGUuY3J0Y19jbG9jayA9CiAJCWludGVsX2RvdGNsb2NrX2NhbGN1bGF0ZShpbnRlbF9mZGlfbGlu a19mcmVxKGRldl9wcml2LCBwaXBlX2NvbmZpZyksCiAJCQkJCSAmcGlwZV9jb25maWctPmZkaV9t X24pOwogfQpAQCAtMTEzNzksNyArMTEzNzksNyBAQCBpbnRlbF9lbmNvZGVyX2N1cnJlbnRfbW9k ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0J Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7CisJY3J0Y19zdGF0ZS0+dWFwaS5j cnRjID0gJmNydGMtPmJhc2U7CiAKIAlpZiAoIWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2Nv bmZpZyhjcnRjLCBjcnRjX3N0YXRlKSkgewogCQlrZnJlZShjcnRjX3N0YXRlKTsKQEAgLTExNDUw LDEyICsxMTQ1MCwxMiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdAogCQkJCSAgICBjb25zdCBz dHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwKIAkJCQkgICAgc3RydWN0 IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJh c2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWJvb2wgbW9kZV9jaGFuZ2VkID0gbmVlZHNfbW9kZXNldChjcnRj X3N0YXRlKTsKLQlib29sIHdhc19jcnRjX2VuYWJsZWQgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5h Y3RpdmU7Ci0JYm9vbCBpc19jcnRjX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZTsK Kwlib29sIHdhc19jcnRjX2VuYWJsZWQgPSBvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOworCWJv b2wgaXNfY3J0Y19lbmFibGVkID0gY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCWJvb2wgdHVybl9v ZmYsIHR1cm5fb24sIHZpc2libGUsIHdhc192aXNpYmxlOwogCXN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJaW50IHJldDsKQEAgLTExNjMwLDkgKzEx NjMwLDkgQEAgc3RhdGljIGludCBpY2xfYWRkX2xpbmtlZF9wbGFuZXMoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAKIHN0YXRpYyBpbnQgaWNsX2NoZWNrX252MTJfcGxhbmVzKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwotCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUp OwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsICpsaW5rZWQ7CiAJc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKIAlpbnQgaTsKQEAgLTExNzAyLDkgKzExNzAyLDkgQEAg c3RhdGljIGludCBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiAKIHN0YXRpYyBib29sIGM4X3BsYW5lc19jaGFuZ2VkKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxf YXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRv bWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9j cnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIApAQCAtMTE4NjUsNyArMTE4NjUsNyBAQCBjb21wdXRl X2Jhc2VsaW5lX3BpcGVfYnBwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Ci0Jc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPnVhcGkuc3RhdGU7CiAJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bmVjdG9yX3N0YXRlOwogCWludCBicHAsIGk7CkBAIC0xMjAxOCw3ICsxMjAxOCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAogCQkJCSAgIGNvbnN0IGNoYXIgKmNvbnRleHQpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwogCXN0cnVj dCBpbnRlbF9wbGFuZSAqcGxhbmU7CkBAIC0xMjAyNywxNCArMTIwMjcsMTQgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcsCiAKIAlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc10gZW5hYmxlOiAlcyAl c1xuIiwKIAkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBjcnRjLT5iYXNlLm5hbWUsCi0JCSAg ICAgIHllc25vKHBpcGVfY29uZmlnLT5iYXNlLmVuYWJsZSksIGNvbnRleHQpOworCQkgICAgICB5 ZXNubyhwaXBlX2NvbmZpZy0+aHcuZW5hYmxlKSwgY29udGV4dCk7CiAKLQlpZiAoIXBpcGVfY29u ZmlnLT5iYXNlLmVuYWJsZSkKKwlpZiAoIXBpcGVfY29uZmlnLT5ody5lbmFibGUpCiAJCWdvdG8g ZHVtcF9wbGFuZXM7CiAKIAlzbnByaW50Zl9vdXRwdXRfdHlwZXMoYnVmLCBzaXplb2YoYnVmKSwg cGlwZV9jb25maWctPm91dHB1dF90eXBlcyk7CiAJRFJNX0RFQlVHX0tNUygiYWN0aXZlOiAlcywg b3V0cHV0X3R5cGVzOiAlcyAoMHgleCksIG91dHB1dCBmb3JtYXQ6ICVzXG4iLAotCQkgICAgICB5 ZXNubyhwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUpLAorCQkgICAgICB5ZXNubyhwaXBlX2NvbmZp Zy0+aHcuYWN0aXZlKSwKIAkJICAgICAgYnVmLCBwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzLAog CQkgICAgICBvdXRwdXRfZm9ybWF0cyhwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCkpOwogCkBA IC0xMjA3NCwxMCArMTIwNzQsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZp Zyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCWludGVsX2R1 bXBfaW5mb2ZyYW1lKGRldl9wcml2LCAmcGlwZV9jb25maWctPmluZm9mcmFtZXMuaGRtaSk7CiAK IAlEUk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgbW9kZTpcbiIpOwotCWRybV9tb2RlX2RlYnVnX3By aW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5iYXNlLm1vZGUpOworCWRybV9tb2RlX2RlYnVnX3By aW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5ody5tb2RlKTsKIAlEUk1fREVCVUdfS01TKCJhZGp1 c3RlZCBtb2RlOlxuIik7Ci0JZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZSgmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZSk7Ci0JaW50ZWxfZHVtcF9jcnRjX3RpbWluZ3MoJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUpOworCWRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxp bmUoJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlKTsKKwlpbnRlbF9kdW1wX2NydGNfdGlt aW5ncygmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUpOwogCURSTV9ERUJVR19LTVMoInBv cnQgY2xvY2s6ICVkLCBwaXBlIHNyYyBzaXplOiAlZHglZCwgcGl4ZWwgcmF0ZSAlZFxuIiwKIAkJ ICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCSAgICAgIHBpcGVfY29uZmlnLT5waXBl X3NyY193LCBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCwKQEAgLTEyMTg2LDcgKzEyMTg2LDcgQEAg c3RhdGljIGludAogY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQot CQl0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwkJdG9faTkxNShjcnRjX3N0 YXRlLT51YXBpLmNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnNhdmVkX3N0 YXRlOwogCiAJc2F2ZWRfc3RhdGUgPSBremFsbG9jKHNpemVvZigqc2F2ZWRfc3RhdGUpLCBHRlBf S0VSTkVMKTsKQEAgLTEyMjA5LDkgKzEyMjA5LDEwIEBAIGNsZWFyX2ludGVsX2NydGNfc3RhdGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCXNhdmVkX3N0YXRlLT53bSA9 IGNydGNfc3RhdGUtPndtOwogCiAJLyogS2VlcCBiYXNlIGRybV9jcnRjX3N0YXRlIGludGFjdCwg b25seSBjbGVhciBvdXIgZXh0ZW5kZWQgc3RydWN0ICovCi0JQlVJTERfQlVHX09OKG9mZnNldG9m KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBiYXNlKSk7Ci0JbWVtY3B5KCZjcnRjX3N0YXRlLT5i YXNlICsgMSwgJnNhdmVkX3N0YXRlLT5iYXNlICsgMSwKLQkgICAgICAgc2l6ZW9mKCpjcnRjX3N0 YXRlKSAtIHNpemVvZihjcnRjX3N0YXRlLT5iYXNlKSk7CisJQlVJTERfQlVHX09OKG9mZnNldG9m KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCB1YXBpKSk7CisJQlVJTERfQlVHX09OKG9mZnNldG9m KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBodykpOworCW1lbWNweSgmY3J0Y19zdGF0ZS0+dWFw aSArIDEsICZzYXZlZF9zdGF0ZS0+dWFwaSArIDEsCisJICAgICAgIHNpemVvZigqY3J0Y19zdGF0 ZSkgLSBzaXplb2YoY3J0Y19zdGF0ZS0+dWFwaSkpOwogCiAJa2ZyZWUoc2F2ZWRfc3RhdGUpOwog CXJldHVybiAwOwpAQCAtMTIyMjAsOCArMTIyMjEsOCBAQCBjbGVhcl9pbnRlbF9jcnRjX3N0YXRl KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIGludAogaW50ZWxf bW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp CiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJhc2UuY3J0YzsKLQlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsK KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFwaS5jcnRjOworCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT51YXBpLnN0YXRlOwogCXN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u ZWN0b3I7CiAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKQEAg LTEyMjQxLDEzICsxMjI0MiwxMyBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAkgKiBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBw b2xhcml0eSBpcyByZXF1ZXN0ZWQsIHRyZWF0IHRoaXMgYXMgbWVhbmluZwogCSAqIG5lZ2F0aXZl IHBvbGFyaXR5LgogCSAqLwotCWlmICghKHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUu ZmxhZ3MgJgorCWlmICghKHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYKIAkg ICAgICAoRFJNX01PREVfRkxBR19QSFNZTkMgfCBEUk1fTU9ERV9GTEFHX05IU1lOQykpKQotCQlw aXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTkhT WU5DOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9ERV9G TEFHX05IU1lOQzsKIAotCWlmICghKHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxh Z3MgJgorCWlmICghKHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYKIAkgICAg ICAoRFJNX01PREVfRkxBR19QVlNZTkMgfCBEUk1fTU9ERV9GTEFHX05WU1lOQykpKQotCQlwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTlZTWU5D OworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9ERV9GTEFH X05WU1lOQzsKIAogCXJldCA9IGNvbXB1dGVfYmFzZWxpbmVfcGlwZV9icHAodG9faW50ZWxfY3J0 YyhjcnRjKSwKIAkJCQkJcGlwZV9jb25maWcpOwpAQCAtMTIyNjQsNyArMTIyNjUsNyBAQCBpbnRl bF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKIAkgKiBjb21wdXRhdGlvbiB0byBjbGVhcmx5IGRpc3Rpbmd1aXNoIGl0IGZyb20gdGhlIGFk anVzdGVkIG1vZGUsIHdoaWNoCiAJICogY2FuIGJlIGNoYW5nZWQgYnkgdGhlIGNvbm5lY3RvcnMg aW4gdGhlIGJlbG93IHJldHJ5IGxvb3AuCiAJICovCi0JZHJtX21vZGVfZ2V0X2h2X3RpbWluZygm cGlwZV9jb25maWctPmJhc2UubW9kZSwKKwlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKCZwaXBlX2Nv bmZpZy0+aHcubW9kZSwKIAkJCSAgICAgICAmcGlwZV9jb25maWctPnBpcGVfc3JjX3csCiAJCQkg ICAgICAgJnBpcGVfY29uZmlnLT5waXBlX3NyY19oKTsKIApAQCAtMTIyOTcsNyArMTIyOTgsNyBA QCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKIAlwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllciA9IDE7CiAKIAkvKiBGaWxs IGluIGRlZmF1bHQgY3J0YyB0aW1pbmdzLCBhbGxvdyBlbmNvZGVycyB0byBvdmVyd3JpdGUgdGhl bS4gKi8KLQlkcm1fbW9kZV9zZXRfY3J0Y2luZm8oJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUsCisJZHJtX21vZGVfc2V0X2NydGNpbmZvKCZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZSwKIAkJCSAgICAgIENSVENfU1RFUkVPX0RPVUJMRSk7CiAKIAkvKiBQYXNzIG91ciBtb2Rl IHRvIHRoZSBjb25uZWN0b3JzIGFuZCB0aGUgQ1JUQyB0byBnaXZlIHRoZW0gYSBjaGFuY2UgdG8K QEAgLTEyMzIyLDcgKzEyMzIzLDcgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiAJLyogU2V0IGRlZmF1bHQgcG9ydCBjbG9j ayBpZiBub3Qgb3ZlcndyaXR0ZW4gYnkgdGhlIGVuY29kZXIuIE5lZWRzIHRvIGJlCiAJICogZG9u ZSBhZnRlcndhcmRzIGluIGNhc2UgdGhlIGVuY29kZXIgYWRqdXN0cyB0aGUgbW9kZS4gKi8KIAlp ZiAoIXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrKQotCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9 IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jaworCQlwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sK IAkJCSogcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKIAlyZXQgPSBpbnRlbF9jcnRj X2NvbXB1dGVfY29uZmlnKHRvX2ludGVsX2NydGMoY3J0YyksIHBpcGVfY29uZmlnKTsKQEAgLTEy NDg2LDExICsxMjQ4NywxMSBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50X2NvbmZpZywKIAkJCSAgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJICBib29sIGZhc3RzZXQpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjdXJyZW50X2NvbmZpZy0+ YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3VycmVudF9jb25maWctPnVhcGkuY3J0Yy0+ZGV2KTsKIAlib29sIHJldCA9IHRydWU7 CiAJYm9vbCBmaXh1cF9pbmhlcml0ZWQgPSBmYXN0c2V0ICYmCi0JCShjdXJyZW50X2NvbmZpZy0+ YmFzZS5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpICYmCi0J CSEocGlwZV9jb25maWctPmJhc2UubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZMQUdf SU5IRVJJVEVEKTsKKwkJKGN1cnJlbnRfY29uZmlnLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJ OTE1X01PREVfRkxBR19JTkhFUklURUQpICYmCisJCSEocGlwZV9jb25maWctPmh3Lm1vZGUucHJp dmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCk7CiAKIAlpZiAoZml4dXBfaW5o ZXJpdGVkICYmICFmYXN0Ym9vdF9lbmFibGVkKGRldl9wcml2KSkgewogCQlEUk1fREVCVUdfS01T KCJpbml0aWFsIG1vZGVzZXQgYW5kIGZhc3Rib290IG5vdCBzZXRcbiIpOwpAQCAtMTI2NjEsMTkg KzEyNjYyLDE5IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCiAJUElQRV9DT05GX0NIRUNLX1gob3V0cHV0 X3R5cGVzKTsKIAotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hk aXNwbGF5KTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90 YWwpOwotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19z dGFydCk7Ci0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5r X2VuZCk7Ci0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNf c3RhcnQpOwotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5j X2VuZCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5 KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsKTsKKwlQ SVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX3N0YXJ0KTsKKwlQ SVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCk7CisJUElQ RV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0KTsKKwlQSVBF X0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfZW5kKTsKIAotCVBJUEVf Q09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5KTsKLQlQSVBFX0NP TkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y192dG90YWwpOwotCVBJUEVfQ09ORl9D SEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19zdGFydCk7Ci0JUElQRV9DT05G X0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5rX2VuZCk7Ci0JUElQRV9DT05G X0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfc3RhcnQpOwotCVBJUEVfQ09O Rl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX2VuZCk7CisJUElQRV9DT05G X0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5KTsKKwlQSVBFX0NPTkZfQ0hF Q0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsKTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSSho dy5hZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5rX3N0YXJ0KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSSho dy5hZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5rX2VuZCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcu YWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0YXJ0KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5h ZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5kKTsKIAogCVBJUEVfQ09ORl9DSEVDS19JKHBpeGVs X211bHRpcGxpZXIpOwogCVBJUEVfQ09ORl9DSEVDS19JKG91dHB1dF9mb3JtYXQpOwpAQCAtMTI2 ODgsMTcgKzEyNjg5LDE3IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCiAJUElQRV9DT05GX0NIRUNLX0JP T0xfSU5DT01QTEVURShoYXNfYXVkaW8pOwogCi0JUElQRV9DT05GX0NIRUNLX0ZMQUdTKGJhc2Uu YWRqdXN0ZWRfbW9kZS5mbGFncywKKwlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoaHcuYWRqdXN0ZWRf bW9kZS5mbGFncywKIAkJCSAgICAgIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKTsKIAogCWlmICgh UElQRV9DT05GX1FVSVJLKFBJUEVfQ09ORklHX1FVSVJLX01PREVfU1lOQ19GTEFHUykpIHsKLQkJ UElQRV9DT05GX0NIRUNLX0ZMQUdTKGJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncywKKwkJUElQRV9D T05GX0NIRUNLX0ZMQUdTKGh3LmFkanVzdGVkX21vZGUuZmxhZ3MsCiAJCQkJICAgICAgRFJNX01P REVfRkxBR19QSFNZTkMpOwotCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoYmFzZS5hZGp1c3RlZF9t b2RlLmZsYWdzLAorCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoaHcuYWRqdXN0ZWRfbW9kZS5mbGFn cywKIAkJCQkgICAgICBEUk1fTU9ERV9GTEFHX05IU1lOQyk7Ci0JCVBJUEVfQ09ORl9DSEVDS19G TEFHUyhiYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MsCisJCVBJUEVfQ09ORl9DSEVDS19GTEFHUyho dy5hZGp1c3RlZF9tb2RlLmZsYWdzLAogCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfUFZTWU5DKTsK LQkJUElQRV9DT05GX0NIRUNLX0ZMQUdTKGJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncywKKwkJUElQ RV9DT05GX0NIRUNLX0ZMQUdTKGh3LmFkanVzdGVkX21vZGUuZmxhZ3MsCiAJCQkJICAgICAgRFJN X01PREVfRkxBR19OVlNZTkMpOwogCX0KIApAQCAtMTI3NzcsNyArMTI3NzgsNyBAQCBpbnRlbF9w aXBlX2NvbmZpZ19jb21wYXJlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50 X2NvbmZpZywKIAlpZiAoSVNfRzRYKGRldl9wcml2KSB8fCBJTlRFTF9HRU4oZGV2X3ByaXYpID49 IDUpCiAJCVBJUEVfQ09ORl9DSEVDS19JKHBpcGVfYnBwKTsKIAotCVBJUEVfQ09ORl9DSEVDS19D TE9DS19GVVpaWShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayk7CisJUElQRV9DT05GX0NI RUNLX0NMT0NLX0ZVWlpZKGh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayk7CiAJUElQRV9DT05G X0NIRUNLX0NMT0NLX0ZVWlpZKHBvcnRfY2xvY2spOwogCiAJUElQRV9DT05GX0NIRUNLX0kobWlu X3ZvbHRhZ2VfbGV2ZWwpOwpAQCAtMTI4MDcsNyArMTI4MDgsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9waXBlX2NvbmZpZ19zYW5pdHlfY2hlY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7CiAJCWludCBmZGlfZG90 Y2xvY2sgPSBpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUoaW50ZWxfZmRpX2xpbmtfZnJlcShkZXZf cHJpdiwgcGlwZV9jb25maWcpLAogCQkJCQkJCSAgICAmcGlwZV9jb25maWctPmZkaV9tX24pOwot CQlpbnQgZG90Y2xvY2sgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xv Y2s7CisJCWludCBkb3RjbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNf Y2xvY2s7CiAKIAkJLyoKIAkJICogRkRJIGFscmVhZHkgcHJvdmlkZWQgb25lIGlkZWEgZm9yIHRo ZSBkb3RjbG9jay4KQEAgLTEyODM1LDcgKzEyODM2LDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dt X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWNvbnN0IGVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKIAlpbnQgcGxhbmUsIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xl dmVsKGRldl9wcml2KTsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSB8fCAhbmV3X2Ny dGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSB8fCAh bmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuOwogCiAJaHcgPSBremFsbG9jKHNp emVvZigqaHcpLCBHRlBfS0VSTkVMKTsKQEAgLTEzMDQ0LDEyICsxMzA0NSwxMiBAQCB2ZXJpZnlf Y3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGU7CiAJYm9vbCBhY3RpdmU7CiAKLQlzdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT5i YXNlLnN0YXRlOwotCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZvbGRf Y3J0Y19zdGF0ZS0+YmFzZSk7CisJc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsK KwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmb2xkX2NydGNfc3RhdGUt PnVhcGkpOwogCXBpcGVfY29uZmlnID0gb2xkX2NydGNfc3RhdGU7CiAJbWVtc2V0KHBpcGVfY29u ZmlnLCAwLCBzaXplb2YoKnBpcGVfY29uZmlnKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuY3J0YyA9 ICZjcnRjLT5iYXNlOwotCXBpcGVfY29uZmlnLT5iYXNlLnN0YXRlID0gc3RhdGU7CisJcGlwZV9j b25maWctPnVhcGkuY3J0YyA9ICZjcnRjLT5iYXNlOworCXBpcGVfY29uZmlnLT51YXBpLnN0YXRl ID0gc3RhdGU7CiAKIAlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc11cbiIsIGNydGMtPmJhc2Uu YmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lKTsKIApAQCAtMTMwNTcsMjMgKzEzMDU4LDI2IEBAIHZl cmlmeV9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJLyogd2Uga2VlcCBi b3RoIHBpcGVzIGVuYWJsZWQgb24gODMwICovCiAJaWYgKElTX0k4MzAoZGV2X3ByaXYpKQotCQlh Y3RpdmUgPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7CisJCWFjdGl2ZSA9IG5ld19jcnRj X3N0YXRlLT5ody5hY3RpdmU7CiAKLQlJOTE1X1NUQVRFX1dBUk4obmV3X2NydGNfc3RhdGUtPmJh c2UuYWN0aXZlICE9IGFjdGl2ZSwKLQkgICAgICJjcnRjIGFjdGl2ZSBzdGF0ZSBkb2Vzbid0IG1h dGNoIHdpdGggaHcgc3RhdGUgIgotCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBu ZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUsIGFjdGl2ZSk7CisJSTkxNV9TVEFURV9XQVJOKG5l d19jcnRjX3N0YXRlLT5ody5hY3RpdmUgIT0gYWN0aXZlLAorCQkJImNydGMgYWN0aXZlIHN0YXRl IGRvZXNuJ3QgbWF0Y2ggd2l0aCBodyBzdGF0ZSAiCisJCQkiKGV4cGVjdGVkICVpLCBmb3VuZCAl aSlcbiIsCisJCQluZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlLCBhY3RpdmUpOwogCi0JSTkxNV9T VEFURV9XQVJOKGNydGMtPmFjdGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUsCi0J ICAgICAidHJhbnNpdGlvbmFsIGFjdGl2ZSBzdGF0ZSBkb2VzIG5vdCBtYXRjaCBhdG9taWMgaHcg c3RhdGUgIgotCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBuZXdfY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUsIGNydGMtPmFjdGl2ZSk7CisJSTkxNV9TVEFURV9XQVJOKGNydGMtPmFj dGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlLAorCQkJInRyYW5zaXRpb25hbCBhY3Rp dmUgc3RhdGUgZG9lcyBub3QgbWF0Y2ggYXRvbWljIGh3IHN0YXRlICIKKwkJCSIoZXhwZWN0ZWQg JWksIGZvdW5kICVpKVxuIiwKKwkJCW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUsIGNydGMtPmFj dGl2ZSk7CiAKIAlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCAmY3J0Yy0+YmFzZSwgZW5j b2RlcikgewogCQllbnVtIHBpcGUgcGlwZTsKIAogCQlhY3RpdmUgPSBlbmNvZGVyLT5nZXRfaHdf c3RhdGUoZW5jb2RlciwgJnBpcGUpOwotCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICE9IG5ld19j cnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwKLQkJCSJbRU5DT0RFUjolaV0gYWN0aXZlICVpIHdpdGgg Y3J0YyBhY3RpdmUgJWlcbiIsCi0JCQllbmNvZGVyLT5iYXNlLmJhc2UuaWQsIGFjdGl2ZSwgbmV3 X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKTsKKwkJSTkxNV9TVEFURV9XQVJOKGFjdGl2ZSAhPSBu ZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlLAorCQkJCSJbRU5DT0RFUjolaV0gYWN0aXZlICVpIHdp dGggY3J0YyBhY3RpdmUgJWlcbiIsCisJCQkJZW5jb2Rlci0+YmFzZS5iYXNlLmlkLCBhY3RpdmUs CisJCQkJbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSk7CiAKIAkJSTkxNV9TVEFURV9XQVJOKGFj dGl2ZSAmJiBjcnRjLT5waXBlICE9IHBpcGUsCiAJCQkJIkVuY29kZXIgY29ubmVjdGVkIHRvIHdy b25nIHBpcGUgJWNcbiIsCkBAIC0xMzA4NSw3ICsxMzA4OSw3IEBAIHZlcmlmeV9jcnRjX3N0YXRl KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJaW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3Jh dGUocGlwZV9jb25maWcpOwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJ aWYgKCFuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm47CiAKIAlpbnRlbF9waXBl X2NvbmZpZ19zYW5pdHlfY2hlY2soZGV2X3ByaXYsIHBpcGVfY29uZmlnKTsKQEAgLTEzMTQ3LDcg KzEzMTUxLDcgQEAgdmVyaWZ5X3NpbmdsZV9kcGxsX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAogCWNydGNfbWFzayA9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2Up OwogCi0JaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAobmV3X2NydGNfc3Rh dGUtPmh3LmFjdGl2ZSkKIAkJSTkxNV9TVEFURV9XQVJOKCEocGxsLT5hY3RpdmVfbWFzayAmIGNy dGNfbWFzayksCiAJCQkJInBsbCBhY3RpdmUgbWlzbWF0Y2ggKGV4cGVjdGVkIHBpcGUgJWMgaW4g YWN0aXZlIG1hc2sgMHglMDJ4KVxuIiwKIAkJCQlwaXBlX25hbWUoZHJtX2NydGNfaW5kZXgoJmNy dGMtPmJhc2UpKSwgcGxsLT5hY3RpdmVfbWFzayk7CkBAIC0xMzIyNSw3ICsxMzIyOSw3IEBAIGlu dGVsX21vZGVzZXRfdmVyaWZ5X2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAogc3RhdGljIHZvaWQgdXBkYXRlX3NjYW5saW5lX29mZnNldChjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK IAogCS8qCkBAIC0xMzI1Niw3ICsxMzI2MCw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9zY2FubGlu ZV9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJICog YW5zd2VyIHRoYXQncyBzbGlnaHRseSBpbiB0aGUgZnV0dXJlLgogCSAqLwogCWlmIChJU19HRU4o ZGV2X3ByaXYsIDIpKSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAkJaW50IHZ0b3RhbDsKIAogCQl2dG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRj X3Z0b3RhbDsKQEAgLTEzMzA4LDcgKzEzMzEyLDcgQEAgc3RhdGljIGludCBoYXN3ZWxsX21vZGVf c2V0X3BsYW5lc193b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog CiAJLyogbG9vayBhdCBhbGwgY3J0YydzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGVuYWJsZWQgaW4g ZHVyaW5nIG1vZGVzZXQgKi8KIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0 ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZl IHx8CisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CiAJCSAgICAhbmVlZHNfbW9kZXNl dChjcnRjX3N0YXRlKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzMzMyw3ICsxMzMzNyw3IEBAIHN0 YXRpYyBpbnQgaGFzd2VsbF9tb2RlX3NldF9wbGFuZXNfd29ya2Fyb3VuZChzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCQljcnRjX3N0YXRlLT5oc3dfd29ya2Fyb3VuZF9waXBl ID0gSU5WQUxJRF9QSVBFOwogCi0JCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwKKwkJ aWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwKIAkJICAgIG5lZWRzX21vZGVzZXQoY3J0Y19z dGF0ZSkpCiAJCQljb250aW51ZTsKIApAQCAtMTM0MjUsMTIgKzEzNDI5LDEyIEBAIHN0YXRpYyBp bnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUp CiAKIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xk X2NydGNfc3RhdGUsCiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAobmV3X2Ny dGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkK IAkJCXN0YXRlLT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBpOwogCQllbHNlCiAJCQlzdGF0ZS0+YWN0 aXZlX2NydGNzICY9IH4oMSA8PCBpKTsKIAotCQlpZiAob2xkX2NydGNfc3RhdGUtPmJhc2UuYWN0 aXZlICE9IG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwkJaWYgKG9sZF9jcnRjX3N0YXRl LT5ody5hY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCXN0YXRlLT5hY3Rp dmVfcGlwZV9jaGFuZ2VzIHw9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwogCX0KIApAQCAt MTM1MzEsNyArMTM1MzUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2NoZWNrX2Zhc3RzZXQo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YQogCWlmICghaW50ZWxf cGlwZV9jb25maWdfY29tcGFyZShvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIHRydWUp KQogCQlyZXR1cm47CiAKLQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlX2NoYW5nZWQgPSBmYWxz ZTsKKwluZXdfY3J0Y19zdGF0ZS0+dWFwaS5tb2RlX2NoYW5nZWQgPSBmYWxzZTsKIAluZXdfY3J0 Y19zdGF0ZS0+dXBkYXRlX3BpcGUgPSB0cnVlOwogCiAJLyoKQEAgLTEzNTY2LDkgKzEzNTcwLDkg QEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkvKiBDYXRjaCBJOTE1X01PREVfRkxBR19JTkhFUklURUQgKi8KIAlmb3JfZWFjaF9vbGRuZXdf aW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsCiAJCQkJCSAg ICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAobmV3X2NydGNfc3RhdGUtPmJhc2UubW9kZS5w cml2YXRlX2ZsYWdzICE9Ci0JCSAgICBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLnByaXZhdGVf ZmxhZ3MpCi0JCQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0cnVlOworCQlp ZiAobmV3X2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAhPQorCQkgICAgb2xkX2Ny dGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncykKKwkJCW5ld19jcnRjX3N0YXRlLT51YXBp Lm1vZGVfY2hhbmdlZCA9IHRydWU7CiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hl Y2tfbW9kZXNldChkZXYsICZzdGF0ZS0+YmFzZSk7CkBAIC0xMzU4MCw3ICsxMzU4NCw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWlm ICghbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIAotCQlpZiAo IW5ld19jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkgeworCQlpZiAoIW5ld19jcnRjX3N0YXRlLT51 YXBpLmVuYWJsZSkgewogCQkJYW55X21zID0gdHJ1ZTsKIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0x MzcxNiw3ICsxMzcyMCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlpbnQgaTsKIAogCWZvcl9lYWNoX29sZG5ld19p bnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNf c3RhdGUsIGkpIHsKLQkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmICgh bmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwogCiAJCWludGVsX3VwZGF0 ZV9jcnRjKGNydGMsIHN0YXRlLCBvbGRfY3J0Y19zdGF0ZSwKQEAgLTEzNzM5LDcgKzEzNzQzLDcg QEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAogCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBj cnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpCiAJCS8qIGlnbm9yZSBhbGxv Y2F0aW9ucyBmb3IgY3J0YydzIHRoYXQgaGF2ZSBiZWVuIHR1cm5lZCBvZmYuICovCi0JCWlmIChu ZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0 aXZlKQogCQkJZW50cmllc1tpXSA9IG9sZF9jcnRjX3N0YXRlLT53bS5za2wuZGRiOwogCiAJLyog SWYgMm5kIERCdWYgc2xpY2UgcmVxdWlyZWQsIGVuYWJsZSBpdCBoZXJlICovCkBAIC0xMzc2MSw3 ICsxMzc2NSw3IEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfY3J0Y3Moc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJCXBpcGUgPSBjcnRjLT5waXBlOwogCi0JCQlpZiAodXBk YXRlZCAmIGNtYXNrIHx8ICFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCQlpZiAodXBk YXRlZCAmIGNtYXNrIHx8ICFuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQkJCWNvbnRpbnVl OwogCiAJCQlpZiAoc2tsX2RkYl9hbGxvY2F0aW9uX292ZXJsYXBzKCZuZXdfY3J0Y19zdGF0ZS0+ d20uc2tsLmRkYiwKQEAgLTEzNzgwLDcgKzEzNzg0LDcgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0 ZV9jcnRjcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCSAqLwogCQkJaWYg KCFza2xfZGRiX2VudHJ5X2VxdWFsKCZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLmRkYiwKIAkJCQkJ CSAmb2xkX2NydGNfc3RhdGUtPndtLnNrbC5kZGIpICYmCi0JCQkgICAgIW5ld19jcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZV9jaGFuZ2VkICYmCisJCQkgICAgIW5ld19jcnRjX3N0YXRlLT51YXBpLmFj dGl2ZV9jaGFuZ2VkICYmCiAJCQkgICAgc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgIT0g dXBkYXRlZCkKIAkJCQl2Ymxfd2FpdCA9IHRydWU7CiAKQEAgLTEzODg1LDcgKzEzODg5LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogCiAJCWludGVsX3ByZV9wbGFuZV91cGRhdGUob2xkX2NydGNfc3RhdGUs IG5ld19jcnRjX3N0YXRlKTsKIAotCQlpZiAob2xkX2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7 CisJCWlmIChvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQlpbnRlbF9jcnRjX2Rpc2Fi bGVfcGxhbmVzKHN0YXRlLCBjcnRjKTsKIAogCQkJLyoKQEAgLTEzOTA3LDcgKzEzOTExLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogCQkJaW50ZWxfY2hlY2tfcGNoX2ZpZm9fdW5kZXJydW5zKGRldl9wcml2 KTsKIAogCQkJLyogRklYTUUgdW5pZnkgdGhpcyBmb3IgYWxsIHBsYXRmb3JtcyAqLwotCQkJaWYg KCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYKKwkJCWlmICghbmV3X2NydGNfc3RhdGUt Pmh3LmFjdGl2ZSAmJgogCQkJICAgICFIQVNfR01DSChkZXZfcHJpdikgJiYKIAkJCSAgICBkZXZf cHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MpCiAJCQkJZGV2X3ByaXYtPmRpc3BsYXku aW5pdGlhbF93YXRlcm1hcmtzKHN0YXRlLApAQCAtMTM5NDIsMTIgKzEzOTQ2LDEzIEBAIHN0YXRp YyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAkJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSk7 CiAKIAkJLyogQ29tcGxldGUgZXZlbnRzIGZvciBub3cgZGlzYWJsZSBwaXBlcyBoZXJlLiAqLwot CQlpZiAobW9kZXNldCAmJiAhbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmIG5ld19jcnRj X3N0YXRlLT5iYXNlLmV2ZW50KSB7CisJCWlmIChtb2Rlc2V0ICYmICFuZXdfY3J0Y19zdGF0ZS0+ aHcuYWN0aXZlICYmIG5ld19jcnRjX3N0YXRlLT51YXBpLmV2ZW50KSB7CiAJCQlzcGluX2xvY2tf aXJxKCZkZXYtPmV2ZW50X2xvY2spOwotCQkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoJmNy dGMtPmJhc2UsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KTsKKwkJCWRybV9jcnRjX3NlbmRf dmJsYW5rX2V2ZW50KCZjcnRjLT5iYXNlLAorCQkJCQkJICAgbmV3X2NydGNfc3RhdGUtPnVhcGku ZXZlbnQpOwogCQkJc3Bpbl91bmxvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCi0JCQluZXdf Y3J0Y19zdGF0ZS0+YmFzZS5ldmVudCA9IE5VTEw7CisJCQluZXdfY3J0Y19zdGF0ZS0+dWFwaS5l dmVudCA9IE5VTEw7CiAJCX0KIAl9CiAKQEAgLTEzOTc4LDkgKzEzOTgzLDkgQEAgc3RhdGljIHZv aWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlKQogCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZsaXBfZG9uZShkZXYsICZzdGF0ZS0+ YmFzZSk7CiAKIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywg bmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAm JgorCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgogCQkgICAgIW5lZWRzX21vZGVz ZXQobmV3X2NydGNfc3RhdGUpICYmCi0JCSAgICAobmV3X2NydGNfc3RhdGUtPmJhc2UuY29sb3Jf bWdtdF9jaGFuZ2VkIHx8CisJCSAgICAobmV3X2NydGNfc3RhdGUtPnVhcGkuY29sb3JfbWdtdF9j aGFuZ2VkIHx8CiAJCSAgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKSkKIAkJCWludGVs X2NvbG9yX2xvYWRfbHV0cyhuZXdfY3J0Y19zdGF0ZSk7CiAJfQpAQCAtMTQ0NDgsMTYgKzE0NDUz LDE2IEBAIGludAogc2tsX21heF9zY2FsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkgICAgICB1MzIgcGl4ZWxfZm9ybWF0KQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCWludCBtYXhfc2NhbGUsIG11bHQ7CiAJaW50IGNydGNfY2xvY2ssIG1heF9kb3Rj bGssIHRtcGNsazEsIHRtcGNsazI7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQor CWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQogCQlyZXR1cm4gRFJNX1BMQU5FX0hFTFBFUl9O T19TQ0FMSU5HOwogCi0JY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9k ZS5jcnRjX2Nsb2NrOwotCW1heF9kb3RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19z dGF0ZS0+YmFzZS5zdGF0ZSktPmNkY2xrLmxvZ2ljYWwuY2RjbGs7CisJY3J0Y19jbG9jayA9IGNy dGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwltYXhfZG90Y2xrID0gdG9f aW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpLT5jZGNsay5sb2dpY2Fs LmNkY2xrOwogCiAJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTApCiAJCW1heF9kb3RjbGsgKj0gMjsKQEAgLTE0NDk1LDcgKzE0NTAwLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCiAJaWYgKG1vZGVzZXQpCiAJCWdvdG8gb3V0OwogCi0JaWYgKG5ld19jcnRj X3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAorCWlmIChuZXdfY3J0Y19zdGF0ZS0+ dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKIAkgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9w aXBlKQogCQlpbnRlbF9jb2xvcl9jb21taXQobmV3X2NydGNfc3RhdGUpOwogCkBAIC0xNDU0MSw3 ICsxNDU0Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1pdChzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAogCWlmIChuZXdfY3J0Y19zdGF0ZS0+dXBkYXRl X3BpcGUgJiYKIAkgICAgIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpICYmCi0JICAgIG9s ZF9jcnRjX3N0YXRlLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lO SEVSSVRFRCkKKwkgICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5 MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKIAkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihj cnRjLCBuZXdfY3J0Y19zdGF0ZSk7CiB9CiAKQEAgLTE0NjU0LDcgKzE0NjU5LDcgQEAgaW50ZWxf bGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJICogV2hlbiBj cnRjIGlzIGluYWN0aXZlIG9yIHRoZXJlIGlzIGEgbW9kZXNldCBwZW5kaW5nLAogCSAqIHdhaXQg Zm9yIGl0IHRvIGNvbXBsZXRlIGluIHRoZSBzbG93cGF0aAogCSAqLwotCWlmICghY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUgfHwgbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSB8fAorCWlmICghY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlIHx8IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkgfHwKIAkgICAg Y3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCiAJCWdvdG8gc2xvdzsKIApAQCAtMTQ3NDksNyArMTQ3 NTQsNyBAQCBpbnRlbF9sZWdhY3lfY3Vyc29yX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIG91dF9mcmVl OgogCWlmIChuZXdfY3J0Y19zdGF0ZSkKLQkJaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlKGNydGMs ICZuZXdfY3J0Y19zdGF0ZS0+YmFzZSk7CisJCWludGVsX2NydGNfZGVzdHJveV9zdGF0ZShjcnRj LCAmbmV3X2NydGNfc3RhdGUtPnVhcGkpOwogCWlmIChyZXQpCiAJCWludGVsX3BsYW5lX2Rlc3Ry b3lfc3RhdGUocGxhbmUsIG5ld19wbGFuZV9zdGF0ZSk7CiAJZWxzZQpAQCAtMTUwNjksNyArMTUw NzQsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQogCQlyZXQgPSAtRU5PTUVNOwogCQlnb3RvIGZh aWw7CiAJfQotCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgmaW50ZWxfY3J0Yy0+YmFz ZSwgJmNydGNfc3RhdGUtPmJhc2UpOworCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgm aW50ZWxfY3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPnVhcGkpOwogCWludGVsX2NydGMtPmNvbmZp ZyA9IGNydGNfc3RhdGU7CiAKIAlwcmltYXJ5ID0gaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUo ZGV2X3ByaXYsIHBpcGUpOwpAQCAtMTY0MDIsNyArMTY0MDcsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAgSTkxNV9SRUFE KHJlZykgJiB+UElQRUNPTkZfRlJBTUVfU1RBUlRfREVMQVlfTUFTSyk7CiAJfQogCi0JaWYgKGNy dGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7CisJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewog CQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCiAJCS8qIERpc2FibGUgZXZlcnl0aGluZyBi dXQgdGhlIHByaW1hcnkgcGxhbmUgKi8KQEAgLTE2NDI3LDEwICsxNjQzMiwxMCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJLyog QWRqdXN0IHRoZSBzdGF0ZSBvZiB0aGUgb3V0cHV0IHBpcGUgYWNjb3JkaW5nIHRvIHdoZXRoZXIg d2UKIAkgKiBoYXZlIGFjdGl2ZSBjb25uZWN0b3JzL2VuY29kZXJzLiAqLwotCWlmIChjcnRjX3N0 YXRlLT5iYXNlLmFjdGl2ZSAmJiAhaW50ZWxfY3J0Y19oYXNfZW5jb2RlcnMoY3J0YykpCisJaWYg KGNydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJiAhaW50ZWxfY3J0Y19oYXNfZW5jb2RlcnMoY3J0Yykp CiAJCWludGVsX2NydGNfZGlzYWJsZV9ub2F0b21pYygmY3J0Yy0+YmFzZSwgY3R4KTsKIAotCWlm IChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCBIQVNfR01DSChkZXZfcHJpdikpIHsKKwlpZiAo Y3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8IEhBU19HTUNIKGRldl9wcml2KSkgewogCQkvKgogCQkg KiBXZSBzdGFydCBvdXQgd2l0aCB1bmRlcnJ1biByZXBvcnRpbmcgZGlzYWJsZWQgdG8gYXZvaWQg cmFjZXMuCiAJCSAqIEZvciBjb3JyZWN0IGJvb2trZWVwaW5nIG1hcmsgdGhpcyBvbiBhY3RpdmUg Y3J0Y3MuCkBAIC0xNjQ2MSw3ICsxNjQ2Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXpl X2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyBib29sIGhhc19ib2d1c19k cGxsX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUt PmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCS8qCiAJICogU29tZSBTTkIg QklPU2VuIChlZy4gQVNVUyBLNTNTVikgYXJlIGtub3duIHRvIG1pc3Byb2dyYW0KQEAgLTE2NDc0 LDcgKzE2NDc5LDcgQEAgc3RhdGljIGJvb2wgaGFzX2JvZ3VzX2RwbGxfY29uZmlnKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCSAqIHJvYWQuCiAJICovCiAJcmV0 dXJuIElTX0dFTihkZXZfcHJpdiwgNikgJiYKLQkJY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYK KwkJY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICYmCiAJCWNydGNfc3RhdGUtPnNoYXJlZF9kcGxsICYm CiAJCWNydGNfc3RhdGUtPnBvcnRfY2xvY2sgPT0gMDsKIH0KQEAgLTE2NDkxLDcgKzE2NDk2LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKIAkgKiBlbmNvZGVyIGlzIGFjdGl2ZSBhbmQgdHJ5aW5nIHRvIHJlYWQgZnJv bSBhIHBpcGUpIGFuZCB0aGUKIAkgKiBwaXBlIGl0c2VsZiBiZWluZyBhY3RpdmUuICovCiAJYm9v bCBoYXNfYWN0aXZlX2NydGMgPSBjcnRjX3N0YXRlICYmCi0JCWNydGNfc3RhdGUtPmJhc2UuYWN0 aXZlOworCQljcnRjX3N0YXRlLT5ody5hY3RpdmU7CiAKIAlpZiAoY3J0Y19zdGF0ZSAmJiBoYXNf Ym9ndXNfZHBsbF9jb25maWcoY3J0Y19zdGF0ZSkpIHsKIAkJRFJNX0RFQlVHX0tNUygiQklPUyBo YXMgbWlzcHJvZ3JhbW1lZCB0aGUgaGFyZHdhcmUuIERpc2FibGluZyBwaXBlICVjXG4iLApAQCAt MTY2MjgsMjIgKzE2NjMzLDIyIEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSA9CiAJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUp OwogCi0JCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjX3N0YXRl LT5iYXNlKTsKKwkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJmNydGNf c3RhdGUtPnVhcGkpOwogCQltZW1zZXQoY3J0Y19zdGF0ZSwgMCwgc2l6ZW9mKCpjcnRjX3N0YXRl KSk7Ci0JCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgmY3J0Yy0+YmFzZSwgJmNydGNf c3RhdGUtPmJhc2UpOworCQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQoJmNydGMtPmJh c2UsICZjcnRjX3N0YXRlLT51YXBpKTsKIAotCQljcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSA9IGNy dGNfc3RhdGUtPmJhc2UuZW5hYmxlID0KKwkJY3J0Y19zdGF0ZS0+aHcuYWN0aXZlID0gY3J0Y19z dGF0ZS0+aHcuZW5hYmxlID0KIAkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhj cnRjLCBjcnRjX3N0YXRlKTsKIAotCQljcnRjLT5iYXNlLmVuYWJsZWQgPSBjcnRjX3N0YXRlLT5i YXNlLmVuYWJsZTsKLQkJY3J0Yy0+YWN0aXZlID0gY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7CisJ CWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGNfc3RhdGUtPmh3LmVuYWJsZTsKKwkJY3J0Yy0+YWN0 aXZlID0gY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCi0JCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSkKKwkJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCWRldl9wcml2LT5hY3RpdmVf Y3J0Y3MgfD0gMSA8PCBjcnRjLT5waXBlOwogCiAJCURSTV9ERUJVR19LTVMoIltDUlRDOiVkOiVz XSBodyBzdGF0ZSByZWFkb3V0OiAlc1xuIiwKIAkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCwg Y3J0Yy0+YmFzZS5uYW1lLAotCQkJICAgICAgZW5hYmxlZGRpc2FibGVkKGNydGNfc3RhdGUtPmJh c2UuYWN0aXZlKSk7CisJCQkgICAgICBlbmFibGVkZGlzYWJsZWQoY3J0Y19zdGF0ZS0+aHcuYWN0 aXZlKSk7CiAJfQogCiAJcmVhZG91dF9wbGFuZV9zdGF0ZShkZXZfcHJpdik7CkBAIC0xNjY1OCw3 ICsxNjY2Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUgPQogCQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAKLQkJ CWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJgorCQkJaWYgKGNydGNfc3RhdGUtPmh3LmFj dGl2ZSAmJgogCQkJICAgIGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID09IHBsbCkKIAkJCQlwbGwt PnN0YXRlLmNydGNfbWFzayB8PSAxIDw8IGNydGMtPnBpcGU7CiAJCX0KQEAgLTE2NjkyLDIxICsx NjY5NywyNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYs ICZjb25uX2l0ZXIpOwogCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3Rvciwg JmNvbm5faXRlcikgewogCQlpZiAoY29ubmVjdG9yLT5nZXRfaHdfc3RhdGUoY29ubmVjdG9yKSkg ewotCQkJY29ubmVjdG9yLT5iYXNlLmRwbXMgPSBEUk1fTU9ERV9EUE1TX09OOworCQkJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBOVUxMOwogCisJCQljb25uZWN0b3ItPmJh c2UuZHBtcyA9IERSTV9NT0RFX0RQTVNfT047CiAJCQllbmNvZGVyID0gY29ubmVjdG9yLT5lbmNv ZGVyOwogCQkJY29ubmVjdG9yLT5iYXNlLmVuY29kZXIgPSAmZW5jb2Rlci0+YmFzZTsKIAotCQkJ aWYgKGVuY29kZXItPmJhc2UuY3J0YyAmJgotCQkJICAgIGVuY29kZXItPmJhc2UuY3J0Yy0+c3Rh dGUtPmFjdGl2ZSkgeworCQkJaWYgKGVuY29kZXItPmJhc2UuY3J0YykKKwkJCQljcnRjX3N0YXRl ID0gdG9faW50ZWxfY3J0Y19zdGF0ZShlbmNvZGVyLT5iYXNlLmNydGMtPnN0YXRlKTsKKworCQkJ aWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQkJLyoKIAkJCQkg KiBUaGlzIGhhcyB0byBiZSBkb25lIGR1cmluZyBoYXJkd2FyZSByZWFkb3V0CiAJCQkJICogYmVj YXVzZSBhbnl0aGluZyBjYWxsaW5nIC5jcnRjX2Rpc2FibGUgbWF5CiAJCQkJICogcmVseSBvbiB0 aGUgY29ubmVjdG9yX21hc2sgYmVpbmcgYWNjdXJhdGUuCiAJCQkJICovCi0JCQkJZW5jb2Rlci0+ YmFzZS5jcnRjLT5zdGF0ZS0+Y29ubmVjdG9yX21hc2sgfD0KKwkJCQljcnRjX3N0YXRlLT51YXBp LmNvbm5lY3Rvcl9tYXNrIHw9CiAJCQkJCWRybV9jb25uZWN0b3JfbWFzaygmY29ubmVjdG9yLT5i YXNlKTsKLQkJCQllbmNvZGVyLT5iYXNlLmNydGMtPnN0YXRlLT5lbmNvZGVyX21hc2sgfD0KKwkJ CQljcnRjX3N0YXRlLT51YXBpLmVuY29kZXJfbWFzayB8PQogCQkJCQlkcm1fZW5jb2Rlcl9tYXNr KCZlbmNvZGVyLT5iYXNlKTsKIAkJCX0KIApAQCAtMTY3MjksMTEgKzE2NzM3LDEyIEBAIHN0YXRp YyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCQlpbnQgbWluX2NkY2xrID0gMDsKIAogCQltZW1zZXQoJmNydGMtPmJhc2UubW9kZSwg MCwgc2l6ZW9mKGNydGMtPmJhc2UubW9kZSkpOwotCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUpIHsKKwkJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewogCQkJaW50ZWxfbW9kZV9mcm9t X3BpcGVfY29uZmlnKCZjcnRjLT5iYXNlLm1vZGUsIGNydGNfc3RhdGUpOwogCQkJY3J0Yy0+YmFz ZS5tb2RlLmhkaXNwbGF5ID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdzsKIAkJCWNydGMtPmJhc2Uu bW9kZS52ZGlzcGxheSA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX2g7Ci0JCQlpbnRlbF9tb2RlX2Zy b21fcGlwZV9jb25maWcoJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSwgY3J0Y19zdGF0 ZSk7CisJCQlpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoJmNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGUsCisJCQkJCQkgICAgY3J0Y19zdGF0ZSk7CiAJCQlXQVJOX09OKGRybV9hdG9taWNf c2V0X21vZGVfZm9yX2NydGMoY3J0Yy0+YmFzZS5zdGF0ZSwgJmNydGMtPmJhc2UubW9kZSkpOwog CiAJCQkvKgpAQCAtMTY3NDUsNyArMTY3NTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0 X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAqIHNldCBhIGZs YWcgdG8gaW5kaWNhdGUgdGhhdCBhIGZ1bGwgcmVjYWxjdWxhdGlvbiBpcwogCQkJICogbmVlZGVk IG9uIHRoZSBuZXh0IGNvbW1pdC4KIAkJCSAqLwotCQkJY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLnBy aXZhdGVfZmxhZ3MgPSBJOTE1X01PREVfRkxBR19JTkhFUklURUQ7CisJCQljcnRjX3N0YXRlLT5o dy5tb2RlLnByaXZhdGVfZmxhZ3MgPSBJOTE1X01PREVfRkxBR19JTkhFUklURUQ7CiAKIAkJCWlu dGVsX2NydGNfY29tcHV0ZV9waXhlbF9yYXRlKGNydGNfc3RhdGUpOwogCkBAIC0xNjc1Niw3ICsx Njc2NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJfQogCiAJCQlkcm1fY2FsY190aW1lc3RhbXBpbmdfY29u c3RhbnRzKCZjcnRjLT5iYXNlLAotCQkJCQkJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21v ZGUpOworCQkJCQkJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlKTsKIAkJCXVwZGF0ZV9z Y2FubGluZV9vZmZzZXQoY3J0Y19zdGF0ZSk7CiAJCX0KIApAQCAtMTY5MjUsNyArMTY5MzQsNyBA QCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAK IAkJZHJtX2NydGNfdmJsYW5rX3Jlc2V0KCZjcnRjLT5iYXNlKTsKIAotCQlpZiAoY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCQlpbnRlbF9j cnRjX3ZibGFua19vbihjcnRjX3N0YXRlKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHAuYwppbmRleCA4ZjcxODhkNzFkMDguLmQ1YzU2ZWEwNzlhNCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYwpAQCAtMTg0OCw3ICsxODQ4LDcgQEAgaW50 ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ193aWRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs CiAJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJICBjb25z dCBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCiB7Ci0Jc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgYnBwLCBjbG9jaywgbGFuZV9jb3VudDsKIAlpbnQg bW9kZV9yYXRlLCBsaW5rX2Nsb2NrLCBsaW5rX2F2YWlsOwogCkBAIC0xOTAwLDcgKzE5MDAsNyBA QCBzdGF0aWMgaW50IGludGVsX2RwX2RzY19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBf dG9fZGlnX3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwotCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGU7CiAJdTggZHNjX21heF9icGM7CiAJaW50IHBpcGVfYnBwOwogCWlu dCByZXQ7CkBAIC0yMDA0LDcgKzIwMDQsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2xpbmtfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJ c3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFz ZSk7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7CiAJaW50IGNvbW1vbl9sZW47 CkBAIC0yMDkyLDggKzIwOTIsOCBAQCBpbnRlbF9kcF95Y2JjcjQyMF9jb25maWcoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKIHsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5m byA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWlu dCByZXQ7CiAKIAlpZiAoIWRybV9tb2RlX2lzXzQyMF9vbmx5KGluZm8sIGFkanVzdGVkX21vZGUp IHx8CkBAIC0yMTIxLDcgKzIxMjEsNyBAQCBib29sIGludGVsX2RwX2xpbWl0ZWRfY29sb3JfcmFu Z2UoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJY29uc3Qgc3Ry dWN0IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KIAkJ dG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWlm IChpbnRlbF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0Jf QVVUTykgewogCQkvKgpAQCAtMjE0NCwxMSArMjE0NCwxMSBAQCBpbnRlbF9kcF9jb21wdXRlX2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCXN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uID0gZW5j X3RvX2ludGVsX2xzcGNvbigmZW5jb2Rlci0+YmFzZSk7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNv ZGVyLT5wb3J0OwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3Rv cjsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3Rh dGUgPQogCQl0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKQEAg LTIyNTksOCArMjI1OSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3ByZXBhcmUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJZW51bSBwb3J0IHBvcnQgPSBl bmNvZGVyLT5wb3J0OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhw aXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRj KTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWludGVsX2RwX3NldF9saW5rX3BhcmFtcyhp bnRlbF9kcCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkJIHBpcGVfY29uZmlnLT5sYW5l X2NvdW50LApAQCAtMjg0OCw3ICsyODQ4LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2VkcF9wbGwo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0YXRlKQogc3RhdGljIHZv aWQgaXJvbmxha2VfZWRwX3BsbF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCWNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCiAJYXNzZXJ0X3BpcGVfZGlzYWJsZWQoZGV2X3ByaXYsIGNydGMtPnBp cGUpOwpAQCAtMjg4OCw3ICsyODg4LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3BsbF9v bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogc3RhdGljIHZvaWQgaXJvbmxha2VfZWRwX3Bs bF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQkgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAKIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CkBA IC0zMDQ4LDcgKzMwNDgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9nZXRfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXUzMiB0bXAsIGZsYWdzID0gMDsKIAll bnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAogCWlm IChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9FRFApCiAJCXBpcGVfY29uZmlnLT5vdXRw dXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9FRFApOwpAQCAtMzA4Myw3ICszMDgzLDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAkJCWZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTlZTWU5DOwogCX0KIAotCXBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKIAlpZiAoSVNfRzRYKGRldl9wcml2KSAm JiB0bXAgJiBEUF9DT0xPUl9SQU5HRV8xNl8yMzUpCiAJCXBpcGVfY29uZmlnLT5saW1pdGVkX2Nv bG9yX3JhbmdlID0gdHJ1ZTsKQEAgLTMxMDAsNyArMzEwMCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2RwX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlwaXBlX2Nv bmZpZy0+cG9ydF9jbG9jayA9IDI3MDAwMDsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlLmNydGNfY2xvY2sgPQorCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2sgPQogCQlpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUocGlwZV9jb25maWctPnBvcnRf Y2xvY2ssCiAJCQkJCSAmcGlwZV9jb25maWctPmRwX21fbik7CiAKQEAgLTMzMTUsNyArMzMxNSw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVu Y29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCXUzMiBkcF9yZWcg PSBJOTE1X1JFQUQoaW50ZWxfZHAtPm91dHB1dF9yZWcpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0 Yy0+cGlwZTsKIAlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKQEAgLTM0NDYsNyArMzQ0Niw3IEBA IHN0YXRpYyB2b2lkIHZsdl9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAog CWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCkBAIC0zOTY5LDcg KzM5NjksNyBAQCBpbnRlbF9kcF9saW5rX2Rvd24oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcCgmZW5jb2Rlci0+YmFzZSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIHBv cnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJdTMyIERQID0gaW50ZWxfZHAtPkRQOwogCkBAIC00 ODExLDcgKzQ4MTEsNyBAQCBpbnQgaW50ZWxfZHBfcmV0cmFpbl9saW5rKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCiAJV0FSTl9PTighaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2Rlcihj cnRjX3N0YXRlKSk7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm4gMDsKIAogCWlmIChjb25uX3N0YXRlLT5jb21t aXQgJiYKQEAgLTY2MjMsNyArNjYyMyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3NldF9kcnJz X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9 IE5VTEw7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGRldl9wcml2LT5kcnJzLmRwOwot CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gZHJyc19yZWZyZXNoX3JhdGVfdHlw ZSBpbmRleCA9IERSUlNfSElHSF9SUjsKIAogCWlmIChyZWZyZXNoX3JhdGUgPD0gMCkgewpAQCAt NjY1OSw3ICs2NjU5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlyZXR1cm47CiAJfQogCi0JaWYgKCFj cnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgeworCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7 CiAJCURSTV9ERUJVR19LTVMoImVEUCBlbmNvZGVyIGRpc2FibGVkLiBDUlRDIG5vdCBBY3RpdmVc biIpOwogCQlyZXR1cm47CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHBfbXN0LmMKaW5kZXggNjA2NTJlYmJkZjYxLi4yMzZiZjA2MTQ4YWIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYwpAQCAtNDIsMTMgKzQyLDEzIEBAIHN0 YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29u bl9zdGF0ZSwKIAkJCQkJICAgIHN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgKmxpbWl0cykKIHsK LQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRl OworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3Rh dGU7CiAJc3RydWN0IGludGVsX2RwX21zdF9lbmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0 KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX21z dC0+cHJpbWFyeS0+ZHA7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0KIAkJ dG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl2b2lkICpw b3J0ID0gY29ubmVjdG9yLT5wb3J0OwogCWJvb2wgY29uc3RhbnRfbiA9IGRybV9kcF9oYXNfcXVp cmsoJmludGVsX2RwLT5kZXNjLAogCQkJCQkgICBEUF9EUENEX1FVSVJLX0NPTlNUQU5UX04pOwpA QCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25u ZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQogCQl0b19pbnRlbF9kaWdpdGFsX2Nvbm5l Y3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkm cGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJdm9pZCAqcG9ydCA9IGNvbm5lY3Rvci0+ cG9ydDsKIAlzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0czsKIAlpbnQgcmV0OwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jCmluZGV4IDdjY2Y3 ZjM5NzRkYi4uNTQ1MTAwYThjN2QwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwaW9fcGh5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kcGlvX3BoeS5jCkBAIC03NDEsNyArNzQxLDcgQEAgdm9pZCBjaHZfZGF0YV9sYW5l X3NvZnRfcmVzZXQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJ ZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChlbmNfdG9fZGlnX3Bv cnQoJmVuY29kZXItPmJhc2UpKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9 IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKIApAQCAtNzg1LDcgKzc4NSw3IEBAIHZvaWQgY2h2X3Bo eV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+ YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBkcGlvX2NoYW5uZWwgY2gg PSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5w aXBlOwogCXVuc2lnbmVkIGludCBsYW5lX21hc2sgPQpAQCAtODY2LDcgKzg2Niw3IEBAIHZvaWQg Y2h2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+ YmFzZSk7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBkcF90b19kaWdfcG9y dChpbnRlbF9kcCk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBkcGlvX2NoYW5u ZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwogCWludCBkYXRhLCBpLCBzdGFnZ2VyOwpAQCAtOTU1LDcgKzk1NSw3IEBAIHZv aWQgY2h2X3BoeV9wb3N0X3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMo b2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0YyktPnBpcGU7CiAJdTMyIHZhbDsKIAogCXZsdl9kcGlv X2dldChkZXZfcHJpdik7CkBAIC0xMDE4LDcgKzEwMTgsNyBAQCB2b2lkIHZsdl9waHlfcHJlX3Bs bF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZf ZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwog CkBAIC0xMDQ4LDcgKzEwNDgsNyBAQCB2b2lkIHZsdl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCWVudW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5l bChkcG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB2YWw7CkBAIC0x MDc3LDcgKzEwNzcsNyBAQCB2b2lkIHZsdl9waHlfcmVzZXRfbGFuZXMoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBl bmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJZW51bSBkcGlvX2NoYW5uZWwgcG9ydCA9IHZsdl9kcG9ydF90b19jaGFubmVs KGRwb3J0KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwppbmRleCA3NmEyYzg3OWVmYzIuLjU5 NGMyOTkyNzEzOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kcGxsX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBs bF9tZ3IuYwpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgYXNzZXJ0X3NoYXJlZF9kcGxsKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKICAqLwogdm9pZCBpbnRlbF9wcmVwYXJlX3No YXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0g Y3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7CiAKQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIGludGVs X3ByZXBhcmVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiAgKi8KIHZvaWQgaW50ZWxfZW5hYmxlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwog CXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7 CiAJdW5zaWduZWQgaW50IGNydGNfbWFzayA9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwpA QCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgaW50ZWxfZW5hYmxlX3NoYXJlZF9kcGxsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogICovCiB2b2lkIGludGVsX2Rpc2Fi bGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpw bGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsKIAl1bnNpZ25lZCBpbnQgY3J0Y19tYXNrID0g ZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSk7CkBAIC04MjYsNyArODI2LDcgQEAgaHN3X2RkaV9o ZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHN0 cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCiBoc3dfZGRpX2RwX2dldF9kcGxsKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsOwogCWVudW0gaW50ZWxfZHBs bF9pZCBwbGxfaWQ7CiAJaW50IGNsb2NrID0gY3J0Y19zdGF0ZS0+cG9ydF9jbG9jazsKQEAgLTE3 MzksNyArMTczOSw3IEBAIHN0YXRpYyBib29sCiBieHRfZGRpX2hkbWlfcGxsX2RpdmlkZXJzKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICBzdHJ1Y3QgYnh0X2Nsa19k aXYgKmNsa19kaXYpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRwbGwgYmVzdF9jbG9j azsKIAogCS8qIENhbGN1bGF0ZSBIRE1JIGRpdiAqLwpAQCAtMjI3Niw3ICsyMjc2LDcgQEAgc3Rh dGljIGJvb2wKIGNubF9kZGlfY2FsY3VsYXRlX3dycGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQkJc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKndycGxsX3BhcmFtcykK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgYWZlX2Nsb2NrID0g Y3J0Y19zdGF0ZS0+cG9ydF9jbG9jayAqIDU7CiAJdTMyIHJlZl9jbG9jazsKIAl1MzIgZGNvX21p biA9IDc5OTgwMDA7CkBAIC0yNTQyLDcgKzI1NDIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNr bF93cnBsbF9wYXJhbXMgaWNsX3RidF9wbGxfMTlfMk1Iel92YWx1ZXMgPSB7CiBzdGF0aWMgYm9v bCBpY2xfY2FsY19kcF9jb21ib19wbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCQkJICBzdHJ1Y3Qgc2tsX3dycGxsX3BhcmFtcyAqcGxsX3BhcmFtcykKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAljb25zdCBzdHJ1Y3QgaWNsX2NvbWJvX3Bs bF9wYXJhbXMgKnBhcmFtcyA9CiAJCWRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMjQwMDAgPwog CQlpY2xfZHBfY29tYm9fcGxsXzI0TUh6X3ZhbHVlcyA6CkBAIC0yNTY0LDcgKzI1NjQsNyBAQCBz dGF0aWMgYm9vbCBpY2xfY2FsY19kcF9jb21ib19wbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiBzdGF0aWMgYm9vbCBpY2xfY2FsY190YnRfcGxsKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICBzdHJ1Y3Qgc2tsX3dycGxsX3BhcmFtcyAq cGxsX3BhcmFtcykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCSpw bGxfcGFyYW1zID0gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZiA9PSAyNDAwMCA/CiAJCQlpY2xfdGJ0 X3BsbF8yNE1Iel92YWx1ZXMgOiBpY2xfdGJ0X3BsbF8xOV8yTUh6X3ZhbHVlczsKQEAgLTI1NzUs NyArMjU3NSw3IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJCQkJc3RydWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkKIHsKLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgY2ZnY3IwLCBjZmdjcjE7CiAJc3Ry dWN0IHNrbF93cnBsbF9wYXJhbXMgcGxsX3BhcmFtcyA9IHsgMCB9OwogCWJvb2wgcmV0OwpAQCAt MjY5Niw3ICsyNjk2LDcgQEAgc3RhdGljIGJvb2wgaWNsX21nX3BsbF9maW5kX2Rpdmlzb3JzKGlu dCBjbG9ja19raHosIGJvb2wgaXNfZHAsIGJvb2wgdXNlX3NzYywKIHN0YXRpYyBib29sIGljbF9j YWxjX21nX3BsbF9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJ CQkgIHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3RhdGUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMt PmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj X3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJaW50IHJlZmNsa19raHogPSBkZXZfcHJpdi0+Y2Rj bGsuaHcucmVmOwogCWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7CiAJdTMyIGRj b19raHosIG0xZGl2LCBtMmRpdl9pbnQsIG0yZGl2X3JlbSwgbTJkaXZfZnJhYzsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHZvLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jCmluZGV4IDIyNjY2ZDI4ZjRhYS4uYjY1OTg3 ZGJiYWMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2 by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHZvLmMKQEAgLTE3 OCw5ICsxNzgsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdm9fZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAllbHNlCiAJCWZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTlZT WU5DOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsK KwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKIAotCXBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBl X2NvbmZpZy0+cG9ydF9jbG9jazsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9kdm8o c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCkBAIC0yMDcsOCArMjA3LDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfZW5hYmxlX2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl1 MzIgdGVtcCA9IEk5MTVfUkVBRChkdm9fcmVnKTsKIAogCWludGVsX2R2by0+ZGV2LmRldl9vcHMt Pm1vZGVfc2V0KCZpbnRlbF9kdm8tPmRldiwKLQkJCQkJICZwaXBlX2NvbmZpZy0+YmFzZS5tb2Rl LAotCQkJCQkgJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUpOworCQkJCQkgJnBpcGVf Y29uZmlnLT5ody5tb2RlLAorCQkJCQkgJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlKTsK IAogCUk5MTVfV1JJVEUoZHZvX3JlZywgdGVtcCB8IERWT19FTkFCTEUpOwogCUk5MTVfUkVBRChk dm9fcmVnKTsKQEAgLTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgaW50IGludGVsX2R2b19jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHZv ICppbnRlbF9kdm8gPSBlbmNfdG9fZHZvKGVuY29kZXIpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICpmaXhlZF9tb2RlID0KIAkJaW50ZWxfZHZvLT5hdHRhY2hlZF9jb25uZWN0b3It PnBhbmVsLmZpeGVkX21vZGU7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsK IAogCS8qCiAJICogSWYgd2UgaGF2ZSB0aW1pbmdzIGZyb20gdGhlIEJJT1MgZm9yIHRoZSBwYW5l bCwgcHV0IHRoZW0gaW4KQEAgLTI3Nyw4ICsyNzcsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdm9f cHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgY29uc3Qgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMp OwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlOwogCXN0cnVjdCBpbnRlbF9kdm8gKmludGVsX2R2byA9IGVuY190b19kdm8oZW5jb2Rlcik7 CiAJaW50IHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiBkdm9fdmFsOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKaW5kZXggZDM2Y2FkYTJjYzdkLi5lMmE4YzI2MmIwNTMg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYwpAQCAtNjY4LDcgKzY2 OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY191cGRhdGVfc3RhdGVfY2FjaGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCiAJY2FjaGUtPnZtYSA9IE5VTEw7CiAJY2FjaGUtPmZsYWdzID0gMDsK IAotCWNhY2hlLT5jcnRjLm1vZGVfZmxhZ3MgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21v ZGUuZmxhZ3M7CisJY2FjaGUtPmNydGMubW9kZV9mbGFncyA9IGNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGUuZmxhZ3M7CiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VM TChkZXZfcHJpdikpCiAJCWNhY2hlLT5jcnRjLmhzd19iZHdfcGl4ZWxfcmF0ZSA9IGNydGNfc3Rh dGUtPnBpeGVsX3JhdGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1p LmMKaW5kZXggMGViZWM2OWJiYmZjLi43ODFjZmI4MjViZjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCkBAIC0yNzksNyArMjc5LDcgQEAgc3RhdGljIHZvaWQg aWJ4X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlj b25zdCB1MzIgKmRhdGEgPSBmcmFtZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUp OwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKIAlpbnQgaTsKQEAgLTMxNSw3ICszMTUsNyBA QCBzdGF0aWMgdm9pZCBpYnhfcmVhZF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkgICAgICAgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXUzMiB2YWwsICpkYXRhID0gZnJhbWU7CiAJaW50IGk7CiAKQEAg LTMzNCw3ICszMzQsNyBAQCBzdGF0aWMgdTMyIGlieF9pbmZvZnJhbWVzX2VuYWJsZWQoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlOworCWVudW0gcGlwZSBwaXBlID0g dG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKS0+cGlwZTsKIAlpOTE1X3JlZ190 IHJlZyA9IFRWSURFT19ESVBfQ1RMKHBpcGUpOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsK IApAQCAtMzU2LDcgKzM1Niw3IEBAIHN0YXRpYyB2b2lkIGNwdF93cml0ZV9pbmZvZnJhbWUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJaTkxNV9yZWdfdCByZWcg PSBUVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKIAl1MzIgdmFsID0gSTkxNV9SRUFE KHJlZyk7CiAJaW50IGk7CkBAIC0zOTUsNyArMzk1LDcgQEAgc3RhdGljIHZvaWQgY3B0X3JlYWRf aW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIHZvaWQg KmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAl1MzIg dmFsLCAqZGF0YSA9IGZyYW1lOwogCWludCBpOwogCkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGlj IHUzMiBjcHRfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFz ZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25m aWctPnVhcGkuY3J0YyktPnBpcGU7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChUVklERU9fRElQX0NU TChwaXBlKSk7CiAKIAlpZiAoKHZhbCAmIFZJREVPX0RJUF9FTkFCTEUpID09IDApCkBAIC00MzIs NyArNDMyLDcgQEAgc3RhdGljIHZvaWQgdmx2X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAljb25zdCB1MzIgKmRhdGEgPSBmcmFtZTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlpOTE1X3JlZ190IHJlZyA9IFZMVl9UVklE RU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7 CiAJaW50IGk7CkBAIC00NjgsNyArNDY4LDcgQEAgc3RhdGljIHZvaWQgdmx2X3JlYWRfaW5mb2Zy YW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIHZvaWQgKmZyYW1l LCBzc2l6ZV90IGxlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAl1MzIgdmFsLCAq ZGF0YSA9IGZyYW1lOwogCWludCBpOwogCkBAIC00ODcsNyArNDg3LDcgQEAgc3RhdGljIHUzMiB2 bHZfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJ CSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp OwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRj KS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVh cGkuY3J0YyktPnBpcGU7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChWTFZfVFZJREVPX0RJUF9DVEwo cGlwZSkpOwogCiAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxFKSA9PSAwKQpAQCAtNzAwLDcg KzcwMCw3IEBAIGludGVsX2hkbWlfY29tcHV0ZV9hdmlfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lID0g JmNydGNfc3RhdGUtPmluZm9mcmFtZXMuYXZpLmF2aTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21v ZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJaW50IHJldDsKIApAQCAt Nzg3LDcgKzc4Nyw3IEBAIGludGVsX2hkbWlfY29tcHV0ZV9oZG1pX2luZm9mcmFtZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCXJldCA9IGRybV9oZG1pX3ZlbmRvcl9pbmZvZnJh bWVfZnJvbV9kaXNwbGF5X21vZGUoZnJhbWUsCiAJCQkJCQkJICBjb25uX3N0YXRlLT5jb25uZWN0 b3IsCi0JCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKKwkJCQkJCQkg ICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlKTsKIAlpZiAoV0FSTl9PTihyZXQpKQogCQly ZXR1cm4gZmFsc2U7CiAKQEAgLTk0OCw3ICs5NDgsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9oZG1p X3NldF9nY3BfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJaTkxNV9yZWdfdCByZWc7CiAKIAlpZiAoKGNydGNfc3RhdGUt PmluZm9mcmFtZXMuZW5hYmxlICYKQEAgLTk3Myw3ICs5NzMsNyBAQCB2b2lkIGludGVsX2hkbWlf cmVhZF9nY3BfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCWk5MTVfcmVnX3QgcmVnOwogCiAJaWYgKChjcnRjX3N0YXRlLT5pbmZvZnJh bWVzLmVuYWJsZSAmCkBAIC0xMDEwLDcgKzEwMTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1p X2NvbXB1dGVfZ2NwX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAog CS8qIEVuYWJsZSBkZWZhdWx0X3BoYXNlIHdoZW5ldmVyIHRoZSBkaXNwbGF5IG1vZGUgaXMgc3Vp dGFibHkgYWxpZ25lZCAqLwogCWlmIChnY3BfZGVmYXVsdF9waGFzZV9wb3NzaWJsZShjcnRjX3N0 YXRlLT5waXBlX2JwcCwKLQkJCQkgICAgICAgJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9k ZSkpCisJCQkJICAgICAgICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlKSkKIAkJY3J0Y19z dGF0ZS0+aW5mb2ZyYW1lcy5nY3AgfD0gR0NQX0RFRkFVTFRfUEhBU0VfRU5BQkxFOwogfQogCkBA IC0xMDIwLDcgKzEwMjAsNyBAQCBzdGF0aWMgdm9pZCBpYnhfc2V0X2luZm9mcmFtZXMoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBl bmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRl bF9oZG1pID0gJmludGVsX2RpZ19wb3J0LT5oZG1pOwogCWk5MTVfcmVnX3QgcmVnID0gVFZJREVP X0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7CkBAIC0xMDc5LDcgKzEwNzksNyBAQCBzdGF0aWMg dm9pZCBjcHRfc2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ CQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2hk bWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJaTkx NV9yZWdfdCByZWcgPSBUVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKIAl1MzIgdmFs ID0gSTkxNV9SRUFEKHJlZyk7CkBAIC0xMTI4LDcgKzExMjgsNyBAQCBzdGF0aWMgdm9pZCB2bHZf c2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVs X2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJaTkxNV9yZWdfdCBy ZWcgPSBWTFZfVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9IEk5 MTVfUkVBRChyZWcpOwpAQCAtMTcyMSw5ICsxNzIxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRt aV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGlu dGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7 Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19z dGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdTMyIGhk bWlfdmFsOwogCiAJaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90bWRzX291dHB1dChpbnRlbF9oZG1p LCB0cnVlKTsKQEAgLTE4MTQsNyArMTgxNCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkgICAgdG1wICYgSERNSV9D T0xPUl9SQU5HRV8xNl8yMzUpCiAJCXBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlID0g dHJ1ZTsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7 CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKIAlpZiAo KHRtcCAmIFNEVk9fQ09MT1JfRk9STUFUX01BU0spID09IEhETUlfQ09MT1JfRk9STUFUXzEyYnBj KQogCQlkb3RjbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrICogMiAvIDM7CkBAIC0xODI0 LDcgKzE4MjQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2dldF9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKHBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVy KQogCQlkb3RjbG9jayAvPSBwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcjsKIAotCXBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGRvdGNsb2NrOworCXBpcGVf Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsKIAogCXBpcGVf Y29uZmlnLT5sYW5lX2NvdW50ID0gNDsKIApAQCAtMTg0NSw3ICsxODQ1LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZW5hYmxlX2hkbWlfYXVkaW8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJ CQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjKTsKIAogCVdBUk5fT04oIXBpcGVfY29uZmlnLT5oYXNfaGRtaV9zaW5r KTsKIAlEUk1fREVCVUdfRFJJVkVSKCJFbmFibGluZyBIRE1JIGF1ZGlvIG9uIHBpcGUgJWNcbiIs CkBAIC0xOTMxLDcgKzE5MzEsNyBAQCBzdGF0aWMgdm9pZCBjcHRfZW5hYmxlX2hkbWkoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVu Y29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlw ZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRl bF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwogCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdGVtcDsKQEAgLTE5OTUsNyArMTk5NSw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNv ZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 CiAJCWhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKIAl1MzIgdGVtcDsKIAogCXRlbXAgPSBJOTE1X1JFQUQoaW50ZWxfaGRtaS0+aGRtaV9yZWcp OwpAQCAtMjE5MywxMiArMjE5MywxMiBAQCBzdGF0aWMgYm9vbCBoZG1pX2RlZXBfY29sb3JfcG9z c2libGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAg ICBpbnQgYnBjKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCXRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJCXRvX2k5MTUoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNy dGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5l Y3Rvcl9zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJaW50 IGk7CiAKIAlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKQpAQCAtMjIyMyw3ICsyMjIzLDcgQEAgc3Rh dGljIGJvb2wgaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3Rh dGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwogCi0JCWlmIChj b25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKQorCQlpZiAoY29u bmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPnVhcGkuY3J0YykKIAkJCWNvbnRpbnVl OwogCiAJCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ID09IElOVEVMX09VVFBVVF9GT1JN QVRfWUNCQ1I0MjApIHsKQEAgLTIyNjYsNyArMjI2Niw3IEBAIGludGVsX2hkbWlfeWNiY3I0MjBf Y29uZmlnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCQkgICBpbnQgKmNsb2Nr XzEyYnBjLCBpbnQgKmNsb2NrXzEwYnBjLAogCQkJICAgaW50ICpjbG9ja184YnBjKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhjb25maWctPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNv bmZpZy0+dWFwaS5jcnRjKTsKIAogCWlmICghY29ubmVjdG9yLT55Y2Jjcl80MjBfYWxsb3dlZCkg ewogCQlEUk1fRVJST1IoIlBsYXRmb3JtIGRvZXNuJ3Qgc3VwcG9ydCBZQ0JDUjQyMCBvdXRwdXRc biIpOwpAQCAtMjI5OCwxMiArMjI5OCwxMiBAQCBpbnQgaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAq aW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK LQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9zY2Rj ICpzY2RjID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLmhkbWkuc2NkYzsKIAlzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQogCQl0b19pbnRl bF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKLQlpbnQgY2xvY2tfOGJwYyA9 IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwlpbnQgY2xvY2tf OGJwYyA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAJaW50IGNs b2NrXzEwYnBjID0gY2xvY2tfOGJwYyAqIDUgLyA0OwogCWludCBjbG9ja18xMmJwYyA9IGNsb2Nr XzhicGMgKiAzIC8gMjsKIAlpbnQgZGVzaXJlZF9icHA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9sc3Bjb24uYwppbmRleCA3MDI4ZDBjZjNiYjEuLjZjYTNmMjJkMDU1MCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sc3Bjb24uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jCkBAIC0xODks NyArMTg5LDcgQEAgdm9pZCBsc3Bjb25feWNiY3I0MjBfY29uZmlnKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCiB7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8g PSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCQkJCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWlmIChkcm1fbW9kZV9p c180MjBfb25seShpbmZvLCBhZGp1c3RlZF9tb2RlKSAmJgogCSAgICBjb25uZWN0b3ItPnljYmNy XzQyMF9hbGxvd2VkKSB7CkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBsc3Bjb25fc2V0X2luZm9m cmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCXN0 cnVjdCBpbnRlbF9sc3Bjb24gKmxzcGNvbiA9ICZkaWdfcG9ydC0+bHNwY29uOwogCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAKIAlp ZiAoIWxzcGNvbi0+YWN0aXZlKSB7CiAJCURSTV9FUlJPUigiV3JpdGluZyBpbmZvZnJhbWVzIHdo aWxlIExTUENPTiBkaXNhYmxlZCA/XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9sdmRzLmMKaW5kZXggZWZlZmVkNjJhN2Y4Li43YjExM2RjN2Q4YTYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jCkBAIC0xMzUsNyArMTM1LDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfbHZkc19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCWVsc2UKIAkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19QVlNZTkM7CiAKLQlwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOworCXBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPCA1KQogCQlwaXBlX2NvbmZpZy0+Z21jaF9wZml0Lmx2ZHNfYm9yZGVyX2JpdHMgPQpAQCAt MTQ4LDcgKzE0OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2x2ZHNfZ2V0X2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJcGlwZV9jb25maWctPmdtY2hfcGZpdC5jb250cm9s IHw9IHRtcCAmIFBBTkVMXzhUTzZfRElUSEVSX0VOQUJMRTsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jazsK KwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWct PnBvcnRfY2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2x2ZHNfcHBzX2dldF9od19zdGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC0yMzAsOCArMjMwLDggQEAg c3RhdGljIHZvaWQgaW50ZWxfcHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogewogCXN0cnVjdCBpbnRlbF9sdmRzX2VuY29kZXIgKmx2ZHNfZW5jb2RlciA9IHRv X2x2ZHNfZW5jb2RlcigmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWlu dCBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdGVtcDsKIApAQCAtMzk0LDggKzM5NCw4IEBAIHN0 YXRpYyBpbnQgaW50ZWxfbHZkc19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciwKIAkJdG9fbHZkc19lbmNvZGVyKCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsK IAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPQogCQlsdmRzX2VuY29k ZXItPmF0dGFjaGVkX2Nvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwotCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJdW5zaWduZWQgaW50IGx2ZHNf YnBwOwogCiAJLyogU2hvdWxkIG5ldmVyIGhhcHBlbiEhICovCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKaW5kZXggMzlkNzQyMDk0MDY1Li41Y2Q1MzhlODRiZjIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKQEAgLTE3OCw3 ICsxNzgsNyBAQCBpbnRlbF9wY2hfcGFuZWxfZml0dGluZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YywKIAkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCWlu dCBmaXR0aW5nX21vZGUpCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZTsKIAlpbnQgeCA9IDAsIHkgPSAwLCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CiAK IAkvKiBOYXRpdmUgbW9kZXMgZG9uJ3QgbmVlZCBmaXR0aW5nICovCkBAIC0zMDAsNyArMzAwLDcg QEAgc3RhdGljIGlubGluZSB1MzIgcGFuZWxfZml0dGVyX3NjYWxpbmcodTMyIHNvdXJjZSwgdTMy IHRhcmdldCkKIHN0YXRpYyB2b2lkIGk5NjVfc2NhbGVfYXNwZWN0KHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCSAgICAgIHUzMiAqcGZpdF9jb250cm9sKQogewotCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJdTMyIHNjYWxl ZF93aWR0aCA9IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgKgogCQlwaXBlX2NvbmZpZy0+ cGlwZV9zcmNfaDsKIAl1MzIgc2NhbGVkX2hlaWdodCA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193 ICoKQEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3NjYWxlX2FzcGVjdChzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgICB1MzIgKnBmaXRfY29u dHJvbCwgdTMyICpwZml0X3BnbV9yYXRpb3MsCiAJCQkgICAgICB1MzIgKmJvcmRlcikKIHsKLQlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBzY2FsZWRfd2lkdGggPSBh ZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ICoKIAkJcGlwZV9jb25maWctPnBpcGVfc3JjX2g7 CiAJdTMyIHNjYWxlZF9oZWlnaHQgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAqCkBAIC0zODAs NyArMzgwLDcgQEAgdm9pZCBpbnRlbF9nbWNoX3BhbmVsX2ZpdHRpbmcoc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7CiAJdTMyIHBmaXRfY29udHJvbCA9IDAsIHBm aXRfcGdtX3JhdGlvcyA9IDAsIGJvcmRlciA9IDA7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZTsKIAogCS8qIE5hdGl2ZSBtb2RlcyBkb24ndCBuZWVkIGZpdHRpbmcgKi8KIAlp ZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSA9PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNf dyAmJgpAQCAtMTA0Nyw3ICsxMDQ3LDcgQEAgc3RhdGljIHZvaWQgdmx2X2VuYWJsZV9iYWNrbGln aHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUt PmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNv bm5lY3Rvci0+cGFuZWw7Ci0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0YyktPnBpcGU7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0YyktPnBpcGU7CiAJdTMyIGN0bCwgY3RsMjsKIAogCWN0bDIgPSBJ OTE1X1JFQUQoVkxWX0JMQ19QV01fQ1RMMihwaXBlKSk7CkBAIC0xMDc3LDcgKzEwNzcsNyBAQCBz dGF0aWMgdm9pZCBieHRfZW5hYmxlX2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0 b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0 cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKLQllbnVtIHBpcGUg cGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVt IHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKS0+cGlwZTsK IAl1MzIgcHdtX2N0bCwgdmFsOwogCiAJLyogQ29udHJvbGxlciAxIHVzZXMgdGhlIHV0aWxpdHkg cGluLiAqLwpAQCAtMTE4OSw3ICsxMTg5LDcgQEAgdm9pZCBpbnRlbF9wYW5lbF9lbmFibGVfYmFj a2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0 YXRlLT5jb25uZWN0b3IpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9 ICZjb25uZWN0b3ItPnBhbmVsOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpLT5waXBlOwogCiAJaWYgKCFwYW5lbC0+YmFja2xpZ2h0 LnByZXNlbnQpCiAJCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfcGlwZV9jcmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfcGlwZV9jcmMuYwppbmRleCAxZTJjNDMwN2QwNWEuLmJkNTM3ZmM5NmM3NCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9waXBlX2NyYy5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGlwZV9jcmMuYwpAQCAtMzA5LDEzICsz MDksMTMgQEAgaW50ZWxfY3J0Y19jcmNfc2V0dXBfd29ya2Fyb3VuZHMoc3RydWN0IGludGVsX2Ny dGMgKmNydGMsIGJvb2wgZW5hYmxlKQogCQlnb3RvIHB1dF9zdGF0ZTsKIAl9CiAKLQlwaXBlX2Nv bmZpZy0+YmFzZS5tb2RlX2NoYW5nZWQgPSBwaXBlX2NvbmZpZy0+aGFzX3BzcjsKKwlwaXBlX2Nv bmZpZy0+dWFwaS5tb2RlX2NoYW5nZWQgPSBwaXBlX2NvbmZpZy0+aGFzX3BzcjsKIAlwaXBlX2Nv bmZpZy0+Y3JjX2VuYWJsZWQgPSBlbmFibGU7CiAKIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikg JiYKLQkgICAgcGlwZV9jb25maWctPmJhc2UuYWN0aXZlICYmIGNydGMtPnBpcGUgPT0gUElQRV9B ICYmCisJICAgIHBpcGVfY29uZmlnLT5ody5hY3RpdmUgJiYgY3J0Yy0+cGlwZSA9PSBQSVBFX0Eg JiYKIAkgICAgcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID09IFRSQU5TQ09ERVJfRURQKQot CQlwaXBlX2NvbmZpZy0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0cnVlOworCQlwaXBlX2NvbmZpZy0+ dWFwaS5tb2RlX2NoYW5nZWQgPSB0cnVlOwogCiAJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3Rh dGUpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bz ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwppbmRleCA2OWQ5 MDhlNmEwNTAuLjEzM2Q5NWE3MmFjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Bzci5jCkBAIC01MzcsOCArNTM3LDggQEAgc3RhdGljIGJvb2wgaW50ZWxfcHNyMl9jb25m aWdfdmFsaWQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQkgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7Ci0JaW50IGNydGNfaGRpc3BsYXkgPSBjcnRj X3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheTsKLQlpbnQgY3J0Y192ZGlz cGxheSA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OworCWlu dCBjcnRjX2hkaXNwbGF5ID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNw bGF5OworCWludCBjcnRjX3ZkaXNwbGF5ID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX3ZkaXNwbGF5OwogCWludCBwc3JfbWF4X2ggPSAwLCBwc3JfbWF4X3YgPSAwOwogCiAJaWYg KCFkZXZfcHJpdi0+cHNyLnNpbmtfcHNyMl9zdXBwb3J0KQpAQCAtNTk1LDcgKzU5NSw3IEBAIHZv aWQgaW50ZWxfcHNyX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRl bF9kcCk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShp bnRlbF9kcCk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZTsKIAlpbnQgcHNyX3NldHVwX3RpbWU7CiAKIAlpZiAoIUNBTl9QU1IoZGV2 X3ByaXYpKQpAQCAtNzMyLDcgKzczMiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Bzcl9lbmFibGVf bG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogCWRldl9wcml2LT5w c3IucHNyMl9lbmFibGVkID0gaW50ZWxfcHNyMl9lbmFibGVkKGRldl9wcml2LCBjcnRjX3N0YXRl KTsKIAlkZXZfcHJpdi0+cHNyLmJ1c3lfZnJvbnRidWZmZXJfYml0cyA9IDA7Ci0JZGV2X3ByaXYt PnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBlOwor CWRldl9wcml2LT5wc3IucGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KS0+cGlwZTsKIAogCURSTV9ERUJVR19LTVMoIkVuYWJsaW5nIFBTUiVzXG4iLAogCQkgICAgICBk ZXZfcHJpdi0+cHNyLnBzcjJfZW5hYmxlZCA/ICIyIiA6ICIxIik7CkBAIC05NDYsNyArOTQ2LDcg QEAgdm9pZCBpbnRlbF9wc3JfdXBkYXRlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiBpbnQg aW50ZWxfcHNyX3dhaXRfZm9yX2lkbGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5l d19jcnRjX3N0YXRlLAogCQkJICAgIHUzMiAqb3V0X3ZhbHVlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAKIAlpZiAoIWRldl9wcml2LT5wc3IuZW5hYmxlZCB8fCAhbmV3X2Ny dGNfc3RhdGUtPmhhc19wc3IpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2 by5jCmluZGV4IGNlZGEwM2U1YTNkNC4uMzcyOGNhYjBmMWQzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8uYwpAQCAtMTA1OSw3ICsxMDU5LDcgQEAgc3RhdGljIGJv b2wgaW50ZWxfc2R2b19jb21wdXRlX2F2aV9pbmZvZnJhbWUoc3RydWN0IGludGVsX3Nkdm8gKmlu dGVsX3Nkdm8sCiB7CiAJc3RydWN0IGhkbWlfYXZpX2luZm9mcmFtZSAqZnJhbWUgPSAmY3J0Y19z dGF0ZS0+aW5mb2ZyYW1lcy5hdmkuYXZpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJ JmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IHJldDsKIAogCWlmICghY3J0Y19z dGF0ZS0+aGFzX2hkbWlfc2luaykKQEAgLTEyNDgsOCArMTI0OCw4IEBAIHN0YXRpYyBpbnQgaW50 ZWxfc2R2b19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ dG9faW50ZWxfc2R2b19jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJc3RydWN0IGludGVs X3Nkdm9fY29ubmVjdG9yICppbnRlbF9zZHZvX2Nvbm5lY3RvciA9CiAJCXRvX2ludGVsX3Nkdm9f Y29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKLQlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5tb2RlOwor CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJnBpcGVf Y29uZmlnLT5ody5tb2RlOwogCiAJRFJNX0RFQlVHX0tNUygiZm9yY2luZyBicGMgdG8gOCBmb3Ig U0RWT1xuIik7CiAJcGlwZV9jb25maWctPnBpcGVfYnBwID0gOCozOwpAQCAtMTQwMSwxMyArMTQw MSwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIsCiAJCQkJICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGludGVsX2VuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk 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 KmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXUzMiB0 ZW1wOwogCiAJaWYgKG9sZF9jcnRjX3N0YXRlLT5oYXNfYXVkaW8pCkBAIC0xNzU3LDcgKzE3NTcs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfc2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVj dCBpbnRlbF9zZHZvICppbnRlbF9zZHZvID0gdG9fc2R2byhlbmNvZGVyKTsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT51YXBpLmNydGMpOwogCXUzMiB0ZW1wOwogCWJvb2wgaW5wdXQxLCBpbnB1dDI7CiAJ aW50IGk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nw cml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwppbmRl eCAwMDRiNTIwMjdhZTguLjcxNTc4NDllMmI3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3Nwcml0ZS5jCkBAIC05Myw5ICs5Myw5IEBAIGludCBpbnRlbF91c2Vjc190 b19zY2FubGluZXMoY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUs CiAgKi8KIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmbmV3 X2NydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZuZXdfY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9k ZTsKIAlsb25nIHRpbWVvdXQgPSBtc2Vjc190b19qaWZmaWVzX3RpbWVvdXQoMSk7CiAJaW50IHNj YW5saW5lLCBtaW4sIG1heCwgdmJsYW5rX3N0YXJ0OwogCXdhaXRfcXVldWVfaGVhZF90ICp3cSA9 IGRybV9jcnRjX3ZibGFua193YWl0cXVldWUoJmNydGMtPmJhc2UpOwpAQCAtMjAyLDcgKzIwMiw3 IEBAIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm5ld19jcnRjX3N0YXRlKQogICovCiB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJaW50IHNjYW5saW5l X2VuZCA9IGludGVsX2dldF9jcnRjX3NjYW5saW5lKGNydGMpOwogCXUzMiBlbmRfdmJsX2NvdW50 ID0gaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoY3J0Yyk7CkBAIC0yMTUsMTQgKzIxNSwx NSBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq bmV3X2NydGNfc3RhdGUpCiAJICogV291bGQgYmUgc2xpZ2h0bHkgbmljZSB0byBqdXN0IGdyYWIg dGhlIHZibGFuayBjb3VudCBhbmQgYXJtIHRoZQogCSAqIGV2ZW50IG91dHNpZGUgb2YgdGhlIGNy aXRpY2FsIHNlY3Rpb24gLSB0aGUgc3BpbmxvY2sgbWlnaHQgc3BpbiBmb3IgYQogCSAqIHdoaWxl IC4uLiAqLwotCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCkgeworCWlmIChuZXdfY3J0 Y19zdGF0ZS0+dWFwaS5ldmVudCkgewogCQlXQVJOX09OKGRybV9jcnRjX3ZibGFua19nZXQoJmNy dGMtPmJhc2UpICE9IDApOwogCiAJCXNwaW5fbG9jaygmY3J0Yy0+YmFzZS5kZXYtPmV2ZW50X2xv Y2spOwotCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KCZjcnRjLT5iYXNlLCBuZXdfY3J0Y19z dGF0ZS0+YmFzZS5ldmVudCk7CisJCWRybV9jcnRjX2FybV92YmxhbmtfZXZlbnQoJmNydGMtPmJh c2UsCisJCQkJICAgICAgICAgIG5ld19jcnRjX3N0YXRlLT51YXBpLmV2ZW50KTsKIAkJc3Bpbl91 bmxvY2soJmNydGMtPmJhc2UuZGV2LT5ldmVudF9sb2NrKTsKIAotCQluZXdfY3J0Y19zdGF0ZS0+ YmFzZS5ldmVudCA9IE5VTEw7CisJCW5ld19jcnRjX3N0YXRlLT51YXBpLmV2ZW50ID0gTlVMTDsK IAl9CiAKIAlsb2NhbF9pcnFfZW5hYmxlKCk7CkBAIC0xMzQ5LDcgKzEzNTAsNyBAQCBnNHhfc3By aXRlX2NoZWNrX3NjYWxpbmcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ Y29uc3Qgc3RydWN0IGRybV9yZWN0ICpkc3QgPSAmcGxhbmVfc3RhdGUtPmJhc2UuZHN0OwogCWlu dCBzcmNfeCwgc3JjX3ksIHNyY193LCBzcmNfaCwgY3J0Y193LCBjcnRjX2g7CiAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1bnNp Z25lZCBpbnQgY3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCXVuc2lnbmVkIGludCB3aWR0aF9i eXRlczsKIAlpbnQgbWluX3dpZHRoLCBtaW5faGVpZ2h0OwpAQCAtMTQyMiw3ICsxNDIzLDcgQEAg ZzR4X3Nwcml0ZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9 CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3Rh dGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLAorCQkJCQkJICAmY3J0Y19zdGF0 ZS0+dWFwaSwKIAkJCQkJCSAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCiAJCQkJCQkgIHRydWUsIHRy dWUpOwogCWlmIChyZXQpCkBAIC0xNDc5LDcgKzE0ODAsNyBAQCB2bHZfc3ByaXRlX2NoZWNrKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gcmV0OwogCiAJcmV0 ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNl LAotCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPnVhcGks CiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJCQkJCSAgRFJNX1BMQU5F X0hFTFBFUl9OT19TQ0FMSU5HLAogCQkJCQkJICB0cnVlLCB0cnVlKTsKQEAgLTE1NjMsOCArMTU2 NCw4IEBAIHN0YXRpYyBpbnQgc2tsX3BsYW5lX2NoZWNrX2ZiKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCX0KIAogCS8qIFktdGlsaW5nIGlzIG5vdCBzdXBwb3J0 ZWQgaW4gSUYtSUQgSW50ZXJsYWNlIG1vZGUgKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5lbmFi bGUgJiYKLQkgICAgY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01P REVfRkxBR19JTlRFUkxBQ0UgJiYKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuZW5hYmxlICYmCisJICAg IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVS TEFDRSAmJgogCSAgICAoZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8 CiAJICAgICBmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEIHx8CiAJICAg ICBmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTIHx8CkBAIC0xNjQ0 LDcgKzE2NDUsNyBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVj a19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0YXRlLT5i YXNlLAorCQkJCQkJICAmY3J0Y19zdGF0ZS0+dWFwaSwKIAkJCQkJCSAgbWluX3NjYWxlLCBtYXhf c2NhbGUsCiAJCQkJCQkgIHRydWUsIHRydWUpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3R2LmMKaW5kZXggMGE5NWRmNmM2YTU3Li42YjgxMDMyZThmMTIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMKQEAgLTkyNCw3ICs5MjQsNyBA QCBpbnRlbF9lbmFibGVfdHYoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkvKiBQ cmV2ZW50cyB2Ymxhbmsgd2FpdHMgZnJvbSB0aW1pbmcgb3V0IGluIGludGVsX3R2X2RldGVjdF90 eXBlKCkgKi8KIAlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsCi0JCQkgICAgICB0b19p bnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlKTsKKwkJCSAgICAgIHRvX2lu dGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0YyktPnBpcGUpOwogCiAJSTkxNV9XUklURShU Vl9DVEwsIEk5MTVfUkVBRChUVl9DVEwpIHwgVFZfRU5DX0VOQUJMRSk7CiB9CkBAIC0xMDg2LDcg KzEwODYsNyBAQCBpbnRlbF90dl9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0KLQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZwaXBlX2NvbmZpZy0+ aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlID0ge307CiAJ dTMyIHR2X2N0bCwgaGN0bDEsIGhjdGwzLCB2Y3RsMSwgdmN0bDIsIHRtcDsKIAlzdHJ1Y3QgdHZf bW9kZSB0dl9tb2RlID0ge307CkBAIC0xMTg5LDcgKzExODksNyBAQCBpbnRlbF90dl9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJdG9faW50ZWxfdHZfY29u bmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwogCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2Rl ID0gaW50ZWxfdHZfbW9kZV9maW5kKGNvbm5fc3RhdGUpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0KLQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgaGRpc3BsYXkgPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5OwogCWludCB2ZGlzcGxheSA9IGFkanVzdGVkX21vZGUt PmNydGNfdmRpc3BsYXk7CiAKQEAgLTE0MTgsNyArMTQxOCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X3R2X3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0g ZW5jX3RvX3R2KGVuY29kZXIpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF90dl9jb25uZWN0b3Jfc3Rh dGUgKnR2X2Nvbm5fc3RhdGUgPQogCQl0b19pbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUoY29ubl9z dGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zk c2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jCmluZGV4IGZm ZWM4MDdiODk2MC4uNDE5YTc3NzIzODk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Zkc2MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Zkc2MuYwpAQCAtMzI5LDggKzMyOSw4IEBAIGludCBpbnRlbF9kcF9jb21wdXRlX2Rz Y19wYXJhbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlpbnQgY29sdW1uX2luZGV4ID0g MDsKIAl1OCBsaW5lX2J1Zl9kZXB0aCA9IDA7CiAKLQl2ZHNjX2NmZy0+cGljX3dpZHRoID0gcGlw ZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCXZkc2NfY2ZnLT5w aWNfaGVpZ2h0ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5 OworCXZkc2NfY2ZnLT5waWNfd2lkdGggPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX2hkaXNwbGF5OworCXZkc2NfY2ZnLT5waWNfaGVpZ2h0ID0gcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKIAl2ZHNjX2NmZy0+c2xpY2Vfd2lkdGggPSBESVZf Uk9VTkRfVVAodmRzY19jZmctPnBpY193aWR0aCwKIAkJCQkJICAgICBwaXBlX2NvbmZpZy0+ZHNj X3BhcmFtcy5zbGljZV9jb3VudCk7CiAJLyoKQEAgLTQ3Nyw3ICs0NzcsNyBAQCBpbnRlbF9kc2Nf cG93ZXJfZG9tYWluKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog c3RhdGljIHZvaWQgaW50ZWxfY29uZmlndXJlX3Bwc19mb3JfZHNjX2VuY29kZXIoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAljb25zdCBzdHJ1 Y3QgZHJtX2RzY19jb25maWcgKnZkc2NfY2ZnID0gJmNydGNfc3RhdGUtPmRwX2RzY19jZmc7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtODk2LDcgKzg5Niw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RwX3dyaXRlX2RzY19wcHNfc2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogdm9pZCBpbnRlbF9kc2NfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 CiAJaTkxNV9yZWdfdCBkc3NfY3RsMV9yZWcsIGRzc19jdGwyX3JlZzsKQEAgLTkzMiw3ICs5MzIs NyBAQCB2b2lkIGludGVsX2RzY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAKIHZvaWQgaW50ZWxfZHNjX2Rpc2FibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg Km9sZF9jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWk5MTVfcmVnX3QgZHNzX2N0bDFfcmVnLCBkc3Nf Y3RsMl9yZWc7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9k c2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCmluZGV4IGUyNzJk ODI2MjEwYS4uMGZmZGYwZjZjYWE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L3Zsdl9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9k c2kuYwpAQCAtMjcwLDkgKzI3MCw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHNpX2NvbXB1dGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kc2kgKmlu dGVsX2RzaSA9IGNvbnRhaW5lcl9vZihlbmNvZGVyLCBzdHJ1Y3QgaW50ZWxfZHNpLAogCQkJCQkJ ICAgYmFzZSk7CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50 ZWxfZHNpLT5hdHRhY2hlZF9jb25uZWN0b3I7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSA9IGludGVsX2Nvbm5lY3Rvci0+cGFu ZWwuZml4ZWRfbW9kZTsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWlu dCByZXQ7CiAKIAlEUk1fREVCVUdfS01TKCJcbiIpOwpAQCAtNjUyLDcgKzY1Miw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2RzaV9wb3J0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9 IGVuY190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwogCWVudW0gcG9ydCBwb3J0OwogCkBA IC03NzQsNyArNzc0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZV9lbmFibGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVu Y190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9j b25maWctPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKQEAgLTEwNjAs OSArMTA2MCw5IEBAIHN0YXRpYyB2b2lkIGJ4dF9kc2lfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVy LT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkm cGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlX3N3 OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlw ZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5j X3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJdW5zaWduZWQgaW50IGxhbmVfY291bnQg PSBpbnRlbF9kc2ktPmxhbmVfY291bnQ7CiAJdW5zaWduZWQgaW50IGJwcCwgZm10OwpAQCAtMTA3 Myw3ICsxMDczLDcgQEAgc3RhdGljIHZvaWQgYnh0X2RzaV9nZXRfcGlwZV9jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJY3J0Y19oYmxhbmtfc3RhcnRfc3csIGNydGNf aGJsYW5rX2VuZF9zdzsKIAogCS8qIEZJWE1FOiBodyByZWFkb3V0IHNob3VsZCBub3QgZGVwZW5k IG9uIFNXIHN0YXRlICovCi0JYWRqdXN0ZWRfbW9kZV9zdyA9ICZjcnRjLT5jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwlhZGp1c3RlZF9tb2RlX3N3ID0gJmNydGMtPmNvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZTsKIAogCS8qCiAJICogQXRsZWFzdCBvbmUgcG9ydCBpcyBhY3RpdmUgYXMgZW5j b2Rlci0+Z2V0X2NvbmZpZyBjYWxsZWQgb25seSBpZgpAQCAtMTIzMiw3ICsxMjMyLDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZHNpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJfQogCiAJaWYgKHBjbGspIHsKLQkJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZS5jcnRjX2Nsb2NrID0gcGNsazsKKwkJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0 Y19jbG9jayA9IHBjbGs7CiAJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gcGNsazsKIAl9CiB9 CkBAIC0xMzQzLDkgKzEzNDMsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo cGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9k c2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7Ci0JY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAllbnVtIHBvcnQgcG9ydDsKIAl1 bnNpZ25lZCBpbnQgYnBwID0gbWlwaV9kc2lfcGl4ZWxfZm9ybWF0X3RvX2JwcChpbnRlbF9kc2kt PnBpeGVsX2Zvcm1hdCk7CiAJdTMyIHZhbCwgdG1wOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwppbmRleCBlZWVjZGFkMGUzY2EuLjc3OWJjOThkM2ViZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKQEAgLTI4MjEsMTEgKzI4MjEsMTEgQEAgc3RhdGljIGludCBpOTE1X2Rp c3BsYXlfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAogCQlzZXFfcHJp bnRmKG0sICJDUlRDICVkOiBwaXBlOiAlYywgYWN0aXZlPSVzLCAoc2l6ZT0lZHglZCksIGRpdGhl cj0lcywgYnBwPSVkXG4iLAogCQkJICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBwaXBlX25hbWUoY3J0 Yy0+cGlwZSksCi0JCQkgICB5ZXNubyhwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUpLAorCQkJICAg eWVzbm8ocGlwZV9jb25maWctPmh3LmFjdGl2ZSksCiAJCQkgICBwaXBlX2NvbmZpZy0+cGlwZV9z cmNfdywgcGlwZV9jb25maWctPnBpcGVfc3JjX2gsCiAJCQkgICB5ZXNubyhwaXBlX2NvbmZpZy0+ ZGl0aGVyKSwgcGlwZV9jb25maWctPnBpcGVfYnBwKTsKIAotCQlpZiAocGlwZV9jb25maWctPmJh c2UuYWN0aXZlKSB7CisJCWlmIChwaXBlX2NvbmZpZy0+aHcuYWN0aXZlKSB7CiAJCQlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKmN1cnNvciA9CiAJCQkJdG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5jdXJz b3IpOwogCkBAIC00MjUwLDExICs0MjUwLDExIEBAIHN0YXRpYyBpbnQgaTkxNV9kcnJzX2N0bF9z ZXQodm9pZCAqZGF0YSwgdTY0IHZhbCkKIAogCQljcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19z dGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsKIAotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZl IHx8CisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CiAJCSAgICAhY3J0Y19zdGF0ZS0+ aGFzX2RycnMpCiAJCQlnb3RvIG91dDsKIAotCQljb21taXQgPSBjcnRjX3N0YXRlLT5iYXNlLmNv bW1pdDsKKwkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+dWFwaS5jb21taXQ7CiAJCWlmIChjb21taXQp IHsKIAkJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5o d19kb25lKTsKIAkJCWlmIChyZXQpCkBAIC00MjY2LDcgKzQyNjYsNyBAQCBzdGF0aWMgaW50IGk5 MTVfZHJyc19jdGxfc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpCiAJCQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcjsKIAkJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7CiAKLQkJCWlmICgh KGNydGNfc3RhdGUtPmJhc2UuY29ubmVjdG9yX21hc2sgJgorCQkJaWYgKCEoY3J0Y19zdGF0ZS0+ dWFwaS5jb25uZWN0b3JfbWFzayAmCiAJCQkgICAgICBkcm1fY29ubmVjdG9yX21hc2soY29ubmVj dG9yKSkpCiAJCQkJY29udGludWU7CiAKQEAgLTQzMjUsMTQgKzQzMjUsMTQgQEAgaTkxNV9maWZv X3VuZGVycnVuX3Jlc2V0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAogCQkJcmV0dXJuIHJldDsK IAogCQljcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShpbnRlbF9jcnRjLT5iYXNlLnN0 YXRlKTsKLQkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+YmFzZS5jb21taXQ7CisJCWNvbW1pdCA9IGNy dGNfc3RhdGUtPnVhcGkuY29tbWl0OwogCQlpZiAoY29tbWl0KSB7CiAJCQlyZXQgPSB3YWl0X2Zv cl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0+aHdfZG9uZSk7CiAJCQlpZiAoIXJl dCkKIAkJCQlyZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0+ ZmxpcF9kb25lKTsKIAkJfQogCi0JCWlmICghcmV0ICYmIGNydGNfc3RhdGUtPmJhc2UuYWN0aXZl KSB7CisJCWlmICghcmV0ICYmIGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewogCQkJRFJNX0RFQlVH X0tNUygiUmUtYXJtaW5nIEZJRk8gdW5kZXJydW5zIG9uIHBpcGUgJWNcbiIsCiAJCQkJICAgICAg cGlwZV9uYW1lKGludGVsX2NydGMtPnBpcGUpKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApp bmRleCAyNGM2M2VkNDVjNmYuLjljYjNmMThlZjcwMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKQEAgLTcxOSw3ICs3MTksMzEgQEAgZW51bSBpbnRlbF9vdXRwdXRfZm9ybWF0IHsKIH07CiAK IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgYmFzZTsK Kwl1bmlvbiB7CisJLyoKKwkgKiB1YXBpIChkcm0pIHN0YXRlLiBUaGlzIGlzIHRoZSBzb2Z0d2Fy ZSBzdGF0ZSBzaG93biB0byB1c2Vyc3BhY2UuCisJICogSW4gcGFydGljdWxhciwgdGhlIGZvbGxv d2luZyBtZW1iZXJzIGFyZSB1c2VkIGZvciBib29ra2VlcGluZzoKKwkgKiAtIGNydGMKKwkgKiAt IHN0YXRlCisJICogLSAqX2NoYW5nZWQKKwkgKiAtIGV2ZW50CisJICogLSBjb21taXQKKwkgKiAt IG1vZGVfYmxvYgorCSAqLworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB1YXBpOworCisJLyoKKwkg KiBhY3R1YWwgaGFyZHdhcmUgc3RhdGUsIHRoZSBzdGF0ZSB3ZSBwcm9ncmFtIHRvIHRoZSBoYXJk d2FyZS4KKwkgKiBUaGUgZm9sbG93aW5nIG1lbWJlcnMgYXJlIHVzZWQgdG8gdmVyaWZ5IHRoZSBo YXJkd2FyZSBzdGF0ZToKKwkgKiAtIGVuYWJsZQorCSAqIC0gYWN0aXZlCisJICogLSBtb2RlIC8g YWRqdXN0ZWRfbW9kZQorCSAqIC0gY29sb3IgcHJvcGVydHkgYmxvYnMuCisJICoKKwkgKiBEdXJp bmcgaW5pdGlhbCBodyByZWFkb3V0LCB0aGV5IG5lZWQgdG8gYmUgY29waWVkIHRvIHVhcGkuCisJ ICovCisJc3RydWN0IGRybV9jcnRjX3N0YXRlIGh3OworCX07CiAKIAkvKioKIAkgKiBxdWlya3Mg LSBiaXRmaWVsZCB3aXRoIGh3IHN0YXRlIHJlYWRvdXQgcXVpcmtzCkBAIC0xMDYxLDcgKzEwODUs NyBAQCBzdHJ1Y3QgY3hzcl9sYXRlbmN5IHsKIAogI2RlZmluZSB0b19pbnRlbF9hdG9taWNfc3Rh dGUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUsIGJhc2UpCiAj ZGVmaW5lIHRvX2ludGVsX2NydGMoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9jcnRj LCBiYXNlKQotI2RlZmluZSB0b19pbnRlbF9jcnRjX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgYmFzZSkKKyNkZWZpbmUgdG9faW50ZWxfY3J0Y19zdGF0 ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2NydGNfc3RhdGUsIHVhcGkpCiAjZGVm aW5lIHRvX2ludGVsX2Nvbm5lY3Rvcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2Nv bm5lY3RvciwgYmFzZSkKICNkZWZpbmUgdG9faW50ZWxfZW5jb2Rlcih4KSBjb250YWluZXJfb2Yo eCwgc3RydWN0IGludGVsX2VuY29kZXIsIGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX2ZyYW1lYnVm ZmVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIsIGJhc2UpCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBkMTBjNjJkM2YxMGMuLjU4YTI4OTc3MGM4YSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC00ODMsNyArNDgzLDcgQEAgc3RhdGljIGNvbnN0IGlu dCBwZXNzaW1hbF9sYXRlbmN5X25zID0gNTAwMDsKIAogc3RhdGljIHZvaWQgdmx2X2dldF9maWZv X3NpemUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CiAJc3RydWN0IHZsdl9maWZvX3N0YXRlICpmaWZvX3N0YXRlID0gJmNydGNf c3RhdGUtPndtLnZsdi5maWZvX3N0YXRlOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK QEAgLTgxNyw3ICs4MTcsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF93bV9wbGFuZV92aXNpYmxlKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAK IAkvKiBGSVhNRSBjaGVjayB0aGUgJ2VuYWJsZScgaW5zdGVhZCAqLwotCWlmICghY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiBm YWxzZTsKIAogCS8qCkBAIC04NzAsNyArODcwLDcgQEAgc3RhdGljIHZvaWQgcGluZXZpZXdfdXBk YXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAljcnRjID0gc2luZ2xlX2Vu YWJsZWRfY3J0YyhkZXZfcHJpdik7CiAJaWYgKGNydGMpIHsKIAkJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkJJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0 ZS0+ZmI7CiAJCWludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CkBAIC0xMTA2LDcgKzExMDYs NyBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9w bGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdW5zaWduZWQgaW50 IGxhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbbGV2ZWxdICogMTA7CiAJdW5zaWdu ZWQgaW50IGNsb2NrLCBodG90YWwsIGNwcCwgd2lkdGgsIHdtOwogCkBAIC0xMTY2LDcgKzExNjYs NyBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIGJvb2wgZzR4X3Jhd19wbGFuZV93bV9zZXQoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZlbCwgZW51bSBwbGFu ZV9pZCBwbGFuZV9pZCwgdTE2IHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOwogCWJvb2wgZGlydHkgPSBmYWxzZTsKIAogCWZvciAoOyBsZXZlbCA8IGludGVsX3dt X251bV9sZXZlbHMoZGV2X3ByaXYpOyBsZXZlbCsrKSB7CkBAIC0xMTgyLDcgKzExODIsNyBAQCBz dGF0aWMgYm9vbCBnNHhfcmF3X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIHN0YXRpYyBib29sIGc0eF9yYXdfZmJjX3dtX3NldChzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgICBpbnQgbGV2ZWwsIHUxNiB2YWx1ZSkK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlib29sIGRpcnR5ID0gZmFs c2U7CiAKIAkvKiBOT1JNQUwgbGV2ZWwgZG9lc24ndCBoYXZlIGFuIEZCQyB3YXRlcm1hcmsgKi8K QEAgLTEyODQsNyArMTI4NCw3IEBAIHN0YXRpYyBib29sIGc0eF9yYXdfcGxhbmVfd21faXNfdmFs aWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiBzdGF0aWMgYm9v bCBnNHhfcmF3X2NydGNfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJCQkJICAgICBpbnQgbGV2ZWwpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51 YXBpLmNydGMtPmRldik7CiAKIAlpZiAobGV2ZWwgPiBkZXZfcHJpdi0+d20ubWF4X2xldmVsKQog CQlyZXR1cm4gZmFsc2U7CkBAIC0xMzIyLDkgKzEzMjIsOSBAQCBzdGF0aWMgdm9pZCBnNHhfaW52 YWxpZGF0ZV93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyBpbnQgZzR4X2Nv bXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9Ci0JCXRv X2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxf YXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCXN0cnVjdCBnNHhfd21fc3Rh dGUgKndtX3N0YXRlID0gJmNydGNfc3RhdGUtPndtLmc0eC5vcHRpbWFsOwogCWludCBudW1fYWN0 aXZlX3BsYW5lcyA9IGh3ZWlnaHQzMihjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICYKIAkJCQkJ ICB+QklUKFBMQU5FX0NVUlNPUikpOwpAQCAtMTQxMSwxNyArMTQxMSwxNyBAQCBzdGF0aWMgaW50 IGc0eF9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAKIHN0YXRpYyBpbnQgZzR4X2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBnNHhfd21fc3RhdGUgKmludGVybWVkaWF0ZSA9ICZuZXdfY3J0Y19zdGF0ZS0+d20u ZzR4LmludGVybWVkaWF0ZTsKIAljb25zdCBzdHJ1Y3QgZzR4X3dtX3N0YXRlICpvcHRpbWFsID0g Jm5ld19jcnRjX3N0YXRlLT53bS5nNHgub3B0aW1hbDsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0 ZS0+YmFzZS5zdGF0ZSk7CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+ dWFwaS5zdGF0ZSk7CiAJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlID0KIAkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0 Yyk7CiAJY29uc3Qgc3RydWN0IGc0eF93bV9zdGF0ZSAqYWN0aXZlID0gJm9sZF9jcnRjX3N0YXRl LT53bS5nNHgub3B0aW1hbDsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkOwogCi0JaWYgKCFuZXdf Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQo Jm5ld19jcnRjX3N0YXRlLT5iYXNlKSkgeworCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2 ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPnVhcGkp KSB7CiAJCSppbnRlcm1lZGlhdGUgPSAqb3B0aW1hbDsKIAogCQlpbnRlcm1lZGlhdGUtPmN4c3Ig PSBmYWxzZTsKQEAgLTE1NTMsOCArMTU1Myw4IEBAIHN0YXRpYyB2b2lkIGc0eF9wcm9ncmFtX3dh dGVybWFya3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQg ZzR4X2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK IAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0 Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCW11dGV4X2xv Y2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiAJY3J0Yy0+d20uYWN0aXZlLmc0eCA9IGNydGNf c3RhdGUtPndtLmc0eC5pbnRlcm1lZGlhdGU7CkBAIC0xNTY1LDggKzE1NjUsOCBAQCBzdGF0aWMg dm9pZCBnNHhfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLAogc3RhdGljIHZvaWQgZzR4X29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5k ZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCiAJaWYgKCFjcnRjX3N0YXRlLT53bS5uZWVkX3Bvc3R2Ymxf dXBkYXRlKQogCQlyZXR1cm47CkBAIC0xNjE1LDcgKzE2MTUsNyBAQCBzdGF0aWMgdTE2IHZsdl9j b21wdXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0 ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShwbGFuZS0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNy dGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdW5zaWduZWQgaW50IGNsb2NrLCBodG90YWws IGNwcCwgd2lkdGgsIHdtOwogCiAJaWYgKGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVtsZXZlbF0g PT0gMCkKQEAgLTE2NTMsNyArMTY1Myw3IEBAIHN0YXRpYyBib29sIHZsdl9uZWVkX3Nwcml0ZTBf Zmlmb193b3JrYXJvdW5kKHVuc2lnbmVkIGludCBhY3RpdmVfcGxhbmVzKQogCiBzdGF0aWMgaW50 IHZsdl9jb21wdXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGc0eF9waXBlX3dtICpyYXcgPQogCQkm Y3J0Y19zdGF0ZS0+d20udmx2LnJhd1tWTFZfV01fTEVWRUxfUE0yXTsKIAlzdHJ1Y3Qgdmx2X2Zp Zm9fc3RhdGUgKmZpZm9fc3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9fc3RhdGU7CkBA IC0xNzY1LDcgKzE3NjUsNyBAQCBzdGF0aWMgdTE2IHZsdl9pbnZlcnRfd21fdmFsdWUodTE2IHdt LCB1MTYgZmlmb19zaXplKQogc3RhdGljIGJvb2wgdmx2X3Jhd19wbGFuZV93bV9zZXQoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZlbCwgZW51bSBwbGFu ZV9pZCBwbGFuZV9pZCwgdTE2IHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOwogCWludCBudW1fbGV2ZWxzID0gaW50ZWxfd21fbnVtX2xldmVscyhkZXZfcHJpdik7 CiAJYm9vbCBkaXJ0eSA9IGZhbHNlOwogCkBAIC0xODQwLDE2ICsxODQwLDE2IEBAIHN0YXRpYyBi b29sIHZsdl9yYXdfY3J0Y193bV9pc192YWxpZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKIAogc3RhdGljIGludCB2bHZfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwog CXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0 YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0 Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CiAJc3RydWN0IHZsdl93bV9zdGF0ZSAqd21fc3RhdGUgPSAm Y3J0Y19zdGF0ZS0+d20udmx2Lm9wdGltYWw7CiAJY29uc3Qgc3RydWN0IHZsdl9maWZvX3N0YXRl ICpmaWZvX3N0YXRlID0KIAkJJmNydGNfc3RhdGUtPndtLnZsdi5maWZvX3N0YXRlOwogCWludCBu dW1fYWN0aXZlX3BsYW5lcyA9IGh3ZWlnaHQzMihjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICYK IAkJCQkJICB+QklUKFBMQU5FX0NVUlNPUikpOwotCWJvb2wgbmVlZHNfbW9kZXNldCA9IGRybV9h dG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT5iYXNlKTsKKwlib29sIG5lZWRz X21vZGVzZXQgPSBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+dWFw aSk7CiAJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGU7CiAJ Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGU7CiAJc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZTsKQEAgLTE5NDgsNyArMTk0OCw3IEBAIHN0YXRpYyBpbnQgdmx2 X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0 YXRpYyB2b2lkIHZsdl9hdG9taWNfdXBkYXRlX2ZpZm8oc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUsCiAJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlID0g JmRldl9wcml2LT51bmNvcmU7CiAJY29uc3Qgc3RydWN0IHZsdl9maWZvX3N0YXRlICpmaWZvX3N0 YXRlID0KQEAgLTIwNDQsMTcgKzIwNDQsMTcgQEAgc3RhdGljIHZvaWQgdmx2X2F0b21pY191cGRh dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAogc3RhdGljIGludCB2 bHZfY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhu ZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IHZsdl93bV9z dGF0ZSAqaW50ZXJtZWRpYXRlID0gJm5ld19jcnRjX3N0YXRlLT53bS52bHYuaW50ZXJtZWRpYXRl OwogCWNvbnN0IHN0cnVjdCB2bHZfd21fc3RhdGUgKm9wdGltYWwgPSAmbmV3X2NydGNfc3RhdGUt PndtLnZsdi5vcHRpbWFsOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRl ID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsK KwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAlj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQogCQlpbnRlbF9h dG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKGludGVsX3N0YXRlLCBjcnRjKTsKIAljb25zdCBzdHJ1 Y3Qgdmx2X3dtX3N0YXRlICphY3RpdmUgPSAmb2xkX2NydGNfc3RhdGUtPndtLnZsdi5vcHRpbWFs OwogCWludCBsZXZlbDsKIAotCWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8IGRy bV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpIHsKKwlp ZiAoIW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoJm5ld19jcnRjX3N0YXRlLT51YXBpKSkgewogCQkqaW50ZXJtZWRpYXRlID0gKm9wdGlt YWw7CiAKIAkJaW50ZXJtZWRpYXRlLT5jeHNyID0gZmFsc2U7CkBAIC0yMTcyLDggKzIxNzIsOCBA QCBzdGF0aWMgdm9pZCB2bHZfcHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHN0YXRpYyB2b2lkIHZsdl9pbml0aWFsX3dhdGVybWFya3Moc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMt PmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwog CWNydGMtPndtLmFjdGl2ZS52bHYgPSBjcnRjX3N0YXRlLT53bS52bHYuaW50ZXJtZWRpYXRlOwpA QCAtMjE4NCw4ICsyMTg0LDggQEAgc3RhdGljIHZvaWQgdmx2X2luaXRpYWxfd2F0ZXJtYXJrcyhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIHN0YXRpYyB2b2lkIHZsdl9vcHRpbWl6 ZV93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCWlmICgh Y3J0Y19zdGF0ZS0+d20ubmVlZF9wb3N0dmJsX3VwZGF0ZSkKIAkJcmV0dXJuOwpAQCAtMjIxMCw3 ICsyMjEwLDcgQEAgc3RhdGljIHZvaWQgaTk2NV91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMg KnVudXNlZF9jcnRjKQogCQkvKiBzZWxmLXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kg Ki8KIAkJc3RhdGljIGNvbnN0IGludCBzcl9sYXRlbmN5X25zID0gMTIwMDA7CiAJCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7 CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJCWNydGMtPmJhc2UucHJp bWFyeS0+c3RhdGUtPmZiOwogCQlpbnQgY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2Nr OwpAQCAtMjI5MSw3ICsyMjkxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0 IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxh bmUoZGV2X3ByaXYsIFBMQU5FX0EpOwogCWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewog CQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0 Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1 c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJCQljcnRj LT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJaW50IGNwcDsKQEAgLTIzMTgsNyArMjMxOCw3 IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRf Y3J0YykKIAljcnRjID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BsYW5lKGRldl9wcml2LCBQTEFORV9C KTsKIAlpZiAoaW50ZWxfY3J0Y19hY3RpdmUoY3J0YykpIHsKIAkJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkJJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0 ZS0+ZmI7CiAJCWludCBjcHA7CkBAIC0yMzY2LDcgKzIzNjYsNyBAQCBzdGF0aWMgdm9pZCBpOXh4 X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJCS8qIHNlbGYtcmVm cmVzaCBoYXMgbXVjaCBoaWdoZXIgbGF0ZW5jeSAqLwogCQlzdGF0aWMgY29uc3QgaW50IHNyX2xh dGVuY3lfbnMgPSA2MDAwOwogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9Ci0JCQkmZW5hYmxlZC0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkm ZW5hYmxlZC0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9CiAJCQllbmFibGVkLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJ aW50IGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsKQEAgLTI0MjQsNyArMjQyNCw3 IEBAIHN0YXRpYyB2b2lkIGk4NDVfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRf Y3J0YykKIAlpZiAoY3J0YyA9PSBOVUxMKQogCQlyZXR1cm47CiAKLQlhZGp1c3RlZF9tb2RlID0g JmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWFkanVzdGVkX21vZGUgPSAmY3J0 Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXBsYW5lYV93bSA9IGludGVsX2NhbGN1bGF0 ZV93bShhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAogCQkJCSAgICAgICAmaTg0NV93bV9pbmZv LAogCQkJCSAgICAgICBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfZmlmb19zaXplKGRldl9wcml2LCBQ TEFORV9BKSwKQEAgLTI1MTQsNyArMjUxNCw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfcHJp X3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4g bWV0aG9kMTsKIAogCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihjcnRjX3N0YXRlLT5waXhlbF9y YXRlLAotCQkJCSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCisJ CQkJIGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCiAJCQkJIGRybV9y ZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+YmFzZS5kc3QpLAogCQkJCSBjcHAsIG1lbV92YWx1ZSk7 CiAKQEAgLTI1NDIsNyArMjU0Miw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfc3ByX3dtKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiAJbWV0aG9kMSA9IGls a193bV9tZXRob2QxKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsIGNwcCwgbWVtX3ZhbHVlKTsKIAlt ZXRob2QyID0gaWxrX3dtX21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwKLQkJCQkgY3J0 Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJCSBjcnRjX3N0YXRl LT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBkcm1fcmVjdF93aWR0aCgmcGxh bmVfc3RhdGUtPmJhc2UuZHN0KSwKIAkJCQkgY3BwLCBtZW1fdmFsdWUpOwogCXJldHVybiBtaW4o bWV0aG9kMSwgbWV0aG9kMik7CkBAIC0yNTY3LDcgKzI1NjcsNyBAQCBzdGF0aWMgdTMyIGlsa19j b21wdXRlX2N1cl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IAljcHAgPSBwbGFuZV9zdGF0ZS0+YmFzZS5mYi0+Zm9ybWF0LT5jcHBbMF07CiAKIAlyZXR1cm4g aWxrX3dtX21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwKLQkJCSAgICAgIGNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCSAgICAgIGNydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCiAJCQkgICAgICBwbGFuZV9zdGF0ZS0+YmFz ZS5jcnRjX3csIGNwcCwgbWVtX3ZhbHVlKTsKIH0KIApAQCAtMjc4OCwxMiArMjc4OCwxMiBAQCBz dGF0aWMgdTMyCiBoc3dfY29tcHV0ZV9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNl LnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUp OwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNy dGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVk X21vZGU7CiAJdTMyIGxpbmV0aW1lLCBpcHNfbGluZXRpbWU7CiAKLQlpZiAoIWNydGNfc3RhdGUt PmJhc2UuYWN0aXZlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm4gMDsK IAlpZiAoV0FSTl9PTihhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID09IDApKQogCQlyZXR1cm4g MDsKQEAgLTMxMDMsMTEgKzMxMDMsOSBAQCBzdGF0aWMgYm9vbCBpbGtfdmFsaWRhdGVfcGlwZV93 bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAvKiBDb21wdXRlIG5l dyB3YXRlcm1hcmtzIGZvciB0aGUgcGlwZSAqLwogc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBl X3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX3BpcGVf d20gKnBpcGVfd207Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7Ci0JY29u c3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHJpc3RhdGUgPSBO VUxMOwpAQCAtMzExOCw3ICszMTE2LDcgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dt KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiAJcGlwZV93bSA9ICZjcnRj X3N0YXRlLT53bS5pbGsub3B0aW1hbDsKIAotCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFj aF9wbGFuZV9zdGF0ZShwbGFuZSwgcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLT5iYXNlKSB7CisJ ZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBwbGFuZV9z dGF0ZSwgJmNydGNfc3RhdGUtPnVhcGkpIHsKIAkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpwcyA9IHRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKTsKIAogCQlpZiAocGxh bmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKQEAgLTMxMjksNyArMzEyNyw3IEBA IHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIAkJCWN1cnN0YXRlID0gcHM7CiAJfQogCi0JcGlwZV93bS0+cGlwZV9lbmFi bGVkID0gY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7CisJcGlwZV93bS0+cGlwZV9lbmFibGVkID0g Y3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCWlmIChzcHJzdGF0ZSkgewogCQlwaXBlX3dtLT5zcHJp dGVzX2VuYWJsZWQgPSBzcHJzdGF0ZS0+YmFzZS52aXNpYmxlOwogCQlwaXBlX3dtLT5zcHJpdGVz X3NjYWxlZCA9IHNwcnN0YXRlLT5iYXNlLnZpc2libGUgJiYKQEAgLTMxODYsMTEgKzMxODQsMTEg QEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogICovCiBzdGF0aWMgaW50IGlsa19jb21wdXRlX2ludGVybWVkaWF0ZV93 bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKG5ld3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhuZXdzdGF0ZS0+dWFw aS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGlu dGVsX2NydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYSA9ICZuZXdzdGF0 ZS0+d20uaWxrLmludGVybWVkaWF0ZTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRl bF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0ZS0+YmFzZS5zdGF0ZSk7 CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0ZS0+dWFwaS5zdGF0ZSk7CiAJY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZHN0YXRlID0KIAkJaW50ZWxfYXRvbWljX2dldF9v bGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGlu dGVsX3BpcGVfd20gKmIgPSAmb2xkc3RhdGUtPndtLmlsay5vcHRpbWFsOwpAQCAtMzIwMiw3ICsz MjAwLDcgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm5ld3N0YXRlKQogCSAqIGFuZCBhZnRlciB0aGUgdmJsYW5rLgogCSAq LwogCSphID0gbmV3c3RhdGUtPndtLmlsay5vcHRpbWFsOwotCWlmICghbmV3c3RhdGUtPmJhc2Uu YWN0aXZlIHx8IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdzdGF0ZS0+YmFzZSkg fHwKKwlpZiAoIW5ld3N0YXRlLT5ody5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoJm5ld3N0YXRlLT51YXBpKSB8fAogCSAgICBpbnRlbF9zdGF0ZS0+c2tpcF9pbnRlcm1l ZGlhdGVfd20pCiAJCXJldHVybiAwOwogCkBAIC0zNzc1LDcgKzM3NzMsNyBAQCBib29sIGludGVs X2Nhbl9lbmFibGVfc2FndihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAljcnRj ID0gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBpcGUpOwogCWNydGNfc3RhdGUg PSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwogCi0JaWYgKGNydGMtPmJh c2Uuc3RhdGUtPmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkK KwlpZiAoY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdf SU5URVJMQUNFKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9j cnRjKGRldiwgY3J0YywgcGxhbmUpIHsKQEAgLTM4MjUsNyArMzgyMyw3IEBAIHN0YXRpYyB1MTYg aW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQogCQlyZXR1cm4gZGRiX3NpemUgLSA0OyAvKiA0 IGJsb2NrcyBmb3IgYnlwYXNzIHBhdGggYWxsb2NhdGlvbiAqLwogCi0JYWRqdXN0ZWRfbW9kZSA9 ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJYWRqdXN0ZWRfbW9kZSA9ICZjcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXRvdGFsX2RhdGFfYncgPSB0b3RhbF9kYXRhX3Jh dGUgKiBkcm1fbW9kZV92cmVmcmVzaChhZGp1c3RlZF9tb2RlKTsKIAogCS8qCkBAIC0zODU0LDE2 ICszODUyLDE2IEBAIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgIHN0cnVjdCBza2xfZGRiX2VudHJ5ICph bGxvYywgLyogb3V0ICovCiAJCQkJICAgaW50ICpudW1fYWN0aXZlIC8qIG91dCAqLykKIHsKLQlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwor CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7 CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9t aWNfc3RhdGUoc3RhdGUpOwotCXN0cnVjdCBkcm1fY3J0YyAqZm9yX2NydGMgPSBjcnRjX3N0YXRl LT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpmb3JfY3J0YyA9IGNydGNfc3RhdGUtPnVh cGkuY3J0YzsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKIAl1MzIgcGlwZV93aWR0 aCA9IDAsIHRvdGFsX3dpZHRoID0gMCwgd2lkdGhfYmVmb3JlX3BpcGUgPSAwOwogCWVudW0gcGlw ZSBmb3JfcGlwZSA9IHRvX2ludGVsX2NydGMoZm9yX2NydGMpLT5waXBlOwogCXUxNiBkZGJfc2l6 ZTsKIAl1MzIgaTsKIAotCWlmIChXQVJOX09OKCFzdGF0ZSkgfHwgIWNydGNfc3RhdGUtPmJhc2Uu YWN0aXZlKSB7CisJaWYgKFdBUk5fT04oIXN0YXRlKSB8fCAhY3J0Y19zdGF0ZS0+aHcuYWN0aXZl KSB7CiAJCWFsbG9jLT5zdGFydCA9IDA7CiAJCWFsbG9jLT5lbmQgPSAwOwogCQkqbnVtX2FjdGl2 ZSA9IGh3ZWlnaHQzMihkZXZfcHJpdi0+YWN0aXZlX2NydGNzKTsKQEAgLTM5MDIsMTEgKzM5MDAs MTEgQEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJICovCiAJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3Rh dGUoaW50ZWxfc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKIAkJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZTsKKwkJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCQllbnVtIHBp cGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJCWludCBoZGlzcGxheSwgdmRpc3BsYXk7CiAKLQkJaWYg KCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwkJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUp CiAJCQljb250aW51ZTsKIAogCQlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKGFkanVzdGVkX21vZGUs ICZoZGlzcGxheSwgJnZkaXNwbGF5KTsKQEAgLTM5MzcsNyArMzkzNSw3IEBAIHN0YXRpYyB1bnNp Z25lZCBpbnQKIHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgICAgaW50IG51bV9hY3RpdmUpCiB7Ci0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMt PmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj X3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21f bWF4X2xldmVsKGRldl9wcml2KTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsIHdtID0ge307CiAJaW50 IHJldCwgbWluX2RkYl9hbGxvYyA9IDA7CkBAIC00MTA1LDcgKzQxMDMsNyBAQCBza2xfcGlwZV9k b3duc2NhbGVfYW1vdW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewogCXVpbnRfZml4ZWRfMTZfMTZfdCBwaXBlX2Rvd25zY2FsZSA9IHUzMl90b19maXhlZDE2 KDEpOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3RhdGUt Pmh3LmVuYWJsZSkKIAkJcmV0dXJuIHBpcGVfZG93bnNjYWxlOwogCiAJaWYgKGNydGNfc3RhdGUt PnBjaF9wZml0LmVuYWJsZWQpIHsKQEAgLTQxMzcsNyArNDEzNSw3IEBAIGludCBza2xfY2hlY2tf cGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAkJCQkg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwotCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJ c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsK IAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpkcm1fcGxhbmVfc3RhdGU7CiAJaW50IGNydGNfY2xvY2ssIGRvdGNsazsKQEAgLTQxNDUsMTAg KzQxNDMsMTAgQEAgaW50IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRlKHN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjLAogCXVpbnRfZml4ZWRfMTZfMTZfdCBwaXBlX2Rvd25zY2FsZTsK IAl1aW50X2ZpeGVkXzE2XzE2X3QgbWF4X2Rvd25zY2FsZSA9IHUzMl90b19maXhlZDE2KDEpOwog Ci0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmVu YWJsZSkKIAkJcmV0dXJuIDA7CiAKLQlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxh bmVfc3RhdGUocGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUtPmJhc2UpIHsKKwlk cm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIGRybV9wbGFu ZV9zdGF0ZSwgJmNydGNfc3RhdGUtPnVhcGkpIHsKIAkJdWludF9maXhlZF8xNl8xNl90IHBsYW5l X2Rvd25zY2FsZTsKIAkJdWludF9maXhlZF8xNl8xNl90IGZwXzlfZGl2XzggPSBkaXZfZml4ZWQx Nig5LCA4KTsKIAkJaW50IGJwcDsKQEAgLTQxNzMsNyArNDE3MSw3IEBAIGludCBza2xfY2hlY2tf cGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAogCXBp cGVfZG93bnNjYWxlID0gbXVsX2ZpeGVkMTYocGlwZV9kb3duc2NhbGUsIG1heF9kb3duc2NhbGUp OwogCi0JY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Ns b2NrOworCWNydGNfY2xvY2sgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xv Y2s7CiAJZG90Y2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKS0+Y2RjbGsubG9naWNh bC5jZGNsazsKIAogCWlmIChJU19HRU1JTklMQUtFKGRldl9wcml2KSB8fCBJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDEwKQpAQCAtNDI0Miw3ICs0MjQwLDcgQEAgc2tsX2dldF90b3RhbF9yZWxhdGl2 ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIHU2 NCAqcGxhbmVfZGF0YV9yYXRlLAogCQkJCSB1NjQgKnV2X3BsYW5lX2RhdGFfcmF0ZSkKIHsKLQlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwor CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7 CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqZHJtX3BsYW5lX3N0YXRlOwogCXU2NCB0b3RhbF9kYXRhX3JhdGUgPSAwOwpAQCAtNDI1MSw3 ICs0MjQ5LDcgQEAgc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiAwOwogCiAJLyogQ2FsY3VsYXRlIGFu ZCBjYWNoZSBkYXRhIHJhdGUgZm9yIGVhY2ggcGxhbmUgKi8KLQlkcm1fYXRvbWljX2NydGNfc3Rh dGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwgJmNydGNfc3Rh dGUtPmJhc2UpIHsKKwlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUo cGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUtPnVhcGkpIHsKIAkJZW51bSBwbGFu ZV9pZCBwbGFuZV9pZCA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKS0+aWQ7CiAJCWNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQogCQkJdG9faW50ZWxfcGxhbmVfc3Rh dGUoZHJtX3BsYW5lX3N0YXRlKTsKQEAgLTQyNzksMTEgKzQyNzcsMTEgQEAgaWNsX2dldF90b3Rh bF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3BsYW5lX3N0YXRlOwogCXU2NCB0 b3RhbF9kYXRhX3JhdGUgPSAwOwogCi0JaWYgKFdBUk5fT04oIWNydGNfc3RhdGUtPmJhc2Uuc3Rh dGUpKQorCWlmIChXQVJOX09OKCFjcnRjX3N0YXRlLT51YXBpLnN0YXRlKSkKIAkJcmV0dXJuIDA7 CiAKIAkvKiBDYWxjdWxhdGUgYW5kIGNhY2hlIGRhdGEgcmF0ZSBmb3IgZWFjaCBwbGFuZSAqLwot CWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgZHJtX3Bs YW5lX3N0YXRlLCAmY3J0Y19zdGF0ZS0+YmFzZSkgeworCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9m b3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgZHJtX3BsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZS0+ dWFwaSkgewogCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0K IAkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZV9zdGF0ZSk7CiAJCWVudW0gcGxhbmVf aWQgcGxhbmVfaWQgPSB0b19pbnRlbF9wbGFuZShwbGFuZSktPmlkOwpAQCAtNDMyNSw4ICs0MzIz LDggQEAgc3RhdGljIGludAogc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpk ZGIgLyogb3V0ICovKQogewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNf c3RhdGUtPmJhc2Uuc3RhdGU7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUt PnVhcGkuc3RhdGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+dWFwaS5j cnRjOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Yyk7CiAJc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jID0gJmNydGNfc3RhdGUtPndtLnNrbC5k ZGI7CkBAIC00MzQ4LDcgKzQzNDYsNyBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaWYgKFdBUk5fT04oIXN0YXRlKSkKIAkJcmV0 dXJuIDA7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7CisJaWYgKCFjcnRjX3N0 YXRlLT5ody5hY3RpdmUpIHsKIAkJYWxsb2MtPnN0YXJ0ID0gYWxsb2MtPmVuZCA9IDA7CiAJCXJl dHVybiAwOwogCX0KQEAgLTQ1OTAsNyArNDU4OCw3IEBAIGludGVsX2dldF9saW5ldGltZV91cyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAl1MzIgY3J0Y19odG90 YWw7CiAJdWludF9maXhlZF8xNl8xNl90IGxpbmV0aW1lX3VzOwogCi0JaWYgKCFjcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIHUz Ml90b19maXhlZDE2KDApOwogCiAJcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUtPnBpeGVsX3JhdGU7 CkBAIC00NTk4LDcgKzQ1OTYsNyBAQCBpbnRlbF9nZXRfbGluZXRpbWVfdXMoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKFdBUk5fT04ocGl4ZWxfcmF0ZSA9 PSAwKSkKIAkJcmV0dXJuIHUzMl90b19maXhlZDE2KDApOwogCi0JY3J0Y19odG90YWwgPSBjcnRj X3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7CisJY3J0Y19odG90YWwgPSBj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsOwogCWxpbmV0aW1lX3VzID0g ZGl2X2ZpeGVkMTYoY3J0Y19odG90YWwgKiAxMDAwLCBwaXhlbF9yYXRlKTsKIAogCXJldHVybiBs aW5ldGltZV91czsKQEAgLTQ2MzMsNyArNDYzMSw3IEBAIHNrbF9jb21wdXRlX3dtX3BhcmFtcyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgICAgdTMyIHBs YW5lX3BpeGVsX3JhdGUsIHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJICAgICAgaW50IGNv bG9yX3BsYW5lKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXUzMiBpbnRlcm1fcGJwbDsK IApAQCAtNDc1OSw3ICs0NzU3LDcgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfcGxhbmVfd20o Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGNvbnN0IHN0 cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdF9wcmV2LAogCQkJCSBzdHJ1Y3Qgc2tsX3dtX2xldmVs ICpyZXN1bHQgLyogb3V0ICovKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYp OwogCXUzMiBsYXRlbmN5ID0gZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5W2xldmVsXTsKIAl1aW50 X2ZpeGVkXzE2XzE2X3QgbWV0aG9kMSwgbWV0aG9kMjsKIAl1aW50X2ZpeGVkXzE2XzE2X3Qgc2Vs ZWN0ZWRfcmVzdWx0OwpAQCAtNDc4NSwxNCArNDc4MywxNCBAQCBzdGF0aWMgdm9pZCBza2xfY29t cHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IAltZXRob2QxID0gc2tsX3dtX21ldGhvZDEoZGV2X3ByaXYsIHdwLT5wbGFuZV9waXhlbF9yYXRl LAogCQkJCSB3cC0+Y3BwLCBsYXRlbmN5LCB3cC0+ZGJ1Zl9ibG9ja19zaXplKTsKIAltZXRob2Qy ID0gc2tsX3dtX21ldGhvZDIod3AtPnBsYW5lX3BpeGVsX3JhdGUsCi0JCQkJIGNydGNfc3RhdGUt PmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3J0Y19zdGF0ZS0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKIAkJCQkgbGF0ZW5jeSwKIAkJCQkgd3AtPnBsYW5lX2Js b2Nrc19wZXJfbGluZSk7CiAKIAlpZiAod3AtPnlfdGlsZWQpIHsKIAkJc2VsZWN0ZWRfcmVzdWx0 ID0gbWF4X2ZpeGVkMTYobWV0aG9kMiwgd3AtPnlfdGlsZV9taW5pbXVtKTsKIAl9IGVsc2Ugewot CQlpZiAoKHdwLT5jcHAgKiBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90 YWwgLworCQlpZiAoKHdwLT5jcHAgKiBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNf aHRvdGFsIC8KIAkJICAgICB3cC0+ZGJ1Zl9ibG9ja19zaXplIDwgMSkgJiYKIAkJICAgICAod3At PnBsYW5lX2J5dGVzX3Blcl9saW5lIC8gd3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEpKSB7CiAJCQlz ZWxlY3RlZF9yZXN1bHQgPSBtZXRob2QyOwpAQCAtNDg4Myw3ICs0ODgxLDcgQEAgc2tsX2NvbXB1 dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQkgICAgICBjb25zdCBzdHJ1Y3Qgc2tsX3dtX3BhcmFtcyAqd21fcGFyYW1zLAogCQkgICAgICBz dHJ1Y3Qgc2tsX3dtX2xldmVsICpsZXZlbHMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNy dGMtPmRldik7CiAJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9w cml2KTsKIAlzdHJ1Y3Qgc2tsX3dtX2xldmVsICpyZXN1bHRfcHJldiA9ICZsZXZlbHNbMF07CiAK QEAgLTQ5MDAsNyArNDg5OCw3IEBAIHNrbF9jb21wdXRlX3dtX2xldmVscyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHN0YXRpYyB1MzIKIHNrbF9jb21wdXRlX2xp bmV0aW1lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7 CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0 ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5k ZXYpOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBsaW5ldGltZV91czsKIAl1MzIgbGluZXRpbWVfd207 CkBAIC00OTE5LDcgKzQ5MTcsNyBAQCBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV90cmFuc2l0aW9u X3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICAg IGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3cCwKIAkJCQkgICAgICBzdHJ1Y3Qgc2tsX3Bs YW5lX3dtICp3bSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPnVhcGku Y3J0Yy0+ZGV2OwogCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKIAl1MTYgdHJhbnNfbWluLCB0cmFuc195X3RpbGVfbWluOwogCWNvbnN0IHUx NiB0cmFuc19hbW91bnQgPSAxMDsgLyogVGhpcyBpcyBjb25maWd1cmFibGUgYW1vdW50ICovCkBA IC01MDc5LDcgKzUwNzcsNyBAQCBzdGF0aWMgaW50IGljbF9idWlsZF9wbGFuZV93bShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogc3RhdGljIGludCBza2xfYnVpbGRfcGlw ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAm Y3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWw7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJ Y29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3BsYW5lX3N0YXRlOwpAQCAtNTA5Miw3 ICs1MDkwLDcgQEAgc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAltZW1zZXQocGlwZV93bS0+cGxhbmVzLCAwLCBzaXplb2Yo cGlwZV93bS0+cGxhbmVzKSk7CiAKIAlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxh bmVfc3RhdGUocGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwKLQkJCQkJCSAgICZjcnRjX3N0YXRlLT5i YXNlKSB7CisJCQkJCQkgICAmY3J0Y19zdGF0ZS0+dWFwaSkgewogCQljb25zdCBzdHJ1Y3QgaW50 ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0KIAkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRy bV9wbGFuZV9zdGF0ZSk7CiAKQEAgLTUyNzEsOCArNTI2OSw4IEBAIHN0YXRpYyBpbnQKIHNrbF9k ZGJfYWRkX2FmZmVjdGVkX3BsYW5lcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUsCiAJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRv bWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3 X2NydGNfc3RhdGUtPnVhcGkuc3RhdGUpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lOwogCkBAIC01NTcyLDcgKzU1NzAsNyBAQCBzdGF0aWMgaW50IHNrbF93 bV9hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAog CQkgKiBwb3dlciB3ZWxsIHRoZSBoYXJkd2FyZSBzdGF0ZSB3aWxsIGdvIG91dCBvZiBzeW5jCiAJ CSAqIHdpdGggdGhlIHNvZnR3YXJlIHN0YXRlLgogCQkgKi8KLQkJaWYgKCFkcm1fYXRvbWljX2Ny dGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpICYmCisJCWlmICghZHJtX2F0 b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT51YXBpKSAmJgogCQkgICAg c2tsX3BsYW5lX3dtX2VxdWFscyhkZXZfcHJpdiwKIAkJCQkJJm9sZF9jcnRjX3N0YXRlLT53bS5z a2wub3B0aW1hbC5wbGFuZXNbcGxhbmVfaWRdLAogCQkJCQkmbmV3X2NydGNfc3RhdGUtPndtLnNr bC5vcHRpbWFsLnBsYW5lc1twbGFuZV9pZF0pKQpAQCAtNTYzOSw3ICs1NjM3LDcgQEAgc2tsX2Nv bXB1dGVfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiBzdGF0aWMgdm9pZCBz a2xfYXRvbWljX3VwZGF0ZV9jcnRjX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAogCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoc3RhdGUtPmJhc2UuZGV2KTsKIAlzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3J0 Y19zdGF0ZS0+d20uc2tsLm9wdGltYWw7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpA QCAtNTY1Myw3ICs1NjUxLDcgQEAgc3RhdGljIHZvaWQgc2tsX2F0b21pY191cGRhdGVfY3J0Y193 bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIHN0YXRpYyB2b2lkIHNrbF9pbml0 aWFsX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2NydGMtPmJhc2UuZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg c2tsX2RkYl92YWx1ZXMgKnJlc3VsdHMgPSAmc3RhdGUtPndtX3Jlc3VsdHM7CkBAIC01NjYzLDcg KzU2NjEsNyBAQCBzdGF0aWMgdm9pZCBza2xfaW5pdGlhbF93bShzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiAK LQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmVfY2hhbmdlZCkKKwlpZiAoY3J0Y19zdGF0ZS0+ dWFwaS5hY3RpdmVfY2hhbmdlZCkKIAkJc2tsX2F0b21pY191cGRhdGVfY3J0Y193bShzdGF0ZSwg Y3J0Y19zdGF0ZSk7CiAKIAltdXRleF91bmxvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CkBA IC01NzIyLDggKzU3MjAsOCBAQCBzdGF0aWMgdm9pZCBpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHN0YXRpYyB2b2lkIGlsa19pbml0aWFs X3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0J c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAltdXRleF9s b2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogCWludGVsX2NydGMtPndtLmFjdGl2ZS5pbGsg PSBjcnRjX3N0YXRlLT53bS5pbGsuaW50ZXJtZWRpYXRlOwpAQCAtNTczNCw4ICs1NzMyLDggQEAg c3RhdGljIHZvaWQgaWxrX2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSwKIHN0YXRpYyB2b2lkIGlsa19vcHRpbWl6ZV93YXRlcm1hcmtzKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGku Y3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53bS53 bV9tdXRleCk7CiAJaWYgKGNydGNfc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRhdGUpIHsKLS0g CjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4