From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 06/14] drm/i915: Perform automated conversions for crtc uapi/hw split, base -> hw. Date: Thu, 17 Oct 2019 15:20:57 +0200 Message-ID: <20191017132105.15528-6-maarten.lankhorst@linux.intel.com> References: <20191017132105.15528-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 42E9B6EA87 for ; Thu, 17 Oct 2019 13:21:10 +0000 (UTC) In-Reply-To: <20191017132105.15528-1-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U3BsaXQgdXAgY3J0Y19zdGF0ZS0+YmFzZSB0byBodyB3aGVyZSBhcHByb3ByaWF0ZS4gVGhpcyBp cyBkb25lIHVzaW5nIHRoZSBmb2xsb3dpbmcgcGF0Y2g6CgpAQApzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqVDsKaWRlbnRpZmllciB4ID1+ICJeKGFjdGl2ZXxlbmFibGV8ZGVnYW1tYV9sdXR8Z2Ft bWFfbHV0fGN0bXxtb2RlfGFkanVzdGVkX21vZGUpJCI7CkBACi1ULT5iYXNlLngKK1QtPmh3LngK CkBACnN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqVDsKaWRlbnRpZmllciB4ID1+ICJeKGFjdGl2ZXxl bmFibGV8ZGVnYW1tYV9sdXR8Z2FtbWFfbHV0fGN0bXxtb2RlfGFkanVzdGVkX21vZGUpJCI7CkBA Ci10b19pbnRlbF9jcnRjX3N0YXRlKFQpLT5iYXNlLngKK3RvX2ludGVsX2NydGNfc3RhdGUoVCkt Pmh3LngKClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pY2xf ZHNpLmMgICAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2F1ZGlvLmMgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf Y2RjbGsuYyAgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9j b2xvci5jICAgIHwgMTA4ICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2NydC5jICAgICAgfCAgMTggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGRpLmMgICAgICB8ICAxOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMgIHwgMjUyICsrKysrKysrKy0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kcC5jICAgICAgIHwgIDIyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2RwX21zdC5jICAgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHZvLmMgICAgICB8ICAxMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9mYmMuYyAgICAgIHwgICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2hkbWkuYyAgICAgfCAgMjAgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfbHNwY29uLmMgICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9sdmRzLmMgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX3BhbmVsLmMgICAgfCAgIDggKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfcGlwZV9jcmMuYyB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9wc3IuYyAgICAgIHwgIDEyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Nkdm8uYyAgICAgfCAgMTYgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfc3ByaXRlLmMgICB8ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF90di5jICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Zkc2MuYyAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2 X2RzaS5jICAgICAgICB8ICAxMCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgICAgICAgICAgIHwgICA4ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAg ICAgICAgICAgICAgfCAgNjIgKystLS0KIDI0IGZpbGVzIGNoYW5nZWQsIDMxNiBpbnNlcnRpb25z KCspLCAzMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pY2xfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ljbF9kc2ku YwppbmRleCA2ZTM5OGMzM2E1MjQuLjRlYzQ5M2U0NzU1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pY2xfZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pY2xfZHNpLmMKQEAgLTI3Niw3ICsyNzYsNyBAQCBzdGF0aWMgdm9pZCBjb25maWd1 cmVfZHVhbF9saW5rX21vZGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlpZiAo aW50ZWxfZHNpLT5kdWFsX2xpbmsgPT0gRFNJX0RVQUxfTElOS19GUk9OVF9CQUNLKSB7CiAJCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCQkJJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAkJdTMyIGRzc19jdGwyOwogCQl1MTYgaGFjdGl2ZSA9IGFkanVzdGVkX21vZGUt PmNydGNfaGRpc3BsYXk7CiAJCXUxNiBkbF9idWZmZXJfZGVwdGg7CkBAIC03NjgsNyArNzY4LDcg QEAgZ2VuMTFfZHNpX3NldF90cmFuc2NvZGVyX3RpbWluZ3Moc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3Rv X2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWVudW0gcG9ydCBwb3J0 OwogCWVudW0gdHJhbnNjb2RlciBkc2lfdHJhbnM7CiAJLyogaG9yaXpvbnRhbCB0aW1pbmdzICov CkBAIC0xMjE2LDcgKzEyMTYsNyBAQCBzdGF0aWMgdm9pZCBnZW4xMV9kc2lfZ2V0X3RpbWluZ3Mo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2RzaSAqaW50 ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJCQkmcGlwZV9jb25maWctPmJhc2UuYWRq dXN0ZWRfbW9kZTsKKwkJCQkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYg KGludGVsX2RzaS0+ZHVhbF9saW5rKSB7CiAJCWFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkg Kj0gMjsKQEAgLTEyNDksOSArMTI0OSw5IEBAIHN0YXRpYyB2b2lkIGdlbjExX2RzaV9nZXRfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXBpcGVfY29uZmlnLT5wb3J0X2Ns b2NrID0KIAkJY25sX2NhbGNfd3JwbGxfbGluayhkZXZfcHJpdiwgJnBpcGVfY29uZmlnLT5kcGxs X2h3X3N0YXRlKTsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9j ayA9IGludGVsX2RzaS0+cGNsazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrID0gaW50ZWxfZHNpLT5wY2xrOwogCWlmIChpbnRlbF9kc2ktPmR1YWxfbGluaykKLQkJ cGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrICo9IDI7CisJCXBpcGVf Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgKj0gMjsKIAogCWdlbjExX2RzaV9n ZXRfdGltaW5ncyhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7CiAJcGlwZV9jb25maWctPm91dHB1dF90 eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0RTSSk7CkBAIC0xMjY5LDcgKzEyNjksNyBAQCBzdGF0 aWMgaW50IGdlbjExX2RzaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSA9CiAJCQkJ CWludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZml4ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkJCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlOworCQkJCQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAlwaXBlX2NvbmZp Zy0+b3V0cHV0X2Zvcm1hdCA9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCOwogCWludGVsX2ZpeGVk X3BhbmVsX21vZGUoZml4ZWRfbW9kZSwgYWRqdXN0ZWRfbW9kZSk7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMKaW5kZXggZWQxODUxMWJlZmEzLi42YTU4ZThhZDg2 ZjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8u YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F1ZGlvLmMKQEAgLTIz Myw3ICsyMzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhkbWlfYXVkX25jdHMgaGRtaV9hdWRf bmN0c18zNmJwcFtdID0gewogc3RhdGljIHUzMiBhdWRpb19jb25maWdfaGRtaV9waXhlbF9jbG9j ayhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5i YXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWlu dCBpOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoaGRtaV9hdWRpb19jbG9jayk7IGkr KykgewpAQCAtNjk0LDcgKzY5NCw3IEBAIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZW5hYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAllbnVtIHBvcnQg cG9ydCA9IGVuY29kZXItPnBvcnQ7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMKaW5kZXggYWIxZjdjZWM1 MGM2Li5mZDFlZDBmYjg3NDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfY2RjbGsuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2NkY2xrLmMKQEAgLTE5MjQsNyArMTkyNCw3IEBAIGludCBpbnRlbF9jcnRjX2NvbXB1dGVfbWlu X2NkY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCQl0b19p OTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKIAlpbnQgbWluX2NkY2xrOwogCi0JaWYg KCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmVuYWJsZSkK IAkJcmV0dXJuIDA7CiAKIAltaW5fY2RjbGsgPSBpbnRlbF9waXhlbF9yYXRlX3RvX2NkY2xrKGNy dGNfc3RhdGUpOwpAQCAtMjA0Nyw3ICsyMDQ3LDcgQEAgc3RhdGljIHU4IGJ4dF9jb21wdXRlX21p bl92b2x0YWdlX2xldmVsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCSAgICAg ICBzaXplb2Yoc3RhdGUtPm1pbl92b2x0YWdlX2xldmVsKSk7CiAKIAlmb3JfZWFjaF9uZXdfaW50 ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoY3J0 Y19zdGF0ZS0+YmFzZS5lbmFibGUpCisJCWlmIChjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCQlz dGF0ZS0+bWluX3ZvbHRhZ2VfbGV2ZWxbaV0gPQogCQkJCWNydGNfc3RhdGUtPm1pbl92b2x0YWdl X2xldmVsOwogCQllbHNlCkBAIC0yMTMzLDcgKzIxMzMsNyBAQCBzdGF0aWMgaW50IHNrbF9kcGxs MF92Y28oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCXZjbyA9IGRldl9wcml2 LT5za2xfcHJlZmVycmVkX3Zjb19mcmVxOwogCiAJZm9yX2VhY2hfbmV3X2ludGVsX2NydGNfaW5f c3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKLQkJaWYgKCFjcnRjX3N0YXRlLT5i YXNlLmVuYWJsZSkKKwkJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCQljb250aW51ZTsK IAogCQlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0VE UCkpCkBAIC0yMjYwLDcgKzIyNjAsNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfYWxsX3Bp cGVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQlpZiAoSVNfRVJSKGNydGNf c3RhdGUpKQogCQkJcmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7CiAKLQkJaWYgKCFjcnRjX3N0 YXRlLT5iYXNlLmFjdGl2ZSB8fAorCQlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fAogCQkg ICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJmNydGNfc3RhdGUtPmJhc2UpKQogCQkJ Y29udGludWU7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY29sb3IuYwpp bmRleCA5NTU4NmE1ODgyMzQuLjY1ZTFiMThiZDdlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jb2xvci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfY29sb3IuYwpAQCAtMTE3LDEwICsxMTcsMTAgQEAgc3RhdGljIGJvb2wg bHV0X2lzX2xlZ2FjeShjb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmx1dCkKIAogc3Rh dGljIGJvb2wgY3J0Y19zdGF0ZV9pc19sZWdhY3lfZ2FtbWEoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0JcmV0dXJuICFjcnRjX3N0YXRlLT5iYXNlLmRlZ2Ft bWFfbHV0ICYmCi0JCSFjcnRjX3N0YXRlLT5iYXNlLmN0bSAmJgotCQljcnRjX3N0YXRlLT5iYXNl LmdhbW1hX2x1dCAmJgotCQlsdXRfaXNfbGVnYWN5KGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0 KTsKKwlyZXR1cm4gIWNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0ICYmCisJCSFjcnRjX3N0YXRl LT5ody5jdG0gJiYKKwkJY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0ICYmCisJCWx1dF9pc19sZWdh Y3koY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0KTsKIH0KIAogLyoKQEAgLTIxOSw3ICsyMTksNyBA QCBzdGF0aWMgYm9vbCBpbGtfY3NjX2xpbWl0ZWRfcmFuZ2UoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiBzdGF0aWMgdm9pZCBpbGtfY3NjX2NvbnZlcnRfY3RtKGNv bnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCXUxNiBjb2VmZnNb OV0pCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9jb2xvcl9jdG0gKmN0bSA9IGNydGNfc3RhdGUtPmJh c2UuY3RtLT5kYXRhOworCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfY3RtICpjdG0gPSBjcnRjX3N0 YXRlLT5ody5jdG0tPmRhdGE7CiAJY29uc3QgdTY0ICppbnB1dDsKIAl1NjQgdGVtcFs5XTsKIAlp bnQgaTsKQEAgLTI3NCw3ICsyNzQsNyBAQCBzdGF0aWMgdm9pZCBpbGtfbG9hZF9jc2NfbWF0cml4 KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwogCWJvb2wg bGltaXRlZF9jb2xvcl9yYW5nZSA9IGlsa19jc2NfbGltaXRlZF9yYW5nZShjcnRjX3N0YXRlKTsK IAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmN0bSkgeworCWlmIChjcnRjX3N0YXRlLT5ody5jdG0p IHsKIAkJdTE2IGNvZWZmWzldOwogCiAJCWlsa19jc2NfY29udmVydF9jdG0oY3J0Y19zdGF0ZSwg Y29lZmYpOwpAQCAtMzEyLDcgKzMxMiw3IEBAIHN0YXRpYyB2b2lkIGljbF9sb2FkX2NzY19tYXRy aXgoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJc3RydWN0IGlu dGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5jdG0pIHsKKwlpZiAoY3J0Y19zdGF0ZS0+aHcu Y3RtKSB7CiAJCXUxNiBjb2VmZls5XTsKIAogCQlpbGtfY3NjX2NvbnZlcnRfY3RtKGNydGNfc3Rh dGUsIGNvZWZmKTsKQEAgLTM0Miw4ICszNDIsOCBAQCBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2xv YWRfY3NjX21hdHJpeChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZQog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAotCWlmIChjcnRjX3N0YXRlLT5i YXNlLmN0bSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0 ZS0+YmFzZS5jdG0tPmRhdGE7CisJaWYgKGNydGNfc3RhdGUtPmh3LmN0bSkgeworCQljb25zdCBz dHJ1Y3QgZHJtX2NvbG9yX2N0bSAqY3RtID0gY3J0Y19zdGF0ZS0+aHcuY3RtLT5kYXRhOwogCQl1 MTYgY29lZmZzWzldID0ge307CiAJCWludCBpOwogCkBAIC00MzUsNyArNDM1LDcgQEAgc3RhdGlj IHZvaWQgaTl4eF9sb2FkX2x1dHNfaW50ZXJuYWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAKIHN0YXRpYyB2b2lkIGk5eHhfbG9hZF9sdXRzKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWk5eHhfbG9hZF9sdXRzX2ludGVy bmFsKGNydGNfc3RhdGUsIGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0KTsKKwlpOXh4X2xvYWRf bHV0c19pbnRlcm5hbChjcnRjX3N0YXRlLCBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQpOwogfQog CiBzdGF0aWMgdm9pZCBpOXh4X2NvbG9yX2NvbW1pdChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKQEAgLTUyNSw3ICs1MjUsNyBAQCBzdGF0aWMgdm9pZCBpOTY1X2xv YWRfbHV0XzEwcDYoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiBzdGF0aWMgdm9pZCBpOTY1X2xv YWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNf c3RhdGUtPmJhc2UuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq Z2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OwogCiAJaWYgKGNydGNfc3RhdGUt PmdhbW1hX21vZGUgPT0gR0FNTUFfTU9ERV9NT0RFXzhCSVQpCiAJCWk5eHhfbG9hZF9sdXRzKGNy dGNfc3RhdGUpOwpAQCAtNTQ4LDcgKzU0OCw3IEBAIHN0YXRpYyB2b2lkIGlsa19sb2FkX2x1dF8x MChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIHN0YXRpYyB2b2lkIGlsa19sb2FkX2x1dHMoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGludGVs X2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29u c3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNl LmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9 IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKIAogCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9tb2Rl ID09IEdBTU1BX01PREVfTU9ERV84QklUKQogCQlpOXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsK QEAgLTY1NSw4ICs2NTUsOCBAQCBzdGF0aWMgdm9pZCBpdmJfbG9hZF9sdXRfZXh0X21heChzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKIHN0YXRpYyB2b2lkIGl2Yl9sb2FkX2x1dHMoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdhbW1h X2x1dDsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0 Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Js b2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9s dXQ7CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1NQV9NT0RFX01PREVfOEJJ VCkgewogCQlpOXh4X2xvYWRfbHV0cyhjcnRjX3N0YXRlKTsKQEAgLTY3OCw4ICs2NzgsOCBAQCBz dGF0aWMgdm9pZCBpdmJfbG9hZF9sdXRzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogc3RhdGljIHZvaWQgYmR3X2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX3By b3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OwotCWNv bnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5i YXNlLmRlZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFf bHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVy dHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dDsKIAogCWlm IChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84QklUKSB7CiAJCWk5 eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUpOwpAQCAtNzA0LDcgKzcwNCw3IEBAIHN0YXRpYyB2b2lk IGdsa19sb2FkX2RlZ2FtbWFfbHV0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0 Yy0+YmFzZS5kZXYpOwogCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAljb25zdCB1MzIg bHV0X3NpemUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Y29sb3IuZGVnYW1tYV9sdXRfc2l6ZTsK LQljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5kZWdh bW1hX2x1dC0+ZGF0YTsKKwljb25zdCBzdHJ1Y3QgZHJtX2NvbG9yX2x1dCAqbHV0ID0gY3J0Y19z dGF0ZS0+aHcuZGVnYW1tYV9sdXQtPmRhdGE7CiAJdTMyIGk7CiAKIAkvKgpAQCAtNzY2LDcgKzc2 Niw3IEBAIHN0YXRpYyB2b2lkIGdsa19sb2FkX2RlZ2FtbWFfbHV0X2xpbmVhcihjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0CiAKIHN0YXRpYyB2b2lkIGdsa19sb2FkX2x1 dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0JY29uc3Qg c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5iYXNlLmdh bW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNy dGNfc3RhdGUtPmh3LmdhbW1hX2x1dDsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2lu dGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAogCS8qCkBAIC03NzcsNyArNzc3LDcg QEAgc3RhdGljIHZvaWQgZ2xrX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKIAkgKiB0aGUgZGVnYW1hIExVVCBzbyB0aGF0IHdlIGRvbid0IGhhdmUg dG8gcmVsb2FkCiAJICogaXQgZXZlcnkgdGltZSB0aGUgcGlwZSBDU0MgaXMgYmVpbmcgZW5hYmxl ZC4KIAkgKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkKKwlpZiAoY3J0Y19z dGF0ZS0+aHcuZGVnYW1tYV9sdXQpCiAJCWdsa19sb2FkX2RlZ2FtbWFfbHV0KGNydGNfc3RhdGUp OwogCWVsc2UKIAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXRfbGluZWFyKGNydGNfc3RhdGUpOwpAQCAt ODIzLDcgKzgyMyw3IEBAIHN0YXRpYyB2b2lkCiBpY2xfcHJvZ3JhbV9nYW1tYV9zdXBlcmZpbmVf c2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5j cnRjKTsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBjcnRjX3N0YXRl LT5iYXNlLmdhbW1hX2x1dDsKKwljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2Ig PSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CiAJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQg Kmx1dCA9IGJsb2ItPmRhdGE7CiAJc3RydWN0IGludGVsX2RzYiAqZHNiID0gaW50ZWxfZHNiX2dl dChjcnRjKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CkBAIC04NTUsNyArODU1LDcg QEAgc3RhdGljIHZvaWQKIGljbF9wcm9ncmFtX2dhbW1hX211bHRpX3NlZ21lbnQoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGludGVsX2NydGMg KmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3Ry dWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQ7 CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpibG9iID0gY3J0Y19zdGF0ZS0+aHcu Z2FtbWFfbHV0OwogCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRh OwogCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICplbnRyeTsKIAlzdHJ1Y3QgaW50ZWxfZHNi ICpkc2IgPSBpbnRlbF9kc2JfZ2V0KGNydGMpOwpAQCAtOTEwLDExICs5MTAsMTEgQEAgaWNsX3By b2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIAogc3RhdGljIHZvaWQgaWNsX2xvYWRfbHV0cyhjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0OworCWNvbnN0IHN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFf bHV0OwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRl LT5iYXNlLmNydGMpOwogCXN0cnVjdCBpbnRlbF9kc2IgKmRzYiA9IGludGVsX2RzYl9nZXQoY3J0 Yyk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkKKwlpZiAoY3J0Y19zdGF0 ZS0+aHcuZGVnYW1tYV9sdXQpCiAJCWdsa19sb2FkX2RlZ2FtbWFfbHV0KGNydGNfc3RhdGUpOwog CiAJc3dpdGNoIChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlICYgR0FNTUFfTU9ERV9NT0RFX01BU0sp IHsKQEAgLTk5MSw4ICs5OTEsOCBAQCBzdGF0aWMgdm9pZCBjaHZfbG9hZF9jZ21fZ2FtbWEoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiBzdGF0aWMgdm9pZCBjaHZfbG9hZF9sdXRzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewogCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0 cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+YmFzZS5nYW1t YV9sdXQ7Ci0JY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNy dGNfc3RhdGUtPmJhc2UuZGVnYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9i bG9iICpnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQ7CisJY29uc3Qgc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFf bHV0OwogCiAJY2hlcnJ5dmlld19sb2FkX2NzY19tYXRyaXgoY3J0Y19zdGF0ZSk7CiAKQEAgLTEw NjMsNyArMTA2Myw3IEBAIGludGVsX2NvbG9yX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlKQogCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9j cnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwogCi0J aWYgKCFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwKKwlpZiAoIW5ld19jcnRjX3N0YXRl LT5ody5hY3RpdmUgfHwKIAkgICAgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19j cnRjX3N0YXRlLT5iYXNlKSkKIAkJcmV0dXJuIDA7CiAKQEAgLTExMDgsOCArMTEwOCw4IEBAIHN0 YXRpYyBpbnQgY2hlY2tfbHV0X3NpemUoY29uc3Qgc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICps dXQsIGludCBleHBlY3RlZCkKIHN0YXRpYyBpbnQgY2hlY2tfbHV0cyhjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGNfc3RhdGUtPmJhc2UuY3J0Yy0+ZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2Ft bWFfbHV0OwotCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBj cnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlf YmxvYiAqZ2FtbWFfbHV0ID0gY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0OworCWNvbnN0IHN0cnVj dCBkcm1fcHJvcGVydHlfYmxvYiAqZGVnYW1tYV9sdXQgPSBjcnRjX3N0YXRlLT5ody5kZWdhbW1h X2x1dDsKIAlpbnQgZ2FtbWFfbGVuZ3RoLCBkZWdhbW1hX2xlbmd0aDsKIAl1MzIgZ2FtbWFfdGVz dHMsIGRlZ2FtbWFfdGVzdHM7CiAKQEAgLTExNTcsNyArMTE1Nyw3IEBAIHN0YXRpYyBpbnQgaTl4 eF9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0 dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCWNydGNfc3RhdGUtPmJh c2UuZ2FtbWFfbHV0ICYmCisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCQkhY3J0Y19z dGF0ZS0+YzhfcGxhbmVzOwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9IGk5eHhfZ2FtbWFf bW9kZShjcnRjX3N0YXRlKTsKQEAgLTExNzYsMTEgKzExNzYsMTEgQEAgc3RhdGljIHUzMiBjaHZf Y2dtX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYg KGNydGNfc3RhdGVfaXNfbGVnYWN5X2dhbW1hKGNydGNfc3RhdGUpKQogCQlyZXR1cm4gMDsKIAot CWlmIChjcnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQorCWlmIChjcnRjX3N0YXRlLT5ody5k ZWdhbW1hX2x1dCkKIAkJY2dtX21vZGUgfD0gQ0dNX1BJUEVfTU9ERV9ERUdBTU1BOwotCWlmIChj cnRjX3N0YXRlLT5iYXNlLmN0bSkKKwlpZiAoY3J0Y19zdGF0ZS0+aHcuY3RtKQogCQljZ21fbW9k ZSB8PSBDR01fUElQRV9NT0RFX0NTQzsKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQp CisJaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCkKIAkJY2dtX21vZGUgfD0gQ0dNX1BJUEVf TU9ERV9HQU1NQTsKIAogCXJldHVybiBjZ21fbW9kZTsKQEAgLTEyNTQsNyArMTI1NCw3IEBAIHN0 YXRpYyBpbnQgaWxrX2NvbG9yX2NoZWNrKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogCQlyZXR1cm4gcmV0OwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlID0KLQkJY3J0 Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgJiYKKwkJY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0ICYm CiAJCSFjcnRjX3N0YXRlLT5jOF9wbGFuZXM7CiAKIAkvKgpAQCAtMTI4MCw4ICsxMjgwLDggQEAg c3RhdGljIHUzMiBpdmJfZ2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKIAlpZiAoIWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSB8fAogCSAgICBjcnRj X3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkKIAkJcmV0dXJuIEdBTU1BX01PREVf TU9ERV84QklUOwotCWVsc2UgaWYgKGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCi0JCSBj cnRjX3N0YXRlLT5iYXNlLmRlZ2FtbWFfbHV0KQorCWVsc2UgaWYgKGNydGNfc3RhdGUtPmh3Lmdh bW1hX2x1dCAmJgorCQkgY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQpCiAJCXJldHVybiBHQU1N QV9NT0RFX01PREVfU1BMSVQ7CiAJZWxzZQogCQlyZXR1cm4gR0FNTUFfTU9ERV9NT0RFXzEwQklU OwpAQCAtMTI5NSw3ICsxMjk1LDcgQEAgc3RhdGljIHUzMiBpdmJfY3NjX21vZGUoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJICogQ1NDIGNvbWVzIGFmdGVyIHRo ZSBMVVQgaW4gZGVnYW1tYSwgUkdCLT5ZQ2JDciwKIAkgKiBhbmQgUkdCIGZ1bGwtPmxpbWl0ZWQg cmFuZ2UgbW9kZS4KIAkgKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCB8fAor CWlmIChjcnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCB8fAogCSAgICBjcnRjX3N0YXRlLT5vdXRw dXRfZm9ybWF0ICE9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCIHx8CiAJICAgIGxpbWl0ZWRfY29s b3JfcmFuZ2UpCiAJCXJldHVybiAwOwpAQCAtMTMxMywxMyArMTMxMywxMyBAQCBzdGF0aWMgaW50 IGl2Yl9jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJ cmV0dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdhbW1hX2VuYWJsZSA9Ci0JCShjcnRjX3N0YXRl LT5iYXNlLmdhbW1hX2x1dCB8fAotCQkgY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCkgJiYK KwkJKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCB8fAorCQkgY3J0Y19zdGF0ZS0+aHcuZGVnYW1t YV9sdXQpICYmCiAJCSFjcnRjX3N0YXRlLT5jOF9wbGFuZXM7CiAKIAljcnRjX3N0YXRlLT5jc2Nf ZW5hYmxlID0KIAkJY3J0Y19zdGF0ZS0+b3V0cHV0X2Zvcm1hdCAhPSBJTlRFTF9PVVRQVVRfRk9S TUFUX1JHQiB8fAotCQljcnRjX3N0YXRlLT5iYXNlLmN0bSB8fCBsaW1pdGVkX2NvbG9yX3Jhbmdl OworCQljcnRjX3N0YXRlLT5ody5jdG0gfHwgbGltaXRlZF9jb2xvcl9yYW5nZTsKIAogCWNydGNf c3RhdGUtPmdhbW1hX21vZGUgPSBpdmJfZ2FtbWFfbW9kZShjcnRjX3N0YXRlKTsKIApAQCAtMTM1 MCwxNCArMTM1MCwxNCBAQCBzdGF0aWMgaW50IGdsa19jb2xvcl9jaGVjayhzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJcmV0dXJuIHJldDsKIAogCWNydGNfc3RhdGUtPmdh bW1hX2VuYWJsZSA9Ci0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0ICYmCisJCWNydGNfc3Rh dGUtPmh3LmdhbW1hX2x1dCAmJgogCQkhY3J0Y19zdGF0ZS0+YzhfcGxhbmVzOwogCiAJLyogT24g R0xLKyBkZWdhbW1hIExVVCBpcyBjb250cm9sbGVkIGJ5IGNzY19lbmFibGUgKi8KIAljcnRjX3N0 YXRlLT5jc2NfZW5hYmxlID0KLQkJY3J0Y19zdGF0ZS0+YmFzZS5kZWdhbW1hX2x1dCB8fAorCQlj cnRjX3N0YXRlLT5ody5kZWdhbW1hX2x1dCB8fAogCQljcnRjX3N0YXRlLT5vdXRwdXRfZm9ybWF0 ICE9IElOVEVMX09VVFBVVF9GT1JNQVRfUkdCIHx8Ci0JCWNydGNfc3RhdGUtPmJhc2UuY3RtIHx8 IGNydGNfc3RhdGUtPmxpbWl0ZWRfY29sb3JfcmFuZ2U7CisJCWNydGNfc3RhdGUtPmh3LmN0bSB8 fCBjcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9yX3JhbmdlOwogCiAJY3J0Y19zdGF0ZS0+Z2FtbWFf bW9kZSA9IGdsa19nYW1tYV9tb2RlKGNydGNfc3RhdGUpOwogCkBAIC0xMzc0LDE0ICsxMzc0LDE0 IEBAIHN0YXRpYyB1MzIgaWNsX2dhbW1hX21vZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiB7CiAJdTMyIGdhbW1hX21vZGUgPSAwOwogCi0JaWYgKGNydGNfc3Rh dGUtPmJhc2UuZGVnYW1tYV9sdXQpCisJaWYgKGNydGNfc3RhdGUtPmh3LmRlZ2FtbWFfbHV0KQog CQlnYW1tYV9tb2RlIHw9IFBSRV9DU0NfR0FNTUFfRU5BQkxFOwogCi0JaWYgKGNydGNfc3RhdGUt PmJhc2UuZ2FtbWFfbHV0ICYmCisJaWYgKGNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCAmJgogCSAg ICAhY3J0Y19zdGF0ZS0+YzhfcGxhbmVzKQogCQlnYW1tYV9tb2RlIHw9IFBPU1RfQ1NDX0dBTU1B X0VOQUJMRTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgfHwKKwlpZiAoIWNy dGNfc3RhdGUtPmh3LmdhbW1hX2x1dCB8fAogCSAgICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1t YShjcnRjX3N0YXRlKSkKIAkJZ2FtbWFfbW9kZSB8PSBHQU1NQV9NT0RFX01PREVfOEJJVDsKIAll bHNlCkBAIC0xMzk0LDcgKzEzOTQsNyBAQCBzdGF0aWMgdTMyIGljbF9jc2NfbW9kZShjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAl1MzIgY3NjX21vZGUgPSAw OwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuY3RtKQorCWlmIChjcnRjX3N0YXRlLT5ody5jdG0p CiAJCWNzY19tb2RlIHw9IElDTF9DU0NfRU5BQkxFOwogCiAJaWYgKGNydGNfc3RhdGUtPm91dHB1 dF9mb3JtYXQgIT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9SR0IgfHwKQEAgLTE2MjMsNyArMTYyMyw3 IEBAIHN0YXRpYyB2b2lkIGk5eHhfcmVhZF9sdXRzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQogCWlmICghY3J0Y19zdGF0ZS0+Z2FtbWFfZW5hYmxlKQogCQlyZXR1cm47CiAK LQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGk5eHhfcmVhZF9sdXRfOChjcnRjX3N0YXRl KTsKKwljcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgPSBpOXh4X3JlYWRfbHV0XzgoY3J0Y19zdGF0 ZSk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKgpAQCAtMTY3Myw5ICsx NjczLDkgQEAgc3RhdGljIHZvaWQgaTk2NV9yZWFkX2x1dHMoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiAJCXJldHVybjsKIAogCWlmIChjcnRjX3N0YXRlLT5nYW1tYV9tb2Rl ID09IEdBTU1BX01PREVfTU9ERV84QklUKQotCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9 IGk5eHhfcmVhZF9sdXRfOChjcnRjX3N0YXRlKTsKKwkJY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0 ID0gaTl4eF9yZWFkX2x1dF84KGNydGNfc3RhdGUpOwogCWVsc2UKLQkJY3J0Y19zdGF0ZS0+YmFz ZS5nYW1tYV9sdXQgPSBpOTY1X3JlYWRfbHV0XzEwcDYoY3J0Y19zdGF0ZSk7CisJCWNydGNfc3Rh dGUtPmh3LmdhbW1hX2x1dCA9IGk5NjVfcmVhZF9sdXRfMTBwNihjcnRjX3N0YXRlKTsKIH0KIAog c3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCkBAIC0xNzE1LDcgKzE3MTUsNyBAQCBj aHZfcmVhZF9jZ21fbHV0KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogc3RhdGljIHZvaWQgY2h2X3JlYWRfbHV0cyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKIAlpZiAoY3J0Y19zdGF0ZS0+Y2dtX21vZGUgJiBDR01fUElQRV9NT0RFX0dB TU1BKQotCQljcnRjX3N0YXRlLT5iYXNlLmdhbW1hX2x1dCA9IGNodl9yZWFkX2NnbV9sdXQoY3J0 Y19zdGF0ZSk7CisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCA9IGNodl9yZWFkX2NnbV9sdXQo Y3J0Y19zdGF0ZSk7CiAJZWxzZQogCQlpOTY1X3JlYWRfbHV0cyhjcnRjX3N0YXRlKTsKIH0KQEAg LTE3NjIsOSArMTc2Miw5IEBAIHN0YXRpYyB2b2lkIGlsa19yZWFkX2x1dHMoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCXJldHVybjsKIAogCWlmIChjcnRjX3N0YXRlLT5n YW1tYV9tb2RlID09IEdBTU1BX01PREVfTU9ERV84QklUKQotCQljcnRjX3N0YXRlLT5iYXNlLmdh bW1hX2x1dCA9IGk5eHhfcmVhZF9sdXRfOChjcnRjX3N0YXRlKTsKKwkJY3J0Y19zdGF0ZS0+aHcu Z2FtbWFfbHV0ID0gaTl4eF9yZWFkX2x1dF84KGNydGNfc3RhdGUpOwogCWVsc2UKLQkJY3J0Y19z dGF0ZS0+YmFzZS5nYW1tYV9sdXQgPSBpbGtfcmVhZF9sdXRfMTAoY3J0Y19zdGF0ZSk7CisJCWNy dGNfc3RhdGUtPmh3LmdhbW1hX2x1dCA9IGlsa19yZWFkX2x1dF8xMChjcnRjX3N0YXRlKTsKIH0K IAogc3RhdGljIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqCkBAIC0xODExLDkgKzE4MTEsOSBA QCBzdGF0aWMgdm9pZCBnbGtfcmVhZF9sdXRzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogCQlyZXR1cm47CiAKIAlpZiAoY3J0Y19zdGF0ZS0+Z2FtbWFfbW9kZSA9PSBHQU1N QV9NT0RFX01PREVfOEJJVCkKLQkJY3J0Y19zdGF0ZS0+YmFzZS5nYW1tYV9sdXQgPSBpOXh4X3Jl YWRfbHV0XzgoY3J0Y19zdGF0ZSk7CisJCWNydGNfc3RhdGUtPmh3LmdhbW1hX2x1dCA9IGk5eHhf cmVhZF9sdXRfOChjcnRjX3N0YXRlKTsKIAllbHNlCi0JCWNydGNfc3RhdGUtPmJhc2UuZ2FtbWFf bHV0ID0gZ2xrX3JlYWRfbHV0XzEwKGNydGNfc3RhdGUsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDAp KTsKKwkJY3J0Y19zdGF0ZS0+aHcuZ2FtbWFfbHV0ID0gZ2xrX3JlYWRfbHV0XzEwKGNydGNfc3Rh dGUsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApKTsKIH0KIAogdm9pZCBpbnRlbF9jb2xvcl9pbml0 KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9jcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfY3J0LmMKaW5kZXggZmY2MTI2ZWE3OTNjLi4zOTlhYmMzZDUyMWUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYwpAQCAtMTMyLDkgKzEzMiw5IEBAIHN0YXRpYyB2 b2lkIGludGVsX2NydF9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog ewogCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9BTkFMT0cp OwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBpbnRlbF9jcnRf Z2V0X2ZsYWdzKGVuY29kZXIpOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdz IHw9IGludGVsX2NydF9nZXRfZmxhZ3MoZW5jb2Rlcik7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jazsKKwlwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRf Y2xvY2s7CiB9CiAKIHN0YXRpYyB2b2lkIGhzd19jcnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKQEAgLTE0NCwxMyArMTQ0LDEzIEBAIHN0YXRpYyB2b2lkIGhzd19j cnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWludGVsX2Rk aV9nZXRfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKIAotCXBpcGVfY29uZmlnLT5iYXNl LmFkanVzdGVkX21vZGUuZmxhZ3MgJj0gfihEUk1fTU9ERV9GTEFHX1BIU1lOQyB8CisJcGlwZV9j b25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJj0gfihEUk1fTU9ERV9GTEFHX1BIU1lOQyB8 CiAJCQkJCSAgICAgIERSTV9NT0RFX0ZMQUdfTkhTWU5DIHwKIAkJCQkJICAgICAgRFJNX01PREVf RkxBR19QVlNZTkMgfAogCQkJCQkgICAgICBEUk1fTU9ERV9GTEFHX05WU1lOQyk7Ci0JcGlwZV9j b25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVu Y29kZXIpOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGludGVsX2Ny dF9nZXRfZmxhZ3MoZW5jb2Rlcik7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl LmNydGNfY2xvY2sgPSBscHRfZ2V0X2ljbGtpcChkZXZfcHJpdik7CisJcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IGxwdF9nZXRfaWNsa2lwKGRldl9wcml2KTsKIH0K IAogLyogTm90ZTogVGhlIGNhbGxlciBpcyByZXF1aXJlZCB0byBmaWx0ZXIgb3V0IGRwbXMgbW9k ZXMgbm90IHN1cHBvcnRlZCBieSB0aGUKQEAgLTE2Miw3ICsxNjIsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9jcnRfc2V0X2RwbXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 CiAJc3RydWN0IGludGVsX2NydCAqY3J0ID0gaW50ZWxfZW5jb2Rlcl90b19jcnQoZW5jb2Rlcik7 CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJh c2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PSAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7 CiAJdTMyIGFkcGE7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1KQpAQCAtMzU4LDcg KzM1OCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGU7CiAKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX0RCTFNDQU4pCiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMzczLDcgKzM3Myw3IEBAIHN0YXRp YyBpbnQgcGNoX2NydF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQkgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAog CWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKIAkJcmV0 dXJuIC1FSU5WQUw7CkBAIC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIGludCBoc3dfY3J0X2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAog CWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NBTikKIAkJcmV0 dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwppbmRl eCA0YzgxNDQ5ZWMxNDQuLmM4NjM5YjkyYTZkYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RkaS5jCkBAIC0xNTI4LDcgKzE1MjgsNyBAQCBzdGF0aWMgdm9pZCBkZGlfZG90 Y2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAlpZiAocGlw ZV9jb25maWctPnBpeGVsX211bHRpcGxpZXIpCiAJCWRvdGNsb2NrIC89IHBpcGVfY29uZmlnLT5w aXhlbF9tdWx0aXBsaWVyOwogCi0JcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrID0gZG90Y2xvY2s7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19j bG9jayA9IGRvdGNsb2NrOwogfQogCiBzdGF0aWMgdm9pZCBpY2xfZGRpX2Nsb2NrX2dldChzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKQEAgLTE4NjAsOSArMTg2MCw5IEBAIGludGVsX2Rk aV90cmFuc2NvZGVyX2Z1bmNfcmVnX3ZhbF9nZXQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpCiAJCUJVRygpOwogCX0KIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BWU1lOQykKKwlpZiAoY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUFZTWU5DKQogCQl0ZW1w IHw9IFRSQU5TX0RESV9QVlNZTkM7Ci0JaWYgKGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9k ZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DKQorCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1 c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19QSFNZTkMpCiAJCXRlbXAgfD0gVFJBTlNf RERJX1BIU1lOQzsKIAogCWlmIChjcHVfdHJhbnNjb2RlciA9PSBUUkFOU0NPREVSX0VEUCkgewpA QCAtMzM3MSw3ICszMzcxLDcgQEAgc3RhdGljIHZvaWQgdGdsX2RjM2NvX2V4aXRsaW5lX2NvbXB1 dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXUzMiBleGl0X3Nj YW5saW5lczsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNz dGF0ZS0+YmFzZS5jcnRjLT5kZXYpOwotCXUzMiBjcnRjX3ZkaXNwbGF5ID0gY3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKKwl1MzIgY3J0Y192ZGlzcGxheSA9IGNzdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OwogCiAJY3N0YXRlLT5kYzNjb19leGl0 bGluZSA9IDA7CiAKQEAgLTMzODMsNyArMzM4Myw3IEBAIHN0YXRpYyB2b2lkIHRnbF9kYzNjb19l eGl0bGluZV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkg ICAgZW5jb2Rlci0+cG9ydCAhPSBQT1JUX0EpCiAJCXJldHVybjsKIAotCWlmICghY3N0YXRlLT5o YXNfcHNyMiB8fCAhY3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNzdGF0ZS0+aGFzX3BzcjIg fHwgIWNzdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMzM5MSw3ICszMzkx LDcgQEAgc3RhdGljIHZvaWQgdGdsX2RjM2NvX2V4aXRsaW5lX2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCSAqIFBTUjIgdHJhbnNjb2RlciBFYXJseSBFeGl0 IHNjYW5saW5lcyA9IFJPVU5EVVAoMjAwIC8gbGluZSB0aW1lKSArIDEKIAkgKi8KIAlleGl0X3Nj YW5saW5lcyA9Ci0JCWludGVsX3VzZWNzX3RvX3NjYW5saW5lcygmY3N0YXRlLT5iYXNlLmFkanVz dGVkX21vZGUsIDIwMCkgKyAxOworCQlpbnRlbF91c2Vjc190b19zY2FubGluZXMoJmNzdGF0ZS0+ aHcuYWRqdXN0ZWRfbW9kZSwgMjAwKSArIDE7CiAKIAlpZiAoV0FSTl9PTihleGl0X3NjYW5saW5l cyA+IGNydGNfdmRpc3BsYXkpKQogCQlyZXR1cm47CkBAIC00MDc2LDcgKzQwNzYsNyBAQCBpbnRl bF9kZGlfdXBkYXRlX3ByZXBhcmUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJ V0FSTl9PTihjcnRjICYmIGNydGMtPmFjdGl2ZSk7CiAKIAlpbnRlbF90Y19wb3J0X2dldF9saW5r KGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSksIHJlcXVpcmVkX2xhbmVzKTsKLQlpZiAo Y3J0Y19zdGF0ZSAmJiBjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoY3J0Y19zdGF0ZSAm JiBjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCWludGVsX3VwZGF0ZV9hY3RpdmVfZHBsbChzdGF0 ZSwgY3J0YywgZW5jb2Rlcik7CiB9CiAKQEAgLTQyMjQsNyArNDIyNCw3IEBAIHZvaWQgaW50ZWxf ZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZWxzZQogCQlm bGFncyB8PSBEUk1fTU9ERV9GTEFHX05WU1lOQzsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUu ZmxhZ3MgfD0gZmxhZ3M7CiAKIAlzd2l0Y2ggKHRlbXAgJiBUUkFOU19ERElfQlBDX01BU0spIHsK IAljYXNlIFRSQU5TX0RESV9CUENfNjoKQEAgLTQ1MDcsNyArNDUwNyw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfaGRtaV9yZXNldF9saW5rKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCiAJ V0FSTl9PTighaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERN SSkpOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUt Pmh3LmFjdGl2ZSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoIWNydGNfc3RhdGUtPmhkbWlfaGlnaF90 bWRzX2Nsb2NrX3JhdGlvICYmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheS5jCmluZGV4IGFkYjcwZDc2YTYxYy4uMzEwNmFhZjU1ZjE3IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTAxMyw3ICsxMDEzLDcg QEAgYm9vbCBpbnRlbF9jcnRjX2FjdGl2ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAkgKiBm b3IgYXRvbWljLgogCSAqLwogCXJldHVybiBjcnRjLT5hY3RpdmUgJiYgY3J0Yy0+YmFzZS5wcmlt YXJ5LT5zdGF0ZS0+ZmIgJiYKLQkJY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0 Y19jbG9jazsKKwkJY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiB9 CiAKIGVudW0gdHJhbnNjb2RlciBpbnRlbF9waXBlX3RvX2NwdV90cmFuc2NvZGVyKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTQ5NTEsNyArNDk1MSw3IEBAIHN0YXRpYyB2 b2lkIGxwdF9wcm9ncmFtX2ljbGtpcChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwlpbnQgY2xvY2sgPSBjcnRjX3N0YXRlLT5ody5h ZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAJdTMyIGRpdnNlbCwgcGhhc2VpbmMsIGF1eGRpdiwg cGhhc2VkaXIgPSAwOwogCXUzMiB0ZW1wOwogCkBAIC01MjI0LDcgKzUyMjQsNyBAQCBzdGF0aWMg dm9pZCBpcm9ubGFrZV9wY2hfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAogCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdikgJiYKIAkgICAgaW50ZWxfY3J0Y19o YXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiAJCXUzMiBicGMgPSAoSTkxNV9S RUFEKFBJUEVDT05GKHBpcGUpKSAmIFBJUEVDT05GX0JQQ19NQVNLKSA+PiA1OwogCQlpOTE1X3Jl Z190IHJlZyA9IFRSQU5TX0RQX0NUTChwaXBlKTsKIAkJZW51bSBwb3J0IHBvcnQ7CkBAIC01Mzc0 LDcgKzUzNzQsNyBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCiAJCXRvX2ludGVsX2NydGMoY3J0Y19zdGF0 ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGludGVsX2NydGMtPmJhc2UuZGV2KTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJ CSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJLyoKIAkgKiBTcmMgY29vcmRpbmF0 ZXMgYXJlIGFscmVhZHkgcm90YXRlZCBieSAyNzAgZGVncmVlcyBmb3IKQEAgLTUzOTAsNyArNTM5 MCw3IEBAIHNrbF91cGRhdGVfc2NhbGVyKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLCBib29sIGZvcmNlX2RldGFjaCwKIAkgKiBPbmNlIE5WMTIgaXMgZW5hYmxlZCwgaGFuZGxl IGl0IGhlcmUgd2hpbGUgYWxsb2NhdGluZyBzY2FsZXIKIAkgKiBmb3IgTlYxMi4KIAkgKi8KLQlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5ICYmIGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlICYm CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSAmJiBjcnRjX3N0YXRlLT5ody5lbmFibGUg JiYKIAkgICAgbmVlZF9zY2FsZXIgJiYgYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX0lOVEVSTEFDRSkgewogCQlEUk1fREVCVUdfS01TKCJQaXBlL1BsYW5lIHNjYWxpbmcgbm90 IHN1cHBvcnRlZCB3aXRoIElGLUlEIG1vZGVcbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTU0 NjIsMTMgKzU0NjIsMTMgQEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNoLAogICovCiBpbnQgc2tsX3VwZGF0ZV9z Y2FsZXJfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqc3RhdGUpCiB7Ci0JY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZzdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlib29sIG5lZWRfc2NhbGVyID0gZmFsc2U7CiAK IAlpZiAoc3RhdGUtPm91dHB1dF9mb3JtYXQgPT0gSU5URUxfT1VUUFVUX0ZPUk1BVF9ZQ0JDUjQy MCkKIAkJbmVlZF9zY2FsZXIgPSB0cnVlOwogCi0JcmV0dXJuIHNrbF91cGRhdGVfc2NhbGVyKHN0 YXRlLCAhc3RhdGUtPmJhc2UuYWN0aXZlLCBTS0xfQ1JUQ19JTkRFWCwKKwlyZXR1cm4gc2tsX3Vw ZGF0ZV9zY2FsZXIoc3RhdGUsICFzdGF0ZS0+aHcuYWN0aXZlLCBTS0xfQ1JUQ19JTkRFWCwKIAkJ CQkgJnN0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX2lkLAogCQkJCSBzdGF0ZS0+cGlwZV9zcmNf dywgc3RhdGUtPnBpcGVfc3JjX2gsCiAJCQkJIGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXks CkBAIC01ODIwLDcgKzU4MjAsNyBAQCBzdGF0aWMgYm9vbCBoc3dfcG9zdF91cGRhdGVfZW5hYmxl X2lwcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfcwogCSAqIGZvcmNp Ymx5IGVuYWJsZSBJUFMgb24gdGhlIGZpcnN0IGZhc3RzZXQuCiAJICovCiAJaWYgKG5ld19jcnRj X3N0YXRlLT51cGRhdGVfcGlwZSAmJgotCSAgICBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3Rl ZF9tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpCisJICAgIG9s ZF9jcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVf RkxBR19JTkhFUklURUQpCiAJCXJldHVybiB0cnVlOwogCiAJcmV0dXJuICFvbGRfY3J0Y19zdGF0 ZS0+aXBzX2VuYWJsZWQ7CkBAIC01ODY0LDcgKzU4NjQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9w b3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUp CiAKIAlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpLCBwaXBl X2NvbmZpZy0+ZmJfYml0cyk7CiAKLQlpZiAocGlwZV9jb25maWctPnVwZGF0ZV93bV9wb3N0ICYm IHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSkKKwlpZiAocGlwZV9jb25maWctPnVwZGF0ZV93bV9w b3N0ICYmIHBpcGVfY29uZmlnLT5ody5hY3RpdmUpCiAJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtz KGNydGMpOwogCiAJaWYgKGhzd19wb3N0X3VwZGF0ZV9lbmFibGVfaXBzKG9sZF9jcnRjX3N0YXRl LCBwaXBlX2NvbmZpZykpCkBAIC01OTQyLDcgKzU5NDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9w cmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwK IAkgKiBldmVudCB3aGljaCBpcyBhZnRlciB0aGUgdmJsYW5rIHN0YXJ0IGV2ZW50LCBzbyB3ZSBu ZWVkIHRvIGhhdmUgYQogCSAqIHdhaXQtZm9yLXZibGFuayBiZXR3ZWVuIGRpc2FibGluZyB0aGUg cGxhbmUgYW5kIHRoZSBwaXBlLgogCSAqLwotCWlmIChIQVNfR01DSChkZXZfcHJpdikgJiYgb2xk X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYmCisJaWYgKEhBU19HTUNIKGRldl9wcml2KSAmJiBv bGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICYmCiAJICAgIHBpcGVfY29uZmlnLT5kaXNhYmxlX2N4 c3IgJiYgaW50ZWxfc2V0X21lbW9yeV9jeHNyKGRldl9wcml2LCBmYWxzZSkpCiAJCWludGVsX3dh aXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CiAKQEAgLTU5NTQsNyArNTk1NCw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCSAqIFdhQ3hTUkRpc2FibGVkRm9yU3ByaXRlU2NhbGlu ZzppdmIKIAkgKi8KIAlpZiAocGlwZV9jb25maWctPmRpc2FibGVfbHBfd20gJiYgaWxrX2Rpc2Fi bGVfbHBfd20oZGV2KSAmJgotCSAgICBvbGRfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJICAg IG9sZF9jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZf cHJpdiwgY3J0Yy0+cGlwZSk7CiAKIAkvKgpAQCAtNjc1Miw3ICs2NzUyLDcgQEAgc3RhdGljIHU2 NCBnZXRfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogCXU2NCBtYXNrOwogCWVudW0gdHJhbnNjb2RlciB0cmFuc2NvZGVyID0gY3J0Y19zdGF0 ZS0+Y3B1X3RyYW5zY29kZXI7CiAKLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlm ICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm4gMDsKIAogCW1hc2sgPSBCSVRfVUxM KFBPV0VSX0RPTUFJTl9QSVBFKHBpcGUpKTsKQEAgLTcxMDksOCArNzEwOSw4IEBAIHN0YXRpYyB2 b2lkIGludGVsX2Nvbm5lY3Rvcl92ZXJpZnlfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAJCWlmICghY3J0Y19zdGF0ZSkKIAkJCXJldHVybjsKIAotCQlJOTE1X1NU QVRFX1dBUk4oIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlLAotCQkgICAgICAiY29ubmVjdG9yIGlz IGFjdGl2ZSwgYnV0IGF0dGFjaGVkIGNydGMgaXNuJ3RcbiIpOworCQlJOTE1X1NUQVRFX1dBUk4o IWNydGNfc3RhdGUtPmh3LmFjdGl2ZSwKKwkJCQkiY29ubmVjdG9yIGlzIGFjdGl2ZSwgYnV0IGF0 dGFjaGVkIGNydGMgaXNuJ3RcbiIpOwogCiAJCWlmICghZW5jb2RlciB8fCBlbmNvZGVyLT50eXBl ID09IElOVEVMX09VVFBVVF9EUF9NU1QpCiAJCQlyZXR1cm47CkBAIC03MTIxLDggKzcxMjEsOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfdmVyaWZ5X3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlJOTE1X1NUQVRFX1dBUk4oY29ubl9zdGF0ZS0+Y3J0 YyAhPSBlbmNvZGVyLT5iYXNlLmNydGMsCiAJCQkiYXR0YWNoZWQgZW5jb2RlciBjcnRjIGRpZmZl cnMgZnJvbSBjb25uZWN0b3IgY3J0Y1xuIik7CiAJfSBlbHNlIHsKLQkJSTkxNV9TVEFURV9XQVJO KGNydGNfc3RhdGUgJiYgY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUsCi0JCQkiYXR0YWNoZWQgY3J0 YyBpcyBhY3RpdmUsIGJ1dCBjb25uZWN0b3IgaXNuJ3RcbiIpOworCQlJOTE1X1NUQVRFX1dBUk4o Y3J0Y19zdGF0ZSAmJiBjcnRjX3N0YXRlLT5ody5hY3RpdmUsCisJCQkJImF0dGFjaGVkIGNydGMg aXMgYWN0aXZlLCBidXQgY29ubmVjdG9yIGlzbid0XG4iKTsKIAkJSTkxNV9TVEFURV9XQVJOKCFj cnRjX3N0YXRlICYmIGNvbm5fc3RhdGUtPmJlc3RfZW5jb2RlciwKIAkJCSJiZXN0IGVuY29kZXIg c2V0IHdpdGhvdXQgY3J0YyFcbiIpOwogCX0KQEAgLTcxMzAsNyArNzEzMCw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX2Nvbm5lY3Rvcl92ZXJpZnlfc3RhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCiAKIHN0YXRpYyBpbnQgcGlwZV9yZXF1aXJlZF9mZGlfbGFuZXMoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7Ci0JaWYgKGNydGNfc3RhdGUtPmJhc2Uu ZW5hYmxlICYmIGNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2RlcikKKwlpZiAoY3J0Y19zdGF0ZS0+ aHcuZW5hYmxlICYmIGNydGNfc3RhdGUtPmhhc19wY2hfZW5jb2RlcikKIAkJcmV0dXJuIGNydGNf c3RhdGUtPmZkaV9sYW5lczsKIAogCXJldHVybiAwOwpAQCAtNzIxMyw3ICs3MjEzLDcgQEAgc3Rh dGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7Ci0J Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgbGFu ZSwgbGlua19idywgZmRpX2RvdGNsb2NrLCByZXQ7CiAJYm9vbCBuZWVkc19yZWNvbXB1dGUgPSBm YWxzZTsKIApAQCAtNzMzMCw3ICs3MzMwLDcgQEAgc3RhdGljIHUzMiBpbGtfcGlwZV9waXhlbF9y YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAl1MzIg cGl4ZWxfcmF0ZTsKIAotCXBpeGVsX3JhdGUgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2s7CisJcGl4ZWxfcmF0ZSA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9t b2RlLmNydGNfY2xvY2s7CiAKIAkvKgogCSAqIFdlIG9ubHkgdXNlIElGLUlEIGludGVybGFjaW5n LiBJZiB3ZSBldmVyIHVzZQpAQCAtNzM2OCw3ICs3MzY4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf Y3J0Y19jb21wdXRlX3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUpCiAJaWYgKEhBU19HTUNIKGRldl9wcml2KSkKIAkJLyogRklYTUUgY2FsY3VsYXRlIHByb3Bl ciBwaXBlIHBpeGVsIHJhdGUgZm9yIEdNQ0ggcGZpdCAqLwogCQljcnRjX3N0YXRlLT5waXhlbF9y YXRlID0KLQkJCWNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCQkJ Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOwogCWVsc2UKIAkJY3J0Y19z dGF0ZS0+cGl4ZWxfcmF0ZSA9CiAJCQlpbGtfcGlwZV9waXhlbF9yYXRlKGNydGNfc3RhdGUpOwpA QCAtNzM3OCw3ICs3Mzc4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWct Pmh3LmFkanVzdGVkX21vZGU7CiAJaW50IGNsb2NrX2xpbWl0ID0gZGV2X3ByaXYtPm1heF9kb3Rj bGtfZnJlcTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkgewpAQCAtNzQwNCw3ICs3 NDA0LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCiAJaWYgKChwaXBlX2NvbmZpZy0+b3V0cHV0X2Zvcm1hdCA9PSBJTlRF TF9PVVRQVVRfRk9STUFUX1lDQkNSNDIwIHx8CiAJICAgICBwaXBlX2NvbmZpZy0+b3V0cHV0X2Zv cm1hdCA9PSBJTlRFTF9PVVRQVVRfRk9STUFUX1lDQkNSNDQ0KSAmJgotCSAgICAgcGlwZV9jb25m aWctPmJhc2UuY3RtKSB7CisJICAgICBwaXBlX2NvbmZpZy0+aHcuY3RtKSB7CiAJCS8qCiAJCSAq IFRoZXJlIGlzIG9ubHkgb25lIHBpcGUgQ1NDIHVuaXQgcGVyIHBpcGUsIGFuZCB3ZSBuZWVkIHRo YXQKIAkJICogZm9yIG91dHB1dCBjb252ZXJzaW9uIGZyb20gUkdCLT5ZQ0JDUi4gU28gaWYgQ1RN IGlzIGFscmVhZHkKQEAgLTgxMDIsNyArODEwMiw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldF9w aXBlX3RpbWluZ3MoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7CiAJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCWVudW0gdHJhbnNjb2RlciBjcHVf dHJhbnNjb2RlciA9IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyOwotCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBjcnRjX3Z0b3RhbCwgY3J0Y192 YmxhbmtfZW5kOwogCWludCB2c3luY3NoaWZ0ID0gMDsKIApAQCAtODE5NiwzOSArODE5NiwzOSBA 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 ZiAoaW50ZWxfcGlwZV9pc19pbnRlcmxhY2VkKHBpcGVfY29uZmlnKSkgewotCQlwaXBlX2NvbmZp Zy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFOwot CQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnRvdGFsICs9IDE7Ci0JCXBp cGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y192YmxhbmtfZW5kICs9IDE7CisJCXBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfSU5URVJM QUNFOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3Z0b3RhbCArPSAxOwor CQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZibGFua19lbmQgKz0gMTsKIAl9 CiB9CiAKQEAgLTgyNDMsMjcgKzgyNDMsMjcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZ2V0X3BpcGVf c3JjX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJcGlwZV9jb25maWctPnBpcGVfc3Jj X2ggPSAodG1wICYgMHhmZmZmKSArIDE7CiAJcGlwZV9jb25maWctPnBpcGVfc3JjX3cgPSAoKHRt cCA+PiAxNikgJiAweGZmZmYpICsgMTsKIAotCXBpcGVfY29uZmlnLT5iYXNlLm1vZGUudmRpc3Bs YXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKLQlwaXBlX2NvbmZpZy0+YmFzZS5tb2RlLmhk aXNwbGF5ID0gcGlwZV9jb25maWctPnBpcGVfc3JjX3c7CisJcGlwZV9jb25maWctPmh3Lm1vZGUu dmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaDsKKwlwaXBlX2NvbmZpZy0+aHcubW9k ZS5oZGlzcGxheSA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193OwogfQogCiB2b2lkIGludGVsX21v ZGVfZnJvbV9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKIAkJCQkg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogewotCW1vZGUtPmhkaXNwbGF5 ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCW1vZGUt Pmh0b3RhbCA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7Ci0J bW9kZS0+aHN5bmNfc3RhcnQgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf aHN5bmNfc3RhcnQ7Ci0JbW9kZS0+aHN5bmNfZW5kID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZS5jcnRjX2hzeW5jX2VuZDsKKwltb2RlLT5oZGlzcGxheSA9IHBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXk7CisJbW9kZS0+aHRvdGFsID0gcGlwZV9jb25m aWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7CisJbW9kZS0+aHN5bmNfc3RhcnQgPSBw aXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hzeW5jX3N0YXJ0OworCW1vZGUtPmhz eW5jX2VuZCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHN5bmNfZW5kOwog Ci0JbW9kZS0+dmRpc3BsYXkgPSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNf dmRpc3BsYXk7Ci0JbW9kZS0+dnRvdGFsID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9k ZS5jcnRjX3Z0b3RhbDsKLQltb2RlLT52c3luY19zdGFydCA9IHBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y192c3luY19zdGFydDsKLQltb2RlLT52c3luY19lbmQgPSBwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNfZW5kOworCW1vZGUtPnZkaXNwbGF5 ID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKKwltb2RlLT52 dG90YWwgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3Z0b3RhbDsKKwltb2Rl LT52c3luY19zdGFydCA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfdnN5bmNf c3RhcnQ7CisJbW9kZS0+dnN5bmNfZW5kID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUu Y3J0Y192c3luY19lbmQ7CiAKLQltb2RlLT5mbGFncyA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGUuZmxhZ3M7CisJbW9kZS0+ZmxhZ3MgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZS5mbGFnczsKIAltb2RlLT50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVI7CiAKLQltb2Rl LT5jbG9jayA9IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwlt b2RlLT5jbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAK IAltb2RlLT5oc3luYyA9IGRybV9tb2RlX2hzeW5jKG1vZGUpOwogCW1vZGUtPnZyZWZyZXNoID0g ZHJtX21vZGVfdnJlZnJlc2gobW9kZSk7CkBAIC04MzA5LDcgKzgzMDksNyBAQCBzdGF0aWMgdm9p ZCBpOXh4X3NldF9waXBlY29uZihjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIAkJfQogCX0KIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxh Z3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkgeworCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1 c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpIHsKIAkJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPCA0IHx8CiAJCSAgICBpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3Rh dGUsIElOVEVMX09VVFBVVF9TRFZPKSkKIAkJCXBpcGVjb25mIHw9IFBJUEVDT05GX0lOVEVSTEFD RV9XX0ZJRUxEX0lORElDQVRJT047CkBAIC04ODQxLDcgKzg4NDEsNyBAQCBzdGF0aWMgYm9vbCBp OXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkgKiBidXQgaW4g Y2FzZSB0aGUgcGlwZSBpcyBlbmFibGVkIHcvbyBhbnkgcG9ydHMgd2UgbmVlZCBhIHNhbmUKIAkg KiBkZWZhdWx0LgogCSAqLwotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19j bG9jayA9CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9CiAJCXBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrIC8gcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAK IAlyZXQgPSB0cnVlOwpAQCAtOTM4NCw3ICs5Mzg0LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vf c2V0X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CWlmIChjcnRjX3N0YXRlLT5kaXRoZXIpCiAJCXZhbCB8PSAoUElQRUNPTkZfRElUSEVSX0VOIHwg UElQRUNPTkZfRElUSEVSX1RZUEVfU1ApOwogCi0JaWYgKGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0 ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCWlmIChjcnRjX3N0YXRl LT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXZh bCB8PSBQSVBFQ09ORl9JTlRFUkxBQ0VEX0lMSzsKIAllbHNlCiAJCXZhbCB8PSBQSVBFQ09ORl9Q Uk9HUkVTU0lWRTsKQEAgLTk0MTgsNyArOTQxOCw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfc2V0 X3BpcGVjb25mKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWlm IChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBjcnRjX3N0YXRlLT5kaXRoZXIpCiAJCXZhbCB8PSAo UElQRUNPTkZfRElUSEVSX0VOIHwgUElQRUNPTkZfRElUSEVSX1RZUEVfU1ApOwogCi0JaWYgKGNy dGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJM QUNFKQorCWlmIChjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYgRFJNX01PREVf RkxBR19JTlRFUkxBQ0UpCiAJCXZhbCB8PSBQSVBFQ09ORl9JTlRFUkxBQ0VEX0lMSzsKIAllbHNl CiAJCXZhbCB8PSBQSVBFQ09ORl9QUk9HUkVTU0lWRTsKQEAgLTExNDI3LDcgKzExNDI3LDcgQEAg c3RhdGljIHZvaWQgaXJvbmxha2VfcGNoX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAkgKiB3ZSBtYXkgbmVlZCBzb21lIGlkZWEgZm9yIHRoZSBkb3RjbG9jayBhbnl3YXkuCiAJ ICogQ2FsY3VsYXRlIG9uZSBiYXNlZCBvbiB0aGUgRkRJIGNvbmZpZ3VyYXRpb24uCiAJICovCi0J cGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0KKwlwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0KIAkJaW50ZWxfZG90Y2xvY2tfY2FsY3Vs YXRlKGludGVsX2ZkaV9saW5rX2ZyZXEoZGV2X3ByaXYsIHBpcGVfY29uZmlnKSwKIAkJCQkJICZw aXBlX2NvbmZpZy0+ZmRpX21fbik7CiB9CkBAIC0xMTUzMiw4ICsxMTUzMiw4IEBAIGludCBpbnRl bF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y19zdGF0CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3Bs YW5lKHBsYW5lX3N0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlib29sIG1vZGVfY2hhbmdlZCA9 IG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSk7Ci0JYm9vbCB3YXNfY3J0Y19lbmFibGVkID0gb2xk X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlOwotCWJvb2wgaXNfY3J0Y19lbmFibGVkID0gY3J0Y19z dGF0ZS0+YmFzZS5hY3RpdmU7CisJYm9vbCB3YXNfY3J0Y19lbmFibGVkID0gb2xkX2NydGNfc3Rh dGUtPmh3LmFjdGl2ZTsKKwlib29sIGlzX2NydGNfZW5hYmxlZCA9IGNydGNfc3RhdGUtPmh3LmFj dGl2ZTsKIAlib29sIHR1cm5fb2ZmLCB0dXJuX29uLCB2aXNpYmxlLCB3YXNfdmlzaWJsZTsKIAlp bnQgcmV0OwogCkBAIC0xMTc5MSwxMCArMTE3OTEsMTAgQEAgc3RhdGljIGludCBpbnRlbF9jcnRj X2F0b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAlpbnQgcmV0 OwogCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCA1ICYmICFJU19HNFgoZGV2X3ByaXYpICYm Ci0JICAgIG1vZGVfY2hhbmdlZCAmJiAhY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJICAgIG1v ZGVfY2hhbmdlZCAmJiAhY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQljcnRjX3N0YXRlLT51cGRh dGVfd21fcG9zdCA9IHRydWU7CiAKLQlpZiAobW9kZV9jaGFuZ2VkICYmIGNydGNfc3RhdGUtPmJh c2UuZW5hYmxlICYmCisJaWYgKG1vZGVfY2hhbmdlZCAmJiBjcnRjX3N0YXRlLT5ody5lbmFibGUg JiYKIAkgICAgZGV2X3ByaXYtPmRpc3BsYXkuY3J0Y19jb21wdXRlX2Nsb2NrICYmCiAJICAgICFX QVJOX09OKGNydGNfc3RhdGUtPnNoYXJlZF9kcGxsKSkgewogCQlyZXQgPSBkZXZfcHJpdi0+ZGlz cGxheS5jcnRjX2NvbXB1dGVfY2xvY2soY3J0YywgY3J0Y19zdGF0ZSk7CkBAIC0xMjA5MCwxNCAr MTIwOTAsMTQgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAKIAlEUk1fREVCVUdfS01TKCJbQ1JU QzolZDolc10gZW5hYmxlOiAlcyAlc1xuIiwKIAkJICAgICAgY3J0Yy0+YmFzZS5iYXNlLmlkLCBj cnRjLT5iYXNlLm5hbWUsCi0JCSAgICAgIHllc25vKHBpcGVfY29uZmlnLT5iYXNlLmVuYWJsZSks IGNvbnRleHQpOworCQkgICAgICB5ZXNubyhwaXBlX2NvbmZpZy0+aHcuZW5hYmxlKSwgY29udGV4 dCk7CiAKLQlpZiAoIXBpcGVfY29uZmlnLT5iYXNlLmVuYWJsZSkKKwlpZiAoIXBpcGVfY29uZmln LT5ody5lbmFibGUpCiAJCWdvdG8gZHVtcF9wbGFuZXM7CiAKIAlzbnByaW50Zl9vdXRwdXRfdHlw ZXMoYnVmLCBzaXplb2YoYnVmKSwgcGlwZV9jb25maWctPm91dHB1dF90eXBlcyk7CiAJRFJNX0RF QlVHX0tNUygiYWN0aXZlOiAlcywgb3V0cHV0X3R5cGVzOiAlcyAoMHgleCksIG91dHB1dCBmb3Jt YXQ6ICVzXG4iLAotCQkgICAgICB5ZXNubyhwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUpLAorCQkg ICAgICB5ZXNubyhwaXBlX2NvbmZpZy0+aHcuYWN0aXZlKSwKIAkJICAgICAgYnVmLCBwaXBlX2Nv bmZpZy0+b3V0cHV0X3R5cGVzLAogCQkgICAgICBvdXRwdXRfZm9ybWF0cyhwaXBlX2NvbmZpZy0+ b3V0cHV0X2Zvcm1hdCkpOwogCkBAIC0xMjEzNywxMCArMTIxMzcsMTAgQEAgc3RhdGljIHZvaWQg aW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCiAJCWludGVsX2R1bXBfaW5mb2ZyYW1lKGRldl9wcml2LCAmcGlwZV9jb25maWct PmluZm9mcmFtZXMuaGRtaSk7CiAKIAlEUk1fREVCVUdfS01TKCJyZXF1ZXN0ZWQgbW9kZTpcbiIp OwotCWRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5iYXNlLm1vZGUp OworCWRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5ody5tb2RlKTsK IAlEUk1fREVCVUdfS01TKCJhZGp1c3RlZCBtb2RlOlxuIik7Ci0JZHJtX21vZGVfZGVidWdfcHJp bnRtb2RlbGluZSgmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZSk7Ci0JaW50ZWxfZHVt cF9jcnRjX3RpbWluZ3MoJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUpOworCWRybV9t b2RlX2RlYnVnX3ByaW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlKTsK KwlpbnRlbF9kdW1wX2NydGNfdGltaW5ncygmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUp OwogCURSTV9ERUJVR19LTVMoInBvcnQgY2xvY2s6ICVkLCBwaXBlIHNyYyBzaXplOiAlZHglZCwg cGl4ZWwgcmF0ZSAlZFxuIiwKIAkJICAgICAgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCSAg ICAgIHBpcGVfY29uZmlnLT5waXBlX3NyY193LCBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCwKQEAg LTEyMzE1LDEzICsxMjMxNSwxMyBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAkgKiBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBw b2xhcml0eSBpcyByZXF1ZXN0ZWQsIHRyZWF0IHRoaXMgYXMgbWVhbmluZwogCSAqIG5lZ2F0aXZl IHBvbGFyaXR5LgogCSAqLwotCWlmICghKHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUu ZmxhZ3MgJgorCWlmICghKHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYKIAkg ICAgICAoRFJNX01PREVfRkxBR19QSFNZTkMgfCBEUk1fTU9ERV9GTEFHX05IU1lOQykpKQotCQlw aXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTkhT WU5DOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9ERV9G TEFHX05IU1lOQzsKIAotCWlmICghKHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxh Z3MgJgorCWlmICghKHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzICYKIAkgICAg ICAoRFJNX01PREVfRkxBR19QVlNZTkMgfCBEUk1fTU9ERV9GTEFHX05WU1lOQykpKQotCQlwaXBl X2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfTlZTWU5D OworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyB8PSBEUk1fTU9ERV9GTEFH X05WU1lOQzsKIAogCXJldCA9IGNvbXB1dGVfYmFzZWxpbmVfcGlwZV9icHAodG9faW50ZWxfY3J0 YyhjcnRjKSwKIAkJCQkJcGlwZV9jb25maWcpOwpAQCAtMTIzMzgsNyArMTIzMzgsNyBAQCBpbnRl bF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKIAkgKiBjb21wdXRhdGlvbiB0byBjbGVhcmx5IGRpc3Rpbmd1aXNoIGl0IGZyb20gdGhlIGFk anVzdGVkIG1vZGUsIHdoaWNoCiAJICogY2FuIGJlIGNoYW5nZWQgYnkgdGhlIGNvbm5lY3RvcnMg aW4gdGhlIGJlbG93IHJldHJ5IGxvb3AuCiAJICovCi0JZHJtX21vZGVfZ2V0X2h2X3RpbWluZygm cGlwZV9jb25maWctPmJhc2UubW9kZSwKKwlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKCZwaXBlX2Nv bmZpZy0+aHcubW9kZSwKIAkJCSAgICAgICAmcGlwZV9jb25maWctPnBpcGVfc3JjX3csCiAJCQkg ICAgICAgJnBpcGVfY29uZmlnLT5waXBlX3NyY19oKTsKIApAQCAtMTIzNzEsNyArMTIzNzEsNyBA QCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBl X2NvbmZpZykKIAlwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllciA9IDE7CiAKIAkvKiBGaWxs IGluIGRlZmF1bHQgY3J0YyB0aW1pbmdzLCBhbGxvdyBlbmNvZGVycyB0byBvdmVyd3JpdGUgdGhl bS4gKi8KLQlkcm1fbW9kZV9zZXRfY3J0Y2luZm8oJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUsCisJZHJtX21vZGVfc2V0X2NydGNpbmZvKCZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZSwKIAkJCSAgICAgIENSVENfU1RFUkVPX0RPVUJMRSk7CiAKIAkvKiBQYXNzIG91ciBtb2Rl IHRvIHRoZSBjb25uZWN0b3JzIGFuZCB0aGUgQ1JUQyB0byBnaXZlIHRoZW0gYSBjaGFuY2UgdG8K QEAgLTEyMzk2LDcgKzEyMzk2LDcgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiAJLyogU2V0IGRlZmF1bHQgcG9ydCBjbG9j ayBpZiBub3Qgb3ZlcndyaXR0ZW4gYnkgdGhlIGVuY29kZXIuIE5lZWRzIHRvIGJlCiAJICogZG9u ZSBhZnRlcndhcmRzIGluIGNhc2UgdGhlIGVuY29kZXIgYWRqdXN0cyB0aGUgbW9kZS4gKi8KIAlp ZiAoIXBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrKQotCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9 IHBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jaworCQlwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sK IAkJCSogcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKIAlyZXQgPSBpbnRlbF9jcnRj X2NvbXB1dGVfY29uZmlnKHRvX2ludGVsX2NydGMoY3J0YyksIHBpcGVfY29uZmlnKTsKQEAgLTEy NTY0LDggKzEyNTY0LDggQEAgaW50ZWxfcGlwZV9jb25maWdfY29tcGFyZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3VycmVudF9jb25maWcsCiAJYm9vbCByZXQgPSB0cnVlOwogCXUz MiBicF9nYW1tYSA9IDA7CiAJYm9vbCBmaXh1cF9pbmhlcml0ZWQgPSBmYXN0c2V0ICYmCi0JCShj dXJyZW50X2NvbmZpZy0+YmFzZS5tb2RlLnByaXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19J TkhFUklURUQpICYmCi0JCSEocGlwZV9jb25maWctPmJhc2UubW9kZS5wcml2YXRlX2ZsYWdzICYg STkxNV9NT0RFX0ZMQUdfSU5IRVJJVEVEKTsKKwkJKGN1cnJlbnRfY29uZmlnLT5ody5tb2RlLnBy aXZhdGVfZmxhZ3MgJiBJOTE1X01PREVfRkxBR19JTkhFUklURUQpICYmCisJCSEocGlwZV9jb25m aWctPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCk7CiAK IAlpZiAoZml4dXBfaW5oZXJpdGVkICYmICFmYXN0Ym9vdF9lbmFibGVkKGRldl9wcml2KSkgewog CQlEUk1fREVCVUdfS01TKCJpbml0aWFsIG1vZGVzZXQgYW5kIGZhc3Rib290IG5vdCBzZXRcbiIp OwpAQCAtMTI5MDgsNyArMTI5MDgsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9waXBlX2NvbmZpZ19z YW5pdHlfY2hlY2soc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlmIChwaXBl X2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7CiAJCWludCBmZGlfZG90Y2xvY2sgPSBpbnRlbF9k b3RjbG9ja19jYWxjdWxhdGUoaW50ZWxfZmRpX2xpbmtfZnJlcShkZXZfcHJpdiwgcGlwZV9jb25m aWcpLAogCQkJCQkJCSAgICAmcGlwZV9jb25maWctPmZkaV9tX24pOwotCQlpbnQgZG90Y2xvY2sg PSBwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CisJCWludCBkb3Rj bG9jayA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CiAKIAkJLyoK IAkJICogRkRJIGFscmVhZHkgcHJvdmlkZWQgb25lIGlkZWEgZm9yIHRoZSBkb3RjbG9jay4KQEAg LTEyOTM3LDcgKzEyOTM3LDcgQEAgc3RhdGljIHZvaWQgdmVyaWZ5X3dtX3N0YXRlKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjLAogCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZl bChkZXZfcHJpdik7CiAJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKIAotCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpIDwgOSB8fCAhbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpIDwgOSB8fCAhbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJ cmV0dXJuOwogCiAJaHcgPSBremFsbG9jKHNpemVvZigqaHcpLCBHRlBfS0VSTkVMKTsKQEAgLTEz MTIxLDIzICsxMzEyMSwyNiBAQCB2ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKIAogCS8qIHdlIGtlZXAgYm90aCBwaXBlcyBlbmFibGVkIG9uIDgzMCAqLwogCWlmIChJ U19JODMwKGRldl9wcml2KSkKLQkJYWN0aXZlID0gbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZl OworCQlhY3RpdmUgPSBuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlOwogCi0JSTkxNV9TVEFURV9X QVJOKG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAhPSBhY3RpdmUsCi0JICAgICAiY3J0YyBh Y3RpdmUgc3RhdGUgZG9lc24ndCBtYXRjaCB3aXRoIGh3IHN0YXRlICIKLQkgICAgICIoZXhwZWN0 ZWQgJWksIGZvdW5kICVpKVxuIiwgbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlLCBhY3RpdmUp OworCUk5MTVfU1RBVEVfV0FSTihuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICE9IGFjdGl2ZSwK KwkJCSJjcnRjIGFjdGl2ZSBzdGF0ZSBkb2Vzbid0IG1hdGNoIHdpdGggaHcgc3RhdGUgIgorCQkJ IihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLAorCQkJbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2 ZSwgYWN0aXZlKTsKIAotCUk5MTVfU1RBVEVfV0FSTihjcnRjLT5hY3RpdmUgIT0gbmV3X2NydGNf c3RhdGUtPmJhc2UuYWN0aXZlLAotCSAgICAgInRyYW5zaXRpb25hbCBhY3RpdmUgc3RhdGUgZG9l cyBub3QgbWF0Y2ggYXRvbWljIGh3IHN0YXRlICIKLQkgICAgICIoZXhwZWN0ZWQgJWksIGZvdW5k ICVpKVxuIiwgbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlLCBjcnRjLT5hY3RpdmUpOworCUk5 MTVfU1RBVEVfV0FSTihjcnRjLT5hY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSwK KwkJCSJ0cmFuc2l0aW9uYWwgYWN0aXZlIHN0YXRlIGRvZXMgbm90IG1hdGNoIGF0b21pYyBodyBz dGF0ZSAiCisJCQkiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsCisJCQluZXdfY3J0Y19zdGF0 ZS0+aHcuYWN0aXZlLCBjcnRjLT5hY3RpdmUpOwogCiAJZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRj KGRldiwgJmNydGMtPmJhc2UsIGVuY29kZXIpIHsKIAkJZW51bSBwaXBlIHBpcGU7CiAKIAkJYWN0 aXZlID0gZW5jb2Rlci0+Z2V0X2h3X3N0YXRlKGVuY29kZXIsICZwaXBlKTsKLQkJSTkxNV9TVEFU RV9XQVJOKGFjdGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUsCi0JCQkiW0VOQ09E RVI6JWldIGFjdGl2ZSAlaSB3aXRoIGNydGMgYWN0aXZlICVpXG4iLAotCQkJZW5jb2Rlci0+YmFz ZS5iYXNlLmlkLCBhY3RpdmUsIG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSk7CisJCUk5MTVf U1RBVEVfV0FSTihhY3RpdmUgIT0gbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSwKKwkJCQkiW0VO Q09ERVI6JWldIGFjdGl2ZSAlaSB3aXRoIGNydGMgYWN0aXZlICVpXG4iLAorCQkJCWVuY29kZXIt PmJhc2UuYmFzZS5pZCwgYWN0aXZlLAorCQkJCW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpOwog CiAJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgJiYgY3J0Yy0+cGlwZSAhPSBwaXBlLAogCQkJCSJF bmNvZGVyIGNvbm5lY3RlZCB0byB3cm9uZyBwaXBlICVjXG4iLApAQCAtMTMxNDksNyArMTMxNTIs NyBAQCB2ZXJpZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogCWludGVs X2NydGNfY29tcHV0ZV9waXhlbF9yYXRlKHBpcGVfY29uZmlnKTsKIAotCWlmICghbmV3X2NydGNf c3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJ cmV0dXJuOwogCiAJaW50ZWxfcGlwZV9jb25maWdfc2FuaXR5X2NoZWNrKGRldl9wcml2LCBwaXBl X2NvbmZpZyk7CkBAIC0xMzIxMSw3ICsxMzIxNCw3IEBAIHZlcmlmeV9zaW5nbGVfZHBsbF9zdGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAljcnRjX21hc2sgPSBkcm1f Y3J0Y19tYXNrKCZjcnRjLT5iYXNlKTsKIAotCWlmIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3Rp dmUpCisJaWYgKG5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCUk5MTVfU1RBVEVfV0FSTigh KHBsbC0+YWN0aXZlX21hc2sgJiBjcnRjX21hc2spLAogCQkJCSJwbGwgYWN0aXZlIG1pc21hdGNo IChleHBlY3RlZCBwaXBlICVjIGluIGFjdGl2ZSBtYXNrIDB4JTAyeClcbiIsCiAJCQkJcGlwZV9u YW1lKGRybV9jcnRjX2luZGV4KCZjcnRjLT5iYXNlKSksIHBsbC0+YWN0aXZlX21hc2spOwpAQCAt MTMyOTMsNyArMTMyOTYsNyBAQCBpbnRlbF9jcnRjX3VwZGF0ZV9hY3RpdmVfdGltaW5ncyhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0 YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2Rl OwogCiAJZHJtX2NhbGNfdGltZXN0YW1waW5nX2NvbnN0YW50cygmY3J0Yy0+YmFzZSwgYWRqdXN0 ZWRfbW9kZSk7CiAKQEAgLTEzMzc1LDcgKzEzMzc4LDcgQEAgc3RhdGljIGludCBoYXN3ZWxsX21v ZGVfc2V0X3BsYW5lc193b3JrYXJvdW5kKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KQogCiAJLyogbG9vayBhdCBhbGwgY3J0YydzIHRoYXQgYXJlIGdvaW5nIHRvIGJlIGVuYWJsZWQg aW4gZHVyaW5nIG1vZGVzZXQgKi8KIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0 aXZlIHx8CisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CiAJCSAgICAhbmVlZHNfbW9k ZXNldChjcnRjX3N0YXRlKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzQwMCw3ICsxMzQwMyw3IEBA IHN0YXRpYyBpbnQgaGFzd2VsbF9tb2RlX3NldF9wbGFuZXNfd29ya2Fyb3VuZChzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCQljcnRjX3N0YXRlLT5oc3dfd29ya2Fyb3VuZF9w aXBlID0gSU5WQUxJRF9QSVBFOwogCi0JCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwK KwkJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwKIAkJICAgIG5lZWRzX21vZGVzZXQoY3J0 Y19zdGF0ZSkpCiAJCQljb250aW51ZTsKIApAQCAtMTM0NDMsMTIgKzEzNDQ2LDEyIEBAIHN0YXRp YyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAKIAlmb3JfZWFjaF9vbGRuZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywg b2xkX2NydGNfc3RhdGUsCiAJCQkJCSAgICBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAobmV3 X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2 ZSkKIAkJCXN0YXRlLT5hY3RpdmVfcGlwZXMgfD0gQklUKGNydGMtPnBpcGUpOwogCQllbHNlCiAJ CQlzdGF0ZS0+YWN0aXZlX3BpcGVzICY9IH5CSVQoY3J0Yy0+cGlwZSk7CiAKLQkJaWYgKG9sZF9j cnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAhPSBuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCisJ CWlmIChvbGRfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICE9IG5ld19jcnRjX3N0YXRlLT5ody5hY3Rp dmUpCiAJCQlzdGF0ZS0+YWN0aXZlX3BpcGVfY2hhbmdlcyB8PSBCSVQoY3J0Yy0+cGlwZSk7CiAJ fQogCkBAIC0xMzU1OCw4ICsxMzU2MSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJLyogQ2F0Y2ggSTkxNV9NT0RFX0ZMQUdfSU5IRVJJ VEVEICovCiAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMs IG9sZF9jcnRjX3N0YXRlLAogCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKLQkJaWYgKG5l d19jcnRjX3N0YXRlLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAhPQotCQkgICAgb2xkX2NydGNf c3RhdGUtPmJhc2UubW9kZS5wcml2YXRlX2ZsYWdzKQorCQlpZiAobmV3X2NydGNfc3RhdGUtPmh3 Lm1vZGUucHJpdmF0ZV9mbGFncyAhPQorCQkgICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJp dmF0ZV9mbGFncykKIAkJCW5ld19jcnRjX3N0YXRlLT5iYXNlLm1vZGVfY2hhbmdlZCA9IHRydWU7 CiAJfQogCkBAIC0xMzY4OCw3ICsxMzY5MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3BpcGVfZmFz dHNldChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7 CiAKIAkvKiBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUgbWln aHQgbm90IGJlIGNhbGxlZC4gKi8KLQljcnRjLT5iYXNlLm1vZGUgPSBuZXdfY3J0Y19zdGF0ZS0+ YmFzZS5tb2RlOworCWNydGMtPmJhc2UubW9kZSA9IG5ld19jcnRjX3N0YXRlLT5ody5tb2RlOwog CiAJLyoKIAkgKiBVcGRhdGUgcGlwZSBzaXplIGFuZCBhZGp1c3QgZml0dGVyIGlmIG5lZWRlZDog dGhlIHJlYXNvbiBmb3IgdGhpcyBpcwpAQCAtMTM3OTcsNyArMTM4MDAsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF91cGRhdGVfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkgKiBvZiBlbmFi bGluZyB0aGVtIG9uIHRoZSBDUlRDJ3MgZmlyc3QgZmFzdHNldC4KIAkgKi8KIAlpZiAobmV3X2Ny dGNfc3RhdGUtPnVwZGF0ZV9waXBlICYmICFtb2Rlc2V0ICYmCi0JICAgIG9sZF9jcnRjX3N0YXRl LT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFHX0lOSEVSSVRFRCkKKwkg ICAgb2xkX2NydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyAmIEk5MTVfTU9ERV9GTEFH X0lOSEVSSVRFRCkKIAkJaW50ZWxfY3J0Y19hcm1fZmlmb191bmRlcnJ1bihjcnRjLCBuZXdfY3J0 Y19zdGF0ZSk7CiB9CiAKQEAgLTEzODI5LDcgKzEzODMyLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf b2xkX2NydGNfc3RhdGVfZGlzYWJsZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs CiAJaW50ZWxfY2hlY2tfcGNoX2ZpZm9fdW5kZXJydW5zKGRldl9wcml2KTsKIAogCS8qIEZJWE1F IHVuaWZ5IHRoaXMgZm9yIGFsbCBwbGF0Zm9ybXMgKi8KLQlpZiAoIW5ld19jcnRjX3N0YXRlLT5i YXNlLmFjdGl2ZSAmJgorCWlmICghbmV3X2NydGNfc3RhdGUtPmh3LmFjdGl2ZSAmJgogCSAgICAh SEFTX0dNQ0goZGV2X3ByaXYpICYmCiAJICAgIGRldl9wcml2LT5kaXNwbGF5LmluaXRpYWxfd2F0 ZXJtYXJrcykKIAkJZGV2X3ByaXYtPmRpc3BsYXkuaW5pdGlhbF93YXRlcm1hcmtzKHN0YXRlLApA QCAtMTM4NTYsNyArMTM4NTksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb21taXRfbW9kZXNldF9k aXNhYmxlcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCQlpbnRlbF9wcmVf cGxhbmVfdXBkYXRlKG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSk7CiAKLQkJaWYgKG9s ZF9jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwkJaWYgKG9sZF9jcnRjX3N0YXRlLT5ody5hY3Rp dmUpCiAJCQlpbnRlbF9vbGRfY3J0Y19zdGF0ZV9kaXNhYmxlcyhzdGF0ZSwKIAkJCQkJCSAgICAg IG9sZF9jcnRjX3N0YXRlLAogCQkJCQkJICAgICAgbmV3X2NydGNfc3RhdGUsCkBAIC0xMzg3MSw3 ICsxMzg3NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NvbW1pdF9tb2Rlc2V0X2VuYWJsZXMoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJaW50IGk7CiAKIAlmb3JfZWFjaF9vbGRu ZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19j cnRjX3N0YXRlLCBpKSB7Ci0JCWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCQlp ZiAoIW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCQljb250aW51ZTsKIAogCQlpbnRlbF91 cGRhdGVfY3J0YyhjcnRjLCBzdGF0ZSwgb2xkX2NydGNfc3RhdGUsCkBAIC0xMzg5NCw3ICsxMzg5 Nyw3IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21taXRfbW9kZXNldF9lbmFibGVzKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCiAJZm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5f c3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwgaSkKIAkJ LyogaWdub3JlIGFsbG9jYXRpb25zIGZvciBjcnRjJ3MgdGhhdCBoYXZlIGJlZW4gdHVybmVkIG9m Zi4gKi8KLQkJaWYgKG5ld19jcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwkJaWYgKG5ld19jcnRj X3N0YXRlLT5ody5hY3RpdmUpCiAJCQllbnRyaWVzW2ldID0gb2xkX2NydGNfc3RhdGUtPndtLnNr bC5kZGI7CiAKIAkvKiBJZiAybmQgREJ1ZiBzbGljZSByZXF1aXJlZCwgZW5hYmxlIGl0IGhlcmUg Ki8KQEAgLTEzOTE2LDcgKzEzOTE5LDcgQEAgc3RhdGljIHZvaWQgc2tsX2NvbW1pdF9tb2Rlc2V0 X2VuYWJsZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAKIAkJCXBpcGUgPSBj cnRjLT5waXBlOwogCi0JCQlpZiAodXBkYXRlZCAmIGNtYXNrIHx8ICFuZXdfY3J0Y19zdGF0ZS0+ YmFzZS5hY3RpdmUpCisJCQlpZiAodXBkYXRlZCAmIGNtYXNrIHx8ICFuZXdfY3J0Y19zdGF0ZS0+ aHcuYWN0aXZlKQogCQkJCWNvbnRpbnVlOwogCiAJCQlpZiAoc2tsX2RkYl9hbGxvY2F0aW9uX292 ZXJsYXBzKCZuZXdfY3J0Y19zdGF0ZS0+d20uc2tsLmRkYiwKQEAgLTE0MDY4LDcgKzE0MDcxLDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlKQogCQlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KG5ld19jcnRj X3N0YXRlKTsKIAogCQkvKiBDb21wbGV0ZSBldmVudHMgZm9yIG5vdyBkaXNhYmxlIHBpcGVzIGhl cmUuICovCi0JCWlmIChtb2Rlc2V0ICYmICFuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYg bmV3X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQpIHsKKwkJaWYgKG1vZGVzZXQgJiYgIW5ld19jcnRj X3N0YXRlLT5ody5hY3RpdmUgJiYgbmV3X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQpIHsKIAkJCXNw aW5fbG9ja19pcnEoJmRldi0+ZXZlbnRfbG9jayk7CiAJCQlkcm1fY3J0Y19zZW5kX3ZibGFua19l dmVudCgmY3J0Yy0+YmFzZSwgbmV3X2NydGNfc3RhdGUtPmJhc2UuZXZlbnQpOwogCQkJc3Bpbl91 bmxvY2tfaXJxKCZkZXYtPmV2ZW50X2xvY2spOwpAQCAtMTQxMDQsNyArMTQxMDcsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCiAJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfZmxpcF9kb25lKGRldiwgJnN0 YXRlLT5iYXNlKTsKIAogCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBj cnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewotCQlpZiAobmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0 aXZlICYmCisJCWlmIChuZXdfY3J0Y19zdGF0ZS0+aHcuYWN0aXZlICYmCiAJCSAgICAhbmVlZHNf bW9kZXNldChuZXdfY3J0Y19zdGF0ZSkgJiYKIAkJICAgIChuZXdfY3J0Y19zdGF0ZS0+YmFzZS5j b2xvcl9tZ210X2NoYW5nZWQgfHwKIAkJICAgICBuZXdfY3J0Y19zdGF0ZS0+dXBkYXRlX3BpcGUp KQpAQCAtMTQ1NTksMTAgKzE0NTYyLDEwIEBAIHNrbF9tYXhfc2NhbGUoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJaW50IG1heF9zY2FsZTsKIAlpbnQgY3J0Y19j bG9jaywgbWF4X2RvdGNsaywgdG1wY2xrMSwgdG1wY2xrMjsKIAotCWlmICghY3J0Y19zdGF0ZS0+ YmFzZS5lbmFibGUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVybiBEUk1f UExBTkVfSEVMUEVSX05PX1NDQUxJTkc7CiAKLQljcnRjX2Nsb2NrID0gY3J0Y19zdGF0ZS0+YmFz ZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CisJY3J0Y19jbG9jayA9IGNydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKIAltYXhfZG90Y2xrID0gdG9faW50ZWxfYXRvbWlj X3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUpLT5jZGNsay5sb2dpY2FsLmNkY2xrOwogCiAJ aWYgKElTX0dFTUlOSUxBS0UoZGV2X3ByaXYpIHx8IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAp CkBAIC0xNDY5OCw3ICsxNDcwMSw3IEBAIGludGVsX2xlZ2FjeV9jdXJzb3JfdXBkYXRlKHN0cnVj dCBkcm1fcGxhbmUgKl9wbGFuZSwKIAkgKiBXaGVuIGNydGMgaXMgaW5hY3RpdmUgb3IgdGhlcmUg aXMgYSBtb2Rlc2V0IHBlbmRpbmcsCiAJICogd2FpdCBmb3IgaXQgdG8gY29tcGxldGUgaW4gdGhl IHNsb3dwYXRoCiAJICovCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCBuZWVkc19t b2Rlc2V0KGNydGNfc3RhdGUpIHx8CisJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwgbmVl ZHNfbW9kZXNldChjcnRjX3N0YXRlKSB8fAogCSAgICBjcnRjX3N0YXRlLT51cGRhdGVfcGlwZSkK IAkJZ290byBzbG93OwogCkBAIC0xNjExNCw3ICsxNjExNyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf aW5pdGlhbF9jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCWdvdG8gb3V0OwogCQl9 CiAKLQkJaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7CisJCWlmIChjcnRjX3N0YXRlLT5o dy5hY3RpdmUpIHsKIAkJCXJldCA9IGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX3BsYW5lcyhzdGF0 ZSwgJmNydGMtPmJhc2UpOwogCQkJaWYgKHJldCkKIAkJCQlnb3RvIG91dDsKQEAgLTE2NDY0LDcg KzE2NDY3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAkJCSAgIEk5MTVfUkVBRChyZWcpICYgflBJUEVDT05GX0ZSQU1FX1NUQVJU X0RFTEFZX01BU0spOwogCX0KIAotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgeworCWlm IChjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsKIAkJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsK IAogCQkvKiBEaXNhYmxlIGV2ZXJ5dGhpbmcgYnV0IHRoZSBwcmltYXJ5IHBsYW5lICovCkBAIC0x NjQ4OSwxMCArMTY0OTIsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfY3J0YyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogCS8qIEFkanVzdCB0aGUgc3RhdGUgb2YgdGhlIG91dHB1 dCBwaXBlIGFjY29yZGluZyB0byB3aGV0aGVyIHdlCiAJICogaGF2ZSBhY3RpdmUgY29ubmVjdG9y cy9lbmNvZGVycy4gKi8KLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYgIWludGVsX2Ny dGNfaGFzX2VuY29kZXJzKGNydGMpKQorCWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUgJiYgIWlu dGVsX2NydGNfaGFzX2VuY29kZXJzKGNydGMpKQogCQlpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9t aWMoJmNydGMtPmJhc2UsIGN0eCk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgfHwg SEFTX0dNQ0goZGV2X3ByaXYpKSB7CisJaWYgKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSB8fCBIQVNf R01DSChkZXZfcHJpdikpIHsKIAkJLyoKIAkJICogV2Ugc3RhcnQgb3V0IHdpdGggdW5kZXJydW4g cmVwb3J0aW5nIGRpc2FibGVkIHRvIGF2b2lkIHJhY2VzLgogCQkgKiBGb3IgY29ycmVjdCBib29r a2VlcGluZyBtYXJrIHRoaXMgb24gYWN0aXZlIGNydGNzLgpAQCAtMTY1MzYsNyArMTY1MzksNyBA QCBzdGF0aWMgYm9vbCBoYXNfYm9ndXNfZHBsbF9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJICogcm9hZC4KIAkgKi8KIAlyZXR1cm4gSVNfR0VOKGRl dl9wcml2LCA2KSAmJgotCQljcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSAmJgorCQljcnRjX3N0YXRl LT5ody5hY3RpdmUgJiYKIAkJY3J0Y19zdGF0ZS0+c2hhcmVkX2RwbGwgJiYKIAkJY3J0Y19zdGF0 ZS0+cG9ydF9jbG9jayA9PSAwOwogfQpAQCAtMTY1NTMsNyArMTY1NTYsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9zYW5pdGl6ZV9lbmNvZGVyKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQog CSAqIGVuY29kZXIgaXMgYWN0aXZlIGFuZCB0cnlpbmcgdG8gcmVhZCBmcm9tIGEgcGlwZSkgYW5k IHRoZQogCSAqIHBpcGUgaXRzZWxmIGJlaW5nIGFjdGl2ZS4gKi8KIAlib29sIGhhc19hY3RpdmVf Y3J0YyA9IGNydGNfc3RhdGUgJiYKLQkJY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmU7CisJCWNydGNf c3RhdGUtPmh3LmFjdGl2ZTsKIAogCWlmIChjcnRjX3N0YXRlICYmIGhhc19ib2d1c19kcGxsX2Nv bmZpZyhjcnRjX3N0YXRlKSkgewogCQlEUk1fREVCVUdfS01TKCJCSU9TIGhhcyBtaXNwcm9ncmFt bWVkIHRoZSBoYXJkd2FyZS4gRGlzYWJsaW5nIHBpcGUgJWNcbiIsCkBAIC0xNjY2MSwxOCArMTY2 NjQsMTggQEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJCW1lbXNldChjcnRjX3N0YXRlLCAwLCBzaXplb2YoKmNydGNf c3RhdGUpKTsKIAkJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX3Jlc2V0KCZjcnRjLT5iYXNlLCAm Y3J0Y19zdGF0ZS0+YmFzZSk7CiAKLQkJY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgPSBjcnRjX3N0 YXRlLT5iYXNlLmVuYWJsZSA9CisJCWNydGNfc3RhdGUtPmh3LmFjdGl2ZSA9IGNydGNfc3RhdGUt Pmh3LmVuYWJsZSA9CiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0Yywg Y3J0Y19zdGF0ZSk7CiAKLQkJY3J0Yy0+YmFzZS5lbmFibGVkID0gY3J0Y19zdGF0ZS0+YmFzZS5l bmFibGU7Ci0JCWNydGMtPmFjdGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlOworCQljcnRj LT5iYXNlLmVuYWJsZWQgPSBjcnRjX3N0YXRlLT5ody5lbmFibGU7CisJCWNydGMtPmFjdGl2ZSA9 IGNydGNfc3RhdGUtPmh3LmFjdGl2ZTsKIAotCQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUp CisJCWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCQlkZXZfcHJpdi0+YWN0aXZlX3BpcGVz IHw9IEJJVChjcnRjLT5waXBlKTsKIAogCQlEUk1fREVCVUdfS01TKCJbQ1JUQzolZDolc10gaHcg c3RhdGUgcmVhZG91dDogJXNcbiIsCiAJCQkgICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMt PmJhc2UubmFtZSwKLQkJCSAgICAgIGVuYWJsZWRkaXNhYmxlZChjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSkpOworCQkJICAgICAgZW5hYmxlZGRpc2FibGVkKGNydGNfc3RhdGUtPmh3LmFjdGl2ZSkp OwogCX0KIAogCXJlYWRvdXRfcGxhbmVfc3RhdGUoZGV2X3ByaXYpOwpAQCAtMTY2OTQsNyArMTY2 OTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl ID0KIAkJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwogCi0JCQlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUgJiYKKwkJCWlmIChjcnRjX3N0YXRlLT5ody5hY3RpdmUg JiYKIAkJCSAgICBjcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9PSBwbGwpCiAJCQkJcGxsLT5zdGF0 ZS5jcnRjX21hc2sgfD0gMSA8PCBjcnRjLT5waXBlOwogCQl9CkBAIC0xNjczOSw3ICsxNjc0Miw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQkJY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRj KTsKIAkJCWNydGNfc3RhdGUgPSBjcnRjID8gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNl LnN0YXRlKSA6IE5VTEw7CiAKLQkJCWlmIChjcnRjX3N0YXRlICYmIGNydGNfc3RhdGUtPmJhc2Uu YWN0aXZlKSB7CisJCQlpZiAoY3J0Y19zdGF0ZSAmJiBjcnRjX3N0YXRlLT5ody5hY3RpdmUpIHsK IAkJCQkvKgogCQkJCSAqIFRoaXMgaGFzIHRvIGJlIGRvbmUgZHVyaW5nIGhhcmR3YXJlIHJlYWRv dXQKIAkJCQkgKiBiZWNhdXNlIGFueXRoaW5nIGNhbGxpbmcgLmNydGNfZGlzYWJsZSBtYXkKQEAg LTE2NzY5LDExICsxNjc3MiwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRf aHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJaW50IG1pbl9jZGNsayA9IDA7CiAK IAkJbWVtc2V0KCZjcnRjLT5iYXNlLm1vZGUsIDAsIHNpemVvZihjcnRjLT5iYXNlLm1vZGUpKTsK LQkJaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKSB7CisJCWlmIChjcnRjX3N0YXRlLT5ody5h Y3RpdmUpIHsKIAkJCWludGVsX21vZGVfZnJvbV9waXBlX2NvbmZpZygmY3J0Yy0+YmFzZS5tb2Rl LCBjcnRjX3N0YXRlKTsKIAkJCWNydGMtPmJhc2UubW9kZS5oZGlzcGxheSA9IGNydGNfc3RhdGUt PnBpcGVfc3JjX3c7CiAJCQljcnRjLT5iYXNlLm1vZGUudmRpc3BsYXkgPSBjcnRjX3N0YXRlLT5w aXBlX3NyY19oOwotCQkJaW50ZWxfbW9kZV9mcm9tX3BpcGVfY29uZmlnKCZjcnRjX3N0YXRlLT5i YXNlLmFkanVzdGVkX21vZGUsIGNydGNfc3RhdGUpOworCQkJaW50ZWxfbW9kZV9mcm9tX3BpcGVf Y29uZmlnKCZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLAorCQkJCQkJICAgIGNydGNfc3Rh dGUpOwogCQkJV0FSTl9PTihkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKCZjcnRjX3N0YXRl LT5iYXNlLCAmY3J0Yy0+YmFzZS5tb2RlKSk7CiAKIAkJCS8qCkBAIC0xNjc4NSw3ICsxNjc4OSw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQkJICogc2V0IGEgZmxhZyB0byBpbmRpY2F0ZSB0aGF0IGEgZnVsbCBy ZWNhbGN1bGF0aW9uIGlzCiAJCQkgKiBuZWVkZWQgb24gdGhlIG5leHQgY29tbWl0LgogCQkJICov Ci0JCQljcnRjX3N0YXRlLT5iYXNlLm1vZGUucHJpdmF0ZV9mbGFncyA9IEk5MTVfTU9ERV9GTEFH X0lOSEVSSVRFRDsKKwkJCWNydGNfc3RhdGUtPmh3Lm1vZGUucHJpdmF0ZV9mbGFncyA9IEk5MTVf TU9ERV9GTEFHX0lOSEVSSVRFRDsKIAogCQkJaW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3JhdGUo Y3J0Y19zdGF0ZSk7CiAKQEAgLTE2OTYzLDcgKzE2OTY3LDcgQEAgaW50ZWxfbW9kZXNldF9zZXR1 cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJCWRybV9jcnRjX3ZibGFua19y ZXNldCgmY3J0Yy0+YmFzZSk7CiAKLQkJaWYgKGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCQlp ZiAoY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQkJaW50ZWxfY3J0Y192Ymxhbmtfb24oY3J0Y19z dGF0ZSk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKaW5kZXgg YzRjMDgxYzc5ZGQ5Li4yMTNiMGMwY2RkNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RwLmMKQEAgLTE5NjgsNyArMTk2OCw3IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19j b25maWdfd2lkZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQkJCSAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQkJCSAgY29uc3Qgc3RydWN0IGxpbmtfY29uZmln X2xpbWl0cyAqbGltaXRzKQogewotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7 CiAJaW50IGJwcCwgY2xvY2ssIGxhbmVfY291bnQ7CiAJaW50IG1vZGVfcmF0ZSwgbGlua19jbG9j aywgbGlua19hdmFpbDsKIApAQCAtMjAyMiw3ICsyMDIyLDcgQEAgc3RhdGljIGludCBpbnRlbF9k cF9kc2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIHsKIAlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2Rw KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0 LT5iYXNlLmJhc2UuZGV2KTsKLQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwog CXU4IGRzY19tYXhfYnBjOwogCWludCBwaXBlX2JwcDsKIAlpbnQgcmV0OwpAQCAtMjEzMyw3ICsy MTMzLDcgQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIAkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAogCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKLQlz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFz ZS5hZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCXN0cnVjdCBsaW5rX2Nv bmZpZ19saW1pdHMgbGltaXRzOwogCWludCBjb21tb25fbGVuOwpAQCAtMjIyMSw3ICsyMjIxLDcg QEAgaW50ZWxfZHBfeWNiY3I0MjBfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiB7 CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNw bGF5X2luZm87CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUg PQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcu YWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMo Y3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlpbnQgcmV0OwogCkBAIC0yMjUwLDcgKzIyNTAsNyBA QCBib29sIGludGVsX2RwX2xpbWl0ZWRfY29sb3JfcmFuZ2UoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJY29uc3Qgc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVj dG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0 b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmY3J0 Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCS8qCiAJICogT3VyIFlDYkNyIG91dHB1dCBp cyBhbHdheXMgbGltaXRlZCByYW5nZS4KQEAgLTIyODMsNyArMjI4Myw3IEBAIGludGVsX2RwX2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2Nv bmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gZW5j X3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgaW50ZWxfbHNwY29uICpsc3Bj b24gPSBlbmNfdG9faW50ZWxfbHNwY29uKCZlbmNvZGVyLT5iYXNlKTsKIAllbnVtIHBvcnQgcG9y dCA9IGVuY29kZXItPnBvcnQ7CkBAIC0yNDAzLDcgKzI0MDMsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kcF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCWVudW0g cG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRf bW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZw aXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWludGVsX2RwX3NldF9saW5rX3BhcmFt cyhpbnRlbF9kcCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkJIHBpcGVfY29uZmlnLT5s YW5lX2NvdW50LApAQCAtMzIzNSw3ICszMjM1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0 X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCWZsYWdzIHw9IERSTV9N T0RFX0ZMQUdfTlZTWU5DOwogCX0KIAotCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUu ZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgfD0g ZmxhZ3M7CiAKIAlpZiAoSVNfRzRYKGRldl9wcml2KSAmJiB0bXAgJiBEUF9DT0xPUl9SQU5HRV8x Nl8yMzUpCiAJCXBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlID0gdHJ1ZTsKQEAgLTMy NTIsNyArMzI1Miw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IDI3MDAw MDsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPQor CXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPQogCQlpbnRlbF9kb3Rj bG9ja19jYWxjdWxhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCiAJCQkJCSAmcGlwZV9jb25m aWctPmRwX21fbik7CiAKQEAgLTUwNDUsNyArNTA0NSw3IEBAIGludCBpbnRlbF9kcF9yZXRyYWlu X2xpbmsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlXQVJOX09OKCFpbnRlbF9j cnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpKTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFz ZS5hY3RpdmUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiAwOwogCiAJ aWYgKGNvbm5fc3RhdGUtPmNvbW1pdCAmJgpAQCAtNjkwNyw3ICs2OTA3LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHBfc2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAogCQlyZXR1cm47CiAJfQogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmFjdGl2ZSkgewor CWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCURSTV9ERUJVR19LTVMoImVEUCBlbmNv ZGVyIGRpc2FibGVkLiBDUlRDIG5vdCBBY3RpdmVcbiIpOwogCQlyZXR1cm47CiAJfQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKaW5kZXggNTQ4NGJkNDUzNGMx Li43ZDYzZjBhNzljYTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHBfbXN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cF9tc3QuYwpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRl X2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciA9CiAJCXRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRl LT5jb25uZWN0b3IpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGU7CiAJdm9pZCAqcG9ydCA9IGNvbm5lY3Rvci0+cG9ydDsKIAlib29s IGNvbnN0YW50X24gPSBkcm1fZHBfaGFzX3F1aXJrKCZpbnRlbF9kcC0+ZGVzYywKIAkJCQkJICAg RFBfRFBDRF9RVUlSS19DT05TVEFOVF9OKTsKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIGludCBp bnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICppbnRlbF9jb25uX3N0YXRl ID0KIAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUoY29ubl9zdGF0ZSk7CiAJY29u c3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmcGlwZV9jb25m aWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl OwogCXZvaWQgKnBvcnQgPSBjb25uZWN0b3ItPnBvcnQ7CiAJc3RydWN0IGxpbmtfY29uZmlnX2xp bWl0cyBsaW1pdHM7CiAJaW50IHJldDsKQEAgLTE4Nyw3ICsxODcsNyBAQCBpbnRlbF9kcF9tc3Rf YXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAKIAkJaWYgKCFj cnRjX3N0YXRlIHx8CiAJCSAgICAhZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoY3J0Y19z dGF0ZSkgfHwKLQkJICAgIHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Y19zdGF0ZSktPmJhc2UuZW5h YmxlKQorCQkgICAgdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKS0+aHcuZW5hYmxlKQog CQkJcmV0dXJuIDA7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8u YwppbmRleCA5ODI3Zjk5NDkxZDEuLmE2OGU1YzViOTFiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kdm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2R2by5jCkBAIC0xNzgsOSArMTc4LDkgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHZvX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJZWxzZQog CQlmbGFncyB8PSBEUk1fTU9ERV9GTEFHX05WU1lOQzsKIAotCXBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21v ZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7CiB9CiAKIHN0 YXRpYyB2b2lkIGludGVsX2Rpc2FibGVfZHZvKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LApAQCAtMjA3LDggKzIwNyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9kdm8oc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJdTMyIHRlbXAgPSBJOTE1X1JFQUQoZHZvX3JlZyk7 CiAKIAlpbnRlbF9kdm8tPmRldi5kZXZfb3BzLT5tb2RlX3NldCgmaW50ZWxfZHZvLT5kZXYsCi0J CQkJCSAmcGlwZV9jb25maWctPmJhc2UubW9kZSwKLQkJCQkJICZwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlKTsKKwkJCQkJICZwaXBlX2NvbmZpZy0+aHcubW9kZSwKKwkJCQkJICZwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZSk7CiAKIAlJOTE1X1dSSVRFKGR2b19yZWcsIHRlbXAg fCBEVk9fRU5BQkxFKTsKIAlJOTE1X1JFQUQoZHZvX3JlZyk7CkBAIC0yNTMsNyArMjUzLDcgQEAg c3RhdGljIGludCBpbnRlbF9kdm9fY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCiAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2byhlbmNv ZGVyKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRfbW9kZSA9CiAJCWlu dGVsX2R2by0+YXR0YWNoZWRfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwotCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVz dGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlw ZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAKIAkvKgogCSAqIElmIHdlIGhhdmUgdGltaW5n cyBmcm9tIHRoZSBCSU9TIGZvciB0aGUgcGFuZWwsIHB1dCB0aGVtIGluCkBAIC0yNzgsNyArMjc4 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19p bnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21v ZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlw ZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZv ID0gZW5jX3RvX2R2byhlbmNvZGVyKTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJ dTMyIGR2b192YWw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2ZiYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYwppbmRl eCAzMTExZWNhZWFiZDAuLmM2Y2MzNzc1ZjNiOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2ZiYy5jCkBAIC02NjcsNyArNjY3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJj X3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAljYWNoZS0+dm1h ID0gTlVMTDsKIAljYWNoZS0+ZmxhZ3MgPSAwOwogCi0JY2FjaGUtPmNydGMubW9kZV9mbGFncyA9 IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFnczsKKwljYWNoZS0+Y3J0Yy5tb2Rl X2ZsYWdzID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFnczsKIAlpZiAoSVNfSEFT V0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKIAkJY2FjaGUtPmNydGMu aHN3X2Jkd19waXhlbF9yYXRlID0gY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2hkbWkuYwppbmRleCA5MmQxY2JiYmVlMmIuLjJmNWZj NzFhYzlhMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9o ZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9oZG1pLmMKQEAg LTcwOCw3ICs3MDgsNyBAQCBpbnRlbF9oZG1pX2NvbXB1dGVfYXZpX2luZm9mcmFtZShzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lICpm cmFtZSA9ICZjcnRjX3N0YXRlLT5pbmZvZnJhbWVzLmF2aS5hdmk7CiAJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwogCWludCByZXQ7 CiAKQEAgLTgwNCw3ICs4MDQsNyBAQCBpbnRlbF9oZG1pX2NvbXB1dGVfaGRtaV9pbmZvZnJhbWUo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlyZXQgPSBkcm1faGRtaV92ZW5kb3Jf aW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKGZyYW1lLAogCQkJCQkJCSAgY29ubl9zdGF0ZS0+ Y29ubmVjdG9yLAotCQkJCQkJCSAgJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZSk7CisJ CQkJCQkJICAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSk7CiAJaWYgKFdBUk5fT04ocmV0 KSkKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC0xMDI3LDcgKzEwMjcsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9oZG1pX2NvbXB1dGVfZ2NwX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIAogCS8qIEVuYWJsZSBkZWZhdWx0X3BoYXNlIHdoZW5ldmVyIHRoZSBkaXNwbGF5IG1v ZGUgaXMgc3VpdGFibHkgYWxpZ25lZCAqLwogCWlmIChnY3BfZGVmYXVsdF9waGFzZV9wb3NzaWJs ZShjcnRjX3N0YXRlLT5waXBlX2JwcCwKLQkJCQkgICAgICAgJmNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZSkpCisJCQkJICAgICAgICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlKSkK IAkJY3J0Y19zdGF0ZS0+aW5mb2ZyYW1lcy5nY3AgfD0gR0NQX0RFRkFVTFRfUEhBU0VfRU5BQkxF OwogfQogCkBAIC0xNzQzLDcgKzE3NDMsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZXBh cmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0g dG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVjdCBpbnRlbF9oZG1p ICppbnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoJmVuY29kZXItPmJhc2UpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJmNydGNfc3RhdGUtPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBoZG1pX3ZhbDsK IAogCWludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19vdXRwdXQoaW50ZWxfaGRtaSwgdHJ1ZSk7 CkBAIC0xODM0LDcgKzE4MzQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2dldF9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJICAgIHRtcCAmIEhETUlfQ09MT1JfUkFO R0VfMTZfMjM1KQogCQlwaXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRydWU7CiAK LQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOworCXBpcGVf Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwogCiAJaWYgKCh0bXAgJiBT RFZPX0NPTE9SX0ZPUk1BVF9NQVNLKSA9PSBIRE1JX0NPTE9SX0ZPUk1BVF8xMmJwYykKIAkJZG90 Y2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayAqIDIgLyAzOwpAQCAtMTg0NCw3ICsxODQ0 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCWlmIChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJZG90 Y2xvY2sgLz0gcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+ aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gZG90Y2xvY2s7CiAKIAlwaXBlX2NvbmZpZy0+ bGFuZV9jb3VudCA9IDQ7CiAKQEAgLTIyMjAsNyArMjIyMCw3IEBAIHN0YXRpYyBib29sIGhkbWlf ZGVlcF9jb2xvcl9wb3NzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwogCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7CiAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgaTsKIAogCWlmIChIQVNf R01DSChkZXZfcHJpdikpCkBAIC0yMzQxLDcgKzIzNDEsNyBAQCBzdGF0aWMgaW50IGludGVsX2hk bWlfY29tcHV0ZV9jbG9jayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1 Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5i YXNlKTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0J CSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1 c3RlZF9tb2RlOwogCWludCBicGMsIGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsK IAogCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMQ0xLKQpAQCAt MjM4Myw3ICsyMzgzLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfaGRtaV9saW1pdGVkX2NvbG9yX3Jh bmdlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3MKIAljb25zdCBzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQogCQl0b19p bnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFk anVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJLyoKIAkg KiBPdXIgWUNiQ3Igb3V0cHV0IGlzIGFsd2F5cyBsaW1pdGVkIHJhbmdlLgpAQCAtMjQxMSw3ICsy NDExLDcgQEAgaW50IGludGVsX2hkbWlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiB7CiAJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9f aW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Ci0Jc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsK KwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+ aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29u bl9zdGF0ZS0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1fc2NkYyAqc2NkYyA9ICZjb25uZWN0b3It PmRpc3BsYXlfaW5mby5oZG1pLnNjZGM7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVjdG9y X3N0YXRlICppbnRlbF9jb25uX3N0YXRlID0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2xzcGNvbi5jCmluZGV4IGY4ZjEzMDg2NDNhOS4uNTE0NWZmOGI5NjJiIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2xzcGNvbi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfbHNwY29uLmMKQEAgLTE4OSw3ICsxODks NyBAQCB2b2lkIGxzcGNvbl95Y2JjcjQyMF9jb25maWcoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKIHsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25u ZWN0b3ItPmRpc3BsYXlfaW5mbzsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRq dXN0ZWRfbW9kZSA9Ci0JCQkJCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCQkJ CSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCiAJaWYgKGRybV9tb2RlX2lzXzQyMF9v bmx5KGluZm8sIGFkanVzdGVkX21vZGUpICYmCiAJICAgIGNvbm5lY3Rvci0+eWNiY3JfNDIwX2Fs bG93ZWQpIHsKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2b2lkIGxzcGNvbl9zZXRfaW5mb2ZyYW1lcyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGlu dGVsX2xzcGNvbiAqbHNwY29uID0gJmRpZ19wb3J0LT5sc3Bjb247CiAJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAogCWlmICghbHNw Y29uLT5hY3RpdmUpIHsKIAkJRFJNX0VSUk9SKCJXcml0aW5nIGluZm9mcmFtZXMgd2hpbGUgTFNQ Q09OIGRpc2FibGVkID9cbiIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2x2 ZHMuYwppbmRleCAxMzg0MWQ3YzQ1NWIuLmYxN2Q2ZTAyNDYwZiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9sdmRzLmMKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9sdmRzX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ ZWxzZQogCQlmbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BWU1lOQzsKIAotCXBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CisJcGlwZV9jb25maWctPmh3LmFkanVz dGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDUp CiAJCXBpcGVfY29uZmlnLT5nbWNoX3BmaXQubHZkc19ib3JkZXJfYml0cyA9CkBAIC0xNDgsNyAr MTQ4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfbHZkc19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAogCQlwaXBlX2NvbmZpZy0+Z21jaF9wZml0LmNvbnRyb2wgfD0gdG1w ICYgUEFORUxfOFRPNl9ESVRIRVJfRU5BQkxFOwogCX0KIAotCXBpcGVfY29uZmlnLT5iYXNlLmFk anVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrOworCXBpcGVf Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jazsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfbHZkc19wcHNfZ2V0X2h3X3N0YXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9wcmVfZW5hYmxlX2x2ZHMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJc3RydWN0IGludGVsX2x2ZHNfZW5jb2RlciAqbHZkc19lbmNvZGVyID0gdG9fbHZkc19lbmNv ZGVyKCZlbmNvZGVyLT5iYXNlKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Ci0JY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0 ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMt PnBpcGU7CiAJdTMyIHRlbXA7CiAKQEAgLTM5Miw3ICszOTIsNyBAQCBzdGF0aWMgaW50IGludGVs X2x2ZHNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIs CiAJCXRvX2x2ZHNfZW5jb2RlcigmaW50ZWxfZW5jb2Rlci0+YmFzZSk7CiAJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0KIAkJbHZkc19lbmNvZGVyLT5hdHRhY2hlZF9j b25uZWN0b3I7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAmcGlw ZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2Uu Y3J0Yyk7CiAJdW5zaWduZWQgaW50IGx2ZHNfYnBwOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3BhbmVsLmMKaW5kZXggYmMxNGU5YzAyODVhLi41ZTNmZDM3ZDk0NzEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcGFuZWwuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3BhbmVsLmMKQEAgLTE3OCw3ICsx NzgsNyBAQCBpbnRlbF9wY2hfcGFuZWxfZml0dGluZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YywKIAkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJCWludCBm aXR0aW5nX21vZGUpCiB7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAlpbnQgeCA9IDAsIHkgPSAwLCB3aWR0aCA9IDAsIGhlaWdodCA9IDA7CiAKIAkv KiBOYXRpdmUgbW9kZXMgZG9uJ3QgbmVlZCBmaXR0aW5nICovCkBAIC0zMDAsNyArMzAwLDcgQEAg c3RhdGljIGlubGluZSB1MzIgcGFuZWxfZml0dGVyX3NjYWxpbmcodTMyIHNvdXJjZSwgdTMyIHRh cmdldCkKIHN0YXRpYyB2b2lkIGk5NjVfc2NhbGVfYXNwZWN0KHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZywKIAkJCSAgICAgIHUzMiAqcGZpdF9jb250cm9sKQogewotCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJdTMyIHNjYWxlZF93 aWR0aCA9IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkgKgogCQlwaXBlX2NvbmZpZy0+cGlw ZV9zcmNfaDsKIAl1MzIgc2NhbGVkX2hlaWdodCA9IHBpcGVfY29uZmlnLT5waXBlX3NyY193ICoK QEAgLTMyMSw3ICszMjEsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3NjYWxlX2FzcGVjdChzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkgICAgICB1MzIgKnBmaXRfY29udHJv bCwgdTMyICpwZml0X3BnbV9yYXRpb3MsCiAJCQkgICAgICB1MzIgKmJvcmRlcikKIHsKLQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5h ZGp1c3RlZF9tb2RlOworCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0g JnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCXUzMiBzY2FsZWRfd2lkdGggPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5ICoKIAkJcGlwZV9jb25maWctPnBpcGVfc3JjX2g7CiAJ dTMyIHNjYWxlZF9oZWlnaHQgPSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAqCkBAIC0zODAsNyAr MzgwLDcgQEAgdm9pZCBpbnRlbF9nbWNoX3BhbmVsX2ZpdHRpbmcoc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMsCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9jcnRjLT5iYXNlLmRldik7CiAJdTMyIHBmaXRfY29udHJvbCA9IDAsIHBmaXRf cGdtX3JhdGlvcyA9IDAsIGJvcmRlciA9IDA7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKIAogCS8qIE5hdGl2ZSBtb2RlcyBkb24ndCBuZWVkIGZpdHRpbmcgKi8KIAlpZiAo YWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSA9PSBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfdyAm JgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9waXBlX2Ny Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9waXBlX2NyYy5jCmluZGV4 IDYyNjBhMjA4MjcxOS4uZmM2MDI1MzNhNjAyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3BpcGVfY3JjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9waXBlX2NyYy5jCkBAIC0zMTMsNyArMzEzLDcgQEAgaW50ZWxfY3J0Y19j cmNfc2V0dXBfd29ya2Fyb3VuZHMoc3RydWN0IGludGVsX2NydGMgKmNydGMsIGJvb2wgZW5hYmxl KQogCXBpcGVfY29uZmlnLT5jcmNfZW5hYmxlZCA9IGVuYWJsZTsKIAogCWlmIChJU19IQVNXRUxM KGRldl9wcml2KSAmJgotCSAgICBwaXBlX2NvbmZpZy0+YmFzZS5hY3RpdmUgJiYgY3J0Yy0+cGlw ZSA9PSBQSVBFX0EgJiYKKwkgICAgcGlwZV9jb25maWctPmh3LmFjdGl2ZSAmJiBjcnRjLT5waXBl ID09IFBJUEVfQSAmJgogCSAgICBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIgPT0gVFJBTlND T0RFUl9FRFApCiAJCXBpcGVfY29uZmlnLT5iYXNlLm1vZGVfY2hhbmdlZCA9IHRydWU7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jCmluZGV4IDIxMTcxMGY1MjE0Yy4u MzQ3MDA0OTgxY2ZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfcHNyLmMK QEAgLTUzNiwxMSArNTM2LDExIEBAIHRyYW5zY29kZXJfaGFzX3BzcjIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHRyYW5zY29kZXIgdHJhbnMpCiAKIHN0YXRpYyB1MzIg aW50ZWxfZ2V0X2ZyYW1lX3RpbWVfdXMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNz dGF0ZSkKIHsKLQlpZiAoIWNzdGF0ZSB8fCAhY3N0YXRlLT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNz dGF0ZSB8fCAhY3N0YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiAwOwogCiAJcmV0dXJuIERJVl9S T1VORF9VUCgxMDAwICogMTAwMCwKLQkJCSAgICBkcm1fbW9kZV92cmVmcmVzaCgmY3N0YXRlLT5i YXNlLmFkanVzdGVkX21vZGUpKTsKKwkJCSAgICBkcm1fbW9kZV92cmVmcmVzaCgmY3N0YXRlLT5o dy5hZGp1c3RlZF9tb2RlKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHBzcjJfcHJvZ3JhbV9pZGxlX2Zy YW1lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC02MDUsOCArNjA1LDgg QEAgc3RhdGljIGJvb2wgaW50ZWxfcHNyMl9jb25maWdfdmFsaWQoc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCwKIAkJCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9k cCk7Ci0JaW50IGNydGNfaGRpc3BsYXkgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUu Y3J0Y19oZGlzcGxheTsKLQlpbnQgY3J0Y192ZGlzcGxheSA9IGNydGNfc3RhdGUtPmJhc2UuYWRq dXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OworCWludCBjcnRjX2hkaXNwbGF5ID0gY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OworCWludCBjcnRjX3ZkaXNwbGF5ID0g Y3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX3ZkaXNwbGF5OwogCWludCBwc3JfbWF4 X2ggPSAwLCBwc3JfbWF4X3YgPSAwOwogCiAJaWYgKCFkZXZfcHJpdi0+cHNyLnNpbmtfcHNyMl9z dXBwb3J0KQpAQCAtNjcyLDcgKzY3Miw3IEBAIHZvaWQgaW50ZWxfcHNyX2NvbXB1dGVfY29uZmln KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZHBfdG9faTkxNShpbnRlbF9kcCk7CiAJY29uc3Qgc3RydWN0IGRy bV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlpbnQgcHNyX3Nl dHVwX3RpbWU7CiAKIAlpZiAoIUNBTl9QU1IoZGV2X3ByaXYpKQpAQCAtMTEzOSw3ICsxMTM5LDcg QEAgc3RhdGljIGludCBpbnRlbF9wc3JfZmFzdHNldF9mb3JjZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAKIAkJaW50ZWxfY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3Rh dGUoY3J0Y19zdGF0ZSk7CiAKLQkJaWYgKGludGVsX2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlICYm IGludGVsX2NydGNfc3RhdGUtPmhhc19wc3IpIHsKKwkJaWYgKGludGVsX2NydGNfc3RhdGUtPmh3 LmFjdGl2ZSAmJiBpbnRlbF9jcnRjX3N0YXRlLT5oYXNfcHNyKSB7CiAJCQkvKiBNYXJrIG1vZGUg YXMgY2hhbmdlZCB0byB0cmlnZ2VyIGEgcGlwZS0+dXBkYXRlKCkgKi8KIAkJCWludGVsX2NydGNf c3RhdGUtPmJhc2UubW9kZV9jaGFuZ2VkID0gdHJ1ZTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3Nkdm8uYwppbmRleCA0N2Y1ZDg3YTkzOGEuLjk3YWU4Y2Mx MzE0ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZv LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zZHZvLmMKQEAgLTEw ODcsNyArMTA4Nyw3IEBAIHN0YXRpYyBib29sIGludGVsX3Nkdm9fY29tcHV0ZV9hdmlfaW5mb2Zy YW1lKHN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAogewogCXN0cnVjdCBoZG1pX2F2aV9p bmZvZnJhbWUgKmZyYW1lID0gJmNydGNfc3RhdGUtPmluZm9mcmFtZXMuYXZpLmF2aTsKIAljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRl LT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwog CWludCByZXQ7CiAKIAlpZiAoIWNydGNfc3RhdGUtPmhhc19oZG1pX3NpbmspCkBAIC0xMjc2LDgg KzEyNzYsOCBAQCBzdGF0aWMgaW50IGludGVsX3Nkdm9fY29tcHV0ZV9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXRvX2ludGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlKGNv bm5fc3RhdGUpOwogCXN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3RvciAqaW50ZWxfc2R2b19jb25u ZWN0b3IgPQogCQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3Ip OwotCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGU7Ci0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUgPSAm cGlwZV9jb25maWctPmJhc2UubW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcubW9kZTsKIAogCURSTV9ERUJVR19L TVMoImZvcmNpbmcgYnBjIHRvIDggZm9yIFNEVk9cbiIpOwogCXBpcGVfY29uZmlnLT5waXBlX2Jw cCA9IDgqMzsKQEAgLTE0MzAsMTIgKzE0MzAsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2R2b19w cmVfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFz ZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0 YXRlLT5iYXNlLmNydGMpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0gJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlOwogCWNvbnN0IHN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3Rvcl9zdGF0ZSAqc2R2b19z dGF0ZSA9CiAJCXRvX2ludGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwogCWNv bnN0IHN0cnVjdCBpbnRlbF9zZHZvX2Nvbm5lY3RvciAqaW50ZWxfc2R2b19jb25uZWN0b3IgPQog CQl0b19pbnRlbF9zZHZvX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5jb25uZWN0b3IpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlID0gJmNydGNfc3RhdGUtPmJhc2UubW9kZTsK Kwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5t b2RlOwogCXN0cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvID0gdG9fc2R2byhpbnRlbF9lbmNv ZGVyKTsKIAl1MzIgc2R2b3g7CiAJc3RydWN0IGludGVsX3Nkdm9faW5fb3V0X21hcCBpbl9vdXQ7 CkBAIC0xNjI5LDcgKzE2MjksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2dldF9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQlmbGFncyB8PSBEUk1fTU9ERV9GTEFH X05WU1lOQzsKIAl9CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9 IGZsYWdzOworCXBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGZsYWdzOwog CiAJLyoKIAkgKiBwaXhlbCBtdWx0aXBsaWVyIHJlYWRvdXQgaXMgdHJpY2t5OiBPbmx5IG9uIGk5 MTVnL2dtIGl0IGlzIHN0b3JlZCBpbgpAQCAtMTY0OSw3ICsxNjQ5LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfc2R2b19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlm IChwaXBlX2NvbmZpZy0+cGl4ZWxfbXVsdGlwbGllcikKIAkJZG90Y2xvY2sgLz0gcGlwZV9jb25m aWctPnBpeGVsX211bHRpcGxpZXI7CiAKLQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2Rl LmNydGNfY2xvY2sgPSBkb3RjbG9jazsKKwlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX2Nsb2NrID0gZG90Y2xvY2s7CiAKIAkvKiBDcm9zcyBjaGVjayB0aGUgcG9ydCBwaXhlbCBt dWx0aXBsaWVyIHdpdGggdGhlIHNkdm8gZW5jb2RlciBzdGF0ZS4gKi8KIAlpZiAoaW50ZWxfc2R2 b19nZXRfdmFsdWUoaW50ZWxfc2R2bywgU0RWT19DTURfR0VUX0NMT0NLX1JBVEVfTVVMVCwKQEAg LTE3MDEsNyArMTcwMSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fZW5hYmxlX2F1ZGlvKHN0 cnVjdCBpbnRlbF9zZHZvICppbnRlbF9zZHZvLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKIHsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJdTggKmVsZCA9IGNvbm5lY3Rv ci0+ZWxkOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwpp bmRleCA1YWUxMmFiM2M1YjcuLmVmMGNhN2M2ZDExZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Nwcml0ZS5jCkBAIC04Myw3ICs4Myw3IEBAIHZvaWQgaW50ZWxfcGlw ZV91cGRhdGVfc3RhcnQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0 YXRlKQogewogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhuZXdfY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9ICZuZXdfY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwor CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJm5ld19jcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCWxvbmcgdGltZW91dCA9IG1zZWNzX3RvX2ppZmZp ZXNfdGltZW91dCgxKTsKIAlpbnQgc2NhbmxpbmUsIG1pbiwgbWF4LCB2Ymxhbmtfc3RhcnQ7CiAJ d2FpdF9xdWV1ZV9oZWFkX3QgKndxID0gZHJtX2NydGNfdmJsYW5rX3dhaXRxdWV1ZSgmY3J0Yy0+ YmFzZSk7CkBAIC0xNTEzLDcgKzE1MTMsNyBAQCBnNHhfc3ByaXRlX2NoZWNrX3NjYWxpbmcoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJY29uc3Qgc3RydWN0IGRybV9yZWN0 ICpkc3QgPSAmcGxhbmVfc3RhdGUtPmJhc2UuZHN0OwogCWludCBzcmNfeCwgc3JjX3csIHNyY19o LCBjcnRjX3csIGNydGNfaDsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0 YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogCXVuc2lnbmVkIGludCBzdHJpZGUgPSBwbGFuZV9zdGF0 ZS0+Y29sb3JfcGxhbmVbMF0uc3RyaWRlOwogCXVuc2lnbmVkIGludCBjcHAgPSBmYi0+Zm9ybWF0 LT5jcHBbMF07CiAJdW5zaWduZWQgaW50IHdpZHRoX2J5dGVzOwpAQCAtMTcyNyw4ICsxNzI3LDgg QEAgc3RhdGljIGludCBza2xfcGxhbmVfY2hlY2tfZmIoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCiAJfQogCiAJLyogWS10aWxpbmcgaXMgbm90IHN1cHBvcnRlZCBp biBJRi1JRCBJbnRlcmxhY2UgbW9kZSAqLwotCWlmIChjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSAm JgotCSAgICBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9G TEFHX0lOVEVSTEFDRSAmJgorCWlmIChjcnRjX3N0YXRlLT5ody5lbmFibGUgJiYKKwkgICAgY3J0 Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5mbGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNF ICYmCiAJICAgIChmYi0+bW9kaWZpZXIgPT0gSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQgfHwKIAkg ICAgIGZiLT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWWZfVElMRUQgfHwKIAkgICAgIGZi LT5tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWV9USUxFRF9DQ1MgfHwKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYwppbmRleCA3MDcyNmI0ODEyNDQuLmU4MDBkNDViODEz ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90di5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdHYuYwpAQCAtMTA4NSw3ICsx MDg1LDcgQEAgaW50ZWxfdHZfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29k ZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9 Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOworCQkmcGlwZV9jb25maWctPmh3 LmFkanVzdGVkX21vZGU7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSA9IHt9OwogCXUz MiB0dl9jdGwsIGhjdGwxLCBoY3RsMywgdmN0bDEsIHZjdGwyLCB0bXA7CiAJc3RydWN0IHR2X21v ZGUgdHZfbW9kZSA9IHt9OwpAQCAtMTE4OCw3ICsxMTg4LDcgQEAgaW50ZWxfdHZfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCXRvX2ludGVsX3R2X2Nvbm5l Y3Rvcl9zdGF0ZShjb25uX3N0YXRlKTsKIAljb25zdCBzdHJ1Y3QgdHZfbW9kZSAqdHZfbW9kZSA9 IGludGVsX3R2X21vZGVfZmluZChjb25uX3N0YXRlKTsKIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwor CQkmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IGhkaXNwbGF5ID0gYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKIAlpbnQgdmRpc3BsYXkgPSBhZGp1c3RlZF9tb2RlLT5j cnRjX3ZkaXNwbGF5OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Zkc2MuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5j CmluZGV4IGQ0ZmI3ZjE2ZjlmNi4uNmEzMzhhODNhYWVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zkc2MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX3Zkc2MuYwpAQCAtMzI5LDggKzMyOSw4IEBAIGludCBpbnRlbF9kcF9j b21wdXRlX2RzY19wYXJhbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlpbnQgY29sdW1u X2luZGV4ID0gMDsKIAl1OCBsaW5lX2J1Zl9kZXB0aCA9IDA7CiAKLQl2ZHNjX2NmZy0+cGljX3dp ZHRoID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OwotCXZk c2NfY2ZnLT5waWNfaGVpZ2h0ID0gcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X3ZkaXNwbGF5OworCXZkc2NfY2ZnLT5waWNfd2lkdGggPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZS5jcnRjX2hkaXNwbGF5OworCXZkc2NfY2ZnLT5waWNfaGVpZ2h0ID0gcGlwZV9jb25m aWctPmh3LmFkanVzdGVkX21vZGUuY3J0Y192ZGlzcGxheTsKIAl2ZHNjX2NmZy0+c2xpY2Vfd2lk dGggPSBESVZfUk9VTkRfVVAodmRzY19jZmctPnBpY193aWR0aCwKIAkJCQkJICAgICBwaXBlX2Nv bmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3VudCk7CiAJLyoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS92bHZfZHNpLmMKaW5kZXggNTAwNjRjZGUwNzI0Li4zYmY4MzgyNzlmYzIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvdmx2X2RzaS5jCkBAIC0yNjMsNyArMjYzLDcgQEAgc3RhdGlj IGludCBpbnRlbF9kc2lfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHNp LT5hdHRhY2hlZF9jb25uZWN0b3I7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRl bF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICpmaXhlZF9tb2RlID0gaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2RlOwot CXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29uZmlnLT5i YXNlLmFkanVzdGVkX21vZGU7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21v ZGUgPSAmcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJaW50IHJldDsKIAogCURSTV9E RUJVR19LTVMoIlxuIik7CkBAIC0xMDMyLDcgKzEwMzIsNyBAQCBzdGF0aWMgdm9pZCBieHRfZHNp X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJCQkJJnBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7 CisJCQkJCSZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZV9zdzsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CiAJc3RydWN0IGludGVsX2RzaSAq aW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7CkBAIC0xMDQ1LDcg KzEwNDUsNyBAQCBzdGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCQljcnRjX2hibGFua19zdGFydF9zdywgY3J0Y19oYmxh bmtfZW5kX3N3OwogCiAJLyogRklYTUU6IGh3IHJlYWRvdXQgc2hvdWxkIG5vdCBkZXBlbmQgb24g U1cgc3RhdGUgKi8KLQlhZGp1c3RlZF9tb2RlX3N3ID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCWFkanVzdGVkX21vZGVfc3cgPSAmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlOwogCiAJLyoKIAkgKiBBdGxlYXN0IG9uZSBwb3J0IGlzIGFjdGl2ZSBhcyBlbmNvZGVy LT5nZXRfY29uZmlnIGNhbGxlZCBvbmx5IGlmCkBAIC0xMjA0LDcgKzEyMDQsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK IAl9CiAKIAlpZiAocGNsaykgewotCQlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNy dGNfY2xvY2sgPSBwY2xrOworCQlwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Ns b2NrID0gcGNsazsKIAkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBwY2xrOwogCX0KIH0KQEAg LTEzMTcsNyArMTMxNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7CiAJc3RydWN0IGludGVsX2Rz aSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVsX2RzaShlbmNvZGVyKTsKLQljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0gJnBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCWVudW0gcG9ydCBwb3J0OwogCXVu c2lnbmVkIGludCBicHAgPSBtaXBpX2RzaV9waXhlbF9mb3JtYXRfdG9fYnBwKGludGVsX2RzaS0+ cGl4ZWxfZm9ybWF0KTsKIAl1MzIgdmFsLCB0bXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jCmluZGV4IGFkYTU3ZWVlOTE0YS4uNTFlODNkYTIxNzM4IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwpAQCAtMjc1MSwxMSArMjc1MSwxMSBAQCBzdGF0aWMgaW50IGk5MTVfZGlz cGxheV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCiAJCXNlcV9wcmlu dGYobSwgIkNSVEMgJWQ6IHBpcGU6ICVjLCBhY3RpdmU9JXMsIChzaXplPSVkeCVkKSwgZGl0aGVy PSVzLCBicHA9JWRcbiIsCiAJCQkgICBjcnRjLT5iYXNlLmJhc2UuaWQsIHBpcGVfbmFtZShjcnRj LT5waXBlKSwKLQkJCSAgIHllc25vKHBpcGVfY29uZmlnLT5iYXNlLmFjdGl2ZSksCisJCQkgICB5 ZXNubyhwaXBlX2NvbmZpZy0+aHcuYWN0aXZlKSwKIAkJCSAgIHBpcGVfY29uZmlnLT5waXBlX3Ny Y193LCBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCwKIAkJCSAgIHllc25vKHBpcGVfY29uZmlnLT5k aXRoZXIpLCBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwogCi0JCWlmIChwaXBlX2NvbmZpZy0+YmFz ZS5hY3RpdmUpIHsKKwkJaWYgKHBpcGVfY29uZmlnLT5ody5hY3RpdmUpIHsKIAkJCXN0cnVjdCBp bnRlbF9wbGFuZSAqY3Vyc29yID0KIAkJCQl0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLmN1cnNv cik7CiAKQEAgLTQyMTgsNyArNDIxOCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9kcnJzX2N0bF9zZXQo dm9pZCAqZGF0YSwgdTY0IHZhbCkKIAogCQljcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0 ZShjcnRjLT5iYXNlLnN0YXRlKTsKIAotCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8 CisJCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIHx8CiAJCSAgICAhY3J0Y19zdGF0ZS0+aGFz X2RycnMpCiAJCQlnb3RvIG91dDsKIApAQCAtNDMwMCw3ICs0MzAwLDcgQEAgaTkxNV9maWZvX3Vu ZGVycnVuX3Jlc2V0X3dyaXRlKHN0cnVjdCBmaWxlICpmaWxwLAogCQkJCXJldCA9IHdhaXRfZm9y X2NvbXBsZXRpb25faW50ZXJydXB0aWJsZSgmY29tbWl0LT5mbGlwX2RvbmUpOwogCQl9CiAKLQkJ aWYgKCFyZXQgJiYgY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwkJaWYgKCFyZXQgJiYgY3J0 Y19zdGF0ZS0+aHcuYWN0aXZlKSB7CiAJCQlEUk1fREVCVUdfS01TKCJSZS1hcm1pbmcgRklGTyB1 bmRlcnJ1bnMgb24gcGlwZSAlY1xuIiwKIAkJCQkgICAgICBwaXBlX25hbWUoaW50ZWxfY3J0Yy0+ cGlwZSkpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBlNjgwZGY3NWE5NzAuLjk2NzFm ZjI5YzI1ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC03OTgsNyArNzk4LDcgQEAgc3Rh dGljIGJvb2wgaW50ZWxfd21fcGxhbmVfdmlzaWJsZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmVfc3RhdGUtPmJhc2UucGxhbmUpOwogCiAJLyogRklYTUUgY2hlY2sgdGhlICdl bmFibGUnIGluc3RlYWQgKi8KLQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICgh Y3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpAQCAtODUxLDcg Kzg1MSw3IEBAIHN0YXRpYyB2b2lkIHBpbmV2aWV3X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0 YyAqdW51c2VkX2NydGMpCiAJY3J0YyA9IHNpbmdsZV9lbmFibGVkX2NydGMoZGV2X3ByaXYpOwog CWlmIChjcnRjKSB7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0KLQkJCSZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZjcnRjLT5j b25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiID0KIAkJCWNydGMtPmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwogCQlpbnQgY3BwID0gZmIt PmZvcm1hdC0+Y3BwWzBdOwpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAgc3RhdGljIHUxNiBnNHhfY29t cHV0ZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPmJhc2Uu cGxhbmUpOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxh bmUtPmJhc2UuZGV2KTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRl LT5ody5hZGp1c3RlZF9tb2RlOwogCXVuc2lnbmVkIGludCBsYXRlbmN5ID0gZGV2X3ByaXYtPndt LnByaV9sYXRlbmN5W2xldmVsXSAqIDEwOwogCXVuc2lnbmVkIGludCBjbG9jaywgaHRvdGFsLCBj cHAsIHdpZHRoLCB3bTsKIApAQCAtMTM5OSw3ICsxMzk5LDcgQEAgc3RhdGljIGludCBnNHhfY29t cHV0ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0 YXRlKQogCWNvbnN0IHN0cnVjdCBnNHhfd21fc3RhdGUgKmFjdGl2ZSA9ICZvbGRfY3J0Y19zdGF0 ZS0+d20uZzR4Lm9wdGltYWw7CiAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZDsKIAotCWlmICghbmV3 X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0 KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpIHsKKwlpZiAoIW5ld19jcnRjX3N0YXRlLT5ody5hY3Rp dmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNl KSkgewogCQkqaW50ZXJtZWRpYXRlID0gKm9wdGltYWw7CiAKIAkJaW50ZXJtZWRpYXRlLT5jeHNy ID0gZmFsc2U7CkBAIC0xNTkzLDcgKzE1OTMsNyBAQCBzdGF0aWMgdTE2IHZsdl9jb21wdXRlX3dt X2xldmVsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCXN0cnVj dCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+YmFzZS5w bGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFu ZS0+YmFzZS5kZXYpOwogCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlID0KLQkJJmNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJJmNydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGU7CiAJdW5zaWduZWQgaW50IGNsb2NrLCBodG90YWwsIGNwcCwgd2lk dGgsIHdtOwogCiAJaWYgKGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVtsZXZlbF0gPT0gMCkKQEAg LTIwMzIsNyArMjAzMiw3IEBAIHN0YXRpYyBpbnQgdmx2X2NvbXB1dGVfaW50ZXJtZWRpYXRlX3dt KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZSkKIAljb25zdCBzdHJ1Y3Qg dmx2X3dtX3N0YXRlICphY3RpdmUgPSAmb2xkX2NydGNfc3RhdGUtPndtLnZsdi5vcHRpbWFsOwog CWludCBsZXZlbDsKIAotCWlmICghbmV3X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlIHx8IGRybV9h dG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCZuZXdfY3J0Y19zdGF0ZS0+YmFzZSkpIHsKKwlpZiAo IW5ld19jcnRjX3N0YXRlLT5ody5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVz ZXQoJm5ld19jcnRjX3N0YXRlLT5iYXNlKSkgewogCQkqaW50ZXJtZWRpYXRlID0gKm9wdGltYWw7 CiAKIAkJaW50ZXJtZWRpYXRlLT5jeHNyID0gZmFsc2U7CkBAIC0yMTg4LDcgKzIxODgsNyBAQCBz dGF0aWMgdm9pZCBpOTY1X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMp CiAJCS8qIHNlbGYtcmVmcmVzaCBoYXMgbXVjaCBoaWdoZXIgbGF0ZW5jeSAqLwogCQlzdGF0aWMg Y29uc3QgaW50IHNyX2xhdGVuY3lfbnMgPSAxMjAwMDsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3Rl ZF9tb2RlOworCQkJJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJY29uc3Qgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ ZmI7CiAJCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7CkBAIC0yMjY5LDcg KzIyNjksNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAq dW51c2VkX2NydGMpCiAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShkZXZfcHJpdiwg UExBTkVfQSk7CiAJaWYgKGludGVsX2NydGNfYWN0aXZlKGNydGMpKSB7CiAJCWNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWctPmJh c2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CiAJ CWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJCWNydGMtPmJhc2UucHJpbWFy eS0+c3RhdGUtPmZiOwogCQlpbnQgY3BwOwpAQCAtMjI5Niw3ICsyMjk2LDcgQEAgc3RhdGljIHZv aWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWNydGMg PSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0IpOwogCWlmIChpbnRl bF9jcnRjX2FjdGl2ZShjcnRjKSkgewogCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7CisJ CQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiA9CiAJCQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJaW50 IGNwcDsKQEAgLTIzNDQsNyArMjM0NCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0 cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAkJLyogc2VsZi1yZWZyZXNoIGhhcyBtdWNo IGhpZ2hlciBsYXRlbmN5ICovCiAJCXN0YXRpYyBjb25zdCBpbnQgc3JfbGF0ZW5jeV9ucyA9IDYw MDA7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJ CSZlbmFibGVkLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKKwkJCSZlbmFibGVkLT5jb25m aWctPmh3LmFkanVzdGVkX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0KIAkJCWVuYWJsZWQtPmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwogCQlpbnQgY2xvY2sgPSBh ZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwpAQCAtMjQwMiw3ICsyNDAyLDcgQEAgc3RhdGljIHZv aWQgaTg0NV91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWlmIChj cnRjID09IE5VTEwpCiAJCXJldHVybjsKIAotCWFkanVzdGVkX21vZGUgPSAmY3J0Yy0+Y29uZmln LT5iYXNlLmFkanVzdGVkX21vZGU7CisJYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5jb25maWctPmh3 LmFkanVzdGVkX21vZGU7CiAJcGxhbmVhX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2ssCiAJCQkJICAgICAgICZpODQ1X3dtX2luZm8sCiAJCQkJICAgICAg IGRldl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0EpLApAQCAt MjQ5Miw3ICsyNDkyLDcgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9wcmlfd20oY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJCXJldHVybiBtZXRob2QxOwogCiAJ bWV0aG9kMiA9IGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkJIGNy dGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKIAkJCQkgZHJtX3JlY3Rfd2lkdGgoJnBs YW5lX3N0YXRlLT5iYXNlLmRzdCksCiAJCQkJIGNwcCwgbWVtX3ZhbHVlKTsKIApAQCAtMjUyMCw3 ICsyNTIwLDcgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20oY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIAltZXRob2QxID0gaWxrX3dtX21ldGhvZDEo Y3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOwogCW1ldGhvZDIgPSBpbGtf d21fbWV0aG9kMihjcnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJCSBjcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCisJCQkJIGNydGNfc3RhdGUtPmh3LmFkanVzdGVk X21vZGUuY3J0Y19odG90YWwsCiAJCQkJIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+YmFz ZS5kc3QpLAogCQkJCSBjcHAsIG1lbV92YWx1ZSk7CiAJcmV0dXJuIG1pbihtZXRob2QxLCBtZXRo b2QyKTsKQEAgLTI1NDUsNyArMjU0NSw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfY3VyX3dt KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNwcCA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiLT5mb3JtYXQtPmNwcFswXTsKIAogCXJldHVybiBpbGtfd21fbWV0aG9k MihjcnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJICAgICAgY3J0Y19zdGF0ZS0+YmFzZS5hZGp1 c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJICAgICAgY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRf bW9kZS5jcnRjX2h0b3RhbCwKIAkJCSAgICAgIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+ YmFzZS5kc3QpLAogCQkJICAgICAgY3BwLCBtZW1fdmFsdWUpOwogfQpAQCAtMjc2OSwxMCArMjc2 OSwxMCBAQCBoc3dfY29tcHV0ZV9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIAljb25zdCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRl bF9zdGF0ZSA9CiAJCXRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRl KTsKIAljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZj cnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGU7CisJCSZjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlOwogCXUzMiBsaW5ldGltZSwgaXBzX2xpbmV0aW1lOwogCi0JaWYgKCFjcnRjX3N0YXRl LT5iYXNlLmFjdGl2ZSkKKwlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkKIAkJcmV0dXJuIDA7 CiAJaWYgKFdBUk5fT04oYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayA9PSAwKSkKIAkJcmV0dXJu IDA7CkBAIC0zMTA0LDcgKzMxMDQsNyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3BpcGVfd20o c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJCQljdXJzdGF0ZSA9IHBsYW5l X3N0YXRlOwogCX0KIAotCXBpcGVfd20tPnBpcGVfZW5hYmxlZCA9IGNydGNfc3RhdGUtPmJhc2Uu YWN0aXZlOworCXBpcGVfd20tPnBpcGVfZW5hYmxlZCA9IGNydGNfc3RhdGUtPmh3LmFjdGl2ZTsK IAlpZiAoc3Byc3RhdGUpIHsKIAkJcGlwZV93bS0+c3ByaXRlc19lbmFibGVkID0gc3Byc3RhdGUt PmJhc2UudmlzaWJsZTsKIAkJcGlwZV93bS0+c3ByaXRlc19zY2FsZWQgPSBzcHJzdGF0ZS0+YmFz ZS52aXNpYmxlICYmCkBAIC0zMTc3LDcgKzMxNzcsNyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRl X2ludGVybWVkaWF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpCiAJICog YW5kIGFmdGVyIHRoZSB2YmxhbmsuCiAJICovCiAJKmEgPSBuZXdzdGF0ZS0+d20uaWxrLm9wdGlt YWw7Ci0JaWYgKCFuZXdzdGF0ZS0+YmFzZS5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRz X21vZGVzZXQoJm5ld3N0YXRlLT5iYXNlKSB8fAorCWlmICghbmV3c3RhdGUtPmh3LmFjdGl2ZSB8 fCBkcm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCgmbmV3c3RhdGUtPmJhc2UpIHx8CiAJICAg IGludGVsX3N0YXRlLT5za2lwX2ludGVybWVkaWF0ZV93bSkKIAkJcmV0dXJuIDA7CiAKQEAgLTM3 NzksNyArMzc3OSw3IEBAIGJvb2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZf cHJpdiwgcGlwZSk7CiAJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFz ZS5zdGF0ZSk7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzICYg RFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCisJaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21v ZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJ Zm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YyhkZXYsIGNydGMsIHBsYW5lKSB7CkBAIC0zODI5 LDcgKzM4MjksNyBAQCBzdGF0aWMgdTE2IGludGVsX2dldF9kZGJfc2l6ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKIAkJ cmV0dXJuIGRkYl9zaXplIC0gNDsgLyogNCBibG9ja3MgZm9yIGJ5cGFzcyBwYXRoIGFsbG9jYXRp b24gKi8KIAotCWFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2Rl OworCWFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAl0b3Rh bF9kYXRhX2J3ID0gdG90YWxfZGF0YV9yYXRlICogZHJtX21vZGVfdnJlZnJlc2goYWRqdXN0ZWRf bW9kZSk7CiAKIAkvKgpAQCAtMzg2Nyw3ICszODY3LDcgQEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxv Y2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdTE2IGRk Yl9zaXplOwogCXUzMiBpOwogCi0JaWYgKFdBUk5fT04oIXN0YXRlKSB8fCAhY3J0Y19zdGF0ZS0+ YmFzZS5hY3RpdmUpIHsKKwlpZiAoV0FSTl9PTighc3RhdGUpIHx8ICFjcnRjX3N0YXRlLT5ody5h Y3RpdmUpIHsKIAkJYWxsb2MtPnN0YXJ0ID0gMDsKIAkJYWxsb2MtPmVuZCA9IDA7CiAJCSpudW1f YWN0aXZlID0gaHdlaWdodDgoZGV2X3ByaXYtPmFjdGl2ZV9waXBlcyk7CkBAIC0zOTA2LDExICsz OTA2LDExIEBAIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqLwogCWZvcl9lYWNoX25ld19pbnRlbF9jcnRjX2lu X3N0YXRlKGludGVsX3N0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7CiAJCWNvbnN0IHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjX3N0YXRlLT5iYXNl LmFkanVzdGVkX21vZGU7CisJCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKIAkJZW51 bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOwogCQlpbnQgaGRpc3BsYXksIHZkaXNwbGF5OwogCi0J CWlmICghY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUpCisJCWlmICghY3J0Y19zdGF0ZS0+aHcuZW5h YmxlKQogCQkJY29udGludWU7CiAKIAkJZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhhZGp1c3RlZF9t b2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7CkBAIC00MDk5LDcgKzQwOTksNyBAQCBza2xfcGlw ZV9kb3duc2NhbGVfYW1vdW50KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlKQogewogCXVpbnRfZml4ZWRfMTZfMTZfdCBwaXBlX2Rvd25zY2FsZSA9IHUzMl90b19maXhl ZDE2KDEpOwogCi0JaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKKwlpZiAoIWNydGNfc3Rh dGUtPmh3LmVuYWJsZSkKIAkJcmV0dXJuIHBpcGVfZG93bnNjYWxlOwogCiAJaWYgKGNydGNfc3Rh dGUtPnBjaF9wZml0LmVuYWJsZWQpIHsKQEAgLTQxMzksNyArNDEzOSw3IEBAIGludCBza2xfY2hl Y2tfcGlwZV9tYXhfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YywKIAl1 aW50X2ZpeGVkXzE2XzE2X3QgcGlwZV9kb3duc2NhbGU7CiAJdWludF9maXhlZF8xNl8xNl90IG1h eF9kb3duc2NhbGUgPSB1MzJfdG9fZml4ZWQxNigxKTsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFz ZS5lbmFibGUpCisJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVybiAwOwogCiAJ aW50ZWxfYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBsYW5l X3N0YXRlLCBjcnRjX3N0YXRlKSB7CkBAIC00MTY1LDcgKzQxNjUsNyBAQCBpbnQgc2tsX2NoZWNr X3BpcGVfbWF4X3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMsCiAKIAlw aXBlX2Rvd25zY2FsZSA9IG11bF9maXhlZDE2KHBpcGVfZG93bnNjYWxlLCBtYXhfZG93bnNjYWxl KTsKIAotCWNydGNfY2xvY2sgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19j bG9jazsKKwljcnRjX2Nsb2NrID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Ns b2NrOwogCWRvdGNsayA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSktPmNkY2xrLmxvZ2lj YWwuY2RjbGs7CiAKIAlpZiAoSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwgSU5URUxfR0VOKGRl dl9wcml2KSA+PSAxMCkKQEAgLTQzMzQsNyArNDMzNCw3IEBAIHNrbF9hbGxvY2F0ZV9waXBlX2Rk YihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlpZiAoV0FSTl9PTighc3Rh dGUpKQogCQlyZXR1cm4gMDsKIAotCWlmICghY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKKwlp ZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSkgewogCQlhbGxvYy0+c3RhcnQgPSBhbGxvYy0+ZW5k ID0gMDsKIAkJcmV0dXJuIDA7CiAJfQpAQCAtNDU3Niw3ICs0NTc2LDcgQEAgaW50ZWxfZ2V0X2xp bmV0aW1lX3VzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCXUz MiBjcnRjX2h0b3RhbDsKIAl1aW50X2ZpeGVkXzE2XzE2X3QgbGluZXRpbWVfdXM7CiAKLQlpZiAo IWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQorCWlmICghY3J0Y19zdGF0ZS0+aHcuYWN0aXZlKQog CQlyZXR1cm4gdTMyX3RvX2ZpeGVkMTYoMCk7CiAKIAlwaXhlbF9yYXRlID0gY3J0Y19zdGF0ZS0+ cGl4ZWxfcmF0ZTsKQEAgLTQ1ODQsNyArNDU4NCw3IEBAIGludGVsX2dldF9saW5ldGltZV91cyhj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoV0FSTl9PTihw aXhlbF9yYXRlID09IDApKQogCQlyZXR1cm4gdTMyX3RvX2ZpeGVkMTYoMCk7CiAKLQljcnRjX2h0 b3RhbCA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKKwljcnRj X2h0b3RhbCA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWw7CiAJbGlu ZXRpbWVfdXMgPSBkaXZfZml4ZWQxNihjcnRjX2h0b3RhbCAqIDEwMDAsIHBpeGVsX3JhdGUpOwog CiAJcmV0dXJuIGxpbmV0aW1lX3VzOwpAQCAtNDc2NiwxNCArNDc2NiwxNCBAQCBzdGF0aWMgdm9p ZCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAltZXRob2QxID0gc2tsX3dtX21ldGhvZDEoZGV2X3ByaXYsIHdwLT5wbGFuZV9w aXhlbF9yYXRlLAogCQkJCSB3cC0+Y3BwLCBsYXRlbmN5LCB3cC0+ZGJ1Zl9ibG9ja19zaXplKTsK IAltZXRob2QyID0gc2tsX3dtX21ldGhvZDIod3AtPnBsYW5lX3BpeGVsX3JhdGUsCi0JCQkJIGNy dGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKIAkJCQkgbGF0ZW5jeSwKIAkJCQkgd3At PnBsYW5lX2Jsb2Nrc19wZXJfbGluZSk7CiAKIAlpZiAod3AtPnlfdGlsZWQpIHsKIAkJc2VsZWN0 ZWRfcmVzdWx0ID0gbWF4X2ZpeGVkMTYobWV0aG9kMiwgd3AtPnlfdGlsZV9taW5pbXVtKTsKIAl9 IGVsc2UgewotCQlpZiAoKHdwLT5jcHAgKiBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUu Y3J0Y19odG90YWwgLworCQlpZiAoKHdwLT5jcHAgKiBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9t b2RlLmNydGNfaHRvdGFsIC8KIAkJICAgICB3cC0+ZGJ1Zl9ibG9ja19zaXplIDwgMSkgJiYKIAkJ ICAgICAod3AtPnBsYW5lX2J5dGVzX3Blcl9saW5lIC8gd3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEp KSB7CiAJCQlzZWxlY3RlZF9yZXN1bHQgPSBtZXRob2QyOwotLSAKMi4yMy4wCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=