From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 1/4] drm/i915: Prepare to split crtc state in uapi and hw state Date: Wed, 25 Sep 2019 16:58:58 +0200 Message-ID: <20190925145901.3943-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 A4CAA89E15 for ; Wed, 25 Sep 2019 14:59:10 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2Ugd2FudCB0byBzcGxpdCBkcm1fY3J0Y19zdGF0ZSBpbnRvIHRoZSB1c2VyIHZpc2libGUgc3Rh dGUKYW5kIGFjdHVhbCBoYXJkd2FyZSBzdGF0ZS4gVG8gcHJlcGFyZSBmb3IgdGhpcywgd2UgbmVl ZCBzb21lCmdyb3VuZCBydWxlcyB3aGF0IHNob3VsZCBiZSBpbiBlYWNoIHN0YXRlOgoKSW4gdWFw aSB3ZSB1c2U6Ci0gY3J0YywgKl9jaGFuZ2VkIGZsYWdzLCBldmVudCwgY29tbWl0LCBzdGF0ZSwg bW9kZV9ibG9iLAogIChwbGFuZS9jb25uZWN0b3IvZW5jb2RlcilfbWFzay4KCkluIGh3IHN0YXRl IHdlIHVzZSB3aGF0J3MgZGlzcGxheWVkIGluIGhhcmR3YXJlOgotIGVuYWJsZSwgYWN0aXZlLCAo YWRqdXN0ZWQpIG1vZGUsIGNvbG9yIHByb3BlcnR5IGJsb2JzLgoKY2xlYXJfaW50ZWxfY3J0Y19z dGF0ZSBhbmQgaHcgcmVhZG91dCBuZWVkIHRvIGJlIHVwZGF0ZWQgZm9yIHRoZXNlIHJ1bGVzLAp3 aGljaCB3aWxsIGFsbG93IHVzIHRvIGVuYWJsZSAyIGpvaW5lZCBwaXBlcy4KCk5vdGU6Ci0gV2hl biBtYWtpbmcgY2FsbGluZyBhdG9taWNfY29tbWl0KCkgeW91IG5lZWQgdG8gbWFuaXB1bGF0ZSB0 aGUgdWFwaQogIHZhcmlhYmxlcywgYXRvbWljX2NoZWNrKCkgd2lsbCBjb3B5IGl0IHRvIGh3LiBU aGlzIGlzIGJlY2F1c2UgeW91J3JlCiAganVzdCBhbm90aGVyIGF0b21pYyBjbGllbnQuIE9mIGNv dXJzZSB5b3UgY2FuIHN0aWxsIGNoZWNrIGh3IG1lbWJlcnMKICBhdCB0aGF0IHBvaW50IHRvIGRl Y2lkZSBpZiBhIHBpcGUgaXMgYWN0aXZlLgotIEluIGdlbmVyYWwgeW91IHNob3VsZCBsb29rIGF0 IHRoZSBodyBtZW1iZXJzIHdoZW4gYXZhaWxhYmxlLCB1bmxlc3MKICB0aGVyZSdzIGEgZ29vZCBy ZWFzb24gdG8gZG8gc29tZXRoaW5nIGVsc2UuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmto b3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogTWF0 dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ljbF9kc2kuYyAgICAgICAgfCAgMTggKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8ICAxNCArLQogLi4uL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jIHwgICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMgICAgfCAgMTIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYncuYyAgICAgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9jZGNsay5jICAgIHwgIDE2ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2NvbG9yLmMgICAgfCAxODAgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2NydC5jICAgICAgfCAgMjQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgICB8ICAzNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgIHwgNTQ0ICsrKysrKysrKy0tLS0tLS0tLQogLi4uL2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgIDI4ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgICAgICAgfCAgNDIgKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgICB8ICAgNiArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jIHwgIDE0ICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgfCAgMjAgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHZvLmMgICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYyAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYyAgICAgfCAgNjQgKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jICAgICB8ICAxMiArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jICAgIHwgIDE0ICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgICAgICB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMgICAgIHwgIDIyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jICAgfCAgMjUgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfdHYuYyAgICAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF92ZHNjLmMgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L3Zsdl9kc2kuYyAgICAgICAgfCAgMjAgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jICAgICAgICAgICB8ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYyAgICAgICAgICAgICAgIHwgMTgwICsrKy0tLQogMzAgZmlsZXMgY2hhbmdlZCwgNzAy IGluc2VydGlvbnMoKyksIDY2NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaWNsX2RzaS5jCmluZGV4IDZlMzk4YzMzYTUyNC4uMGUyNGI4ZTI1N2U1IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwpAQCAtMjc2LDcgKzI3Niw3IEBAIHN0YXRpYyB2 b2lkIGNvbmZpZ3VyZV9kdWFsX2xpbmtfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAogCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluayA9PSBEU0lfRFVBTF9MSU5LX0ZST05UX0JB Q0spIHsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQot CQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCQkJJnBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlOwogCQl1MzIgZHNzX2N0bDI7CiAJCXUxNiBoYWN0aXZlID0gYWRq dXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKIAkJdTE2IGRsX2J1ZmZlcl9kZXB0aDsKQEAgLTYy NSw3ICs2MjUsNyBAQCBnZW4xMV9kc2lfY29uZmlndXJlX3RyYW5zY29kZXIoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxf ZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZp Zy0+dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdTMy IHRtcDsKIAllbnVtIHBvcnQgcG9ydDsKQEAgLTc2OCw3ICs3NjgsNyBAQCBnZW4xMV9kc2lfc2V0 X3RyYW5zY29kZXJfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNv ZGVyLT5iYXNlKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9Ci0JCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkJCQkmcGlwZV9j b25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJZW51bSBwb3J0IHBvcnQ7CiAJZW51bSB0cmFuc2Nv ZGVyIGRzaV90cmFuczsKIAkvKiBob3Jpem9udGFsIHRpbWluZ3MgKi8KQEAgLTEyMTYsNyArMTIx Niw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9nZXRfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9f aW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9Ci0JCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkJ CQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAlpZiAoaW50ZWxfZHNpLT5kdWFs X2xpbmspIHsKIAkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAqPSAyOwpAQCAtMTI0Miwx NiArMTI0MiwxNiBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAKIAkvKiBG SVhNRTogYWRhcHQgaWNsX2RkaV9jbG9ja19nZXQoKSBmb3IgRFNJIGFuZCB1c2UgdGhhdD8gKi8K IAlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9CiAJCWNubF9jYWxjX3dycGxsX2xpbmsoZGV2X3By aXYsICZwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSk7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBpbnRlbF9kc2ktPnBjbGs7CisJcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGludGVsX2RzaS0+cGNsazsKIAlpZiAoaW50 ZWxfZHNpLT5kdWFsX2xpbmspCi0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0 Y19jbG9jayAqPSAyOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2Nr ICo9IDI7CiAKIAlnZW4xMV9kc2lfZ2V0X3RpbWluZ3MoZW5jb2RlciwgcGlwZV9jb25maWcpOwog CXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9EU0kpOwpAQCAt MTI2NSwxMSArMTI2NSwxMSBAQCBzdGF0aWMgaW50IGdlbjExX2RzaV9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9k c2kgPSBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RzaSwKIAkJCQkJCSAgIGJh c2UpOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2Rz aS0+YXR0YWNoZWRfY29ubmVjdG9yOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUgPQogCQkJCQlpbnRlbF9jb25uZWN0b3ItPnBh bmVsLmZpeGVkX21vZGU7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCQkJJnBpcGVfY29u ZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJcGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPSBJ TlRFTF9PVVRQVVRfRk9STUFUX1JHQjsKIAlpbnRlbF9maXhlZF9wYW5lbF9tb2RlKGZpeGVkX21v ZGUsIGFkanVzdGVkX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXRvbWljLmMKaW5kZXggYzVhNTUyYTY5NzUyLi5jZWNmY2MyMTAwOGIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYwpAQCAtMTg2LDEzICsxODYsMTQgQEAg aW50ZWxfZGlnaXRhbF9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IpCiBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKgogaW50ZWxfY3J0Y19kdXBs aWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogeworCWNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+ c3RhdGUpOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCi0JY3J0Y19z dGF0ZSA9IGttZW1kdXAoY3J0Yy0+c3RhdGUsIHNpemVvZigqY3J0Y19zdGF0ZSksIEdGUF9LRVJO RUwpOworCWNydGNfc3RhdGUgPSBrbWVtZHVwKG9sZF9jcnRjX3N0YXRlLCBzaXplb2YoKmNydGNf c3RhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNydGNfc3RhdGUpCiAJCXJldHVybiBOVUxMOwog Ci0JX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmY3J0Y19z dGF0ZS0+YmFzZSk7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShj cnRjLCAmY3J0Y19zdGF0ZS0+dWFwaSk7CiAKIAljcnRjX3N0YXRlLT51cGRhdGVfcGlwZSA9IGZh bHNlOwogCWNydGNfc3RhdGUtPmRpc2FibGVfbHBfd20gPSBmYWxzZTsKQEAgLTIwNCw3ICsyMDUs NyBAQCBpbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJ Y3J0Y19zdGF0ZS0+ZmJfYml0cyA9IDA7CiAJY3J0Y19zdGF0ZS0+dXBkYXRlX3BsYW5lcyA9IDA7 CiAKLQlyZXR1cm4gJmNydGNfc3RhdGUtPmJhc2U7CisJcmV0dXJuICZjcnRjX3N0YXRlLT51YXBp OwogfQogCiAvKioKQEAgLTIxOSw3ICsyMjAsMTAgQEAgdm9pZAogaW50ZWxfY3J0Y19kZXN0cm95 X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCSBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KnN0YXRlKQogewotCWRybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZShjcnRjLCBz dGF0ZSk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSB0b19pbnRlbF9j cnRjX3N0YXRlKHN0YXRlKTsKKworCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0 YXRlKCZjcnRjX3N0YXRlLT51YXBpKTsKKwlrZnJlZShjcnRjX3N0YXRlKTsKIH0KIAogc3RhdGlj IHZvaWQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zY2FsZXJf c3RhdGUgKnNjYWxlcl9zdGF0ZSwKQEAgLTMxOCw3ICszMjIsNyBAQCBpbnQgaW50ZWxfYXRvbWlj X3NldHVwX3NjYWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCXN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9j cnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KIAkJJmNydGNfc3RhdGUtPnNjYWxlcl9z dGF0ZTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRlID0gY3J0Y19zdGF0ZS0+ YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0YXRlID0gY3J0Y19z dGF0ZS0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0 ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShkcm1fc3RhdGUpOwogCWludCBudW1fc2NhbGVyc19u ZWVkOwogCWludCBpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9hdG9taWNfcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YXRvbWljX3BsYW5lLmMKaW5kZXggOThiNzc2NmVhYTdhLi5hMWEzNGI5OTgxY2MgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYwpAQCAt MjcxLDcgKzI3MSw3IEBAIHZvaWQgaW50ZWxfdXBkYXRlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFu ZSAqcGxhbmUsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PnVhcGkuY3J0Yyk7CiAKIAl0cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBj cnRjKTsKIAlwbGFuZS0+dXBkYXRlX3BsYW5lKHBsYW5lLCBjcnRjX3N0YXRlLCBwbGFuZV9zdGF0 ZSk7CkBAIC0yODEsNyArMjgxLDcgQEAgdm9pZCBpbnRlbF91cGRhdGVfc2xhdmUoc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZSwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCXRyYWNlX2ludGVsX3VwZGF0ZV9wbGFuZSgmcGxhbmUt PmJhc2UsIGNydGMpOwogCXBsYW5lLT51cGRhdGVfc2xhdmUocGxhbmUsIGNydGNfc3RhdGUsIHBs YW5lX3N0YXRlKTsKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIGludGVsX3VwZGF0ZV9zbGF2ZShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogdm9pZCBpbnRlbF9kaXNhYmxlX3BsYW5lKHN0cnVj dCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAl0cmFjZV9pbnRlbF9kaXNhYmxl X3BsYW5lKCZwbGFuZS0+YmFzZSwgY3J0Yyk7CiAJcGxhbmUtPmRpc2FibGVfcGxhbmUocGxhbmUs IGNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9hdWRpby5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5j CmluZGV4IDU0NjM4ZDk5ZTAyMS4uMTliMmFmNGI5ZjgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9hdWRpby5jCkBAIC0yMzMsNyArMjMzLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBoZG1pX2F1ZF9uY3RzIGhkbWlfYXVkX25jdHNfMzZicHBbXSA9IHsKIHN0YXRpYyB1 MzIgYXVkaW9fY29uZmlnX2hkbWlfcGl4ZWxfY2xvY2soY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0 Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBB UlJBWV9TSVpFKGhkbWlfYXVkaW9fY2xvY2spOyBpKyspIHsKQEAgLTU1NCw3ICs1NTQsNyBAQCBz dGF0aWMgdm9pZCBpbGtfYXVkaW9fY29kZWNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCQkgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9j b25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBw aXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsK IAl1MzIgdG1wLCBlbGR2OwpAQCAtNjAxLDcgKzYwMSw3IEBAIHN0YXRpYyB2b2lkIGlsa19hdWRp b19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbm5f c3RhdGUtPmNvbm5lY3RvcjsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJZW51bSBw b3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwpAQCAtNjkxLDEwICs2OTEsMTAgQEAgdm9pZCBpbnRl bF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNl LmRldik7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5h dWRpb19jb21wb25lbnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciA9IGNvbm5fc3RhdGUtPmNvbm5lY3RvcjsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVk X21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWVudW0gcG9ydCBwb3J0 ID0gZW5jb2Rlci0+cG9ydDsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKQEAgLTc1 Miw3ICs3NTIsNyBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGk5MTVfYXVkaW9fY29tcG9u ZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJZW51bSBwaXBlIHBp cGUgPSBjcnRjLT5waXBlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2J3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMK aW5kZXggY2Q1OGU0N2FiN2IyLi44N2ZjNGExZjlhMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2J3LmMKQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IGludGVsX2J3X2NydGNfbnVtX2FjdGl2ZV9wbGFuZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdAogCiBzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2J3X2NydGNfZGF0YV9yYXRlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXVuc2lnbmVkIGludCBkYXRhX3JhdGUgPSAwOwogCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQ7 CiAKQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGludGVsX2J3X2NydGNf ZGF0YV9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjXwogdm9pZCBpbnRl bF9id19jcnRjX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgKmJ3X3N0YXRlLAogCQkJICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKIAogCWJ3X3N0YXRlLT5kYXRhX3JhdGVbY3J0Yy0+cGlwZV0gPQogCQlpbnRlbF9id19j cnRjX2RhdGFfcmF0ZShjcnRjX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfY2RjbGsuYwppbmRleCA0MzU2NDI5NWI4NjQuLjE3ZmZlN2ZiYWEyMSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jZGNsay5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYwpAQCAtMTkxNywxMCArMTkxNywx MCBAQCBzdGF0aWMgaW50IGludGVsX3BpeGVsX3JhdGVfdG9fY2RjbGsoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogaW50IGludGVsX2NydGNfY29tcHV0ZV9taW5fY2RjbGsoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMt PmRldik7CisJCXRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWludCBtaW5f Y2RjbGs7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQorCWlmICghY3J0Y19zdGF0 ZS0+aHcuZW5hYmxlKQogCQlyZXR1cm4gMDsKIAogCW1pbl9jZGNsayA9IGludGVsX3BpeGVsX3Jh dGVfdG9fY2RjbGsoZGV2X3ByaXYsIGNydGNfc3RhdGUtPnBpeGVsX3JhdGUpOwpAQCAtMjA0Myw3 ICsyMDQzLDcgQEAgc3RhdGljIHU4IGJ4dF9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCSAgICAgICBzaXplb2Yoc3RhdGUtPm1pbl92 b2x0YWdlX2xldmVsKSk7CiAKIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0 ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUp CisJCWlmIChjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCQlzdGF0ZS0+bWluX3ZvbHRhZ2VfbGV2 ZWxbaV0gPQogCQkJCWNydGNfc3RhdGUtPm1pbl92b2x0YWdlX2xldmVsOwogCQllbHNlCkBAIC0y MTI5LDcgKzIxMjksNyBAQCBzdGF0aWMgaW50IHNrbF9kcGxsMF92Y28oc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAJCXZjbyA9IGRldl9wcml2LT5za2xfcHJlZmVycmVkX3Zjb19m cmVxOwogCiAJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNy dGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwkJaWYgKCFj cnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCQljb250aW51ZTsKIAogCQlpZiAoIWludGVsX2NydGNf aGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0VEUCkpCkBAIC0yMjU1LDExICsyMjU1 LDExIEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpCiAJCQlyZXR1cm4g UFRSX0VSUihjcnRjX3N0YXRlKTsKIAotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8 Ci0JCSAgICBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+YmFzZSkp CisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CisJCSAgICBkcm1fYXRvbWljX2NydGNf bmVlZHNfbW9kZXNldCgmY3J0Y19zdGF0ZS0+dWFwaSkpCiAJCQljb250aW51ZTsKIAotCQljcnRj X3N0YXRlLT5iYXNlLm1vZGVfY2hhbmdlZCA9IHRydWU7CisJCWNydGNfc3RhdGUtPnVhcGkubW9k ZV9jaGFuZ2VkID0gdHJ1ZTsKIAogCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25u ZWN0b3JzKCZzdGF0ZS0+YmFzZSwKIAkJCQkJCQkgJmNydGMtPmJhc2UpOwpAQCAtMjMxMCw3ICsy MzEwLDcgQEAgaW50IGludGVsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKIAkJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9wcml2 LCBwaXBlKTsKIAkJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUo c3RhdGUsIGNydGMpOwogCQlpZiAoY3J0Y19zdGF0ZSAmJgotCQkgICAgZHJtX2F0b21pY19jcnRj X25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmJhc2UpKQorCQkgICAgZHJtX2F0b21pY19jcnRj X25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPnVhcGkpKQogCQkJcGlwZSA9IElOVkFMSURfUElQ RTsKIAl9IGVsc2UgewogCQlwaXBlID0gSU5WQUxJRF9QSVBFOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCmluZGV4IDlhYjM0OTAyNjYzZS4uNWNlNTZhNmQwZWQ2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9yLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCkBAIC0xMTcs MTAgKzExNywxMCBAQCBzdGF0aWMgYm9vbCBsdXRfaXNfbGVnYWN5KGNvbnN0IHN0cnVjdCBkcm1f cHJvcGVydHlfYmxvYiAqbHV0KQogCiBzdGF0aWMgYm9vbCBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9n YW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlyZXR1 cm4gIWNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQgJiYKLQkJIWNydGNfc3RhdGUtPmJhc2Uu Y3RtICYmCi0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCi0JCWx1dF9pc19sZWdhY3ko Y3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQpOworCXJldHVybiAhY3J0Y19zdGF0ZS0+aHcuZGVn YW1tYV9sdXQgJiYKKwkJIWNydGNfc3RhdGUtPmh3LmN0bSAmJgorCQljcnRjX3N0YXRlLT5ody5n YW1tYV9sdXQgJiYKKwkJbHV0X2lzX2xlZ2FjeShjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQpOwog fQogCiAvKgpAQCAtMjA1LDcgKzIwNSw3IEBAIHN0YXRpYyB2b2lkIGljbF91cGRhdGVfb3V0cHV0 X2NzYyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogc3RhdGljIGJvb2wgaWxrX2NzY19saW1p dGVkX3JhbmdlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJLyoKIAkgKiBGSVhNRSBpZiB0 aGVyZSdzIGEgZ2FtbWEgTFVUIGFmdGVyIHRoZSBDU0MsIHdlIHNob3VsZApAQCAtMjE5LDcgKzIx OSw3IEBAIHN0YXRpYyBib29sIGlsa19jc2NfbGltaXRlZF9yYW5nZShjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGlsa19jc2NfY29udmVydF9j dG0oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJdTE2IGNv ZWZmc1s5XSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0 ZS0+YmFzZS5jdG0tPmRhdGE7CisJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9jdG0gKmN0bSA9IGNy dGNfc3RhdGUtPmh3LmN0bS0+ZGF0YTsKIAljb25zdCB1NjQgKmlucHV0OwogCXU2NCB0ZW1wWzld OwogCWludCBpOwpAQCAtMjcwLDExICsyNzAsMTEgQEAgc3RhdGljIHZvaWQgaWxrX2NzY19jb252 ZXJ0X2N0bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogc3Rh dGljIHZvaWQgaWxrX2xvYWRfY3NjX21hdHJpeChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlib29sIGxpbWl0ZWRf Y29sb3JfcmFuZ2UgPSBpbGtfY3NjX2xpbWl0ZWRfcmFuZ2UoY3J0Y19zdGF0ZSk7CiAKLQlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5jdG0pIHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKSB7CiAJCXUx NiBjb2VmZls5XTsKIAogCQlpbGtfY3NjX2NvbnZlcnRfY3RtKGNydGNfc3RhdGUsIGNvZWZmKTsK QEAgLTMwOSwxMCArMzA5LDEwIEBAIHN0YXRpYyB2b2lkIGlsa19sb2FkX2NzY19tYXRyaXgoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGlj bF9sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5j dG0pIHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKSB7CiAJCXUxNiBjb2VmZls5XTsKIAogCQlp bGtfY3NjX2NvbnZlcnRfY3RtKGNydGNfc3RhdGUsIGNvZWZmKTsKQEAgLTMzOCwxMiArMzM4LDEy IEBAIHN0YXRpYyB2b2lkIGljbF9sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAgKi8KIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfbG9hZF9j c2NfbWF0cml4KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAot CWlmIChjcnRjX3N0YXRlLT5iYXNlLmN0bSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0 bSAqY3RtID0gY3J0Y19zdGF0ZS0+YmFzZS5jdG0tPmRhdGE7CisJaWYgKGNydGNfc3RhdGUtPmh3 LmN0bSkgeworCQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+ aHcuY3RtLT5kYXRhOwogCQl1MTYgY29lZmZzWzldID0ge307CiAJCWludCBpOwogCkBAIC00MDQs NyArNDA0LDcgQEAgc3RhdGljIHUzMiBpbGtfbHV0XzEwKGNvbnN0IHN0cnVjdCBkcm1fY29sb3Jf bHV0ICpjb2xvcikKIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzX2ludGVybmFsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBjb25zdCBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludCBpOwpAQCAtNDM1LDEyICs0MzUsMTIgQEAg c3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWk5eHhfbG9hZF9sdXRz X2ludGVybmFsKGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0KTsKKwlpOXh4 X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjX3N0YXRlLCBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQp OwogfQogCiBzdGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKQEAgLTQ1Myw3ICs0NTMsNyBAQCBz dGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaWxrX2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKQEAgLTQ2OCw3ICs0 NjgsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBoc3dfY29sb3JfY29tbWl0KGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCiAJSTkxNV9XUklURShHQU1NQV9NT0RFKGNydGMtPnBpcGUpLCBjcnRjX3N0 YXRlLT5nYW1tYV9tb2RlKTsKQEAgLTQ3OCw3ICs0NzgsNyBAQCBzdGF0aWMgdm9pZCBoc3dfY29s b3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBz dGF0aWMgdm9pZCBza2xfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKIAl1MzIgdmFsID0gMDsKQEAgLTUyNCw4ICs1MjQsOCBAQCBzdGF0aWMg dm9pZCBpOTY1X2xvYWRfbHV0XzEwcDYoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRp YyB2b2lkIGk5NjVfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2Ft bWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9s dXQ7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJ VCkKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC01NDcsOCArNTQ3LDggQEAgc3Rh dGljIHZvaWQgaWxrX2xvYWRfbHV0XzEwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0 aWMgdm9pZCBpbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2Ft bWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9s dXQ7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJ VCkKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC02NTQsOSArNjU0LDkgQEAgc3Rh dGljIHZvaWQgaXZiX2xvYWRfbHV0X2V4dF9tYXgoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAK IHN0YXRpYyB2b2lkIGl2Yl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9i ICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKLQljb25zdCBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1h X2x1dDsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1 dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQ7CiAKIAlpZiAo Y3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkgewogCQlpOXh4 X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsKQEAgLTY3Nyw5ICs2NzcsOSBAQCBzdGF0aWMgdm9pZCBp dmJfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CiBzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0JY29uc3Qgc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVnYW1t YV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9s dXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0OwogCiAJaWYg KGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKIAkJaTl4 eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC03MDAsMTEgKzcwMCwxMSBAQCBzdGF0aWMgdm9p ZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogCiBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVt IHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJY29uc3QgdTMyIGx1dF9zaXplID0gSU5URUxfSU5G TyhkZXZfcHJpdiktPmNvbG9yLmRlZ2FtbWFfbHV0X3NpemU7Ci0JY29uc3Qgc3RydWN0IGRybV9j b2xvcl9sdXQgKmx1dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQtPmRhdGE7CisJY29u c3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0 LT5kYXRhOwogCXUzMiBpOwogCiAJLyoKQEAgLTczOSw3ICs3MzksNyBAQCBzdGF0aWMgdm9pZCBn bGtfbG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIAogc3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFyKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCB1MzIgbHV0X3NpemUg PSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKQEAgLTc2Niw4 ICs3NjYsOCBAQCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAogCiBzdGF0aWMgdm9pZCBnbGtfbG9h ZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWNv bnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFz ZS5nYW1tYV9sdXQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpn YW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAkvKgogCSAq IE9uIEdMSysgYm90aCBwaXBlIENTQyBhbmQgZGVnYW1tYSBMVVQgYXJlIGNvbnRyb2xsZWQKQEAg LTc3Nyw3ICs3NzcsNyBAQCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCSAqIHRoZSBkZWdhbWEgTFVUIHNvIHRoYXQg d2UgZG9uJ3QgaGF2ZSB0byByZWxvYWQKIAkgKiBpdCBldmVyeSB0aW1lIHRoZSBwaXBlIENTQyBp cyBiZWluZyBlbmFibGVkLgogCSAqLwotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0 KQorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCkKIAkJZ2xrX2xvYWRfZGVnYW1tYV9s dXQoY3J0Y19zdGF0ZSk7CiAJZWxzZQogCQlnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY3J0 Y19zdGF0ZSk7CkBAIC04MDgsNyArODA4LDcgQEAgc3RhdGljIHZvaWQKIGljbF9sb2FkX2djbWF4 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCSAgICAgICBjb25z dCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqY29sb3IpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3Ry dWN0IGludGVsX2RzYiAqZHNiID0gaW50ZWxfZHNiX2dldChjcnRjKTsKIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CiAKQEAgLTgyMiw4ICs4MjIsOCBAQCBpY2xfbG9hZF9nY21heChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHN0YXRpYyB2b2lkCiBpY2xf cHJvZ3JhbV9nYW1tYV9zdXBlcmZpbmVfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmJsb2IgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKKwljb25z dCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9s dXQ7CiAJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGJsb2ItPmRhdGE7CiAJc3Ry dWN0IGludGVsX2RzYiAqZHNiID0gaW50ZWxfZHNiX2dldChjcnRjKTsKIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CkBAIC04NTQsOCArODU0LDggQEAgaWNsX3Byb2dyYW1fZ2FtbWFfc3Vw ZXJmaW5lX3NlZ21lbnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiBzdGF0aWMgdm9pZAogaWNsX3Byb2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBjcnRjX3N0 YXRlLT5ody5nYW1tYV9sdXQ7CiAJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGJs b2ItPmRhdGE7CiAJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmVudHJ5OwogCXN0cnVjdCBp bnRlbF9kc2IgKmRzYiA9IGludGVsX2RzYl9nZXQoY3J0Yyk7CkBAIC05MTAsMTEgKzkxMCwxMSBA QCBpY2xfcHJvZ3JhbV9nYW1tYV9tdWx0aV9zZWdtZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBpY2xfbG9hZF9sdXRzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1f cHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRj X3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2RzYiAqZHNiID0g aW50ZWxfZHNiX2dldChjcnRjKTsKIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0 KQorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCkKIAkJZ2xrX2xvYWRfZGVnYW1tYV9s dXQoY3J0Y19zdGF0ZSk7CiAKIAlzd2l0Y2ggKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgJiBHQU1N QV9NT0RFX01PREVfTUFTSykgewpAQCAtOTkwLDkgKzk5MCw5IEBAIHN0YXRpYyB2b2lkIGNodl9s b2FkX2NnbV9nYW1tYShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogc3RhdGljIHZvaWQgY2h2 X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNy dGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0OworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwor CWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+ aHcuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9s dXQgPSBjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dDsKIAogCWNoZXJyeXZpZXdfbG9hZF9jc2Nf bWF0cml4KGNydGNfc3RhdGUpOwogCkBAIC0xMDEwLDI4ICsxMDEwLDI4IEBAIHN0YXRpYyB2b2lk IGNodl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAKIHZvaWQgaW50ZWxfY29sb3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwog CiAJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzKGNydGNfc3RhdGUpOwogfQogCiB2b2lkIGlu dGVsX2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCWRldl9wcml2LT5k aXNwbGF5LmNvbG9yX2NvbW1pdChjcnRjX3N0YXRlKTsKIH0KIAogaW50IGludGVsX2NvbG9yX2No ZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5k ZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJcmV0dXJuIGRldl9wcml2LT5kaXNwbGF5LmNvbG9y X2NoZWNrKGNydGNfc3RhdGUpOwogfQogCiB2b2lkIGludGVsX2NvbG9yX2dldF9jb25maWcoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51 YXBpLmNydGMtPmRldik7CiAKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkucmVhZF9sdXRzKQogCQlk ZXZfcHJpdi0+ZGlzcGxheS5yZWFkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC0xMDU1LDE2ICsxMDU1 LDE2IEBAIHN0YXRpYyBib29sIG5lZWRfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsCiBzdGF0aWMgaW50CiBpbnRlbF9jb2xvcl9hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9f aW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50 ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0 X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l OwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwKLQkgICAgZHJtX2F0b21p Y19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKKwlpZiAoIW5ld19j cnRjX3N0YXRlLT5ody5hY3RpdmUgfHwKKwkgICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVz ZXQoJm5ld19jcnRjX3N0YXRlLT51YXBpKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAobmV3X2NydGNf c3RhdGUtPmdhbW1hX2VuYWJsZSA9PSBvbGRfY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlICYmCkBA IC0xMTA2LDkgKzExMDYsOSBAQCBzdGF0aWMgaW50IGNoZWNrX2x1dF9zaXplKGNvbnN0IHN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqbHV0LCBpbnQgZXhwZWN0ZWQpCiAKIHN0YXRpYyBpbnQgY2hl Y2tfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJh c2UuY3J0Yy0+ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1 dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVy dHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0OworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjLT5kZXYpOworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0 ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlf YmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dDsKIAlpbnQgZ2Ft bWFfbGVuZ3RoLCBkZWdhbW1hX2xlbmd0aDsKIAl1MzIgZ2FtbWFfdGVzdHMsIGRlZ2FtbWFfdGVz dHM7CiAKQEAgLTExNTYsNyArMTE1Niw3IEBAIHN0YXRpYyBpbnQgaTl4eF9jb2xvcl9jaGVjayhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAogCWNy dGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYm CisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCQkhY3J0Y19zdGF0ZS0+YzhfcGxhbmVz OwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9IGk5eHhfZ2FtbWFfbW9kZShjcnRjX3N0YXRl KTsKQEAgLTExNzUsMTEgKzExNzUsMTEgQEAgc3RhdGljIHUzMiBjaHZfY2dtX21vZGUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKGNydGNfc3RhdGVfaXNf bGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWlmIChjcnRjX3N0YXRl LT5iYXNlLmRlZ2FtbWFfbHV0KQorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCkKIAkJ Y2dtX21vZGUgfD0gQ0dNX1BJUEVfTU9ERV9ERUdBTU1BOwotCWlmIChjcnRjX3N0YXRlLT5iYXNl LmN0bSkKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKQogCQljZ21fbW9kZSB8PSBDR01fUElQRV9N T0RFX0NTQzsKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQpCisJaWYgKGNydGNfc3Rh dGUtPmh3LmdhbW1hX2x1dCkKIAkJY2dtX21vZGUgfD0gQ0dNX1BJUEVfTU9ERV9HQU1NQTsKIAog CXJldHVybiBjZ21fbW9kZTsKQEAgLTEyNTMsNyArMTI1Myw3IEBAIHN0YXRpYyBpbnQgaWxrX2Nv bG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQlyZXR1cm4g cmV0OwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlID0KLQkJY3J0Y19zdGF0ZS0+YmFzZS5n YW1tYV9sdXQgJiYKKwkJY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0ICYmCiAJCSFjcnRjX3N0YXRl LT5jOF9wbGFuZXM7CiAKIAkvKgpAQCAtMTI3OSw4ICsxMjc5LDggQEAgc3RhdGljIHUzMiBpdmJf Z2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlp ZiAoIWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSB8fAogCSAgICBjcnRjX3N0YXRlX2lzX2xlZ2Fj eV9nYW1tYShjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIEdBTU1BX01PREVfTU9ERV84QklUOwotCWVs c2UgaWYgKGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCi0JCSBjcnRjX3N0YXRlLT5iYXNl LmRlZ2FtbWFfbHV0KQorCWVsc2UgaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgorCQkg Y3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpCiAJCXJldHVybiBHQU1NQV9NT0RFX01PREVfU1BM SVQ7CiAJZWxzZQogCQlyZXR1cm4gR0FNTUFfTU9ERV9NT0RFXzEwQklUOwpAQCAtMTI5NCw3ICsx Mjk0LDcgQEAgc3RhdGljIHUzMiBpdmJfY3NjX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiAJICogQ1NDIGNvbWVzIGFmdGVyIHRoZSBMVVQgaW4gZGVnYW1t YSwgUkdCLT5ZQ2JDciwKIAkgKiBhbmQgUkdCIGZ1bGwtPmxpbWl0ZWQgcmFuZ2UgbW9kZS4KIAkg Ki8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCB8fAorCWlmIChjcnRjX3N0YXRl LT5ody5kZWdhbW1hX2x1dCB8fAogCSAgICBjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ICE9IElO VEVMX09VVFBVVF9GT1JNQVRfUkdCIHx8CiAJICAgIGxpbWl0ZWRfY29sb3JfcmFuZ2UpCiAJCXJl dHVybiAwOwpAQCAtMTMxMiwxMyArMTMxMiwxMyBAQCBzdGF0aWMgaW50IGl2Yl9jb2xvcl9jaGVj ayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAog CWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCShjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1 dCB8fAotCQkgY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkgJiYKKwkJKGNydGNfc3RhdGUt Pmh3LmdhbW1hX2x1dCB8fAorCQkgY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpICYmCiAJCSFj cnRjX3N0YXRlLT5jOF9wbGFuZXM7CiAKIAljcnRjX3N0YXRlLT5jc2NfZW5hYmxlID0KIAkJY3J0 Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCAhPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JHQiB8fAotCQlj cnRjX3N0YXRlLT5iYXNlLmN0bSB8fCBsaW1pdGVkX2NvbG9yX3JhbmdlOworCQljcnRjX3N0YXRl LT5ody5jdG0gfHwgbGltaXRlZF9jb2xvcl9yYW5nZTsKIAogCWNydGNfc3RhdGUtPmdhbW1hX21v ZGUgPSBpdmJfZ2FtbWFfbW9kZShjcnRjX3N0YXRlKTsKIApAQCAtMTM0OSwxNCArMTM0OSwxNCBA QCBzdGF0aWMgaW50IGdsa19jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0J CWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1 dCAmJgogCQkhY3J0Y19zdGF0ZS0+YzhfcGxhbmVzOwogCiAJLyogT24gR0xLKyBkZWdhbW1hIExV VCBpcyBjb250cm9sbGVkIGJ5IGNzY19lbmFibGUgKi8KIAljcnRjX3N0YXRlLT5jc2NfZW5hYmxl ID0KLQkJY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCB8fAorCQljcnRjX3N0YXRlLT5ody5k ZWdhbW1hX2x1dCB8fAogCQljcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ICE9IElOVEVMX09VVFBV VF9GT1JNQVRfUkdCIHx8Ci0JCWNydGNfc3RhdGUtPmJhc2UuY3RtIHx8IGNydGNfc3RhdGUtPmxp bWl0ZWRfY29sb3JfcmFuZ2U7CisJCWNydGNfc3RhdGUtPmh3LmN0bSB8fCBjcnRjX3N0YXRlLT5s aW1pdGVkX2NvbG9yX3JhbmdlOwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9IGdsa19nYW1t YV9tb2RlKGNydGNfc3RhdGUpOwogCkBAIC0xMzczLDE0ICsxMzczLDE0IEBAIHN0YXRpYyB1MzIg aWNsX2dhbW1hX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7CiAJdTMyIGdhbW1hX21vZGUgPSAwOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1t YV9sdXQpCisJaWYgKGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0KQogCQlnYW1tYV9tb2RlIHw9 IFBSRV9DU0NfR0FNTUFfRU5BQkxFOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0 ICYmCisJaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCSAgICAhY3J0Y19zdGF0ZS0+ YzhfcGxhbmVzKQogCQlnYW1tYV9tb2RlIHw9IFBPU1RfQ1NDX0dBTU1BX0VOQUJMRTsKIAotCWlm ICghY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgfHwKKwlpZiAoIWNydGNfc3RhdGUtPmh3Lmdh bW1hX2x1dCB8fAogCSAgICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkK IAkJZ2FtbWFfbW9kZSB8PSBHQU1NQV9NT0RFX01PREVfOEJJVDsKIAllbHNlCkBAIC0xMzkzLDcg KzEzOTMsNyBAQCBzdGF0aWMgdTMyIGljbF9jc2NfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAl1MzIgY3NjX21vZGUgPSAwOwogCi0JaWYgKGNydGNf c3RhdGUtPmJhc2UuY3RtKQorCWlmIChjcnRjX3N0YXRlLT5ody5jdG0pCiAJCWNzY19tb2RlIHw9 IElDTF9DU0NfRU5BQkxFOwogCiAJaWYgKGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgIT0gSU5U RUxfT1VUUFVUX0ZPUk1BVF9SR0IgfHwKQEAgLTE0NzAsNyArMTQ3MCw3IEBAIHN0YXRpYyBpbnQg Z2xrX2dhbW1hX3ByZWNpc2lvbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIAogaW50IGludGVsX2NvbG9yX2dldF9nYW1tYV9iaXRfcHJlY2lzaW9uKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwogCiAJaWYgKCFjcnRjX3N0YXRlLT5nYW1tYV9lbmFibGUpCkBAIC0xNTc5LDcgKzE1Nzks NyBAQCBzdGF0aWMgdTMyIGludGVsX2NvbG9yX2x1dF9wYWNrKHUzMiB2YWwsIHUzMiBiaXRfcHJl Y2lzaW9uKQogc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCiBpOXh4X3JlYWRfbHV0 XzgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqYmxvYjsKQEAgLTE2MTMsMTMgKzE2MTMsMTMgQEAgaTl4eF9yZWFk X2x1dF84KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0 aWMgdm9pZCBpOXh4X3JlYWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSkKIHsKLQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGk5eHhfcmVhZF9sdXRfOChjcnRj X3N0YXRlKTsKKwljcnRjX3N0YXRlLT51YXBpLmdhbW1hX2x1dCA9IGk5eHhfcmVhZF9sdXRfOChj cnRjX3N0YXRlKTsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCiBpOTY1 X3JlYWRfbHV0XzEwcDYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGx1dF9zaXplID0gSU5URUxfSU5GTyhk ZXZfcHJpdiktPmNvbG9yLmdhbW1hX2x1dF9zaXplOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKQEAgLTE2NjAsMTUgKzE2NjAsMTUgQEAgaTk2NV9yZWFkX2x1dF8xMHA2KGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHZvaWQgaTk2NV9yZWFk X2x1dHMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJaWYgKGNydGNf c3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpCi0JCWNydGNfc3RhdGUt PmJhc2UuZ2FtbWFfbHV0ID0gaTl4eF9yZWFkX2x1dF84KGNydGNfc3RhdGUpOworCQljcnRjX3N0 YXRlLT51YXBpLmdhbW1hX2x1dCA9IGk5eHhfcmVhZF9sdXRfOChjcnRjX3N0YXRlKTsKIAllbHNl Ci0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ID0gaTk2NV9yZWFkX2x1dF8xMHA2KGNydGNf c3RhdGUpOworCQljcnRjX3N0YXRlLT51YXBpLmdhbW1hX2x1dCA9IGk5NjVfcmVhZF9sdXRfMTBw NihjcnRjX3N0YXRlKTsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCiBj aHZfcmVhZF9jZ21fbHV0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXUzMiBsdXRfc2l6ZSA9IElOVEVMX0lORk8o ZGV2X3ByaXYpLT5jb2xvci5nYW1tYV9sdXRfc2l6ZTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CkBAIC0xNzAyLDE1ICsxNzAyLDE1IEBAIGNodl9yZWFkX2NnbV9sdXQoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBjaHZfcmVhZF9s dXRzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCWlmIChjcnRjX3N0 YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84QklUKQotCQljcnRjX3N0YXRlLT5i YXNlLmdhbW1hX2x1dCA9IGk5eHhfcmVhZF9sdXRfOChjcnRjX3N0YXRlKTsKKwkJY3J0Y19zdGF0 ZS0+dWFwaS5nYW1tYV9sdXQgPSBpOXh4X3JlYWRfbHV0XzgoY3J0Y19zdGF0ZSk7CiAJZWxzZQot CQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGNodl9yZWFkX2NnbV9sdXQoY3J0Y19zdGF0 ZSk7CisJCWNydGNfc3RhdGUtPnVhcGkuZ2FtbWFfbHV0ID0gY2h2X3JlYWRfY2dtX2x1dChjcnRj X3N0YXRlKTsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCiBpbGtfcmVh ZF9sdXRfMTAoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGx1dF9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJp diktPmNvbG9yLmdhbW1hX2x1dF9zaXplOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK QEAgLTE3NDMsMTUgKzE3NDMsMTUgQEAgaWxrX3JlYWRfbHV0XzEwKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHZvaWQgaWxrX3JlYWRfbHV0cyhzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlpZiAoY3J0Y19zdGF0ZS0+Z2Ft bWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkKLQkJY3J0Y19zdGF0ZS0+YmFzZS5nYW1t YV9sdXQgPSBpOXh4X3JlYWRfbHV0XzgoY3J0Y19zdGF0ZSk7CisJCWNydGNfc3RhdGUtPnVhcGku Z2FtbWFfbHV0ID0gaTl4eF9yZWFkX2x1dF84KGNydGNfc3RhdGUpOwogCWVsc2UKLQkJY3J0Y19z dGF0ZS0+YmFzZS5nYW1tYV9sdXQgPSBpbGtfcmVhZF9sdXRfMTAoY3J0Y19zdGF0ZSk7CisJCWNy dGNfc3RhdGUtPnVhcGkuZ2FtbWFfbHV0ID0gaWxrX3JlYWRfbHV0XzEwKGNydGNfc3RhdGUpOwog fQogCiBzdGF0aWMgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICoKIGdsa19yZWFkX2x1dF8xMChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgdTMyIHByZWNfaW5kZXgp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJaW50IGh3X2x1dF9zaXplID0gaXZiX2x1dF8x MF9zaXplKHByZWNfaW5kZXgpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTE3 ODksOSArMTc4OSw5IEBAIGdsa19yZWFkX2x1dF8xMChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwgdTMyIHByZWNfaW5kZXgpCiBzdGF0aWMgdm9pZCBnbGtfcmVhZF9s dXRzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCWlmIChjcnRjX3N0 YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84QklUKQotCQljcnRjX3N0YXRlLT5i YXNlLmdhbW1hX2x1dCA9IGk5eHhfcmVhZF9sdXRfOChjcnRjX3N0YXRlKTsKKwkJY3J0Y19zdGF0 ZS0+dWFwaS5nYW1tYV9sdXQgPSBpOXh4X3JlYWRfbHV0XzgoY3J0Y19zdGF0ZSk7CiAJZWxzZQot CQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGdsa19yZWFkX2x1dF8xMChjcnRjX3N0YXRl LCBQQUxfUFJFQ19JTkRFWF9WQUxVRSgwKSk7CisJCWNydGNfc3RhdGUtPnVhcGkuZ2FtbWFfbHV0 ID0gZ2xrX3JlYWRfbHV0XzEwKGNydGNfc3RhdGUsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApKTsK IH0KIAogdm9pZCBpbnRlbF9jb2xvcl9pbml0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKaW5kZXggZTZlOGQ0YTgyMDQ0Li4z NWEyNTE3MmIyNjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfY3J0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYwpA QCAtMTMyLDkgKzEzMiw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydF9nZXRfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMg fD0gQklUKElOVEVMX09VVFBVVF9BTkFMT0cpOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZS5mbGFncyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVuY29kZXIpOworCXBpcGVfY29u ZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGludGVsX2NydF9nZXRfZmxhZ3MoZW5jb2Rl cik7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBl X2NvbmZpZy0+cG9ydF9jbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGhzd19j cnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKQEAgLTE0NCwxMyAr MTQ0LDEzIEBAIHN0YXRpYyB2b2lkIGhzd19jcnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAogCWludGVsX2RkaV9nZXRfY29uZmlnKGVuY29kZXIsIHBpcGVfY29u ZmlnKTsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJj0gfihEUk1f TU9ERV9GTEFHX1BIU1lOQyB8CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3Mg Jj0gfihEUk1fTU9ERV9GTEFHX1BIU1lOQyB8CiAJCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfTkhT WU5DIHwKIAkJCQkJICAgICAgRFJNX01PREVfRkxBR19QVlNZTkMgfAogCQkJCQkgICAgICBEUk1f TU9ERV9GTEFHX05WU1lOQyk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFn cyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVuY29kZXIpOworCXBpcGVfY29uZmlnLT5ody5hZGp1 c3RlZF9tb2RlLmZsYWdzIHw9IGludGVsX2NydF9nZXRfZmxhZ3MoZW5jb2Rlcik7CiAKLQlwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBscHRfZ2V0X2ljbGtpcChk ZXZfcHJpdik7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGxw dF9nZXRfaWNsa2lwKGRldl9wcml2KTsKIH0KIAogLyogTm90ZTogVGhlIGNhbGxlciBpcyByZXF1 aXJlZCB0byBmaWx0ZXIgb3V0IGRwbXMgbW9kZXMgbm90IHN1cHBvcnRlZCBieSB0aGUKQEAgLTE2 MSw4ICsxNjEsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRfc2V0X2RwbXMoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2NydCAqY3J0ID0g aW50ZWxfZW5jb2Rlcl90b19jcnQoZW5jb2Rlcik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdTMyIGFkcGE7CiAKIAlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1KQpAQCAtMjcxLDcgKzI3MSw3IEBAIHN0YXRpYyB2 b2lkIGhzd19wcmVfZW5hYmxlX2NydChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 CiAKIAlXQVJOX09OKCFjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpOwpAQCAtMjg4LDcgKzI4 OCw3IEBAIHN0YXRpYyB2b2lkIGhzd19lbmFibGVfY3J0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogCQkJICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRj LT5waXBlOwogCiAJV0FSTl9PTighY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVyKTsKQEAgLTM1 OCw3ICszNTgsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPQotCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01P REVfRkxBR19EQkxTQ0FOKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM3Myw3ICszNzMsNyBAQCBz dGF0aWMgaW50IHBjaF9jcnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7 CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCiAJ CXJldHVybiAtRUlOVkFMOwpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyBpbnQgaHN3X2NydF9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7 CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCiAJ CXJldHVybiAtRUlOVkFMOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMK aW5kZXggMTRmZTk4Nzg4OGE2Li41Y2MwNmNjYjYxZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kZGkuYwpAQCAtMTQ3OSw3ICsxNDc5LDcgQEAgc3RhdGljIHZvaWQgZGRp X2RvdGNsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiAJaWYg KHBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyKQogCQlkb3RjbG9jayAvPSBwaXBlX2NvbmZp Zy0+cGl4ZWxfbXVsdGlwbGllcjsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUu Y3J0Y19jbG9jayA9IGRvdGNsb2NrOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2sgPSBkb3RjbG9jazsKIH0KIAogc3RhdGljIHZvaWQgaWNsX2RkaV9jbG9ja19nZXQo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCkBAIC0xNjk0LDcgKzE2OTQsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCiB2b2lkIGludGVsX2RkaV9zZXRfcGlwZV9zZXR0aW5ncyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVt IHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsK IAl1MzIgdGVtcDsKQEAgLTE3NTQsNyArMTc1NCw3IEBAIHZvaWQgaW50ZWxfZGRpX3NldF9waXBl X3NldHRpbmdzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogdm9p ZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAgIGJvb2wgc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+ Y3B1X3RyYW5zY29kZXI7CiAJdTMyIHRlbXA7CkBAIC0xNzc2LDcgKzE3NzYsNyBAQCB2b2lkIGlu dGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKIHN0YXRpYyB1MzIKIGludGVsX2RkaV90cmFuc2NvZGVyX2Z1bmNfcmVn X3ZhbF9nZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRlbF9k ZGlfZ2V0X2NydGNfZW5jb2RlcihjcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CkBAIC0xODA4LDkgKzE4MDgsOSBAQCBpbnRlbF9kZGlfdHJhbnNjb2Rlcl9mdW5jX3Jl Z192YWxfZ2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQlC VUcoKTsKIAl9CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYg RFJNX01PREVfRkxBR19QVlNZTkMpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUu ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKIAkJdGVtcCB8PSBUUkFOU19ERElfUFZTWU5D OwotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX1BIU1lOQykKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERS TV9NT0RFX0ZMQUdfUEhTWU5DKQogCQl0ZW1wIHw9IFRSQU5TX0RESV9QSFNZTkM7CiAKIAlpZiAo Y3B1X3RyYW5zY29kZXIgPT0gVFJBTlNDT0RFUl9FRFApIHsKQEAgLTE4NjMsNyArMTg2Myw3IEBA IGludGVsX2RkaV90cmFuc2NvZGVyX2Z1bmNfcmVnX3ZhbF9nZXQoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2Nv ZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g Y3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAJdTMyIHRlbXA7CkBAIC0xODc5LDcgKzE4Nzks NyBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHZvaWQKIGludGVsX2RkaV9jb25m aWdfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJh bnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCXUzMiB0ZW1wOwpAQCAtMTg5 MSw3ICsxODkxLDcgQEAgaW50ZWxfZGRpX2NvbmZpZ190cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaW50ZWxfZGRpX2Rpc2Fi bGVfdHJhbnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJh bnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCWk5MTVfcmVnX3QgcmVnID0g VFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKTsKQEAgLTIxODksNyArMjE4OSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2RkaV9nZXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAogdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRlbF9kZGlfZ2V0X2Ny dGNfZW5jb2RlcihjcnRjKTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CkBAIC0y MjA3LDcgKzIyMDcsNyBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogdm9pZCBpbnRlbF9kZGlfZGlz YWJsZV9waXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWVudW0gdHJhbnNjb2Rl ciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCiAJaWYgKGNw dV90cmFuc2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKSB7CkBAIC0zMzk5LDcgKzMzOTksNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ CQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAt MzgyNCw3ICszODI0LDcgQEAgaW50ZWxfZGRpX3VwZGF0ZV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAogCVdBUk5fT04oY3J0YyAmJiBjcnRjLT5hY3RpdmUpOwogCiAJ aW50ZWxfdGNfcG9ydF9nZXRfbGluayhlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpLCBy ZXF1aXJlZF9sYW5lcyk7Ci0JaWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUpCisJaWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlpbnRlbF91 cGRhdGVfYWN0aXZlX2RwbGwoc3RhdGUsIGNydGMsIGVuY29kZXIpOwogfQogCkBAIC0zOTU0LDcg KzM5NTQsNyBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAllbnVtIHRyYW5zY29k ZXIgY3B1X3RyYW5zY29kZXIgPSBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXI7CiAJdTMyIHRl bXAsIGZsYWdzID0gMDsKIApAQCAtMzk3Miw3ICszOTcyLDcgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAllbHNlCiAJCWZsYWdzIHw9 IERSTV9NT0RFX0ZMQUdfTlZTWU5DOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZS5mbGFncyB8PSBmbGFnczsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8 PSBmbGFnczsKIAogCXN3aXRjaCAodGVtcCAmIFRSQU5TX0RESV9CUENfTUFTSykgewogCWNhc2Ug VFJBTlNfRERJX0JQQ182OgpAQCAtNDExOCw3ICs0MTE4LDcgQEAgc3RhdGljIGludCBpbnRlbF9k ZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQkgICAgc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJaW50IHJldDsKQEAgLTQy NDksNyArNDI0OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRtaV9yZXNldF9saW5rKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJV0FSTl9PTighaW50ZWxfY3J0Y19oYXNfdHlwZShj cnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNl LmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIDA7CiAKIAlp ZiAoIWNydGNfc3RhdGUtPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlvICYmCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IDhmMTI1ZjE2MjRiZC4u NmVjMTc5MzJlMGRjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYwpAQCAtNTE4LDcgKzUxOCw3IEBAIGljbF93YV9zY2FsZXJjbGtnYXRpbmcoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKIHN0YXRpYyBib29s CiBuZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKIHsK LQlyZXR1cm4gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJnN0YXRlLT5iYXNlKTsKKwly ZXR1cm4gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJnN0YXRlLT51YXBpKTsKIH0KIAog LyoKQEAgLTYzMiw3ICs2MzIsNyBAQCBpOXh4X3NlbGVjdF9wMl9kaXYoY29uc3Qgc3RydWN0IGlu dGVsX2xpbWl0ICpsaW1pdCwKIAkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJCSAgIGludCB0YXJnZXQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNy dGMtPmRldik7CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9P VVRQVVRfTFZEUykpIHsKIAkJLyoKQEAgLTY2OCw3ICs2NjgsNyBAQCBpOXh4X2ZpbmRfYmVzdF9k cGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAJCSAgICBpbnQgdGFyZ2V0LCBp bnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCiAJCSAgICBzdHJ1Y3QgZHBsbCAq YmVzdF9jbG9jaykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPnVhcGku Y3J0Yy0+ZGV2OwogCXN0cnVjdCBkcGxsIGNsb2NrOwogCWludCBlcnIgPSB0YXJnZXQ7CiAKQEAg LTcyNiw3ICs3MjYsNyBAQCBwbnZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xp bWl0ICpsaW1pdCwKIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKm1h dGNoX2Nsb2NrLAogCQkgICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jaykKIHsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7CisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcGxsIGNs b2NrOwogCWludCBlcnIgPSB0YXJnZXQ7CiAKQEAgLTc4Miw3ICs3ODIsNyBAQCBnNHhfZmluZF9i ZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKIAkJICAgaW50IHRhcmdl dCwgaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKm1hdGNoX2Nsb2NrLAogCQkgICBzdHJ1Y3QgZHBs bCAqYmVzdF9jbG9jaykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPnVh cGkuY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcGxsIGNsb2NrOwogCWludCBtYXhfbjsKIAlib29sIGZv dW5kID0gZmFsc2U7CkBAIC04NzYsNyArODc2LDcgQEAgdmx2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0 IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAJCSAgIGludCB0YXJnZXQsIGludCByZWZjbGss IHN0cnVjdCBkcGxsICptYXRjaF9jbG9jaywKIAkJICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2sp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJh c2UuZGV2OwogCXN0cnVjdCBkcGxsIGNsb2NrOwogCXVuc2lnbmVkIGludCBiZXN0cHBtID0gMTAw MDAwMDsKQEAgLTkzNiw3ICs5MzYsNyBAQCBjaHZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0 IGludGVsX2xpbWl0ICpsaW1pdCwKIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgc3RydWN0 IGRwbGwgKm1hdGNoX2Nsb2NrLAogCQkgICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jaykKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7 CiAJdW5zaWduZWQgaW50IGJlc3RfZXJyb3JfcHBtOwogCXN0cnVjdCBkcGxsIGNsb2NrOwpAQCAt MTAxNSw3ICsxMDE1LDcgQEAgYm9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKIAkgKiBmb3IgYXRvbWljLgogCSAqLwogCXJldHVybiBjcnRjLT5hY3RpdmUgJiYg Y3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmIgJiYKLQkJY3J0Yy0+Y29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwkJY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl LmNydGNfY2xvY2s7CiB9CiAKIGVudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFu c2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEwNjksNyArMTA2 OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3dhaXRfZm9yX3BpcGVfc2NhbmxpbmVfbW92aW5nKHN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogc3RhdGljIHZvaWQKIGludGVsX3dhaXRfZm9yX3BpcGVf b2ZmKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9j cnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikg Pj0gNCkgewpAQCAtMTUyOCw3ICsxNTI4LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9lbmFibGVfcGxs KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfcGxs KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtMTYxOSw3 ICsxNjE5LDcgQEAgdm9pZCB2bHZfd2FpdF9wb3J0X3JlYWR5KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFuc2Nv ZGVyKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpOTE1X3Jl Z190IHJlZzsKQEAgLTE3NjMsNyArMTc2Myw3IEBAIGVudW0gcGlwZSBpbnRlbF9jcnRjX3BjaF90 cmFuc2NvZGVyKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCiBzdGF0aWMgdTMyIGludGVsX2Ny dGNfbWF4X3ZibGFua19jb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCS8qCiAJICog T24gaTk2NWdtIHRoZSBoYXJkd2FyZSBmcmFtZSBjb3VudGVyIHJlYWRzCkBAIC0xNzgzLDcgKzE3 ODMsNyBAQCBzdGF0aWMgdTMyIGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZQogCiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRj X3ZibGFua19vbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAogCWRybV9jcnRjX3NldF9tYXhfdmJsYW5rX2NvdW50KCZjcnRj LT5iYXNlLAogCQkJCSAgICAgIGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjcnRjX3N0YXRl KSk7CkBAIC0xNzkyLDcgKzE3OTIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3ZibGFua19v bihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZv aWQgaW50ZWxfZW5hYmxlX3BpcGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19j cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhu ZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFu c2NvZGVyIGNwdV90cmFuc2NvZGVyID0gbmV3X2NydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwog CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTE4NTAsNyArMTg1MCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2VuYWJsZV9waXBlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpu ZXdfY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9waXBlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IG9sZF9j cnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 CkBAIC0zMTE2LDE0ICszMTE2LDE0IEBAIGludGVsX3NldF9wbGFuZV92aXNpYmxlKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUg PSB2aXNpYmxlOwogCiAJaWYgKHZpc2libGUpCi0JCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFz ayB8PSBkcm1fcGxhbmVfbWFzaygmcGxhbmUtPmJhc2UpOworCQljcnRjX3N0YXRlLT51YXBpLnBs YW5lX21hc2sgfD0gZHJtX3BsYW5lX21hc2soJnBsYW5lLT5iYXNlKTsKIAllbHNlCi0JCWNydGNf c3RhdGUtPmJhc2UucGxhbmVfbWFzayAmPSB+ZHJtX3BsYW5lX21hc2soJnBsYW5lLT5iYXNlKTsK KwkJY3J0Y19zdGF0ZS0+dWFwaS5wbGFuZV9tYXNrICY9IH5kcm1fcGxhbmVfbWFzaygmcGxhbmUt PmJhc2UpOwogfQogCiBzdGF0aWMgdm9pZCBmaXh1cF9hY3RpdmVfcGxhbmVzKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCiAJLyoKQEAgLTMxMzQsNyArMzEz NCw3IEBAIHN0YXRpYyB2b2lkIGZpeHVwX2FjdGl2ZV9wbGFuZXMoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiAJY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyA9IDA7CiAKIAlk cm1fZm9yX2VhY2hfcGxhbmVfbWFzayhwbGFuZSwgJmRldl9wcml2LT5kcm0sCi0JCQkJY3J0Y19z dGF0ZS0+YmFzZS5wbGFuZV9tYXNrKQorCQkJCWNydGNfc3RhdGUtPnVhcGkucGxhbmVfbWFzaykK IAkJY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyB8PSBCSVQodG9faW50ZWxfcGxhbmUocGxhbmUp LT5pZCk7CiB9CiAKQEAgLTM2MDgsNyArMzYwOCw3IEBAIGk5eHhfcGxhbmVfbWF4X3N0cmlkZShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCiBzdGF0aWMgdTMyIGk5eHhfcGxhbmVfY3RsX2Ny dGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAJdTMyIGRzcGNudHIgPSAwOwogCkBAIC0zNzYyLDcgKzM3NjIsNyBA QCBpOXh4X3BsYW5lX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CQlyZXR1cm4gcmV0OwogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3Rh dGUoJnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJ CSAgJmNydGNfc3RhdGUtPnVhcGksCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElO RywKIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAogCQkJCQkJICBpOXh4X3Bs YW5lX2hhc193aW5kb3dpbmcocGxhbmUpLApAQCAtMzkzOCw3ICszOTM4LDcgQEAgc3RhdGljIHZv aWQgc2tsX2RldGFjaF9zY2FsZXIoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIGludCBp ZCkKICAqLwogc3RhdGljIHZvaWQgc2tsX2RldGFjaF9zY2FsZXJzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0K IAkJJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKIAlpbnQgaTsKQEAgLTQxMzMsNyArNDEzMyw3 IEBAIHN0YXRpYyB1MzIgY25sX3BsYW5lX2N0bF9mbGlwKHVuc2lnbmVkIGludCByZWZsZWN0KQog CiB1MzIgc2tsX3BsYW5lX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXUzMiBw bGFuZV9jdGwgPSAwOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VN SU5JTEFLRShkZXZfcHJpdikpCkBAIC00MTg5LDcgKzQxODksNyBAQCB1MzIgc2tsX3BsYW5lX2N0 bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogdTMyIGdsa19w bGFuZV9jb2xvcl9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgcGxhbmVf Y29sb3JfY3RsID0gMDsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQpAQCAtNDQx MSwxMSArNDQxMSwxMSBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X3BpcGVfY2hpY2tlbihzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkJICAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCS8qIGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9s ZWdhY3lfbW9kZXNldF9zdGF0ZSBtaWdodCBub3QgYmUgY2FsbGVkLiAqLwotCWNydGMtPmJhc2Uu bW9kZSA9IG5ld19jcnRjX3N0YXRlLT5iYXNlLm1vZGU7CisJY3J0Yy0+YmFzZS5tb2RlID0gbmV3 X2NydGNfc3RhdGUtPnVhcGkubW9kZTsKIAogCS8qCiAJICogVXBkYXRlIHBpcGUgc2l6ZSBhbmQg YWRqdXN0IGZpdHRlciBpZiBuZWVkZWQ6IHRoZSByZWFzb24gZm9yIHRoaXMgaXMKQEAgLTQ4NDQs NyArNDg0NCw3IEBAIHN0YXRpYyB2b2lkIGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJhaW4oc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIGlyb25sYWtlX2ZkaV9wbGxfZW5hYmxl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxf Y3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190IHJlZzsKQEAgLTUwMDUsOSArNTAwNSw5IEBAIHZvaWQg bHB0X2Rpc2FibGVfaWNsa2lwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIC8q IFByb2dyYW0gaUNMS0lQIGNsb2NrIHRvIHRoZSBkZXNpcmVkIGZyZXF1ZW5jeSAqLwogc3RhdGlj IHZvaWQgbHB0X3Byb2dyYW1faWNsa2lwKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCWludCBjbG9jayA9IGNydGNf c3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCWludCBjbG9jayA9IGNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAl1MzIgZGl2c2VsLCBwaGFzZWlu YywgYXV4ZGl2LCBwaGFzZWRpciA9IDA7CiAJdTMyIHRlbXA7CiAKQEAgLTUxMjEsNyArNTEyMSw3 IEBAIGludCBscHRfZ2V0X2ljbGtpcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wY2hfdHJhbnNjb2Rlcl9zZXRfdGltaW5ncyhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkJCWVudW0gcGlwZSBwY2hf dHJhbnNjb2RlcikKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29kZXIg Y3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIApAQCAtNTE2NCw3 ICs1MTY0LDcgQEAgc3RhdGljIHZvaWQgY3B0X3NldF9mZGlfYmNfYmlmdXJjYXRpb24oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIGUKIAogc3RhdGljIHZvaWQgaXZ5YnJp ZGdlX3VwZGF0ZV9mZGlfYmNfYmlmdXJjYXRpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlzd2l0Y2ggKGNy dGMtPnBpcGUpIHsKQEAgLTUxOTQsNyArNTE5NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqCiBpbnRlbF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7CiAJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CkBAIC01 MjI2LDcgKzUyMjYsNyBAQCBpbnRlbF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFi bGUoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNy dGMtPnBpcGU7CkBAIC01MjgwLDcgKzUyODAsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wY2hf ZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWlmIChIQVNf UENIX0NQVChkZXZfcHJpdikgJiYKIAkgICAgaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRj X3N0YXRlKSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9Ci0JCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkJJmNydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGU7CiAJCXUzMiBicGMgPSAoSTkxNV9SRUFEKFBJUEVDT05GKHBpcGUp KSAmIFBJUEVDT05GX0JQQ19NQVNLKSA+PiA1OwogCQlpOTE1X3JlZ190IHJlZyA9IFRSQU5TX0RQ X0NUTChwaXBlKTsKIAkJZW51bSBwb3J0IHBvcnQ7CkBAIC01MzEwLDcgKzUzMTAsNyBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9wY2hfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogc3RhdGljIHZvaWQgbHB0X3BjaF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29k ZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIApAQCAtNTQy NywxMCArNTQyNywxMCBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCiAJc3RydWN0IGludGVsX2NydGNfc2Nh bGVyX3N0YXRlICpzY2FsZXJfc3RhdGUgPQogCQkmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwog CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0KLQkJdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCQl0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9jcnRj LT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZTsKIAogCS8qCiAJICogU3JjIGNvb3JkaW5hdGVzIGFyZSBhbHJlYWR5 IHJvdGF0ZWQgYnkgMjcwIGRlZ3JlZXMgZm9yCkBAIC01NDQ2LDcgKzU0NDYsNyBAQCBza2xfdXBk YXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3Jj ZV9kZXRhY2gsCiAJICogT25jZSBOVjEyIGlzIGVuYWJsZWQsIGhhbmRsZSBpdCBoZXJlIHdoaWxl IGFsbG9jYXRpbmcgc2NhbGVyCiAJICogZm9yIE5WMTIuCiAJICovCi0JaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gOSAmJiBjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSAmJgorCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpID49IDkgJiYgY3J0Y19zdGF0ZS0+aHcuZW5hYmxlICYmCiAJICAgIG5lZWRf c2NhbGVyICYmIGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0Up IHsKIAkJRFJNX0RFQlVHX0tNUygiUGlwZS9QbGFuZSBzY2FsaW5nIG5vdCBzdXBwb3J0ZWQgd2l0 aCBJRi1JRCBtb2RlXG4iKTsKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC01NTE4LDEzICs1NTE4LDEz IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LCBib29sIGZvcmNlX2RldGFjaCwKICAqLwogaW50IHNrbF91cGRhdGVfc2NhbGVyX2NydGMoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnN0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnN0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmc3RhdGUtPmh3LmFk anVzdGVkX21vZGU7CiAJYm9vbCBuZWVkX3NjYWxlciA9IGZhbHNlOwogCiAJaWYgKHN0YXRlLT5v dXRwdXRfZm9ybWF0ID09IElOVEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0MjApCiAJCW5lZWRfc2Nh bGVyID0gdHJ1ZTsKIAotCXJldHVybiBza2xfdXBkYXRlX3NjYWxlcihzdGF0ZSwgIXN0YXRlLT5i YXNlLmFjdGl2ZSwgU0tMX0NSVENfSU5ERVgsCisJcmV0dXJuIHNrbF91cGRhdGVfc2NhbGVyKHN0 YXRlLCAhc3RhdGUtPmh3LmFjdGl2ZSwgU0tMX0NSVENfSU5ERVgsCiAJCQkJICZzdGF0ZS0+c2Nh bGVyX3N0YXRlLnNjYWxlcl9pZCwKIAkJCQkgc3RhdGUtPnBpcGVfc3JjX3csIHN0YXRlLT5waXBl X3NyY19oLAogCQkJCSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5LApAQCAtNTYyNCw3ICs1 NjI0LDcgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV9zY2FsZXJfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKIAogc3RhdGljIHZvaWQgc2t5bGFrZV9wZml0X2VuYWJsZShjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2 KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc2NhbGVyX3N0YXRlICpzY2FsZXJfc3RhdGUgPQpAQCAtNTY2MSw3ICs1NjYxLDcgQEAgc3Rh dGljIHZvaWQgc2t5bGFrZV9wZml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC01NjgyLDcgKzU2ODIs NyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogdm9pZCBoc3dfZW5hYmxlX2lwcyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCkBAIC01NzE4LDcgKzU3MTgsNyBA QCB2b2lkIGhzd19lbmFibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogCiB2b2lkIGhzd19kaXNhYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwogCkBAIC01ODI4LDcgKzU4MjgsNyBAQCBpbnRlbF9wcmVfZGlz YWJsZV9wcmltYXJ5X25vYXRvbWljKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHN0YXRpYyBib29s IGhzd19wcmVfdXBkYXRlX2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0ZSwKIAkJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAK IAlpZiAoIW9sZF9jcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKQEAgLTU4NDQsNyArNTg0NCw3IEBA IHN0YXRpYyBib29sIGhzd19wcmVfdXBkYXRlX2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zCiAJICogRGlzYWJsZSBJUFMgYmVmb3JlIHdlIHByb2dy YW0gdGhlIExVVC4KIAkgKi8KIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYKLQkgICAgKG5l d19jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAorCSAgICAobmV3X2NydGNf c3RhdGUtPnVhcGkuY29sb3JfbWdtdF9jaGFuZ2VkIHx8CiAJICAgICBuZXdfY3J0Y19zdGF0ZS0+ dXBkYXRlX3BpcGUpICYmCiAJICAgIG5ld19jcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1B X01PREVfTU9ERV9TUExJVCkKIAkJcmV0dXJuIHRydWU7CkBAIC01ODU1LDcgKzU4NTUsNyBAQCBz dGF0aWMgYm9vbCBoc3dfcHJlX3VwZGF0ZV9kaXNhYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqb2xkX2NydGNfcwogc3RhdGljIGJvb2wgaHN3X3Bvc3RfdXBkYXRlX2VuYWJs ZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJ CSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhu ZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCWlmICghbmV3X2NydGNfc3RhdGUt Pmlwc19lbmFibGVkKQpAQCAtNTg3MSw3ICs1ODcxLDcgQEAgc3RhdGljIGJvb2wgaHN3X3Bvc3Rf dXBkYXRlX2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRj X3MKIAkgKiBSZS1lbmFibGUgSVBTIGFmdGVyIHRoZSBMVVQgaGFzIGJlZW4gcHJvZ3JhbW1lZC4K IAkgKi8KIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYKLQkgICAgKG5ld19jcnRjX3N0YXRl LT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAorCSAgICAobmV3X2NydGNfc3RhdGUtPnVhcGku Y29sb3JfbWdtdF9jaGFuZ2VkIHx8CiAJICAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUp ICYmCiAJICAgIG5ld19jcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV9T UExJVCkKIAkJcmV0dXJuIHRydWU7CkBAIC01ODgxLDcgKzU4ODEsNyBAQCBzdGF0aWMgYm9vbCBo c3dfcG9zdF91cGRhdGVfZW5hYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq b2xkX2NydGNfcwogCSAqIGZvcmNpYmx5IGVuYWJsZSBJUFMgb24gdGhlIGZpcnN0IGZhc3RzZXQu CiAJICovCiAJaWYgKG5ld19jcnRjX3N0YXRlLT51cGRhdGVfcGlwZSAmJgotCSAgICBvbGRfY3J0 Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxB R19JTkhFUklURUQpCisJICAgIG9sZF9jcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLnByaXZh dGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpCiAJCXJldHVybiB0cnVlOwogCiAJ cmV0dXJuICFvbGRfY3J0Y19zdGF0ZS0+aXBzX2VuYWJsZWQ7CkBAIC01OTEyLDEwICs1OTEyLDEw IEBAIHN0YXRpYyBib29sIG5lZWRzX3NjYWxlcmNsa193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyB2b2lkIGludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xkX2NydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xkX2NydGNfc3RhdGUtPnVhcGkuc3RhdGU7 CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnID0KIAkJaW50ZWxfYXRvbWlj X2dldF9uZXdfY3J0Y19zdGF0ZSh0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLAogCQkJCQkJ Y3J0Yyk7CkBAIC01OTI1LDcgKzU5MjUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5l X3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiAKIAlpbnRl bF9mcm9udGJ1ZmZlcl9mbGlwKHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpLCBwaXBlX2NvbmZpZy0+ ZmJfYml0cyk7CiAKLQlpZiAocGlwZV9jb25maWctPnVwZGF0ZV93bV9wb3N0ICYmIHBpcGVfY29u ZmlnLT5iYXNlLmFjdGl2ZSkKKwlpZiAocGlwZV9jb25maWctPnVwZGF0ZV93bV9wb3N0ICYmIHBp cGVfY29uZmlnLT5ody5hY3RpdmUpCiAJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOwog CiAJaWYgKGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKG9sZF9jcnRjX3N0YXRlLCBwaXBlX2Nv bmZpZykpCkBAIC01OTU1LDEwICs1OTU1LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX3Bvc3RfcGxh bmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHN0YXRp YyB2b2lkIGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9s ZF9jcnRjX3N0YXRlLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xkX2NydGNf c3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xk X2NydGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSA9IGNy dGMtPmJhc2UucHJpbWFyeTsKIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcHJpbWFyeV9z dGF0ZSA9CiAJCWRybV9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdGF0ZSwgcHJpbWFyeSk7 CkBAIC02MDAzLDcgKzYwMDMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRl KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkgKiBldmVudCB3aGlj aCBpcyBhZnRlciB0aGUgdmJsYW5rIHN0YXJ0IGV2ZW50LCBzbyB3ZSBuZWVkIHRvIGhhdmUgYQog CSAqIHdhaXQtZm9yLXZibGFuayBiZXR3ZWVuIGRpc2FibGluZyB0aGUgcGxhbmUgYW5kIHRoZSBw aXBlLgogCSAqLwotCWlmIChIQVNfR01DSChkZXZfcHJpdikgJiYgb2xkX2NydGNfc3RhdGUtPmJh c2UuYWN0aXZlICYmCisJaWYgKEhBU19HTUNIKGRldl9wcml2KSAmJiBvbGRfY3J0Y19zdGF0ZS0+ aHcuYWN0aXZlICYmCiAJICAgIHBpcGVfY29uZmlnLT5kaXNhYmxlX2N4c3IgJiYgaW50ZWxfc2V0 X21lbW9yeV9jeHNyKGRldl9wcml2LCBmYWxzZSkpCiAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhk ZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CiAKQEAgLTYwMTUsNyArNjAxNSw3IEBAIHN0YXRpYyB2b2lk IGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRj X3N0YXRlLAogCSAqIFdhQ3hTUkRpc2FibGVkRm9yU3ByaXRlU2NhbGluZzppdmIKIAkgKi8KIAlp ZiAocGlwZV9jb25maWctPmRpc2FibGVfbHBfd20gJiYgaWxrX2Rpc2FibGVfbHBfd20oZGV2KSAm JgotCSAgICBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJICAgIG9sZF9jcnRjX3N0YXRl LT5ody5hY3RpdmUpCiAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgY3J0Yy0+cGlw ZSk7CiAKIAkvKgpAQCAtNjMxMCw3ICs2MzEwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5jb2Rl cnNfdXBkYXRlX3BpcGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIGlu dGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lID0gdG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsKIAogCXBsYW5lLT5kaXNh YmxlX3BsYW5lKHBsYW5lLCBjcnRjX3N0YXRlKTsKQEAgLTYzMTksNyArNjMxOSw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0CiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJIHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmln LT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGku Y3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC02NDUzLDcgKzY0NTMsNyBA QCBzdGF0aWMgdm9pZCBpY2xfcGlwZV9tYnVzX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnLAogCQkJCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog ewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CiAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCWVudW0gcGlwZSBw aXBlID0gaW50ZWxfY3J0Yy0+cGlwZSwgaHN3X3dvcmthcm91bmRfcGlwZTsKQEAgLTY1NjIsNyAr NjU2Miw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2Fi bGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2Ny dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBl OwogCkBAIC02NTc4LDcgKzY1NzgsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2Fi bGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogc3RhdGlj IHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSwKIAkJCQkgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewot CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGM7CisJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gb2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0YzsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC02NjM3LDcgKzY2MzcsNyBAQCBzdGF0aWMgdm9pZCBp cm9ubGFrZV9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlLAogc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJCSBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5j cnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGM7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYp OwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK IAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBvbGRfY3J0Y19zdGF0ZS0+Y3B1X3Ry YW5zY29kZXI7CkBAIC02NjcxLDcgKzY2NzEsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNf ZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAKIHN0YXRp YyB2b2lkIGk5eHhfcGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlpZiAoIWNydGNfc3RhdGUt PmdtY2hfcGZpdC5jb250cm9sKQpAQCAtNjgwMSwxNCArNjgwMSwxNCBAQCBpbnRlbF9hdXhfcG93 ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQogCiBzdGF0aWMg dTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1NjQgbWFzazsKIAllbnVt IHRyYW5zY29kZXIgdHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCi0J aWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2 ZSkKIAkJcmV0dXJuIDA7CiAKIAltYXNrID0gQklUX1VMTChQT1dFUl9ET01BSU5fUElQRShwaXBl KSk7CkBAIC02ODE4LDcgKzY4MTgsNyBAQCBzdGF0aWMgdTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFp bnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCW1hc2sgfD0gQklUX1VM TChQT1dFUl9ET01BSU5fUElQRV9QQU5FTF9GSVRURVIocGlwZSkpOwogCiAJZHJtX2Zvcl9lYWNo X2VuY29kZXJfbWFzayhlbmNvZGVyLCAmZGV2X3ByaXYtPmRybSwKLQkJCQkgIGNydGNfc3RhdGUt PmJhc2UuZW5jb2Rlcl9tYXNrKSB7CisJCQkJICBjcnRjX3N0YXRlLT51YXBpLmVuY29kZXJfbWFz aykgewogCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciA9IHRvX2ludGVsX2Vu Y29kZXIoZW5jb2Rlcik7CiAKIAkJbWFzayB8PSBCSVRfVUxMKGludGVsX2VuY29kZXItPnBvd2Vy X2RvbWFpbik7CkBAIC02ODM2LDcgKzY4MzYsNyBAQCBzdGF0aWMgdTY0IGdldF9jcnRjX3Bvd2Vy X2RvbWFpbnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdTY0 CiBtb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBpbnRlbF9kaXNw bGF5X3Bvd2VyX2RvbWFpbiBkb21haW47CiAJdTY0IGRvbWFpbnMsIG5ld19kb21haW5zLCBvbGRf ZG9tYWluczsKQEAgLTY4NjUsNyArNjg2NSw3IEBAIHN0YXRpYyB2b2lkIG1vZGVzZXRfcHV0X3Bv d2VyX2RvbWFpbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZv aWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcsCiAJCQkJICAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgZHJt X2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFwaS5jcnRjOwogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKQEAgLTY5MjEsNyArNjkyMSw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdf Y3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCiBzdGF0 aWMgdm9pZCBpOXh4X3NldF9wbGxfZGl2aWRlcnMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlJOTE1X1dSSVRF KEZQMChjcnRjLT5waXBlKSwgY3J0Y19zdGF0ZS0+ZHBsbF9od19zdGF0ZS5mcDApOwpAQCAtNjkz MSw3ICs2OTMxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9zZXRfcGxsX2RpdmlkZXJzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHZvaWQgaTl4eF9jcnRj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgIHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlw ZV9jb25maWctPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2 OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC02 OTgxLDcgKzY5ODEsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogc3RhdGljIHZvaWQgaTl4eF9wZml0X2Rpc2Fi bGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2Ny dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlpZiAoIW9sZF9jcnRjX3N0YXRlLT5nbWNo X3BmaXQuY29udHJvbCkKQEAgLTY5OTcsNyArNjk5Nyw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfcGZp dF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkK IHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSwKIAkJCSAgICAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGM7 CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gb2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0YzsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC03MTY1LDggKzcxNjUsOCBAQCBzdGF0aWMg dm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQlpZiAoIWNydGNfc3RhdGUpCiAJCQlyZXR1cm47CiAKLQkJSTkxNV9T VEFURV9XQVJOKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwKLQkJICAgICAgImNvbm5lY3RvciBp cyBhY3RpdmUsIGJ1dCBhdHRhY2hlZCBjcnRjIGlzbid0XG4iKTsKKwkJSTkxNV9TVEFURV9XQVJO KCFjcnRjX3N0YXRlLT5ody5hY3RpdmUsCisJCQkJImNvbm5lY3RvciBpcyBhY3RpdmUsIGJ1dCBh dHRhY2hlZCBjcnRjIGlzbid0XG4iKTsKIAogCQlpZiAoIWVuY29kZXIgfHwgZW5jb2Rlci0+dHlw ZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQogCQkJcmV0dXJuOwpAQCAtNzE3Nyw4ICs3MTc3LDgg QEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJSTkxNV9TVEFURV9XQVJOKGNvbm5fc3RhdGUtPmNy dGMgIT0gZW5jb2Rlci0+YmFzZS5jcnRjLAogCQkJImF0dGFjaGVkIGVuY29kZXIgY3J0YyBkaWZm ZXJzIGZyb20gY29ubmVjdG9yIGNydGNcbiIpOwogCX0gZWxzZSB7Ci0JCUk5MTVfU1RBVEVfV0FS TihjcnRjX3N0YXRlICYmIGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlLAotCQkJImF0dGFjaGVkIGNy dGMgaXMgYWN0aXZlLCBidXQgY29ubmVjdG9yIGlzbid0XG4iKTsKKwkJSTkxNV9TVEFURV9XQVJO KGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+aHcuYWN0aXZlLAorCQkJCSJhdHRhY2hlZCBjcnRj IGlzIGFjdGl2ZSwgYnV0IGNvbm5lY3RvciBpc24ndFxuIik7CiAJCUk5MTVfU1RBVEVfV0FSTigh Y3J0Y19zdGF0ZSAmJiBjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIsCiAJCQkiYmVzdCBlbmNvZGVy IHNldCB3aXRob3V0IGNydGMhXG4iKTsKIAl9CkBAIC03MTg2LDcgKzcxODYsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50IHBpcGVfcmVxdWlyZWRfZmRpX2xhbmVzKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWlmIChjcnRjX3N0YXRlLT5iYXNl LmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCisJaWYgKGNydGNfc3RhdGUt Pmh3LmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNfcGNoX2VuY29kZXIpCiAJCXJldHVybiBjcnRj X3N0YXRlLT5mZGlfbGFuZXM7CiAKIAlyZXR1cm4gMDsKQEAgLTcxOTYsNyArNzE5Niw3IEBAIHN0 YXRpYyBpbnQgaXJvbmxha2VfY2hlY2tfZmRpX2xhbmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGVudW0gcGlwZSBwaXBlLAogCQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFz ZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+ dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqb3RoZXJfY3J0YzsKIAlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqb3RoZXJfY3J0Y19zdGF0ZTsKIApAQCAtNzI2OSw3ICs3MjY5LDcgQEAg c3RhdGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7 Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQg bGFuZSwgbGlua19idywgZmRpX2RvdGNsb2NrLCByZXQ7CiAJYm9vbCBuZWVkc19yZWNvbXB1dGUg PSBmYWxzZTsKIApAQCAtNzMxNSw3ICs3MzE1LDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9mZGlf Y29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAKIGJvb2wgaHN3 X2NydGNfc3RhdGVfaXBzX2NhcGFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAkvKiBJUFMgb25seSBleGlz dHMgb24gVUxUIG1hY2hpbmVzIGFuZCBpcyB0aWVkIHRvIHBpcGUgQS4gKi8KQEAgLTczNDUsOSAr NzM0NSw5IEBAIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFibGUoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgYm9vbCBoc3dfY29tcHV0ZV9pcHNf Y29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXYpOworCQl0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19z dGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNy dGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCiAJaWYgKCFoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJs ZShjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtNzM4Niw3ICs3Mzg2LDcgQEAgc3Rh dGljIHUzMiBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKIHsKIAl1MzIgcGl4ZWxfcmF0ZTsKIAotCXBpeGVsX3JhdGUgPSBwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CisJcGl4ZWxfcmF0ZSA9IHBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAKIAkvKgogCSAqIFdlIG9u bHkgdXNlIElGLUlEIGludGVybGFjaW5nLiBJZiB3ZSBldmVyIHVzZQpAQCAtNzQxOSwxMiArNzQx OSwxMiBAQCBzdGF0aWMgdTMyIGlsa19waXBlX3BpeGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2NvbXB1 dGVfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJh c2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCWlmIChIQVNfR01DSChkZXZfcHJp dikpCiAJCS8qIEZJWE1FIGNhbGN1bGF0ZSBwcm9wZXIgcGlwZSBwaXhlbCByYXRlIGZvciBHTUNI IHBmaXQgKi8KIAkJY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSA9Ci0JCQljcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwkJCWNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21v ZGUuY3J0Y19jbG9jazsKIAllbHNlCiAJCWNydGNfc3RhdGUtPnBpeGVsX3JhdGUgPQogCQkJaWxr X3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKQEAgLTc0MzQsNyArNzQzNCw3IEBAIHN0YXRp YyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK IAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK LQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWludCBj bG9ja19saW1pdCA9IGRldl9wcml2LT5tYXhfZG90Y2xrX2ZyZXE7CiAKIAlpZiAoSU5URUxfR0VO KGRldl9wcml2KSA8IDQpIHsKQEAgLTc0NjAsNyArNzQ2MCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf Y3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogCWlmICgocGlw ZV9jb25maWctPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCB8 fAogCSAgICAgcGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1B VF9ZQ0JDUjQ0NCkgJiYKLQkgICAgIHBpcGVfY29uZmlnLT5iYXNlLmN0bSkgeworCSAgICAgcGlw ZV9jb25maWctPmh3LmN0bSkgewogCQkvKgogCQkgKiBUaGVyZSBpcyBvbmx5IG9uZSBwaXBlIENT QyB1bml0IHBlciBwaXBlLCBhbmQgd2UgbmVlZCB0aGF0CiAJCSAqIGZvciBvdXRwdXQgY29udmVy c2lvbiBmcm9tIFJHQi0+WUNCQ1IuIFNvIGlmIENUTSBpcyBhbHJlYWR5CkBAIC03NjU0LDcgKzc2 NTQsNyBAQCBzdGF0aWMgdm9pZCB2bHZfcGxsYl9yZWNhbF9vcGFtcChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZQogc3RhdGljIHZvaWQgaW50ZWxfcGNoX3RyYW5z Y29kZXJfc2V0X21fbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtNzY4MSw3ICs3 NjgxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3B1X3RyYW5zY29kZXJfc2V0X21fbihjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGEKIAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRl bF9saW5rX21fbiAqbV9uLAogCQkJCQkgY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptMl9u MikKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBp cGU7CiAJZW51bSB0cmFuc2NvZGVyIHRyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNj b2RlcjsKQEAgLTc5OTQsNyArNzk5NCw3IEBAIGludCB2bHZfZm9yY2VfcGxsX29uKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUsCiAJaWYgKCFwaXBlX2Nv bmZpZykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5jcnRjID0gJmNy dGMtPmJhc2U7CisJcGlwZV9jb25maWctPnVhcGkuY3J0YyA9ICZjcnRjLT5iYXNlOwogCXBpcGVf Y29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0gMTsKIAlwaXBlX2NvbmZpZy0+ZHBsbCA9ICpkcGxs OwogCkBAIC04MTU0LDExICs4MTU0LDExIEBAIHN0YXRpYyB2b2lkIGk4eHhfY29tcHV0ZV9kcGxs KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpbnRlbF9zZXRfcGlwZV90 aW1pbmdzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAllbnVt IHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsK LQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0 YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1MzIgY3J0 Y192dG90YWwsIGNydGNfdmJsYW5rX2VuZDsKIAlpbnQgdnN5bmNzaGlmdCA9IDA7CiAKQEAgLTgy MTYsNyArODIxNiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3RpbWluZ3MoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lkIGludGVs X3NldF9waXBlX3NyY19zaXplKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKIApAQCAtODIzMCw3ICs4MjMwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0X3BpcGVf c3JjX3NpemUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0 YXRpYyBib29sIGludGVsX3BpcGVfaXNfaW50ZXJsYWNlZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2 KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJh bnNjb2RlcjsKIAogCWlmIChJU19HRU4oZGV2X3ByaXYsIDIpKQpAQCAtODI1MiwzOSArODI1Miwz OSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9nZXRfcGlwZV90aW1pbmdzKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAogCXUzMiB0bXA7CiAKIAl0bXAgPSBJOTE1X1JFQUQoSFRPVEFMKGNwdV90cmFuc2Nv ZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5ID0g KHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0 Y19odG90YWwgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5ID0gKHRtcCAmIDB4ZmZmZikgKyAxOworCXBpcGVf Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsID0gKCh0bXAgPj4gMTYpICYgMHhm ZmZmKSArIDE7CiAKIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkgewog CQl0bXAgPSBJOTE1X1JFQUQoSEJMQU5LKGNwdV90cmFuc2NvZGVyKSk7Ci0JCXBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQgPQorCQlwaXBlX2NvbmZpZy0+ aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19zdGFydCA9CiAJCQkJCQkJKHRtcCAmIDB4ZmZm ZikgKyAxOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2Vu ZCA9CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCA9CiAJ CQkJCQkoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAl9CiAJdG1wID0gSTkxNV9SRUFEKEhT WU5DKGNwdV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5j cnRjX2hzeW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19oc3luY19lbmQgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsg MTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0ID0gKHRt cCAmIDB4ZmZmZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHN5 bmNfZW5kID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAKIAl0bXAgPSBJOTE1X1JFQUQo VlRPVEFMKGNwdV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZS5jcnRjX3ZkaXNwbGF5ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y192dG90YWwgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsK KwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5ID0gKHRtcCAmIDB4 ZmZmZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsID0g KCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAKIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNw dV90cmFuc2NvZGVyKSkgewogCQl0bXAgPSBJOTE1X1JFQUQoVkJMQU5LKGNwdV90cmFuc2NvZGVy KSk7Ci0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192Ymxhbmtfc3RhcnQg PQorCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19zdGFydCA9CiAJ CQkJCQkJKHRtcCAmIDB4ZmZmZikgKyAxOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlLmNydGNfdmJsYW5rX2VuZCA9CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfdmJsYW5rX2VuZCA9CiAJCQkJCQkoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAl9CiAJ dG1wID0gSTkxNV9SRUFEKFZTWU5DKGNwdV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwot CXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192c3luY19lbmQgPSAoKHRtcCA+ PiAxNikgJiAweGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRj X3ZzeW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1 c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5kID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAK IAlpZiAoaW50ZWxfcGlwZV9pc19pbnRlcmxhY2VkKHBpcGVfY29uZmlnKSkgewotCQlwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfSU5URVJMQUNF OwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsICs9IDE7Ci0J CXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192YmxhbmtfZW5kICs9IDE7CisJ CXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfSU5U RVJMQUNFOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3Z0b3RhbCArPSAx OworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19lbmQgKz0gMTsK IAl9CiB9CiAKQEAgLTgyOTksMjcgKzgyOTksMjcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZ2V0X3Bp cGVfc3JjX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJcGlwZV9jb25maWctPnBpcGVf c3JjX2ggPSAodG1wICYgMHhmZmZmKSArIDE7CiAJcGlwZV9jb25maWctPnBpcGVfc3JjX3cgPSAo KHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAotCXBpcGVfY29uZmlnLT5iYXNlLm1vZGUudmRp c3BsYXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKLQlwaXBlX2NvbmZpZy0+YmFzZS5tb2Rl LmhkaXNwbGF5ID0gcGlwZV9jb25maWctPnBpcGVfc3JjX3c7CisJcGlwZV9jb25maWctPmh3Lm1v ZGUudmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKKwlwaXBlX2NvbmZpZy0+aHcu bW9kZS5oZGlzcGxheSA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193OwogfQogCiB2b2lkIGludGVs X21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJ CQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewotCW1vZGUtPmhkaXNw bGF5ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCW1v ZGUtPmh0b3RhbCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7 Ci0JbW9kZS0+aHN5bmNfc3RhcnQgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfaHN5bmNfc3RhcnQ7Ci0JbW9kZS0+aHN5bmNfZW5kID0gcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2hzeW5jX2VuZDsKKwltb2RlLT5oZGlzcGxheSA9IHBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7CisJbW9kZS0+aHRvdGFsID0gcGlwZV9j b25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7CisJbW9kZS0+aHN5bmNfc3RhcnQg PSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0OworCW1vZGUt PmhzeW5jX2VuZCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfZW5k OwogCi0JbW9kZS0+dmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfdmRpc3BsYXk7Ci0JbW9kZS0+dnRvdGFsID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZS5jcnRjX3Z0b3RhbDsKLQltb2RlLT52c3luY19zdGFydCA9IHBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y192c3luY19zdGFydDsKLQltb2RlLT52c3luY19lbmQgPSBwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5kOworCW1vZGUtPnZkaXNw bGF5ID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKKwltb2Rl LT52dG90YWwgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3Z0b3RhbDsKKwlt b2RlLT52c3luY19zdGFydCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdnN5 bmNfc3RhcnQ7CisJbW9kZS0+dnN5bmNfZW5kID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21v ZGUuY3J0Y192c3luY19lbmQ7CiAKLQltb2RlLT5mbGFncyA9IHBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuZmxhZ3M7CisJbW9kZS0+ZmxhZ3MgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZS5mbGFnczsKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVI7CiAKLQlt b2RlLT5jbG9jayA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsK Kwltb2RlLT5jbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7 CiAKIAltb2RlLT5oc3luYyA9IGRybV9tb2RlX2hzeW5jKG1vZGUpOwogCW1vZGUtPnZyZWZyZXNo ID0gZHJtX21vZGVfdnJlZnJlc2gobW9kZSk7CkBAIC04MzI4LDcgKzgzMjgsNyBAQCB2b2lkIGlu dGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwK IAogc3RhdGljIHZvaWQgaTl4eF9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIHBpcGVj b25mOwogCkBAIC04MzY1LDcgKzgzNjUsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3NldF9waXBlY29u Zihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJfQogCX0KIAot CWlmIChjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFH X0lOVEVSTEFDRSkgeworCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYg RFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKIAkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA0 IHx8CiAJCSAgICBpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9T RFZPKSkKIAkJCXBpcGVjb25mIHw9IFBJUEVDT05GX0lOVEVSTEFDRV9XX0ZJRUxEX0lORElDQVRJ T047CkBAIC04Nzc0LDcgKzg3NzQsNyBAQCBiZHdfZ2V0X3BpcGVtaXNjX291dHB1dF9mb3JtYXQo c3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0YXRpYyB2b2lkIGk5eHhfZ2V0X3BpcGVfY29s b3JfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShj cnRjLT5iYXNlLnByaW1hcnkpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5l ID0gcGxhbmUtPmk5eHhfcGxhbmU7CkBAIC04ODk3LDcgKzg4OTcsNyBAQCBzdGF0aWMgYm9vbCBp OXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkgKiBidXQgaW4g Y2FzZSB0aGUgcGlwZSBpcyBlbmFibGVkIHcvbyBhbnkgcG9ydHMgd2UgbmVlZCBhIHNhbmUKIAkg KiBkZWZhdWx0LgogCSAqLwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19j bG9jayA9CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CiAJCXBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrIC8gcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAK IAlyZXQgPSB0cnVlOwpAQCAtOTQxMiw3ICs5NDEyLDcgQEAgdm9pZCBpbnRlbF9pbml0X3BjaF9y ZWZjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgdm9pZCBp cm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRj LT5waXBlOwogCXUzMiB2YWw7CkBAIC05NDQwLDcgKzk0NDAsNyBAQCBzdGF0aWMgdm9pZCBpcm9u bGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiAJaWYgKGNydGNfc3RhdGUtPmRpdGhlcikKIAkJdmFsIHw9IChQSVBFQ09ORl9ESVRIRVJf RU4gfCBQSVBFQ09ORl9ESVRIRVJfVFlQRV9TUCk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCisJaWYgKGNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkK IAkJdmFsIHw9IFBJUEVDT05GX0lOVEVSTEFDRURfSUxLOwogCWVsc2UKIAkJdmFsIHw9IFBJUEVD T05GX1BST0dSRVNTSVZFOwpAQCAtOTQ2Niw3ICs5NDY2LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxh a2Vfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogCiBzdGF0aWMgdm9pZCBoYXN3ZWxsX3NldF9waXBlY29uZihjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVt IHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsK IAl1MzIgdmFsID0gMDsKQEAgLTk0NzQsNyArOTQ3NCw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxf c2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBjcnRjX3N0YXRlLT5kaXRoZXIpCiAJCXZhbCB8 PSAoUElQRUNPTkZfRElUSEVSX0VOIHwgUElQRUNPTkZfRElUSEVSX1RZUEVfU1ApOwogCi0JaWYg KGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5U RVJMQUNFKQorCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01P REVfRkxBR19JTlRFUkxBQ0UpCiAJCXZhbCB8PSBQSVBFQ09ORl9JTlRFUkxBQ0VEX0lMSzsKIAll bHNlCiAJCXZhbCB8PSBQSVBFQ09ORl9QUk9HUkVTU0lWRTsKQEAgLTk0ODksNyArOTQ4OSw3IEBA IHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBiZHdfc2V0X3BpcGVtaXNjKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCXUzMiB2YWwgPSAwOwogCkBAIC05Njc1LDcgKzk2NzUsNyBAQCBzdGF0aWMgaW50 IGlyb25sYWtlX2NydGNfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9Ci0JCXRvX2ludGVsX2F0 b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0 YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAq bGltaXQ7CiAJaW50IHJlZmNsayA9IDEyMDAwMDsKIApAQCAtMTAxMDAsNyArMTAxMDAsNyBAQCBz dGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21wdXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9f aW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9h dG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CiAKIAlpZiAoIWludGVsX2NydGNf aGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RTSSkgfHwKIAkgICAgSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMSkgewpAQCAtMTA2NzEsNyArMTA2NzEsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2NoZWNrX2N1cnNvcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9 CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3Rh dGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLAorCQkJCQkJICAmY3J0Y19zdGF0 ZS0+dWFwaSwKIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAogCQkJCQkJICBE Uk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcsCiAJCQkJCQkgIHRydWUsIHRydWUpOwpAQCAtMTA4 NTQsNyArMTA4NTQsNyBAQCBpOXh4X2N1cnNvcl9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFu ZSAqcGxhbmUsCiAKIHN0YXRpYyB1MzIgaTl4eF9jdXJzb3JfY3RsX2NydGMoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 CiAJdTMyIGNudGwgPSAwOwogCkBAIC0xMTI2MSwxMiArMTEyNjEsMTIgQEAgaW50IGludGVsX2dl dF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWdv dG8gZmFpbDsKIAl9CiAKLQljcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSA9IGNydGNfc3RhdGUtPmJh c2UuZW5hYmxlID0gdHJ1ZTsKKwljcnRjX3N0YXRlLT51YXBpLmFjdGl2ZSA9IGNydGNfc3RhdGUt PnVhcGkuZW5hYmxlID0gdHJ1ZTsKIAogCWlmICghbW9kZSkKIAkJbW9kZSA9ICZsb2FkX2RldGVj dF9tb2RlOwogCi0JcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0 ZS0+YmFzZSwgbW9kZSk7CisJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YygmY3J0 Y19zdGF0ZS0+dWFwaSwgbW9kZSk7CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwogCkBAIC0xMTQ3 NCw3ICsxMTQ3NCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9jbG9ja19nZXQoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJICogd2UgbWF5IG5lZWQgc29tZSBpZGVhIGZvciB0aGUgZG90 Y2xvY2sgYW55d2F5LgogCSAqIENhbGN1bGF0ZSBvbmUgYmFzZWQgb24gdGhlIEZESSBjb25maWd1 cmF0aW9uLgogCSAqLwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9j ayA9CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CiAJCWludGVs X2RvdGNsb2NrX2NhbGN1bGF0ZShpbnRlbF9mZGlfbGlua19mcmVxKGRldl9wcml2LCBwaXBlX2Nv bmZpZyksCiAJCQkJCSAmcGlwZV9jb25maWctPmZkaV9tX24pOwogfQpAQCAtMTE1MDQsNyArMTE1 MDQsNyBAQCBpbnRlbF9lbmNvZGVyX2N1cnJlbnRfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JY3J0Y19zdGF0ZS0+YmFzZS5jcnRjID0g JmNydGMtPmJhc2U7CisJY3J0Y19zdGF0ZS0+dWFwaS5jcnRjID0gJmNydGMtPmJhc2U7CiAKIAlp ZiAoIWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhjcnRjLCBjcnRjX3N0YXRlKSkg ewogCQlrZnJlZShjcnRjX3N0YXRlKTsKQEAgLTExNTc1LDEyICsxMTU3NSwxMiBAQCBpbnQgaW50 ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdlcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg Km9sZF9wbGFuZV9zdGF0ZSwKIAkJCQkgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l ID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWJvb2wg bW9kZV9jaGFuZ2VkID0gbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKTsKLQlib29sIHdhc19jcnRj X2VuYWJsZWQgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7Ci0JYm9vbCBpc19jcnRjX2Vu YWJsZWQgPSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZTsKKwlib29sIHdhc19jcnRjX2VuYWJsZWQg PSBvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOworCWJvb2wgaXNfY3J0Y19lbmFibGVkID0gY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlOwogCWJvb2wgdHVybl9vZmYsIHR1cm5fb24sIHZpc2libGUsIHdh c192aXNpYmxlOwogCWludCByZXQ7CiAKQEAgLTExNzQ3LDkgKzExNzQ3LDkgQEAgc3RhdGljIGlu dCBpY2xfYWRkX2xpbmtlZF9wbGFuZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUp CiAKIHN0YXRpYyBpbnQgaWNsX2NoZWNrX252MTJfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUt PmJhc2Uuc3RhdGUpOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50 ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUsICpsaW5rZWQ7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZTsKIAlpbnQgaTsKQEAgLTExODE5LDkgKzExODE5LDkgQEAgc3RhdGljIGludCBpY2xfY2hl Y2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0 YXRpYyBib29sIGM4X3BsYW5lc19jaGFuZ2VkKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19j cnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRj X3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBj cnRjKTsKIApAQCAtMTE4MzksMTAgKzExODM5LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19h dG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpfY3J0YywKIAlib29sIG1vZGVfY2hhbmdlZCA9 IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8 IDUgJiYgIUlTX0c0WChkZXZfcHJpdikgJiYKLQkgICAgbW9kZV9jaGFuZ2VkICYmICFjcnRjX3N0 YXRlLT5iYXNlLmFjdGl2ZSkKKwkgICAgbW9kZV9jaGFuZ2VkICYmICFjcnRjX3N0YXRlLT5ody5h Y3RpdmUpCiAJCWNydGNfc3RhdGUtPnVwZGF0ZV93bV9wb3N0ID0gdHJ1ZTsKIAotCWlmIChtb2Rl X2NoYW5nZWQgJiYgY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgJiYKKwlpZiAobW9kZV9jaGFuZ2Vk ICYmIGNydGNfc3RhdGUtPmh3LmVuYWJsZSAmJgogCSAgICBkZXZfcHJpdi0+ZGlzcGxheS5jcnRj X2NvbXB1dGVfY2xvY2sgJiYKIAkgICAgIVdBUk5fT04oY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwp KSB7CiAJCXJldCA9IGRldl9wcml2LT5kaXNwbGF5LmNydGNfY29tcHV0ZV9jbG9jayhjcnRjLCBj cnRjX3N0YXRlKTsKQEAgLTExODU1LDEwICsxMTg1NSwxMCBAQCBzdGF0aWMgaW50IGludGVsX2Ny dGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqX2NydGMsCiAJICogd2hlbiBDOCBwbGFu ZXMgYXJlIGdldHRpbmcgZW5hYmxlZC9kaXNhYmxlZC4KIAkgKi8KIAlpZiAoYzhfcGxhbmVzX2No YW5nZWQoY3J0Y19zdGF0ZSkpCi0JCWNydGNfc3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFuZ2Vk ID0gdHJ1ZTsKKwkJY3J0Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgPSB0cnVlOwog CiAJaWYgKG1vZGVfY2hhbmdlZCB8fCBjcnRjX3N0YXRlLT51cGRhdGVfcGlwZSB8fAotCSAgICBj cnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCkgeworCSAgICBjcnRjX3N0YXRlLT51 YXBpLmNvbG9yX21nbXRfY2hhbmdlZCkgewogCQlyZXQgPSBpbnRlbF9jb2xvcl9jaGVjayhjcnRj X3N0YXRlKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CkBAIC0xMTk4MCw3ICsxMTk4MCw3 IEBAIGNvbXB1dGVfYmFzZWxpbmVfcGlwZV9icHAoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsKKwlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+dWFwaS5zdGF0ZTsK IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwogCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7CiAJaW50IGJwcCwgaTsKQEAgLTEyMTMzLDcgKzEyMTMz LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJICAgc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsCiAJCQkJICAgY29uc3QgY2hhciAqY29udGV4dCkKIHsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGU7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKQEAgLTEyMTQyLDE0ICsxMjE0MiwxNCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogCURSTV9ERUJVR19LTVMoIltDUlRDOiVkOiVzXSBl bmFibGU6ICVzICVzXG4iLAogCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2Uu bmFtZSwKLQkJICAgICAgeWVzbm8ocGlwZV9jb25maWctPmJhc2UuZW5hYmxlKSwgY29udGV4dCk7 CisJCSAgICAgIHllc25vKHBpcGVfY29uZmlnLT5ody5lbmFibGUpLCBjb250ZXh0KTsKIAotCWlm ICghcGlwZV9jb25maWctPmJhc2UuZW5hYmxlKQorCWlmICghcGlwZV9jb25maWctPmh3LmVuYWJs ZSkKIAkJZ290byBkdW1wX3BsYW5lczsKIAogCXNucHJpbnRmX291dHB1dF90eXBlcyhidWYsIHNp emVvZihidWYpLCBwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzKTsKIAlEUk1fREVCVUdfS01TKCJh Y3RpdmU6ICVzLCBvdXRwdXRfdHlwZXM6ICVzICgweCV4KSwgb3V0cHV0IGZvcm1hdDogJXNcbiIs Ci0JCSAgICAgIHllc25vKHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSksCisJCSAgICAgIHllc25v KHBpcGVfY29uZmlnLT5ody5hY3RpdmUpLAogCQkgICAgICBidWYsIHBpcGVfY29uZmlnLT5vdXRw dXRfdHlwZXMsCiAJCSAgICAgIG91dHB1dF9mb3JtYXRzKHBpcGVfY29uZmlnLT5vdXRwdXRfZm9y bWF0KSk7CiAKQEAgLTEyMTg5LDEwICsxMjE4OSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1w X3BpcGVfY29uZmlnKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK IAkJaW50ZWxfZHVtcF9pbmZvZnJhbWUoZGV2X3ByaXYsICZwaXBlX2NvbmZpZy0+aW5mb2ZyYW1l cy5oZG1pKTsKIAogCURSTV9ERUJVR19LTVMoInJlcXVlc3RlZCBtb2RlOlxuIik7Ci0JZHJtX21v ZGVfZGVidWdfcHJpbnRtb2RlbGluZSgmcGlwZV9jb25maWctPmJhc2UubW9kZSk7CisJZHJtX21v ZGVfZGVidWdfcHJpbnRtb2RlbGluZSgmcGlwZV9jb25maWctPmh3Lm1vZGUpOwogCURSTV9ERUJV R19LTVMoImFkanVzdGVkIG1vZGU6XG4iKTsKLQlkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5l KCZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKLQlpbnRlbF9kdW1wX2NydGNfdGlt aW5ncygmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJZHJtX21vZGVfZGVidWdf cHJpbnRtb2RlbGluZSgmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUpOworCWludGVsX2R1 bXBfY3J0Y190aW1pbmdzKCZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZSk7CiAJRFJNX0RF QlVHX0tNUygicG9ydCBjbG9jazogJWQsIHBpcGUgc3JjIHNpemU6ICVkeCVkLCBwaXhlbCByYXRl ICVkXG4iLAogCQkgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJICAgICAgcGlwZV9j b25maWctPnBpcGVfc3JjX3csIHBpcGVfY29uZmlnLT5waXBlX3NyY19oLApAQCAtMTIzMTAsNyAr MTIzMTAsNyBAQCBzdGF0aWMgaW50CiBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCQl0b19p OTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqc2F2ZWRfc3RhdGU7CiAKIAlzYXZlZF9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzYXZlZF9z dGF0ZSksIEdGUF9LRVJORUwpOwpAQCAtMTIzMzMsOSArMTIzMzMsMTAgQEAgY2xlYXJfaW50ZWxf Y3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJc2F2ZWRf c3RhdGUtPndtID0gY3J0Y19zdGF0ZS0+d207CiAKIAkvKiBLZWVwIGJhc2UgZHJtX2NydGNfc3Rh dGUgaW50YWN0LCBvbmx5IGNsZWFyIG91ciBleHRlbmRlZCBzdHJ1Y3QgKi8KLQlCVUlMRF9CVUdf T04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpKTsKLQltZW1jcHkoJmNy dGNfc3RhdGUtPmJhc2UgKyAxLCAmc2F2ZWRfc3RhdGUtPmJhc2UgKyAxLAotCSAgICAgICBzaXpl b2YoKmNydGNfc3RhdGUpIC0gc2l6ZW9mKGNydGNfc3RhdGUtPmJhc2UpKTsKKwlCVUlMRF9CVUdf T04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIHVhcGkpKTsKKwlCVUlMRF9CVUdf T04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGh3KSk7CisJbWVtY3B5KCZjcnRj X3N0YXRlLT51YXBpICsgMSwgJnNhdmVkX3N0YXRlLT51YXBpICsgMSwKKwkgICAgICAgc2l6ZW9m KCpjcnRjX3N0YXRlKSAtIHNpemVvZihjcnRjX3N0YXRlLT51YXBpKSk7CiAKIAlrZnJlZShzYXZl ZF9zdGF0ZSk7CiAJcmV0dXJuIDA7CkBAIC0xMjM0NCw4ICsxMjM0NSw4IEBAIGNsZWFyX2ludGVs X2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMg aW50CiBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+YmFz ZS5jcnRjOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT5i YXNlLnN0YXRlOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT51YXBpLmNy dGM7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPnVhcGku c3RhdGU7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CiAJc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9y X3N0YXRlOwpAQCAtMTIzNjUsMTMgKzEyMzY2LDEzIEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25m aWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCSAqIHBvc2l0aXZlIG9y IG5lZ2F0aXZlIHBvbGFyaXR5IGlzIHJlcXVlc3RlZCwgdHJlYXQgdGhpcyBhcyBtZWFuaW5nCiAJ ICogbmVnYXRpdmUgcG9sYXJpdHkuCiAJICovCi0JaWYgKCEocGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZS5mbGFncyAmCisJaWYgKCEocGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUu ZmxhZ3MgJgogCSAgICAgIChEUk1fTU9ERV9GTEFHX1BIU1lOQyB8IERSTV9NT0RFX0ZMQUdfTkhT WU5DKSkpCi0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gRFJNX01P REVfRkxBR19OSFNZTkM7CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9 IERSTV9NT0RFX0ZMQUdfTkhTWU5DOwogCi0JaWYgKCEocGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZS5mbGFncyAmCisJaWYgKCEocGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxh Z3MgJgogCSAgICAgIChEUk1fTU9ERV9GTEFHX1BWU1lOQyB8IERSTV9NT0RFX0ZMQUdfTlZTWU5D KSkpCi0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gRFJNX01PREVf RkxBR19OVlNZTkM7CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERS TV9NT0RFX0ZMQUdfTlZTWU5DOwogCiAJcmV0ID0gY29tcHV0ZV9iYXNlbGluZV9waXBlX2JwcCh0 b19pbnRlbF9jcnRjKGNydGMpLAogCQkJCQlwaXBlX2NvbmZpZyk7CkBAIC0xMjM4OCw3ICsxMjM4 OSw3IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnKQogCSAqIGNvbXB1dGF0aW9uIHRvIGNsZWFybHkgZGlzdGluZ3Vpc2ggaXQg ZnJvbSB0aGUgYWRqdXN0ZWQgbW9kZSwgd2hpY2gKIAkgKiBjYW4gYmUgY2hhbmdlZCBieSB0aGUg Y29ubmVjdG9ycyBpbiB0aGUgYmVsb3cgcmV0cnkgbG9vcC4KIAkgKi8KLQlkcm1fbW9kZV9nZXRf aHZfdGltaW5nKCZwaXBlX2NvbmZpZy0+YmFzZS5tb2RlLAorCWRybV9tb2RlX2dldF9odl90aW1p bmcoJnBpcGVfY29uZmlnLT5ody5tb2RlLAogCQkJICAgICAgICZwaXBlX2NvbmZpZy0+cGlwZV9z cmNfdywKIAkJCSAgICAgICAmcGlwZV9jb25maWctPnBpcGVfc3JjX2gpOwogCkBAIC0xMjQyMSw3 ICsxMjQyMiw3IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnKQogCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0gMTsK IAogCS8qIEZpbGwgaW4gZGVmYXVsdCBjcnRjIHRpbWluZ3MsIGFsbG93IGVuY29kZXJzIHRvIG92 ZXJ3cml0ZSB0aGVtLiAqLwotCWRybV9tb2RlX3NldF9jcnRjaW5mbygmcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZSwKKwlkcm1fbW9kZV9zZXRfY3J0Y2luZm8oJnBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlLAogCQkJICAgICAgQ1JUQ19TVEVSRU9fRE9VQkxFKTsKIAogCS8qIFBh c3Mgb3VyIG1vZGUgdG8gdGhlIGNvbm5lY3RvcnMgYW5kIHRoZSBDUlRDIHRvIGdpdmUgdGhlbSBh IGNoYW5jZSB0bwpAQCAtMTI0NDYsNyArMTI0NDcsNyBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAkvKiBTZXQgZGVmYXVs dCBwb3J0IGNsb2NrIGlmIG5vdCBvdmVyd3JpdHRlbiBieSB0aGUgZW5jb2Rlci4gTmVlZHMgdG8g YmUKIAkgKiBkb25lIGFmdGVyd2FyZHMgaW4gY2FzZSB0aGUgZW5jb2RlciBhZGp1c3RzIHRoZSBt b2RlLiAqLwogCWlmICghcGlwZV9jb25maWctPnBvcnRfY2xvY2spCi0JCXBpcGVfY29uZmlnLT5w b3J0X2Nsb2NrID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrCisJ CXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUu Y3J0Y19jbG9jawogCQkJKiBwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcjsKIAogCXJldCA9 IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcodG9faW50ZWxfY3J0YyhjcnRjKSwgcGlwZV9jb25m aWcpOwpAQCAtMTI0OTAsNyArMTI0OTEsNyBAQCBib29sIGludGVsX2Z1enp5X2Nsb2NrX2NoZWNr KGludCBjbG9jazEsIGludCBjbG9jazIpCiAKIAlkaWZmID0gYWJzKGNsb2NrMSAtIGNsb2NrMik7 CiAKLQlpZiAoKCgoKGRpZmYgKyBjbG9jazEgKyBjbG9jazIpICogMTAwKSkgLyAoY2xvY2sxICsg Y2xvY2syKSkgPCAxMDUpCisJaWYgKCgoKChkaWZmICsgY2xvY2sxICsgY2xvY2syKSAqIDEwMCkp IC8gKGNsb2NrMSArIGNsb2NrMikpIDwgMTAxKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJldHVybiBm YWxzZTsKQEAgLTEyNjEwLDEyICsxMjYxMSwxMiBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50X2NvbmZpZywKIAkJCSAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJICBib29sIGZhc3Rz ZXQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjdXJy ZW50X2NvbmZpZy0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3VycmVudF9jb25maWctPnVhcGkuY3J0Yy0+ZGV2KTsKIAlib29s IHJldCA9IHRydWU7CiAJdTMyIGJwX2dhbW1hID0gMDsKIAlib29sIGZpeHVwX2luaGVyaXRlZCA9 IGZhc3RzZXQgJiYKLQkJKGN1cnJlbnRfY29uZmlnLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAm IEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkgJiYKLQkJIShwaXBlX2NvbmZpZy0+YmFzZS5tb2Rl LnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpOworCQkoY3VycmVudF9j b25maWctPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkg JiYKKwkJIShwaXBlX2NvbmZpZy0+aHcubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZM QUdfSU5IRVJJVEVEKTsKIAogCWlmIChmaXh1cF9pbmhlcml0ZWQgJiYgIWZhc3Rib290X2VuYWJs ZWQoZGV2X3ByaXYpKSB7CiAJCURSTV9ERUJVR19LTVMoImluaXRpYWwgbW9kZXNldCBhbmQgZmFz dGJvb3Qgbm90IHNldFxuIik7CkBAIC0xMjgwNCwxOSArMTI4MDUsMTkgQEAgaW50ZWxfcGlwZV9j b25maWdfY29tcGFyZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3VycmVudF9jb25m aWcsCiAKIAlQSVBFX0NPTkZfQ0hFQ0tfWChvdXRwdXRfdHlwZXMpOwogCi0JUElQRV9DT05GX0NI RUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXkpOwotCVBJUEVfQ09ORl9DSEVD S19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCk7Ci0JUElQRV9DT05GX0NIRUNLX0ko YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX3N0YXJ0KTsKLQlQSVBFX0NPTkZfQ0hFQ0tf SShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oYmxhbmtfZW5kKTsKLQlQSVBFX0NPTkZfQ0hFQ0tf SShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19oc3luY19zdGFydCk7Ci0JUElQRV9DT05GX0NIRUNL X0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfZW5kKTsKKwlQSVBFX0NPTkZfQ0hFQ0tf SShody5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXkpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3 LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVz dGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVz dGVkX21vZGUuY3J0Y19oYmxhbmtfZW5kKTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3Rl ZF9tb2RlLmNydGNfaHN5bmNfc3RhcnQpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVzdGVk X21vZGUuY3J0Y19oc3luY19lbmQpOwogCi0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3Rl ZF9tb2RlLmNydGNfdmRpc3BsYXkpOwotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRf bW9kZS5jcnRjX3Z0b3RhbCk7Ci0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2Rl LmNydGNfdmJsYW5rX3N0YXJ0KTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21v ZGUuY3J0Y192YmxhbmtfZW5kKTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21v ZGUuY3J0Y192c3luY19zdGFydCk7Ci0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9t b2RlLmNydGNfdnN5bmNfZW5kKTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2Rl LmNydGNfdmRpc3BsYXkpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVzdGVkX21vZGUuY3J0 Y192dG90YWwpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVzdGVkX21vZGUuY3J0Y192Ymxh bmtfc3RhcnQpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVzdGVkX21vZGUuY3J0Y192Ymxh bmtfZW5kKTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNf c3RhcnQpOworCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVzdGVkX21vZGUuY3J0Y192c3luY19l bmQpOwogCiAJUElQRV9DT05GX0NIRUNLX0kocGl4ZWxfbXVsdGlwbGllcik7CiAJUElQRV9DT05G X0NIRUNLX0kob3V0cHV0X2Zvcm1hdCk7CkBAIC0xMjgzMiwxNyArMTI4MzMsMTcgQEAgaW50ZWxf cGlwZV9jb25maWdfY29tcGFyZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3VycmVu dF9jb25maWcsCiAKIAlQSVBFX0NPTkZfQ0hFQ0tfQk9PTF9JTkNPTVBMRVRFKGhhc19hdWRpbyk7 CiAKLQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoYmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzLAorCVBJ UEVfQ09ORl9DSEVDS19GTEFHUyhody5hZGp1c3RlZF9tb2RlLmZsYWdzLAogCQkJICAgICAgRFJN X01PREVfRkxBR19JTlRFUkxBQ0UpOwogCiAJaWYgKCFQSVBFX0NPTkZfUVVJUksoUElQRV9DT05G SUdfUVVJUktfTU9ERV9TWU5DX0ZMQUdTKSkgewotCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoYmFz ZS5hZGp1c3RlZF9tb2RlLmZsYWdzLAorCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoaHcuYWRqdXN0 ZWRfbW9kZS5mbGFncywKIAkJCQkgICAgICBEUk1fTU9ERV9GTEFHX1BIU1lOQyk7Ci0JCVBJUEVf Q09ORl9DSEVDS19GTEFHUyhiYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MsCisJCVBJUEVfQ09ORl9D SEVDS19GTEFHUyhody5hZGp1c3RlZF9tb2RlLmZsYWdzLAogCQkJCSAgICAgIERSTV9NT0RFX0ZM QUdfTkhTWU5DKTsKLQkJUElQRV9DT05GX0NIRUNLX0ZMQUdTKGJhc2UuYWRqdXN0ZWRfbW9kZS5m bGFncywKKwkJUElQRV9DT05GX0NIRUNLX0ZMQUdTKGh3LmFkanVzdGVkX21vZGUuZmxhZ3MsCiAJ CQkJICAgICAgRFJNX01PREVfRkxBR19QVlNZTkMpOwotCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1Mo YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzLAorCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoaHcuYWRq dXN0ZWRfbW9kZS5mbGFncywKIAkJCQkgICAgICBEUk1fTU9ERV9GTEFHX05WU1lOQyk7CiAJfQog CkBAIC0xMjg4MSw3ICsxMjg4Miw3IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCiAJCWJwX2dhbW1hID0g aW50ZWxfY29sb3JfZ2V0X2dhbW1hX2JpdF9wcmVjaXNpb24ocGlwZV9jb25maWcpOwogCQlpZiAo YnBfZ2FtbWEpCi0JCQlQSVBFX0NPTkZfQ0hFQ0tfQ09MT1JfTFVUKGdhbW1hX21vZGUsIGJhc2Uu Z2FtbWFfbHV0LCBicF9nYW1tYSk7CisJCQlQSVBFX0NPTkZfQ0hFQ0tfQ09MT1JfTFVUKGdhbW1h X21vZGUsIHVhcGkuZ2FtbWFfbHV0LCBicF9nYW1tYSk7CiAKIAl9CiAKQEAgLTEyOTI2LDcgKzEy OTI3LDcgQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3VycmVudF9jb25maWcsCiAJaWYgKElTX0c0WChkZXZfcHJpdikgfHwgSU5URUxf R0VOKGRldl9wcml2KSA+PSA1KQogCQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX2JwcCk7CiAKLQlQ SVBFX0NPTkZfQ0hFQ0tfQ0xPQ0tfRlVaWlkoYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sp OworCVBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWShody5hZGp1c3RlZF9tb2RlLmNydGNfY2xv Y2spOwogCVBJUEVfQ09ORl9DSEVDS19DTE9DS19GVVpaWShwb3J0X2Nsb2NrKTsKIAogCVBJUEVf Q09ORl9DSEVDS19JKG1pbl92b2x0YWdlX2xldmVsKTsKQEAgLTEyOTU3LDcgKzEyOTU4LDcgQEAg c3RhdGljIHZvaWQgaW50ZWxfcGlwZV9jb25maWdfc2FuaXR5X2NoZWNrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAocGlwZV9jb25maWctPmhhc19wY2hfZW5jb2Rlcikg ewogCQlpbnQgZmRpX2RvdGNsb2NrID0gaW50ZWxfZG90Y2xvY2tfY2FsY3VsYXRlKGludGVsX2Zk aV9saW5rX2ZyZXEoZGV2X3ByaXYsIHBpcGVfY29uZmlnKSwKIAkJCQkJCQkgICAgJnBpcGVfY29u ZmlnLT5mZGlfbV9uKTsKLQkJaW50IGRvdGNsb2NrID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX2Nsb2NrOworCQlpbnQgZG90Y2xvY2sgPSBwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCiAJCS8qCiAJCSAqIEZESSBhbHJlYWR5IHByb3ZpZGVk IG9uZSBpZGVhIGZvciB0aGUgZG90Y2xvY2suCkBAIC0xMjk4NSw3ICsxMjk4Niw3IEBAIHN0YXRp YyB2b2lkIHZlcmlmeV93bV9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAljb25zdCBl bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJaW50IHBsYW5lLCBsZXZlbCwgbWF4X2xldmVs ID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2 KSA8IDkgfHwgIW5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8IDkgfHwgIW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybjsKIAog CWh3ID0ga3phbGxvYyhzaXplb2YoKmh3KSwgR0ZQX0tFUk5FTCk7CkBAIC0xMzE5NCwxMiArMTMx OTUsMTIgQEAgdmVyaWZ5X2NydGNfc3RhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwogCWJvb2wgYWN0aXZlOwogCi0Jc3RhdGUgPSBv bGRfY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKLQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVz dHJveV9zdGF0ZSgmb2xkX2NydGNfc3RhdGUtPmJhc2UpOworCXN0YXRlID0gb2xkX2NydGNfc3Rh dGUtPnVhcGkuc3RhdGU7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUo Jm9sZF9jcnRjX3N0YXRlLT51YXBpKTsKIAlwaXBlX2NvbmZpZyA9IG9sZF9jcnRjX3N0YXRlOwog CW1lbXNldChwaXBlX2NvbmZpZywgMCwgc2l6ZW9mKCpwaXBlX2NvbmZpZykpOwotCXBpcGVfY29u ZmlnLT5iYXNlLmNydGMgPSAmY3J0Yy0+YmFzZTsKLQlwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZSA9 IHN0YXRlOworCXBpcGVfY29uZmlnLT51YXBpLmNydGMgPSAmY3J0Yy0+YmFzZTsKKwlwaXBlX2Nv bmZpZy0+dWFwaS5zdGF0ZSA9IHN0YXRlOwogCiAJRFJNX0RFQlVHX0tNUygiW0NSVEM6JWQ6JXNd XG4iLCBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSk7CiAKQEAgLTEzMjA3LDIz ICsxMzIwOCwyNiBAQCB2ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK IAogCS8qIHdlIGtlZXAgYm90aCBwaXBlcyBlbmFibGVkIG9uIDgzMCAqLwogCWlmIChJU19JODMw KGRldl9wcml2KSkKLQkJYWN0aXZlID0gbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlOworCQlh Y3RpdmUgPSBuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCi0JSTkxNV9TVEFURV9XQVJOKG5l d19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAhPSBhY3RpdmUsCi0JICAgICAiY3J0YyBhY3RpdmUg c3RhdGUgZG9lc24ndCBtYXRjaCB3aXRoIGh3IHN0YXRlICIKLQkgICAgICIoZXhwZWN0ZWQgJWks IGZvdW5kICVpKVxuIiwgbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlLCBhY3RpdmUpOworCUk5 MTVfU1RBVEVfV0FSTihuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICE9IGFjdGl2ZSwKKwkJCSJj cnRjIGFjdGl2ZSBzdGF0ZSBkb2Vzbid0IG1hdGNoIHdpdGggaHcgc3RhdGUgIgorCQkJIihleHBl Y3RlZCAlaSwgZm91bmQgJWkpXG4iLAorCQkJbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSwgYWN0 aXZlKTsKIAotCUk5MTVfU1RBVEVfV0FSTihjcnRjLT5hY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUt PmJhc2UuYWN0aXZlLAotCSAgICAgInRyYW5zaXRpb25hbCBhY3RpdmUgc3RhdGUgZG9lcyBub3Qg bWF0Y2ggYXRvbWljIGh3IHN0YXRlICIKLQkgICAgICIoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxu IiwgbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlLCBjcnRjLT5hY3RpdmUpOworCUk5MTVfU1RB VEVfV0FSTihjcnRjLT5hY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSwKKwkJCSJ0 cmFuc2l0aW9uYWwgYWN0aXZlIHN0YXRlIGRvZXMgbm90IG1hdGNoIGF0b21pYyBodyBzdGF0ZSAi CisJCQkiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsCisJCQluZXdfY3J0Y19zdGF0ZS0+aHcu YWN0aXZlLCBjcnRjLT5hY3RpdmUpOwogCiAJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwg JmNydGMtPmJhc2UsIGVuY29kZXIpIHsKIAkJZW51bSBwaXBlIHBpcGU7CiAKIAkJYWN0aXZlID0g ZW5jb2Rlci0+Z2V0X2h3X3N0YXRlKGVuY29kZXIsICZwaXBlKTsKLQkJSTkxNV9TVEFURV9XQVJO KGFjdGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUsCi0JCQkiW0VOQ09ERVI6JWld IGFjdGl2ZSAlaSB3aXRoIGNydGMgYWN0aXZlICVpXG4iLAotCQkJZW5jb2Rlci0+YmFzZS5iYXNl LmlkLCBhY3RpdmUsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSk7CisJCUk5MTVfU1RBVEVf V0FSTihhY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSwKKwkJCQkiW0VOQ09ERVI6 JWldIGFjdGl2ZSAlaSB3aXRoIGNydGMgYWN0aXZlICVpXG4iLAorCQkJCWVuY29kZXItPmJhc2Uu YmFzZS5pZCwgYWN0aXZlLAorCQkJCW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpOwogCiAJCUk5 MTVfU1RBVEVfV0FSTihhY3RpdmUgJiYgY3J0Yy0+cGlwZSAhPSBwaXBlLAogCQkJCSJFbmNvZGVy IGNvbm5lY3RlZCB0byB3cm9uZyBwaXBlICVjXG4iLApAQCAtMTMyMzUsNyArMTMyMzksNyBAQCB2 ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogCWludGVsX2NydGNf Y29tcHV0ZV9waXhlbF9yYXRlKHBpcGVfY29uZmlnKTsKIAotCWlmICghbmV3X2NydGNfc3RhdGUt PmJhc2UuYWN0aXZlKQorCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJu OwogCiAJaW50ZWxfcGlwZV9jb25maWdfc2FuaXR5X2NoZWNrKGRldl9wcml2LCBwaXBlX2NvbmZp Zyk7CkBAIC0xMzI5Nyw3ICsxMzMwMSw3IEBAIHZlcmlmeV9zaW5nbGVfZHBsbF9zdGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAljcnRjX21hc2sgPSBkcm1fY3J0Y19t YXNrKCZjcnRjLT5iYXNlKTsKIAotCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJ aWYgKG5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCUk5MTVfU1RBVEVfV0FSTighKHBsbC0+ YWN0aXZlX21hc2sgJiBjcnRjX21hc2spLAogCQkJCSJwbGwgYWN0aXZlIG1pc21hdGNoIChleHBl Y3RlZCBwaXBlICVjIGluIGFjdGl2ZSBtYXNrIDB4JTAyeClcbiIsCiAJCQkJcGlwZV9uYW1lKGRy bV9jcnRjX2luZGV4KCZjcnRjLT5iYXNlKSksIHBsbC0+YWN0aXZlX21hc2spOwpAQCAtMTMzNzUs NyArMTMzNzksNyBAQCBpbnRlbF9tb2Rlc2V0X3ZlcmlmeV9kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyB2b2lkIHVwZGF0ZV9zY2FubGluZV9vZmZz ZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjLT5iYXNlLmRldik7CiAKIAkvKgpAQCAtMTM0MDYsNyArMTM0MTAsNyBAQCBzdGF0aWMgdm9p ZCB1cGRhdGVfc2NhbmxpbmVfb2Zmc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogCSAqIGFuc3dlciB0aGF0J3Mgc2xpZ2h0bHkgaW4gdGhlIGZ1dHVyZS4KIAkg Ki8KIAlpZiAoSVNfR0VOKGRldl9wcml2LCAyKSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJCWludCB2dG90YWw7CiAKIAkJdnRvdGFsID0gYWRq dXN0ZWRfbW9kZS0+Y3J0Y192dG90YWw7CkBAIC0xMzQ1Niw3ICsxMzQ2MCw3IEBAIHN0YXRpYyBp bnQgaGFzd2VsbF9tb2RlX3NldF9wbGFuZXNfd29ya2Fyb3VuZChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKIAogCS8qIGxvb2sgYXQgYWxsIGNydGMncyB0aGF0IGFyZSBnb2luZyB0 byBiZSBlbmFibGVkIGluIGR1cmluZyBtb2Rlc2V0ICovCiAJZm9yX2VhY2hfbmV3X2ludGVsX2Ny dGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFjcnRjX3N0 YXRlLT5iYXNlLmFjdGl2ZSB8fAorCQlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fAogCQkg ICAgIW5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIApAQCAtMTM0ODEs NyArMTM0ODUsNyBAQCBzdGF0aWMgaW50IGhhc3dlbGxfbW9kZV9zZXRfcGxhbmVzX3dvcmthcm91 bmQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJY3J0Y19zdGF0ZS0+aHN3 X3dvcmthcm91bmRfcGlwZSA9IElOVkFMSURfUElQRTsKIAotCQlpZiAoIWNydGNfc3RhdGUtPmJh c2UuYWN0aXZlIHx8CisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CiAJCSAgICBuZWVk c19tb2Rlc2V0KGNydGNfc3RhdGUpKQogCQkJY29udGludWU7CiAKQEAgLTEzNTI0LDEyICsxMzUy OCwxMiBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlKQogCiAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUo c3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLAogCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkp IHsKLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwkJaWYgKG5ld19jcnRjX3N0 YXRlLT5ody5hY3RpdmUpCiAJCQlzdGF0ZS0+YWN0aXZlX3BpcGVzIHw9IEJJVChjcnRjLT5waXBl KTsKIAkJZWxzZQogCQkJc3RhdGUtPmFjdGl2ZV9waXBlcyAmPSB+QklUKGNydGMtPnBpcGUpOwog Ci0JCWlmIChvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmJh c2UuYWN0aXZlKQorCQlpZiAob2xkX2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAhPSBuZXdfY3J0Y19z dGF0ZS0+aHcuYWN0aXZlKQogCQkJc3RhdGUtPmFjdGl2ZV9waXBlX2NoYW5nZXMgfD0gQklUKGNy dGMtPnBpcGUpOwogCX0KIApAQCAtMTM1NjgsNyArMTM1NzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9jcnRjX2NoZWNrX2Zhc3RzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9j cnRjX3N0YQogCWlmICghaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShvbGRfY3J0Y19zdGF0ZSwg bmV3X2NydGNfc3RhdGUsIHRydWUpKQogCQlyZXR1cm47CiAKLQluZXdfY3J0Y19zdGF0ZS0+YmFz ZS5tb2RlX2NoYW5nZWQgPSBmYWxzZTsKKwluZXdfY3J0Y19zdGF0ZS0+dWFwaS5tb2RlX2NoYW5n ZWQgPSBmYWxzZTsKIAluZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgPSB0cnVlOwogCiAJLyoK QEAgLTEzNjAzLDkgKzEzNjA3LDkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkvKiBDYXRjaCBJOTE1X01PREVfRkxBR19JTkhFUklURUQg Ki8KIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xk X2NydGNfc3RhdGUsCiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAobmV3X2Ny dGNfc3RhdGUtPmJhc2UubW9kZS5wcml2YXRlX2ZsYWdzICE9Ci0JCSAgICBvbGRfY3J0Y19zdGF0 ZS0+YmFzZS5tb2RlLnByaXZhdGVfZmxhZ3MpCi0JCQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5tb2Rl X2NoYW5nZWQgPSB0cnVlOworCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9m bGFncyAhPQorCQkgICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncykKKwkJ CW5ld19jcnRjX3N0YXRlLT51YXBpLm1vZGVfY2hhbmdlZCA9IHRydWU7CiAJfQogCiAJcmV0ID0g ZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldChkZXYsICZzdGF0ZS0+YmFzZSk7CkBAIC0x MzYxNyw3ICsxMzYyMSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCWlmICghbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJ CQljb250aW51ZTsKIAotCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkgeworCQlp ZiAoIW5ld19jcnRjX3N0YXRlLT51YXBpLmVuYWJsZSkgewogCQkJYW55X21zID0gdHJ1ZTsKIAkJ CWNvbnRpbnVlOwogCQl9CkBAIC0xMzc3NCwxMSArMTM3NzgsMTAgQEAgc3RhdGljIHZvaWQgaW50 ZWxfb2xkX2NydGNfc3RhdGVfZGlzYWJsZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUsCiAJaW50ZWxfY2hlY2tfcGNoX2ZpZm9fdW5kZXJydW5zKGRldl9wcml2KTsKIAogCS8qIEZJ WE1FIHVuaWZ5IHRoaXMgZm9yIGFsbCBwbGF0Zm9ybXMgKi8KLQlpZiAoIW5ld19jcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZSAmJgorCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgogCSAg ICAhSEFTX0dNQ0goZGV2X3ByaXYpICYmCiAJICAgIGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxf d2F0ZXJtYXJrcykKLQkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKHN0YXRl LAotCQkJCQkJICAgICBuZXdfY3J0Y19zdGF0ZSk7CisJCWRldl9wcml2LT5kaXNwbGF5LmluaXRp YWxfd2F0ZXJtYXJrcyhzdGF0ZSwgbmV3X2NydGNfc3RhdGUpOwogfQogCiBzdGF0aWMgdm9pZCBp bnRlbF9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSkKQEAgLTEzODAxLDcgKzEzODA0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29tbWl0X21v ZGVzZXRfZGlzYWJsZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJaW50 ZWxfcHJlX3BsYW5lX3VwZGF0ZShvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUpOwogCi0J CWlmIChvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChvbGRfY3J0Y19zdGF0ZS0+ aHcuYWN0aXZlKQogCQkJaW50ZWxfb2xkX2NydGNfc3RhdGVfZGlzYWJsZXMoc3RhdGUsCiAJCQkJ CQkgICAgICBvbGRfY3J0Y19zdGF0ZSwKIAkJCQkJCSAgICAgIG5ld19jcnRjX3N0YXRlLApAQCAt MTM4MTYsNyArMTM4MTksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb21taXRfbW9kZXNldF9lbmFi bGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWludCBpOwogCiAJZm9yX2Vh Y2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRl LCBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2 ZSkKKwkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQkJY29udGludWU7CiAKIAkJ aW50ZWxfdXBkYXRlX2NydGMoY3J0Yywgc3RhdGUsIG9sZF9jcnRjX3N0YXRlLApAQCAtMTM4Mzks NyArMTM4NDIsNyBAQCBzdGF0aWMgdm9pZCBza2xfY29tbWl0X21vZGVzZXRfZW5hYmxlcyhzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCWZvcl9lYWNoX29sZG5ld19pbnRlbF9j cnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUs IGkpCiAJCS8qIGlnbm9yZSBhbGxvY2F0aW9ucyBmb3IgY3J0YydzIHRoYXQgaGF2ZSBiZWVuIHR1 cm5lZCBvZmYuICovCi0JCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChu ZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQkJZW50cmllc1tpXSA9IG9sZF9jcnRjX3N0YXRl LT53bS5za2wuZGRiOwogCiAJLyogSWYgMm5kIERCdWYgc2xpY2UgcmVxdWlyZWQsIGVuYWJsZSBp dCBoZXJlICovCkBAIC0xMzg2MSw3ICsxMzg2NCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21taXRf bW9kZXNldF9lbmFibGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJCQlw aXBlID0gY3J0Yy0+cGlwZTsKIAotCQkJaWYgKHVwZGF0ZWQgJiBjbWFzayB8fCAhbmV3X2NydGNf c3RhdGUtPmJhc2UuYWN0aXZlKQorCQkJaWYgKHVwZGF0ZWQgJiBjbWFzayB8fCAhbmV3X2NydGNf c3RhdGUtPmh3LmFjdGl2ZSkKIAkJCQljb250aW51ZTsKIAogCQkJaWYgKHNrbF9kZGJfYWxsb2Nh dGlvbl9vdmVybGFwcygmbmV3X2NydGNfc3RhdGUtPndtLnNrbC5kZGIsCkBAIC0xMzg4MCw3ICsx Mzg4Myw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21taXRfbW9kZXNldF9lbmFibGVzKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJICovCiAJCQlpZiAoIXNrbF9kZGJfZW50cnlf ZXF1YWwoJm5ld19jcnRjX3N0YXRlLT53bS5za2wuZGRiLAogCQkJCQkJICZvbGRfY3J0Y19zdGF0 ZS0+d20uc2tsLmRkYikgJiYKLQkJCSAgICAhbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlX2No YW5nZWQgJiYKKwkJCSAgICAhbmV3X2NydGNfc3RhdGUtPnVhcGkuYWN0aXZlX2NoYW5nZWQgJiYK IAkJCSAgICBzdGF0ZS0+d21fcmVzdWx0cy5kaXJ0eV9waXBlcyAhPSB1cGRhdGVkKQogCQkJCXZi bF93YWl0ID0gdHJ1ZTsKIApAQCAtMTQwMTMsMTIgKzE0MDE2LDEzIEBAIHN0YXRpYyB2b2lkIGlu dGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkK IAkJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSk7CiAKIAkJLyog Q29tcGxldGUgZXZlbnRzIGZvciBub3cgZGlzYWJsZSBwaXBlcyBoZXJlLiAqLwotCQlpZiAobW9k ZXNldCAmJiAhbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmIG5ld19jcnRjX3N0YXRlLT5i YXNlLmV2ZW50KSB7CisJCWlmIChtb2Rlc2V0ICYmICFuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZl ICYmIG5ld19jcnRjX3N0YXRlLT51YXBpLmV2ZW50KSB7CiAJCQlzcGluX2xvY2tfaXJxKCZkZXYt PmV2ZW50X2xvY2spOwotCQkJZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQoJmNydGMtPmJhc2Us IG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KTsKKwkJCWRybV9jcnRjX3NlbmRfdmJsYW5rX2V2 ZW50KCZjcnRjLT5iYXNlLAorCQkJCQkJICAgbmV3X2NydGNfc3RhdGUtPnVhcGkuZXZlbnQpOwog CQkJc3Bpbl91bmxvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwogCi0JCQluZXdfY3J0Y19zdGF0 ZS0+YmFzZS5ldmVudCA9IE5VTEw7CisJCQluZXdfY3J0Y19zdGF0ZS0+dWFwaS5ldmVudCA9IE5V TEw7CiAJCX0KIAl9CiAKQEAgLTE0MDQ5LDkgKzE0MDUzLDkgQEAgc3RhdGljIHZvaWQgaW50ZWxf YXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWRy bV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZsaXBfZG9uZShkZXYsICZzdGF0ZS0+YmFzZSk7CiAK IAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNf c3RhdGUsIGkpIHsKLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJgorCQlpZiAo bmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgogCQkgICAgIW5lZWRzX21vZGVzZXQobmV3X2Ny dGNfc3RhdGUpICYmCi0JCSAgICAobmV3X2NydGNfc3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFu Z2VkIHx8CisJCSAgICAobmV3X2NydGNfc3RhdGUtPnVhcGkuY29sb3JfbWdtdF9jaGFuZ2VkIHx8 CiAJCSAgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKSkKIAkJCWludGVsX2NvbG9yX2xv YWRfbHV0cyhuZXdfY3J0Y19zdGF0ZSk7CiAJfQpAQCAtMTQ1MDYsMTYgKzE0NTEwLDE2IEBAIGlu dAogc2tsX21heF9zY2FsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICpmb3JtYXQpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjLT5iYXNlLmRldik7CiAJaW50IG1heF9zY2FsZTsKIAlpbnQgY3J0Y19jbG9jaywgbWF4 X2RvdGNsaywgdG1wY2xrMSwgdG1wY2xrMjsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5lbmFi bGUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVybiBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkc7CiAKLQljcnRjX2Nsb2NrID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmNydGNfY2xvY2s7Ci0JbWF4X2RvdGNsayA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShj cnRjX3N0YXRlLT5iYXNlLnN0YXRlKS0+Y2RjbGsubG9naWNhbC5jZGNsazsKKwljcnRjX2Nsb2Nr ID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCW1heF9kb3RjbGsg PSB0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSktPmNkY2xrLmxv Z2ljYWwuY2RjbGs7CiAKIAlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwgSU5URUxfR0VO KGRldl9wcml2KSA+PSAxMCkKIAkJbWF4X2RvdGNsayAqPSAyOwpAQCAtMTQ1NTYsNyArMTQ1NjAs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1pdChzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIAlpZiAobW9kZXNldCkKIAkJZ290byBvdXQ7CiAKLQlpZiAobmV3 X2NydGNfc3RhdGUtPmJhc2UuY29sb3JfbWdtdF9jaGFuZ2VkIHx8CisJaWYgKG5ld19jcnRjX3N0 YXRlLT51YXBpLmNvbG9yX21nbXRfY2hhbmdlZCB8fAogCSAgICBuZXdfY3J0Y19zdGF0ZS0+dXBk YXRlX3BpcGUpCiAJCWludGVsX2NvbG9yX2NvbW1pdChuZXdfY3J0Y19zdGF0ZSk7CiAKQEAgLTE0 NjAyLDcgKzE0NjA2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmluaXNoX2NydGNfY29tbWl0KHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCiAJaWYgKG5ld19jcnRjX3N0YXRlLT51 cGRhdGVfcGlwZSAmJgogCSAgICAhbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkgJiYKLQkg ICAgb2xkX2NydGNfc3RhdGUtPmJhc2UubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RFX0ZM QUdfSU5IRVJJVEVEKQorCSAgICBvbGRfY3J0Y19zdGF0ZS0+aHcubW9kZS5wcml2YXRlX2ZsYWdz ICYgSTkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKQogCQlpbnRlbF9jcnRjX2FybV9maWZvX3VuZGVy cnVuKGNydGMsIG5ld19jcnRjX3N0YXRlKTsKIH0KIApAQCAtMTQ3MTQsNyArMTQ3MTgsNyBAQCBp bnRlbF9sZWdhY3lfY3Vyc29yX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkgKiBX aGVuIGNydGMgaXMgaW5hY3RpdmUgb3IgdGhlcmUgaXMgYSBtb2Rlc2V0IHBlbmRpbmcsCiAJICog d2FpdCBmb3IgaXQgdG8gY29tcGxldGUgaW4gdGhlIHNsb3dwYXRoCiAJICovCi0JaWYgKCFjcnRj X3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpIHx8CisJaWYg KCFjcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwgbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSB8fAog CSAgICBjcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkKIAkJZ290byBzbG93OwogCkBAIC0xNDgwOCw3 ICsxNDgxMiw3IEBAIGludGVsX2xlZ2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lLAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogb3V0 X2ZyZWU6CiAJaWYgKG5ld19jcnRjX3N0YXRlKQotCQlpbnRlbF9jcnRjX2Rlc3Ryb3lfc3RhdGUo Y3J0YywgJm5ld19jcnRjX3N0YXRlLT5iYXNlKTsKKwkJaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRl KGNydGMsICZuZXdfY3J0Y19zdGF0ZS0+dWFwaSk7CiAJaWYgKHJldCkKIAkJaW50ZWxfcGxhbmVf ZGVzdHJveV9zdGF0ZShwbGFuZSwgbmV3X3BsYW5lX3N0YXRlKTsKIAllbHNlCkBAIC0xNTEzNCw3 ICsxNTEzOCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiAJCXJldCA9IC1FTk9NRU07CiAJCWdv dG8gZmFpbDsKIAl9Ci0JX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KCZpbnRlbF9jcnRj LT5iYXNlLCAmY3J0Y19zdGF0ZS0+YmFzZSk7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jl c2V0KCZpbnRlbF9jcnRjLT5iYXNlLCAmY3J0Y19zdGF0ZS0+dWFwaSk7CiAJaW50ZWxfY3J0Yy0+ Y29uZmlnID0gY3J0Y19zdGF0ZTsKIAogCXByaW1hcnkgPSBpbnRlbF9wcmltYXJ5X3BsYW5lX2Ny ZWF0ZShkZXZfcHJpdiwgcGlwZSk7CkBAIC0xNjQ5OCw3ICsxNjUwMiw3IEBAIHN0YXRpYyB2b2lk IGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCQkgICBJOTE1 X1JFQUQocmVnKSAmIH5QSVBFQ09ORl9GUkFNRV9TVEFSVF9ERUxBWV9NQVNLKTsKIAl9CiAKLQlp ZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZl KSB7CiAJCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CiAKIAkJLyogRGlzYWJsZSBldmVyeXRo aW5nIGJ1dCB0aGUgcHJpbWFyeSBwbGFuZSAqLwpAQCAtMTY1MjMsMTAgKzE2NTI3LDEwIEBAIHN0 YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAK IAkvKiBBZGp1c3QgdGhlIHN0YXRlIG9mIHRoZSBvdXRwdXQgcGlwZSBhY2NvcmRpbmcgdG8gd2hl dGhlciB3ZQogCSAqIGhhdmUgYWN0aXZlIGNvbm5lY3RvcnMvZW5jb2RlcnMuICovCi0JaWYgKGNy dGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmICFpbnRlbF9jcnRjX2hhc19lbmNvZGVycyhjcnRjKSkK KwlpZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICYmICFpbnRlbF9jcnRjX2hhc19lbmNvZGVycyhj cnRjKSkKIAkJaW50ZWxfY3J0Y19kaXNhYmxlX25vYXRvbWljKCZjcnRjLT5iYXNlLCBjdHgpOwog Ci0JaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8IEhBU19HTUNIKGRldl9wcml2KSkgewor CWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwgSEFTX0dNQ0goZGV2X3ByaXYpKSB7CiAJCS8q CiAJCSAqIFdlIHN0YXJ0IG91dCB3aXRoIHVuZGVycnVuIHJlcG9ydGluZyBkaXNhYmxlZCB0byBh dm9pZCByYWNlcy4KIAkJICogRm9yIGNvcnJlY3QgYm9va2tlZXBpbmcgbWFyayB0aGlzIG9uIGFj dGl2ZSBjcnRjcy4KQEAgLTE2NTU3LDcgKzE2NTYxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2Fu aXRpemVfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogc3RhdGljIGJvb2wgaGFzX2Jv Z3VzX2RwbGxfY29uZmlnKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJLyoKIAkgKiBTb21l IFNOQiBCSU9TZW4gKGVnLiBBU1VTIEs1M1NWKSBhcmUga25vd24gdG8gbWlzcHJvZ3JhbQpAQCAt MTY1NzAsNyArMTY1NzQsNyBAQCBzdGF0aWMgYm9vbCBoYXNfYm9ndXNfZHBsbF9jb25maWcoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJICogcm9hZC4KIAkgKi8K IAlyZXR1cm4gSVNfR0VOKGRldl9wcml2LCA2KSAmJgotCQljcnRjX3N0YXRlLT5iYXNlLmFjdGl2 ZSAmJgorCQljcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYKIAkJY3J0Y19zdGF0ZS0+c2hhcmVkX2Rw bGwgJiYKIAkJY3J0Y19zdGF0ZS0+cG9ydF9jbG9jayA9PSAwOwogfQpAQCAtMTY1ODcsNyArMTY1 OTEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9lbmNvZGVyKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyKQogCSAqIGVuY29kZXIgaXMgYWN0aXZlIGFuZCB0cnlpbmcgdG8gcmVh ZCBmcm9tIGEgcGlwZSkgYW5kIHRoZQogCSAqIHBpcGUgaXRzZWxmIGJlaW5nIGFjdGl2ZS4gKi8K IAlib29sIGhhc19hY3RpdmVfY3J0YyA9IGNydGNfc3RhdGUgJiYKLQkJY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmU7CisJCWNydGNfc3RhdGUtPmh3LmFjdGl2ZTsKIAogCWlmIChjcnRjX3N0YXRlICYm IGhhc19ib2d1c19kcGxsX2NvbmZpZyhjcnRjX3N0YXRlKSkgewogCQlEUk1fREVCVUdfS01TKCJC SU9TIGhhcyBtaXNwcm9ncmFtbWVkIHRoZSBoYXJkd2FyZS4gRGlzYWJsaW5nIHBpcGUgJWNcbiIs CkBAIC0xNjcyNCwyMiArMTY3MjgsMjIgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFk b3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlID0KIAkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5z dGF0ZSk7CiAKLQkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJmNydGNf c3RhdGUtPmJhc2UpOworCQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgm Y3J0Y19zdGF0ZS0+dWFwaSk7CiAJCW1lbXNldChjcnRjX3N0YXRlLCAwLCBzaXplb2YoKmNydGNf c3RhdGUpKTsKLQkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KCZjcnRjLT5iYXNlLCAm Y3J0Y19zdGF0ZS0+YmFzZSk7CisJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgmY3J0 Yy0+YmFzZSwgJmNydGNfc3RhdGUtPnVhcGkpOwogCi0JCWNydGNfc3RhdGUtPmJhc2UuYWN0aXZl ID0gY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPQorCQljcnRjX3N0YXRlLT5ody5hY3RpdmUgPSBj cnRjX3N0YXRlLT5ody5lbmFibGUgPQogCQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29u ZmlnKGNydGMsIGNydGNfc3RhdGUpOwogCi0JCWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGNfc3Rh dGUtPmJhc2UuZW5hYmxlOwotCQljcnRjLT5hY3RpdmUgPSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2 ZTsKKwkJY3J0Yy0+YmFzZS5lbmFibGVkID0gY3J0Y19zdGF0ZS0+aHcuZW5hYmxlOworCQljcnRj LT5hY3RpdmUgPSBjcnRjX3N0YXRlLT5ody5hY3RpdmU7CiAKLQkJaWYgKGNydGNfc3RhdGUtPmJh c2UuYWN0aXZlKQorCQlpZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQkJZGV2X3ByaXYtPmFj dGl2ZV9waXBlcyB8PSBCSVQoY3J0Yy0+cGlwZSk7CiAKIAkJRFJNX0RFQlVHX0tNUygiW0NSVEM6 JWQ6JXNdIGh3IHN0YXRlIHJlYWRvdXQ6ICVzXG4iLAogCQkJICAgICAgY3J0Yy0+YmFzZS5iYXNl LmlkLCBjcnRjLT5iYXNlLm5hbWUsCi0JCQkgICAgICBlbmFibGVkZGlzYWJsZWQoY3J0Y19zdGF0 ZS0+YmFzZS5hY3RpdmUpKTsKKwkJCSAgICAgIGVuYWJsZWRkaXNhYmxlZChjcnRjX3N0YXRlLT5o dy5hY3RpdmUpKTsKIAl9CiAKIAlyZWFkb3V0X3BsYW5lX3N0YXRlKGRldl9wcml2KTsKQEAgLTE2 NzYxLDcgKzE2NzY1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0 YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSA9CiAJCQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsK IAotCQkJaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmCisJCQlpZiAoY3J0Y19zdGF0ZS0+ aHcuYWN0aXZlICYmCiAJCQkgICAgY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgPT0gcGxsKQogCQkJ CXBsbC0+c3RhdGUuY3J0Y19tYXNrIHw9IDEgPDwgY3J0Yy0+cGlwZTsKIAkJfQpAQCAtMTY3OTUs MjEgKzE2Nzk5LDI0IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2JlZ2lu KGRldiwgJmNvbm5faXRlcik7CiAJZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yX2l0ZXIoY29ubmVj dG9yLCAmY29ubl9pdGVyKSB7CiAJCWlmIChjb25uZWN0b3ItPmdldF9od19zdGF0ZShjb25uZWN0 b3IpKSB7Ci0JCQljb25uZWN0b3ItPmJhc2UuZHBtcyA9IERSTV9NT0RFX0RQTVNfT047CisJCQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IE5VTEw7CiAKKwkJCWNvbm5lY3Rv ci0+YmFzZS5kcG1zID0gRFJNX01PREVfRFBNU19PTjsKIAkJCWVuY29kZXIgPSBjb25uZWN0b3It PmVuY29kZXI7CiAJCQljb25uZWN0b3ItPmJhc2UuZW5jb2RlciA9ICZlbmNvZGVyLT5iYXNlOwog Ci0JCQlpZiAoZW5jb2Rlci0+YmFzZS5jcnRjICYmCi0JCQkgICAgZW5jb2Rlci0+YmFzZS5jcnRj LT5zdGF0ZS0+YWN0aXZlKSB7CisJCQlpZiAoZW5jb2Rlci0+YmFzZS5jcnRjKQorCQkJCWNydGNf c3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGVuY29kZXItPmJhc2UuY3J0Yy0+c3RhdGUpOwor CisJCQlpZiAoY3J0Y19zdGF0ZSAmJiBjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsKIAkJCQkvKgog CQkJCSAqIFRoaXMgaGFzIHRvIGJlIGRvbmUgZHVyaW5nIGhhcmR3YXJlIHJlYWRvdXQKIAkJCQkg KiBiZWNhdXNlIGFueXRoaW5nIGNhbGxpbmcgLmNydGNfZGlzYWJsZSBtYXkKIAkJCQkgKiByZWx5 IG9uIHRoZSBjb25uZWN0b3JfbWFzayBiZWluZyBhY2N1cmF0ZS4KIAkJCQkgKi8KLQkJCQllbmNv ZGVyLT5iYXNlLmNydGMtPnN0YXRlLT5jb25uZWN0b3JfbWFzayB8PQorCQkJCWNydGNfc3RhdGUt PnVhcGkuY29ubmVjdG9yX21hc2sgfD0KIAkJCQkJZHJtX2Nvbm5lY3Rvcl9tYXNrKCZjb25uZWN0 b3ItPmJhc2UpOwotCQkJCWVuY29kZXItPmJhc2UuY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzayB8 PQorCQkJCWNydGNfc3RhdGUtPnVhcGkuZW5jb2Rlcl9tYXNrIHw9CiAJCQkJCWRybV9lbmNvZGVy X21hc2soJmVuY29kZXItPmJhc2UpOwogCQkJfQogCkBAIC0xNjgzMiwxMSArMTY4MzksMTIgQEAg c3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJCWludCBtaW5fY2RjbGsgPSAwOwogCiAJCW1lbXNldCgmY3J0Yy0+YmFzZS5t b2RlLCAwLCBzaXplb2YoY3J0Yy0+YmFzZS5tb2RlKSk7Ci0JCWlmIChjcnRjX3N0YXRlLT5iYXNl LmFjdGl2ZSkgeworCQlpZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQlpbnRlbF9tb2Rl X2Zyb21fcGlwZV9jb25maWcoJmNydGMtPmJhc2UubW9kZSwgY3J0Y19zdGF0ZSk7CiAJCQljcnRj LT5iYXNlLm1vZGUuaGRpc3BsYXkgPSBjcnRjX3N0YXRlLT5waXBlX3NyY193OwogCQkJY3J0Yy0+ YmFzZS5tb2RlLnZkaXNwbGF5ID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfaDsKLQkJCWludGVsX21v ZGVfZnJvbV9waXBlX2NvbmZpZygmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLCBjcnRj X3N0YXRlKTsKKwkJCWludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZygmY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZSwKKwkJCQkJCSAgICBjcnRjX3N0YXRlKTsKIAkJCVdBUk5fT04oZHJtX2F0 b21pY19zZXRfbW9kZV9mb3JfY3J0YyhjcnRjLT5iYXNlLnN0YXRlLCAmY3J0Yy0+YmFzZS5tb2Rl KSk7CiAKIAkJCS8qCkBAIC0xNjg0OCw3ICsxNjg1Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21v ZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICogc2V0 IGEgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGEgZnVsbCByZWNhbGN1bGF0aW9uIGlzCiAJCQkgKiBu ZWVkZWQgb24gdGhlIG5leHQgY29tbWl0LgogCQkJICovCi0JCQljcnRjX3N0YXRlLT5iYXNlLm1v ZGUucHJpdmF0ZV9mbGFncyA9IEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRDsKKwkJCWNydGNfc3Rh dGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyA9IEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRDsKIAog CQkJaW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7CiAKQEAgLTE2ODU5 LDcgKzE2ODY3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQl9CiAKIAkJCWRybV9jYWxjX3RpbWVzdGFtcGlu Z19jb25zdGFudHMoJmNydGMtPmJhc2UsCi0JCQkJCQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZSk7CisJCQkJCQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUpOwogCQkJdXBk YXRlX3NjYW5saW5lX29mZnNldChjcnRjX3N0YXRlKTsKIAkJfQogCkBAIC0xNzAzMCw3ICsxNzAz OCw3IEBAIGludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKIAogCQlkcm1fY3J0Y192YmxhbmtfcmVzZXQoJmNydGMtPmJhc2UpOwogCi0JCWlmIChjcnRj X3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwkJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCWlu dGVsX2NydGNfdmJsYW5rX29uKGNydGNfc3RhdGUpOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCA5NzY2NjlmMDFh OGMuLjkyY2Y4YzQ1YzQxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKQEAgLTc0OSw3ICs3NDksMzEgQEAgZW51bSBpbnRlbF9v dXRwdXRfZm9ybWF0IHsKIH07CiAKIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKLQlzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgYmFzZTsKKwl1bmlvbiB7CisJLyoKKwkgKiB1YXBpIChkcm0pIHN0YXRl LiBUaGlzIGlzIHRoZSBzb2Z0d2FyZSBzdGF0ZSBzaG93biB0byB1c2Vyc3BhY2UuCisJICogSW4g cGFydGljdWxhciwgdGhlIGZvbGxvd2luZyBtZW1iZXJzIGFyZSB1c2VkIGZvciBib29ra2VlcGlu ZzoKKwkgKiAtIGNydGMKKwkgKiAtIHN0YXRlCisJICogLSAqX2NoYW5nZWQKKwkgKiAtIGV2ZW50 CisJICogLSBjb21taXQKKwkgKiAtIG1vZGVfYmxvYgorCSAqLworCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSB1YXBpOworCisJLyoKKwkgKiBhY3R1YWwgaGFyZHdhcmUgc3RhdGUsIHRoZSBzdGF0ZSB3 ZSBwcm9ncmFtIHRvIHRoZSBoYXJkd2FyZS4KKwkgKiBUaGUgZm9sbG93aW5nIG1lbWJlcnMgYXJl IHVzZWQgdG8gdmVyaWZ5IHRoZSBoYXJkd2FyZSBzdGF0ZToKKwkgKiAtIGVuYWJsZQorCSAqIC0g YWN0aXZlCisJICogLSBtb2RlIC8gYWRqdXN0ZWRfbW9kZQorCSAqIC0gY29sb3IgcHJvcGVydHkg YmxvYnMuCisJICoKKwkgKiBEdXJpbmcgaW5pdGlhbCBodyByZWFkb3V0LCB0aGV5IG5lZWQgdG8g YmUgY29waWVkIHRvIHVhcGkuCisJICovCisJc3RydWN0IGRybV9jcnRjX3N0YXRlIGh3OworCX07 CiAKIAkvKioKIAkgKiBxdWlya3MgLSBiaXRmaWVsZCB3aXRoIGh3IHN0YXRlIHJlYWRvdXQgcXVp cmtzCkBAIC0xMDkzLDcgKzExMTcsNyBAQCBzdHJ1Y3QgY3hzcl9sYXRlbmN5IHsKIAogI2RlZmlu ZSB0b19pbnRlbF9hdG9taWNfc3RhdGUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUsIGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX2NydGMoeCkgY29udGFpbmVyX29m KHgsIHN0cnVjdCBpbnRlbF9jcnRjLCBiYXNlKQotI2RlZmluZSB0b19pbnRlbF9jcnRjX3N0YXRl KHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgYmFzZSkKKyNkZWZp bmUgdG9faW50ZWxfY3J0Y19zdGF0ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUsIHVhcGkpCiAjZGVmaW5lIHRvX2ludGVsX2Nvbm5lY3Rvcih4KSBjb250YWluZXJf b2YoeCwgc3RydWN0IGludGVsX2Nvbm5lY3RvciwgYmFzZSkKICNkZWZpbmUgdG9faW50ZWxfZW5j b2Rlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2VuY29kZXIsIGJhc2UpCiAjZGVm aW5lIHRvX2ludGVsX2ZyYW1lYnVmZmVyKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50ZWxf ZnJhbWVidWZmZXIsIGJhc2UpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMK aW5kZXggMmIxZTcxZjk5MmIwLi5hM2MxMTFjZWM1MjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwLmMKQEAgLTE5NTgsNyArMTk1OCw3IEBAIGludGVsX2RwX2NvbXB1dGVf bGlua19jb25maWdfd2lkZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCSAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgY29uc3Qgc3RydWN0IGxpbmtf Y29uZmlnX2xpbWl0cyAqbGltaXRzKQogewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVk X21vZGU7CiAJaW50IGJwcCwgY2xvY2ssIGxhbmVfY291bnQ7CiAJaW50IG1vZGVfcmF0ZSwgbGlu a19jbG9jaywgbGlua19hdmFpbDsKIApAQCAtMjAxMiw3ICsyMDEyLDcgQEAgc3RhdGljIGludCBp bnRlbF9kcF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIHsK IAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGlu dGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRp Z19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlOwogCXU4IGRzY19tYXhfYnBjOwogCWludCBwaXBlX2JwcDsKIAlpbnQgcmV0OwpAQCAtMjEy Miw3ICsyMTIyLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnLAogCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK IHsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBs aW5rX2NvbmZpZ19saW1pdHMgbGltaXRzOwogCWludCBjb21tb25fbGVuOwpAQCAtMjIxMCw4ICsy MjEwLDggQEAgaW50ZWxfZHBfeWNiY3I0MjBfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCiB7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9y LT5kaXNwbGF5X2luZm87CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCQkm Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlpbnQgcmV0OwogCiAJaWYg KCFkcm1fbW9kZV9pc180MjBfb25seShpbmZvLCBhZGp1c3RlZF9tb2RlKSB8fApAQCAtMjIzOSw3 ICsyMjM5LDcgQEAgYm9vbCBpbnRlbF9kcF9saW1pdGVkX2NvbG9yX3JhbmdlKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNvbnN0IHN0cnVjdCBpbnRlbF9kaWdp dGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0ZSA9CiAJCXRvX2ludGVsX2RpZ2l0 YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAKIAkvKgogCSAqIE91ciBZQ2JD ciBvdXRwdXQgaXMgYWx3YXlzIGxpbWl0ZWQgcmFuZ2UuCkBAIC0yMjcyLDExICsyMjcyLDExIEBA IGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0J c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxf bHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50ZWxfbHNwY29uKCZlbmNvZGVyLT5iYXNlKTsKIAll bnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5j cnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9k cC0+YXR0YWNoZWRfY29ubmVjdG9yOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9z dGF0ZSAqaW50ZWxfY29ubl9zdGF0ZSA9CiAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0 YXRlKGNvbm5fc3RhdGUpOwpAQCAtMjM5MCw4ICsyMzkwLDggQEAgc3RhdGljIHZvaWQgaW50ZWxf ZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsK IAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBp cGVfY29uZmlnLT51YXBpLmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaW50ZWxf ZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJ CQkgcGlwZV9jb25maWctPmxhbmVfY291bnQsCkBAIC0yOTg4LDcgKzI5ODgsNyBAQCBzdGF0aWMg dm9pZCBhc3NlcnRfZWRwX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJv b2wgc3RhdGUpCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxsX29uKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCiAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlhc3NlcnRfcGlwZV9kaXNhYmxl ZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CkBAIC0zMDI4LDcgKzMwMjgsNyBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9lZHBfcGxsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiBzdGF0aWMg dm9pZCBpcm9ubGFrZV9lZHBfcGxsX29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJ CSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAogCWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9w cml2LCBjcnRjLT5waXBlKTsKQEAgLTMxODgsNyArMzE4OCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2RwX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJdTMy IHRtcCwgZmxhZ3MgPSAwOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmln LT51YXBpLmNydGMpOwogCiAJaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkK IAkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0VEUCk7CkBA IC0zMjIzLDcgKzMyMjMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9nZXRfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OVlNZ TkM7CiAJfQogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFn czsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKIAogCWlm IChJU19HNFgoZGV2X3ByaXYpICYmIHRtcCAmIERQX0NPTE9SX1JBTkdFXzE2XzIzNSkKIAkJcGlw ZV9jb25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UgPSB0cnVlOwpAQCAtMzI0MCw3ICszMjQwLDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gMjcwMDAwOwogCX0KIAotCXBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CisJcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CiAJCWludGVsX2RvdGNsb2NrX2NhbGN1bGF0 ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJCQkJICZwaXBlX2NvbmZpZy0+ZHBfbV9uKTsK IApAQCAtMzQ1NSw3ICszNDU1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGku Y3J0Yyk7CiAJdTMyIGRwX3JlZyA9IEk5MTVfUkVBRChpbnRlbF9kcC0+b3V0cHV0X3JlZyk7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwpA QCAtMzU4OCw3ICszNTg4LDcgQEAgc3RhdGljIHZvaWQgdmx2X2luaXRfcGFuZWxfcG93ZXJfc2Vx dWVuY2VyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19t dXRleCk7CiAKQEAgLTQxMTAsNyArNDExMCw3IEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKIAl1MzIgRFAgPSBp bnRlbF9kcC0+RFA7CiAKQEAgLTQ4NzEsNyArNDg3MSw3IEBAIGludCBpbnRlbF9kcF9yZXRyYWlu X2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlXQVJOX09OKCFpbnRlbF9j cnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiAwOwogCiAJ aWYgKGNvbm5fc3RhdGUtPmNvbW1pdCAmJgpAQCAtNjY5MCw3ICs2NjkwLDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQkJCSAgICBpbnQgcmVmcmVzaF9yYXRlKQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBkZXZfcHJpdi0+ZHJycy5kcDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAllbnVtIGRycnNfcmVmcmVzaF9yYXRlX3R5cGUgaW5kZXggPSBEUlJTX0hJR0hfUlI7CiAKIAlp ZiAocmVmcmVzaF9yYXRlIDw9IDApIHsKQEAgLTY3MjMsNyArNjcyMyw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2RwX3NldF9kcnJzX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkJcmV0dXJuOwogCX0KIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwlp ZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewogCQlEUk1fREVCVUdfS01TKCJlRFAgZW5jb2Rl ciBkaXNhYmxlZC4gQ1JUQyBub3QgQWN0aXZlXG4iKTsKIAkJcmV0dXJuOwogCX0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCmluZGV4IGNmNGQ4NTFhNTEzOS4u ZmU5MGIxZDZiNGMyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwX21zdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBf bXN0LmMKQEAgLTQyLDEzICs0MiwxMyBAQCBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRl X2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCQkgICAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUsCiAJCQkJCSAgICBzdHJ1Y3QgbGlu a19jb25maWdfbGltaXRzICpsaW1pdHMpCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOwogCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5j b2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9tc3QtPnByaW1hcnktPmRwOwogCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciA9CiAJCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRl LT5jb25uZWN0b3IpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGU7CiAJdm9pZCAqcG9ydCA9IGNvbm5lY3Rvci0+cG9ydDsKIAlib29s IGNvbnN0YW50X24gPSBkcm1fZHBfaGFzX3F1aXJrKCZpbnRlbF9kcC0+ZGVzYywKIAkJCQkJICAg RFBfRFBDRF9RVUlSS19DT05TVEFOVF9OKTsKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIGludCBp bnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRl ID0KIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl OwogCXZvaWQgKnBvcnQgPSBjb25uZWN0b3ItPnBvcnQ7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xp bWl0cyBsaW1pdHM7CiAJaW50IHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHBpb19waHkuYwppbmRleCA1NTZkMWIzMGYwNmEuLjcwNGYzODY4MWM0YiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGlvX3BoeS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYwpAQCAtNzM5LDcg KzczOSw3IEBAIHZvaWQgY2h2X2RhdGFfbGFuZV9zb2Z0X3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rw b3J0X3RvX2NoYW5uZWwoZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB2YWw7CiAKQEAg LTc4Myw3ICs3ODMsNyBAQCB2b2lkIGNodl9waHlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQg PSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQp OwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1bnNpZ25lZCBpbnQgbGFuZV9tYXNr ID0KQEAgLTg2NCw3ICs4NjQsNyBAQCB2b2lkIGNodl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCWVudW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwo ZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpbnQgZGF0YSwgaSwgc3Rh Z2dlcjsKQEAgLTk1Myw3ICs5NTMsNyBAQCB2b2lkIGNodl9waHlfcG9zdF9wbGxfZGlzYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQllbnVtIHBpcGUgcGlw ZSA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CisJZW51 bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpLT5w aXBlOwogCXUzMiB2YWw7CiAKIAl2bHZfZHBpb19nZXQoZGV2X3ByaXYpOwpAQCAtMTAxNiw3ICsx MDE2LDcgQEAgdm9pZCB2bHZfcGh5X3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAll bnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtMTA0Niw3ICsxMDQ2LDcgQEAgdm9pZCB2 bHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5i YXNlKTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0 KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIGRwaW9fY2hhbm5l bCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKIAl1MzIgdmFsOwpAQCAtMTA3NSw3ICsxMDc1LDcgQEAgdm9pZCB2bHZfcGh5 X3Jlc2V0X2xhbmVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNl KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xk X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gZHBpb19jaGFubmVs IHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChkcG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxf bWdyLmMKaW5kZXggODRlNzM0ZDQ0ODI4Li4wOTZlOGQ2NDA4ZmUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKQEAgLTEzNiw3ICsxMzYsNyBAQCB2 b2lkIGFzc2VydF9zaGFyZWRfZHBsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAgKi8KIHZvaWQgaW50ZWxfcHJlcGFyZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwogCkBA IC0xNjMsNyArMTYzLDcgQEAgdm9pZCBpbnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogICovCiB2b2lkIGludGVsX2VuYWJs ZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBs bCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwogCXVuc2lnbmVkIGludCBjcnRjX21hc2sgPSBk cm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKTsKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIGludGVs X2VuYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKICAqLwogdm9pZCBpbnRlbF9kaXNhYmxlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwog CXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7 CiAJdW5zaWduZWQgaW50IGNydGNfbWFzayA9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwpA QCAtODI1LDcgKzgyNSw3IEBAIGhzd19kZGlfaGRtaV9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgogaHN3 X2RkaV9kcF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUt PmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVk X2RwbGwgKnBsbDsKIAllbnVtIGludGVsX2RwbGxfaWQgcGxsX2lkOwogCWludCBjbG9jayA9IGNy dGNfc3RhdGUtPnBvcnRfY2xvY2s7CkBAIC0xNzM0LDcgKzE3MzQsNyBAQCBzdGF0aWMgYm9vbAog Ynh0X2RkaV9oZG1pX3BsbF9kaXZpZGVycyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAkJCSAgc3RydWN0IGJ4dF9jbGtfZGl2ICpjbGtfZGl2KQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcGxsIGJlc3RfY2xvY2s7CiAKIAkvKiBDYWxjdWxhdGUgSERNSSBkaXYg Ki8KQEAgLTIyNTcsNyArMjI1Nyw3IEBAIHN0YXRpYyBib29sCiBjbmxfZGRpX2NhbGN1bGF0ZV93 cnBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCXN0cnVjdCBza2xf d3JwbGxfcGFyYW1zICp3cnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNy dGMtPmRldik7CiAJdTMyIGFmZV9jbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2sgKiA1Owog CXUzMiByZWZfY2xvY2s7CiAJdTMyIGRjb19taW4gPSA3OTk4MDAwOwpAQCAtMjUyMyw3ICsyNTIz LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBza2xfd3JwbGxfcGFyYW1zIGljbF90YnRfcGxsXzE5 XzJNSHpfdmFsdWVzID0gewogc3RhdGljIGJvb2wgaWNsX2NhbGNfZHBfY29tYm9fcGxsKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgc3RydWN0IHNrbF93cnBsbF9w YXJhbXMgKnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7 CiAJY29uc3Qgc3RydWN0IGljbF9jb21ib19wbGxfcGFyYW1zICpwYXJhbXMgPQogCQlkZXZfcHJp di0+Y2RjbGsuaHcucmVmID09IDI0MDAwID8KIAkJaWNsX2RwX2NvbWJvX3BsbF8yNE1Iel92YWx1 ZXMgOgpAQCAtMjU0NSw3ICsyNTQ1LDcgQEAgc3RhdGljIGJvb2wgaWNsX2NhbGNfZHBfY29tYm9f cGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIGJvb2wgaWNs X2NhbGNfdGJ0X3BsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAg ICAgc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRl dik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0 YXRlLT51YXBpLmNydGMtPmRldik7CiAKIAkqcGxsX3BhcmFtcyA9IGRldl9wcml2LT5jZGNsay5o dy5yZWYgPT0gMjQwMDAgPwogCQkJaWNsX3RidF9wbGxfMjRNSHpfdmFsdWVzIDogaWNsX3RidF9w bGxfMTlfMk1Iel92YWx1ZXM7CkBAIC0yNTU2LDcgKzI1NTYsNyBAQCBzdGF0aWMgYm9vbCBpY2xf Y2FsY19kcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJ CXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCXN0cnVjdCBpbnRlbF9kcGxsX2h3 X3N0YXRlICpwbGxfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7 CiAJdTMyIGNmZ2NyMCwgY2ZnY3IxOwogCXN0cnVjdCBza2xfd3JwbGxfcGFyYW1zIHBsbF9wYXJh bXMgPSB7IDAgfTsKIAlib29sIHJldDsKQEAgLTI2ODIsNyArMjY4Miw3IEBAIHN0YXRpYyBib29s IGljbF9tZ19wbGxfZmluZF9kaXZpc29ycyhpbnQgY2xvY2tfa2h6LCBib29sIGlzX2RwLCBib29s IHVzZV9zc2MsCiBzdGF0aWMgYm9vbCBpY2xfY2FsY19tZ19wbGxfc3RhdGUoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0 ZSAqcGxsX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWlu dCByZWZjbGtfa2h6ID0gZGV2X3ByaXYtPmNkY2xrLmh3LnJlZjsKIAlpbnQgY2xvY2sgPSBjcnRj X3N0YXRlLT5wb3J0X2Nsb2NrOwogCXUzMiBkY29fa2h6LCBtMWRpdiwgbTJkaXZfaW50LCBtMmRp dl9yZW0sIG0yZGl2X2ZyYWM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8u YwppbmRleCAzNDE5M2QwNDU5N2EuLmFmMDE0OWUzMmJmNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2R2by5jCkBAIC0xNzgsOSArMTc4LDkgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHZvX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZWxzZQog CQlmbGFncyB8PSBEUk1fTU9ERV9GTEFHX05WU1lOQzsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21v ZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7CiB9CiAKIHN0 YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LApAQCAtMjA3LDggKzIwNyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kdm8oc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJdTMyIHRlbXAgPSBJOTE1X1JFQUQoZHZvX3JlZyk7 CiAKIAlpbnRlbF9kdm8tPmRldi5kZXZfb3BzLT5tb2RlX3NldCgmaW50ZWxfZHZvLT5kZXYsCi0J CQkJCSAmcGlwZV9jb25maWctPmJhc2UubW9kZSwKLQkJCQkJICZwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlKTsKKwkJCQkJICZwaXBlX2NvbmZpZy0+aHcubW9kZSwKKwkJCQkJICZwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZSk7CiAKIAlJOTE1X1dSSVRFKGR2b19yZWcsIHRlbXAg fCBEVk9fRU5BQkxFKTsKIAlJOTE1X1JFQUQoZHZvX3JlZyk7CkBAIC0yNTMsNyArMjUzLDcgQEAg c3RhdGljIGludCBpbnRlbF9kdm9fY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNv ZGVyKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSA9CiAJCWlu dGVsX2R2by0+YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwotCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlw ZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAkvKgogCSAqIElmIHdlIGhhdmUgdGltaW5n cyBmcm9tIHRoZSBCSU9TIGZvciB0aGUgcGFuZWwsIHB1dCB0aGVtIGluCkBAIC0yNzcsOCArMjc3 LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25u X3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFw aS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgaW50ZWxfZHZvICppbnRl bF9kdm8gPSBlbmNfdG9fZHZvKGVuY29kZXIpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKIAl1MzIgZHZvX3ZhbDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5j CmluZGV4IDMxMTFlY2FlYWJkMC4uYzZjYzM3NzVmM2I4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZmJjLmMKQEAgLTY2Nyw3ICs2NjcsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWNhY2hl LT52bWEgPSBOVUxMOwogCWNhY2hlLT5mbGFncyA9IDA7CiAKLQljYWNoZS0+Y3J0Yy5tb2RlX2Zs YWdzID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzOworCWNhY2hlLT5jcnRj Lm1vZGVfZmxhZ3MgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzOwogCWlmIChJ U19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQljYWNoZS0+ Y3J0Yy5oc3dfYmR3X3BpeGVsX3JhdGUgPSBjcnRjX3N0YXRlLT5waXhlbF9yYXRlOwogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5jCmluZGV4IGM4ZjVlODYxYjRiOS4u MmNlOGJiY2RlYzMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWku YwpAQCAtMjc5LDcgKzI3OSw3IEBAIHN0YXRpYyB2b2lkIGlieF93cml0ZV9pbmZvZnJhbWUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJaTkxNV9yZWdfdCByZWcg PSBUVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsKIAl1MzIgdmFsID0gSTkxNV9SRUFE KHJlZyk7CiAJaW50IGk7CkBAIC0zMTUsNyArMzE1LDcgQEAgc3RhdGljIHZvaWQgaWJ4X3JlYWRf aW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIHZvaWQg KmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAl1MzIg dmFsLCAqZGF0YSA9IGZyYW1lOwogCWludCBpOwogCkBAIC0zMzQsNyArMzM0LDcgQEAgc3RhdGlj IHUzMiBpYnhfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFz ZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25m aWctPnVhcGkuY3J0YyktPnBpcGU7CiAJaTkxNV9yZWdfdCByZWcgPSBUVklERU9fRElQX0NUTChw aXBlKTsKIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAKQEAgLTM1Niw3ICszNTYsNyBAQCBz dGF0aWMgdm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogewogCWNvbnN0IHUzMiAqZGF0YSA9IGZyYW1lOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCWk5MTVfcmVnX3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxf Y3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwogCWludCBpOwpAQCAtMzk1 LDcgKzM5NSw3IEBAIHN0YXRpYyB2b2lkIGNwdF9yZWFkX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgICB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJdTMyIHZhbCwgKmRhdGEgPSBmcmFtZTsKIAlp bnQgaTsKIApAQCAtNDE0LDcgKzQxNCw3IEBAIHN0YXRpYyB1MzIgY3B0X2luZm9mcmFtZXNfZW5h YmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQllbnVtIHBpcGUgcGlw ZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0YyktPnBpcGU7CisJZW51bSBw aXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpLT5waXBlOwog CXUzMiB2YWwgPSBJOTE1X1JFQUQoVFZJREVPX0RJUF9DVEwocGlwZSkpOwogCiAJaWYgKCh2YWwg JiBWSURFT19ESVBfRU5BQkxFKSA9PSAwKQpAQCAtNDMyLDcgKzQzMiw3IEBAIHN0YXRpYyB2b2lk IHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJ Y29uc3QgdTMyICpkYXRhID0gZnJhbWU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJaTkxNV9yZWdfdCByZWcgPSBWTFZfVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+ cGlwZSk7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwogCWludCBpOwpAQCAtNDY4LDcgKzQ2 OCw3IEBAIHN0YXRpYyB2b2lkIHZsdl9yZWFkX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAkJCSAgICAgICB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJdTMyIHZhbCwgKmRhdGEgPSBmcmFtZTsKIAlpbnQgaTsK IApAQCAtNDg3LDcgKzQ4Nyw3IEBAIHN0YXRpYyB1MzIgdmx2X2luZm9mcmFtZXNfZW5hYmxlZChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQllbnVtIHBpcGUgcGlwZSA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0YyktPnBpcGU7CisJZW51bSBwaXBlIHBp cGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpLT5waXBlOwogCXUzMiB2 YWwgPSBJOTE1X1JFQUQoVkxWX1RWSURFT19ESVBfQ1RMKHBpcGUpKTsKIAogCWlmICgodmFsICYg VklERU9fRElQX0VOQUJMRSkgPT0gMCkKQEAgLTcwMCw3ICs3MDAsNyBAQCBpbnRlbF9oZG1pX2Nv bXB1dGVfYXZpX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlz dHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSA9ICZjcnRjX3N0YXRlLT5pbmZvZnJhbWVz LmF2aS5hdmk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9z dGF0ZS0+Y29ubmVjdG9yOwogCWludCByZXQ7CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCBpbnRlbF9o ZG1pX2NvbXB1dGVfaGRtaV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAKIAlyZXQgPSBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKGZy YW1lLAogCQkJCQkJCSAgY29ubl9zdGF0ZS0+Y29ubmVjdG9yLAotCQkJCQkJCSAgJmNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJCQkJCQkJICAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0 ZWRfbW9kZSk7CiAJaWYgKFdBUk5fT04ocmV0KSkKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC05NTcs NyArOTU3LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfaGRtaV9zZXRfZ2NwX2luZm9mcmFtZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWk5 MTVfcmVnX3QgcmVnOwogCiAJaWYgKChjcnRjX3N0YXRlLT5pbmZvZnJhbWVzLmVuYWJsZSAmCkBA IC05ODIsNyArOTgyLDcgQEAgdm9pZCBpbnRlbF9oZG1pX3JlYWRfZ2NwX2luZm9mcmFtZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlpOTE1X3JlZ190 IHJlZzsKIAogCWlmICgoY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5lbmFibGUgJgpAQCAtMTAxOSw3 ICsxMDE5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9jb21wdXRlX2djcF9pbmZvZnJhbWUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkvKiBFbmFibGUgZGVmYXVsdF9waGFz ZSB3aGVuZXZlciB0aGUgZGlzcGxheSBtb2RlIGlzIHN1aXRhYmx5IGFsaWduZWQgKi8KIAlpZiAo Z2NwX2RlZmF1bHRfcGhhc2VfcG9zc2libGUoY3J0Y19zdGF0ZS0+cGlwZV9icHAsCi0JCQkJICAg ICAgICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUpKQorCQkJCSAgICAgICAmY3J0Y19z dGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSkpCiAJCWNydGNfc3RhdGUtPmluZm9mcmFtZXMuZ2NwIHw9 IEdDUF9ERUZBVUxUX1BIQVNFX0VOQUJMRTsKIH0KIApAQCAtMTAyOSw3ICsxMDI5LDcgQEAgc3Rh dGljIHZvaWQgaWJ4X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVy LT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZpbnRlbF9kaWdfcG9y dC0+aGRtaTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBp cGUpOwpAQCAtMTA4OCw3ICsxMDg4LDcgQEAgc3RhdGljIHZvaWQgY3B0X3NldF9pbmZvZnJhbWVz KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3Rv X2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwogCWk5MTVfcmVnX3QgcmVnID0gVFZJREVPX0RJ UF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwpAQCAt MTEzNyw3ICsxMTM3LDcgQEAgc3RhdGljIHZvaWQgdmx2X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hk bWkoJmVuY29kZXItPmJhc2UpOwogCWk5MTVfcmVnX3QgcmVnID0gVkxWX1RWSURFT19ESVBfQ1RM KGludGVsX2NydGMtPnBpcGUpOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKQEAgLTE3MzMs OSArMTczMyw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfcHJlcGFyZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk ZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0g ZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBoZG1pX3ZhbDsKIAogCWludGVsX2RwX2R1 YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoaW50ZWxfaGRtaSwgdHJ1ZSk7CkBAIC0xODI2LDcgKzE4 MjYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2dldF9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJICAgIHRtcCAmIEhETUlfQ09MT1JfUkFOR0VfMTZfMjM1KQogCQlw aXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRydWU7CiAKLQlwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOworCXBpcGVfY29uZmlnLT5ody5hZGp1 c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJaWYgKCh0bXAgJiBTRFZPX0NPTE9SX0ZPUk1B VF9NQVNLKSA9PSBIRE1JX0NPTE9SX0ZPUk1BVF8xMmJwYykKIAkJZG90Y2xvY2sgPSBwaXBlX2Nv bmZpZy0+cG9ydF9jbG9jayAqIDIgLyAzOwpAQCAtMTgzNiw3ICsxODM2LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfaGRtaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CWlmIChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJZG90Y2xvY2sgLz0gcGlwZV9j b25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZS5jcnRjX2Nsb2NrID0gZG90Y2xvY2s7CiAKIAlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IDQ7 CiAKQEAgLTE4NTcsNyArMTg1Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9oZG1pX2F1 ZGlvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAKIAlX QVJOX09OKCFwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luayk7CiAJRFJNX0RFQlVHX0RSSVZFUigi RW5hYmxpbmcgSERNSSBhdWRpbyBvbiBwaXBlICVjXG4iLApAQCAtMTk0Myw3ICsxOTQzLDcgQEAg c3RhdGljIHZvaWQgY3B0X2VuYWJsZV9oZG1pKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFw aS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9o ZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMy IHRlbXA7CkBAIC0yMDA3LDcgKzIwMDcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2hk bWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2hkbWkgKmlu dGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQogCQloZG1pX3RvX2RpZ19wb3J0KGlu dGVsX2hkbWkpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRf Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJdTMyIHRlbXA7CiAKIAl0ZW1w ID0gSTkxNV9SRUFEKGludGVsX2hkbWktPmhkbWlfcmVnKTsKQEAgLTIyMDcsMTIgKzIyMDcsMTIg QEAgc3RhdGljIGJvb2wgaGRtaV9kZWVwX2NvbG9yX3Bvc3NpYmxlKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICAgaW50IGJwYykKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQotCQl0b19pOTE1KGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRl LT5iYXNlLnN0YXRlOworCQl0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKKwlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOwog CXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0b3Jfc3RhdGU7CiAJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWludCBpOwogCiAJaWYgKEhBU19HTUNIKGRl dl9wcml2KSkKQEAgLTIyMzcsNyArMjIzNyw3IEBAIHN0YXRpYyBib29sIGhkbWlfZGVlcF9jb2xv cl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlm b3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rv cl9zdGF0ZSwgaSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZj b25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKIAotCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9 IGNydGNfc3RhdGUtPmJhc2UuY3J0YykKKwkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSBj cnRjX3N0YXRlLT51YXBpLmNydGMpCiAJCQljb250aW51ZTsKIAogCQlpZiAoY3J0Y19zdGF0ZS0+ b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwKSB7CkBAIC0yMjc4 LDcgKzIyNzgsNyBAQCBzdGF0aWMgYm9vbAogaW50ZWxfaGRtaV95Y2JjcjQyMF9jb25maWcoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjb25maWcpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRl bF9jcnRjKGNvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY29uZmlnLT51YXBpLmNydGMpOwogCiAJaWYgKCFjb25uZWN0b3It PnljYmNyXzQyMF9hbGxvd2VkKSB7CiAJCURSTV9FUlJPUigiUGxhdGZvcm0gZG9lc24ndCBzdXBw b3J0IFlDQkNSNDIwIG91dHB1dFxuIik7CkBAIC0yMzMzLDcgKzIzMzMsNyBAQCBzdGF0aWMgaW50 IGludGVsX2hkbWlfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IHsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZl bmNvZGVyLT5iYXNlKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRl LT5ody5hZGp1c3RlZF9tb2RlOwogCWludCBicGMsIGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jazsKIAogCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJM Q0xLKQpAQCAtMjM3NSw3ICsyMzc1LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfaGRtaV9saW1pdGVk X2NvbG9yX3JhbmdlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3MKIAljb25z dCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUg PQogCQl0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRl LT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwog CiAJLyoKIAkgKiBPdXIgWUNiQ3Igb3V0cHV0IGlzIGFsd2F5cyBsaW1pdGVkIHJhbmdlLgpAQCAt MjQwMyw3ICsyNDAzLDcgQEAgaW50IGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkg PSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fc2NkYyAqc2NkYyA9ICZj b25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pLnNjZGM7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxf Y29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jCmluZGV4IGY4ZjEzMDg2NDNhOS4uNTE0NWZmOGI5NjJi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMKQEAgLTE4 OSw3ICsxODksNyBAQCB2b2lkIGxzcGNvbl95Y2JjcjQyMF9jb25maWcoc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciwKIHsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5m byA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21v ZGU7CisJCQkJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYgKGRybV9tb2Rl X2lzXzQyMF9vbmx5KGluZm8sIGFkanVzdGVkX21vZGUpICYmCiAJICAgIGNvbm5lY3Rvci0+eWNi Y3JfNDIwX2FsbG93ZWQpIHsKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2b2lkIGxzcGNvbl9zZXRfaW5m b2ZyYW1lcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJ c3RydWN0IGludGVsX2xzcGNvbiAqbHNwY29uID0gJmRpZ19wb3J0LT5sc3Bjb247CiAJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+ YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAog CWlmICghbHNwY29uLT5hY3RpdmUpIHsKIAkJRFJNX0VSUk9SKCJXcml0aW5nIGluZm9mcmFtZXMg d2hpbGUgTFNQQ09OIGRpc2FibGVkID9cbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2x2ZHMuYwppbmRleCBjNzg2YWJkYzMzMzYuLjBmNzdlNWE4YjdmZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKQEAgLTEzNSw3ICsxMzUsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9sdmRzX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJZWxzZQogCQlmbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BWU1lOQzsKIAotCXBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9w cml2KSA8IDUpCiAJCXBpcGVfY29uZmlnLT5nbWNoX3BmaXQubHZkc19ib3JkZXJfYml0cyA9CkBA IC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbHZkc19nZXRfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQlwaXBlX2NvbmZpZy0+Z21jaF9wZml0LmNvbnRy b2wgfD0gdG1wICYgUEFORUxfOFRPNl9ESVRIRVJfRU5BQkxFOwogCX0KIAotCXBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2Nr OworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jazsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfbHZkc19wcHNfZ2V0X2h3X3N0 YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTIzMCw4ICsyMzAsOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfZW5hYmxlX2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2x2ZHNfZW5jb2RlciAqbHZkc19lbmNvZGVyID0g dG9fbHZkc19lbmNvZGVyKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Ci0JY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB0ZW1wOwogCkBAIC0zOTIsOCArMzky LDggQEAgc3RhdGljIGludCBpbnRlbF9sdmRzX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9lbmNvZGVyLAogCQl0b19sdmRzX2VuY29kZXIoJmludGVsX2VuY29kZXIt PmJhc2UpOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9CiAJCWx2 ZHNfZW5jb2Rlci0+YXR0YWNoZWRfY29ubmVjdG9yOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5i YXNlLmNydGMpOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAl1bnNpZ25lZCBp bnQgbHZkc19icHA7CiAKIAkvKiBTaG91bGQgbmV2ZXIgaGFwcGVuISEgKi8KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYwppbmRleCBiYzE0ZTljMDI4NWEuLjZmM2Vh YWUzNzYxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9w YW5lbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYwpA QCAtMTc4LDcgKzE3OCw3IEBAIGludGVsX3BjaF9wYW5lbF9maXR0aW5nKHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjLAogCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAogCQkJaW50IGZpdHRpbmdfbW9kZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlOwogCWludCB4ID0gMCwgeSA9IDAsIHdpZHRoID0gMCwgaGVpZ2h0 ID0gMDsKIAogCS8qIE5hdGl2ZSBtb2RlcyBkb24ndCBuZWVkIGZpdHRpbmcgKi8KQEAgLTMwMCw3 ICszMDAsNyBAQCBzdGF0aWMgaW5saW5lIHUzMiBwYW5lbF9maXR0ZXJfc2NhbGluZyh1MzIgc291 cmNlLCB1MzIgdGFyZ2V0KQogc3RhdGljIHZvaWQgaTk2NV9zY2FsZV9hc3BlY3Qoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJICAgICAgdTMyICpwZml0X2NvbnRyb2wp CiB7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlw ZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1 MzIgc2NhbGVkX3dpZHRoID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAqCiAJCXBpcGVf Y29uZmlnLT5waXBlX3NyY19oOwogCXUzMiBzY2FsZWRfaGVpZ2h0ID0gcGlwZV9jb25maWctPnBp cGVfc3JjX3cgKgpAQCAtMzIxLDcgKzMyMSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfc2NhbGVfYXNw ZWN0KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCSAgICAgIHUzMiAq cGZpdF9jb250cm9sLCB1MzIgKnBmaXRfcGdtX3JhdGlvcywKIAkJCSAgICAgIHUzMiAqYm9yZGVy KQogewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJdTMyIHNjYWxlZF93 aWR0aCA9IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgKgogCQlwaXBlX2NvbmZpZy0+cGlw ZV9zcmNfaDsKIAl1MzIgc2NhbGVkX2hlaWdodCA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193ICoK QEAgLTM4MCw3ICszODAsNyBAQCB2b2lkIGludGVsX2dtY2hfcGFuZWxfZml0dGluZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKIAl1MzIgcGZpdF9jb250cm9s ID0gMCwgcGZpdF9wZ21fcmF0aW9zID0gMCwgYm9yZGVyID0gMDsKLQlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlOwogCiAJLyogTmF0aXZlIG1vZGVzIGRvbid0IG5lZWQgZml0dGlu ZyAqLwogCWlmIChhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ID09IHBpcGVfY29uZmlnLT5w aXBlX3NyY193ICYmCkBAIC0xMDQ3LDcgKzEwNDcsNyBAQCBzdGF0aWMgdm9pZCB2bHZfZW5hYmxl X2JhY2tsaWdodChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29u bl9zdGF0ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFu ZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKS0+cGlwZTsKIAl1MzIgY3RsLCBjdGwyOwogCiAJ Y3RsMiA9IEk5MTVfUkVBRChWTFZfQkxDX1BXTV9DVEwyKHBpcGUpKTsKQEAgLTEwNzcsNyArMTA3 Nyw3IEBAIHN0YXRpYyB2b2lkIGJ4dF9lbmFibGVfYmFja2xpZ2h0KGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRl dik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwotCWVu dW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpLT5waXBl OworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp LT5waXBlOwogCXUzMiBwd21fY3RsLCB2YWw7CiAKIAkvKiBDb250cm9sbGVyIDEgdXNlcyB0aGUg dXRpbGl0eSBwaW4uICovCkBAIC0xMTg5LDcgKzExODksNyBAQCB2b2lkIGludGVsX3BhbmVsX2Vu YWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9y KGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfcGFuZWwg KnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Ci0JZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CisJZW51bSBwaXBlIHBpcGUgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0YyktPnBpcGU7CiAKIAlpZiAoIXBhbmVsLT5i YWNrbGlnaHQucHJlc2VudCkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9waXBlX2NyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9waXBlX2NyYy5jCmluZGV4IDYyNjBhMjA4MjcxOS4uMjc0NjUxMmY0NDY2IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9waXBlX2NyYy5jCkBAIC0z MDksMTMgKzMwOSwxMyBAQCBpbnRlbF9jcnRjX2NyY19zZXR1cF93b3JrYXJvdW5kcyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywgYm9vbCBlbmFibGUpCiAJCWdvdG8gcHV0X3N0YXRlOwogCX0KIAot CXBpcGVfY29uZmlnLT5iYXNlLm1vZGVfY2hhbmdlZCA9IHBpcGVfY29uZmlnLT5oYXNfcHNyOwor CXBpcGVfY29uZmlnLT51YXBpLm1vZGVfY2hhbmdlZCA9IHBpcGVfY29uZmlnLT5oYXNfcHNyOwog CXBpcGVfY29uZmlnLT5jcmNfZW5hYmxlZCA9IGVuYWJsZTsKIAogCWlmIChJU19IQVNXRUxMKGRl dl9wcml2KSAmJgotCSAgICBwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUgJiYgY3J0Yy0+cGlwZSA9 PSBQSVBFX0EgJiYKKwkgICAgcGlwZV9jb25maWctPmh3LmFjdGl2ZSAmJiBjcnRjLT5waXBlID09 IFBJUEVfQSAmJgogCSAgICBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIgPT0gVFJBTlNDT0RF Ul9FRFApCi0JCXBpcGVfY29uZmlnLT5iYXNlLm1vZGVfY2hhbmdlZCA9IHRydWU7CisJCXBpcGVf Y29uZmlnLT51YXBpLm1vZGVfY2hhbmdlZCA9IHRydWU7CiAKIAlyZXQgPSBkcm1fYXRvbWljX2Nv bW1pdChzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCmlu ZGV4IGIzYzdlZWY1M2JmMy4uODk4OGRiZThjMTllIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfcHNyLmMKQEAgLTUzOCw4ICs1MzgsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9w c3IyX2NvbmZpZ192YWxpZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCSAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkcF90b19pOTE1KGludGVsX2RwKTsKLQlpbnQgY3J0Y19oZGlzcGxh eSA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCWludCBj cnRjX3ZkaXNwbGF5ID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdmRpc3Bs YXk7CisJaW50IGNydGNfaGRpc3BsYXkgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfaGRpc3BsYXk7CisJaW50IGNydGNfdmRpc3BsYXkgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlLmNydGNfdmRpc3BsYXk7CiAJaW50IHBzcl9tYXhfaCA9IDAsIHBzcl9tYXhfdiA9IDA7 CiAKIAlpZiAoIWRldl9wcml2LT5wc3Iuc2lua19wc3IyX3N1cHBvcnQpCkBAIC02MDUsNyArNjA1 LDcgQEAgdm9pZCBpbnRlbF9wc3JfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19w b3J0KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkcF90 b19pOTE1KGludGVsX2RwKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0 YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWludCBwc3Jfc2V0dXBfdGltZTsKIAogCWlmICghQ0FO X1BTUihkZXZfcHJpdikpCkBAIC03NDUsNyArNzQ1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHNy X2VuYWJsZV9sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiAJZGV2 X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPSBpbnRlbF9wc3IyX2VuYWJsZWQoZGV2X3ByaXYsIGNy dGNfc3RhdGUpOwogCWRldl9wcml2LT5wc3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzID0gMDsKLQlk ZXZfcHJpdi0+cHNyLnBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yykt PnBpcGU7CisJZGV2X3ByaXYtPnBzci5waXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpLT5waXBlOwogCWRldl9wcml2LT5wc3IudHJhbnNjb2RlciA9IGNydGNfc3RhdGUt PmNwdV90cmFuc2NvZGVyOwogCiAJLyoKQEAgLTk4OCw3ICs5ODgsNyBAQCB2b2lkIGludGVsX3Bz cl91cGRhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIGludCBpbnRlbF9wc3Jfd2FpdF9m b3JfaWRsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUsCiAJ CQkgICAgdTMyICpvdXRfdmFsdWUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK IAogCWlmICghZGV2X3ByaXYtPnBzci5lbmFibGVkIHx8ICFuZXdfY3J0Y19zdGF0ZS0+aGFzX3Bz cikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc2R2by5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKaW5kZXggYWRlYjFj ODQwOTc2Li5mNzRjNTI4ZDVkNjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfc2R2by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfc2R2by5jCkBAIC0xMDg3LDcgKzEwODcsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9zZHZvX2Nv bXB1dGVfYXZpX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bywKIHsKIAlz dHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSA9ICZjcnRjX3N0YXRlLT5pbmZvZnJhbWVz LmF2aS5hdmk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZTsKIAlpbnQgcmV0OwogCiAJaWYgKCFjcnRjX3N0YXRlLT5oYXNfaGRtaV9z aW5rKQpAQCAtMTI3Niw4ICsxMjc2LDggQEAgc3RhdGljIGludCBpbnRlbF9zZHZvX2NvbXB1dGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQl0b19pbnRlbF9zZHZvX2Nv bm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAlzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0b3Ig KmludGVsX3Nkdm9fY29ubmVjdG9yID0KIAkJdG9faW50ZWxfc2R2b19jb25uZWN0b3IoY29ubl9z dGF0ZS0+Y29ubmVjdG9yKTsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwotCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLm1vZGU7CisJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7 CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmcGlwZV9jb25maWctPmh3Lm1vZGU7 CiAKIAlEUk1fREVCVUdfS01TKCJmb3JjaW5nIGJwYyB0byA4IGZvciBTRFZPXG4iKTsKIAlwaXBl X2NvbmZpZy0+cGlwZV9icHAgPSA4KjM7CkBAIC0xNDI5LDEzICsxNDI5LDEzIEBAIHN0YXRpYyB2 b2lkIGludGVsX3Nkdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlciwKIAkJCQkgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxf ZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5j cnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9zZHZvX2Nv bm5lY3Rvcl9zdGF0ZSAqc2R2b19zdGF0ZSA9CiAJCXRvX2ludGVsX3Nkdm9fY29ubmVjdG9yX3N0 YXRlKGNvbm5fc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3RvciAqaW50 ZWxfc2R2b19jb25uZWN0b3IgPQogCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcihjb25uX3N0YXRl LT5jb25uZWN0b3IpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNy dGNfc3RhdGUtPmJhc2UubW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9k ZSA9ICZjcnRjX3N0YXRlLT5ody5tb2RlOwogCXN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZv ID0gdG9fc2R2byhpbnRlbF9lbmNvZGVyKTsKIAl1MzIgc2R2b3g7CiAJc3RydWN0IGludGVsX3Nk dm9faW5fb3V0X21hcCBpbl9vdXQ7CkBAIC0xNjI5LDcgKzE2MjksNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9zZHZvX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlm bGFncyB8PSBEUk1fTU9ERV9GTEFHX05WU1lOQzsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJLyoKIAkgKiBwaXhlbCBtdWx0aXBsaWVyIHJlYWRvdXQg aXMgdHJpY2t5OiBPbmx5IG9uIGk5MTVnL2dtIGl0IGlzIHN0b3JlZCBpbgpAQCAtMTY0OSw3ICsx NjQ5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCWlmIChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJ ZG90Y2xvY2sgLz0gcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gZG90Y2xvY2s7CiAKIAkvKiBDcm9zcyBj aGVjayB0aGUgcG9ydCBwaXhlbCBtdWx0aXBsaWVyIHdpdGggdGhlIHNkdm8gZW5jb2RlciBzdGF0 ZS4gKi8KIAlpZiAoaW50ZWxfc2R2b19nZXRfdmFsdWUoaW50ZWxfc2R2bywgU0RWT19DTURfR0VU X0NMT0NLX1JBVEVfTVVMVCwKQEAgLTE3MDEsNyArMTcwMSw3IEBAIHN0YXRpYyB2b2lkIGludGVs X3Nkdm9fZW5hYmxlX2F1ZGlvKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAogCQkJCSAg ICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRl LT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwog CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7 CiAJdTggKmVsZCA9IGNvbm5lY3Rvci0+ZWxkOwogCkBAIC0xNzIzLDcgKzE3MjMsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kaXNhYmxlX3Nkdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3Nkdm8gKmludGVsX3Nkdm8gPSB0b19zZHZvKGVu Y29kZXIpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJdTMyIHRlbXA7CiAKIAlpZiAob2xk X2NydGNfc3RhdGUtPmhhc19hdWRpbykKQEAgLTE3ODUsNyArMTc4NSw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2VuYWJsZV9zZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3Nkdm8gKmlu dGVsX3Nkdm8gPSB0b19zZHZvKGVuY29kZXIpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0 Yyk7CiAJdTMyIHRlbXA7CiAJYm9vbCBpbnB1dDEsIGlucHV0MjsKIAlpbnQgaTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jCmluZGV4IDNkNTZkYjMyMjkxYi4u ZjA5NTZmZWNkZWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Nwcml0ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3By aXRlLmMKQEAgLTgxLDkgKzgxLDkgQEAgaW50IGludGVsX3VzZWNzX3RvX3NjYW5saW5lcyhjb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSwKICAqLwogdm9pZCBpbnRl bF9waXBlX3VwZGF0ZV9zdGFydChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2Ny dGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5l d19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZuZXdfY3J0Y19zdGF0ZS0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJm5ld19jcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWxvbmcgdGltZW91 dCA9IG1zZWNzX3RvX2ppZmZpZXNfdGltZW91dCgxKTsKIAlpbnQgc2NhbmxpbmUsIG1pbiwgbWF4 LCB2Ymxhbmtfc3RhcnQ7CiAJd2FpdF9xdWV1ZV9oZWFkX3QgKndxID0gZHJtX2NydGNfdmJsYW5r X3dhaXRxdWV1ZSgmY3J0Yy0+YmFzZSk7CkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBpbnRlbF9w aXBlX3VwZGF0ZV9zdGFydChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGUpCiAgKi8KIHZvaWQgaW50ZWxfcGlwZV91cGRhdGVfZW5kKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpbnQgc2NhbmxpbmVfZW5kID0gaW50ZWxfZ2V0 X2NydGNfc2NhbmxpbmUoY3J0Yyk7CiAJdTMyIGVuZF92YmxfY291bnQgPSBpbnRlbF9jcnRjX2dl dF92YmxhbmtfY291bnRlcihjcnRjKTsKQEAgLTIwMywxNCArMjAzLDE1IEBAIHZvaWQgaW50ZWxf cGlwZV91cGRhdGVfZW5kKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkK IAkgKiBXb3VsZCBiZSBzbGlnaHRseSBuaWNlIHRvIGp1c3QgZ3JhYiB0aGUgdmJsYW5rIGNvdW50 IGFuZCBhcm0gdGhlCiAJICogZXZlbnQgb3V0c2lkZSBvZiB0aGUgY3JpdGljYWwgc2VjdGlvbiAt IHRoZSBzcGlubG9jayBtaWdodCBzcGluIGZvciBhCiAJICogd2hpbGUgLi4uICovCi0JaWYgKG5l d19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KSB7CisJaWYgKG5ld19jcnRjX3N0YXRlLT51YXBpLmV2 ZW50KSB7CiAJCVdBUk5fT04oZHJtX2NydGNfdmJsYW5rX2dldCgmY3J0Yy0+YmFzZSkgIT0gMCk7 CiAKIAkJc3Bpbl9sb2NrKCZjcnRjLT5iYXNlLmRldi0+ZXZlbnRfbG9jayk7Ci0JCWRybV9jcnRj X2FybV92YmxhbmtfZXZlbnQoJmNydGMtPmJhc2UsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50 KTsKKwkJZHJtX2NydGNfYXJtX3ZibGFua19ldmVudCgmY3J0Yy0+YmFzZSwKKwkJCQkgICAgICAg ICAgbmV3X2NydGNfc3RhdGUtPnVhcGkuZXZlbnQpOwogCQlzcGluX3VubG9jaygmY3J0Yy0+YmFz ZS5kZXYtPmV2ZW50X2xvY2spOwogCi0JCW5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50ID0gTlVM TDsKKwkJbmV3X2NydGNfc3RhdGUtPnVhcGkuZXZlbnQgPSBOVUxMOwogCX0KIAogCWxvY2FsX2ly cV9lbmFibGUoKTsKQEAgLTE1MTUsNyArMTUxNiw3IEBAIGc0eF9zcHJpdGVfY2hlY2tfc2NhbGlu ZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAljb25zdCBzdHJ1Y3QgZHJt X3JlY3QgKmRzdCA9ICZwbGFuZV9zdGF0ZS0+YmFzZS5kc3Q7CiAJaW50IHNyY194LCBzcmNfdywg c3JjX2gsIGNydGNfdywgY3J0Y19oOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNy dGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdW5zaWduZWQgaW50IGNwcCA9IGZiLT5mb3Jt YXQtPmNwcFswXTsKIAl1bnNpZ25lZCBpbnQgd2lkdGhfYnl0ZXM7CiAJaW50IG1pbl93aWR0aCwg bWluX2hlaWdodDsKQEAgLTE1ODcsNyArMTU4OCw3IEBAIGc0eF9zcHJpdGVfY2hlY2soc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19o ZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0 Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPnVhcGksCiAJCQkJCQkgIG1pbl9z Y2FsZSwgbWF4X3NjYWxlLAogCQkJCQkJICB0cnVlLCB0cnVlKTsKIAlpZiAocmV0KQpAQCAtMTY0 NCw3ICsxNjQ1LDcgQEAgdmx2X3Nwcml0ZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkJcmV0dXJuIHJldDsKIAogCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2No ZWNrX3BsYW5lX3N0YXRlKCZwbGFuZV9zdGF0ZS0+YmFzZSwKLQkJCQkJCSAgJmNydGNfc3RhdGUt PmJhc2UsCisJCQkJCQkgICZjcnRjX3N0YXRlLT51YXBpLAogCQkJCQkJICBEUk1fUExBTkVfSEVM UEVSX05PX1NDQUxJTkcsCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJ CQkJCSAgdHJ1ZSwgdHJ1ZSk7CkBAIC0xNzI4LDggKzE3MjksOCBAQCBzdGF0aWMgaW50IHNrbF9w bGFuZV9jaGVja19mYihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IAl9CiAKIAkvKiBZLXRpbGluZyBpcyBub3Qgc3VwcG9ydGVkIGluIElGLUlEIEludGVybGFjZSBt b2RlICovCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlICYmCi0JICAgIGNydGNfc3RhdGUt PmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFICYmCisJ aWYgKGNydGNfc3RhdGUtPmh3LmVuYWJsZSAmJgorCSAgICBjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UgJiYKIAkgICAgKGZiLT5tb2Rp ZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCB8fAogCSAgICAgZmItPm1vZGlmaWVyID09 IEk5MTVfRk9STUFUX01PRF9ZZl9USUxFRCB8fAogCSAgICAgZmItPm1vZGlmaWVyID09IEk5MTVf Rk9STUFUX01PRF9ZX1RJTEVEX0NDUyB8fApAQCAtMTgwOSw3ICsxODEwLDcgQEAgc3RhdGljIGlu dCBza2xfcGxhbmVfY2hlY2soc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ fQogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0 YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3Rh dGUtPnVhcGksCiAJCQkJCQkgIG1pbl9zY2FsZSwgbWF4X3NjYWxlLAogCQkJCQkJICB0cnVlLCB0 cnVlKTsKIAlpZiAocmV0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5jCmlu ZGV4IGI3MDIyMWY1MTEyYS4uOTZhM2Q5MzQ4NDcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF90di5jCkBAIC05MjQsNyArOTI0LDcgQEAgaW50ZWxfZW5hYmxlX3R2KHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJLyogUHJldmVudHMgdmJsYW5rIHdhaXRzIGZy b20gdGltaW5nIG91dCBpbiBpbnRlbF90dl9kZXRlY3RfdHlwZSgpICovCiAJaW50ZWxfd2FpdF9m b3JfdmJsYW5rKGRldl9wcml2LAotCQkJICAgICAgdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+ YmFzZS5jcnRjKS0+cGlwZSk7CisJCQkgICAgICB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51 YXBpLmNydGMpLT5waXBlKTsKIAogCUk5MTVfV1JJVEUoVFZfQ1RMLCBJOTE1X1JFQUQoVFZfQ1RM KSB8IFRWX0VOQ19FTkFCTEUpOwogfQpAQCAtMTA4Niw3ICsxMDg2LDcgQEAgaW50ZWxfdHZfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSA9IHt9OwogCXUzMiB0dl9jdGwsIGhjdGwxLCBoY3Rs MywgdmN0bDEsIHZjdGwyLCB0bXA7CiAJc3RydWN0IHR2X21vZGUgdHZfbW9kZSA9IHt9OwpAQCAt MTE4OSw3ICsxMTg5LDcgQEAgaW50ZWxfdHZfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJCXRvX2ludGVsX3R2X2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRl KTsKIAljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9IGludGVsX3R2X21vZGVfZmluZChj b25uX3N0YXRlKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0J CSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGU7CiAJaW50IGhkaXNwbGF5ID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxh eTsKIAlpbnQgdmRpc3BsYXkgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5OwogCkBAIC0x NDE4LDcgKzE0MTgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9wcmVfZW5hYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGludGVsX3R2ICppbnRlbF90diA9IGVuY190b190dihlbmNvZGVyKTsKIAlj b25zdCBzdHJ1Y3QgaW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlICp0dl9jb25uX3N0YXRlID0KIAkJ dG9faW50ZWxfdHZfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3Zkc2MuYwppbmRleCBkNGZiN2YxNmY5ZjYuLjM4YzE4MTQ5OTUw NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMKQEAgLTMyOSw4 ICszMjksOCBAQCBpbnQgaW50ZWxfZHBfY29tcHV0ZV9kc2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCiAJaW50IGNvbHVtbl9pbmRleCA9IDA7CiAJdTggbGluZV9idWZfZGVwdGgg PSAwOwogCi0JdmRzY19jZmctPnBpY193aWR0aCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuY3J0Y19oZGlzcGxheTsKLQl2ZHNjX2NmZy0+cGljX2hlaWdodCA9IHBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKKwl2ZHNjX2NmZy0+cGljX3dpZHRo ID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxheTsKKwl2ZHNjX2Nm Zy0+cGljX2hlaWdodCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdmRpc3Bs YXk7CiAJdmRzY19jZmctPnNsaWNlX3dpZHRoID0gRElWX1JPVU5EX1VQKHZkc2NfY2ZnLT5waWNf d2lkdGgsCiAJCQkJCSAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2VfY291bnQpOwog CS8qCkBAIC00NTksNyArNDU5LDcgQEAgaW50IGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcyhz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFp bgogaW50ZWxfZHNjX3Bvd2VyX2RvbWFpbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJZW51bSB0cmFuc2Nv ZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CiAKIAkvKgpA QCAtNDgzLDcgKzQ4Myw3IEBAIGludGVsX2RzY19wb3dlcl9kb21haW4oY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpbnRlbF9jb25maWd1cmVf cHBzX2Zvcl9kc2NfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJ CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1fZHNjX2NvbmZpZyAqdmRzY19jZmcg PSAmY3J0Y19zdGF0ZS0+ZHBfZHNjX2NmZzsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7 CkBAIC05MDIsNyArOTAyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfd3JpdGVfZHNjX3Bwc19z ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB2b2lkIGludGVsX2RzY19lbmFibGUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwog CWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190IGRzc19jdGwxX3JlZywg ZHNzX2N0bDJfcmVnOwpAQCAtOTM4LDcgKzkzOCw3IEBAIHZvaWQgaW50ZWxfZHNjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogdm9pZCBpbnRlbF9kc2NfZGlzYWJsZShj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJ aTkxNV9yZWdfdCBkc3NfY3RsMV9yZWcsIGRzc19jdGwyX3JlZzsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS92bHZfZHNpLmMKaW5kZXggNTAwNjRjZGUwNzI0Li4xNmY5M2QxZTcxZTUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCkBAIC0yNjEsOSArMjYxLDkgQEAgc3Rh dGljIGludCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gY29udGFpbmVyX29mKGVuY29k ZXIsIHN0cnVjdCBpbnRlbF9kc2ksCiAJCQkJCQkgICBiYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kc2ktPmF0dGFjaGVkX2Nvbm5lY3RvcjsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT51YXBpLmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpmaXhl ZF9tb2RlID0gaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwotCXN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9j b25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IHJldDsKIAogCURSTV9ERUJVR19LTVMoIlxu Iik7CkBAIC02MjQsNyArNjI0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3BvcnRfZW5hYmxl KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+ YmFzZSk7CiAJZW51bSBwb3J0IHBvcnQ7CiAKQEAgLTc0Niw3ICs3NDYsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kc2lfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3Ry dWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFz ZSk7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJhc2UuY3J0YzsKKwlz dHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFwaS5jcnRjOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwpAQCAtMTAzMiw5ICsxMDMyLDkgQEAgc3RhdGljIHZv aWQgYnh0X2RzaV9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkJCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGVfc3c7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsK IAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVy LT5iYXNlKTsKIAl1bnNpZ25lZCBpbnQgbGFuZV9jb3VudCA9IGludGVsX2RzaS0+bGFuZV9jb3Vu dDsKIAl1bnNpZ25lZCBpbnQgYnBwLCBmbXQ7CkBAIC0xMDQ1LDcgKzEwNDUsNyBAQCBzdGF0aWMg dm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQljcnRjX2hibGFua19zdGFydF9zdywgY3J0Y19oYmxhbmtfZW5kX3N3OwogCiAJLyog RklYTUU6IGh3IHJlYWRvdXQgc2hvdWxkIG5vdCBkZXBlbmQgb24gU1cgc3RhdGUgKi8KLQlhZGp1 c3RlZF9tb2RlX3N3ID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWFkanVz dGVkX21vZGVfc3cgPSAmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJLyoKIAkg KiBBdGxlYXN0IG9uZSBwb3J0IGlzIGFjdGl2ZSBhcyBlbmNvZGVyLT5nZXRfY29uZmlnIGNhbGxl ZCBvbmx5IGlmCkBAIC0xMjA0LDcgKzEyMDQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAl9CiAKIAlpZiAocGNsaykg ewotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwY2xrOwor CQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGNsazsKIAkJcGlw ZV9jb25maWctPnBvcnRfY2xvY2sgPSBwY2xrOwogCX0KIH0KQEAgLTEzMTUsOSArMTMxNSw5IEBA IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyLAogCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVy LT5iYXNlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5kZXY7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRl bF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9j b25maWctPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3Rv X2ludGVsX2RzaShlbmNvZGVyKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlOwogCWVudW0gcG9ydCBwb3J0OwogCXVuc2lnbmVkIGludCBicHAgPSBtaXBp X2RzaV9waXhlbF9mb3JtYXRfdG9fYnBwKGludGVsX2RzaS0+cGl4ZWxfZm9ybWF0KTsKIAl1MzIg dmFsLCB0bXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGI1YjQ0OWE4OGNm MS4uYjQ5ZWQxZjk3OTJmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjc0 OSwxMSArMjc0OSwxMSBAQCBzdGF0aWMgaW50IGk5MTVfZGlzcGxheV9pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCiAJCXNlcV9wcmludGYobSwgIkNSVEMgJWQ6IHBpcGU6 ICVjLCBhY3RpdmU9JXMsIChzaXplPSVkeCVkKSwgZGl0aGVyPSVzLCBicHA9JWRcbiIsCiAJCQkg ICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBpcGVfbmFtZShjcnRjLT5waXBlKSwKLQkJCSAgIHllc25v KHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSksCisJCQkgICB5ZXNubyhwaXBlX2NvbmZpZy0+aHcu YWN0aXZlKSwKIAkJCSAgIHBpcGVfY29uZmlnLT5waXBlX3NyY193LCBwaXBlX2NvbmZpZy0+cGlw ZV9zcmNfaCwKIAkJCSAgIHllc25vKHBpcGVfY29uZmlnLT5kaXRoZXIpLCBwaXBlX2NvbmZpZy0+ cGlwZV9icHApOwogCi0JCWlmIChwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUpIHsKKwkJaWYgKHBp cGVfY29uZmlnLT5ody5hY3RpdmUpIHsKIAkJCXN0cnVjdCBpbnRlbF9wbGFuZSAqY3Vyc29yID0K IAkJCQl0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLmN1cnNvcik7CiAKQEAgLTQyMDUsMTEgKzQy MDUsMTEgQEAgc3RhdGljIGludCBpOTE1X2RycnNfY3RsX3NldCh2b2lkICpkYXRhLCB1NjQgdmFs KQogCiAJCWNydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUp OwogCi0JCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwKKwkJaWYgKCFjcnRjX3N0YXRl LT5ody5hY3RpdmUgfHwKIAkJICAgICFjcnRjX3N0YXRlLT5oYXNfZHJycykKIAkJCWdvdG8gb3V0 OwogCi0JCWNvbW1pdCA9IGNydGNfc3RhdGUtPmJhc2UuY29tbWl0OworCQljb21taXQgPSBjcnRj X3N0YXRlLT51YXBpLmNvbW1pdDsKIAkJaWYgKGNvbW1pdCkgewogCQkJcmV0ID0gd2FpdF9mb3Jf Y29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZjb21taXQtPmh3X2RvbmUpOwogCQkJaWYgKHJldCkK QEAgLTQyMjEsNyArNDIyMSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcnJzX2N0bF9zZXQodm9pZCAq ZGF0YSwgdTY0IHZhbCkKIAkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCQkJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcDsKIAotCQkJaWYgKCEoY3J0Y19zdGF0ZS0+YmFzZS5jb25u ZWN0b3JfbWFzayAmCisJCQlpZiAoIShjcnRjX3N0YXRlLT51YXBpLmNvbm5lY3Rvcl9tYXNrICYK IAkJCSAgICAgIGRybV9jb25uZWN0b3JfbWFzayhjb25uZWN0b3IpKSkKIAkJCQljb250aW51ZTsK IApAQCAtNDI4MCwxNCArNDI4MCwxNCBAQCBpOTE1X2ZpZm9fdW5kZXJydW5fcmVzZXRfd3JpdGUo c3RydWN0IGZpbGUgKmZpbHAsCiAJCQlyZXR1cm4gcmV0OwogCiAJCWNydGNfc3RhdGUgPSB0b19p bnRlbF9jcnRjX3N0YXRlKGludGVsX2NydGMtPmJhc2Uuc3RhdGUpOwotCQljb21taXQgPSBjcnRj X3N0YXRlLT5iYXNlLmNvbW1pdDsKKwkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+dWFwaS5jb21taXQ7 CiAJCWlmIChjb21taXQpIHsKIAkJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25faW50ZXJydXB0 aWJsZSgmY29tbWl0LT5od19kb25lKTsKIAkJCWlmICghcmV0KQogCQkJCXJldCA9IHdhaXRfZm9y X2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5mbGlwX2RvbmUpOwogCQl9CiAKLQkJ aWYgKCFyZXQgJiYgY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwkJaWYgKCFyZXQgJiYgY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQlEUk1fREVCVUdfS01TKCJSZS1hcm1pbmcgRklGTyB1 bmRlcnJ1bnMgb24gcGlwZSAlY1xuIiwKIAkJCQkgICAgICBwaXBlX25hbWUoaW50ZWxfY3J0Yy0+ cGlwZSkpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA2YmVkMmVkMTQ1NzQuLmFjYzg3 Yjg0MzFmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC00ODQsNyArNDg0LDcgQEAgc3Rh dGljIGNvbnN0IGludCBwZXNzaW1hbF9sYXRlbmN5X25zID0gNTAwMDsKIAogc3RhdGljIHZvaWQg dmx2X2dldF9maWZvX3NpemUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IHZsdl9maWZvX3N0YXRlICpmaWZvX3N0 YXRlID0gJmNydGNfc3RhdGUtPndtLnZsdi5maWZvX3N0YXRlOwogCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKQEAgLTgxOCw3ICs4MTgsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF93bV9wbGFu ZV92aXNpYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFz ZS5wbGFuZSk7CiAKIAkvKiBGSVhNRSBjaGVjayB0aGUgJ2VuYWJsZScgaW5zdGVhZCAqLwotCWlm ICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUp CiAJCXJldHVybiBmYWxzZTsKIAogCS8qCkBAIC04NzEsNyArODcxLDcgQEAgc3RhdGljIHZvaWQg cGluZXZpZXdfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAljcnRj ID0gc2luZ2xlX2VuYWJsZWRfY3J0YyhkZXZfcHJpdik7CiAJaWYgKGNydGMpIHsKIAkJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGMtPmNvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkJJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5w cmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CkBAIC0x MTA3LDcgKzExMDcsNyBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUg PSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5wbGFuZSk7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwogCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUt PmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJ dW5zaWduZWQgaW50IGxhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbbGV2ZWxdICog MTA7CiAJdW5zaWduZWQgaW50IGNsb2NrLCBodG90YWwsIGNwcCwgd2lkdGgsIHdtOwogCkBAIC0x MTY3LDcgKzExNjcsNyBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIGJvb2wgZzR4X3Jhd19wbGFuZV93 bV9zZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGludCBsZXZl bCwgZW51bSBwbGFuZV9pZCBwbGFuZV9pZCwgdTE2IHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWJvb2wgZGlydHkgPSBmYWxzZTsKIAogCWZvciAoOyBsZXZl bCA8IGludGVsX3dtX251bV9sZXZlbHMoZGV2X3ByaXYpOyBsZXZlbCsrKSB7CkBAIC0xMTgzLDcg KzExODMsNyBAQCBzdGF0aWMgYm9vbCBnNHhfcmF3X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHN0YXRpYyBib29sIGc0eF9yYXdfZmJjX3dtX3NldChz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgICBpbnQgbGV2ZWws IHUxNiB2YWx1ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlib29s IGRpcnR5ID0gZmFsc2U7CiAKIAkvKiBOT1JNQUwgbGV2ZWwgZG9lc24ndCBoYXZlIGFuIEZCQyB3 YXRlcm1hcmsgKi8KQEAgLTEyODUsNyArMTI4NSw3IEBAIHN0YXRpYyBib29sIGc0eF9yYXdfcGxh bmVfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiBzdGF0aWMgYm9vbCBnNHhfcmF3X2NydGNfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAgICBpbnQgbGV2ZWwpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAKIAlpZiAobGV2ZWwgPiBkZXZfcHJpdi0+d20u bWF4X2xldmVsKQogCQlyZXR1cm4gZmFsc2U7CkBAIC0xMzIzLDkgKzEzMjMsOSBAQCBzdGF0aWMg dm9pZCBnNHhfaW52YWxpZGF0ZV93bXMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRp YyBpbnQgZzR4X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsK KwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCXN0cnVj dCBnNHhfd21fc3RhdGUgKndtX3N0YXRlID0gJmNydGNfc3RhdGUtPndtLmc0eC5vcHRpbWFsOwog CWludCBudW1fYWN0aXZlX3BsYW5lcyA9IGh3ZWlnaHQ4KGNydGNfc3RhdGUtPmFjdGl2ZV9wbGFu ZXMgJgogCQkJCQkgfkJJVChQTEFORV9DVVJTT1IpKTsKQEAgLTE0MTIsMTcgKzE0MTIsMTcgQEAg c3RhdGljIGludCBnNHhfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogCiBzdGF0aWMgaW50IGc0eF9jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAlzdHJ1Y3QgZzR4X3dtX3N0YXRlICppbnRlcm1lZGlhdGUgPSAmbmV3X2NydGNf c3RhdGUtPndtLmc0eC5pbnRlcm1lZGlhdGU7CiAJY29uc3Qgc3RydWN0IGc0eF93bV9zdGF0ZSAq b3B0aW1hbCA9ICZuZXdfY3J0Y19zdGF0ZS0+d20uZzR4Lm9wdGltYWw7CiAJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3 X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2Ny dGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoaW50ZWxf c3RhdGUsIGNydGMpOwogCWNvbnN0IHN0cnVjdCBnNHhfd21fc3RhdGUgKmFjdGl2ZSA9ICZvbGRf Y3J0Y19zdGF0ZS0+d20uZzR4Lm9wdGltYWw7CiAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZDsKIAot CWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8IGRybV9hdG9taWNfY3J0Y19uZWVk c19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpIHsKKwlpZiAoIW5ld19jcnRjX3N0YXRl LT5ody5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0 YXRlLT51YXBpKSkgewogCQkqaW50ZXJtZWRpYXRlID0gKm9wdGltYWw7CiAKIAkJaW50ZXJtZWRp YXRlLT5jeHNyID0gZmFsc2U7CkBAIC0xNTU0LDggKzE1NTQsOCBAQCBzdGF0aWMgdm9pZCBnNHhf cHJvZ3JhbV93YXRlcm1hcmtzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHN0 YXRpYyB2b2lkIGc0eF9pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUsCiAJCQkJICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAK IAltdXRleF9sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogCWNydGMtPndtLmFjdGl2ZS5n NHggPSBjcnRjX3N0YXRlLT53bS5nNHguaW50ZXJtZWRpYXRlOwpAQCAtMTU2Niw4ICsxNTY2LDgg QEAgc3RhdGljIHZvaWQgZzR4X2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKIHN0YXRpYyB2b2lkIGc0eF9vcHRpbWl6ZV93YXRlcm1hcmtzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0 Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAogCWlmICghY3J0Y19zdGF0ZS0+d20ubmVlZF9wb3N0dmJsX3Vw ZGF0ZSkKIAkJcmV0dXJuOwpAQCAtMTYxNiw3ICsxNjE2LDcgQEAgc3RhdGljIHUxNiB2bHZfY29t cHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK IAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUt PmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUocGxhbmUtPmJhc2UuZGV2KTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXVuc2lnbmVkIGludCBjbG9jaywgaHRvdGFsLCBj cHAsIHdpZHRoLCB3bTsKIAogCWlmIChkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbbGV2ZWxdID09 IDApCkBAIC0xNjU0LDcgKzE2NTQsNyBAQCBzdGF0aWMgYm9vbCB2bHZfbmVlZF9zcHJpdGUwX2Zp Zm9fd29ya2Fyb3VuZCh1bnNpZ25lZCBpbnQgYWN0aXZlX3BsYW5lcykKIAogc3RhdGljIGludCB2 bHZfY29tcHV0ZV9maWZvKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCWNvbnN0IHN0cnVjdCBnNHhfcGlwZV93bSAqcmF3ID0KIAkJJmNy dGNfc3RhdGUtPndtLnZsdi5yYXdbVkxWX1dNX0xFVkVMX1BNMl07CiAJc3RydWN0IHZsdl9maWZv X3N0YXRlICpmaWZvX3N0YXRlID0gJmNydGNfc3RhdGUtPndtLnZsdi5maWZvX3N0YXRlOwpAQCAt MTc2Niw3ICsxNzY2LDcgQEAgc3RhdGljIHUxNiB2bHZfaW52ZXJ0X3dtX3ZhbHVlKHUxNiB3bSwg dTE2IGZpZm9fc2l6ZSkKIHN0YXRpYyBib29sIHZsdl9yYXdfcGxhbmVfd21fc2V0KHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBpbnQgbGV2ZWwsIGVudW0gcGxhbmVf aWQgcGxhbmVfaWQsIHUxNiB2YWx1ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2KTsKIAlpbnQgbnVtX2xldmVscyA9IGludGVsX3dtX251bV9sZXZlbHMoZGV2X3ByaXYpOwog CWJvb2wgZGlydHkgPSBmYWxzZTsKIApAQCAtMTg0MSwxNiArMTg0MSwxNiBAQCBzdGF0aWMgYm9v bCB2bHZfcmF3X2NydGNfd21faXNfdmFsaWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAKIHN0YXRpYyBpbnQgdmx2X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0 ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNf c3RhdGUtPnVhcGkuc3RhdGUpOwogCXN0cnVjdCB2bHZfd21fc3RhdGUgKndtX3N0YXRlID0gJmNy dGNfc3RhdGUtPndtLnZsdi5vcHRpbWFsOwogCWNvbnN0IHN0cnVjdCB2bHZfZmlmb19zdGF0ZSAq Zmlmb19zdGF0ZSA9CiAJCSZjcnRjX3N0YXRlLT53bS52bHYuZmlmb19zdGF0ZTsKIAlpbnQgbnVt X2FjdGl2ZV9wbGFuZXMgPSBod2VpZ2h0OChjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzICYKIAkJ CQkJIH5CSVQoUExBTkVfQ1VSU09SKSk7Ci0JYm9vbCBuZWVkc19tb2Rlc2V0ID0gZHJtX2F0b21p Y19jcnRjX25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmJhc2UpOworCWJvb2wgbmVlZHNfbW9k ZXNldCA9IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZjcnRjX3N0YXRlLT51YXBpKTsK IAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZTsKIAljb25z dCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm5ld19wbGFuZV9zdGF0ZTsKIAlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lOwpAQCAtMTk0OSw3ICsxOTQ5LDcgQEAgc3RhdGljIGludCB2bHZfY29t cHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGlj IHZvaWQgdmx2X2F0b21pY191cGRhdGVfZmlmbyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmZGV2 X3ByaXYtPnVuY29yZTsKIAljb25zdCBzdHJ1Y3Qgdmx2X2ZpZm9fc3RhdGUgKmZpZm9fc3RhdGUg PQpAQCAtMjA0NSwxNyArMjA0NSwxNyBAQCBzdGF0aWMgdm9pZCB2bHZfYXRvbWljX3VwZGF0ZV9m aWZvKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCiBzdGF0aWMgaW50IHZsdl9j b21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19j cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qgdmx2X3dtX3N0YXRl ICppbnRlcm1lZGlhdGUgPSAmbmV3X2NydGNfc3RhdGUtPndtLnZsdi5pbnRlcm1lZGlhdGU7CiAJ Y29uc3Qgc3RydWN0IHZsdl93bV9zdGF0ZSAqb3B0aW1hbCA9ICZuZXdfY3J0Y19zdGF0ZS0+d20u dmx2Lm9wdGltYWw7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQot CQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0 b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCWNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9CiAJCWludGVsX2F0b21p Y19nZXRfb2xkX2NydGNfc3RhdGUoaW50ZWxfc3RhdGUsIGNydGMpOwogCWNvbnN0IHN0cnVjdCB2 bHZfd21fc3RhdGUgKmFjdGl2ZSA9ICZvbGRfY3J0Y19zdGF0ZS0+d20udmx2Lm9wdGltYWw7CiAJ aW50IGxldmVsOwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwgZHJtX2F0 b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkgeworCWlmICgh bmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNl dCgmbmV3X2NydGNfc3RhdGUtPnVhcGkpKSB7CiAJCSppbnRlcm1lZGlhdGUgPSAqb3B0aW1hbDsK IAogCQlpbnRlcm1lZGlhdGUtPmN4c3IgPSBmYWxzZTsKQEAgLTIxNzMsOCArMjE3Myw4IEBAIHN0 YXRpYyB2b2lkIHZsdl9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogc3RhdGljIHZvaWQgdmx2X2luaXRpYWxfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2 KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9tdXRleCk7CiAJY3J0 Yy0+d20uYWN0aXZlLnZsdiA9IGNydGNfc3RhdGUtPndtLnZsdi5pbnRlcm1lZGlhdGU7CkBAIC0y MTg1LDggKzIxODUsOCBAQCBzdGF0aWMgdm9pZCB2bHZfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZvaWQgdmx2X29wdGltaXplX3dh dGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJaWYgKCFjcnRjX3N0YXRlLT53bS5u ZWVkX3Bvc3R2YmxfdXBkYXRlKQogCQlyZXR1cm47CkBAIC0yMjExLDcgKzIyMTEsNyBAQCBzdGF0 aWMgdm9pZCBpOTY1X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJ CS8qIHNlbGYtcmVmcmVzaCBoYXMgbXVjaCBoaWdoZXIgbGF0ZW5jeSAqLwogCQlzdGF0aWMgY29u c3QgaW50IHNyX2xhdGVuY3lfbnMgPSAxMjAwMDsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlOworCQkJJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7 CiAJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7CkBAIC0yMjkyLDcgKzIy OTIsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51 c2VkX2NydGMpCiAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShkZXZfcHJpdiwgUExB TkVfQSk7CiAJaWYgKGludGVsX2NydGNfYWN0aXZlKGNydGMpKSB7CiAJCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJCWNv bnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJCWNydGMtPmJhc2UucHJpbWFyeS0+ c3RhdGUtPmZiOwogCQlpbnQgY3BwOwpAQCAtMjMxOSw3ICsyMzE5LDcgQEAgc3RhdGljIHZvaWQg aTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWNydGMgPSBp bnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0IpOwogCWlmIChpbnRlbF9j cnRjX2FjdGl2ZShjcnRjKSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkm Y3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9CiAJCQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJaW50IGNw cDsKQEAgLTIzNjcsNyArMjM2Nyw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVj dCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAkJLyogc2VsZi1yZWZyZXNoIGhhcyBtdWNoIGhp Z2hlciBsYXRlbmN5ICovCiAJCXN0YXRpYyBjb25zdCBpbnQgc3JfbGF0ZW5jeV9ucyA9IDYwMDA7 CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZl bmFibGVkLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZlbmFibGVkLT5jb25maWct Pmh3LmFkanVzdGVkX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0K IAkJCWVuYWJsZWQtPmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwogCQlpbnQgY2xvY2sgPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwpAQCAtMjQyNSw3ICsyNDI1LDcgQEAgc3RhdGljIHZvaWQg aTg0NV91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWlmIChjcnRj ID09IE5VTEwpCiAJCXJldHVybjsKIAotCWFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5jb25maWctPmh3LmFk anVzdGVkX21vZGU7CiAJcGxhbmVhX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKGFkanVzdGVkX21v ZGUtPmNydGNfY2xvY2ssCiAJCQkJICAgICAgICZpODQ1X3dtX2luZm8sCiAJCQkJICAgICAgIGRl dl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0EpLApAQCAtMjUx NSw3ICsyNTE1LDcgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9wcmlfd20oY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiBtZXRob2QxOwogCiAJbWV0 aG9kMiA9IGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkJIGNydGNf c3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKIAkJCQkgZHJtX3JlY3Rfd2lkdGgoJnBsYW5l X3N0YXRlLT5iYXNlLmRzdCksCiAJCQkJIGNwcCwgbWVtX3ZhbHVlKTsKIApAQCAtMjU0Myw3ICsy NTQzLDcgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIAltZXRob2QxID0gaWxrX3dtX21ldGhvZDEoY3J0 Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOwogCW1ldGhvZDIgPSBpbGtfd21f bWV0aG9kMihjcnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJCSBjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y19odG90YWwsCisJCQkJIGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21v ZGUuY3J0Y19odG90YWwsCiAJCQkJIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+YmFzZS5k c3QpLAogCQkJCSBjcHAsIG1lbV92YWx1ZSk7CiAJcmV0dXJuIG1pbihtZXRob2QxLCBtZXRob2Qy KTsKQEAgLTI1NjgsNyArMjU2OCw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfY3VyX3dtKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNwcCA9IHBsYW5lX3N0 YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKIAogCXJldHVybiBpbGtfd21fbWV0aG9kMihj cnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJICAgICAgY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJICAgICAgY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9k ZS5jcnRjX2h0b3RhbCwKIAkJCSAgICAgIHBsYW5lX3N0YXRlLT5iYXNlLmNydGNfdywgY3BwLCBt ZW1fdmFsdWUpOwogfQogCkBAIC0yNzg5LDEyICsyNzg5LDEyIEBAIHN0YXRpYyB1MzIKIGhzd19j b21wdXRlX2xpbmV0aW1lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewogCWNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0K LQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCQl0b19p bnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CiAJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5h ZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1MzIgbGlu ZXRpbWUsIGlwc19saW5ldGltZTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJ aWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiAwOwogCWlmIChXQVJOX09OKGFk anVzdGVkX21vZGUtPmNydGNfY2xvY2sgPT0gMCkpCiAJCXJldHVybiAwOwpAQCAtMzEwNCwxMSAr MzEwNCw5IEBAIHN0YXRpYyBib29sIGlsa192YWxpZGF0ZV9waXBlX3dtKGNvbnN0IHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIC8qIENvbXB1dGUgbmV3IHdhdGVybWFya3MgZm9y IHRoZSBwaXBlICovCiBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcGlwZV93bTsKLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKLQljb25zdCBzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGRybV9wbGFuZSAq cGxhbmU7CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CiAJY29u c3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwcmlzdGF0ZSA9IE5VTEw7CkBAIC0zMTE5LDcg KzMxMTcsNyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIAlwaXBlX3dtID0gJmNydGNfc3RhdGUtPndtLmlsay5v cHRpbWFsOwogCi0JZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBs YW5lLCBwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUtPmJhc2UpIHsKKwlkcm1fYXRvbWljX2NydGNf c3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBsYW5lX3N0YXRlLCAmY3J0Y19zdGF0 ZS0+dWFwaSkgewogCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBzID0gdG9faW50 ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpOwogCiAJCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1f UExBTkVfVFlQRV9QUklNQVJZKQpAQCAtMzEzMCw3ICszMTI4LDcgQEAgc3RhdGljIGludCBpbGtf Y29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQkJ Y3Vyc3RhdGUgPSBwczsKIAl9CiAKLQlwaXBlX3dtLT5waXBlX2VuYWJsZWQgPSBjcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZTsKKwlwaXBlX3dtLT5waXBlX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5ody5h Y3RpdmU7CiAJaWYgKHNwcnN0YXRlKSB7CiAJCXBpcGVfd20tPnNwcml0ZXNfZW5hYmxlZCA9IHNw cnN0YXRlLT5iYXNlLnZpc2libGU7CiAJCXBpcGVfd20tPnNwcml0ZXNfc2NhbGVkID0gc3Byc3Rh dGUtPmJhc2UudmlzaWJsZSAmJgpAQCAtMzE4NywxMSArMzE4NSwxMSBAQCBzdGF0aWMgaW50IGls a19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAg Ki8KIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpuZXdzdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMobmV3c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKG5ld3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5k ZXYpOwogCXN0cnVjdCBpbnRlbF9waXBlX3dtICphID0gJm5ld3N0YXRlLT53bS5pbGsuaW50ZXJt ZWRpYXRlOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KLQkJdG9f aW50ZWxfYXRvbWljX3N0YXRlKG5ld3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRv bWljX3N0YXRlKG5ld3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKGlu dGVsX3N0YXRlLCBpbnRlbF9jcnRjKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqYiA9 ICZvbGRzdGF0ZS0+d20uaWxrLm9wdGltYWw7CkBAIC0zMjAzLDcgKzMyMDEsNyBAQCBzdGF0aWMg aW50IGlsa19jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq bmV3c3RhdGUpCiAJICogYW5kIGFmdGVyIHRoZSB2YmxhbmsuCiAJICovCiAJKmEgPSBuZXdzdGF0 ZS0+d20uaWxrLm9wdGltYWw7Ci0JaWYgKCFuZXdzdGF0ZS0+YmFzZS5hY3RpdmUgfHwgZHJtX2F0 b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld3N0YXRlLT5iYXNlKSB8fAorCWlmICghbmV3c3Rh dGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3c3RhdGUt PnVhcGkpIHx8CiAJICAgIGludGVsX3N0YXRlLT5za2lwX2ludGVybWVkaWF0ZV93bSkKIAkJcmV0 dXJuIDA7CiAKQEAgLTM3ODAsNyArMzc3OCw3IEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2 KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWNydGMgPSBpbnRlbF9nZXRfY3J0 Y19mb3JfcGlwZShkZXZfcHJpdiwgcGlwZSk7CiAJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNf c3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAKLQlpZiAoY3J0Yy0+YmFzZS5zdGF0ZS0+YWRqdXN0 ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCWlmIChjcnRjX3N0YXRl LT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXJl dHVybiBmYWxzZTsKIAogCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBw bGFuZSkgewpAQCAtMzgzMCw3ICszODI4LDcgQEAgc3RhdGljIHUxNiBpbnRlbF9nZXRfZGRiX3Np emUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpIDwgMTEpCiAJCXJldHVybiBkZGJfc2l6ZSAtIDQ7IC8qIDQgYmxvY2tzIGZvciBieXBh c3MgcGF0aCBhbGxvY2F0aW9uICovCiAKLQlhZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwlhZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGU7CiAJdG90YWxfZGF0YV9idyA9IHRvdGFsX2RhdGFfcmF0ZSAqIGRybV9tb2RlX3Zy ZWZyZXNoKGFkanVzdGVkX21vZGUpOwogCiAJLyoKQEAgLTM4NTksMTYgKzM4NTcsMTYgQEAgc2ts X2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkJICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9jLCAvKiBvdXQgKi8K IAkJCQkgICBpbnQgKm51bV9hY3RpdmUgLyogb3V0ICovKQogewotCXN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7 Ci0Jc3RydWN0IGRybV9jcnRjICpmb3JfY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlz dHJ1Y3QgZHJtX2NydGMgKmZvcl9jcnRjID0gY3J0Y19zdGF0ZS0+dWFwaS5jcnRjOwogCWNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXUzMiBwaXBlX3dpZHRoID0gMCwgdG90YWxfd2lk dGggPSAwLCB3aWR0aF9iZWZvcmVfcGlwZSA9IDA7CiAJZW51bSBwaXBlIGZvcl9waXBlID0gdG9f aW50ZWxfY3J0Yyhmb3JfY3J0YyktPnBpcGU7CiAJdTE2IGRkYl9zaXplOwogCXUzMiBpOwogCi0J aWYgKFdBUk5fT04oIXN0YXRlKSB8fCAhY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwlpZiAo V0FSTl9PTighc3RhdGUpIHx8ICFjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsKIAkJYWxsb2MtPnN0 YXJ0ID0gMDsKIAkJYWxsb2MtPmVuZCA9IDA7CiAJCSpudW1fYWN0aXZlID0gaHdlaWdodDgoZGV2 X3ByaXYtPmFjdGl2ZV9waXBlcyk7CkBAIC0zOTA3LDExICszOTA1LDExIEBAIHNrbF9kZGJfZ2V0 X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAogCSAqLwogCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKGludGVsX3N0YXRlLCBj cnRjLCBjcnRjX3N0YXRlLCBpKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkm Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5w aXBlOwogCQlpbnQgaGRpc3BsYXksIHZkaXNwbGF5OwogCi0JCWlmICghY3J0Y19zdGF0ZS0+YmFz ZS5lbmFibGUpCisJCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQogCQkJY29udGludWU7CiAK IAkJZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhhZGp1c3RlZF9tb2RlLCAmaGRpc3BsYXksICZ2ZGlz cGxheSk7CkBAIC0zOTQyLDcgKzM5NDAsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50CiBza2xfY3Vy c29yX2FsbG9jYXRpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiAJCSAgICAgIGludCBudW1fYWN0aXZlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOwogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJp dik7CiAJc3RydWN0IHNrbF93bV9sZXZlbCB3bSA9IHt9OwogCWludCByZXQsIG1pbl9kZGJfYWxs b2MgPSAwOwpAQCAtNDExMSw3ICs0MTA5LDcgQEAgc2tsX3BpcGVfZG93bnNjYWxlX2Ftb3VudChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAl1aW50X2ZpeGVk XzE2XzE2X3QgcGlwZV9kb3duc2NhbGUgPSB1MzJfdG9fZml4ZWQxNigxKTsKIAotCWlmICghY3J0 Y19zdGF0ZS0+YmFzZS5lbmFibGUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJl dHVybiBwaXBlX2Rvd25zY2FsZTsKIAogCWlmIChjcnRjX3N0YXRlLT5wY2hfcGZpdC5lbmFibGVk KSB7CkBAIC00MTQzLDcgKzQxNDEsNyBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3BpeGVsX3Jh dGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCQkJICBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGRybV9wbGFu ZSAqcGxhbmU7CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX3BsYW5lX3N0YXRl OwogCWludCBjcnRjX2Nsb2NrLCBkb3RjbGs7CkBAIC00MTUxLDEwICs0MTQ5LDEwIEBAIGludCBz a2xfY2hlY2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YywKIAl1aW50X2ZpeGVkXzE2XzE2X3QgcGlwZV9kb3duc2NhbGU7CiAJdWludF9maXhlZF8xNl8x Nl90IG1heF9kb3duc2NhbGUgPSB1MzJfdG9fZml4ZWQxNigxKTsKIAotCWlmICghY3J0Y19zdGF0 ZS0+YmFzZS5lbmFibGUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVybiAw OwogCi0JZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBk cm1fcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLT5iYXNlKSB7CisJZHJtX2F0b21pY19jcnRjX3N0 YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBkcm1fcGxhbmVfc3RhdGUsICZjcnRjX3N0 YXRlLT51YXBpKSB7CiAJCXVpbnRfZml4ZWRfMTZfMTZfdCBwbGFuZV9kb3duc2NhbGU7CiAJCXVp bnRfZml4ZWRfMTZfMTZfdCBmcF85X2Rpdl84ID0gZGl2X2ZpeGVkMTYoOSwgOCk7CiAJCWludCBi cHA7CkBAIC00MTc5LDcgKzQxNzcsNyBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3BpeGVsX3Jh dGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAKIAlwaXBlX2Rvd25zY2FsZSA9IG11 bF9maXhlZDE2KHBpcGVfZG93bnNjYWxlLCBtYXhfZG93bnNjYWxlKTsKIAotCWNydGNfY2xvY2sg PSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwljcnRjX2Nsb2Nr ID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCWRvdGNsayA9IHRv X2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrLmxvZ2ljYWwuY2RjbGs7CiAKIAlpZiAo SVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCkKQEAg LTQyNDYsNyArNDI0NCw3IEBAIHNrbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSB1NjQgKnBsYW5lX2RhdGFfcmF0 ZSwKIAkJCQkgdTY0ICp1dl9wbGFuZV9kYXRhX3JhdGUpCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOwogCXN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lOwogCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRybV9wbGFuZV9zdGF0 ZTsKIAl1NjQgdG90YWxfZGF0YV9yYXRlID0gMDsKQEAgLTQyNTUsNyArNDI1Myw3IEBAIHNrbF9n ZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCQlyZXR1cm4gMDsKIAogCS8qIENhbGN1bGF0ZSBhbmQgY2FjaGUgZGF0YSByYXRl IGZvciBlYWNoIHBsYW5lICovCi0JZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5l X3N0YXRlKHBsYW5lLCBkcm1fcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLT5iYXNlKSB7CisJZHJt X2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBkcm1fcGxhbmVf c3RhdGUsICZjcnRjX3N0YXRlLT51YXBpKSB7CiAJCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSB0 b19pbnRlbF9wbGFuZShwbGFuZSktPmlkOwogCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlID0KIAkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9wbGFuZV9zdGF0 ZSk7CkBAIC00MjgzLDExICs0MjgxLDExIEBAIGljbF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9y YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNvbnN0IHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKmRybV9wbGFuZV9zdGF0ZTsKIAl1NjQgdG90YWxfZGF0YV9yYXRlID0g MDsKIAotCWlmIChXQVJOX09OKCFjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKSkKKwlpZiAoV0FSTl9P TighY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSkpCiAJCXJldHVybiAwOwogCiAJLyogQ2FsY3VsYXRl IGFuZCBjYWNoZSBkYXRhIHJhdGUgZm9yIGVhY2ggcGxhbmUgKi8KLQlkcm1fYXRvbWljX2NydGNf c3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwgJmNydGNf c3RhdGUtPmJhc2UpIHsKKwlkcm1fYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3Rh dGUocGxhbmUsIGRybV9wbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUtPnVhcGkpIHsKIAkJY29uc3Qg c3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9CiAJCQl0b19pbnRlbF9wbGFu ZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUpOwogCQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gdG9f aW50ZWxfcGxhbmUocGxhbmUpLT5pZDsKQEAgLTQzMjksOCArNDMyNyw4IEBAIHN0YXRpYyBpbnQK IHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJICAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiIC8qIG91dCAqLykKIHsK LQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRl OwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPmJhc2UuY3J0YzsKKwlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOworCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNydGNfc3RhdGUtPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7CiAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXN0cnVjdCBza2xf ZGRiX2VudHJ5ICphbGxvYyA9ICZjcnRjX3N0YXRlLT53bS5za2wuZGRiOwpAQCAtNDM1Miw3ICs0 MzUwLDcgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCWlmIChXQVJOX09OKCFzdGF0ZSkpCiAJCXJldHVybiAwOwogCi0JaWYgKCFj cnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgeworCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7 CiAJCWFsbG9jLT5zdGFydCA9IGFsbG9jLT5lbmQgPSAwOwogCQlyZXR1cm4gMDsKIAl9CkBAIC00 NTk0LDcgKzQ1OTIsNyBAQCBpbnRlbF9nZXRfbGluZXRpbWVfdXMoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJdTMyIGNydGNfaHRvdGFsOwogCXVpbnRfZml4ZWRf MTZfMTZfdCBsaW5ldGltZV91czsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJ aWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiB1MzJfdG9fZml4ZWQxNigwKTsK IAogCXBpeGVsX3JhdGUgPSBjcnRjX3N0YXRlLT5waXhlbF9yYXRlOwpAQCAtNDYwMiw3ICs0NjAw LDcgQEAgaW50ZWxfZ2V0X2xpbmV0aW1lX3VzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogCWlmIChXQVJOX09OKHBpeGVsX3JhdGUgPT0gMCkpCiAJCXJldHVybiB1 MzJfdG9fZml4ZWQxNigwKTsKIAotCWNydGNfaHRvdGFsID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlLmNydGNfaHRvdGFsOworCWNydGNfaHRvdGFsID0gY3J0Y19zdGF0ZS0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKIAlsaW5ldGltZV91cyA9IGRpdl9maXhlZDE2KGNydGNf aHRvdGFsICogMTAwMCwgcGl4ZWxfcmF0ZSk7CiAKIAlyZXR1cm4gbGluZXRpbWVfdXM7CkBAIC00 NjM3LDcgKzQ2MzUsNyBAQCBza2xfY29tcHV0ZV93bV9wYXJhbXMoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIHUzMiBwbGFuZV9waXhlbF9yYXRlLCBz dHJ1Y3Qgc2tsX3dtX3BhcmFtcyAqd3AsCiAJCSAgICAgIGludCBjb2xvcl9wbGFuZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAl1MzIgaW50ZXJtX3BicGw7CiAKQEAgLTQ3NjMsNyArNDc2 MSw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSBjb25zdCBzdHJ1Y3Qgc2tsX3dtX2xldmVs ICpyZXN1bHRfcHJldiwKIAkJCQkgc3RydWN0IHNrbF93bV9sZXZlbCAqcmVzdWx0IC8qIG91dCAq LykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNf c3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgbGF0ZW5jeSA9 IGRldl9wcml2LT53bS5za2xfbGF0ZW5jeVtsZXZlbF07CiAJdWludF9maXhlZF8xNl8xNl90IG1l dGhvZDEsIG1ldGhvZDI7CiAJdWludF9maXhlZF8xNl8xNl90IHNlbGVjdGVkX3Jlc3VsdDsKQEAg LTQ3ODksMTQgKzQ3ODcsMTQgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJbWV0aG9kMSA9IHNrbF93 bV9tZXRob2QxKGRldl9wcml2LCB3cC0+cGxhbmVfcGl4ZWxfcmF0ZSwKIAkJCQkgd3AtPmNwcCwg bGF0ZW5jeSwgd3AtPmRidWZfYmxvY2tfc2l6ZSk7CiAJbWV0aG9kMiA9IHNrbF93bV9tZXRob2Qy KHdwLT5wbGFuZV9waXhlbF9yYXRlLAotCQkJCSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21v ZGUuY3J0Y19odG90YWwsCisJCQkJIGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19o dG90YWwsCiAJCQkJIGxhdGVuY3ksCiAJCQkJIHdwLT5wbGFuZV9ibG9ja3NfcGVyX2xpbmUpOwog CiAJaWYgKHdwLT55X3RpbGVkKSB7CiAJCXNlbGVjdGVkX3Jlc3VsdCA9IG1heF9maXhlZDE2KG1l dGhvZDIsIHdwLT55X3RpbGVfbWluaW11bSk7CiAJfSBlbHNlIHsKLQkJaWYgKCh3cC0+Y3BwICog Y3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsIC8KKwkJaWYgKCh3cC0+ Y3BwICogY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCAvCiAJCSAgICAg d3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEpICYmCiAJCSAgICAgKHdwLT5wbGFuZV9ieXRlc19wZXJf bGluZSAvIHdwLT5kYnVmX2Jsb2NrX3NpemUgPCAxKSkgewogCQkJc2VsZWN0ZWRfcmVzdWx0ID0g bWV0aG9kMjsKQEAgLTQ4ODcsNyArNDg4NSw3IEBAIHNrbF9jb21wdXRlX3dtX2xldmVscyhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJICAgICAgY29uc3Qgc3Ry dWN0IHNrbF93bV9wYXJhbXMgKndtX3BhcmFtcywKIAkJICAgICAgc3RydWN0IHNrbF93bV9sZXZl bCAqbGV2ZWxzKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWludCBs ZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJc3RydWN0IHNr bF93bV9sZXZlbCAqcmVzdWx0X3ByZXYgPSAmbGV2ZWxzWzBdOwogCkBAIC00OTA0LDcgKzQ5MDIs NyBAQCBza2xfY29tcHV0ZV93bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiBzdGF0aWMgdTMyCiBza2xfY29tcHV0ZV9saW5ldGltZV93bShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCXN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKIAl1aW50X2ZpeGVk XzE2XzE2X3QgbGluZXRpbWVfdXM7CiAJdTMyIGxpbmV0aW1lX3dtOwpAQCAtNDkyMyw3ICs0OTIx LDcgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93bShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgICAgICBjb25zdCBzdHJ1Y3Qgc2ts X3dtX3BhcmFtcyAqd3AsCiAJCQkJICAgICAgc3RydWN0IHNrbF9wbGFuZV93bSAqd20pCiB7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2OworCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldjsKIAljb25z dCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJdTE2 IHRyYW5zX21pbiwgdHJhbnNfeV90aWxlX21pbjsKIAljb25zdCB1MTYgdHJhbnNfYW1vdW50ID0g MTA7IC8qIFRoaXMgaXMgY29uZmlndXJhYmxlIGFtb3VudCAqLwpAQCAtNTA4Myw3ICs1MDgxLDcg QEAgc3RhdGljIGludCBpY2xfYnVpbGRfcGxhbmVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAKIHN0YXRpYyBpbnQgc2tsX2J1aWxkX3BpcGVfd20oc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMt PmRldik7CiAJc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNydGNfc3RhdGUtPndtLnNr bC5vcHRpbWFsOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCWNvbnN0IHN0cnVjdCBkcm1f cGxhbmVfc3RhdGUgKmRybV9wbGFuZV9zdGF0ZTsKQEAgLTUwOTYsNyArNTA5NCw3IEBAIHN0YXRp YyBpbnQgc2tsX2J1aWxkX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiAJbWVtc2V0KHBpcGVfd20tPnBsYW5lcywgMCwgc2l6ZW9mKHBpcGVfd20tPnBsYW5lcykp OwogCiAJZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBk cm1fcGxhbmVfc3RhdGUsCi0JCQkJCQkgICAmY3J0Y19zdGF0ZS0+YmFzZSkgeworCQkJCQkJICAg JmNydGNfc3RhdGUtPnVhcGkpIHsKIAkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSA9CiAJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmVfc3RhdGUpOwog CkBAIC01Mjc1LDggKzUyNzMsOCBAQCBzdGF0aWMgaW50CiBza2xfZGRiX2FkZF9hZmZlY3RlZF9w bGFuZXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJ ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0 Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBp LnN0YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2Ny dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsK IApAQCAtNTU3Niw3ICs1NTc0LDcgQEAgc3RhdGljIGludCBza2xfd21fYWRkX2FmZmVjdGVkX3Bs YW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJICogcG93ZXIgd2VsbCB0 aGUgaGFyZHdhcmUgc3RhdGUgd2lsbCBnbyBvdXQgb2Ygc3luYwogCQkgKiB3aXRoIHRoZSBzb2Z0 d2FyZSBzdGF0ZS4KIAkJICovCi0JCWlmICghZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQo Jm5ld19jcnRjX3N0YXRlLT5iYXNlKSAmJgorCQlpZiAoIWRybV9hdG9taWNfY3J0Y19uZWVkc19t b2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+dWFwaSkgJiYKIAkJICAgIHNrbF9wbGFuZV93bV9lcXVh bHMoZGV2X3ByaXYsCiAJCQkJCSZvbGRfY3J0Y19zdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVz W3BsYW5lX2lkXSwKIAkJCQkJJm5ld19jcnRjX3N0YXRlLT53bS5za2wub3B0aW1hbC5wbGFuZXNb cGxhbmVfaWRdKSkKQEAgLTU2NDMsNyArNTY0MSw3IEBAIHNrbF9jb21wdXRlX3dtKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogc3RhdGljIHZvaWQgc2tsX2F0b21pY191cGRhdGVf Y3J0Y193bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAgICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRl dik7CiAJc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNydGNfc3RhdGUtPndtLnNrbC5v cHRpbWFsOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTU2NTcsNyArNTY1NSw3 IEBAIHN0YXRpYyB2b2lkIHNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBza2xfaW5pdGlhbF93bShzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBpbnRlbF9jcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IHNrbF9kZGJfdmFsdWVzICpy ZXN1bHRzID0gJnN0YXRlLT53bV9yZXN1bHRzOwpAQCAtNTY2Nyw3ICs1NjY1LDcgQEAgc3RhdGlj IHZvaWQgc2tsX2luaXRpYWxfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAK IAltdXRleF9sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwogCi0JaWYgKGNydGNfc3RhdGUt PmJhc2UuYWN0aXZlX2NoYW5nZWQpCisJaWYgKGNydGNfc3RhdGUtPnVhcGkuYWN0aXZlX2NoYW5n ZWQpCiAJCXNrbF9hdG9taWNfdXBkYXRlX2NydGNfd20oc3RhdGUsIGNydGNfc3RhdGUpOwogCiAJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+d20ud21fbXV0ZXgpOwpAQCAtNTcyNiw4ICs1NzI0LDgg QEAgc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBpbGtfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsK IAljcnRjLT53bS5hY3RpdmUuaWxrID0gY3J0Y19zdGF0ZS0+d20uaWxrLmludGVybWVkaWF0ZTsK QEAgLTU3MzgsOCArNTczNiw4IEBAIHN0YXRpYyB2b2lkIGlsa19pbml0aWFsX3dhdGVybWFya3Mo c3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBpbGtfb3B0aW1p emVfd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAlpZiAoIWNydGNfc3RhdGUt PndtLm5lZWRfcG9zdHZibF91cGRhdGUpCiAJCXJldHVybjsKLS0gCjIuMjAuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4