From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 02/10] drm/i915: Prepare to split crtc state in uapi and hw state Date: Wed, 21 Aug 2019 15:32:13 +0200 Message-ID: <20190821133221.29456-3-maarten.lankhorst@linux.intel.com> References: <20190821133221.29456-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 8E0756E33F for ; Wed, 21 Aug 2019 13:32:24 +0000 (UTC) In-Reply-To: <20190821133221.29456-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org V2Ugd2FudCB0byBzcGxpdCBkcm1fY3J0Y19zdGF0ZSBpbnRvIHRoZSB1c2VyIHZpc2libGUgc3Rh dGUKYW5kIGFjdHVhbCBoYXJkd2FyZSBzdGF0ZS4gVG8gcHJlcGFyZSBmb3IgdGhpcywgd2UgbmVl ZCBzb21lCmdyb3VuZCBydWxlcyB3aGF0IHNob3VsZCBiZSBpbiBlYWNoIHN0YXRlOgoKSW4gdWFw aSB3ZSB1c2U6Ci0gY3J0YywgKl9jaGFuZ2VkIGZsYWdzLCBldmVudCwgY29tbWl0LCBzdGF0ZSwg bW9kZV9ibG9iLCAocGxhbmUvY29ubmVjdG9yL2VuY29kZXIpX21hc2suCgpJbiBodyBzdGF0ZSB3 ZSB1c2Ugd2hhdCdzIGRpc3BsYXllZCBpbiBoYXJkd2FyZToKLSBlbmFibGUsIGFjdGl2ZSwgKGFk anVzdGVkKSBtb2RlLCBjb2xvciBwcm9wZXJ0eSBibG9icy4KCmNsZWFyX2ludGVsX2NydGNfc3Rh dGUgYW5kIGh3IHJlYWRvdXQgbmVlZCB0byBiZSB1cGRhdGVkIGZvciB0aGVzZSBydWxlcywKd2hp Y2ggd2lsbCBhbGxvdyB1cyB0byBlbmFibGUgMiBqb2luZWQgcGlwZXMuCgpTaWduZWQtb2ZmLWJ5 OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jICAgICAgICB8ICAxOCAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyAgIHwgIDE2ICst CiAuLi4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMgfCAgIDYgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYyAgICB8ICAxMiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jICAgICAgIHwgICA0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMgICAgfCAgIDggKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYyAgICB8IDE1MCArKy0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYyAgICAgIHwgIDI0ICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCAgMzAgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8IDUzMSArKysrKysr KystLS0tLS0tLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCAg ICB8ICAyOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAg IHwgIDQyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jICAg fCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYyB8 ICAxNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jIHwg IDIwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jICAgICAgfCAg MTQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgICAgICB8ICAg MiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmMgICAgIHwgIDYy ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jICAgfCAgIDQg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHZkcy5jICAgICB8ICAxMiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jICAgIHwgIDE0ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMgfCAgIDYgKy0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgICAgICB8ICAxMCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMgICAgIHwgIDIyICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jICAgfCAgMjUgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYyAgICAgICB8ICAgOCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMgICAgIHwgIDEyICstCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2kuYyAgICAgICAgfCAgMjAgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICAgICAgICB8ICAxNCArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgICAgIHwgMTgwICsrKy0tLQogMzAg ZmlsZXMgY2hhbmdlZCwgNjc1IGluc2VydGlvbnMoKyksIDYzOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaWNsX2RzaS5jCmluZGV4IDZlMzk4YzMzYTUyNC4uMGUyNGI4 ZTI1N2U1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2ku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2kuYwpAQCAtMjc2LDcg KzI3Niw3IEBAIHN0YXRpYyB2b2lkIGNvbmZpZ3VyZV9kdWFsX2xpbmtfbW9kZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluayA9PSBEU0lf RFVBTF9MSU5LX0ZST05UX0JBQ0spIHsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsK KwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCQl1MzIgZHNzX2N0bDI7CiAJ CXUxNiBoYWN0aXZlID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKIAkJdTE2IGRsX2J1 ZmZlcl9kZXB0aDsKQEAgLTYyNSw3ICs2MjUsNyBAQCBnZW4xMV9kc2lfY29uZmlndXJlX3RyYW5z Y29kZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0 IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29u ZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGludGVs X2NydGMtPnBpcGU7CiAJdTMyIHRtcDsKIAllbnVtIHBvcnQgcG9ydDsKQEAgLTc2OCw3ICs3Njgs NyBAQCBnZW4xMV9kc2lfc2V0X3RyYW5zY29kZXJfdGltaW5ncyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNf dG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlOworCQkJCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJZW51bSBwb3J0IHBv cnQ7CiAJZW51bSB0cmFuc2NvZGVyIGRzaV90cmFuczsKIAkvKiBob3Jpem9udGFsIHRpbWluZ3Mg Ki8KQEAgLTEyMTYsNyArMTIxNiw3IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9nZXRfdGltaW5n cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfZHNpICpp bnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlOworCQkJCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAlp ZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspIHsKIAkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxh eSAqPSAyOwpAQCAtMTI0MiwxNiArMTI0MiwxNiBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rl ci0+YmFzZSk7CiAKIAkvKiBGSVhNRTogYWRhcHQgaWNsX2RkaV9jbG9ja19nZXQoKSBmb3IgRFNJ IGFuZCB1c2UgdGhhdD8gKi8KIAlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9CiAJCWNubF9jYWxj X3dycGxsX2xpbmsoZGV2X3ByaXYsICZwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSk7CiAKLQlw aXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBpbnRlbF9kc2ktPnBj bGs7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGludGVsX2Rz aS0+cGNsazsKIAlpZiAoaW50ZWxfZHNpLT5kdWFsX2xpbmspCi0JCXBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayAqPSAyOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZS5jcnRjX2Nsb2NrICo9IDI7CiAKIAlnZW4xMV9kc2lfZ2V0X3RpbWluZ3MoZW5jb2Rl ciwgcGlwZV9jb25maWcpOwogCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVM X09VVFBVVF9EU0kpOwpAQCAtMTI2NSwxMSArMTI2NSwxMSBAQCBzdGF0aWMgaW50IGdlbjExX2Rz aV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3Qg aW50ZWxfZHNpICppbnRlbF9kc2kgPSBjb250YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVs X2RzaSwKIAkJCQkJCSAgIGJhc2UpOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nv bm5lY3RvciA9IGludGVsX2RzaS0+YXR0YWNoZWRfY29ubmVjdG9yOwotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0 Yyk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUgPQogCQkJCQlp bnRlbF9jb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGU7CiAJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJcGlwZV9jb25maWct Pm91dHB1dF9mb3JtYXQgPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JHQjsKIAlpbnRlbF9maXhlZF9w YW5lbF9tb2RlKGZpeGVkX21vZGUsIGFkanVzdGVkX21vZGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMKaW5kZXggZDNmYjc1YmI5ZWIxLi41MzE1MmY3NTQ3 ODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWlj LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYwpAQCAt MTg2LDEzICsxODYsMTQgQEAgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3JfZHVwbGljYXRlX3N0YXRl KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KgogaW50ZWxfY3J0Y19kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewor CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9IHRvX2ludGVs X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOwogCi0JY3J0Y19zdGF0ZSA9IGttZW1kdXAoY3J0Yy0+c3RhdGUsIHNpemVvZigqY3J0 Y19zdGF0ZSksIEdGUF9LRVJORUwpOworCWNydGNfc3RhdGUgPSBrbWVtZHVwKG9sZF9jcnRjX3N0 YXRlLCBzaXplb2YoKmNydGNfc3RhdGUpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIWNydGNfc3RhdGUp CiAJCXJldHVybiBOVUxMOwogCi0JX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxpY2F0ZV9z dGF0ZShjcnRjLCAmY3J0Y19zdGF0ZS0+YmFzZSk7CisJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRj X2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmY3J0Y19zdGF0ZS0+dWFwaSk7CiAKIAljcnRjX3N0YXRl LT51cGRhdGVfcGlwZSA9IGZhbHNlOwogCWNydGNfc3RhdGUtPmRpc2FibGVfbHBfd20gPSBmYWxz ZTsKQEAgLTIwNSw3ICsyMDYsNyBAQCBpbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCiAJY3J0Y19zdGF0ZS0+ZmJfYml0cyA9IDA7CiAJY3J0Y19zdGF0ZS0+ dXBkYXRlX3BsYW5lcyA9IDA7CiAKLQlyZXR1cm4gJmNydGNfc3RhdGUtPmJhc2U7CisJcmV0dXJu ICZjcnRjX3N0YXRlLT51YXBpOwogfQogCiAvKioKQEAgLTIyMCw3ICsyMjEsMTAgQEAgdm9pZAog aW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCSBzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlKQogewotCWRybV9hdG9taWNfaGVscGVyX2NydGNfZGVz dHJveV9zdGF0ZShjcnRjLCBzdGF0ZSk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKHN0YXRlKTsKKworCV9fZHJtX2F0b21pY19oZWxw ZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjX3N0YXRlLT51YXBpKTsKKwlrZnJlZShjcnRjX3N0 YXRlKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcihzdHJ1Y3Qg aW50ZWxfY3J0Y19zY2FsZXJfc3RhdGUgKnNjYWxlcl9zdGF0ZSwKQEAgLTMxNiw3ICszMjAsNyBA QCBpbnQgaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPSBOVUxM OwogCXN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KIAkJJmNy dGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqZHJtX3N0 YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq ZHJtX3N0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShkcm1fc3RhdGUpOwog CWludCBudW1fc2NhbGVyc19uZWVkOwogCWludCBpOwpAQCAtMzg0LDcgKzM4OCw3IEBAIGludCBp bnRlbF9hdG9taWNfc2V0dXBfc2NhbGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkJICogYnV0IHNpbmNlIHRoaXMgcGxhbmUgaXMgdW5jaGFuZ2VkIGp1c3QgZG8gdGhl CiAJCQkJICogbWluaW11bSByZXF1aXJlZCB2YWxpZGF0aW9uLgogCQkJCSAqLwotCQkJCWNydGNf c3RhdGUtPmJhc2UucGxhbmVzX2NoYW5nZWQgPSB0cnVlOworCQkJCWNydGNfc3RhdGUtPnVhcGku cGxhbmVzX2NoYW5nZWQgPSB0cnVlOwogCQkJfQogCiAJCQlpbnRlbF9wbGFuZSA9IHRvX2ludGVs X3BsYW5lKHBsYW5lKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfYXRvbWljX3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2F0b21pY19wbGFuZS5jCmluZGV4IGQxZmNkZjIwNmRhNC4uNjhiZmI0NjdmMTk1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAg LTI3MCw3ICsyNzAsNyBAQCB2b2lkIGludGVsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lLAogCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCiAJdHJhY2VfaW50ZWxfdXBkYXRlX3BsYW5lKCZwbGFuZS0+YmFzZSwg Y3J0Yyk7CiAJcGxhbmUtPnVwZGF0ZV9wbGFuZShwbGFuZSwgY3J0Y19zdGF0ZSwgcGxhbmVfc3Rh dGUpOwpAQCAtMjgwLDcgKzI4MCw3IEBAIHZvaWQgaW50ZWxfdXBkYXRlX3NsYXZlKHN0cnVjdCBp bnRlbF9wbGFuZSAqcGxhbmUsCiAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAl0cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUoJnBsYW5l LT5iYXNlLCBjcnRjKTsKIAlwbGFuZS0+dXBkYXRlX3NsYXZlKHBsYW5lLCBjcnRjX3N0YXRlLCBw bGFuZV9zdGF0ZSk7CkBAIC0yODksNyArMjg5LDcgQEAgdm9pZCBpbnRlbF91cGRhdGVfc2xhdmUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKIHZvaWQgaW50ZWxfZGlzYWJsZV9wbGFuZShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAogCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJdHJhY2VfaW50ZWxfZGlzYWJs ZV9wbGFuZSgmcGxhbmUtPmJhc2UsIGNydGMpOwogCXBsYW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5l LCBjcnRjX3N0YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8u YwppbmRleCBkZGNjY2Y0NDA4YzMuLmY4YjkzMWNlOGJlNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYwpAQCAtMjMzLDcgKzIzMyw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgaGRtaV9hdWRfbmN0cyBoZG1pX2F1ZF9uY3RzXzM2YnBwW10gPSB7CiBzdGF0aWMg dTMyIGF1ZGlvX2NvbmZpZ19oZG1pX3BpeGVsX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNy dGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IGk7CiAKIAlmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShoZG1pX2F1ZGlvX2Nsb2NrKTsgaSsrKSB7CkBAIC01NTQsNyArNTU0LDcgQEAg c3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRf Y29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7 CiAJdTMyIHRtcCwgZWxkdjsKQEAgLTYwMCw3ICs2MDAsNyBAQCBzdGF0aWMgdm9pZCBpbGtfYXVk aW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb25u X3N0YXRlLT5jb25uZWN0b3I7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWVudW0g cG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKQEAgLTY4OSwxMCArNjg5LDEwIEBAIHZvaWQgaW50 ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwogCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+ YXVkaW9fY29tcG9uZW50OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAllbnVtIHBvcnQgcG9y dCA9IGVuY29kZXItPnBvcnQ7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC03 NTAsNyArNzUwLDcgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19kaXNhYmxlKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBv bmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50OwotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9idy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5j CmluZGV4IDY4ODg1OGViZTRkMC4uYTgzYTI5N2JlOWE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9idy5jCkBAIC0yNjQsNyArMjY0LDcgQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBpbnRlbF9id19jcnRjX251bV9hY3RpdmVfcGxhbmVzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXQKIAogc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9id19jcnRjX2RhdGFfcmF0ZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKIAl1bnNpZ25lZCBpbnQgZGF0YV9yYXRlID0gMDsKIAllbnVtIHBsYW5lX2lkIHBsYW5lX2lk OwogCkBAIC0yODUsNyArMjg1LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9id19jcnRj X2RhdGFfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y18KIHZvaWQgaW50 ZWxfYndfY3J0Y191cGRhdGUoc3RydWN0IGludGVsX2J3X3N0YXRlICpid19zdGF0ZSwKIAkJCSAg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAKIAlid19zdGF0ZS0+ZGF0YV9yYXRlW2NydGMtPnBpcGVdID0KIAkJaW50ZWxfYndf Y3J0Y19kYXRhX3JhdGUoY3J0Y19zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2NkY2xrLmMKaW5kZXggZDBiYzQyZTUwMzljLi5mMzc1MmUxMTkxYzAgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKQEAgLTIyMTcsMTAgKzIyMTcs MTAgQEAgc3RhdGljIGludCBpbnRlbF9waXhlbF9yYXRlX3RvX2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIGludCBpbnRlbF9jcnRjX2NvbXB1dGVfbWluX2NkY2xrKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0JCXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj LT5kZXYpOworCQl0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlpbnQgbWlu X2NkY2xrOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3Rh dGUtPmh3LmVuYWJsZSkKIAkJcmV0dXJuIDA7CiAKIAltaW5fY2RjbGsgPSBpbnRlbF9waXhlbF9y YXRlX3RvX2NkY2xrKGRldl9wcml2LCBjcnRjX3N0YXRlLT5waXhlbF9yYXRlKTsKQEAgLTIzMzks NyArMjMzOSw3IEBAIHN0YXRpYyB1OCBjbmxfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkgICAgICAgc2l6ZW9mKHN0YXRlLT5taW5f dm9sdGFnZV9sZXZlbCkpOwogCiAJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3Rh dGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJaWYgKGNydGNfc3RhdGUtPmJhc2UuZW5hYmxl KQorCQlpZiAoY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQogCQkJc3RhdGUtPm1pbl92b2x0YWdlX2xl dmVsW2ldID0KIAkJCQljcnRjX3N0YXRlLT5taW5fdm9sdGFnZV9sZXZlbDsKIAkJZWxzZQpAQCAt MjQyNSw3ICsyNDI1LDcgQEAgc3RhdGljIGludCBza2xfZHBsbDBfdmNvKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQogCQl2Y28gPSBkZXZfcHJpdi0+c2tsX3ByZWZlcnJlZF92Y29f ZnJlcTsKIAogCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBj cnRjX3N0YXRlLCBpKSB7Ci0JCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCisJCWlmICgh Y3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQogCQkJY29udGludWU7CiAKIAkJaWYgKCFpbnRlbF9jcnRj X2hhc190eXBlKGNydGNfc3RhdGUsIElOVEVMX09VVFBVVF9FRFApKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCmluZGV4IDcxYTAyMDE0MzdhOS4uMDBjNDExOGI1 ZDA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NvbG9y LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCkBAIC0x MDEsMTAgKzEwMSwxMCBAQCBzdGF0aWMgYm9vbCBsdXRfaXNfbGVnYWN5KGNvbnN0IHN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqbHV0KQogCiBzdGF0aWMgYm9vbCBjcnRjX3N0YXRlX2lzX2xlZ2Fj eV9nYW1tYShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQly ZXR1cm4gIWNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQgJiYKLQkJIWNydGNfc3RhdGUtPmJh c2UuY3RtICYmCi0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCi0JCWx1dF9pc19sZWdh Y3koY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQpOworCXJldHVybiAhY3J0Y19zdGF0ZS0+aHcu ZGVnYW1tYV9sdXQgJiYKKwkJIWNydGNfc3RhdGUtPmh3LmN0bSAmJgorCQljcnRjX3N0YXRlLT5o dy5nYW1tYV9sdXQgJiYKKwkJbHV0X2lzX2xlZ2FjeShjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQp OwogfQogCiAvKgpAQCAtMTg5LDcgKzE4OSw3IEBAIHN0YXRpYyB2b2lkIGljbF91cGRhdGVfb3V0 cHV0X2NzYyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogc3RhdGljIGJvb2wgaWxrX2NzY19s aW1pdGVkX3JhbmdlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJLyoKIAkgKiBGSVhNRSBp ZiB0aGVyZSdzIGEgZ2FtbWEgTFVUIGFmdGVyIHRoZSBDU0MsIHdlIHNob3VsZApAQCAtMjAzLDcg KzIwMyw3IEBAIHN0YXRpYyBib29sIGlsa19jc2NfbGltaXRlZF9yYW5nZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGlsa19jc2NfY29udmVy dF9jdG0oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJdTE2 IGNvZWZmc1s5XSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19z dGF0ZS0+YmFzZS5jdG0tPmRhdGE7CisJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9jdG0gKmN0bSA9 IGNydGNfc3RhdGUtPmh3LmN0bS0+ZGF0YTsKIAljb25zdCB1NjQgKmlucHV0OwogCXU2NCB0ZW1w WzldOwogCWludCBpOwpAQCAtMjU0LDExICsyNTQsMTEgQEAgc3RhdGljIHZvaWQgaWxrX2NzY19j b252ZXJ0X2N0bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAog c3RhdGljIHZvaWQgaWxrX2xvYWRfY3NjX21hdHJpeChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlib29sIGxpbWl0 ZWRfY29sb3JfcmFuZ2UgPSBpbGtfY3NjX2xpbWl0ZWRfcmFuZ2UoY3J0Y19zdGF0ZSk7CiAKLQlp ZiAoY3J0Y19zdGF0ZS0+YmFzZS5jdG0pIHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKSB7CiAJ CXUxNiBjb2VmZls5XTsKIAogCQlpbGtfY3NjX2NvbnZlcnRfY3RtKGNydGNfc3RhdGUsIGNvZWZm KTsKQEAgLTI5MywxMCArMjkzLDEwIEBAIHN0YXRpYyB2b2lkIGlsa19sb2FkX2NzY19tYXRyaXgo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyB2b2lk IGljbF9sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFz ZS5jdG0pIHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKSB7CiAJCXUxNiBjb2VmZls5XTsKIAog CQlpbGtfY3NjX2NvbnZlcnRfY3RtKGNydGNfc3RhdGUsIGNvZWZmKTsKQEAgLTMyMiwxMiArMzIy LDEyIEBAIHN0YXRpYyB2b2lkIGljbF9sb2FkX2NzY19tYXRyaXgoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAgKi8KIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfbG9h ZF9jc2NfbWF0cml4KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsK IAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmN0bSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9y X2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+YmFzZS5jdG0tPmRhdGE7CisJaWYgKGNydGNfc3RhdGUt Pmh3LmN0bSkgeworCQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0 ZS0+aHcuY3RtLT5kYXRhOwogCQl1MTYgY29lZmZzWzldID0ge307CiAJCWludCBpOwogCkBAIC0z ODgsNyArMzg4LDcgQEAgc3RhdGljIHUzMiBpbGtfbHV0XzEwKGNvbnN0IHN0cnVjdCBkcm1fY29s b3JfbHV0ICpjb2xvcikKIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzX2ludGVybmFsKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBjb25zdCBzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludCBpOwpAQCAtNDE5LDEyICs0MTksMTIg QEAgc3RhdGljIHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWk5eHhfbG9hZF9s dXRzX2ludGVybmFsKGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0KTsKKwlp OXh4X2xvYWRfbHV0c19pbnRlcm5hbChjcnRjX3N0YXRlLCBjcnRjX3N0YXRlLT5ody5nYW1tYV9s dXQpOwogfQogCiBzdGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAll bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKQEAgLTQzNyw3ICs0MzcsNyBA QCBzdGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaWxrX2NvbG9yX2NvbW1pdChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHZhbDsKQEAgLTQ1Miw3 ICs0NTIsNyBAQCBzdGF0aWMgdm9pZCBpbGtfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBoc3dfY29sb3JfY29tbWl0 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCiAJSTkxNV9XUklURShHQU1NQV9NT0RFKGNydGMtPnBpcGUpLCBjcnRj X3N0YXRlLT5nYW1tYV9tb2RlKTsKQEAgLTQ2Miw3ICs0NjIsNyBAQCBzdGF0aWMgdm9pZCBoc3df Y29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CiBzdGF0aWMgdm9pZCBza2xfY29sb3JfY29tbWl0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdmFsID0gMDsKQEAgLTUwOCw4ICs1MDgsOCBAQCBzdGF0 aWMgdm9pZCBpOTY1X2xvYWRfbHV0XzEwcDYoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0 YXRpYyB2b2lkIGk5NjVfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq Z2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qg c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1t YV9sdXQ7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVf OEJJVCkKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC01MzEsOCArNTMxLDggQEAg c3RhdGljIHZvaWQgaWxrX2xvYWRfbHV0XzEwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBz dGF0aWMgdm9pZCBpbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq Z2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qg c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1t YV9sdXQ7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVf OEJJVCkKIAkJaTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC02MzIsOSArNjMyLDkgQEAg c3RhdGljIHZvaWQgaXZiX2xvYWRfbHV0X2V4dF9tYXgoc3RydWN0IGludGVsX2NydGMgKmNydGMp CiAKIHN0YXRpYyB2b2lkIGl2Yl9sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dDsKLQljb25zdCBzdHJ1 Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5kZWdh bW1hX2x1dDsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1h X2x1dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3Bl cnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQ7CiAKIAlp ZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJVCkgewogCQlp OXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsKQEAgLTY1NSw5ICs2NTUsOSBAQCBzdGF0aWMgdm9p ZCBpdmJfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogCiBzdGF0aWMgdm9pZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlf YmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7Ci0JY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVn YW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1t YV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9wcm9w ZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0OwogCiAJ aWYgKGNydGNfc3RhdGUtPmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKIAkJ aTl4eF9sb2FkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC02NzgsMTEgKzY3OCwxMSBAQCBzdGF0aWMg dm9pZCBiZHdfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogCiBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAll bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJY29uc3QgdTMyIGx1dF9zaXplID0gSU5URUxf SU5GTyhkZXZfcHJpdiktPmNvbG9yLmRlZ2FtbWFfbHV0X3NpemU7Ci0JY29uc3Qgc3RydWN0IGRy bV9jb2xvcl9sdXQgKmx1dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQtPmRhdGE7CisJ Y29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFf bHV0LT5kYXRhOwogCXUzMiBpOwogCiAJLyoKQEAgLTcxNyw3ICs3MTcsNyBAQCBzdGF0aWMgdm9p ZCBnbGtfbG9hZF9kZWdhbW1hX2x1dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgZ2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFyKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCB1MzIgbHV0X3Np emUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsKQEAgLTc0 NCw4ICs3NDQsOCBAQCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdAogCiBzdGF0aWMgdm9pZCBnbGtf bG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+ YmFzZS5nYW1tYV9sdXQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9i ICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAkvKgog CSAqIE9uIEdMSysgYm90aCBwaXBlIENTQyBhbmQgZGVnYW1tYSBMVVQgYXJlIGNvbnRyb2xsZWQK QEAgLTc1NSw3ICs3NTUsNyBAQCBzdGF0aWMgdm9pZCBnbGtfbG9hZF9sdXRzKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCSAqIHRoZSBkZWdhbWEgTFVUIHNvIHRo YXQgd2UgZG9uJ3QgaGF2ZSB0byByZWxvYWQKIAkgKiBpdCBldmVyeSB0aW1lIHRoZSBwaXBlIENT QyBpcyBiZWluZyBlbmFibGVkLgogCSAqLwotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFf bHV0KQorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCkKIAkJZ2xrX2xvYWRfZGVnYW1t YV9sdXQoY3J0Y19zdGF0ZSk7CiAJZWxzZQogCQlnbGtfbG9hZF9kZWdhbW1hX2x1dF9saW5lYXIo Y3J0Y19zdGF0ZSk7CkBAIC03ODYsNyArNzg2LDcgQEAgc3RhdGljIHZvaWQKIGljbF9sb2FkX2dj bWF4KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCSAgICAgICBj b25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqY29sb3IpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC03OTksOSArNzk5LDkgQEAg aWNsX2xvYWRfZ2NtYXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUs CiBzdGF0aWMgdm9pZAogaWNsX3Byb2dyYW1fZ2FtbWFfc3VwZXJmaW5lX3NlZ21lbnQoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0 ZS0+YmFzZS5nYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9i ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OwogCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0 ICpsdXQgPSBibG9iLT5kYXRhOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIg aTsKQEAgLTgyOCw5ICs4MjgsOSBAQCBpY2xfcHJvZ3JhbV9nYW1tYV9zdXBlcmZpbmVfc2VnbWVu dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lk CiBpY2xfcHJvZ3JhbV9nYW1tYV9tdWx0aV9zZWdtZW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCWNvbnN0IHN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0 OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IGNydGNfc3RhdGUtPmh3 LmdhbW1hX2x1dDsKIAljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gYmxvYi0+ZGF0 YTsKIAljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqZW50cnk7CiAJZW51bSBwaXBlIHBpcGUg PSBjcnRjLT5waXBlOwpAQCAtODgwLDEwICs4ODAsMTAgQEAgaWNsX3Byb2dyYW1fZ2FtbWFfbXVs dGlfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAog c3RhdGljIHZvaWQgaWNsX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1 dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCWNvbnN0IHN0cnVjdCBk cm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0Owor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpCisJaWYgKGNydGNf c3RhdGUtPmh3LmRlZ2FtbWFfbHV0KQogCQlnbGtfbG9hZF9kZWdhbW1hX2x1dChjcnRjX3N0YXRl KTsKIAogCXN3aXRjaCAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSAmIEdBTU1BX01PREVfTU9ERV9N QVNLKSB7CkBAIC05NTgsOSArOTU4LDkgQEAgc3RhdGljIHZvaWQgY2h2X2xvYWRfY2dtX2dhbW1h KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBjaHZfbG9hZF9sdXRzKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNv bnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFz ZS5nYW1tYV9sdXQ7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1 dCA9IGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQ7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CisJY29uc3Qgc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7 CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3Rh dGUtPmh3LmRlZ2FtbWFfbHV0OwogCiAJY2hlcnJ5dmlld19sb2FkX2NzY19tYXRyaXgoY3J0Y19z dGF0ZSk7CiAKQEAgLTk3OCwyOCArOTc4LDI4IEBAIHN0YXRpYyB2b2lkIGNodl9sb2FkX2x1dHMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaW50ZWxf Y29sb3JfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCiAJZGV2X3ByaXYtPmRp c3BsYXkubG9hZF9sdXRzKGNydGNfc3RhdGUpOwogfQogCiB2b2lkIGludGVsX2NvbG9yX2NvbW1p dChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0 Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCWRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2Nv bW1pdChjcnRjX3N0YXRlKTsKIH0KIAogaW50IGludGVsX2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXYpOwogCiAJcmV0dXJuIGRldl9wcml2LT5kaXNwbGF5LmNvbG9yX2NoZWNrKGNydGNfc3Rh dGUpOwogfQogCiB2b2lkIGludGVsX2NvbG9yX2dldF9jb25maWcoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7 CiAKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkucmVhZF9sdXRzKQogCQlkZXZfcHJpdi0+ZGlzcGxh eS5yZWFkX2x1dHMoY3J0Y19zdGF0ZSk7CkBAIC0xMDIzLDE2ICsxMDIzLDE2IEBAIHN0YXRpYyBi b29sIG5lZWRfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiBzdGF0aWMg aW50CiBpbnRlbF9jb2xvcl9hZGRfYWZmZWN0ZWRfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwog CXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0 YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRl KG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqb2xkX2NydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRl KHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCi0JaWYgKCFuZXdf Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwKLQkgICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkKKwlpZiAoIW5ld19jcnRjX3N0YXRlLT5ody5h Y3RpdmUgfHwKKwkgICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0 YXRlLT51YXBpKSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAobmV3X2NydGNfc3RhdGUtPmdhbW1hX2Vu YWJsZSA9PSBvbGRfY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlICYmCkBAIC0xMDc0LDkgKzEwNzQs OSBAQCBzdGF0aWMgaW50IGNoZWNrX2x1dF9zaXplKGNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlf YmxvYiAqbHV0LCBpbnQgZXhwZWN0ZWQpCiAKIHN0YXRpYyBpbnQgY2hlY2tfbHV0cyhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsK LQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUt PmJhc2UuZ2FtbWFfbHV0OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1t YV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0OworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwor CWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+ aHcuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9s dXQgPSBjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dDsKIAlpbnQgZ2FtbWFfbGVuZ3RoLCBkZWdh bW1hX2xlbmd0aDsKIAl1MzIgZ2FtbWFfdGVzdHMsIGRlZ2FtbWFfdGVzdHM7CiAKQEAgLTExMjQs NyArMTEyNCw3IEBAIHN0YXRpYyBpbnQgaTl4eF9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdhbW1h X2VuYWJsZSA9Ci0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCisJCWNydGNfc3RhdGUt Pmh3LmdhbW1hX2x1dCAmJgogCQkhY3J0Y19zdGF0ZS0+YzhfcGxhbmVzOwogCiAJY3J0Y19zdGF0 ZS0+Z2FtbWFfbW9kZSA9IGk5eHhfZ2FtbWFfbW9kZShjcnRjX3N0YXRlKTsKQEAgLTExNDMsMTEg KzExNDMsMTEgQEAgc3RhdGljIHUzMiBjaHZfY2dtX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKGNy dGNfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFf bHV0KQorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCkKIAkJY2dtX21vZGUgfD0gQ0dN X1BJUEVfTU9ERV9ERUdBTU1BOwotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmN0bSkKKwlpZiAoY3J0 Y19zdGF0ZS0+aHcuY3RtKQogCQljZ21fbW9kZSB8PSBDR01fUElQRV9NT0RFX0NTQzsKLQlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQpCisJaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1 dCkKIAkJY2dtX21vZGUgfD0gQ0dNX1BJUEVfTU9ERV9HQU1NQTsKIAogCXJldHVybiBjZ21fbW9k ZTsKQEAgLTEyMDYsNyArMTIwNiw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbG9yX2NoZWNrKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQlyZXR1cm4gcmV0OwogCiAJY3J0Y19z dGF0ZS0+Z2FtbWFfZW5hYmxlID0KLQkJY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgJiYKKwkJ Y3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0ICYmCiAJCSFjcnRjX3N0YXRlLT5jOF9wbGFuZXM7CiAK IAkvKgpAQCAtMTIzMiw4ICsxMjMyLDggQEAgc3RhdGljIHUzMiBpdmJfZ2FtbWFfbW9kZShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoIWNydGNfc3RhdGUt PmdhbW1hX2VuYWJsZSB8fAogCSAgICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0 YXRlKSkKIAkJcmV0dXJuIEdBTU1BX01PREVfTU9ERV84QklUOwotCWVsc2UgaWYgKGNydGNfc3Rh dGUtPmJhc2UuZ2FtbWFfbHV0ICYmCi0JCSBjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQor CWVsc2UgaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgorCQkgY3J0Y19zdGF0ZS0+aHcu ZGVnYW1tYV9sdXQpCiAJCXJldHVybiBHQU1NQV9NT0RFX01PREVfU1BMSVQ7CiAJZWxzZQogCQly ZXR1cm4gR0FNTUFfTU9ERV9NT0RFXzEwQklUOwpAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAgc3RhdGlj IHUzMiBpdmJfY3NjX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiAJICogQ1NDIGNvbWVzIGFmdGVyIHRoZSBMVVQgaW4gZGVnYW1tYSwgUkdCLT5ZQ2JDciwK IAkgKiBhbmQgUkdCIGZ1bGwtPmxpbWl0ZWQgcmFuZ2UgbW9kZS4KIAkgKi8KLQlpZiAoY3J0Y19z dGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCB8fAorCWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1 dCB8fAogCSAgICBjcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ICE9IElOVEVMX09VVFBVVF9GT1JN QVRfUkdCIHx8CiAJICAgIGxpbWl0ZWRfY29sb3JfcmFuZ2UpCiAJCXJldHVybiAwOwpAQCAtMTI2 NSwxMyArMTI2NSwxMyBAQCBzdGF0aWMgaW50IGl2Yl9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdh bW1hX2VuYWJsZSA9Ci0JCShjcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCB8fAotCQkgY3J0Y19z dGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkgJiYKKwkJKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCB8 fAorCQkgY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpICYmCiAJCSFjcnRjX3N0YXRlLT5jOF9w bGFuZXM7CiAKIAljcnRjX3N0YXRlLT5jc2NfZW5hYmxlID0KIAkJY3J0Y19zdGF0ZS0+b3V0cHV0 X2Zvcm1hdCAhPSBJTlRFTF9PVVRQVVRfRk9STUFUX1JHQiB8fAotCQljcnRjX3N0YXRlLT5iYXNl LmN0bSB8fCBsaW1pdGVkX2NvbG9yX3JhbmdlOworCQljcnRjX3N0YXRlLT5ody5jdG0gfHwgbGlt aXRlZF9jb2xvcl9yYW5nZTsKIAogCWNydGNfc3RhdGUtPmdhbW1hX21vZGUgPSBpdmJfZ2FtbWFf bW9kZShjcnRjX3N0YXRlKTsKIApAQCAtMTMwMiwxNCArMTMwMiwxNCBAQCBzdGF0aWMgaW50IGds a19jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0 dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCWNydGNfc3RhdGUtPmJh c2UuZ2FtbWFfbHV0ICYmCisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCQkhY3J0Y19z dGF0ZS0+YzhfcGxhbmVzOwogCiAJLyogT24gR0xLKyBkZWdhbW1hIExVVCBpcyBjb250cm9sbGVk IGJ5IGNzY19lbmFibGUgKi8KIAljcnRjX3N0YXRlLT5jc2NfZW5hYmxlID0KLQkJY3J0Y19zdGF0 ZS0+YmFzZS5kZWdhbW1hX2x1dCB8fAorCQljcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCB8fAog CQljcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0ICE9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCIHx8 Ci0JCWNydGNfc3RhdGUtPmJhc2UuY3RtIHx8IGNydGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFu Z2U7CisJCWNydGNfc3RhdGUtPmh3LmN0bSB8fCBjcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9yX3Jh bmdlOwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9IGdsa19nYW1tYV9tb2RlKGNydGNfc3Rh dGUpOwogCkBAIC0xMzI2LDE0ICsxMzI2LDE0IEBAIHN0YXRpYyB1MzIgaWNsX2dhbW1hX21vZGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJdTMyIGdhbW1h X21vZGUgPSAwOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQpCisJaWYgKGNy dGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0KQogCQlnYW1tYV9tb2RlIHw9IFBSRV9DU0NfR0FNTUFf RU5BQkxFOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCisJaWYgKGNydGNf c3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCSAgICAhY3J0Y19zdGF0ZS0+YzhfcGxhbmVzKQogCQln YW1tYV9tb2RlIHw9IFBPU1RfQ1NDX0dBTU1BX0VOQUJMRTsKIAotCWlmICghY3J0Y19zdGF0ZS0+ YmFzZS5nYW1tYV9sdXQgfHwKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCB8fAogCSAg ICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkKIAkJZ2FtbWFfbW9kZSB8 PSBHQU1NQV9NT0RFX01PREVfOEJJVDsKIAllbHNlCkBAIC0xMzQ2LDcgKzEzNDYsNyBAQCBzdGF0 aWMgdTMyIGljbF9jc2NfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKIAl1MzIgY3NjX21vZGUgPSAwOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuY3Rt KQorCWlmIChjcnRjX3N0YXRlLT5ody5jdG0pCiAJCWNzY19tb2RlIHw9IElDTF9DU0NfRU5BQkxF OwogCiAJaWYgKGNydGNfc3RhdGUtPm91dHB1dF9mb3JtYXQgIT0gSU5URUxfT1VUUFVUX0ZPUk1B VF9SR0IgfHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Y3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NydC5jCmluZGV4IGU2 ZThkNGE4MjA0NC4uMzVhMjUxNzJiMjY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2NydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfY3J0LmMKQEAgLTEzMiw5ICsxMzIsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlwaXBlX2NvbmZpZy0+ b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfQU5BTE9HKTsKIAotCXBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gaW50ZWxfY3J0X2dldF9mbGFncyhlbmNvZGVy KTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBpbnRlbF9jcnRfZ2V0 X2ZsYWdzKGVuY29kZXIpOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7CisJcGlwZV9jb25maWctPmh3LmFkanVz dGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrOwogfQogCiBzdGF0 aWMgdm9pZCBoc3dfY3J0X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CkBAIC0xNDQsMTMgKzE0NCwxMyBAQCBzdGF0aWMgdm9pZCBoc3dfY3J0X2dldF9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlpbnRlbF9kZGlfZ2V0X2NvbmZpZyhlbmNv ZGVyLCBwaXBlX2NvbmZpZyk7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZs YWdzICY9IH4oRFJNX01PREVfRkxBR19QSFNZTkMgfAorCXBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlLmZsYWdzICY9IH4oRFJNX01PREVfRkxBR19QSFNZTkMgfAogCQkJCQkgICAgICBEUk1f TU9ERV9GTEFHX05IU1lOQyB8CiAJCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfUFZTWU5DIHwKIAkJ CQkJICAgICAgRFJNX01PREVfRkxBR19OVlNZTkMpOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGUuZmxhZ3MgfD0gaW50ZWxfY3J0X2dldF9mbGFncyhlbmNvZGVyKTsKKwlwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVuY29k ZXIpOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gbHB0 X2dldF9pY2xraXAoZGV2X3ByaXYpOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2sgPSBscHRfZ2V0X2ljbGtpcChkZXZfcHJpdik7CiB9CiAKIC8qIE5vdGU6IFRoZSBj YWxsZXIgaXMgcmVxdWlyZWQgdG8gZmlsdGVyIG91dCBkcG1zIG1vZGVzIG5vdCBzdXBwb3J0ZWQg YnkgdGhlCkBAIC0xNjEsOCArMTYxLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0X3NldF9kcG1z KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRl bF9jcnQgKmNydCA9IGludGVsX2VuY29kZXJfdG9fY3J0KGVuY29kZXIpOwotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUt PmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUz MiBhZHBhOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSkKQEAgLTI3MSw3ICsyNzEs NyBAQCBzdGF0aWMgdm9pZCBoc3dfcHJlX2VuYWJsZV9jcnQoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUg PSBjcnRjLT5waXBlOwogCiAJV0FSTl9PTighY3J0Y19zdGF0ZS0+aGFzX3BjaF9lbmNvZGVyKTsK QEAgLTI4OCw3ICsyODgsNyBAQCBzdGF0aWMgdm9pZCBoc3dfZW5hYmxlX2NydChzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gcGlw ZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAogCVdBUk5fT04oIWNydGNfc3RhdGUtPmhhc19wY2hfZW5j b2Rlcik7CkBAIC0zNTgsNyArMzU4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJ CSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWlmIChhZGp1c3RlZF9tb2RlLT5m bGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKIAkJcmV0dXJuIC1FSU5WQUw7CkBAIC0zNzMs NyArMzczLDcgQEAgc3RhdGljIGludCBwY2hfY3J0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQot CQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlOwogCiAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxB R19EQkxTQ0FOKQogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMg aW50IGhzd19jcnRfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQot CQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlOwogCiAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxB R19EQkxTQ0FOKQogCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RkaS5jCmluZGV4IDhlYjJiM2VjMDFlZC4uODEyMDViNzVkYTc4IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKQEAgLTE0NzksNyArMTQ3OSw3IEBAIHN0 YXRpYyB2b2lkIGRkaV9kb3RjbG9ja19nZXQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQogCWlmIChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJZG90Y2xvY2sg Lz0gcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gZG90Y2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9k ZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLApAQCAtMTY5NCw3ICsx Njk0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAogdm9pZCBpbnRlbF9kZGlfc2V0X3BpcGVfc2V0dGluZ3MoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1 X3RyYW5zY29kZXI7CiAJdTMyIHRlbXA7CkBAIC0xNzQ4LDcgKzE3NDgsNyBAQCB2b2lkIGludGVs X2RkaV9zZXRfcGlwZV9zZXR0aW5ncyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICBib29sIHN0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9 IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCXUzMiB0ZW1wOwpAQCAtMTc2Myw3ICsxNzYz LDcgQEAgdm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFu c2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRl bF9kZGlfZ2V0X2NydGNfZW5jb2RlcihjcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlwZSA9IGNy dGMtPnBpcGU7CkBAIC0xNzk1LDkgKzE3OTUsOSBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfdHJh bnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CQlCVUcoKTsKIAl9CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdz ICYgRFJNX01PREVfRkxBR19QVlNZTkMpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21v ZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKIAkJdGVtcCB8PSBUUkFOU19ERElfUFZT WU5DOwotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9E RV9GTEFHX1BIU1lOQykKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAm IERSTV9NT0RFX0ZMQUdfUEhTWU5DKQogCQl0ZW1wIHw9IFRSQU5TX0RESV9QSFNZTkM7CiAKIAlp ZiAoY3B1X3RyYW5zY29kZXIgPT0gVFJBTlNDT0RFUl9FRFApIHsKQEAgLTE4NTAsNyArMTg1MCw3 IEBAIHZvaWQgaW50ZWxfZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIHZvaWQgaW50ZWxfZGRpX2Rpc2FibGVfdHJh bnNjb2Rlcl9mdW5jKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2Rl ciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCWk5MTVfcmVnX3QgcmVnID0gVFJBTlNf RERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKTsKQEAgLTIxNDUsNyArMjE0NSw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2RkaV9nZXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAogdm9pZCBpbnRlbF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 CiAJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBpbnRlbF9kZGlfZ2V0X2NydGNfZW5j b2RlcihjcnRjKTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CkBAIC0yMTYzLDcg KzIxNjMsNyBAQCB2b2lkIGludGVsX2RkaV9lbmFibGVfcGlwZV9jbG9jayhjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogdm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9w aXBlX2Nsb2NrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewot CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVf dHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCiAJaWYgKGNwdV90cmFu c2NvZGVyICE9IFRSQU5TQ09ERVJfRURQKSB7CkBAIC0zMjczLDcgKzMyNzMsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtMzY5NCw3 ICszNjk0LDcgQEAgaW50ZWxfZGRpX3VwZGF0ZV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlLAogCVdBUk5fT04oY3J0YyAmJiBjcnRjLT5hY3RpdmUpOwogCiAJaW50ZWxf dGNfcG9ydF9nZXRfbGluayhlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpLCByZXF1aXJl ZF9sYW5lcyk7Ci0JaWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJ aWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlpbnRlbF91cGRhdGVf YWN0aXZlX2RwbGwoc3RhdGUsIGNydGMsIGVuY29kZXIpOwogfQogCkBAIC0zODI0LDcgKzM4MjQs NyBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAllbnVtIHRyYW5zY29kZXIgY3B1 X3RyYW5zY29kZXIgPSBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXI7CiAJdTMyIHRlbXAsIGZs YWdzID0gMDsKIApAQCAtMzg0Miw3ICszODQyLDcgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAllbHNlCiAJCWZsYWdzIHw9IERSTV9N T0RFX0ZMQUdfTlZTWU5DOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFn cyB8PSBmbGFnczsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFn czsKIAogCXN3aXRjaCAodGVtcCAmIFRSQU5TX0RESV9CUENfTUFTSykgewogCWNhc2UgVFJBTlNf RERJX0JQQ182OgpAQCAtMzk3MSw3ICszOTcxLDcgQEAgc3RhdGljIGludCBpbnRlbF9kZGlfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQkgICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK IAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJaW50IHJldDsKQEAgLTQxMDIsNyAr NDEwMiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaGRtaV9yZXNldF9saW5rKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCiAJV0FSTl9PTighaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0 YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkpOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2 ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIWNy dGNfc3RhdGUtPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3JhdGlvICYmCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGI1MWQxY2ViODczOS4uYzZkN2Uz MmFlNzBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku YwpAQCAtNTE4LDcgKzUxOCw3IEBAIGljbF93YV9zY2FsZXJjbGtnYXRpbmcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKIHN0YXRpYyBib29sCiBuZWVk c19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpzdGF0ZSkKIHsKLQlyZXR1 cm4gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJnN0YXRlLT5iYXNlKTsKKwlyZXR1cm4g ZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJnN0YXRlLT51YXBpKTsKIH0KIAogLyoKQEAg LTYzMiw3ICs2MzIsNyBAQCBpOXh4X3NlbGVjdF9wMl9kaXYoY29uc3Qgc3RydWN0IGludGVsX2xp bWl0ICpsaW1pdCwKIAkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJCSAgIGludCB0YXJnZXQpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRl dik7CiAKIAlpZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRf TFZEUykpIHsKIAkJLyoKQEAgLTY2OCw3ICs2NjgsNyBAQCBpOXh4X2ZpbmRfYmVzdF9kcGxsKGNv bnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAJCSAgICBpbnQgdGFyZ2V0LCBpbnQgcmVm Y2xrLCBzdHJ1Y3QgZHBsbCAqbWF0Y2hfY2xvY2ssCiAJCSAgICBzdHJ1Y3QgZHBsbCAqYmVzdF9j bG9jaykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRj LT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2OwogCXN0cnVjdCBkcGxsIGNsb2NrOwogCWludCBlcnIgPSB0YXJnZXQ7CiAKQEAgLTcyNiw3 ICs3MjYsNyBAQCBwbnZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICps aW1pdCwKIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKm1hdGNoX2Ns b2NrLAogCQkgICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jaykKIHsKLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcGxsIGNsb2NrOwog CWludCBlcnIgPSB0YXJnZXQ7CiAKQEAgLTc4Miw3ICs3ODIsNyBAQCBnNHhfZmluZF9iZXN0X2Rw bGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKIAkJICAgaW50IHRhcmdldCwgaW50 IHJlZmNsaywgc3RydWN0IGRwbGwgKm1hdGNoX2Nsb2NrLAogCQkgICBzdHJ1Y3QgZHBsbCAqYmVz dF9jbG9jaykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+YmFzZS5j cnRjLT5kZXY7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGNfc3RhdGUtPnVhcGkuY3J0 Yy0+ZGV2OwogCXN0cnVjdCBkcGxsIGNsb2NrOwogCWludCBtYXhfbjsKIAlib29sIGZvdW5kID0g ZmFsc2U7CkBAIC04NzYsNyArODc2LDcgQEAgdmx2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVj dCBpbnRlbF9saW1pdCAqbGltaXQsCiAJCSAgIGludCB0YXJnZXQsIGludCByZWZjbGssIHN0cnVj dCBkcGxsICptYXRjaF9jbG9jaywKIAkJICAgc3RydWN0IGRwbGwgKmJlc3RfY2xvY2spCiB7Ci0J c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2Uu Y3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2 OwogCXN0cnVjdCBkcGxsIGNsb2NrOwogCXVuc2lnbmVkIGludCBiZXN0cHBtID0gMTAwMDAwMDsK QEAgLTkzNiw3ICs5MzYsNyBAQCBjaHZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVs X2xpbWl0ICpsaW1pdCwKIAkJICAgaW50IHRhcmdldCwgaW50IHJlZmNsaywgc3RydWN0IGRwbGwg Km1hdGNoX2Nsb2NrLAogCQkgICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jaykKIHsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJdW5z aWduZWQgaW50IGJlc3RfZXJyb3JfcHBtOwogCXN0cnVjdCBkcGxsIGNsb2NrOwpAQCAtMTAxNSw3 ICsxMDE1LDcgQEAgYm9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YykKIAkgKiBmb3IgYXRvbWljLgogCSAqLwogCXJldHVybiBjcnRjLT5hY3RpdmUgJiYgY3J0Yy0+ YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmIgJiYKLQkJY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuY3J0Y19jbG9jazsKKwkJY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNf Y2xvY2s7CiB9CiAKIGVudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTEwNjksNyArMTA2OSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX3dhaXRfZm9yX3BpcGVfc2NhbmxpbmVfbW92aW5nKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQogc3RhdGljIHZvaWQKIGludGVsX3dhaXRfZm9yX3BpcGVfb2ZmKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0 Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkg ewpAQCAtMTUyOCw3ICsxNTI4LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9lbmFibGVfcGxsKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCiBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfcGxsKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMp OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFz ZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtMTYxOSw3ICsxNjE5 LDcgQEAgdm9pZCB2bHZfd2FpdF9wb3J0X3JlYWR5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgaXJvbmxha2VfZW5hYmxlX3BjaF90cmFuc2NvZGVyKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190IHJl ZzsKQEAgLTE3NjMsNyArMTc2Myw3IEBAIGVudW0gcGlwZSBpbnRlbF9jcnRjX3BjaF90cmFuc2Nv ZGVyKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCiBzdGF0aWMgdTMyIGludGVsX2NydGNfbWF4 X3ZibGFua19jb3VudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCS8qCiAJICogT24gaTk2 NWdtIHRoZSBoYXJkd2FyZSBmcmFtZSBjb3VudGVyIHJlYWRzCkBAIC0xNzgzLDcgKzE3ODMsNyBA QCBzdGF0aWMgdTMyIGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZQogCiBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3ZibGFu a19vbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKIAogCWRybV9jcnRjX3NldF9tYXhfdmJsYW5rX2NvdW50KCZjcnRjLT5iYXNl LAogCQkJCSAgICAgIGludGVsX2NydGNfbWF4X3ZibGFua19jb3VudChjcnRjX3N0YXRlKSk7CkBA IC0xNzkyLDcgKzE3OTIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX3ZibGFua19vbihjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaW50 ZWxfZW5hYmxlX3BpcGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0 YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMobmV3X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJZW51bSB0cmFuc2NvZGVy IGNwdV90cmFuc2NvZGVyID0gbmV3X2NydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCWVudW0g cGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKQEAgLTE4NTAsNyArMTg1MCw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2VuYWJsZV9waXBlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0 Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9waXBlKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IG9sZF9jcnRjX3N0 YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC0z MTE0LDE0ICszMTE0LDE0IEBAIGludGVsX3NldF9wbGFuZV92aXNpYmxlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUgPSB2aXNp YmxlOwogCiAJaWYgKHZpc2libGUpCi0JCWNydGNfc3RhdGUtPmJhc2UucGxhbmVfbWFzayB8PSBk cm1fcGxhbmVfbWFzaygmcGxhbmUtPmJhc2UpOworCQljcnRjX3N0YXRlLT51YXBpLnBsYW5lX21h c2sgfD0gZHJtX3BsYW5lX21hc2soJnBsYW5lLT5iYXNlKTsKIAllbHNlCi0JCWNydGNfc3RhdGUt PmJhc2UucGxhbmVfbWFzayAmPSB+ZHJtX3BsYW5lX21hc2soJnBsYW5lLT5iYXNlKTsKKwkJY3J0 Y19zdGF0ZS0+dWFwaS5wbGFuZV9tYXNrICY9IH5kcm1fcGxhbmVfbWFzaygmcGxhbmUtPmJhc2Up OwogfQogCiBzdGF0aWMgdm9pZCBmaXh1cF9hY3RpdmVfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYp OwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCiAJLyoKQEAgLTMxMzIsNyArMzEzMiw3IEBA IHN0YXRpYyB2b2lkIGZpeHVwX2FjdGl2ZV9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCiAJY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyA9IDA7CiAKIAlkcm1fZm9y X2VhY2hfcGxhbmVfbWFzayhwbGFuZSwgJmRldl9wcml2LT5kcm0sCi0JCQkJY3J0Y19zdGF0ZS0+ YmFzZS5wbGFuZV9tYXNrKQorCQkJCWNydGNfc3RhdGUtPnVhcGkucGxhbmVfbWFzaykKIAkJY3J0 Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyB8PSBCSVQodG9faW50ZWxfcGxhbmUocGxhbmUpLT5pZCk7 CiB9CiAKQEAgLTM1NzgsNyArMzU3OCw3IEBAIGk5eHhfcGxhbmVfbWF4X3N0cmlkZShzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lLAogCiBzdGF0aWMgdTMyIGk5eHhfcGxhbmVfY3RsX2NydGMoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CiAJdTMyIGRzcGNudHIgPSAwOwogCkBAIC0zNzMyLDcgKzM3MzIsNyBAQCBpOXh4 X3BsYW5lX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1 cm4gcmV0OwogCiAJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBs YW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNy dGNfc3RhdGUtPnVhcGksCiAJCQkJCQkgIERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJ CQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9OT19TQ0FMSU5HLAogCQkJCQkJICBpOXh4X3BsYW5lX2hh c193aW5kb3dpbmcocGxhbmUpLApAQCAtMzkwOCw3ICszOTA4LDcgQEAgc3RhdGljIHZvaWQgc2ts X2RldGFjaF9zY2FsZXIoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsIGludCBpZCkKICAq Lwogc3RhdGljIHZvaWQgc2tsX2RldGFjaF9zY2FsZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3NjYWxlcl9zdGF0ZSAqc2NhbGVyX3N0YXRlID0KIAkJJmNy dGNfc3RhdGUtPnNjYWxlcl9zdGF0ZTsKIAlpbnQgaTsKQEAgLTQxMDMsNyArNDEwMyw3IEBAIHN0 YXRpYyB1MzIgY25sX3BsYW5lX2N0bF9mbGlwKHVuc2lnbmVkIGludCByZWZsZWN0KQogCiB1MzIg c2tsX3BsYW5lX2N0bF9jcnRjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXUzMiBwbGFuZV9j dGwgPSAwOwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFL RShkZXZfcHJpdikpCkBAIC00MTU5LDcgKzQxNTksNyBAQCB1MzIgc2tsX3BsYW5lX2N0bChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAogdTMyIGdsa19wbGFuZV9j b2xvcl9jdGxfY3J0Yyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAl1MzIgcGxhbmVfY29sb3Jf Y3RsID0gMDsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQpAQCAtNDM4MSwxMSAr NDM4MSwxMSBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X3BpcGVfY2hpY2tlbihzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZyhjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCQkJICAgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKIAogCS8qIGRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdhY3lf bW9kZXNldF9zdGF0ZSBtaWdodCBub3QgYmUgY2FsbGVkLiAqLwotCWNydGMtPmJhc2UubW9kZSA9 IG5ld19jcnRjX3N0YXRlLT5iYXNlLm1vZGU7CisJY3J0Yy0+YmFzZS5tb2RlID0gbmV3X2NydGNf c3RhdGUtPnVhcGkubW9kZTsKIAogCS8qCiAJICogVXBkYXRlIHBpcGUgc2l6ZSBhbmQgYWRqdXN0 IGZpdHRlciBpZiBuZWVkZWQ6IHRoZSByZWFzb24gZm9yIHRoaXMgaXMKQEAgLTQ4MTQsNyArNDgx NCw3IEBAIHN0YXRpYyB2b2lkIGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIGlyb25sYWtlX2ZkaV9wbGxfZW5hYmxlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsK IAlpOTE1X3JlZ190IHJlZzsKQEAgLTQ5NzUsOSArNDk3NSw5IEBAIHZvaWQgbHB0X2Rpc2FibGVf aWNsa2lwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIC8qIFByb2dyYW0gaUNM S0lQIGNsb2NrIHRvIHRoZSBkZXNpcmVkIGZyZXF1ZW5jeSAqLwogc3RhdGljIHZvaWQgbHB0X3By b2dyYW1faWNsa2lwKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCWludCBjbG9jayA9IGNydGNfc3RhdGUtPmJhc2Uu YWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCWludCBjbG9jayA9IGNydGNfc3RhdGUtPmh3LmFk anVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAl1MzIgZGl2c2VsLCBwaGFzZWluYywgYXV4ZGl2LCBw aGFzZWRpciA9IDA7CiAJdTMyIHRlbXA7CiAKQEAgLTUwOTEsNyArNTA5MSw3IEBAIGludCBscHRf Z2V0X2ljbGtpcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9wY2hfdHJhbnNjb2Rlcl9zZXRfdGltaW5ncyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkJCWVudW0gcGlwZSBwY2hfdHJhbnNjb2RlcikK IHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29k ZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIApAQCAtNTEzNCw3ICs1MTM0LDcgQEAg c3RhdGljIHZvaWQgY3B0X3NldF9mZGlfYmNfYmlmdXJjYXRpb24oc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBib29sIGUKIAogc3RhdGljIHZvaWQgaXZ5YnJpZGdlX3VwZGF0ZV9m ZGlfYmNfYmlmdXJjYXRpb24oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlzd2l0Y2ggKGNydGMtPnBpcGUpIHsK QEAgLTUxNjQsNyArNTE2NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqCiBpbnRl bF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSwKIAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uZWN0b3Jfc3RhdGU7CiAJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsK IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9IE5VTEw7CkBAIC01MTk2LDcgKzUxOTYs NyBAQCBpbnRlbF9nZXRfY3J0Y19uZXdfZW5jb2Rlcihjb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoY29uc3Qgc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkJY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNydGMtPmJhc2UuZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlpbnQgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC01MjUw LDcgKzUyNTAsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9wY2hfZW5hYmxlKGNvbnN0IHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdikg JiYKIAkgICAgaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSkgewogCQljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Y19zdGF0 ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7 CiAJCXUzMiBicGMgPSAoSTkxNV9SRUFEKFBJUEVDT05GKHBpcGUpKSAmIFBJUEVDT05GX0JQQ19N QVNLKSA+PiA1OwogCQlpOTE1X3JlZ190IHJlZyA9IFRSQU5TX0RQX0NUTChwaXBlKTsKIAkJZW51 bSBwb3J0IHBvcnQ7CkBAIC01MjgwLDcgKzUyODAsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9w Y2hfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGlj IHZvaWQgbHB0X3BjaF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUsCiAJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIg PSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIApAQCAtNTM5NywxMCArNTM5NywxMCBAQCBz a2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9v bCBmb3JjZV9kZXRhY2gsCiAJc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpzY2FsZXJf c3RhdGUgPQogCQkmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjID0KLQkJdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwor CQl0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7CiAJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0 ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsK IAogCS8qCiAJICogU3JjIGNvb3JkaW5hdGVzIGFyZSBhbHJlYWR5IHJvdGF0ZWQgYnkgMjcwIGRl Z3JlZXMgZm9yCkBAIC01NDE2LDcgKzU0MTYsNyBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCiAJICogT25j ZSBOVjEyIGlzIGVuYWJsZWQsIGhhbmRsZSBpdCBoZXJlIHdoaWxlIGFsbG9jYXRpbmcgc2NhbGVy CiAJICogZm9yIE5WMTIuCiAJICovCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAmJiBj cnRjX3N0YXRlLT5iYXNlLmVuYWJsZSAmJgorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkg JiYgY3J0Y19zdGF0ZS0+aHcuZW5hYmxlICYmCiAJICAgIG5lZWRfc2NhbGVyICYmIGFkanVzdGVk X21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKIAkJRFJNX0RFQlVHX0tN UygiUGlwZS9QbGFuZSBzY2FsaW5nIG5vdCBzdXBwb3J0ZWQgd2l0aCBJRi1JRCBtb2RlXG4iKTsK IAkJcmV0dXJuIC1FSU5WQUw7CkBAIC01NDg4LDEzICs1NDg4LDEzIEBAIHNrbF91cGRhdGVfc2Nh bGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBib29sIGZvcmNlX2RldGFj aCwKICAqLwogaW50IHNrbF91cGRhdGVfc2NhbGVyX2NydGMoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnN0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0gJnN0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJYm9v bCBuZWVkX3NjYWxlciA9IGZhbHNlOwogCiAJaWYgKHN0YXRlLT5vdXRwdXRfZm9ybWF0ID09IElO VEVMX09VVFBVVF9GT1JNQVRfWUNCQ1I0MjApCiAJCW5lZWRfc2NhbGVyID0gdHJ1ZTsKIAotCXJl dHVybiBza2xfdXBkYXRlX3NjYWxlcihzdGF0ZSwgIXN0YXRlLT5iYXNlLmFjdGl2ZSwgU0tMX0NS VENfSU5ERVgsCisJcmV0dXJuIHNrbF91cGRhdGVfc2NhbGVyKHN0YXRlLCAhc3RhdGUtPmh3LmFj dGl2ZSwgU0tMX0NSVENfSU5ERVgsCiAJCQkJICZzdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcl9p ZCwKIAkJCQkgc3RhdGUtPnBpcGVfc3JjX3csIHN0YXRlLT5waXBlX3NyY19oLAogCQkJCSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5LApAQCAtNTU5NCw3ICs1NTk0LDcgQEAgc3RhdGljIHZv aWQgc2t5bGFrZV9zY2FsZXJfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAogc3Rh dGljIHZvaWQgc2t5bGFrZV9wZml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CiAJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc2NhbGVyX3N0YXRlICpz Y2FsZXJfc3RhdGUgPQpAQCAtNTYzMSw3ICs1NjMxLDcgQEAgc3RhdGljIHZvaWQgc2t5bGFrZV9w Zml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAog c3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJaW50IHBpcGUg PSBjcnRjLT5waXBlOwogCkBAIC01NjUyLDcgKzU2NTIsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFr ZV9wZml0X2VuYWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IAogdm9pZCBoc3dfZW5hYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwogCkBAIC01Njg4LDcgKzU2ODgsNyBAQCB2b2lkIGhzd19lbmFibGVfaXBzKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiB2b2lkIGhzd19kaXNh YmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCkBA IC01Nzk4LDcgKzU3OTgsNyBAQCBpbnRlbF9wcmVfZGlzYWJsZV9wcmltYXJ5X25vYXRvbWljKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKIHN0YXRpYyBib29sIGhzd19wcmVfdXBkYXRlX2Rpc2FibGVf aXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCQkg ICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3 X2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAKIAlpZiAoIW9sZF9jcnRjX3N0YXRlLT5p cHNfZW5hYmxlZCkKQEAgLTU4MTQsNyArNTgxNCw3IEBAIHN0YXRpYyBib29sIGhzd19wcmVfdXBk YXRlX2Rpc2FibGVfaXBzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19z CiAJICogRGlzYWJsZSBJUFMgYmVmb3JlIHdlIHByb2dyYW0gdGhlIExVVC4KIAkgKi8KIAlpZiAo SVNfSEFTV0VMTChkZXZfcHJpdikgJiYKLQkgICAgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNvbG9y X21nbXRfY2hhbmdlZCB8fAorCSAgICAobmV3X2NydGNfc3RhdGUtPnVhcGkuY29sb3JfbWdtdF9j aGFuZ2VkIHx8CiAJICAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpICYmCiAJICAgIG5l d19jcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV9TUExJVCkKIAkJcmV0 dXJuIHRydWU7CkBAIC01ODI1LDcgKzU4MjUsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcHJlX3VwZGF0 ZV9kaXNhYmxlX2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfcwog c3RhdGljIGJvb2wgaHN3X3Bvc3RfdXBkYXRlX2VuYWJsZV9pcHMoY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKIAogCWlmICghbmV3X2NydGNfc3RhdGUtPmlwc19lbmFibGVkKQpAQCAtNTg0MSw3 ICs1ODQxLDcgQEAgc3RhdGljIGJvb2wgaHN3X3Bvc3RfdXBkYXRlX2VuYWJsZV9pcHMoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3MKIAkgKiBSZS1lbmFibGUgSVBTIGFm dGVyIHRoZSBMVVQgaGFzIGJlZW4gcHJvZ3JhbW1lZC4KIAkgKi8KIAlpZiAoSVNfSEFTV0VMTChk ZXZfcHJpdikgJiYKLQkgICAgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdl ZCB8fAorCSAgICAobmV3X2NydGNfc3RhdGUtPnVhcGkuY29sb3JfbWdtdF9jaGFuZ2VkIHx8CiAJ ICAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpICYmCiAJICAgIG5ld19jcnRjX3N0YXRl LT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV9TUExJVCkKIAkJcmV0dXJuIHRydWU7CkBA IC01ODUxLDcgKzU4NTEsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcG9zdF91cGRhdGVfZW5hYmxlX2lw cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfcwogCSAqIGZvcmNpYmx5 IGVuYWJsZSBJUFMgb24gdGhlIGZpcnN0IGZhc3RzZXQuCiAJICovCiAJaWYgKG5ld19jcnRjX3N0 YXRlLT51cGRhdGVfcGlwZSAmJgotCSAgICBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9t b2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpCisJICAgIG9sZF9j cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxB R19JTkhFUklURUQpCiAJCXJldHVybiB0cnVlOwogCiAJcmV0dXJuICFvbGRfY3J0Y19zdGF0ZS0+ aXBzX2VuYWJsZWQ7CkBAIC01ODgyLDEwICs1ODgyLDEwIEBAIHN0YXRpYyBib29sIG5lZWRzX3Nj YWxlcmNsa193YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyB2 b2lkIGludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRf Y3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo b2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0g b2xkX2NydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlID0gb2xkX2NydGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnID0KIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZSh0b19p bnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLAogCQkJCQkJY3J0Yyk7CkBAIC01ODk1LDcgKzU4OTUs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUpCiAKIAlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKHRvX2k5 MTUoY3J0Yy0+YmFzZS5kZXYpLCBwaXBlX2NvbmZpZy0+ZmJfYml0cyk7CiAKLQlpZiAocGlwZV9j b25maWctPnVwZGF0ZV93bV9wb3N0ICYmIHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSkKKwlpZiAo cGlwZV9jb25maWctPnVwZGF0ZV93bV9wb3N0ICYmIHBpcGVfY29uZmlnLT5ody5hY3RpdmUpCiAJ CWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKGNydGMpOwogCiAJaWYgKGhzd19wb3N0X3VwZGF0ZV9l bmFibGVfaXBzKG9sZF9jcnRjX3N0YXRlLCBwaXBlX2NvbmZpZykpCkBAIC01OTI1LDEwICs1OTI1 LDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFuZV91 cGRhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJCSAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xkX2NydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gb2xkX2NydGNfc3RhdGUtPnVhcGkuc3RhdGU7 CiAJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSA9IGNydGMtPmJhc2UucHJpbWFyeTsKIAlzdHJ1 Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcHJpbWFyeV9zdGF0ZSA9CiAJCWRybV9hdG9taWNfZ2V0 X29sZF9wbGFuZV9zdGF0ZShzdGF0ZSwgcHJpbWFyeSk7CkBAIC01OTczLDcgKzU5NzMsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0ZSwKIAkgKiBldmVudCB3aGljaCBpcyBhZnRlciB0aGUgdmJsYW5rIHN0 YXJ0IGV2ZW50LCBzbyB3ZSBuZWVkIHRvIGhhdmUgYQogCSAqIHdhaXQtZm9yLXZibGFuayBiZXR3 ZWVuIGRpc2FibGluZyB0aGUgcGxhbmUgYW5kIHRoZSBwaXBlLgogCSAqLwotCWlmIChIQVNfR01D SChkZXZfcHJpdikgJiYgb2xkX2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmCisJaWYgKEhBU19H TUNIKGRldl9wcml2KSAmJiBvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICYmCiAJICAgIHBpcGVf Y29uZmlnLT5kaXNhYmxlX2N4c3IgJiYgaW50ZWxfc2V0X21lbW9yeV9jeHNyKGRldl9wcml2LCBm YWxzZSkpCiAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CiAK QEAgLTU5ODUsNyArNTk4NSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFuZV91cGRhdGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCSAqIFdhQ3hTUkRpc2Fi bGVkRm9yU3ByaXRlU2NhbGluZzppdmIKIAkgKi8KIAlpZiAocGlwZV9jb25maWctPmRpc2FibGVf bHBfd20gJiYgaWxrX2Rpc2FibGVfbHBfd20oZGV2KSAmJgotCSAgICBvbGRfY3J0Y19zdGF0ZS0+ YmFzZS5hY3RpdmUpCisJICAgIG9sZF9jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCWludGVsX3dh aXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CiAKIAkvKgpAQCAtNjI4MCw3ICs2 MjgwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfdXBkYXRlX3BpcGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfcHJpbWFyeV9wbGFu ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUoY3J0 Yy0+YmFzZS5wcmltYXJ5KTsKIAogCXBsYW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjcnRjX3N0 YXRlKTsKQEAgLTYyODksNyArNjI4OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfcHJp bWFyeV9wbGFuZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0CiBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCiAJCQkJIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3RydWN0IGRy bV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Yyk7CkBAIC02NDIzLDcgKzY0MjMsNyBAQCBzdGF0aWMgdm9pZCBpY2xfcGlwZV9t YnVzX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHN0YXRpYyB2b2lkIGhhc3dlbGxf Y3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCXN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlw ZV9jb25maWctPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZSwgaHN3X3dv cmthcm91bmRfcGlwZTsKQEAgLTY1MzIsNyArNjUzMiw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxf Y3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCiBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJ ZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCkBAIC02NTQ4LDcgKzY1NDgsNyBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlKQogc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCQkgIHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9sZF9j cnRjX3N0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gb2xkX2NydGNf c3RhdGUtPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC02NjA3 LDcgKzY2MDcsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2Rpc2FibGUoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRj X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJCSBz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNy dGMgPSBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGM7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29k ZXIgPSBvbGRfY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7CkBAIC02NjQxLDcgKzY2NDEsNyBA QCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9lbmFibGUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAKIAlpZiAoIWNydGNfc3RhdGUtPmdtY2hfcGZpdC5jb250cm9sKQpAQCAtNjc3MSwx NCArNjc3MSwxNCBAQCBpbnRlbF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRpZ19wb3J0KQogCiBzdGF0aWMgdTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwogCWVudW0gcGlwZSBwaXBlID0gY3J0 Yy0+cGlwZTsKIAl1NjQgbWFzazsKIAllbnVtIHRyYW5zY29kZXIgdHJhbnNjb2RlciA9IGNydGNf c3RhdGUtPmNwdV90cmFuc2NvZGVyOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkK KwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIDA7CiAKIAltYXNrID0gQklU X1VMTChQT1dFUl9ET01BSU5fUElQRShwaXBlKSk7CkBAIC02Nzg4LDcgKzY3ODgsNyBAQCBzdGF0 aWMgdTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiAJCW1hc2sgfD0gQklUX1VMTChQT1dFUl9ET01BSU5fUElQRV9QQU5FTF9GSVRU RVIocGlwZSkpOwogCiAJZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCAmZGV2X3By aXYtPmRybSwKLQkJCQkgIGNydGNfc3RhdGUtPmJhc2UuZW5jb2Rlcl9tYXNrKSB7CisJCQkJICBj cnRjX3N0YXRlLT51YXBpLmVuY29kZXJfbWFzaykgewogCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciA9IHRvX2ludGVsX2VuY29kZXIoZW5jb2Rlcik7CiAKIAkJbWFzayB8PSBC SVRfVUxMKGludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbik7CkBAIC02ODA2LDcgKzY4MDYsNyBA QCBzdGF0aWMgdTY0IGdldF9jcnRjX3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdTY0CiBtb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFp bnMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CiAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21haW47CiAJdTY0 IGRvbWFpbnMsIG5ld19kb21haW5zLCBvbGRfZG9tYWluczsKQEAgLTY4MzUsNyArNjgzNSw3IEBA IHN0YXRpYyB2b2lkIG1vZGVzZXRfcHV0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJICAgc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25m aWctPmJhc2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFw aS5jcnRjOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKQEAgLTY4OTEsNyArNjg5MSw3 IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKnBpcGVfY29uZmlnLAogCiBzdGF0aWMgdm9pZCBpOXh4X3NldF9wbGxfZGl2aWRlcnMo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGku Y3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRj LT5iYXNlLmRldik7CiAKIAlJOTE1X1dSSVRFKEZQMChjcnRjLT5waXBlKSwgY3J0Y19zdGF0ZS0+ ZHBsbF9od19zdGF0ZS5mcDApOwpAQCAtNjkwMSw3ICs2OTAxLDcgQEAgc3RhdGljIHZvaWQgaTl4 eF9zZXRfcGxsX2RpdmlkZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogc3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT5iYXNlLmNydGM7CisJ c3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPnVhcGkuY3J0YzsKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC02OTUxLDcgKzY5NTEsNyBAQCBzdGF0aWMgdm9pZCBp OXh4X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAog c3RhdGljIHZvaWQgaTl4eF9wZml0X2Rpc2FibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAK IAlpZiAoIW9sZF9jcnRjX3N0YXRlLT5nbWNoX3BmaXQuY29udHJvbCkKQEAgLTY5NjcsNyArNjk2 Nyw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxl KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAkJCSAgICAgIHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9 IG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGM7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gb2xk X2NydGNfc3RhdGUtPnVhcGkuY3J0YzsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBA IC03MTM1LDggKzcxMzUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0 YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlpZiAoIWNydGNfc3Rh dGUpCiAJCQlyZXR1cm47CiAKLQkJSTkxNV9TVEFURV9XQVJOKCFjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSwKLQkJICAgICAgImNvbm5lY3RvciBpcyBhY3RpdmUsIGJ1dCBhdHRhY2hlZCBjcnRjIGlz bid0XG4iKTsKKwkJSTkxNV9TVEFURV9XQVJOKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUsCisJCQkJ ImNvbm5lY3RvciBpcyBhY3RpdmUsIGJ1dCBhdHRhY2hlZCBjcnRjIGlzbid0XG4iKTsKIAogCQlp ZiAoIWVuY29kZXIgfHwgZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRFBfTVNUKQogCQkJ cmV0dXJuOwpAQCAtNzE0Nyw4ICs3MTQ3LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9y X3ZlcmlmeV9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJSTkx NV9TVEFURV9XQVJOKGNvbm5fc3RhdGUtPmNydGMgIT0gZW5jb2Rlci0+YmFzZS5jcnRjLAogCQkJ ImF0dGFjaGVkIGVuY29kZXIgY3J0YyBkaWZmZXJzIGZyb20gY29ubmVjdG9yIGNydGNcbiIpOwog CX0gZWxzZSB7Ci0JCUk5MTVfU1RBVEVfV0FSTihjcnRjX3N0YXRlICYmIGNydGNfc3RhdGUtPmJh c2UuYWN0aXZlLAotCQkJImF0dGFjaGVkIGNydGMgaXMgYWN0aXZlLCBidXQgY29ubmVjdG9yIGlz bid0XG4iKTsKKwkJSTkxNV9TVEFURV9XQVJOKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+aHcu YWN0aXZlLAorCQkJCSJhdHRhY2hlZCBjcnRjIGlzIGFjdGl2ZSwgYnV0IGNvbm5lY3RvciBpc24n dFxuIik7CiAJCUk5MTVfU1RBVEVfV0FSTighY3J0Y19zdGF0ZSAmJiBjb25uX3N0YXRlLT5iZXN0 X2VuY29kZXIsCiAJCQkiYmVzdCBlbmNvZGVyIHNldCB3aXRob3V0IGNydGMhXG4iKTsKIAl9CkBA IC03MTU2LDcgKzcxNTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0 YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50IHBp cGVfcmVxdWlyZWRfZmRpX2xhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNfcGNo X2VuY29kZXIpCisJaWYgKGNydGNfc3RhdGUtPmh3LmVuYWJsZSAmJiBjcnRjX3N0YXRlLT5oYXNf cGNoX2VuY29kZXIpCiAJCXJldHVybiBjcnRjX3N0YXRlLT5mZGlfbGFuZXM7CiAKIAlyZXR1cm4g MDsKQEAgLTcxNjYsNyArNzE2Niw3IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfY2hlY2tfZmRpX2xh bmVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLAogCQkJCSAgICAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+dWFwaS5zdGF0ZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqb3RoZXJfY3J0YzsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb3RoZXJfY3J0Y19zdGF0 ZTsKIApAQCAtNzIzOSw3ICs3MjM5LDcgQEAgc3RhdGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0 ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAJCQkJICAgICAgIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgbGFuZSwgbGlua19idywgZmRpX2RvdGNsb2NrLCBy ZXQ7CiAJYm9vbCBuZWVkc19yZWNvbXB1dGUgPSBmYWxzZTsKIApAQCAtNzI4NSw3ICs3Mjg1LDcg QEAgc3RhdGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCiAKIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFibGUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAKIAkvKiBJUFMgb25seSBleGlzdHMgb24gVUxUIG1hY2hpbmVzIGFuZCBpcyB0aWVk IHRvIHBpcGUgQS4gKi8KQEAgLTczMTUsOSArNzMxNSw5IEBAIGJvb2wgaHN3X2NydGNfc3RhdGVf aXBzX2NhcGFibGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiBz dGF0aWMgYm9vbCBoc3dfY29tcHV0ZV9pcHNfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Ci0J CXRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCQl0b19pOTE1KGNydGNfc3Rh dGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9z dGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsK KwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCiAJaWYg KCFoc3dfY3J0Y19zdGF0ZV9pcHNfY2FwYWJsZShjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIGZhbHNl OwpAQCAtNzM1Niw3ICs3MzU2LDcgQEAgc3RhdGljIHUzMiBpbGtfcGlwZV9waXhlbF9yYXRlKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAl1MzIgcGl4ZWxf cmF0ZTsKIAotCXBpeGVsX3JhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2s7CisJcGl4ZWxfcmF0ZSA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2s7CiAKIAkvKgogCSAqIFdlIG9ubHkgdXNlIElGLUlEIGludGVybGFjaW5nLiBJZiB3 ZSBldmVyIHVzZQpAQCAtNzM4OSwxMiArNzM4OSwxMiBAQCBzdGF0aWMgdTMyIGlsa19waXBlX3Bp eGVsX3JhdGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCiBz dGF0aWMgdm9pZCBpbnRlbF9jcnRjX2NvbXB1dGVfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2 KTsKIAogCWlmIChIQVNfR01DSChkZXZfcHJpdikpCiAJCS8qIEZJWE1FIGNhbGN1bGF0ZSBwcm9w ZXIgcGlwZSBwaXhlbCByYXRlIGZvciBHTUNIIHBmaXQgKi8KIAkJY3J0Y19zdGF0ZS0+cGl4ZWxf cmF0ZSA9Ci0JCQljcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwkJ CWNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAllbHNlCiAJCWNydGNf c3RhdGUtPnBpeGVsX3JhdGUgPQogCQkJaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsK QEAgLTc0MDQsNyArNzQwNCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZp ZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5ody5hZGp1c3RlZF9tb2RlOwogCWludCBjbG9ja19saW1pdCA9IGRldl9wcml2LT5tYXhfZG90 Y2xrX2ZyZXE7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDQpIHsKQEAgLTc0MzAsNyAr NzQzMCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAogCWlmICgocGlwZV9jb25maWctPm91dHB1dF9mb3JtYXQgPT0gSU5U RUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQyMCB8fAogCSAgICAgcGlwZV9jb25maWctPm91dHB1dF9m b3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQ0NCkgJiYKLQkgICAgIHBpcGVfY29u ZmlnLT5iYXNlLmN0bSkgeworCSAgICAgcGlwZV9jb25maWctPmh3LmN0bSkgewogCQkvKgogCQkg KiBUaGVyZSBpcyBvbmx5IG9uZSBwaXBlIENTQyB1bml0IHBlciBwaXBlLCBhbmQgd2UgbmVlZCB0 aGF0CiAJCSAqIGZvciBvdXRwdXQgY29udmVyc2lvbiBmcm9tIFJHQi0+WUNCQ1IuIFNvIGlmIENU TSBpcyBhbHJlYWR5CkBAIC03NTk5LDcgKzc1OTksNyBAQCBzdGF0aWMgdm9pZCB2bHZfcGxsYl9y ZWNhbF9vcGFtcChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZQog c3RhdGljIHZvaWQgaW50ZWxfcGNoX3RyYW5zY29kZXJfc2V0X21fbihjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9saW5r X21fbiAqbV9uKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKIApAQCAtNzYyNiw3ICs3NjI2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3B1 X3RyYW5zY29kZXJfc2V0X21fbihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGEKIAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uLAogCQkJCQkgY29uc3Qg c3RydWN0IGludGVsX2xpbmtfbV9uICptMl9uMikKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK IAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJZW51bSB0cmFuc2NvZGVyIHRyYW5zY29k ZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKQEAgLTc5MzksNyArNzkzOSw3IEBAIGlu dCB2bHZfZm9yY2VfcGxsX29uKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51 bSBwaXBlIHBpcGUsCiAJaWYgKCFwaXBlX2NvbmZpZykKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlw aXBlX2NvbmZpZy0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7CisJcGlwZV9jb25maWctPnVhcGku Y3J0YyA9ICZjcnRjLT5iYXNlOwogCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0gMTsK IAlwaXBlX2NvbmZpZy0+ZHBsbCA9ICpkcGxsOwogCkBAIC04MDk5LDExICs4MDk5LDExIEBAIHN0 YXRpYyB2b2lkIGk4eHhfY29tcHV0ZV9kcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiBz dGF0aWMgdm9pZCBpbnRlbF9zZXRfcGlwZV90aW1pbmdzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlw ZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBj cnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZTsKIAl1MzIgY3J0Y192dG90YWwsIGNydGNfdmJsYW5rX2VuZDsKIAlp bnQgdnN5bmNzaGlmdCA9IDA7CiAKQEAgLTgxNjEsNyArODE2MSw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX3NldF9waXBlX3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUpCiAKIHN0YXRpYyB2b2lkIGludGVsX3NldF9waXBlX3NyY19zaXplKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp OwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApAQCAtODE4MiwzOSArODE4MiwzOSBA QCBzdGF0aWMgdm9pZCBpbnRlbF9nZXRfcGlwZV90aW1pbmdzKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCXUzMiB0bXA7CiAKIAl0bXAgPSBJOTE1X1JFQUQoSFRPVEFMKGNwdV90cmFuc2NvZGVy KSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5ID0gKHRt cCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19o dG90YWwgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5ID0gKHRtcCAmIDB4ZmZmZikgKyAxOworCXBpcGVfY29u ZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsID0gKCh0bXAgPj4gMTYpICYgMHhmZmZm KSArIDE7CiAKIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkgewogCQl0 bXAgPSBJOTE1X1JFQUQoSEJMQU5LKGNwdV90cmFuc2NvZGVyKSk7Ci0JCXBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQgPQorCQlwaXBlX2NvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZS5jcnRjX2hibGFua19zdGFydCA9CiAJCQkJCQkJKHRtcCAmIDB4ZmZmZikg KyAxOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCA9 CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCA9CiAJCQkJ CQkoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAl9CiAJdG1wID0gSTkxNV9SRUFEKEhTWU5D KGNwdV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2hzeW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y19oc3luY19lbmQgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsK KwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0ID0gKHRtcCAm IDB4ZmZmZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNf ZW5kID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAKIAl0bXAgPSBJOTE1X1JFQUQoVlRP VEFMKGNwdV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5j cnRjX3ZkaXNwbGF5ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y192dG90YWwgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKKwlw aXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5ID0gKHRtcCAmIDB4ZmZm ZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsID0gKCh0 bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAKIAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90 cmFuc2NvZGVyKSkgewogCQl0bXAgPSBJOTE1X1JFQUQoVkJMQU5LKGNwdV90cmFuc2NvZGVyKSk7 Ci0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192Ymxhbmtfc3RhcnQgPQor CQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19zdGFydCA9CiAJCQkJ CQkJKHRtcCAmIDB4ZmZmZikgKyAxOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl LmNydGNfdmJsYW5rX2VuZCA9CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNf dmJsYW5rX2VuZCA9CiAJCQkJCQkoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAl9CiAJdG1w ID0gSTkxNV9SRUFEKFZTWU5DKGNwdV90cmFuc2NvZGVyKSk7Ci0JcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOwotCXBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192c3luY19lbmQgPSAoKHRtcCA+PiAx NikgJiAweGZmZmYpICsgMTsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3Zz eW5jX3N0YXJ0ID0gKHRtcCAmIDB4ZmZmZikgKyAxOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlLmNydGNfdnN5bmNfZW5kID0gKCh0bXAgPj4gMTYpICYgMHhmZmZmKSArIDE7CiAKIAlp ZiAoSTkxNV9SRUFEKFBJUEVDT05GKGNwdV90cmFuc2NvZGVyKSkgJiBQSVBFQ09ORl9JTlRFUkxB Q0VfTUFTSykgewotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERS TV9NT0RFX0ZMQUdfSU5URVJMQUNFOwotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl LmNydGNfdnRvdGFsICs9IDE7Ci0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0 Y192YmxhbmtfZW5kICs9IDE7CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdz IHw9IERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZS5jcnRjX3Z0b3RhbCArPSAxOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX3ZibGFua19lbmQgKz0gMTsKIAl9CiB9CiAKQEAgLTgyMjksMjcgKzgyMjksMjcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZ2V0X3BpcGVfc3JjX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMs CiAJcGlwZV9jb25maWctPnBpcGVfc3JjX2ggPSAodG1wICYgMHhmZmZmKSArIDE7CiAJcGlwZV9j b25maWctPnBpcGVfc3JjX3cgPSAoKHRtcCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAotCXBpcGVf Y29uZmlnLT5iYXNlLm1vZGUudmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKLQlw aXBlX2NvbmZpZy0+YmFzZS5tb2RlLmhkaXNwbGF5ID0gcGlwZV9jb25maWctPnBpcGVfc3JjX3c7 CisJcGlwZV9jb25maWctPmh3Lm1vZGUudmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNf aDsKKwlwaXBlX2NvbmZpZy0+aHcubW9kZS5oZGlzcGxheSA9IHBpcGVfY29uZmlnLT5waXBlX3Ny Y193OwogfQogCiB2b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSwKIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQogewotCW1vZGUtPmhkaXNwbGF5ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZS5jcnRjX2hkaXNwbGF5OwotCW1vZGUtPmh0b3RhbCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGUuY3J0Y19odG90YWw7Ci0JbW9kZS0+aHN5bmNfc3RhcnQgPSBwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfc3RhcnQ7Ci0JbW9kZS0+aHN5bmNfZW5kID0g cGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX2VuZDsKKwltb2RlLT5o ZGlzcGxheSA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7CisJ bW9kZS0+aHRvdGFsID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7 CisJbW9kZS0+aHN5bmNfc3RhcnQgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRj X2hzeW5jX3N0YXJ0OworCW1vZGUtPmhzeW5jX2VuZCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlLmNydGNfaHN5bmNfZW5kOwogCi0JbW9kZS0+dmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdmRpc3BsYXk7Ci0JbW9kZS0+dnRvdGFsID0gcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3Z0b3RhbDsKLQltb2RlLT52c3luY19zdGFy dCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192c3luY19zdGFydDsKLQlt b2RlLT52c3luY19lbmQgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5 bmNfZW5kOworCW1vZGUtPnZkaXNwbGF5ID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUu Y3J0Y192ZGlzcGxheTsKKwltb2RlLT52dG90YWwgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZS5jcnRjX3Z0b3RhbDsKKwltb2RlLT52c3luY19zdGFydCA9IHBpcGVfY29uZmlnLT5ody5h ZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfc3RhcnQ7CisJbW9kZS0+dnN5bmNfZW5kID0gcGlwZV9j b25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192c3luY19lbmQ7CiAKLQltb2RlLT5mbGFncyA9 IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3M7CisJbW9kZS0+ZmxhZ3MgPSBw aXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFnczsKIAltb2RlLT50eXBlID0gRFJNX01P REVfVFlQRV9EUklWRVI7CiAKLQltb2RlLT5jbG9jayA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGUuY3J0Y19jbG9jazsKKwltb2RlLT5jbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1 c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAKIAltb2RlLT5oc3luYyA9IGRybV9tb2RlX2hzeW5jKG1v ZGUpOwogCW1vZGUtPnZyZWZyZXNoID0gZHJtX21vZGVfdnJlZnJlc2gobW9kZSk7CkBAIC04MjU4 LDcgKzgyNTgsNyBAQCB2b2lkIGludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAogc3RhdGljIHZvaWQgaTl4eF9zZXRfcGlwZWNvbmYoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5i YXNlLmRldik7CiAJdTMyIHBpcGVjb25mOwogCkBAIC04Mjk1LDcgKzgyOTUsNyBAQCBzdGF0aWMg dm9pZCBpOXh4X3NldF9waXBlY29uZihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAkJfQogCX0KIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUu ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkgeworCWlmIChjcnRjX3N0YXRlLT5ody5h ZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKIAkJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPCA0IHx8CiAJCSAgICBpbnRlbF9jcnRjX2hhc190eXBlKGNydGNf c3RhdGUsIElOVEVMX09VVFBVVF9TRFZPKSkKIAkJCXBpcGVjb25mIHw9IFBJUEVDT05GX0lOVEVS TEFDRV9XX0ZJRUxEX0lORElDQVRJT047CkBAIC04NzI3LDcgKzg3MjcsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9nZXRfY3J0Y195Y2Jjcl9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAK IHN0YXRpYyB2b2lkIGk5eHhfZ2V0X3BpcGVfY29sb3JfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwog CWVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lID0gcGxhbmUtPmk5eHhfcGxhbmU7CkBAIC04 ODUwLDcgKzg4NTAsNyBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKIAkgKiBidXQgaW4gY2FzZSB0aGUgcGlwZSBpcyBlbmFibGVkIHcv byBhbnkgcG9ydHMgd2UgbmVlZCBhIHNhbmUKIAkgKiBkZWZhdWx0LgogCSAqLwotCXBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CisJcGlwZV9jb25maWctPmh3LmFk anVzdGVkX21vZGUuY3J0Y19jbG9jayA9CiAJCXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrIC8gcGlw ZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKIAlyZXQgPSB0cnVlOwpAQCAtOTM2NSw3ICs5 MzY1LDcgQEAgdm9pZCBpbnRlbF9pbml0X3BjaF9yZWZjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCXUzMiB2YWw7CkBAIC05Mzkz LDcgKzkzOTMsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9zZXRfcGlwZWNvbmYoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKGNydGNfc3RhdGUtPmRpdGhl cikKIAkJdmFsIHw9IChQSVBFQ09ORl9ESVRIRVJfRU4gfCBQSVBFQ09ORl9ESVRIRVJfVFlQRV9T UCk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01P REVfRkxBR19JTlRFUkxBQ0UpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxh Z3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKIAkJdmFsIHw9IFBJUEVDT05GX0lOVEVSTEFD RURfSUxLOwogCWVsc2UKIAkJdmFsIHw9IFBJUEVDT05GX1BST0dSRVNTSVZFOwpAQCAtOTQwOSw3 ICs5NDA5LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0aWMgdm9pZCBoYXN3ZWxsX3Nl dF9waXBlY29uZihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsK LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIg PSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNjb2RlcjsKIAl1MzIgdmFsID0gMDsKQEAgLTk0MTcsNyAr OTQxNyw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSAm JiBjcnRjX3N0YXRlLT5kaXRoZXIpCiAJCXZhbCB8PSAoUElQRUNPTkZfRElUSEVSX0VOIHwgUElQ RUNPTkZfRElUSEVSX1RZUEVfU1ApOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRf bW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCWlmIChjcnRjX3N0YXRlLT5o dy5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXZhbCB8 PSBQSVBFQ09ORl9JTlRFUkxBQ0VEX0lMSzsKIAllbHNlCiAJCXZhbCB8PSBQSVBFQ09ORl9QUk9H UkVTU0lWRTsKQEAgLTk0MjgsNyArOTQyOCw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0X3Bp cGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCiBzdGF0 aWMgdm9pZCBiZHdfc2V0X3BpcGVtaXNjKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXUzMiB2YWwgPSAwOwogCkBA IC05NjE0LDcgKzk2MTQsNyBAQCBzdGF0aWMgaW50IGlyb25sYWtlX2NydGNfY29tcHV0ZV9jbG9j ayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSA9Ci0JCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNl LnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUp OwogCWNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQ7CiAJaW50IHJlZmNsayA9IDEyMDAw MDsKIApAQCAtMTAwMzAsNyArMTAwMzAsNyBAQCBzdGF0aWMgaW50IGhhc3dlbGxfY3J0Y19jb21w dXRlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3Rh dGUtPmJhc2Uuc3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFw aS5zdGF0ZSk7CiAKIAlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxf T1VUUFVUX0RTSSkgfHwKIAkgICAgSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewpAQCAtMTA1 NzgsNyArMTA1NzgsNyBAQCBzdGF0aWMgaW50IGludGVsX2NoZWNrX2N1cnNvcihzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBl cl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0 YXRlLT5iYXNlLAorCQkJCQkJICAmY3J0Y19zdGF0ZS0+dWFwaSwKIAkJCQkJCSAgRFJNX1BMQU5F X0hFTFBFUl9OT19TQ0FMSU5HLAogCQkJCQkJICBEUk1fUExBTkVfSEVMUEVSX05PX1NDQUxJTkcs CiAJCQkJCQkgIHRydWUsIHRydWUpOwpAQCAtMTA3NjEsNyArMTA3NjEsNyBAQCBpOXh4X2N1cnNv cl9tYXhfc3RyaWRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCiAKIHN0YXRpYyB1MzIgaTl4 eF9jdXJzb3JfY3RsX2NydGMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3Rh dGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGNudGwgPSAwOwogCkBAIC0xMTE2 OCwxMiArMTExNjgsMTIgQEAgaW50IGludGVsX2dldF9sb2FkX2RldGVjdF9waXBlKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWdvdG8gZmFpbDsKIAl9CiAKLQljcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlID0gdHJ1ZTsKKwljcnRjX3N0 YXRlLT51YXBpLmFjdGl2ZSA9IGNydGNfc3RhdGUtPnVhcGkuZW5hYmxlID0gdHJ1ZTsKIAogCWlm ICghbW9kZSkKIAkJbW9kZSA9ICZsb2FkX2RldGVjdF9tb2RlOwogCi0JcmV0ID0gZHJtX2F0b21p Y19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+YmFzZSwgbW9kZSk7CisJcmV0ID0gZHJt X2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19zdGF0ZS0+dWFwaSwgbW9kZSk7CiAJaWYg KHJldCkKIAkJZ290byBmYWlsOwogCkBAIC0xMTM4MSw3ICsxMTM4MSw3IEBAIHN0YXRpYyB2b2lk IGlyb25sYWtlX3BjaF9jbG9ja19nZXQoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJICogd2Ug bWF5IG5lZWQgc29tZSBpZGVhIGZvciB0aGUgZG90Y2xvY2sgYW55d2F5LgogCSAqIENhbGN1bGF0 ZSBvbmUgYmFzZWQgb24gdGhlIEZESSBjb25maWd1cmF0aW9uLgogCSAqLwotCXBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CisJcGlwZV9jb25maWctPmh3LmFkanVz dGVkX21vZGUuY3J0Y19jbG9jayA9CiAJCWludGVsX2RvdGNsb2NrX2NhbGN1bGF0ZShpbnRlbF9m ZGlfbGlua19mcmVxKGRldl9wcml2LCBwaXBlX2NvbmZpZyksCiAJCQkJCSAmcGlwZV9jb25maWct PmZkaV9tX24pOwogfQpAQCAtMTE0MTEsNyArMTE0MTEsNyBAQCBpbnRlbF9lbmNvZGVyX2N1cnJl bnRfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkJcmV0dXJuIE5VTEw7CiAJ fQogCi0JY3J0Y19zdGF0ZS0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7CisJY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjID0gJmNydGMtPmJhc2U7CiAKIAlpZiAoIWRldl9wcml2LT5kaXNwbGF5LmdldF9w aXBlX2NvbmZpZyhjcnRjLCBjcnRjX3N0YXRlKSkgewogCQlrZnJlZShjcnRjX3N0YXRlKTsKQEAg LTExNDgyLDEyICsxMTQ4MiwxMiBAQCBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NhbGNfY2hhbmdl cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdAogCQkJCSAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSwKIAkJCQkgICAg c3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRj KTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3Rh dGUtPmJhc2UucGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWJvb2wgbW9kZV9jaGFuZ2VkID0gbmVlZHNfbW9kZXNl dChjcnRjX3N0YXRlKTsKLQlib29sIHdhc19jcnRjX2VuYWJsZWQgPSBvbGRfY3J0Y19zdGF0ZS0+ YmFzZS5hY3RpdmU7Ci0JYm9vbCBpc19jcnRjX2VuYWJsZWQgPSBjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZTsKKwlib29sIHdhc19jcnRjX2VuYWJsZWQgPSBvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZl OworCWJvb2wgaXNfY3J0Y19lbmFibGVkID0gY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCWJvb2wg dHVybl9vZmYsIHR1cm5fb24sIHZpc2libGUsIHdhc192aXNpYmxlOwogCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJaW50IHJldDsKQEAgLTExNjYy LDkgKzExNjYyLDkgQEAgc3RhdGljIGludCBpY2xfYWRkX2xpbmtlZF9wbGFuZXMoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIHN0YXRpYyBpbnQgaWNsX2NoZWNrX252MTJfcGxh bmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxf YXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOworCXN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGku c3RhdGUpOwogCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsICpsaW5rZWQ7CiAJc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKIAlpbnQgaTsKQEAgLTExNzM0LDkgKzExNzM0 LDkgQEAgc3RhdGljIGludCBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpCiAKIHN0YXRpYyBib29sIGM4X3BsYW5lc19jaGFuZ2VkKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRl LT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJdG9f aW50ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50 ZWxfYXRvbWljX3N0YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0 X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIApAQCAtMTE4OTcsNyArMTE4OTcsNyBAQCBj b21wdXRlX2Jhc2VsaW5lX3BpcGVfYnBwKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Ci0Jc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPmJhc2Uuc3RhdGU7CisJc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gcGlwZV9jb25maWctPnVhcGkuc3RhdGU7CiAJc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubmVjdG9yX3N0YXRlOwogCWludCBicHAsIGk7CkBAIC0xMjA1MCw3ICsxMjA1MCw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAogCQkJCSAgIGNvbnN0IGNoYXIgKmNvbnRleHQpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRj KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJh c2UuZGV2KTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwog CXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CkBAIC0xMjA1OSwxNCArMTIwNTksMTQgQEAgc3Rh dGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcsCiAKIAlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc10gZW5hYmxl OiAlcyAlc1xuIiwKIAkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBjcnRjLT5iYXNlLm5hbWUs Ci0JCSAgICAgIHllc25vKHBpcGVfY29uZmlnLT5iYXNlLmVuYWJsZSksIGNvbnRleHQpOworCQkg ICAgICB5ZXNubyhwaXBlX2NvbmZpZy0+aHcuZW5hYmxlKSwgY29udGV4dCk7CiAKLQlpZiAoIXBp cGVfY29uZmlnLT5iYXNlLmVuYWJsZSkKKwlpZiAoIXBpcGVfY29uZmlnLT5ody5lbmFibGUpCiAJ CWdvdG8gZHVtcF9wbGFuZXM7CiAKIAlzbnByaW50Zl9vdXRwdXRfdHlwZXMoYnVmLCBzaXplb2Yo YnVmKSwgcGlwZV9jb25maWctPm91dHB1dF90eXBlcyk7CiAJRFJNX0RFQlVHX0tNUygiYWN0aXZl OiAlcywgb3V0cHV0X3R5cGVzOiAlcyAoMHgleCksIG91dHB1dCBmb3JtYXQ6ICVzXG4iLAotCQkg ICAgICB5ZXNubyhwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUpLAorCQkgICAgICB5ZXNubyhwaXBl X2NvbmZpZy0+aHcuYWN0aXZlKSwKIAkJICAgICAgYnVmLCBwaXBlX2NvbmZpZy0+b3V0cHV0X3R5 cGVzLAogCQkgICAgICBvdXRwdXRfZm9ybWF0cyhwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCkp OwogCkBAIC0xMjEwNiwxMCArMTIxMDYsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBl X2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCWlu dGVsX2R1bXBfaW5mb2ZyYW1lKGRldl9wcml2LCAmcGlwZV9jb25maWctPmluZm9mcmFtZXMuaGRt aSk7CiAKIAlEUk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgbW9kZTpcbiIpOwotCWRybV9tb2RlX2Rl YnVnX3ByaW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5iYXNlLm1vZGUpOworCWRybV9tb2RlX2Rl YnVnX3ByaW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5ody5tb2RlKTsKIAlEUk1fREVCVUdfS01T KCJhZGp1c3RlZCBtb2RlOlxuIik7Ci0JZHJtX21vZGVfZGVidWdfcHJpbnRtb2RlbGluZSgmcGlw ZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSk7Ci0JaW50ZWxfZHVtcF9jcnRjX3RpbWluZ3Mo JnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUpOworCWRybV9tb2RlX2RlYnVnX3ByaW50 bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlKTsKKwlpbnRlbF9kdW1wX2Ny dGNfdGltaW5ncygmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUpOwogCURSTV9ERUJVR19L TVMoInBvcnQgY2xvY2s6ICVkLCBwaXBlIHNyYyBzaXplOiAlZHglZCwgcGl4ZWwgcmF0ZSAlZFxu IiwKIAkJICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCSAgICAgIHBpcGVfY29uZmln LT5waXBlX3NyY193LCBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCwKQEAgLTEyMjE4LDcgKzEyMjE4 LDcgQEAgc3RhdGljIGludAogY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPQotCQl0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwkJdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnNh dmVkX3N0YXRlOwogCiAJc2F2ZWRfc3RhdGUgPSBremFsbG9jKHNpemVvZigqc2F2ZWRfc3RhdGUp LCBHRlBfS0VSTkVMKTsKQEAgLTEyMjQxLDkgKzEyMjQxLDEwIEBAIGNsZWFyX2ludGVsX2NydGNf c3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCXNhdmVkX3N0YXRl LT53bSA9IGNydGNfc3RhdGUtPndtOwogCiAJLyogS2VlcCBiYXNlIGRybV9jcnRjX3N0YXRlIGlu dGFjdCwgb25seSBjbGVhciBvdXIgZXh0ZW5kZWQgc3RydWN0ICovCi0JQlVJTERfQlVHX09OKG9m ZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBiYXNlKSk7Ci0JbWVtY3B5KCZjcnRjX3N0 YXRlLT5iYXNlICsgMSwgJnNhdmVkX3N0YXRlLT5iYXNlICsgMSwKLQkgICAgICAgc2l6ZW9mKCpj cnRjX3N0YXRlKSAtIHNpemVvZihjcnRjX3N0YXRlLT5iYXNlKSk7CisJQlVJTERfQlVHX09OKG9m ZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCB1YXBpKSk7CisJQlVJTERfQlVHX09OKG9m ZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBodykpOworCW1lbWNweSgmY3J0Y19zdGF0 ZS0+dWFwaSArIDEsICZzYXZlZF9zdGF0ZS0+dWFwaSArIDEsCisJICAgICAgIHNpemVvZigqY3J0 Y19zdGF0ZSkgLSBzaXplb2YoY3J0Y19zdGF0ZS0+dWFwaSkpOwogCiAJa2ZyZWUoc2F2ZWRfc3Rh dGUpOwogCXJldHVybiAwOwpAQCAtMTIyNTIsOCArMTIyNTMsOCBAQCBjbGVhcl9pbnRlbF9jcnRj X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIGludAog aW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9j b25maWcpCiB7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gcGlwZV9jb25maWctPmJhc2UuY3J0 YzsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5z dGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+dWFwaS5jcnRjOwor CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT51YXBpLnN0YXRl OwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3I7CiAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5lY3Rvcl9zdGF0 ZTsKQEAgLTEyMjczLDEzICsxMjI3NCwxMyBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAkgKiBwb3NpdGl2ZSBvciBuZWdh dGl2ZSBwb2xhcml0eSBpcyByZXF1ZXN0ZWQsIHRyZWF0IHRoaXMgYXMgbWVhbmluZwogCSAqIG5l Z2F0aXZlIHBvbGFyaXR5LgogCSAqLwotCWlmICghKHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuZmxhZ3MgJgorCWlmICghKHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdz ICYKIAkgICAgICAoRFJNX01PREVfRkxBR19QSFNZTkMgfCBEUk1fTU9ERV9GTEFHX05IU1lOQykp KQotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZM QUdfTkhTWU5DOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1f TU9ERV9GTEFHX05IU1lOQzsKIAotCWlmICghKHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGUuZmxhZ3MgJgorCWlmICghKHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYK IAkgICAgICAoRFJNX01PREVfRkxBR19QVlNZTkMgfCBEUk1fTU9ERV9GTEFHX05WU1lOQykpKQot CQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdf TlZTWU5DOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9E RV9GTEFHX05WU1lOQzsKIAogCXJldCA9IGNvbXB1dGVfYmFzZWxpbmVfcGlwZV9icHAodG9faW50 ZWxfY3J0YyhjcnRjKSwKIAkJCQkJcGlwZV9jb25maWcpOwpAQCAtMTIyOTYsNyArMTIyOTcsNyBA QCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKIAkgKiBjb21wdXRhdGlvbiB0byBjbGVhcmx5IGRpc3Rpbmd1aXNoIGl0IGZyb20g dGhlIGFkanVzdGVkIG1vZGUsIHdoaWNoCiAJICogY2FuIGJlIGNoYW5nZWQgYnkgdGhlIGNvbm5l Y3RvcnMgaW4gdGhlIGJlbG93IHJldHJ5IGxvb3AuCiAJICovCi0JZHJtX21vZGVfZ2V0X2h2X3Rp bWluZygmcGlwZV9jb25maWctPmJhc2UubW9kZSwKKwlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKCZw aXBlX2NvbmZpZy0+aHcubW9kZSwKIAkJCSAgICAgICAmcGlwZV9jb25maWctPnBpcGVfc3JjX3cs CiAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5waXBlX3NyY19oKTsKIApAQCAtMTIzMjksNyArMTIz MzAsNyBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKIAlwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllciA9IDE7CiAKIAkv KiBGaWxsIGluIGRlZmF1bHQgY3J0YyB0aW1pbmdzLCBhbGxvdyBlbmNvZGVycyB0byBvdmVyd3Jp dGUgdGhlbS4gKi8KLQlkcm1fbW9kZV9zZXRfY3J0Y2luZm8oJnBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUsCisJZHJtX21vZGVfc2V0X2NydGNpbmZvKCZwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZSwKIAkJCSAgICAgIENSVENfU1RFUkVPX0RPVUJMRSk7CiAKIAkvKiBQYXNzIG91 ciBtb2RlIHRvIHRoZSBjb25uZWN0b3JzIGFuZCB0aGUgQ1JUQyB0byBnaXZlIHRoZW0gYSBjaGFu Y2UgdG8KQEAgLTEyMzU0LDcgKzEyMzU1LDcgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiAJLyogU2V0IGRlZmF1bHQgcG9y dCBjbG9jayBpZiBub3Qgb3ZlcndyaXR0ZW4gYnkgdGhlIGVuY29kZXIuIE5lZWRzIHRvIGJlCiAJ ICogZG9uZSBhZnRlcndhcmRzIGluIGNhc2UgdGhlIGVuY29kZXIgYWRqdXN0cyB0aGUgbW9kZS4g Ki8KIAlpZiAoIXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrKQotCQlwaXBlX2NvbmZpZy0+cG9ydF9j bG9jayA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jaworCQlwaXBl X2NvbmZpZy0+cG9ydF9jbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNf Y2xvY2sKIAkJCSogcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKIAlyZXQgPSBpbnRl bF9jcnRjX2NvbXB1dGVfY29uZmlnKHRvX2ludGVsX2NydGMoY3J0YyksIHBpcGVfY29uZmlnKTsK QEAgLTEyNTE4LDExICsxMjUxOSwxMSBAQCBpbnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjdXJyZW50X2NvbmZpZywKIAkJCSAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJICBib29sIGZhc3RzZXQpCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjdXJyZW50X2Nv bmZpZy0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3VycmVudF9jb25maWctPnVhcGkuY3J0Yy0+ZGV2KTsKIAlib29sIHJldCA9 IHRydWU7CiAJYm9vbCBmaXh1cF9pbmhlcml0ZWQgPSBmYXN0c2V0ICYmCi0JCShjdXJyZW50X2Nv bmZpZy0+YmFzZS5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQp ICYmCi0JCSEocGlwZV9jb25maWctPmJhc2UubW9kZS5wcml2YXRlX2ZsYWdzICYgSTkxNV9NT0RF X0ZMQUdfSU5IRVJJVEVEKTsKKwkJKGN1cnJlbnRfY29uZmlnLT5ody5tb2RlLnByaXZhdGVfZmxh Z3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpICYmCisJCSEocGlwZV9jb25maWctPmh3Lm1v ZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCk7CiAKIAlpZiAoZml4 dXBfaW5oZXJpdGVkICYmICFmYXN0Ym9vdF9lbmFibGVkKGRldl9wcml2KSkgewogCQlEUk1fREVC VUdfS01TKCJpbml0aWFsIG1vZGVzZXQgYW5kIGZhc3Rib290IG5vdCBzZXRcbiIpOwpAQCAtMTI2 OTMsMTkgKzEyNjk0LDE5IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCiAJUElQRV9DT05GX0NIRUNLX1go b3V0cHV0X3R5cGVzKTsKIAotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5j cnRjX2hkaXNwbGF5KTsKLQlQSVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0 Y19odG90YWwpOwotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hi bGFua19zdGFydCk7Ci0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf aGJsYW5rX2VuZCk7Ci0JUElQRV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf aHN5bmNfc3RhcnQpOwotCVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2hzeW5jX2VuZCk7CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hk aXNwbGF5KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFs KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX3N0YXJ0 KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaGJsYW5rX2VuZCk7 CisJUElQRV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0KTsK KwlQSVBFX0NPTkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfZW5kKTsKIAot CVBJUEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5KTsKLQlQ SVBFX0NPTkZfQ0hFQ0tfSShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y192dG90YWwpOwotCVBJUEVf Q09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19zdGFydCk7Ci0JUElQ RV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5rX2VuZCk7Ci0JUElQ RV9DT05GX0NIRUNLX0koYmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfc3RhcnQpOwotCVBJ UEVfQ09ORl9DSEVDS19JKGJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX2VuZCk7CisJUElQ RV9DT05GX0NIRUNLX0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5KTsKKwlQSVBFX0NP TkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsKTsKKwlQSVBFX0NPTkZfQ0hF Q0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5rX3N0YXJ0KTsKKwlQSVBFX0NPTkZfQ0hF Q0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfdmJsYW5rX2VuZCk7CisJUElQRV9DT05GX0NIRUNL X0koaHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZzeW5jX3N0YXJ0KTsKKwlQSVBFX0NPTkZfQ0hFQ0tf SShody5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5kKTsKIAogCVBJUEVfQ09ORl9DSEVDS19J KHBpeGVsX211bHRpcGxpZXIpOwogCVBJUEVfQ09ORl9DSEVDS19JKG91dHB1dF9mb3JtYXQpOwpA QCAtMTI3MjAsMTcgKzEyNzIxLDE3IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCiAJUElQRV9DT05GX0NI RUNLX0JPT0xfSU5DT01QTEVURShoYXNfYXVkaW8pOwogCi0JUElQRV9DT05GX0NIRUNLX0ZMQUdT KGJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncywKKwlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoaHcuYWRq dXN0ZWRfbW9kZS5mbGFncywKIAkJCSAgICAgIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKTsKIAog CWlmICghUElQRV9DT05GX1FVSVJLKFBJUEVfQ09ORklHX1FVSVJLX01PREVfU1lOQ19GTEFHUykp IHsKLQkJUElQRV9DT05GX0NIRUNLX0ZMQUdTKGJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncywKKwkJ UElQRV9DT05GX0NIRUNLX0ZMQUdTKGh3LmFkanVzdGVkX21vZGUuZmxhZ3MsCiAJCQkJICAgICAg RFJNX01PREVfRkxBR19QSFNZTkMpOwotCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoYmFzZS5hZGp1 c3RlZF9tb2RlLmZsYWdzLAorCQlQSVBFX0NPTkZfQ0hFQ0tfRkxBR1MoaHcuYWRqdXN0ZWRfbW9k ZS5mbGFncywKIAkJCQkgICAgICBEUk1fTU9ERV9GTEFHX05IU1lOQyk7Ci0JCVBJUEVfQ09ORl9D SEVDS19GTEFHUyhiYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MsCisJCVBJUEVfQ09ORl9DSEVDS19G TEFHUyhody5hZGp1c3RlZF9tb2RlLmZsYWdzLAogCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfUFZT WU5DKTsKLQkJUElQRV9DT05GX0NIRUNLX0ZMQUdTKGJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncywK KwkJUElQRV9DT05GX0NIRUNLX0ZMQUdTKGh3LmFkanVzdGVkX21vZGUuZmxhZ3MsCiAJCQkJICAg ICAgRFJNX01PREVfRkxBR19OVlNZTkMpOwogCX0KIApAQCAtMTI4MDksNyArMTI4MTAsNyBAQCBp bnRlbF9waXBlX2NvbmZpZ19jb21wYXJlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj dXJyZW50X2NvbmZpZywKIAlpZiAoSVNfRzRYKGRldl9wcml2KSB8fCBJTlRFTF9HRU4oZGV2X3By aXYpID49IDUpCiAJCVBJUEVfQ09ORl9DSEVDS19JKHBpcGVfYnBwKTsKIAotCVBJUEVfQ09ORl9D SEVDS19DTE9DS19GVVpaWShiYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayk7CisJUElQRV9D T05GX0NIRUNLX0NMT0NLX0ZVWlpZKGh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayk7CiAJUElQ RV9DT05GX0NIRUNLX0NMT0NLX0ZVWlpZKHBvcnRfY2xvY2spOwogCiAJUElQRV9DT05GX0NIRUNL X0kobWluX3ZvbHRhZ2VfbGV2ZWwpOwpAQCAtMTI4MzksNyArMTI4NDAsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9waXBlX2NvbmZpZ19zYW5pdHlfY2hlY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCWlmIChwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7CiAJCWludCBm ZGlfZG90Y2xvY2sgPSBpbnRlbF9kb3RjbG9ja19jYWxjdWxhdGUoaW50ZWxfZmRpX2xpbmtfZnJl cShkZXZfcHJpdiwgcGlwZV9jb25maWcpLAogCQkJCQkJCSAgICAmcGlwZV9jb25maWctPmZkaV9t X24pOwotCQlpbnQgZG90Y2xvY2sgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2s7CisJCWludCBkb3RjbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl LmNydGNfY2xvY2s7CiAKIAkJLyoKIAkJICogRkRJIGFscmVhZHkgcHJvdmlkZWQgb25lIGlkZWEg Zm9yIHRoZSBkb3RjbG9jay4KQEAgLTEyODY3LDcgKzEyODY4LDcgQEAgc3RhdGljIHZvaWQgdmVy aWZ5X3dtX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCWNvbnN0IGVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAlpbnQgcGxhbmUsIGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21f bWF4X2xldmVsKGRldl9wcml2KTsKIAotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOSB8fCAh bmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwg OSB8fCAhbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuOwogCiAJaHcgPSBremFs bG9jKHNpemVvZigqaHcpLCBHRlBfS0VSTkVMKTsKQEAgLTEzMDc2LDEyICsxMzA3NywxMiBAQCB2 ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGU7CiAJYm9vbCBhY3RpdmU7CiAKLQlzdGF0ZSA9IG9sZF9jcnRjX3N0 YXRlLT5iYXNlLnN0YXRlOwotCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRl KCZvbGRfY3J0Y19zdGF0ZS0+YmFzZSk7CisJc3RhdGUgPSBvbGRfY3J0Y19zdGF0ZS0+dWFwaS5z dGF0ZTsKKwlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZGVzdHJveV9zdGF0ZSgmb2xkX2NydGNf c3RhdGUtPnVhcGkpOwogCXBpcGVfY29uZmlnID0gb2xkX2NydGNfc3RhdGU7CiAJbWVtc2V0KHBp cGVfY29uZmlnLCAwLCBzaXplb2YoKnBpcGVfY29uZmlnKSk7Ci0JcGlwZV9jb25maWctPmJhc2Uu Y3J0YyA9ICZjcnRjLT5iYXNlOwotCXBpcGVfY29uZmlnLT5iYXNlLnN0YXRlID0gc3RhdGU7CisJ cGlwZV9jb25maWctPnVhcGkuY3J0YyA9ICZjcnRjLT5iYXNlOworCXBpcGVfY29uZmlnLT51YXBp LnN0YXRlID0gc3RhdGU7CiAKIAlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc11cbiIsIGNydGMt PmJhc2UuYmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lKTsKIApAQCAtMTMwODksMjMgKzEzMDkwLDI2 IEBAIHZlcmlmeV9jcnRjX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJLyogd2Ug a2VlcCBib3RoIHBpcGVzIGVuYWJsZWQgb24gODMwICovCiAJaWYgKElTX0k4MzAoZGV2X3ByaXYp KQotCQlhY3RpdmUgPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7CisJCWFjdGl2ZSA9IG5l d19jcnRjX3N0YXRlLT5ody5hY3RpdmU7CiAKLQlJOTE1X1NUQVRFX1dBUk4obmV3X2NydGNfc3Rh dGUtPmJhc2UuYWN0aXZlICE9IGFjdGl2ZSwKLQkgICAgICJjcnRjIGFjdGl2ZSBzdGF0ZSBkb2Vz bid0IG1hdGNoIHdpdGggaHcgc3RhdGUgIgotCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkp XG4iLCBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUsIGFjdGl2ZSk7CisJSTkxNV9TVEFURV9X QVJOKG5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgIT0gYWN0aXZlLAorCQkJImNydGMgYWN0aXZl IHN0YXRlIGRvZXNuJ3QgbWF0Y2ggd2l0aCBodyBzdGF0ZSAiCisJCQkiKGV4cGVjdGVkICVpLCBm b3VuZCAlaSlcbiIsCisJCQluZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlLCBhY3RpdmUpOwogCi0J STkxNV9TVEFURV9XQVJOKGNydGMtPmFjdGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUsCi0JICAgICAidHJhbnNpdGlvbmFsIGFjdGl2ZSBzdGF0ZSBkb2VzIG5vdCBtYXRjaCBhdG9t aWMgaHcgc3RhdGUgIgotCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBuZXdfY3J0 Y19zdGF0ZS0+YmFzZS5hY3RpdmUsIGNydGMtPmFjdGl2ZSk7CisJSTkxNV9TVEFURV9XQVJOKGNy dGMtPmFjdGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlLAorCQkJInRyYW5zaXRpb25h bCBhY3RpdmUgc3RhdGUgZG9lcyBub3QgbWF0Y2ggYXRvbWljIGh3IHN0YXRlICIKKwkJCSIoZXhw ZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwKKwkJCW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUsIGNy dGMtPmFjdGl2ZSk7CiAKIAlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCAmY3J0Yy0+YmFz ZSwgZW5jb2RlcikgewogCQllbnVtIHBpcGUgcGlwZTsKIAogCQlhY3RpdmUgPSBlbmNvZGVyLT5n ZXRfaHdfc3RhdGUoZW5jb2RlciwgJnBpcGUpOwotCQlJOTE1X1NUQVRFX1dBUk4oYWN0aXZlICE9 IG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSwKLQkJCSJbRU5DT0RFUjolaV0gYWN0aXZlICVp IHdpdGggY3J0YyBhY3RpdmUgJWlcbiIsCi0JCQllbmNvZGVyLT5iYXNlLmJhc2UuaWQsIGFjdGl2 ZSwgbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKTsKKwkJSTkxNV9TVEFURV9XQVJOKGFjdGl2 ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlLAorCQkJCSJbRU5DT0RFUjolaV0gYWN0aXZl ICVpIHdpdGggY3J0YyBhY3RpdmUgJWlcbiIsCisJCQkJZW5jb2Rlci0+YmFzZS5iYXNlLmlkLCBh Y3RpdmUsCisJCQkJbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSk7CiAKIAkJSTkxNV9TVEFURV9X QVJOKGFjdGl2ZSAmJiBjcnRjLT5waXBlICE9IHBpcGUsCiAJCQkJIkVuY29kZXIgY29ubmVjdGVk IHRvIHdyb25nIHBpcGUgJWNcbiIsCkBAIC0xMzExNyw3ICsxMzEyMSw3IEBAIHZlcmlmeV9jcnRj X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJaW50ZWxfY3J0Y19jb21wdXRlX3Bp eGVsX3JhdGUocGlwZV9jb25maWcpOwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUpCisJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm47CiAKIAlpbnRl bF9waXBlX2NvbmZpZ19zYW5pdHlfY2hlY2soZGV2X3ByaXYsIHBpcGVfY29uZmlnKTsKQEAgLTEz MTc5LDcgKzEzMTgzLDcgQEAgdmVyaWZ5X3NpbmdsZV9kcGxsX3N0YXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAogCWNydGNfbWFzayA9IGRybV9jcnRjX21hc2soJmNydGMt PmJhc2UpOwogCi0JaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAobmV3X2Ny dGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJSTkxNV9TVEFURV9XQVJOKCEocGxsLT5hY3RpdmVfbWFz ayAmIGNydGNfbWFzayksCiAJCQkJInBsbCBhY3RpdmUgbWlzbWF0Y2ggKGV4cGVjdGVkIHBpcGUg JWMgaW4gYWN0aXZlIG1hc2sgMHglMDJ4KVxuIiwKIAkJCQlwaXBlX25hbWUoZHJtX2NydGNfaW5k ZXgoJmNydGMtPmJhc2UpKSwgcGxsLT5hY3RpdmVfbWFzayk7CkBAIC0xMzI1Nyw3ICsxMzI2MSw3 IEBAIGludGVsX21vZGVzZXRfdmVyaWZ5X2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgdXBkYXRlX3NjYW5saW5lX29mZnNldChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2Uu ZGV2KTsKIAogCS8qCkBAIC0xMzI4OCw3ICsxMzI5Miw3IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZV9z Y2FubGluZV9vZmZzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiAJICogYW5zd2VyIHRoYXQncyBzbGlnaHRseSBpbiB0aGUgZnV0dXJlLgogCSAqLwogCWlmIChJ U19HRU4oZGV2X3ByaXYsIDIpKSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZTsKIAkJaW50IHZ0b3RhbDsKIAogCQl2dG90YWwgPSBhZGp1c3RlZF9tb2Rl LT5jcnRjX3Z0b3RhbDsKQEAgLTEzMzM4LDcgKzEzMzQyLDcgQEAgc3RhdGljIGludCBoYXN3ZWxs X21vZGVfc2V0X3BsYW5lc193b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlKQogCiAJLyogbG9vayBhdCBhbGwgY3J0YydzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGVuYWJs ZWQgaW4gZHVyaW5nIG1vZGVzZXQgKi8KIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0 ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2Uu YWN0aXZlIHx8CisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CiAJCSAgICAhbmVlZHNf bW9kZXNldChjcnRjX3N0YXRlKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzM2Myw3ICsxMzM2Nyw3 IEBAIHN0YXRpYyBpbnQgaGFzd2VsbF9tb2RlX3NldF9wbGFuZXNfd29ya2Fyb3VuZChzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCQljcnRjX3N0YXRlLT5oc3dfd29ya2Fyb3Vu ZF9waXBlID0gSU5WQUxJRF9QSVBFOwogCi0JCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUg fHwKKwkJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwKIAkJICAgIG5lZWRzX21vZGVzZXQo Y3J0Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIApAQCAtMTM0MTYsMTAgKzEzNDIwLDEwIEBAIHN0 YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpCiAJCQlyZXR1cm4gUFRSX0VSUihj cnRjX3N0YXRlKTsKIAotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8IG5lZWRzX21v ZGVzZXQoY3J0Y19zdGF0ZSkpCisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8IG5lZWRz X21vZGVzZXQoY3J0Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIAotCQljcnRjX3N0YXRlLT5iYXNl Lm1vZGVfY2hhbmdlZCA9IHRydWU7CisJCWNydGNfc3RhdGUtPnVhcGkubW9kZV9jaGFuZ2VkID0g dHJ1ZTsKIAogCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKCZzdGF0 ZS0+YmFzZSwKIAkJCQkJCQkgJmNydGMtPmJhc2UpOwpAQCAtMTM0NTksMTIgKzEzNDYzLDEyIEBA IHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAKIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwg Y3J0Yywgb2xkX2NydGNfc3RhdGUsCiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlp ZiAobmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3 LmFjdGl2ZSkKIAkJCXN0YXRlLT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBpOwogCQllbHNlCiAJCQlz dGF0ZS0+YWN0aXZlX2NydGNzICY9IH4oMSA8PCBpKTsKIAotCQlpZiAob2xkX2NydGNfc3RhdGUt PmJhc2UuYWN0aXZlICE9IG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwkJaWYgKG9sZF9j cnRjX3N0YXRlLT5ody5hY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCXN0 YXRlLT5hY3RpdmVfcGlwZV9jaGFuZ2VzIHw9IGRybV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwog CX0KIApAQCAtMTM1NjUsNyArMTM1NjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2NoZWNr X2Zhc3RzZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YQogCWlm ICghaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3Rh dGUsIHRydWUpKQogCQlyZXR1cm47CiAKLQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlX2NoYW5n ZWQgPSBmYWxzZTsKKwluZXdfY3J0Y19zdGF0ZS0+dWFwaS5tb2RlX2NoYW5nZWQgPSBmYWxzZTsK IAluZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUgPSB0cnVlOwogCiAJLyoKQEAgLTEzNjAwLDkg KzEzNjA0LDkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkvKiBDYXRjaCBJOTE1X01PREVfRkxBR19JTkhFUklURUQgKi8KIAlmb3JfZWFj aF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUs CiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAobmV3X2NydGNfc3RhdGUtPmJh c2UubW9kZS5wcml2YXRlX2ZsYWdzICE9Ci0JCSAgICBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5tb2Rl LnByaXZhdGVfZmxhZ3MpCi0JCQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5tb2RlX2NoYW5nZWQgPSB0 cnVlOworCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAhPQorCQkg ICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncykKKwkJCW5ld19jcnRjX3N0 YXRlLT51YXBpLm1vZGVfY2hhbmdlZCA9IHRydWU7CiAJfQogCiAJcmV0ID0gZHJtX2F0b21pY19o ZWxwZXJfY2hlY2tfbW9kZXNldChkZXYsICZzdGF0ZS0+YmFzZSk7CkBAIC0xMzYxNCw3ICsxMzYx OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCWlmICghbmVlZHNfbW9kZXNldChuZXdfY3J0Y19zdGF0ZSkpCiAJCQljb250aW51ZTsK IAotCQlpZiAoIW5ld19jcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkgeworCQlpZiAoIW5ld19jcnRj X3N0YXRlLT51YXBpLmVuYWJsZSkgewogCQkJYW55X21zID0gdHJ1ZTsKIAkJCWNvbnRpbnVlOwog CQl9CkBAIC0xMzc1MCw3ICsxMzc1NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9jcnRj cyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlpbnQgaTsKIAogCWZvcl9lYWNo X29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwg bmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUp CisJCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCWNvbnRpbnVlOwogCiAJCWlu dGVsX3VwZGF0ZV9jcnRjKGNydGMsIHN0YXRlLCBvbGRfY3J0Y19zdGF0ZSwKQEAgLTEzNzczLDcg KzEzNzc3LDcgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKIAogCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRl KHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3RhdGUsIGkpCiAJCS8qIGln bm9yZSBhbGxvY2F0aW9ucyBmb3IgY3J0YydzIHRoYXQgaGF2ZSBiZWVuIHR1cm5lZCBvZmYuICov Ci0JCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChuZXdfY3J0Y19zdGF0 ZS0+aHcuYWN0aXZlKQogCQkJZW50cmllc1tpXSA9IG9sZF9jcnRjX3N0YXRlLT53bS5za2wuZGRi OwogCiAJLyogSWYgMm5kIERCdWYgc2xpY2UgcmVxdWlyZWQsIGVuYWJsZSBpdCBoZXJlICovCkBA IC0xMzc5NSw3ICsxMzc5OSw3IEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfY3J0Y3Moc3RydWN0 IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJCXBpcGUgPSBjcnRjLT5waXBlOwogCi0J CQlpZiAodXBkYXRlZCAmIGNtYXNrIHx8ICFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJ CQlpZiAodXBkYXRlZCAmIGNtYXNrIHx8ICFuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQkJ CWNvbnRpbnVlOwogCiAJCQlpZiAoc2tsX2RkYl9hbGxvY2F0aW9uX292ZXJsYXBzKCZuZXdfY3J0 Y19zdGF0ZS0+d20uc2tsLmRkYiwKQEAgLTEzODE0LDcgKzEzODE4LDcgQEAgc3RhdGljIHZvaWQg c2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJCSAq LwogCQkJaWYgKCFza2xfZGRiX2VudHJ5X2VxdWFsKCZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLmRk YiwKIAkJCQkJCSAmb2xkX2NydGNfc3RhdGUtPndtLnNrbC5kZGIpICYmCi0JCQkgICAgIW5ld19j cnRjX3N0YXRlLT5iYXNlLmFjdGl2ZV9jaGFuZ2VkICYmCisJCQkgICAgIW5ld19jcnRjX3N0YXRl LT51YXBpLmFjdGl2ZV9jaGFuZ2VkICYmCiAJCQkgICAgc3RhdGUtPndtX3Jlc3VsdHMuZGlydHlf cGlwZXMgIT0gdXBkYXRlZCkKIAkJCQl2Ymxfd2FpdCA9IHRydWU7CiAKQEAgLTEzOTIxLDcgKzEz OTI1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJCWludGVsX3ByZV9wbGFuZV91cGRhdGUob2xkX2Ny dGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlKTsKIAotCQlpZiAob2xkX2NydGNfc3RhdGUtPmJhc2Uu YWN0aXZlKSB7CisJCWlmIChvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQlpbnRlbF9j cnRjX2Rpc2FibGVfcGxhbmVzKHN0YXRlLCBjcnRjKTsKIAogCQkJLyoKQEAgLTEzOTQzLDcgKzEz OTQ3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJaW50ZWxfY2hlY2tfcGNoX2ZpZm9fdW5kZXJydW5z KGRldl9wcml2KTsKIAogCQkJLyogRklYTUUgdW5pZnkgdGhpcyBmb3IgYWxsIHBsYXRmb3JtcyAq LwotCQkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYKKwkJCWlmICghbmV3X2Ny dGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgogCQkJICAgICFIQVNfR01DSChkZXZfcHJpdikgJiYKIAkJ CSAgICBkZXZfcHJpdi0+ZGlzcGxheS5pbml0aWFsX3dhdGVybWFya3MpCiAJCQkJZGV2X3ByaXYt PmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKHN0YXRlLApAQCAtMTM5NzgsMTIgKzEzOTgyLDEz IEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKIAkJYm9vbCBtb2Rlc2V0ID0gbmVlZHNfbW9kZXNldChuZXdfY3J0 Y19zdGF0ZSk7CiAKIAkJLyogQ29tcGxldGUgZXZlbnRzIGZvciBub3cgZGlzYWJsZSBwaXBlcyBo ZXJlLiAqLwotCQlpZiAobW9kZXNldCAmJiAhbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYm IG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KSB7CisJCWlmIChtb2Rlc2V0ICYmICFuZXdfY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlICYmIG5ld19jcnRjX3N0YXRlLT51YXBpLmV2ZW50KSB7CiAJCQlz cGluX2xvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwotCQkJZHJtX2NydGNfc2VuZF92Ymxhbmtf ZXZlbnQoJmNydGMtPmJhc2UsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmV2ZW50KTsKKwkJCWRybV9j cnRjX3NlbmRfdmJsYW5rX2V2ZW50KCZjcnRjLT5iYXNlLAorCQkJCQkJICAgbmV3X2NydGNfc3Rh dGUtPnVhcGkuZXZlbnQpOwogCQkJc3Bpbl91bmxvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwog Ci0JCQluZXdfY3J0Y19zdGF0ZS0+YmFzZS5ldmVudCA9IE5VTEw7CisJCQluZXdfY3J0Y19zdGF0 ZS0+dWFwaS5ldmVudCA9IE5VTEw7CiAJCX0KIAl9CiAKQEAgLTE0MDE0LDkgKzE0MDE5LDkgQEAg c3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQogCWRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZsaXBfZG9uZShkZXYs ICZzdGF0ZS0+YmFzZSk7CiAKIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0 ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNl LmFjdGl2ZSAmJgorCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgogCQkgICAgIW5l ZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpICYmCi0JCSAgICAobmV3X2NydGNfc3RhdGUtPmJh c2UuY29sb3JfbWdtdF9jaGFuZ2VkIHx8CisJCSAgICAobmV3X2NydGNfc3RhdGUtPnVhcGkuY29s b3JfbWdtdF9jaGFuZ2VkIHx8CiAJCSAgICAgbmV3X2NydGNfc3RhdGUtPnVwZGF0ZV9waXBlKSkK IAkJCWludGVsX2NvbG9yX2xvYWRfbHV0cyhuZXdfY3J0Y19zdGF0ZSk7CiAJfQpAQCAtMTQ0NzEs MTYgKzE0NDc2LDE2IEBAIGludAogc2tsX21heF9zY2FsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkgICAgICB1MzIgcGl4ZWxfZm9ybWF0KQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51 YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+YmFzZS5kZXYpOwogCWludCBtYXhfc2NhbGUsIG11bHQ7CiAJaW50IGNydGNfY2xvY2ss IG1heF9kb3RjbGssIHRtcGNsazEsIHRtcGNsazI7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2Uu ZW5hYmxlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxlKQogCQlyZXR1cm4gRFJNX1BMQU5F X0hFTFBFUl9OT19TQ0FMSU5HOwogCi0JY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwotCW1heF9kb3RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3Rh dGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSktPmNkY2xrLmxvZ2ljYWwuY2RjbGs7CisJY3J0Y19j bG9jayA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwltYXhfZG90 Y2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpLT5jZGNs ay5sb2dpY2FsLmNkY2xrOwogCiAJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTApCiAJCW1heF9kb3RjbGsgKj0gMjsKQEAgLTE0NTE4LDcgKzE0 NTIzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJaWYgKG1vZGVzZXQpCiAJCWdvdG8gb3V0OwogCi0JaWYg KG5ld19jcnRjX3N0YXRlLT5iYXNlLmNvbG9yX21nbXRfY2hhbmdlZCB8fAorCWlmIChuZXdfY3J0 Y19zdGF0ZS0+dWFwaS5jb2xvcl9tZ210X2NoYW5nZWQgfHwKIAkgICAgbmV3X2NydGNfc3RhdGUt PnVwZGF0ZV9waXBlKQogCQlpbnRlbF9jb2xvcl9jb21taXQobmV3X2NydGNfc3RhdGUpOwogCkBA IC0xNDU2NCw3ICsxNDU2OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZpbmlzaF9jcnRjX2NvbW1p dChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAogCWlmIChuZXdfY3J0Y19zdGF0 ZS0+dXBkYXRlX3BpcGUgJiYKIAkgICAgIW5lZWRzX21vZGVzZXQobmV3X2NydGNfc3RhdGUpICYm Ci0JICAgIG9sZF9jcnRjX3N0YXRlLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9E RV9GTEFHX0lOSEVSSVRFRCkKKwkgICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9m bGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKIAkJaW50ZWxfY3J0Y19hcm1fZmlmb191 bmRlcnJ1bihjcnRjLCBuZXdfY3J0Y19zdGF0ZSk7CiB9CiAKQEAgLTE0Njc2LDcgKzE0NjgxLDcg QEAgaW50ZWxfbGVnYWN5X2N1cnNvcl91cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ ICogV2hlbiBjcnRjIGlzIGluYWN0aXZlIG9yIHRoZXJlIGlzIGEgbW9kZXNldCBwZW5kaW5nLAog CSAqIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlIGluIHRoZSBzbG93cGF0aAogCSAqLwotCWlmICgh Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwgbmVlZHNfbW9kZXNldChjcnRjX3N0YXRlKSB8fAor CWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkg fHwKIAkgICAgY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUpCiAJCWdvdG8gc2xvdzsKIApAQCAtMTQ3 NzAsNyArMTQ3NzUsNyBAQCBpbnRlbF9sZWdhY3lfY3Vyc29yX3VwZGF0ZShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsK IG91dF9mcmVlOgogCWlmIChuZXdfY3J0Y19zdGF0ZSkKLQkJaW50ZWxfY3J0Y19kZXN0cm95X3N0 YXRlKGNydGMsICZuZXdfY3J0Y19zdGF0ZS0+YmFzZSk7CisJCWludGVsX2NydGNfZGVzdHJveV9z dGF0ZShjcnRjLCAmbmV3X2NydGNfc3RhdGUtPnVhcGkpOwogCWlmIChyZXQpCiAJCWludGVsX3Bs YW5lX2Rlc3Ryb3lfc3RhdGUocGxhbmUsIG5ld19wbGFuZV9zdGF0ZSk7CiAJZWxzZQpAQCAtMTUw OTAsNyArMTUwOTUsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfaW5pdChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQogCQlyZXQgPSAtRU5PTUVNOwog CQlnb3RvIGZhaWw7CiAJfQotCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgmaW50ZWxf Y3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPmJhc2UpOworCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0 Y19yZXNldCgmaW50ZWxfY3J0Yy0+YmFzZSwgJmNydGNfc3RhdGUtPnVhcGkpOwogCWludGVsX2Ny dGMtPmNvbmZpZyA9IGNydGNfc3RhdGU7CiAKIAlwcmltYXJ5ID0gaW50ZWxfcHJpbWFyeV9wbGFu ZV9jcmVhdGUoZGV2X3ByaXYsIHBpcGUpOwpAQCAtMTY0MjAsNyArMTY0MjUsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJICAg STkxNV9SRUFEKHJlZykgJiB+UElQRUNPTkZfRlJBTUVfU1RBUlRfREVMQVlfTUFTSyk7CiAJfQog Ci0JaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7CisJaWYgKGNydGNfc3RhdGUtPmh3LmFj dGl2ZSkgewogCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCiAJCS8qIERpc2FibGUgZXZl cnl0aGluZyBidXQgdGhlIHByaW1hcnkgcGxhbmUgKi8KQEAgLTE2NDQ1LDEwICsxNjQ1MCwxMCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9zYW5pdGl6ZV9jcnRjKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LAogCiAJLyogQWRqdXN0IHRoZSBzdGF0ZSBvZiB0aGUgb3V0cHV0IHBpcGUgYWNjb3JkaW5nIHRv IHdoZXRoZXIgd2UKIAkgKiBoYXZlIGFjdGl2ZSBjb25uZWN0b3JzL2VuY29kZXJzLiAqLwotCWlm IChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJiAhaW50ZWxfY3J0Y19oYXNfZW5jb2RlcnMoY3J0 YykpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJiAhaW50ZWxfY3J0Y19oYXNfZW5jb2Rl cnMoY3J0YykpCiAJCWludGVsX2NydGNfZGlzYWJsZV9ub2F0b21pYygmY3J0Yy0+YmFzZSwgY3R4 KTsKIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCBIQVNfR01DSChkZXZfcHJpdikp IHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8IEhBU19HTUNIKGRldl9wcml2KSkgewog CQkvKgogCQkgKiBXZSBzdGFydCBvdXQgd2l0aCB1bmRlcnJ1biByZXBvcnRpbmcgZGlzYWJsZWQg dG8gYXZvaWQgcmFjZXMuCiAJCSAqIEZvciBjb3JyZWN0IGJvb2trZWVwaW5nIG1hcmsgdGhpcyBv biBhY3RpdmUgY3J0Y3MuCkBAIC0xNjQ3OSw3ICsxNjQ4NCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAKIHN0YXRpYyBib29sIGhh c19ib2d1c19kcGxsX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCS8qCiAJICog U29tZSBTTkIgQklPU2VuIChlZy4gQVNVUyBLNTNTVikgYXJlIGtub3duIHRvIG1pc3Byb2dyYW0K QEAgLTE2NDkyLDcgKzE2NDk3LDcgQEAgc3RhdGljIGJvb2wgaGFzX2JvZ3VzX2RwbGxfY29uZmln KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCSAqIHJvYWQuCiAJ ICovCiAJcmV0dXJuIElTX0dFTihkZXZfcHJpdiwgNikgJiYKLQkJY3J0Y19zdGF0ZS0+YmFzZS5h Y3RpdmUgJiYKKwkJY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICYmCiAJCWNydGNfc3RhdGUtPnNoYXJl ZF9kcGxsICYmCiAJCWNydGNfc3RhdGUtPnBvcnRfY2xvY2sgPT0gMDsKIH0KQEAgLTE2NTA5LDcg KzE2NTE0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfZW5jb2RlcihzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcikKIAkgKiBlbmNvZGVyIGlzIGFjdGl2ZSBhbmQgdHJ5aW5nIHRv IHJlYWQgZnJvbSBhIHBpcGUpIGFuZCB0aGUKIAkgKiBwaXBlIGl0c2VsZiBiZWluZyBhY3RpdmUu ICovCiAJYm9vbCBoYXNfYWN0aXZlX2NydGMgPSBjcnRjX3N0YXRlICYmCi0JCWNydGNfc3RhdGUt PmJhc2UuYWN0aXZlOworCQljcnRjX3N0YXRlLT5ody5hY3RpdmU7CiAKIAlpZiAoY3J0Y19zdGF0 ZSAmJiBoYXNfYm9ndXNfZHBsbF9jb25maWcoY3J0Y19zdGF0ZSkpIHsKIAkJRFJNX0RFQlVHX0tN UygiQklPUyBoYXMgbWlzcHJvZ3JhbW1lZCB0aGUgaGFyZHdhcmUuIERpc2FibGluZyBwaXBlICVj XG4iLApAQCAtMTY2NDYsMjIgKzE2NjUxLDIyIEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRf cmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CiAJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJh c2Uuc3RhdGUpOwogCi0JCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZj cnRjX3N0YXRlLT5iYXNlKTsKKwkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2Rlc3Ryb3lfc3Rh dGUoJmNydGNfc3RhdGUtPnVhcGkpOwogCQltZW1zZXQoY3J0Y19zdGF0ZSwgMCwgc2l6ZW9mKCpj cnRjX3N0YXRlKSk7Ci0JCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19yZXNldCgmY3J0Yy0+YmFz ZSwgJmNydGNfc3RhdGUtPmJhc2UpOworCQlfX2RybV9hdG9taWNfaGVscGVyX2NydGNfcmVzZXQo JmNydGMtPmJhc2UsICZjcnRjX3N0YXRlLT51YXBpKTsKIAotCQljcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlID0KKwkJY3J0Y19zdGF0ZS0+aHcuYWN0aXZl ID0gY3J0Y19zdGF0ZS0+aHcuZW5hYmxlID0KIAkJCWRldl9wcml2LT5kaXNwbGF5LmdldF9waXBl X2NvbmZpZyhjcnRjLCBjcnRjX3N0YXRlKTsKIAotCQljcnRjLT5iYXNlLmVuYWJsZWQgPSBjcnRj X3N0YXRlLT5iYXNlLmVuYWJsZTsKLQkJY3J0Yy0+YWN0aXZlID0gY3J0Y19zdGF0ZS0+YmFzZS5h Y3RpdmU7CisJCWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGNfc3RhdGUtPmh3LmVuYWJsZTsKKwkJ Y3J0Yy0+YWN0aXZlID0gY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCi0JCWlmIChjcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZSkKKwkJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJCWRldl9wcml2 LT5hY3RpdmVfY3J0Y3MgfD0gMSA8PCBjcnRjLT5waXBlOwogCiAJCURSTV9ERUJVR19LTVMoIltD UlRDOiVkOiVzXSBodyBzdGF0ZSByZWFkb3V0OiAlc1xuIiwKIAkJCSAgICAgIGNydGMtPmJhc2Uu YmFzZS5pZCwgY3J0Yy0+YmFzZS5uYW1lLAotCQkJICAgICAgZW5hYmxlZGRpc2FibGVkKGNydGNf c3RhdGUtPmJhc2UuYWN0aXZlKSk7CisJCQkgICAgICBlbmFibGVkZGlzYWJsZWQoY3J0Y19zdGF0 ZS0+aHcuYWN0aXZlKSk7CiAJfQogCiAJcmVhZG91dF9wbGFuZV9zdGF0ZShkZXZfcHJpdik7CkBA IC0xNjY4Myw3ICsxNjY4OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUgPQogCQkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0 ZSk7CiAKLQkJCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJgorCQkJaWYgKGNydGNfc3Rh dGUtPmh3LmFjdGl2ZSAmJgogCQkJICAgIGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsID09IHBsbCkK IAkJCQlwbGwtPnN0YXRlLmNydGNfbWFzayB8PSAxIDw8IGNydGMtPnBpcGU7CiAJCX0KQEAgLTE2 NzE3LDIxICsxNjcyMiwyNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdf c3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlkcm1fY29ubmVjdG9yX2xpc3RfaXRlcl9i ZWdpbihkZXYsICZjb25uX2l0ZXIpOwogCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3Rvcl9pdGVyKGNv bm5lY3RvciwgJmNvbm5faXRlcikgewogCQlpZiAoY29ubmVjdG9yLT5nZXRfaHdfc3RhdGUoY29u bmVjdG9yKSkgewotCQkJY29ubmVjdG9yLT5iYXNlLmRwbXMgPSBEUk1fTU9ERV9EUE1TX09OOwor CQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSBOVUxMOwogCisJCQljb25u ZWN0b3ItPmJhc2UuZHBtcyA9IERSTV9NT0RFX0RQTVNfT047CiAJCQllbmNvZGVyID0gY29ubmVj dG9yLT5lbmNvZGVyOwogCQkJY29ubmVjdG9yLT5iYXNlLmVuY29kZXIgPSAmZW5jb2Rlci0+YmFz ZTsKIAotCQkJaWYgKGVuY29kZXItPmJhc2UuY3J0YyAmJgotCQkJICAgIGVuY29kZXItPmJhc2Uu Y3J0Yy0+c3RhdGUtPmFjdGl2ZSkgeworCQkJaWYgKGVuY29kZXItPmJhc2UuY3J0YykKKwkJCQlj cnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShlbmNvZGVyLT5iYXNlLmNydGMtPnN0YXRl KTsKKworCQkJaWYgKGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQkJ LyoKIAkJCQkgKiBUaGlzIGhhcyB0byBiZSBkb25lIGR1cmluZyBoYXJkd2FyZSByZWFkb3V0CiAJ CQkJICogYmVjYXVzZSBhbnl0aGluZyBjYWxsaW5nIC5jcnRjX2Rpc2FibGUgbWF5CiAJCQkJICog cmVseSBvbiB0aGUgY29ubmVjdG9yX21hc2sgYmVpbmcgYWNjdXJhdGUuCiAJCQkJICovCi0JCQkJ ZW5jb2Rlci0+YmFzZS5jcnRjLT5zdGF0ZS0+Y29ubmVjdG9yX21hc2sgfD0KKwkJCQljcnRjX3N0 YXRlLT51YXBpLmNvbm5lY3Rvcl9tYXNrIHw9CiAJCQkJCWRybV9jb25uZWN0b3JfbWFzaygmY29u bmVjdG9yLT5iYXNlKTsKLQkJCQllbmNvZGVyLT5iYXNlLmNydGMtPnN0YXRlLT5lbmNvZGVyX21h c2sgfD0KKwkJCQljcnRjX3N0YXRlLT51YXBpLmVuY29kZXJfbWFzayB8PQogCQkJCQlkcm1fZW5j b2Rlcl9tYXNrKCZlbmNvZGVyLT5iYXNlKTsKIAkJCX0KIApAQCAtMTY3NTQsMTEgKzE2NzYyLDEy IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQlpbnQgbWluX2NkY2xrID0gMDsKIAogCQltZW1zZXQoJmNydGMtPmJh c2UubW9kZSwgMCwgc2l6ZW9mKGNydGMtPmJhc2UubW9kZSkpOwotCQlpZiAoY3J0Y19zdGF0ZS0+ YmFzZS5hY3RpdmUpIHsKKwkJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewogCQkJaW50ZWxf bW9kZV9mcm9tX3BpcGVfY29uZmlnKCZjcnRjLT5iYXNlLm1vZGUsIGNydGNfc3RhdGUpOwogCQkJ Y3J0Yy0+YmFzZS5tb2RlLmhkaXNwbGF5ID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdzsKIAkJCWNy dGMtPmJhc2UubW9kZS52ZGlzcGxheSA9IGNydGNfc3RhdGUtPnBpcGVfc3JjX2g7Ci0JCQlpbnRl bF9tb2RlX2Zyb21fcGlwZV9jb25maWcoJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSwg Y3J0Y19zdGF0ZSk7CisJCQlpbnRlbF9tb2RlX2Zyb21fcGlwZV9jb25maWcoJmNydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGUsCisJCQkJCQkgICAgY3J0Y19zdGF0ZSk7CiAJCQlXQVJOX09OKGRy bV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Yy0+YmFzZS5zdGF0ZSwgJmNydGMtPmJhc2Uu bW9kZSkpOwogCiAJCQkvKgpAQCAtMTY3NzAsNyArMTY3NzksNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAq IHNldCBhIGZsYWcgdG8gaW5kaWNhdGUgdGhhdCBhIGZ1bGwgcmVjYWxjdWxhdGlvbiBpcwogCQkJ ICogbmVlZGVkIG9uIHRoZSBuZXh0IGNvbW1pdC4KIAkJCSAqLwotCQkJY3J0Y19zdGF0ZS0+YmFz ZS5tb2RlLnByaXZhdGVfZmxhZ3MgPSBJOTE1X01PREVfRkxBR19JTkhFUklURUQ7CisJCQljcnRj X3N0YXRlLT5ody5tb2RlLnByaXZhdGVfZmxhZ3MgPSBJOTE1X01PREVfRkxBR19JTkhFUklURUQ7 CiAKIAkJCWludGVsX2NydGNfY29tcHV0ZV9waXhlbF9yYXRlKGNydGNfc3RhdGUpOwogCkBAIC0x Njc4MSw3ICsxNjc5MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJfQogCiAJCQlkcm1fY2FsY190aW1lc3Rh bXBpbmdfY29uc3RhbnRzKCZjcnRjLT5iYXNlLAotCQkJCQkJCSZjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGUpOworCQkJCQkJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlKTsKIAkJ CXVwZGF0ZV9zY2FubGluZV9vZmZzZXQoY3J0Y19zdGF0ZSk7CiAJCX0KIApAQCAtMTY5NTIsNyAr MTY5NjEsNyBAQCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAKIAkJZHJtX2NydGNfdmJsYW5rX3Jlc2V0KCZjcnRjLT5iYXNlKTsKIAotCQlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJCWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJ CQlpbnRlbF9jcnRjX3ZibGFua19vbihjcnRjX3N0YXRlKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKaW5kZXggNDQ5YWJh ZWE2MTlmLi41NTFlYzRiZTUxZDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCkBAIC03NDIsNyArNzQyLDMxIEBAIGVudW0gaW50 ZWxfb3V0cHV0X2Zvcm1hdCB7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSB7Ci0Jc3Ry dWN0IGRybV9jcnRjX3N0YXRlIGJhc2U7CisJdW5pb24geworCS8qCisJICogdWFwaSAoZHJtKSBz dGF0ZS4gVGhpcyBpcyB0aGUgc29mdHdhcmUgc3RhdGUgc2hvd24gdG8gdXNlcnNwYWNlLgorCSAq IEluIHBhcnRpY3VsYXIsIHRoZSBmb2xsb3dpbmcgbWVtYmVycyBhcmUgdXNlZCBmb3IgYm9va2tl ZXBpbmc6CisJICogLSBjcnRjCisJICogLSBzdGF0ZQorCSAqIC0gKl9jaGFuZ2VkCisJICogLSBl dmVudAorCSAqIC0gY29tbWl0CisJICogLSBtb2RlX2Jsb2IKKwkgKi8KKwlzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgdWFwaTsKKworCS8qCisJICogYWN0dWFsIGhhcmR3YXJlIHN0YXRlLCB0aGUgc3Rh dGUgd2UgcHJvZ3JhbSB0byB0aGUgaGFyZHdhcmUuCisJICogVGhlIGZvbGxvd2luZyBtZW1iZXJz IGFyZSB1c2VkIHRvIHZlcmlmeSB0aGUgaGFyZHdhcmUgc3RhdGU6CisJICogLSBlbmFibGUKKwkg KiAtIGFjdGl2ZQorCSAqIC0gbW9kZSAvIGFkanVzdGVkX21vZGUKKwkgKiAtIGNvbG9yIHByb3Bl cnR5IGJsb2JzLgorCSAqCisJICogRHVyaW5nIGluaXRpYWwgaHcgcmVhZG91dCwgdGhleSBuZWVk IHRvIGJlIGNvcGllZCB0byB1YXBpLgorCSAqLworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSBodzsK Kwl9OwogCiAJLyoqCiAJICogcXVpcmtzIC0gYml0ZmllbGQgd2l0aCBodyBzdGF0ZSByZWFkb3V0 IHF1aXJrcwpAQCAtMTA4NCw3ICsxMTA4LDcgQEAgc3RydWN0IGN4c3JfbGF0ZW5jeSB7CiAKICNk ZWZpbmUgdG9faW50ZWxfYXRvbWljX3N0YXRlKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlLCBiYXNlKQogI2RlZmluZSB0b19pbnRlbF9jcnRjKHgpIGNvbnRhaW5l cl9vZih4LCBzdHJ1Y3QgaW50ZWxfY3J0YywgYmFzZSkKLSNkZWZpbmUgdG9faW50ZWxfY3J0Y19z dGF0ZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpCisj ZGVmaW5lIHRvX2ludGVsX2NydGNfc3RhdGUoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlLCB1YXBpKQogI2RlZmluZSB0b19pbnRlbF9jb25uZWN0b3IoeCkgY29udGFp bmVyX29mKHgsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIGJhc2UpCiAjZGVmaW5lIHRvX2ludGVs X2VuY29kZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9lbmNvZGVyLCBiYXNlKQog I2RlZmluZSB0b19pbnRlbF9mcmFtZWJ1ZmZlcih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGlu dGVsX2ZyYW1lYnVmZmVyLCBiYXNlKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cC5jCmluZGV4IDYxNGEyNTkxMWYwNy4uYjEyMjA2NmUwODNjIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kcC5jCkBAIC0xODUwLDcgKzE4NTAsNyBAQCBpbnRlbF9kcF9jb21w dXRlX2xpbmtfY29uZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCQkgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCQkgIGNvbnN0IHN0cnVjdCBs aW5rX2NvbmZpZ19saW1pdHMgKmxpbWl0cykKIHsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1 c3RlZF9tb2RlOwogCWludCBicHAsIGNsb2NrLCBsYW5lX2NvdW50OwogCWludCBtb2RlX3JhdGUs IGxpbmtfY2xvY2ssIGxpbmtfYXZhaWw7CiAKQEAgLTE5MDQsNyArMTkwNCw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs CiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90b19kaWdfcG9y dChpbnRlbF9kcCk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAl1OCBkc2NfbWF4X2JwYzsKIAlpbnQgcGlwZV9icHA7CiAJaW50IHJldDsKQEAg LTIwMDgsNyArMjAwOCw3IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZywKIAkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCiB7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1 Y3QgbGlua19jb25maWdfbGltaXRzIGxpbWl0czsKIAlpbnQgY29tbW9uX2xlbjsKQEAgLTIwOTYs OCArMjA5Niw4IEBAIGludGVsX2RwX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLAogewogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0gJmNvbm5l Y3Rvci0+ZGlzcGxheV9pbmZvOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJaW50IHJldDsKIAog CWlmICghZHJtX21vZGVfaXNfNDIwX29ubHkoaW5mbywgYWRqdXN0ZWRfbW9kZSkgfHwKQEAgLTIx MjUsNyArMjEyNSw3IEBAIGJvb2wgaW50ZWxfZHBfbGltaXRlZF9jb2xvcl9yYW5nZShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAljb25zdCBzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQogCQl0b19pbnRlbF9k aWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVk X21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYgKGludGVsX2Nv bm5fc3RhdGUtPmJyb2FkY2FzdF9yZ2IgPT0gSU5URUxfQlJPQURDQVNUX1JHQl9BVVRPKSB7CiAJ CS8qCkBAIC0yMTQ4LDExICsyMTQ4LDExIEBAIGludGVsX2RwX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNv ZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSBlbmNfdG9faW50ZWxf bHNwY29uKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7 Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29u ZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50 ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwogCXN0cnVj dCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0ZSA9CiAJCXRv X2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwpAQCAtMjI2Myw4ICsy MjYzLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3Rv X2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBv cnQ7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmln LT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOworCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlOwogCiAJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBw aXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJCQkgcGlwZV9jb25maWctPmxhbmVfY291bnQsCkBA IC0yODUxLDcgKzI4NTEsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfZWRwX3BsbChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgc3RhdGUpCiBzdGF0aWMgdm9pZCBpcm9ubGFr ZV9lZHBfcGxsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAKIAlhc3NlcnRfcGlwZV9kaXNhYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CkBAIC0y ODkxLDcgKzI4OTEsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxsX29uKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lZHBfcGxsX29mZihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqb2xkX2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAog CWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9wcml2LCBjcnRjLT5waXBlKTsKQEAgLTMwNTEsNyAr MzA1MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRl bF9kcCgmZW5jb2Rlci0+YmFzZSk7CiAJdTMyIHRtcCwgZmxhZ3MgPSAwOwogCWVudW0gcG9ydCBw b3J0ID0gZW5jb2Rlci0+cG9ydDsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCiAJaWYgKGVuY29kZXIt PnR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKIAkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8 PSBCSVQoSU5URUxfT1VUUFVUX0VEUCk7CkBAIC0zMDg2LDcgKzMwODYsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kcF9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJ ZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OVlNZTkM7CiAJfQogCi0JcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZS5mbGFncyB8PSBmbGFnczsKIAogCWlmIChJU19HNFgoZGV2X3ByaXYpICYmIHRtcCAmIERQ X0NPTE9SX1JBTkdFXzE2XzIzNSkKIAkJcGlwZV9jb25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2Ug PSB0cnVlOwpAQCAtMzEwMyw3ICszMTAzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0X2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCXBpcGVfY29uZmlnLT5wb3J0 X2Nsb2NrID0gMjcwMDAwOwogCX0KIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUu Y3J0Y19jbG9jayA9CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9 CiAJCWludGVsX2RvdGNsb2NrX2NhbGN1bGF0ZShwaXBlX2NvbmZpZy0+cG9ydF9jbG9jaywKIAkJ CQkJICZwaXBlX2NvbmZpZy0+ZHBfbV9uKTsKIApAQCAtMzMxOCw3ICszMzE4LDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVu Y29kZXItPmJhc2UpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhw aXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJdTMyIGRwX3JlZyA9IEk5MTVfUkVB RChpbnRlbF9kcC0+b3V0cHV0X3JlZyk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwog CWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwpAQCAtMzQ0OSw3ICszNDQ5LDcgQEAgc3RhdGljIHZv aWQgdmx2X2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9f aW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJbG9ja2RlcF9h c3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAKQEAgLTM5NzAsNyArMzk3MCw3IEBA IGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNv ZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xk X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gcG9ydCBwb3J0ID0g ZW5jb2Rlci0+cG9ydDsKIAl1MzIgRFAgPSBpbnRlbF9kcC0+RFA7CiAKQEAgLTQ4MTcsNyArNDgx Nyw3IEBAIGludCBpbnRlbF9kcF9yZXRyYWluX2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAKIAlXQVJOX09OKCFpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUp KTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJaWYgKCFjcnRjX3N0YXRlLT5o dy5hY3RpdmUpCiAJCXJldHVybiAwOwogCiAJaWYgKGNvbm5fc3RhdGUtPmNvbW1pdCAmJgpAQCAt NjYzNiw3ICs2NjM2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCSAgICBpbnQgcmVmcmVzaF9yYXRl KQogewogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBkZXZfcHJpdi0+ZHJycy5kcDsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIGRycnNfcmVmcmVzaF9yYXRlX3R5cGUg aW5kZXggPSBEUlJTX0hJR0hfUlI7CiAKIAlpZiAocmVmcmVzaF9yYXRlIDw9IDApIHsKQEAgLTY2 NjksNyArNjY2OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3NldF9kcnJzX3N0YXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJcmV0dXJuOwogCX0KIAotCWlmICghY3J0 Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewog CQlEUk1fREVCVUdfS01TKCJlRFAgZW5jb2RlciBkaXNhYmxlZC4gQ1JUQyBub3QgQWN0aXZlXG4i KTsKIAkJcmV0dXJuOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZHBfbXN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rw X21zdC5jCmluZGV4IGY1MmNkZDRjYTg3Ny4uNTBjNDgwYTNlNjYzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKQEAgLTQyLDEzICs0MiwxMyBAQCBzdGF0 aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5f c3RhdGUsCiAJCQkJCSAgICBzdHJ1Y3QgbGlua19jb25maWdfbGltaXRzICpsaW1pdHMpCiB7Ci0J c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsK KwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRl OwogCXN0cnVjdCBpbnRlbF9kcF9tc3RfZW5jb2RlciAqaW50ZWxfbXN0ID0gZW5jX3RvX21zdCgm ZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9ICZpbnRlbF9tc3Qt PnByaW1hcnktPmRwOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9CiAJCXRv X2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwogCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdm9pZCAqcG9y dCA9IGNvbm5lY3Rvci0+cG9ydDsKIAlib29sIGNvbnN0YW50X24gPSBkcm1fZHBfaGFzX3F1aXJr KCZpbnRlbF9kcC0+ZGVzYywKIAkJCQkJICAgRFBfRFBDRF9RVUlSS19DT05TVEFOVF9OKTsKQEAg LTk5LDcgKzk5LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVj dG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0 b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPQotCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXZvaWQgKnBvcnQgPSBjb25uZWN0b3ItPnBv cnQ7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xpbWl0cyBsaW1pdHM7CiAJaW50IHJldDsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBpb19waHkuYwppbmRleCA1NTZkMWIz MGYwNmEuLjcwNGYzODY4MWM0YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcGlvX3BoeS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHBpb19waHkuYwpAQCAtNzM5LDcgKzczOSw3IEBAIHZvaWQgY2h2X2RhdGFfbGFuZV9z b2Z0X3Jlc2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVu dW0gZHBpb19jaGFubmVsIGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZW5jX3RvX2RpZ19wb3J0 KCZlbmNvZGVyLT5iYXNlKSk7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0 b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBj cnRjLT5waXBlOwogCXUzMiB2YWw7CiAKQEAgLTc4Myw3ICs3ODMsNyBAQCB2b2lkIGNodl9waHlf cHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJh c2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gZHBpb19jaGFubmVsIGNoID0g dmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlw ZTsKIAl1bnNpZ25lZCBpbnQgbGFuZV9tYXNrID0KQEAgLTg2NCw3ICs4NjQsNyBAQCB2b2lkIGNo dl9waHlfcHJlX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJh c2UpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWVudW0gZHBpb19jaGFubmVs IGNoID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0 Yy0+cGlwZTsKIAlpbnQgZGF0YSwgaSwgc3RhZ2dlcjsKQEAgLTk1Myw3ICs5NTMsNyBAQCB2b2lk IGNodl9waHlfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkK IHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3Rh dGUtPmJhc2UuY3J0YyktPnBpcGU7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKG9s ZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpLT5waXBlOwogCXUzMiB2YWw7CiAKIAl2bHZfZHBpb19n ZXQoZGV2X3ByaXYpOwpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgdm9pZCB2bHZfcGh5X3ByZV9wbGxf ZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAllbnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X2Rw b3J0X3RvX2NoYW5uZWwoZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIApA QCAtMTA0Niw3ICsxMDQ2LDcgQEAgdm9pZCB2bHZfcGh5X3ByZV9lbmNvZGVyX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0g ZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAllbnVtIGRwaW9fY2hhbm5lbCBwb3J0ID0gdmx2X2Rwb3J0X3RvX2NoYW5uZWwo ZHBvcnQpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgdmFsOwpAQCAtMTA3 NSw3ICsxMDc1LDcgQEAgdm9pZCB2bHZfcGh5X3Jlc2V0X2xhbmVzKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRwb3J0ID0gZW5j X3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG9sZF9jcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCWVudW0gZHBpb19jaGFubmVsIHBvcnQgPSB2bHZfZHBvcnRfdG9fY2hhbm5lbChk cG9ydCk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggYjgxNDhmODM4MzU0Li4yMjQ1 Y2U1ZjkxYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZHBsbF9tZ3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxf bWdyLmMKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIGFzc2VydF9zaGFyZWRfZHBsbChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAgKi8KIHZvaWQgaW50ZWxfcHJlcGFyZV9zaGFy ZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNy dGNfc3RhdGUtPnNoYXJlZF9kcGxsOwogCkBAIC0xNjMsNyArMTYzLDcgQEAgdm9pZCBpbnRlbF9w cmVwYXJlX3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogICovCiB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsOwog CXVuc2lnbmVkIGludCBjcnRjX21hc2sgPSBkcm1fY3J0Y19tYXNrKCZjcnRjLT5iYXNlKTsKQEAg LTIwOCw3ICsyMDgsNyBAQCB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKICAqLwogdm9pZCBpbnRlbF9kaXNhYmxl X3NoYXJlZF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9zaGFyZWRfZHBsbCAqcGxs ID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGw7CiAJdW5zaWduZWQgaW50IGNydGNfbWFzayA9IGRy bV9jcnRjX21hc2soJmNydGMtPmJhc2UpOwpAQCAtODI1LDcgKzgyNSw3IEBAIGhzd19kZGlfaGRt aV9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIHN0YXRpYyBzdHJ1 Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKgogaHN3X2RkaV9kcF9nZXRfZHBsbChzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbDsKIAllbnVtIGludGVsX2RwbGxf aWQgcGxsX2lkOwogCWludCBjbG9jayA9IGNydGNfc3RhdGUtPnBvcnRfY2xvY2s7CkBAIC0xNzM0 LDcgKzE3MzQsNyBAQCBzdGF0aWMgYm9vbAogYnh0X2RkaV9oZG1pX3BsbF9kaXZpZGVycyhzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgc3RydWN0IGJ4dF9jbGtfZGl2 ICpjbGtfZGl2KQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50 ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcGxsIGJlc3RfY2xvY2s7 CiAKIAkvKiBDYWxjdWxhdGUgSERNSSBkaXYgKi8KQEAgLTIyNTcsNyArMjI1Nyw3IEBAIHN0YXRp YyBib29sCiBjbmxfZGRpX2NhbGN1bGF0ZV93cnBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAkJCXN0cnVjdCBza2xfd3JwbGxfcGFyYW1zICp3cnBsbF9wYXJhbXMpCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJdTMyIGFmZV9jbG9jayA9IGNy dGNfc3RhdGUtPnBvcnRfY2xvY2sgKiA1OwogCXUzMiByZWZfY2xvY2s7CiAJdTMyIGRjb19taW4g PSA3OTk4MDAwOwpAQCAtMjUyMyw3ICsyNTIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBza2xf d3JwbGxfcGFyYW1zIGljbF90YnRfcGxsXzE5XzJNSHpfdmFsdWVzID0gewogc3RhdGljIGJvb2wg aWNsX2NhbGNfZHBfY29tYm9fcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl LAogCQkJCSAgc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKnBsbF9wYXJhbXMpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJY29uc3Qgc3RydWN0IGljbF9jb21ib19wbGxf cGFyYW1zICpwYXJhbXMgPQogCQlkZXZfcHJpdi0+Y2RjbGsuaHcucmVmID09IDI0MDAwID8KIAkJ aWNsX2RwX2NvbWJvX3BsbF8yNE1Iel92YWx1ZXMgOgpAQCAtMjU0NSw3ICsyNTQ1LDcgQEAgc3Rh dGljIGJvb2wgaWNsX2NhbGNfZHBfY29tYm9fcGxsKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogc3RhdGljIGJvb2wgaWNsX2NhbGNfdGJ0X3BsbChzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgc3RydWN0IHNrbF93cnBsbF9wYXJhbXMgKnBs bF9wYXJhbXMpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAKIAkqcGxs X3BhcmFtcyA9IGRldl9wcml2LT5jZGNsay5ody5yZWYgPT0gMjQwMDAgPwogCQkJaWNsX3RidF9w bGxfMjRNSHpfdmFsdWVzIDogaWNsX3RidF9wbGxfMTlfMk1Iel92YWx1ZXM7CkBAIC0yNTU2LDcg KzI1NTYsNyBAQCBzdGF0aWMgYm9vbCBpY2xfY2FsY19kcGxsX3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAogCQkJCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3RhdGUpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJdTMyIGNmZ2NyMCwgY2ZnY3IxOwogCXN0cnVj dCBza2xfd3JwbGxfcGFyYW1zIHBsbF9wYXJhbXMgPSB7IDAgfTsKIAlib29sIHJldDsKQEAgLTI2 ODIsNyArMjY4Miw3IEBAIHN0YXRpYyBib29sIGljbF9tZ19wbGxfZmluZF9kaXZpc29ycyhpbnQg Y2xvY2tfa2h6LCBib29sIGlzX2RwLCBib29sIHVzZV9zc2MsCiBzdGF0aWMgYm9vbCBpY2xfY2Fs Y19tZ19wbGxfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJ ICBzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0ZSAqcGxsX3N0YXRlKQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5k ZXYpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19z dGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwogCWludCByZWZjbGtfa2h6ID0gZGV2X3ByaXYtPmNkY2xr Lmh3LnJlZjsKIAlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5wb3J0X2Nsb2NrOwogCXUzMiBkY29f a2h6LCBtMWRpdiwgbTJkaXZfaW50LCBtMmRpdl9yZW0sIG0yZGl2X2ZyYWM7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8uYwppbmRleCA5M2JhZjM2NjY5MmUuLmIzNTI5Njgw NGYwZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2R2by5jCkBAIC0xNzgs OSArMTc4LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX2dldF9jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJZWxzZQogCQlmbGFncyB8PSBEUk1fTU9ERV9GTEFHX05WU1lO QzsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJ cGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKLQlwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9j b25maWctPnBvcnRfY2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHZvKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLApAQCAtMjA3LDggKzIwNyw4IEBAIHN0YXRpYyB2 b2lkIGludGVsX2VuYWJsZV9kdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJdTMy IHRlbXAgPSBJOTE1X1JFQUQoZHZvX3JlZyk7CiAKIAlpbnRlbF9kdm8tPmRldi5kZXZfb3BzLT5t b2RlX3NldCgmaW50ZWxfZHZvLT5kZXYsCi0JCQkJCSAmcGlwZV9jb25maWctPmJhc2UubW9kZSwK LQkJCQkJICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlKTsKKwkJCQkJICZwaXBlX2Nv bmZpZy0+aHcubW9kZSwKKwkJCQkJICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZSk7CiAK IAlJOTE1X1dSSVRFKGR2b19yZWcsIHRlbXAgfCBEVk9fRU5BQkxFKTsKIAlJOTE1X1JFQUQoZHZv X3JlZyk7CkBAIC0yNTMsNyArMjUzLDcgQEAgc3RhdGljIGludCBpbnRlbF9kdm9fY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGludGVsX2R2byAq aW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNvZGVyKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqZml4ZWRfbW9kZSA9CiAJCWludGVsX2R2by0+YXR0YWNoZWRfY29ubmVjdG9yLT5w YW5lbC5maXhlZF9tb2RlOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAK IAkvKgogCSAqIElmIHdlIGhhdmUgdGltaW5ncyBmcm9tIHRoZSBCSU9TIGZvciB0aGUgcGFuZWws IHB1dCB0aGVtIGluCkBAIC0yNzcsOCArMjc3LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX3By ZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIGNvbnN0IHN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsK LQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZTsKIAlzdHJ1Y3QgaW50ZWxfZHZvICppbnRlbF9kdm8gPSBlbmNfdG9fZHZvKGVuY29kZXIpOwog CWludCBwaXBlID0gY3J0Yy0+cGlwZTsKIAl1MzIgZHZvX3ZhbDsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2ZiYy5jCmluZGV4IDE2ZWQ0NGJmZDczNC4uYjI0M2M0ZjYyOTY0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMKQEAgLTY2Nyw3ICs2Njcs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCWNhY2hlLT52bWEgPSBOVUxMOwogCWNhY2hlLT5mbGFncyA9IDA7CiAK LQljYWNoZS0+Y3J0Yy5tb2RlX2ZsYWdzID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl LmZsYWdzOworCWNhY2hlLT5jcnRjLm1vZGVfZmxhZ3MgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlLmZsYWdzOwogCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQogCQljYWNoZS0+Y3J0Yy5oc3dfYmR3X3BpeGVsX3JhdGUgPSBjcnRjX3N0YXRl LT5waXhlbF9yYXRlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfaGRtaS5j CmluZGV4IGUwMmYwZmFlY2YwMi4uOGM1MTRhZDQ1YTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2hkbWkuYwpAQCAtMjc5LDcgKzI3OSw3IEBAIHN0YXRpYyB2b2lkIGli eF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJY29u c3QgdTMyICpkYXRhID0gZnJhbWU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJaTkxNV9yZWdfdCByZWcgPSBUVklERU9fRElQX0NUTChpbnRlbF9jcnRjLT5waXBlKTsK IAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAJaW50IGk7CkBAIC0zMTUsNyArMzE1LDcgQEAg c3RhdGljIHZvaWQgaWJ4X3JlYWRfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCQkJICAgICAgIHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjKTsKIAl1MzIgdmFsLCAqZGF0YSA9IGZyYW1lOwogCWludCBpOwogCkBAIC0z MzQsNyArMzM0LDcgQEAgc3RhdGljIHUzMiBpYnhfaW5mb2ZyYW1lc19lbmFibGVkKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxf Y3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0YyktPnBpcGU7CiAJaTkxNV9yZWdfdCBy ZWcgPSBUVklERU9fRElQX0NUTChwaXBlKTsKIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7CiAK QEAgLTM1Niw3ICszNTYsNyBAQCBzdGF0aWMgdm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCWNvbnN0IHUzMiAqZGF0YSA9IGZyYW1lOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCWk5MTVfcmVnX3QgcmVnID0g VFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChy ZWcpOwogCWludCBpOwpAQCAtMzk1LDcgKzM5NSw3IEBAIHN0YXRpYyB2b2lkIGNwdF9yZWFkX2lu Zm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgICB2b2lkICpm cmFtZSwgc3NpemVfdCBsZW4pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJdTMyIHZh bCwgKmRhdGEgPSBmcmFtZTsKIAlpbnQgaTsKIApAQCAtNDE0LDcgKzQxNCw3IEBAIHN0YXRpYyB1 MzIgY3B0X2luZm9mcmFtZXNfZW5hYmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0YyktPnBpcGU7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmln LT51YXBpLmNydGMpLT5waXBlOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQoVFZJREVPX0RJUF9DVEwo cGlwZSkpOwogCiAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxFKSA9PSAwKQpAQCAtNDMyLDcg KzQzMiw3IEBAIHN0YXRpYyB2b2lkIHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCiB7CiAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0J c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJaTkxNV9yZWdfdCByZWcgPSBWTFZfVFZJREVP X0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwog CWludCBpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIHN0YXRpYyB2b2lkIHZsdl9yZWFkX2luZm9mcmFt ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCSAgICAgICB2b2lkICpmcmFtZSwg c3NpemVfdCBsZW4pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJdTMyIHZhbCwgKmRh dGEgPSBmcmFtZTsKIAlpbnQgaTsKIApAQCAtNDg3LDcgKzQ4Nyw3IEBAIHN0YXRpYyB1MzIgdmx2 X2luZm9mcmFtZXNfZW5hYmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkg IGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK LQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yykt PnBpcGU7CisJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBp LmNydGMpLT5waXBlOwogCXUzMiB2YWwgPSBJOTE1X1JFQUQoVkxWX1RWSURFT19ESVBfQ1RMKHBp cGUpKTsKIAogCWlmICgodmFsICYgVklERU9fRElQX0VOQUJMRSkgPT0gMCkKQEAgLTcwMCw3ICs3 MDAsNyBAQCBpbnRlbF9oZG1pX2NvbXB1dGVfYXZpX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpmcmFtZSA9ICZj cnRjX3N0YXRlLT5pbmZvZnJhbWVzLmF2aS5hdmk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwogCWludCByZXQ7CiAKQEAgLTc4 Nyw3ICs3ODcsNyBAQCBpbnRlbF9oZG1pX2NvbXB1dGVfaGRtaV9pbmZvZnJhbWUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlyZXQgPSBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1l X2Zyb21fZGlzcGxheV9tb2RlKGZyYW1lLAogCQkJCQkJCSAgY29ubl9zdGF0ZS0+Y29ubmVjdG9y LAotCQkJCQkJCSAgJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJCQkJCQkJICAm Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSk7CiAJaWYgKFdBUk5fT04ocmV0KSkKIAkJcmV0 dXJuIGZhbHNlOwogCkBAIC05NDgsNyArOTQ4LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfaGRtaV9z ZXRfZ2NwX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkJIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwot CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNl LmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT51YXBpLmNydGMpOwogCWk5MTVfcmVnX3QgcmVnOwogCiAJaWYgKChjcnRjX3N0YXRlLT5p bmZvZnJhbWVzLmVuYWJsZSAmCkBAIC05NzMsNyArOTczLDcgQEAgdm9pZCBpbnRlbF9oZG1pX3Jl YWRfZ2NwX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQkgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFw aS5jcnRjKTsKIAlpOTE1X3JlZ190IHJlZzsKIAogCWlmICgoY3J0Y19zdGF0ZS0+aW5mb2ZyYW1l cy5lbmFibGUgJgpAQCAtMTAxMCw3ICsxMDEwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9j b21wdXRlX2djcF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkv KiBFbmFibGUgZGVmYXVsdF9waGFzZSB3aGVuZXZlciB0aGUgZGlzcGxheSBtb2RlIGlzIHN1aXRh Ymx5IGFsaWduZWQgKi8KIAlpZiAoZ2NwX2RlZmF1bHRfcGhhc2VfcG9zc2libGUoY3J0Y19zdGF0 ZS0+cGlwZV9icHAsCi0JCQkJICAgICAgICZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUp KQorCQkJCSAgICAgICAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSkpCiAJCWNydGNfc3Rh dGUtPmluZm9mcmFtZXMuZ2NwIHw9IEdDUF9ERUZBVUxUX1BIQVNFX0VOQUJMRTsKIH0KIApAQCAt MTAyMCw3ICsxMDIwLDcgQEAgc3RhdGljIHZvaWQgaWJ4X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5j X3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxf aGRtaSA9ICZpbnRlbF9kaWdfcG9ydC0+aGRtaTsKIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19E SVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwpAQCAtMTA3OSw3ICsxMDc5LDcgQEAgc3RhdGljIHZv aWQgY3B0X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJ ICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1p ICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwogCWk5MTVf cmVnX3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7CiAJdTMyIHZhbCA9 IEk5MTVfUkVBRChyZWcpOwpAQCAtMTEyOCw3ICsxMTI4LDcgQEAgc3RhdGljIHZvaWQgdmx2X3Nl dF9pbmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIGNv bnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwot CXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9o ZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwogCWk5MTVfcmVnX3QgcmVn ID0gVkxWX1RWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwogCXUzMiB2YWwgPSBJOTE1 X1JFQUQocmVnKTsKQEAgLTE3MjAsOSArMTcyMCw5IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlf cHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRl bF9oZG1pICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwot CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBoZG1p X3ZhbDsKIAogCWludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoaW50ZWxfaGRtaSwg dHJ1ZSk7CkBAIC0xODEzLDcgKzE4MTMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2dldF9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJICAgIHRtcCAmIEhETUlfQ09M T1JfUkFOR0VfMTZfMjM1KQogCQlwaXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRy dWU7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwor CXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJaWYgKCh0 bXAgJiBTRFZPX0NPTE9SX0ZPUk1BVF9NQVNLKSA9PSBIRE1JX0NPTE9SX0ZPUk1BVF8xMmJwYykK IAkJZG90Y2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayAqIDIgLyAzOwpAQCAtMTgyMyw3 ICsxODIzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCWlmIChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikK IAkJZG90Y2xvY2sgLz0gcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gZG90Y2xvY2s7CiAKIAlwaXBlX2Nv bmZpZy0+bGFuZV9jb3VudCA9IDQ7CiAKQEAgLTE4NDQsNyArMTg0NCw3IEBAIHN0YXRpYyB2b2lk IGludGVsX2VuYWJsZV9oZG1pX2F1ZGlvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJ ICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0 cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25m aWctPnVhcGkuY3J0Yyk7CiAKIAlXQVJOX09OKCFwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luayk7 CiAJRFJNX0RFQlVHX0RSSVZFUigiRW5hYmxpbmcgSERNSSBhdWRpbyBvbiBwaXBlICVjXG4iLApA QCAtMTkzMCw3ICsxOTMwLDcgQEAgc3RhdGljIHZvaWQgY3B0X2VuYWJsZV9oZG1pKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNv ZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxf Y3J0YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxf aGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBpcGUgcGlw ZSA9IGNydGMtPnBpcGU7CiAJdTMyIHRlbXA7CkBAIC0xOTk0LDcgKzE5OTQsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ c3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rl ci0+YmFzZSk7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPQog CQloZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJdTMyIHRlbXA7CiAKIAl0ZW1wID0gSTkxNV9SRUFEKGludGVsX2hkbWktPmhkbWlfcmVnKTsK QEAgLTIxOTIsMTIgKzIxOTIsMTIgQEAgc3RhdGljIGJvb2wgaGRtaV9kZWVwX2NvbG9yX3Bvc3Np YmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCSAgICAg aW50IGJwYykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQotCQl0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT5iYXNlLnN0YXRlOworCQl0b19pOTE1KGNydGNfc3RhdGUt PnVhcGkuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRj X3N0YXRlLT51YXBpLnN0YXRlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uZWN0 b3Jfc3RhdGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWludCBp OwogCiAJaWYgKEhBU19HTUNIKGRldl9wcml2KSkKQEAgLTIyMjIsNyArMjIyMiw3IEBAIHN0YXRp YyBib29sIGhkbWlfZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRl LCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0ZSwgaSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKIAotCQlpZiAoY29u bmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGNfc3RhdGUtPmJhc2UuY3J0YykKKwkJaWYgKGNvbm5l Y3Rvcl9zdGF0ZS0+Y3J0YyAhPSBjcnRjX3N0YXRlLT51YXBpLmNydGMpCiAJCQljb250aW51ZTsK IAogCQlpZiAoY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFU X1lDQkNSNDIwKSB7CkBAIC0yMjY1LDcgKzIyNjUsNyBAQCBpbnRlbF9oZG1pX3ljYmNyNDIwX2Nv bmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJICAgaW50ICpjbG9ja18x MmJwYywgaW50ICpjbG9ja18xMGJwYywKIAkJCSAgIGludCAqY2xvY2tfOGJwYykKIHsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY29uZmlnLT5iYXNlLmNy dGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhjb25m aWctPnVhcGkuY3J0Yyk7CiAKIAlpZiAoIWNvbm5lY3Rvci0+eWNiY3JfNDIwX2FsbG93ZWQpIHsK IAkJRFJNX0VSUk9SKCJQbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQgWUNCQ1I0MjAgb3V0cHV0XG4i KTsKQEAgLTIyOTcsMTIgKzIyOTcsMTIgQEAgaW50IGludGVsX2hkbWlfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2hkbWkgKmlu dGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0J c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fc2NkYyAq c2NkYyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mby5oZG1pLnNjZGM7CiAJc3RydWN0IGludGVs X2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KIAkJdG9faW50ZWxf ZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7Ci0JaW50IGNsb2NrXzhicGMgPSBw aXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CisJaW50IGNsb2NrXzhi cGMgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCWludCBjbG9j a18xMGJwYyA9IGNsb2NrXzhicGMgKiA1IC8gNDsKIAlpbnQgY2xvY2tfMTJicGMgPSBjbG9ja184 YnBjICogMyAvIDI7CiAJaW50IGRlc2lyZWRfYnBwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sc3Bjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfbHNwY29uLmMKaW5kZXggZjhmMTMwODY0M2E5Li41MTQ1ZmY4Yjk2MmIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sc3Bjb24uYwpAQCAtMTg5LDcg KzE4OSw3IEBAIHZvaWQgbHNwY29uX3ljYmNyNDIwX2NvbmZpZyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAogewogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvID0g JmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJCQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsK KwkJCQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAKIAlpZiAoZHJtX21vZGVfaXNf NDIwX29ubHkoaW5mbywgYWRqdXN0ZWRfbW9kZSkgJiYKIAkgICAgY29ubmVjdG9yLT55Y2Jjcl80 MjBfYWxsb3dlZCkgewpAQCAtNDc1LDcgKzQ3NSw3IEBAIHZvaWQgbHNwY29uX3NldF9pbmZvZnJh bWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1 Y3QgaW50ZWxfbHNwY29uICpsc3Bjb24gPSAmZGlnX3BvcnQtPmxzcGNvbjsKIAljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYg KCFsc3Bjb24tPmFjdGl2ZSkgewogCQlEUk1fRVJST1IoIldyaXRpbmcgaW5mb2ZyYW1lcyB3aGls ZSBMU1BDT04gZGlzYWJsZWQgP1xuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfbHZkcy5jCmluZGV4IGI3YzQ1OWE4OTMxYy4uOTQ4YmM2M2RmNTlkIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2ZHMuYwpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2x2ZHNfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAllbHNlCiAJCWZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfUFZTWU5DOwogCi0JcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKKwlwaXBlX2NvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBmbGFnczsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgNSkKIAkJcGlwZV9jb25maWctPmdtY2hfcGZpdC5sdmRzX2JvcmRlcl9iaXRzID0KQEAgLTE0 OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9sdmRzX2dldF9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXBpcGVfY29uZmlnLT5nbWNoX3BmaXQuY29udHJvbCB8 PSB0bXAgJiBQQU5FTF84VE82X0RJVEhFUl9FTkFCTEU7CiAJfQogCi0JcGlwZV9jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7CisJ cGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29uZmlnLT5w b3J0X2Nsb2NrOwogfQogCiBzdGF0aWMgdm9pZCBpbnRlbF9sdmRzX3Bwc19nZXRfaHdfc3RhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApAQCAtMjMwLDggKzIzMCw4IEBAIHN0 YXRpYyB2b2lkIGludGVsX3ByZV9lbmFibGVfbHZkcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIHsKIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPSB0b19s dmRzX2VuY29kZXIoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKLQljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQg cGlwZSA9IGNydGMtPnBpcGU7CiAJdTMyIHRlbXA7CiAKQEAgLTM5Miw4ICszOTIsOCBAQCBzdGF0 aWMgaW50IGludGVsX2x2ZHNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmlu dGVsX2VuY29kZXIsCiAJCXRvX2x2ZHNfZW5jb2RlcigmaW50ZWxfZW5jb2Rlci0+YmFzZSk7CiAJ c3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0KIAkJbHZkc19lbmNvZGVy LT5hdHRhY2hlZF9jb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGU7CisJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBpLmNydGMpOwogCXVuc2lnbmVkIGludCBsdmRzX2Jw cDsKIAogCS8qIFNob3VsZCBuZXZlciBoYXBwZW4hISAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9wYW5lbC5jCmluZGV4IGJjMTRlOWMwMjg1YS4uNmYzZWFhZTM3NjFmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wYW5lbC5jCkBAIC0xNzgsNyAr MTc4LDcgQEAgaW50ZWxfcGNoX3BhbmVsX2ZpdHRpbmcoc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMsCiAJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQlpbnQg Zml0dGluZ19tb2RlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVz dGVkX21vZGU7CiAJaW50IHggPSAwLCB5ID0gMCwgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwogCiAJ LyogTmF0aXZlIG1vZGVzIGRvbid0IG5lZWQgZml0dGluZyAqLwpAQCAtMzAwLDcgKzMwMCw3IEBA IHN0YXRpYyBpbmxpbmUgdTMyIHBhbmVsX2ZpdHRlcl9zY2FsaW5nKHUzMiBzb3VyY2UsIHUzMiB0 YXJnZXQpCiBzdGF0aWMgdm9pZCBpOTY1X3NjYWxlX2FzcGVjdChzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgICB1MzIgKnBmaXRfY29udHJvbCkKIHsKLQljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBzY2FsZWRf d2lkdGggPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ICoKIAkJcGlwZV9jb25maWctPnBp cGVfc3JjX2g7CiAJdTMyIHNjYWxlZF9oZWlnaHQgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAq CkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9zY2FsZV9hc3BlY3Qoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJICAgICAgdTMyICpwZml0X2NvbnRy b2wsIHUzMiAqcGZpdF9wZ21fcmF0aW9zLAogCQkJICAgICAgdTMyICpib3JkZXIpCiB7Ci0Jc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2Uu YWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1MzIgc2NhbGVkX3dpZHRoID0gYWRq dXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSAqCiAJCXBpcGVfY29uZmlnLT5waXBlX3NyY19oOwog CXUzMiBzY2FsZWRfaGVpZ2h0ID0gcGlwZV9jb25maWctPnBpcGVfc3JjX3cgKgpAQCAtMzgwLDcg KzM4MCw3IEBAIHZvaWQgaW50ZWxfZ21jaF9wYW5lbF9maXR0aW5nKHN0cnVjdCBpbnRlbF9jcnRj ICppbnRlbF9jcnRjLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoaW50ZWxfY3J0Yy0+YmFzZS5kZXYpOwogCXUzMiBwZml0X2NvbnRyb2wgPSAwLCBwZml0 X3BnbV9yYXRpb3MgPSAwLCBib3JkZXIgPSAwOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVz dGVkX21vZGU7CiAKIAkvKiBOYXRpdmUgbW9kZXMgZG9uJ3QgbmVlZCBmaXR0aW5nICovCiAJaWYg KGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgPT0gcGlwZV9jb25maWctPnBpcGVfc3JjX3cg JiYKQEAgLTEwNDcsNyArMTA0Nyw3IEBAIHN0YXRpYyB2b2lkIHZsdl9lbmFibGVfYmFja2xpZ2h0 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5j b25uZWN0b3IpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y29ubmVjdG9yLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25u ZWN0b3ItPnBhbmVsOwotCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpLT5waXBlOworCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpLT5waXBlOwogCXUzMiBjdGwsIGN0bDI7CiAKIAljdGwyID0gSTkx NV9SRUFEKFZMVl9CTENfUFdNX0NUTDIocGlwZSkpOwpAQCAtMTA3Nyw3ICsxMDc3LDcgQEAgc3Rh dGljIHZvaWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gdG9f aW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKIAlzdHJ1 Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Ci0JZW51bSBwaXBlIHBp cGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0YyktPnBpcGU7CisJZW51bSBw aXBlIHBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0YyktPnBpcGU7CiAJ dTMyIHB3bV9jdGwsIHZhbDsKIAogCS8qIENvbnRyb2xsZXIgMSB1c2VzIHRoZSB1dGlsaXR5IHBp bi4gKi8KQEAgLTExODksNyArMTE4OSw3IEBAIHZvaWQgaW50ZWxfcGFuZWxfZW5hYmxlX2JhY2ts aWdodChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0 ZS0+Y29ubmVjdG9yKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAm Y29ubmVjdG9yLT5wYW5lbDsKLQllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKS0+cGlwZTsKIAogCWlmICghcGFuZWwtPmJhY2tsaWdodC5w cmVzZW50KQogCQlyZXR1cm47CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3BpcGVfY3JjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3BpcGVfY3JjLmMKaW5kZXggNjI2MGEyMDgyNzE5Li4yNzQ2NTEyZjQ0NjYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGlwZV9jcmMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKQEAgLTMwOSwxMyArMzA5 LDEzIEBAIGludGVsX2NydGNfY3JjX3NldHVwX3dvcmthcm91bmRzKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLCBib29sIGVuYWJsZSkKIAkJZ290byBwdXRfc3RhdGU7CiAJfQogCi0JcGlwZV9jb25m aWctPmJhc2UubW9kZV9jaGFuZ2VkID0gcGlwZV9jb25maWctPmhhc19wc3I7CisJcGlwZV9jb25m aWctPnVhcGkubW9kZV9jaGFuZ2VkID0gcGlwZV9jb25maWctPmhhc19wc3I7CiAJcGlwZV9jb25m aWctPmNyY19lbmFibGVkID0gZW5hYmxlOwogCiAJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpICYm Ci0JICAgIHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSAmJiBjcnRjLT5waXBlID09IFBJUEVfQSAm JgorCSAgICBwaXBlX2NvbmZpZy0+aHcuYWN0aXZlICYmIGNydGMtPnBpcGUgPT0gUElQRV9BICYm CiAJICAgIHBpcGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0VEUCkKLQkJ cGlwZV9jb25maWctPmJhc2UubW9kZV9jaGFuZ2VkID0gdHJ1ZTsKKwkJcGlwZV9jb25maWctPnVh cGkubW9kZV9jaGFuZ2VkID0gdHJ1ZTsKIAogCXJldCA9IGRybV9hdG9taWNfY29tbWl0KHN0YXRl KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3Iu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMKaW5kZXggM2JmYjcy MDU2MGMyLi4zMjA3ZjQ4ZmZkNTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfcHNyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9wc3IuYwpAQCAtNTM3LDggKzUzNyw4IEBAIHN0YXRpYyBib29sIGludGVsX3BzcjJfY29uZmln X3ZhbGlkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCQkJICAgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRwX3RvX2k5MTUoaW50ZWxfZHApOwotCWludCBjcnRjX2hkaXNwbGF5ID0gY3J0Y19z dGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7Ci0JaW50IGNydGNfdmRpc3Bs YXkgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKKwlpbnQg Y3J0Y19oZGlzcGxheSA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19oZGlzcGxh eTsKKwlpbnQgY3J0Y192ZGlzcGxheSA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0 Y192ZGlzcGxheTsKIAlpbnQgcHNyX21heF9oID0gMCwgcHNyX21heF92ID0gMDsKIAogCWlmICgh ZGV2X3ByaXYtPnBzci5zaW5rX3BzcjJfc3VwcG9ydCkKQEAgLTU5NSw3ICs1OTUsNyBAQCB2b2lk IGludGVsX3Bzcl9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxf ZHApOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRwX3RvX2k5MTUoaW50 ZWxfZHApOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0K LQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFk anVzdGVkX21vZGU7CiAJaW50IHBzcl9zZXR1cF90aW1lOwogCiAJaWYgKCFDQU5fUFNSKGRldl9w cml2KSkKQEAgLTczMiw3ICs3MzIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wc3JfZW5hYmxlX2xv Y2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlkZXZfcHJpdi0+cHNy LnBzcjJfZW5hYmxlZCA9IGludGVsX3BzcjJfZW5hYmxlZChkZXZfcHJpdiwgY3J0Y19zdGF0ZSk7 CiAJZGV2X3ByaXYtPnBzci5idXN5X2Zyb250YnVmZmVyX2JpdHMgPSAwOwotCWRldl9wcml2LT5w c3IucGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKS0+cGlwZTsKKwlk ZXZfcHJpdi0+cHNyLnBpcGUgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yykt PnBpcGU7CiAKIAlEUk1fREVCVUdfS01TKCJFbmFibGluZyBQU1Ilc1xuIiwKIAkJICAgICAgZGV2 X3ByaXYtPnBzci5wc3IyX2VuYWJsZWQgPyAiMiIgOiAiMSIpOwpAQCAtOTQ2LDcgKzk0Niw3IEBA IHZvaWQgaW50ZWxfcHNyX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogaW50IGlu dGVsX3Bzcl93YWl0X2Zvcl9pZGxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZSwKIAkJCSAgICB1MzIgKm91dF92YWx1ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCiAJaWYgKCFkZXZfcHJpdi0+cHNyLmVuYWJsZWQgfHwgIW5ld19jcnRj X3N0YXRlLT5oYXNfcHNyKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8u YwppbmRleCBhZGViMWM4NDA5NzYuLmY3NGM1MjhkNWQ2OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKQEAgLTEwODcsNyArMTA4Nyw3IEBAIHN0YXRpYyBib29s IGludGVsX3Nkdm9fY29tcHV0ZV9hdmlfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9zZHZvICppbnRl bF9zZHZvLAogewogCXN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1lID0gJmNydGNfc3Rh dGUtPmluZm9mcmFtZXMuYXZpLmF2aTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWludCByZXQ7CiAKIAlpZiAoIWNydGNfc3Rh dGUtPmhhc19oZG1pX3NpbmspCkBAIC0xMjc2LDggKzEyNzYsOCBAQCBzdGF0aWMgaW50IGludGVs X3Nkdm9fY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXRv X2ludGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwogCXN0cnVjdCBpbnRlbF9z ZHZvX2Nvbm5lY3RvciAqaW50ZWxfc2R2b19jb25uZWN0b3IgPQogCQl0b19pbnRlbF9zZHZvX2Nv bm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Ci0Jc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAmcGlwZV9jb25maWctPmJhc2UubW9kZTsKKwlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZwaXBlX2Nv bmZpZy0+aHcubW9kZTsKIAogCURSTV9ERUJVR19LTVMoImZvcmNpbmcgYnBjIHRvIDggZm9yIFNE Vk9cbiIpOwogCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IDgqMzsKQEAgLTE0MjksMTMgKzE0Mjks MTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICppbnRlbF9lbmNvZGVyLAogCQkJCSAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNy dGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj X3N0YXRlLT51YXBpLmNydGMpOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJY29uc3Qgc3RydWN0 IGludGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlICpzZHZvX3N0YXRlID0KIAkJdG9faW50ZWxfc2R2 b19jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJY29uc3Qgc3RydWN0IGludGVsX3Nkdm9f Y29ubmVjdG9yICppbnRlbF9zZHZvX2Nvbm5lY3RvciA9CiAJCXRvX2ludGVsX3Nkdm9fY29ubmVj dG9yKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlID0gJmNydGNfc3RhdGUtPmh3Lm1vZGU7CiAJc3RydWN0IGludGVsX3Nk dm8gKmludGVsX3Nkdm8gPSB0b19zZHZvKGludGVsX2VuY29kZXIpOwogCXUzMiBzZHZveDsKIAlz dHJ1Y3QgaW50ZWxfc2R2b19pbl9vdXRfbWFwIGluX291dDsKQEAgLTE2MjksNyArMTYyOSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAkJCWZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTlZTWU5DOwogCX0KIAotCXBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKIAkvKgogCSAqIHBpeGVsIG11bHRp cGxpZXIgcmVhZG91dCBpcyB0cmlja3k6IE9ubHkgb24gaTkxNWcvZ20gaXQgaXMgc3RvcmVkIGlu CkBAIC0xNjQ5LDcgKzE2NDksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2dldF9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKHBpcGVfY29uZmlnLT5waXhlbF9t dWx0aXBsaWVyKQogCQlkb3RjbG9jayAvPSBwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcjsK IAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGRvdGNsb2Nr OworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsK IAogCS8qIENyb3NzIGNoZWNrIHRoZSBwb3J0IHBpeGVsIG11bHRpcGxpZXIgd2l0aCB0aGUgc2R2 byBlbmNvZGVyIHN0YXRlLiAqLwogCWlmIChpbnRlbF9zZHZvX2dldF92YWx1ZShpbnRlbF9zZHZv LCBTRFZPX0NNRF9HRVRfQ0xPQ0tfUkFURV9NVUxULApAQCAtMTcwMSw3ICsxNzAxLDcgQEAgc3Rh dGljIHZvaWQgaW50ZWxfc2R2b19lbmFibGVfYXVkaW8oc3RydWN0IGludGVsX3Nkdm8gKmludGVs X3Nkdm8sCiAJCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlKQogewogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0K LQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUtPmh3LmFk anVzdGVkX21vZGU7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbm5fc3Rh dGUtPmNvbm5lY3RvcjsKIAl1OCAqZWxkID0gY29ubmVjdG9yLT5lbGQ7CiAKQEAgLTE3MjMsNyAr MTcyMyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfc2R2byhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2 byA9IHRvX3Nkdm8oZW5jb2Rlcik7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG9sZF9jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhvbGRfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAl1MzIgdGVt cDsKIAogCWlmIChvbGRfY3J0Y19zdGF0ZS0+aGFzX2F1ZGlvKQpAQCAtMTc4NSw3ICsxNzg1LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX3Nkdm8oc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfc2R2byAqaW50ZWxfc2R2byA9IHRvX3Nkdm8oZW5jb2Rlcik7Ci0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjKTsKIAl1MzIgdGVtcDsKIAlib29sIGlucHV0MSwgaW5wdXQyOwogCWlu dCBpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJp dGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKaW5kZXgg ZGVhNjNiZTE5NjRmLi4yNDJmYWZkMTMyY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9zcHJpdGUuYwpAQCAtOTQsOSArOTQsOSBAQCBpbnQgaW50ZWxfdXNlY3NfdG9f c2NhbmxpbmVzKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlLAog ICovCiB2b2lkIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYp OwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJm5ld19j cnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmbmV3X2NydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7 CiAJbG9uZyB0aW1lb3V0ID0gbXNlY3NfdG9famlmZmllc190aW1lb3V0KDEpOwogCWludCBzY2Fu bGluZSwgbWluLCBtYXgsIHZibGFua19zdGFydDsKIAl3YWl0X3F1ZXVlX2hlYWRfdCAqd3EgPSBk cm1fY3J0Y192Ymxhbmtfd2FpdHF1ZXVlKCZjcnRjLT5iYXNlKTsKQEAgLTIwMyw3ICsyMDMsNyBA QCB2b2lkIGludGVsX3BpcGVfdXBkYXRlX3N0YXJ0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpuZXdfY3J0Y19zdGF0ZSkKICAqLwogdm9pZCBpbnRlbF9waXBlX3VwZGF0ZV9lbmQoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWludCBzY2FubGluZV9l bmQgPSBpbnRlbF9nZXRfY3J0Y19zY2FubGluZShjcnRjKTsKIAl1MzIgZW5kX3ZibF9jb3VudCA9 IGludGVsX2NydGNfZ2V0X3ZibGFua19jb3VudGVyKGNydGMpOwpAQCAtMjE2LDE0ICsyMTYsMTUg QEAgdm9pZCBpbnRlbF9waXBlX3VwZGF0ZV9lbmQoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5l d19jcnRjX3N0YXRlKQogCSAqIFdvdWxkIGJlIHNsaWdodGx5IG5pY2UgdG8ganVzdCBncmFiIHRo ZSB2YmxhbmsgY291bnQgYW5kIGFybSB0aGUKIAkgKiBldmVudCBvdXRzaWRlIG9mIHRoZSBjcml0 aWNhbCBzZWN0aW9uIC0gdGhlIHNwaW5sb2NrIG1pZ2h0IHNwaW4gZm9yIGEKIAkgKiB3aGlsZSAu Li4gKi8KLQlpZiAobmV3X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQpIHsKKwlpZiAobmV3X2NydGNf c3RhdGUtPnVhcGkuZXZlbnQpIHsKIAkJV0FSTl9PTihkcm1fY3J0Y192YmxhbmtfZ2V0KCZjcnRj LT5iYXNlKSAhPSAwKTsKIAogCQlzcGluX2xvY2soJmNydGMtPmJhc2UuZGV2LT5ldmVudF9sb2Nr KTsKLQkJZHJtX2NydGNfYXJtX3ZibGFua19ldmVudCgmY3J0Yy0+YmFzZSwgbmV3X2NydGNfc3Rh dGUtPmJhc2UuZXZlbnQpOworCQlkcm1fY3J0Y19hcm1fdmJsYW5rX2V2ZW50KCZjcnRjLT5iYXNl LAorCQkJCSAgICAgICAgICBuZXdfY3J0Y19zdGF0ZS0+dWFwaS5ldmVudCk7CiAJCXNwaW5fdW5s b2NrKCZjcnRjLT5iYXNlLmRldi0+ZXZlbnRfbG9jayk7CiAKLQkJbmV3X2NydGNfc3RhdGUtPmJh c2UuZXZlbnQgPSBOVUxMOworCQluZXdfY3J0Y19zdGF0ZS0+dWFwaS5ldmVudCA9IE5VTEw7CiAJ fQogCiAJbG9jYWxfaXJxX2VuYWJsZSgpOwpAQCAtMTUyNyw3ICsxNTI4LDcgQEAgZzR4X3Nwcml0 ZV9jaGVja19zY2FsaW5nKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNv bnN0IHN0cnVjdCBkcm1fcmVjdCAqZHN0ID0gJnBsYW5lX3N0YXRlLT5iYXNlLmRzdDsKIAlpbnQg c3JjX3gsIHNyY193LCBzcmNfaCwgY3J0Y193LCBjcnRjX2g7CiAJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1bnNpZ25lZCBpbnQg Y3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCXVuc2lnbmVkIGludCB3aWR0aF9ieXRlczsKIAlp bnQgbWluX3dpZHRoLCBtaW5faGVpZ2h0OwpAQCAtMTU5OSw3ICsxNjAwLDcgQEAgZzR4X3Nwcml0 ZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAl9CiAKIAlyZXQg PSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9zdGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2Us Ci0JCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLAorCQkJCQkJICAmY3J0Y19zdGF0ZS0+dWFwaSwK IAkJCQkJCSAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCiAJCQkJCQkgIHRydWUsIHRydWUpOwogCWlm IChyZXQpCkBAIC0xNjU2LDcgKzE2NTcsNyBAQCB2bHZfc3ByaXRlX2NoZWNrKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4gcmV0OwogCiAJcmV0ID0gZHJtX2F0 b21pY19oZWxwZXJfY2hlY2tfcGxhbmVfc3RhdGUoJnBsYW5lX3N0YXRlLT5iYXNlLAotCQkJCQkJ ICAmY3J0Y19zdGF0ZS0+YmFzZSwKKwkJCQkJCSAgJmNydGNfc3RhdGUtPnVhcGksCiAJCQkJCQkg IERSTV9QTEFORV9IRUxQRVJfTk9fU0NBTElORywKIAkJCQkJCSAgRFJNX1BMQU5FX0hFTFBFUl9O T19TQ0FMSU5HLAogCQkJCQkJICB0cnVlLCB0cnVlKTsKQEAgLTE3NDAsOCArMTc0MSw4IEBAIHN0 YXRpYyBpbnQgc2tsX3BsYW5lX2NoZWNrX2ZiKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCX0KIAogCS8qIFktdGlsaW5nIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSUYt SUQgSW50ZXJsYWNlIG1vZGUgKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgJiYKLQkg ICAgY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19J TlRFUkxBQ0UgJiYKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuZW5hYmxlICYmCisJICAgIGNydGNfc3Rh dGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSAmJgog CSAgICAoZmItPm1vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9ZX1RJTEVEIHx8CiAJICAgICBm Yi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lmX1RJTEVEIHx8CiAJICAgICBmYi0+bW9k aWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRURfQ0NTIHx8CkBAIC0xODIxLDcgKzE4MjIs NyBAQCBzdGF0aWMgaW50IHNrbF9wbGFuZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwKIAl9CiAKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19wbGFuZV9z dGF0ZSgmcGxhbmVfc3RhdGUtPmJhc2UsCi0JCQkJCQkgICZjcnRjX3N0YXRlLT5iYXNlLAorCQkJ CQkJICAmY3J0Y19zdGF0ZS0+dWFwaSwKIAkJCQkJCSAgbWluX3NjYWxlLCBtYXhfc2NhbGUsCiAJ CQkJCQkgIHRydWUsIHRydWUpOwogCWlmIChyZXQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3R2LmMKaW5kZXggYjcwMjIxZjUxMTJhLi45NmEzZDkzNDg0NzEgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3R2LmMKQEAgLTkyNCw3ICs5MjQsNyBAQCBpbnRlbF9l bmFibGVfdHYoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkvKiBQcmV2ZW50cyB2 Ymxhbmsgd2FpdHMgZnJvbSB0aW1pbmcgb3V0IGluIGludGVsX3R2X2RldGVjdF90eXBlKCkgKi8K IAlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsCi0JCQkgICAgICB0b19pbnRlbF9jcnRj KHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlKTsKKwkJCSAgICAgIHRvX2ludGVsX2NydGMo cGlwZV9jb25maWctPnVhcGkuY3J0YyktPnBpcGUpOwogCiAJSTkxNV9XUklURShUVl9DVEwsIEk5 MTVfUkVBRChUVl9DVEwpIHwgVFZfRU5DX0VOQUJMRSk7CiB9CkBAIC0xMDg2LDcgKzEwODYsNyBA QCBpbnRlbF90dl9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJnBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlID0ge307CiAJdTMyIHR2X2N0 bCwgaGN0bDEsIGhjdGwzLCB2Y3RsMSwgdmN0bDIsIHRtcDsKIAlzdHJ1Y3QgdHZfbW9kZSB0dl9t b2RlID0ge307CkBAIC0xMTg5LDcgKzExODksNyBAQCBpbnRlbF90dl9jb21wdXRlX2NvbmZpZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJdG9faW50ZWxfdHZfY29ubmVjdG9yX3N0 YXRlKGNvbm5fc3RhdGUpOwogCWNvbnN0IHN0cnVjdCB0dl9tb2RlICp0dl9tb2RlID0gaW50ZWxf dHZfbW9kZV9maW5kKGNvbm5fc3RhdGUpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0KLQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgaGRpc3BsYXkgPSBhZGp1c3RlZF9tb2Rl LT5jcnRjX2hkaXNwbGF5OwogCWludCB2ZGlzcGxheSA9IGFkanVzdGVkX21vZGUtPmNydGNfdmRp c3BsYXk7CiAKQEAgLTE0MTgsNyArMTQxOCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3R2X3ByZV9l bmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJY29uc3Qgc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMp OworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2Nv bmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfdHYgKmludGVsX3R2ID0gZW5jX3RvX3R2 KGVuY29kZXIpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUgKnR2X2Nv bm5fc3RhdGUgPQogCQl0b19pbnRlbF90dl9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zkc2MuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jCmluZGV4IDU5OGRkYjYwZjlm Yi4uYzJjNGRmODdiMmViIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Zkc2MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zk c2MuYwpAQCAtMzI5LDggKzMyOSw4IEBAIGludCBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlpbnQgY29sdW1uX2luZGV4ID0gMDsKIAl1OCBs aW5lX2J1Zl9kZXB0aCA9IDA7CiAKLQl2ZHNjX2NmZy0+cGljX3dpZHRoID0gcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCXZkc2NfY2ZnLT5waWNfaGVpZ2h0 ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OworCXZkc2Nf Y2ZnLT5waWNfd2lkdGggPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNw bGF5OworCXZkc2NfY2ZnLT5waWNfaGVpZ2h0ID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21v ZGUuY3J0Y192ZGlzcGxheTsKIAl2ZHNjX2NmZy0+c2xpY2Vfd2lkdGggPSBESVZfUk9VTkRfVVAo dmRzY19jZmctPnBpY193aWR0aCwKIAkJCQkJICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5z bGljZV9jb3VudCk7CiAJLyoKQEAgLTQ1OSw3ICs0NTksNyBAQCBpbnQgaW50ZWxfZHBfY29tcHV0 ZV9kc2NfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiBlbnVtIGludGVsX2Rpc3Bs YXlfcG93ZXJfZG9tYWluCiBpbnRlbF9kc2NfcG93ZXJfZG9tYWluKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsK IAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBjcnRjX3N0YXRlLT5jcHVfdHJhbnNj b2RlcjsKIAogCS8qCkBAIC00ODMsNyArNDgzLDcgQEAgaW50ZWxfZHNjX3Bvd2VyX2RvbWFpbihj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyB2b2lkIGlu dGVsX2NvbmZpZ3VyZV9wcHNfZm9yX2RzY19lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogCQkJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUt PmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNy dGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGRybV9kc2NfY29u ZmlnICp2ZHNjX2NmZyA9ICZjcnRjX3N0YXRlLT5kcF9kc2NfY2ZnOwogCWVudW0gcGlwZSBwaXBl ID0gY3J0Yy0+cGlwZTsKQEAgLTkwMiw3ICs5MDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF93 cml0ZV9kc2NfcHBzX3NkcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHZvaWQgaW50 ZWxfZHNjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJICAgICAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3Ry dWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0 Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWk5MTVfcmVnX3Qg ZHNzX2N0bDFfcmVnLCBkc3NfY3RsMl9yZWc7CkBAIC05MzgsNyArOTM4LDcgQEAgdm9pZCBpbnRl bF9kc2NfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiB2b2lkIGludGVs X2RzY19kaXNhYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMob2xkX2NydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKG9sZF9jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0g Y3J0Yy0+cGlwZTsKIAlpOTE1X3JlZ190IGRzc19jdGwxX3JlZywgZHNzX2N0bDJfcmVnOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L3Zsdl9kc2kuYwppbmRleCBhNzFiMjJiZGQ5NWIuLjBhMmQ0 M2RhY2Q5MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNp LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS92bHZfZHNpLmMKQEAgLTI2MSw5 ICsyNjEsOSBAQCBzdGF0aWMgaW50IGludGVsX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBjb250 YWluZXJfb2YoZW5jb2Rlciwgc3RydWN0IGludGVsX2RzaSwKIAkJCQkJCSAgIGJhc2UpOwogCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RzaS0+YXR0YWNo ZWRfY29ubmVjdG9yOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhw aXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMocGlwZV9jb25maWctPnVhcGkuY3J0Yyk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmZpeGVkX21vZGUgPSBpbnRlbF9jb25uZWN0b3ItPnBhbmVsLmZpeGVkX21vZGU7 Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgcmV0OwogCiAJRFJN X0RFQlVHX0tNUygiXG4iKTsKQEAgLTYyNCw3ICs2MjQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k c2lfcG9ydF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+ dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxf ZHNpKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBvcnQgcG9ydDsKIApAQCAtNzQ2LDcgKzc0Niw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkJCSBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9z dGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNp KCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBwaXBlX2NvbmZpZy0+ YmFzZS5jcnRjOworCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHBpcGVfY29uZmlnLT51YXBpLmNy dGM7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5k ZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CkBAIC0xMDMyLDkgKzEwMzIsOSBAQCBz dGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCQkJJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJCQkJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsK IAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZV9zdzsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CisJ c3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT51YXBp LmNydGMpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2ko JmVuY29kZXItPmJhc2UpOwogCXVuc2lnbmVkIGludCBsYW5lX2NvdW50ID0gaW50ZWxfZHNpLT5s YW5lX2NvdW50OwogCXVuc2lnbmVkIGludCBicHAsIGZtdDsKQEAgLTEwNDUsNyArMTA0NSw3IEBA IHN0YXRpYyB2b2lkIGJ4dF9kc2lfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAogCQkJCWNydGNfaGJsYW5rX3N0YXJ0X3N3LCBjcnRjX2hibGFua19lbmRfc3c7 CiAKIAkvKiBGSVhNRTogaHcgcmVhZG91dCBzaG91bGQgbm90IGRlcGVuZCBvbiBTVyBzdGF0ZSAq LwotCWFkanVzdGVkX21vZGVfc3cgPSAmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJYWRqdXN0ZWRfbW9kZV9zdyA9ICZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAK IAkvKgogCSAqIEF0bGVhc3Qgb25lIHBvcnQgaXMgYWN0aXZlIGFzIGVuY29kZXItPmdldF9jb25m aWcgY2FsbGVkIG9ubHkgaWYKQEAgLTEyMDQsNyArMTIwNCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2RzaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCX0KIAogCWlm IChwY2xrKSB7Ci0JCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9 IHBjbGs7CisJCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwY2xr OwogCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IHBjbGs7CiAJfQogfQpAQCAtMTMxNSw5ICsx MzE1LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXIsCiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVs X2VuY29kZXItPmJhc2U7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0Jc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5i YXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhwaXBlX2NvbmZpZy0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kg PSBlbmNfdG9faW50ZWxfZHNpKGVuY29kZXIpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25m aWctPmh3LmFkanVzdGVkX21vZGU7CiAJZW51bSBwb3J0IHBvcnQ7CiAJdW5zaWduZWQgaW50IGJw cCA9IG1pcGlfZHNpX3BpeGVsX2Zvcm1hdF90b19icHAoaW50ZWxfZHNpLT5waXhlbF9mb3JtYXQp OwogCXUzMiB2YWwsIHRtcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggYjM5 MjI2ZDdmOGQyLi42MTBiYzliNWQ3NDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j CkBAIC0yNzM0LDExICsyNzM0LDExIEBAIHN0YXRpYyBpbnQgaTkxNV9kaXNwbGF5X2luZm8oc3Ry dWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAkJc2VxX3ByaW50ZihtLCAiQ1JUQyAl ZDogcGlwZTogJWMsIGFjdGl2ZT0lcywgKHNpemU9JWR4JWQpLCBkaXRoZXI9JXMsIGJwcD0lZFxu IiwKIAkJCSAgIGNydGMtPmJhc2UuYmFzZS5pZCwgcGlwZV9uYW1lKGNydGMtPnBpcGUpLAotCQkJ ICAgeWVzbm8ocGlwZV9jb25maWctPmJhc2UuYWN0aXZlKSwKKwkJCSAgIHllc25vKHBpcGVfY29u ZmlnLT5ody5hY3RpdmUpLAogCQkJICAgcGlwZV9jb25maWctPnBpcGVfc3JjX3csIHBpcGVfY29u ZmlnLT5waXBlX3NyY19oLAogCQkJICAgeWVzbm8ocGlwZV9jb25maWctPmRpdGhlciksIHBpcGVf Y29uZmlnLT5waXBlX2JwcCk7CiAKLQkJaWYgKHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSkgewor CQlpZiAocGlwZV9jb25maWctPmh3LmFjdGl2ZSkgewogCQkJc3RydWN0IGludGVsX3BsYW5lICpj dXJzb3IgPQogCQkJCXRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UuY3Vyc29yKTsKIApAQCAtNDE4 MCwxMSArNDE4MCwxMSBAQCBzdGF0aWMgaW50IGk5MTVfZHJyc19jdGxfc2V0KHZvaWQgKmRhdGEs IHU2NCB2YWwpCiAKIAkJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFz ZS5zdGF0ZSk7CiAKLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fAorCQlpZiAoIWNy dGNfc3RhdGUtPmh3LmFjdGl2ZSB8fAogCQkgICAgIWNydGNfc3RhdGUtPmhhc19kcnJzKQogCQkJ Z290byBvdXQ7CiAKLQkJY29tbWl0ID0gY3J0Y19zdGF0ZS0+YmFzZS5jb21taXQ7CisJCWNvbW1p dCA9IGNydGNfc3RhdGUtPnVhcGkuY29tbWl0OwogCQlpZiAoY29tbWl0KSB7CiAJCQlyZXQgPSB3 YWl0X2Zvcl9jb21wbGV0aW9uX2ludGVycnVwdGlibGUoJmNvbW1pdC0+aHdfZG9uZSk7CiAJCQlp ZiAocmV0KQpAQCAtNDE5Niw3ICs0MTk2LDcgQEAgc3RhdGljIGludCBpOTE1X2RycnNfY3RsX3Nl dCh2b2lkICpkYXRhLCB1NjQgdmFsKQogCQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7 CiAJCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOwogCi0JCQlpZiAoIShjcnRjX3N0YXRlLT5i YXNlLmNvbm5lY3Rvcl9tYXNrICYKKwkJCWlmICghKGNydGNfc3RhdGUtPnVhcGkuY29ubmVjdG9y X21hc2sgJgogCQkJICAgICAgZHJtX2Nvbm5lY3Rvcl9tYXNrKGNvbm5lY3RvcikpKQogCQkJCWNv bnRpbnVlOwogCkBAIC00MjU1LDE0ICs0MjU1LDE0IEBAIGk5MTVfZmlmb191bmRlcnJ1bl9yZXNl dF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlscCwKIAkJCXJldHVybiByZXQ7CiAKIAkJY3J0Y19zdGF0 ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSk7Ci0JCWNvbW1p dCA9IGNydGNfc3RhdGUtPmJhc2UuY29tbWl0OworCQljb21taXQgPSBjcnRjX3N0YXRlLT51YXBp LmNvbW1pdDsKIAkJaWYgKGNvbW1pdCkgewogCQkJcmV0ID0gd2FpdF9mb3JfY29tcGxldGlvbl9p bnRlcnJ1cHRpYmxlKCZjb21taXQtPmh3X2RvbmUpOwogCQkJaWYgKCFyZXQpCiAJCQkJcmV0ID0g d2FpdF9mb3JfY29tcGxldGlvbl9pbnRlcnJ1cHRpYmxlKCZjb21taXQtPmZsaXBfZG9uZSk7CiAJ CX0KIAotCQlpZiAoIXJldCAmJiBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgeworCQlpZiAoIXJl dCAmJiBjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsKIAkJCURSTV9ERUJVR19LTVMoIlJlLWFybWlu ZyBGSUZPIHVuZGVycnVucyBvbiBwaXBlICVjXG4iLAogCQkJCSAgICAgIHBpcGVfbmFtZShpbnRl bF9jcnRjLT5waXBlKSk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDc1ZWUwMjdhYmI4 MC4uMjYyMTM2Mjk1YjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTQ4NCw3ICs0ODQs NyBAQCBzdGF0aWMgY29uc3QgaW50IHBlc3NpbWFsX2xhdGVuY3lfbnMgPSA1MDAwOwogCiBzdGF0 aWMgdm9pZCB2bHZfZ2V0X2ZpZm9fc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3Qgdmx2X2ZpZm9fc3RhdGUg KmZpZm9fc3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9fc3RhdGU7CiAJZW51bSBwaXBl IHBpcGUgPSBjcnRjLT5waXBlOwpAQCAtODE4LDcgKzgxOCw3IEBAIHN0YXRpYyBib29sIGludGVs X3dtX3BsYW5lX3Zpc2libGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0 YXRlLT5iYXNlLnBsYW5lKTsKIAogCS8qIEZJWE1FIGNoZWNrIHRoZSAnZW5hYmxlJyBpbnN0ZWFk ICovCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3 LmFjdGl2ZSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoKQEAgLTg3MSw3ICs4NzEsNyBAQCBzdGF0 aWMgdm9pZCBwaW5ldmlld191cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRj KQogCWNydGMgPSBzaW5nbGVfZW5hYmxlZF9jcnRjKGRldl9wcml2KTsKIAlpZiAoY3J0Yykgewog CQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0 Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1 c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJCQljcnRj LT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFsw XTsKQEAgLTExMDcsNyArMTEwNyw3IEBAIHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7 CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0 Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRf bW9kZTsKIAl1bnNpZ25lZCBpbnQgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVts ZXZlbF0gKiAxMDsKIAl1bnNpZ25lZCBpbnQgY2xvY2ssIGh0b3RhbCwgY3BwLCB3aWR0aCwgd207 CiAKQEAgLTExNjcsNyArMTE2Nyw3IEBAIHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiBzdGF0aWMgYm9vbCBnNHhfcmF3 X3BsYW5lX3dtX3NldChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkg aW50IGxldmVsLCBlbnVtIHBsYW5lX2lkIHBsYW5lX2lkLCB1MTYgdmFsdWUpCiB7Ci0Jc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShj cnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJYm9vbCBkaXJ0eSA9IGZhbHNlOwogCiAJZm9y ICg7IGxldmVsIDwgaW50ZWxfd21fbnVtX2xldmVscyhkZXZfcHJpdik7IGxldmVsKyspIHsKQEAg LTExODMsNyArMTE4Myw3IEBAIHN0YXRpYyBib29sIGc0eF9yYXdfcGxhbmVfd21fc2V0KHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIGJvb2wgZzR4X3Jhd19mYmNf d21fc2V0KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJICAgICAgIGlu dCBsZXZlbCwgdTE2IHZhbHVlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYp OwogCWJvb2wgZGlydHkgPSBmYWxzZTsKIAogCS8qIE5PUk1BTCBsZXZlbCBkb2Vzbid0IGhhdmUg YW4gRkJDIHdhdGVybWFyayAqLwpAQCAtMTI4NSw3ICsxMjg1LDcgQEAgc3RhdGljIGJvb2wgZzR4 X3Jhd19wbGFuZV93bV9pc192YWxpZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIHN0YXRpYyBib29sIGc0eF9yYXdfY3J0Y193bV9pc192YWxpZChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgICAgIGludCBsZXZlbCkKIHsK LQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUt PmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAogCWlmIChsZXZlbCA+IGRldl9w cml2LT53bS5tYXhfbGV2ZWwpCiAJCXJldHVybiBmYWxzZTsKQEAgLTEzMjMsOSArMTMyMyw5IEBA IHN0YXRpYyB2b2lkIGc0eF9pbnZhbGlkYXRlX3dtcyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK IAogc3RhdGljIGludCBnNHhfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uu c3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7 CiAJc3RydWN0IGc0eF93bV9zdGF0ZSAqd21fc3RhdGUgPSAmY3J0Y19zdGF0ZS0+d20uZzR4Lm9w dGltYWw7CiAJaW50IG51bV9hY3RpdmVfcGxhbmVzID0gaHdlaWdodDMyKGNydGNfc3RhdGUtPmFj dGl2ZV9wbGFuZXMgJgogCQkJCQkgIH5CSVQoUExBTkVfQ1VSU09SKSk7CkBAIC0xNDEyLDE3ICsx NDEyLDE3IEBAIHN0YXRpYyBpbnQgZzR4X2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAogc3RhdGljIGludCBnNHhfY29tcHV0ZV9pbnRlcm1lZGlh dGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogewotCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMobmV3X2NydGNf c3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGc0eF93bV9zdGF0ZSAqaW50ZXJtZWRpYXRlID0g Jm5ld19jcnRjX3N0YXRlLT53bS5nNHguaW50ZXJtZWRpYXRlOwogCWNvbnN0IHN0cnVjdCBnNHhf d21fc3RhdGUgKm9wdGltYWwgPSAmbmV3X2NydGNfc3RhdGUtPndtLmc0eC5vcHRpbWFsOwogCXN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KLQkJdG9faW50ZWxfYXRvbWlj X3N0YXRlKG5ld19jcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJdG9faW50ZWxfYXRvbWljX3N0 YXRlKG5ld19jcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0 YXRlKGludGVsX3N0YXRlLCBjcnRjKTsKIAljb25zdCBzdHJ1Y3QgZzR4X3dtX3N0YXRlICphY3Rp dmUgPSAmb2xkX2NydGNfc3RhdGUtPndtLmc0eC5vcHRpbWFsOwogCWVudW0gcGxhbmVfaWQgcGxh bmVfaWQ7CiAKLQlpZiAoIW5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCBkcm1fYXRvbWlj X2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPmJhc2UpKSB7CisJaWYgKCFuZXdf Y3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZu ZXdfY3J0Y19zdGF0ZS0+dWFwaSkpIHsKIAkJKmludGVybWVkaWF0ZSA9ICpvcHRpbWFsOwogCiAJ CWludGVybWVkaWF0ZS0+Y3hzciA9IGZhbHNlOwpAQCAtMTU1NCw4ICsxNTU0LDggQEAgc3RhdGlj IHZvaWQgZzR4X3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiBzdGF0aWMgdm9pZCBnNHhfaW5pdGlhbF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAogCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOwor CXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBp LmNydGMpOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIAljcnRjLT53 bS5hY3RpdmUuZzR4ID0gY3J0Y19zdGF0ZS0+d20uZzR4LmludGVybWVkaWF0ZTsKQEAgLTE1NjYs OCArMTU2Niw4IEBAIHN0YXRpYyB2b2lkIGc0eF9pbml0aWFsX3dhdGVybWFya3Moc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiBzdGF0aWMgdm9pZCBnNHhfb3B0aW1pemVfd2F0ZXJt YXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICAgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRl LT51YXBpLmNydGMtPmRldik7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAKIAlpZiAoIWNydGNfc3RhdGUtPndtLm5lZWRf cG9zdHZibF91cGRhdGUpCiAJCXJldHVybjsKQEAgLTE2MTYsNyArMTYxNiw3IEBAIHN0YXRpYyB1 MTYgdmx2X2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUsCiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBs YW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl1bnNpZ25lZCBpbnQgY2xvY2ss IGh0b3RhbCwgY3BwLCB3aWR0aCwgd207CiAKIAlpZiAoZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5 W2xldmVsXSA9PSAwKQpAQCAtMTY1NCw3ICsxNjU0LDcgQEAgc3RhdGljIGJvb2wgdmx2X25lZWRf c3ByaXRlMF9maWZvX3dvcmthcm91bmQodW5zaWduZWQgaW50IGFjdGl2ZV9wbGFuZXMpCiAKIHN0 YXRpYyBpbnQgdmx2X2NvbXB1dGVfZmlmbyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAljb25zdCBzdHJ1Y3QgZzR4X3BpcGVfd20gKnJh dyA9CiAJCSZjcnRjX3N0YXRlLT53bS52bHYucmF3W1ZMVl9XTV9MRVZFTF9QTTJdOwogCXN0cnVj dCB2bHZfZmlmb19zdGF0ZSAqZmlmb19zdGF0ZSA9ICZjcnRjX3N0YXRlLT53bS52bHYuZmlmb19z dGF0ZTsKQEAgLTE3NjYsNyArMTc2Niw3IEBAIHN0YXRpYyB1MTYgdmx2X2ludmVydF93bV92YWx1 ZSh1MTYgd20sIHUxNiBmaWZvX3NpemUpCiBzdGF0aWMgYm9vbCB2bHZfcmF3X3BsYW5lX3dtX3Nl dChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgaW50IGxldmVsLCBl bnVtIHBsYW5lX2lkIHBsYW5lX2lkLCB1MTYgdmFsdWUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51 YXBpLmNydGMtPmRldik7CiAJaW50IG51bV9sZXZlbHMgPSBpbnRlbF93bV9udW1fbGV2ZWxzKGRl dl9wcml2KTsKIAlib29sIGRpcnR5ID0gZmFsc2U7CiAKQEAgLTE4NDEsMTYgKzE4NDEsMTYgQEAg c3RhdGljIGJvb2wgdmx2X3Jhd19jcnRjX3dtX2lzX3ZhbGlkKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50IHZsdl9jb21wdXRlX3BpcGVfd20o c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPQotCQl0b19pbnRlbF9h dG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSk7CisJCXRvX2ludGVsX2F0b21pY19z dGF0ZShjcnRjX3N0YXRlLT51YXBpLnN0YXRlKTsKIAlzdHJ1Y3Qgdmx2X3dtX3N0YXRlICp3bV9z dGF0ZSA9ICZjcnRjX3N0YXRlLT53bS52bHYub3B0aW1hbDsKIAljb25zdCBzdHJ1Y3Qgdmx2X2Zp Zm9fc3RhdGUgKmZpZm9fc3RhdGUgPQogCQkmY3J0Y19zdGF0ZS0+d20udmx2LmZpZm9fc3RhdGU7 CiAJaW50IG51bV9hY3RpdmVfcGxhbmVzID0gaHdlaWdodDMyKGNydGNfc3RhdGUtPmFjdGl2ZV9w bGFuZXMgJgogCQkJCQkgIH5CSVQoUExBTkVfQ1VSU09SKSk7Ci0JYm9vbCBuZWVkc19tb2Rlc2V0 ID0gZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmJhc2UpOworCWJv b2wgbmVlZHNfbW9kZXNldCA9IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZjcnRjX3N0 YXRlLT51YXBpKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9z dGF0ZTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm5ld19wbGFuZV9zdGF0ZTsK IAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwpAQCAtMTk0OSw3ICsxOTQ5LDcgQEAgc3RhdGlj IGludCB2bHZfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogc3RhdGljIHZvaWQgdmx2X2F0b21pY191cGRhdGVfZmlmbyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19z dGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2Ny dGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1 bmNvcmUgPSAmZGV2X3ByaXYtPnVuY29yZTsKIAljb25zdCBzdHJ1Y3Qgdmx2X2ZpZm9fc3RhdGUg KmZpZm9fc3RhdGUgPQpAQCAtMjA0NSwxNyArMjA0NSwxNyBAQCBzdGF0aWMgdm9pZCB2bHZfYXRv bWljX3VwZGF0ZV9maWZvKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCiBzdGF0 aWMgaW50IHZsdl9jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqbmV3X2NydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG5ld19jcnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3Qg dmx2X3dtX3N0YXRlICppbnRlcm1lZGlhdGUgPSAmbmV3X2NydGNfc3RhdGUtPndtLnZsdi5pbnRl cm1lZGlhdGU7CiAJY29uc3Qgc3RydWN0IHZsdl93bV9zdGF0ZSAqb3B0aW1hbCA9ICZuZXdfY3J0 Y19zdGF0ZS0+d20udmx2Lm9wdGltYWw7CiAJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50 ZWxfc3RhdGUgPQotCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPmJhc2Uu c3RhdGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUobmV3X2NydGNfc3RhdGUtPnVhcGkuc3Rh dGUpOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSA9CiAJ CWludGVsX2F0b21pY19nZXRfb2xkX2NydGNfc3RhdGUoaW50ZWxfc3RhdGUsIGNydGMpOwogCWNv bnN0IHN0cnVjdCB2bHZfd21fc3RhdGUgKmFjdGl2ZSA9ICZvbGRfY3J0Y19zdGF0ZS0+d20udmx2 Lm9wdGltYWw7CiAJaW50IGxldmVsOwogCi0JaWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNl KSkgeworCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNf bmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPnVhcGkpKSB7CiAJCSppbnRlcm1lZGlhdGUg PSAqb3B0aW1hbDsKIAogCQlpbnRlcm1lZGlhdGUtPmN4c3IgPSBmYWxzZTsKQEAgLTIxNzMsOCAr MjE3Myw4IEBAIHN0YXRpYyB2b2lkIHZsdl9wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQgdmx2X2luaXRpYWxfd2F0ZXJtYXJr cyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVh cGkuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53bS53bV9t dXRleCk7CiAJY3J0Yy0+d20uYWN0aXZlLnZsdiA9IGNydGNfc3RhdGUtPndtLnZsdi5pbnRlcm1l ZGlhdGU7CkBAIC0yMTg1LDggKzIxODUsOCBAQCBzdGF0aWMgdm9pZCB2bHZfaW5pdGlhbF93YXRl cm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZvaWQgdmx2 X29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJ CQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj LT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJaWYgKCFjcnRj X3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlKQogCQlyZXR1cm47CkBAIC0yMjExLDcgKzIy MTEsNyBAQCBzdGF0aWMgdm9pZCBpOTY1X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51 c2VkX2NydGMpCiAJCS8qIHNlbGYtcmVmcmVzaCBoYXMgbXVjaCBoaWdoZXIgbGF0ZW5jeSAqLwog CQlzdGF0aWMgY29uc3QgaW50IHNyX2xhdGVuY3lfbnMgPSAxMjAwMDsKIAkJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGMtPmNvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCQkJJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJ Y29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5 LT5zdGF0ZS0+ZmI7CiAJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7CkBA IC0yMjkyLDcgKzIyOTIsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShk ZXZfcHJpdiwgUExBTkVfQSk7CiAJaWYgKGludGVsX2NydGNfYWN0aXZlKGNydGMpKSB7CiAJCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVk X21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJCWNydGMtPmJh c2UucHJpbWFyeS0+c3RhdGUtPmZiOwogCQlpbnQgY3BwOwpAQCAtMjMxOSw3ICsyMzE5LDcgQEAg c3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRj KQogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0IpOwog CWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGU7CisJCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJCQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5m YjsKIAkJaW50IGNwcDsKQEAgLTIzNjcsNyArMjM2Nyw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBk YXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAkJLyogc2VsZi1yZWZyZXNo IGhhcyBtdWNoIGhpZ2hlciBsYXRlbmN5ICovCiAJCXN0YXRpYyBjb25zdCBpbnQgc3JfbGF0ZW5j eV9ucyA9IDYwMDA7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0KLQkJCSZlbmFibGVkLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZlbmFi bGVkLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXIgKmZiID0KIAkJCWVuYWJsZWQtPmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwogCQlpbnQg Y2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwpAQCAtMjQyNSw3ICsyNDI1LDcgQEAg c3RhdGljIHZvaWQgaTg0NV91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRj KQogCWlmIChjcnRjID09IE5VTEwpCiAJCXJldHVybjsKIAotCWFkanVzdGVkX21vZGUgPSAmY3J0 Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5j b25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJcGxhbmVhX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dt KGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCiAJCQkJICAgICAgICZpODQ1X3dtX2luZm8sCiAJ CQkJICAgICAgIGRldl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5F X0EpLApAQCAtMjUxNSw3ICsyNTE1LDcgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9wcmlfd20o Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiBtZXRo b2QxOwogCiAJbWV0aG9kMiA9IGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUs Ci0JCQkJIGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkg Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKIAkJCQkgZHJtX3JlY3Rf d2lkdGgoJnBsYW5lX3N0YXRlLT5iYXNlLmRzdCksCiAJCQkJIGNwcCwgbWVtX3ZhbHVlKTsKIApA QCAtMjU0Myw3ICsyNTQzLDcgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIAltZXRob2QxID0gaWxrX3dt X21ldGhvZDEoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOwogCW1ldGhv ZDIgPSBpbGtfd21fbWV0aG9kMihjcnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJCSBjcnRjX3N0 YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCisJCQkJIGNydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCiAJCQkJIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9z dGF0ZS0+YmFzZS5kc3QpLAogCQkJCSBjcHAsIG1lbV92YWx1ZSk7CiAJcmV0dXJuIG1pbihtZXRo b2QxLCBtZXRob2QyKTsKQEAgLTI1NjgsNyArMjU2OCw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1 dGVfY3VyX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNw cCA9IHBsYW5lX3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKIAogCXJldHVybiBpbGtf d21fbWV0aG9kMihjcnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJICAgICAgY3J0Y19zdGF0ZS0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJICAgICAgY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKIAkJCSAgICAgIHBsYW5lX3N0YXRlLT5iYXNlLmNy dGNfdywgY3BwLCBtZW1fdmFsdWUpOwogfQogCkBAIC0yNzg5LDEyICsyNzg5LDEyIEBAIHN0YXRp YyB1MzIKIGhzd19jb21wdXRlX2xpbmV0aW1lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogewogCWNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmlu dGVsX3N0YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3Rh dGUpOworCQl0b19pbnRlbF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CiAJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19z dGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9k ZTsKIAl1MzIgbGluZXRpbWUsIGlwc19saW5ldGltZTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiAwOwogCWlm IChXQVJOX09OKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPT0gMCkpCiAJCXJldHVybiAwOwpA QCAtMzEwNCwxMSArMzEwNCw5IEBAIHN0YXRpYyBib29sIGlsa192YWxpZGF0ZV9waXBlX3dtKGNv bnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIC8qIENvbXB1dGUgbmV3IHdh dGVybWFya3MgZm9yIHRoZSBwaXBlICovCiBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20o c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUt PnVhcGkuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGlwZV93bSAq cGlwZV93bTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKLQljb25zdCBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0 IGRybV9wbGFuZSAqcGxhbmU7CiAJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVf c3RhdGU7CiAJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwcmlzdGF0ZSA9IE5VTEw7 CkBAIC0zMTE5LDcgKzMxMTcsNyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAKIAlwaXBlX3dtID0gJmNydGNfc3Rh dGUtPndtLmlsay5vcHRpbWFsOwogCi0JZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3Bs YW5lX3N0YXRlKHBsYW5lLCBwbGFuZV9zdGF0ZSwgJmNydGNfc3RhdGUtPmJhc2UpIHsKKwlkcm1f YXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBsYW5lX3N0YXRl LCAmY3J0Y19zdGF0ZS0+dWFwaSkgewogCQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBzID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpOwogCiAJCWlmIChwbGFuZS0+ dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9QUklNQVJZKQpAQCAtMzEzMCw3ICszMTI4LDcgQEAgc3Rh dGljIGludCBpbGtfY29tcHV0ZV9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogCQkJY3Vyc3RhdGUgPSBwczsKIAl9CiAKLQlwaXBlX3dtLT5waXBlX2VuYWJsZWQg PSBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZTsKKwlwaXBlX3dtLT5waXBlX2VuYWJsZWQgPSBjcnRj X3N0YXRlLT5ody5hY3RpdmU7CiAJaWYgKHNwcnN0YXRlKSB7CiAJCXBpcGVfd20tPnNwcml0ZXNf ZW5hYmxlZCA9IHNwcnN0YXRlLT5iYXNlLnZpc2libGU7CiAJCXBpcGVfd20tPnNwcml0ZXNfc2Nh bGVkID0gc3Byc3RhdGUtPmJhc2UudmlzaWJsZSAmJgpAQCAtMzE4NywxMSArMzE4NSwxMSBAQCBz dGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNy dGNfc3RhdGUpCiAgKi8KIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dtKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdzdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAq aW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMobmV3c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKG5ld3N0YXRlLT51YXBpLmNy dGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxf Y3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9waXBlX3dtICphID0gJm5ld3N0YXRlLT53 bS5pbGsuaW50ZXJtZWRpYXRlOwogCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0 YXRlID0KLQkJdG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld3N0YXRlLT5iYXNlLnN0YXRlKTsKKwkJ dG9faW50ZWxfYXRvbWljX3N0YXRlKG5ld3N0YXRlLT51YXBpLnN0YXRlKTsKIAljb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkc3RhdGUgPQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9j cnRjX3N0YXRlKGludGVsX3N0YXRlLCBpbnRlbF9jcnRjKTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxf cGlwZV93bSAqYiA9ICZvbGRzdGF0ZS0+d20uaWxrLm9wdGltYWw7CkBAIC0zMjAzLDcgKzMyMDEs NyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqbmV3c3RhdGUpCiAJICogYW5kIGFmdGVyIHRoZSB2YmxhbmsuCiAJICovCiAJ KmEgPSBuZXdzdGF0ZS0+d20uaWxrLm9wdGltYWw7Ci0JaWYgKCFuZXdzdGF0ZS0+YmFzZS5hY3Rp dmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld3N0YXRlLT5iYXNlKSB8fAor CWlmICghbmV3c3RhdGUtPmh3LmFjdGl2ZSB8fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNl dCgmbmV3c3RhdGUtPnVhcGkpIHx8CiAJICAgIGludGVsX3N0YXRlLT5za2lwX2ludGVybWVkaWF0 ZV93bSkKIAkJcmV0dXJuIDA7CiAKQEAgLTM3NzYsNyArMzc3NCw3IEBAIGJvb2wgaW50ZWxfY2Fu X2VuYWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWNydGMgPSBp bnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwgcGlwZSk7CiAJY3J0Y19zdGF0ZSA9IHRv X2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSk7CiAKLQlpZiAoY3J0Yy0+YmFzZS5z dGF0ZS0+YWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCWlm IChjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRF UkxBQ0UpCiAJCXJldHVybiBmYWxzZTsKIAogCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMo ZGV2LCBjcnRjLCBwbGFuZSkgewpAQCAtMzgyNiw3ICszODI0LDcgQEAgc3RhdGljIHUxNiBpbnRl bF9nZXRfZGRiX3NpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCiAJCXJldHVybiBkZGJfc2l6ZSAtIDQ7IC8qIDQgYmxv Y2tzIGZvciBieXBhc3MgcGF0aCBhbGxvY2F0aW9uICovCiAKLQlhZGp1c3RlZF9tb2RlID0gJmNy dGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlhZGp1c3RlZF9tb2RlID0gJmNydGNfc3Rh dGUtPmh3LmFkanVzdGVkX21vZGU7CiAJdG90YWxfZGF0YV9idyA9IHRvdGFsX2RhdGFfcmF0ZSAq IGRybV9tb2RlX3ZyZWZyZXNoKGFkanVzdGVkX21vZGUpOwogCiAJLyoKQEAgLTM4NTUsMTYgKzM4 NTMsMTYgQEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmFsbG9j LCAvKiBvdXQgKi8KIAkJCQkgICBpbnQgKm51bV9hY3RpdmUgLyogb3V0ICovKQogewotCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19z dGF0ZShzdGF0ZSk7Ci0Jc3RydWN0IGRybV9jcnRjICpmb3JfY3J0YyA9IGNydGNfc3RhdGUtPmJh c2UuY3J0YzsKKwlzdHJ1Y3QgZHJtX2NydGMgKmZvcl9jcnRjID0gY3J0Y19zdGF0ZS0+dWFwaS5j cnRjOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXUzMiBwaXBlX3dpZHRoID0g MCwgdG90YWxfd2lkdGggPSAwLCB3aWR0aF9iZWZvcmVfcGlwZSA9IDA7CiAJZW51bSBwaXBlIGZv cl9waXBlID0gdG9faW50ZWxfY3J0Yyhmb3JfY3J0YyktPnBpcGU7CiAJdTE2IGRkYl9zaXplOwog CXUzMiBpOwogCi0JaWYgKFdBUk5fT04oIXN0YXRlKSB8fCAhY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUpIHsKKwlpZiAoV0FSTl9PTighc3RhdGUpIHx8ICFjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsK IAkJYWxsb2MtPnN0YXJ0ID0gMDsKIAkJYWxsb2MtPmVuZCA9IDA7CiAJCSpudW1fYWN0aXZlID0g aHdlaWdodDMyKGRldl9wcml2LT5hY3RpdmVfY3J0Y3MpOwpAQCAtMzkwMywxMSArMzkwMSwxMSBA QCBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAkgKi8KIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShp bnRlbF9zdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJCWVudW0gcGlwZSBw aXBlID0gY3J0Yy0+cGlwZTsKIAkJaW50IGhkaXNwbGF5LCB2ZGlzcGxheTsKIAotCQlpZiAoIWNy dGNfc3RhdGUtPmJhc2UuZW5hYmxlKQorCQlpZiAoIWNydGNfc3RhdGUtPmh3LmVuYWJsZSkKIAkJ CWNvbnRpbnVlOwogCiAJCWRybV9tb2RlX2dldF9odl90aW1pbmcoYWRqdXN0ZWRfbW9kZSwgJmhk aXNwbGF5LCAmdmRpc3BsYXkpOwpAQCAtMzkzOCw3ICszOTM2LDcgQEAgc3RhdGljIHVuc2lnbmVk IGludAogc2tsX2N1cnNvcl9hbGxvY2F0aW9uKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQkgICAgICBpbnQgbnVtX2FjdGl2ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2 KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPnVhcGkuY3J0Yy0+ZGV2KTsKIAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhf bGV2ZWwoZGV2X3ByaXYpOwogCXN0cnVjdCBza2xfd21fbGV2ZWwgd20gPSB7fTsKIAlpbnQgcmV0 LCBtaW5fZGRiX2FsbG9jID0gMDsKQEAgLTQxMDYsNyArNDEwNCw3IEBAIHNrbF9waXBlX2Rvd25z Y2FsZV9hbW91bnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 CiAJdWludF9maXhlZF8xNl8xNl90IHBpcGVfZG93bnNjYWxlID0gdTMyX3RvX2ZpeGVkMTYoMSk7 CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcu ZW5hYmxlKQogCQlyZXR1cm4gcGlwZV9kb3duc2NhbGU7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+cGNo X3BmaXQuZW5hYmxlZCkgewpAQCAtNDEzOCw3ICs0MTM2LDcgQEAgaW50IHNrbF9jaGVja19waXBl X21heF9waXhlbF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCQkJCSAgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7Ci0Jc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOwogCXN0 cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKmRy bV9wbGFuZV9zdGF0ZTsKIAlpbnQgY3J0Y19jbG9jaywgZG90Y2xrOwpAQCAtNDE0NiwxMCArNDE0 NCwxMCBAQCBpbnQgc2tsX2NoZWNrX3BpcGVfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMsCiAJdWludF9maXhlZF8xNl8xNl90IHBpcGVfZG93bnNjYWxlOwogCXVp bnRfZml4ZWRfMTZfMTZfdCBtYXhfZG93bnNjYWxlID0gdTMyX3RvX2ZpeGVkMTYoMSk7CiAKLQlp ZiAoIWNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5hYmxl KQogCQlyZXR1cm4gMDsKIAotCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9z dGF0ZShwbGFuZSwgZHJtX3BsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZS0+YmFzZSkgeworCWRybV9h dG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgZHJtX3BsYW5lX3N0 YXRlLCAmY3J0Y19zdGF0ZS0+dWFwaSkgewogCQl1aW50X2ZpeGVkXzE2XzE2X3QgcGxhbmVfZG93 bnNjYWxlOwogCQl1aW50X2ZpeGVkXzE2XzE2X3QgZnBfOV9kaXZfOCA9IGRpdl9maXhlZDE2KDks IDgpOwogCQlpbnQgYnBwOwpAQCAtNDE3NCw3ICs0MTcyLDcgQEAgaW50IHNrbF9jaGVja19waXBl X21heF9waXhlbF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCiAJcGlwZV9k b3duc2NhbGUgPSBtdWxfZml4ZWQxNihwaXBlX2Rvd25zY2FsZSwgbWF4X2Rvd25zY2FsZSk7CiAK LQljcnRjX2Nsb2NrID0gY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7 CisJY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsK IAlkb3RjbGsgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5jZGNsay5sb2dpY2FsLmNk Y2xrOwogCiAJaWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJp dikgPj0gMTApCkBAIC00MjQzLDcgKzQyNDEsNyBAQCBza2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2Rh dGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgdTY0ICpw bGFuZV9kYXRhX3JhdGUsCiAJCQkJIHU2NCAqdXZfcGxhbmVfZGF0YV9yYXRlKQogewotCXN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPmJhc2Uuc3RhdGU7CisJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZTsKIAlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpk cm1fcGxhbmVfc3RhdGU7CiAJdTY0IHRvdGFsX2RhdGFfcmF0ZSA9IDA7CkBAIC00MjUyLDcgKzQy NTAsNyBAQCBza2xfZ2V0X3RvdGFsX3JlbGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJcmV0dXJuIDA7CiAKIAkvKiBDYWxjdWxhdGUgYW5kIGNh Y2hlIGRhdGEgcmF0ZSBmb3IgZWFjaCBwbGFuZSAqLwotCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9m b3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFuZSwgZHJtX3BsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZS0+ YmFzZSkgeworCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9zdGF0ZShwbGFu ZSwgZHJtX3BsYW5lX3N0YXRlLCAmY3J0Y19zdGF0ZS0+dWFwaSkgewogCQllbnVtIHBsYW5lX2lk IHBsYW5lX2lkID0gdG9faW50ZWxfcGxhbmUocGxhbmUpLT5pZDsKIAkJY29uc3Qgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9CiAJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShk cm1fcGxhbmVfc3RhdGUpOwpAQCAtNDI4MCwxMSArNDI3OCwxMSBAQCBpY2xfZ2V0X3RvdGFsX3Jl bGF0aXZlX2RhdGFfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlj b25zdCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpkcm1fcGxhbmVfc3RhdGU7CiAJdTY0IHRvdGFs X2RhdGFfcmF0ZSA9IDA7CiAKLQlpZiAoV0FSTl9PTighY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZSkp CisJaWYgKFdBUk5fT04oIWNydGNfc3RhdGUtPnVhcGkuc3RhdGUpKQogCQlyZXR1cm4gMDsKIAog CS8qIENhbGN1bGF0ZSBhbmQgY2FjaGUgZGF0YSByYXRlIGZvciBlYWNoIHBsYW5lICovCi0JZHJt X2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBkcm1fcGxhbmVf c3RhdGUsICZjcnRjX3N0YXRlLT5iYXNlKSB7CisJZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9l YWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBkcm1fcGxhbmVfc3RhdGUsICZjcnRjX3N0YXRlLT51YXBp KSB7CiAJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQogCQkJ dG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX3BsYW5lX3N0YXRlKTsKIAkJZW51bSBwbGFuZV9pZCBw bGFuZV9pZCA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKS0+aWQ7CkBAIC00MzI2LDggKzQzMjQsOCBA QCBzdGF0aWMgaW50CiBza2xfYWxsb2NhdGVfcGlwZV9kZGIoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiAv KiBvdXQgKi8pCiB7Ci0Jc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0 ZS0+YmFzZS5zdGF0ZTsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT5iYXNl LmNydGM7CisJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+dWFw aS5zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRlLT51YXBpLmNydGM7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYp OwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsK IAlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSAqYWxsb2MgPSAmY3J0Y19zdGF0ZS0+d20uc2tsLmRkYjsK QEAgLTQzNDksNyArNDM0Nyw3IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2RkYihzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoV0FSTl9PTighc3RhdGUpKQogCQlyZXR1cm4g MDsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwlpZiAoIWNydGNfc3RhdGUt Pmh3LmFjdGl2ZSkgewogCQlhbGxvYy0+c3RhcnQgPSBhbGxvYy0+ZW5kID0gMDsKIAkJcmV0dXJu IDA7CiAJfQpAQCAtNDU5MSw3ICs0NTg5LDcgQEAgaW50ZWxfZ2V0X2xpbmV0aW1lX3VzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXUzMiBjcnRjX2h0b3RhbDsK IAl1aW50X2ZpeGVkXzE2XzE2X3QgbGluZXRpbWVfdXM7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJh c2UuYWN0aXZlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm4gdTMyX3Rv X2ZpeGVkMTYoMCk7CiAKIAlwaXhlbF9yYXRlID0gY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZTsKQEAg LTQ1OTksNyArNDU5Nyw3IEBAIGludGVsX2dldF9saW5ldGltZV91cyhjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoV0FSTl9PTihwaXhlbF9yYXRlID09IDAp KQogCQlyZXR1cm4gdTMyX3RvX2ZpeGVkMTYoMCk7CiAKLQljcnRjX2h0b3RhbCA9IGNydGNfc3Rh dGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKKwljcnRjX2h0b3RhbCA9IGNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7CiAJbGluZXRpbWVfdXMgPSBkaXZf Zml4ZWQxNihjcnRjX2h0b3RhbCAqIDEwMDAsIHBpeGVsX3JhdGUpOwogCiAJcmV0dXJuIGxpbmV0 aW1lX3VzOwpAQCAtNDYzNCw3ICs0NjMyLDcgQEAgc2tsX2NvbXB1dGVfd21fcGFyYW1zKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkgICAgICB1MzIgcGxhbmVf cGl4ZWxfcmF0ZSwgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLAogCQkgICAgICBpbnQgY29sb3Jf cGxhbmUpCiB7Ci0Jc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNf c3RhdGUtPmJhc2UuY3J0Yyk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPnVhcGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CiAJdTMyIGludGVybV9wYnBsOwogCkBA IC00NzYwLDcgKzQ3NTgsNyBAQCBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCQkgY29uc3Qgc3RydWN0 IHNrbF93bV9sZXZlbCAqcmVzdWx0X3ByZXYsCiAJCQkJIHN0cnVjdCBza2xfd21fbGV2ZWwgKnJl c3VsdCAvKiBvdXQgKi8pCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjX3N0YXRlLT5iYXNlLmNydGMtPmRldik7CisJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7CiAJ dTMyIGxhdGVuY3kgPSBkZXZfcHJpdi0+d20uc2tsX2xhdGVuY3lbbGV2ZWxdOwogCXVpbnRfZml4 ZWRfMTZfMTZfdCBtZXRob2QxLCBtZXRob2QyOwogCXVpbnRfZml4ZWRfMTZfMTZfdCBzZWxlY3Rl ZF9yZXN1bHQ7CkBAIC00Nzg2LDE0ICs0Nzg0LDE0IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRl X3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCW1l dGhvZDEgPSBza2xfd21fbWV0aG9kMShkZXZfcHJpdiwgd3AtPnBsYW5lX3BpeGVsX3JhdGUsCiAJ CQkJIHdwLT5jcHAsIGxhdGVuY3ksIHdwLT5kYnVmX2Jsb2NrX3NpemUpOwogCW1ldGhvZDIgPSBz a2xfd21fbWV0aG9kMih3cC0+cGxhbmVfcGl4ZWxfcmF0ZSwKLQkJCQkgY3J0Y19zdGF0ZS0+YmFz ZS5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJCSBjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBsYXRlbmN5LAogCQkJCSB3cC0+cGxhbmVfYmxvY2tz X3Blcl9saW5lKTsKIAogCWlmICh3cC0+eV90aWxlZCkgewogCQlzZWxlY3RlZF9yZXN1bHQgPSBt YXhfZml4ZWQxNihtZXRob2QyLCB3cC0+eV90aWxlX21pbmltdW0pOwogCX0gZWxzZSB7Ci0JCWlm ICgod3AtPmNwcCAqIGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCAv CisJCWlmICgod3AtPmNwcCAqIGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90 YWwgLwogCQkgICAgIHdwLT5kYnVmX2Jsb2NrX3NpemUgPCAxKSAmJgogCQkgICAgICh3cC0+cGxh bmVfYnl0ZXNfcGVyX2xpbmUgLyB3cC0+ZGJ1Zl9ibG9ja19zaXplIDwgMSkpIHsKIAkJCXNlbGVj dGVkX3Jlc3VsdCA9IG1ldGhvZDI7CkBAIC00ODg0LDcgKzQ4ODIsNyBAQCBza2xfY29tcHV0ZV93 bV9sZXZlbHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCSAg ICAgIGNvbnN0IHN0cnVjdCBza2xfd21fcGFyYW1zICp3bV9wYXJhbXMsCiAJCSAgICAgIHN0cnVj dCBza2xfd21fbGV2ZWwgKmxldmVscykKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ ZGV2KTsKIAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYp OwogCXN0cnVjdCBza2xfd21fbGV2ZWwgKnJlc3VsdF9wcmV2ID0gJmxldmVsc1swXTsKIApAQCAt NDkwMSw3ICs0ODk5LDcgQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWxzKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogc3RhdGljIHUzMgogc2tsX2NvbXB1dGVfbGluZXRp bWVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlID0gY3J0Y19zdGF0ZS0+YmFzZS5zdGF0ZTsKKwlz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjcnRjX3N0YXRlLT51YXBpLnN0YXRlOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmRldik7 CiAJdWludF9maXhlZF8xNl8xNl90IGxpbmV0aW1lX3VzOwogCXUzMiBsaW5ldGltZV93bTsKQEAg LTQ5MjAsNyArNDkxOCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20o Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCQkJICAgICAgY29u c3Qgc3RydWN0IHNrbF93bV9wYXJhbXMgKndwLAogCQkJCSAgICAgIHN0cnVjdCBza2xfcGxhbmVf d20gKndtKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjX3N0YXRlLT5iYXNlLmNy dGMtPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Y19zdGF0ZS0+dWFwaS5jcnRj LT5kZXY7CiAJY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwogCXUxNiB0cmFuc19taW4sIHRyYW5zX3lfdGlsZV9taW47CiAJY29uc3QgdTE2IHRy YW5zX2Ftb3VudCA9IDEwOyAvKiBUaGlzIGlzIGNvbmZpZ3VyYWJsZSBhbW91bnQgKi8KQEAgLTUw ODAsNyArNTA3OCw3IEBAIHN0YXRpYyBpbnQgaWNsX2J1aWxkX3BsYW5lX3dtKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiBzdGF0aWMgaW50IHNrbF9idWlsZF9waXBlX3dt KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjLT5kZXYp OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0 ZS0+dWFwaS5jcnRjLT5kZXYpOwogCXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSA9ICZjcnRj X3N0YXRlLT53bS5za2wub3B0aW1hbDsKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAljb25z dCBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpkcm1fcGxhbmVfc3RhdGU7CkBAIC01MDkzLDcgKzUw OTEsNyBAQCBzdGF0aWMgaW50IHNrbF9idWlsZF9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogCW1lbXNldChwaXBlX3dtLT5wbGFuZXMsIDAsIHNpemVvZihwaXBl X3dtLT5wbGFuZXMpKTsKIAogCWRybV9hdG9taWNfY3J0Y19zdGF0ZV9mb3JfZWFjaF9wbGFuZV9z dGF0ZShwbGFuZSwgZHJtX3BsYW5lX3N0YXRlLAotCQkJCQkJICAgJmNydGNfc3RhdGUtPmJhc2Up IHsKKwkJCQkJCSAgICZjcnRjX3N0YXRlLT51YXBpKSB7CiAJCWNvbnN0IHN0cnVjdCBpbnRlbF9w bGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQogCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX3Bs YW5lX3N0YXRlKTsKIApAQCAtNTI3Miw4ICs1MjcwLDggQEAgc3RhdGljIGludAogc2tsX2RkYl9h ZGRfYWZmZWN0ZWRfcGxhbmVzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSwKIAkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUp CiB7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRlbF9hdG9taWNf c3RhdGUobmV3X2NydGNfc3RhdGUtPmJhc2Uuc3RhdGUpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShuZXdfY3J0 Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKG5ld19jcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmU7CiAKQEAgLTU1NzMsNyArNTU3MSw3IEBAIHN0YXRpYyBpbnQgc2tsX3dtX2Fk ZF9hZmZlY3RlZF9wbGFuZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCSAq IHBvd2VyIHdlbGwgdGhlIGhhcmR3YXJlIHN0YXRlIHdpbGwgZ28gb3V0IG9mIHN5bmMKIAkJICog d2l0aCB0aGUgc29mdHdhcmUgc3RhdGUuCiAJCSAqLwotCQlpZiAoIWRybV9hdG9taWNfY3J0Y19u ZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkgJiYKKwkJaWYgKCFkcm1fYXRvbWlj X2NydGNfbmVlZHNfbW9kZXNldCgmbmV3X2NydGNfc3RhdGUtPnVhcGkpICYmCiAJCSAgICBza2xf cGxhbmVfd21fZXF1YWxzKGRldl9wcml2LAogCQkJCQkmb2xkX2NydGNfc3RhdGUtPndtLnNrbC5v cHRpbWFsLnBsYW5lc1twbGFuZV9pZF0sCiAJCQkJCSZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLm9w dGltYWwucGxhbmVzW3BsYW5lX2lkXSkpCkBAIC01NjQwLDcgKzU2MzgsNyBAQCBza2xfY29tcHV0 ZV93bShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHN0YXRpYyB2b2lkIHNrbF9h dG9taWNfdXBkYXRlX2NydGNfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJ CQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0Jc3RydWN0 IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7 CisJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPnVh cGkuY3J0Yyk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShz dGF0ZS0+YmFzZS5kZXYpOwogCXN0cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSA9ICZjcnRjX3N0 YXRlLT53bS5za2wub3B0aW1hbDsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC01 NjU0LDcgKzU2NTIsNyBAQCBzdGF0aWMgdm9pZCBza2xfYXRvbWljX3VwZGF0ZV9jcnRjX3dtKHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZvaWQgc2tsX2luaXRpYWxf d20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgICBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKKwlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBza2xf ZGRiX3ZhbHVlcyAqcmVzdWx0cyA9ICZzdGF0ZS0+d21fcmVzdWx0czsKQEAgLTU2NjQsNyArNTY2 Miw3IEBAIHN0YXRpYyB2b2lkIHNrbF9pbml0aWFsX3dtKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKIAotCWlm IChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZV9jaGFuZ2VkKQorCWlmIChjcnRjX3N0YXRlLT51YXBp LmFjdGl2ZV9jaGFuZ2VkKQogCQlza2xfYXRvbWljX3VwZGF0ZV9jcnRjX3dtKHN0YXRlLCBjcnRj X3N0YXRlKTsKIAogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPndtLndtX211dGV4KTsKQEAgLTU3 MjMsOCArNTcyMSw4IEBAIHN0YXRpYyB2b2lkIGlsa19wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQgaWxrX2luaXRpYWxfd2F0 ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRj KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3Rh dGUtPnVhcGkuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVs X2NydGMoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjKTsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT53 bS53bV9tdXRleCk7CiAJY3J0Yy0+d20uYWN0aXZlLmlsayA9IGNydGNfc3RhdGUtPndtLmlsay5p bnRlcm1lZGlhdGU7CkBAIC01NzM1LDggKzU3MzMsOCBAQCBzdGF0aWMgdm9pZCBpbGtfaW5pdGlh bF93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogc3RhdGljIHZv aWQgaWxrX29wdGltaXplX3dhdGVybWFya3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUsCiAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+YmFz ZS5jcnRjLT5kZXYpOwotCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0Yyhj cnRjX3N0YXRlLT5iYXNlLmNydGMpOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5kZXYpOworCXN0cnVjdCBpbnRlbF9j cnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwogCiAJaWYg KCFjcnRjX3N0YXRlLT53bS5uZWVkX3Bvc3R2YmxfdXBkYXRlKQogCQlyZXR1cm47Ci0tIAoyLjIw LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==