From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 1/5] drm/i915: Rename local struct intel_engine_cs variables Date: Thu, 10 Mar 2016 14:21:04 +0000 Message-ID: <1457619668-4685-2-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1457619668-4685-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 8FBF96E977 for ; Thu, 10 Mar 2016 14:21:51 +0000 (UTC) In-Reply-To: <1457619668-4685-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkRvbmUgYnkg dGhlIENvY2NpbmVsbGUgc2NyaXB0IGJlbG93IHBsdXMgYSBtYW51YWwKaW50ZXJ2ZW50aW9uIHRv IEdFTjhfUklOR19TRU1BUEhPUkVfSU5JVC4KCkBACmV4cHJlc3Npb24gRTsKQEAKLSBzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nID0gRTsKKyBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSBFOwo8Ky4uLgotIHJpbmcKKyBlbmdpbmUKLi4uKz4KQEAKQEAKLSBzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nOworIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKPCsuLi4K LSByaW5nCisgZW5naW5lCi4uLis+CgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZy dGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVi dWdmcy5jICAgICAgICB8IDIwMyArKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyAgICAgICAgICAgIHwgMTM2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9jb250ZXh0LmMgICAgfCAxNDAgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2RlYnVnLmMgICAgICB8ICAxNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhl Y2J1ZmZlci5jIHwgIDc0ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMg ICAgICAgIHwgIDkwICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMg ICAgICB8ICAzNSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5j IHwgIDMwICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAgICAgfCAg ODQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgICAgfCAxMDYg KystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jICAgIHwgIDEyICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCAyMTYgKysrKy0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYyAgICAgICAgICB8ICAgNCArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jICAgICAgIHwgIDYwICstLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgIHwgIDM2ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgICAgfCA3ODUgKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAg ICB8ICAxNCArLQogMTcgZmlsZXMgY2hhbmdlZCwgMTAzNSBpbnNlcnRpb25zKCspLCAxMDA1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMTVhYWNkMGVl NjZmLi41MDM3Y2NiMThlNzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC0x MjksNyArMTI5LDcgQEAgc3RhdGljIHZvaWQKIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlz dHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlpbnQgcGluX2NvdW50ID0gMDsKIAlpbnQgaTsKQEAgLTE0 Myw3ICsxNDMsNyBAQCBkZXNjcmliZV9vYmooc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKQogCQkgICBvYmotPmJhc2Uuc2l6ZSAvIDEwMjQsCiAJCSAg IG9iai0+YmFzZS5yZWFkX2RvbWFpbnMsCiAJCSAgIG9iai0+YmFzZS53cml0ZV9kb21haW4pOwot CWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfcmluZyhlbmdpbmUs IGRldl9wcml2LCBpKQogCQlzZXFfcHJpbnRmKG0sICIleCAiLAogCQkJCWk5MTVfZ2VtX3JlcXVl c3RfZ2V0X3NlcW5vKG9iai0+bGFzdF9yZWFkX3JlcVtpXSkpOwogCXNlcV9wcmludGYobSwgIl0g JXggJXglcyVzJXMiLApAQCAtMzk3LDE1ICszOTcsMTUgQEAgc3RhdGljIHZvaWQgcHJpbnRfYmF0 Y2hfcG9vbF9zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sCiB7CiAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgZmlsZV9zdGF0cyBzdGF0czsKLQlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQg aSwgajsKIAogCW1lbXNldCgmc3RhdHMsIDAsIHNpemVvZihzdGF0cykpOwogCi0JZm9yX2VhY2hf cmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewotCQlmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShy aW5nLT5iYXRjaF9wb29sLmNhY2hlX2xpc3QpOyBqKyspIHsKKwlmb3JfZWFjaF9yaW5nKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpIHsKKwkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJWkUoZW5naW5lLT5i YXRjaF9wb29sLmNhY2hlX2xpc3QpOyBqKyspIHsKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnkob2Jq LAotCQkJCQkgICAgJnJpbmctPmJhdGNoX3Bvb2wuY2FjaGVfbGlzdFtqXSwKKwkJCQkJICAgICZl bmdpbmUtPmJhdGNoX3Bvb2wuY2FjaGVfbGlzdFtqXSwKIAkJCQkJICAgIGJhdGNoX3Bvb2xfbGlu aykKIAkJCQlwZXJfZmlsZV9zdGF0cygwLCBvYmosICZzdGF0cyk7CiAJCX0KQEAgLTU5MSwxNCAr NTkxLDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKmRhdGEpCiAJCQkJCSAgIHBpcGUsIHBsYW5lKTsKIAkJCX0KIAkJCWlmICh3 b3JrLT5mbGlwX3F1ZXVlZF9yZXEpIHsKLQkJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n ID0KLQkJCQkJaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmluZyh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEp OworCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGk5MTVfZ2VtX3JlcXVlc3Rf Z2V0X3Jpbmcod29yay0+ZmxpcF9xdWV1ZWRfcmVxKTsKIAogCQkJCXNlcV9wcmludGYobSwgIkZs aXAgcXVldWVkIG9uICVzIGF0IHNlcW5vICV4LCBuZXh0IHNlcW5vICV4IFtjdXJyZW50IGJyZWFk Y3J1bWIgJXhdLCBjb21wbGV0ZWQ/ICVkXG4iLAotCQkJCQkgICByaW5nLT5uYW1lLAorCQkJCQkg ICBlbmdpbmUtPm5hbWUsCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHdvcmst PmZsaXBfcXVldWVkX3JlcSksCiAJCQkJCSAgIGRldl9wcml2LT5uZXh0X3NlcW5vLAotCQkJCQkg ICByaW5nLT5nZXRfc2Vxbm8ocmluZywgdHJ1ZSksCisJCQkJCSAgIGVuZ2luZS0+Z2V0X3NlcW5v KGVuZ2luZSwgdHJ1ZSksCiAJCQkJCSAgIGk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHdvcmst PmZsaXBfcXVldWVkX3JlcSwgdHJ1ZSkpOwogCQkJfSBlbHNlCiAJCQkJc2VxX3ByaW50ZihtLCAi RmxpcCBub3QgYXNzb2NpYXRlZCB3aXRoIGFueSByaW5nXG4iKTsKQEAgLTYzNyw3ICs2MzYsNyBA QCBzdGF0aWMgaW50IGk5MTVfZ2VtX2JhdGNoX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0s IHZvaWQgKmRhdGEpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCB0b3RhbCA9 IDA7CiAJaW50IHJldCwgaSwgajsKIApAQCAtNjQ1LDIwICs2NDQsMjAgQEAgc3RhdGljIGludCBp OTE1X2dlbV9iYXRjaF9wb29sX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2 LCBpKSB7Ci0JCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKHJpbmctPmJhdGNoX3Bvb2wuY2Fj aGVfbGlzdCk7IGorKykgeworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgewor CQlmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShlbmdpbmUtPmJhdGNoX3Bvb2wuY2FjaGVfbGlz dCk7IGorKykgewogCQkJaW50IGNvdW50OwogCiAJCQljb3VudCA9IDA7CiAJCQlsaXN0X2Zvcl9l YWNoX2VudHJ5KG9iaiwKLQkJCQkJICAgICZyaW5nLT5iYXRjaF9wb29sLmNhY2hlX2xpc3Rbal0s CisJCQkJCSAgICAmZW5naW5lLT5iYXRjaF9wb29sLmNhY2hlX2xpc3Rbal0sCiAJCQkJCSAgICBi YXRjaF9wb29sX2xpbmspCiAJCQkJY291bnQrKzsKIAkJCXNlcV9wcmludGYobSwgIiVzIGNhY2hl WyVkXTogJWQgb2JqZWN0c1xuIiwKLQkJCQkgICByaW5nLT5uYW1lLCBqLCBjb3VudCk7CisJCQkJ ICAgZW5naW5lLT5uYW1lLCBqLCBjb3VudCk7CiAKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnkob2Jq LAotCQkJCQkgICAgJnJpbmctPmJhdGNoX3Bvb2wuY2FjaGVfbGlzdFtqXSwKKwkJCQkJICAgICZl bmdpbmUtPmJhdGNoX3Bvb2wuY2FjaGVfbGlzdFtqXSwKIAkJCQkJICAgIGJhdGNoX3Bvb2xfbGlu aykgewogCQkJCXNlcV9wdXRzKG0sICIgICAiKTsKIAkJCQlkZXNjcmliZV9vYmoobSwgb2JqKTsK QEAgLTY4MSw3ICs2ODAsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3JlcXVlc3RfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUg PSBtLT5wcml2YXRlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2 OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmU7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAJaW50IHJldCwg YW55LCBpOwogCkBAIC02OTAsMTcgKzY4OSwxNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3JlcXVl c3RfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJCXJldHVybiByZXQ7CiAK IAlhbnkgPSAwOwotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFj aF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKIAkJaW50IGNvdW50OwogCiAJCWNvdW50ID0g MDsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXEsICZyaW5nLT5yZXF1ZXN0X2xpc3QsIGxpc3Qp CisJCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxLCAmZW5naW5lLT5yZXF1ZXN0X2xpc3QsIGxpc3Qp CiAJCQljb3VudCsrOwogCQlpZiAoY291bnQgPT0gMCkKIAkJCWNvbnRpbnVlOwogCi0JCXNlcV9w cmludGYobSwgIiVzIHJlcXVlc3RzOiAlZFxuIiwgcmluZy0+bmFtZSwgY291bnQpOwotCQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KHJlcSwgJnJpbmctPnJlcXVlc3RfbGlzdCwgbGlzdCkgeworCQlzZXFf cHJpbnRmKG0sICIlcyByZXF1ZXN0czogJWRcbiIsIGVuZ2luZS0+bmFtZSwgY291bnQpOworCQls aXN0X2Zvcl9lYWNoX2VudHJ5KHJlcSwgJmVuZ2luZS0+cmVxdWVzdF9saXN0LCBsaXN0KSB7CiAJ CQlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2s7CiAKIAkJCXJjdV9yZWFkX2xvY2soKTsKQEAgLTcz OSw3ICs3MzgsNyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3NlcW5vX2luZm8oc3RydWN0IHNlcV9m aWxlICptLCB2b2lkICpkYXRhKQogCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gbS0+cHJp dmF0ZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l OwogCWludCByZXQsIGk7CiAKIAlyZXQgPSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+ c3RydWN0X211dGV4KTsKQEAgLTc0Nyw4ICs3NDYsOCBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3Nl cW5vX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCQlyZXR1cm4gcmV0Owog CWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAotCWZvcl9lYWNoX3JpbmcocmluZywg ZGV2X3ByaXYsIGkpCi0JCWk5MTVfcmluZ19zZXFub19pbmZvKG0sIHJpbmcpOworCWZvcl9lYWNo X3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwkJaTkxNV9yaW5nX3NlcW5vX2luZm8obSwgZW5n aW5lKTsKIAogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKIAltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKQEAgLTc2Miw3ICs3NjEsNyBAQCBzdGF0aWMgaW50IGk5MTVf aW50ZXJydXB0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXN0cnVjdCBk cm1faW5mb19ub2RlICpub2RlID0gbS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gbm9kZS0+bWlub3ItPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCByZXQsIGksIHBpcGU7CiAKIAlyZXQg PSBtdXRleF9sb2NrX2ludGVycnVwdGlibGUoJmRldi0+c3RydWN0X211dGV4KTsKQEAgLTkzNCwx MyArOTMzLDEzIEBAIHN0YXRpYyBpbnQgaTkxNV9pbnRlcnJ1cHRfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKmRhdGEpCiAJCXNlcV9wcmludGYobSwgIkdyYXBoaWNzIEludGVycnVwdCBt YXNrOgkJJTA4eFxuIiwKIAkJCSAgIEk5MTVfUkVBRChHVElNUikpOwogCX0KLQlmb3JfZWFjaF9y aW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2 LCBpKSB7CiAJCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7CiAJCQlzZXFfcHJpbnRm KG0sCiAJCQkJICAgIkdyYXBoaWNzIEludGVycnVwdCBtYXNrICglcyk6CSUwOHhcbiIsCi0JCQkJ ICAgcmluZy0+bmFtZSwgSTkxNV9SRUFEX0lNUihyaW5nKSk7CisJCQkJICAgZW5naW5lLT5uYW1l LCBJOTE1X1JFQURfSU1SKGVuZ2luZSkpOwogCQl9Ci0JCWk5MTVfcmluZ19zZXFub19pbmZvKG0s IHJpbmcpOworCQlpOTE1X3Jpbmdfc2Vxbm9faW5mbyhtLCBlbmdpbmUpOwogCX0KIAlpbnRlbF9y dW50aW1lX3BtX3B1dChkZXZfcHJpdik7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7CkBAIC05ODEsMTIgKzk4MCwxMiBAQCBzdGF0aWMgaW50IGk5MTVfaHdzX2luZm8oc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0g bS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwot CXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lOwogCWNvbnN0IHUzMiAqaHdzOwogCWludCBpOwogCi0JcmluZyA9ICZkZXZfcHJpdi0+ cmluZ1sodWludHB0cl90KW5vZGUtPmluZm9fZW50LT5kYXRhXTsKLQlod3MgPSByaW5nLT5zdGF0 dXNfcGFnZS5wYWdlX2FkZHI7CisJZW5naW5lID0gJmRldl9wcml2LT5yaW5nWyh1aW50cHRyX3Qp bm9kZS0+aW5mb19lbnQtPmRhdGFdOworCWh3cyA9IGVuZ2luZS0+c3RhdHVzX3BhZ2UucGFnZV9h ZGRyOwogCWlmIChod3MgPT0gTlVMTCkKIAkJcmV0dXJuIDA7CiAKQEAgLTEzMzEsNyArMTMzMCw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKnVudXNlZCkKIAlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqbm9kZSA9IG0tPnByaXZhdGU7CiAJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAl1NjQg YWN0aGRbSTkxNV9OVU1fUklOR1NdOwogCXUzMiBzZXFub1tJOTE1X05VTV9SSU5HU107CiAJdTMy IGluc3Rkb25lW0k5MTVfTlVNX0lOU1RET05FX1JFR107CkBAIC0xMzQ0LDkgKzEzNDMsOSBAQCBz dGF0aWMgaW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpCiAKIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7CiAKLQlmb3JfZWFjaF9y aW5nKHJpbmcsIGRldl9wcml2LCBpKSB7Ci0JCXNlcW5vW2ldID0gcmluZy0+Z2V0X3NlcW5vKHJp bmcsIGZhbHNlKTsKLQkJYWN0aGRbaV0gPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChyaW5n KTsKKwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwkJc2Vxbm9baV0gPSBl bmdpbmUtPmdldF9zZXFubyhlbmdpbmUsIGZhbHNlKTsKKwkJYWN0aGRbaV0gPSBpbnRlbF9yaW5n X2dldF9hY3RpdmVfaGVhZChlbmdpbmUpOwogCX0KIAogCWk5MTVfZ2V0X2V4dHJhX2luc3Rkb25l KGRldiwgaW5zdGRvbmUpOwpAQCAtMTM2MCwxNyArMTM1OSwxNyBAQCBzdGF0aWMgaW50IGk5MTVf aGFuZ2NoZWNrX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJfSBlbHNl CiAJCXNlcV9wcmludGYobSwgIkhhbmdjaGVjayBpbmFjdGl2ZVxuIik7CiAKLQlmb3JfZWFjaF9y aW5nKHJpbmcsIGRldl9wcml2LCBpKSB7Ci0JCXNlcV9wcmludGYobSwgIiVzOlxuIiwgcmluZy0+ bmFtZSk7CisJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJCXNlcV9wcmlu dGYobSwgIiVzOlxuIiwgZW5naW5lLT5uYW1lKTsKIAkJc2VxX3ByaW50ZihtLCAiXHRzZXFubyA9 ICV4IFtjdXJyZW50ICV4XVxuIiwKLQkJCSAgIHJpbmctPmhhbmdjaGVjay5zZXFubywgc2Vxbm9b aV0pOworCQkJICAgZW5naW5lLT5oYW5nY2hlY2suc2Vxbm8sIHNlcW5vW2ldKTsKIAkJc2VxX3By aW50ZihtLCAiXHRBQ1RIRCA9IDB4JTA4bGx4IFtjdXJyZW50IDB4JTA4bGx4XVxuIiwKLQkJCSAg IChsb25nIGxvbmcpcmluZy0+aGFuZ2NoZWNrLmFjdGhkLAorCQkJICAgKGxvbmcgbG9uZyllbmdp bmUtPmhhbmdjaGVjay5hY3RoZCwKIAkJCSAgIChsb25nIGxvbmcpYWN0aGRbaV0pOwotCQlzZXFf cHJpbnRmKG0sICJcdHNjb3JlID0gJWRcbiIsIHJpbmctPmhhbmdjaGVjay5zY29yZSk7Ci0JCXNl cV9wcmludGYobSwgIlx0YWN0aW9uID0gJWRcbiIsIHJpbmctPmhhbmdjaGVjay5hY3Rpb24pOwor CQlzZXFfcHJpbnRmKG0sICJcdHNjb3JlID0gJWRcbiIsIGVuZ2luZS0+aGFuZ2NoZWNrLnNjb3Jl KTsKKwkJc2VxX3ByaW50ZihtLCAiXHRhY3Rpb24gPSAlZFxuIiwgZW5naW5lLT5oYW5nY2hlY2su YWN0aW9uKTsKIAotCQlpZiAocmluZy0+aWQgPT0gUkNTKSB7CisJCWlmIChlbmdpbmUtPmlkID09 IFJDUykgewogCQkJc2VxX3B1dHMobSwgIlx0aW5zdGRvbmUgcmVhZCA9Iik7CiAKIAkJCWZvciAo aiA9IDA7IGogPCBJOTE1X05VTV9JTlNURE9ORV9SRUc7IGorKykKQEAgLTEzODAsNyArMTM3OSw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKnVudXNlZCkKIAogCQkJZm9yIChqID0gMDsgaiA8IEk5MTVfTlVNX0lOU1RET05FX1JFRzsg aisrKQogCQkJCXNlcV9wcmludGYobSwgIiAweCUwOHgiLAotCQkJCQkgICByaW5nLT5oYW5nY2hl Y2suaW5zdGRvbmVbal0pOworCQkJCQkgICBlbmdpbmUtPmhhbmdjaGVjay5pbnN0ZG9uZVtqXSk7 CiAKIAkJCXNlcV9wdXRzKG0sICJcbiIpOwogCQl9CkBAIC0xOTQ2LDcgKzE5NDUsNyBAQCBzdGF0 aWMgaW50IGk5MTVfY29udGV4dF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVz ZWQpCiAJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSBtLT5wcml2YXRlOwogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IGludGVs X2NvbnRleHQgKmN0eDsKIAlpbnQgcmV0LCBpOwogCkBAIC0xOTY2LDEzICsxOTY1LDEzIEBAIHN0 YXRpYyBpbnQgaTkxNV9jb250ZXh0X3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVu dXNlZCkKIAogCQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7CiAJCQlzZXFfcHV0YyhtLCAn XG4nKTsKLQkJCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKKwkJCWZvcl9lYWNo X3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgewogCQkJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpjdHhfb2JqID0KIAkJCQkJY3R4LT5lbmdpbmVbaV0uc3RhdGU7CiAJCQkJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQogCQkJCQljdHgtPmVuZ2luZVtpXS5yaW5nYnVmOwog Ci0JCQkJc2VxX3ByaW50ZihtLCAiJXM6ICIsIHJpbmctPm5hbWUpOworCQkJCXNlcV9wcmludGYo bSwgIiVzOiAiLCBlbmdpbmUtPm5hbWUpOwogCQkJCWlmIChjdHhfb2JqKQogCQkJCQlkZXNjcmli ZV9vYmoobSwgY3R4X29iaik7CiAJCQkJaWYgKHJpbmdidWYpCkBAIC0yMDQxLDcgKzIwNDAsNyBA QCBzdGF0aWMgaW50IGk5MTVfZHVtcF9scmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVz ZWQpCiAJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUg KikgbS0+cHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRl djsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHg7CiAJaW50IHJldCwgaTsKIApA QCAtMjA1Niw4ICsyMDU1LDggQEAgc3RhdGljIGludCBpOTE1X2R1bXBfbHJjKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjdHgsICZkZXZf cHJpdi0+Y29udGV4dF9saXN0LCBsaW5rKQogCQlpZiAoY3R4ICE9IGRldl9wcml2LT5rZXJuZWxf Y29udGV4dCkKLQkJCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCi0JCQkJaTkxNV9k dW1wX2xyY19vYmoobSwgY3R4LCByaW5nKTsKKwkJCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZf cHJpdiwgaSkKKwkJCQlpOTE1X2R1bXBfbHJjX29iaihtLCBjdHgsIGVuZ2luZSk7CiAKIAltdXRl eF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIApAQCAtMjA2OSw3ICsyMDY4LDcgQEAgc3Rh dGljIGludCBpOTE1X2V4ZWNsaXN0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJ c3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5w cml2YXRlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmU7CiAJdTMyIHN0YXR1c19wb2ludGVyOwogCXU4IHJlYWRfcG9pbnRlcjsKIAl1OCB3cml0ZV9w b2ludGVyOwpAQCAtMjA5MCwyMiArMjA4OSwyMiBAQCBzdGF0aWMgaW50IGk5MTVfZXhlY2xpc3Rz KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAogCWludGVsX3J1bnRpbWVfcG1fZ2V0 KGRldl9wcml2KTsKIAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIHJpbmdfaWQpIHsK Kwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIHJpbmdfaWQpIHsKIAkJc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpoZWFkX3JlcSA9IE5VTEw7CiAJCWludCBjb3VudCA9IDA7CiAJ CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLQkJc2VxX3ByaW50ZihtLCAiJXNcbiIsIHJpbmctPm5h bWUpOworCQlzZXFfcHJpbnRmKG0sICIlc1xuIiwgZW5naW5lLT5uYW1lKTsKIAotCQlzdGF0dXMg PSBJOTE1X1JFQUQoUklOR19FWEVDTElTVF9TVEFUVVNfTE8ocmluZykpOwotCQljdHhfaWQgPSBJ OTE1X1JFQUQoUklOR19FWEVDTElTVF9TVEFUVVNfSEkocmluZykpOworCQlzdGF0dXMgPSBJOTE1 X1JFQUQoUklOR19FWEVDTElTVF9TVEFUVVNfTE8oZW5naW5lKSk7CisJCWN0eF9pZCA9IEk5MTVf UkVBRChSSU5HX0VYRUNMSVNUX1NUQVRVU19ISShlbmdpbmUpKTsKIAkJc2VxX3ByaW50ZihtLCAi XHRFeGVjbGlzdCBzdGF0dXM6IDB4JTA4WCwgY29udGV4dDogJXVcbiIsCiAJCQkgICBzdGF0dXMs IGN0eF9pZCk7CiAKLQkJc3RhdHVzX3BvaW50ZXIgPSBJOTE1X1JFQUQoUklOR19DT05URVhUX1NU QVRVU19QVFIocmluZykpOworCQlzdGF0dXNfcG9pbnRlciA9IEk5MTVfUkVBRChSSU5HX0NPTlRF WFRfU1RBVFVTX1BUUihlbmdpbmUpKTsKIAkJc2VxX3ByaW50ZihtLCAiXHRTdGF0dXMgcG9pbnRl cjogMHglMDhYXG4iLCBzdGF0dXNfcG9pbnRlcik7CiAKLQkJcmVhZF9wb2ludGVyID0gcmluZy0+ bmV4dF9jb250ZXh0X3N0YXR1c19idWZmZXI7CisJCXJlYWRfcG9pbnRlciA9IGVuZ2luZS0+bmV4 dF9jb250ZXh0X3N0YXR1c19idWZmZXI7CiAJCXdyaXRlX3BvaW50ZXIgPSBHRU44X0NTQl9XUklU RV9QVFIoc3RhdHVzX3BvaW50ZXIpOwogCQlpZiAocmVhZF9wb2ludGVyID4gd3JpdGVfcG9pbnRl cikKIAkJCXdyaXRlX3BvaW50ZXIgKz0gR0VOOF9DU0JfRU5UUklFUzsKQEAgLTIxMTMsMjQgKzIx MTIsMjUgQEAgc3RhdGljIGludCBpOTE1X2V4ZWNsaXN0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKmRhdGEpCiAJCQkgICByZWFkX3BvaW50ZXIsIHdyaXRlX3BvaW50ZXIpOwogCiAJCWZvciAo aSA9IDA7IGkgPCBHRU44X0NTQl9FTlRSSUVTOyBpKyspIHsKLQkJCXN0YXR1cyA9IEk5MTVfUkVB RChSSU5HX0NPTlRFWFRfU1RBVFVTX0JVRl9MTyhyaW5nLCBpKSk7Ci0JCQljdHhfaWQgPSBJOTE1 X1JFQUQoUklOR19DT05URVhUX1NUQVRVU19CVUZfSEkocmluZywgaSkpOworCQkJc3RhdHVzID0g STkxNV9SRUFEKFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVGX0xPKGVuZ2luZSwgaSkpOworCQkJY3R4 X2lkID0gSTkxNV9SRUFEKFJJTkdfQ09OVEVYVF9TVEFUVVNfQlVGX0hJKGVuZ2luZSwgaSkpOwog CiAJCQlzZXFfcHJpbnRmKG0sICJcdFN0YXR1cyBidWZmZXIgJWQ6IDB4JTA4WCwgY29udGV4dDog JXVcbiIsCiAJCQkJICAgaSwgc3RhdHVzLCBjdHhfaWQpOwogCQl9CiAKLQkJc3Bpbl9sb2NrX2ly cXNhdmUoJnJpbmctPmV4ZWNsaXN0X2xvY2ssIGZsYWdzKTsKLQkJbGlzdF9mb3JfZWFjaChjdXJz b3IsICZyaW5nLT5leGVjbGlzdF9xdWV1ZSkKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJmVuZ2luZS0+ ZXhlY2xpc3RfbG9jaywgZmxhZ3MpOworCQlsaXN0X2Zvcl9lYWNoKGN1cnNvciwgJmVuZ2luZS0+ ZXhlY2xpc3RfcXVldWUpCiAJCQljb3VudCsrOwotCQloZWFkX3JlcSA9IGxpc3RfZmlyc3RfZW50 cnlfb3JfbnVsbCgmcmluZy0+ZXhlY2xpc3RfcXVldWUsCi0JCQkJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0LCBleGVjbGlzdF9saW5rKTsKLQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmlu Zy0+ZXhlY2xpc3RfbG9jaywgZmxhZ3MpOworCQloZWFkX3JlcSA9IGxpc3RfZmlyc3RfZW50cnlf b3JfbnVsbCgmZW5naW5lLT5leGVjbGlzdF9xdWV1ZSwKKwkJCQkJCSAgICBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QsCisJCQkJCQkgICAgZXhlY2xpc3RfbGluayk7CisJCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jaywgZmxhZ3MpOwogCiAJCXNlcV9wcmlu dGYobSwgIlx0JWQgcmVxdWVzdHMgaW4gcXVldWVcbiIsIGNvdW50KTsKIAkJaWYgKGhlYWRfcmVx KSB7CiAJCQlzZXFfcHJpbnRmKG0sICJcdEhlYWQgcmVxdWVzdCBpZDogJXVcbiIsCi0JCQkJICAg aW50ZWxfZXhlY2xpc3RzX2N0eF9pZChoZWFkX3JlcS0+Y3R4LCByaW5nKSk7CisJCQkJICAgaW50 ZWxfZXhlY2xpc3RzX2N0eF9pZChoZWFkX3JlcS0+Y3R4LCBlbmdpbmUpKTsKIAkJCXNlcV9wcmlu dGYobSwgIlx0SGVhZCByZXF1ZXN0IHRhaWw6ICV1XG4iLAogCQkJCSAgIGhlYWRfcmVxLT50YWls KTsKIAkJfQpAQCAtMjI0NiwxOSArMjI0NiwxOSBAQCBzdGF0aWMgaW50IHBlcl9maWxlX2N0eChp bnQgaWQsIHZvaWQgKnB0ciwgdm9pZCAqZGF0YSkKIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK IAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSBkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBn dHQ7CiAJaW50IHVudXNlZCwgaTsKIAogCWlmICghcHBndHQpCiAJCXJldHVybjsKIAotCWZvcl9l YWNoX3JpbmcocmluZywgZGV2X3ByaXYsIHVudXNlZCkgewotCQlzZXFfcHJpbnRmKG0sICIlc1xu IiwgcmluZy0+bmFtZSk7CisJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCB1bnVzZWQp IHsKKwkJc2VxX3ByaW50ZihtLCAiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CiAJCWZvciAoaSA9IDA7 IGkgPCA0OyBpKyspIHsKLQkJCXU2NCBwZHAgPSBJOTE1X1JFQUQoR0VOOF9SSU5HX1BEUF9VRFco cmluZywgaSkpOworCQkJdTY0IHBkcCA9IEk5MTVfUkVBRChHRU44X1JJTkdfUERQX1VEVyhlbmdp bmUsIGkpKTsKIAkJCXBkcCA8PD0gMzI7Ci0JCQlwZHAgfD0gSTkxNV9SRUFEKEdFTjhfUklOR19Q RFBfTERXKHJpbmcsIGkpKTsKKwkJCXBkcCB8PSBJOTE1X1JFQUQoR0VOOF9SSU5HX1BEUF9MRFco ZW5naW5lLCBpKSk7CiAJCQlzZXFfcHJpbnRmKG0sICJcdFBEUCVkIDB4JTAxNmxseFxuIiwgaSwg cGRwKTsKIAkJfQogCX0KQEAgLTIyNjcsMTkgKzIyNjcsMjMgQEAgc3RhdGljIHZvaWQgZ2VuOF9w cGd0dF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHN0 YXRpYyB2b2lkIGdlbjZfcHBndHRfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAogCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA9PSA2KQogCQlzZXFfcHJpbnRmKG0sICJHRlhfTU9ERTogMHglMDh4XG4iLCBJOTE1X1JF QUQoR0ZYX01PREUpKTsKIAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKLQkJ c2VxX3ByaW50ZihtLCAiJXNcbiIsIHJpbmctPm5hbWUpOworCWZvcl9lYWNoX3JpbmcoZW5naW5l LCBkZXZfcHJpdiwgaSkgeworCQlzZXFfcHJpbnRmKG0sICIlc1xuIiwgZW5naW5lLT5uYW1lKTsK IAkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID09IDcpCi0JCQlzZXFfcHJpbnRmKG0sICJHRlhf TU9ERTogMHglMDh4XG4iLCBJOTE1X1JFQUQoUklOR19NT0RFX0dFTjcocmluZykpKTsKLQkJc2Vx X3ByaW50ZihtLCAiUFBfRElSX0JBU0U6IDB4JTA4eFxuIiwgSTkxNV9SRUFEKFJJTkdfUFBfRElS X0JBU0UocmluZykpKTsKLQkJc2VxX3ByaW50ZihtLCAiUFBfRElSX0JBU0VfUkVBRDogMHglMDh4 XG4iLCBJOTE1X1JFQUQoUklOR19QUF9ESVJfQkFTRV9SRUFEKHJpbmcpKSk7Ci0JCXNlcV9wcmlu dGYobSwgIlBQX0RJUl9EQ0xWOiAweCUwOHhcbiIsIEk5MTVfUkVBRChSSU5HX1BQX0RJUl9EQ0xW KHJpbmcpKSk7CisJCQlzZXFfcHJpbnRmKG0sICJHRlhfTU9ERTogMHglMDh4XG4iLAorCQkJCSAg IEk5MTVfUkVBRChSSU5HX01PREVfR0VONyhlbmdpbmUpKSk7CisJCXNlcV9wcmludGYobSwgIlBQ X0RJUl9CQVNFOiAweCUwOHhcbiIsCisJCQkgICBJOTE1X1JFQUQoUklOR19QUF9ESVJfQkFTRShl bmdpbmUpKSk7CisJCXNlcV9wcmludGYobSwgIlBQX0RJUl9CQVNFX1JFQUQ6IDB4JTA4eFxuIiwK KwkJCSAgIEk5MTVfUkVBRChSSU5HX1BQX0RJUl9CQVNFX1JFQUQoZW5naW5lKSkpOworCQlzZXFf cHJpbnRmKG0sICJQUF9ESVJfRENMVjogMHglMDh4XG4iLAorCQkJICAgSTkxNV9SRUFEKFJJTkdf UFBfRElSX0RDTFYoZW5naW5lKSkpOwogCX0KIAlpZiAoZGV2X3ByaXYtPm1tLmFsaWFzaW5nX3Bw Z3R0KSB7CiAJCXN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCA9IGRldl9wcml2LT5tbS5hbGlh c2luZ19wcGd0dDsKQEAgLTIzMzQsMTIgKzIzMzgsMTIgQEAgb3V0X3B1dDoKIAogc3RhdGljIGlu dCBjb3VudF9pcnFfd2FpdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsKLQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZTsKIAlpbnQgY291bnQgPSAwOwogCWludCBpOwogCi0JZm9yX2VhY2hfcmluZyhyaW5nLCBp OTE1LCBpKQotCQljb3VudCArPSByaW5nLT5pcnFfcmVmY291bnQ7CisJZm9yX2VhY2hfcmluZyhl bmdpbmUsIGk5MTUsIGkpCisJCWNvdW50ICs9IGVuZ2luZS0+aXJxX3JlZmNvdW50OwogCiAJcmV0 dXJuIGNvdW50OwogfQpAQCAtMjQ0Nyw3ICsyNDUxLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNf Y2xpZW50X2luZm8oc3RydWN0IHNlcV9maWxlICptLAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJCQkJIHN0cnVjdCBpOTE1X2d1Y19jbGllbnQgKmNsaWVudCkKIHsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZTsKIAl1aW50NjRfdCB0b3QgPSAwOwogCXVpbnQzMl90IGk7CiAKQEAgLTI0NjIsMTEg KzI0NjYsMTEgQEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfY2xpZW50X2luZm8oc3RydWN0IHNlcV9m aWxlICptLAogCXNlcV9wcmludGYobSwgIlx0RmFpbGVkIGRvb3JiZWxsOiAldVxuIiwgY2xpZW50 LT5iX2ZhaWwpOwogCXNlcV9wcmludGYobSwgIlx0TGFzdCBzdWJtaXNzaW9uIHJlc3VsdDogJWRc biIsIGNsaWVudC0+cmV0Y29kZSk7CiAKLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBp KSB7CisJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CiAJCXNlcV9wcmludGYo bSwgIlx0U3VibWlzc2lvbnM6ICVsbHUgJXNcbiIsCi0JCQkJY2xpZW50LT5zdWJtaXNzaW9uc1ty aW5nLT5ndWNfaWRdLAotCQkJCXJpbmctPm5hbWUpOwotCQl0b3QgKz0gY2xpZW50LT5zdWJtaXNz aW9uc1tyaW5nLT5ndWNfaWRdOworCQkJCWNsaWVudC0+c3VibWlzc2lvbnNbZW5naW5lLT5ndWNf aWRdLAorCQkJCWVuZ2luZS0+bmFtZSk7CisJCXRvdCArPSBjbGllbnQtPnN1Ym1pc3Npb25zW2Vu Z2luZS0+Z3VjX2lkXTsKIAl9CiAJc2VxX3ByaW50ZihtLCAiXHRUb3RhbDogJWxsdVxuIiwgdG90 KTsKIH0KQEAgLTI0NzgsNyArMjQ4Miw3IEBAIHN0YXRpYyBpbnQgaTkxNV9ndWNfaW5mbyhzdHJ1 Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZ3VjIGd1YzsKIAlzdHJ1 Y3QgaTkxNV9ndWNfY2xpZW50IGNsaWVudCA9IHt9OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWVudW0gaW50ZWxfcmlu Z19pZCBpOwogCXU2NCB0b3RhbCA9IDA7CiAKQEAgLTI1MDIsMTEgKzI1MDYsMTEgQEAgc3RhdGlj IGludCBpOTE1X2d1Y19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlzZXFf cHJpbnRmKG0sICJHdUMgbGFzdCBhY3Rpb24gZXJyb3IgY29kZTogJWRcbiIsIGd1Yy5hY3Rpb25f ZXJyKTsKIAogCXNlcV9wcmludGYobSwgIlxuR3VDIHN1Ym1pc3Npb25zOlxuIik7Ci0JZm9yX2Vh Y2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZf cHJpdiwgaSkgewogCQlzZXFfcHJpbnRmKG0sICJcdCUtMjRzOiAlMTBsbHUsIGxhc3Qgc2Vxbm8g MHglMDh4XG4iLAotCQkJcmluZy0+bmFtZSwgZ3VjLnN1Ym1pc3Npb25zW3JpbmctPmd1Y19pZF0s Ci0JCQlndWMubGFzdF9zZXFub1tyaW5nLT5ndWNfaWRdKTsKLQkJdG90YWwgKz0gZ3VjLnN1Ym1p c3Npb25zW3JpbmctPmd1Y19pZF07CisJCQllbmdpbmUtPm5hbWUsIGd1Yy5zdWJtaXNzaW9uc1tl bmdpbmUtPmd1Y19pZF0sCisJCQlndWMubGFzdF9zZXFub1tlbmdpbmUtPmd1Y19pZF0pOworCQl0 b3RhbCArPSBndWMuc3VibWlzc2lvbnNbZW5naW5lLT5ndWNfaWRdOwogCX0KIAlzZXFfcHJpbnRm KG0sICJcdCVzOiAlbGx1XG4iLCAiVG90YWwiLCB0b3RhbCk7CiAKQEAgLTMxMjgsNyArMzEzMiw3 IEBAIHN0YXRpYyBpbnQgaTkxNV9zZW1hcGhvcmVfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwg dm9pZCAqdW51c2VkKQogCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1f aW5mb19ub2RlICopIG0tPnByaXZhdGU7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUt Pm1pbm9yLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgbnVtX3JpbmdzID0gaHdlaWdodDMyKElOVEVMX0lO Rk8oZGV2KS0+cmluZ19tYXNrKTsKIAlpbnQgaSwgaiwgcmV0OwogCkBAIC0zMTQ5LDEwICszMTUz LDEwIEBAIHN0YXRpYyBpbnQgaTkxNV9zZW1hcGhvcmVfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQogCQlwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGRldl9w cml2LT5zZW1hcGhvcmVfb2JqLCAwKTsKIAogCQlzZXFubyA9ICh1aW50NjRfdCAqKWttYXBfYXRv bWljKHBhZ2UpOwotCQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CisJCWZvcl9l YWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgewogCQkJdWludDY0X3Qgb2Zmc2V0OwogCi0J CQlzZXFfcHJpbnRmKG0sICIlc1xuIiwgcmluZy0+bmFtZSk7CisJCQlzZXFfcHJpbnRmKG0sICIl c1xuIiwgZW5naW5lLT5uYW1lKTsKIAogCQkJc2VxX3B1dHMobSwgIiAgTGFzdCBzaWduYWw6Iik7 CiAJCQlmb3IgKGogPSAwOyBqIDwgbnVtX3JpbmdzOyBqKyspIHsKQEAgLTMxNzQsMTcgKzMxNzgs MTggQEAgc3RhdGljIGludCBpOTE1X3NlbWFwaG9yZV9zdGF0dXMoc3RydWN0IHNlcV9maWxlICpt LCB2b2lkICp1bnVzZWQpCiAJCWt1bm1hcF9hdG9taWMoc2Vxbm8pOwogCX0gZWxzZSB7CiAJCXNl cV9wdXRzKG0sICIgIExhc3Qgc2lnbmFsOiIpOwotCQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9w cml2LCBpKQorCQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCiAJCQlmb3IgKGog PSAwOyBqIDwgbnVtX3JpbmdzOyBqKyspCiAJCQkJc2VxX3ByaW50ZihtLCAiMHglMDh4XG4iLAot CQkJCQkgICBJOTE1X1JFQUQocmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW2pdKSk7CisJCQkJ CSAgIEk5MTVfUkVBRChlbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtqXSkpOwogCQlzZXFf cHV0YyhtLCAnXG4nKTsKIAl9CiAKIAlzZXFfcHV0cyhtLCAiXG5TeW5jIHNlcW5vOlxuIik7Ci0J Zm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX3JpbmcoZW5naW5l LCBkZXZfcHJpdiwgaSkgewogCQlmb3IgKGogPSAwOyBqIDwgbnVtX3JpbmdzOyBqKyspIHsKLQkJ CXNlcV9wcmludGYobSwgIiAgMHglMDh4ICIsIHJpbmctPnNlbWFwaG9yZS5zeW5jX3NlcW5vW2pd KTsKKwkJCXNlcV9wcmludGYobSwgIiAgMHglMDh4ICIsCisJCQkJICAgZW5naW5lLT5zZW1hcGhv cmUuc3luY19zZXFub1tqXSk7CiAJCX0KIAkJc2VxX3B1dGMobSwgJ1xuJyk7CiAJfQpAQCAtMzIy Niw3ICszMjMxLDcgQEAgc3RhdGljIGludCBpOTE1X3dhX3JlZ2lzdGVycyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKnVudXNlZCkKIHsKIAlpbnQgaTsKIAlpbnQgcmV0OwotCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0 cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5mb19ub2RlICopIG0tPnBy aXZhdGU7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKQEAgLTMy MzksOSArMzI0NCw5IEBAIHN0YXRpYyBpbnQgaTkxNV93YV9yZWdpc3RlcnMoc3RydWN0IHNlcV9m aWxlICptLCB2b2lkICp1bnVzZWQpCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwog CiAJc2VxX3ByaW50ZihtLCAiV29ya2Fyb3VuZHMgYXBwbGllZDogJWRcbiIsIHdvcmthcm91bmRz LT5jb3VudCk7Ci0JZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9y aW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCiAJCXNlcV9wcmludGYobSwgIkhXIHdoaXRlbGlzdCBj b3VudCBmb3IgJXM6ICVkXG4iLAotCQkJICAgcmluZy0+bmFtZSwgd29ya2Fyb3VuZHMtPmh3X3do aXRlbGlzdF9jb3VudFtpXSk7CisJCQkgICBlbmdpbmUtPm5hbWUsIHdvcmthcm91bmRzLT5od193 aGl0ZWxpc3RfY291bnRbaV0pOwogCWZvciAoaSA9IDA7IGkgPCB3b3JrYXJvdW5kcy0+Y291bnQ7 ICsraSkgewogCQlpOTE1X3JlZ190IGFkZHI7CiAJCXUzMiBtYXNrLCB2YWx1ZSwgcmVhZDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGI4NTRhZjJjNDE0MS4uNWE3ZjYwMzJmMDY2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTEyNDMsMTEgKzEyNDMsMTEgQEAgaW50IF9faTkxNV93 YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQlzNjQgKnRp bWVvdXQsCiAJCQlzdHJ1Y3QgaW50ZWxfcnBzX2NsaWVudCAqcnBzKQogewotCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKHJlcSk7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKHJlcSk7CisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuZ2luZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJY29uc3QgYm9vbCBpcnFfdGVzdF9pbl9wcm9ncmVz cyA9Ci0JCUFDQ0VTU19PTkNFKGRldl9wcml2LT5ncHVfZXJyb3IudGVzdF9pcnFfcmluZ3MpICYg aW50ZWxfcmluZ19mbGFnKHJpbmcpOworCQlBQ0NFU1NfT05DRShkZXZfcHJpdi0+Z3B1X2Vycm9y LnRlc3RfaXJxX3JpbmdzKSAmIGludGVsX3JpbmdfZmxhZyhlbmdpbmUpOwogCWludCBzdGF0ZSA9 IGludGVycnVwdGlibGUgPyBUQVNLX0lOVEVSUlVQVElCTEUgOiBUQVNLX1VOSU5URVJSVVBUSUJM RTsKIAlERUZJTkVfV0FJVCh3YWl0KTsKIAl1bnNpZ25lZCBsb25nIHRpbWVvdXRfZXhwaXJlOwpA QCAtMTI4OCw3ICsxMjg4LDcgQEAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJaWYgKHJldCA9PSAwKQogCQlnb3RvIG91dDsKIAotCWlm ICghaXJxX3Rlc3RfaW5fcHJvZ3Jlc3MgJiYgV0FSTl9PTighcmluZy0+aXJxX2dldChyaW5nKSkp IHsKKwlpZiAoIWlycV90ZXN0X2luX3Byb2dyZXNzICYmIFdBUk5fT04oIWVuZ2luZS0+aXJxX2dl dChlbmdpbmUpKSkgewogCQlyZXQgPSAtRU5PREVWOwogCQlnb3RvIG91dDsKIAl9CkBAIC0xMjk2 LDcgKzEyOTYsNyBAQCBpbnQgX19pOTE1X3dhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKIAlmb3IgKDs7KSB7CiAJCXN0cnVjdCB0aW1lcl9saXN0IHRpbWVyOwog Ci0JCXByZXBhcmVfdG9fd2FpdCgmcmluZy0+aXJxX3F1ZXVlLCAmd2FpdCwgc3RhdGUpOworCQlw cmVwYXJlX3RvX3dhaXQoJmVuZ2luZS0+aXJxX3F1ZXVlLCAmd2FpdCwgc3RhdGUpOwogCiAJCS8q IFdlIG5lZWQgdG8gY2hlY2sgd2hldGhlciBhbnkgZ3B1IHJlc2V0IGhhcHBlbmVkIGluIGJldHdl ZW4KIAkJICogdGhlIGNhbGxlciBncmFiYmluZyB0aGUgc2Vxbm8gYW5kIG5vdyAuLi4gKi8KQEAg LTEzMjUsMTEgKzEzMjUsMTEgQEAgaW50IF9faTkxNV93YWl0X3JlcXVlc3Qoc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCX0KIAogCQl0aW1lci5mdW5jdGlvbiA9IE5VTEw7Ci0J CWlmICh0aW1lb3V0IHx8IG1pc3NlZF9pcnEoZGV2X3ByaXYsIHJpbmcpKSB7CisJCWlmICh0aW1l b3V0IHx8IG1pc3NlZF9pcnEoZGV2X3ByaXYsIGVuZ2luZSkpIHsKIAkJCXVuc2lnbmVkIGxvbmcg ZXhwaXJlOwogCiAJCQlzZXR1cF90aW1lcl9vbl9zdGFjaygmdGltZXIsIGZha2VfaXJxLCAodW5z aWduZWQgbG9uZyljdXJyZW50KTsKLQkJCWV4cGlyZSA9IG1pc3NlZF9pcnEoZGV2X3ByaXYsIHJp bmcpID8gamlmZmllcyArIDEgOiB0aW1lb3V0X2V4cGlyZTsKKwkJCWV4cGlyZSA9IG1pc3NlZF9p cnEoZGV2X3ByaXYsIGVuZ2luZSkgPyBqaWZmaWVzICsgMSA6IHRpbWVvdXRfZXhwaXJlOwogCQkJ bW9kX3RpbWVyKCZ0aW1lciwgZXhwaXJlKTsKIAkJfQogCkBAIC0xMzQxLDkgKzEzNDEsOSBAQCBp bnQgX19pOTE1X3dhaXRfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwK IAkJfQogCX0KIAlpZiAoIWlycV90ZXN0X2luX3Byb2dyZXNzKQotCQlyaW5nLT5pcnFfcHV0KHJp bmcpOworCQllbmdpbmUtPmlycV9wdXQoZW5naW5lKTsKIAotCWZpbmlzaF93YWl0KCZyaW5nLT5p cnFfcXVldWUsICZ3YWl0KTsKKwlmaW5pc2hfd2FpdCgmZW5naW5lLT5pcnFfcXVldWUsICZ3YWl0 KTsKIAogb3V0OgogCXRyYWNlX2k5MTVfZ2VtX3JlcXVlc3Rfd2FpdF9lbmQocmVxKTsKQEAgLTI0 MDQsMTcgKzI0MDQsMTcgQEAgdm9pZCBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShzdHJ1Y3QgaTkx NV92bWEgKnZtYSwKIAkJCSAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2JqOwotCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwog Ci0JcmluZyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3JpbmcocmVxKTsKKwllbmdpbmUgPSBpOTE1 X2dlbV9yZXF1ZXN0X2dldF9yaW5nKHJlcSk7CiAKIAkvKiBBZGQgYSByZWZlcmVuY2UgaWYgd2Un cmUgbmV3bHkgZW50ZXJpbmcgdGhlIGFjdGl2ZSBsaXN0LiAqLwogCWlmIChvYmotPmFjdGl2ZSA9 PSAwKQogCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0Jb2JqLT5hY3Rp dmUgfD0gaW50ZWxfcmluZ19mbGFnKHJpbmcpOworCW9iai0+YWN0aXZlIHw9IGludGVsX3Jpbmdf ZmxhZyhlbmdpbmUpOwogCi0JbGlzdF9tb3ZlX3RhaWwoJm9iai0+cmluZ19saXN0W3JpbmctPmlk XSwgJnJpbmctPmFjdGl2ZV9saXN0KTsKLQlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5s YXN0X3JlYWRfcmVxW3JpbmctPmlkXSwgcmVxKTsKKwlsaXN0X21vdmVfdGFpbCgmb2JqLT5yaW5n X2xpc3RbZW5naW5lLT5pZF0sICZlbmdpbmUtPmFjdGl2ZV9saXN0KTsKKwlpOTE1X2dlbV9yZXF1 ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X3JlYWRfcmVxW2VuZ2luZS0+aWRdLCByZXEpOwogCiAJbGlz dF9tb3ZlX3RhaWwoJnZtYS0+dm1fbGluaywgJnZtYS0+dm0tPmFjdGl2ZV9saXN0KTsKIH0KQEAg LTI0NjcsMjMgKzI0NjcsMjMgQEAgc3RhdGljIGludAogaTkxNV9nZW1faW5pdF9zZXFubyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2Vxbm8pCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgcmV0LCBpLCBq OwogCiAJLyogQ2FyZWZ1bGx5IHJldGlyZSBhbGwgcmVxdWVzdHMgd2l0aG91dCB3cml0aW5nIHRv IHRoZSByaW5ncyAqLwotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKLQkJcmV0 ID0gaW50ZWxfcmluZ19pZGxlKHJpbmcpOworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJp diwgaSkgeworCQlyZXQgPSBpbnRlbF9yaW5nX2lkbGUoZW5naW5lKTsKIAkJaWYgKHJldCkKIAkJ CXJldHVybiByZXQ7CiAJfQogCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0cyhkZXYpOwogCiAJLyog RmluYWxseSByZXNldCBodyBzdGF0ZSAqLwotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYs IGkpIHsKLQkJaW50ZWxfcmluZ19pbml0X3NlcW5vKHJpbmcsIHNlcW5vKTsKKwlmb3JfZWFjaF9y aW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwkJaW50ZWxfcmluZ19pbml0X3NlcW5vKGVuZ2lu ZSwgc2Vxbm8pOwogCi0JCWZvciAoaiA9IDA7IGogPCBBUlJBWV9TSVpFKHJpbmctPnNlbWFwaG9y ZS5zeW5jX3NlcW5vKTsgaisrKQotCQkJcmluZy0+c2VtYXBob3JlLnN5bmNfc2Vxbm9bal0gPSAw OworCQlmb3IgKGogPSAwOyBqIDwgQVJSQVlfU0laRShlbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3Nl cW5vKTsgaisrKQorCQkJZW5naW5lLT5zZW1hcGhvcmUuc3luY19zZXFub1tqXSA9IDA7CiAJfQog CiAJcmV0dXJuIDA7CkBAIC0yNTQyLDcgKzI1NDIsNyBAQCB2b2lkIF9faTkxNV9hZGRfcmVxdWVz dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiAJCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJYm9vbCBmbHVzaF9jYWNoZXMpCiB7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2OwogCXN0cnVjdCBpbnRlbF9yaW5nYnVm ZmVyICpyaW5nYnVmOwogCXUzMiByZXF1ZXN0X3N0YXJ0OwpAQCAtMjU1MSw4ICsyNTUxLDggQEAg dm9pZCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0LAogCWlmIChXQVJOX09OKHJlcXVlc3QgPT0gTlVMTCkpCiAJCXJldHVybjsKIAotCXJpbmcg PSByZXF1ZXN0LT5yaW5nOwotCWRldl9wcml2ID0gcmluZy0+ZGV2LT5kZXZfcHJpdmF0ZTsKKwll bmdpbmUgPSByZXF1ZXN0LT5yaW5nOworCWRldl9wcml2ID0gZW5naW5lLT5kZXYtPmRldl9wcml2 YXRlOwogCXJpbmdidWYgPSByZXF1ZXN0LT5yaW5nYnVmOwogCiAJLyoKQEAgLTI1ODcsOSArMjU4 Nyw5IEBAIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCwKIAlyZXF1ZXN0LT5wb3N0Zml4ID0gaW50ZWxfcmluZ19nZXRfdGFpbChyaW5n YnVmKTsKIAogCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpCi0JCXJldCA9IHJpbmctPmVtaXRf cmVxdWVzdChyZXF1ZXN0KTsKKwkJcmV0ID0gZW5naW5lLT5lbWl0X3JlcXVlc3QocmVxdWVzdCk7 CiAJZWxzZSB7Ci0JCXJldCA9IHJpbmctPmFkZF9yZXF1ZXN0KHJlcXVlc3QpOworCQlyZXQgPSBl bmdpbmUtPmFkZF9yZXF1ZXN0KHJlcXVlc3QpOwogCiAJCXJlcXVlc3QtPnRhaWwgPSBpbnRlbF9y aW5nX2dldF90YWlsKHJpbmdidWYpOwogCX0KQEAgLTI2MDcsMTMgKzI2MDcsMTMgQEAgdm9pZCBf X2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0LAog CXJlcXVlc3QtPmJhdGNoX29iaiA9IG9iajsKIAogCXJlcXVlc3QtPmVtaXR0ZWRfamlmZmllcyA9 IGppZmZpZXM7Ci0JcmVxdWVzdC0+cHJldmlvdXNfc2Vxbm8gPSByaW5nLT5sYXN0X3N1Ym1pdHRl ZF9zZXFubzsKLQlyaW5nLT5sYXN0X3N1Ym1pdHRlZF9zZXFubyA9IHJlcXVlc3QtPnNlcW5vOwot CWxpc3RfYWRkX3RhaWwoJnJlcXVlc3QtPmxpc3QsICZyaW5nLT5yZXF1ZXN0X2xpc3QpOworCXJl cXVlc3QtPnByZXZpb3VzX3NlcW5vID0gZW5naW5lLT5sYXN0X3N1Ym1pdHRlZF9zZXFubzsKKwll bmdpbmUtPmxhc3Rfc3VibWl0dGVkX3NlcW5vID0gcmVxdWVzdC0+c2Vxbm87CisJbGlzdF9hZGRf dGFpbCgmcmVxdWVzdC0+bGlzdCwgJmVuZ2luZS0+cmVxdWVzdF9saXN0KTsKIAogCXRyYWNlX2k5 MTVfZ2VtX3JlcXVlc3RfYWRkKHJlcXVlc3QpOwogCi0JaTkxNV9xdWV1ZV9oYW5nY2hlY2socmlu Zy0+ZGV2KTsKKwlpOTE1X3F1ZXVlX2hhbmdjaGVjayhlbmdpbmUtPmRldik7CiAKIAlxdWV1ZV9k ZWxheWVkX3dvcmsoZGV2X3ByaXYtPndxLAogCQkJICAgJmRldl9wcml2LT5tbS5yZXRpcmVfd29y aywKQEAgLTI4ODUsNyArMjg4NSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3Jpbmdf Y2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB2b2lkIGk5MTVfZ2Vt X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAogCS8q CkBAIC0yODkzLDExICsyODkzLDExIEBAIHZvaWQgaTkxNV9nZW1fcmVzZXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkgKiB0aGVtIGZvciBmaW5kaW5nIHRoZSBndWlsdHkgcGFydHkuIEFzIHRo ZSByZXF1ZXN0cyBvbmx5IGJvcnJvdwogCSAqIHRoZWlyIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0 cywgdGhlIGluc3BlY3Rpb24gbXVzdCBiZSBkb25lIGZpcnN0LgogCSAqLwotCWZvcl9lYWNoX3Jp bmcocmluZywgZGV2X3ByaXYsIGkpCi0JCWk5MTVfZ2VtX3Jlc2V0X3Jpbmdfc3RhdHVzKGRldl9w cml2LCByaW5nKTsKKwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJCWk5MTVf Z2VtX3Jlc2V0X3Jpbmdfc3RhdHVzKGRldl9wcml2LCBlbmdpbmUpOwogCi0JZm9yX2VhY2hfcmlu ZyhyaW5nLCBkZXZfcHJpdiwgaSkKLQkJaTkxNV9nZW1fcmVzZXRfcmluZ19jbGVhbnVwKGRldl9w cml2LCByaW5nKTsKKwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJCWk5MTVf Z2VtX3Jlc2V0X3JpbmdfY2xlYW51cChkZXZfcHJpdiwgZW5naW5lKTsKIAogCWk5MTVfZ2VtX2Nv bnRleHRfcmVzZXQoZGV2KTsKIApAQCAtMjk2MiwxOSArMjk2MiwxOSBAQCBib29sCiBpOTE1X2dl bV9yZXRpcmVfcmVxdWVzdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWJv b2wgaWRsZSA9IHRydWU7CiAJaW50IGk7CiAKLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2 LCBpKSB7Ci0JCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKHJpbmcpOwotCQlpZGxlICY9 IGxpc3RfZW1wdHkoJnJpbmctPnJlcXVlc3RfbGlzdCk7CisJZm9yX2VhY2hfcmluZyhlbmdpbmUs IGRldl9wcml2LCBpKSB7CisJCWk5MTVfZ2VtX3JldGlyZV9yZXF1ZXN0c19yaW5nKGVuZ2luZSk7 CisJCWlkbGUgJj0gbGlzdF9lbXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCQlpZiAoaTkx NS5lbmFibGVfZXhlY2xpc3RzKSB7Ci0JCQlzcGluX2xvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9s b2NrKTsKLQkJCWlkbGUgJj0gbGlzdF9lbXB0eSgmcmluZy0+ZXhlY2xpc3RfcXVldWUpOwotCQkJ c3Bpbl91bmxvY2tfaXJxKCZyaW5nLT5leGVjbGlzdF9sb2NrKTsKKwkJCXNwaW5fbG9ja19pcnEo JmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7CisJCQlpZGxlICY9IGxpc3RfZW1wdHkoJmVuZ2luZS0+ ZXhlY2xpc3RfcXVldWUpOworCQkJc3Bpbl91bmxvY2tfaXJxKCZlbmdpbmUtPmV4ZWNsaXN0X2xv Y2spOwogCi0JCQlpbnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzKHJpbmcpOworCQkJaW50 ZWxfZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhlbmdpbmUpOwogCQl9CiAJfQogCkBAIC0zMDI1 LDExICszMDI1LDExIEBAIGk5MTVfZ2VtX2lkbGVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKIAlpbnRlbF9tYXJrX2lkbGUoZGV2KTsKIAogCWlmIChtdXRleF90cnlsb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCkpIHsKLQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsK KwkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCQlpbnQgaTsKIAotCQlmb3JfZWFj aF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKQotCQkJaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKCZy aW5nLT5iYXRjaF9wb29sKTsKKwkJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKQor CQkJaTkxNV9nZW1fYmF0Y2hfcG9vbF9maW5pKCZlbmdpbmUtPmJhdGNoX3Bvb2wpOwogCiAJCW11 dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCX0KQEAgLTMzOTEsMTUgKzMzOTEsMTUg QEAgaW50IF9faTkxNV92bWFfdW5iaW5kX25vX3dhaXQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiBp bnQgaTkxNV9ncHVfaWRsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJaW50 IHJldCwgaTsKIAogCS8qIEZsdXNoIGV2ZXJ5dGhpbmcgb250byB0aGUgaW5hY3RpdmUgbGlzdC4g Ki8KLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfcmluZyhl bmdpbmUsIGRldl9wcml2LCBpKSB7CiAJCWlmICghaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7CiAJ CQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAotCQkJcmVxID0gaTkxNV9nZW1f cmVxdWVzdF9hbGxvYyhyaW5nLCBOVUxMKTsKKwkJCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxs b2MoZW5naW5lLCBOVUxMKTsKIAkJCWlmIChJU19FUlIocmVxKSkKIAkJCQlyZXR1cm4gUFRSX0VS UihyZXEpOwogCkBAIC0zNDEyLDcgKzM0MTIsNyBAQCBpbnQgaTkxNV9ncHVfaWRsZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCQkJaTkxNV9hZGRfcmVxdWVzdF9ub19mbHVzaChyZXEpOwogCQl9 CiAKLQkJcmV0ID0gaW50ZWxfcmluZ19pZGxlKHJpbmcpOworCQlyZXQgPSBpbnRlbF9yaW5nX2lk bGUoZW5naW5lKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfQpAQCAtNDY1NiwxMSAr NDY1NiwxMSBAQCBzdGF0aWMgdm9pZAogaTkxNV9nZW1fc3RvcF9yaW5nYnVmZmVycyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJaW50IGk7CiAKLQlmb3JfZWFjaF9yaW5nKHJp bmcsIGRldl9wcml2LCBpKQotCQlkZXZfcHJpdi0+Z3Quc3RvcF9yaW5nKHJpbmcpOworCWZvcl9l YWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwkJZGV2X3ByaXYtPmd0LnN0b3BfcmluZyhl bmdpbmUpOwogfQogCiBpbnQKQEAgLTQ2OTcsOCArNDY5Nyw4IEBAIGVycjoKIAogaW50IGk5MTVf Z2VtX2wzX3JlbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCBpbnQgc2xpY2Up CiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gcmluZy0+ZGV2OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAl1MzIgKnJlbWFwX2luZm8gPSBkZXZfcHJpdi0+bDNfcGFyaXR5LnJlbWFwX2luZm9bc2xpY2Vd OwogCWludCBpLCByZXQ7CkBAIC00NzE2LDEyICs0NzE2LDEyIEBAIGludCBpOTE1X2dlbV9sM19y ZW1hcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgaW50IHNsaWNlKQogCSAqIGF0 IGluaXRpYWxpemF0aW9uIHRpbWUuCiAJICovCiAJZm9yIChpID0gMDsgaSA8IEdFTjdfTDNMT0df U0laRSAvIDQ7IGkrKykgewotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RF Ul9JTU0oMSkpOwotCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIEdFTjdfTDNMT0coc2xpY2Us IGkpKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJlbWFwX2luZm9baV0pOworCQlpbnRlbF9y aW5nX2VtaXQoZW5naW5lLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7CisJCWludGVsX3Jpbmdf ZW1pdF9yZWcoZW5naW5lLCBHRU43X0wzTE9HKHNsaWNlLCBpKSk7CisJCWludGVsX3JpbmdfZW1p dChlbmdpbmUsIHJlbWFwX2luZm9baV0pOwogCX0KIAotCWludGVsX3JpbmdfYWR2YW5jZShyaW5n KTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVybiByZXQ7CiB9CkBAIC00 ODI5LDcgKzQ4MjksNyBAQCBpbnQKIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lOwogCWludCByZXQsIGksIGo7CiAKIAlpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPCA2ICYmICFpbnRlbF9lbmFibGVfZ3R0KCkpCkBAIC00ODc2LDggKzQ4NzYsOCBAQCBp OTE1X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCiAJLyogTmVlZCB0 byBkbyBiYXNpYyBpbml0aWFsaXNhdGlvbiBvZiBhbGwgcmluZ3MgZmlyc3Q6ICovCi0JZm9yX2Vh Y2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewotCQlyZXQgPSByaW5nLT5pbml0X2h3KHJpbmcp OworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCQlyZXQgPSBlbmdpbmUt PmluaXRfaHcoZW5naW5lKTsKIAkJaWYgKHJldCkKIAkJCWdvdG8gb3V0OwogCX0KQEAgLTQ5MDEs MTcgKzQ5MDEsMTcgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQlnb3RvIG91dDsKIAogCS8qIE5vdyBpdCBpcyBzYWZlIHRvIGdvIGJhY2sgcm91bmQgYW5kIGRv IGV2ZXJ5dGhpbmcgZWxzZTogKi8KLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7 CisJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CiAJCXN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxOwogCi0JCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mocmlu ZywgTlVMTCk7CisJCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBOVUxMKTsK IAkJaWYgKElTX0VSUihyZXEpKSB7CiAJCQlyZXQgPSBQVFJfRVJSKHJlcSk7CiAJCQlpOTE1X2dl bV9jbGVhbnVwX3JpbmdidWZmZXIoZGV2KTsKIAkJCWdvdG8gb3V0OwogCQl9CiAKLQkJaWYgKHJp bmctPmlkID09IFJDUykgeworCQlpZiAoZW5naW5lLT5pZCA9PSBSQ1MpIHsKIAkJCWZvciAoaiA9 IDA7IGogPCBOVU1fTDNfU0xJQ0VTKGRldik7IGorKykKIAkJCQlpOTE1X2dlbV9sM19yZW1hcChy ZXEsIGopOwogCQl9CkBAIC01MDA2LDExICs1MDA2LDExIEBAIHZvaWQKIGk5MTVfZ2VtX2NsZWFu dXBfcmluZ2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJaW50IGk7 CiAKLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKQotCQlkZXZfcHJpdi0+Z3QuY2xl YW51cF9yaW5nKHJpbmcpOworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwkJ ZGV2X3ByaXYtPmd0LmNsZWFudXBfcmluZyhlbmdpbmUpOwogCiAgICAgaWYgKGk5MTUuZW5hYmxl X2V4ZWNsaXN0cykKICAgICAgICAgICAgIC8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMKaW5kZXggNWRkODRlMTQ4YmJhLi5jYzA3NjY2YzJkOTEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTM0NiwxMSArMzQ2LDExIEBAIHZvaWQgaTkx NV9nZW1fY29udGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCX0KIAogCWZvciAo aSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Ci0JCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbaV07CisJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9ICZkZXZfcHJpdi0+cmluZ1tpXTsKIAotCQlpZiAocmluZy0+bGFzdF9jb250ZXh0 KSB7Ci0JCQlpOTE1X2dlbV9jb250ZXh0X3VucGluKHJpbmctPmxhc3RfY29udGV4dCwgcmluZyk7 Ci0JCQlyaW5nLT5sYXN0X2NvbnRleHQgPSBOVUxMOworCQlpZiAoZW5naW5lLT5sYXN0X2NvbnRl eHQpIHsKKwkJCWk5MTVfZ2VtX2NvbnRleHRfdW5waW4oZW5naW5lLT5sYXN0X2NvbnRleHQsIGVu Z2luZSk7CisJCQllbmdpbmUtPmxhc3RfY29udGV4dCA9IE5VTEw7CiAJCX0KIAl9CiAKQEAgLTQy NywxMSArNDI3LDExIEBAIHZvaWQgaTkxNV9nZW1fY29udGV4dF9maW5pKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJfQogCiAJZm9yIChpID0gSTkxNV9OVU1fUklOR1M7IC0taSA+PSAwOykgewot CQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gJmRldl9wcml2LT5yaW5nW2ldOworCQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPnJpbmdbaV07CiAKLQkJ aWYgKHJpbmctPmxhc3RfY29udGV4dCkgewotCQkJaTkxNV9nZW1fY29udGV4dF91bnBpbihyaW5n LT5sYXN0X2NvbnRleHQsIHJpbmcpOwotCQkJcmluZy0+bGFzdF9jb250ZXh0ID0gTlVMTDsKKwkJ aWYgKGVuZ2luZS0+bGFzdF9jb250ZXh0KSB7CisJCQlpOTE1X2dlbV9jb250ZXh0X3VucGluKGVu Z2luZS0+bGFzdF9jb250ZXh0LCBlbmdpbmUpOworCQkJZW5naW5lLT5sYXN0X2NvbnRleHQgPSBO VUxMOwogCQl9CiAJfQogCkBAIC00NDEsMTQgKzQ0MSwxNCBAQCB2b2lkIGk5MTVfZ2VtX2NvbnRl eHRfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiBpbnQgaTkxNV9nZW1fY29udGV4dF9l bmFibGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0Jc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpl bmdpbmUgPSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCWlmIChpOTE1LmVuYWJsZV9leGVjbGlz dHMpIHsKLQkJaWYgKHJpbmctPmluaXRfY29udGV4dCA9PSBOVUxMKQorCQlpZiAoZW5naW5lLT5p bml0X2NvbnRleHQgPT0gTlVMTCkKIAkJCXJldHVybiAwOwogCi0JCXJldCA9IHJpbmctPmluaXRf Y29udGV4dChyZXEpOworCQlyZXQgPSBlbmdpbmUtPmluaXRfY29udGV4dChyZXEpOwogCX0gZWxz ZQogCQlyZXQgPSBpOTE1X3N3aXRjaF9jb250ZXh0KHJlcSk7CiAKQEAgLTUxMCwxMiArNTEwLDEy IEBAIGk5MTVfZ2VtX2NvbnRleHRfZ2V0KHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZp bGVfcHJpdiwgdTMyIGlkKQogc3RhdGljIGlubGluZSBpbnQKIG1pX3NldF9jb250ZXh0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCB1MzIgaHdfZmxhZ3MpCiB7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXEtPnJpbmc7CiAJdTMyIGZsYWdzID0gaHdfZmxhZ3MgfCBNSV9NTV9TUEFD RV9HVFQ7CiAJY29uc3QgaW50IG51bV9yaW5ncyA9CiAJCS8qIFVzZSBhbiBleHRlbmRlZCB3L2Eg b24gaXZiKyBpZiBzaWduYWxsaW5nIGZyb20gb3RoZXIgcmluZ3MgKi8KLQkJaTkxNV9zZW1hcGhv cmVfaXNfZW5hYmxlZChyaW5nLT5kZXYpID8KLQkJaHdlaWdodDMyKElOVEVMX0lORk8ocmluZy0+ ZGV2KS0+cmluZ19tYXNrKSAtIDEgOgorCQlpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGVuZ2lu ZS0+ZGV2KSA/CisJCWh3ZWlnaHQzMihJTlRFTF9JTkZPKGVuZ2luZS0+ZGV2KS0+cmluZ19tYXNr KSAtIDEgOgogCQkwOwogCWludCBsZW4sIGksIHJldDsKIApAQCAtNTI0LDIxICs1MjQsMjEgQEAg bWlfc2V0X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIHUzMiBod19m bGFncykKIAkgKiBleHBsaWNpdGx5LCBzbyB3ZSByZWx5IG9uIHRoZSB2YWx1ZSBhdCByaW5nIGlu aXQsIHN0b3JlZCBpbgogCSAqIGl0bGJfYmVmb3JlX2N0eF9zd2l0Y2guCiAJICovCi0JaWYgKElT X0dFTjYocmluZy0+ZGV2KSkgewotCQlyZXQgPSByaW5nLT5mbHVzaChyZXEsIEk5MTVfR0VNX0dQ VV9ET01BSU5TLCAwKTsKKwlpZiAoSVNfR0VONihlbmdpbmUtPmRldikpIHsKKwkJcmV0ID0gZW5n aW5lLT5mbHVzaChyZXEsIEk5MTVfR0VNX0dQVV9ET01BSU5TLCAwKTsKIAkJaWYgKHJldCkKIAkJ CXJldHVybiByZXQ7CiAJfQogCiAJLyogVGhlc2UgZmxhZ3MgYXJlIGZvciByZXNvdXJjZSBzdHJl YW1lciBvbiBIU1crICovCi0JaWYgKElTX0hBU1dFTEwocmluZy0+ZGV2KSB8fCBJTlRFTF9JTkZP KHJpbmctPmRldiktPmdlbiA+PSA4KQorCWlmIChJU19IQVNXRUxMKGVuZ2luZS0+ZGV2KSB8fCBJ TlRFTF9JTkZPKGVuZ2luZS0+ZGV2KS0+Z2VuID49IDgpCiAJCWZsYWdzIHw9IChIU1dfTUlfUlNf U0FWRV9TVEFURV9FTiB8IEhTV19NSV9SU19SRVNUT1JFX1NUQVRFX0VOKTsKLQllbHNlIGlmIChJ TlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA8IDgpCisJZWxzZSBpZiAoSU5URUxfSU5GTyhlbmdp bmUtPmRldiktPmdlbiA8IDgpCiAJCWZsYWdzIHw9IChNSV9TQVZFX0VYVF9TVEFURV9FTiB8IE1J X1JFU1RPUkVfRVhUX1NUQVRFX0VOKTsKIAogCiAJbGVuID0gNDsKLQlpZiAoSU5URUxfSU5GTyhy aW5nLT5kZXYpLT5nZW4gPj0gNykKKwlpZiAoSU5URUxfSU5GTyhlbmdpbmUtPmRldiktPmdlbiA+ PSA3KQogCQlsZW4gKz0gMiArIChudW1fcmluZ3MgPyA0Km51bV9yaW5ncyArIDIgOiAwKTsKIAog CXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCBsZW4pOwpAQCAtNTQ2LDQ5ICs1NDYsNTYgQEAg bWlfc2V0X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIHUzMiBod19m bGFncykKIAkJcmV0dXJuIHJldDsKIAogCS8qIFdhUHJvZ3JhbU1pQXJiT25PZmZBcm91bmRNaVNl dENvbnRleHQ6aXZiLHZsdixoc3csYmR3LGNodiAqLwotCWlmIChJTlRFTF9JTkZPKHJpbmctPmRl diktPmdlbiA+PSA3KSB7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9BUkJfT05fT0ZGIHwg TUlfQVJCX0RJU0FCTEUpOworCWlmIChJTlRFTF9JTkZPKGVuZ2luZS0+ZGV2KS0+Z2VuID49IDcp IHsKKwkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfQVJCX09OX09GRiB8IE1JX0FSQl9ESVNB QkxFKTsKIAkJaWYgKG51bV9yaW5ncykgewogCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2ln bmFsbGVyOwogCi0JCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0o bnVtX3JpbmdzKSk7Ci0JCQlmb3JfZWFjaF9yaW5nKHNpZ25hbGxlciwgdG9faTkxNShyaW5nLT5k ZXYpLCBpKSB7Ci0JCQkJaWYgKHNpZ25hbGxlciA9PSByaW5nKQorCQkJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwKKwkJCQkJTUlfTE9BRF9SRUdJU1RFUl9JTU0obnVtX3JpbmdzKSk7CisJCQlmb3Jf ZWFjaF9yaW5nKHNpZ25hbGxlciwgdG9faTkxNShlbmdpbmUtPmRldiksIGkpIHsKKwkJCQlpZiAo c2lnbmFsbGVyID09IGVuZ2luZSkKIAkJCQkJY29udGludWU7CiAKLQkJCQlpbnRlbF9yaW5nX2Vt aXRfcmVnKHJpbmcsIFJJTkdfUFNNSV9DVEwoc2lnbmFsbGVyLT5tbWlvX2Jhc2UpKTsKLQkJCQlp bnRlbF9yaW5nX2VtaXQocmluZywgX01BU0tFRF9CSVRfRU5BQkxFKEdFTjZfUFNNSV9TTEVFUF9N U0dfRElTQUJMRSkpOworCQkJCWludGVsX3JpbmdfZW1pdF9yZWcoZW5naW5lLAorCQkJCQkJICAg IFJJTkdfUFNNSV9DVEwoc2lnbmFsbGVyLT5tbWlvX2Jhc2UpKTsKKwkJCQlpbnRlbF9yaW5nX2Vt aXQoZW5naW5lLAorCQkJCQkJX01BU0tFRF9CSVRfRU5BQkxFKEdFTjZfUFNNSV9TTEVFUF9NU0df RElTQUJMRSkpOwogCQkJfQogCQl9CiAJfQogCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05P T1ApOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9TRVRfQ09OVEVYVCk7Ci0JaW50ZWxfcmlu Z19lbWl0KHJpbmcsIGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChyZXEtPmN0eC0+bGVnYWN5X2h3 X2N0eC5yY3Nfc3RhdGUpIHwKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKKwlp bnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9TRVRfQ09OVEVYVCk7CisJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwKKwkJCWk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChyZXEtPmN0eC0+bGVnYWN5X2h3 X2N0eC5yY3Nfc3RhdGUpIHwKIAkJCWZsYWdzKTsKIAkvKgogCSAqIHcvYTogTUlfU0VUX0NPTlRF WFQgbXVzdCBhbHdheXMgYmUgZm9sbG93ZWQgYnkgTUlfTk9PUAogCSAqIFdhTWlTZXRDb250ZXh0 X0hhbmc6c25iLGl2Yix2bHYKIAkgKi8KLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7 CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7CiAKLQlpZiAoSU5URUxfSU5GTyhy aW5nLT5kZXYpLT5nZW4gPj0gNykgeworCWlmIChJTlRFTF9JTkZPKGVuZ2luZS0+ZGV2KS0+Z2Vu ID49IDcpIHsKIAkJaWYgKG51bV9yaW5ncykgewogCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAq c2lnbmFsbGVyOwogCi0JCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9J TU0obnVtX3JpbmdzKSk7Ci0JCQlmb3JfZWFjaF9yaW5nKHNpZ25hbGxlciwgdG9faTkxNShyaW5n LT5kZXYpLCBpKSB7Ci0JCQkJaWYgKHNpZ25hbGxlciA9PSByaW5nKQorCQkJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwKKwkJCQkJTUlfTE9BRF9SRUdJU1RFUl9JTU0obnVtX3JpbmdzKSk7CisJCQlm b3JfZWFjaF9yaW5nKHNpZ25hbGxlciwgdG9faTkxNShlbmdpbmUtPmRldiksIGkpIHsKKwkJCQlp ZiAoc2lnbmFsbGVyID09IGVuZ2luZSkKIAkJCQkJY29udGludWU7CiAKLQkJCQlpbnRlbF9yaW5n X2VtaXRfcmVnKHJpbmcsIFJJTkdfUFNNSV9DVEwoc2lnbmFsbGVyLT5tbWlvX2Jhc2UpKTsKLQkJ CQlpbnRlbF9yaW5nX2VtaXQocmluZywgX01BU0tFRF9CSVRfRElTQUJMRShHRU42X1BTTUlfU0xF RVBfTVNHX0RJU0FCTEUpKTsKKwkJCQlpbnRlbF9yaW5nX2VtaXRfcmVnKGVuZ2luZSwKKwkJCQkJ CSAgICBSSU5HX1BTTUlfQ1RMKHNpZ25hbGxlci0+bW1pb19iYXNlKSk7CisJCQkJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwKKwkJCQkJCV9NQVNLRURfQklUX0RJU0FCTEUoR0VONl9QU01JX1NMRUVQ X01TR19ESVNBQkxFKSk7CiAJCQl9CiAJCX0KLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0FS Ql9PTl9PRkYgfCBNSV9BUkJfRU5BQkxFKTsKKwkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlf QVJCX09OX09GRiB8IE1JX0FSQl9FTkFCTEUpOwogCX0KIAotCWludGVsX3JpbmdfYWR2YW5jZShy aW5nKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVybiByZXQ7CiB9CkBA IC02NDgsMjUgKzY1NSwyNiBAQCBuZWVkc19wZF9sb2FkX3Bvc3Qoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywgc3RydWN0IGludGVsX2NvbnRleHQgKnRvLAogc3RhdGljIGludCBkb19zd2l0 Y2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7CiAJc3RydWN0IGludGVsX2Nv bnRleHQgKnRvID0gcmVxLT5jdHg7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJl cS0+cmluZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5nLT5kZXYt PmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpmcm9tID0gcmluZy0+bGFzdF9j b250ZXh0OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+cmluZzsKKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmRldi0+ZGV2X3ByaXZh dGU7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmZyb20gPSBlbmdpbmUtPmxhc3RfY29udGV4dDsK IAl1MzIgaHdfZmxhZ3MgPSAwOwogCWJvb2wgdW5pbml0aWFsaXplZCA9IGZhbHNlOwogCWludCBy ZXQsIGk7CiAKLQlpZiAoZnJvbSAhPSBOVUxMICYmIHJpbmcgPT0gJmRldl9wcml2LT5yaW5nW1JD U10pIHsKKwlpZiAoZnJvbSAhPSBOVUxMICYmIGVuZ2luZSA9PSAmZGV2X3ByaXYtPnJpbmdbUkNT XSkgewogCQlCVUdfT04oZnJvbS0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUgPT0gTlVMTCk7CiAJ CUJVR19PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChmcm9tLT5sZWdhY3lfaHdfY3R4LnJjc19z dGF0ZSkpOwogCX0KIAotCWlmIChzaG91bGRfc2tpcF9zd2l0Y2gocmluZywgZnJvbSwgdG8pKQor CWlmIChzaG91bGRfc2tpcF9zd2l0Y2goZW5naW5lLCBmcm9tLCB0bykpCiAJCXJldHVybiAwOwog CiAJLyogVHJ5aW5nIHRvIHBpbiBmaXJzdCBtYWtlcyBlcnJvciBoYW5kbGluZyBlYXNpZXIuICov Ci0JaWYgKHJpbmcgPT0gJmRldl9wcml2LT5yaW5nW1JDU10pIHsKKwlpZiAoZW5naW5lID09ICZk ZXZfcHJpdi0+cmluZ1tSQ1NdKSB7CiAJCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3Bpbih0by0+ bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUsCi0JCQkJCSAgICBnZXRfY29udGV4dF9hbGlnbm1lbnQo cmluZy0+ZGV2KSwgMCk7CisJCQkJCSAgICBnZXRfY29udGV4dF9hbGlnbm1lbnQoZW5naW5lLT5k ZXYpLAorCQkJCQkgICAgMCk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTY3 NiwyMyArNjg0LDIzIEBAIHN0YXRpYyBpbnQgZG9fc3dpdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcmVxKQogCSAqIGV2aWN0X2V2ZXJ5dGhpbmcgLSBhcyBhIGxhc3QgZGl0Y2ggZ3R0 IGRlZnJhZyBlZmZvcnQgdGhhdCBhbHNvCiAJICogc3dpdGNoZXMgdG8gdGhlIGRlZmF1bHQgY29u dGV4dC4gSGVuY2Ugd2UgbmVlZCB0byByZWxvYWQgZnJvbSBoZXJlLgogCSAqLwotCWZyb20gPSBy aW5nLT5sYXN0X2NvbnRleHQ7CisJZnJvbSA9IGVuZ2luZS0+bGFzdF9jb250ZXh0OwogCi0JaWYg KG5lZWRzX3BkX2xvYWRfcHJlKHJpbmcsIHRvKSkgeworCWlmIChuZWVkc19wZF9sb2FkX3ByZShl bmdpbmUsIHRvKSkgewogCQkvKiBPbGRlciBHRU5zIGFuZCBub24gcmVuZGVyIHJpbmdzIHN0aWxs IHdhbnQgdGhlIGxvYWQgZmlyc3QsCiAJCSAqICJQUF9EQ0xWIGZvbGxvd2VkIGJ5IFBQX0RJUl9C QVNFIHJlZ2lzdGVyIHRocm91Z2ggTG9hZAogCQkgKiBSZWdpc3RlciBJbW1lZGlhdGUgY29tbWFu ZHMgaW4gUmluZyBCdWZmZXIgYmVmb3JlIHN1Ym1pdHRpbmcKIAkJICogYSBjb250ZXh0LiIqLwot CQl0cmFjZV9zd2l0Y2hfbW0ocmluZywgdG8pOworCQl0cmFjZV9zd2l0Y2hfbW0oZW5naW5lLCB0 byk7CiAJCXJldCA9IHRvLT5wcGd0dC0+c3dpdGNoX21tKHRvLT5wcGd0dCwgcmVxKTsKIAkJaWYg KHJldCkKIAkJCWdvdG8gdW5waW5fb3V0OwogCiAJCS8qIERvaW5nIGEgUEQgbG9hZCBhbHdheXMg cmVsb2FkcyB0aGUgcGFnZSBkaXJzICovCi0JCXRvLT5wcGd0dC0+cGRfZGlydHlfcmluZ3MgJj0g fmludGVsX3JpbmdfZmxhZyhyaW5nKTsKKwkJdG8tPnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncyAmPSB+ aW50ZWxfcmluZ19mbGFnKGVuZ2luZSk7CiAJfQogCi0JaWYgKHJpbmcgIT0gJmRldl9wcml2LT5y aW5nW1JDU10pIHsKKwlpZiAoZW5naW5lICE9ICZkZXZfcHJpdi0+cmluZ1tSQ1NdKSB7CiAJCWlm IChmcm9tKQogCQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShmcm9tKTsKIAkJZ290byBk b25lOwpAQCAtNzE3LDE0ICs3MjUsMTQgQEAgc3RhdGljIGludCBkb19zd2l0Y2goc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJCSAqIHNwYWNlLiBUaGlzIG1lYW5zIHdlIG11c3Qg ZW5mb3JjZSB0aGF0IGEgcGFnZSB0YWJsZSBsb2FkCiAJCSAqIG9jY3VyIHdoZW4gdGhpcyBvY2N1 cnMuICovCiAJfSBlbHNlIGlmICh0by0+cHBndHQgJiYKLQkJICAgKGludGVsX3JpbmdfZmxhZyhy aW5nKSAmIHRvLT5wcGd0dC0+cGRfZGlydHlfcmluZ3MpKSB7CisJCSAgIChpbnRlbF9yaW5nX2Zs YWcoZW5naW5lKSAmIHRvLT5wcGd0dC0+cGRfZGlydHlfcmluZ3MpKSB7CiAJCWh3X2ZsYWdzIHw9 IE1JX0ZPUkNFX1JFU1RPUkU7Ci0JCXRvLT5wcGd0dC0+cGRfZGlydHlfcmluZ3MgJj0gfmludGVs X3JpbmdfZmxhZyhyaW5nKTsKKwkJdG8tPnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncyAmPSB+aW50ZWxf cmluZ19mbGFnKGVuZ2luZSk7CiAJfQogCiAJLyogV2Ugc2hvdWxkIG5ldmVyIGVtaXQgc3dpdGNo X21tIG1vcmUgdGhhbiBvbmNlICovCi0JV0FSTl9PTihuZWVkc19wZF9sb2FkX3ByZShyaW5nLCB0 bykgJiYKLQkJbmVlZHNfcGRfbG9hZF9wb3N0KHJpbmcsIHRvLCBod19mbGFncykpOworCVdBUk5f T04obmVlZHNfcGRfbG9hZF9wcmUoZW5naW5lLCB0bykgJiYKKwkJbmVlZHNfcGRfbG9hZF9wb3N0 KGVuZ2luZSwgdG8sIGh3X2ZsYWdzKSk7CiAKIAlyZXQgPSBtaV9zZXRfY29udGV4dChyZXEsIGh3 X2ZsYWdzKTsKIAlpZiAocmV0KQpAQCAtNzMzLDggKzc0MSw4IEBAIHN0YXRpYyBpbnQgZG9fc3dp dGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCS8qIEdFTjggZG9lcyAqbm90 KiByZXF1aXJlIGFuIGV4cGxpY2l0IHJlbG9hZCBpZiB0aGUgUERQcyBoYXZlIGJlZW4KIAkgKiBz ZXR1cCwgYW5kIHdlIGRvIG5vdCB3aXNoIHRvIG1vdmUgdGhlbS4KIAkgKi8KLQlpZiAobmVlZHNf cGRfbG9hZF9wb3N0KHJpbmcsIHRvLCBod19mbGFncykpIHsKLQkJdHJhY2Vfc3dpdGNoX21tKHJp bmcsIHRvKTsKKwlpZiAobmVlZHNfcGRfbG9hZF9wb3N0KGVuZ2luZSwgdG8sIGh3X2ZsYWdzKSkg eworCQl0cmFjZV9zd2l0Y2hfbW0oZW5naW5lLCB0byk7CiAJCXJldCA9IHRvLT5wcGd0dC0+c3dp dGNoX21tKHRvLT5wcGd0dCwgcmVxKTsKIAkJLyogVGhlIGhhcmR3YXJlIGNvbnRleHQgc3dpdGNo IGlzIGVtaXR0ZWQsIGJ1dCB3ZSBoYXZlbid0CiAJCSAqIGFjdHVhbGx5IGNoYW5nZWQgdGhlIHN0 YXRlIC0gc28gaXQncyBwcm9iYWJseSBzYWZlIHRvIGJhaWwKQEAgLTc4NywxMSArNzk1LDExIEBA IHN0YXRpYyBpbnQgZG9fc3dpdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQog CiBkb25lOgogCWk5MTVfZ2VtX2NvbnRleHRfcmVmZXJlbmNlKHRvKTsKLQlyaW5nLT5sYXN0X2Nv bnRleHQgPSB0bzsKKwllbmdpbmUtPmxhc3RfY29udGV4dCA9IHRvOwogCiAJaWYgKHVuaW5pdGlh bGl6ZWQpIHsKLQkJaWYgKHJpbmctPmluaXRfY29udGV4dCkgewotCQkJcmV0ID0gcmluZy0+aW5p dF9jb250ZXh0KHJlcSk7CisJCWlmIChlbmdpbmUtPmluaXRfY29udGV4dCkgeworCQkJcmV0ID0g ZW5naW5lLT5pbml0X2NvbnRleHQocmVxKTsKIAkJCWlmIChyZXQpCiAJCQkJRFJNX0VSUk9SKCJy aW5nIGluaXQgY29udGV4dDogJWRcbiIsIHJldCk7CiAJCX0KQEAgLTgwMCw3ICs4MDgsNyBAQCBk b25lOgogCXJldHVybiAwOwogCiB1bnBpbl9vdXQ6Ci0JaWYgKHJpbmctPmlkID09IFJDUykKKwlp ZiAoZW5naW5lLT5pZCA9PSBSQ1MpCiAJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHRvLT5s ZWdhY3lfaHdfY3R4LnJjc19zdGF0ZSk7CiAJcmV0dXJuIHJldDsKIH0KQEAgLTgyMCwxOCArODI4 LDE4IEBAIHVucGluX291dDoKICAqLwogaW50IGk5MTVfc3dpdGNoX2NvbnRleHQoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZyA9IHJlcS0+cmluZzsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByaW5n LT5kZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJl cS0+cmluZzsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmRl di0+ZGV2X3ByaXZhdGU7CiAKIAlXQVJOX09OKGk5MTUuZW5hYmxlX2V4ZWNsaXN0cyk7CiAJV0FS Tl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKIAog CWlmIChyZXEtPmN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUgPT0gTlVMTCkgeyAvKiBXZSBo YXZlIHRoZSBmYWtlIGNvbnRleHQgKi8KLQkJaWYgKHJlcS0+Y3R4ICE9IHJpbmctPmxhc3RfY29u dGV4dCkgeworCQlpZiAocmVxLT5jdHggIT0gZW5naW5lLT5sYXN0X2NvbnRleHQpIHsKIAkJCWk5 MTVfZ2VtX2NvbnRleHRfcmVmZXJlbmNlKHJlcS0+Y3R4KTsKLQkJCWlmIChyaW5nLT5sYXN0X2Nv bnRleHQpCi0JCQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShyaW5nLT5sYXN0X2NvbnRl eHQpOwotCQkJcmluZy0+bGFzdF9jb250ZXh0ID0gcmVxLT5jdHg7CisJCQlpZiAoZW5naW5lLT5s YXN0X2NvbnRleHQpCisJCQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShlbmdpbmUtPmxh c3RfY29udGV4dCk7CisJCQllbmdpbmUtPmxhc3RfY29udGV4dCA9IHJlcS0+Y3R4OwogCQl9CiAJ CXJldHVybiAwOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2RlYnVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kZWJ1Zy5jCmluZGV4IDE3 Mjk5ZDA0MTg5Zi4uMjAyYTdlNmFlMjk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9kZWJ1Zy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Rl YnVnLmMKQEAgLTM2LDI5ICszNiwzMCBAQCBpOTE1X3ZlcmlmeV9saXN0cyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCXN0YXRpYyBpbnQgd2FybmVkOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lOwogCWludCBlcnIgPSAwOwogCWludCBpOwogCiAJaWYgKHdhcm5lZCkKIAkJ cmV0dXJuIDA7CiAKLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7Ci0JCWxpc3Rf Zm9yX2VhY2hfZW50cnkob2JqLCAmcmluZy0+YWN0aXZlX2xpc3QsIHJpbmdfbGlzdFtyaW5nLT5p ZF0pIHsKKwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwkJbGlzdF9mb3Jf ZWFjaF9lbnRyeShvYmosICZlbmdpbmUtPmFjdGl2ZV9saXN0LAorCQkJCSAgICByaW5nX2xpc3Rb ZW5naW5lLT5pZF0pIHsKIAkJCWlmIChvYmotPmJhc2UuZGV2ICE9IGRldiB8fAogCQkJICAgICFh dG9taWNfcmVhZCgmb2JqLT5iYXNlLnJlZmNvdW50LnJlZmNvdW50KSkgewogCQkJCURSTV9FUlJP UigiJXM6IGZyZWVkIGFjdGl2ZSBvYmogJXBcbiIsCi0JCQkJCSAgcmluZy0+bmFtZSwgb2JqKTsK KwkJCQkJICBlbmdpbmUtPm5hbWUsIG9iaik7CiAJCQkJZXJyKys7CiAJCQkJYnJlYWs7CiAJCQl9 IGVsc2UgaWYgKCFvYmotPmFjdGl2ZSB8fAotCQkJCSAgIG9iai0+bGFzdF9yZWFkX3JlcVtyaW5n LT5pZF0gPT0gTlVMTCkgeworCQkJCSAgIG9iai0+bGFzdF9yZWFkX3JlcVtlbmdpbmUtPmlkXSA9 PSBOVUxMKSB7CiAJCQkJRFJNX0VSUk9SKCIlczogaW52YWxpZCBhY3RpdmUgb2JqICVwXG4iLAot CQkJCQkgIHJpbmctPm5hbWUsIG9iaik7CisJCQkJCSAgZW5naW5lLT5uYW1lLCBvYmopOwogCQkJ CWVycisrOwogCQkJfSBlbHNlIGlmIChvYmotPmJhc2Uud3JpdGVfZG9tYWluKSB7CiAJCQkJRFJN X0VSUk9SKCIlczogaW52YWxpZCB3cml0ZSBvYmogJXAgKHcgJXgpXG4iLAotCQkJCQkgIHJpbmct Pm5hbWUsCisJCQkJCSAgZW5naW5lLT5uYW1lLAogCQkJCQkgIG9iaiwgb2JqLT5iYXNlLndyaXRl X2RvbWFpbik7CiAJCQkJZXJyKys7CiAJCQl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmMKaW5kZXggMTMyOGJjNTAyMWI0Li5iNzM0OTZlYTU1ODMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKQEAgLTEwOTUsNyArMTA5NSw3 IEBAIHZvaWQKIGk5MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUoc3RydWN0IGxpc3Rf aGVhZCAqdm1hcywKIAkJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmlu ZyhyZXEpOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IGk5MTVfZ2VtX3JlcXVl c3RfZ2V0X3JpbmcocmVxKTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAogCWxpc3RfZm9yX2Vh Y2hfZW50cnkodm1hLCB2bWFzLCBleGVjX2xpc3QpIHsKQEAgLTExMjIsNyArMTEyMiw3IEBAIGk5 MTVfZ2VtX2V4ZWNidWZmZXJfbW92ZV90b19hY3RpdmUoc3RydWN0IGxpc3RfaGVhZCAqdm1hcywK IAkJaWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX05FRURTX0ZFTkNFKSB7CiAJCQlpOTE1 X2dlbV9yZXF1ZXN0X2Fzc2lnbigmb2JqLT5sYXN0X2ZlbmNlZF9yZXEsIHJlcSk7CiAJCQlpZiAo ZW50cnktPmZsYWdzICYgX19FWEVDX09CSkVDVF9IQVNfRkVOQ0UpIHsKLQkJCQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHJpbmctPmRldik7CisJCQkJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmdpbmUtPmRldik7CiAJCQkJ bGlzdF9tb3ZlX3RhaWwoJmRldl9wcml2LT5mZW5jZV9yZWdzW29iai0+ZmVuY2VfcmVnXS5scnVf bGlzdCwKIAkJCQkJICAgICAgICZkZXZfcHJpdi0+bW0uZmVuY2VfbGlzdCk7CiAJCQl9CkBAIC0x MTQ2LDExICsxMTQ2LDExIEBAIHN0YXRpYyBpbnQKIGk5MTVfcmVzZXRfZ2VuN19zb2xfb2Zmc2V0 cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5nOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJaW50IHJldCwg aTsKIAotCWlmICghSVNfR0VONyhkZXYpIHx8IHJpbmcgIT0gJmRldl9wcml2LT5yaW5nW1JDU10p IHsKKwlpZiAoIUlTX0dFTjcoZGV2KSB8fCBlbmdpbmUgIT0gJmRldl9wcml2LT5yaW5nW1JDU10p IHsKIAkJRFJNX0RFQlVHKCJzb2wgcmVzZXQgaXMgZ2VuNy9yY3Mgb25seVxuIik7CiAJCXJldHVy biAtRUlOVkFMOwogCX0KQEAgLTExNjAsMTIgKzExNjAsMTIgQEAgaTkxNV9yZXNldF9nZW43X3Nv bF9vZmZzZXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXJldHVybiByZXQ7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgNDsgaSsrKSB7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9MT0FEX1JF R0lTVEVSX0lNTSgxKSk7Ci0JCWludGVsX3JpbmdfZW1pdF9yZWcocmluZywgR0VON19TT19XUklU RV9PRkZTRVQoaSkpOwotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7CisJCWludGVsX3Jpbmdf ZW1pdChlbmdpbmUsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsKKwkJaW50ZWxfcmluZ19lbWl0 X3JlZyhlbmdpbmUsIEdFTjdfU09fV1JJVEVfT0ZGU0VUKGkpKTsKKwkJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwgMCk7CiAJfQogCi0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOworCWludGVsX3Jp bmdfYWR2YW5jZShlbmdpbmUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMjI5LDcgKzEyMjksNyBA QCBpOTE1X2dlbV9yaW5nYnVmZmVyX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1ZmZlcl9w YXJhbXMgKnBhcmFtcywKIAkJCSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKQogewogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwYXJhbXMtPmRldjsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nID0gcGFyYW1zLT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IHBhcmFtcy0+cmluZzsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwogCXU2NCBleGVjX3N0YXJ0LCBleGVjX2xlbjsKIAlpbnQgaW5zdHBf bW9kZTsKQEAgLTEyNDQsOCArMTI0NCw4IEBAIGk5MTVfZ2VtX3JpbmdidWZmZXJfc3VibWlzc2lv bihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKLQlXQVJOKHBhcmFtcy0+Y3R4LT5wcGd0dCAmJiBwYXJhbXMtPmN0eC0+cHBn dHQtPnBkX2RpcnR5X3JpbmdzICYgKDE8PHJpbmctPmlkKSwKLQkgICAgICIlcyBkaWRuJ3QgY2xl YXIgcmVsb2FkXG4iLCByaW5nLT5uYW1lKTsKKwlXQVJOKHBhcmFtcy0+Y3R4LT5wcGd0dCAmJiBw YXJhbXMtPmN0eC0+cHBndHQtPnBkX2RpcnR5X3JpbmdzICYgKDE8PGVuZ2luZS0+aWQpLAorCSAg ICAgIiVzIGRpZG4ndCBjbGVhciByZWxvYWRcbiIsIGVuZ2luZS0+bmFtZSk7CiAKIAlpbnN0cF9t b2RlID0gYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfQ09OU1RBTlRTX01BU0s7CiAJaW5zdHBfbWFz ayA9IEk5MTVfRVhFQ19DT05TVEFOVFNfTUFTSzsKQEAgLTEyNTMsNyArMTI1Myw3IEBAIGk5MTVf Z2VtX3JpbmdidWZmZXJfc3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAq cGFyYW1zLAogCWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5UU19SRUxfR0VORVJBTDoKIAljYXNlIEk5 MTVfRVhFQ19DT05TVEFOVFNfQUJTT0xVVEU6CiAJY2FzZSBJOTE1X0VYRUNfQ09OU1RBTlRTX1JF TF9TVVJGQUNFOgotCQlpZiAoaW5zdHBfbW9kZSAhPSAwICYmIHJpbmcgIT0gJmRldl9wcml2LT5y aW5nW1JDU10pIHsKKwkJaWYgKGluc3RwX21vZGUgIT0gMCAmJiBlbmdpbmUgIT0gJmRldl9wcml2 LT5yaW5nW1JDU10pIHsKIAkJCURSTV9ERUJVRygibm9uLTAgcmVsIGNvbnN0YW50cyBtb2RlIG9u IG5vbi1SQ1NcbiIpOwogCQkJcmV0dXJuIC1FSU5WQUw7CiAJCX0KQEAgLTEyODAsMTcgKzEyODAs MTcgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZm ZXJfcGFyYW1zICpwYXJhbXMsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChyaW5nID09 ICZkZXZfcHJpdi0+cmluZ1tSQ1NdICYmCisJaWYgKGVuZ2luZSA9PSAmZGV2X3ByaXYtPnJpbmdb UkNTXSAmJgogCSAgICBpbnN0cF9tb2RlICE9IGRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNf bW9kZSkgewogCQlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVzdCwgNCk7CiAJ CWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCi0JCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9O T09QKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKDEpKTsK LQkJaW50ZWxfcmluZ19lbWl0X3JlZyhyaW5nLCBJTlNUUE0pOwotCQlpbnRlbF9yaW5nX2VtaXQo cmluZywgaW5zdHBfbWFzayA8PCAxNiB8IGluc3RwX21vZGUpOwotCQlpbnRlbF9yaW5nX2FkdmFu Y2UocmluZyk7CisJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX05PT1ApOworCQlpbnRlbF9y aW5nX2VtaXQoZW5naW5lLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7CisJCWludGVsX3Jpbmdf ZW1pdF9yZWcoZW5naW5lLCBJTlNUUE0pOworCQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBpbnN0 cF9tYXNrIDw8IDE2IHwgaW5zdHBfbW9kZSk7CisJCWludGVsX3JpbmdfYWR2YW5jZShlbmdpbmUp OwogCiAJCWRldl9wcml2LT5yZWxhdGl2ZV9jb25zdGFudHNfbW9kZSA9IGluc3RwX21vZGU7CiAJ fQpAQCAtMTMwOCw3ICsxMzA4LDcgQEAgaTkxNV9nZW1fcmluZ2J1ZmZlcl9zdWJtaXNzaW9uKHN0 cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJaWYgKGV4ZWNfbGVuID09IDAp CiAJCWV4ZWNfbGVuID0gcGFyYW1zLT5iYXRjaF9vYmotPmJhc2Uuc2l6ZTsKIAotCXJldCA9IHJp bmctPmRpc3BhdGNoX2V4ZWNidWZmZXIocGFyYW1zLT5yZXF1ZXN0LAorCXJldCA9IGVuZ2luZS0+ ZGlzcGF0Y2hfZXhlY2J1ZmZlcihwYXJhbXMtPnJlcXVlc3QsCiAJCQkJCWV4ZWNfc3RhcnQsIGV4 ZWNfbGVuLAogCQkJCQlwYXJhbXMtPmRpc3BhdGNoX2ZsYWdzKTsKIAlpZiAocmV0KQpAQCAtMTQz Miw3ICsxNDMyLDcgQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAogCXN0cnVjdCBlYl92bWFzICplYjsKIAlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqYmF0Y2hfb2JqOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3Qy IHNoYWRvd19leGVjX2VudHJ5OwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHg7 CiAJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07CiAJc3RydWN0IGk5MTVfZXhlY2J1ZmZl cl9wYXJhbXMgcGFyYW1zX21hc3RlcjsgLyogWFhYOiB3aWxsIGJlIHJlbW92ZWQgbGF0ZXIgKi8K QEAgLTE0NTksNyArMTQ1OSw3IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAoYXJncy0+ZmxhZ3MgJiBJOTE1X0VYRUNfSVNf UElOTkVEKQogCQlkaXNwYXRjaF9mbGFncyB8PSBJOTE1X0RJU1BBVENIX1BJTk5FRDsKIAotCXJl dCA9IGViX3NlbGVjdF9yaW5nKGRldl9wcml2LCBmaWxlLCBhcmdzLCAmcmluZyk7CisJcmV0ID0g ZWJfc2VsZWN0X3JpbmcoZGV2X3ByaXYsIGZpbGUsIGFyZ3MsICZlbmdpbmUpOwogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CiAKQEAgLTE0NzMsOSArMTQ3Myw5IEBAIGk5MTVfZ2VtX2RvX2V4ZWNi dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJCURSTV9ERUJVRygi UlMgaXMgb25seSBhbGxvd2VkIGZvciBIYXN3ZWxsLCBHZW44IGFuZCBhYm92ZVxuIik7CiAJCQly ZXR1cm4gLUVJTlZBTDsKIAkJfQotCQlpZiAocmluZy0+aWQgIT0gUkNTKSB7CisJCWlmIChlbmdp bmUtPmlkICE9IFJDUykgewogCQkJRFJNX0RFQlVHKCJSUyBpcyBub3QgYXZhaWxhYmxlIG9uICVz XG4iLAotCQkJCSByaW5nLT5uYW1lKTsKKwkJCQkgZW5naW5lLT5uYW1lKTsKIAkJCXJldHVybiAt RUlOVkFMOwogCQl9CiAKQEAgLTE0ODgsNyArMTQ4OCw3IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZm ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlpZiAocmV0KQogCQlnb3Rv IHByZV9tdXRleF9lcnI7CiAKLQljdHggPSBpOTE1X2dlbV92YWxpZGF0ZV9jb250ZXh0KGRldiwg ZmlsZSwgcmluZywgY3R4X2lkKTsKKwljdHggPSBpOTE1X2dlbV92YWxpZGF0ZV9jb250ZXh0KGRl diwgZmlsZSwgZW5naW5lLCBjdHhfaWQpOwogCWlmIChJU19FUlIoY3R4KSkgewogCQltdXRleF91 bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAkJcmV0ID0gUFRSX0VSUihjdHgpOwpAQCAtMTUy Miw3ICsxNTIyLDggQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAogCiAJLyogTW92ZSB0aGUgb2JqZWN0cyBlbi1tYXNzZSBpbnRvIHRo ZSBHVFQsIGV2aWN0aW5nIGlmIG5lY2Vzc2FyeS4gKi8KIAluZWVkX3JlbG9jcyA9IChhcmdzLT5m bGFncyAmIEk5MTVfRVhFQ19OT19SRUxPQykgPT0gMDsKLQlyZXQgPSBpOTE1X2dlbV9leGVjYnVm ZmVyX3Jlc2VydmUocmluZywgJmViLT52bWFzLCBjdHgsICZuZWVkX3JlbG9jcyk7CisJcmV0ID0g aTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlKGVuZ2luZSwgJmViLT52bWFzLCBjdHgsCisJCQkJ CSAgJm5lZWRfcmVsb2NzKTsKIAlpZiAocmV0KQogCQlnb3RvIGVycjsKIApAQCAtMTUzMSw3ICsx NTMyLDggQEAgaTkxNV9nZW1fZG9fZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCQlyZXQgPSBpOTE1X2dlbV9leGVjYnVmZmVyX3JlbG9jYXRlKGViKTsKIAlp ZiAocmV0KSB7CiAJCWlmIChyZXQgPT0gLUVGQVVMVCkgewotCQkJcmV0ID0gaTkxNV9nZW1fZXhl Y2J1ZmZlcl9yZWxvY2F0ZV9zbG93KGRldiwgYXJncywgZmlsZSwgcmluZywKKwkJCXJldCA9IGk5 MTVfZ2VtX2V4ZWNidWZmZXJfcmVsb2NhdGVfc2xvdyhkZXYsIGFyZ3MsIGZpbGUsCisJCQkJCQkJ CWVuZ2luZSwKIAkJCQkJCQkJZWIsIGV4ZWMsIGN0eCk7CiAJCQlCVUdfT04oIW11dGV4X2lzX2xv Y2tlZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKIAkJfQpAQCAtMTU0NywxNiArMTU0OSwxNiBAQCBp OTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs CiAJfQogCiAJcGFyYW1zLT5hcmdzX2JhdGNoX3N0YXJ0X29mZnNldCA9IGFyZ3MtPmJhdGNoX3N0 YXJ0X29mZnNldDsKLQlpZiAoaTkxNV9uZWVkc19jbWRfcGFyc2VyKHJpbmcpICYmIGFyZ3MtPmJh dGNoX2xlbikgeworCWlmIChpOTE1X25lZWRzX2NtZF9wYXJzZXIoZW5naW5lKSAmJiBhcmdzLT5i YXRjaF9sZW4pIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnBhcnNlZF9iYXRjaF9v Ymo7CiAKLQkJcGFyc2VkX2JhdGNoX29iaiA9IGk5MTVfZ2VtX2V4ZWNidWZmZXJfcGFyc2Uocmlu ZywKLQkJCQkJCSAgICAgICZzaGFkb3dfZXhlY19lbnRyeSwKLQkJCQkJCSAgICAgIGViLAotCQkJ CQkJICAgICAgYmF0Y2hfb2JqLAotCQkJCQkJICAgICAgYXJncy0+YmF0Y2hfc3RhcnRfb2Zmc2V0 LAotCQkJCQkJICAgICAgYXJncy0+YmF0Y2hfbGVuLAotCQkJCQkJICAgICAgZmlsZS0+aXNfbWFz dGVyKTsKKwkJcGFyc2VkX2JhdGNoX29iaiA9IGk5MTVfZ2VtX2V4ZWNidWZmZXJfcGFyc2UoZW5n aW5lLAorCQkJCQkJCSAgICAgJnNoYWRvd19leGVjX2VudHJ5LAorCQkJCQkJCSAgICAgZWIsCisJ CQkJCQkJICAgICBiYXRjaF9vYmosCisJCQkJCQkJICAgICBhcmdzLT5iYXRjaF9zdGFydF9vZmZz ZXQsCisJCQkJCQkJICAgICBhcmdzLT5iYXRjaF9sZW4sCisJCQkJCQkJICAgICBmaWxlLT5pc19t YXN0ZXIpOwogCQlpZiAoSVNfRVJSKHBhcnNlZF9iYXRjaF9vYmopKSB7CiAJCQlyZXQgPSBQVFJf RVJSKHBhcnNlZF9iYXRjaF9vYmopOwogCQkJZ290byBlcnI7CkBAIC0xNjA4LDcgKzE2MTAsNyBA QCBpOTE1X2dlbV9kb19leGVjYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCiAJCXBhcmFtcy0+YmF0Y2hfb2JqX3ZtX29mZnNldCA9IGk5MTVfZ2VtX29ial9vZmZzZXQo YmF0Y2hfb2JqLCB2bSk7CiAKIAkvKiBBbGxvY2F0ZSBhIHJlcXVlc3QgZm9yIHRoaXMgYmF0Y2gg YnVmZmVyIG5pY2UgYW5kIGVhcmx5LiAqLwotCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mo cmluZywgY3R4KTsKKwlyZXEgPSBpOTE1X2dlbV9yZXF1ZXN0X2FsbG9jKGVuZ2luZSwgY3R4KTsK IAlpZiAoSVNfRVJSKHJlcSkpIHsKIAkJcmV0ID0gUFRSX0VSUihyZXEpOwogCQlnb3RvIGVycl9i YXRjaF91bnBpbjsKQEAgLTE2MjYsNyArMTYyOCw3IEBAIGk5MTVfZ2VtX2RvX2V4ZWNidWZmZXIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkgKi8KIAlwYXJhbXMtPmRldiAg ICAgICAgICAgICAgICAgICAgID0gZGV2OwogCXBhcmFtcy0+ZmlsZSAgICAgICAgICAgICAgICAg ICAgPSBmaWxlOwotCXBhcmFtcy0+cmluZyAgICAgICAgICAgICAgICAgICAgPSByaW5nOworCXBh cmFtcy0+cmluZyAgICAgICAgICAgICAgICAgICAgPSBlbmdpbmU7CiAJcGFyYW1zLT5kaXNwYXRj aF9mbGFncyAgICAgICAgICA9IGRpc3BhdGNoX2ZsYWdzOwogCXBhcmFtcy0+YmF0Y2hfb2JqICAg ICAgICAgICAgICAgPSBiYXRjaF9vYmo7CiAJcGFyYW1zLT5jdHggICAgICAgICAgICAgICAgICAg ICA9IGN0eDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggN2I4ZGU4NWM1Zjc2 Li4xYmM3Nzc5MWJjOTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBAIC02NTgs NyArNjU4LDcgQEAgc3RhdGljIGludCBnZW44X3dyaXRlX3BkcChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcSwKIAkJCSAgdW5zaWduZWQgZW50cnksCiAJCQkgIGRtYV9hZGRyX3QgYWRk cikKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJQlVH X09OKGVudHJ5ID49IDQpOwpAQCAtNjY3LDEzICs2NjcsMTMgQEAgc3RhdGljIGludCBnZW44X3dy aXRlX3BkcChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwogCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1N KDEpKTsKLQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIEdFTjhfUklOR19QRFBfVURXKHJpbmcs IGVudHJ5KSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIHVwcGVyXzMyX2JpdHMoYWRkcikpOwot CWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7Ci0JaW50ZWxf cmluZ19lbWl0X3JlZyhyaW5nLCBHRU44X1JJTkdfUERQX0xEVyhyaW5nLCBlbnRyeSkpOwotCWlu dGVsX3JpbmdfZW1pdChyaW5nLCBsb3dlcl8zMl9iaXRzKGFkZHIpKTsKLQlpbnRlbF9yaW5nX2Fk dmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfTE9BRF9SRUdJU1RFUl9J TU0oMSkpOworCWludGVsX3JpbmdfZW1pdF9yZWcoZW5naW5lLCBHRU44X1JJTkdfUERQX1VEVyhl bmdpbmUsIGVudHJ5KSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgdXBwZXJfMzJfYml0cyhh ZGRyKSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkp OworCWludGVsX3JpbmdfZW1pdF9yZWcoZW5naW5lLCBHRU44X1JJTkdfUERQX0xEVyhlbmdpbmUs IGVudHJ5KSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgbG93ZXJfMzJfYml0cyhhZGRyKSk7 CisJaW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE2NTAs MTEgKzE2NTAsMTEgQEAgc3RhdGljIHVpbnQzMl90IGdldF9wZF9vZmZzZXQoc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0KQogc3RhdGljIGludCBoc3dfbW1fc3dpdGNoKHN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCwKIAkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJLyogTkI6IFRM QnMgbXVzdCBiZSBmbHVzaGVkIGFuZCBpbnZhbGlkYXRlZCBiZWZvcmUgYSBzd2l0Y2ggKi8KLQly ZXQgPSByaW5nLT5mbHVzaChyZXEsIEk5MTVfR0VNX0dQVV9ET01BSU5TLCBJOTE1X0dFTV9HUFVf RE9NQUlOUyk7CisJcmV0ID0gZW5naW5lLT5mbHVzaChyZXEsIEk5MTVfR0VNX0dQVV9ET01BSU5T LCBJOTE1X0dFTV9HUFVfRE9NQUlOUyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAt MTY2MiwxMyArMTY2MiwxMyBAQCBzdGF0aWMgaW50IGhzd19tbV9zd2l0Y2goc3RydWN0IGk5MTVf aHdfcHBndHQgKnBwZ3R0LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRlbF9yaW5n X2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMikpOwotCWludGVsX3JpbmdfZW1pdF9y ZWcocmluZywgUklOR19QUF9ESVJfRENMVihyaW5nKSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcs IFBQX0RJUl9EQ0xWXzJHKTsKLQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIFJJTkdfUFBfRElS X0JBU0UocmluZykpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBnZXRfcGRfb2Zmc2V0KHBwZ3R0 KSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwotCWludGVsX3JpbmdfYWR2YW5j ZShyaW5nKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgy KSk7CisJaW50ZWxfcmluZ19lbWl0X3JlZyhlbmdpbmUsIFJJTkdfUFBfRElSX0RDTFYoZW5naW5l KSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgUFBfRElSX0RDTFZfMkcpOworCWludGVsX3Jp bmdfZW1pdF9yZWcoZW5naW5lLCBSSU5HX1BQX0RJUl9CQVNFKGVuZ2luZSkpOworCWludGVsX3Jp bmdfZW1pdChlbmdpbmUsIGdldF9wZF9vZmZzZXQocHBndHQpKTsKKwlpbnRlbF9yaW5nX2VtaXQo ZW5naW5lLCBNSV9OT09QKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVy biAwOwogfQpAQCAtMTY3NiwyMiArMTY3NiwyMiBAQCBzdGF0aWMgaW50IGhzd19tbV9zd2l0Y2go c3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAogc3RhdGljIGludCB2Z3B1X21tX3N3aXRjaChz dHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCiAJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5nOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocHBndHQtPmJhc2UuZGV2KTsKIAot CUk5MTVfV1JJVEUoUklOR19QUF9ESVJfRENMVihyaW5nKSwgUFBfRElSX0RDTFZfMkcpOwotCUk5 MTVfV1JJVEUoUklOR19QUF9ESVJfQkFTRShyaW5nKSwgZ2V0X3BkX29mZnNldChwcGd0dCkpOwor CUk5MTVfV1JJVEUoUklOR19QUF9ESVJfRENMVihlbmdpbmUpLCBQUF9ESVJfRENMVl8yRyk7CisJ STkxNV9XUklURShSSU5HX1BQX0RJUl9CQVNFKGVuZ2luZSksIGdldF9wZF9vZmZzZXQocHBndHQp KTsKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBnZW43X21tX3N3aXRjaChzdHJ1Y3QgaTkx NV9od19wcGd0dCAqcHBndHQsCiAJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7CisJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5nOwogCWludCByZXQ7CiAKIAkvKiBO QjogVExCcyBtdXN0IGJlIGZsdXNoZWQgYW5kIGludmFsaWRhdGVkIGJlZm9yZSBhIHN3aXRjaCAq LwotCXJldCA9IHJpbmctPmZsdXNoKHJlcSwgSTkxNV9HRU1fR1BVX0RPTUFJTlMsIEk5MTVfR0VN X0dQVV9ET01BSU5TKTsKKwlyZXQgPSBlbmdpbmUtPmZsdXNoKHJlcSwgSTkxNV9HRU1fR1BVX0RP TUFJTlMsIEk5MTVfR0VNX0dQVV9ET01BSU5TKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0Owog CkBAIC0xNjk5LDE3ICsxNjk5LDE3IEBAIHN0YXRpYyBpbnQgZ2VuN19tbV9zd2l0Y2goc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRl bF9yaW5nX2VtaXQocmluZywgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMikpOwotCWludGVsX3Jpbmdf ZW1pdF9yZWcocmluZywgUklOR19QUF9ESVJfRENMVihyaW5nKSk7Ci0JaW50ZWxfcmluZ19lbWl0 KHJpbmcsIFBQX0RJUl9EQ0xWXzJHKTsKLQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIFJJTkdf UFBfRElSX0JBU0UocmluZykpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBnZXRfcGRfb2Zmc2V0 KHBwZ3R0KSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwotCWludGVsX3Jpbmdf YWR2YW5jZShyaW5nKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9MT0FEX1JFR0lTVEVS X0lNTSgyKSk7CisJaW50ZWxfcmluZ19lbWl0X3JlZyhlbmdpbmUsIFJJTkdfUFBfRElSX0RDTFYo ZW5naW5lKSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgUFBfRElSX0RDTFZfMkcpOworCWlu dGVsX3JpbmdfZW1pdF9yZWcoZW5naW5lLCBSSU5HX1BQX0RJUl9CQVNFKGVuZ2luZSkpOworCWlu dGVsX3JpbmdfZW1pdChlbmdpbmUsIGdldF9wZF9vZmZzZXQocHBndHQpKTsKKwlpbnRlbF9yaW5n X2VtaXQoZW5naW5lLCBNSV9OT09QKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAog CS8qIFhYWDogUkNTIGlzIHRoZSBvbmx5IG9uZSB0byBhdXRvIGludmFsaWRhdGUgdGhlIFRMQnM/ ICovCi0JaWYgKHJpbmctPmlkICE9IFJDUykgewotCQlyZXQgPSByaW5nLT5mbHVzaChyZXEsIEk5 MTVfR0VNX0dQVV9ET01BSU5TLCBJOTE1X0dFTV9HUFVfRE9NQUlOUyk7CisJaWYgKGVuZ2luZS0+ aWQgIT0gUkNTKSB7CisJCXJldCA9IGVuZ2luZS0+Zmx1c2gocmVxLCBJOTE1X0dFTV9HUFVfRE9N QUlOUywgSTkxNV9HRU1fR1BVX0RPTUFJTlMpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsK IAl9CkBAIC0xNzIwLDE1ICsxNzIwLDE1IEBAIHN0YXRpYyBpbnQgZ2VuN19tbV9zd2l0Y2goc3Ry dWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAogc3RhdGljIGludCBnZW42X21tX3N3aXRjaChzdHJ1 Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsCiAJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7CisJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5nOwogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBwcGd0dC0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAogCi0JSTkxNV9XUklURShSSU5HX1BQX0RJ Ul9EQ0xWKHJpbmcpLCBQUF9ESVJfRENMVl8yRyk7Ci0JSTkxNV9XUklURShSSU5HX1BQX0RJUl9C QVNFKHJpbmcpLCBnZXRfcGRfb2Zmc2V0KHBwZ3R0KSk7CisJSTkxNV9XUklURShSSU5HX1BQX0RJ Ul9EQ0xWKGVuZ2luZSksIFBQX0RJUl9EQ0xWXzJHKTsKKwlJOTE1X1dSSVRFKFJJTkdfUFBfRElS X0JBU0UoZW5naW5lKSwgZ2V0X3BkX29mZnNldChwcGd0dCkpOwogCi0JUE9TVElOR19SRUFEKFJJ TkdfUFBfRElSX0RDTFYocmluZykpOworCVBPU1RJTkdfUkVBRChSSU5HX1BQX0RJUl9EQ0xWKGVu Z2luZSkpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNzM2LDEyICsxNzM2LDEyIEBAIHN0YXRpYyBp bnQgZ2VuNl9tbV9zd2l0Y2goc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAogc3RhdGljIHZv aWQgZ2VuOF9wcGd0dF9lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwog CWludCBqOwogCi0JZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaikgeworCWZvcl9lYWNo X3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaikgewogCQl1MzIgZm91cl9sZXZlbCA9IFVTRVNfRlVM TF80OEJJVF9QUEdUVChkZXYpID8gR0VOOF9HRlhfUFBHVFRfNDhCIDogMDsKLQkJSTkxNV9XUklU RShSSU5HX01PREVfR0VONyhyaW5nKSwKKwkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdp bmUpLAogCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUgfCBmb3VyX2xl dmVsKSk7CiAJfQogfQpAQCAtMTc0OSw3ICsxNzQ5LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9wcGd0 dF9lbmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHN0YXRpYyB2b2lkIGdlbjdfcHBndHRf ZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAl1aW50MzJfdCBlY29j aGssIGVjb2JpdHM7CiAJaW50IGk7CiAKQEAgLTE3NjUsOSArMTc2NSw5IEBAIHN0YXRpYyB2b2lk IGdlbjdfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCUk5MTVfV1JJ VEUoR0FNX0VDT0NISywgZWNvY2hrKTsKIAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYs IGkpIHsKKwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKIAkJLyogR0ZYX01P REUgaXMgcGVyLXJpbmcgb24gZ2VuNysgKi8KLQkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhy aW5nKSwKKwkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdpbmUpLAogCQkJICAgX01BU0tF RF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUpKTsKIAl9CiB9CkBAIC0yMjg2LDE1ICsyMjg2 LDE1IEBAIHN0YXRpYyB2b2lkIHVuZG9faWRsaW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgYm9vbCBpbnRlcnJ1cHRpYmxlKQogdm9pZCBpOTE1X2NoZWNrX2FuZF9jbGVhcl9m YXVsdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBpOwogCiAJaWYg KElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNikKIAkJcmV0dXJuOwogCi0JZm9yX2VhY2hfcmluZyhy aW5nLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkg ewogCQl1MzIgZmF1bHRfcmVnOwotCQlmYXVsdF9yZWcgPSBJOTE1X1JFQUQoUklOR19GQVVMVF9S RUcocmluZykpOworCQlmYXVsdF9yZWcgPSBJOTE1X1JFQUQoUklOR19GQVVMVF9SRUcoZW5naW5l KSk7CiAJCWlmIChmYXVsdF9yZWcgJiBSSU5HX0ZBVUxUX1ZBTElEKSB7CiAJCQlEUk1fREVCVUdf RFJJVkVSKCJVbmV4cGVjdGVkIGZhdWx0XG4iCiAJCQkJCSAiXHRBZGRyOiAweCUwOGx4XG4iCkBA IC0yMzA1LDcgKzIzMDUsNyBAQCB2b2lkIGk5MTVfY2hlY2tfYW5kX2NsZWFyX2ZhdWx0cyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJCQkgZmF1bHRfcmVnICYgUklOR19GQVVMVF9HVFRTRUxf TUFTSyA/ICJHR1RUIiA6ICJQUEdUVCIsCiAJCQkJCSBSSU5HX0ZBVUxUX1NSQ0lEKGZhdWx0X3Jl ZyksCiAJCQkJCSBSSU5HX0ZBVUxUX0ZBVUxUX1RZUEUoZmF1bHRfcmVnKSk7Ci0JCQlJOTE1X1dS SVRFKFJJTkdfRkFVTFRfUkVHKHJpbmcpLAorCQkJSTkxNV9XUklURShSSU5HX0ZBVUxUX1JFRyhl bmdpbmUpLAogCQkJCSAgIGZhdWx0X3JlZyAmIH5SSU5HX0ZBVUxUX1ZBTElEKTsKIAkJfQogCX0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCmluZGV4IDEzYjVmM2FlZDAxYy4uZDk3 Y2FkY2ZjY2IxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJv ci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTQ5NSw5 ICs0OTUsOSBAQCBpbnQgaTkxNV9lcnJvcl9zdGF0ZV90b19zdHIoc3RydWN0IGRybV9pOTE1X2Vy cm9yX3N0YXRlX2J1ZiAqbSwKIAkJaWYgKG9iaikgewogCQkJdTY0IHdhX2N0eF9vZmZzZXQgPSBv YmotPmd0dF9vZmZzZXQ7CiAJCQl1MzIgKndhX2N0eF9wYWdlID0gJm9iai0+cGFnZXNbMF1bMF07 Ci0JCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gJmRldl9wcml2LT5yaW5nW1JDU107 Ci0JCQl1MzIgd2FfY3R4X3NpemUgPSAocmluZy0+d2FfY3R4LmluZGlyZWN0X2N0eC5zaXplICsK LQkJCQkJICAgcmluZy0+d2FfY3R4LnBlcl9jdHguc2l6ZSk7CisJCQlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPnJpbmdbUkNTXTsKKwkJCXUzMiB3YV9jdHhfc2l6 ZSA9IChlbmdpbmUtPndhX2N0eC5pbmRpcmVjdF9jdHguc2l6ZSArCisJCQkJCSAgIGVuZ2luZS0+ d2FfY3R4LnBlcl9jdHguc2l6ZSk7CiAKIAkJCWVycl9wcmludGYobSwgIiVzIC0tLSBXQSBjdHgg YmF0Y2ggYnVmZmVyID0gMHglMDhsbHhcbiIsCiAJCQkJICAgZGV2X3ByaXYtPnJpbmdbaV0ubmFt ZSwgd2FfY3R4X29mZnNldCk7CkBAIC0xMDE5LDE5ICsxMDE5LDE5IEBAIHN0YXRpYyB2b2lkIGk5 MTVfZ2VtX3JlY29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWludCBpLCBjb3Vu dDsKIAogCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7Ci0JCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcgPSAmZGV2X3ByaXYtPnJpbmdbaV07CisJCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+cmluZ1tpXTsKIAkJc3RydWN0IGludGVs X3JpbmdidWZmZXIgKnJidWY7CiAKIAkJZXJyb3ItPnJpbmdbaV0ucGlkID0gLTE7CiAKLQkJaWYg KHJpbmctPmRldiA9PSBOVUxMKQorCQlpZiAoZW5naW5lLT5kZXYgPT0gTlVMTCkKIAkJCWNvbnRp bnVlOwogCiAJCWVycm9yLT5yaW5nW2ldLnZhbGlkID0gdHJ1ZTsKIAotCQlpOTE1X3JlY29yZF9y aW5nX3N0YXRlKGRldiwgZXJyb3IsIHJpbmcsICZlcnJvci0+cmluZ1tpXSk7CisJCWk5MTVfcmVj b3JkX3Jpbmdfc3RhdGUoZGV2LCBlcnJvciwgZW5naW5lLCAmZXJyb3ItPnJpbmdbaV0pOwogCi0J CXJlcXVlc3QgPSBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KHJpbmcpOworCQlyZXF1ZXN0 ID0gaTkxNV9nZW1fZmluZF9hY3RpdmVfcmVxdWVzdChlbmdpbmUpOwogCQlpZiAocmVxdWVzdCkg ewogCQkJc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07CiAKQEAgLTEwNTEsNyArMTA1MSw3 IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlY29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJaWYgKEhBU19CUk9LRU5fQ1NfVExCKGRldl9wcml2LT5kZXYpKQogCQkJCWVycm9y LT5yaW5nW2ldLndhX2JhdGNoYnVmZmVyID0KIAkJCQkJaTkxNV9lcnJvcl9nZ3R0X29iamVjdF9j cmVhdGUoZGV2X3ByaXYsCi0JCQkJCQkJICAgICByaW5nLT5zY3JhdGNoLm9iaik7CisJCQkJCQkJ ICAgICBlbmdpbmUtPnNjcmF0Y2gub2JqKTsKIAogCQkJaWYgKHJlcXVlc3QtPnBpZCkgewogCQkJ CXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsKQEAgLTEwNzMsMTEgKzEwNzMsMTEgQEAgc3RhdGlj IHZvaWQgaTkxNV9nZW1fcmVjb3JkX3JpbmdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkg KiBleGVjdXRlZCkuCiAJCQkgKi8KIAkJCWlmIChyZXF1ZXN0KQotCQkJCXJidWYgPSByZXF1ZXN0 LT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZjsKKwkJCQlyYnVmID0gcmVxdWVzdC0+Y3R4 LT5lbmdpbmVbZW5naW5lLT5pZF0ucmluZ2J1ZjsKIAkJCWVsc2UKLQkJCQlyYnVmID0gZGV2X3By aXYtPmtlcm5lbF9jb250ZXh0LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7CisJCQkJcmJ1ZiA9 IGRldl9wcml2LT5rZXJuZWxfY29udGV4dC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJpbmdidWY7CiAJ CX0gZWxzZQotCQkJcmJ1ZiA9IHJpbmctPmJ1ZmZlcjsKKwkJCXJidWYgPSBlbmdpbmUtPmJ1ZmZl cjsKIAogCQllcnJvci0+cmluZ1tpXS5jcHVfcmluZ19oZWFkID0gcmJ1Zi0+aGVhZDsKIAkJZXJy b3ItPnJpbmdbaV0uY3B1X3JpbmdfdGFpbCA9IHJidWYtPnRhaWw7CkBAIC0xMDg2LDE4ICsxMDg2 LDE5IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3JlY29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQkJaTkxNV9lcnJvcl9nZ3R0X29iamVjdF9jcmVhdGUoZGV2X3ByaXYsIHJidWYt Pm9iaik7CiAKIAkJZXJyb3ItPnJpbmdbaV0uaHdzX3BhZ2UgPQotCQkJaTkxNV9lcnJvcl9nZ3R0 X29iamVjdF9jcmVhdGUoZGV2X3ByaXYsIHJpbmctPnN0YXR1c19wYWdlLm9iaik7CisJCQlpOTE1 X2Vycm9yX2dndHRfb2JqZWN0X2NyZWF0ZShkZXZfcHJpdiwKKwkJCQkJCSAgICAgIGVuZ2luZS0+ c3RhdHVzX3BhZ2Uub2JqKTsKIAotCQlpZiAocmluZy0+d2FfY3R4Lm9iaikgeworCQlpZiAoZW5n aW5lLT53YV9jdHgub2JqKSB7CiAJCQllcnJvci0+cmluZ1tpXS53YV9jdHggPQogCQkJCWk5MTVf ZXJyb3JfZ2d0dF9vYmplY3RfY3JlYXRlKGRldl9wcml2LAotCQkJCQkJCSAgICAgIHJpbmctPndh X2N0eC5vYmopOworCQkJCQkJCSAgICAgIGVuZ2luZS0+d2FfY3R4Lm9iaik7CiAJCX0KIAotCQlp OTE1X2dlbV9yZWNvcmRfYWN0aXZlX2NvbnRleHQocmluZywgZXJyb3IsICZlcnJvci0+cmluZ1tp XSk7CisJCWk5MTVfZ2VtX3JlY29yZF9hY3RpdmVfY29udGV4dChlbmdpbmUsIGVycm9yLCAmZXJy b3ItPnJpbmdbaV0pOwogCiAJCWNvdW50ID0gMDsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1 ZXN0LCAmcmluZy0+cmVxdWVzdF9saXN0LCBsaXN0KQorCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJl cXVlc3QsICZlbmdpbmUtPnJlcXVlc3RfbGlzdCwgbGlzdCkKIAkJCWNvdW50Kys7CiAKIAkJZXJy b3ItPnJpbmdbaV0ubnVtX3JlcXVlc3RzID0gY291bnQ7CkBAIC0xMTEwLDcgKzExMTEsNyBAQCBz dGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNvcmRfcmluZ3Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkJfQogCiAJCWNvdW50ID0gMDsKLQkJbGlzdF9mb3JfZWFjaF9lbnRyeShyZXF1ZXN0LCAmcmlu Zy0+cmVxdWVzdF9saXN0LCBsaXN0KSB7CisJCWxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwg JmVuZ2luZS0+cmVxdWVzdF9saXN0LCBsaXN0KSB7CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jf cmVxdWVzdCAqZXJxOwogCiAJCQlpZiAoY291bnQgPj0gZXJyb3ItPnJpbmdbaV0ubnVtX3JlcXVl c3RzKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNz aW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKaW5kZXgg ZDc1NDNlZmM4YTVlLi4xNWE0YmViMzg3ZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2d1Y19zdWJtaXNzaW9uLmMKQEAgLTM3Nyw3ICszNzcsNyBAQCBzdGF0aWMgdm9pZCBndWNfaW5p dF9jdHhfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAJCQkgICAgICBzdHJ1Y3QgaTkxNV9n dWNfY2xpZW50ICpjbGllbnQpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZ3VjX3RvX2k5MTUoZ3VjKTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOworCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4 ID0gY2xpZW50LT5vd25lcjsKIAlzdHJ1Y3QgZ3VjX2NvbnRleHRfZGVzYyBkZXNjOwogCXN0cnVj dCBzZ190YWJsZSAqc2c7CkBAIC0zOTAsOCArMzkwLDggQEAgc3RhdGljIHZvaWQgZ3VjX2luaXRf Y3R4X2Rlc2Moc3RydWN0IGludGVsX2d1YyAqZ3VjLAogCWRlc2MucHJpb3JpdHkgPSBjbGllbnQt PnByaW9yaXR5OwogCWRlc2MuZGJfaWQgPSBjbGllbnQtPmRvb3JiZWxsX2lkOwogCi0JZm9yX2Vh Y2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewotCQlzdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRl eHQgKmxyYyA9ICZkZXNjLmxyY1tyaW5nLT5ndWNfaWRdOworCWZvcl9lYWNoX3JpbmcoZW5naW5l LCBkZXZfcHJpdiwgaSkgeworCQlzdHJ1Y3QgZ3VjX2V4ZWNsaXN0X2NvbnRleHQgKmxyYyA9ICZk ZXNjLmxyY1tlbmdpbmUtPmd1Y19pZF07CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7CiAJCXVpbnQ2NF90IGN0eF9kZXNjOwogCkBAIC00MDYsMTQgKzQwNiwxNCBAQCBzdGF0aWMg dm9pZCBndWNfaW5pdF9jdHhfZGVzYyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMsCiAJCWlmICghb2Jq KQogCQkJYnJlYWs7CS8qIFhYWDogY29udGludWU/ICovCiAKLQkJY3R4X2Rlc2MgPSBpbnRlbF9s cl9jb250ZXh0X2Rlc2NyaXB0b3IoY3R4LCByaW5nKTsKKwkJY3R4X2Rlc2MgPSBpbnRlbF9scl9j b250ZXh0X2Rlc2NyaXB0b3IoY3R4LCBlbmdpbmUpOwogCQlscmMtPmNvbnRleHRfZGVzYyA9ICh1 MzIpY3R4X2Rlc2M7CiAKIAkJLyogVGhlIHN0YXRlIHBhZ2UgaXMgYWZ0ZXIgUFBIV1NQICovCiAJ CWxyYy0+cmluZ19sY3JhID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaikgKwogCQkJCUxS Q19TVEFURV9QTiAqIFBBR0VfU0laRTsKIAkJbHJjLT5jb250ZXh0X2lkID0gKGNsaWVudC0+Y3R4 X2luZGV4IDw8IEdVQ19FTENfQ1RYSURfT0ZGU0VUKSB8Ci0JCQkJKHJpbmctPmd1Y19pZCA8PCBH VUNfRUxDX0VOR0lORV9PRkZTRVQpOworCQkJCShlbmdpbmUtPmd1Y19pZCA8PCBHVUNfRUxDX0VO R0lORV9PRkZTRVQpOwogCiAJCW9iaiA9IGN0eC0+ZW5naW5lW2ldLnJpbmdidWYtPm9iajsKIApA QCAtNDIyLDcgKzQyMiw3IEBAIHN0YXRpYyB2b2lkIGd1Y19pbml0X2N0eF9kZXNjKHN0cnVjdCBp bnRlbF9ndWMgKmd1YywKIAkJbHJjLT5yaW5nX25leHRfZnJlZV9sb2NhdGlvbiA9IGxyYy0+cmlu Z19iZWdpbjsKIAkJbHJjLT5yaW5nX2N1cnJlbnRfdGFpbF9wb2ludGVyX3ZhbHVlID0gMDsKIAot CQlkZXNjLmVuZ2luZXNfdXNlZCB8PSAoMSA8PCByaW5nLT5ndWNfaWQpOworCQlkZXNjLmVuZ2lu ZXNfdXNlZCB8PSAoMSA8PCBlbmdpbmUtPmd1Y19pZCk7CiAJfQogCiAJV0FSTl9PTihkZXNjLmVu Z2luZXNfdXNlZCA9PSAwKTsKQEAgLTgzOSw3ICs4MzksNyBAQCBzdGF0aWMgdm9pZCBndWNfY3Jl YXRlX2FkcyhzdHJ1Y3QgaW50ZWxfZ3VjICpndWMpCiAJc3RydWN0IGd1Y19hZHMgKmFkczsKIAlz dHJ1Y3QgZ3VjX3BvbGljaWVzICpwb2xpY2llczsKIAlzdHJ1Y3QgZ3VjX21taW9fcmVnX3N0YXRl ICpyZWdfc3RhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdTMyIHNpemUsIGk7 CiAKQEAgLTg2NywxMSArODY3LDExIEBAIHN0YXRpYyB2b2lkIGd1Y19jcmVhdGVfYWRzKHN0cnVj dCBpbnRlbF9ndWMgKmd1YykKIAkgKiBzbyBpdHMgYWRkcmVzcyB3b24ndCBjaGFuZ2UgYWZ0ZXIg d2UndmUgdG9sZCB0aGUgR3VDIHdoZXJlCiAJICogdG8gZmluZCBpdC4KIAkgKi8KLQlyaW5nID0g JmRldl9wcml2LT5yaW5nW1JDU107Ci0JYWRzLT5nb2xkZW5fY29udGV4dF9scmNhID0gcmluZy0+ c3RhdHVzX3BhZ2UuZ2Z4X2FkZHI7CisJZW5naW5lID0gJmRldl9wcml2LT5yaW5nW1JDU107CisJ YWRzLT5nb2xkZW5fY29udGV4dF9scmNhID0gZW5naW5lLT5zdGF0dXNfcGFnZS5nZnhfYWRkcjsK IAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCi0JCWFkcy0+ZW5nX3N0YXRlX3Np emVbcmluZy0+Z3VjX2lkXSA9IGludGVsX2xyX2NvbnRleHRfc2l6ZShyaW5nKTsKKwlmb3JfZWFj aF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJCWFkcy0+ZW5nX3N0YXRlX3NpemVbZW5naW5l LT5ndWNfaWRdID0gaW50ZWxfbHJfY29udGV4dF9zaXplKGVuZ2luZSk7CiAKIAkvKiBHdUMgc2No ZWR1bGluZyBwb2xpY2llcyAqLwogCXBvbGljaWVzID0gKHZvaWQgKilhZHMgKyBzaXplb2Yoc3Ry dWN0IGd1Y19hZHMpOwpAQCAtODgzLDEyICs4ODMsMTIgQEAgc3RhdGljIHZvaWQgZ3VjX2NyZWF0 ZV9hZHMoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogCS8qIE1NSU8gcmVnIHN0YXRlICovCiAJcmVn X3N0YXRlID0gKHZvaWQgKilwb2xpY2llcyArIHNpemVvZihzdHJ1Y3QgZ3VjX3BvbGljaWVzKTsK IAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKLQkJcmVnX3N0YXRlLT5tbWlv X3doaXRlX2xpc3RbcmluZy0+Z3VjX2lkXS5tbWlvX3N0YXJ0ID0KLQkJCXJpbmctPm1taW9fYmFz ZSArIEdVQ19NTUlPX1dISVRFX0xJU1RfU1RBUlQ7CisJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRl dl9wcml2LCBpKSB7CisJCXJlZ19zdGF0ZS0+bW1pb193aGl0ZV9saXN0W2VuZ2luZS0+Z3VjX2lk XS5tbWlvX3N0YXJ0ID0KKwkJCWVuZ2luZS0+bW1pb19iYXNlICsgR1VDX01NSU9fV0hJVEVfTElT VF9TVEFSVDsKIAogCQkvKiBOb3RoaW5nIHRvIGJlIHNhdmVkIG9yIHJlc3RvcmVkIGZvciBub3cu ICovCi0JCXJlZ19zdGF0ZS0+bW1pb193aGl0ZV9saXN0W3JpbmctPmd1Y19pZF0uY291bnQgPSAw OworCQlyZWdfc3RhdGUtPm1taW9fd2hpdGVfbGlzdFtlbmdpbmUtPmd1Y19pZF0uY291bnQgPSAw OwogCX0KIAogCWFkcy0+cmVnX3N0YXRlX2FkZHIgPSBhZHMtPnNjaGVkdWxlcl9wb2xpY2llcyAr CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA1M2U1MTA0OTY0YjMuLmYxNzJkZTBhNjFiZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0xMDc5LDExICsxMDc5LDExIEBAIHN0YXRpYyB1 MzIgdmx2X3dhX2MwX2VpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBt X2lpcikKIAogc3RhdGljIGJvb2wgYW55X3dhaXRlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBpOwogCi0JZm9yX2VhY2hfcmluZyhyaW5nLCBk ZXZfcHJpdiwgaSkKLQkJaWYgKHJpbmctPmlycV9yZWZjb3VudCkKKwlmb3JfZWFjaF9yaW5nKGVu Z2luZSwgZGV2X3ByaXYsIGkpCisJCWlmIChlbmdpbmUtPmlycV9yZWZjb3VudCkKIAkJCXJldHVy biB0cnVlOwogCiAJcmV0dXJuIGZhbHNlOwpAQCAtMjQ0OSw3ICsyNDQ5LDcgQEAgc3RhdGljIGly cXJldHVybl90IGdlbjhfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogc3RhdGljIHZv aWQgaTkxNV9lcnJvcl93YWtlX3VwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAkJCSAgICAgICBib29sIHJlc2V0X2NvbXBsZXRlZCkKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAog CS8qCkBAIC0yNDYwLDggKzI0NjAsOCBAQCBzdGF0aWMgdm9pZCBpOTE1X2Vycm9yX3dha2VfdXAo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCSAqLwogCiAJLyogV2FrZSB1cCBf X3dhaXRfc2Vxbm8sIHBvdGVudGlhbGx5IGhvbGRpbmcgZGV2LT5zdHJ1Y3RfbXV0ZXguICovCi0J Zm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkKLQkJd2FrZV91cF9hbGwoJnJpbmctPmly cV9xdWV1ZSk7CisJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCQl3YWtlX3Vw X2FsbCgmZW5naW5lLT5pcnFfcXVldWUpOwogCiAJLyogV2FrZSB1cCBpbnRlbF9jcnRjX3dhaXRf Zm9yX3BlbmRpbmdfZmxpcHMsIGhvbGRpbmcgY3J0Yy0+bXV0ZXguICovCiAJd2FrZV91cF9hbGwo JmRldl9wcml2LT5wZW5kaW5nX2ZsaXBfcXVldWUpOwpAQCAtMjk1NiwxMSArMjk1NiwxMSBAQCBz dGF0aWMgaW50IHNlbWFwaG9yZV9wYXNzZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykK IAogc3RhdGljIHZvaWQgc2VtYXBob3JlX2NsZWFyX2RlYWRsb2NrcyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJaW50IGk7CiAKLQlmb3JfZWFjaF9yaW5n KHJpbmcsIGRldl9wcml2LCBpKQotCQlyaW5nLT5oYW5nY2hlY2suZGVhZGxvY2sgPSAwOworCWZv cl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwkJZW5naW5lLT5oYW5nY2hlY2suZGVh ZGxvY2sgPSAwOwogfQogCiBzdGF0aWMgYm9vbCBzdWJ1bml0c19zdHVjayhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nKQpAQCAtMzA3MSw3ICszMDcxLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9o YW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCWNvbnRhaW5lcl9v Zih3b3JrLCB0eXBlb2YoKmRldl9wcml2KSwKIAkJCSAgICAgZ3B1X2Vycm9yLmhhbmdjaGVja193 b3JrLndvcmspOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OwotCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lOwogCWludCBpOwogCWludCBidXN5X2NvdW50ID0gMCwgcmluZ3NfaHVuZyA9IDA7CiAJYm9v bCBzdHVja1tJOTE1X05VTV9SSU5HU10gPSB7IDAgfTsKQEAgLTMwOTYsMzMgKzMwOTYsMzMgQEAg c3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCiAJICovCiAJaW50ZWxfdW5jb3JlX2FybV91bmNsYWltZWRfbW1pb19kZXRlY3Rpb24oZGV2 X3ByaXYpOwogCi0JZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNo X3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgewogCQl1NjQgYWN0aGQ7CiAJCXUzMiBzZXFubzsK IAkJYm9vbCBidXN5ID0gdHJ1ZTsKIAogCQlzZW1hcGhvcmVfY2xlYXJfZGVhZGxvY2tzKGRldl9w cml2KTsKIAotCQlzZXFubyA9IHJpbmctPmdldF9zZXFubyhyaW5nLCBmYWxzZSk7Ci0JCWFjdGhk ID0gaW50ZWxfcmluZ19nZXRfYWN0aXZlX2hlYWQocmluZyk7CisJCXNlcW5vID0gZW5naW5lLT5n ZXRfc2Vxbm8oZW5naW5lLCBmYWxzZSk7CisJCWFjdGhkID0gaW50ZWxfcmluZ19nZXRfYWN0aXZl X2hlYWQoZW5naW5lKTsKIAotCQlpZiAocmluZy0+aGFuZ2NoZWNrLnNlcW5vID09IHNlcW5vKSB7 Ci0JCQlpZiAocmluZ19pZGxlKHJpbmcsIHNlcW5vKSkgewotCQkJCXJpbmctPmhhbmdjaGVjay5h Y3Rpb24gPSBIQU5HQ0hFQ0tfSURMRTsKKwkJaWYgKGVuZ2luZS0+aGFuZ2NoZWNrLnNlcW5vID09 IHNlcW5vKSB7CisJCQlpZiAocmluZ19pZGxlKGVuZ2luZSwgc2Vxbm8pKSB7CisJCQkJZW5naW5l LT5oYW5nY2hlY2suYWN0aW9uID0gSEFOR0NIRUNLX0lETEU7CiAKLQkJCQlpZiAod2FpdHF1ZXVl X2FjdGl2ZSgmcmluZy0+aXJxX3F1ZXVlKSkgeworCQkJCWlmICh3YWl0cXVldWVfYWN0aXZlKCZl bmdpbmUtPmlycV9xdWV1ZSkpIHsKIAkJCQkJLyogSXNzdWUgYSB3YWtlLXVwIHRvIGNhdGNoIHN0 dWNrIGgvdy4gKi8KLQkJCQkJaWYgKCF0ZXN0X2FuZF9zZXRfYml0KHJpbmctPmlkLCAmZGV2X3By aXYtPmdwdV9lcnJvci5taXNzZWRfaXJxX3JpbmdzKSkgewotCQkJCQkJaWYgKCEoZGV2X3ByaXYt PmdwdV9lcnJvci50ZXN0X2lycV9yaW5ncyAmIGludGVsX3JpbmdfZmxhZyhyaW5nKSkpCisJCQkJ CWlmICghdGVzdF9hbmRfc2V0X2JpdChlbmdpbmUtPmlkLCAmZGV2X3ByaXYtPmdwdV9lcnJvci5t aXNzZWRfaXJxX3JpbmdzKSkgeworCQkJCQkJaWYgKCEoZGV2X3ByaXYtPmdwdV9lcnJvci50ZXN0 X2lycV9yaW5ncyAmIGludGVsX3JpbmdfZmxhZyhlbmdpbmUpKSkKIAkJCQkJCQlEUk1fRVJST1Io IkhhbmdjaGVjayB0aW1lciBlbGFwc2VkLi4uICVzIGlkbGVcbiIsCi0JCQkJCQkJCSAgcmluZy0+ bmFtZSk7CisJCQkJCQkJCSAgZW5naW5lLT5uYW1lKTsKIAkJCQkJCWVsc2UKIAkJCQkJCQlEUk1f SU5GTygiRmFrZSBtaXNzZWQgaXJxIG9uICVzXG4iLAotCQkJCQkJCQkgcmluZy0+bmFtZSk7Ci0J CQkJCQl3YWtlX3VwX2FsbCgmcmluZy0+aXJxX3F1ZXVlKTsKKwkJCQkJCQkJIGVuZ2luZS0+bmFt ZSk7CisJCQkJCQl3YWtlX3VwX2FsbCgmZW5naW5lLT5pcnFfcXVldWUpOwogCQkJCQl9CiAJCQkJ CS8qIFNhZmVndWFyZCBhZ2FpbnN0IGRyaXZlciBmYWlsdXJlICovCi0JCQkJCXJpbmctPmhhbmdj aGVjay5zY29yZSArPSBCVVNZOworCQkJCQllbmdpbmUtPmhhbmdjaGVjay5zY29yZSArPSBCVVNZ OwogCQkJCX0gZWxzZQogCQkJCQlidXN5ID0gZmFsc2U7CiAJCQl9IGVsc2UgewpAQCAtMzE0MSw1 MyArMzE0MSw1MyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVjdCB3 b3JrX3N0cnVjdCAqd29yaykKIAkJCQkgKiBiZWluZyByZXBlYXRlZGx5IGtpY2tlZCBhbmQgc28g cmVzcG9uc2libGUKIAkJCQkgKiBmb3Igc3RhbGxpbmcgdGhlIG1hY2hpbmUuCiAJCQkJICovCi0J CQkJcmluZy0+aGFuZ2NoZWNrLmFjdGlvbiA9IHJpbmdfc3R1Y2socmluZywKLQkJCQkJCQkJICAg IGFjdGhkKTsKKwkJCQllbmdpbmUtPmhhbmdjaGVjay5hY3Rpb24gPSByaW5nX3N0dWNrKGVuZ2lu ZSwKKwkJCQkJCQkJICAgICAgYWN0aGQpOwogCi0JCQkJc3dpdGNoIChyaW5nLT5oYW5nY2hlY2su YWN0aW9uKSB7CisJCQkJc3dpdGNoIChlbmdpbmUtPmhhbmdjaGVjay5hY3Rpb24pIHsKIAkJCQlj YXNlIEhBTkdDSEVDS19JRExFOgogCQkJCWNhc2UgSEFOR0NIRUNLX1dBSVQ6CiAJCQkJCWJyZWFr OwogCQkJCWNhc2UgSEFOR0NIRUNLX0FDVElWRToKLQkJCQkJcmluZy0+aGFuZ2NoZWNrLnNjb3Jl ICs9IEJVU1k7CisJCQkJCWVuZ2luZS0+aGFuZ2NoZWNrLnNjb3JlICs9IEJVU1k7CiAJCQkJCWJy ZWFrOwogCQkJCWNhc2UgSEFOR0NIRUNLX0tJQ0s6Ci0JCQkJCXJpbmctPmhhbmdjaGVjay5zY29y ZSArPSBLSUNLOworCQkJCQllbmdpbmUtPmhhbmdjaGVjay5zY29yZSArPSBLSUNLOwogCQkJCQli cmVhazsKIAkJCQljYXNlIEhBTkdDSEVDS19IVU5HOgotCQkJCQlyaW5nLT5oYW5nY2hlY2suc2Nv cmUgKz0gSFVORzsKKwkJCQkJZW5naW5lLT5oYW5nY2hlY2suc2NvcmUgKz0gSFVORzsKIAkJCQkJ c3R1Y2tbaV0gPSB0cnVlOwogCQkJCQlicmVhazsKIAkJCQl9CiAJCQl9CiAJCX0gZWxzZSB7Ci0J CQlyaW5nLT5oYW5nY2hlY2suYWN0aW9uID0gSEFOR0NIRUNLX0FDVElWRTsKKwkJCWVuZ2luZS0+ aGFuZ2NoZWNrLmFjdGlvbiA9IEhBTkdDSEVDS19BQ1RJVkU7CiAKIAkJCS8qIEdyYWR1YWxseSBy ZWR1Y2UgdGhlIGNvdW50IHNvIHRoYXQgd2UgY2F0Y2ggRG9TCiAJCQkgKiBhdHRlbXB0cyBhY3Jv c3MgbXVsdGlwbGUgYmF0Y2hlcy4KIAkJCSAqLwotCQkJaWYgKHJpbmctPmhhbmdjaGVjay5zY29y ZSA+IDApCi0JCQkJcmluZy0+aGFuZ2NoZWNrLnNjb3JlIC09IEFDVElWRV9ERUNBWTsKLQkJCWlm IChyaW5nLT5oYW5nY2hlY2suc2NvcmUgPCAwKQotCQkJCXJpbmctPmhhbmdjaGVjay5zY29yZSA9 IDA7CisJCQlpZiAoZW5naW5lLT5oYW5nY2hlY2suc2NvcmUgPiAwKQorCQkJCWVuZ2luZS0+aGFu Z2NoZWNrLnNjb3JlIC09IEFDVElWRV9ERUNBWTsKKwkJCWlmIChlbmdpbmUtPmhhbmdjaGVjay5z Y29yZSA8IDApCisJCQkJZW5naW5lLT5oYW5nY2hlY2suc2NvcmUgPSAwOwogCiAJCQkvKiBDbGVh ciBoZWFkIGFuZCBzdWJ1bml0IHN0YXRlcyBvbiBzZXFubyBtb3ZlbWVudCAqLwotCQkJcmluZy0+ aGFuZ2NoZWNrLmFjdGhkID0gMDsKKwkJCWVuZ2luZS0+aGFuZ2NoZWNrLmFjdGhkID0gMDsKIAot CQkJbWVtc2V0KHJpbmctPmhhbmdjaGVjay5pbnN0ZG9uZSwgMCwKLQkJCSAgICAgICBzaXplb2Yo cmluZy0+aGFuZ2NoZWNrLmluc3Rkb25lKSk7CisJCQltZW1zZXQoZW5naW5lLT5oYW5nY2hlY2su aW5zdGRvbmUsIDAsCisJCQkgICAgICAgc2l6ZW9mKGVuZ2luZS0+aGFuZ2NoZWNrLmluc3Rkb25l KSk7CiAJCX0KIAotCQlyaW5nLT5oYW5nY2hlY2suc2Vxbm8gPSBzZXFubzsKLQkJcmluZy0+aGFu Z2NoZWNrLmFjdGhkID0gYWN0aGQ7CisJCWVuZ2luZS0+aGFuZ2NoZWNrLnNlcW5vID0gc2Vxbm87 CisJCWVuZ2luZS0+aGFuZ2NoZWNrLmFjdGhkID0gYWN0aGQ7CiAJCWJ1c3lfY291bnQgKz0gYnVz eTsKIAl9CiAKLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCBpKSB7Ci0JCWlmIChyaW5n LT5oYW5nY2hlY2suc2NvcmUgPj0gSEFOR0NIRUNLX1NDT1JFX1JJTkdfSFVORykgeworCWZvcl9l YWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCQlpZiAoZW5naW5lLT5oYW5nY2hlY2su c2NvcmUgPj0gSEFOR0NIRUNLX1NDT1JFX1JJTkdfSFVORykgewogCQkJRFJNX0lORk8oIiVzIG9u ICVzXG4iLAogCQkJCSBzdHVja1tpXSA/ICJzdHVjayIgOiAibm8gcHJvZ3Jlc3MiLAotCQkJCSBy aW5nLT5uYW1lKTsKKwkJCQkgZW5naW5lLT5uYW1lKTsKIAkJCXJpbmdzX2h1bmcrKzsKIAkJfQog CX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2MmQzNmE3YjMzOTguLjQ3 MzY2NGRkMTQzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTExNjQs NyArMTExNjQsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjJfcXVldWVfZmxpcChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJ CQkgdWludDMyX3QgZmxhZ3MpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJl cS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7CiAJ c3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXUz MiBmbGlwX21hc2s7CiAJaW50IHJldDsKQEAgLTExMTgwLDEzICsxMTE4MCwxMyBAQCBzdGF0aWMg aW50IGludGVsX2dlbjJfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlmbGlw X21hc2sgPSBNSV9XQUlUX0ZPUl9QTEFORV9CX0ZMSVA7CiAJZWxzZQogCQlmbGlwX21hc2sgPSBN SV9XQUlUX0ZPUl9QTEFORV9BX0ZMSVA7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1dBSVRf Rk9SX0VWRU5UIHwgZmxpcF9tYXNrKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7 Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0RJU1BMQVlfRkxJUCB8CisJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgTUlfV0FJVF9GT1JfRVZFTlQgfCBmbGlwX21hc2spOworCWludGVsX3Jpbmdf ZW1pdChlbmdpbmUsIE1JX05PT1ApOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX0RJU1BM QVlfRkxJUCB8CiAJCQlNSV9ESVNQTEFZX0ZMSVBfUExBTkUoaW50ZWxfY3J0Yy0+cGxhbmUpKTsK LQlpbnRlbF9yaW5nX2VtaXQocmluZywgZmItPnBpdGNoZXNbMF0pOwotCWludGVsX3JpbmdfZW1p dChyaW5nLCBpbnRlbF9jcnRjLT51bnBpbl93b3JrLT5ndHRfb2Zmc2V0KTsKLQlpbnRlbF9yaW5n X2VtaXQocmluZywgMCk7IC8qIGF1eCBkaXNwbGF5IGJhc2UgYWRkcmVzcywgdW51c2VkICovCisJ aW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgZmItPnBpdGNoZXNbMF0pOworCWludGVsX3JpbmdfZW1p dChlbmdpbmUsIGludGVsX2NydGMtPnVucGluX3dvcmstPmd0dF9vZmZzZXQpOworCWludGVsX3Jp bmdfZW1pdChlbmdpbmUsIDApOyAvKiBhdXggZGlzcGxheSBiYXNlIGFkZHJlc3MsIHVudXNlZCAq LwogCiAJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMtPnVucGluX3dvcmsp OwogCXJldHVybiAwOwpAQCAtMTExOTksNyArMTExOTksNyBAQCBzdGF0aWMgaW50IGludGVsX2dl bjNfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXEtPnJpbmc7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0 b19pbnRlbF9jcnRjKGNydGMpOwogCXUzMiBmbGlwX21hc2s7CiAJaW50IHJldDsKQEAgLTExMjEy LDEzICsxMTIxMiwxMyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjNfcXVldWVfZmxpcChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQlmbGlwX21hc2sgPSBNSV9XQUlUX0ZPUl9QTEFORV9CX0ZMSVA7 CiAJZWxzZQogCQlmbGlwX21hc2sgPSBNSV9XQUlUX0ZPUl9QTEFORV9BX0ZMSVA7Ci0JaW50ZWxf cmluZ19lbWl0KHJpbmcsIE1JX1dBSVRfRk9SX0VWRU5UIHwgZmxpcF9tYXNrKTsKLQlpbnRlbF9y aW5nX2VtaXQocmluZywgTUlfTk9PUCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0RJU1BM QVlfRkxJUF9JOTE1IHwKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9XQUlUX0ZPUl9FVkVO VCB8IGZsaXBfbWFzayk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7CisJaW50 ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfRElTUExBWV9GTElQX0k5MTUgfAogCQkJTUlfRElTUExB WV9GTElQX1BMQU5FKGludGVsX2NydGMtPnBsYW5lKSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcs IGZiLT5waXRjaGVzWzBdKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgaW50ZWxfY3J0Yy0+dW5w aW5fd29yay0+Z3R0X29mZnNldCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwor CWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGZiLT5waXRjaGVzWzBdKTsKKwlpbnRlbF9yaW5nX2Vt aXQoZW5naW5lLCBpbnRlbF9jcnRjLT51bnBpbl93b3JrLT5ndHRfb2Zmc2V0KTsKKwlpbnRlbF9y aW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKIAogCWludGVsX21hcmtfcGFnZV9mbGlwX2FjdGl2 ZShpbnRlbF9jcnRjLT51bnBpbl93b3JrKTsKIAlyZXR1cm4gMDsKQEAgLTExMjMxLDcgKzExMjMx LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW40X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCQkgc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkJIHVpbnQz Ml90IGZsYWdzKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5nOwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXVpbnQzMl90IHBm LCBwaXBlc3JjOwpAQCAtMTEyNDUsMTAgKzExMjQ1LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2Vu NF9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJICogRGlzcGxheSBSZWdpc3Rl cnMgKHdoaWNoIGRvIG5vdCBjaGFuZ2UgYWNyb3NzIGEgcGFnZS1mbGlwKQogCSAqIHNvIHdlIG5l ZWQgb25seSByZXByb2dyYW0gdGhlIGJhc2UgYWRkcmVzcy4KIAkgKi8KLQlpbnRlbF9yaW5nX2Vt aXQocmluZywgTUlfRElTUExBWV9GTElQIHwKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9E SVNQTEFZX0ZMSVAgfAogCQkJTUlfRElTUExBWV9GTElQX1BMQU5FKGludGVsX2NydGMtPnBsYW5l KSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGZiLT5waXRjaGVzWzBdKTsKLQlpbnRlbF9yaW5n X2VtaXQocmluZywgaW50ZWxfY3J0Yy0+dW5waW5fd29yay0+Z3R0X29mZnNldCB8CisJaW50ZWxf cmluZ19lbWl0KGVuZ2luZSwgZmItPnBpdGNoZXNbMF0pOworCWludGVsX3JpbmdfZW1pdChlbmdp bmUsIGludGVsX2NydGMtPnVucGluX3dvcmstPmd0dF9vZmZzZXQgfAogCQkJb2JqLT50aWxpbmdf bW9kZSk7CiAKIAkvKiBYWFggRW5hYmxpbmcgdGhlIHBhbmVsLWZpdHRlciBhY3Jvc3MgcGFnZS1m bGlwIGlzIHNvIGZhcgpAQCAtMTEyNTcsNyArMTEyNTcsNyBAQCBzdGF0aWMgaW50IGludGVsX2dl bjRfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqLwogCXBmID0gMDsKIAlw aXBlc3JjID0gSTkxNV9SRUFEKFBJUEVTUkMoaW50ZWxfY3J0Yy0+cGlwZSkpICYgMHgwZmZmMGZm ZjsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgcGYgfCBwaXBlc3JjKTsKKwlpbnRlbF9yaW5nX2Vt aXQoZW5naW5lLCBwZiB8IHBpcGVzcmMpOwogCiAJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZl KGludGVsX2NydGMtPnVucGluX3dvcmspOwogCXJldHVybiAwOwpAQCAtMTEyNzAsNyArMTEyNzAs NyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjZfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMy X3QgZmxhZ3MpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsK KwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAJdWludDMyX3QgcGYs IHBpcGVzcmM7CkBAIC0xMTI4MCwxMCArMTEyODAsMTAgQEAgc3RhdGljIGludCBpbnRlbF9nZW42 X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0RJU1BMQVlfRkxJUCB8CisJaW50ZWxf cmluZ19lbWl0KGVuZ2luZSwgTUlfRElTUExBWV9GTElQIHwKIAkJCU1JX0RJU1BMQVlfRkxJUF9Q TEFORShpbnRlbF9jcnRjLT5wbGFuZSkpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBmYi0+cGl0 Y2hlc1swXSB8IG9iai0+dGlsaW5nX21vZGUpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBpbnRl bF9jcnRjLT51bnBpbl93b3JrLT5ndHRfb2Zmc2V0KTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5l LCBmYi0+cGl0Y2hlc1swXSB8IG9iai0+dGlsaW5nX21vZGUpOworCWludGVsX3JpbmdfZW1pdChl bmdpbmUsIGludGVsX2NydGMtPnVucGluX3dvcmstPmd0dF9vZmZzZXQpOwogCiAJLyogQ29udHJh cnkgdG8gdGhlIHN1Z2dlc3Rpb25zIGluIHRoZSBkb2N1bWVudGF0aW9uLAogCSAqICJFbmFibGUg UGFuZWwgRml0dGVyIiBkb2VzIG5vdCBzZWVtIHRvIGJlIHJlcXVpcmVkIHdoZW4gcGFnZQpAQCAt MTEyOTMsNyArMTEyOTMsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjZfcXVldWVfZmxpcChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCSAqLwogCXBmID0gMDsKIAlwaXBlc3JjID0gSTkxNV9SRUFE KFBJUEVTUkMoaW50ZWxfY3J0Yy0+cGlwZSkpICYgMHgwZmZmMGZmZjsKLQlpbnRlbF9yaW5nX2Vt aXQocmluZywgcGYgfCBwaXBlc3JjKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBwZiB8IHBp cGVzcmMpOwogCiAJaW50ZWxfbWFya19wYWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMtPnVucGlu X3dvcmspOwogCXJldHVybiAwOwpAQCAtMTEzMDYsNyArMTEzMDYsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2dlbjdfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7Ci0Jc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2Ny dGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwogCXVpbnQzMl90IHBsYW5lX2JpdCA9IDA7CiAJaW50 IGxlbiwgcmV0OwpAQCAtMTEzMjcsNyArMTEzMjcsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjdf cXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0KIAogCWxlbiA9IDQ7Ci0JaWYg KHJpbmctPmlkID09IFJDUykgeworCWlmIChlbmdpbmUtPmlkID09IFJDUykgewogCQlsZW4gKz0g NjsKIAkJLyoKIAkJICogT24gR2VuIDgsIFNSTSBpcyBub3cgdGFraW5nIGFuIGV4dHJhIGR3b3Jk IHRvIGFjY29tbW9kYXRlCkBAIC0xMTM2NSwzMCArMTEzNjUsMzAgQEAgc3RhdGljIGludCBpbnRl bF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkgKiBmb3IgdGhlIFJD UyBhbHNvIGRvZXNuJ3QgYXBwZWFyIHRvIGRyb3AgZXZlbnRzLiBTZXR0aW5nIHRoZSBERVJSTVIK IAkgKiB0byB6ZXJvIGRvZXMgbGVhZCB0byBsb2NrdXBzIHdpdGhpbiBNSV9ESVNQTEFZX0ZMSVAu CiAJICovCi0JaWYgKHJpbmctPmlkID09IFJDUykgewotCQlpbnRlbF9yaW5nX2VtaXQocmluZywg TUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwotCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcsIERF UlJNUik7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCB+KERFUlJNUl9QSVBFQV9QUklfRkxJUF9E T05FIHwKLQkJCQkJREVSUk1SX1BJUEVCX1BSSV9GTElQX0RPTkUgfAotCQkJCQlERVJSTVJfUElQ RUNfUFJJX0ZMSVBfRE9ORSkpOworCWlmIChlbmdpbmUtPmlkID09IFJDUykgeworCQlpbnRlbF9y aW5nX2VtaXQoZW5naW5lLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7CisJCWludGVsX3Jpbmdf ZW1pdF9yZWcoZW5naW5lLCBERVJSTVIpOworCQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCB+KERF UlJNUl9QSVBFQV9QUklfRkxJUF9ET05FIHwKKwkJCQkJICBERVJSTVJfUElQRUJfUFJJX0ZMSVBf RE9ORSB8CisJCQkJCSAgREVSUk1SX1BJUEVDX1BSSV9GTElQX0RPTkUpKTsKIAkJaWYgKElTX0dF TjgoZGV2KSkKLQkJCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9TVE9SRV9SRUdJU1RFUl9NRU1f R0VOOCB8CisJCQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9TVE9SRV9SRUdJU1RFUl9NRU1f R0VOOCB8CiAJCQkJCSAgICAgIE1JX1NSTV9MUk1fR0xPQkFMX0dUVCk7CiAJCWVsc2UKLQkJCWlu dGVsX3JpbmdfZW1pdChyaW5nLCBNSV9TVE9SRV9SRUdJU1RFUl9NRU0gfAorCQkJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgTUlfU1RPUkVfUkVHSVNURVJfTUVNIHwKIAkJCQkJICAgICAgTUlfU1JN X0xSTV9HTE9CQUxfR1RUKTsKLQkJaW50ZWxfcmluZ19lbWl0X3JlZyhyaW5nLCBERVJSTVIpOwot CQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMjU2KTsK KwkJaW50ZWxfcmluZ19lbWl0X3JlZyhlbmdpbmUsIERFUlJNUik7CisJCWludGVsX3JpbmdfZW1p dChlbmdpbmUsIGVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMjU2KTsKIAkJaWYgKElTX0dF TjgoZGV2KSkgewotCQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwotCQkJaW50ZWxfcmluZ19l bWl0KHJpbmcsIE1JX05PT1ApOworCQkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7CisJCQlp bnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKIAkJfQogCX0KIAotCWludGVsX3Jpbmdf ZW1pdChyaW5nLCBNSV9ESVNQTEFZX0ZMSVBfSTkxNSB8IHBsYW5lX2JpdCk7Ci0JaW50ZWxfcmlu Z19lbWl0KHJpbmcsIChmYi0+cGl0Y2hlc1swXSB8IG9iai0+dGlsaW5nX21vZGUpKTsKLQlpbnRl bF9yaW5nX2VtaXQocmluZywgaW50ZWxfY3J0Yy0+dW5waW5fd29yay0+Z3R0X29mZnNldCk7Ci0J aW50ZWxfcmluZ19lbWl0KHJpbmcsIChNSV9OT09QKSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2lu ZSwgTUlfRElTUExBWV9GTElQX0k5MTUgfCBwbGFuZV9iaXQpOworCWludGVsX3JpbmdfZW1pdChl bmdpbmUsIChmYi0+cGl0Y2hlc1swXSB8IG9iai0+dGlsaW5nX21vZGUpKTsKKwlpbnRlbF9yaW5n X2VtaXQoZW5naW5lLCBpbnRlbF9jcnRjLT51bnBpbl93b3JrLT5ndHRfb2Zmc2V0KTsKKwlpbnRl bF9yaW5nX2VtaXQoZW5naW5lLCAoTUlfTk9PUCkpOwogCiAJaW50ZWxfbWFya19wYWdlX2ZsaXBf YWN0aXZlKGludGVsX2NydGMtPnVucGluX3dvcmspOwogCXJldHVybiAwOwpAQCAtMTE2NjgsNyAr MTE2NjgsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0 YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5ID0gY3J0Yy0+cHJpbWFyeTsKIAll bnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJc3RydWN0IGludGVsX3VucGluX3dv cmsgKndvcms7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7CiAJYm9vbCBtbWlvX2ZsaXA7CiAJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXF1ZXN0ID0gTlVMTDsKIAlpbnQgcmV0OwpAQCAtMTE3NTUsMjEgKzExNzU1 LDIxIEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpj cnRjLAogCQl3b3JrLT5mbGlwX2NvdW50ID0gSTkxNV9SRUFEKFBJUEVfRkxJUENPVU5UX0c0WChw aXBlKSkgKyAxOwogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRl dikpIHsKLQkJcmluZyA9ICZkZXZfcHJpdi0+cmluZ1tCQ1NdOworCQllbmdpbmUgPSAmZGV2X3By aXYtPnJpbmdbQkNTXTsKIAkJaWYgKG9iai0+dGlsaW5nX21vZGUgIT0gaW50ZWxfZmJfb2JqKHdv cmstPm9sZF9mYiktPnRpbGluZ19tb2RlKQogCQkJLyogdmx2OiBESVNQTEFZX0ZMSVAgZmFpbHMg dG8gY2hhbmdlIHRpbGluZyAqLwotCQkJcmluZyA9IE5VTEw7CisJCQllbmdpbmUgPSBOVUxMOwog CX0gZWxzZSBpZiAoSVNfSVZZQlJJREdFKGRldikgfHwgSVNfSEFTV0VMTChkZXYpKSB7Ci0JCXJp bmcgPSAmZGV2X3ByaXYtPnJpbmdbQkNTXTsKKwkJZW5naW5lID0gJmRldl9wcml2LT5yaW5nW0JD U107CiAJfSBlbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA3KSB7Ci0JCXJpbmcgPSBp OTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKG9iai0+bGFzdF93cml0ZV9yZXEpOwotCQlpZiAocmlu ZyA9PSBOVUxMIHx8IHJpbmctPmlkICE9IFJDUykKLQkJCXJpbmcgPSAmZGV2X3ByaXYtPnJpbmdb QkNTXTsKKwkJZW5naW5lID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmluZyhvYmotPmxhc3Rfd3Jp dGVfcmVxKTsKKwkJaWYgKGVuZ2luZSA9PSBOVUxMIHx8IGVuZ2luZS0+aWQgIT0gUkNTKQorCQkJ ZW5naW5lID0gJmRldl9wcml2LT5yaW5nW0JDU107CiAJfSBlbHNlIHsKLQkJcmluZyA9ICZkZXZf cHJpdi0+cmluZ1tSQ1NdOworCQllbmdpbmUgPSAmZGV2X3ByaXYtPnJpbmdbUkNTXTsKIAl9CiAK LQltbWlvX2ZsaXAgPSB1c2VfbW1pb19mbGlwKHJpbmcsIG9iaik7CisJbW1pb19mbGlwID0gdXNl X21taW9fZmxpcChlbmdpbmUsIG9iaik7CiAKIAkvKiBXaGVuIHVzaW5nIENTIGZsaXBzLCB3ZSB3 YW50IHRvIGVtaXQgc2VtYXBob3JlcyBiZXR3ZWVuIHJpbmdzLgogCSAqIEhvd2V2ZXIsIHdoZW4g dXNpbmcgbW1pbyBmbGlwcyB3ZSB3aWxsIGNyZWF0ZSBhIHRhc2sgdG8gZG8gdGhlCkBAIC0xMTc3 Nyw3ICsxMTc3Nyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRy bV9jcnRjICpjcnRjLAogCSAqIGludG8gdGhlIGRpc3BsYXkgcGxhbmUgYW5kIHNraXAgYW55IHdh aXRzLgogCSAqLwogCWlmICghbW1pb19mbGlwKSB7Ci0JCXJldCA9IGk5MTVfZ2VtX29iamVjdF9z eW5jKG9iaiwgcmluZywgJnJlcXVlc3QpOworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc3luYyhv YmosIGVuZ2luZSwgJnJlcXVlc3QpOwogCQlpZiAocmV0KQogCQkJZ290byBjbGVhbnVwX3BlbmRp bmc7CiAJfQpAQCAtMTE3OTksNyArMTE3OTksNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFn ZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJb2JqLT5sYXN0X3dyaXRlX3JlcSk7 CiAJfSBlbHNlIHsKIAkJaWYgKCFyZXF1ZXN0KSB7Ci0JCQlyZXF1ZXN0ID0gaTkxNV9nZW1fcmVx dWVzdF9hbGxvYyhyaW5nLCBOVUxMKTsKKwkJCXJlcXVlc3QgPSBpOTE1X2dlbV9yZXF1ZXN0X2Fs bG9jKGVuZ2luZSwgTlVMTCk7CiAJCQlpZiAoSVNfRVJSKHJlcXVlc3QpKSB7CiAJCQkJcmV0ID0g UFRSX0VSUihyZXF1ZXN0KTsKIAkJCQlnb3RvIGNsZWFudXBfdW5waW47CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKaW5kZXggODJhM2MwM2ZiYzBlLi5mYzJjNTE4OGIwOTUg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTgxLDE0ICs4MSwx NCBAQCBjb25zdCBjaGFyICppbnRlbF9ndWNfZndfc3RhdHVzX3JlcHIoZW51bSBpbnRlbF9ndWNf Zndfc3RhdHVzIHN0YXR1cykKIAogc3RhdGljIHZvaWQgZGlyZWN0X2ludGVycnVwdHNfdG9faG9z dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJaW50IGks IGlycXM7CiAKIAkvKiB0ZWxsIGFsbCBjb21tYW5kIHN0cmVhbWVycyBOT1QgdG8gZm9yd2FyZCBp bnRlcnJ1cHRzIGFuZCB2YmxhbmsgdG8gR3VDICovCiAJaXJxcyA9IF9NQVNLRURfRklFTEQoR0ZY X0ZPUldBUkRfVkJMQU5LX01BU0ssIEdGWF9GT1JXQVJEX1ZCTEFOS19ORVZFUik7CiAJaXJxcyB8 PSBfTUFTS0VEX0JJVF9ESVNBQkxFKEdGWF9JTlRFUlJVUFRfU1RFRVJJTkcpOwotCWZvcl9lYWNo X3JpbmcocmluZywgZGV2X3ByaXYsIGkpCi0JCUk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjcocmlu ZyksIGlycXMpOworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwkJSTkxNV9X UklURShSSU5HX01PREVfR0VONyhlbmdpbmUpLCBpcnFzKTsKIAogCS8qIHJvdXRlIGFsbCBHVCBp bnRlcnJ1cHRzIHRvIHRoZSBob3N0ICovCiAJSTkxNV9XUklURShHVUNfQkNTX1JDU19JRVIsIDAp OwpAQCAtOTgsMTQgKzk4LDE0IEBAIHN0YXRpYyB2b2lkIGRpcmVjdF9pbnRlcnJ1cHRzX3RvX2hv c3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0aWMgdm9pZCBkaXJl Y3RfaW50ZXJydXB0c190b19ndWMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lOwogCWludCBpLCBpcnFzOwogCiAJLyogdGVsbCBhbGwgY29tbWFuZCBzdHJlYW1l cnMgdG8gZm9yd2FyZCBpbnRlcnJ1cHRzIGFuZCB2YmxhbmsgdG8gR3VDICovCiAJaXJxcyA9IF9N QVNLRURfRklFTEQoR0ZYX0ZPUldBUkRfVkJMQU5LX01BU0ssIEdGWF9GT1JXQVJEX1ZCTEFOS19B TFdBWVMpOwogCWlycXMgfD0gX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9JTlRFUlJVUFRfU1RFRVJJ TkcpOwotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCi0JCUk5MTVfV1JJVEUoUklO R19NT0RFX0dFTjcocmluZyksIGlycXMpOworCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJp diwgaSkKKwkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdpbmUpLCBpcnFzKTsKIAogCS8q IHJvdXRlIFVTRVJfSU5URVJSVVBUIHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQgdG8gR3VD LiAqLwogCWlycXMgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9SQ1NfSVJRX1NI SUZUIHwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNmZjYmY2YmIwNDc5Li40NDhjNjhl NjkxOTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0zNjAsOCArMzYwLDggQEAgc3Rh dGljIHZvaWQgZXhlY2xpc3RzX2Vsc3Bfd3JpdGUoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpycTAsCiAJCQkJIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcnExKQogewogCi0Jc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJxMC0+cmluZzsKLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcmluZy0+ZGV2OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJx MC0+cmluZzsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1aW50NjRf dCBkZXNjWzJdOwogCkBAIC0zNzYsMTUgKzM3NiwxNSBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNf ZWxzcF93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxMCwKIAlycTAtPmVsc3Bf c3VibWl0dGVkKys7CiAKIAkvKiBZb3UgbXVzdCBhbHdheXMgd3JpdGUgYm90aCBkZXNjcmlwdG9y cyBpbiB0aGUgb3JkZXIgYmVsb3cuICovCi0JSTkxNV9XUklURV9GVyhSSU5HX0VMU1AocmluZyks IHVwcGVyXzMyX2JpdHMoZGVzY1sxXSkpOwotCUk5MTVfV1JJVEVfRlcoUklOR19FTFNQKHJpbmcp LCBsb3dlcl8zMl9iaXRzKGRlc2NbMV0pKTsKKwlJOTE1X1dSSVRFX0ZXKFJJTkdfRUxTUChlbmdp bmUpLCB1cHBlcl8zMl9iaXRzKGRlc2NbMV0pKTsKKwlJOTE1X1dSSVRFX0ZXKFJJTkdfRUxTUChl bmdpbmUpLCBsb3dlcl8zMl9iaXRzKGRlc2NbMV0pKTsKIAotCUk5MTVfV1JJVEVfRlcoUklOR19F TFNQKHJpbmcpLCB1cHBlcl8zMl9iaXRzKGRlc2NbMF0pKTsKKwlJOTE1X1dSSVRFX0ZXKFJJTkdf RUxTUChlbmdpbmUpLCB1cHBlcl8zMl9iaXRzKGRlc2NbMF0pKTsKIAkvKiBUaGUgY29udGV4dCBp cyBhdXRvbWF0aWNhbGx5IGxvYWRlZCBhZnRlciB0aGUgZm9sbG93aW5nICovCi0JSTkxNV9XUklU RV9GVyhSSU5HX0VMU1AocmluZyksIGxvd2VyXzMyX2JpdHMoZGVzY1swXSkpOworCUk5MTVfV1JJ VEVfRlcoUklOR19FTFNQKGVuZ2luZSksIGxvd2VyXzMyX2JpdHMoZGVzY1swXSkpOwogCiAJLyog RUxTUCBpcyBhIHdvIHJlZ2lzdGVyLCB1c2UgYW5vdGhlciBuZWFyYnkgcmVnIGZvciBwb3N0aW5n ICovCi0JUE9TVElOR19SRUFEX0ZXKFJJTkdfRVhFQ0xJU1RfU1RBVFVTX0xPKHJpbmcpKTsKKwlQ T1NUSU5HX1JFQURfRlcoUklOR19FWEVDTElTVF9TVEFUVVNfTE8oZW5naW5lKSk7CiB9CiAKIHN0 YXRpYyB2b2lkCkBAIC0zOTgsOSArMzk4LDkgQEAgZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0X3Bk cHMoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCB1MzIgKnJlZ19zdGF0ZSkKIAogc3RhdGlj IHZvaWQgZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcnEpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJxLT5yaW5nOworCXN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJxLT5yaW5nOwogCXN0cnVjdCBpOTE1X2h3 X3BwZ3R0ICpwcGd0dCA9IHJxLT5jdHgtPnBwZ3R0OwotCXVpbnQzMl90ICpyZWdfc3RhdGUgPSBy cS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLmxyY19yZWdfc3RhdGU7CisJdWludDMyX3QgKnJlZ19z dGF0ZSA9IHJxLT5jdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5scmNfcmVnX3N0YXRlOwogCiAJcmVn X3N0YXRlW0NUWF9SSU5HX1RBSUwrMV0gPSBycS0+dGFpbDsKIApAQCAtNjA5LDI1ICs2MDksMjUg QEAgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZykKIAogc3RhdGljIHZvaWQgZXhlY2xpc3RzX2NvbnRleHRfcXVldWUoc3RydWN0IGRybV9pOTE1 X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcg PSByZXF1ZXN0LT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcXVl c3QtPnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpjdXJzb3I7CiAJaW50IG51 bV9lbGVtZW50cyA9IDA7CiAKIAlpZiAocmVxdWVzdC0+Y3R4ICE9IHJlcXVlc3QtPmk5MTUtPmtl cm5lbF9jb250ZXh0KQotCQlpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1ZXN0LT5jdHgsIHJpbmcp OworCQlpbnRlbF9scl9jb250ZXh0X3BpbihyZXF1ZXN0LT5jdHgsIGVuZ2luZSk7CiAKIAlpOTE1 X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShyZXF1ZXN0KTsKIAotCXNwaW5fbG9ja19pcnEoJnJpbmct PmV4ZWNsaXN0X2xvY2spOworCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+ZXhlY2xpc3RfbG9jayk7 CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN1cnNvciwgJnJpbmctPmV4ZWNsaXN0X3F1ZXVlLCBl eGVjbGlzdF9saW5rKQorCWxpc3RfZm9yX2VhY2hfZW50cnkoY3Vyc29yLCAmZW5naW5lLT5leGVj bGlzdF9xdWV1ZSwgZXhlY2xpc3RfbGluaykKIAkJaWYgKCsrbnVtX2VsZW1lbnRzID4gMikKIAkJ CWJyZWFrOwogCiAJaWYgKG51bV9lbGVtZW50cyA+IDIpIHsKIAkJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICp0YWlsX3JlcTsKIAotCQl0YWlsX3JlcSA9IGxpc3RfbGFzdF9lbnRyeSgmcmlu Zy0+ZXhlY2xpc3RfcXVldWUsCisJCXRhaWxfcmVxID0gbGlzdF9sYXN0X2VudHJ5KCZlbmdpbmUt PmV4ZWNsaXN0X3F1ZXVlLAogCQkJCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QsCiAJ CQkJCSAgIGV4ZWNsaXN0X2xpbmspOwogCkBAIC02MzUsMzIgKzYzNSwzMiBAQCBzdGF0aWMgdm9p ZCBleGVjbGlzdHNfY29udGV4dF9xdWV1ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cXVlc3QpCiAJCQlXQVJOKHRhaWxfcmVxLT5lbHNwX3N1Ym1pdHRlZCAhPSAwLAogCQkJCSJNb3Jl IHRoYW4gMiBhbHJlYWR5LXN1Ym1pdHRlZCByZXFzIHF1ZXVlZFxuIik7CiAJCQlsaXN0X21vdmVf dGFpbCgmdGFpbF9yZXEtPmV4ZWNsaXN0X2xpbmssCi0JCQkJICAgICAgICZyaW5nLT5leGVjbGlz dF9yZXRpcmVkX3JlcV9saXN0KTsKKwkJCQkgICAgICAgJmVuZ2luZS0+ZXhlY2xpc3RfcmV0aXJl ZF9yZXFfbGlzdCk7CiAJCX0KIAl9CiAKLQlsaXN0X2FkZF90YWlsKCZyZXF1ZXN0LT5leGVjbGlz dF9saW5rLCAmcmluZy0+ZXhlY2xpc3RfcXVldWUpOworCWxpc3RfYWRkX3RhaWwoJnJlcXVlc3Qt PmV4ZWNsaXN0X2xpbmssICZlbmdpbmUtPmV4ZWNsaXN0X3F1ZXVlKTsKIAlpZiAobnVtX2VsZW1l bnRzID09IDApCi0JCWV4ZWNsaXN0c19jb250ZXh0X3VucXVldWUocmluZyk7CisJCWV4ZWNsaXN0 c19jb250ZXh0X3VucXVldWUoZW5naW5lKTsKIAotCXNwaW5fdW5sb2NrX2lycSgmcmluZy0+ZXhl Y2xpc3RfbG9jayk7CisJc3Bpbl91bmxvY2tfaXJxKCZlbmdpbmUtPmV4ZWNsaXN0X2xvY2spOwog fQogCiBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbnZhbGlkYXRlX2FsbF9jYWNoZXMoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEt PnJpbmc7CiAJdWludDMyX3QgZmx1c2hfZG9tYWluczsKIAlpbnQgcmV0OwogCiAJZmx1c2hfZG9t YWlucyA9IDA7Ci0JaWYgKHJpbmctPmdwdV9jYWNoZXNfZGlydHkpCisJaWYgKGVuZ2luZS0+Z3B1 X2NhY2hlc19kaXJ0eSkKIAkJZmx1c2hfZG9tYWlucyA9IEk5MTVfR0VNX0dQVV9ET01BSU5TOwog Ci0JcmV0ID0gcmluZy0+ZW1pdF9mbHVzaChyZXEsIEk5MTVfR0VNX0dQVV9ET01BSU5TLCBmbHVz aF9kb21haW5zKTsKKwlyZXQgPSBlbmdpbmUtPmVtaXRfZmx1c2gocmVxLCBJOTE1X0dFTV9HUFVf RE9NQUlOUywgZmx1c2hfZG9tYWlucyk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJp bmctPmdwdV9jYWNoZXNfZGlydHkgPSBmYWxzZTsKKwllbmdpbmUtPmdwdV9jYWNoZXNfZGlydHkg PSBmYWxzZTsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNzI2LDcgKzcyNiw3IEBAIHN0YXRpYyBpbnQg bG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAogCQkJCSAgICAgICBpbnQgYnl0ZXMpCiB7CiAJc3RydWN0IGludGVsX3JpbmdidWZmZXIg KnJpbmdidWYgPSByZXEtPnJpbmdidWY7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9 IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICp0YXJnZXQ7CiAJdW5zaWduZWQgc3BhY2U7 CiAJaW50IHJldDsKQEAgLTczNyw3ICs3MzcsNyBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ193 YWl0X2Zvcl9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkvKiBUaGUg d2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0ISAqLwogCVdBUk5f T04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkodGFy Z2V0LCAmcmluZy0+cmVxdWVzdF9saXN0LCBsaXN0KSB7CisJbGlzdF9mb3JfZWFjaF9lbnRyeSh0 YXJnZXQsICZlbmdpbmUtPnJlcXVlc3RfbGlzdCwgbGlzdCkgewogCQkvKgogCQkgKiBUaGUgcmVx dWVzdCBxdWV1ZSBpcyBwZXItZW5naW5lLCBzbyBjYW4gY29udGFpbiByZXF1ZXN0cwogCQkgKiBm cm9tIG11bHRpcGxlIHJpbmdidWZmZXJzLiBIZXJlLCB3ZSBtdXN0IGlnbm9yZSBhbnkgdGhhdApA QCAtNzUzLDcgKzc1Myw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dhaXRfZm9yX3NwYWNl KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJYnJlYWs7CiAJfQogCi0JaWYg KFdBUk5fT04oJnRhcmdldC0+bGlzdCA9PSAmcmluZy0+cmVxdWVzdF9saXN0KSkKKwlpZiAoV0FS Tl9PTigmdGFyZ2V0LT5saXN0ID09ICZlbmdpbmUtPnJlcXVlc3RfbGlzdCkpCiAJCXJldHVybiAt RU5PU1BDOwogCiAJcmV0ID0gaTkxNV93YWl0X3JlcXVlc3QodGFyZ2V0KTsKQEAgLTk0Nyw5ICs5 NDcsOSBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5MTVfZXhlY2J1 ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAkJCSAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICp2bWFzKQog ewogCXN0cnVjdCBkcm1fZGV2aWNlICAgICAgICpkZXYgPSBwYXJhbXMtPmRldjsKLQlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICAqcmluZyA9IHBhcmFtcy0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSBwYXJhbXMtPnJpbmc7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiA9IHBhcmFtcy0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7CisJc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBwYXJhbXMtPmN0eC0+ZW5naW5lW2VuZ2luZS0+ aWRdLnJpbmdidWY7CiAJdTY0IGV4ZWNfc3RhcnQ7CiAJaW50IGluc3RwX21vZGU7CiAJdTMyIGlu c3RwX21hc2s7CkBAIC05NjEsNyArOTYxLDcgQEAgaW50IGludGVsX2V4ZWNsaXN0c19zdWJtaXNz aW9uKHN0cnVjdCBpOTE1X2V4ZWNidWZmZXJfcGFyYW1zICpwYXJhbXMsCiAJY2FzZSBJOTE1X0VY RUNfQ09OU1RBTlRTX1JFTF9HRU5FUkFMOgogCWNhc2UgSTkxNV9FWEVDX0NPTlNUQU5UU19BQlNP TFVURToKIAljYXNlIEk5MTVfRVhFQ19DT05TVEFOVFNfUkVMX1NVUkZBQ0U6Ci0JCWlmIChpbnN0 cF9tb2RlICE9IDAgJiYgcmluZyAhPSAmZGV2X3ByaXYtPnJpbmdbUkNTXSkgeworCQlpZiAoaW5z dHBfbW9kZSAhPSAwICYmIGVuZ2luZSAhPSAmZGV2X3ByaXYtPnJpbmdbUkNTXSkgewogCQkJRFJN X0RFQlVHKCJub24tMCByZWwgY29uc3RhbnRzIG1vZGUgb24gbm9uLVJDU1xuIik7CiAJCQlyZXR1 cm4gLUVJTlZBTDsKIAkJfQpAQCAtOTkwLDcgKzk5MCw3IEBAIGludCBpbnRlbF9leGVjbGlzdHNf c3VibWlzc2lvbihzdHJ1Y3QgaTkxNV9leGVjYnVmZmVyX3BhcmFtcyAqcGFyYW1zLAogCWlmIChy ZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpZiAocmluZyA9PSAmZGV2X3ByaXYtPnJpbmdbUkNTXSAm JgorCWlmIChlbmdpbmUgPT0gJmRldl9wcml2LT5yaW5nW1JDU10gJiYKIAkgICAgaW5zdHBfbW9k ZSAhPSBkZXZfcHJpdi0+cmVsYXRpdmVfY29uc3RhbnRzX21vZGUpIHsKIAkJcmV0ID0gaW50ZWxf bG9naWNhbF9yaW5nX2JlZ2luKHBhcmFtcy0+cmVxdWVzdCwgNCk7CiAJCWlmIChyZXQpCkBAIC0x MDA4LDcgKzEwMDgsNyBAQCBpbnQgaW50ZWxfZXhlY2xpc3RzX3N1Ym1pc3Npb24oc3RydWN0IGk5 MTVfZXhlY2J1ZmZlcl9wYXJhbXMgKnBhcmFtcywKIAlleGVjX3N0YXJ0ID0gcGFyYW1zLT5iYXRj aF9vYmpfdm1fb2Zmc2V0ICsKIAkJICAgICBhcmdzLT5iYXRjaF9zdGFydF9vZmZzZXQ7CiAKLQly ZXQgPSByaW5nLT5lbWl0X2JiX3N0YXJ0KHBhcmFtcy0+cmVxdWVzdCwgZXhlY19zdGFydCwgcGFy YW1zLT5kaXNwYXRjaF9mbGFncyk7CisJcmV0ID0gZW5naW5lLT5lbWl0X2JiX3N0YXJ0KHBhcmFt cy0+cmVxdWVzdCwgZXhlY19zdGFydCwgcGFyYW1zLT5kaXNwYXRjaF9mbGFncyk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKIApAQCAtMTA3MSwxNyArMTA3MSwxNyBAQCB2b2lkIGludGVsX2xv Z2ljYWxfcmluZ19zdG9wKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAKIGludCBsb2dp Y2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSkKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCi0JaWYg KCFyaW5nLT5ncHVfY2FjaGVzX2RpcnR5KQorCWlmICghZW5naW5lLT5ncHVfY2FjaGVzX2RpcnR5 KQogCQlyZXR1cm4gMDsKIAotCXJldCA9IHJpbmctPmVtaXRfZmx1c2gocmVxLCAwLCBJOTE1X0dF TV9HUFVfRE9NQUlOUyk7CisJcmV0ID0gZW5naW5lLT5lbWl0X2ZsdXNoKHJlcSwgMCwgSTkxNV9H RU1fR1BVX0RPTUFJTlMpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlyaW5nLT5ncHVf Y2FjaGVzX2RpcnR5ID0gZmFsc2U7CisJZW5naW5lLT5ncHVfY2FjaGVzX2RpcnR5ID0gZmFsc2U7 CiAJcmV0dXJuIDA7CiB9CiAKQEAgLTExNzIsMTYgKzExNzIsMTYgQEAgdm9pZCBpbnRlbF9scl9j b250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiBzdGF0aWMgaW50IGludGVs X2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQogewogCWludCByZXQsIGk7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9 IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7 CiAJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5naW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaTkxNV93b3JrYXJvdW5kcyAqdyA9ICZkZXZfcHJpdi0+ d29ya2Fyb3VuZHM7CiAKIAlpZiAody0+Y291bnQgPT0gMCkKIAkJcmV0dXJuIDA7CiAKLQlyaW5n LT5ncHVfY2FjaGVzX2RpcnR5ID0gdHJ1ZTsKKwllbmdpbmUtPmdwdV9jYWNoZXNfZGlydHkgPSB0 cnVlOwogCXJldCA9IGxvZ2ljYWxfcmluZ19mbHVzaF9hbGxfY2FjaGVzKHJlcSk7CiAJaWYgKHJl dCkKIAkJcmV0dXJuIHJldDsKQEAgLTExOTksNyArMTE5OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf bG9naWNhbF9yaW5nX3dvcmthcm91bmRzX2VtaXQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEpCiAKIAlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShyaW5nYnVmKTsKIAotCXJpbmct PmdwdV9jYWNoZXNfZGlydHkgPSB0cnVlOworCWVuZ2luZS0+Z3B1X2NhY2hlc19kaXJ0eSA9IHRy dWU7CiAJcmV0ID0gbG9naWNhbF9yaW5nX2ZsdXNoX2FsbF9jYWNoZXMocmVxKTsKIAlpZiAocmV0 KQogCQlyZXR1cm4gcmV0OwpAQCAtMTY0Myw3ICsxNjQzLDcgQEAgc3RhdGljIGludCBnZW45X2lu aXRfcmVuZGVyX3Jpbmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIHN0YXRpYyBpbnQg aW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKIHsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQgPSByZXEtPmN0eC0+cHBndHQ7 Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7CiAJc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7CiAJY29uc3QgaW50IG51bV9scmlfY21kcyA9IEdF TjhfTEVHQUNZX1BEUEVTICogMjsKIAlpbnQgaSwgcmV0OwpAQCAtMTY1Niw5ICsxNjU2LDExIEBA IHN0YXRpYyBpbnQgaW50ZWxfbG9naWNhbF9yaW5nX2VtaXRfcGRwcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSkKIAlmb3IgKGkgPSBHRU44X0xFR0FDWV9QRFBFUyAtIDE7IGkgPj0g MDsgaS0tKSB7CiAJCWNvbnN0IGRtYV9hZGRyX3QgcGRfZGFkZHIgPSBpOTE1X3BhZ2VfZGlyX2Rt YV9hZGRyKHBwZ3R0LCBpKTsKIAotCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9yZWcocmluZ2J1 ZiwgR0VOOF9SSU5HX1BEUF9VRFcocmluZywgaSkpOworCQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1p dF9yZWcocmluZ2J1ZiwKKwkJCQkJICAgIEdFTjhfUklOR19QRFBfVURXKGVuZ2luZSwgaSkpOwog CQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCB1cHBlcl8zMl9iaXRzKHBkX2RhZGRy KSk7Ci0JCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3JlZyhyaW5nYnVmLCBHRU44X1JJTkdfUERQ X0xEVyhyaW5nLCBpKSk7CisJCWludGVsX2xvZ2ljYWxfcmluZ19lbWl0X3JlZyhyaW5nYnVmLAor CQkJCQkgICAgR0VOOF9SSU5HX1BEUF9MRFcoZW5naW5lLCBpKSk7CiAJCWludGVsX2xvZ2ljYWxf cmluZ19lbWl0KHJpbmdidWYsIGxvd2VyXzMyX2JpdHMocGRfZGFkZHIpKTsKIAl9CiAKQEAgLTE3 NDgsOCArMTc1MCw4IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJCSAgIHUzMiB1bnVzZWQpCiB7CiAJc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSByZXF1ZXN0LT5yaW5nYnVmOwotCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOwotCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSByaW5nLT5kZXY7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmluZ2J1 Zi0+cmluZzsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1aW50MzJf dCBjbWQ7CiAJaW50IHJldDsKQEAgLTE3NjksNyArMTc3MSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9l bWl0X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAogCWlmIChp bnZhbGlkYXRlX2RvbWFpbnMgJiBJOTE1X0dFTV9HUFVfRE9NQUlOUykgewogCQljbWQgfD0gTUlf SU5WQUxJREFURV9UTEI7Ci0JCWlmIChyaW5nID09ICZkZXZfcHJpdi0+cmluZ1tWQ1NdKQorCQlp ZiAoZW5naW5lID09ICZkZXZfcHJpdi0+cmluZ1tWQ1NdKQogCQkJY21kIHw9IE1JX0lOVkFMSURB VEVfQlNEOwogCX0KIApAQCAtMTc4OSw4ICsxNzkxLDggQEAgc3RhdGljIGludCBnZW44X2VtaXRf Zmx1c2hfcmVuZGVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCwKIAkJCQkg IHUzMiBmbHVzaF9kb21haW5zKQogewogCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm ID0gcmVxdWVzdC0+cmluZ2J1ZjsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmlu Z2J1Zi0+cmluZzsKLQl1MzIgc2NyYXRjaF9hZGRyID0gcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0 ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUg PSByaW5nYnVmLT5yaW5nOworCXUzMiBzY3JhdGNoX2FkZHIgPSBlbmdpbmUtPnNjcmF0Y2guZ3R0 X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7CiAJYm9vbCB2Zl9mbHVzaF93YSA9IGZhbHNl OwogCXUzMiBmbGFncyA9IDA7CiAJaW50IHJldDsKQEAgLTE4MTgsNyArMTgyMCw3IEBAIHN0YXRp YyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QsCiAJCSAqIE9uIEdFTjk6IGJlZm9yZSBWRl9DQUNIRV9JTlZBTElEQVRFIHdlIG5l ZWQgdG8gZW1pdCBhIE5VTEwKIAkJICogcGlwZSBjb250cm9sLgogCQkgKi8KLQkJaWYgKElTX0dF TjkocmluZy0+ZGV2KSkKKwkJaWYgKElTX0dFTjkoZW5naW5lLT5kZXYpKQogCQkJdmZfZmx1c2hf d2EgPSB0cnVlOwogCX0KIApAQCAtMjEwOSwzOCArMjExMSwzOCBAQCBlcnJvcjoKIHN0YXRpYyBp bnQgbG9naWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gJmRldl9wcml2LT5yaW5nW1JDU107CisJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5yaW5nW1JDU107CiAJaW50 IHJldDsKIAotCXJpbmctPm5hbWUgPSAicmVuZGVyIHJpbmciOwotCXJpbmctPmlkID0gUkNTOwot CXJpbmctPmV4ZWNfaWQgPSBJOTE1X0VYRUNfUkVOREVSOwotCXJpbmctPmd1Y19pZCA9IEdVQ19S RU5ERVJfRU5HSU5FOwotCXJpbmctPm1taW9fYmFzZSA9IFJFTkRFUl9SSU5HX0JBU0U7CisJZW5n aW5lLT5uYW1lID0gInJlbmRlciByaW5nIjsKKwllbmdpbmUtPmlkID0gUkNTOworCWVuZ2luZS0+ ZXhlY19pZCA9IEk5MTVfRVhFQ19SRU5ERVI7CisJZW5naW5lLT5ndWNfaWQgPSBHVUNfUkVOREVS X0VOR0lORTsKKwllbmdpbmUtPm1taW9fYmFzZSA9IFJFTkRFUl9SSU5HX0JBU0U7CiAKLQlsb2dp Y2FsX3JpbmdfZGVmYXVsdF9pcnFzKHJpbmcsIEdFTjhfUkNTX0lSUV9TSElGVCk7CisJbG9naWNh bF9yaW5nX2RlZmF1bHRfaXJxcyhlbmdpbmUsIEdFTjhfUkNTX0lSUV9TSElGVCk7CiAJaWYgKEhB U19MM19EUEYoZGV2KSkKLQkJcmluZy0+aXJxX2tlZXBfbWFzayB8PSBHVF9SRU5ERVJfTDNfUEFS SVRZX0VSUk9SX0lOVEVSUlVQVDsKKwkJZW5naW5lLT5pcnFfa2VlcF9tYXNrIHw9IEdUX1JFTkRF Ul9MM19QQVJJVFlfRVJST1JfSU5URVJSVVBUOwogCi0JbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1 bmNzKGRldiwgcmluZyk7CisJbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldiwgZW5naW5l KTsKIAogCS8qIE92ZXJyaWRlIHNvbWUgZm9yIHJlbmRlciByaW5nLiAqLwogCWlmIChJTlRFTF9J TkZPKGRldiktPmdlbiA+PSA5KQotCQlyaW5nLT5pbml0X2h3ID0gZ2VuOV9pbml0X3JlbmRlcl9y aW5nOworCQllbmdpbmUtPmluaXRfaHcgPSBnZW45X2luaXRfcmVuZGVyX3Jpbmc7CiAJZWxzZQot CQlyaW5nLT5pbml0X2h3ID0gZ2VuOF9pbml0X3JlbmRlcl9yaW5nOwotCXJpbmctPmluaXRfY29u dGV4dCA9IGdlbjhfaW5pdF9yY3NfY29udGV4dDsKLQlyaW5nLT5jbGVhbnVwID0gaW50ZWxfZmlu aV9waXBlX2NvbnRyb2w7Ci0JcmluZy0+ZW1pdF9mbHVzaCA9IGdlbjhfZW1pdF9mbHVzaF9yZW5k ZXI7Ci0JcmluZy0+ZW1pdF9yZXF1ZXN0ID0gZ2VuOF9lbWl0X3JlcXVlc3RfcmVuZGVyOworCQll bmdpbmUtPmluaXRfaHcgPSBnZW44X2luaXRfcmVuZGVyX3Jpbmc7CisJZW5naW5lLT5pbml0X2Nv bnRleHQgPSBnZW44X2luaXRfcmNzX2NvbnRleHQ7CisJZW5naW5lLT5jbGVhbnVwID0gaW50ZWxf ZmluaV9waXBlX2NvbnRyb2w7CisJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuOF9lbWl0X2ZsdXNo X3JlbmRlcjsKKwllbmdpbmUtPmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0X3JlbmRl cjsKIAotCXJpbmctPmRldiA9IGRldjsKKwllbmdpbmUtPmRldiA9IGRldjsKIAotCXJldCA9IGlu dGVsX2luaXRfcGlwZV9jb250cm9sKHJpbmcpOworCXJldCA9IGludGVsX2luaXRfcGlwZV9jb250 cm9sKGVuZ2luZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJldCA9IGludGVsX2lu aXRfd29ya2Fyb3VuZF9iYihyaW5nKTsKKwlyZXQgPSBpbnRlbF9pbml0X3dvcmthcm91bmRfYmIo ZW5naW5lKTsKIAlpZiAocmV0KSB7CiAJCS8qCiAJCSAqIFdlIGNvbnRpbnVlIGV2ZW4gaWYgd2Ug ZmFpbCB0byBpbml0aWFsaXplIFdBIGJhdGNoCkBAIC0yMTUxLDkgKzIxNTMsOSBAQCBzdGF0aWMg aW50IGxvZ2ljYWxfcmVuZGVyX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJ ICByZXQpOwogCX0KIAotCXJldCA9IGxvZ2ljYWxfcmluZ19pbml0KGRldiwgcmluZyk7CisJcmV0 ID0gbG9naWNhbF9yaW5nX2luaXQoZGV2LCBlbmdpbmUpOwogCWlmIChyZXQpIHsKLQkJbHJjX2Rl c3Ryb3lfd2FfY3R4X29iaihyaW5nKTsKKwkJbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihlbmdpbmUp OwogCX0KIAogCXJldHVybiByZXQ7CkBAIC0yMTYyLDY5ICsyMTY0LDY5IEBAIHN0YXRpYyBpbnQg bG9naWNhbF9yZW5kZXJfcmluZ19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBzdGF0aWMg aW50IGxvZ2ljYWxfYnNkX3JpbmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9ICZkZXZfcHJpdi0+cmluZ1tWQ1NdOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+cmluZ1tWQ1NdOwogCi0Jcmlu Zy0+bmFtZSA9ICJic2QgcmluZyI7Ci0JcmluZy0+aWQgPSBWQ1M7Ci0JcmluZy0+ZXhlY19pZCA9 IEk5MTVfRVhFQ19CU0Q7Ci0JcmluZy0+Z3VjX2lkID0gR1VDX1ZJREVPX0VOR0lORTsKLQlyaW5n LT5tbWlvX2Jhc2UgPSBHRU42X0JTRF9SSU5HX0JBU0U7CisJZW5naW5lLT5uYW1lID0gImJzZCBy aW5nIjsKKwllbmdpbmUtPmlkID0gVkNTOworCWVuZ2luZS0+ZXhlY19pZCA9IEk5MTVfRVhFQ19C U0Q7CisJZW5naW5lLT5ndWNfaWQgPSBHVUNfVklERU9fRU5HSU5FOworCWVuZ2luZS0+bW1pb19i YXNlID0gR0VONl9CU0RfUklOR19CQVNFOwogCi0JbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhy aW5nLCBHRU44X1ZDUzFfSVJRX1NISUZUKTsKLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3Mo ZGV2LCByaW5nKTsKKwlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVuZ2luZSwgR0VOOF9WQ1Mx X0lSUV9TSElGVCk7CisJbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldiwgZW5naW5lKTsK IAotCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIHJpbmcpOworCXJldHVybiBsb2dpY2Fs X3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7CiB9CiAKIHN0YXRpYyBpbnQgbG9naWNhbF9ic2QyX3Jp bmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyA9ICZkZXZfcHJpdi0+cmluZ1tWQ1MyXTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSAmZGV2X3ByaXYtPnJpbmdbVkNTMl07CiAKLQlyaW5nLT5uYW1lID0gImJzZDIg cmluZyI7Ci0JcmluZy0+aWQgPSBWQ1MyOwotCXJpbmctPmV4ZWNfaWQgPSBJOTE1X0VYRUNfQlNE OwotCXJpbmctPmd1Y19pZCA9IEdVQ19WSURFT19FTkdJTkUyOwotCXJpbmctPm1taW9fYmFzZSA9 IEdFTjhfQlNEMl9SSU5HX0JBU0U7CisJZW5naW5lLT5uYW1lID0gImJzZDIgcmluZyI7CisJZW5n aW5lLT5pZCA9IFZDUzI7CisJZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX0JTRDsKKwllbmdp bmUtPmd1Y19pZCA9IEdVQ19WSURFT19FTkdJTkUyOworCWVuZ2luZS0+bW1pb19iYXNlID0gR0VO OF9CU0QyX1JJTkdfQkFTRTsKIAotCWxvZ2ljYWxfcmluZ19kZWZhdWx0X2lycXMocmluZywgR0VO OF9WQ1MyX0lSUV9TSElGVCk7Ci0JbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldiwgcmlu Zyk7CisJbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhlbmdpbmUsIEdFTjhfVkNTMl9JUlFfU0hJ RlQpOworCWxvZ2ljYWxfcmluZ19kZWZhdWx0X3ZmdW5jcyhkZXYsIGVuZ2luZSk7CiAKLQlyZXR1 cm4gbG9naWNhbF9yaW5nX2luaXQoZGV2LCByaW5nKTsKKwlyZXR1cm4gbG9naWNhbF9yaW5nX2lu aXQoZGV2LCBlbmdpbmUpOwogfQogCiBzdGF0aWMgaW50IGxvZ2ljYWxfYmx0X3JpbmdfaW5pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9 ICZkZXZfcHJpdi0+cmluZ1tCQ1NdOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9 ICZkZXZfcHJpdi0+cmluZ1tCQ1NdOwogCi0JcmluZy0+bmFtZSA9ICJibGl0dGVyIHJpbmciOwot CXJpbmctPmlkID0gQkNTOwotCXJpbmctPmV4ZWNfaWQgPSBJOTE1X0VYRUNfQkxUOwotCXJpbmct Pmd1Y19pZCA9IEdVQ19CTElUVEVSX0VOR0lORTsKLQlyaW5nLT5tbWlvX2Jhc2UgPSBCTFRfUklO R19CQVNFOworCWVuZ2luZS0+bmFtZSA9ICJibGl0dGVyIHJpbmciOworCWVuZ2luZS0+aWQgPSBC Q1M7CisJZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX0JMVDsKKwllbmdpbmUtPmd1Y19pZCA9 IEdVQ19CTElUVEVSX0VOR0lORTsKKwllbmdpbmUtPm1taW9fYmFzZSA9IEJMVF9SSU5HX0JBU0U7 CiAKLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKHJpbmcsIEdFTjhfQkNTX0lSUV9TSElGVCk7 Ci0JbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldiwgcmluZyk7CisJbG9naWNhbF9yaW5n X2RlZmF1bHRfaXJxcyhlbmdpbmUsIEdFTjhfQkNTX0lSUV9TSElGVCk7CisJbG9naWNhbF9yaW5n X2RlZmF1bHRfdmZ1bmNzKGRldiwgZW5naW5lKTsKIAotCXJldHVybiBsb2dpY2FsX3JpbmdfaW5p dChkZXYsIHJpbmcpOworCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7CiB9 CiAKIHN0YXRpYyBpbnQgbG9naWNhbF92ZWJveF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSAmZGV2X3ByaXYtPnJpbmdb VkVDU107CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5yaW5n W1ZFQ1NdOwogCi0JcmluZy0+bmFtZSA9ICJ2aWRlbyBlbmhhbmNlbWVudCByaW5nIjsKLQlyaW5n LT5pZCA9IFZFQ1M7Ci0JcmluZy0+ZXhlY19pZCA9IEk5MTVfRVhFQ19WRUJPWDsKLQlyaW5nLT5n dWNfaWQgPSBHVUNfVklERU9FTkhBTkNFX0VOR0lORTsKLQlyaW5nLT5tbWlvX2Jhc2UgPSBWRUJP WF9SSU5HX0JBU0U7CisJZW5naW5lLT5uYW1lID0gInZpZGVvIGVuaGFuY2VtZW50IHJpbmciOwor CWVuZ2luZS0+aWQgPSBWRUNTOworCWVuZ2luZS0+ZXhlY19pZCA9IEk5MTVfRVhFQ19WRUJPWDsK KwllbmdpbmUtPmd1Y19pZCA9IEdVQ19WSURFT0VOSEFOQ0VfRU5HSU5FOworCWVuZ2luZS0+bW1p b19iYXNlID0gVkVCT1hfUklOR19CQVNFOwogCi0JbG9naWNhbF9yaW5nX2RlZmF1bHRfaXJxcyhy aW5nLCBHRU44X1ZFQ1NfSVJRX1NISUZUKTsKLQlsb2dpY2FsX3JpbmdfZGVmYXVsdF92ZnVuY3Mo ZGV2LCByaW5nKTsKKwlsb2dpY2FsX3JpbmdfZGVmYXVsdF9pcnFzKGVuZ2luZSwgR0VOOF9WRUNT X0lSUV9TSElGVCk7CisJbG9naWNhbF9yaW5nX2RlZmF1bHRfdmZ1bmNzKGRldiwgZW5naW5lKTsK IAotCXJldHVybiBsb2dpY2FsX3JpbmdfaW5pdChkZXYsIHJpbmcpOworCXJldHVybiBsb2dpY2Fs X3JpbmdfaW5pdChkZXYsIGVuZ2luZSk7CiB9CiAKIC8qKgpAQCAtMjYzOSwxNCArMjY0MSwxNCBA QCB2b2lkIGludGVsX2xyX2NvbnRleHRfcmVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ CXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAotCWZvcl9l YWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2 X3ByaXYsIGkpIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPQotCQkJ CWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKKwkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlk XS5zdGF0ZTsKIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQotCQkJCWN0eC0+ ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOworCQkJCWN0eC0+ZW5naW5lW2VuZ2luZS0+aWRdLnJp bmdidWY7CiAJCXVpbnQzMl90ICpyZWdfc3RhdGU7CiAJCXN0cnVjdCBwYWdlICpwYWdlOwogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKaW5kZXggZmVkN2JlYTE5Y2M5Li5kNTU5MjU5ODdlYmYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3MuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKQEAgLTMyNCwxMSArMzI0LDExIEBAIGludCBp bnRlbF9yY3NfY29udGV4dF9pbml0X21vY3Moc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy ZXEpCiAKIAlpZiAoZ2V0X21vY3Nfc2V0dGluZ3MocmVxLT5yaW5nLT5kZXYsICZ0KSkgewogCQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSByZXEtPmk5MTU7Ci0JCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsK IAkJZW51bSBpbnRlbF9yaW5nX2lkIHJpbmdfaWQ7CiAKIAkJLyogUHJvZ3JhbSB0aGUgY29udHJv bCByZWdpc3RlcnMgKi8KLQkJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgcmluZ19pZCkg eworCQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIHJpbmdfaWQpIHsKIAkJCXJldCA9 IGVtaXRfbW9jc19jb250cm9sX3RhYmxlKHJlcSwgJnQsIHJpbmdfaWQpOwogCQkJaWYgKHJldCkK IAkJCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf b3ZlcmxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ZlcmxheS5jCmluZGV4IDkx Njg0MTNmZTIwNC4uMTNiMjc2MzI2MzZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9vdmVybGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3Zlcmxh eS5jCkBAIC0yMzMsMTQgKzIzMywxNCBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfb24oc3Ry dWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IG92ZXJsYXktPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSAmZGV2X3ByaXYt PnJpbmdbUkNTXTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYt PnJpbmdbUkNTXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAlpbnQgcmV0 OwogCiAJV0FSTl9PTihvdmVybGF5LT5hY3RpdmUpOwogCVdBUk5fT04oSVNfSTgzMChkZXYpICYm ICEoZGV2X3ByaXYtPnF1aXJrcyAmIFFVSVJLX1BJUEVBX0ZPUkNFKSk7CiAKLQlyZXEgPSBpOTE1 X2dlbV9yZXF1ZXN0X2FsbG9jKHJpbmcsIE5VTEwpOworCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3Rf YWxsb2MoZW5naW5lLCBOVUxMKTsKIAlpZiAoSVNfRVJSKHJlcSkpCiAJCXJldHVybiBQVFJfRVJS KHJlcSk7CiAKQEAgLTI1MiwxMSArMjUyLDExIEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9v bihzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIAogCW92ZXJsYXktPmFjdGl2ZSA9IHRy dWU7CiAKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfT1ZFUkxBWV9GTElQIHwgTUlfT1ZFUkxB WV9PTik7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIG92ZXJsYXktPmZsaXBfYWRkciB8IE9GQ19V UERBVEUpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9XQUlUX0ZPUl9FVkVOVCB8IE1JX1dB SVRfRk9SX09WRVJMQVlfRkxJUCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwot CWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9P VkVSTEFZX0ZMSVAgfCBNSV9PVkVSTEFZX09OKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBv dmVybGF5LT5mbGlwX2FkZHIgfCBPRkNfVVBEQVRFKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5l LCBNSV9XQUlUX0ZPUl9FVkVOVCB8IE1JX1dBSVRfRk9SX09WRVJMQVlfRkxJUCk7CisJaW50ZWxf cmluZ19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7CisJaW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7 CiAKIAlyZXR1cm4gaW50ZWxfb3ZlcmxheV9kb193YWl0X3JlcXVlc3Qob3ZlcmxheSwgcmVxLCBO VUxMKTsKIH0KQEAgLTI2Nyw3ICsyNjcsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfY29u dGludWUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCiB7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IG92ZXJsYXktPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSAm ZGV2X3ByaXYtPnJpbmdbUkNTXTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAm ZGV2X3ByaXYtPnJpbmdbUkNTXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsK IAl1MzIgZmxpcF9hZGRyID0gb3ZlcmxheS0+ZmxpcF9hZGRyOwogCXUzMiB0bXA7CkBAIC0yODMs NyArMjgzLDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X2NvbnRpbnVlKHN0cnVjdCBpbnRl bF9vdmVybGF5ICpvdmVybGF5LAogCWlmICh0bXAgJiAoMSA8PCAxNykpCiAJCURSTV9ERUJVRygi b3ZlcmxheSB1bmRlcnJ1biwgRE9WU1RBOiAleFxuIiwgdG1wKTsKIAotCXJlcSA9IGk5MTVfZ2Vt X3JlcXVlc3RfYWxsb2MocmluZywgTlVMTCk7CisJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxv YyhlbmdpbmUsIE5VTEwpOwogCWlmIChJU19FUlIocmVxKSkKIAkJcmV0dXJuIFBUUl9FUlIocmVx KTsKIApAQCAtMjkzLDkgKzI5Myw5IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9jb250aW51 ZShzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlp bnRlbF9yaW5nX2VtaXQocmluZywgTUlfT1ZFUkxBWV9GTElQIHwgTUlfT1ZFUkxBWV9DT05USU5V RSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGZsaXBfYWRkcik7Ci0JaW50ZWxfcmluZ19hZHZh bmNlKHJpbmcpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX09WRVJMQVlfRkxJUCB8IE1J X09WRVJMQVlfQ09OVElOVUUpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGZsaXBfYWRkcik7 CisJaW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7CiAKIAlXQVJOX09OKG92ZXJsYXktPmxhc3Rf ZmxpcF9yZXEpOwogCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvdmVybGF5LT5sYXN0X2ZsaXBf cmVxLCByZXEpOwpAQCAtMzM2LDcgKzMzNiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9v ZmYoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiB7CiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IG92ZXJsYXktPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSAmZGV2 X3ByaXYtPnJpbmdbUkNTXTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2 X3ByaXYtPnJpbmdbUkNTXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKIAl1 MzIgZmxpcF9hZGRyID0gb3ZlcmxheS0+ZmxpcF9hZGRyOwogCWludCByZXQ7CkBAIC0zNDksNyAr MzQ5LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29mZihzdHJ1Y3QgaW50ZWxfb3Zlcmxh eSAqb3ZlcmxheSkKIAkgKiBvZiB0aGUgaHcuIERvIGl0IGluIGJvdGggY2FzZXMgKi8KIAlmbGlw X2FkZHIgfD0gT0ZDX1VQREFURTsKIAotCXJlcSA9IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2Mocmlu ZywgTlVMTCk7CisJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhlbmdpbmUsIE5VTEwpOwog CWlmIChJU19FUlIocmVxKSkKIAkJcmV0dXJuIFBUUl9FUlIocmVxKTsKIApAQCAtMzYwLDIyICsz NjAsMjMgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29mZihzdHJ1Y3QgaW50ZWxfb3Zlcmxh eSAqb3ZlcmxheSkKIAl9CiAKIAkvKiB3YWl0IGZvciBvdmVybGF5IHRvIGdvIGlkbGUgKi8KLQlp bnRlbF9yaW5nX2VtaXQocmluZywgTUlfT1ZFUkxBWV9GTElQIHwgTUlfT1ZFUkxBWV9DT05USU5V RSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGZsaXBfYWRkcik7Ci0JaW50ZWxfcmluZ19lbWl0 KHJpbmcsIE1JX1dBSVRfRk9SX0VWRU5UIHwgTUlfV0FJVF9GT1JfT1ZFUkxBWV9GTElQKTsKKwlp bnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9PVkVSTEFZX0ZMSVAgfCBNSV9PVkVSTEFZX0NPTlRJ TlVFKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBmbGlwX2FkZHIpOworCWludGVsX3Jpbmdf ZW1pdChlbmdpbmUsIE1JX1dBSVRfRk9SX0VWRU5UIHwgTUlfV0FJVF9GT1JfT1ZFUkxBWV9GTElQ KTsKIAkvKiB0dXJuIG92ZXJsYXkgb2ZmICovCiAJaWYgKElTX0k4MzAoZGV2KSkgewogCQkvKiBX b3JrYXJvdW5kOiBEb24ndCBkaXNhYmxlIHRoZSBvdmVybGF5IGZ1bGx5LCBzaW5jZSBvdGhlcndp c2UKIAkJICogaXQgZGllcyBvbiB0aGUgbmV4dCBPVkVSTEFZX09OIGNtZC4gKi8KLQkJaW50ZWxf cmluZ19lbWl0KHJpbmcsIE1JX05PT1ApOwotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9P UCk7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKKwkJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwgTUlfTk9PUCk7CisJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX05PT1ApOwor CQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKIAl9IGVsc2UgewotCQlpbnRlbF9y aW5nX2VtaXQocmluZywgTUlfT1ZFUkxBWV9GTElQIHwgTUlfT1ZFUkxBWV9PRkYpOwotCQlpbnRl bF9yaW5nX2VtaXQocmluZywgZmxpcF9hZGRyKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1J X1dBSVRfRk9SX0VWRU5UIHwgTUlfV0FJVF9GT1JfT1ZFUkxBWV9GTElQKTsKKwkJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgTUlfT1ZFUkxBWV9GTElQIHwgTUlfT1ZFUkxBWV9PRkYpOworCQlpbnRl bF9yaW5nX2VtaXQoZW5naW5lLCBmbGlwX2FkZHIpOworCQlpbnRlbF9yaW5nX2VtaXQoZW5naW5l LAorCQkJCU1JX1dBSVRfRk9SX0VWRU5UIHwgTUlfV0FJVF9GT1JfT1ZFUkxBWV9GTElQKTsKIAl9 Ci0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOworCWludGVsX3JpbmdfYWR2YW5jZShlbmdpbmUp OwogCiAJcmV0dXJuIGludGVsX292ZXJsYXlfZG9fd2FpdF9yZXF1ZXN0KG92ZXJsYXksIHJlcSwg aW50ZWxfb3ZlcmxheV9vZmZfdGFpbCk7CiB9CkBAIC00MDgsNyArNDA5LDcgQEAgc3RhdGljIGlu dCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZChzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3Zl cmxheSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb3ZlcmxheS0+ZGV2OwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyA9ICZkZXZfcHJpdi0+cmluZ1tSQ1NdOworCXN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+cmluZ1tSQ1NdOwogCWludCByZXQ7 CiAKIAlXQVJOX09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7CkBAIC00 MjMsNyArNDI0LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X3JlbGVhc2Vfb2xkX3ZpZChz dHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKIAkJLyogc3luY2hyb25vdXMgc2xvd3BhdGgg Ki8KIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKLQkJcmVxID0gaTkxNV9n ZW1fcmVxdWVzdF9hbGxvYyhyaW5nLCBOVUxMKTsKKwkJcmVxID0gaTkxNV9nZW1fcmVxdWVzdF9h bGxvYyhlbmdpbmUsIE5VTEwpOwogCQlpZiAoSVNfRVJSKHJlcSkpCiAJCQlyZXR1cm4gUFRSX0VS UihyZXEpOwogCkBAIC00MzMsOSArNDM0LDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9y ZWxlYXNlX29sZF92aWQoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCiAJCQlyZXR1cm4g cmV0OwogCQl9CiAKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX1dBSVRfRk9SX0VWRU5UIHwg TUlfV0FJVF9GT1JfT1ZFUkxBWV9GTElQKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05P T1ApOwotCQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisJCWludGVsX3JpbmdfZW1pdChlbmdp bmUsCisJCQkJTUlfV0FJVF9GT1JfRVZFTlQgfCBNSV9XQUlUX0ZPUl9PVkVSTEFZX0ZMSVApOwor CQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKKwkJaW50ZWxfcmluZ19hZHZhbmNl KGVuZ2luZSk7CiAKIAkJcmV0ID0gaW50ZWxfb3ZlcmxheV9kb193YWl0X3JlcXVlc3Qob3Zlcmxh eSwgcmVxLAogCQkJCQkJICAgIGludGVsX292ZXJsYXlfcmVsZWFzZV9vbGRfdmlkX3RhaWwpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmMKaW5kZXggZDdhZWYxN2JmMGY5Li5jNTRhN2RmN2MyYzkgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpAQCAtNDgxNSw3ICs0ODE1LDcgQEAgc3RhdGljIHZvaWQg Z2VuOV9lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9pZCBnZW45 X2VuYWJsZV9yYzYoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXVpbnQzMl90 IHJjNl9tYXNrID0gMDsKIAlpbnQgdW51c2VkOwogCkBAIC00ODM4LDggKzQ4MzgsOCBAQCBzdGF0 aWMgdm9pZCBnZW45X2VuYWJsZV9yYzYoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJSTkxNV9X UklURShHRU42X1JDNl9XQUtFX1JBVEVfTElNSVQsIDU0IDw8IDE2KTsKIAlJOTE1X1dSSVRFKEdF TjZfUkNfRVZBTFVBVElPTl9JTlRFUlZBTCwgMTI1MDAwKTsgLyogMTI1MDAgKiAxMjgwbnMgKi8K IAlJOTE1X1dSSVRFKEdFTjZfUkNfSURMRV9IWVNURVJTSVMsIDI1KTsgLyogMjUgKiAxMjgwbnMg Ki8KLQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9wcml2LCB1bnVzZWQpCi0JCUk5MTVfV1JJVEUo UklOR19NQVhfSURMRShyaW5nLT5tbWlvX2Jhc2UpLCAxMCk7CisJZm9yX2VhY2hfcmluZyhlbmdp bmUsIGRldl9wcml2LCB1bnVzZWQpCisJCUk5MTVfV1JJVEUoUklOR19NQVhfSURMRShlbmdpbmUt Pm1taW9fYmFzZSksIDEwKTsKIAogCWlmIChIQVNfR1VDX1VDT0RFKGRldikpCiAJCUk5MTVfV1JJ VEUoR1VDX01BWF9JRExFX0NPVU5ULCAweEEpOwpAQCAtNDg4NSw3ICs0ODg1LDcgQEAgc3RhdGlj IHZvaWQgZ2VuOV9lbmFibGVfcmM2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9p ZCBnZW44X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXVp bnQzMl90IHJjNl9tYXNrID0gMDsKIAlpbnQgdW51c2VkOwogCkBAIC00OTA2LDggKzQ5MDYsOCBA QCBzdGF0aWMgdm9pZCBnZW44X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJ OTE1X1dSSVRFKEdFTjZfUkM2X1dBS0VfUkFURV9MSU1JVCwgNDAgPDwgMTYpOwogCUk5MTVfV1JJ VEUoR0VONl9SQ19FVkFMVUFUSU9OX0lOVEVSVkFMLCAxMjUwMDApOyAvKiAxMjUwMCAqIDEyODBu cyAqLwogCUk5MTVfV1JJVEUoR0VONl9SQ19JRExFX0hZU1RFUlNJUywgMjUpOyAvKiAyNSAqIDEy ODBucyAqLwotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIHVudXNlZCkKLQkJSTkxNV9X UklURShSSU5HX01BWF9JRExFKHJpbmctPm1taW9fYmFzZSksIDEwKTsKKwlmb3JfZWFjaF9yaW5n KGVuZ2luZSwgZGV2X3ByaXYsIHVudXNlZCkKKwkJSTkxNV9XUklURShSSU5HX01BWF9JRExFKGVu Z2luZS0+bW1pb19iYXNlKSwgMTApOwogCUk5MTVfV1JJVEUoR0VONl9SQ19TTEVFUCwgMCk7CiAJ aWYgKElTX0JST0FEV0VMTChkZXYpKQogCQlJOTE1X1dSSVRFKEdFTjZfUkM2X1RIUkVTSE9MRCwg NjI1KTsgLyogODAwdXMvMS4yOCBmb3IgVE8gKi8KQEAgLTQ5NjcsNyArNDk2Nyw3IEBAIHN0YXRp YyB2b2lkIGdlbjhfZW5hYmxlX3JwcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogc3RhdGljIHZv aWQgZ2VuNl9lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAl1 MzIgcmM2dmlkcywgcGN1X21ib3ggPSAwLCByYzZfbWFzayA9IDA7CiAJdTMyIGd0Zmlmb2RiZzsK IAlpbnQgcmM2X21vZGU7CkBAIC01MDAzLDggKzUwMDMsOCBAQCBzdGF0aWMgdm9pZCBnZW42X2Vu YWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJOTE1X1dSSVRFKEdFTjZfUkNfRVZB TFVBVElPTl9JTlRFUlZBTCwgMTI1MDAwKTsKIAlJOTE1X1dSSVRFKEdFTjZfUkNfSURMRV9IWVNU RVJTSVMsIDI1KTsKIAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCi0JCUk5MTVf V1JJVEUoUklOR19NQVhfSURMRShyaW5nLT5tbWlvX2Jhc2UpLCAxMCk7CisJZm9yX2VhY2hfcmlu ZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCQlJOTE1X1dSSVRFKFJJTkdfTUFYX0lETEUoZW5naW5l LT5tbWlvX2Jhc2UpLCAxMCk7CiAKIAlJOTE1X1dSSVRFKEdFTjZfUkNfU0xFRVAsIDApOwogCUk5 MTVfV1JJVEUoR0VONl9SQzFlX1RIUkVTSE9MRCwgMTAwMCk7CkBAIC01NDk1LDcgKzU0OTUsNyBA QCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NsZWFudXBfZ3RfcG93ZXJzYXZlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiBzdGF0aWMgdm9pZCBjaGVycnl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBk ZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXUzMiBndGZpZm9kYmcsIHZhbCwgcmM2X21vZGUg PSAwLCBwY2JyOwogCWludCBpOwogCkBAIC01NTIyLDggKzU1MjIsOCBAQCBzdGF0aWMgdm9pZCBj aGVycnl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJOTE1X1dSSVRF KEdFTjZfUkNfRVZBTFVBVElPTl9JTlRFUlZBTCwgMTI1MDAwKTsgLyogMTI1MDAgKiAxMjgwbnMg Ki8KIAlJOTE1X1dSSVRFKEdFTjZfUkNfSURMRV9IWVNURVJTSVMsIDI1KTsgLyogMjUgKiAxMjgw bnMgKi8KIAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCi0JCUk5MTVfV1JJVEUo UklOR19NQVhfSURMRShyaW5nLT5tbWlvX2Jhc2UpLCAxMCk7CisJZm9yX2VhY2hfcmluZyhlbmdp bmUsIGRldl9wcml2LCBpKQorCQlJOTE1X1dSSVRFKFJJTkdfTUFYX0lETEUoZW5naW5lLT5tbWlv X2Jhc2UpLCAxMCk7CiAJSTkxNV9XUklURShHRU42X1JDX1NMRUVQLCAwKTsKIAogCS8qIFRPIHRo cmVzaG9sZCBzZXQgdG8gNTAwIHVzICggMHgxODYgKiAxLjI4IHVzKSAqLwpAQCAtNTU5Myw3ICs1 NTkzLDcgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19lbmFibGVfcnBzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7CisJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXUzMiBndGZpZm9kYmcsIHZhbCwgcmM2X21vZGUgPSAw OwogCWludCBpOwogCkBAIC01NjMzLDggKzU2MzMsOCBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3 X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJOTE1X1dSSVRFKEdFTjZfUkNf RVZBTFVBVElPTl9JTlRFUlZBTCwgMTI1MDAwKTsKIAlJOTE1X1dSSVRFKEdFTjZfUkNfSURMRV9I WVNURVJTSVMsIDI1KTsKIAotCWZvcl9lYWNoX3JpbmcocmluZywgZGV2X3ByaXYsIGkpCi0JCUk5 MTVfV1JJVEUoUklOR19NQVhfSURMRShyaW5nLT5tbWlvX2Jhc2UpLCAxMCk7CisJZm9yX2VhY2hf cmluZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCQlJOTE1X1dSSVRFKFJJTkdfTUFYX0lETEUoZW5n aW5lLT5tbWlvX2Jhc2UpLCAxMCk7CiAKIAlJOTE1X1dSSVRFKEdFTjZfUkM2X1RIUkVTSE9MRCwg MHg1NTcpOwogCkBAIC02MDEwLDcgKzYwMTAsNyBAQCBFWFBPUlRfU1lNQk9MX0dQTChpOTE1X2dw dV9sb3dlcik7CiBib29sIGk5MTVfZ3B1X2J1c3kodm9pZCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXY7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZzsKKwlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJYm9vbCByZXQgPSBmYWxzZTsKIAlpbnQgaTsK IApAQCAtNjAxOSw4ICs2MDE5LDggQEAgYm9vbCBpOTE1X2dwdV9idXN5KHZvaWQpCiAJCWdvdG8g b3V0X3VubG9jazsKIAlkZXZfcHJpdiA9IGk5MTVfbWNoX2RldjsKIAotCWZvcl9lYWNoX3Jpbmco cmluZywgZGV2X3ByaXYsIGkpCi0JCXJldCB8PSAhbGlzdF9lbXB0eSgmcmluZy0+cmVxdWVzdF9s aXN0KTsKKwlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJCXJldCB8PSAhbGlz dF9lbXB0eSgmZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCiBvdXRfdW5sb2NrOgogCXNwaW5fdW5s b2NrX2lycSgmbWNoZGV2X2xvY2spOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCmluZGV4IDQ1Y2U0NWE1ZTEyMi4uNjg4NzczYWFhNWU1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC03OSw3ICs3OSw3IEBAIGdlbjJfcmVuZGVyX3Jpbmdf Zmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCSAgICAgICB1MzIJaW52 YWxpZGF0ZV9kb21haW5zLAogCQkgICAgICAgdTMyCWZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUgPSByZXEtPnJpbmc7CiAJdTMyIGNtZDsKIAlpbnQgcmV0OwogCkBAIC05NCw5 ICs5NCw5IEBAIGdlbjJfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVsX3JpbmdfZW1pdChy aW5nLCBjbWQpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKLQlpbnRlbF9yaW5n X2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgY21kKTsKKwlpbnRlbF9y aW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsK IAogCXJldHVybiAwOwogfQpAQCAtMTA2LDggKzEwNiw4IEBAIGdlbjRfcmVuZGVyX3JpbmdfZmx1 c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCSAgICAgICB1MzIJaW52YWxp ZGF0ZV9kb21haW5zLAogCQkgICAgICAgdTMyCWZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gcmluZy0+ZGV2OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+cmlu ZzsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJdTMyIGNtZDsKIAlp bnQgcmV0OwogCkBAIC0xNTMsOSArMTUzLDkgQEAgZ2VuNF9yZW5kZXJfcmluZ19mbHVzaChzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0Owog Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGNtZCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1J X05PT1ApOwotCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5n aW5lLCBjbWQpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX05PT1ApOworCWludGVsX3Jp bmdfYWR2YW5jZShlbmdpbmUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yMDAsMzQgKzIwMCwzNCBA QCBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx LAogc3RhdGljIGludAogaW50ZWxfZW1pdF9wb3N0X3N5bmNfbm9uemVyb19mbHVzaChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nID0gcmVxLT5yaW5nOwotCXUzMiBzY3JhdGNoX2FkZHIgPSByaW5nLT5zY3JhdGNoLmd0dF9v ZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IHJlcS0+cmluZzsKKwl1MzIgc2NyYXRjaF9hZGRyID0gZW5naW5lLT5zY3JhdGNoLmd0 dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRl bF9yaW5nX2JlZ2luKHJlcSwgNik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVs X3JpbmdfZW1pdChyaW5nLCBHRlhfT1BfUElQRV9DT05UUk9MKDUpKTsKLQlpbnRlbF9yaW5nX2Vt aXQocmluZywgUElQRV9DT05UUk9MX0NTX1NUQUxMIHwKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5l LCBHRlhfT1BfUElQRV9DT05UUk9MKDUpKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBQSVBF X0NPTlRST0xfQ1NfU1RBTEwgfAogCQkJUElQRV9DT05UUk9MX1NUQUxMX0FUX1NDT1JFQk9BUkQp OwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBzY3JhdGNoX2FkZHIgfCBQSVBFX0NPTlRST0xfR0xP QkFMX0dUVCk7IC8qIGFkZHJlc3MgKi8KLQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7IC8qIGxv dyBkd29yZCAqLwotCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsgLyogaGlnaCBkd29yZCAqLwot CWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKLQlpbnRlbF9yaW5nX2FkdmFuY2Uocmlu Zyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgc2NyYXRjaF9hZGRyIHwgUElQRV9DT05UUk9M X0dMT0JBTF9HVFQpOyAvKiBhZGRyZXNzICovCisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7 IC8qIGxvdyBkd29yZCAqLworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIDApOyAvKiBoaWdoIGR3 b3JkICovCisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7CisJaW50ZWxfcmluZ19h ZHZhbmNlKGVuZ2luZSk7CiAKIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgNik7CiAJaWYg KHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVsX3JpbmdfZW1pdChyaW5nLCBHRlhfT1BfUElQ RV9DT05UUk9MKDUpKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgUElQRV9DT05UUk9MX1FXX1dS SVRFKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgc2NyYXRjaF9hZGRyIHwgUElQRV9DT05UUk9M X0dMT0JBTF9HVFQpOyAvKiBhZGRyZXNzICovCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwot CWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9P UCk7Ci0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUs IEdGWF9PUF9QSVBFX0NPTlRST0woNSkpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIFBJUEVf Q09OVFJPTF9RV19XUklURSk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgc2NyYXRjaF9hZGRy IHwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFQpOyAvKiBhZGRyZXNzICovCisJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgMCk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7CisJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7CisJaW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7CiAK IAlyZXR1cm4gMDsKIH0KQEAgLTIzNiw5ICsyMzYsOSBAQCBzdGF0aWMgaW50CiBnZW42X3JlbmRl cl9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkgICAgICAg dTMyIGludmFsaWRhdGVfZG9tYWlucywgdTMyIGZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXEtPnJpbmc7CiAJdTMyIGZsYWdzID0gMDsKLQl1MzIgc2NyYXRjaF9hZGRy ID0gcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwl1MzIg c2NyYXRjaF9hZGRyID0gZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5F X0JZVEVTOwogCWludCByZXQ7CiAKIAkvKiBGb3JjZSBTTkIgd29ya2Fyb3VuZHMgZm9yIFBJUEVf Q09OVFJPTCBmbHVzaGVzICovCkBAIC0yNzYsMTEgKzI3NiwxMSBAQCBnZW42X3JlbmRlcl9yaW5n X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCWlmIChyZXQpCiAJCXJl dHVybiByZXQ7CiAKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgR0ZYX09QX1BJUEVfQ09OVFJPTCg0 KSk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGZsYWdzKTsKLQlpbnRlbF9yaW5nX2VtaXQocmlu Zywgc2NyYXRjaF9hZGRyIHwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFQpOwotCWludGVsX3Jpbmdf ZW1pdChyaW5nLCAwKTsKLQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgR0ZYX09QX1BJUEVfQ09OVFJPTCg0KSk7CisJaW50ZWxfcmluZ19lbWl0KGVu Z2luZSwgZmxhZ3MpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIHNjcmF0Y2hfYWRkciB8IFBJ UEVfQ09OVFJPTF9HTE9CQUxfR1RUKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCAwKTsKKwlp bnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjg4LDE5ICsy ODgsMTkgQEAgZ2VuNl9yZW5kZXJfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSwKIHN0YXRpYyBpbnQKIGdlbjdfcmVuZGVyX3JpbmdfY3Nfc3RhbGxfd2Eoc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEt PnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGludGVsX3JpbmdfYmVnaW4ocmVxLCA0KTsKIAlp ZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIEdGWF9PUF9Q SVBFX0NPTlRST0woNCkpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBQSVBFX0NPTlRST0xfQ1Nf U1RBTEwgfAorCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIEdGWF9PUF9QSVBFX0NPTlRST0woNCkp OworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIFBJUEVfQ09OVFJPTF9DU19TVEFMTCB8CiAJCQkg ICAgICBQSVBFX0NPTlRST0xfU1RBTExfQVRfU0NPUkVCT0FSRCk7Ci0JaW50ZWxfcmluZ19lbWl0 KHJpbmcsIDApOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKLQlpbnRlbF9yaW5nX2FkdmFu Y2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7CisJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwgMCk7CisJaW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7CiAKIAlyZXR1cm4gMDsK IH0KQEAgLTMwOSw5ICszMDksOSBAQCBzdGF0aWMgaW50CiBnZW43X3JlbmRlcl9yaW5nX2ZsdXNo KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkgICAgICAgdTMyIGludmFsaWRh dGVfZG9tYWlucywgdTMyIGZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBy ZXEtPnJpbmc7CiAJdTMyIGZsYWdzID0gMDsKLQl1MzIgc2NyYXRjaF9hZGRyID0gcmluZy0+c2Ny YXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwl1MzIgc2NyYXRjaF9hZGRy ID0gZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwogCWlu dCByZXQ7CiAKIAkvKgpAQCAtMzYwLDExICszNjAsMTEgQEAgZ2VuN19yZW5kZXJfcmluZ19mbHVz aChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCi0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIEdGWF9PUF9QSVBFX0NPTlRST0woNCkpOwot CWludGVsX3JpbmdfZW1pdChyaW5nLCBmbGFncyk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIHNj cmF0Y2hfYWRkcik7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwotCWludGVsX3JpbmdfYWR2 YW5jZShyaW5nKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBHRlhfT1BfUElQRV9DT05UUk9M KDQpKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBmbGFncyk7CisJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwgc2NyYXRjaF9hZGRyKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCAwKTsKKwlp bnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVybiAwOwogfQpAQCAtMzczLDIwICsz NzMsMjAgQEAgc3RhdGljIGludAogZ2VuOF9lbWl0X3BpcGVfY29udHJvbChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJICAgICAgIHUzMiBmbGFncywgdTMyIHNjcmF0Y2hfYWRk cikKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJcmV0 ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAK LQlpbnRlbF9yaW5nX2VtaXQocmluZywgR0ZYX09QX1BJUEVfQ09OVFJPTCg2KSk7Ci0JaW50ZWxf cmluZ19lbWl0KHJpbmcsIGZsYWdzKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgc2NyYXRjaF9h ZGRyKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcs IDApOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKLQlpbnRlbF9yaW5nX2FkdmFuY2Uocmlu Zyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgR0ZYX09QX1BJUEVfQ09OVFJPTCg2KSk7CisJ aW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgZmxhZ3MpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUs IHNjcmF0Y2hfYWRkcik7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7CisJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgMCk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7CisJaW50ZWxf cmluZ19hZHZhbmNlKGVuZ2luZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTcwMCwxNSArNzAwLDE1 IEBAIGVycjoKIHN0YXRpYyBpbnQgaW50ZWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBk cm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCWludCByZXQsIGk7Ci0Jc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g cmluZy0+ZGV2OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+cmluZzsK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaTkxNV93b3Jr YXJvdW5kcyAqdyA9ICZkZXZfcHJpdi0+d29ya2Fyb3VuZHM7CiAKIAlpZiAody0+Y291bnQgPT0g MCkKIAkJcmV0dXJuIDA7CiAKLQlyaW5nLT5ncHVfY2FjaGVzX2RpcnR5ID0gdHJ1ZTsKKwllbmdp bmUtPmdwdV9jYWNoZXNfZGlydHkgPSB0cnVlOwogCXJldCA9IGludGVsX3JpbmdfZmx1c2hfYWxs X2NhY2hlcyhyZXEpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CkBAIC03MTcsMTYgKzcxNywx NiBAQCBzdGF0aWMgaW50IGludGVsX3Jpbmdfd29ya2Fyb3VuZHNfZW1pdChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaW50ZWxf cmluZ19lbWl0KHJpbmcsIE1JX0xPQURfUkVHSVNURVJfSU1NKHctPmNvdW50KSk7CisJaW50ZWxf cmluZ19lbWl0KGVuZ2luZSwgTUlfTE9BRF9SRUdJU1RFUl9JTU0ody0+Y291bnQpKTsKIAlmb3Ig KGkgPSAwOyBpIDwgdy0+Y291bnQ7IGkrKykgewotCQlpbnRlbF9yaW5nX2VtaXRfcmVnKHJpbmcs IHctPnJlZ1tpXS5hZGRyKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHctPnJlZ1tpXS52YWx1 ZSk7CisJCWludGVsX3JpbmdfZW1pdF9yZWcoZW5naW5lLCB3LT5yZWdbaV0uYWRkcik7CisJCWlu dGVsX3JpbmdfZW1pdChlbmdpbmUsIHctPnJlZ1tpXS52YWx1ZSk7CiAJfQotCWludGVsX3Jpbmdf ZW1pdChyaW5nLCBNSV9OT09QKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsK IAotCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5l KTsKIAotCXJpbmctPmdwdV9jYWNoZXNfZGlydHkgPSB0cnVlOworCWVuZ2luZS0+Z3B1X2NhY2hl c19kaXJ0eSA9IHRydWU7CiAJcmV0ID0gaW50ZWxfcmluZ19mbHVzaF9hbGxfY2FjaGVzKHJlcSk7 CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKQEAgLTEzODgsMjIgKzEzODgsMjMgQEAgc3RhdGlj IGludCBnZW42X3NpZ25hbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnNpZ25hbGxlcl9y ZXEsCiBzdGF0aWMgaW50CiBnZW42X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5nOwogCWludCByZXQ7 CiAKLQlpZiAocmluZy0+c2VtYXBob3JlLnNpZ25hbCkKLQkJcmV0ID0gcmluZy0+c2VtYXBob3Jl LnNpZ25hbChyZXEsIDQpOworCWlmIChlbmdpbmUtPnNlbWFwaG9yZS5zaWduYWwpCisJCXJldCA9 IGVuZ2luZS0+c2VtYXBob3JlLnNpZ25hbChyZXEsIDQpOwogCWVsc2UKIAkJcmV0ID0gaW50ZWxf cmluZ19iZWdpbihyZXEsIDQpOwogCiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCWludGVs X3JpbmdfZW1pdChyaW5nLCBNSV9TVE9SRV9EV09SRF9JTkRFWCk7Ci0JaW50ZWxfcmluZ19lbWl0 KHJpbmcsIEk5MTVfR0VNX0hXU19JTkRFWCA8PCBNSV9TVE9SRV9EV09SRF9JTkRFWF9TSElGVCk7 Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSkp OwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9VU0VSX0lOVEVSUlVQVCk7Ci0JX19pbnRlbF9y aW5nX2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfU1RPUkVfRFdP UkRfSU5ERVgpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsCisJCQlJOTE1X0dFTV9IV1NfSU5E RVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQpOworCWludGVsX3JpbmdfZW1pdChlbmdp bmUsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSkpOworCWludGVsX3JpbmdfZW1pdChl bmdpbmUsIE1JX1VTRVJfSU5URVJSVVBUKTsKKwlfX2ludGVsX3JpbmdfYWR2YW5jZShlbmdpbmUp OwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNTAyLDggKzE1MDMsOCBAQCBkbyB7CQkJCQkJCQkJXAog c3RhdGljIGludAogcGNfcmVuZGVyX2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEtPnJpbmc7 Ci0JdTMyIHNjcmF0Y2hfYWRkciA9IHJpbmctPnNjcmF0Y2guZ3R0X29mZnNldCArIDIgKiBDQUNI RUxJTkVfQllURVM7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5n OworCXUzMiBzY3JhdGNoX2FkZHIgPSBlbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldCArIDIgKiBD QUNIRUxJTkVfQllURVM7CiAJaW50IHJldDsKIAogCS8qIEZvciBJcm9ubGFrZSwgTUlfVVNFUl9J TlRFUlJVUFQgd2FzIGRlcHJlY2F0ZWQgYW5kIGFwcGFyZW50bHkKQEAgLTE1MTgsMzIgKzE1MTks MzYgQEAgcGNfcmVuZGVyX2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRlbF9yaW5nX2VtaXQocmluZywg R0ZYX09QX1BJUEVfQ09OVFJPTCg0KSB8IFBJUEVfQ09OVFJPTF9RV19XUklURSB8CisJaW50ZWxf cmluZ19lbWl0KGVuZ2luZSwKKwkJCUdGWF9PUF9QSVBFX0NPTlRST0woNCkgfCBQSVBFX0NPTlRS T0xfUVdfV1JJVEUgfAogCQkJUElQRV9DT05UUk9MX1dSSVRFX0ZMVVNIIHwKIAkJCVBJUEVfQ09O VFJPTF9URVhUVVJFX0NBQ0hFX0lOVkFMSURBVEUpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBy aW5nLT5zY3JhdGNoLmd0dF9vZmZzZXQgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7Ci0JaW50 ZWxfcmluZ19lbWl0KHJpbmcsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSkpOwotCWlu dGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKLQlQSVBFX0NPTlRST0xfRkxVU0gocmluZywgc2NyYXRj aF9hZGRyKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLAorCQkJZW5naW5lLT5zY3JhdGNoLmd0 dF9vZmZzZXQgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7CisJaW50ZWxfcmluZ19lbWl0KGVu Z2luZSwgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxKSk7CisJaW50ZWxfcmluZ19lbWl0 KGVuZ2luZSwgMCk7CisJUElQRV9DT05UUk9MX0ZMVVNIKGVuZ2luZSwgc2NyYXRjaF9hZGRyKTsK IAlzY3JhdGNoX2FkZHIgKz0gMiAqIENBQ0hFTElORV9CWVRFUzsgLyogd3JpdGUgdG8gc2VwYXJh dGUgY2FjaGVsaW5lcyAqLwotCVBJUEVfQ09OVFJPTF9GTFVTSChyaW5nLCBzY3JhdGNoX2FkZHIp OworCVBJUEVfQ09OVFJPTF9GTFVTSChlbmdpbmUsIHNjcmF0Y2hfYWRkcik7CiAJc2NyYXRjaF9h ZGRyICs9IDIgKiBDQUNIRUxJTkVfQllURVM7Ci0JUElQRV9DT05UUk9MX0ZMVVNIKHJpbmcsIHNj cmF0Y2hfYWRkcik7CisJUElQRV9DT05UUk9MX0ZMVVNIKGVuZ2luZSwgc2NyYXRjaF9hZGRyKTsK IAlzY3JhdGNoX2FkZHIgKz0gMiAqIENBQ0hFTElORV9CWVRFUzsKLQlQSVBFX0NPTlRST0xfRkxV U0gocmluZywgc2NyYXRjaF9hZGRyKTsKKwlQSVBFX0NPTlRST0xfRkxVU0goZW5naW5lLCBzY3Jh dGNoX2FkZHIpOwogCXNjcmF0Y2hfYWRkciArPSAyICogQ0FDSEVMSU5FX0JZVEVTOwotCVBJUEVf Q09OVFJPTF9GTFVTSChyaW5nLCBzY3JhdGNoX2FkZHIpOworCVBJUEVfQ09OVFJPTF9GTFVTSChl bmdpbmUsIHNjcmF0Y2hfYWRkcik7CiAJc2NyYXRjaF9hZGRyICs9IDIgKiBDQUNIRUxJTkVfQllU RVM7Ci0JUElQRV9DT05UUk9MX0ZMVVNIKHJpbmcsIHNjcmF0Y2hfYWRkcik7CisJUElQRV9DT05U Uk9MX0ZMVVNIKGVuZ2luZSwgc2NyYXRjaF9hZGRyKTsKIAotCWludGVsX3JpbmdfZW1pdChyaW5n LCBHRlhfT1BfUElQRV9DT05UUk9MKDQpIHwgUElQRV9DT05UUk9MX1FXX1dSSVRFIHwKKwlpbnRl bF9yaW5nX2VtaXQoZW5naW5lLAorCQkJR0ZYX09QX1BJUEVfQ09OVFJPTCg0KSB8IFBJUEVfQ09O VFJPTF9RV19XUklURSB8CiAJCQlQSVBFX0NPTlRST0xfV1JJVEVfRkxVU0ggfAogCQkJUElQRV9D T05UUk9MX1RFWFRVUkVfQ0FDSEVfSU5WQUxJREFURSB8CiAJCQlQSVBFX0NPTlRST0xfTk9USUZZ KTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgcmluZy0+c2NyYXRjaC5ndHRfb2Zmc2V0IHwgUElQ RV9DT05UUk9MX0dMT0JBTF9HVFQpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBpOTE1X2dlbV9y ZXF1ZXN0X2dldF9zZXFubyhyZXEpKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7Ci0JX19p bnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKKwkJCWVu Z2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0IHwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFQpOworCWlu dGVsX3JpbmdfZW1pdChlbmdpbmUsIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKHJlcSkpOwor CWludGVsX3JpbmdfZW1pdChlbmdpbmUsIDApOworCV9faW50ZWxfcmluZ19hZHZhbmNlKGVuZ2lu ZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE2OTYsMzQgKzE3MDEsMzUgQEAgYnNkX3JpbmdfZmx1 c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJICAgICAgIHUzMiAgICAgaW52 YWxpZGF0ZV9kb21haW5zLAogCSAgICAgICB1MzIgICAgIGZsdXNoX2RvbWFpbnMpCiB7Ci0Jc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGludGVsX3Jp bmdfYmVnaW4ocmVxLCAyKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaW50ZWxfcmlu Z19lbWl0KHJpbmcsIE1JX0ZMVVNIKTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7 Ci0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1J X0ZMVVNIKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKKwlpbnRlbF9yaW5n X2FkdmFuY2UoZW5naW5lKTsKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludAogaTl4eF9hZGRf cmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW50ZWxfcmluZ19iZWdp bihyZXEsIDQpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRlbF9yaW5nX2VtaXQo cmluZywgTUlfU1RPUkVfRFdPUkRfSU5ERVgpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBJOTE1 X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQpOwotCWludGVsX3Jp bmdfZW1pdChyaW5nLCBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyZXEpKTsKLQlpbnRlbF9y aW5nX2VtaXQocmluZywgTUlfVVNFUl9JTlRFUlJVUFQpOwotCV9faW50ZWxfcmluZ19hZHZhbmNl KHJpbmcpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX1NUT1JFX0RXT1JEX0lOREVYKTsK KwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLAorCQkJSTkxNV9HRU1fSFdTX0lOREVYIDw8IE1JX1NU T1JFX0RXT1JEX0lOREVYX1NISUZUKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBpOTE1X2dl bV9yZXF1ZXN0X2dldF9zZXFubyhyZXEpKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9V U0VSX0lOVEVSUlVQVCk7CisJX19pbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVy biAwOwogfQpAQCAtMTg1NywyMCArMTg2MywyMCBAQCBpOTY1X2Rpc3BhdGNoX2V4ZWNidWZmZXIo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkgdTY0IG9mZnNldCwgdTMyIGxl bmd0aCwKIAkJCSB1bnNpZ25lZCBkaXNwYXRjaF9mbGFncykKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEs IDIpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRlbF9yaW5nX2VtaXQocmluZywK KwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLAogCQkJTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHwKIAkJ CU1JX0JBVENIX0dUVCB8CiAJCQkoZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NFQ1VS RSA/CiAJCQkgMCA6IE1JX0JBVENIX05PTl9TRUNVUkVfSTk2NSkpOwotCWludGVsX3JpbmdfZW1p dChyaW5nLCBvZmZzZXQpOwotCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwlpbnRlbF9yaW5n X2VtaXQoZW5naW5lLCBvZmZzZXQpOworCWludGVsX3JpbmdfYWR2YW5jZShlbmdpbmUpOwogCiAJ cmV0dXJuIDA7CiB9CkBAIC0xODg0LDggKzE4OTAsOCBAQCBpODMwX2Rpc3BhdGNoX2V4ZWNidWZm ZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCQkgdTY0IG9mZnNldCwgdTMy IGxlbiwKIAkJCSB1bnNpZ25lZCBkaXNwYXRjaF9mbGFncykKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwotCXUzMiBjc19vZmZzZXQgPSByaW5nLT5zY3JhdGNo Lmd0dF9vZmZzZXQ7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5n OworCXUzMiBjc19vZmZzZXQgPSBlbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldDsKIAlpbnQgcmV0 OwogCiAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwpAQCAtMTg5MywxMyArMTg5OSwx MyBAQCBpODMwX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsCiAJCXJldHVybiByZXQ7CiAKIAkvKiBFdmljdCB0aGUgaW52YWxpZCBQVEUgVExCcyAq LwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBDT0xPUl9CTFRfQ01EIHwgQkxUX1dSSVRFX1JHQkEp OwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBCTFRfREVQVEhfMzIgfCBCTFRfUk9QX0NPTE9SX0NP UFkgfCA0MDk2KTsKLQlpbnRlbF9yaW5nX2VtaXQocmluZywgSTgzMF9UTEJfRU5UUklFUyA8PCAx NiB8IDQpOyAvKiBsb2FkIGVhY2ggcGFnZSAqLwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBjc19v ZmZzZXQpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCAweGRlYWRiZWVmKTsKLQlpbnRlbF9yaW5n X2VtaXQocmluZywgTUlfTk9PUCk7Ci0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOworCWludGVs X3JpbmdfZW1pdChlbmdpbmUsIENPTE9SX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSk7CisJaW50 ZWxfcmluZ19lbWl0KGVuZ2luZSwgQkxUX0RFUFRIXzMyIHwgQkxUX1JPUF9DT0xPUl9DT1BZIHwg NDA5Nik7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgSTgzMF9UTEJfRU5UUklFUyA8PCAxNiB8 IDQpOyAvKiBsb2FkIGVhY2ggcGFnZSAqLworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGNzX29m ZnNldCk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMHhkZWFkYmVlZik7CisJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7CisJaW50ZWxfcmluZ19hZHZhbmNlKGVuZ2luZSk7CiAK IAlpZiAoKGRpc3BhdGNoX2ZsYWdzICYgSTkxNV9ESVNQQVRDSF9QSU5ORUQpID09IDApIHsKIAkJ aWYgKGxlbiA+IEk4MzBfQkFUQ0hfTElNSVQpCkBAIC0xOTEzLDE2ICsxOTE5LDE3IEBAIGk4MzBf ZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJ ICogc3RhYmxlIGJhdGNoIHNjcmF0Y2ggYm8gYXJlYSAoc28gdGhhdCB0aGUgQ1MgbmV2ZXIKIAkJ ICogc3R1bWJsZXMgb3ZlciBpdHMgdGxiIGludmFsaWRhdGlvbiBidWcpIC4uLgogCQkgKi8KLQkJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIFNSQ19DT1BZX0JMVF9DTUQgfCBCTFRfV1JJVEVfUkdCQSk7 Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCBCTFRfREVQVEhfMzIgfCBCTFRfUk9QX1NSQ19DT1BZ IHwgNDA5Nik7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCBESVZfUk9VTkRfVVAobGVuLCA0MDk2 KSA8PCAxNiB8IDQwOTYpOwotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgY3Nfb2Zmc2V0KTsKLQkJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIDQwOTYpOwotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgb2Zm c2V0KTsKLQotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfRkxVU0gpOwotCQlpbnRlbF9yaW5n X2VtaXQocmluZywgTUlfTk9PUCk7Ci0JCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwkJaW50 ZWxfcmluZ19lbWl0KGVuZ2luZSwgU1JDX0NPUFlfQkxUX0NNRCB8IEJMVF9XUklURV9SR0JBKTsK KwkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKKwkJCQlCTFRfREVQVEhfMzIgfCBCTFRfUk9QX1NS Q19DT1BZIHwgNDA5Nik7CisJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIERJVl9ST1VORF9VUChs ZW4sIDQwOTYpIDw8IDE2IHwgNDA5Nik7CisJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGNzX29m ZnNldCk7CisJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIDQwOTYpOworCQlpbnRlbF9yaW5nX2Vt aXQoZW5naW5lLCBvZmZzZXQpOworCisJCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX0ZMVVNI KTsKKwkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7CisJCWludGVsX3JpbmdfYWR2 YW5jZShlbmdpbmUpOwogCiAJCS8qIC4uLiBhbmQgZXhlY3V0ZSBpdC4gKi8KIAkJb2Zmc2V0ID0g Y3Nfb2Zmc2V0OwpAQCAtMTkzMiwxMCArMTkzOSwxMCBAQCBpODMwX2Rpc3BhdGNoX2V4ZWNidWZm ZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJaWYgKHJldCkKIAkJcmV0dXJu IHJldDsKIAotCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfCBN SV9CQVRDSF9HVFQpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBvZmZzZXQgfCAoZGlzcGF0Y2hf ZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NFQ1VSRSA/Ci0JCQkJCTAgOiBNSV9CQVRDSF9OT05fU0VD VVJFKSk7Ci0JaW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOworCWludGVsX3JpbmdfZW1pdChlbmdp bmUsIE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8IE1JX0JBVENIX0dUVCk7CisJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwgb2Zmc2V0IHwgKGRpc3BhdGNoX2ZsYWdzICYgSTkxNV9ESVNQQVRDSF9TRUNV UkUgPworCQkJCQkgIDAgOiBNSV9CQVRDSF9OT05fU0VDVVJFKSk7CisJaW50ZWxfcmluZ19hZHZh bmNlKGVuZ2luZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTE5NDUsMTcgKzE5NTIsMTcgQEAgaTkx NV9kaXNwYXRjaF9leGVjYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAog CQkJIHU2NCBvZmZzZXQsIHUzMiBsZW4sCiAJCQkgdW5zaWduZWQgZGlzcGF0Y2hfZmxhZ3MpCiB7 Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUgPSByZXEtPnJpbmc7CiAJaW50IHJldDsKIAogCXJldCA9IGlu dGVsX3JpbmdfYmVnaW4ocmVxLCAyKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JaW50 ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0JBVENIX0JVRkZFUl9TVEFSVCB8IE1JX0JBVENIX0dUVCk7 Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIG9mZnNldCB8IChkaXNwYXRjaF9mbGFncyAmIEk5MTVf RElTUEFUQ0hfU0VDVVJFID8KLQkJCQkJMCA6IE1JX0JBVENIX05PTl9TRUNVUkUpKTsKLQlpbnRl bF9yaW5nX2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfQkFUQ0hf QlVGRkVSX1NUQVJUIHwgTUlfQkFUQ0hfR1RUKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBv ZmZzZXQgfCAoZGlzcGF0Y2hfZmxhZ3MgJiBJOTE1X0RJU1BBVENIX1NFQ1VSRSA/CisJCQkJCSAg MCA6IE1JX0JBVENIX05PTl9TRUNVUkUpKTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsK IAogCXJldHVybiAwOwogfQpAQCAtMjQ4MCwzMiArMjQ4NywzMiBAQCBzdGF0aWMgaW50IF9faW50 ZWxfcmluZ19wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBieXRlcykK IGludCBpbnRlbF9yaW5nX2JlZ2luKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAog CQkgICAgIGludCBudW1fZHdvcmRzKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmc7 CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdjsKIAlpbnQgcmV0OwogCiAJV0FSTl9PTihyZXEgPT0gTlVMTCk7Ci0Jcmlu ZyA9IHJlcS0+cmluZzsKLQlkZXZfcHJpdiA9IHJpbmctPmRldi0+ZGV2X3ByaXZhdGU7CisJZW5n aW5lID0gcmVxLT5yaW5nOworCWRldl9wcml2ID0gZW5naW5lLT5kZXYtPmRldl9wcml2YXRlOwog CiAJcmV0ID0gaTkxNV9nZW1fY2hlY2tfd2VkZ2UoJmRldl9wcml2LT5ncHVfZXJyb3IsCiAJCQkJ ICAgZGV2X3ByaXYtPm1tLmludGVycnVwdGlibGUpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7 CiAKLQlyZXQgPSBfX2ludGVsX3JpbmdfcHJlcGFyZShyaW5nLCBudW1fZHdvcmRzICogc2l6ZW9m KHVpbnQzMl90KSk7CisJcmV0ID0gX19pbnRlbF9yaW5nX3ByZXBhcmUoZW5naW5lLCBudW1fZHdv cmRzICogc2l6ZW9mKHVpbnQzMl90KSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAotCXJp bmctPmJ1ZmZlci0+c3BhY2UgLT0gbnVtX2R3b3JkcyAqIHNpemVvZih1aW50MzJfdCk7CisJZW5n aW5lLT5idWZmZXItPnNwYWNlIC09IG51bV9kd29yZHMgKiBzaXplb2YodWludDMyX3QpOwogCXJl dHVybiAwOwogfQogCiAvKiBBbGlnbiB0aGUgcmluZyB0YWlsIHRvIGEgY2FjaGVsaW5lIGJvdW5k YXJ5ICovCiBpbnQgaW50ZWxfcmluZ19jYWNoZWxpbmVfYWxpZ24oc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+ cmluZzsKLQlpbnQgbnVtX2R3b3JkcyA9IChyaW5nLT5idWZmZXItPnRhaWwgJiAoQ0FDSEVMSU5F X0JZVEVTIC0gMSkpIC8gc2l6ZW9mKHVpbnQzMl90KTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXEtPnJpbmc7CisJaW50IG51bV9kd29yZHMgPSAoZW5naW5lLT5idWZmZXIt PnRhaWwgJiAoQ0FDSEVMSU5FX0JZVEVTIC0gMSkpIC8gc2l6ZW9mKHVpbnQzMl90KTsKIAlpbnQg cmV0OwogCiAJaWYgKG51bV9kd29yZHMgPT0gMCkKQEAgLTI1MTcsOSArMjUyNCw5IEBAIGludCBp bnRlbF9yaW5nX2NhY2hlbGluZV9hbGlnbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJl cSkKIAkJcmV0dXJuIHJldDsKIAogCXdoaWxlIChudW1fZHdvcmRzLS0pCi0JCWludGVsX3Jpbmdf ZW1pdChyaW5nLCBNSV9OT09QKTsKKwkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfTk9PUCk7 CiAKLQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19hZHZhbmNlKGVuZ2lu ZSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTI1NzYsNyArMjU4Myw3IEBAIHN0YXRpYyB2b2lkIGdl bjZfYnNkX3Jpbmdfd3JpdGVfdGFpbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogc3Rh dGljIGludCBnZW42X2JzZF9yaW5nX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAogCQkJICAgICAgIHUzMiBpbnZhbGlkYXRlLCB1MzIgZmx1c2gpCiB7Ci0Jc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUgPSByZXEtPnJpbmc7CiAJdWludDMyX3QgY21kOwogCWludCByZXQ7CiAKQEAgLTI1 ODUsNyArMjU5Miw3IEBAIHN0YXRpYyBpbnQgZ2VuNl9ic2RfcmluZ19mbHVzaChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJcmV0dXJuIHJldDsKIAogCWNtZCA9IE1JX0ZMVVNI X0RXOwotCWlmIChJTlRFTF9JTkZPKHJpbmctPmRldiktPmdlbiA+PSA4KQorCWlmIChJTlRFTF9J TkZPKGVuZ2luZS0+ZGV2KS0+Z2VuID49IDgpCiAJCWNtZCArPSAxOwogCiAJLyogV2UgYWx3YXlz IHJlcXVpcmUgYSBjb21tYW5kIGJhcnJpZXIgc28gdGhhdCBzdWJzZXF1ZW50CkBAIC0yNjA0LDE2 ICsyNjExLDE3IEBAIHN0YXRpYyBpbnQgZ2VuNl9ic2RfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAlpZiAoaW52YWxpZGF0ZSAmIEk5MTVfR0VNX0dQVV9ET01B SU5TKQogCQljbWQgfD0gTUlfSU5WQUxJREFURV9UTEIgfCBNSV9JTlZBTElEQVRFX0JTRDsKIAot CWludGVsX3JpbmdfZW1pdChyaW5nLCBjbWQpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBJOTE1 X0dFTV9IV1NfU0NSQVRDSF9BRERSIHwgTUlfRkxVU0hfRFdfVVNFX0dUVCk7Ci0JaWYgKElOVEVM X0lORk8ocmluZy0+ZGV2KS0+Z2VuID49IDgpIHsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDAp OyAvKiB1cHBlciBhZGRyICovCi0JCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsgLyogdmFsdWUg Ki8KKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBjbWQpOworCWludGVsX3JpbmdfZW1pdChlbmdp bmUsCisJCQlJOTE1X0dFTV9IV1NfU0NSQVRDSF9BRERSIHwgTUlfRkxVU0hfRFdfVVNFX0dUVCk7 CisJaWYgKElOVEVMX0lORk8oZW5naW5lLT5kZXYpLT5nZW4gPj0gOCkgeworCQlpbnRlbF9yaW5n X2VtaXQoZW5naW5lLCAwKTsgLyogdXBwZXIgYWRkciAqLworCQlpbnRlbF9yaW5nX2VtaXQoZW5n aW5lLCAwKTsgLyogdmFsdWUgKi8KIAl9IGVsc2UgIHsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcs IDApOwotCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7CisJCWludGVsX3JpbmdfZW1p dChlbmdpbmUsIDApOworCQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBNSV9OT09QKTsKIAl9Ci0J aW50ZWxfcmluZ19hZHZhbmNlKHJpbmcpOworCWludGVsX3JpbmdfYWR2YW5jZShlbmdpbmUpOwog CXJldHVybiAwOwogfQogCkBAIC0yNjIyLDggKzI2MzAsOCBAQCBnZW44X3JpbmdfZGlzcGF0Y2hf ZXhlY2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCSAgICAgIHU2 NCBvZmZzZXQsIHUzMiBsZW4sCiAJCQkgICAgICB1bnNpZ25lZCBkaXNwYXRjaF9mbGFncykKIHsK LQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOwotCWJvb2wgcHBndHQg PSBVU0VTX1BQR1RUKHJpbmctPmRldikgJiYKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSByZXEtPnJpbmc7CisJYm9vbCBwcGd0dCA9IFVTRVNfUFBHVFQoZW5naW5lLT5kZXYpICYm CiAJCQkhKGRpc3BhdGNoX2ZsYWdzICYgSTkxNV9ESVNQQVRDSF9TRUNVUkUpOwogCWludCByZXQ7 CiAKQEAgLTI2MzIsMTMgKzI2NDAsMTMgQEAgZ2VuOF9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXIo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJCXJldHVybiByZXQ7CiAKIAkvKiBG SVhNRShCRFcpOiBBZGRyZXNzIHNwYWNlIGFuZCBzZWN1cml0eSBzZWxlY3RvcnMuICovCi0JaW50 ZWxfcmluZ19lbWl0KHJpbmcsIE1JX0JBVENIX0JVRkZFUl9TVEFSVF9HRU44IHwgKHBwZ3R0PDw4 KSB8CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgTUlfQkFUQ0hfQlVGRkVSX1NUQVJUX0dFTjgg fCAocHBndHQ8PDgpIHwKIAkJCShkaXNwYXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfUlMgPwog CQkJIE1JX0JBVENIX1JFU09VUkNFX1NUUkVBTUVSIDogMCkpOwotCWludGVsX3JpbmdfZW1pdChy aW5nLCBsb3dlcl8zMl9iaXRzKG9mZnNldCkpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCB1cHBl cl8zMl9iaXRzKG9mZnNldCkpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9OT09QKTsKLQlp bnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgbG93ZXJf MzJfYml0cyhvZmZzZXQpKTsKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCB1cHBlcl8zMl9iaXRz KG9mZnNldCkpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIE1JX05PT1ApOworCWludGVsX3Jp bmdfYWR2YW5jZShlbmdpbmUpOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0yNjQ4LDIyICsyNjU2LDIy IEBAIGhzd19yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsCiAJCQkgICAgIHU2NCBvZmZzZXQsIHUzMiBsZW4sCiAJCQkgICAgIHVuc2lnbmVk IGRpc3BhdGNoX2ZsYWdzKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByZXEt PnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5nOwogCWlu dCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwgMik7CiAJaWYgKHJldCkKIAkJ cmV0dXJuIHJldDsKIAotCWludGVsX3JpbmdfZW1pdChyaW5nLAorCWludGVsX3JpbmdfZW1pdChl bmdpbmUsCiAJCQlNSV9CQVRDSF9CVUZGRVJfU1RBUlQgfAogCQkJKGRpc3BhdGNoX2ZsYWdzICYg STkxNV9ESVNQQVRDSF9TRUNVUkUgPwogCQkJIDAgOiBNSV9CQVRDSF9QUEdUVF9IU1cgfCBNSV9C QVRDSF9OT05fU0VDVVJFX0hTVykgfAogCQkJKGRpc3BhdGNoX2ZsYWdzICYgSTkxNV9ESVNQQVRD SF9SUyA/CiAJCQkgTUlfQkFUQ0hfUkVTT1VSQ0VfU1RSRUFNRVIgOiAwKSk7CiAJLyogYml0MC03 IGlzIHRoZSBsZW5ndGggb24gR0VONisgKi8KLQlpbnRlbF9yaW5nX2VtaXQocmluZywgb2Zmc2V0 KTsKLQlpbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwg b2Zmc2V0KTsKKwlpbnRlbF9yaW5nX2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVybiAwOwogfQpA QCAtMjY3MywyMCArMjY4MSwyMCBAQCBnZW42X3JpbmdfZGlzcGF0Y2hfZXhlY2J1ZmZlcihzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCSAgICAgIHU2NCBvZmZzZXQsIHUzMiBs ZW4sCiAJCQkgICAgICB1bnNpZ25lZCBkaXNwYXRjaF9mbGFncykKIHsKLQlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IHJlcS0+cmluZzsKIAlpbnQgcmV0OwogCiAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihy ZXEsIDIpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlpbnRlbF9yaW5nX2VtaXQocmlu ZywKKwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLAogCQkJTUlfQkFUQ0hfQlVGRkVSX1NUQVJUIHwK IAkJCShkaXNwYXRjaF9mbGFncyAmIEk5MTVfRElTUEFUQ0hfU0VDVVJFID8KIAkJCSAwIDogTUlf QkFUQ0hfTk9OX1NFQ1VSRV9JOTY1KSk7CiAJLyogYml0MC03IGlzIHRoZSBsZW5ndGggb24gR0VO NisgKi8KLQlpbnRlbF9yaW5nX2VtaXQocmluZywgb2Zmc2V0KTsKLQlpbnRlbF9yaW5nX2FkdmFu Y2UocmluZyk7CisJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgb2Zmc2V0KTsKKwlpbnRlbF9yaW5n X2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjY5Niw4ICsyNzA0LDggQEAg Z2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpyZXEsCiBzdGF0aWMgaW50IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSwKIAkJCSAgIHUzMiBpbnZhbGlkYXRlLCB1MzIgZmx1c2gpCiB7Ci0Jc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJlcS0+cmluZzsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gcmluZy0+ZGV2OworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9IHJlcS0+ cmluZzsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5naW5lLT5kZXY7CiAJdWludDMyX3Qg Y21kOwogCWludCByZXQ7CiAKQEAgLTI3MjQsMTYgKzI3MzIsMTcgQEAgc3RhdGljIGludCBnZW42 X3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJICovCiAJaWYg KGludmFsaWRhdGUgJiBJOTE1X0dFTV9ET01BSU5fUkVOREVSKQogCQljbWQgfD0gTUlfSU5WQUxJ REFURV9UTEI7Ci0JaW50ZWxfcmluZ19lbWl0KHJpbmcsIGNtZCk7Ci0JaW50ZWxfcmluZ19lbWl0 KHJpbmcsIEk5MTVfR0VNX0hXU19TQ1JBVENIX0FERFIgfCBNSV9GTFVTSF9EV19VU0VfR1RUKTsK KwlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCBjbWQpOworCWludGVsX3JpbmdfZW1pdChlbmdpbmUs CisJCQlJOTE1X0dFTV9IV1NfU0NSQVRDSF9BRERSIHwgTUlfRkxVU0hfRFdfVVNFX0dUVCk7CiAJ aWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcs IDApOyAvKiB1cHBlciBhZGRyICovCi0JCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsgLyogdmFs dWUgKi8KKwkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7IC8qIHVwcGVyIGFkZHIgKi8KKwkJ aW50ZWxfcmluZ19lbWl0KGVuZ2luZSwgMCk7IC8qIHZhbHVlICovCiAJfSBlbHNlICB7Ci0JCWlu dGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKLQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1JX05PT1Ap OworCQlpbnRlbF9yaW5nX2VtaXQoZW5naW5lLCAwKTsKKwkJaW50ZWxfcmluZ19lbWl0KGVuZ2lu ZSwgTUlfTk9PUCk7CiAJfQotCWludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKKwlpbnRlbF9yaW5n X2FkdmFuY2UoZW5naW5lKTsKIAogCXJldHVybiAwOwogfQpAQCAtMjc0MSwxNCArMjc1MCwxNCBA QCBzdGF0aWMgaW50IGdlbjZfcmluZ19mbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSwKIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9ICZkZXZfcHJpdi0+cmlu Z1tSQ1NdOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+cmlu Z1tSQ1NdOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJaW50IHJldDsKIAot CXJpbmctPm5hbWUgPSAicmVuZGVyIHJpbmciOwotCXJpbmctPmlkID0gUkNTOwotCXJpbmctPmV4 ZWNfaWQgPSBJOTE1X0VYRUNfUkVOREVSOwotCXJpbmctPm1taW9fYmFzZSA9IFJFTkRFUl9SSU5H X0JBU0U7CisJZW5naW5lLT5uYW1lID0gInJlbmRlciByaW5nIjsKKwllbmdpbmUtPmlkID0gUkNT OworCWVuZ2luZS0+ZXhlY19pZCA9IEk5MTVfRVhFQ19SRU5ERVI7CisJZW5naW5lLT5tbWlvX2Jh c2UgPSBSRU5ERVJfUklOR19CQVNFOwogCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDgp IHsKIAkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2KSkgewpAQCAtMjc2OCwzNCAr Mjc3NywzNCBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19idWZmZXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkJCX0KIAkJfQogCi0JCXJpbmctPmluaXRfY29udGV4dCA9IGludGVsX3Jj c19jdHhfaW5pdDsKLQkJcmluZy0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0OwotCQly aW5nLT5mbHVzaCA9IGdlbjhfcmVuZGVyX3JpbmdfZmx1c2g7Ci0JCXJpbmctPmlycV9nZXQgPSBn ZW44X3JpbmdfZ2V0X2lycTsKLQkJcmluZy0+aXJxX3B1dCA9IGdlbjhfcmluZ19wdXRfaXJxOwot CQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7Ci0JCXJp bmctPmdldF9zZXFubyA9IGdlbjZfcmluZ19nZXRfc2Vxbm87Ci0JCXJpbmctPnNldF9zZXFubyA9 IHJpbmdfc2V0X3NlcW5vOworCQllbmdpbmUtPmluaXRfY29udGV4dCA9IGludGVsX3Jjc19jdHhf aW5pdDsKKwkJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7CisJCWVuZ2lu ZS0+Zmx1c2ggPSBnZW44X3JlbmRlcl9yaW5nX2ZsdXNoOworCQllbmdpbmUtPmlycV9nZXQgPSBn ZW44X3JpbmdfZ2V0X2lycTsKKwkJZW5naW5lLT5pcnFfcHV0ID0gZ2VuOF9yaW5nX3B1dF9pcnE7 CisJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUOwor CQllbmdpbmUtPmdldF9zZXFubyA9IGdlbjZfcmluZ19nZXRfc2Vxbm87CisJCWVuZ2luZS0+c2V0 X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVk KGRldikpIHsKIAkJCVdBUk5fT04oIWRldl9wcml2LT5zZW1hcGhvcmVfb2JqKTsKLQkJCXJpbmct PnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuOF9yaW5nX3N5bmM7Ci0JCQlyaW5nLT5zZW1hcGhvcmUu c2lnbmFsID0gZ2VuOF9yY3Nfc2lnbmFsOwotCQkJR0VOOF9SSU5HX1NFTUFQSE9SRV9JTklUOwor CQkJZW5naW5lLT5zZW1hcGhvcmUuc3luY190byA9IGdlbjhfcmluZ19zeW5jOworCQkJZW5naW5l LT5zZW1hcGhvcmUuc2lnbmFsID0gZ2VuOF9yY3Nfc2lnbmFsOworCQkJR0VOOF9SSU5HX1NFTUFQ SE9SRV9JTklUKGVuZ2luZSk7CiAJCX0KIAl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2Vu ID49IDYpIHsKLQkJcmluZy0+aW5pdF9jb250ZXh0ID0gaW50ZWxfcmNzX2N0eF9pbml0OwotCQly aW5nLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7Ci0JCXJpbmctPmZsdXNoID0gZ2Vu N19yZW5kZXJfcmluZ19mbHVzaDsKKwkJZW5naW5lLT5pbml0X2NvbnRleHQgPSBpbnRlbF9yY3Nf Y3R4X2luaXQ7CisJCWVuZ2luZS0+YWRkX3JlcXVlc3QgPSBnZW42X2FkZF9yZXF1ZXN0OworCQll bmdpbmUtPmZsdXNoID0gZ2VuN19yZW5kZXJfcmluZ19mbHVzaDsKIAkJaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID09IDYpCi0JCQlyaW5nLT5mbHVzaCA9IGdlbjZfcmVuZGVyX3JpbmdfZmx1c2g7 Ci0JCXJpbmctPmlycV9nZXQgPSBnZW42X3JpbmdfZ2V0X2lycTsKLQkJcmluZy0+aXJxX3B1dCA9 IGdlbjZfcmluZ19wdXRfaXJxOwotCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJf VVNFUl9JTlRFUlJVUFQ7Ci0JCXJpbmctPmdldF9zZXFubyA9IGdlbjZfcmluZ19nZXRfc2Vxbm87 Ci0JCXJpbmctPnNldF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOworCQkJZW5naW5lLT5mbHVzaCA9 IGdlbjZfcmVuZGVyX3JpbmdfZmx1c2g7CisJCWVuZ2luZS0+aXJxX2dldCA9IGdlbjZfcmluZ19n ZXRfaXJxOworCQllbmdpbmUtPmlycV9wdXQgPSBnZW42X3JpbmdfcHV0X2lycTsKKwkJZW5naW5l LT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQ7CisJCWVuZ2luZS0+ Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKKwkJZW5naW5lLT5zZXRfc2Vxbm8gPSBy aW5nX3NldF9zZXFubzsKIAkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2KSkgewot CQkJcmluZy0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW42X3Jpbmdfc3luYzsKLQkJCXJpbmctPnNl bWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25hbDsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLnN5bmNf dG8gPSBnZW42X3Jpbmdfc3luYzsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZf c2lnbmFsOwogCQkJLyoKIAkJCSAqIFRoZSBjdXJyZW50IHNlbWFwaG9yZSBpcyBvbmx5IGFwcGxp ZWQgb24gcHJlLWdlbjgKIAkJCSAqIHBsYXRmb3JtLiAgQW5kIHRoZXJlIGlzIG5vIFZDUzIgcmlu ZyBvbiB0aGUgcHJlLWdlbjgKQEAgLTI4MDMsNTkgKzI4MTIsNTkgQEAgaW50IGludGVsX2luaXRf cmVuZGVyX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkgKiBpbml0aWFs aXplZCBhcyBJTlZBTElELiAgR2VuOCB3aWxsIGluaXRpYWxpemUgdGhlCiAJCQkgKiBzZW1hIGJl dHdlZW4gVkNTMiBhbmQgUkNTIGxhdGVyLgogCQkJICovCi0JCQlyaW5nLT5zZW1hcGhvcmUubWJv eC53YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEOwotCQkJcmluZy0+c2VtYXBo b3JlLm1ib3gud2FpdFtWQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfUlY7Ci0JCQlyaW5nLT5zZW1h cGhvcmUubWJveC53YWl0W0JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19SQjsKLQkJCXJpbmctPnNl bWFwaG9yZS5tYm94LndhaXRbVkVDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19SVkU7Ci0JCQlyaW5n LT5zZW1hcGhvcmUubWJveC53YWl0W1ZDUzJdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsK LQkJCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtSQ1NdID0gR0VONl9OT1NZTkM7Ci0JCQly aW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTXSA9IEdFTjZfVlJTWU5DOwotCQkJcmluZy0+ c2VtYXBob3JlLm1ib3guc2lnbmFsW0JDU10gPSBHRU42X0JSU1lOQzsKLQkJCXJpbmctPnNlbWFw aG9yZS5tYm94LnNpZ25hbFtWRUNTXSA9IEdFTjZfVkVSU1lOQzsKLQkJCXJpbmctPnNlbWFwaG9y ZS5tYm94LnNpZ25hbFtWQ1MyXSA9IEdFTjZfTk9TWU5DOworCQkJZW5naW5lLT5zZW1hcGhvcmUu bWJveC53YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEOworCQkJZW5naW5lLT5z ZW1hcGhvcmUubWJveC53YWl0W1ZDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19SVjsKKwkJCWVuZ2lu ZS0+c2VtYXBob3JlLm1ib3gud2FpdFtCQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfUkI7CisJCQll bmdpbmUtPnNlbWFwaG9yZS5tYm94LndhaXRbVkVDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19SVkU7 CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LndhaXRbVkNTMl0gPSBNSV9TRU1BUEhPUkVfU1lO Q19JTlZBTElEOworCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZf Tk9TWU5DOworCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTXSA9IEdFTjZfVlJT WU5DOworCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbQkNTXSA9IEdFTjZfQlJTWU5D OworCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBHRU42X1ZFUlNZTkM7 CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWQ1MyXSA9IEdFTjZfTk9TWU5DOwog CQl9CiAJfSBlbHNlIGlmIChJU19HRU41KGRldikpIHsKLQkJcmluZy0+YWRkX3JlcXVlc3QgPSBw Y19yZW5kZXJfYWRkX3JlcXVlc3Q7Ci0JCXJpbmctPmZsdXNoID0gZ2VuNF9yZW5kZXJfcmluZ19m bHVzaDsKLQkJcmluZy0+Z2V0X3NlcW5vID0gcGNfcmVuZGVyX2dldF9zZXFubzsKLQkJcmluZy0+ c2V0X3NlcW5vID0gcGNfcmVuZGVyX3NldF9zZXFubzsKLQkJcmluZy0+aXJxX2dldCA9IGdlbjVf cmluZ19nZXRfaXJxOwotCQlyaW5nLT5pcnFfcHV0ID0gZ2VuNV9yaW5nX3B1dF9pcnE7Ci0JCXJp bmctPmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCB8CisJCWVuZ2lu ZS0+YWRkX3JlcXVlc3QgPSBwY19yZW5kZXJfYWRkX3JlcXVlc3Q7CisJCWVuZ2luZS0+Zmx1c2gg PSBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoOworCQllbmdpbmUtPmdldF9zZXFubyA9IHBjX3JlbmRl cl9nZXRfc2Vxbm87CisJCWVuZ2luZS0+c2V0X3NlcW5vID0gcGNfcmVuZGVyX3NldF9zZXFubzsK KwkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuNV9yaW5nX2dldF9pcnE7CisJCWVuZ2luZS0+aXJxX3B1 dCA9IGdlbjVfcmluZ19wdXRfaXJxOworCQllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX1JF TkRFUl9VU0VSX0lOVEVSUlVQVCB8CiAJCQkJCUdUX1JFTkRFUl9QSVBFQ1RMX05PVElGWV9JTlRF UlJVUFQ7CiAJfSBlbHNlIHsKLQkJcmluZy0+YWRkX3JlcXVlc3QgPSBpOXh4X2FkZF9yZXF1ZXN0 OworCQllbmdpbmUtPmFkZF9yZXF1ZXN0ID0gaTl4eF9hZGRfcmVxdWVzdDsKIAkJaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuIDwgNCkKLQkJCXJpbmctPmZsdXNoID0gZ2VuMl9yZW5kZXJfcmluZ19m bHVzaDsKKwkJCWVuZ2luZS0+Zmx1c2ggPSBnZW4yX3JlbmRlcl9yaW5nX2ZsdXNoOwogCQllbHNl Ci0JCQlyaW5nLT5mbHVzaCA9IGdlbjRfcmVuZGVyX3JpbmdfZmx1c2g7Ci0JCXJpbmctPmdldF9z ZXFubyA9IHJpbmdfZ2V0X3NlcW5vOwotCQlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFu bzsKKwkJCWVuZ2luZS0+Zmx1c2ggPSBnZW40X3JlbmRlcl9yaW5nX2ZsdXNoOworCQllbmdpbmUt PmdldF9zZXFubyA9IHJpbmdfZ2V0X3NlcW5vOworCQllbmdpbmUtPnNldF9zZXFubyA9IHJpbmdf c2V0X3NlcW5vOwogCQlpZiAoSVNfR0VOMihkZXYpKSB7Ci0JCQlyaW5nLT5pcnFfZ2V0ID0gaTh4 eF9yaW5nX2dldF9pcnE7Ci0JCQlyaW5nLT5pcnFfcHV0ID0gaTh4eF9yaW5nX3B1dF9pcnE7CisJ CQllbmdpbmUtPmlycV9nZXQgPSBpOHh4X3JpbmdfZ2V0X2lycTsKKwkJCWVuZ2luZS0+aXJxX3B1 dCA9IGk4eHhfcmluZ19wdXRfaXJxOwogCQl9IGVsc2UgewotCQkJcmluZy0+aXJxX2dldCA9IGk5 eHhfcmluZ19nZXRfaXJxOwotCQkJcmluZy0+aXJxX3B1dCA9IGk5eHhfcmluZ19wdXRfaXJxOwor CQkJZW5naW5lLT5pcnFfZ2V0ID0gaTl4eF9yaW5nX2dldF9pcnE7CisJCQllbmdpbmUtPmlycV9w dXQgPSBpOXh4X3JpbmdfcHV0X2lycTsKIAkJfQotCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPSBJ OTE1X1VTRVJfSU5URVJSVVBUOworCQllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEk5MTVfVVNF Ul9JTlRFUlJVUFQ7CiAJfQotCXJpbmctPndyaXRlX3RhaWwgPSByaW5nX3dyaXRlX3RhaWw7CisJ ZW5naW5lLT53cml0ZV90YWlsID0gcmluZ193cml0ZV90YWlsOwogCiAJaWYgKElTX0hBU1dFTEwo ZGV2KSkKLQkJcmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGhzd19yaW5nX2Rpc3BhdGNoX2V4 ZWNidWZmZXI7CisJCWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGhzd19yaW5nX2Rpc3Bh dGNoX2V4ZWNidWZmZXI7CiAJZWxzZSBpZiAoSVNfR0VOOChkZXYpKQotCQlyaW5nLT5kaXNwYXRj aF9leGVjYnVmZmVyID0gZ2VuOF9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXI7CisJCWVuZ2luZS0+ ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGdlbjhfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyOwogCWVs c2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDYpCi0JCXJpbmctPmRpc3BhdGNoX2V4ZWNi dWZmZXIgPSBnZW42X3JpbmdfZGlzcGF0Y2hfZXhlY2J1ZmZlcjsKKwkJZW5naW5lLT5kaXNwYXRj aF9leGVjYnVmZmVyID0gZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXI7CiAJZWxzZSBpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkKLQkJcmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9 IGk5NjVfZGlzcGF0Y2hfZXhlY2J1ZmZlcjsKKwkJZW5naW5lLT5kaXNwYXRjaF9leGVjYnVmZmVy ID0gaTk2NV9kaXNwYXRjaF9leGVjYnVmZmVyOwogCWVsc2UgaWYgKElTX0k4MzAoZGV2KSB8fCBJ U184NDVHKGRldikpCi0JCXJpbmctPmRpc3BhdGNoX2V4ZWNidWZmZXIgPSBpODMwX2Rpc3BhdGNo X2V4ZWNidWZmZXI7CisJCWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGk4MzBfZGlzcGF0 Y2hfZXhlY2J1ZmZlcjsKIAllbHNlCi0JCXJpbmctPmRpc3BhdGNoX2V4ZWNidWZmZXIgPSBpOTE1 X2Rpc3BhdGNoX2V4ZWNidWZmZXI7Ci0JcmluZy0+aW5pdF9odyA9IGluaXRfcmVuZGVyX3Jpbmc7 Ci0JcmluZy0+Y2xlYW51cCA9IHJlbmRlcl9yaW5nX2NsZWFudXA7CisJCWVuZ2luZS0+ZGlzcGF0 Y2hfZXhlY2J1ZmZlciA9IGk5MTVfZGlzcGF0Y2hfZXhlY2J1ZmZlcjsKKwllbmdpbmUtPmluaXRf aHcgPSBpbml0X3JlbmRlcl9yaW5nOworCWVuZ2luZS0+Y2xlYW51cCA9IHJlbmRlcl9yaW5nX2Ns ZWFudXA7CiAKIAkvKiBXb3JrYXJvdW5kIGJhdGNoYnVmZmVyIHRvIGNvbWJhdCBDUyB0bGIgYnVn LiAqLwogCWlmIChIQVNfQlJPS0VOX0NTX1RMQihkZXYpKSB7CkBAIC0yODcyLDE2ICsyODgxLDE2 IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCQkJcmV0dXJuIHJldDsKIAkJfQogCi0JCXJpbmctPnNjcmF0Y2gub2JqID0gb2JqOwot CQlyaW5nLT5zY3JhdGNoLmd0dF9vZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2Jq KTsKKwkJZW5naW5lLT5zY3JhdGNoLm9iaiA9IG9iajsKKwkJZW5naW5lLT5zY3JhdGNoLmd0dF9v ZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKTsKIAl9CiAKLQlyZXQgPSBpbnRl bF9pbml0X3JpbmdfYnVmZmVyKGRldiwgcmluZyk7CisJcmV0ID0gaW50ZWxfaW5pdF9yaW5nX2J1 ZmZlcihkZXYsIGVuZ2luZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAogCWlmIChJTlRF TF9JTkZPKGRldiktPmdlbiA+PSA1KSB7Ci0JCXJldCA9IGludGVsX2luaXRfcGlwZV9jb250cm9s KHJpbmcpOworCQlyZXQgPSBpbnRlbF9pbml0X3BpcGVfY29udHJvbChlbmdpbmUpOwogCQlpZiAo cmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CkBAIC0yODkyLDc1ICsyOTAxLDc1IEBAIGludCBpbnRl bF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogaW50IGlu dGVsX2luaXRfYnNkX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gJmRldl9wcml2LT5yaW5nW1ZDU107CisJc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5yaW5nW1ZDU107CiAKLQlyaW5n LT5uYW1lID0gImJzZCByaW5nIjsKLQlyaW5nLT5pZCA9IFZDUzsKLQlyaW5nLT5leGVjX2lkID0g STkxNV9FWEVDX0JTRDsKKwllbmdpbmUtPm5hbWUgPSAiYnNkIHJpbmciOworCWVuZ2luZS0+aWQg PSBWQ1M7CisJZW5naW5lLT5leGVjX2lkID0gSTkxNV9FWEVDX0JTRDsKIAotCXJpbmctPndyaXRl X3RhaWwgPSByaW5nX3dyaXRlX3RhaWw7CisJZW5naW5lLT53cml0ZV90YWlsID0gcmluZ193cml0 ZV90YWlsOwogCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KSB7Ci0JCXJpbmctPm1taW9f YmFzZSA9IEdFTjZfQlNEX1JJTkdfQkFTRTsKKwkJZW5naW5lLT5tbWlvX2Jhc2UgPSBHRU42X0JT RF9SSU5HX0JBU0U7CiAJCS8qIGdlbjYgYnNkIG5lZWRzIGEgc3BlY2lhbCB3YSBmb3IgdGFpbCB1 cGRhdGVzICovCiAJCWlmIChJU19HRU42KGRldikpCi0JCQlyaW5nLT53cml0ZV90YWlsID0gZ2Vu Nl9ic2RfcmluZ193cml0ZV90YWlsOwotCQlyaW5nLT5mbHVzaCA9IGdlbjZfYnNkX3JpbmdfZmx1 c2g7Ci0JCXJpbmctPmFkZF9yZXF1ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKLQkJcmluZy0+Z2V0 X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFubzsKLQkJcmluZy0+c2V0X3NlcW5vID0gcmluZ19z ZXRfc2Vxbm87CisJCQllbmdpbmUtPndyaXRlX3RhaWwgPSBnZW42X2JzZF9yaW5nX3dyaXRlX3Rh aWw7CisJCWVuZ2luZS0+Zmx1c2ggPSBnZW42X2JzZF9yaW5nX2ZsdXNoOworCQllbmdpbmUtPmFk ZF9yZXF1ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKKwkJZW5naW5lLT5nZXRfc2Vxbm8gPSBnZW42 X3JpbmdfZ2V0X3NlcW5vOworCQllbmdpbmUtPnNldF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOwog CQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgewotCQkJcmluZy0+aXJxX2VuYWJsZV9t YXNrID0KKwkJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0KIAkJCQlHVF9SRU5ERVJfVVNFUl9J TlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVDsKLQkJCXJpbmctPmlycV9nZXQgPSBnZW44 X3JpbmdfZ2V0X2lycTsKLQkJCXJpbmctPmlycV9wdXQgPSBnZW44X3JpbmdfcHV0X2lycTsKLQkJ CXJpbmctPmRpc3BhdGNoX2V4ZWNidWZmZXIgPQorCQkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuOF9y aW5nX2dldF9pcnE7CisJCQllbmdpbmUtPmlycV9wdXQgPSBnZW44X3JpbmdfcHV0X2lycTsKKwkJ CWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9CiAJCQkJZ2VuOF9yaW5nX2Rpc3BhdGNoX2V4 ZWNidWZmZXI7CiAJCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7Ci0JCQkJ cmluZy0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW44X3Jpbmdfc3luYzsKLQkJCQlyaW5nLT5zZW1h cGhvcmUuc2lnbmFsID0gZ2VuOF94Y3Nfc2lnbmFsOwotCQkJCUdFTjhfUklOR19TRU1BUEhPUkVf SU5JVDsKKwkJCQllbmdpbmUtPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuOF9yaW5nX3N5bmM7CisJ CQkJZW5naW5lLT5zZW1hcGhvcmUuc2lnbmFsID0gZ2VuOF94Y3Nfc2lnbmFsOworCQkJCUdFTjhf UklOR19TRU1BUEhPUkVfSU5JVChlbmdpbmUpOwogCQkJfQogCQl9IGVsc2UgewotCQkJcmluZy0+ aXJxX2VuYWJsZV9tYXNrID0gR1RfQlNEX1VTRVJfSU5URVJSVVBUOwotCQkJcmluZy0+aXJxX2dl dCA9IGdlbjZfcmluZ19nZXRfaXJxOwotCQkJcmluZy0+aXJxX3B1dCA9IGdlbjZfcmluZ19wdXRf aXJxOwotCQkJcmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9CisJCQllbmdpbmUtPmlycV9lbmFi bGVfbWFzayA9IEdUX0JTRF9VU0VSX0lOVEVSUlVQVDsKKwkJCWVuZ2luZS0+aXJxX2dldCA9IGdl bjZfcmluZ19nZXRfaXJxOworCQkJZW5naW5lLT5pcnFfcHV0ID0gZ2VuNl9yaW5nX3B1dF9pcnE7 CisJCQllbmdpbmUtPmRpc3BhdGNoX2V4ZWNidWZmZXIgPQogCQkJCWdlbjZfcmluZ19kaXNwYXRj aF9leGVjYnVmZmVyOwogCQkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2KSkgewot CQkJCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9yaW5nX3N5bmM7Ci0JCQkJcmluZy0+ c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2lnbmFsOwotCQkJCXJpbmctPnNlbWFwaG9yZS5tYm94 LndhaXRbUkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZSOwotCQkJCXJpbmctPnNlbWFwaG9yZS5t Ym94LndhaXRbVkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7Ci0JCQkJcmluZy0+c2Vt YXBob3JlLm1ib3gud2FpdFtCQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVkI7Ci0JCQkJcmluZy0+ c2VtYXBob3JlLm1ib3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZWRTsKLQkJCQly aW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZDUzJdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJ RDsKLQkJCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZfUlZTWU5DOwot CQkJCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWQ1NdID0gR0VONl9OT1NZTkM7Ci0JCQkJ cmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW0JDU10gPSBHRU42X0JWU1lOQzsKLQkJCQlyaW5n LT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBHRU42X1ZFVlNZTkM7Ci0JCQkJcmluZy0+ c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZDUzJdID0gR0VONl9OT1NZTkM7CisJCQkJZW5naW5lLT5z ZW1hcGhvcmUuc3luY190byA9IGdlbjZfcmluZ19zeW5jOworCQkJCWVuZ2luZS0+c2VtYXBob3Jl LnNpZ25hbCA9IGdlbjZfc2lnbmFsOworCQkJCWVuZ2luZS0+c2VtYXBob3JlLm1ib3gud2FpdFtS Q1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVlI7CisJCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC53 YWl0W1ZDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEOworCQkJCWVuZ2luZS0+c2VtYXBo b3JlLm1ib3gud2FpdFtCQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVkI7CisJCQkJZW5naW5lLT5z ZW1hcGhvcmUubWJveC53YWl0W1ZFQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVlZFOworCQkJCWVu Z2luZS0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1MyXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFM SUQ7CisJCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbUkNTXSA9IEdFTjZfUlZTWU5D OworCQkJCWVuZ2luZS0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZDU10gPSBHRU42X05PU1lOQzsK KwkJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtCQ1NdID0gR0VONl9CVlNZTkM7CisJ CQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkVDU10gPSBHRU42X1ZFVlNZTkM7CisJ CQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTMl0gPSBHRU42X05PU1lOQzsKIAkJ CX0KIAkJfQogCX0gZWxzZSB7Ci0JCXJpbmctPm1taW9fYmFzZSA9IEJTRF9SSU5HX0JBU0U7Ci0J CXJpbmctPmZsdXNoID0gYnNkX3JpbmdfZmx1c2g7Ci0JCXJpbmctPmFkZF9yZXF1ZXN0ID0gaTl4 eF9hZGRfcmVxdWVzdDsKLQkJcmluZy0+Z2V0X3NlcW5vID0gcmluZ19nZXRfc2Vxbm87Ci0JCXJp bmctPnNldF9zZXFubyA9IHJpbmdfc2V0X3NlcW5vOworCQllbmdpbmUtPm1taW9fYmFzZSA9IEJT RF9SSU5HX0JBU0U7CisJCWVuZ2luZS0+Zmx1c2ggPSBic2RfcmluZ19mbHVzaDsKKwkJZW5naW5l LT5hZGRfcmVxdWVzdCA9IGk5eHhfYWRkX3JlcXVlc3Q7CisJCWVuZ2luZS0+Z2V0X3NlcW5vID0g cmluZ19nZXRfc2Vxbm87CisJCWVuZ2luZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CiAJ CWlmIChJU19HRU41KGRldikpIHsKLQkJCXJpbmctPmlycV9lbmFibGVfbWFzayA9IElMS19CU0Rf VVNFUl9JTlRFUlJVUFQ7Ci0JCQlyaW5nLT5pcnFfZ2V0ID0gZ2VuNV9yaW5nX2dldF9pcnE7Ci0J CQlyaW5nLT5pcnFfcHV0ID0gZ2VuNV9yaW5nX3B1dF9pcnE7CisJCQllbmdpbmUtPmlycV9lbmFi bGVfbWFzayA9IElMS19CU0RfVVNFUl9JTlRFUlJVUFQ7CisJCQllbmdpbmUtPmlycV9nZXQgPSBn ZW41X3JpbmdfZ2V0X2lycTsKKwkJCWVuZ2luZS0+aXJxX3B1dCA9IGdlbjVfcmluZ19wdXRfaXJx OwogCQl9IGVsc2UgewotCQkJcmluZy0+aXJxX2VuYWJsZV9tYXNrID0gSTkxNV9CU0RfVVNFUl9J TlRFUlJVUFQ7Ci0JCQlyaW5nLT5pcnFfZ2V0ID0gaTl4eF9yaW5nX2dldF9pcnE7Ci0JCQlyaW5n LT5pcnFfcHV0ID0gaTl4eF9yaW5nX3B1dF9pcnE7CisJCQllbmdpbmUtPmlycV9lbmFibGVfbWFz ayA9IEk5MTVfQlNEX1VTRVJfSU5URVJSVVBUOworCQkJZW5naW5lLT5pcnFfZ2V0ID0gaTl4eF9y aW5nX2dldF9pcnE7CisJCQllbmdpbmUtPmlycV9wdXQgPSBpOXh4X3JpbmdfcHV0X2lycTsKIAkJ fQotCQlyaW5nLT5kaXNwYXRjaF9leGVjYnVmZmVyID0gaTk2NV9kaXNwYXRjaF9leGVjYnVmZmVy OworCQllbmdpbmUtPmRpc3BhdGNoX2V4ZWNidWZmZXIgPSBpOTY1X2Rpc3BhdGNoX2V4ZWNidWZm ZXI7CiAJfQotCXJpbmctPmluaXRfaHcgPSBpbml0X3JpbmdfY29tbW9uOworCWVuZ2luZS0+aW5p dF9odyA9IGluaXRfcmluZ19jb21tb247CiAKLQlyZXR1cm4gaW50ZWxfaW5pdF9yaW5nX2J1ZmZl cihkZXYsIHJpbmcpOworCXJldHVybiBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKGRldiwgZW5naW5l KTsKIH0KIAogLyoqCkBAIC0yOTY5LDY4ICsyOTc4LDY4IEBAIGludCBpbnRlbF9pbml0X2JzZF9y aW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogaW50IGludGVsX2luaXRfYnNkMl9y aW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZyA9ICZkZXZfcHJpdi0+cmluZ1tWQ1MyXTsKLQotCXJpbmctPm5hbWUgPSAiYnNk MiByaW5nIjsKLQlyaW5nLT5pZCA9IFZDUzI7Ci0JcmluZy0+ZXhlY19pZCA9IEk5MTVfRVhFQ19C U0Q7Ci0KLQlyaW5nLT53cml0ZV90YWlsID0gcmluZ193cml0ZV90YWlsOwotCXJpbmctPm1taW9f YmFzZSA9IEdFTjhfQlNEMl9SSU5HX0JBU0U7Ci0JcmluZy0+Zmx1c2ggPSBnZW42X2JzZF9yaW5n X2ZsdXNoOwotCXJpbmctPmFkZF9yZXF1ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKLQlyaW5nLT5n ZXRfc2Vxbm8gPSBnZW42X3JpbmdfZ2V0X3NlcW5vOwotCXJpbmctPnNldF9zZXFubyA9IHJpbmdf c2V0X3NlcW5vOwotCXJpbmctPmlycV9lbmFibGVfbWFzayA9CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5yaW5nW1ZDUzJdOworCisJZW5naW5lLT5uYW1lID0g ImJzZDIgcmluZyI7CisJZW5naW5lLT5pZCA9IFZDUzI7CisJZW5naW5lLT5leGVjX2lkID0gSTkx NV9FWEVDX0JTRDsKKworCWVuZ2luZS0+d3JpdGVfdGFpbCA9IHJpbmdfd3JpdGVfdGFpbDsKKwll bmdpbmUtPm1taW9fYmFzZSA9IEdFTjhfQlNEMl9SSU5HX0JBU0U7CisJZW5naW5lLT5mbHVzaCA9 IGdlbjZfYnNkX3JpbmdfZmx1c2g7CisJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3Jl cXVlc3Q7CisJZW5naW5lLT5nZXRfc2Vxbm8gPSBnZW42X3JpbmdfZ2V0X3NlcW5vOworCWVuZ2lu ZS0+c2V0X3NlcW5vID0gcmluZ19zZXRfc2Vxbm87CisJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sg PQogCQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdFTjhfVkNTMl9JUlFfU0hJRlQ7Ci0J cmluZy0+aXJxX2dldCA9IGdlbjhfcmluZ19nZXRfaXJxOwotCXJpbmctPmlycV9wdXQgPSBnZW44 X3JpbmdfcHV0X2lycTsKLQlyaW5nLT5kaXNwYXRjaF9leGVjYnVmZmVyID0KKwllbmdpbmUtPmly cV9nZXQgPSBnZW44X3JpbmdfZ2V0X2lycTsKKwllbmdpbmUtPmlycV9wdXQgPSBnZW44X3Jpbmdf cHV0X2lycTsKKwllbmdpbmUtPmRpc3BhdGNoX2V4ZWNidWZmZXIgPQogCQkJZ2VuOF9yaW5nX2Rp c3BhdGNoX2V4ZWNidWZmZXI7CiAJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2KSkg ewotCQlyaW5nLT5zZW1hcGhvcmUuc3luY190byA9IGdlbjhfcmluZ19zeW5jOwotCQlyaW5nLT5z ZW1hcGhvcmUuc2lnbmFsID0gZ2VuOF94Y3Nfc2lnbmFsOwotCQlHRU44X1JJTkdfU0VNQVBIT1JF X0lOSVQ7CisJCWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW44X3Jpbmdfc3luYzsKKwkJ ZW5naW5lLT5zZW1hcGhvcmUuc2lnbmFsID0gZ2VuOF94Y3Nfc2lnbmFsOworCQlHRU44X1JJTkdf U0VNQVBIT1JFX0lOSVQoZW5naW5lKTsKIAl9Ci0JcmluZy0+aW5pdF9odyA9IGluaXRfcmluZ19j b21tb247CisJZW5naW5lLT5pbml0X2h3ID0gaW5pdF9yaW5nX2NvbW1vbjsKIAotCXJldHVybiBp bnRlbF9pbml0X3JpbmdfYnVmZmVyKGRldiwgcmluZyk7CisJcmV0dXJuIGludGVsX2luaXRfcmlu Z19idWZmZXIoZGV2LCBlbmdpbmUpOwogfQogCiBpbnQgaW50ZWxfaW5pdF9ibHRfcmluZ19idWZm ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcgPSAmZGV2X3ByaXYtPnJpbmdbQkNTXTsKLQotCXJpbmctPm5hbWUgPSAiYmxpdHRlciByaW5n IjsKLQlyaW5nLT5pZCA9IEJDUzsKLQlyaW5nLT5leGVjX2lkID0gSTkxNV9FWEVDX0JMVDsKLQot CXJpbmctPm1taW9fYmFzZSA9IEJMVF9SSU5HX0JBU0U7Ci0JcmluZy0+d3JpdGVfdGFpbCA9IHJp bmdfd3JpdGVfdGFpbDsKLQlyaW5nLT5mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsKLQlyaW5nLT5h ZGRfcmVxdWVzdCA9IGdlbjZfYWRkX3JlcXVlc3Q7Ci0JcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9y aW5nX2dldF9zZXFubzsKLQlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKKwlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPnJpbmdbQkNTXTsKKworCWVu Z2luZS0+bmFtZSA9ICJibGl0dGVyIHJpbmciOworCWVuZ2luZS0+aWQgPSBCQ1M7CisJZW5naW5l LT5leGVjX2lkID0gSTkxNV9FWEVDX0JMVDsKKworCWVuZ2luZS0+bW1pb19iYXNlID0gQkxUX1JJ TkdfQkFTRTsKKwllbmdpbmUtPndyaXRlX3RhaWwgPSByaW5nX3dyaXRlX3RhaWw7CisJZW5naW5l LT5mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsKKwllbmdpbmUtPmFkZF9yZXF1ZXN0ID0gZ2VuNl9h ZGRfcmVxdWVzdDsKKwllbmdpbmUtPmdldF9zZXFubyA9IGdlbjZfcmluZ19nZXRfc2Vxbm87CisJ ZW5naW5lLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKIAlpZiAoSU5URUxfSU5GTyhkZXYp LT5nZW4gPj0gOCkgewotCQlyaW5nLT5pcnFfZW5hYmxlX21hc2sgPQorCQllbmdpbmUtPmlycV9l bmFibGVfbWFzayA9CiAJCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJR X1NISUZUOwotCQlyaW5nLT5pcnFfZ2V0ID0gZ2VuOF9yaW5nX2dldF9pcnE7Ci0JCXJpbmctPmly cV9wdXQgPSBnZW44X3JpbmdfcHV0X2lycTsKLQkJcmluZy0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9 IGdlbjhfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyOworCQllbmdpbmUtPmlycV9nZXQgPSBnZW44 X3JpbmdfZ2V0X2lycTsKKwkJZW5naW5lLT5pcnFfcHV0ID0gZ2VuOF9yaW5nX3B1dF9pcnE7CisJ CWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGdlbjhfcmluZ19kaXNwYXRjaF9leGVjYnVm ZmVyOwogCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYpKSB7Ci0JCQlyaW5nLT5z ZW1hcGhvcmUuc3luY190byA9IGdlbjhfcmluZ19zeW5jOwotCQkJcmluZy0+c2VtYXBob3JlLnNp Z25hbCA9IGdlbjhfeGNzX3NpZ25hbDsKLQkJCUdFTjhfUklOR19TRU1BUEhPUkVfSU5JVDsKKwkJ CWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW44X3Jpbmdfc3luYzsKKwkJCWVuZ2luZS0+ c2VtYXBob3JlLnNpZ25hbCA9IGdlbjhfeGNzX3NpZ25hbDsKKwkJCUdFTjhfUklOR19TRU1BUEhP UkVfSU5JVChlbmdpbmUpOwogCQl9CiAJfSBlbHNlIHsKLQkJcmluZy0+aXJxX2VuYWJsZV9tYXNr ID0gR1RfQkxUX1VTRVJfSU5URVJSVVBUOwotCQlyaW5nLT5pcnFfZ2V0ID0gZ2VuNl9yaW5nX2dl dF9pcnE7Ci0JCXJpbmctPmlycV9wdXQgPSBnZW42X3JpbmdfcHV0X2lycTsKLQkJcmluZy0+ZGlz cGF0Y2hfZXhlY2J1ZmZlciA9IGdlbjZfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyOworCQllbmdp bmUtPmlycV9lbmFibGVfbWFzayA9IEdUX0JMVF9VU0VSX0lOVEVSUlVQVDsKKwkJZW5naW5lLT5p cnFfZ2V0ID0gZ2VuNl9yaW5nX2dldF9pcnE7CisJCWVuZ2luZS0+aXJxX3B1dCA9IGdlbjZfcmlu Z19wdXRfaXJxOworCQllbmdpbmUtPmRpc3BhdGNoX2V4ZWNidWZmZXIgPSBnZW42X3JpbmdfZGlz cGF0Y2hfZXhlY2J1ZmZlcjsKIAkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2KSkg ewotCQkJcmluZy0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2lnbmFsOwotCQkJcmluZy0+c2Vt YXBob3JlLnN5bmNfdG8gPSBnZW42X3Jpbmdfc3luYzsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLnNp Z25hbCA9IGdlbjZfc2lnbmFsOworCQkJZW5naW5lLT5zZW1hcGhvcmUuc3luY190byA9IGdlbjZf cmluZ19zeW5jOwogCQkJLyoKIAkJCSAqIFRoZSBjdXJyZW50IHNlbWFwaG9yZSBpcyBvbmx5IGFw cGxpZWQgb24gcHJlLWdlbjgKIAkJCSAqIHBsYXRmb3JtLiAgQW5kIHRoZXJlIGlzIG5vIFZDUzIg cmluZyBvbiB0aGUgcHJlLWdlbjgKQEAgLTMwMzgsMTEyICszMDQ3LDExMiBAQCBpbnQgaW50ZWxf aW5pdF9ibHRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAqIGluaXRp YWxpemVkIGFzIElOVkFMSUQuICBHZW44IHdpbGwgaW5pdGlhbGl6ZSB0aGUKIAkJCSAqIHNlbWEg YmV0d2VlbiBCQ1MgYW5kIFZDUzIgbGF0ZXIuCiAJCQkgKi8KLQkJCXJpbmctPnNlbWFwaG9yZS5t Ym94LndhaXRbUkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JSOwotCQkJcmluZy0+c2VtYXBob3Jl Lm1ib3gud2FpdFtWQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfQlY7Ci0JCQlyaW5nLT5zZW1hcGhv cmUubWJveC53YWl0W0JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElEOwotCQkJcmluZy0+ c2VtYXBob3JlLm1ib3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JWRTsKLQkJCXJp bmctPnNlbWFwaG9yZS5tYm94LndhaXRbVkNTMl0gPSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElE OwotCQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1JDU10gPSBHRU42X1JCU1lOQzsKLQkJ CXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWQ1NdID0gR0VONl9WQlNZTkM7Ci0JCQlyaW5n LT5zZW1hcGhvcmUubWJveC5zaWduYWxbQkNTXSA9IEdFTjZfTk9TWU5DOwotCQkJcmluZy0+c2Vt YXBob3JlLm1ib3guc2lnbmFsW1ZFQ1NdID0gR0VONl9WRUJTWU5DOwotCQkJcmluZy0+c2VtYXBo b3JlLm1ib3guc2lnbmFsW1ZDUzJdID0gR0VONl9OT1NZTkM7CisJCQllbmdpbmUtPnNlbWFwaG9y ZS5tYm94LndhaXRbUkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JSOworCQkJZW5naW5lLT5zZW1h cGhvcmUubWJveC53YWl0W1ZDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19CVjsKKwkJCWVuZ2luZS0+ c2VtYXBob3JlLm1ib3gud2FpdFtCQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsKKwkJ CWVuZ2luZS0+c2VtYXBob3JlLm1ib3gud2FpdFtWRUNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX0JW RTsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1MyXSA9IE1JX1NFTUFQSE9SRV9T WU5DX0lOVkFMSUQ7CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtSQ1NdID0gR0VO Nl9SQlNZTkM7CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWQ1NdID0gR0VONl9W QlNZTkM7CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtCQ1NdID0gR0VONl9OT1NZ TkM7CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWRUNTXSA9IEdFTjZfVkVCU1lO QzsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZDUzJdID0gR0VONl9OT1NZTkM7 CiAJCX0KIAl9Ci0JcmluZy0+aW5pdF9odyA9IGluaXRfcmluZ19jb21tb247CisJZW5naW5lLT5p bml0X2h3ID0gaW5pdF9yaW5nX2NvbW1vbjsKIAotCXJldHVybiBpbnRlbF9pbml0X3JpbmdfYnVm ZmVyKGRldiwgcmluZyk7CisJcmV0dXJuIGludGVsX2luaXRfcmluZ19idWZmZXIoZGV2LCBlbmdp bmUpOwogfQogCiBpbnQgaW50ZWxfaW5pdF92ZWJveF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9ICZkZXZfcHJpdi0+ cmluZ1tWRUNTXTsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYt PnJpbmdbVkVDU107CiAKLQlyaW5nLT5uYW1lID0gInZpZGVvIGVuaGFuY2VtZW50IHJpbmciOwot CXJpbmctPmlkID0gVkVDUzsKLQlyaW5nLT5leGVjX2lkID0gSTkxNV9FWEVDX1ZFQk9YOworCWVu Z2luZS0+bmFtZSA9ICJ2aWRlbyBlbmhhbmNlbWVudCByaW5nIjsKKwllbmdpbmUtPmlkID0gVkVD UzsKKwllbmdpbmUtPmV4ZWNfaWQgPSBJOTE1X0VYRUNfVkVCT1g7CiAKLQlyaW5nLT5tbWlvX2Jh c2UgPSBWRUJPWF9SSU5HX0JBU0U7Ci0JcmluZy0+d3JpdGVfdGFpbCA9IHJpbmdfd3JpdGVfdGFp bDsKLQlyaW5nLT5mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsKLQlyaW5nLT5hZGRfcmVxdWVzdCA9 IGdlbjZfYWRkX3JlcXVlc3Q7Ci0JcmluZy0+Z2V0X3NlcW5vID0gZ2VuNl9yaW5nX2dldF9zZXFu bzsKLQlyaW5nLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKKwllbmdpbmUtPm1taW9fYmFz ZSA9IFZFQk9YX1JJTkdfQkFTRTsKKwllbmdpbmUtPndyaXRlX3RhaWwgPSByaW5nX3dyaXRlX3Rh aWw7CisJZW5naW5lLT5mbHVzaCA9IGdlbjZfcmluZ19mbHVzaDsKKwllbmdpbmUtPmFkZF9yZXF1 ZXN0ID0gZ2VuNl9hZGRfcmVxdWVzdDsKKwllbmdpbmUtPmdldF9zZXFubyA9IGdlbjZfcmluZ19n ZXRfc2Vxbm87CisJZW5naW5lLT5zZXRfc2Vxbm8gPSByaW5nX3NldF9zZXFubzsKIAogCWlmIChJ TlRFTF9JTkZPKGRldiktPmdlbiA+PSA4KSB7Ci0JCXJpbmctPmlycV9lbmFibGVfbWFzayA9CisJ CWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0KIAkJCUdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVCA8 PCBHRU44X1ZFQ1NfSVJRX1NISUZUOwotCQlyaW5nLT5pcnFfZ2V0ID0gZ2VuOF9yaW5nX2dldF9p cnE7Ci0JCXJpbmctPmlycV9wdXQgPSBnZW44X3JpbmdfcHV0X2lycTsKLQkJcmluZy0+ZGlzcGF0 Y2hfZXhlY2J1ZmZlciA9IGdlbjhfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyOworCQllbmdpbmUt PmlycV9nZXQgPSBnZW44X3JpbmdfZ2V0X2lycTsKKwkJZW5naW5lLT5pcnFfcHV0ID0gZ2VuOF9y aW5nX3B1dF9pcnE7CisJCWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGdlbjhfcmluZ19k aXNwYXRjaF9leGVjYnVmZmVyOwogCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXYp KSB7Ci0JCQlyaW5nLT5zZW1hcGhvcmUuc3luY190byA9IGdlbjhfcmluZ19zeW5jOwotCQkJcmlu Zy0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjhfeGNzX3NpZ25hbDsKLQkJCUdFTjhfUklOR19TRU1B UEhPUkVfSU5JVDsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW44X3Jpbmdfc3lu YzsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjhfeGNzX3NpZ25hbDsKKwkJCUdF TjhfUklOR19TRU1BUEhPUkVfSU5JVChlbmdpbmUpOwogCQl9CiAJfSBlbHNlIHsKLQkJcmluZy0+ aXJxX2VuYWJsZV9tYXNrID0gUE1fVkVCT1hfVVNFUl9JTlRFUlJVUFQ7Ci0JCXJpbmctPmlycV9n ZXQgPSBoc3dfdmVib3hfZ2V0X2lycTsKLQkJcmluZy0+aXJxX3B1dCA9IGhzd192ZWJveF9wdXRf aXJxOwotCQlyaW5nLT5kaXNwYXRjaF9leGVjYnVmZmVyID0gZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4 ZWNidWZmZXI7CisJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0gUE1fVkVCT1hfVVNFUl9JTlRF UlJVUFQ7CisJCWVuZ2luZS0+aXJxX2dldCA9IGhzd192ZWJveF9nZXRfaXJxOworCQllbmdpbmUt PmlycV9wdXQgPSBoc3dfdmVib3hfcHV0X2lycTsKKwkJZW5naW5lLT5kaXNwYXRjaF9leGVjYnVm ZmVyID0gZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXI7CiAJCWlmIChpOTE1X3NlbWFwaG9y ZV9pc19lbmFibGVkKGRldikpIHsKLQkJCXJpbmctPnNlbWFwaG9yZS5zeW5jX3RvID0gZ2VuNl9y aW5nX3N5bmM7Ci0JCQlyaW5nLT5zZW1hcGhvcmUuc2lnbmFsID0gZ2VuNl9zaWduYWw7Ci0JCQly aW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WRVI7Ci0J CQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WRVY7 Ci0JCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W0JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19W RUI7Ci0JCQlyaW5nLT5zZW1hcGhvcmUubWJveC53YWl0W1ZFQ1NdID0gTUlfU0VNQVBIT1JFX1NZ TkNfSU5WQUxJRDsKLQkJCXJpbmctPnNlbWFwaG9yZS5tYm94LndhaXRbVkNTMl0gPSBNSV9TRU1B UEhPUkVfU1lOQ19JTlZBTElEOwotCQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1JDU10g PSBHRU42X1JWRVNZTkM7Ci0JCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTXSA9IEdF TjZfVlZFU1lOQzsKLQkJCXJpbmctPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtCQ1NdID0gR0VONl9C VkVTWU5DOwotCQkJcmluZy0+c2VtYXBob3JlLm1ib3guc2lnbmFsW1ZFQ1NdID0gR0VONl9OT1NZ TkM7Ci0JCQlyaW5nLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTMl0gPSBHRU42X05PU1lOQzsK KwkJCWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW42X3Jpbmdfc3luYzsKKwkJCWVuZ2lu ZS0+c2VtYXBob3JlLnNpZ25hbCA9IGdlbjZfc2lnbmFsOworCQkJZW5naW5lLT5zZW1hcGhvcmUu bWJveC53YWl0W1JDU10gPSBNSV9TRU1BUEhPUkVfU1lOQ19WRVI7CisJCQllbmdpbmUtPnNlbWFw aG9yZS5tYm94LndhaXRbVkNTXSA9IE1JX1NFTUFQSE9SRV9TWU5DX1ZFVjsKKwkJCWVuZ2luZS0+ c2VtYXBob3JlLm1ib3gud2FpdFtCQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfVkVCOworCQkJZW5n aW5lLT5zZW1hcGhvcmUubWJveC53YWl0W1ZFQ1NdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJ RDsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLm1ib3gud2FpdFtWQ1MyXSA9IE1JX1NFTUFQSE9SRV9T WU5DX0lOVkFMSUQ7CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtSQ1NdID0gR0VO Nl9SVkVTWU5DOworCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTXSA9IEdFTjZf VlZFU1lOQzsKKwkJCWVuZ2luZS0+c2VtYXBob3JlLm1ib3guc2lnbmFsW0JDU10gPSBHRU42X0JW RVNZTkM7CisJCQllbmdpbmUtPnNlbWFwaG9yZS5tYm94LnNpZ25hbFtWRUNTXSA9IEdFTjZfTk9T WU5DOworCQkJZW5naW5lLT5zZW1hcGhvcmUubWJveC5zaWduYWxbVkNTMl0gPSBHRU42X05PU1lO QzsKIAkJfQogCX0KLQlyaW5nLT5pbml0X2h3ID0gaW5pdF9yaW5nX2NvbW1vbjsKKwllbmdpbmUt PmluaXRfaHcgPSBpbml0X3JpbmdfY29tbW9uOwogCi0JcmV0dXJuIGludGVsX2luaXRfcmluZ19i dWZmZXIoZGV2LCByaW5nKTsKKwlyZXR1cm4gaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihkZXYsIGVu Z2luZSk7CiB9CiAKIGludAogaW50ZWxfcmluZ19mbHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewotCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcg PSByZXEtPnJpbmc7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmVxLT5yaW5n OwogCWludCByZXQ7CiAKLQlpZiAoIXJpbmctPmdwdV9jYWNoZXNfZGlydHkpCisJaWYgKCFlbmdp bmUtPmdwdV9jYWNoZXNfZGlydHkpCiAJCXJldHVybiAwOwogCi0JcmV0ID0gcmluZy0+Zmx1c2go cmVxLCAwLCBJOTE1X0dFTV9HUFVfRE9NQUlOUyk7CisJcmV0ID0gZW5naW5lLT5mbHVzaChyZXEs IDAsIEk5MTVfR0VNX0dQVV9ET01BSU5TKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiAJ dHJhY2VfaTkxNV9nZW1fcmluZ19mbHVzaChyZXEsIDAsIEk5MTVfR0VNX0dQVV9ET01BSU5TKTsK IAotCXJpbmctPmdwdV9jYWNoZXNfZGlydHkgPSBmYWxzZTsKKwllbmdpbmUtPmdwdV9jYWNoZXNf ZGlydHkgPSBmYWxzZTsKIAlyZXR1cm4gMDsKIH0KIAogaW50CiBpbnRlbF9yaW5nX2ludmFsaWRh dGVfYWxsX2NhY2hlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKLQlzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0gcmVxLT5yaW5nOworCXN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSA9IHJlcS0+cmluZzsKIAl1aW50MzJfdCBmbHVzaF9kb21haW5zOwogCWlu dCByZXQ7CiAKIAlmbHVzaF9kb21haW5zID0gMDsKLQlpZiAocmluZy0+Z3B1X2NhY2hlc19kaXJ0 eSkKKwlpZiAoZW5naW5lLT5ncHVfY2FjaGVzX2RpcnR5KQogCQlmbHVzaF9kb21haW5zID0gSTkx NV9HRU1fR1BVX0RPTUFJTlM7CiAKLQlyZXQgPSByaW5nLT5mbHVzaChyZXEsIEk5MTVfR0VNX0dQ VV9ET01BSU5TLCBmbHVzaF9kb21haW5zKTsKKwlyZXQgPSBlbmdpbmUtPmZsdXNoKHJlcSwgSTkx NV9HRU1fR1BVX0RPTUFJTlMsIGZsdXNoX2RvbWFpbnMpOwogCWlmIChyZXQpCiAJCXJldHVybiBy ZXQ7CiAKIAl0cmFjZV9pOTE1X2dlbV9yaW5nX2ZsdXNoKHJlcSwgSTkxNV9HRU1fR1BVX0RPTUFJ TlMsIGZsdXNoX2RvbWFpbnMpOwogCi0JcmluZy0+Z3B1X2NhY2hlc19kaXJ0eSA9IGZhbHNlOwor CWVuZ2luZS0+Z3B1X2NhY2hlc19kaXJ0eSA9IGZhbHNlOwogCXJldHVybiAwOwogfQogCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggNGIxNDM5ZGViN2ZlLi4yNGVm YjU3ZGNkN2QgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTYz LDE2ICs2MywxNiBAQCBzdHJ1Y3QgIGludGVsX2h3X3N0YXR1c19wYWdlIHsKIAkoKGZyb20pICog STkxNV9OVU1fUklOR1MgKiBpOTE1X3NlbWFwaG9yZV9zZXFub19zaXplKSArIFwKIAkoaTkxNV9z ZW1hcGhvcmVfc2Vxbm9fc2l6ZSAqIChfX3JpbmcpLT5pZCkpCiAKLSNkZWZpbmUgR0VOOF9SSU5H X1NFTUFQSE9SRV9JTklUIGRvIHsgXAorI2RlZmluZSBHRU44X1JJTkdfU0VNQVBIT1JFX0lOSVQo ZSkgZG8geyBcCiAJaWYgKCFkZXZfcHJpdi0+c2VtYXBob3JlX29iaikgeyBcCiAJCWJyZWFrOyBc CiAJfSBcCi0JcmluZy0+c2VtYXBob3JlLnNpZ25hbF9nZ3R0W1JDU10gPSBHRU44X1NJR05BTF9P RkZTRVQocmluZywgUkNTKTsgXAotCXJpbmctPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtWQ1NdID0g R0VOOF9TSUdOQUxfT0ZGU0VUKHJpbmcsIFZDUyk7IFwKLQlyaW5nLT5zZW1hcGhvcmUuc2lnbmFs X2dndHRbQkNTXSA9IEdFTjhfU0lHTkFMX09GRlNFVChyaW5nLCBCQ1MpOyBcCi0JcmluZy0+c2Vt YXBob3JlLnNpZ25hbF9nZ3R0W1ZFQ1NdID0gR0VOOF9TSUdOQUxfT0ZGU0VUKHJpbmcsIFZFQ1Mp OyBcCi0JcmluZy0+c2VtYXBob3JlLnNpZ25hbF9nZ3R0W1ZDUzJdID0gR0VOOF9TSUdOQUxfT0ZG U0VUKHJpbmcsIFZDUzIpOyBcCi0JcmluZy0+c2VtYXBob3JlLnNpZ25hbF9nZ3R0W3JpbmctPmlk XSA9IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQ7IFwKKwkoZSktPnNlbWFwaG9yZS5zaWduYWxf Z2d0dFtSQ1NdID0gR0VOOF9TSUdOQUxfT0ZGU0VUKChlKSwgUkNTKTsgXAorCShlKS0+c2VtYXBo b3JlLnNpZ25hbF9nZ3R0W1ZDU10gPSBHRU44X1NJR05BTF9PRkZTRVQoKGUpLCBWQ1MpOyBcCisJ KGUpLT5zZW1hcGhvcmUuc2lnbmFsX2dndHRbQkNTXSA9IEdFTjhfU0lHTkFMX09GRlNFVCgoZSks IEJDUyk7IFwKKwkoZSktPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtWRUNTXSA9IEdFTjhfU0lHTkFM X09GRlNFVCgoZSksIFZFQ1MpOyBcCisJKGUpLT5zZW1hcGhvcmUuc2lnbmFsX2dndHRbVkNTMl0g PSBHRU44X1NJR05BTF9PRkZTRVQoKGUpLCBWQ1MyKTsgXAorCShlKS0+c2VtYXBob3JlLnNpZ25h bF9nZ3R0WyhlKS0+aWRdID0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRDsgXAogCX0gd2hpbGUo MCkKIAogZW51bSBpbnRlbF9yaW5nX2hhbmdjaGVja19hY3Rpb24gewotLSAKMS45LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=