From mboxrd@z Thu Jan 1 00:00:00 1970 From: Umesh Nerlige Ramappa Subject: [PATCH] drm/i915/perf: Refactor oa object to better manage resources Date: Wed, 1 May 2019 09:50:46 -0700 Message-ID: <20190501165046.30375-1-umesh.nerlige.ramappa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id A45AF89165 for ; Wed, 1 May 2019 16:50:47 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIG9hIG9iamVjdCBtYW5hZ2VzIHRoZSBvYSBidWZmZXIgYW5kIG11c3QgYmUgYWxsb2NhdGVk IHdoZW4gdGhlIHVzZXIKaW50ZW5kcyB0byByZWFkIHBlcmZvcm1hbmNlIGNvdW50ZXIgc25hcHNo b3RzLiBUaGlzIGNhbiBiZSBhY2hpZXZlZCBieQptYWtpbmcgdGhlIG9hIG9iamVjdCBwYXJ0IG9m IHRoZSBzdHJlYW0gb2JqZWN0IHdoaWNoIGlzIGFsbG9jYXRlZCB3aGVuIGEKc3RyZWFtIGlzIG9w ZW5lZCBieSB0aGUgdXNlci4KCkF0dHJpYnV0ZXMgaW4gdGhlIG9hIG9iamVjdCB0aGF0IGFyZSBn ZW4tc3BlY2lmaWMgYXJlIG1vdmVkIHRvIHRoZSBwZXJmCm9iamVjdCBzbyB0aGF0IHRoZXkgY2Fu IGJlIGluaXRpYWxpemVkIG9uIGRyaXZlciBsb2FkLgoKVGhlIHNwbGl0IHByb3ZpZGVzIGEgYmV0 dGVyIHNlcGFyYXRpb24gb2YgdGhlIG9iamVjdHMgdXNlZCBpbiBwZXJmCmltcGxlbWVudGF0aW9u IG9mIGk5MTUgZHJpdmVyIHNvIHRoYXQgcmVzb3VyY2VzIGFyZSBhbGxvY2F0ZWQgYW5kCmluaXRp YWxpemVkIG9ubHkgd2hlbiBuZWVkZWQuCgpTaWduZWQtb2ZmLWJ5OiBVbWVzaCBOZXJsaWdlIFJh bWFwcGEgPHVtZXNoLm5lcmxpZ2UucmFtYXBwYUBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv Z3Z0L3NjaGVkdWxlci5jICB8ICAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICB8IDIxOSArKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Jk dy5jICAgIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5jICAgIHwg IDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0Mi5jIHwgIDMwICstCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0My5jIHwgIDMwICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jICAgIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X29hX2NubC5jICAgIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2dsay5jICAgIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jICAg IHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2ljbC5jICAgIHwgIDMwICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0Mi5jIHwgIDMwICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5jIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX3NrbGd0Mi5jIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X29hX3NrbGd0My5jIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0 NC5jIHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BlcmYuYyAgICAgIHwgNTgw ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxOCBmaWxlcyBjaGFuZ2VkLCA2MjcgaW5zZXJ0 aW9ucygrKSwgNTk4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX3NzZXUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3NzZXUu YwppbmRleCA3ZjQ0OGYzYmVhMGIuLmZhNzhkZjM5NTIxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfc3NldS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX3NzZXUuYwpAQCAtMzIsNyArMzIsNyBAQCB1MzIgaW50ZWxfc3NldV9tYWtlX3JwY3Mo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJICogY2FzZXMgd2hpY2ggZGlzYWJsZSBz bGljZXMgZm9yIGZ1bmN0aW9uYWwsIGFwYXJ0IGZvciBwZXJmb3JtYW5jZQogCSAqIHJlYXNvbnMu IFNvIGluIHRoaXMgY2FzZSB3ZSBzZWxlY3QgYSBrbm93biBzdGFibGUgc3Vic2V0LgogCSAqLwot CWlmICghaTkxNS0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtKSB7CisJaWYgKCFpOTE1LT5wZXJm LmV4Y2x1c2l2ZV9zdHJlYW0pIHsKIAkJY3R4X3NzZXUgPSAqcmVxX3NzZXU7CiAJfSBlbHNlIHsK IAkJY3R4X3NzZXUgPSBpbnRlbF9zc2V1X2Zyb21fZGV2aWNlX2luZm8oc3NldSk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMKaW5kZXggN2FlNDJmMmViZmU4Li44NzhlNzFhOTI3ZGUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d2dC9zY2hlZHVsZXIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvc2NoZWR1bGVyLmMKQEAgLTgxLDggKzgxLDggQEAgc3Rh dGljIHZvaWQgc3Jfb2FfcmVncyhzdHJ1Y3QgaW50ZWxfdmdwdV93b3JrbG9hZCAqd29ya2xvYWQs CiAJCXUzMiAqcmVnX3N0YXRlLCBib29sIHNhdmUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gd29ya2xvYWQtPnZncHUtPmd2dC0+ZGV2X3ByaXY7Ci0JdTMyIGN0eF9v YWN0eGN0cmwgPSBkZXZfcHJpdi0+cGVyZi5vYS5jdHhfb2FjdHhjdHJsX29mZnNldDsKLQl1MzIg Y3R4X2ZsZXhldTAgPSBkZXZfcHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1MF9vZmZzZXQ7CisJdTMy IGN0eF9vYWN0eGN0cmwgPSBkZXZfcHJpdi0+cGVyZi5jdHhfb2FjdHhjdHJsX29mZnNldDsKKwl1 MzIgY3R4X2ZsZXhldTAgPSBkZXZfcHJpdi0+cGVyZi5jdHhfZmxleGV1MF9vZmZzZXQ7CiAJaW50 IGkgPSAwOwogCXUzMiBmbGV4X21taW9bXSA9IHsKIAkJaTkxNV9tbWlvX3JlZ19vZmZzZXQoRVVf UEVSRl9DTlRMMCksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAxY2VhOThmOGI4NWMuLjk1 MzY1NTBmMTFjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0xMzk5LDYgKzEzOTksODYg QEAgc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gewogCSAqIEBvYV9jb25maWc6IFRoZSBPQSBjb25m aWd1cmF0aW9uIHVzZWQgYnkgdGhlIHN0cmVhbS4KIAkgKi8KIAlzdHJ1Y3QgaTkxNV9vYV9jb25m aWcgKm9hX2NvbmZpZzsKKworCS8qKgorCSAqIFRoZSBPQSBjb250ZXh0IHNwZWNpZmljIGluZm9y bWF0aW9uLgorCSAqLworCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpwaW5uZWRfY3R4OworCXUzMiBz cGVjaWZpY19jdHhfaWQ7CisJdTMyIHNwZWNpZmljX2N0eF9pZF9tYXNrOworCisJc3RydWN0IGhy dGltZXIgcG9sbF9jaGVja190aW1lcjsKKwl3YWl0X3F1ZXVlX2hlYWRfdCBwb2xsX3dxOworCWJv b2wgcG9sbGluOworCisJYm9vbCBwZXJpb2RpYzsKKwlpbnQgcGVyaW9kX2V4cG9uZW50OworCisJ LyoqCisJICogU3RhdGUgb2YgdGhlIE9BIGJ1ZmZlci4KKwkgKi8KKwlzdHJ1Y3QgeworCQlzdHJ1 Y3QgaTkxNV92bWEgKnZtYTsKKwkJdTggKnZhZGRyOworCQl1MzIgbGFzdF9jdHhfaWQ7CisJCWlu dCBmb3JtYXQ7CisJCWludCBmb3JtYXRfc2l6ZTsKKwkJaW50IHNpemVfZXhwb25lbnQ7CisKKwkJ LyoqCisJCSAqIExvY2tzIHJlYWRzIGFuZCB3cml0ZXMgdG8gYWxsIGhlYWQvdGFpbCBzdGF0ZQor CQkgKgorCQkgKiBDb25zaWRlcjogdGhlIGhlYWQgYW5kIHRhaWwgcG9pbnRlciBzdGF0ZSBuZWVk cyB0byBiZSByZWFkCisJCSAqIGNvbnNpc3RlbnRseSBmcm9tIGEgaHJ0aW1lciBjYWxsYmFjayAo YXRvbWljIGNvbnRleHQpIGFuZAorCQkgKiByZWFkKCkgZm9wICh1c2VyIGNvbnRleHQpIHdpdGgg dGFpbCBwb2ludGVyIHVwZGF0ZXMgaGFwcGVuaW5nCisJCSAqIGluIGF0b21pYyBjb250ZXh0IGFu ZCBoZWFkIHVwZGF0ZXMgaW4gdXNlciBjb250ZXh0IGFuZCB0aGUKKwkJICogKHVubGlrZWx5KSBw b3NzaWJpbGl0eSBvZiByZWFkKCkgZXJyb3JzIG5lZWRpbmcgdG8gcmVzZXQgYWxsCisJCSAqIGhl YWQvdGFpbCBzdGF0ZS4KKwkJICoKKwkJICogTm90ZTogQ29udGVudGlvbi9wZXJmb3JtYW5jZSBh cmVuJ3QgY3VycmVudGx5IGEgc2lnbmlmaWNhbnQKKwkJICogY29uY2VybiBoZXJlIGNvbnNpZGVy aW5nIHRoZSByZWxhdGl2ZWx5IGxvdyBmcmVxdWVuY3kgb2YKKwkJICogaHJ0aW1lciBjYWxsYmFj a3MgKDVtcyBwZXJpb2QpIGFuZCB0aGF0IHJlYWRzIHR5cGljYWxseSBvbmx5CisJCSAqIGhhcHBl biBpbiByZXNwb25zZSB0byBhIGhydGltZXIgZXZlbnQgYW5kIGxpa2VseSBjb21wbGV0ZQorCQkg KiBiZWZvcmUgdGhlIG5leHQgY2FsbGJhY2suCisJCSAqCisJCSAqIE5vdGU6IFRoaXMgbG9jayBp cyBub3QgaGVsZCAqd2hpbGUqIHJlYWRpbmcgYW5kIGNvcHlpbmcgZGF0YQorCQkgKiB0byB1c2Vy c3BhY2Ugc28gdGhlIHZhbHVlIG9mIGhlYWQgb2JzZXJ2ZWQgaW4gaHRyaW1lcgorCQkgKiBjYWxs YmFja3Mgd29uJ3QgcmVwcmVzZW50IGFueSBwYXJ0aWFsIGNvbnN1bXB0aW9uIG9mIGRhdGEuCisJ CSAqLworCQlzcGlubG9ja190IHB0cl9sb2NrOworCisJCS8qKgorCQkgKiBPbmUgJ2FnaW5nJyB0 YWlsIHBvaW50ZXIgYW5kIG9uZSAnYWdlZCcgdGFpbCBwb2ludGVyIHJlYWR5IHRvCisJCSAqIHVz ZWQgZm9yIHJlYWRpbmcuCisJCSAqCisJCSAqIEluaXRpYWwgdmFsdWVzIG9mIDB4ZmZmZmZmZmYg YXJlIGludmFsaWQgYW5kIGltcGx5IHRoYXQgYW4KKwkJICogdXBkYXRlIGlzIHJlcXVpcmVkIChh bmQgc2hvdWxkIGJlIGlnbm9yZWQgYnkgYW4gYXR0ZW1wdGVkCisJCSAqIHJlYWQpCisJCSAqLwor CQlzdHJ1Y3QgeworCQkJdTMyIG9mZnNldDsKKwkJfSB0YWlsc1syXTsKKworCQkvKioKKwkJICog SW5kZXggZm9yIHRoZSBhZ2VkIHRhaWwgcmVhZHkgdG8gcmVhZCgpIGRhdGEgdXAgdG8uCisJCSAq LworCQl1bnNpZ25lZCBpbnQgYWdlZF90YWlsX2lkeDsKKworCQkvKioKKwkJICogQSBtb25vdG9u aWMgdGltZXN0YW1wIGZvciB3aGVuIHRoZSBjdXJyZW50IGFnaW5nIHRhaWwgcG9pbnRlcgorCQkg KiB3YXMgcmVhZDsgdXNlZCB0byBkZXRlcm1pbmUgd2hlbiBpdCBpcyBvbGQgZW5vdWdoIHRvIHRy dXN0LgorCQkgKi8KKwkJdTY0IGFnaW5nX3RpbWVzdGFtcDsKKworCQkvKioKKwkJICogQWx0aG91 Z2ggd2UgY2FuIGFsd2F5cyByZWFkIGJhY2sgdGhlIGhlYWQgcG9pbnRlciByZWdpc3RlciwKKwkJ ICogd2UgcHJlZmVyIHRvIGF2b2lkIHRydXN0aW5nIHRoZSBIVyBzdGF0ZSwganVzdCB0byBhdm9p ZCBhbnkKKwkJICogcmlzayB0aGF0IHNvbWUgaGFyZHdhcmUgY29uZGl0aW9uIGNvdWxkICogc29t ZWhvdyBidW1wIHRoZQorCQkgKiBoZWFkIHBvaW50ZXIgdW5wcmVkaWN0YWJseSBhbmQgY2F1c2Ug dXMgdG8gZm9yd2FyZCB0aGUgd3JvbmcKKwkJICogT0EgYnVmZmVyIGRhdGEgdG8gdXNlcnNwYWNl LgorCQkgKi8KKwkJdTMyIGhlYWQ7CisJfSBvYV9idWZmZXI7CiB9OwogCiAvKioKQEAgLTE0MzYs NyArMTUxNiw3IEBAIHN0cnVjdCBpOTE1X29hX29wcyB7CiAJICogQGRpc2FibGVfbWV0cmljX3Nl dDogUmVtb3ZlIHN5c3RlbSBjb25zdHJhaW50cyBhc3NvY2lhdGVkIHdpdGggdXNpbmcKIAkgKiB0 aGUgT0EgdW5pdC4KIAkgKi8KLQl2b2lkICgqZGlzYWJsZV9tZXRyaWNfc2V0KShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCXZvaWQgKCpkaXNhYmxlX21ldHJpY19zZXQpKHN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pOwogCiAJLyoqCiAJICogQG9hX2VuYWJsZTog RW5hYmxlIHBlcmlvZGljIHNhbXBsaW5nCkBAIC0xNDY0LDcgKzE1NDQsNyBAQCBzdHJ1Y3QgaTkx NV9vYV9vcHMgewogCSAqIGhhbmRsaW5nIHRoZSBPQSB1bml0IHRhaWwgcG9pbnRlciByYWNlIHRo YXQgYWZmZWN0cyBtdWx0aXBsZQogCSAqIGdlbmVyYXRpb25zLgogCSAqLwotCXUzMiAoKm9hX2h3 X3RhaWxfcmVhZCkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKKwl1MzIgKCpv YV9od190YWlsX3JlYWQpKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pOwogfTsKIAog c3RydWN0IGludGVsX2NkY2xrX3N0YXRlIHsKQEAgLTE4NjcsMTIwICsxOTQ3LDM1IEBAIHN0cnVj dCBkcm1faTkxNV9wcml2YXRlIHsKIAkJc3RydWN0IG11dGV4IGxvY2s7CiAJCXN0cnVjdCBsaXN0 X2hlYWQgc3RyZWFtczsKIAotCQlzdHJ1Y3QgewotCQkJLyoKLQkJCSAqIFRoZSBzdHJlYW0gY3Vy cmVudGx5IHVzaW5nIHRoZSBPQSB1bml0LiBJZiBhY2Nlc3NlZAotCQkJICogb3V0c2lkZSBhIHN5 c2NhbGwgYXNzb2NpYXRlZCB0byBpdHMgZmlsZQotCQkJICogZGVzY3JpcHRvciwgeW91IG5lZWQg dG8gaG9sZAotCQkJICogZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXguCi0JCQkgKi8KLQkJCXN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpleGNsdXNpdmVfc3RyZWFtOworCQkvKgorCQkgKiBUaGUg c3RyZWFtIGN1cnJlbnRseSB1c2luZyB0aGUgT0EgdW5pdC4gSWYgYWNjZXNzZWQKKwkJICogb3V0 c2lkZSBhIHN5c2NhbGwgYXNzb2NpYXRlZCB0byBpdHMgZmlsZQorCQkgKiBkZXNjcmlwdG9yLCB5 b3UgbmVlZCB0byBob2xkCisJCSAqIGRldl9wcml2LT5kcm0uc3RydWN0X211dGV4LgorCQkgKi8K KwkJc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKmV4Y2x1c2l2ZV9zdHJlYW07CisKKwkJLyoqCisJ CSAqIEZvciByYXRlIGxpbWl0aW5nIGFueSBub3RpZmljYXRpb25zIG9mIHNwdXJpb3VzCisJCSAq IGludmFsaWQgT0EgcmVwb3J0cworCQkgKi8KKwkJc3RydWN0IHJhdGVsaW1pdF9zdGF0ZSBzcHVy aW91c19yZXBvcnRfcnM7CiAKLQkJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpwaW5uZWRfY3R4Owot CQkJdTMyIHNwZWNpZmljX2N0eF9pZDsKLQkJCXUzMiBzcGVjaWZpY19jdHhfaWRfbWFzazsKKwkJ c3RydWN0IGk5MTVfb2FfY29uZmlnIHRlc3RfY29uZmlnOwogCi0JCQlzdHJ1Y3QgaHJ0aW1lciBw b2xsX2NoZWNrX3RpbWVyOwotCQkJd2FpdF9xdWV1ZV9oZWFkX3QgcG9sbF93cTsKLQkJCWJvb2wg cG9sbGluOworCQl1MzIgZ2VuN19sYXRjaGVkX29hc3RhdHVzMTsKKwkJdTMyIGN0eF9vYWN0eGN0 cmxfb2Zmc2V0OworCQl1MzIgY3R4X2ZsZXhldTBfb2Zmc2V0OwogCi0JCQkvKioKLQkJCSAqIEZv ciByYXRlIGxpbWl0aW5nIGFueSBub3RpZmljYXRpb25zIG9mIHNwdXJpb3VzCi0JCQkgKiBpbnZh bGlkIE9BIHJlcG9ydHMKLQkJCSAqLwotCQkJc3RydWN0IHJhdGVsaW1pdF9zdGF0ZSBzcHVyaW91 c19yZXBvcnRfcnM7Ci0KLQkJCWJvb2wgcGVyaW9kaWM7Ci0JCQlpbnQgcGVyaW9kX2V4cG9uZW50 OwotCi0JCQlzdHJ1Y3QgaTkxNV9vYV9jb25maWcgdGVzdF9jb25maWc7Ci0KLQkJCXN0cnVjdCB7 Ci0JCQkJc3RydWN0IGk5MTVfdm1hICp2bWE7Ci0JCQkJdTggKnZhZGRyOwotCQkJCXUzMiBsYXN0 X2N0eF9pZDsKLQkJCQlpbnQgZm9ybWF0OwotCQkJCWludCBmb3JtYXRfc2l6ZTsKLQotCQkJCS8q KgotCQkJCSAqIExvY2tzIHJlYWRzIGFuZCB3cml0ZXMgdG8gYWxsIGhlYWQvdGFpbCBzdGF0ZQot CQkJCSAqCi0JCQkJICogQ29uc2lkZXI6IHRoZSBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgc3RhdGUK LQkJCQkgKiBuZWVkcyB0byBiZSByZWFkIGNvbnNpc3RlbnRseSBmcm9tIGEgaHJ0aW1lcgotCQkJ CSAqIGNhbGxiYWNrIChhdG9taWMgY29udGV4dCkgYW5kIHJlYWQoKSBmb3AKLQkJCQkgKiAodXNl ciBjb250ZXh0KSB3aXRoIHRhaWwgcG9pbnRlciB1cGRhdGVzCi0JCQkJICogaGFwcGVuaW5nIGlu IGF0b21pYyBjb250ZXh0IGFuZCBoZWFkIHVwZGF0ZXMKLQkJCQkgKiBpbiB1c2VyIGNvbnRleHQg YW5kIHRoZSAodW5saWtlbHkpCi0JCQkJICogcG9zc2liaWxpdHkgb2YgcmVhZCgpIGVycm9ycyBu ZWVkaW5nIHRvCi0JCQkJICogcmVzZXQgYWxsIGhlYWQvdGFpbCBzdGF0ZS4KLQkJCQkgKgotCQkJ CSAqIE5vdGU6IENvbnRlbnRpb24gb3IgcGVyZm9ybWFuY2UgYXJlbid0Ci0JCQkJICogY3VycmVu dGx5IGEgc2lnbmlmaWNhbnQgY29uY2VybiBoZXJlCi0JCQkJICogY29uc2lkZXJpbmcgdGhlIHJl bGF0aXZlbHkgbG93IGZyZXF1ZW5jeSBvZgotCQkJCSAqIGhydGltZXIgY2FsbGJhY2tzICg1bXMg cGVyaW9kKSBhbmQgdGhhdAotCQkJCSAqIHJlYWRzIHR5cGljYWxseSBvbmx5IGhhcHBlbiBpbiBy ZXNwb25zZSB0byBhCi0JCQkJICogaHJ0aW1lciBldmVudCBhbmQgbGlrZWx5IGNvbXBsZXRlIGJl Zm9yZSB0aGUKLQkJCQkgKiBuZXh0IGNhbGxiYWNrLgotCQkJCSAqCi0JCQkJICogTm90ZTogVGhp cyBsb2NrIGlzIG5vdCBoZWxkICp3aGlsZSogcmVhZGluZwotCQkJCSAqIGFuZCBjb3B5aW5nIGRh dGEgdG8gdXNlcnNwYWNlIHNvIHRoZSB2YWx1ZQotCQkJCSAqIG9mIGhlYWQgb2JzZXJ2ZWQgaW4g aHRyaW1lciBjYWxsYmFja3Mgd29uJ3QKLQkJCQkgKiByZXByZXNlbnQgYW55IHBhcnRpYWwgY29u c3VtcHRpb24gb2YgZGF0YS4KLQkJCQkgKi8KLQkJCQlzcGlubG9ja190IHB0cl9sb2NrOwotCi0J CQkJLyoqCi0JCQkJICogT25lICdhZ2luZycgdGFpbCBwb2ludGVyIGFuZCBvbmUgJ2FnZWQnCi0J CQkJICogdGFpbCBwb2ludGVyIHJlYWR5IHRvIHVzZWQgZm9yIHJlYWRpbmcuCi0JCQkJICoKLQkJ CQkgKiBJbml0aWFsIHZhbHVlcyBvZiAweGZmZmZmZmZmIGFyZSBpbnZhbGlkCi0JCQkJICogYW5k IGltcGx5IHRoYXQgYW4gdXBkYXRlIGlzIHJlcXVpcmVkCi0JCQkJICogKGFuZCBzaG91bGQgYmUg aWdub3JlZCBieSBhbiBhdHRlbXB0ZWQKLQkJCQkgKiByZWFkKQotCQkJCSAqLwotCQkJCXN0cnVj dCB7Ci0JCQkJCXUzMiBvZmZzZXQ7Ci0JCQkJfSB0YWlsc1syXTsKLQotCQkJCS8qKgotCQkJCSAq IEluZGV4IGZvciB0aGUgYWdlZCB0YWlsIHJlYWR5IHRvIHJlYWQoKQotCQkJCSAqIGRhdGEgdXAg dG8uCi0JCQkJICovCi0JCQkJdW5zaWduZWQgaW50IGFnZWRfdGFpbF9pZHg7Ci0KLQkJCQkvKioK LQkJCQkgKiBBIG1vbm90b25pYyB0aW1lc3RhbXAgZm9yIHdoZW4gdGhlIGN1cnJlbnQKLQkJCQkg KiBhZ2luZyB0YWlsIHBvaW50ZXIgd2FzIHJlYWQ7IHVzZWQgdG8KLQkJCQkgKiBkZXRlcm1pbmUg d2hlbiBpdCBpcyBvbGQgZW5vdWdoIHRvIHRydXN0LgotCQkJCSAqLwotCQkJCXU2NCBhZ2luZ190 aW1lc3RhbXA7Ci0KLQkJCQkvKioKLQkJCQkgKiBBbHRob3VnaCB3ZSBjYW4gYWx3YXlzIHJlYWQg YmFjayB0aGUgaGVhZAotCQkJCSAqIHBvaW50ZXIgcmVnaXN0ZXIsIHdlIHByZWZlciB0byBhdm9p ZAotCQkJCSAqIHRydXN0aW5nIHRoZSBIVyBzdGF0ZSwganVzdCB0byBhdm9pZCBhbnkKLQkJCQkg KiByaXNrIHRoYXQgc29tZSBoYXJkd2FyZSBjb25kaXRpb24gY291bGQKLQkJCQkgKiBzb21laG93 IGJ1bXAgdGhlIGhlYWQgcG9pbnRlciB1bnByZWRpY3RhYmx5Ci0JCQkJICogYW5kIGNhdXNlIHVz IHRvIGZvcndhcmQgdGhlIHdyb25nIE9BIGJ1ZmZlcgotCQkJCSAqIGRhdGEgdG8gdXNlcnNwYWNl LgotCQkJCSAqLwotCQkJCXUzMiBoZWFkOwotCQkJfSBvYV9idWZmZXI7Ci0KLQkJCXUzMiBnZW43 X2xhdGNoZWRfb2FzdGF0dXMxOwotCQkJdTMyIGN0eF9vYWN0eGN0cmxfb2Zmc2V0OwotCQkJdTMy IGN0eF9mbGV4ZXUwX29mZnNldDsKLQotCQkJLyoqCi0JCQkgKiBUaGUgUlBUX0lEL3JlYXNvbiBm aWVsZCBmb3IgR2VuOCsgaW5jbHVkZXMgYSBiaXQKLQkJCSAqIHRvIGRldGVybWluZSBpZiB0aGUg Q1RYIElEIGluIHRoZSByZXBvcnQgaXMgdmFsaWQKLQkJCSAqIGJ1dCB0aGUgc3BlY2lmaWMgYml0 IGRpZmZlcnMgYmV0d2VlbiBHZW4gOCBhbmQgOQotCQkJICovCi0JCQl1MzIgZ2VuOF92YWxpZF9j dHhfYml0OworCQkvKioKKwkJICogVGhlIFJQVF9JRC9yZWFzb24gZmllbGQgZm9yIEdlbjgrIGlu Y2x1ZGVzIGEgYml0CisJCSAqIHRvIGRldGVybWluZSBpZiB0aGUgQ1RYIElEIGluIHRoZSByZXBv cnQgaXMgdmFsaWQKKwkJICogYnV0IHRoZSBzcGVjaWZpYyBiaXQgZGlmZmVycyBiZXR3ZWVuIEdl biA4IGFuZCA5CisJCSAqLworCQl1MzIgZ2VuOF92YWxpZF9jdHhfYml0OwogCi0JCQlzdHJ1Y3Qg aTkxNV9vYV9vcHMgb3BzOwotCQkJY29uc3Qgc3RydWN0IGk5MTVfb2FfZm9ybWF0ICpvYV9mb3Jt YXRzOwotCQl9IG9hOworCQlzdHJ1Y3QgaTkxNV9vYV9vcHMgb3BzOworCQljb25zdCBzdHJ1Y3Qg aTkxNV9vYV9mb3JtYXQgKm9hX2Zvcm1hdHM7CiAJfSBwZXJmOwogCiAJLyogQWJzdHJhY3QgdGhl IHN1Ym1pc3Npb24gbWVjaGFuaXNtIChsZWdhY3kgcmluZ2J1ZmZlciBvciBleGVjbGlzdHMpIGF3 YXkgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Jkdy5jCmluZGV4IDRhY2RiOTQ1NTViNy4uN2Q2 MzJkNTAzNTEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Jkdy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYmR3LmMKQEAgLTY2LDI2ICs2Niwy NiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29u ZmlnX2JkdyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcudXVpZCwKIAkJImQ2ZGU2ZjU1LWU1MjYtNGY3OS1hNmE2LWQ3MzE1YzA5 MDQ0ZSIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlk ID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2Nv bmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xl biA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7 CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291 bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2Nv dW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29u ZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3Nf bGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0la RShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5m bGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2Ep OwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAi ZDZkZTZmNTUtZTUyNi00Zjc5LWE2YTYtZDczMTVjMDkwNDRlIjsKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu bmFtZSA9ICJkNmRlNmY1NS1lNTI2LTRmNzktYTZhNi1kNzMxNWMwOTA0NGUiOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNb MF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3df dGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu YXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfYnh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X29hX2J4dC5jCmluZGV4IGE0NDE5NWMzOTkyMy4uYTRjYzU4NGZiNWM5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2J4dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2FfYnh0LmMKQEAgLTY0LDI2ICs2NCwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3Ry dWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1 ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2J4dChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKIAkJ IjVlZTcyZjVjLTA5MmYtNDIxZS04YjcwLTIyNWY3YzNlOTYxMiIsCi0JCXNpemVvZihkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9j b25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkp OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5wZXJm Lm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2 LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZp Z190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9j b25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4g PSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9T SVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50 ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxl eF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29h KTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZp Z190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBB UlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNWVlNzJmNWMtMDkyZi00MjFlLThiNzAt MjI1ZjdjM2U5NjEyIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI1ZWU3MmY1Yy0wOTJmLTQy MWUtOGI3MC0yMjVmN2MzZTk2MTIiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmlj X2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsK KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3df dGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ff Y2ZsZ3QyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0Mi5jCmluZGV4IDdm NjBkNTFiODc2MS4uNTE5MzBjNzFiZjdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X29hX2NmbGd0Mi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2Zs Z3QyLmMKQEAgLTY1LDI2ICs2NSwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAq a2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5 MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NmbGd0MihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlk LAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKIAkJIjc0ZmI0OTAy LWQzZDMtNDIzNy05ZTkwLWNiZGM2OGQwYTQ0NiIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQg PSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29h KTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVz dF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3Vu dGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmln X3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0g ZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5m bGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29h OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpF KGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNzRmYjQ5MDItZDNkMy00MjM3LTllOTAtY2JkYzY4ZDBh NDQ2IjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMg PSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI3NGZiNDkwMi1kM2QzLTQyMzctOWU5MC1j YmRjNjhkMGE0NDYiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5h dHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0 cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7 CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5u YW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9p ZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2ZsZ3QzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NmbGd0My5jCmluZGV4IGE5MmMzOGUzYTBj ZS4uZGU2MzBiNTNkMzY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2NmbGd0My5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2ZsZ3QzLmMKQEAg LTY1LDI2ICs2NSwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9s b2FkX3Rlc3RfY29uZmlnX2NmbGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxj cHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKIAkJIjU3N2U4ZTJjLTNmYTAtNDg3 NS04NzQzLTM1MzhkNTg1ZTNiMCIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlz aXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11 eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9j b25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50 ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25m aWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3Mg PSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu Yl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2Ep OwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9j b25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Nf bGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNf bWV0cmljLm5hbWUgPSAiNTc3ZThlMmMtM2ZhMC00ODc1LTg3NDMtMzUzOGQ1ODVlM2IwIjsKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWMubmFtZSA9ICI1NzdlOGUyYy0zZmEwLTQ4NzUtODc0My0zNTM4ZDU4NWUz YjAiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAm ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlk IjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5t b2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2h2LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jCmluZGV4IDcxZWM4ODlhMDExNC4uN2Q3ZjMzYzQ0Njhm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2Nodi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfY2h2LmMKQEAgLTY1LDI2ICs2NSwyNiBAQCBzaG93 X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUg KmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2Nodihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcudXVpZCwKIAkJIjRhNTM0YjA3LWNiYTMtNDE0ZC04ZDYwLTg3NDgzMGU4ODNhYSIsCi0J CXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAot CWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0 X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZ X1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5t dXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25m aWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVn c19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rf b2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJS QVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eu dGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1 X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Mg PSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZs ZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiNGE1MzRiMDct Y2JhMy00MTRkLThkNjAtODc0ODMwZTg4M2FhIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5h dHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI0 YTUzNGIwNy1jYmEzLTQxNGQtOGQ2MC04NzQ4MzBlODgzYWEiOworCWRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9p ZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1l ID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0 ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfb2FfY25sLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2NubC5j CmluZGV4IDVjMjNkODgzZDZjOS4uNGFlODZhODk4M2MzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX2NubC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf b2FfY25sLmMKQEAgLTc3LDI2ICs3NywyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmlj ZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQK IGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2NubChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlk LAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKIAkJImRiNDFlZGQ0 LWQ4ZTctNDczMC1hZDExLWI5YTJkNjgzMzUwMyIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQg PSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29h KTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVz dF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3Vu dGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmln X3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0g ZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5m bGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29h OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpF KGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiZGI0MWVkZDQtZDhlNy00NzMwLWFkMTEtYjlhMmQ2ODMz NTAzIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMg PSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJkYjQxZWRkNC1kOGU3LTQ3MzAtYWQxMS1i OWEyZDY4MzM1MDMiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5h dHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0 cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7 CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5u YW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9p ZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfZ2xrLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2dsay5jCmluZGV4IDRiZGRhNjZkZjdkMi4uZDhk NjM0ZGNhMTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2dsay5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfZ2xrLmMKQEAgLTY0LDI2ICs2NCwy NiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29u ZmlnX2dsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcudXVpZCwKIAkJImRkM2ZkNzg5LWU3ODMtNDIwNC04Y2QwLWI2NzFiYmNj YjBjZiIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlk ID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2Nv bmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xl biA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7 CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291 bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2Nv dW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29u ZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3Nf bGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYt PnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0la RShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5m bGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2Ep OwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAi ZGQzZmQ3ODktZTc4My00MjA0LThjZDAtYjY3MWJiY2NiMGNmIjsKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMu bmFtZSA9ICJkZDNmZDc4OS1lNzgzLTQyMDQtOGNkMC1iNjcxYmJjY2IwY2YiOworCWRldl9wcml2 LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRl c3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNb MF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3df dGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu YXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfb2FfaHN3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X29hX2hzdy5jCmluZGV4IGNjNjUyNmZkZDJiZC4uNzAzMjI3Nzg3NmRiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2hzdy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2FfaHN3LmMKQEAgLTk0LDI2ICs5NCwyNiBAQCBzaG93X3JlbmRlcl9iYXNpY19p ZChzdHJ1Y3QgZGV2aWNlICprZGV2LCBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hh ciAqYgogdm9pZAogaTkxNV9wZXJmX2xvYWRfdGVzdF9jb25maWdfaHN3KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlzdHJsY3B5KGRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLnV1aWQsCisJc3RybGNweShkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlkLAog CQkiNDAzZDg4MzItMWEyNy00YWE2LWE2NGUtZjUzODljZTdiMjEyIiwKLQkJc2l6ZW9mKGRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnV1aWQpKTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5pZCA9IDE7CisJCXNpemVvZihkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy51dWlk KSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuaWQgPSAxOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcubXV4X3JlZ3MgPSBtdXhfY29uZmlnX3JlbmRlcl9iYXNpYzsKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11 eF9jb25maWdfcmVuZGVyX2Jhc2ljKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhf cmVncyA9IG11eF9jb25maWdfcmVuZGVyX2Jhc2ljOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ19yZW5kZXJfYmFzaWMpOwog Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50 ZXJfY29uZmlnX3JlbmRlcl9iYXNpYzsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5i X2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfcmVuZGVyX2Jh c2ljKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291 bnRlcl9jb25maWdfcmVuZGVyX2Jhc2ljOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmJf Y291bnRlcl9yZWdzX2xlbiA9IEFSUkFZX1NJWkUoYl9jb3VudGVyX2NvbmZpZ19yZW5kZXJfYmFz aWMpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9l dV9jb25maWdfcmVuZGVyX2Jhc2ljOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmZs ZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpYyk7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfcmVu ZGVyX2Jhc2ljOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBB UlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3JlbmRlcl9iYXNpYyk7CiAKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI0MDNkODgzMi0xYTI3LTRhYTYt YTY0ZS1mNTM4OWNlN2IyMTIiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2Zz X21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLmF0dHJzOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5uYW1lID0gIjQwM2Q4ODMyLTFh MjctNGFhNi1hNjRlLWY1Mzg5Y2U3YjIxMiI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljLmF0dHJzID0gZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnM7CiAK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0cjsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5hdHRyc1swXSA9ICZkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWNfaWQuYXR0cjsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnN5c2ZzX21l dHJpY19pZC5hdHRyLm5hbWUgPSAiaWQiOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmln LnN5c2ZzX21ldHJpY19pZC5hdHRyLm1vZGUgPSAwNDQ0OwotCWRldl9wcml2LT5wZXJmLm9hLnRl c3RfY29uZmlnLnN5c2ZzX21ldHJpY19pZC5zaG93ID0gc2hvd19yZW5kZXJfYmFzaWNfaWQ7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubmFtZSA9ICJp ZCI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIubW9k ZSA9IDA0NDQ7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLnNo b3cgPSBzaG93X3JlbmRlcl9iYXNpY19pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfb2FfaWNsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2ljbC5j CmluZGV4IGJhYTUxNDI3YTU0My4uYmNhMjNmMTUwNjI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X29hX2ljbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf b2FfaWNsLmMKQEAgLTc0LDI2ICs3NCwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmlj ZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQK IGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX2ljbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlk LAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKIAkJImEyOTE2NjVl LTI0NGItNGI3Ni05YjlhLTAxZGU5ZDNjODA2OCIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQg PSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3Rf Y29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9h LnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29h KTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVz dF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9T SVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291 bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3Vu dGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmln X3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0g ZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5m bGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29h OworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpF KGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiYTI5MTY2NWUtMjQ0Yi00Yjc2LTliOWEtMDFkZTlkM2M4 MDY4IjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMg PSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICJhMjkxNjY1ZS0yNDRiLTRiNzYtOWI5YS0w MWRlOWQzYzgwNjgiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5h dHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25m aWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0 cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7 CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5u YW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9p ZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0Mi5jCmluZGV4IDE2OGU0OWFiMGQ0 ZC4uMmUxZDEyZjc4YzliIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29h X2tibGd0Mi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QyLmMKQEAg LTY1LDI2ICs2NSwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9s b2FkX3Rlc3RfY29uZmlnX2tibGd0MihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxj cHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKIAkJImJhYTNjN2U0LTUyYjYtNGI4 NS04MDFlLTQ2NWE5NGI3NDZkZCIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlz aXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11 eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29u ZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9j b25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50 ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25m aWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3Mg PSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu Yl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2Ep OwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9j b25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3Nf bGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9w cml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVf Y29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNf bWV0cmljLm5hbWUgPSAiYmFhM2M3ZTQtNTJiNi00Yjg1LTgwMWUtNDY1YTk0Yjc0NmRkIjsKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWMubmFtZSA9ICJiYWEzYzdlNC01MmI2LTRiODUtODAxZS00NjVhOTRiNzQ2 ZGQiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNf bWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAm ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlk IjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5t b2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QzLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5jCmluZGV4IDZmZmE1NTNjMzg4ZS4uMDdhODU2 N2JkNWJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX2tibGd0My5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffa2JsZ3QzLmMKQEAgLTY1LDI2ICs2 NSwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3Rf Y29uZmlnX2tibGd0MyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3Ry bGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwKIAkJImYxNzkyZjMyLTZkYjItNGI1MC1iNGIyLTU1 NzEyOGYxNjg4ZCIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlk KSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0g bXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9y ZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVy Zi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+ cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVz dF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9 IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9v YSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50 ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVy X3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVz dF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJS QVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJm LnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rl c3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5h bWUgPSAiZjE3OTJmMzItNmRiMi00YjUwLWI0YjItNTU3MTI4ZjE2ODhkIjsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWMubmFtZSA9ICJmMTc5MmYzMi02ZGIyLTRiNTAtYjRiMi01NTcxMjhmMTY4OGQiOworCWRl dl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu YXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lk LmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0 NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9 IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNm c19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X29hX3NrbGd0Mi5jCmluZGV4IDdjZTZlZTg1MWQ0My4uZmE0NjNhOTJmNWJiIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0Mi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QyLmMKQEAgLTY0LDI2ICs2NCwyNiBAQCBz aG93X3Rlc3Rfb2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3Nr bGd0MihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYu dGVzdF9jb25maWcudXVpZCwKIAkJIjE2NTE5NDlmLTBhYzAtNGNiMS1hMDZmLWRhZmQ3NGE0MDdk MSIsCi0JCXNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2 X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0g MTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZp Z190ZXN0X29hOwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9 IEFSUkFZX1NJWkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2Nv bmZpZy5tdXhfcmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0 X2NvbmZpZy5tdXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRl cl9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50 ZXJfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2 X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmln X3Rlc3Rfb2E7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVu ID0gQVJSQVlfU0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlk ZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShm bGV4X2V1X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4 X3JlZ3MgPSBmbGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmZsZXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwog Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiMTY1 MTk0OWYtMGFjMC00Y2IxLWEwNmYtZGFmZDc0YTQwN2QxIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2Nv bmZpZy5hdHRyczsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFt ZSA9ICIxNjUxOTQ5Zi0wYWMwLTRjYjEtYTA2Zi1kYWZkNzRhNDA3ZDEiOworCWRldl9wcml2LT5w ZXJmLnRlc3RfY29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLmF0dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0g PSAmZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJ ZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVz dF9vYV9pZDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0 ci5uYW1lID0gImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNf aWQuYXR0ci5tb2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X29hX3NrbGd0My5jCmluZGV4IDA4NmNhMjYzMWUxYy4uOWM5NDk3ZDdhOWQ1IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0My5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfb2Ffc2tsZ3QzLmMKQEAgLTY1LDI2ICs2NSwyNiBAQCBzaG93X3Rlc3Rf b2FfaWQoc3RydWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs IGNoYXIgKmJ1ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0MyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25m aWcudXVpZCwKIAkJIjJiOTg1ODAzLWQzYzktNDYyOS04YTRmLTYzNGJmZWNiYTBlOCIsCi0JCXNp emVvZihkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcudXVpZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRl dl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29h OwotCWRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJ WkUobXV4X2NvbmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhf cmVncyA9IG11eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5t dXhfcmVnc19sZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJp di0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdf dGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19s ZW4gPSBBUlJBWV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7 CisJZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlf U0laRShiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+ cGVyZi5vYS50ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2Nv bmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBm bGV4X2V1X2NvbmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhf cmVnc19sZW4gPSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiMmI5ODU4MDMtZDNj OS00NjI5LThhNGYtNjM0YmZlY2JhMGU4IjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZp Zy5zeXNmc19tZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRy czsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICIyYjk4 NTgwMy1kM2M5LTQ2MjktOGE0Zi02MzRiZmVjYmEwZTgiOworCWRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0 dHJzOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3By aXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYt PnBlcmYudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcu c3lzZnNfbWV0cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVy Zi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsK KwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0g ImlkIjsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5t b2RlID0gMDQ0NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQu c2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfb2Ffc2tsZ3Q0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0 NC5jCmluZGV4IGIyOTFhNmViOGE4Ny4uNjVlYmM2YjhkZDcwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X29hX3NrbGd0NC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfb2Ffc2tsZ3Q0LmMKQEAgLTY1LDI2ICs2NSwyNiBAQCBzaG93X3Rlc3Rfb2FfaWQoc3Ry dWN0IGRldmljZSAqa2Rldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1 ZikKIHZvaWQKIGk5MTVfcGVyZl9sb2FkX3Rlc3RfY29uZmlnX3NrbGd0NChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RybGNweShkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy51dWlkLAorCXN0cmxjcHkoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVpZCwK IAkJIjg4MmZhNDMzLTFmNGEtNGE2Ny1hOTYyLWM3NDE4ODhmZTVmNSIsCi0JCXNpemVvZihkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy51dWlkKSk7Ci0JZGV2X3ByaXYtPnBlcmYub2EudGVz dF9jb25maWcuaWQgPSAxOworCQlzaXplb2YoZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcudXVp ZCkpOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmlkID0gMTsKIAotCWRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzID0gbXV4X2NvbmZpZ190ZXN0X29hOwotCWRldl9w cml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLm11eF9yZWdzX2xlbiA9IEFSUkFZX1NJWkUobXV4X2Nv bmZpZ190ZXN0X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVncyA9IG11 eF9jb25maWdfdGVzdF9vYTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5tdXhfcmVnc19s ZW4gPSBBUlJBWV9TSVpFKG11eF9jb25maWdfdGVzdF9vYSk7CiAKLQlkZXZfcHJpdi0+cGVyZi5v YS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVncyA9IGJfY291bnRlcl9jb25maWdfdGVzdF9vYTsK LQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5iX2NvdW50ZXJfcmVnc19sZW4gPSBBUlJB WV9TSVpFKGJfY291bnRlcl9jb25maWdfdGVzdF9vYSk7CisJZGV2X3ByaXYtPnBlcmYudGVzdF9j b25maWcuYl9jb3VudGVyX3JlZ3MgPSBiX2NvdW50ZXJfY29uZmlnX3Rlc3Rfb2E7CisJZGV2X3By aXYtPnBlcmYudGVzdF9jb25maWcuYl9jb3VudGVyX3JlZ3NfbGVuID0gQVJSQVlfU0laRShiX2Nv dW50ZXJfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcu ZmxleF9yZWdzID0gZmxleF9ldV9jb25maWdfdGVzdF9vYTsKLQlkZXZfcHJpdi0+cGVyZi5vYS50 ZXN0X2NvbmZpZy5mbGV4X3JlZ3NfbGVuID0gQVJSQVlfU0laRShmbGV4X2V1X2NvbmZpZ190ZXN0 X29hKTsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5mbGV4X3JlZ3MgPSBmbGV4X2V1X2Nv bmZpZ190ZXN0X29hOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmZsZXhfcmVnc19sZW4g PSBBUlJBWV9TSVpFKGZsZXhfZXVfY29uZmlnX3Rlc3Rfb2EpOwogCi0JZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljLm5hbWUgPSAiODgyZmE0MzMtMWY0YS00YTY3LWE5 NjItYzc0MTg4OGZlNWY1IjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19t ZXRyaWMuYXR0cnMgPSBkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5hdHRyczsKKwlkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMubmFtZSA9ICI4ODJmYTQzMy0xZjRh LTRhNjctYTk2Mi1jNzQxODg4ZmU1ZjUiOworCWRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLnN5 c2ZzX21ldHJpYy5hdHRycyA9IGRldl9wcml2LT5wZXJmLnRlc3RfY29uZmlnLmF0dHJzOwogCi0J ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHI7CisJZGV2X3ByaXYtPnBlcmYudGVz dF9jb25maWcuYXR0cnNbMF0gPSAmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0 cmljX2lkLmF0dHI7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5zeXNmc19tZXRy aWNfaWQuYXR0ci5uYW1lID0gImlkIjsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZy5z eXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0NDsKLQlkZXZfcHJpdi0+cGVyZi5vYS50ZXN0 X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNob3dfdGVzdF9vYV9pZDsKKwlkZXZfcHJp di0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5uYW1lID0gImlkIjsKKwlk ZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuYXR0ci5tb2RlID0gMDQ0 NDsKKwlkZXZfcHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWNfaWQuc2hvdyA9IHNo b3dfdGVzdF9vYV9pZDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGVyZi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wZXJmLmMKaW5kZXggYzQ5OTVkNWEx NmQyLi5iZTNmNjg0NjFjNTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cGVyZi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGVyZi5jCkBAIC0zNjQsNiAr MzY0LDggQEAgc3RydWN0IHBlcmZfb3Blbl9wcm9wZXJ0aWVzIHsKIAlpbnQgb2FfcGVyaW9kX2V4 cG9uZW50OwogfTsKIAorc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0IG9hX3BvbGxfY2hlY2tf dGltZXJfY2Ioc3RydWN0IGhydGltZXIgKmhydGltZXIpOworCiBzdGF0aWMgdm9pZCBmcmVlX29h X2NvbmZpZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICBzdHJ1Y3Qg aTkxNV9vYV9jb25maWcgKm9hX2NvbmZpZykKIHsKQEAgLTM5Miw4ICszOTQsOCBAQCBzdGF0aWMg aW50IGdldF9vYV9jb25maWcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlu dCByZXQ7CiAKIAlpZiAobWV0cmljc19zZXQgPT0gMSkgewotCQkqb3V0X2NvbmZpZyA9ICZkZXZf cHJpdi0+cGVyZi5vYS50ZXN0X2NvbmZpZzsKLQkJYXRvbWljX2luYygmZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcucmVmX2NvdW50KTsKKwkJKm91dF9jb25maWcgPSAmZGV2X3ByaXYtPnBl cmYudGVzdF9jb25maWc7CisJCWF0b21pY19pbmMoJmRldl9wcml2LT5wZXJmLnRlc3RfY29uZmln LnJlZl9jb3VudCk7CiAJCXJldHVybiAwOwogCX0KIApAQCAtNDEyLDEzICs0MTQsMTYgQEAgc3Rh dGljIGludCBnZXRfb2FfY29uZmlnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgdTMyIGdlbjhfb2FfaHdfdGFpbF9yZWFkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB1MzIgZ2VuOF9vYV9od190YWls X3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OworCiAJcmV0dXJuIEk5MTVf UkVBRChHRU44X09BVEFJTFBUUikgJiBHRU44X09BVEFJTFBUUl9NQVNLOwogfQogCi1zdGF0aWMg dTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKK3N0YXRpYyB1MzIgZ2VuN19vYV9od190YWlsX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJl YW0gKnN0cmVhbSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJl YW0tPmRldl9wcml2OwogCXUzMiBvYXN0YXR1czEgPSBJOTE1X1JFQUQoR0VON19PQVNUQVRVUzEp OwogCiAJcmV0dXJuIG9hc3RhdHVzMSAmIEdFTjdfT0FTVEFUVVMxX1RBSUxfTUFTSzsKQEAgLTQy Niw3ICs0MzEsNyBAQCBzdGF0aWMgdTMyIGdlbjdfb2FfaHdfdGFpbF9yZWFkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogLyoqCiAgKiBvYV9idWZmZXJfY2hlY2tfdW5sb2Nr ZWQgLSBjaGVjayBmb3IgZGF0YSBhbmQgdXBkYXRlIHRhaWwgcHRyIHN0YXRlCi0gKiBAZGV2X3By aXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKiBAc3RyZWFtOiBpOTE1IHN0cmVhbSBpbnN0YW5j ZQogICoKICAqIFRoaXMgaXMgZWl0aGVyIGNhbGxlZCB2aWEgZm9wcyAoZm9yIGJsb2NraW5nIHJl YWRzIGluIHVzZXIgY3R4KSBvciB0aGUgcG9sbAogICogY2hlY2sgaHJ0aW1lciAoYXRvbWljIGN0 eCkgdG8gY2hlY2sgdGhlIE9BIGJ1ZmZlciB0YWlsIHBvaW50ZXIgYW5kIGNoZWNrCkBAIC00NDgs OSArNDUzLDEwIEBAIHN0YXRpYyB1MzIgZ2VuN19vYV9od190YWlsX3JlYWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogICoKICAqIFJldHVybnM6ICV0cnVlIGlmIHRoZSBPQSBi dWZmZXIgY29udGFpbnMgZGF0YSwgZWxzZSAlZmFsc2UKICAqLwotc3RhdGljIGJvb2wgb2FfYnVm ZmVyX2NoZWNrX3VubG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0 YXRpYyBib29sIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtKQogewotCWludCByZXBvcnRfc2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1 ZmZlci5mb3JtYXRfc2l6ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBz dHJlYW0tPmRldl9wcml2OworCWludCByZXBvcnRfc2l6ZSA9IHN0cmVhbS0+b2FfYnVmZmVyLmZv cm1hdF9zaXplOwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJdW5zaWduZWQgaW50IGFnZWRfaWR4 OwogCXUzMiBoZWFkLCBod190YWlsLCBhZ2VkX3RhaWwsIGFnaW5nX3RhaWw7CkBAIC00NjAsMTkg KzQ2NiwxOSBAQCBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCSAqIGNvdWxkIHJlc3VsdCBpbiBhbiBPQSBidWZm ZXIgcmVzZXQgd2hpY2ggbWlnaHQgcmVzZXQgdGhlIGhlYWQsCiAJICogdGFpbHNbXSBhbmQgYWdl ZF90YWlsIHN0YXRlLgogCSAqLwotCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+cGVyZi5v YS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFt LT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKIAogCS8qIE5COiBUaGUgaGVhZCB3ZSBvYnNl cnZlIGhlcmUgbWlnaHQgZWZmZWN0aXZlbHkgYmUgYSBsaXR0bGUgb3V0IG9mCiAJICogZGF0ZSAo YmV0d2VlbiBoZWFkIGFuZCB0YWlsc1thZ2VkX2lkeF0ub2Zmc2V0IGlmIHRoZXJlIGlzIGN1cnJl bnRseQogCSAqIGEgcmVhZCgpIGluIHByb2dyZXNzLgogCSAqLwotCWhlYWQgPSBkZXZfcHJpdi0+ cGVyZi5vYS5vYV9idWZmZXIuaGVhZDsKKwloZWFkID0gc3RyZWFtLT5vYV9idWZmZXIuaGVhZDsK IAotCWFnZWRfaWR4ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7 Ci0JYWdlZF90YWlsID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzW2FnZWRfaWR4 XS5vZmZzZXQ7Ci0JYWdpbmdfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWls c1shYWdlZF9pZHhdLm9mZnNldDsKKwlhZ2VkX2lkeCA9IHN0cmVhbS0+b2FfYnVmZmVyLmFnZWRf dGFpbF9pZHg7CisJYWdlZF90YWlsID0gc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbYWdlZF9pZHhd Lm9mZnNldDsKKwlhZ2luZ190YWlsID0gc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbIWFnZWRfaWR4 XS5vZmZzZXQ7CiAKLQlod190YWlsID0gZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2h3X3RhaWxf cmVhZChkZXZfcHJpdik7CisJaHdfdGFpbCA9IGRldl9wcml2LT5wZXJmLm9wcy5vYV9od190YWls X3JlYWQoc3RyZWFtKTsKIAogCS8qIFRoZSB0YWlsIHBvaW50ZXIgaW5jcmVhc2VzIGluIDY0IGJ5 dGUgaW5jcmVtZW50cywKIAkgKiBub3QgaW4gcmVwb3J0X3NpemUgc3RlcHMuLi4KQEAgLTQ5Miwx NiArNDk4LDE2IEBAIHN0YXRpYyBib29sIG9hX2J1ZmZlcl9jaGVja191bmxvY2tlZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICogYXZhaWxhYmxlKSB3aXRob3V0IG5lZWRp bmcgdG8gd2FpdCBmb3IgYSBsYXRlciBocnRpbWVyIGNhbGxiYWNrLgogCSAqLwogCWlmIChhZ2lu Z190YWlsICE9IElOVkFMSURfVEFJTF9QVFIgJiYKLQkgICAgKChub3cgLSBkZXZfcHJpdi0+cGVy Zi5vYS5vYV9idWZmZXIuYWdpbmdfdGltZXN0YW1wKSA+CisJICAgICgobm93IC0gc3RyZWFtLT5v YV9idWZmZXIuYWdpbmdfdGltZXN0YW1wKSA+CiAJICAgICBPQV9UQUlMX01BUkdJTl9OU0VDKSkg ewogCiAJCWFnZWRfaWR4IF49IDE7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2Vk X3RhaWxfaWR4ID0gYWdlZF9pZHg7CisJCXN0cmVhbS0+b2FfYnVmZmVyLmFnZWRfdGFpbF9pZHgg PSBhZ2VkX2lkeDsKIAogCQlhZ2VkX3RhaWwgPSBhZ2luZ190YWlsOwogCiAJCS8qIE1hcmsgdGhh dCB3ZSBuZWVkIGEgbmV3IHBvaW50ZXIgdG8gc3RhcnQgYWdpbmcuLi4gKi8KLQkJZGV2X3ByaXYt PnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWyFhZ2VkX2lkeF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlM X1BUUjsKKwkJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbIWFnZWRfaWR4XS5vZmZzZXQgPSBJTlZB TElEX1RBSUxfUFRSOwogCQlhZ2luZ190YWlsID0gSU5WQUxJRF9UQUlMX1BUUjsKIAl9CiAKQEAg LTUxNiw3ICs1MjIsNyBAQCBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWlmIChhZ2luZ190YWlsID09IElOVkFM SURfVEFJTF9QVFIgJiYKIAkgICAgKGFnZWRfdGFpbCA9PSBJTlZBTElEX1RBSUxfUFRSIHx8CiAJ ICAgICBPQV9UQUtFTihod190YWlsLCBhZ2VkX3RhaWwpID49IHJlcG9ydF9zaXplKSkgewotCQlz dHJ1Y3QgaTkxNV92bWEgKnZtYSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWE7CisJ CXN0cnVjdCBpOTE1X3ZtYSAqdm1hID0gc3RyZWFtLT5vYV9idWZmZXIudm1hOwogCQl1MzIgZ3R0 X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQodm1hKTsKIAogCQkvKiBCZSBwYXJhbm9pZCBhbmQg ZG8gYSBib3VuZHMgY2hlY2sgb24gdGhlIHBvaW50ZXIgcmVhZCBiYWNrCkBAIC01MjUsMTYgKzUz MSwxNiBAQCBzdGF0aWMgYm9vbCBvYV9idWZmZXJfY2hlY2tfdW5sb2NrZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQkgKi8KIAkJaWYgKGh3X3RhaWwgPj0gZ3R0X29mZnNl dCAmJgogCQkgICAgaHdfdGFpbCA8IChndHRfb2Zmc2V0ICsgT0FfQlVGRkVSX1NJWkUpKSB7Ci0J CQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbIWFnZWRfaWR4XS5vZmZzZXQgPQor CQkJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbIWFnZWRfaWR4XS5vZmZzZXQgPQogCQkJCWFnaW5n X3RhaWwgPSBod190YWlsOwotCQkJZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnaW5nX3Rp bWVzdGFtcCA9IG5vdzsKKwkJCXN0cmVhbS0+b2FfYnVmZmVyLmFnaW5nX3RpbWVzdGFtcCA9IG5v dzsKIAkJfSBlbHNlIHsKIAkJCURSTV9FUlJPUigiSWdub3Jpbmcgc3B1cmlvdXMgb3V0IG9mIHJh bmdlIE9BIGJ1ZmZlciB0YWlsIHBvaW50ZXIgPSAldVxuIiwKIAkJCQkgIGh3X3RhaWwpOwogCQl9 CiAJfQogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVm ZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc3RyZWFtLT5v YV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsKIAogCXJldHVybiBhZ2VkX3RhaWwgPT0gSU5WQUxJ RF9UQUlMX1BUUiA/CiAJCWZhbHNlIDogT0FfVEFLRU4oYWdlZF90YWlsLCBoZWFkKSA+PSByZXBv cnRfc2l6ZTsKQEAgLTU5Nyw4ICs2MDMsNyBAQCBzdGF0aWMgaW50IGFwcGVuZF9vYV9zYW1wbGUo c3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCSAgICBzaXplX3QgKm9mZnNldCwK IAkJCSAgICBjb25zdCB1OCAqcmVwb3J0KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7Ci0JaW50IHJlcG9ydF9zaXplID0gZGV2X3ByaXYt PnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdF9zaXplOworCWludCByZXBvcnRfc2l6ZSA9IHN0cmVh bS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplOwogCXN0cnVjdCBkcm1faTkxNV9wZXJmX3JlY29yZF9o ZWFkZXIgaGVhZGVyOwogCXUzMiBzYW1wbGVfZmxhZ3MgPSBzdHJlYW0tPnNhbXBsZV9mbGFnczsK IApAQCAtNjUwLDkgKzY1NSw5IEBAIHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhz dHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJCSAgc2l6ZV90ICpvZmZzZXQpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsK LQlpbnQgcmVwb3J0X3NpemUgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuZm9ybWF0X3Np emU7Ci0JdTggKm9hX2J1Zl9iYXNlID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRy OwotCXUzMiBndHRfb2Zmc2V0ID0gaTkxNV9nZ3R0X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIudm1hKTsKKwlpbnQgcmVwb3J0X3NpemUgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3Jt YXRfc2l6ZTsKKwl1OCAqb2FfYnVmX2Jhc2UgPSBzdHJlYW0tPm9hX2J1ZmZlci52YWRkcjsKKwl1 MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsK IAl1MzIgbWFzayA9IChPQV9CVUZGRVJfU0laRSAtIDEpOwogCXNpemVfdCBzdGFydF9vZmZzZXQg PSAqb2Zmc2V0OwogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CkBAIC02NjQsMTMgKzY2OSwxMyBAQCBz dGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSwKIAlpZiAoV0FSTl9PTighc3RyZWFtLT5lbmFibGVkKSkKIAkJcmV0dXJuIC1FSU87 CiAKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9s b2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrX2lycXNhdmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9s b2NrLCBmbGFncyk7CiAKLQloZWFkID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmhlYWQ7 Ci0JYWdlZF90YWlsX2lkeCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5hZ2VkX3RhaWxf aWR4OwotCXRhaWwgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudGFpbHNbYWdlZF90YWls X2lkeF0ub2Zmc2V0OworCWhlYWQgPSBzdHJlYW0tPm9hX2J1ZmZlci5oZWFkOworCWFnZWRfdGFp bF9pZHggPSBzdHJlYW0tPm9hX2J1ZmZlci5hZ2VkX3RhaWxfaWR4OworCXRhaWwgPSBzdHJlYW0t Pm9hX2J1ZmZlci50YWlsc1thZ2VkX3RhaWxfaWR4XS5vZmZzZXQ7CiAKLQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsK KwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywgZmxh Z3MpOwogCiAJLyoKIAkgKiBBbiBpbnZhbGlkIHRhaWwgcG9pbnRlciBoZXJlIG1lYW5zIHdlJ3Jl IHN0aWxsIHdhaXRpbmcgZm9yIHRoZSBwb2xsCkBAIC03MzQsMTIgKzczOSwxMiBAQCBzdGF0aWMg aW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVh bSwKIAkJcmVhc29uID0gKChyZXBvcnQzMlswXSA+PiBPQVJFUE9SVF9SRUFTT05fU0hJRlQpICYK IAkJCSAgT0FSRVBPUlRfUkVBU09OX01BU0spOwogCQlpZiAocmVhc29uID09IDApIHsKLQkJCWlm IChfX3JhdGVsaW1pdCgmZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzKSkKKwkJ CWlmIChfX3JhdGVsaW1pdCgmZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzKSkKIAkJ CQlEUk1fTk9URSgiU2tpcHBpbmcgc3B1cmlvdXMsIGludmFsaWQgT0EgcmVwb3J0XG4iKTsKIAkJ CWNvbnRpbnVlOwogCQl9CiAKLQkJY3R4X2lkID0gcmVwb3J0MzJbMl0gJiBkZXZfcHJpdi0+cGVy Zi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzazsKKwkJY3R4X2lkID0gcmVwb3J0MzJbMl0gJiBzdHJl YW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrOwogCiAJCS8qCiAJCSAqIFNxdWFzaCB3aGF0ZXZlciBp cyBpbiB0aGUgQ1RYX0lEIGZpZWxkIGlmIGl0J3MgbWFya2VkIGFzCkBAIC03NDksNyArNzU0LDcg QEAgc3RhdGljIGludCBnZW44X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3BlcmZfc3Ry ZWFtICpzdHJlYW0sCiAJCSAqIE5vdGU6IHRoYXQgd2UgZG9uJ3QgY2xlYXIgdGhlIHZhbGlkX2N0 eF9iaXQgc28gdXNlcnNwYWNlIGNhbgogCQkgKiB1bmRlcnN0YW5kIHRoYXQgdGhlIElEIGhhcyBi ZWVuIHNxdWFzaGVkIGJ5IHRoZSBrZXJuZWwuCiAJCSAqLwotCQlpZiAoIShyZXBvcnQzMlswXSAm IGRldl9wcml2LT5wZXJmLm9hLmdlbjhfdmFsaWRfY3R4X2JpdCkpCisJCWlmICghKHJlcG9ydDMy WzBdICYgZGV2X3ByaXYtPnBlcmYuZ2VuOF92YWxpZF9jdHhfYml0KSkKIAkJCWN0eF9pZCA9IHJl cG9ydDMyWzJdID0gSU5WQUxJRF9DVFhfSUQ7CiAKIAkJLyoKQEAgLTc4MywxOCArNzg4LDE4IEBA IHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtLAogCQkgKiBzd2l0Y2hlcyBzaW5jZSBpdCdzIG5vdC11bmNvbW1vbiBmb3IgcGVy aW9kaWMgc2FtcGxlcyB0bwogCQkgKiBpZGVudGlmeSBhIHN3aXRjaCBiZWZvcmUgYW55ICdjb250 ZXh0IHN3aXRjaCcgcmVwb3J0LgogCQkgKi8KLQkJaWYgKCFkZXZfcHJpdi0+cGVyZi5vYS5leGNs dXNpdmVfc3RyZWFtLT5jdHggfHwKLQkJICAgIGRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0 eF9pZCA9PSBjdHhfaWQgfHwKLQkJICAgIChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIubGFz dF9jdHhfaWQgPT0KLQkJICAgICBkZXZfcHJpdi0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQpIHx8 CisJCWlmICghZGV2X3ByaXYtPnBlcmYuZXhjbHVzaXZlX3N0cmVhbS0+Y3R4IHx8CisJCSAgICBz dHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9PSBjdHhfaWQgfHwKKwkJICAgIChzdHJlYW0tPm9hX2J1 ZmZlci5sYXN0X2N0eF9pZCA9PQorCQkgICAgIHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkKSB8fAog CQkgICAgcmVhc29uICYgT0FSRVBPUlRfUkVBU09OX0NUWF9TV0lUQ0gpIHsKIAogCQkJLyoKIAkJ CSAqIFdoaWxlIGZpbHRlcmluZyBmb3IgYSBzaW5nbGUgY29udGV4dCB3ZSBhdm9pZAogCQkJICog bGVha2luZyB0aGUgSURzIG9mIG90aGVyIGNvbnRleHRzLgogCQkJICovCi0JCQlpZiAoZGV2X3By aXYtPnBlcmYub2EuZXhjbHVzaXZlX3N0cmVhbS0+Y3R4ICYmCi0JCQkgICAgZGV2X3ByaXYtPnBl cmYub2Euc3BlY2lmaWNfY3R4X2lkICE9IGN0eF9pZCkgeworCQkJaWYgKGRldl9wcml2LT5wZXJm LmV4Y2x1c2l2ZV9zdHJlYW0tPmN0eCAmJgorCQkJICAgIHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lk ICE9IGN0eF9pZCkgewogCQkJCXJlcG9ydDMyWzJdID0gSU5WQUxJRF9DVFhfSUQ7CiAJCQl9CiAK QEAgLTgwMyw3ICs4MDgsNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3Ry dWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCWlmIChyZXQpCiAJCQkJYnJlYWs7CiAK LQkJCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5sYXN0X2N0eF9pZCA9IGN0eF9pZDsKKwkJ CXN0cmVhbS0+b2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gY3R4X2lkOwogCQl9CiAKIAkJLyoKQEAg LTgxNyw3ICs4MjIsNyBAQCBzdGF0aWMgaW50IGdlbjhfYXBwZW5kX29hX3JlcG9ydHMoc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAl9CiAKIAlpZiAoc3RhcnRfb2Zmc2V0ICE9ICpv ZmZzZXQpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZl ci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZm ZXIucHRyX2xvY2ssIGZsYWdzKTsKIAogCQkvKgogCQkgKiBXZSByZW1vdmVkIHRoZSBndHRfb2Zm c2V0IGZvciB0aGUgY29weSBsb29wIGFib3ZlLCBpbmRleGluZwpAQCAtODI2LDkgKzgzMSw5IEBA IHN0YXRpYyBpbnQgZ2VuOF9hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVh bSAqc3RyZWFtLAogCQloZWFkICs9IGd0dF9vZmZzZXQ7CiAKIAkJSTkxNV9XUklURShHRU44X09B SEVBRFBUUiwgaGVhZCAmIEdFTjhfT0FIRUFEUFRSX01BU0spOwotCQlkZXZfcHJpdi0+cGVyZi5v YS5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7CisJCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQgPSBoZWFk OwogCi0JCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZl ci5wdHJfbG9jaywgZmxhZ3MpOworCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9h X2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCX0KIAogCXJldHVybiByZXQ7CkBAIC04NjMsNyAr ODY4LDcgQEAgc3RhdGljIGludCBnZW44X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0g KnN0cmVhbSwKIAl1MzIgb2FzdGF0dXM7CiAJaW50IHJldDsKIAotCWlmIChXQVJOX09OKCFkZXZf cHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpKQorCWlmIChXQVJOX09OKCFzdHJlYW0tPm9h X2J1ZmZlci52YWRkcikpCiAJCXJldHVybiAtRUlPOwogCiAJb2FzdGF0dXMgPSBJOTE1X1JFQUQo R0VOOF9PQVNUQVRVUyk7CkBAIC04ODksMTAgKzg5NCwxMCBAQCBzdGF0aWMgaW50IGdlbjhfb2Ff cmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJcmV0dXJuIHJldDsKIAog CQlEUk1fREVCVUcoIk9BIGJ1ZmZlciBvdmVyZmxvdyAoZXhwb25lbnQgPSAlZCk6IGZvcmNlIHJl c3RhcnRcbiIsCi0JCQkgIGRldl9wcml2LT5wZXJmLm9hLnBlcmlvZF9leHBvbmVudCk7CisJCQkg IHN0cmVhbS0+cGVyaW9kX2V4cG9uZW50KTsKIAotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2Ff ZGlzYWJsZShzdHJlYW0pOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZW5hYmxlKHN0cmVh bSk7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxlKHN0cmVhbSk7CisJCWRldl9wcml2 LT5wZXJmLm9wcy5vYV9lbmFibGUoc3RyZWFtKTsKIAogCQkvKgogCQkgKiBOb3RlOiAub2FfZW5h YmxlKCkgaXMgZXhwZWN0ZWQgdG8gcmUtaW5pdCB0aGUgb2FidWZmZXIgYW5kCkBAIC05MzksOSAr OTQ0LDkgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0sCiAJCQkJICBzaXplX3QgKm9mZnNldCkKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwotCWludCByZXBvcnRf c2l6ZSA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXRfc2l6ZTsKLQl1OCAqb2Ff YnVmX2Jhc2UgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudmFkZHI7Ci0JdTMyIGd0dF9v ZmZzZXQgPSBpOTE1X2dndHRfb2Zmc2V0KGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52bWEp OworCWludCByZXBvcnRfc2l6ZSA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplOworCXU4 ICpvYV9idWZfYmFzZSA9IHN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyOworCXUzMiBndHRfb2Zmc2V0 ID0gaTkxNV9nZ3R0X29mZnNldChzdHJlYW0tPm9hX2J1ZmZlci52bWEpOwogCXUzMiBtYXNrID0g KE9BX0JVRkZFUl9TSVpFIC0gMSk7CiAJc2l6ZV90IHN0YXJ0X29mZnNldCA9ICpvZmZzZXQ7CiAJ dW5zaWduZWQgbG9uZyBmbGFnczsKQEAgLTk1MywxMyArOTU4LDEzIEBAIHN0YXRpYyBpbnQgZ2Vu N19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCWlm IChXQVJOX09OKCFzdHJlYW0tPmVuYWJsZWQpKQogCQlyZXR1cm4gLUVJTzsKIAotCXNwaW5fbG9j a19pcnFzYXZlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsK KwlzcGluX2xvY2tfaXJxc2F2ZSgmc3RyZWFtLT5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdzKTsK IAotCWhlYWQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIuaGVhZDsKLQlhZ2VkX3RhaWxf aWR4ID0gZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7Ci0JdGFpbCA9 IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci50YWlsc1thZ2VkX3RhaWxfaWR4XS5vZmZzZXQ7 CisJaGVhZCA9IHN0cmVhbS0+b2FfYnVmZmVyLmhlYWQ7CisJYWdlZF90YWlsX2lkeCA9IHN0cmVh bS0+b2FfYnVmZmVyLmFnZWRfdGFpbF9pZHg7CisJdGFpbCA9IHN0cmVhbS0+b2FfYnVmZmVyLnRh aWxzW2FnZWRfdGFpbF9pZHhdLm9mZnNldDsKIAotCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRl dl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOworCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAKIAkvKiBB biBpbnZhbGlkIHRhaWwgcG9pbnRlciBoZXJlIG1lYW5zIHdlJ3JlIHN0aWxsIHdhaXRpbmcgZm9y IHRoZSBwb2xsCiAJICogaHJ0aW1lciBjYWxsYmFjayB0byBnaXZlIHVzIGEgcG9pbnRlcgpAQCAt MTAxMiw3ICsxMDE3LDcgQEAgc3RhdGljIGludCBnZW43X2FwcGVuZF9vYV9yZXBvcnRzKHN0cnVj dCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCSAqIGNvcHlpbmcgaXQgdG8gdXNlcnNwYWNl Li4uCiAJCSAqLwogCQlpZiAocmVwb3J0MzJbMF0gPT0gMCkgewotCQkJaWYgKF9fcmF0ZWxpbWl0 KCZkZXZfcHJpdi0+cGVyZi5vYS5zcHVyaW91c19yZXBvcnRfcnMpKQorCQkJaWYgKF9fcmF0ZWxp bWl0KCZkZXZfcHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMpKQogCQkJCURSTV9OT1RFKCJT a2lwcGluZyBzcHVyaW91cywgaW52YWxpZCBPQSByZXBvcnRcbiIpOwogCQkJY29udGludWU7CiAJ CX0KQEAgLTEwMzEsNyArMTAzNiw3IEBAIHN0YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVwb3J0 cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCX0KIAogCWlmIChzdGFydF9vZmZz ZXQgIT0gKm9mZnNldCkgewotCQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPnBlcmYub2Eu b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0t Pm9hX2J1ZmZlci5wdHJfbG9jaywgZmxhZ3MpOwogCiAJCS8qIFdlIHJlbW92ZWQgdGhlIGd0dF9v ZmZzZXQgZm9yIHRoZSBjb3B5IGxvb3AgYWJvdmUsIGluZGV4aW5nCiAJCSAqIHJlbGF0aXZlIHRv IG9hX2J1Zl9iYXNlIHNvIHB1dCBiYWNrIGhlcmUuLi4KQEAgLTEwNDEsOSArMTA0Niw5IEBAIHN0 YXRpYyBpbnQgZ2VuN19hcHBlbmRfb2FfcmVwb3J0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAq c3RyZWFtLAogCQlJOTE1X1dSSVRFKEdFTjdfT0FTVEFUVVMyLAogCQkJICAgKChoZWFkICYgR0VO N19PQVNUQVRVUzJfSEVBRF9NQVNLKSB8CiAJCQkgICAgR0VON19PQVNUQVRVUzJfTUVNX1NFTEVD VF9HR1RUKSk7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5oZWFkID0gaGVhZDsKKwkJ c3RyZWFtLT5vYV9idWZmZXIuaGVhZCA9IGhlYWQ7CiAKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CisJCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrLCBmbGFncyk7CiAJ fQogCiAJcmV0dXJuIHJldDsKQEAgLTEwNzQsNyArMTA3OSw3IEBAIHN0YXRpYyBpbnQgZ2VuN19v YV9yZWFkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJdTMyIG9hc3RhdHVzMTsK IAlpbnQgcmV0OwogCi0JaWYgKFdBUk5fT04oIWRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci52 YWRkcikpCisJaWYgKFdBUk5fT04oIXN0cmVhbS0+b2FfYnVmZmVyLnZhZGRyKSkKIAkJcmV0dXJu IC1FSU87CiAKIAlvYXN0YXR1czEgPSBJOTE1X1JFQUQoR0VON19PQVNUQVRVUzEpOwpAQCAtMTA4 NCw3ICsxMDg5LDcgQEAgc3RhdGljIGludCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSwKIAkgKiBtYXkgYmUgdXBkYXRlZCBhc3luY2hyb25vdXNseSkgc28gd2Ug aWdub3JlIHN0YXR1cyBiaXRzCiAJICogdGhhdCBoYXZlIGFscmVhZHkgYmVlbiByZXBvcnRlZCB0 byB1c2Vyc3BhY2UuCiAJICovCi0Jb2FzdGF0dXMxICY9IH5kZXZfcHJpdi0+cGVyZi5vYS5nZW43 X2xhdGNoZWRfb2FzdGF0dXMxOworCW9hc3RhdHVzMSAmPSB+ZGV2X3ByaXYtPnBlcmYuZ2VuN19s YXRjaGVkX29hc3RhdHVzMTsKIAogCS8qIFdlIHRyZWF0IE9BQlVGRkVSX09WRVJGTE9XIGFzIGEg c2lnbmlmaWNhbnQgZXJyb3I6CiAJICoKQEAgLTExMTMsMTAgKzExMTgsMTAgQEAgc3RhdGljIGlu dCBnZW43X29hX3JlYWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJCXJldHVy biByZXQ7CiAKIAkJRFJNX0RFQlVHKCJPQSBidWZmZXIgb3ZlcmZsb3cgKGV4cG9uZW50ID0gJWQp OiBmb3JjZSByZXN0YXJ0XG4iLAotCQkJICBkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhwb25l bnQpOworCQkJICBzdHJlYW0tPnBlcmlvZF9leHBvbmVudCk7CiAKLQkJZGV2X3ByaXYtPnBlcmYu b2Eub3BzLm9hX2Rpc2FibGUoc3RyZWFtKTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2Vu YWJsZShzdHJlYW0pOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZGlzYWJsZShzdHJlYW0pOwor CQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlKHN0cmVhbSk7CiAKIAkJb2FzdGF0dXMxID0g STkxNV9SRUFEKEdFTjdfT0FTVEFUVVMxKTsKIAl9CkBAIC0xMTI2LDcgKzExMzEsNyBAQCBzdGF0 aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAogCQkJ CSAgICAgICBEUk1fSTkxNV9QRVJGX1JFQ09SRF9PQV9SRVBPUlRfTE9TVCk7CiAJCWlmIChyZXQp CiAJCQlyZXR1cm4gcmV0OwotCQlkZXZfcHJpdi0+cGVyZi5vYS5nZW43X2xhdGNoZWRfb2FzdGF0 dXMxIHw9CisJCWRldl9wcml2LT5wZXJmLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgfD0KIAkJCUdF TjdfT0FTVEFUVVMxX1JFUE9SVF9MT1NUOwogCX0KIApAQCAtMTE0OSwxNCArMTE1NCwxMiBAQCBz dGF0aWMgaW50IGdlbjdfb2FfcmVhZChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtLAog ICovCiBzdGF0aWMgaW50IGk5MTVfb2Ffd2FpdF91bmxvY2tlZChzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0 cmVhbS0+ZGV2X3ByaXY7Ci0KIAkvKiBXZSB3b3VsZCB3YWl0IGluZGVmaW5pdGVseSBpZiBwZXJp b2RpYyBzYW1wbGluZyBpcyBub3QgZW5hYmxlZCAqLwotCWlmICghZGV2X3ByaXYtPnBlcmYub2Eu cGVyaW9kaWMpCisJaWYgKCFzdHJlYW0tPnBlcmlvZGljKQogCQlyZXR1cm4gLUVJTzsKIAotCXJl dHVybiB3YWl0X2V2ZW50X2ludGVycnVwdGlibGUoZGV2X3ByaXYtPnBlcmYub2EucG9sbF93cSwK LQkJCQkJb2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKGRldl9wcml2KSk7CisJcmV0dXJuIHdhaXRf ZXZlbnRfaW50ZXJydXB0aWJsZShzdHJlYW0tPnBvbGxfd3EsCisJCQkJCW9hX2J1ZmZlcl9jaGVj a191bmxvY2tlZChzdHJlYW0pKTsKIH0KIAogLyoqCkBAIC0xMTczLDkgKzExNzYsNyBAQCBzdGF0 aWMgdm9pZCBpOTE1X29hX3BvbGxfd2FpdChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFt LAogCQkJICAgICAgc3RydWN0IGZpbGUgKmZpbGUsCiAJCQkgICAgICBwb2xsX3RhYmxlICp3YWl0 KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3By aXY7Ci0KLQlwb2xsX3dhaXQoZmlsZSwgJmRldl9wcml2LT5wZXJmLm9hLnBvbGxfd3EsIHdhaXQp OworCXBvbGxfd2FpdChmaWxlLCAmc3RyZWFtLT5wb2xsX3dxLCB3YWl0KTsKIH0KIAogLyoqCkBA IC0xMTk3LDEzICsxMTk4LDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9vYV9yZWFkKHN0cnVjdCBpOTE1 X3BlcmZfc3RyZWFtICpzdHJlYW0sCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAotCXJldHVybiBkZXZfcHJpdi0+cGVyZi5vYS5vcHMu cmVhZChzdHJlYW0sIGJ1ZiwgY291bnQsIG9mZnNldCk7CisJcmV0dXJuIGRldl9wcml2LT5wZXJm Lm9wcy5yZWFkKHN0cmVhbSwgYnVmLCBjb3VudCwgb2Zmc2V0KTsKIH0KIAotc3RhdGljIHN0cnVj dCBpbnRlbF9jb250ZXh0ICpvYV9waW5fY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKLQkJCQkJICAgIHN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHgpCitzdGF0aWMgc3Ry dWN0IGludGVsX2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFt ICpzdHJlYW0pCiB7CiAJc3RydWN0IGk5MTVfZ2VtX2VuZ2luZXNfaXRlciBpdDsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3ByaXY7CisJc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCA9IHN0cmVhbS0+Y3R4OwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZTsKIAlpbnQgZXJyOwogCkBAIC0xMjIxLDcgKzEyMjMsNyBAQCBzdGF0aWMgc3RydWN0IGludGVs X2NvbnRleHQgKm9hX3Bpbl9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQkgKi8KIAkJZXJyID0gaW50ZWxfY29udGV4dF9waW4oY2UpOwogCQlpZiAoZXJyID09IDApIHsK LQkJCWk5MTUtPnBlcmYub2EucGlubmVkX2N0eCA9IGNlOworCQkJc3RyZWFtLT5waW5uZWRfY3R4 ID0gY2U7CiAJCQlicmVhazsKIAkJfQogCX0KQEAgLTEyMzEsNyArMTIzMyw3IEBAIHN0YXRpYyBz dHJ1Y3QgaW50ZWxfY29udGV4dCAqb2FfcGluX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmk5MTUsCiAJaWYgKGVycikKIAkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKIAotCXJldHVybiBp OTE1LT5wZXJmLm9hLnBpbm5lZF9jdHg7CisJcmV0dXJuIHN0cmVhbS0+cGlubmVkX2N0eDsKIH0K IAogLyoqCkBAIC0xMjQ5LDcgKzEyNTEsNyBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4 X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpj ZTsKIAotCWNlID0gb2FfcGluX2NvbnRleHQoaTkxNSwgc3RyZWFtLT5jdHgpOworCWNlID0gb2Ff cGluX2NvbnRleHQoc3RyZWFtKTsKIAlpZiAoSVNfRVJSKGNlKSkKIAkJcmV0dXJuIFBUUl9FUlIo Y2UpOwogCkBAIC0xMjU5LDggKzEyNjEsOCBAQCBzdGF0aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4 X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJCSAqIE9uIEhhc3dlbGwgd2Ug ZG9uJ3QgZG8gYW55IHBvc3QgcHJvY2Vzc2luZyBvZiB0aGUgcmVwb3J0cwogCQkgKiBhbmQgZG9u J3QgbmVlZCB0byB1c2UgdGhlIG1hc2suCiAJCSAqLwotCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmlj X2N0eF9pZCA9IGk5MTVfZ2d0dF9vZmZzZXQoY2UtPnN0YXRlKTsKLQkJaTkxNS0+cGVyZi5vYS5z cGVjaWZpY19jdHhfaWRfbWFzayA9IDA7CisJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID0gaTkx NV9nZ3R0X29mZnNldChjZS0+c3RhdGUpOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNr ID0gMDsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMjc4LDMzICsxMjgwLDM2IEBAIHN0YXRpYyBpbnQg b2FfZ2V0X3JlbmRlcl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkJ CSAqIGRyb3BwZWQgYnkgR3VDLiBUaGV5IHdvbid0IGJlIHBhcnQgb2YgdGhlIGNvbnRleHQKIAkJ CSAqIElEIGluIHRoZSBPQSByZXBvcnRzLCBzbyBzcXVhc2ggdGhvc2UgbG93ZXIgYml0cy4KIAkJ CSAqLwotCQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQgPQorCQkJc3RyZWFtLT5zcGVj aWZpY19jdHhfaWQgPQogCQkJCWxvd2VyXzMyX2JpdHMoY2UtPmxyY19kZXNjKSA+PiAxMjsKIAog CQkJLyoKIAkJCSAqIEd1QyB1c2VzIHRoZSB0b3AgYml0IHRvIHNpZ25hbCBwcm94eSBzdWJtaXNz aW9uLCBzbwogCQkJICogaWdub3JlIHRoYXQgYml0LgogCQkJICovCi0JCQlpOTE1LT5wZXJmLm9h LnNwZWNpZmljX2N0eF9pZF9tYXNrID0KKwkJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkX21hc2sg PQogCQkJCSgxVSA8PCAoR0VOOF9DVFhfSURfV0lEVEggLSAxKSkgLSAxOwogCQl9IGVsc2Ugewot CQkJaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayA9CisJCQlzdHJlYW0tPnNwZWNp ZmljX2N0eF9pZF9tYXNrID0KIAkJCQkoMVUgPDwgR0VOOF9DVFhfSURfV0lEVEgpIC0gMTsKLQkJ CWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkID0KKwkJCXN0cmVhbS0+c3BlY2lmaWNfY3R4 X2lkID0KIAkJCQl1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Ci0JCQlpOTE1LT5wZXJmLm9h LnNwZWNpZmljX2N0eF9pZCAmPQotCQkJCWk5MTUtPnBlcmYub2Euc3BlY2lmaWNfY3R4X2lkX21h c2s7CisJCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAmPQorCQkJCXN0cmVhbS0+c3BlY2lmaWNf Y3R4X2lkX21hc2s7CiAJCX0KIAkJYnJlYWs7CiAKIAljYXNlIDExOiB7Ci0JCWk5MTUtPnBlcmYu b2Euc3BlY2lmaWNfY3R4X2lkX21hc2sgPQotCQkJKCgxVSA8PCBHRU4xMV9TV19DVFhfSURfV0lE VEgpIC0gMSkgPDwgKEdFTjExX1NXX0NUWF9JRF9TSElGVCAtIDMyKSB8Ci0JCQkoKDFVIDw8IEdF TjExX0VOR0lORV9JTlNUQU5DRV9XSURUSCkgLSAxKSA8PCAoR0VOMTFfRU5HSU5FX0lOU1RBTkNF X1NISUZUIC0gMzIpIHwKLQkJCSgoMSA8PCBHRU4xMV9FTkdJTkVfQ0xBU1NfV0lEVEgpIC0gMSkg PDwgKEdFTjExX0VOR0lORV9DTEFTU19TSElGVCAtIDMyKTsKLQkJaTkxNS0+cGVyZi5vYS5zcGVj aWZpY19jdHhfaWQgPSB1cHBlcl8zMl9iaXRzKGNlLT5scmNfZGVzYyk7Ci0JCWk5MTUtPnBlcmYu b2Euc3BlY2lmaWNfY3R4X2lkICY9Ci0JCQlpOTE1LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9t YXNrOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZF9tYXNrID0KKwkJCSgoMVUgPDwgR0VOMTFf U1dfQ1RYX0lEX1dJRFRIKSAtIDEpCisJCQkJPDwgKEdFTjExX1NXX0NUWF9JRF9TSElGVCAtIDMy KSB8CisJCQkoKDFVIDw8IEdFTjExX0VOR0lORV9JTlNUQU5DRV9XSURUSCkgLSAxKQorCQkJCTw8 IChHRU4xMV9FTkdJTkVfSU5TVEFOQ0VfU0hJRlQgLSAzMikgfAorCQkJKCgxIDw8IEdFTjExX0VO R0lORV9DTEFTU19XSURUSCkgLSAxKQorCQkJCTw8IChHRU4xMV9FTkdJTkVfQ0xBU1NfU0hJRlQg LSAzMik7CisJCXN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkID0gdXBwZXJfMzJfYml0cyhjZS0+bHJj X2Rlc2MpOworCQlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCAmPQorCQkJc3RyZWFtLT5zcGVjaWZp Y19jdHhfaWRfbWFzazsKIAkJYnJlYWs7CiAJfQogCkBAIC0xMzEzLDggKzEzMTgsOCBAQCBzdGF0 aWMgaW50IG9hX2dldF9yZW5kZXJfY3R4X2lkKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJl YW0pCiAJfQogCiAJRFJNX0RFQlVHX0RSSVZFUigiZmlsdGVyaW5nIG9uIGN0eF9pZD0weCV4IGN0 eF9pZF9tYXNrPTB4JXhcbiIsCi0JCQkgaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWQsCi0J CQkgaTkxNS0+cGVyZi5vYS5zcGVjaWZpY19jdHhfaWRfbWFzayk7CisJCQkgc3RyZWFtLT5zcGVj aWZpY19jdHhfaWQsCisJCQkgc3RyZWFtLT5zcGVjaWZpY19jdHhfaWRfbWFzayk7CiAKIAlyZXR1 cm4gMDsKIH0KQEAgLTEzMzEsMTAgKzEzMzYsMTAgQEAgc3RhdGljIHZvaWQgb2FfcHV0X3JlbmRl cl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9j b250ZXh0ICpjZTsKIAotCWRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZCA9IElOVkFM SURfQ1RYX0lEOwotCWRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmljX2N0eF9pZF9tYXNrID0gMDsK KwlzdHJlYW0tPnNwZWNpZmljX2N0eF9pZCA9IElOVkFMSURfQ1RYX0lEOworCXN0cmVhbS0+c3Bl Y2lmaWNfY3R4X2lkX21hc2sgPSAwOwogCi0JY2UgPSBmZXRjaF9hbmRfemVybygmZGV2X3ByaXYt PnBlcmYub2EucGlubmVkX2N0eCk7CisJY2UgPSBmZXRjaF9hbmRfemVybygmc3RyZWFtLT5waW5u ZWRfY3R4KTsKIAlpZiAoY2UpIHsKIAkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3Rf bXV0ZXgpOwogCQlpbnRlbF9jb250ZXh0X3VucGluKGNlKTsKQEAgLTEzNDMsMzQgKzEzNDgsMzQg QEAgc3RhdGljIHZvaWQgb2FfcHV0X3JlbmRlcl9jdHhfaWQoc3RydWN0IGk5MTVfcGVyZl9zdHJl YW0gKnN0cmVhbSkKIH0KIAogc3RhdGljIHZvaWQKLWZyZWVfb2FfYnVmZmVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KQorZnJlZV9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9zdHJl YW0gKnN0cmVhbSkKIHsKLQltdXRleF9sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAKLQlpOTE1 X3ZtYV91bnBpbl9hbmRfcmVsZWFzZSgmaTkxNS0+cGVyZi5vYS5vYV9idWZmZXIudm1hLAorCW11 dGV4X2xvY2soJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWk5MTVfdm1hX3VucGluX2FuZF9y ZWxlYXNlKCZzdHJlYW0tPm9hX2J1ZmZlci52bWEsCiAJCQkJICAgSTkxNV9WTUFfUkVMRUFTRV9N QVApOwotCiAJbXV0ZXhfdW5sb2NrKCZpOTE1LT5kcm0uc3RydWN0X211dGV4KTsKIAotCWk5MTUt PnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyID0gTlVMTDsKKwlzdHJlYW0tPm9hX2J1ZmZlci52YWRk ciA9IE5VTEw7CiB9CiAKIHN0YXRpYyB2b2lkIGk5MTVfb2Ffc3RyZWFtX2Rlc3Ryb3koc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCi0JQlVHX09OKHN0cmVhbSAhPSBkZXZfcHJp di0+cGVyZi5vYS5leGNsdXNpdmVfc3RyZWFtKTsKKwlCVUdfT04oc3RyZWFtICE9IGRldl9wcml2 LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0pOwogCiAJLyoKIAkgKiBVbnNldCBleGNsdXNpdmVfc3Ry ZWFtIGZpcnN0LCBpdCB3aWxsIGJlIGNoZWNrZWQgd2hpbGUgZGlzYWJsaW5nCiAJICogdGhlIG1l dHJpYyBzZXQgb24gZ2VuOCsuCiAJICovCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1 Y3RfbXV0ZXgpOwotCWRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOwot CWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNhYmxlX21ldHJpY19zZXQoZGV2X3ByaXYpOworCWRl dl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOworCWRldl9wcml2LT5wZXJmLm9w cy5kaXNhYmxlX21ldHJpY19zZXQoc3RyZWFtKTsKIAltdXRleF91bmxvY2soJmRldl9wcml2LT5k cm0uc3RydWN0X211dGV4KTsKIAotCWZyZWVfb2FfYnVmZmVyKGRldl9wcml2KTsKKwlmcmVlX29h X2J1ZmZlcihzdHJlYW0pOwogCiAJaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9wdXQoJmRldl9wcml2 LT51bmNvcmUsIEZPUkNFV0FLRV9BTEwpOwogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2 LCBzdHJlYW0tPndha2VyZWYpOwpAQCAtMTM4MCw0MSArMTM4NSw0MiBAQCBzdGF0aWMgdm9pZCBp OTE1X29hX3N0cmVhbV9kZXN0cm95KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAK IAlwdXRfb2FfY29uZmlnKGRldl9wcml2LCBzdHJlYW0tPm9hX2NvbmZpZyk7CiAKLQlpZiAoZGV2 X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCkgeworCWlmIChkZXZfcHJp di0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMubWlzc2VkKSB7CiAJCURSTV9OT1RFKCIlZCBzcHVy aW91cyBPQSByZXBvcnQgbm90aWNlcyBzdXBwcmVzc2VkIGR1ZSB0byByYXRlbGltaXRpbmdcbiIs Ci0JCQkgZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCk7CisJCQkg ZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLm1pc3NlZCk7CiAJfQogfQogCi1zdGF0 aWMgdm9pZCBnZW43X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKK3N0YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVyZl9z dHJlYW0gKnN0cmVhbSkKIHsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQoZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0 dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdzOwog Ci0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9j aywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9j aywgZmxhZ3MpOwogCiAJLyogUHJlLURldkJEVzogT0FCVUZGRVIgbXVzdCBiZSBzZXQgd2l0aCBj b3VudGVycyBvZmYsCiAJICogYmVmb3JlIE9BU1RBVFVTMSwgYnV0IGFmdGVyIE9BU1RBVFVTMgog CSAqLwogCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzIsCiAJCSAgIGd0dF9vZmZzZXQgfCBHRU43 X09BU1RBVFVTMl9NRU1fU0VMRUNUX0dHVFQpOyAvKiBoZWFkICovCi0JZGV2X3ByaXYtPnBlcmYu b2Eub2FfYnVmZmVyLmhlYWQgPSBndHRfb2Zmc2V0OworCXN0cmVhbS0+b2FfYnVmZmVyLmhlYWQg PSBndHRfb2Zmc2V0OwogCiAJSTkxNV9XUklURShHRU43X09BQlVGRkVSLCBndHRfb2Zmc2V0KTsK IAogCUk5MTVfV1JJVEUoR0VON19PQVNUQVRVUzEsIGd0dF9vZmZzZXQgfCBPQUJVRkZFUl9TSVpF XzE2TSk7IC8qIHRhaWwgKi8KIAogCS8qIE1hcmsgdGhhdCB3ZSBuZWVkIHVwZGF0ZWQgdGFpbCBw b2ludGVycyB0byByZWFkIGZyb20uLi4gKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu dGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKLQlkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIudGFpbHNbMV0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsKKwlzdHJlYW0tPm9h X2J1ZmZlci50YWlsc1swXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOworCXN0cmVhbS0+b2Ff YnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7CiAKLQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2ssIGZsYWdz KTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJfbG9jaywg ZmxhZ3MpOwogCiAJLyogT24gSGFzd2VsbCB3ZSBoYXZlIHRvIHRyYWNrIHdoaWNoIE9BU1RBVFVT MSBmbGFncyB3ZSd2ZQogCSAqIGFscmVhZHkgc2VlbiBzaW5jZSB0aGV5IGNhbid0IGJlIGNsZWFy ZWQgd2hpbGUgcGVyaW9kaWMKIAkgKiBzYW1wbGluZyBpcyBlbmFibGVkLgogCSAqLwotCWRldl9w cml2LT5wZXJmLm9hLmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgPSAwOworCWRldl9wcml2LT5wZXJm LmdlbjdfbGF0Y2hlZF9vYXN0YXR1czEgPSAwOwogCiAJLyogTkI6IGFsdGhvdWdoIHRoZSBPQSBi dWZmZXIgd2lsbCBpbml0aWFsbHkgYmUgYWxsb2NhdGVkCiAJICogemVyb2VkIHZpYSBzaG1mcyAo YW5kIHNvIHRoaXMgbWVtc2V0IGlzIHJlZHVuZGFudCB3aGVuCkBAIC0xNDI3LDI0ICsxNDMzLDI1 IEBAIHN0YXRpYyB2b2lkIGdlbjdfaW5pdF9vYV9idWZmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCSAqIHRoZSBhc3N1bXB0aW9uIHRoYXQgbmV3IHJlcG9ydHMgYXJlIGJl aW5nIHdyaXR0ZW4gdG8gemVyb2VkCiAJICogbWVtb3J5Li4uCiAJICovCi0JbWVtc2V0KGRldl9w cml2LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOworCW1lbXNl dChzdHJlYW0tPm9hX2J1ZmZlci52YWRkciwgMCwgT0FfQlVGRkVSX1NJWkUpOwogCiAJLyogTWF5 YmUgbWFrZSAtPnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUK IAkgKiBjb25jdXJyZW50IHN0cmVhbXMgaW4gdGhlIGZ1dHVyZS4KIAkgKi8KLQlkZXZfcHJpdi0+ cGVyZi5vYS5wb2xsaW4gPSBmYWxzZTsKKwlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwogfQogCi1z dGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjhfaW5pdF9vYV9idWZmZXIoc3RydWN0IGk5MTVfcGVy Zl9zdHJlYW0gKnN0cmVhbSkKIHsKLQl1MzIgZ3R0X29mZnNldCA9IGk5MTVfZ2d0dF9vZmZzZXQo ZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZtYSk7CisJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKKwl1MzIgZ3R0X29mZnNldCA9IGk5MTVf Z2d0dF9vZmZzZXQoc3RyZWFtLT5vYV9idWZmZXIudm1hKTsKIAl1bnNpZ25lZCBsb25nIGZsYWdz OwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJf bG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCZzdHJlYW0tPm9hX2J1ZmZlci5wdHJf bG9jaywgZmxhZ3MpOwogCiAJSTkxNV9XUklURShHRU44X09BU1RBVFVTLCAwKTsKIAlJOTE1X1dS SVRFKEdFTjhfT0FIRUFEUFRSLCBndHRfb2Zmc2V0KTsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9i dWZmZXIuaGVhZCA9IGd0dF9vZmZzZXQ7CisJc3RyZWFtLT5vYV9idWZmZXIuaGVhZCA9IGd0dF9v ZmZzZXQ7CiAKIAlJOTE1X1dSSVRFKEdFTjhfT0FCVUZGRVJfVURXLCAwKTsKIApAQCAtMTQ2MSwx NyArMTQ2OCwxNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRFKEdFTjhfT0FUQUlMUFRSLCBndHRf b2Zmc2V0ICYgR0VOOF9PQVRBSUxQVFJfTUFTSyk7CiAKIAkvKiBNYXJrIHRoYXQgd2UgbmVlZCB1 cGRhdGVkIHRhaWwgcG9pbnRlcnMgdG8gcmVhZCBmcm9tLi4uICovCi0JZGV2X3ByaXYtPnBlcmYu b2Eub2FfYnVmZmVyLnRhaWxzWzBdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7Ci0JZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLnRhaWxzWzFdLm9mZnNldCA9IElOVkFMSURfVEFJTF9QVFI7 CisJc3RyZWFtLT5vYV9idWZmZXIudGFpbHNbMF0ub2Zmc2V0ID0gSU5WQUxJRF9UQUlMX1BUUjsK KwlzdHJlYW0tPm9hX2J1ZmZlci50YWlsc1sxXS5vZmZzZXQgPSBJTlZBTElEX1RBSUxfUFRSOwog CiAJLyoKIAkgKiBSZXNldCBzdGF0ZSB1c2VkIHRvIHJlY29nbmlzZSBjb250ZXh0IHN3aXRjaGVz LCBhZmZlY3Rpbmcgd2hpY2gKIAkgKiByZXBvcnRzIHdlIHdpbGwgZm9yd2FyZCB0byB1c2Vyc3Bh Y2Ugd2hpbGUgZmlsdGVyaW5nIGZvciBhIHNpbmdsZQogCSAqIGNvbnRleHQuCiAJICovCi0JZGV2 X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmxhc3RfY3R4X2lkID0gSU5WQUxJRF9DVFhfSUQ7CisJ c3RyZWFtLT5vYV9idWZmZXIubGFzdF9jdHhfaWQgPSBJTlZBTElEX0NUWF9JRDsKIAotCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5wdHJfbG9jaywg ZmxhZ3MpOworCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9s b2NrLCBmbGFncyk7CiAKIAkvKgogCSAqIE5COiBhbHRob3VnaCB0aGUgT0EgYnVmZmVyIHdpbGwg aW5pdGlhbGx5IGJlIGFsbG9jYXRlZApAQCAtMTQ4NSwyMiArMTQ5MiwyMyBAQCBzdGF0aWMgdm9p ZCBnZW44X2luaXRfb2FfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAkgKiB0aGUgYXNzdW1wdGlvbiB0aGF0IG5ldyByZXBvcnRzIGFyZSBiZWluZyB3cml0dGVuIHRv IHplcm9lZAogCSAqIG1lbW9yeS4uLgogCSAqLwotCW1lbXNldChkZXZfcHJpdi0+cGVyZi5vYS5v YV9idWZmZXIudmFkZHIsIDAsIE9BX0JVRkZFUl9TSVpFKTsKKwltZW1zZXQoc3RyZWFtLT5vYV9i dWZmZXIudmFkZHIsIDAsIE9BX0JVRkZFUl9TSVpFKTsKIAogCS8qCiAJICogTWF5YmUgbWFrZSAt PnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUKIAkgKiBjb25j dXJyZW50IHN0cmVhbXMgaW4gdGhlIGZ1dHVyZS4KIAkgKi8KLQlkZXZfcHJpdi0+cGVyZi5vYS5w b2xsaW4gPSBmYWxzZTsKKwlzdHJlYW0tPnBvbGxpbiA9IGZhbHNlOwogfQogCi1zdGF0aWMgaW50 IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0 aWMgaW50IGFsbG9jX29hX2J1ZmZlcihzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQog ewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpibzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0tPmRldl9wcml2OwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1h OwogCWludCByZXQ7CiAKLQlpZiAoV0FSTl9PTihkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIu dm1hKSkKKwlpZiAoV0FSTl9PTihzdHJlYW0tPm9hX2J1ZmZlci52bWEpKQogCQlyZXR1cm4gLUVO T0RFVjsKIAogCXJldCA9IGk5MTVfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZkZXZfcHJpdi0+ ZHJtKTsKQEAgLTE1MjUsMTggKzE1MzMsMTggQEAgc3RhdGljIGludCBhbGxvY19vYV9idWZmZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlyZXQgPSBQVFJfRVJSKHZtYSk7 CiAJCWdvdG8gZXJyX3VucmVmOwogCX0KLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1h ID0gdm1hOworCXN0cmVhbS0+b2FfYnVmZmVyLnZtYSA9IHZtYTsKIAotCWRldl9wcml2LT5wZXJm Lm9hLm9hX2J1ZmZlci52YWRkciA9CisJc3RyZWFtLT5vYV9idWZmZXIudmFkZHIgPQogCQlpOTE1 X2dlbV9vYmplY3RfcGluX21hcChibywgSTkxNV9NQVBfV0IpOwotCWlmIChJU19FUlIoZGV2X3By aXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyKSkgewotCQlyZXQgPSBQVFJfRVJSKGRldl9wcml2 LT5wZXJmLm9hLm9hX2J1ZmZlci52YWRkcik7CisJaWYgKElTX0VSUihzdHJlYW0tPm9hX2J1ZmZl ci52YWRkcikpIHsKKwkJcmV0ID0gUFRSX0VSUihzdHJlYW0tPm9hX2J1ZmZlci52YWRkcik7CiAJ CWdvdG8gZXJyX3VucGluOwogCX0KIAogCURSTV9ERUJVR19EUklWRVIoIk9BIEJ1ZmZlciBpbml0 aWFsaXplZCwgZ3R0IG9mZnNldCA9IDB4JXgsIHZhZGRyID0gJXBcbiIsCi0JCQkgaTkxNV9nZ3R0 X29mZnNldChkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hKSwKLQkJCSBkZXZfcHJpdi0+ cGVyZi5vYS5vYV9idWZmZXIudmFkZHIpOworCQkJIGk5MTVfZ2d0dF9vZmZzZXQoc3RyZWFtLT5v YV9idWZmZXIudm1hKSwKKwkJCSBzdHJlYW0tPm9hX2J1ZmZlci52YWRkcik7CiAKIAlnb3RvIHVu bG9jazsKIApAQCAtMTU0Niw4ICsxNTU0LDggQEAgc3RhdGljIGludCBhbGxvY19vYV9idWZmZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogZXJyX3VucmVmOgogCWk5MTVfZ2Vt X29iamVjdF9wdXQoYm8pOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLnZhZGRyID0g TlVMTDsKLQlkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIudm1hID0gTlVMTDsKKwlzdHJlYW0t Pm9hX2J1ZmZlci52YWRkciA9IE5VTEw7CisJc3RyZWFtLT5vYV9idWZmZXIudm1hID0gTlVMTDsK IAogdW5sb2NrOgogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwpA QCAtMTYxNyw4ICsxNjI1LDEwIEBAIHN0YXRpYyBpbnQgaHN3X2VuYWJsZV9tZXRyaWNfc2V0KHN0 cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2 b2lkIGhzd19kaXNhYmxlX21ldHJpY19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQorc3RhdGljIHZvaWQgaHN3X2Rpc2FibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJm X3N0cmVhbSAqc3RyZWFtKQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHN0cmVhbS0+ZGV2X3ByaXY7CisKIAlJOTE1X1dSSVRFKEdFTjZfVUNHQ1RMMSwgKEk5MTVfUkVB RChHRU42X1VDR0NUTDEpICYKIAkJCQkgIH5HRU42X0NTVU5JVF9DTE9DS19HQVRFX0RJU0FCTEUp KTsKIAlJOTE1X1dSSVRFKEdFTjdfTUlTQ0NQQ1RMLCAoSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RM KSB8CkBAIC0xNjM2LDEzICsxNjQ2LDE0IEBAIHN0YXRpYyB2b2lkIGhzd19kaXNhYmxlX21ldHJp Y19zZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogICogaW4gdGhlIGNhc2Ug dGhhdCB0aGUgT0EgdW5pdCBoYXMgYmVlbiBkaXNhYmxlZC4KICAqLwogc3RhdGljIHZvaWQKLWdl bjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCitn ZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0 cmVhbSwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAJCQkgICAgICAgdTMy ICpyZWdfc3RhdGUsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGk5MTVfb2FfY29uZmlnICpvYV9j b25maWcpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSBjZS0+Z2VtX2NvbnRl eHQtPmk5MTU7Ci0JdTMyIGN0eF9vYWN0eGN0cmwgPSBpOTE1LT5wZXJmLm9hLmN0eF9vYWN0eGN0 cmxfb2Zmc2V0OwotCXUzMiBjdHhfZmxleGV1MCA9IGk5MTUtPnBlcmYub2EuY3R4X2ZsZXhldTBf b2Zmc2V0OworCXUzMiBjdHhfb2FjdHhjdHJsID0gaTkxNS0+cGVyZi5jdHhfb2FjdHhjdHJsX29m ZnNldDsKKwl1MzIgY3R4X2ZsZXhldTAgPSBpOTE1LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldDsK IAkvKiBUaGUgTU1JTyBvZmZzZXRzIGZvciBGbGV4IEVVIHJlZ2lzdGVycyBhcmVuJ3QgY29udGln dW91cyAqLwogCWk5MTVfcmVnX3QgZmxleF9yZWdzW10gPSB7CiAJCUVVX1BFUkZfQ05UTDAsCkBA IC0xNjU2LDggKzE2NjcsOCBAQCBnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoc3RydWN0 IGludGVsX2NvbnRleHQgKmNlLAogCWludCBpOwogCiAJQ1RYX1JFRyhyZWdfc3RhdGUsIGN0eF9v YWN0eGN0cmwsIEdFTjhfT0FDVFhDT05UUk9MLAotCQkoaTkxNS0+cGVyZi5vYS5wZXJpb2RfZXhw b25lbnQgPDwgR0VOOF9PQV9USU1FUl9QRVJJT0RfU0hJRlQpIHwKLQkJKGk5MTUtPnBlcmYub2Eu cGVyaW9kaWMgPyBHRU44X09BX1RJTUVSX0VOQUJMRSA6IDApIHwKKwkJKHN0cmVhbS0+cGVyaW9k X2V4cG9uZW50IDw8IEdFTjhfT0FfVElNRVJfUEVSSU9EX1NISUZUKSB8CisJCShzdHJlYW0tPnBl cmlvZGljID8gR0VOOF9PQV9USU1FUl9FTkFCTEUgOiAwKSB8CiAJCUdFTjhfT0FfQ09VTlRFUl9S RVNVTUUpOwogCiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmxleF9yZWdzKTsgaSsrKSB7 CkBAIC0xNjczLDEwICsxNjg0LDEyIEBAIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY2UsCiAKIAkJaWYgKG9hX2NvbmZpZykgewogCQkJdTMyIGo7 CisJCQlzdHJ1Y3QgaTkxNV9vYV9yZWcgcmVnOwogCiAJCQlmb3IgKGogPSAwOyBqIDwgb2FfY29u ZmlnLT5mbGV4X3JlZ3NfbGVuOyBqKyspIHsKLQkJCQlpZiAoaTkxNV9tbWlvX3JlZ19vZmZzZXQo b2FfY29uZmlnLT5mbGV4X3JlZ3Nbal0uYWRkcikgPT0gbW1pbykgewotCQkJCQl2YWx1ZSA9IG9h X2NvbmZpZy0+ZmxleF9yZWdzW2pdLnZhbHVlOworCQkJCXJlZyA9IG9hX2NvbmZpZy0+ZmxleF9y ZWdzW2pdOworCQkJCWlmIChpOTE1X21taW9fcmVnX29mZnNldChyZWcuYWRkcikgPT0gbW1pbykg eworCQkJCQl2YWx1ZSA9IHJlZy52YWx1ZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQogCQkJfQpAQCAt MTcxNCw5ICsxNzI3LDEwIEBAIGdlbjhfdXBkYXRlX3JlZ19zdGF0ZV91bmxvY2tlZChzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqY2UsCiAgKgogICogTm90ZTogaXQncyBvbmx5IHRoZSBSQ1MvUmVuZGVy IGNvbnRleHQgdGhhdCBoYXMgYW55IE9BIHN0YXRlLgogICovCi1zdGF0aWMgaW50IGdlbjhfY29u ZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCitz dGF0aWMgaW50IGdlbjhfY29uZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtLAogCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTkxNV9vYV9jb25maWcgKm9h X2NvbmZpZykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdHJlYW0t PmRldl9wcml2OwogCXVuc2lnbmVkIGludCBtYXBfdHlwZSA9IGk5MTVfY29oZXJlbnRfbWFwX3R5 cGUoZGV2X3ByaXYpOwogCXN0cnVjdCBpOTE1X2dlbV9jb250ZXh0ICpjdHg7CiAJc3RydWN0IGk5 MTVfcmVxdWVzdCAqcnE7CkBAIC0xNzcwLDcgKzE3ODQsNyBAQCBzdGF0aWMgaW50IGdlbjhfY29u ZmlndXJlX2FsbF9jb250ZXh0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CQljZS0+c3RhdGUtPm9iai0+bW0uZGlydHkgPSB0cnVlOwogCQkJcmVncyArPSBMUkNfU1RBVEVf UE4gKiBQQUdFX1NJWkUgLyBzaXplb2YoKnJlZ3MpOwogCi0JCQlnZW44X3VwZGF0ZV9yZWdfc3Rh dGVfdW5sb2NrZWQoY2UsIHJlZ3MsIG9hX2NvbmZpZyk7CisJCQlnZW44X3VwZGF0ZV9yZWdfc3Rh dGVfdW5sb2NrZWQoc3RyZWFtLCBjZSwgcmVncywgb2FfY29uZmlnKTsKIAogCQkJaTkxNV9nZW1f b2JqZWN0X3VucGluX21hcChjZS0+c3RhdGUtPm9iaik7CiAJCX0KQEAgLTE4MjEsOCArMTgzNSw5 IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbmFibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0 cmVhbSAqc3RyZWFtKQogCSAqLwogCWlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDksIDExKSkg ewogCQlJOTE1X1dSSVRFKEdFTjhfT0FfREVCVUcsCi0JCQkgICBfTUFTS0VEX0JJVF9FTkFCTEUo R0VOOV9PQV9ERUJVR19ESVNBQkxFX0NMS19SQVRJT19SRVBPUlRTIHwKLQkJCQkJICAgICAgR0VO OV9PQV9ERUJVR19JTkNMVURFX0NMS19SQVRJTykpOworCQkJICAgX01BU0tFRF9CSVRfRU5BQkxF KAorCQkJCSAgIEdFTjlfT0FfREVCVUdfRElTQUJMRV9DTEtfUkFUSU9fUkVQT1JUUyB8CisJCQkJ ICAgR0VOOV9PQV9ERUJVR19JTkNMVURFX0NMS19SQVRJTykpOwogCX0KIAogCS8qCkBAIC0xODMw LDcgKzE4NDUsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX21ldHJpY19zZXQoc3RydWN0IGk5 MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKiB0byBtYWtlIHN1cmUgYWxsIHNsaWNlcy9zdWJz bGljZXMgYXJlIE9OIGJlZm9yZSB3cml0aW5nIHRvIE5PQQogCSAqIHJlZ2lzdGVycy4KIAkgKi8K LQlyZXQgPSBnZW44X2NvbmZpZ3VyZV9hbGxfY29udGV4dHMoZGV2X3ByaXYsIG9hX2NvbmZpZyk7 CisJcmV0ID0gZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKHN0cmVhbSwgb2FfY29uZmlnKTsK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0xODQyLDE5ICsxODU3LDIzIEBAIHN0YXRp YyBpbnQgZ2VuOF9lbmFibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3Ry ZWFtKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfbWV0cmljX3Nl dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCitzdGF0aWMgdm9pZCBnZW44X2Rp c2FibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogeworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CisKIAkv KiBSZXNldCBhbGwgY29udGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmlndXJhdGlvbnMuICov Ci0JZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKGRldl9wcml2LCBOVUxMKTsKKwlnZW44X2Nv bmZpZ3VyZV9hbGxfY29udGV4dHMoc3RyZWFtLCBOVUxMKTsKIAogCUk5MTVfV1JJVEUoR0RUX0NI SUNLRU5fQklUUywgKEk5MTVfUkVBRChHRFRfQ0hJQ0tFTl9CSVRTKSAmCiAJCQkJICAgICAgfkdU X05PQV9FTkFCTEUpKTsKIH0KIAotc3RhdGljIHZvaWQgZ2VuMTBfZGlzYWJsZV9tZXRyaWNfc2V0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3N0YXRpYyB2b2lkIGdlbjEwX2Rp c2FibGVfbWV0cmljX3NldChzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogeworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CisKIAkv KiBSZXNldCBhbGwgY29udGV4dHMnIHNsaWNlcy9zdWJzbGljZXMgY29uZmlndXJhdGlvbnMuICov Ci0JZ2VuOF9jb25maWd1cmVfYWxsX2NvbnRleHRzKGRldl9wcml2LCBOVUxMKTsKKwlnZW44X2Nv bmZpZ3VyZV9hbGxfY29udGV4dHMoc3RyZWFtLCBOVUxMKTsKIAogCS8qIE1ha2Ugc3VyZSB3ZSBk aXNhYmxlIG5vYSB0byBzYXZlIHBvd2VyLiAqLwogCUk5MTVfV1JJVEUoUlBNX0NPTkZJRzEsCkBA IC0xODY1LDEwICsxODg0LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjdfb2FfZW5hYmxlKHN0cnVjdCBp OTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAlzdHJ1Y3QgaTkxNV9nZW1fY29udGV4dCAqY3R4 ID0gc3RyZWFtLT5jdHg7Ci0JdTMyIGN0eF9pZCA9IGRldl9wcml2LT5wZXJmLm9hLnNwZWNpZmlj X2N0eF9pZDsKLQlib29sIHBlcmlvZGljID0gZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWM7Ci0J dTMyIHBlcmlvZF9leHBvbmVudCA9IGRldl9wcml2LT5wZXJmLm9hLnBlcmlvZF9leHBvbmVudDsK LQl1MzIgcmVwb3J0X2Zvcm1hdCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXQ7 CisJdTMyIGN0eF9pZCA9IHN0cmVhbS0+c3BlY2lmaWNfY3R4X2lkOworCWJvb2wgcGVyaW9kaWMg PSBzdHJlYW0tPnBlcmlvZGljOworCXUzMiBwZXJpb2RfZXhwb25lbnQgPSBzdHJlYW0tPnBlcmlv ZF9leHBvbmVudDsKKwl1MzIgcmVwb3J0X2Zvcm1hdCA9IHN0cmVhbS0+b2FfYnVmZmVyLmZvcm1h dDsKIAogCS8qCiAJICogUmVzZXQgYnVmIHBvaW50ZXJzIHNvIHdlIGRvbid0IGZvcndhcmQgcmVw b3J0cyBmcm9tIGJlZm9yZSBub3cuCkBAIC0xODc5LDcgKzE4OTgsNyBAQCBzdGF0aWMgdm9pZCBn ZW43X29hX2VuYWJsZShzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogCSAqIG9uIHRo ZSBhc3N1bXB0aW9uIHRoYXQgY2VydGFpbiBmaWVsZHMgYXJlIHdyaXR0ZW4gdG8gemVyb2VkCiAJ ICogbWVtb3J5IHdoaWNoIHRoaXMgaGVscHMgbWFpbnRhaW5zLgogCSAqLwotCWdlbjdfaW5pdF9v YV9idWZmZXIoZGV2X3ByaXYpOworCWdlbjdfaW5pdF9vYV9idWZmZXIoc3RyZWFtKTsKIAogCUk5 MTVfV1JJVEUoR0VON19PQUNPTlRST0wsCiAJCSAgIChjdHhfaWQgJiBHRU43X09BQ09OVFJPTF9D VFhfTUFTSykgfApAQCAtMTg5NCw3ICsxOTEzLDcgQEAgc3RhdGljIHZvaWQgZ2VuN19vYV9lbmFi bGUoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSkKIHN0YXRpYyB2b2lkIGdlbjhfb2Ff ZW5hYmxlKHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gc3RyZWFtLT5kZXZfcHJpdjsKLQl1MzIgcmVwb3J0X2Zv cm1hdCA9IGRldl9wcml2LT5wZXJmLm9hLm9hX2J1ZmZlci5mb3JtYXQ7CisJdTMyIHJlcG9ydF9m b3JtYXQgPSBzdHJlYW0tPm9hX2J1ZmZlci5mb3JtYXQ7CiAKIAkvKgogCSAqIFJlc2V0IGJ1ZiBw b2ludGVycyBzbyB3ZSBkb24ndCBmb3J3YXJkIHJlcG9ydHMgZnJvbSBiZWZvcmUgbm93LgpAQCAt MTkwNSw3ICsxOTI0LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9vYV9lbmFibGUoc3RydWN0IGk5MTVf cGVyZl9zdHJlYW0gKnN0cmVhbSkKIAkgKiBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IGNlcnRhaW4g ZmllbGRzIGFyZSB3cml0dGVuIHRvIHplcm9lZAogCSAqIG1lbW9yeSB3aGljaCB0aGlzIGhlbHBz IG1haW50YWlucy4KIAkgKi8KLQlnZW44X2luaXRfb2FfYnVmZmVyKGRldl9wcml2KTsKKwlnZW44 X2luaXRfb2FfYnVmZmVyKHN0cmVhbSk7CiAKIAkvKgogCSAqIE5vdGU6IHdlIGRvbid0IHJlbHkg b24gdGhlIGhhcmR3YXJlIHRvIHBlcmZvcm0gc2luZ2xlIGNvbnRleHQKQEAgLTE5MzAsMTAgKzE5 NDksMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9zdHJlYW1fZW5hYmxlKHN0cnVjdCBpOTE1X3Bl cmZfc3RyZWFtICpzdHJlYW0pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gc3RyZWFtLT5kZXZfcHJpdjsKIAotCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9lbmFibGUo c3RyZWFtKTsKKwlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlKHN0cmVhbSk7CiAKLQlpZiAo ZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCi0JCWhydGltZXJfc3RhcnQoJmRldl9wcml2LT5w ZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIsCisJaWYgKHN0cmVhbS0+cGVyaW9kaWMpCisJCWhydGlt ZXJfc3RhcnQoJnN0cmVhbS0+cG9sbF9jaGVja190aW1lciwKIAkJCSAgICAgIG5zX3RvX2t0aW1l KFBPTExfUEVSSU9EKSwKIAkJCSAgICAgIEhSVElNRVJfTU9ERV9SRUxfUElOTkVEKTsKIH0KQEAg LTE5NzIsMTAgKzE5OTEsMTAgQEAgc3RhdGljIHZvaWQgaTkxNV9vYV9zdHJlYW1fZGlzYWJsZShz dHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbSAqc3RyZWFtKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHN0cmVhbS0+ZGV2X3ByaXY7CiAKLQlkZXZfcHJpdi0+cGVyZi5vYS5v cHMub2FfZGlzYWJsZShzdHJlYW0pOworCWRldl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxlKHN0 cmVhbSk7CiAKLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EucGVyaW9kaWMpCi0JCWhydGltZXJfY2Fu Y2VsKCZkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX2NoZWNrX3RpbWVyKTsKKwlpZiAoc3RyZWFtLT5w ZXJpb2RpYykKKwkJaHJ0aW1lcl9jYW5jZWwoJnN0cmVhbS0+cG9sbF9jaGVja190aW1lcik7CiB9 CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaTkxNV9wZXJmX3N0cmVhbV9vcHMgaTkxNV9vYV9zdHJl YW1fb3BzID0gewpAQCAtMjAyNyw3ICsyMDQ2LDcgQEAgc3RhdGljIGludCBpOTE1X29hX3N0cmVh bV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJCXJldHVybiAtRUlOVkFM OwogCX0KIAotCWlmICghZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0KSB7 CisJaWYgKCFkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQpIHsKIAkJRFJNX0RF QlVHKCJPQSB1bml0IG5vdCBzdXBwb3J0ZWRcbiIpOwogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CkBA IC0yMDM2LDcgKzIwNTUsNyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RydWN0 IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkgKiBjb3VudGVyIHJlcG9ydHMgYW5kIG1hcnNo YWwgdG8gdGhlIGFwcHJvcHJpYXRlIGNsaWVudAogCSAqIHdlIGN1cnJlbnRseSBvbmx5IGFsbG93 IGV4Y2x1c2l2ZSBhY2Nlc3MKIAkgKi8KLQlpZiAoZGV2X3ByaXYtPnBlcmYub2EuZXhjbHVzaXZl X3N0cmVhbSkgeworCWlmIChkZXZfcHJpdi0+cGVyZi5leGNsdXNpdmVfc3RyZWFtKSB7CiAJCURS TV9ERUJVRygiT0EgdW5pdCBhbHJlYWR5IGluIHVzZVxuIik7CiAJCXJldHVybiAtRUJVU1k7CiAJ fQpAQCAtMjA0Niw0MyArMjA2NSwyMyBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQo c3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQog Ci0JLyogV2Ugc2V0IHVwIHNvbWUgcmF0ZWxpbWl0IHN0YXRlIHRvIHBvdGVudGlhbGx5IHRocm90 dGxlIGFueSBfTk9URVMKLQkgKiBhYm91dCBzcHVyaW91cywgaW52YWxpZCBPQSByZXBvcnRzIHdo aWNoIHdlIGRvbid0IGZvcndhcmQgdG8KLQkgKiB1c2Vyc3BhY2UuCi0JICoKLQkgKiBUaGUgaW5p dGlhbGl6YXRpb24gaXMgYXNzb2NpYXRlZCB3aXRoIG9wZW5pbmcgdGhlIHN0cmVhbSAobm90IGRy aXZlcgotCSAqIGluaXQpIGNvbnNpZGVyaW5nIHdlIHByaW50IGEgX05PVEUgYWJvdXQgYW55IHRo cm90dGxpbmcgd2hlbiBjbG9zaW5nCi0JICogdGhlIHN0cmVhbSBpbnN0ZWFkIG9mIHdhaXRpbmcg dW50aWwgZHJpdmVyIF9maW5pIHdoaWNoIG5vIG9uZSB3b3VsZAotCSAqIGV2ZXIgc2VlLgotCSAq Ci0JICogVXNpbmcgdGhlIHNhbWUgbGltaXRpbmcgZmFjdG9ycyBhcyBwcmludGtfcmF0ZWxpbWl0 KCkKLQkgKi8KLQlyYXRlbGltaXRfc3RhdGVfaW5pdCgmZGV2X3ByaXYtPnBlcmYub2Euc3B1cmlv dXNfcmVwb3J0X3JzLAotCQkJICAgICA1ICogSFosIDEwKTsKLQkvKiBTaW5jZSB3ZSB1c2UgYSBE Uk1fTk9URSBmb3Igc3B1cmlvdXMgcmVwb3J0cyBpdCB3b3VsZCBiZQotCSAqIGluY29uc2lzdGVu dCB0byBsZXQgX19yYXRlbGltaXQoKSBhdXRvbWF0aWNhbGx5IHByaW50IGEgd2FybmluZyBmb3IK LQkgKiB0aHJvdHRsaW5nLgotCSAqLwotCXJhdGVsaW1pdF9zZXRfZmxhZ3MoJmRldl9wcml2LT5w ZXJmLm9hLnNwdXJpb3VzX3JlcG9ydF9ycywKLQkJCSAgICBSQVRFTElNSVRfTVNHX09OX1JFTEVB U0UpOwotCiAJc3RyZWFtLT5zYW1wbGVfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZHJtX2k5MTVfcGVy Zl9yZWNvcmRfaGVhZGVyKTsKIAotCWZvcm1hdF9zaXplID0gZGV2X3ByaXYtPnBlcmYub2Eub2Ff Zm9ybWF0c1twcm9wcy0+b2FfZm9ybWF0XS5zaXplOworCWZvcm1hdF9zaXplID0gZGV2X3ByaXYt PnBlcmYub2FfZm9ybWF0c1twcm9wcy0+b2FfZm9ybWF0XS5zaXplOwogCiAJc3RyZWFtLT5zYW1w bGVfZmxhZ3MgfD0gU0FNUExFX09BX1JFUE9SVDsKIAlzdHJlYW0tPnNhbXBsZV9zaXplICs9IGZv cm1hdF9zaXplOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1hdF9zaXplID0g Zm9ybWF0X3NpemU7Ci0JaWYgKFdBUk5fT04oZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZv cm1hdF9zaXplID09IDApKQorCXN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdF9zaXplID0gZm9ybWF0 X3NpemU7CisJaWYgKFdBUk5fT04oc3RyZWFtLT5vYV9idWZmZXIuZm9ybWF0X3NpemUgPT0gMCkp CiAJCXJldHVybiAtRUlOVkFMOwogCi0JZGV2X3ByaXYtPnBlcmYub2Eub2FfYnVmZmVyLmZvcm1h dCA9Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9hX2Zvcm1hdHNbcHJvcHMtPm9hX2Zvcm1hdF0uZm9y bWF0OworCXN0cmVhbS0+b2FfYnVmZmVyLmZvcm1hdCA9CisJCWRldl9wcml2LT5wZXJmLm9hX2Zv cm1hdHNbcHJvcHMtPm9hX2Zvcm1hdF0uZm9ybWF0OwogCi0JZGV2X3ByaXYtPnBlcmYub2EucGVy aW9kaWMgPSBwcm9wcy0+b2FfcGVyaW9kaWM7Ci0JaWYgKGRldl9wcml2LT5wZXJmLm9hLnBlcmlv ZGljKQotCQlkZXZfcHJpdi0+cGVyZi5vYS5wZXJpb2RfZXhwb25lbnQgPSBwcm9wcy0+b2FfcGVy aW9kX2V4cG9uZW50OworCXN0cmVhbS0+cGVyaW9kaWMgPSBwcm9wcy0+b2FfcGVyaW9kaWM7CisJ aWYgKHN0cmVhbS0+cGVyaW9kaWMpCisJCXN0cmVhbS0+cGVyaW9kX2V4cG9uZW50ID0gcHJvcHMt Pm9hX3BlcmlvZF9leHBvbmVudDsKIAogCWlmIChzdHJlYW0tPmN0eCkgewogCQlyZXQgPSBvYV9n ZXRfcmVuZGVyX2N0eF9pZChzdHJlYW0pOwpAQCAtMjExMyw3ICsyMTEyLDcgQEAgc3RhdGljIGlu dCBpOTE1X29hX3N0cmVhbV9pbml0KHN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0sCiAJ c3RyZWFtLT53YWtlcmVmID0gaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCWludGVs X3VuY29yZV9mb3JjZXdha2VfZ2V0KCZkZXZfcHJpdi0+dW5jb3JlLCBGT1JDRVdBS0VfQUxMKTsK IAotCXJldCA9IGFsbG9jX29hX2J1ZmZlcihkZXZfcHJpdik7CisJcmV0ID0gYWxsb2Nfb2FfYnVm ZmVyKHN0cmVhbSk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJfb2FfYnVmX2FsbG9jOwogCkBAIC0y MTIyLDkgKzIxMjEsOSBAQCBzdGF0aWMgaW50IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RydWN0IGk5 MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAkJZ290byBlcnJfbG9jazsKIAogCXN0cmVhbS0+b3Bz ID0gJmk5MTVfb2Ffc3RyZWFtX29wczsKLQlkZXZfcHJpdi0+cGVyZi5vYS5leGNsdXNpdmVfc3Ry ZWFtID0gc3RyZWFtOworCWRldl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0gPSBzdHJlYW07 CiAKLQlyZXQgPSBkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZW5hYmxlX21ldHJpY19zZXQoc3RyZWFt KTsKKwlyZXQgPSBkZXZfcHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQoc3RyZWFtKTsK IAlpZiAocmV0KSB7CiAJCURSTV9ERUJVRygiVW5hYmxlIHRvIGVuYWJsZSBtZXRyaWMgc2V0XG4i KTsKIAkJZ290byBlcnJfZW5hYmxlOwpAQCAtMjEzMiwxNSArMjEzMSwyMSBAQCBzdGF0aWMgaW50 IGk5MTVfb2Ffc3RyZWFtX2luaXQoc3RydWN0IGk5MTVfcGVyZl9zdHJlYW0gKnN0cmVhbSwKIAog CW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCisJaHJ0aW1lcl9p bml0KCZzdHJlYW0tPnBvbGxfY2hlY2tfdGltZXIsCisJCSAgICAgQ0xPQ0tfTU9OT1RPTklDLCBI UlRJTUVSX01PREVfUkVMKTsKKwlzdHJlYW0tPnBvbGxfY2hlY2tfdGltZXIuZnVuY3Rpb24gPSBv YV9wb2xsX2NoZWNrX3RpbWVyX2NiOworCWluaXRfd2FpdHF1ZXVlX2hlYWQoJnN0cmVhbS0+cG9s bF93cSk7CisJc3Bpbl9sb2NrX2luaXQoJnN0cmVhbS0+b2FfYnVmZmVyLnB0cl9sb2NrKTsKKwog CXJldHVybiAwOwogCiBlcnJfZW5hYmxlOgotCWRldl9wcml2LT5wZXJmLm9hLmV4Y2x1c2l2ZV9z dHJlYW0gPSBOVUxMOwotCWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNhYmxlX21ldHJpY19zZXQo ZGV2X3ByaXYpOworCWRldl9wcml2LT5wZXJmLmV4Y2x1c2l2ZV9zdHJlYW0gPSBOVUxMOworCWRl dl9wcml2LT5wZXJmLm9wcy5kaXNhYmxlX21ldHJpY19zZXQoc3RyZWFtKTsKIAltdXRleF91bmxv Y2soJmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KTsKIAogZXJyX2xvY2s6Ci0JZnJlZV9vYV9i dWZmZXIoZGV2X3ByaXYpOworCWZyZWVfb2FfYnVmZmVyKHN0cmVhbSk7CiAKIGVycl9vYV9idWZf YWxsb2M6CiAJcHV0X29hX2NvbmZpZyhkZXZfcHJpdiwgc3RyZWFtLT5vYV9jb25maWcpOwpAQCAt MjE2NCw5ICsyMTY5LDEyIEBAIHZvaWQgaTkxNV9vYV9pbml0X3JlZ19zdGF0ZShzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJaWYgKGVuZ2luZS0+Y2xhc3MgIT0gUkVOREVSX0NMQVNT KQogCQlyZXR1cm47CiAKLQlzdHJlYW0gPSBlbmdpbmUtPmk5MTUtPnBlcmYub2EuZXhjbHVzaXZl X3N0cmVhbTsKKwlzdHJlYW0gPSBlbmdpbmUtPmk5MTUtPnBlcmYuZXhjbHVzaXZlX3N0cmVhbTsK IAlpZiAoc3RyZWFtKQotCQlnZW44X3VwZGF0ZV9yZWdfc3RhdGVfdW5sb2NrZWQoY2UsIHJlZ3Ms IHN0cmVhbS0+b2FfY29uZmlnKTsKKwkJZ2VuOF91cGRhdGVfcmVnX3N0YXRlX3VubG9ja2VkKHN0 cmVhbSwKKwkJCQkJICAgICAgIGNlLAorCQkJCQkgICAgICAgcmVncywKKwkJCQkJICAgICAgIHN0 cmVhbS0+b2FfY29uZmlnKTsKIH0KIAogLyoqCkBAIC0yMjgyLDcgKzIyOTAsNyBAQCBzdGF0aWMg c3NpemVfdCBpOTE1X3BlcmZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwKIAkJLyogTWF5YmUgbWFr ZSAtPnBvbGxpbiBwZXItc3RyZWFtIHN0YXRlIGlmIHdlIHN1cHBvcnQgbXVsdGlwbGUKIAkJICog Y29uY3VycmVudCBzdHJlYW1zIGluIHRoZSBmdXR1cmUuCiAJCSAqLwotCQlkZXZfcHJpdi0+cGVy Zi5vYS5wb2xsaW4gPSBmYWxzZTsKKwkJc3RyZWFtLT5wb2xsaW4gPSBmYWxzZTsKIAl9CiAKIAly ZXR1cm4gcmV0OwpAQCAtMjI5MCwxMyArMjI5OCwxMyBAQCBzdGF0aWMgc3NpemVfdCBpOTE1X3Bl cmZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwKIAogc3RhdGljIGVudW0gaHJ0aW1lcl9yZXN0YXJ0 IG9hX3BvbGxfY2hlY2tfdGltZXJfY2Ioc3RydWN0IGhydGltZXIgKmhydGltZXIpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJY29udGFpbmVyX29mKGhydGltZXIs IHR5cGVvZigqZGV2X3ByaXYpLAotCQkJICAgICBwZXJmLm9hLnBvbGxfY2hlY2tfdGltZXIpOwor CXN0cnVjdCBpOTE1X3BlcmZfc3RyZWFtICpzdHJlYW0gPSBjb250YWluZXJfb2YoaHJ0aW1lciwK KwkJCQkJCSAgICAgICB0eXBlb2YoKnN0cmVhbSksCisJCQkJCQkgICAgICAgcG9sbF9jaGVja190 aW1lcik7CiAKLQlpZiAob2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKGRldl9wcml2KSkgewotCQlk ZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4gPSB0cnVlOwotCQl3YWtlX3VwKCZkZXZfcHJpdi0+cGVy Zi5vYS5wb2xsX3dxKTsKKwlpZiAob2FfYnVmZmVyX2NoZWNrX3VubG9ja2VkKHN0cmVhbSkpIHsK KwkJc3RyZWFtLT5wb2xsaW4gPSB0cnVlOworCQl3YWtlX3VwKCZzdHJlYW0tPnBvbGxfd3EpOwog CX0KIAogCWhydGltZXJfZm9yd2FyZF9ub3coaHJ0aW1lciwgbnNfdG9fa3RpbWUoUE9MTF9QRVJJ T0QpKTsKQEAgLTIzMzUsNyArMjM0Myw3IEBAIHN0YXRpYyBfX3BvbGxfdCBpOTE1X3BlcmZfcG9s bF9sb2NrZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqIHRoZSBocnRp bWVyL29hX3BvbGxfY2hlY2tfdGltZXJfY2IgdG8gbm90aWZ5IHVzIHdoZW4gdGhlcmUgYXJlCiAJ ICogc2FtcGxlcyB0byByZWFkLgogCSAqLwotCWlmIChkZXZfcHJpdi0+cGVyZi5vYS5wb2xsaW4p CisJaWYgKHN0cmVhbS0+cG9sbGluKQogCQlldmVudHMgfD0gRVBPTExJTjsKIAogCXJldHVybiBl dmVudHM7CkBAIC0yNjY4LDggKzI2NzYsMTAgQEAgaTkxNV9wZXJmX29wZW5faW9jdGxfbG9ja2Vk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIHU2NCBvYV9leHBv bmVudF90b19ucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBleHBvbmVu dCkKIHsKKwlzdHJ1Y3QgaW50ZWxfcnVudGltZV9pbmZvICpyaSA9IFJVTlRJTUVfSU5GTyhkZXZf cHJpdik7CisKIAlyZXR1cm4gZGl2NjRfdTY0KDEwMDAwMDAwMDBVTEwgKiAoMlVMTCA8PCBleHBv bmVudCksCi0JCQkgMTAwMFVMTCAqIFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFt cF9mcmVxdWVuY3lfa2h6KTsKKwkJCSAxMDAwVUxMICogcmktPmNzX3RpbWVzdGFtcF9mcmVxdWVu Y3lfa2h6KTsKIH0KIAogLyoqCkBAIC0yNzUzLDcgKzI3NjMsNyBAQCBzdGF0aWMgaW50IHJlYWRf cHJvcGVydGllc191bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CQkJCSAgdmFsdWUpOwogCQkJCXJldHVybiAtRUlOVkFMOwogCQkJfQotCQkJaWYgKCFkZXZfcHJp di0+cGVyZi5vYS5vYV9mb3JtYXRzW3ZhbHVlXS5zaXplKSB7CisJCQlpZiAoIWRldl9wcml2LT5w ZXJmLm9hX2Zvcm1hdHNbdmFsdWVdLnNpemUpIHsKIAkJCQlEUk1fREVCVUcoIlVuc3VwcG9ydGVk IE9BIHJlcG9ydCBmb3JtYXQgJWxsdVxuIiwKIAkJCQkJICB2YWx1ZSk7CiAJCQkJcmV0dXJuIC1F SU5WQUw7CkBAIC0yODk3LDcgKzI5MDcsNyBAQCB2b2lkIGk5MTVfcGVyZl9yZWdpc3RlcihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJaWYgKCFkZXZfcHJpdi0+cGVyZi5tZXRy aWNzX2tvYmopCiAJCWdvdG8gZXhpdDsKIAotCXN5c2ZzX2F0dHJfaW5pdCgmZGV2X3ByaXYtPnBl cmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIpOworCXN5c2ZzX2F0dHJfaW5p dCgmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcuc3lzZnNfbWV0cmljX2lkLmF0dHIpOwogCiAJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpIHsKIAkJaTkxNV9wZXJmX2xvYWRfdGVzdF9j b25maWdfaWNsKGRldl9wcml2KTsKQEAgLTI5MzIsMTUgKzI5NDIsMTUgQEAgdm9pZCBpOTE1X3Bl cmZfcmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlpOTE1X3Bl cmZfbG9hZF90ZXN0X2NvbmZpZ19oc3coZGV2X3ByaXYpOwogfQogCi0JaWYgKGRldl9wcml2LT5w ZXJmLm9hLnRlc3RfY29uZmlnLmlkID09IDApCisJaWYgKGRldl9wcml2LT5wZXJmLnRlc3RfY29u ZmlnLmlkID09IDApCiAJCWdvdG8gc3lzZnNfZXJyb3I7CiAKIAlyZXQgPSBzeXNmc19jcmVhdGVf Z3JvdXAoZGV2X3ByaXYtPnBlcmYubWV0cmljc19rb2JqLAotCQkJCSAmZGV2X3ByaXYtPnBlcmYu b2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljKTsKKwkJCQkgJmRldl9wcml2LT5wZXJmLnRlc3Rf Y29uZmlnLnN5c2ZzX21ldHJpYyk7CiAJaWYgKHJldCkKIAkJZ290byBzeXNmc19lcnJvcjsKIAot CWF0b21pY19zZXQoJmRldl9wcml2LT5wZXJmLm9hLnRlc3RfY29uZmlnLnJlZl9jb3VudCwgMSk7 CisJYXRvbWljX3NldCgmZGV2X3ByaXYtPnBlcmYudGVzdF9jb25maWcucmVmX2NvdW50LCAxKTsK IAogCWdvdG8gZXhpdDsKIApAQCAtMjk2Nyw3ICsyOTc3LDcgQEAgdm9pZCBpOTE1X3BlcmZfdW5y ZWdpc3RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCXJldHVybjsKIAog CXN5c2ZzX3JlbW92ZV9ncm91cChkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmosCi0JCQkgICAm ZGV2X3ByaXYtPnBlcmYub2EudGVzdF9jb25maWcuc3lzZnNfbWV0cmljKTsKKwkJCSAgICZkZXZf cHJpdi0+cGVyZi50ZXN0X2NvbmZpZy5zeXNmc19tZXRyaWMpOwogCiAJa29iamVjdF9wdXQoZGV2 X3ByaXYtPnBlcmYubWV0cmljc19rb2JqKTsKIAlkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2tvYmog PSBOVUxMOwpAQCAtMjk5Myw3ICszMDAzLDggQEAgc3RhdGljIGJvb2wgZ2VuOF9pc192YWxpZF9m bGV4X2FkZHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkcikKIAly ZXR1cm4gZmFsc2U7CiB9CiAKLXN0YXRpYyBib29sIGdlbjdfaXNfdmFsaWRfYl9jb3VudGVyX2Fk ZHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgYWRkcikKK3N0YXRpYyBi b29sIGdlbjdfaXNfdmFsaWRfYl9jb3VudGVyX2FkZHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkJCQkgdTMyIGFkZHIpCiB7CiAJcmV0dXJuIChhZGRyID49IGk5MTVfbW1p b19yZWdfb2Zmc2V0KE9BU1RBUlRUUklHMSkgJiYKIAkJYWRkciA8PSBpOTE1X21taW9fcmVnX29m ZnNldChPQVNUQVJUVFJJRzgpKSB8fApAQCAtMzA3OCw3ICszMDg5LDkgQEAgc3RhdGljIHN0cnVj dCBpOTE1X29hX3JlZyAqYWxsb2Nfb2FfcmVncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJaWYgKCFhY2Nlc3Nfb2socmVncywgbl9yZWdzICogc2l6ZW9mKHUzMikgKiAyKSkK IAkJcmV0dXJuIEVSUl9QVFIoLUVGQVVMVCk7CiAKLQkvKiBObyBpc192YWxpZCBmdW5jdGlvbiBt ZWFucyB3ZSdyZSBub3QgYWxsb3dpbmcgYW55IHJlZ2lzdGVyIHRvIGJlIHByb2dyYW1tZWQuICov CisJLyogTm8gaXNfdmFsaWQgZnVuY3Rpb24gbWVhbnMgd2UncmUgbm90IGFsbG93aW5nIGFueSBy ZWdpc3RlciB0byBiZQorCSAqIHByb2dyYW1tZWQuCisJICovCiAJR0VNX0JVR19PTighaXNfdmFs aWQpOwogCWlmICghaXNfdmFsaWQpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwpAQCAtMzIx MSw3ICszMjI0LDcgQEAgaW50IGk5MTVfcGVyZl9hZGRfY29uZmlnX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJb2FfY29uZmlnLT5tdXhfcmVnc19sZW4gPSBhcmdz LT5uX211eF9yZWdzOwogCW9hX2NvbmZpZy0+bXV4X3JlZ3MgPQogCQlhbGxvY19vYV9yZWdzKGRl dl9wcml2LAotCQkJICAgICAgZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX211eF9yZWcs CisJCQkgICAgICBkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZywKIAkJCSAgICAg IHU2NF90b191c2VyX3B0cihhcmdzLT5tdXhfcmVnc19wdHIpLAogCQkJICAgICAgYXJncy0+bl9t dXhfcmVncyk7CiAKQEAgLTMyMjQsNyArMzIzNyw3IEBAIGludCBpOTE1X3BlcmZfYWRkX2NvbmZp Z19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCW9hX2NvbmZpZy0+ Yl9jb3VudGVyX3JlZ3NfbGVuID0gYXJncy0+bl9ib29sZWFuX3JlZ3M7CiAJb2FfY29uZmlnLT5i X2NvdW50ZXJfcmVncyA9CiAJCWFsbG9jX29hX3JlZ3MoZGV2X3ByaXYsCi0JCQkgICAgICBkZXZf cHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZywKKwkJCSAgICAgIGRldl9w cml2LT5wZXJmLm9wcy5pc192YWxpZF9iX2NvdW50ZXJfcmVnLAogCQkJICAgICAgdTY0X3RvX3Vz ZXJfcHRyKGFyZ3MtPmJvb2xlYW5fcmVnc19wdHIpLAogCQkJICAgICAgYXJncy0+bl9ib29sZWFu X3JlZ3MpOwogCkBAIC0zMjQzLDcgKzMyNTYsNyBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJb2FfY29uZmlnLT5m bGV4X3JlZ3NfbGVuID0gYXJncy0+bl9mbGV4X3JlZ3M7CiAJCW9hX2NvbmZpZy0+ZmxleF9yZWdz ID0KIAkJCWFsbG9jX29hX3JlZ3MoZGV2X3ByaXYsCi0JCQkJICAgICAgZGV2X3ByaXYtPnBlcmYu b2Eub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnLAorCQkJCSAgICAgIGRldl9wcml2LT5wZXJmLm9wcy5p c192YWxpZF9mbGV4X3JlZywKIAkJCQkgICAgICB1NjRfdG9fdXNlcl9wdHIoYXJncy0+ZmxleF9y ZWdzX3B0ciksCiAJCQkJICAgICAgYXJncy0+bl9mbGV4X3JlZ3MpOwogCkBAIC0zMzAwLDcgKzMz MTMsOCBAQCBpbnQgaTkxNV9wZXJmX2FkZF9jb25maWdfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCAqZGF0YSwKIH0KIAogLyoqCi0gKiBpOTE1X3BlcmZfcmVtb3ZlX2NvbmZpZ19p b2N0bCAtIERSTSBpb2N0bCgpIGZvciB1c2Vyc3BhY2UgdG8gcmVtb3ZlIGFuIE9BIGNvbmZpZwor ICogaTkxNV9wZXJmX3JlbW92ZV9jb25maWdfaW9jdGwgLSBEUk0gaW9jdGwoKSBmb3IgdXNlcnNw YWNlIHRvIHJlbW92ZSBhbiBPQQorICogY29uZmlnCiAgKiBAZGV2OiBkcm0gZGV2aWNlCiAgKiBA ZGF0YTogaW9jdGwgZGF0YSAocG9pbnRlciB0byB1NjQgaW50ZWdlcikgY29waWVkIGZyb20gdXNl cnNwYWNlCiAgKiBAZmlsZTogZHJtIGZpbGUKQEAgLTM0MDksMjEgKzM0MjMsMjMgQEAgc3RhdGlj IHN0cnVjdCBjdGxfdGFibGUgZGV2X3Jvb3RbXSA9IHsKICAqLwogdm9pZCBpOTE1X3BlcmZfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CisJc3RydWN0IGludGVsX3J1 bnRpbWVfaW5mbyAqcmk7CisKIAlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikpIHsKLQkJZGV2X3By aXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQorCQlkZXZfcHJpdi0+cGVy Zi5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9CiAJCQlnZW43X2lzX3ZhbGlkX2JfY291bnRl cl9hZGRyOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJCWRl dl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9tdXhfcmVnID0KIAkJCWhzd19pc192YWxpZF9tdXhf YWRkcjsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0gTlVMTDsK LQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0ID0gaHN3X2VuYWJsZV9t ZXRyaWNfc2V0OwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0g aHN3X2Rpc2FibGVfbWV0cmljX3NldDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2VuYWJs ZSA9IGdlbjdfb2FfZW5hYmxlOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMub2FfZGlzYWJsZSA9 IGdlbjdfb2FfZGlzYWJsZTsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLnJlYWQgPSBnZW43X29h X3JlYWQ7Ci0JCWRldl9wcml2LT5wZXJmLm9hLm9wcy5vYV9od190YWlsX3JlYWQgPQorCQlkZXZf cHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfZmxleF9yZWcgPSBOVUxMOworCQlkZXZfcHJpdi0+cGVy Zi5vcHMuZW5hYmxlX21ldHJpY19zZXQgPSBoc3dfZW5hYmxlX21ldHJpY19zZXQ7CisJCWRldl9w cml2LT5wZXJmLm9wcy5kaXNhYmxlX21ldHJpY19zZXQgPSBoc3dfZGlzYWJsZV9tZXRyaWNfc2V0 OworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2FfZW5hYmxlID0gZ2VuN19vYV9lbmFibGU7CisJCWRl dl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxlID0gZ2VuN19vYV9kaXNhYmxlOworCQlkZXZfcHJp di0+cGVyZi5vcHMucmVhZCA9IGdlbjdfb2FfcmVhZDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9h X2h3X3RhaWxfcmVhZCA9CiAJCQlnZW43X29hX2h3X3RhaWxfcmVhZDsKIAotCQlkZXZfcHJpdi0+ cGVyZi5vYS5vYV9mb3JtYXRzID0gaHN3X29hX2Zvcm1hdHM7CisJCWRldl9wcml2LT5wZXJmLm9h X2Zvcm1hdHMgPSBoc3dfb2FfZm9ybWF0czsKIAl9IGVsc2UgaWYgKEhBU19MT0dJQ0FMX1JJTkdf Q09OVEVYVFMoZGV2X3ByaXYpKSB7CiAJCS8qIE5vdGU6IHRoYXQgYWx0aG91Z2ggd2UgY291bGQg dGhlb3JldGljYWxseSBhbHNvIHN1cHBvcnQgdGhlCiAJCSAqIGxlZ2FjeSByaW5nYnVmZmVyIG1v ZGUgb24gQkRXIChhbmQgZWFybGllciBpdGVyYXRpb25zIG9mCkBAIC0zNDMxLDc1ICszNDQ3LDkz IEBAIHZvaWQgaTkxNV9wZXJmX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCQkgKiB3b3J0aCB0aGUgY29tcGxleGl0eSB0byBtYWludGFpbiBub3cgdGhhdCBCRFcrIGVu YWJsZQogCQkgKiBleGVjbGlzdCBtb2RlIGJ5IGRlZmF1bHQuCiAJCSAqLwotCQlkZXZfcHJpdi0+ cGVyZi5vYS5vYV9mb3JtYXRzID0gZ2VuOF9wbHVzX29hX2Zvcm1hdHM7CisJCWRldl9wcml2LT5w ZXJmLm9hX2Zvcm1hdHMgPSBnZW44X3BsdXNfb2FfZm9ybWF0czsKIAotCQlkZXZfcHJpdi0+cGVy Zi5vYS5vcHMub2FfZW5hYmxlID0gZ2VuOF9vYV9lbmFibGU7Ci0JCWRldl9wcml2LT5wZXJmLm9h Lm9wcy5vYV9kaXNhYmxlID0gZ2VuOF9vYV9kaXNhYmxlOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5v cHMucmVhZCA9IGdlbjhfb2FfcmVhZDsKLQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLm9hX2h3X3Rh aWxfcmVhZCA9IGdlbjhfb2FfaHdfdGFpbF9yZWFkOworCQlkZXZfcHJpdi0+cGVyZi5vcHMub2Ff ZW5hYmxlID0gZ2VuOF9vYV9lbmFibGU7CisJCWRldl9wcml2LT5wZXJmLm9wcy5vYV9kaXNhYmxl ID0gZ2VuOF9vYV9kaXNhYmxlOworCQlkZXZfcHJpdi0+cGVyZi5vcHMucmVhZCA9IGdlbjhfb2Ff cmVhZDsKKwkJZGV2X3ByaXYtPnBlcmYub3BzLm9hX2h3X3RhaWxfcmVhZCA9IGdlbjhfb2FfaHdf dGFpbF9yZWFkOwogCiAJCWlmIChJU19HRU5fUkFOR0UoZGV2X3ByaXYsIDgsIDkpKSB7Ci0JCQlk ZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9CisJCQlkZXZfcHJp di0+cGVyZi5vcHMuaXNfdmFsaWRfYl9jb3VudGVyX3JlZyA9CiAJCQkJZ2VuN19pc192YWxpZF9i X2NvdW50ZXJfYWRkcjsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVn ID0KKwkJCWRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9tdXhfcmVnID0KIAkJCQlnZW44X2lz X3ZhbGlkX211eF9hZGRyOwotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2ZsZXhf cmVnID0KKwkJCWRldl9wcml2LT5wZXJmLm9wcy5pc192YWxpZF9mbGV4X3JlZyA9CiAJCQkJZ2Vu OF9pc192YWxpZF9mbGV4X2FkZHI7CiAKIAkJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkg ewotCQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5pc192YWxpZF9tdXhfcmVnID0KKwkJCQlkZXZf cHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CiAJCQkJCWNodl9pc192YWxpZF9tdXhf YWRkcjsKIAkJCX0KIAotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0 ID0gZ2VuOF9lbmFibGVfbWV0cmljX3NldDsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9wcy5kaXNh YmxlX21ldHJpY19zZXQgPSBnZW44X2Rpc2FibGVfbWV0cmljX3NldDsKKwkJCWRldl9wcml2LT5w ZXJmLm9wcy5lbmFibGVfbWV0cmljX3NldCA9CisJCQkJZ2VuOF9lbmFibGVfbWV0cmljX3NldDsK KwkJCWRldl9wcml2LT5wZXJmLm9wcy5kaXNhYmxlX21ldHJpY19zZXQgPQorCQkJCWdlbjhfZGlz YWJsZV9tZXRyaWNfc2V0OwogCiAJCQlpZiAoSVNfR0VOKGRldl9wcml2LCA4KSkgewotCQkJCWRl dl9wcml2LT5wZXJmLm9hLmN0eF9vYWN0eGN0cmxfb2Zmc2V0ID0gMHgxMjA7Ci0JCQkJZGV2X3By aXYtPnBlcmYub2EuY3R4X2ZsZXhldTBfb2Zmc2V0ID0gMHgyY2U7CisJCQkJZGV2X3ByaXYtPnBl cmYuY3R4X29hY3R4Y3RybF9vZmZzZXQgPSAweDEyMDsKKwkJCQlkZXZfcHJpdi0+cGVyZi5jdHhf ZmxleGV1MF9vZmZzZXQgPSAweDJjZTsKIAotCQkJCWRldl9wcml2LT5wZXJmLm9hLmdlbjhfdmFs aWRfY3R4X2JpdCA9ICgxPDwyNSk7CisJCQkJZGV2X3ByaXYtPnBlcmYuZ2VuOF92YWxpZF9jdHhf Yml0ID0gKDE8PDI1KTsKIAkJCX0gZWxzZSB7Ci0JCQkJZGV2X3ByaXYtPnBlcmYub2EuY3R4X29h Y3R4Y3RybF9vZmZzZXQgPSAweDEyODsKLQkJCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1 MF9vZmZzZXQgPSAweDNkZTsKKwkJCQlkZXZfcHJpdi0+cGVyZi5jdHhfb2FjdHhjdHJsX29mZnNl dCA9IDB4MTI4OworCQkJCWRldl9wcml2LT5wZXJmLmN0eF9mbGV4ZXUwX29mZnNldCA9IDB4M2Rl OwogCi0JCQkJZGV2X3ByaXYtPnBlcmYub2EuZ2VuOF92YWxpZF9jdHhfYml0ID0gKDE8PDE2KTsK KwkJCQlkZXZfcHJpdi0+cGVyZi5nZW44X3ZhbGlkX2N0eF9iaXQgPSAoMTw8MTYpOwogCQkJfQog CQl9IGVsc2UgaWYgKElTX0dFTl9SQU5HRShkZXZfcHJpdiwgMTAsIDExKSkgewotCQkJZGV2X3By aXYtPnBlcmYub2Eub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQorCQkJZGV2X3ByaXYtPnBl cmYub3BzLmlzX3ZhbGlkX2JfY291bnRlcl9yZWcgPQogCQkJCWdlbjdfaXNfdmFsaWRfYl9jb3Vu dGVyX2FkZHI7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CisJ CQlkZXZfcHJpdi0+cGVyZi5vcHMuaXNfdmFsaWRfbXV4X3JlZyA9CiAJCQkJZ2VuMTBfaXNfdmFs aWRfbXV4X2FkZHI7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5vcHMuaXNfdmFsaWRfZmxleF9yZWcg PQorCQkJZGV2X3ByaXYtPnBlcmYub3BzLmlzX3ZhbGlkX2ZsZXhfcmVnID0KIAkJCQlnZW44X2lz X3ZhbGlkX2ZsZXhfYWRkcjsKIAotCQkJZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRy aWNfc2V0ID0gZ2VuOF9lbmFibGVfbWV0cmljX3NldDsKLQkJCWRldl9wcml2LT5wZXJmLm9hLm9w cy5kaXNhYmxlX21ldHJpY19zZXQgPSBnZW4xMF9kaXNhYmxlX21ldHJpY19zZXQ7CisJCQlkZXZf cHJpdi0+cGVyZi5vcHMuZW5hYmxlX21ldHJpY19zZXQgPQorCQkJCWdlbjhfZW5hYmxlX21ldHJp Y19zZXQ7CisJCQlkZXZfcHJpdi0+cGVyZi5vcHMuZGlzYWJsZV9tZXRyaWNfc2V0ID0KKwkJCQln ZW4xMF9kaXNhYmxlX21ldHJpY19zZXQ7CiAKLQkJCWRldl9wcml2LT5wZXJmLm9hLmN0eF9vYWN0 eGN0cmxfb2Zmc2V0ID0gMHgxMjg7Ci0JCQlkZXZfcHJpdi0+cGVyZi5vYS5jdHhfZmxleGV1MF9v ZmZzZXQgPSAweDNkZTsKKwkJCWRldl9wcml2LT5wZXJmLmN0eF9vYWN0eGN0cmxfb2Zmc2V0ID0g MHgxMjg7CisJCQlkZXZfcHJpdi0+cGVyZi5jdHhfZmxleGV1MF9vZmZzZXQgPSAweDNkZTsKIAot CQkJZGV2X3ByaXYtPnBlcmYub2EuZ2VuOF92YWxpZF9jdHhfYml0ID0gKDE8PDE2KTsKKwkJCWRl dl9wcml2LT5wZXJmLmdlbjhfdmFsaWRfY3R4X2JpdCA9ICgxPDwxNik7CiAJCX0KIAl9CiAKLQlp ZiAoZGV2X3ByaXYtPnBlcmYub2Eub3BzLmVuYWJsZV9tZXRyaWNfc2V0KSB7Ci0JCWhydGltZXJf aW5pdCgmZGV2X3ByaXYtPnBlcmYub2EucG9sbF9jaGVja190aW1lciwKLQkJCQlDTE9DS19NT05P VE9OSUMsIEhSVElNRVJfTU9ERV9SRUwpOwotCQlkZXZfcHJpdi0+cGVyZi5vYS5wb2xsX2NoZWNr X3RpbWVyLmZ1bmN0aW9uID0gb2FfcG9sbF9jaGVja190aW1lcl9jYjsKLQkJaW5pdF93YWl0cXVl dWVfaGVhZCgmZGV2X3ByaXYtPnBlcmYub2EucG9sbF93cSk7Ci0KKwlpZiAoZGV2X3ByaXYtPnBl cmYub3BzLmVuYWJsZV9tZXRyaWNfc2V0KSB7CiAJCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+ cGVyZi5zdHJlYW1zKTsKIAkJbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPnBlcmYubG9jayk7Ci0JCXNw aW5fbG9ja19pbml0KCZkZXZfcHJpdi0+cGVyZi5vYS5vYV9idWZmZXIucHRyX2xvY2spOwogCisJ CXJpID0gUlVOVElNRV9JTkZPKGRldl9wcml2KTsKIAkJb2Ffc2FtcGxlX3JhdGVfaGFyZF9saW1p dCA9IDEwMDAgKgotCQkJKFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPmNzX3RpbWVzdGFtcF9mcmVx dWVuY3lfa2h6IC8gMik7CisJCQkocmktPmNzX3RpbWVzdGFtcF9mcmVxdWVuY3lfa2h6IC8gMik7 CiAJCWRldl9wcml2LT5wZXJmLnN5c2N0bF9oZWFkZXIgPSByZWdpc3Rlcl9zeXNjdGxfdGFibGUo ZGV2X3Jvb3QpOwogCiAJCW11dGV4X2luaXQoJmRldl9wcml2LT5wZXJmLm1ldHJpY3NfbG9jayk7 CiAJCWlkcl9pbml0KCZkZXZfcHJpdi0+cGVyZi5tZXRyaWNzX2lkcik7CiAKKwkJLyogV2Ugc2V0 IHVwIHNvbWUgcmF0ZWxpbWl0IHN0YXRlIHRvIHBvdGVudGlhbGx5IHRocm90dGxlIGFueQorCQkg KiBfTk9URVMgYWJvdXQgc3B1cmlvdXMsIGludmFsaWQgT0EgcmVwb3J0cyB3aGljaCB3ZSBkb24n dAorCQkgKiBmb3J3YXJkIHRvIHVzZXJzcGFjZS4KKwkJICoKKwkJICogV2UgcHJpbnQgYSBfTk9U RSBhYm91dCBhbnkgdGhyb3R0bGluZyB3aGVuIGNsb3NpbmcgdGhlCisJCSAqIHN0cmVhbSBpbnN0 ZWFkIG9mIHdhaXRpbmcgdW50aWwgZHJpdmVyIF9maW5pIHdoaWNoIG5vIG9uZQorCQkgKiB3b3Vs ZCBldmVyIHNlZS4KKwkJICoKKwkJICogVXNpbmcgdGhlIHNhbWUgbGltaXRpbmcgZmFjdG9ycyBh cyBwcmludGtfcmF0ZWxpbWl0KCkKKwkJICovCisJCXJhdGVsaW1pdF9zdGF0ZV9pbml0KCZkZXZf cHJpdi0+cGVyZi5zcHVyaW91c19yZXBvcnRfcnMsCisJCQkJICAgICA1ICogSFosIDEwKTsKKwkJ LyogU2luY2Ugd2UgdXNlIGEgRFJNX05PVEUgZm9yIHNwdXJpb3VzIHJlcG9ydHMgaXQgd291bGQg YmUKKwkJICogaW5jb25zaXN0ZW50IHRvIGxldCBfX3JhdGVsaW1pdCgpIGF1dG9tYXRpY2FsbHkg cHJpbnQgYQorCQkgKiB3YXJuaW5nIGZvciB0aHJvdHRsaW5nLgorCQkgKi8KKwkJcmF0ZWxpbWl0 X3NldF9mbGFncygmZGV2X3ByaXYtPnBlcmYuc3B1cmlvdXNfcmVwb3J0X3JzLAorCQkJCSAgICBS QVRFTElNSVRfTVNHX09OX1JFTEVBU0UpOworCiAJCWRldl9wcml2LT5wZXJmLmluaXRpYWxpemVk ID0gdHJ1ZTsKIAl9CiB9CkBAIC0zNTI4LDcgKzM1NjIsNyBAQCB2b2lkIGk5MTVfcGVyZl9maW5p KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAogCXVucmVnaXN0ZXJfc3lzY3Rs X3RhYmxlKGRldl9wcml2LT5wZXJmLnN5c2N0bF9oZWFkZXIpOwogCi0JbWVtc2V0KCZkZXZfcHJp di0+cGVyZi5vYS5vcHMsIDAsIHNpemVvZihkZXZfcHJpdi0+cGVyZi5vYS5vcHMpKTsKKwltZW1z ZXQoJmRldl9wcml2LT5wZXJmLm9wcywgMCwgc2l6ZW9mKGRldl9wcml2LT5wZXJmLm9wcykpOwog CiAJZGV2X3ByaXYtPnBlcmYuaW5pdGlhbGl6ZWQgPSBmYWxzZTsKIH0KLS0gCjIuMjAuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4