From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 07/14] drm/i915: Perform automated conversions for crtc uapi/hw split, base -> uapi. Date: Thu, 17 Oct 2019 15:20:58 +0200 Message-ID: <20191017132105.15528-7-maarten.lankhorst@linux.intel.com> References: <20191017132105.15528-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 539E26EA8C for ; Thu, 17 Oct 2019 13:21:10 +0000 (UTC) In-Reply-To: <20191017132105.15528-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 U3BsaXQgdXAgY3J0Y19zdGF0ZS0+YmFzZSB0byB1YXBpLiBUaGlzIGlzIGRvbmUgdXNpbmcgdGhl IGZvbGxvd2luZyBwYXRjaCwKcmFuIGFmdGVyIHRoZSBwcmV2aW91cyBjb21taXQgdGhhdCBzcGxp dHMgb3V0IGFueSBodyByZWZlcmVuY2VzOgoKQEAKc3RydWN0IGludGVsX2NydGNfc3RhdGUgKlQ7 CkBACi1ULT5iYXNlCitULT51YXBpCgpAQApzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqVDsKaWRl bnRpZmllciB4ID1+ICJeKGFjdGl2ZXxlbmFibGV8ZGVnYW1tYV9sdXR8Z2FtbWFfbHV0fGN0bXxt b2RlfGFkanVzdGVkX21vZGUpJCI7CkBACi1ULT5iYXNlLngKK1QtPnVhcGkueAoKU2lnbmVkLW9m Zi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyAgICAgICAgfCAg IDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8ICAg OCArLQogLi4uL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jIHwgICA2 ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMgICAgfCAgIDgg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuYyAgICAgICB8ICAgNCAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jICAgIHwgIDEwICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMgICAgfCAgNzAgKyst LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMgICAgICB8ICAgNiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyAgICAgIHwgIDMyICst LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgMjQxICsr KysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5j ICAgICAgIHwgIDIwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21z dC5jICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19w aHkuYyB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21n ci5jIHwgIDIwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jICAg ICAgfCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jICAg ICB8ICA0NCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYyAg ICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYyAg ICB8ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9waXBlX2NyYy5j IHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jICAgICAg fCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5jICAgICB8 ICAgNiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyAgIHwg IDE3ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMgICAgICAgfCAg IDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jICAgICB8ICAg OCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpLmMgICAgICAgIHwgIDEw ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICAgfCAgIDYg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICAgICAgICB8IDExMiAr KysrLS0tLQogMjcgZmlsZXMgY2hhbmdlZCwgMzM5IGluc2VydGlvbnMoKyksIDMzNyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2ku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCmluZGV4IDRlYzQ5M2U0 NzU1Yi4uMGUyNGI4ZTI1N2U1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ljbF9kc2kuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2ku YwpAQCAtNjI1LDcgKzYyNSw3IEBAIGdlbjExX2RzaV9jb25maWd1cmVfdHJhbnNjb2RlcihzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBp cGVfY29uZmlnLT51YXBpLmNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfY3J0Yy0+cGlw ZTsKIAl1MzIgdG1wOwogCWVudW0gcG9ydCBwb3J0OwpAQCAtMTI0Miw3ICsxMjQyLDcgQEAgc3Rh dGljIHZvaWQgZ2VuMTFfZHNpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWct PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBp cGVfY29uZmlnLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVu Y190b19pbnRlbF9kc2koJmVuY29kZXItPmJhc2UpOwogCiAJLyogRklYTUU6IGFkYXB0IGljbF9k ZGlfY2xvY2tfZ2V0KCkgZm9yIERTSSBhbmQgdXNlIHRoYXQ/ICovCkBAIC0xMjY1LDcgKzEyNjUs NyBAQCBzdGF0aWMgaW50IGdlbjExX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBjb250YWluZXJf b2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RzaSwKIAkJCQkJCSAgIGJhc2UpOwogCXN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RzaS0+YXR0YWNoZWRfY29u bmVjdG9yOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmZpeGVkX21vZGUgPQogCQkJCQlpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGU7 CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKaW5kZXggMmNkYzkyODk3YWJkLi43Y2Yx M2I5YzdkMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMu YwpAQCAtMTkzLDcgKzE5Myw3IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIAlpZiAoIWNydGNfc3RhdGUpCiAJCXJldHVybiBOVUxMOwogCi0JX19k cm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmY3J0Y19zdGF0ZS0+ YmFzZSk7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAm Y3J0Y19zdGF0ZS0+dWFwaSk7CiAKIAljcnRjX3N0YXRlLT51cGRhdGVfcGlwZSA9IGZhbHNlOwog CWNydGNfc3RhdGUtPmRpc2FibGVfbHBfd20gPSBmYWxzZTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBp bnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJY3J0Y19z dGF0ZS0+ZmJfYml0cyA9IDA7CiAJY3J0Y19zdGF0ZS0+dXBkYXRlX3BsYW5lcyA9IDA7CiAKLQly ZXR1cm4gJmNydGNfc3RhdGUtPmJhc2U7CisJcmV0dXJuICZjcnRjX3N0YXRlLT51YXBpOwogfQog CiAvKioKQEAgLTIyMiw3ICsyMjIsNyBAQCBpbnRlbF9jcnRjX2Rlc3Ryb3lfc3RhdGUoc3RydWN0 IGRybV9jcnRjICpjcnRjLAogewogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl ID0gdG9faW50ZWxfY3J0Y19zdGF0ZShzdGF0ZSk7CiAKLQlfX2RybV9hdG9taWNfaGVscGVyX2Ny dGNfZGVzdHJveV9zdGF0ZSgmY3J0Y19zdGF0ZS0+YmFzZSk7CisJX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJmNydGNfc3RhdGUtPnVhcGkpOwogCWtmcmVlKGNydGNfc3Rh dGUpOwogfQogCkBAIC0zMTksNyArMzE5LDcgQEAgaW50IGludGVsX2F0b21pY19zZXR1cF9zY2Fs ZXJzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHsKIAlzdHJ1Y3QgaW50ZWxf Y3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9CiAJCSZjcnRjX3N0YXRlLT5zY2FsZXJf c3RhdGU7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9zdGF0ZSA9IGNydGNfc3RhdGUt PmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9zdGF0ZSA9IGNydGNf c3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0 b19pbnRlbF9hdG9taWNfc3RhdGUoZHJtX3N0YXRlKTsKIAlpbnQgbnVtX3NjYWxlcnNfbmVlZDsK IAlpbnQgaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXRvbWljX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21p Y19wbGFuZS5jCmluZGV4IDg0N2Y5YzRlY2JiZC4uZDkyYzE4NWQ0YjRhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAgLTI2OCw3 ICsyNjgsNyBAQCB2b2lkIGludGVsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lLAogCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQlj b25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCiAJdHJhY2VfaW50ZWxfdXBkYXRlX3BsYW5lKCZwbGFuZS0+YmFzZSwgY3J0Yyk7 CiAJcGxhbmUtPnVwZGF0ZV9wbGFuZShwbGFuZSwgY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwpA QCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgaW50ZWxfdXBkYXRlX3NsYXZlKHN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAKIAl0cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUoJnBsYW5lLT5iYXNl LCBjcnRjKTsKIAlwbGFuZS0+dXBkYXRlX3NsYXZlKHBsYW5lLCBjcnRjX3N0YXRlLCBwbGFuZV9z dGF0ZSk7CkBAIC0yODcsNyArMjg3LDcgQEAgdm9pZCBpbnRlbF91cGRhdGVfc2xhdmUoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSwKIHZvaWQgaW50ZWxfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lLAogCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJdHJhY2VfaW50ZWxfZGlzYWJsZV9wbGFu ZSgmcGxhbmUtPmJhc2UsIGNydGMpOwogCXBsYW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjcnRj X3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYwppbmRl eCA2YTU4ZThhZDg2ZjguLjU2ODBlZWQ5YzcxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfYXVkaW8uYwpAQCAtNTU0LDcgKzU1NCw3IEBAIHN0YXRpYyB2b2lkIGlsa19h dWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAg ICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNl LmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCXUzMiB0bXAsIGVsZHY7 CkBAIC02MDEsNyArNjAxLDcgQEAgc3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9y OwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29k ZXItPnBvcnQ7CkBAIC02OTEsNyArNjkxLDcgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFi bGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGk5 MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbm5f c3RhdGUtPmNvbm5lY3RvcjsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9CiAJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwpAQCAtNzUyLDcgKzc1 Miw3IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnQgKmFj b21wID0gZGV2X3ByaXYtPmF1ZGlvX2NvbXBvbmVudDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKIAllbnVtIHBpcGUgcGlwZSA9IGNy dGMtPnBpcGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfYncuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuYwppbmRleCAy MmU4M2Y4NTdkZTguLjNmNmUyOWY2MTMyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9idy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfYncuYwpAQCAtMjk3LDcgKzI5Nyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxf YndfY3J0Y19udW1fYWN0aXZlX3BsYW5lcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0CiAK IHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfYndfY3J0Y19kYXRhX3JhdGUoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJdW5z aWduZWQgaW50IGRhdGFfcmF0ZSA9IDA7CiAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZDsKIApAQCAt MzE4LDcgKzMxOCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfYndfY3J0Y19kYXRhX3Jh dGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfCiB2b2lkIGludGVsX2J3X2Ny dGNfdXBkYXRlKHN0cnVjdCBpbnRlbF9id19zdGF0ZSAqYndfc3RhdGUsCiAJCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CiAJYndfc3RhdGUtPmRhdGFfcmF0ZVtjcnRjLT5waXBlXSA9CiAJCWludGVsX2J3X2NydGNfZGF0 YV9yYXRlKGNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9jZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9j ZGNsay5jCmluZGV4IGZkMWVkMGZiODc0OC4uOTMxZjE5ZGJkNGRkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCkBAIC0xOTAyLDcgKzE5MDIsNyBAQCBpbnRl bF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCiBzdGF0aWMgaW50IGludGVsX3BpeGVsX3JhdGVfdG9fY2RjbGsoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51 YXBpLmNydGMtPmRldik7CiAJaW50IHBpeGVsX3JhdGUgPSBjcnRjX3N0YXRlLT5waXhlbF9yYXRl OwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZf cHJpdikpCkBAIC0xOTIxLDcgKzE5MjEsNyBAQCBzdGF0aWMgaW50IGludGVsX3BpeGVsX3JhdGVf dG9fY2RjbGsoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBpbnQg aW50ZWxfY3J0Y19jb21wdXRlX21pbl9jZGNsayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQot CQl0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwkJdG9faTkxNShjcnRjX3N0 YXRlLT51YXBpLmNydGMtPmRldik7CiAJaW50IG1pbl9jZGNsazsKIAogCWlmICghY3J0Y19zdGF0 ZS0+aHcuZW5hYmxlKQpAQCAtMjI2MSwxMCArMjI2MSwxMCBAQCBzdGF0aWMgaW50IGludGVsX21v ZGVzZXRfYWxsX3BpcGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJcmV0 dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7CiAKIAkJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUg fHwKLQkJICAgIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT5iYXNl KSkKKwkJICAgIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT51YXBp KSkKIAkJCWNvbnRpbnVlOwogCi0JCWNydGNfc3RhdGUtPmJhc2UubW9kZV9jaGFuZ2VkID0gdHJ1 ZTsKKwkJY3J0Y19zdGF0ZS0+dWFwaS5tb2RlX2NoYW5nZWQgPSB0cnVlOwogCiAJCXJldCA9IGRy bV9hdG9taWNfYWRkX2FmZmVjdGVkX2Nvbm5lY3RvcnMoJnN0YXRlLT5iYXNlLAogCQkJCQkJCSAm Y3J0Yy0+YmFzZSk7CkBAIC0yMzMwLDcgKzIzMzAsNyBAQCBpbnQgaW50ZWxfbW9kZXNldF9jYWxj X2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQljcnRjID0gaW50ZWxf Z2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBpcGUpOwogCQljcnRjX3N0YXRlID0gaW50ZWxf YXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAJCWlmIChjcnRjX3N0YXRl ICYmCi0JCSAgICBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFz ZSkpCisJCSAgICBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+dWFw aSkpCiAJCQlwaXBlID0gSU5WQUxJRF9QSVBFOwogCX0gZWxzZSB7CiAJCXBpcGUgPSBJTlZBTElE X1BJUEU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Nv bG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMKaW5kZXgg NjVlMWIxOGJkN2UzLi41MjcxMmJiOWVkMTUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2NvbG9yLmMKQEAgLTIwNSw3ICsyMDUsNyBAQCBzdGF0aWMgdm9pZCBpY2xfdXBk YXRlX291dHB1dF9jc2Moc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyBib29sIGls a19jc2NfbGltaXRlZF9yYW5nZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCS8qCiAJICog RklYTUUgaWYgdGhlcmUncyBhIGdhbW1hIExVVCBhZnRlciB0aGUgQ1NDLCB3ZSBzaG91bGQKQEAg LTI3MCw3ICsyNzAsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY3NjX2NvbnZlcnRfY3RtKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgdm9pZCBpbGtfbG9h ZF9jc2NfbWF0cml4KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWJvb2wgbGltaXRlZF9jb2xvcl9yYW5nZSA9IGls a19jc2NfbGltaXRlZF9yYW5nZShjcnRjX3N0YXRlKTsKIApAQCAtMzA5LDcgKzMwOSw3IEBAIHN0 YXRpYyB2b2lkIGlsa19sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGljbF9sb2FkX2NzY19tYXRyaXgoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKSB7CkBAIC0zMzgsNyArMzM4LDcgQEAg c3RhdGljIHZvaWQgaWNsX2xvYWRfY3NjX21hdHJpeChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKICAqLwogc3RhdGljIHZvaWQgY2hlcnJ5dmlld19sb2FkX2NzY19t YXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC00 MDQsNyArNDA0LDcgQEAgc3RhdGljIHUzMiBpbGtfbHV0XzEwKGNvbnN0IHN0cnVjdCBkcm1fY29s b3JfbHV0ICpjb2xvcikKIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzX2ludGVybmFsKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBjb25zdCBzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludCBpOwpAQCAtNDQwLDcgKzQ0MCw3IEBA IHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKQEAgLTQ1Myw3ICs0 NTMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaWxrX2NvbG9yX2NvbW1pdChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKQEAg LTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBoc3dfY29sb3Jf Y29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJSTkxNV9XUklURShHQU1NQV9NT0RFKGNydGMtPnBpcGUp LCBjcnRjX3N0YXRlLT5nYW1tYV9tb2RlKTsKQEAgLTQ3OCw3ICs0NzgsNyBAQCBzdGF0aWMgdm9p ZCBoc3dfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogCiBzdGF0aWMgdm9pZCBza2xfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdmFsID0gMDsKQEAgLTUyNCw3ICs1MjQsNyBA QCBzdGF0aWMgdm9pZCBpOTY1X2xvYWRfbHV0XzEwcDYoc3RydWN0IGludGVsX2NydGMgKmNydGMs CiAKIHN0YXRpYyB2b2lkIGk5NjVfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1f cHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OwogCiAJ aWYgKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpCkBAIC01 NDcsNyArNTQ3LDcgQEAgc3RhdGljIHZvaWQgaWxrX2xvYWRfbHV0XzEwKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWNvbnN0IHN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFf bHV0OwogCiAJaWYgKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhC SVQpCkBAIC02NTQsNyArNjU0LDcgQEAgc3RhdGljIHZvaWQgaXZiX2xvYWRfbHV0X2V4dF9tYXgo c3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0YXRpYyB2b2lkIGl2Yl9sb2FkX2x1dHMoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0 YXRlLT5ody5nYW1tYV9sdXQ7CiAJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdh bW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0OwogCkBAIC02NzcsNyArNjc3LDcg QEAgc3RhdGljIHZvaWQgaXZiX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgYmR3X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAljb25z dCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3Lmdh bW1hX2x1dDsKIAljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0g Y3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQ7CiAKQEAgLTcwMCw3ICs3MDAsNyBAQCBzdGF0aWMg dm9pZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogCiBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAll bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJY29uc3QgdTMyIGx1dF9zaXplID0gSU5URUxf SU5GTyhkZXZfcHJpdiktPmNvbG9yLmRlZ2FtbWFfbHV0X3NpemU7CkBAIC03MzksNyArNzM5LDcg QEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1tYV9sdXQoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGdsa19sb2FkX2RlZ2FtbWFfbHV0 X2xpbmVhcihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJY29u c3QgdTMyIGx1dF9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9yLmRlZ2FtbWFfbHV0 X3NpemU7CkBAIC03NjcsNyArNzY3LDcgQEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1tYV9s dXRfbGluZWFyKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXQKIHN0YXRp YyB2b2lkIGdsa19sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7CiAJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBj cnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAkvKgogCSAqIE9u IEdMSysgYm90aCBwaXBlIENTQyBhbmQgZGVnYW1tYSBMVVQgYXJlIGNvbnRyb2xsZWQKQEAgLTgw OCw3ICs4MDgsNyBAQCBzdGF0aWMgdm9pZAogaWNsX2xvYWRfZ2NtYXgoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29s b3JfbHV0ICpjb2xvcikKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZHNiICpk c2IgPSBpbnRlbF9kc2JfZ2V0KGNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK IApAQCAtODIyLDcgKzgyMiw3IEBAIGljbF9sb2FkX2djbWF4KGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIHZvaWQKIGljbF9wcm9ncmFtX2dhbW1hX3N1 cGVyZmluZV9zZWdtZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq YmxvYiA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKIAljb25zdCBzdHJ1Y3QgZHJtX2NvbG9y X2x1dCAqbHV0ID0gYmxvYi0+ZGF0YTsKIAlzdHJ1Y3QgaW50ZWxfZHNiICpkc2IgPSBpbnRlbF9k c2JfZ2V0KGNydGMpOwpAQCAtODU0LDcgKzg1NCw3IEBAIGljbF9wcm9ncmFtX2dhbW1hX3N1cGVy ZmluZV9zZWdtZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog c3RhdGljIHZvaWQKIGljbF9wcm9ncmFtX2dhbW1hX211bHRpX3NlZ21lbnQoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJY29u c3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFf bHV0OwogCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRhOwogCWNv bnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICplbnRyeTsKQEAgLTkxMSw3ICs5MTEsNyBAQCBpY2xf cHJvZ3JhbV9nYW1tYV9tdWx0aV9zZWdtZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogc3RhdGljIHZvaWQgaWNsX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZHNiICpkc2IgPSBpbnRlbF9kc2JfZ2V0KGNydGMpOwogCiAJ aWYgKGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0KQpAQCAtOTkwLDcgKzk5MCw3IEBAIHN0YXRp YyB2b2lkIGNodl9sb2FkX2NnbV9nYW1tYShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogc3Rh dGljIHZvaWQgY2h2X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKIAljb25zdCBzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1t YV9sdXQ7CiAKQEAgLTEwMTAsMjggKzEwMTAsMjggQEAgc3RhdGljIHZvaWQgY2h2X2xvYWRfbHV0 cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogdm9pZCBpbnRl bF9jb2xvcl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj X3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAKIAlkZXZfcHJpdi0+ ZGlzcGxheS5sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CiB9CiAKIHZvaWQgaW50ZWxfY29sb3JfY29t bWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJZGV2X3ByaXYtPmRpc3BsYXkuY29sb3Jf Y29tbWl0KGNydGNfc3RhdGUpOwogfQogCiBpbnQgaW50ZWxfY29sb3JfY2hlY2soc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNy dGMtPmRldik7CiAKIAlyZXR1cm4gZGV2X3ByaXYtPmRpc3BsYXkuY29sb3JfY2hlY2soY3J0Y19z dGF0ZSk7CiB9CiAKIHZvaWQgaW50ZWxfY29sb3JfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2 KTsKIAogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5yZWFkX2x1dHMpCiAJCWRldl9wcml2LT5kaXNw bGF5LnJlYWRfbHV0cyhjcnRjX3N0YXRlKTsKQEAgLTEwNTUsMTYgKzEwNTUsMTYgQEAgc3RhdGlj IGJvb2wgbmVlZF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIHN0YXRp YyBpbnQKIGludGVsX2NvbG9yX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNf c3RhdGUobmV3X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3Rh dGUobmV3X2NydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3Rh dGUoc3RhdGUsIGNydGMpOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CiAKIAlpZiAoIW5l d19jcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwKLQkgICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKKwkgICAgZHJtX2F0b21pY19jcnRjX25lZWRz X21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT51YXBpKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAobmV3 X2NydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9PSBvbGRfY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxl ICYmCkBAIC0xMTA3LDcgKzExMDcsNyBAQCBzdGF0aWMgaW50IGNoZWNrX2x1dF9zaXplKGNvbnN0 IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqbHV0LCBpbnQgZXhwZWN0ZWQpCiAKIHN0YXRpYyBp bnQgY2hlY2tfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAljb25zdCBzdHJ1Y3QgZHJt X3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKIAlj b25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+ aHcuZGVnYW1tYV9sdXQ7CiAJaW50IGdhbW1hX2xlbmd0aCwgZGVnYW1tYV9sZW5ndGg7CkBAIC0x NDgwLDcgKzE0ODAsNyBAQCBzdGF0aWMgaW50IGdsa19nYW1tYV9wcmVjaXNpb24oY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIGludCBpbnRlbF9jb2xvcl9nZXRf Z2FtbWFfYml0X3ByZWNpc2lvbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCWlmIChIQVNfR01DSChkZXZfcHJp dikpIHsKQEAgLTE1ODYsNyArMTU4Niw3IEBAIHN0YXRpYyB1MzIgaW50ZWxfY29sb3JfbHV0X3Bh Y2sodTMyIHZhbCwgdTMyIGJpdF9wcmVjaXNpb24pCiBzdGF0aWMgc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICoKIGk5eHhfcmVhZF9sdXRfOChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9 IGNydGMtPnBpcGU7CiAJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iOwpAQCAtMTYyOSw3 ICsxNjI5LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9yZWFkX2x1dHMoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoKIGk5 NjVfcmVhZF9sdXRfMTBwNihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAl1MzIgbHV0X3NpemUgPSBJTlRFTF9JTkZP KGRldl9wcml2KS0+Y29sb3IuZ2FtbWFfbHV0X3NpemU7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRj LT5waXBlOwpAQCAtMTY4MSw3ICsxNjgxLDcgQEAgc3RhdGljIHZvaWQgaTk2NV9yZWFkX2x1dHMo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgc3RydWN0IGRybV9w cm9wZXJ0eV9ibG9iICoKIGNodl9yZWFkX2NnbV9sdXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGx1dF9z aXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmNvbG9yLmdhbW1hX2x1dF9zaXplOwogCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHN0YXRpYyB2b2lk IGNodl9yZWFkX2x1dHMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0 aWMgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoKIGlsa19yZWFkX2x1dF8xMChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAl1MzIgbHV0X3NpemUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZ2FtbWFfbHV0 X3NpemU7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtMTc3MCw3ICsxNzcwLDcg QEAgc3RhdGljIHZvaWQgaWxrX3JlYWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHN0YXRpYyBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKgogZ2xrX3JlYWRfbHV0 XzEwKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCB1MzIgcHJlY19p bmRleCkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlpbnQgaHdfbHV0X3NpemUgPSBpdmJf bHV0XzEwX3NpemUocHJlY19pbmRleCk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKaW5kZXggMzk5YWJjM2Q1MjFl Li4xNjRhZjE5MzZkMzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfY3J0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQu YwpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydF9zZXRfZHBtcyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0 ICpjcnQgPSBpbnRlbF9lbmNvZGVyX3RvX2NydChlbmNvZGVyKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0 YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBhZHBhOwogCkBAIC0yNzEsNyArMjcxLDcgQEAg c3RhdGljIHZvaWQgaHN3X3ByZV9lbmFibGVfY3J0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0 Yy0+cGlwZTsKIAogCVdBUk5fT04oIWNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2Rlcik7CkBAIC0y ODgsNyArMjg4LDcgQEAgc3RhdGljIHZvaWQgaHN3X2VuYWJsZV9jcnQoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CiAKIAlXQVJOX09OKCFjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKaW5kZXggYzg2MzliOTJh NmRhLi4xYjlmNjhkNGM1NjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k ZGkuYwpAQCAtMTc0NCw3ICsxNzQ0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dl dChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHZvaWQgaW50ZWxfZGRpX3NldF9kcF9t c2EoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgIGNvbnN0 IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUt PmNwdV90cmFuc2NvZGVyOwogCXUzMiB0ZW1wOwpAQCAtMTgwNiw3ICsxODA2LDcgQEAgdm9pZCBp bnRlbF9kZGlfc2V0X2RwX21zYShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBib29sIHN0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNy dGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCXUzMiB0ZW1wOwpAQCAtMTgyOCw3ICsxODI4LDcg QEAgdm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiBzdGF0aWMgdTMyCiBpbnRlbF9kZGlfdHJhbnNjb2Rl cl9mdW5jX3JlZ192YWxfZ2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy ID0gaW50ZWxfZGRpX2dldF9jcnRjX2VuY29kZXIoY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBp cGUgPSBjcnRjLT5waXBlOwpAQCAtMTkxNSw3ICsxOTE1LDcgQEAgaW50ZWxfZGRpX3RyYW5zY29k ZXJfZnVuY19yZWdfdmFsX2dldChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIAogdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3RyYW5zY29kZXJfZnVuYyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJh bnNjb2RlcjsKIAl1MzIgdGVtcDsKQEAgLTE5MzEsNyArMTkzMSw3IEBAIHZvaWQgaW50ZWxfZGRp X2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiBzdGF0aWMgdm9pZAogaW50ZWxfZGRpX2NvbmZpZ190cmFuc2NvZGVyX2Z1bmMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0 ZS0+Y3B1X3RyYW5zY29kZXI7CiAJdTMyIHRlbXA7CkBAIC0xOTQzLDcgKzE5NDMsNyBAQCBpbnRl bF9kZGlfY29uZmlnX3RyYW5zY29kZXJfZnVuYyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIAogdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV90cmFuc2NvZGVyX2Z1bmMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0 ZS0+Y3B1X3RyYW5zY29kZXI7CiAJaTkxNV9yZWdfdCByZWcgPSBUUkFOU19ERElfRlVOQ19DVEwo Y3B1X3RyYW5zY29kZXIpOwpAQCAtMjI0MSw3ICsyMjQxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZGRpX2dldF9wb3dlcl9kb21haW5zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiB2 b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciA9IGludGVsX2RkaV9nZXRfY3J0Y19lbmNvZGVyKGNydGMpOwog CWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKQEAgLTIyNTksNyArMjI1OSw3IEBAIHZv aWQgaW50ZWxfZGRpX2VuYWJsZV9waXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogCiB2b2lkIGludGVsX2RkaV9kaXNhYmxlX3BpcGVfY2xvY2soY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT51YXBpLmNydGMtPmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g Y3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAKIAlpZiAoY3B1X3RyYW5zY29kZXIgIT0gVFJB TlNDT0RFUl9FRFApIHsKQEAgLTMzMzcsNyArMzMzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rk aV9kaXNhYmxlX2ZlY19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHN0YXRp YyB2b2lkCiB0Z2xfY2xlYXJfcHNyMl90cmFuc2NvZGVyX2V4aXRsaW5lKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwog CXUzMiB2YWw7CiAKIAlpZiAoIWNzdGF0ZS0+ZGMzY29fZXhpdGxpbmUpCkBAIC0zMzUyLDcgKzMz NTIsNyBAQCBzdGF0aWMgdm9pZAogdGdsX3NldF9wc3IyX3RyYW5zY29kZXJfZXhpdGxpbmUoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIHsKIAl1MzIgdmFsLCBleGl0X3Nj YW5saW5lczsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNz dGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAKIAlpZiAoIWNzdGF0ZS0+ZGMz Y29fZXhpdGxpbmUpCiAJCXJldHVybjsKQEAgLTMzNzAsNyArMzM3MCw3IEBAIHN0YXRpYyB2b2lk IHRnbF9kYzNjb19leGl0bGluZV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIHsK IAl1MzIgZXhpdF9zY2FubGluZXM7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNzdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXUzMiBj cnRjX3ZkaXNwbGF5ID0gY3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdmRpc3BsYXk7CiAK IAljc3RhdGUtPmRjM2NvX2V4aXRsaW5lID0gMDsKQEAgLTMzNzksNyArMzM3OSw3IEBAIHN0YXRp YyB2b2lkIHRnbF9kYzNjb19leGl0bGluZV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJcmV0dXJuOwogCiAJLyogQi5TcGVjczo0OTE5NiBEQzNDTyBvbmx5 IHdvcmtzIHdpdGggcGlwZUEgYW5kIERESUEuKi8KLQlpZiAodG9faW50ZWxfY3J0Yyhjc3RhdGUt PmJhc2UuY3J0YyktPnBpcGUgIT0gUElQRV9BIHx8CisJaWYgKHRvX2ludGVsX2NydGMoY3N0YXRl LT51YXBpLmNydGMpLT5waXBlICE9IFBJUEVfQSB8fAogCSAgICBlbmNvZGVyLT5wb3J0ICE9IFBP UlRfQSkKIAkJcmV0dXJuOwogCkBAIC0zNDAzLDcgKzM0MDMsNyBAQCBzdGF0aWMgdm9pZCB0Z2xf ZGMzY29fZXhpdGxpbmVfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiBzdGF0aWMgdm9pZCB0Z2xfZGMzY29fZXhpdGxpbmVfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAl1MzIgdmFsOwotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMikKIAkJ cmV0dXJuOwpAQCAtMzY0OSw3ICszNjQ5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKQEAgLTQyMDYsNyArNDIwNiw3IEBAIHZvaWQgaW50 ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBp cGVfY29uZmlnLT51YXBpLmNydGMpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9 IHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKIAl1MzIgdGVtcCwgZmxhZ3MgPSAwOwogCkBA IC00MzczLDcgKzQzNzMsNyBAQCBzdGF0aWMgaW50IGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo cGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBw b3J0ID0gZW5jb2Rlci0+cG9ydDsKIAlpbnQgcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCAzMTA2YWFmNTVmMTcuLjA2YzU5M2Q1NmQ5MiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTUx Niw3ICs1MTYsNyBAQCBpY2xfd2Ffc2NhbGVyY2xrZ2F0aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUsCiBzdGF0aWMgYm9vbAogbmVlZHNfbW9kZXNl dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqc3RhdGUpCiB7Ci0JcmV0dXJuIGRybV9h dG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZzdGF0ZS0+YmFzZSk7CisJcmV0dXJuIGRybV9hdG9t aWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZzdGF0ZS0+dWFwaSk7CiB9CiAKIC8qCkBAIC02MzAsNyAr NjMwLDcgQEAgaTl4eF9zZWxlY3RfcDJfZGl2KGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGlt aXQsCiAJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkg ICBpbnQgdGFyZ2V0KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJ aWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0xWRFMpKSB7 CiAJCS8qCkBAIC02NjYsNyArNjY2LDcgQEAgaTl4eF9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1 Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAogCQkgICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgc3Ry dWN0IGRwbGwgKm1hdGNoX2Nsb2NrLAogCQkgICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2spCiB7 Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2Owor CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldjsKIAlz dHJ1Y3QgZHBsbCBjbG9jazsKIAlpbnQgZXJyID0gdGFyZ2V0OwogCkBAIC03MjQsNyArNzI0LDcg QEAgcG52X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAJ CSAgIGludCB0YXJnZXQsIGludCByZWZjbGssIHN0cnVjdCBkcGxsICptYXRjaF9jbG9jaywKIAkJ ICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2spCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldjsKIAlzdHJ1Y3QgZHBsbCBjbG9jazsKIAlpbnQgZXJy ID0gdGFyZ2V0OwogCkBAIC03ODAsNyArNzgwLDcgQEAgZzR4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0 IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAJCSAgIGludCB0YXJnZXQsIGludCByZWZjbGss IHN0cnVjdCBkcGxsICptYXRjaF9jbG9jaywKIAkJICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2sp CiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldjsK IAlzdHJ1Y3QgZHBsbCBjbG9jazsKIAlpbnQgbWF4X247CiAJYm9vbCBmb3VuZCA9IGZhbHNlOwpA QCAtODc0LDcgKzg3NCw3IEBAIHZsdl9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxf bGltaXQgKmxpbWl0LAogCQkgICBpbnQgdGFyZ2V0LCBpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAq bWF0Y2hfY2xvY2ssCiAJCSAgIHN0cnVjdCBkcGxsICpiZXN0X2Nsb2NrKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1 Y3QgZHBsbCBjbG9jazsKIAl1bnNpZ25lZCBpbnQgYmVzdHBwbSA9IDEwMDAwMDA7CkBAIC05MzQs NyArOTM0LDcgQEAgY2h2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAq bGltaXQsCiAJCSAgIGludCB0YXJnZXQsIGludCByZWZjbGssIHN0cnVjdCBkcGxsICptYXRjaF9j bG9jaywKIAkJICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2spCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXVuc2lnbmVkIGlu dCBiZXN0X2Vycm9yX3BwbTsKIAlzdHJ1Y3QgZHBsbCBjbG9jazsKQEAgLTEwNjcsNyArMTA2Nyw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3dhaXRfZm9yX3BpcGVfc2NhbmxpbmVfbW92aW5nKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQogc3RhdGljIHZvaWQKIGludGVsX3dhaXRfZm9yX3BpcGVfb2Zm KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g NCkgewpAQCAtMTUyNiw3ICsxNTI2LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9lbmFibGVfcGxsKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfcGxsKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtMTYxNyw3ICsx NjE3LDcgQEAgdm9pZCB2bHZfd2FpdF9wb3J0X3JlYWR5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFuc2NvZGVy KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190 IHJlZzsKQEAgLTE3NjEsNyArMTc2MSw3IEBAIGVudW0gcGlwZSBpbnRlbF9jcnRjX3BjaF90cmFu c2NvZGVyKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCiBzdGF0aWMgdTMyIGludGVsX2NydGNf bWF4X3ZibGFua19jb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCS8qCiAJICogT24g aTk2NWdtIHRoZSBoYXJkd2FyZSBmcmFtZSBjb3VudGVyIHJlYWRzCkBAIC0xNzgxLDcgKzE3ODEs NyBAQCBzdGF0aWMgdTMyIGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZQogCiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3Zi bGFua19vbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAogCWRybV9jcnRjX3NldF9tYXhfdmJsYW5rX2NvdW50KCZjcnRjLT5i YXNlLAogCQkJCSAgICAgIGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjcnRjX3N0YXRlKSk7 CkBAIC0xNzkwLDcgKzE3OTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3ZibGFua19vbihj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQg aW50ZWxfZW5hYmxlX3BpcGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRj X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2Nv ZGVyIGNwdV90cmFuc2NvZGVyID0gbmV3X2NydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTE4NDgsNyArMTg0OCw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2VuYWJsZV9waXBlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9waXBlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IG9sZF9jcnRj X3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBA IC0zMTAzLDE0ICszMTAzLDE0IEBAIGludGVsX3NldF9wbGFuZV92aXNpYmxlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUgPSB2 aXNpYmxlOwogCiAJaWYgKHZpc2libGUpCi0JCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzayB8 PSBkcm1fcGxhbmVfbWFzaygmcGxhbmUtPmJhc2UpOworCQljcnRjX3N0YXRlLT51YXBpLnBsYW5l X21hc2sgfD0gZHJtX3BsYW5lX21hc2soJnBsYW5lLT5iYXNlKTsKIAllbHNlCi0JCWNydGNfc3Rh dGUtPmJhc2UucGxhbmVfbWFzayAmPSB+ZHJtX3BsYW5lX21hc2soJnBsYW5lLT5iYXNlKTsKKwkJ Y3J0Y19zdGF0ZS0+dWFwaS5wbGFuZV9tYXNrICY9IH5kcm1fcGxhbmVfbWFzaygmcGxhbmUtPmJh c2UpOwogfQogCiBzdGF0aWMgdm9pZCBmaXh1cF9hY3RpdmVfcGxhbmVzKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5k ZXYpOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCiAJLyoKQEAgLTMxMjEsNyArMzEyMSw3 IEBAIHN0YXRpYyB2b2lkIGZpeHVwX2FjdGl2ZV9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiAJY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyA9IDA7CiAKIAlkcm1f Zm9yX2VhY2hfcGxhbmVfbWFzayhwbGFuZSwgJmRldl9wcml2LT5kcm0sCi0JCQkJY3J0Y19zdGF0 ZS0+YmFzZS5wbGFuZV9tYXNrKQorCQkJCWNydGNfc3RhdGUtPnVhcGkucGxhbmVfbWFzaykKIAkJ Y3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyB8PSBCSVQodG9faW50ZWxfcGxhbmUocGxhbmUpLT5p ZCk7CiB9CiAKQEAgLTM1OTIsNyArMzU5Miw3IEBAIGk5eHhfcGxhbmVfbWF4X3N0cmlkZShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCiBzdGF0aWMgdTMyIGk5eHhfcGxhbmVfY3RsX2NydGMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CiAJdTMyIGRzcGNudHIgPSAwOwogCkBAIC0zNzQ1LDcgKzM3NDUsNyBAQCBp OXh4X3BsYW5lX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQly ZXR1cm4gcmV0OwogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUo JnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAg JmNydGNfc3RhdGUtPnVhcGksCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywK IAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAogCQkJCQkJICBpOXh4X3BsYW5l X2hhc193aW5kb3dpbmcocGxhbmUpLApAQCAtMzkyMSw3ICszOTIxLDcgQEAgc3RhdGljIHZvaWQg c2tsX2RldGFjaF9zY2FsZXIoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIGludCBpZCkK ICAqLwogc3RhdGljIHZvaWQgc2tsX2RldGFjaF9zY2FsZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KIAkJ JmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKIAlpbnQgaTsKQEAgLTQxMTYsNyArNDExNiw3IEBA IHN0YXRpYyB1MzIgY25sX3BsYW5lX2N0bF9mbGlwKHVuc2lnbmVkIGludCByZWZsZWN0KQogCiB1 MzIgc2tsX3BsYW5lX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXUzMiBwbGFu ZV9jdGwgPSAwOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5J TEFLRShkZXZfcHJpdikpCkBAIC00MTcyLDcgKzQxNzIsNyBAQCB1MzIgc2tsX3BsYW5lX2N0bChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogdTMyIGdsa19wbGFu ZV9jb2xvcl9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgcGxhbmVfY29s b3JfY3RsID0gMDsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQpAQCAtNDc4OCw3 ICs0Nzg4LDcgQEAgc3RhdGljIHZvaWQgaXZiX21hbnVhbF9mZGlfbGlua190cmFpbihzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKIAogc3RhdGljIHZvaWQgaXJvbmxha2VfZmRpX3BsbF9lbmFibGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9j cnRjLT5waXBlOwogCWk5MTVfcmVnX3QgcmVnOwpAQCAtNDk0OSw3ICs0OTQ5LDcgQEAgdm9pZCBs cHRfZGlzYWJsZV9pY2xraXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogLyog UHJvZ3JhbSBpQ0xLSVAgY2xvY2sgdG8gdGhlIGRlc2lyZWQgZnJlcXVlbmN5ICovCiBzdGF0aWMg dm9pZCBscHRfcHJvZ3JhbV9pY2xraXAoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJaW50IGNsb2NrID0gY3J0Y19z dGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCXUzMiBkaXZzZWwsIHBoYXNlaW5j LCBhdXhkaXYsIHBoYXNlZGlyID0gMDsKQEAgLTUwNjUsNyArNTA2NSw3IEBAIGludCBscHRfZ2V0 X2ljbGtpcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBp cm9ubGFrZV9wY2hfdHJhbnNjb2Rlcl9zZXRfdGltaW5ncyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkJCWVudW0gcGlwZSBwY2hfdHJhbnNjb2RlcikKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIg PSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIApAQCAtNTEwOCw3ICs1MTA4LDcgQEAgc3Rh dGljIHZvaWQgY3B0X3NldF9mZGlfYmNfYmlmdXJjYXRpb24oc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBib29sIGUKIAogc3RhdGljIHZvaWQgaXZ5YnJpZGdlX3VwZGF0ZV9mZGlf YmNfYmlmdXJjYXRpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlzd2l0Y2ggKGNydGMtPnBpcGUpIHsKQEAg LTUxMzgsNyArNTEzOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqCiBpbnRlbF9n ZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u ZWN0b3Jfc3RhdGU7CiAJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CkBAIC01MTcwLDcgKzUxNzAsNyBA QCBpbnRlbF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSwKIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoY29uc3Qgc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC01 MjU0LDcgKzUyNTQsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wY2hfZW5hYmxlKGNvbnN0IHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZvaWQgbHB0X3BjaF9lbmFi bGUoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVf dHJhbnNjb2RlcjsKIApAQCAtNTM3MSw3ICs1MzcxLDcgQEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNoLAogCXN0 cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KIAkJJmNydGNfc3Rh dGUtPnNjYWxlcl9zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9Ci0JCXRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwkJdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0KIAkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7 CkBAIC01NTY4LDcgKzU1NjgsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3NjYWxlcl9kaXNhYmxl KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCiBzdGF0aWMgdm9pZCBza3lsYWtlX3BmaXRfZW5h YmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSA9CkBAIC01NjA1LDcg KzU2MDUsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0 X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKQEAg LTU2MjYsNyArNTYyNiw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BmaXRfZW5hYmxlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiB2b2lkIGhzd19lbmFibGVf aXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAKQEAgLTU2 NjIsNyArNTY2Miw3IEBAIHZvaWQgaHN3X2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaHN3X2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAKQEAgLTU3NjcsNyArNTc2Nyw3IEBA IGludGVsX3ByZV9kaXNhYmxlX3ByaW1hcnlfbm9hdG9taWMoc3RydWN0IGRybV9jcnRjICpjcnRj KQogc3RhdGljIGJvb2wgaHN3X3ByZV91cGRhdGVfZGlzYWJsZV9pcHMoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJCSAgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKIAogCWlmICghb2xkX2NydGNfc3RhdGUtPmlwc19lbmFibGVkKQpAQCAtNTc4 Myw3ICs1NzgzLDcgQEAgc3RhdGljIGJvb2wgaHN3X3ByZV91cGRhdGVfZGlzYWJsZV9pcHMoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3MKIAkgKiBEaXNhYmxlIElQUyBi ZWZvcmUgd2UgcHJvZ3JhbSB0aGUgTFVULgogCSAqLwogCWlmIChJU19IQVNXRUxMKGRldl9wcml2 KSAmJgotCSAgICAobmV3X2NydGNfc3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFuZ2VkIHx8CisJ ICAgIChuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKIAkgICAgIG5l d19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkgJiYKIAkgICAgbmV3X2NydGNfc3RhdGUtPmdhbW1h X21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFX1NQTElUKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTU3OTQs NyArNTc5NCw3IEBAIHN0YXRpYyBib29sIGhzd19wcmVfdXBkYXRlX2Rpc2FibGVfaXBzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zCiBzdGF0aWMgYm9vbCBoc3dfcG9z dF91cGRhdGVfZW5hYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsCiAJCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo bmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYgKCFu ZXdfY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQpCkBAIC01ODEwLDcgKzU4MTAsNyBAQCBzdGF0aWMg Ym9vbCBoc3dfcG9zdF91cGRhdGVfZW5hYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqb2xkX2NydGNfcwogCSAqIFJlLWVuYWJsZSBJUFMgYWZ0ZXIgdGhlIExVVCBoYXMgYmVl biBwcm9ncmFtbWVkLgogCSAqLwogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJgotCSAgICAo bmV3X2NydGNfc3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFuZ2VkIHx8CisJICAgIChuZXdfY3J0 Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKIAkgICAgIG5ld19jcnRjX3N0YXRl LT51cGRhdGVfcGlwZSkgJiYKIAkgICAgbmV3X2NydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FN TUFfTU9ERV9NT0RFX1NQTElUKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTU4NTEsMTAgKzU4NTEsMTAg QEAgc3RhdGljIGJvb2wgbmVlZHNfc2NhbGVyY2xrX3dhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsK IAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQogCQlpbnRlbF9hdG9taWNf Z2V0X25ld19jcnRjX3N0YXRlKHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSksCiAJCQkJCQlj cnRjKTsKQEAgLTU4OTQsMTAgKzU4OTQsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFu ZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogc3RhdGlj IHZvaWQgaW50ZWxfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUsCiAJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvbGRfY3J0Y19z dGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvbGRf Y3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0 Yy0+YmFzZS5wcmltYXJ5OwogCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9wcmltYXJ5X3N0 YXRlID0KIAkJZHJtX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKHN0YXRlLCBwcmltYXJ5KTsK QEAgLTYyNDksNyArNjI0OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3VwZGF0ZV9w aXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxl X3ByaW1hcnlfcGxhbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2lu dGVsX3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSk7CiAKIAlwbGFuZS0+ZGlzYWJsZV9wbGFuZShw bGFuZSwgY3J0Y19zdGF0ZSk7CkBAIC02MjU4LDcgKzYyNTgsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdAogc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRj OworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT51YXBpLmNydGM7CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwpAQCAtNjM5Miw3ICs2MzkyLDcgQEAgc3RhdGljIHZv aWQgaWNsX3BpcGVfbWJ1c19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiBzdGF0aWMg dm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKIAkJCQlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IHBpcGVfY29uZmlnLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGludGVs X2NydGMtPnBpcGUsIGhzd193b3JrYXJvdW5kX3BpcGU7CkBAIC02NTAwLDcgKzY1MDAsNyBAQCBz dGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZywKIAogc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtNjUx Niw3ICs2NTE2LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGlyb25s YWtlX2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUs CiAJCQkJICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0 YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGMpOwpAQCAtNjU3NSw3ICs2NTc1LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0 Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIHN0YXRp YyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSwKIAkJCQkgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0J c3RydWN0IGRybV9jcnRjICpjcnRjID0gb2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1 Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJZW51bSB0cmFu c2NvZGVyIGNwdV90cmFuc2NvZGVyID0gb2xkX2NydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwpA QCAtNjYwOSw3ICs2NjA5LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCiBzdGF0aWMgdm9pZCBpOXh4 X3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYgKCFjcnRjX3N0YXRlLT5nbWNoX3BmaXQu Y29udHJvbCkKQEAgLTY3NDUsNyArNjc0NSw3IEBAIGludGVsX2F1eF9wb3dlcl9kb21haW4oc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiAKIHN0YXRpYyB1NjQgZ2V0X2NydGNf cG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtNjc2Miw3ICs2NzYyLDcgQEAgc3RhdGljIHU2 NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogCQltYXNrIHw9IEJJVF9VTEwoUE9XRVJfRE9NQUlOX1BJUEVfUEFORUxfRklUVEVSKHBp cGUpKTsKIAogCWRybV9mb3JfZWFjaF9lbmNvZGVyX21hc2soZW5jb2RlciwgJmRldl9wcml2LT5k cm0sCi0JCQkJICBjcnRjX3N0YXRlLT5iYXNlLmVuY29kZXJfbWFzaykgeworCQkJCSAgY3J0Y19z dGF0ZS0+dWFwaS5lbmNvZGVyX21hc2spIHsKIAkJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVs X2VuY29kZXIgPSB0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpOwogCiAJCW1hc2sgfD0gQklUX1VM TChpbnRlbF9lbmNvZGVyLT5wb3dlcl9kb21haW4pOwpAQCAtNjc4MCw3ICs2NzgwLDcgQEAgc3Rh dGljIHU2NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogc3RhdGljIHU2NAogbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluOwogCXU2NCBkb21h aW5zLCBuZXdfZG9tYWlucywgb2xkX2RvbWFpbnM7CkBAIC02ODA5LDcgKzY4MDksNyBAQCBzdGF0 aWMgdm9pZCBtb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5i YXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGkuY3J0 YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC02ODY1LDcgKzY4NjUsNyBAQCBz dGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZywKIAogc3RhdGljIHZvaWQgaTl4eF9zZXRfcGxsX2RpdmlkZXJzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCiAJSTkxNV9XUklURShGUDAoY3J0Yy0+cGlwZSksIGNydGNfc3RhdGUtPmRwbGxf aHdfc3RhdGUuZnAwKTsKQEAgLTY4NzUsNyArNjg3NSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfc2V0 X3BsbF9kaXZpZGVycyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBp cGVfY29uZmlnLAogCQkJICAgICBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsK LQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFzZS5jcnRjOworCXN0cnVj dCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwpAQCAtNjkyNSw3ICs2OTI1LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9j cnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAKIHN0YXRp YyB2b2lkIGk5eHhfcGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYg KCFvbGRfY3J0Y19zdGF0ZS0+Z21jaF9wZml0LmNvbnRyb2wpCkBAIC02OTQxLDcgKzY5NDEsNyBA QCBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZGlzYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqb2xkX2NydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkgICAgICBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRj X3N0YXRlLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwpAQCAtNzE0 MCw3ICs3MTQwLDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9 IHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSA9IHBpcGVfY29uZmlnLT51YXBpLnN0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICpvdGhlcl9j cnRjOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvdGhlcl9jcnRjX3N0YXRlOwogCkBAIC03 MjU5LDcgKzcyNTksNyBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2ZkaV9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAogYm9vbCBoc3dfY3J0Y19zdGF0ZV9pcHNf Y2FwYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCS8qIElQUyBvbmx5IGV4aXN0cyBvbiBVTFQgbWFjaGlu ZXMgYW5kIGlzIHRpZWQgdG8gcGlwZSBBLiAqLwpAQCAtNzI4OSw5ICs3Mjg5LDkgQEAgYm9vbCBo c3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHN0YXRpYyBib29sIGhzd19jb21wdXRlX2lwc19jb25maWcoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0KLQkJdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJCXRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKmludGVsX3N0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUt PmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5z dGF0ZSk7CiAKIAlpZiAoIWhzd19jcnRjX3N0YXRlX2lwc19jYXBhYmxlKGNydGNfc3RhdGUpKQog CQlyZXR1cm4gZmFsc2U7CkBAIC03MzYzLDcgKzczNjMsNyBAQCBzdGF0aWMgdTMyIGlsa19waXBl X3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQog CiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2NvbXB1dGVfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2KTsKIAogCWlmIChIQVNfR01DSChkZXZfcHJpdikpCiAJCS8qIEZJWE1FIGNhbGN1bGF0ZSBw cm9wZXIgcGlwZSBwaXhlbCByYXRlIGZvciBHTUNIIHBmaXQgKi8KQEAgLTc1OTgsNyArNzU5OCw3 IEBAIHN0YXRpYyB2b2lkIHZsdl9wbGxiX3JlY2FsX29wYW1wKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlCiBzdGF0aWMgdm9pZCBpbnRlbF9wY2hfdHJhbnNjb2Rl cl9zZXRfbV9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJ CQkgY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptX24pCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC03NjI1LDcgKzc2MjUs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcHVfdHJhbnNjb2Rlcl9zZXRfbV9uKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YQogCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2xp bmtfbV9uICptX24sCiAJCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfbGlua19tX24gKm0yX24yKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK IAllbnVtIHRyYW5zY29kZXIgdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVy OwpAQCAtNzkzOCw3ICs3OTM4LDcgQEAgaW50IHZsdl9mb3JjZV9wbGxfb24oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKIAlpZiAoIXBpcGVfY29uZmln KQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmNydGMgPSAmY3J0Yy0+ YmFzZTsKKwlwaXBlX2NvbmZpZy0+dWFwaS5jcnRjID0gJmNydGMtPmJhc2U7CiAJcGlwZV9jb25m aWctPnBpeGVsX211bHRpcGxpZXIgPSAxOwogCXBpcGVfY29uZmlnLT5kcGxsID0gKmRwbGw7CiAK QEAgLTgwOTgsNyArODA5OCw3IEBAIHN0YXRpYyB2b2lkIGk4eHhfY29tcHV0ZV9kcGxsKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpbnRlbF9zZXRfcGlwZV90aW1pbmdz KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAllbnVtIHRyYW5z Y29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKQEAgLTgx NjAsNyArODE2MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3RpbWluZ3MoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGludGVs X3NldF9waXBlX3NyY19zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKIApAQCAtODE3NCw3ICs4MTc0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0X3BpcGVf c3JjX3NpemUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0 YXRpYyBib29sIGludGVsX3BpcGVfaXNfaW50ZXJsYWNlZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2 KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJh bnNjb2RlcjsKIAogCWlmIChJU19HRU4oZGV2X3ByaXYsIDIpKQpAQCAtODI3Miw3ICs4MjcyLDcg QEAgdm9pZCBpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwog CXUzMiBwaXBlY29uZjsKIApAQCAtODcxOCw3ICs4NzE4LDcgQEAgYmR3X2dldF9waXBlbWlzY19v dXRwdXRfZm9ybWF0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCiBzdGF0aWMgdm9pZCBpOXh4 X2dldF9waXBlX2NvbG9yX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9f aW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIGk5eHhfcGxhbmVf aWQgaTl4eF9wbGFuZSA9IHBsYW5lLT5pOXh4X3BsYW5lOwpAQCAtOTM1Niw3ICs5MzU2LDcgQEAg dm9pZCBpbnRlbF9pbml0X3BjaF9yZWZjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB2YWw7CkBAIC05NDEwLDcgKzk0MTAs NyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVj b25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNf c3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCXUzMiB2YWwgPSAwOwpAQCAtOTQzMyw3ICs5NDMzLDcg QEAgc3RhdGljIHZvaWQgaGFzd2VsbF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGJkd19zZXRfcGlwZW1pc2MoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CiAJdTMyIHZhbCA9IDA7CiAKQEAgLTk2MTksNyArOTYxOSw3IEBAIHN0YXRpYyBp bnQgaXJvbmxha2VfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxf YXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNf c3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CiAJY29uc3Qgc3RydWN0IGludGVsX2xpbWl0 ICpsaW1pdDsKIAlpbnQgcmVmY2xrID0gMTIwMDAwOwogCkBAIC0xMDA0NCw3ICsxMDA0NCw3IEBA IHN0YXRpYyBpbnQgaGFzd2VsbF9jcnRjX2NvbXB1dGVfY2xvY2soc3RydWN0IGludGVsX2NydGMg KmNydGMsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQotCQl0 b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CisJCXRvX2ludGVs X2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAogCWlmICghaW50ZWxfY3J0 Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRFNJKSB8fAogCSAgICBJTlRFTF9H RU4oZGV2X3ByaXYpID49IDExKSB7CkBAIC0xMDYxNSw3ICsxMDYxNSw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfY2hlY2tfY3Vyc29yKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CX0KIAogCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9z dGF0ZS0+YmFzZSwKLQkJCQkJCSAgJmNydGNfc3RhdGUtPmJhc2UsCisJCQkJCQkgICZjcnRjX3N0 YXRlLT51YXBpLAogCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJCQkJCQkg IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJCQkJCSAgdHJ1ZSwgdHJ1ZSk7CkBAIC0x MDgwMiw3ICsxMDgwMiw3IEBAIGk5eHhfY3Vyc29yX21heF9zdHJpZGUoc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSwKIAogc3RhdGljIHUzMiBpOXh4X2N1cnNvcl9jdGxfY3J0Yyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAl1MzIgY250bCA9IDA7CiAKQEAgLTExMjE5LDcgKzExMjE5LDcgQEAgaW50IGludGVsX2dl dF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJaWYg KCFtb2RlKQogCQltb2RlID0gJmxvYWRfZGV0ZWN0X21vZGU7CiAKLQlyZXQgPSBkcm1fYXRvbWlj X3NldF9tb2RlX2Zvcl9jcnRjKCZjcnRjX3N0YXRlLT5iYXNlLCBtb2RlKTsKKwlyZXQgPSBkcm1f YXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKCZjcnRjX3N0YXRlLT51YXBpLCBtb2RlKTsKIAlpZiAo cmV0KQogCQlnb3RvIGZhaWw7CiAKQEAgLTExNDU3LDcgKzExNDU3LDcgQEAgaW50ZWxfZW5jb2Rl cl9jdXJyZW50X21vZGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJCXJldHVybiBO VUxMOwogCX0KIAotCWNydGNfc3RhdGUtPmJhc2UuY3J0YyA9ICZjcnRjLT5iYXNlOworCWNydGNf c3RhdGUtPnVhcGkuY3J0YyA9ICZjcnRjLT5iYXNlOwogCiAJaWYgKCFkZXZfcHJpdi0+ZGlzcGxh eS5nZXRfcGlwZV9jb25maWcoY3J0YywgY3J0Y19zdGF0ZSkpIHsKIAkJa2ZyZWUoY3J0Y19zdGF0 ZSk7CkBAIC0xMTUyOCw3ICsxMTUyOCw3IEBAIGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19j aGFuZ2VzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0CiAJCQkJ ICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLAogCQkJ CSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFu ZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJYm9vbCBtb2RlX2NoYW5nZWQgPSBuZWVkc19t b2Rlc2V0KGNydGNfc3RhdGUpOwpAQCAtMTE3MDAsOSArMTE3MDAsOSBAQCBzdGF0aWMgaW50IGlj bF9hZGRfbGlua2VkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAog c3RhdGljIGludCBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+YmFz ZS5zdGF0ZSk7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9h dG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CiAJc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwgKmxpbmtlZDsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl OwogCWludCBpOwpAQCAtMTE3NzIsOSArMTE3NzIsOSBAQCBzdGF0aWMgaW50IGljbF9jaGVja19u djEyX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGlj IGJvb2wgYzhfcGxhbmVzX2NoYW5nZWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5l d19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNf c3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3Rh dGUtPnVhcGkuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSA9CiAJCWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoc3RhdGUsIGNydGMp OwogCkBAIC0xMTgwNywxMCArMTE4MDcsMTAgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21p Y19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkgKiB3aGVuIEM4IHBs YW5lcyBhcmUgZ2V0dGluZyBlbmFibGVkL2Rpc2FibGVkLgogCSAqLwogCWlmIChjOF9wbGFuZXNf Y2hhbmdlZChjcnRjX3N0YXRlKSkKLQkJY3J0Y19zdGF0ZS0+YmFzZS5jb2xvcl9tZ210X2NoYW5n ZWQgPSB0cnVlOworCQljcnRjX3N0YXRlLT51YXBpLmNvbG9yX21nbXRfY2hhbmdlZCA9IHRydWU7 CiAKIAlpZiAobW9kZV9jaGFuZ2VkIHx8IGNydGNfc3RhdGUtPnVwZGF0ZV9waXBlIHx8Ci0JICAg IGNydGNfc3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFuZ2VkKSB7CisJICAgIGNydGNfc3RhdGUt PnVhcGkuY29sb3JfbWdtdF9jaGFuZ2VkKSB7CiAJCXJldCA9IGludGVsX2NvbG9yX2NoZWNrKGNy dGNfc3RhdGUpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKQEAgLTExOTI4LDcgKzExOTI4 LDcgQEAgY29tcHV0ZV9iYXNlbGluZV9waXBlX2JwcChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK IAkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCXN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT5iYXNlLnN0YXRlOwor CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT51YXBpLnN0YXRl OwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CiAJc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0ZTsKIAlpbnQgYnBwLCBpOwpAQCAtMTIwODEsNyArMTIw ODEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKIAkJCQkgICBjb25zdCBjaGFyICpjb250ZXh0KQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwpAQCAtMTIyNTgsNyArMTIyNTgsNyBA QCBzdGF0aWMgaW50CiBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCQl0b19pOTE1KGNydGNf c3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqc2F2ZWRf c3RhdGU7CiAKIAlzYXZlZF9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzYXZlZF9zdGF0ZSksIEdG UF9LRVJORUwpOwpAQCAtMTIyODQsOCArMTIyODQsOCBAQCBjbGVhcl9pbnRlbF9jcnRjX3N0YXRl KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCUJVSUxEX0JVR19PTihvZmZz ZXRvZihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgYmFzZSkpOwogCUJVSUxEX0JVR19PTihvZmZz ZXRvZihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgdWFwaSkpOwogCUJVSUxEX0JVR19PTihvZmZz ZXRvZihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgaHcpKTsKLQltZW1jcHkoJmNydGNfc3RhdGUt PmJhc2UgKyAxLCAmc2F2ZWRfc3RhdGUtPmJhc2UgKyAxLAotCSAgICAgICBzaXplb2YoKmNydGNf c3RhdGUpIC0gc2l6ZW9mKGNydGNfc3RhdGUtPmJhc2UpKTsKKwltZW1jcHkoJmNydGNfc3RhdGUt PnVhcGkgKyAxLCAmc2F2ZWRfc3RhdGUtPnVhcGkgKyAxLAorCSAgICAgICBzaXplb2YoKmNydGNf c3RhdGUpIC0gc2l6ZW9mKGNydGNfc3RhdGUtPnVhcGkpKTsKIAogCWtmcmVlKHNhdmVkX3N0YXRl KTsKIAlyZXR1cm4gMDsKQEAgLTEyMjk0LDggKzEyMjk0LDggQEAgY2xlYXJfaW50ZWxfY3J0Y19z dGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyBpbnQKIGlu dGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7 Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPmJhc2Uuc3Rh dGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGkuY3J0YzsKKwlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+dWFwaS5zdGF0ZTsK IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7 CkBAIC0xMjU2MCw3ICsxMjU2MCw3IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgIGJvb2wgZmFzdHNldCkKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGN1cnJlbnRfY29u ZmlnLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjdXJyZW50X2NvbmZpZy0+dWFwaS5jcnRjLT5kZXYpOwogCWJvb2wgcmV0ID0g dHJ1ZTsKIAl1MzIgYnBfZ2FtbWEgPSAwOwogCWJvb2wgZml4dXBfaW5oZXJpdGVkID0gZmFzdHNl dCAmJgpAQCAtMTMxMDgsMTIgKzEzMTA4LDEyIEBAIHZlcmlmeV9jcnRjX3N0YXRlKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKIAlib29s IGFjdGl2ZTsKIAotCXN0YXRlID0gb2xkX2NydGNfc3RhdGUtPmJhc2Uuc3RhdGU7Ci0JX19kcm1f YXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJm9sZF9jcnRjX3N0YXRlLT5iYXNlKTsK KwlzdGF0ZSA9IG9sZF9jcnRjX3N0YXRlLT51YXBpLnN0YXRlOworCV9fZHJtX2F0b21pY19oZWxw ZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZvbGRfY3J0Y19zdGF0ZS0+dWFwaSk7CiAJcGlwZV9jb25m aWcgPSBvbGRfY3J0Y19zdGF0ZTsKIAltZW1zZXQocGlwZV9jb25maWcsIDAsIHNpemVvZigqcGlw ZV9jb25maWcpKTsKLQlwaXBlX2NvbmZpZy0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7Ci0JcGlw ZV9jb25maWctPmJhc2Uuc3RhdGUgPSBzdGF0ZTsKKwlwaXBlX2NvbmZpZy0+dWFwaS5jcnRjID0g JmNydGMtPmJhc2U7CisJcGlwZV9jb25maWctPnVhcGkuc3RhdGUgPSBzdGF0ZTsKIAogCURSTV9E RUJVR19LTVMoIltDUlRDOiVkOiVzXVxuIiwgY3J0Yy0+YmFzZS5iYXNlLmlkLCBjcnRjLT5iYXNl Lm5hbWUpOwogCkBAIC0xMzI5Myw3ICsxMzI5Myw3IEBAIGludGVsX21vZGVzZXRfdmVyaWZ5X2Rp c2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIHN0YXRpYyB2b2lkCiBp bnRlbF9jcnRjX3VwZGF0ZV9hY3RpdmVfdGltaW5ncyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9CiAJCSZjcnRjX3N0YXRlLT5ody5h ZGp1c3RlZF9tb2RlOwpAQCAtMTM0OTAsNyArMTM0OTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9j cnRjX2NoZWNrX2Zhc3RzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRj X3N0YQogCWlmICghaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShvbGRfY3J0Y19zdGF0ZSwgbmV3 X2NydGNfc3RhdGUsIHRydWUpKQogCQlyZXR1cm47CiAKLQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5t b2RlX2NoYW5nZWQgPSBmYWxzZTsKKwluZXdfY3J0Y19zdGF0ZS0+dWFwaS5tb2RlX2NoYW5nZWQg PSBmYWxzZTsKIAluZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgPSB0cnVlOwogCiAJLyoKQEAg LTEzNTYzLDcgKzEzNTYzLDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJICAgIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJCWlmIChu ZXdfY3J0Y19zdGF0ZS0+aHcubW9kZS5wcml2YXRlX2ZsYWdzICE9CiAJCSAgICBvbGRfY3J0Y19z dGF0ZS0+aHcubW9kZS5wcml2YXRlX2ZsYWdzKQotCQkJbmV3X2NydGNfc3RhdGUtPmJhc2UubW9k ZV9jaGFuZ2VkID0gdHJ1ZTsKKwkJCW5ld19jcnRjX3N0YXRlLT51YXBpLm1vZGVfY2hhbmdlZCA9 IHRydWU7CiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldChkZXYs ICZzdGF0ZS0+YmFzZSk7CkBAIC0xMzY4Nyw3ICsxMzY4Nyw3IEBAIHZvaWQgaW50ZWxfY3J0Y19h cm1fZmlmb191bmRlcnJ1bihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIHN0YXRpYyB2b2lkIGlu dGVsX3BpcGVfZmFzdHNldChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNf c3RhdGUsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRj X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAkvKiBkcm1fYXRv bWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUgbWlnaHQgbm90IGJlIGNhbGxl ZC4gKi8KQEAgLTEzNzMyLDcgKzEzNzMyLDcgQEAgc3RhdGljIHZvaWQgY29tbWl0X3BpcGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCSAqIENSVEMgd2FzIGVuYWJs ZWQuCiAJICovCiAJaWYgKCFtb2Rlc2V0KSB7Ci0JCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5j b2xvcl9tZ210X2NoYW5nZWQgfHwKKwkJaWYgKG5ld19jcnRjX3N0YXRlLT51YXBpLmNvbG9yX21n bXRfY2hhbmdlZCB8fAogCQkgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKQogCQkJaW50 ZWxfY29sb3JfY29tbWl0KG5ld19jcnRjX3N0YXRlKTsKIApAQCAtMTM5MzgsNyArMTM5MzgsNyBA QCBzdGF0aWMgdm9pZCBza2xfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKIAkJCSAqLwogCQkJaWYgKCFza2xfZGRiX2VudHJ5X2VxdWFsKCZu ZXdfY3J0Y19zdGF0ZS0+d20uc2tsLmRkYiwKIAkJCQkJCSAmb2xkX2NydGNfc3RhdGUtPndtLnNr bC5kZGIpICYmCi0JCQkgICAgIW5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZV9jaGFuZ2VkICYm CisJCQkgICAgIW5ld19jcnRjX3N0YXRlLT51YXBpLmFjdGl2ZV9jaGFuZ2VkICYmCiAJCQkgICAg c3RhdGUtPndtX3Jlc3VsdHMuZGlydHlfcGlwZXMgIT0gdXBkYXRlZCkKIAkJCQl2Ymxfd2FpdCA9 IHRydWU7CiAKQEAgLTE0MDcxLDEyICsxNDA3MSwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9t aWNfY29tbWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCWJvb2wg bW9kZXNldCA9IG5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpOwogCiAJCS8qIENvbXBsZXRl IGV2ZW50cyBmb3Igbm93IGRpc2FibGUgcGlwZXMgaGVyZS4gKi8KLQkJaWYgKG1vZGVzZXQgJiYg IW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYgbmV3X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQp IHsKKwkJaWYgKG1vZGVzZXQgJiYgIW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYgbmV3X2Ny dGNfc3RhdGUtPnVhcGkuZXZlbnQpIHsKIAkJCXNwaW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9j ayk7Ci0JCQlkcm1fY3J0Y19zZW5kX3ZibGFua19ldmVudCgmY3J0Yy0+YmFzZSwgbmV3X2NydGNf c3RhdGUtPmJhc2UuZXZlbnQpOworCQkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoJmNydGMt PmJhc2UsCisJCQkJCQkgICBuZXdfY3J0Y19zdGF0ZS0+dWFwaS5ldmVudCk7CiAJCQlzcGluX3Vu bG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAKLQkJCW5ld19jcnRjX3N0YXRlLT5iYXNlLmV2 ZW50ID0gTlVMTDsKKwkJCW5ld19jcnRjX3N0YXRlLT51YXBpLmV2ZW50ID0gTlVMTDsKIAkJfQog CX0KIApAQCAtMTQxMDksNyArMTQxMTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29t bWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJZm9yX2VhY2hfbmV3 X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG5ld19jcnRjX3N0YXRlLCBpKSB7CiAJ CWlmIChuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICYmCiAJCSAgICAhbmVlZHNfbW9kZXNldChu ZXdfY3J0Y19zdGF0ZSkgJiYKLQkJICAgIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jb2xvcl9tZ210 X2NoYW5nZWQgfHwKKwkJICAgIChuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5n ZWQgfHwKIAkJICAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpKQogCQkJaW50ZWxfY29s b3JfbG9hZF9sdXRzKG5ld19jcnRjX3N0YXRlKTsKIAl9CkBAIC0xNDU1Nyw3ICsxNDU1OCw3IEBA IGludAogc2tsX21heF9zY2FsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7CiAJaW50IG1heF9zY2FsZTsKIAlpbnQgY3J0Y19jbG9jaywg bWF4X2RvdGNsaywgdG1wY2xrMSwgdG1wY2xrMjsKQEAgLTE0NTY2LDcgKzE0NTY3LDcgQEAgc2ts X21heF9zY2FsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJ cmV0dXJuIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORzsKIAogCWNydGNfY2xvY2sgPSBjcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7Ci0JbWF4X2RvdGNsayA9IHRvX2lu dGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKS0+Y2RjbGsubG9naWNhbC5j ZGNsazsKKwltYXhfZG90Y2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVh cGkuc3RhdGUpLT5jZGNsay5sb2dpY2FsLmNkY2xrOwogCiAJaWYgKElTX0dFTUlOSUxBS0UoZGV2 X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTApCiAJCW1heF9kb3RjbGsgKj0gMjsK QEAgLTE0Nzg2LDcgKzE0Nzg3LDcgQEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0 IGRybV9wbGFuZSAqX3BsYW5lLAogCiBvdXRfZnJlZToKIAlpZiAobmV3X2NydGNfc3RhdGUpCi0J CWludGVsX2NydGNfZGVzdHJveV9zdGF0ZSgmY3J0Yy0+YmFzZSwgJm5ld19jcnRjX3N0YXRlLT5i YXNlKTsKKwkJaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjLT5iYXNlLCAmbmV3X2NydGNf c3RhdGUtPnVhcGkpOwogCWlmIChyZXQpCiAJCWludGVsX3BsYW5lX2Rlc3Ryb3lfc3RhdGUoJnBs YW5lLT5iYXNlLCAmbmV3X3BsYW5lX3N0YXRlLT5iYXNlKTsKIAllbHNlCkBAIC0xNTExMiw3ICsx NTExMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiAJCXJldCA9IC1FTk9NRU07CiAJCWdvdG8g ZmFpbDsKIAl9Ci0JX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KCZpbnRlbF9jcnRjLT5i YXNlLCAmY3J0Y19zdGF0ZS0+YmFzZSk7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0 KCZpbnRlbF9jcnRjLT5iYXNlLCAmY3J0Y19zdGF0ZS0+dWFwaSk7CiAJaW50ZWxfY3J0Yy0+Y29u ZmlnID0gY3J0Y19zdGF0ZTsKIAogCXByaW1hcnkgPSBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0 ZShkZXZfcHJpdiwgcGlwZSk7CkBAIC0xNjEyOCw3ICsxNjEyOSw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfaW5pdGlhbF9jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAqIGhhdmluZyBh IHByb3BlciBMVVQgbG9hZGVkLiBSZW1vdmUgb25jZSB3ZQogCQkJICogaGF2ZSByZWFkb3V0IGZv ciBwaXBlIGdhbW1hIGVuYWJsZS4KIAkJCSAqLwotCQkJY3J0Y19zdGF0ZS0+YmFzZS5jb2xvcl9t Z210X2NoYW5nZWQgPSB0cnVlOworCQkJY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5n ZWQgPSB0cnVlOwogCQl9CiAJfQogCkBAIC0xNjUyNiw3ICsxNjUyNyw3IEBAIHN0YXRpYyB2b2lk IGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyBi b29sIGhhc19ib2d1c19kcGxsX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCS8q CiAJICogU29tZSBTTkIgQklPU2VuIChlZy4gQVNVUyBLNTNTVikgYXJlIGtub3duIHRvIG1pc3By b2dyYW0KQEAgLTE2NjYwLDkgKzE2NjYxLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9y ZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlID0KIAkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFz ZS5zdGF0ZSk7CiAKLQkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJmNy dGNfc3RhdGUtPmJhc2UpOworCQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0 ZSgmY3J0Y19zdGF0ZS0+dWFwaSk7CiAJCW1lbXNldChjcnRjX3N0YXRlLCAwLCBzaXplb2YoKmNy dGNfc3RhdGUpKTsKLQkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KCZjcnRjLT5iYXNl LCAmY3J0Y19zdGF0ZS0+YmFzZSk7CisJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgm Y3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPnVhcGkpOwogCiAJCWNydGNfc3RhdGUtPmh3LmFjdGl2 ZSA9IGNydGNfc3RhdGUtPmh3LmVuYWJsZSA9CiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlw ZV9jb25maWcoY3J0YywgY3J0Y19zdGF0ZSk7CkBAIC0xNjc0OCw5ICsxNjc0OSw5IEBAIHN0YXRp YyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCQkJCSAqIGJlY2F1c2UgYW55dGhpbmcgY2FsbGluZyAuY3J0Y19kaXNhYmxlIG1heQog CQkJCSAqIHJlbHkgb24gdGhlIGNvbm5lY3Rvcl9tYXNrIGJlaW5nIGFjY3VyYXRlLgogCQkJCSAq LwotCQkJCWNydGNfc3RhdGUtPmJhc2UuY29ubmVjdG9yX21hc2sgfD0KKwkJCQljcnRjX3N0YXRl LT51YXBpLmNvbm5lY3Rvcl9tYXNrIHw9CiAJCQkJCWRybV9jb25uZWN0b3JfbWFzaygmY29ubmVj dG9yLT5iYXNlKTsKLQkJCQljcnRjX3N0YXRlLT5iYXNlLmVuY29kZXJfbWFzayB8PQorCQkJCWNy dGNfc3RhdGUtPnVhcGkuZW5jb2Rlcl9tYXNrIHw9CiAJCQkJCWRybV9lbmNvZGVyX21hc2soJmVu Y29kZXItPmJhc2UpOwogCQkJfQogCQl9IGVsc2UgewpAQCAtMTY3NzgsNyArMTY3NzksNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkJCWNydGMtPmJhc2UubW9kZS52ZGlzcGxheSA9IGNydGNfc3RhdGUtPnBpcGVf c3JjX2g7CiAJCQlpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoJmNydGNfc3RhdGUtPmh3LmFk anVzdGVkX21vZGUsCiAJCQkJCQkgICAgY3J0Y19zdGF0ZSk7Ci0JCQlXQVJOX09OKGRybV9hdG9t aWNfc2V0X21vZGVfZm9yX2NydGMoJmNydGNfc3RhdGUtPmJhc2UsICZjcnRjLT5iYXNlLm1vZGUp KTsKKwkJCVdBUk5fT04oZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+ dWFwaSwgJmNydGMtPmJhc2UubW9kZSkpOwogCiAJCQkvKgogCQkJICogVGhlIGluaXRpYWwgbW9k ZSBuZWVkcyB0byBiZSBzZXQgaW4gb3JkZXIgdG8ga2VlcApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcC5jCmluZGV4IDIxM2IwYzBjZGQ2Ny4uN2Q2OTFmNmZjMzY5IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCkBAIC0yMjIyLDcgKzIyMjIsNyBAQCBp bnRlbF9kcF95Y2JjcjQyMF9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5m bzsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9CiAJCSZj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWludCByZXQ7 CiAKIAlpZiAoIWRybV9tb2RlX2lzXzQyMF9vbmx5KGluZm8sIGFkanVzdGVkX21vZGUpIHx8CkBA IC0yMjg3LDcgKzIyODcsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2lu dGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSBl bmNfdG9faW50ZWxfbHNwY29uKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBvcnQgcG9ydCA9IGVu Y29kZXItPnBvcnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVj dG9yOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9z dGF0ZSA9CiAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwpA QCAtMjQwMiw3ICsyNDAyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBvcnQgcG9ydCA9 IGVuY29kZXItPnBvcnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZTsKIAogCWludGVsX2RwX3NldF9saW5rX3BhcmFtcyhpbnRlbF9kcCwgcGlwZV9jb25maWctPnBv cnRfY2xvY2ssCkBAIC0zMDAwLDcgKzMwMDAsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfZWRwX3Bs bChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgc3RhdGUpCiBzdGF0aWMg dm9pZCBpcm9ubGFrZV9lZHBfcGxsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJ Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAKIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgY3J0Yy0+ cGlwZSk7CkBAIC0zMDQwLDcgKzMwNDAsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxs X29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBf cGxsX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCSBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKIAogCWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9wcml2LCBjcnRjLT5waXBlKTsK QEAgLTMyMDAsNyArMzIwMCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJdTMyIHRtcCwgZmxhZ3MgPSAwOwog CWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCiAJ aWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKIAkJcGlwZV9jb25maWctPm91 dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0VEUCk7CkBAIC0zNDY3LDcgKzM0NjcsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcCgmZW5jb2Rlci0+YmFzZSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAl1MzIgZHBfcmVnID0g STkxNV9SRUFEKGludGVsX2RwLT5vdXRwdXRfcmVnKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CiAJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7CkBAIC0zNjAwLDcgKzM2MDAsNyBAQCBz dGF0aWMgdm9pZCB2bHZfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXIoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAls b2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKIApAQCAtNDEyMiw3ICs0 MTIyLDcgQEAgaW50ZWxfZHBfbGlua19kb3duKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoJmVuY29kZXItPmJhc2UpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBwb3J0 IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCXUzMiBEUCA9IGludGVsX2RwLT5EUDsKIApAQCAtNjg3 NCw3ICs2ODc0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBpbnQgcmVmcmVzaF9yYXRlKQog ewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+ZHJycy5kcDsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIGRycnNfcmVmcmVzaF9yYXRlX3R5cGUgaW5k ZXggPSBEUlJTX0hJR0hfUlI7CiAKIAlpZiAocmVmcmVzaF9yYXRlIDw9IDApIHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCmluZGV4IDdkNjNmMGE3OWNhMS4u YWRmMWQzODk1NDE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwX21zdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBf bXN0LmMKQEAgLTQyLDcgKzQyLDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9s aW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJICAgIHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAogCQkJCQkgICAgc3RydWN0IGxpbmtf Y29uZmlnX2xpbWl0cyAqbGltaXRzKQogewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZHBfbXN0X2VuY29k ZXIgKmludGVsX21zdCA9IGVuY190b19tc3QoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfbXN0LT5wcmltYXJ5LT5kcDsKIAlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcGlvX3BoeS5jCmluZGV4IDU1NmQxYjMwZjA2YS4uNzA0ZjM4NjgxYzRiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwaW9fcGh5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jCkBAIC03MzksNyAr NzM5LDcgQEAgdm9pZCBjaHZfZGF0YV9sYW5lX3NvZnRfcmVzZXQoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBv cnRfdG9fY2hhbm5lbChlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpKTsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKIApAQCAt NzgzLDcgKzc4Myw3IEBAIHZvaWQgY2h2X3BoeV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9 IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7 CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXVuc2lnbmVkIGludCBsYW5lX21hc2sg PQpAQCAtODY0LDcgKzg2NCw3IEBAIHZvaWQgY2h2X3BoeV9wcmVfZW5jb2Rlcl9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJZW51bSBkcGlvX2NoYW5uZWwgY2ggPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChk cG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludCBkYXRhLCBpLCBzdGFn Z2VyOwpAQCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgY2h2X3BoeV9wb3N0X3BsbF9kaXNhYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCWVudW0gcGlwZSBwaXBl ID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVt IHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0YyktPnBp cGU7CiAJdTMyIHZhbDsKIAogCXZsdl9kcGlvX2dldChkZXZfcHJpdik7CkBAIC0xMDE2LDcgKzEw MTYsNyBAQCB2b2lkIHZsdl9waHlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9f ZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVu dW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CiAJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC0xMDQ2LDcgKzEwNDYsNyBAQCB2b2lkIHZs dl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJh c2UpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gZHBpb19jaGFubmVs IHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwogCXUzMiB2YWw7CkBAIC0xMDc1LDcgKzEwNzUsNyBAQCB2b2lkIHZsdl9waHlf cmVzZXRfbGFuZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2Up OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBkcGlvX2NoYW5uZWwg cG9ydCA9IHZsdl9kcG9ydF90b19jaGFubmVsKGRwb3J0KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNy dGMtPnBpcGU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9t Z3IuYwppbmRleCBlYzEwZmE3ZDNjNjkuLjMzZGIxZjU5YjQwNiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwpAQCAtMTM2LDcgKzEzNiw3IEBAIHZv aWQgYXNzZXJ0X3NoYXJlZF9kcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK ICAqLwogdm9pZCBpbnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVj dCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7CiAKQEAg LTE2Myw3ICsxNjMsNyBAQCB2b2lkIGludGVsX3ByZXBhcmVfc2hhcmVkX2RwbGwoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAgKi8KIHZvaWQgaW50ZWxfZW5hYmxl X3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxs ID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7CiAJdW5zaWduZWQgaW50IGNydGNfbWFzayA9IGRy bV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwpAQCAtMjA4LDcgKzIwOCw3IEBAIHZvaWQgaW50ZWxf ZW5hYmxlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogICovCiB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJ c3RydWN0IGludGVsX3NoYXJlZF9kcGxsICpwbGwgPSBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbDsK IAl1bnNpZ25lZCBpbnQgY3J0Y19tYXNrID0gZHJtX2NydGNfbWFzaygmY3J0Yy0+YmFzZSk7CkBA IC04MjcsNyArODI3LDcgQEAgaHN3X2RkaV9oZG1pX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqCiBoc3df ZGRpX2RwX2dldF9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRf ZHBsbCAqcGxsOwogCWVudW0gaW50ZWxfZHBsbF9pZCBwbGxfaWQ7CiAJaW50IGNsb2NrID0gY3J0 Y19zdGF0ZS0+cG9ydF9jbG9jazsKQEAgLTE3MzYsNyArMTczNiw3IEBAIHN0YXRpYyBib29sCiBi eHRfZGRpX2hkbWlfcGxsX2RpdmlkZXJzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAogCQkJICBzdHJ1Y3QgYnh0X2Nsa19kaXYgKmNsa19kaXYpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRwbGwgYmVzdF9jbG9jazsKIAogCS8qIENhbGN1bGF0ZSBIRE1JIGRpdiAq LwpAQCAtMjI1OSw3ICsyMjU5LDcgQEAgc3RhdGljIGJvb2wKIGNubF9kZGlfY2FsY3VsYXRlX3dy cGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJc3RydWN0IHNrbF93 cnBsbF9wYXJhbXMgKndycGxsX3BhcmFtcykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0 Yy0+ZGV2KTsKIAl1MzIgYWZlX2Nsb2NrID0gY3J0Y19zdGF0ZS0+cG9ydF9jbG9jayAqIDU7CiAJ dTMyIHJlZl9jbG9jazsKIAl1MzIgZGNvX21pbiA9IDc5OTgwMDA7CkBAIC0yNTM4LDcgKzI1Mzgs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgdGdsX3RidF9wbGxfMjRN SHpfdmFsdWVzID0gewogc3RhdGljIGJvb2wgaWNsX2NhbGNfZHBfY29tYm9fcGxsKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgc3RydWN0IHNrbF93cnBsbF9wYXJh bXMgKnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJ Y29uc3Qgc3RydWN0IGljbF9jb21ib19wbGxfcGFyYW1zICpwYXJhbXMgPQogCQlkZXZfcHJpdi0+ Y2RjbGsuaHcucmVmID09IDI0MDAwID8KIAkJaWNsX2RwX2NvbWJvX3BsbF8yNE1Iel92YWx1ZXMg OgpAQCAtMjU2MCw3ICsyNTYwLDcgQEAgc3RhdGljIGJvb2wgaWNsX2NhbGNfZHBfY29tYm9fcGxs KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIGJvb2wgaWNsX2Nh bGNfdGJ0X3BsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAg c3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT51YXBpLmNydGMtPmRldik7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgewog CQlzd2l0Y2ggKGRldl9wcml2LT5jZGNsay5ody5yZWYpIHsKQEAgLTI1OTcsNyArMjU5Nyw3IEBA IHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJc3Ry dWN0IGludGVsX2RwbGxfaHdfc3RhdGUgKnBsbF9zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUt PnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgY2ZnY3IwLCBjZmdjcjE7CiAJc3RydWN0IHNrbF93cnBs bF9wYXJhbXMgcGxsX3BhcmFtcyA9IHsgMCB9OwogCWJvb2wgcmV0OwpAQCAtMjcyOSw3ICsyNzI5 LDcgQEAgc3RhdGljIGJvb2wgaWNsX21nX3BsbF9maW5kX2Rpdmlzb3JzKGludCBjbG9ja19raHos IGJvb2wgaXNfZHAsIGJvb2wgdXNlX3NzYywKIHN0YXRpYyBib29sIGljbF9jYWxjX21nX3BsbF9z dGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgIHN0cnVjdCBp bnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBp LmNydGMtPmRldik7CiAJaW50IHJlZmNsa19raHogPSBkZXZfcHJpdi0+Y2RjbGsuaHcucmVmOwog CWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7CiAJdTMyIGRjb19raHosIG0xZGl2 LCBtMmRpdl9pbnQsIG0yZGl2X3JlbSwgbTJkaXZfZnJhYzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2R2by5jCmluZGV4IGE2OGU1YzViOTFiNC4uMjg3NzBjNTc2NWFkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHZvLmMKQEAgLTI3Nyw3ICsyNzcsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZTsKIAlzdHJ1Y3QgaW50ZWxfZHZvICppbnRlbF9kdm8gPSBlbmNfdG9fZHZvKGVuY29kZXIpOwog CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9oZG1pLmMKaW5kZXggMmY1ZmM3MWFjOWEwLi4zNTdhZDQ1OWJmYmMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCkBAIC0yODUsNyArMjg1LDcgQEAg c3RhdGljIHZvaWQgaWJ4X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIHsKIAljb25zdCB1MzIgKmRhdGEgPSBmcmFtZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVs X2NydGMtPnBpcGUpOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKIAlpbnQgaTsKQEAgLTMy MSw3ICszMjEsNyBAQCBzdGF0aWMgdm9pZCBpYnhfcmVhZF9pbmZvZnJhbWUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgICAgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXUzMiB2YWwsICpkYXRhID0gZnJhbWU7CiAJ aW50IGk7CiAKQEAgLTM0MCw3ICszNDAsNyBAQCBzdGF0aWMgdTMyIGlieF9pbmZvZnJhbWVzX2Vu YWJsZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0JZW51bSBwaXBlIHBp cGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlOworCWVudW0g cGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKS0+cGlwZTsK IAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKHBpcGUpOwogCXUzMiB2YWwgPSBJOTE1 X1JFQUQocmVnKTsKIApAQCAtMzYyLDcgKzM2Miw3IEBAIHN0YXRpYyB2b2lkIGNwdF93cml0ZV9p bmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJY29uc3QgdTMyICpk YXRhID0gZnJhbWU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJaTkx NV9yZWdfdCByZWcgPSBUVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKIAl1MzIgdmFs ID0gSTkxNV9SRUFEKHJlZyk7CiAJaW50IGk7CkBAIC00MDEsNyArNDAxLDcgQEAgc3RhdGljIHZv aWQgY3B0X3JlYWRfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJ ICAgICAgIHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAl1MzIgdmFsLCAqZGF0YSA9IGZyYW1lOwogCWludCBpOwogCkBAIC00MjAsNyArNDIw LDcgQEAgc3RhdGljIHUzMiBjcHRfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBl X2NvbmZpZy0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2Ny dGMocGlwZV9jb25maWctPnVhcGkuY3J0YyktPnBpcGU7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChU VklERU9fRElQX0NUTChwaXBlKSk7CiAKIAlpZiAoKHZhbCAmIFZJREVPX0RJUF9FTkFCTEUpID09 IDApCkBAIC00MzgsNyArNDM4LDcgQEAgc3RhdGljIHZvaWQgdmx2X3dyaXRlX2luZm9mcmFtZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAljb25zdCB1MzIgKmRhdGEgPSBmcmFt ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlpOTE1X3JlZ190IHJl ZyA9IFZMVl9UVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKIAl1MzIgdmFsID0gSTkx NV9SRUFEKHJlZyk7CiAJaW50IGk7CkBAIC00NzQsNyArNDc0LDcgQEAgc3RhdGljIHZvaWQgdmx2 X3JlYWRfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAg IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAl1MzIgdmFsLCAqZGF0YSA9IGZyYW1lOwogCWludCBpOwogCkBAIC00OTMsNyArNDkzLDcgQEAg c3RhdGljIHUzMiB2bHZfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZp Zy0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlw ZV9jb25maWctPnVhcGkuY3J0YyktPnBpcGU7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChWTFZfVFZJ REVPX0RJUF9DVEwocGlwZSkpOwogCiAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxFKSA9PSAw KQpAQCAtOTY1LDcgKzk2NSw3IEBAIHN0YXRpYyBib29sIGludGVsX2hkbWlfc2V0X2djcF9pbmZv ZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJCSBjb25zdCBzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAlpOTE1X3JlZ190IHJlZzsKIAogCWlmICgoY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5l bmFibGUgJgpAQCAtOTkwLDcgKzk5MCw3IEBAIHZvaWQgaW50ZWxfaGRtaV9yZWFkX2djcF9pbmZv ZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ aTkxNV9yZWdfdCByZWc7CiAKIAlpZiAoKGNydGNfc3RhdGUtPmluZm9mcmFtZXMuZW5hYmxlICYK QEAgLTEwMzcsNyArMTAzNyw3IEBAIHN0YXRpYyB2b2lkIGlieF9zZXRfaW5mb2ZyYW1lcyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVsX2hkbWkgKmlu dGVsX2hkbWkgPSAmaW50ZWxfZGlnX3BvcnQtPmhkbWk7CiAJaTkxNV9yZWdfdCByZWcgPSBUVklE RU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKQEAgLTEwOTYsNyArMTA5Niw3IEBAIHN0YXRp YyB2b2lkIGNwdF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxf aGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAlp OTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwogCXUzMiB2 YWwgPSBJOTE1X1JFQUQocmVnKTsKQEAgLTExNDUsNyArMTE0NSw3IEBAIHN0YXRpYyB2b2lkIHZs dl9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAg ICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50 ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAlpOTE1X3JlZ190 IHJlZyA9IFZMVl9UVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKIAl1MzIgdmFsID0g STkxNV9SRUFEKHJlZyk7CkBAIC0xNzQxLDcgKzE3NDEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9o ZG1pX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg aW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNl KTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBoZG1pX3ZhbDsKQEAgLTE4NjUsNyArMTg2 NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9oZG1pX2F1ZGlvKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhw aXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAKIAlXQVJOX09OKCFwaXBlX2NvbmZp Zy0+aGFzX2hkbWlfc2luayk7CiAJRFJNX0RFQlVHX0RSSVZFUigiRW5hYmxpbmcgSERNSSBhdWRp byBvbiBwaXBlICVjXG4iLApAQCAtMTk1MSw3ICsxOTUxLDcgQEAgc3RhdGljIHZvaWQgY3B0X2Vu YWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg aW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNl KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHRlbXA7CkBAIC0yMDE1LDcg KzIwMTUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9f aW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQgPQogCQloZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpOwotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJdTMyIHRlbXA7CiAKIAl0ZW1wID0gSTkxNV9SRUFEKGludGVs X2hkbWktPmhkbWlfcmVnKTsKQEAgLTIyMTUsOCArMjIxNSw4IEBAIHN0YXRpYyBib29sIGhkbWlf ZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJCQkgICAgIGludCBicGMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0KLQkJdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwkJdG9f aTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3I7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQpAQCAt MjI0NSw3ICsyMjQ1LDcgQEAgc3RhdGljIGJvb2wgaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWZvcl9lYWNoX25ld19j b25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3RvciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7 CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5lY3Rvci0+ZGlz cGxheV9pbmZvOwogCi0JCWlmIChjb25uZWN0b3Jfc3RhdGUtPmNydGMgIT0gY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKQorCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPnVh cGkuY3J0YykKIAkJCWNvbnRpbnVlOwogCiAJCWlmIChjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0 ID09IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0MjApIHsKQEAgLTIyODYsNyArMjI4Niw3IEBA IHN0YXRpYyBib29sCiBpbnRlbF9oZG1pX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAogCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZykK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY29uZmln LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0Yyhjb25maWctPnVhcGkuY3J0Yyk7CiAKIAlpZiAoIWNvbm5lY3Rvci0+eWNiY3JfNDIwX2Fs bG93ZWQpIHsKIAkJRFJNX0VSUk9SKCJQbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQgWUNCQ1I0MjAg b3V0cHV0XG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKaW5k ZXggZjE3ZDZlMDI0NjBmLi5jYTRlYmIwZjIyMzAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfbHZkcy5jCkBAIC0yMzAsNyArMjMwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf cHJlX2VuYWJsZV9sdmRzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVj dCBpbnRlbF9sdmRzX2VuY29kZXIgKmx2ZHNfZW5jb2RlciA9IHRvX2x2ZHNfZW5jb2RlcigmZW5j b2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHRlbXA7CkBAIC0z OTMsNyArMzkzLDcgQEAgc3RhdGljIGludCBpbnRlbF9sdmRzX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmludGVsX2Nvbm5lY3RvciA9CiAJCWx2ZHNfZW5jb2Rlci0+YXR0YWNoZWRfY29ubmVjdG9yOwog CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJdW5zaWdu ZWQgaW50IGx2ZHNfYnBwOwogCiAJLyogU2hvdWxkIG5ldmVyIGhhcHBlbiEhICovCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKaW5kZXggNWUzZmQzN2Q5NDcxLi42 ZjNlYWFlMzc2MWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfcGFuZWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVs LmMKQEAgLTEwNDcsNyArMTA0Nyw3IEBAIHN0YXRpYyB2b2lkIHZsdl9lbmFibGVfYmFja2xpZ2h0 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5j b25uZWN0b3IpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25u ZWN0b3ItPnBhbmVsOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpLT5waXBlOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpLT5waXBlOwogCXUzMiBjdGwsIGN0bDI7CiAKIAljdGwyID0gSTkx NV9SRUFEKFZMVl9CTENfUFdNX0NUTDIocGlwZSkpOwpAQCAtMTA3Nyw3ICsxMDc3LDcgQEAgc3Rh dGljIHZvaWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gdG9f aW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Ci0JZW51bSBwaXBlIHBp cGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CisJZW51bSBw aXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0YyktPnBpcGU7CiAJ dTMyIHB3bV9jdGwsIHZhbDsKIAogCS8qIENvbnRyb2xsZXIgMSB1c2VzIHRoZSB1dGlsaXR5IHBp bi4gKi8KQEAgLTExODksNyArMTE4OSw3IEBAIHZvaWQgaW50ZWxfcGFuZWxfZW5hYmxlX2JhY2ts aWdodChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0 ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAm Y29ubmVjdG9yLT5wYW5lbDsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKS0+cGlwZTsKIAogCWlmICghcGFuZWwtPmJhY2tsaWdodC5w cmVzZW50KQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3BpcGVfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3BpcGVfY3JjLmMKaW5kZXggZmM2MDI1MzNhNjAyLi4yNzQ2NTEyZjQ0NjYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGlwZV9jcmMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKQEAgLTMwOSwxMyArMzA5 LDEzIEBAIGludGVsX2NydGNfY3JjX3NldHVwX3dvcmthcm91bmRzKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLCBib29sIGVuYWJsZSkKIAkJZ290byBwdXRfc3RhdGU7CiAJfQogCi0JcGlwZV9jb25m aWctPmJhc2UubW9kZV9jaGFuZ2VkID0gcGlwZV9jb25maWctPmhhc19wc3I7CisJcGlwZV9jb25m aWctPnVhcGkubW9kZV9jaGFuZ2VkID0gcGlwZV9jb25maWctPmhhc19wc3I7CiAJcGlwZV9jb25m aWctPmNyY19lbmFibGVkID0gZW5hYmxlOwogCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpICYm CiAJICAgIHBpcGVfY29uZmlnLT5ody5hY3RpdmUgJiYgY3J0Yy0+cGlwZSA9PSBQSVBFX0EgJiYK IAkgICAgcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID09IFRSQU5TQ09ERVJfRURQKQotCQlw aXBlX2NvbmZpZy0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0cnVlOworCQlwaXBlX2NvbmZpZy0+dWFw aS5tb2RlX2NoYW5nZWQgPSB0cnVlOwogCiAJcmV0ID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYwppbmRleCAzNDcwMDQ5 ODFjZmYuLjljNzZhZDUzODNiOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9wc3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Bzci5jCkBAIC04MTIsNyArODEyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNyX2VuYWJsZV9s b2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJZGV2X3ByaXYtPnBz ci5wc3IyX2VuYWJsZWQgPSBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYsIGNydGNfc3RhdGUp OwogCWRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzID0gMDsKLQlkZXZfcHJpdi0+ cHNyLnBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CisJ ZGV2X3ByaXYtPnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp LT5waXBlOwogCWRldl9wcml2LT5wc3IuZGMzY29fZW5hYmxlZCA9ICEhY3J0Y19zdGF0ZS0+ZGMz Y29fZXhpdGxpbmU7CiAJZGV2X3ByaXYtPnBzci5kYzNjb19leGl0X2RlbGF5ID0gaW50ZWxfZ2V0 X2ZyYW1lX3RpbWVfdXMoY3J0Y19zdGF0ZSk7CiAJZGV2X3ByaXYtPnBzci50cmFuc2NvZGVyID0g Y3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CkBAIC0xMDU5LDcgKzEwNTksNyBAQCB2b2lkIGlu dGVsX3Bzcl91cGRhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIGludCBpbnRlbF9wc3Jf d2FpdF9mb3JfaWRsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGUsCiAJCQkgICAgdTMyICpvdXRfdmFsdWUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKIAogCWlmICghZGV2X3ByaXYtPnBzci5lbmFibGVkIHx8ICFuZXdfY3J0Y19zdGF0ZS0+ aGFzX3BzcikKQEAgLTExNDEsNyArMTE0MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcHNyX2Zhc3Rz ZXRfZm9yY2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJCWlmIChpbnRl bF9jcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYgaW50ZWxfY3J0Y19zdGF0ZS0+aGFzX3Bzcikgewog CQkJLyogTWFyayBtb2RlIGFzIGNoYW5nZWQgdG8gdHJpZ2dlciBhIHBpcGUtPnVwZGF0ZSgpICov Ci0JCQlpbnRlbF9jcnRjX3N0YXRlLT5iYXNlLm1vZGVfY2hhbmdlZCA9IHRydWU7CisJCQlpbnRl bF9jcnRjX3N0YXRlLT51YXBpLm1vZGVfY2hhbmdlZCA9IHRydWU7CiAJCQlicmVhazsKIAkJfQog CX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKaW5kZXggOTdhZThj YzEzMTRlLi4xMDQ3MzU3YzE1YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfc2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfc2R2by5jCkBAIC0xNDI5LDcgKzE0MjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX3By ZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJCQkJICBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2VuY29kZXItPmJhc2UuZGV2 KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWNvbnN0IHN0cnVj dCBpbnRlbF9zZHZvX2Nvbm5lY3Rvcl9zdGF0ZSAqc2R2b19zdGF0ZSA9CiAJCXRvX2ludGVsX3Nk dm9fY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwpAQCAtMTcyMyw3ICsxNzIzLDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZGlzYWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvID0gdG9fc2R2byhl bmNvZGVyKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2Ny dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXUzMiB0ZW1wOwogCiAJaWYgKG9s ZF9jcnRjX3N0YXRlLT5oYXNfYXVkaW8pCkBAIC0xNzg1LDcgKzE3ODUsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9lbmFibGVfc2R2byhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9zZHZvICpp bnRlbF9zZHZvID0gdG9fc2R2byhlbmNvZGVyKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNy dGMpOwogCXUzMiB0ZW1wOwogCWJvb2wgaW5wdXQxLCBpbnB1dDI7CiAJaW50IGk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwppbmRleCBlZjBjYTdjNmQxMWYu LmZhNjg3YzA1YjFlZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nw cml0ZS5jCkBAIC04MSw3ICs4MSw3IEBAIGludCBpbnRlbF91c2Vjc190b19zY2FubGluZXMoY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUsCiAgKi8KIHZvaWQgaW50 ZWxfcGlwZV91cGRhdGVfc3RhcnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhu ZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmbmV3X2NydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGU7CiAJbG9uZyB0aW1lb3V0ID0gbXNlY3NfdG9famlmZmllc190aW1lb3V0 KDEpOwpAQCAtMTkwLDcgKzE5MCw3IEBAIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogICovCiB2b2lkIGlu dGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3Rh dGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRj X3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CiAJaW50IHNjYW5saW5lX2VuZCA9IGludGVsX2dldF9jcnRjX3NjYW5saW5lKGNydGMp OwogCXUzMiBlbmRfdmJsX2NvdW50ID0gaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoY3J0 Yyk7CkBAIC0yMDMsMTQgKzIwMywxNSBAQCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX2VuZChzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiAJICogV291bGQgYmUgc2xpZ2h0 bHkgbmljZSB0byBqdXN0IGdyYWIgdGhlIHZibGFuayBjb3VudCBhbmQgYXJtIHRoZQogCSAqIGV2 ZW50IG91dHNpZGUgb2YgdGhlIGNyaXRpY2FsIHNlY3Rpb24gLSB0aGUgc3BpbmxvY2sgbWlnaHQg c3BpbiBmb3IgYQogCSAqIHdoaWxlIC4uLiAqLwotCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5l dmVudCkgeworCWlmIChuZXdfY3J0Y19zdGF0ZS0+dWFwaS5ldmVudCkgewogCQlXQVJOX09OKGRy bV9jcnRjX3ZibGFua19nZXQoJmNydGMtPmJhc2UpICE9IDApOwogCiAJCXNwaW5fbG9jaygmY3J0 Yy0+YmFzZS5kZXYtPmV2ZW50X2xvY2spOwotCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KCZj cnRjLT5iYXNlLCBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCk7CisJCWRybV9jcnRjX2FybV92 YmxhbmtfZXZlbnQoJmNydGMtPmJhc2UsCisJCQkJICAgICAgICAgIG5ld19jcnRjX3N0YXRlLT51 YXBpLmV2ZW50KTsKIAkJc3Bpbl91bmxvY2soJmNydGMtPmJhc2UuZGV2LT5ldmVudF9sb2NrKTsK IAotCQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCA9IE5VTEw7CisJCW5ld19jcnRjX3N0YXRl LT51YXBpLmV2ZW50ID0gTlVMTDsKIAl9CiAKIAlsb2NhbF9pcnFfZW5hYmxlKCk7CkBAIC0xNTg2 LDcgKzE1ODcsNyBAQCBnNHhfc3ByaXRlX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCX0KIAogCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lX3N0 YXRlKCZwbGFuZV9zdGF0ZS0+YmFzZSwKLQkJCQkJCSAgJmNydGNfc3RhdGUtPmJhc2UsCisJCQkJ CQkgICZjcnRjX3N0YXRlLT51YXBpLAogCQkJCQkJICBtaW5fc2NhbGUsIG1heF9zY2FsZSwKIAkJ CQkJCSAgdHJ1ZSwgdHJ1ZSk7CiAJaWYgKHJldCkKQEAgLTE2NDMsNyArMTY0NCw3IEBAIHZsdl9z cHJpdGVfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVy biByZXQ7CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxh bmVfc3RhdGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLAorCQkJCQkJICAmY3J0 Y19zdGF0ZS0+dWFwaSwKIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAogCQkJ CQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJCQkJCQkgIHRydWUsIHRydWUpOwpA QCAtMTgwOCw3ICsxODA5LDcgQEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2soc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxw ZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19z dGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPnVhcGksCiAJCQkJCQkgIG1pbl9zY2Fs ZSwgbWF4X3NjYWxlLAogCQkJCQkJICB0cnVlLCB0cnVlKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5jCmluZGV4IGU4MDBkNDViODEzZC4uNDQ5OWQ0MDJj MzE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5jCkBAIC05MjQsNyAr OTI0LDcgQEAgaW50ZWxfZW5hYmxlX3R2KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CiAJLyogUHJldmVudHMgdmJsYW5rIHdhaXRzIGZyb20gdGltaW5nIG91dCBpbiBpbnRlbF90dl9k ZXRlY3RfdHlwZSgpICovCiAJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LAotCQkJICAg ICAgdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKS0+cGlwZSk7CisJCQkgICAg ICB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpLT5waXBlKTsKIAogCUk5MTVf V1JJVEUoVFZfQ1RMLCBJOTE1X1JFQUQoVFZfQ1RMKSB8IFRWX0VOQ19FTkFCTEUpOwogfQpAQCAt MTQxNyw3ICsxNDE3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfdHZfcHJlX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQljb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNy dGMpOwogCXN0cnVjdCBpbnRlbF90diAqaW50ZWxfdHYgPSBlbmNfdG9fdHYoZW5jb2Rlcik7CiAJ Y29uc3Qgc3RydWN0IGludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZSAqdHZfY29ubl9zdGF0ZSA9CiAJ CXRvX2ludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMKaW5kZXggNmEzMzhhODNhYWVkLi4zOGMxODE0OTk1 MDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jCkBAIC00NTks NyArNDU5LDcgQEAgaW50IGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcyhzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAogZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbgogaW50ZWxfZHNj X3Bvd2VyX2RvbWFpbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkx NShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFu c2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAKIAkvKgpAQCAtNDgzLDcgKzQ4 Myw3IEBAIGludGVsX2RzY19wb3dlcl9kb21haW4oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpbnRlbF9jb25maWd1cmVfcHBzX2Zvcl9kc2Nf ZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJCWNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5k ZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1fZHNjX2NvbmZpZyAqdmRzY19jZmcgPSAmY3J0Y19zdGF0 ZS0+ZHBfZHNjX2NmZzsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC05MDIsNyAr OTAyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfd3JpdGVfZHNjX3Bwc19zZHAoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiB2b2lkIGludGVsX2RzY19lbmFibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190IGRzc19jdGwxX3JlZywgZHNzX2N0bDJfcmVn OwpAQCAtOTM4LDcgKzkzOCw3IEBAIHZvaWQgaW50ZWxfZHNjX2VuYWJsZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAogdm9pZCBpbnRlbF9kc2NfZGlzYWJsZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJaTkxNV9yZWdfdCBk c3NfY3RsMV9yZWcsIGRzc19jdGwyX3JlZzsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvdmx2X2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZf ZHNpLmMKaW5kZXggM2JmODM4Mjc5ZmMyLi4xNmY5M2QxZTcxZTUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvdmx2X2RzaS5jCkBAIC0yNjEsNyArMjYxLDcgQEAgc3RhdGljIGludCBpbnRl bF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gY29udGFpbmVyX29mKGVuY29kZXIsIHN0cnVjdCBp bnRlbF9kc2ksCiAJCQkJCQkgICBiYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRl bF9jb25uZWN0b3IgPSBpbnRlbF9kc2ktPmF0dGFjaGVkX2Nvbm5lY3RvcjsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBp LmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhlZF9tb2RlID0gaW50 ZWxfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWludCBy ZXQ7CkBAIC02MjQsNyArNjI0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3BvcnRfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+ YmFzZSk7CiAJZW51bSBwb3J0IHBvcnQ7CiAKQEAgLTc0Niw3ICs3NDYsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kc2lfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFz ZSk7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJhc2UuY3J0YzsKKwlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFwaS5jcnRjOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwpAQCAtMTAzNCw3ICsxMDM0LDcgQEAgc3RhdGljIHZv aWQgYnh0X2RzaV9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQogCQkJCQkmcGlwZV9j b25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGVfc3c7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBp cGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRl bF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAl1bnNpZ25lZCBpbnQg bGFuZV9jb3VudCA9IGludGVsX2RzaS0+bGFuZV9jb3VudDsKIAl1bnNpZ25lZCBpbnQgYnBwLCBm bXQ7CkBAIC0xMzE1LDcgKzEzMTUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIgPSAmaW50ZWxfZW5jb2Rlci0+YmFzZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5jb2Rlci0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRl bF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2koZW5jb2Rlcik7CiAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGU7CiAJZW51bSBwb3J0IHBvcnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCmluZGV4IDUxZTgzZGEyMTczOC4uYmRhY2UyZjE0Y2RlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwpAQCAtNDIyMiw3ICs0MjIyLDcgQEAgc3RhdGljIGludCBpOTE1X2RycnNf Y3RsX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCQkgICAgIWNydGNfc3RhdGUtPmhhc19kcnJz KQogCQkJZ290byBvdXQ7CiAKLQkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+YmFzZS5jb21taXQ7CisJ CWNvbW1pdCA9IGNydGNfc3RhdGUtPnVhcGkuY29tbWl0OwogCQlpZiAoY29tbWl0KSB7CiAJCQly ZXQgPSB3YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0+aHdfZG9uZSk7 CiAJCQlpZiAocmV0KQpAQCAtNDIzNCw3ICs0MjM0LDcgQEAgc3RhdGljIGludCBpOTE1X2RycnNf Y3RsX3NldCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXI7CiAJCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOwogCi0JCQlpZiAoIShjcnRjX3N0 YXRlLT5iYXNlLmNvbm5lY3Rvcl9tYXNrICYKKwkJCWlmICghKGNydGNfc3RhdGUtPnVhcGkuY29u bmVjdG9yX21hc2sgJgogCQkJICAgICAgZHJtX2Nvbm5lY3Rvcl9tYXNrKGNvbm5lY3RvcikpKQog CQkJCWNvbnRpbnVlOwogCkBAIC00MjkzLDcgKzQyOTMsNyBAQCBpOTE1X2ZpZm9fdW5kZXJydW5f cmVzZXRfd3JpdGUoc3RydWN0IGZpbGUgKmZpbHAsCiAJCQlyZXR1cm4gcmV0OwogCiAJCWNydGNf c3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUpOwotCQlj b21taXQgPSBjcnRjX3N0YXRlLT5iYXNlLmNvbW1pdDsKKwkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+ dWFwaS5jb21taXQ7CiAJCWlmIChjb21taXQpIHsKIAkJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRp b25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5od19kb25lKTsKIAkJCWlmICghcmV0KQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKaW5kZXggOTY3MWZmMjljMjVmLi43NmY4ZWVhMTVkZGYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwpAQCAtNDY0LDcgKzQ2NCw3IEBAIHN0YXRpYyBjb25zdCBpbnQgcGVz c2ltYWxfbGF0ZW5jeV9ucyA9IDUwMDA7CiAKIHN0YXRpYyB2b2lkIHZsdl9nZXRfZmlmb19zaXpl KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCXN0cnVjdCB2bHZfZmlmb19zdGF0ZSAqZmlmb19zdGF0ZSA9ICZjcnRjX3N0YXRl LT53bS52bHYuZmlmb19zdGF0ZTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC0x MTQ0LDcgKzExNDQsNyBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIGJvb2wgZzR4X3Jhd19wbGFuZV93 bV9zZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZl bCwgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCwgdTE2IHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWJvb2wgZGlydHkgPSBmYWxzZTsKIAogCWZvciAoOyBsZXZl bCA8IGludGVsX3dtX251bV9sZXZlbHMoZGV2X3ByaXYpOyBsZXZlbCsrKSB7CkBAIC0xMTYwLDcg KzExNjAsNyBAQCBzdGF0aWMgYm9vbCBnNHhfcmF3X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHN0YXRpYyBib29sIGc0eF9yYXdfZmJjX3dtX3NldChz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgICBpbnQgbGV2ZWws IHUxNiB2YWx1ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlib29s IGRpcnR5ID0gZmFsc2U7CiAKIAkvKiBOT1JNQUwgbGV2ZWwgZG9lc24ndCBoYXZlIGFuIEZCQyB3 YXRlcm1hcmsgKi8KQEAgLTEyNjIsNyArMTI2Miw3IEBAIHN0YXRpYyBib29sIGc0eF9yYXdfcGxh bmVfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiBzdGF0aWMgYm9vbCBnNHhfcmF3X2NydGNfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAgICBpbnQgbGV2ZWwpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAKIAlpZiAobGV2ZWwgPiBkZXZfcHJpdi0+d20u bWF4X2xldmVsKQogCQlyZXR1cm4gZmFsc2U7CkBAIC0xMzAwLDkgKzEzMDAsOSBAQCBzdGF0aWMg dm9pZCBnNHhfaW52YWxpZGF0ZV93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRp YyBpbnQgZzR4X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsK KwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCXN0cnVj dCBnNHhfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGNfc3RhdGUtPndtLmc0eC5vcHRpbWFsOwog CWludCBudW1fYWN0aXZlX3BsYW5lcyA9IGh3ZWlnaHQ4KGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFu ZXMgJgogCQkJCQkgfkJJVChQTEFORV9DVVJTT1IpKTsKQEAgLTEzODksMTcgKzEzODksMTcgQEAg c3RhdGljIGludCBnNHhfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogCiBzdGF0aWMgaW50IGc0eF9jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAlzdHJ1Y3QgZzR4X3dtX3N0YXRlICppbnRlcm1lZGlhdGUgPSAmbmV3X2NydGNf c3RhdGUtPndtLmc0eC5pbnRlcm1lZGlhdGU7CiAJY29uc3Qgc3RydWN0IGc0eF93bV9zdGF0ZSAq b3B0aW1hbCA9ICZuZXdfY3J0Y19zdGF0ZS0+d20uZzR4Lm9wdGltYWw7CiAJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3 X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2Ny dGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoaW50ZWxf c3RhdGUsIGNydGMpOwogCWNvbnN0IHN0cnVjdCBnNHhfd21fc3RhdGUgKmFjdGl2ZSA9ICZvbGRf Y3J0Y19zdGF0ZS0+d20uZzR4Lm9wdGltYWw7CiAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZDsKIAot CWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNf bW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKSB7CisJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+ aHcuYWN0aXZlIHx8IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0 ZS0+dWFwaSkpIHsKIAkJKmludGVybWVkaWF0ZSA9ICpvcHRpbWFsOwogCiAJCWludGVybWVkaWF0 ZS0+Y3hzciA9IGZhbHNlOwpAQCAtMTUzMSw4ICsxNTMxLDggQEAgc3RhdGljIHZvaWQgZzR4X3By b2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0 aWMgdm9pZCBnNHhfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIAljcnRjLT53bS5hY3RpdmUuZzR4 ID0gY3J0Y19zdGF0ZS0+d20uZzR4LmludGVybWVkaWF0ZTsKQEAgLTE1NDMsOCArMTU0Myw4IEBA IHN0YXRpYyB2b2lkIGc0eF9pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBnNHhfb3B0aW1pemVfd2F0ZXJtYXJrcyhzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMt PmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAKIAlpZiAoIWNydGNfc3RhdGUtPndtLm5lZWRfcG9zdHZibF91cGRh dGUpCiAJCXJldHVybjsKQEAgLTE2MzEsNyArMTYzMSw3IEBAIHN0YXRpYyBib29sIHZsdl9uZWVk X3Nwcml0ZTBfZmlmb193b3JrYXJvdW5kKHVuc2lnbmVkIGludCBhY3RpdmVfcGxhbmVzKQogCiBz dGF0aWMgaW50IHZsdl9jb21wdXRlX2ZpZm8oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGc0eF9waXBlX3dtICpy YXcgPQogCQkmY3J0Y19zdGF0ZS0+d20udmx2LnJhd1tWTFZfV01fTEVWRUxfUE0yXTsKIAlzdHJ1 Y3Qgdmx2X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9f c3RhdGU7CkBAIC0xNzQzLDcgKzE3NDMsNyBAQCBzdGF0aWMgdTE2IHZsdl9pbnZlcnRfd21fdmFs dWUodTE2IHdtLCB1MTYgZmlmb19zaXplKQogc3RhdGljIGJvb2wgdmx2X3Jhd19wbGFuZV93bV9z ZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZlbCwg ZW51bSBwbGFuZV9pZCBwbGFuZV9pZCwgdTE2IHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjLT5kZXYpOwogCWludCBudW1fbGV2ZWxzID0gaW50ZWxfd21fbnVtX2xldmVscyhk ZXZfcHJpdik7CiAJYm9vbCBkaXJ0eSA9IGZhbHNlOwogCkBAIC0xODE4LDE2ICsxODE4LDE2IEBA IHN0YXRpYyBib29sIHZsdl9yYXdfY3J0Y193bV9pc192YWxpZChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogc3RhdGljIGludCB2bHZfY29tcHV0ZV9waXBlX3dt KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxf YXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNf c3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CiAJc3RydWN0IHZsdl93bV9zdGF0ZSAqd21f c3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20udmx2Lm9wdGltYWw7CiAJY29uc3Qgc3RydWN0IHZsdl9m aWZvX3N0YXRlICpmaWZvX3N0YXRlID0KIAkJJmNydGNfc3RhdGUtPndtLnZsdi5maWZvX3N0YXRl OwogCWludCBudW1fYWN0aXZlX3BsYW5lcyA9IGh3ZWlnaHQ4KGNydGNfc3RhdGUtPmFjdGl2ZV9w bGFuZXMgJgogCQkJCQkgfkJJVChQTEFORV9DVVJTT1IpKTsKLQlib29sIG5lZWRzX21vZGVzZXQg PSBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFzZSk7CisJYm9v bCBuZWVkc19tb2Rlc2V0ID0gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJmNydGNfc3Rh dGUtPnVhcGkpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0 YXRlOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlOwog CXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CkBAIC0xOTI2LDcgKzE5MjYsNyBAQCBzdGF0aWMg aW50IHZsdl9jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiBzdGF0aWMgdm9pZCB2bHZfYXRvbWljX3VwZGF0ZV9maWZvKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF91bmNvcmUgKnVu Y29yZSA9ICZkZXZfcHJpdi0+dW5jb3JlOwogCWNvbnN0IHN0cnVjdCB2bHZfZmlmb19zdGF0ZSAq Zmlmb19zdGF0ZSA9CkBAIC0yMDIyLDE3ICsyMDIyLDE3IEBAIHN0YXRpYyB2b2lkIHZsdl9hdG9t aWNfdXBkYXRlX2ZpZm8oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAKIHN0YXRp YyBpbnQgdmx2X2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCB2 bHZfd21fc3RhdGUgKmludGVybWVkaWF0ZSA9ICZuZXdfY3J0Y19zdGF0ZS0+d20udmx2LmludGVy bWVkaWF0ZTsKIAljb25zdCBzdHJ1Y3Qgdmx2X3dtX3N0YXRlICpvcHRpbWFsID0gJm5ld19jcnRj X3N0YXRlLT53bS52bHYub3B0aW1hbDsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRl bF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+YmFzZS5z dGF0ZSk7CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0ZS0+dWFwaS5zdGF0 ZSk7CiAJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0KIAkJ aW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0Yyk7CiAJY29u c3Qgc3RydWN0IHZsdl93bV9zdGF0ZSAqYWN0aXZlID0gJm9sZF9jcnRjX3N0YXRlLT53bS52bHYu b3B0aW1hbDsKIAlpbnQgbGV2ZWw7CiAKLQlpZiAoIW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUg fHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkg eworCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVl ZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPnVhcGkpKSB7CiAJCSppbnRlcm1lZGlhdGUgPSAq b3B0aW1hbDsKIAogCQlpbnRlcm1lZGlhdGUtPmN4c3IgPSBmYWxzZTsKQEAgLTIxNTAsOCArMjE1 MCw4IEBAIHN0YXRpYyB2b2lkIHZsdl9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQgdmx2X2luaXRpYWxfd2F0ZXJtYXJrcyhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGku Y3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9tdXRl eCk7CiAJY3J0Yy0+d20uYWN0aXZlLnZsdiA9IGNydGNfc3RhdGUtPndtLnZsdi5pbnRlcm1lZGlh dGU7CkBAIC0yMTYyLDggKzIxNjIsOCBAQCBzdGF0aWMgdm9pZCB2bHZfaW5pdGlhbF93YXRlcm1h cmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZvaWQgdmx2X29w dGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJ ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5k ZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJaWYgKCFjcnRjX3N0 YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlKQogCQlyZXR1cm47CkBAIC0yNzY3LDcgKzI3Njcs NyBAQCBzdGF0aWMgdTMyCiBoc3dfY29tcHV0ZV9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRl LT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGku c3RhdGUpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0K IAkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdTMyIGxpbmV0aW1lLCBpcHNfbGlu ZXRpbWU7CkBAIC0zMDgyLDggKzMwODIsOCBAQCBzdGF0aWMgYm9vbCBpbGtfdmFsaWRhdGVfcGlw ZV93bShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAvKiBDb21wdXRl IG5ldyB3YXRlcm1hcmtzIGZvciB0aGUgcGlwZSAqLwogc3RhdGljIGludCBpbGtfY29tcHV0ZV9w aXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj LT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBpbnRlbF9waXBlX3dtICpwaXBlX3dtOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmU7CiAJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKQEAgLTMx NjEsMTEgKzMxNjEsMTEgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogICovCiBzdGF0aWMgaW50IGlsa19jb21wdXRl X2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKG5ld3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhuZXdzdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93 bSAqYSA9ICZuZXdzdGF0ZS0+d20uaWxrLmludGVybWVkaWF0ZTsKIAlzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0 ZS0+YmFzZS5zdGF0ZSk7CisJCXRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdzdGF0ZS0+dWFwaS5z dGF0ZSk7CiAJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZHN0YXRlID0KIAkJaW50 ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY3J0Yyk7CiAJ Y29uc3Qgc3RydWN0IGludGVsX3BpcGVfd20gKmIgPSAmb2xkc3RhdGUtPndtLmlsay5vcHRpbWFs OwpAQCAtMzE3Nyw3ICszMTc3LDcgQEAgc3RhdGljIGludCBpbGtfY29tcHV0ZV9pbnRlcm1lZGlh dGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld3N0YXRlKQogCSAqIGFuZCBhZnRlciB0 aGUgdmJsYW5rLgogCSAqLwogCSphID0gbmV3c3RhdGUtPndtLmlsay5vcHRpbWFsOwotCWlmICgh bmV3c3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3 c3RhdGUtPmJhc2UpIHx8CisJaWYgKCFuZXdzdGF0ZS0+aHcuYWN0aXZlIHx8IGRybV9hdG9taWNf Y3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdzdGF0ZS0+dWFwaSkgfHwKIAkgICAgaW50ZWxfc3RhdGUt PnNraXBfaW50ZXJtZWRpYXRlX3dtKQogCQlyZXR1cm4gMDsKIApAQCAtMzg1OCw5ICszODU4LDkg QEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jLCAvKiBv dXQgKi8KIAkJCQkgICBpbnQgKm51bV9hY3RpdmUgLyogb3V0ICovKQogewotCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShz dGF0ZSk7Ci0Jc3RydWN0IGRybV9jcnRjICpmb3JfY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0 YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmZvcl9jcnRjID0gY3J0Y19zdGF0ZS0+dWFwaS5jcnRjOwog CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXUzMiBwaXBlX3dpZHRoID0gMCwgdG90 YWxfd2lkdGggPSAwLCB3aWR0aF9iZWZvcmVfcGlwZSA9IDA7CiAJZW51bSBwaXBlIGZvcl9waXBl ID0gdG9faW50ZWxfY3J0Yyhmb3JfY3J0YyktPnBpcGU7CkBAIC0zOTQxLDcgKzM5NDEsNyBAQCBz dGF0aWMgdW5zaWduZWQgaW50CiBza2xfY3Vyc29yX2FsbG9jYXRpb24oY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIGludCBudW1fYWN0aXZlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWludCBsZXZlbCwgbWF4X2xldmVs ID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJc3RydWN0IHNrbF93bV9sZXZlbCB3bSA9 IHt9OwogCWludCByZXQsIG1pbl9kZGJfYWxsb2MgPSAwOwpAQCAtNDEzMSw3ICs0MTMxLDcgQEAg aW50IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjLAogCQkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9jcnRjLT5i YXNlLmRldik7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+ YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRl LT51YXBpLnN0YXRlOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGU7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKIAlpbnQgY3J0Y19jbG9jaywgZG90Y2xr OwpAQCAtNDIzMiw3ICs0MjMyLDcgQEAgc2tsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIHU2NCAqcGxhbmVfZGF0 YV9yYXRlLAogCQkJCSB1NjQgKnV2X3BsYW5lX2RhdGFfcmF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlOwogCXU2NCB0b3RhbF9kYXRhX3JhdGUgPSAwOwpAQCAtNDI2Nyw3ICs0MjY3LDcgQEAg aWNsX2dldF90b3RhbF9yZWxhdGl2ZV9kYXRhX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZTsKIAl1NjQgdG90YWxfZGF0YV9yYXRlID0gMDsKIAotCWlmIChXQVJOX09OKCFjcnRjX3N0YXRl LT5iYXNlLnN0YXRlKSkKKwlpZiAoV0FSTl9PTighY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSkpCiAJ CXJldHVybiAwOwogCiAJLyogQ2FsY3VsYXRlIGFuZCBjYWNoZSBkYXRhIHJhdGUgZm9yIGVhY2gg cGxhbmUgKi8KQEAgLTQzMTEsOCArNDMxMSw4IEBAIHN0YXRpYyBpbnQKIHNrbF9hbGxvY2F0ZV9w aXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgICAgc3Ry dWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiIC8qIG91dCAqLykKIHsKLQlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOwotCXN0cnVjdCBkcm1f Y3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9IGNydGNfc3RhdGUtPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXN0cnVjdCBza2xfZGRiX2VudHJ5ICphbGxv YyA9ICZjcnRjX3N0YXRlLT53bS5za2wuZGRiOwpAQCAtNDYxOSw3ICs0NjE5LDcgQEAgc2tsX2Nv bXB1dGVfd21fcGFyYW1zKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCQkgICAgICB1MzIgcGxhbmVfcGl4ZWxfcmF0ZSwgc3RydWN0IHNrbF93bV9wYXJhbXMgKndw LAogCQkgICAgICBpbnQgY29sb3JfcGxhbmUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJ dTMyIGludGVybV9wYnBsOwogCkBAIC00NzQwLDcgKzQ3NDAsNyBAQCBzdGF0aWMgdm9pZCBza2xf Y29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJCQkgY29uc3Qgc3RydWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYsCiAJCQkJIHN0 cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdCAvKiBvdXQgKi8pCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT51YXBpLmNydGMtPmRldik7CiAJdTMyIGxhdGVuY3kgPSBkZXZfcHJpdi0+d20uc2tsX2xhdGVu Y3lbbGV2ZWxdOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBtZXRob2QxLCBtZXRob2QyOwogCXVpbnRf Zml4ZWRfMTZfMTZfdCBzZWxlY3RlZF9yZXN1bHQ7CkBAIC00ODY0LDcgKzQ4NjQsNyBAQCBza2xf Y29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3bV9wYXJhbXMsCiAJCSAg ICAgIHN0cnVjdCBza2xfd21fbGV2ZWwgKmxldmVscykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVh cGkuY3J0Yy0+ZGV2KTsKIAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwo ZGV2X3ByaXYpOwogCXN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdF9wcmV2ID0gJmxldmVsc1sw XTsKIApAQCAtNDg4MSw3ICs0ODgxLDcgQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIHUzMgogc2tsX2NvbXB1 dGVfbGluZXRpbWVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5z dGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBp LnN0YXRlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3Rh dGUtPmRldik7CiAJdWludF9maXhlZF8xNl8xNl90IGxpbmV0aW1lX3VzOwogCXUzMiBsaW5ldGlt ZV93bTsKQEAgLTQ5MDAsNyArNDkwMCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3RyYW5z aXRpb25fd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJ ICAgICAgY29uc3Qgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLAogCQkJCSAgICAgIHN0cnVjdCBz a2xfcGxhbmVfd20gKndtKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRl LT5iYXNlLmNydGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjLT5kZXY7CiAJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwogCXUxNiB0cmFuc19taW4sIHRyYW5zX3lfdGlsZV9taW47CiAJY29u c3QgdTE2IHRyYW5zX2Ftb3VudCA9IDEwOyAvKiBUaGlzIGlzIGNvbmZpZ3VyYWJsZSBhbW91bnQg Ki8KQEAgLTUwNjAsNyArNTA2MCw3IEBAIHN0YXRpYyBpbnQgaWNsX2J1aWxkX3BsYW5lX3dtKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50IHNrbF9idWls ZF9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93 bSA9ICZjcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbDsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CkBAIC01 MjUwLDggKzUyNTAsOCBAQCBzdGF0aWMgaW50CiBza2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJICAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0Y19zdGF0 ZS0+YmFzZS5zdGF0ZSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRl KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKIApAQCAt NTU1Miw3ICs1NTUyLDcgQEAgc3RhdGljIGludCBza2xfd21fYWRkX2FmZmVjdGVkX3BsYW5lcyhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJICogcG93ZXIgd2VsbCB0aGUgaGFy ZHdhcmUgc3RhdGUgd2lsbCBnbyBvdXQgb2Ygc3luYwogCQkgKiB3aXRoIHRoZSBzb2Z0d2FyZSBz dGF0ZS4KIAkJICovCi0JCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19j cnRjX3N0YXRlLT5iYXNlKSAmJgorCQlpZiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0 KCZuZXdfY3J0Y19zdGF0ZS0+dWFwaSkgJiYKIAkJICAgIHNrbF9wbGFuZV93bV9lcXVhbHMoZGV2 X3ByaXYsCiAJCQkJCSZvbGRfY3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW3BsYW5l X2lkXSwKIAkJCQkJJm5ld19jcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNbcGxhbmVf aWRdKSkKQEAgLTU2MjAsNyArNTYyMCw3IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQogc3RhdGljIHZvaWQgc2tsX2F0b21pY191cGRhdGVfY3J0Y193 bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CiAJ c3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFs OwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTU2MzQsNyArNTYzNCw3IEBAIHN0 YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBza2xfaW5pdGlhbF93bShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIAkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IHNrbF9kZGJfdmFsdWVzICpyZXN1bHRz ID0gJnN0YXRlLT53bV9yZXN1bHRzOwpAQCAtNTY0NCw3ICs1NjQ0LDcgQEAgc3RhdGljIHZvaWQg c2tsX2luaXRpYWxfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAKIAltdXRl eF9sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2Uu YWN0aXZlX2NoYW5nZWQpCisJaWYgKGNydGNfc3RhdGUtPnVhcGkuYWN0aXZlX2NoYW5nZWQpCiAJ CXNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RhdGUsIGNydGNfc3RhdGUpOwogCiAJbXV0ZXhf dW5sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwpAQCAtNTcwMyw4ICs1NzAzLDggQEAgc3Rh dGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBpbGtfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIAljcnRj LT53bS5hY3RpdmUuaWxrID0gY3J0Y19zdGF0ZS0+d20uaWxrLmludGVybWVkaWF0ZTsKQEAgLTU3 MTUsOCArNTcxNSw4IEBAIHN0YXRpYyB2b2lkIGlsa19pbml0aWFsX3dhdGVybWFya3Moc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBpbGtfb3B0aW1pemVfd2F0 ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAlpZiAoIWNydGNfc3RhdGUtPndtLm5l ZWRfcG9zdHZibF91cGRhdGUpCiAJCXJldHVybjsKLS0gCjIuMjMuMAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4