From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 4/5 v2] drm/i915: More intel_engine_cs renaming Date: Thu, 10 Mar 2016 15:47:55 +0000 Message-ID: <1457624875-23486-1-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1457619668-4685-5-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 3354B6E9BA for ; Thu, 10 Mar 2016 15:48:09 +0000 (UTC) In-Reply-To: <1457619668-4685-5-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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNvbWUgdHJp dmlhbCBvbmVzLCBmaXJzdCBwYXNzIGRvbmUgd2l0aCBDb2NjaW5lbGxlOgoKQEAKQEAKKAotIEk5 MTVfTlVNX1JJTkdTCisgSTkxNV9OVU1fRU5HSU5FUwp8Ci0gaW50ZWxfcmluZ19mbGFnCisgaW50 ZWxfZW5naW5lX2ZsYWcKfAotIGZvcl9lYWNoX3JpbmcKKyBmb3JfZWFjaF9lbmdpbmUKfAotIGk5 MTVfZ2VtX3JlcXVlc3RfZ2V0X3JpbmcKKyBpOTE1X2dlbV9yZXF1ZXN0X2dldF9lbmdpbmUKfAot IGludGVsX3JpbmdfaWRsZQorIGludGVsX2VuZ2luZV9pZGxlCnwKLSBpOTE1X2dlbV9yZXNldF9y aW5nX3N0YXR1cworIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9zdGF0dXMKfAotIGk5MTVfZ2VtX3Jl c2V0X3JpbmdfY2xlYW51cAorIGk5MTVfZ2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwCnwKLSBpbml0 X3JpbmdfbGlzdHMKKyBpbml0X2VuZ2luZV9saXN0cwopCgpCdXQgdGhhdCBkaWRuJ3QgZnVsbHkg d29yayBzbyBJIGNsZWFuZWQgaXQgdXAgd2l0aDoKCmZvciBmIGluICouW2hjXTsgZG8gc2VkIC1p IC1lIHMvSTkxNV9OVU1fUklOR1MvSTkxNV9OVU1fRU5HSU5FUy8gJGY7IGRvbmUKZm9yIGYgaW4g Ki5baGNdOyBkbyBzZWQgLWkgLWUgcy9pOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nL2k5MTVfZ2Vt X3JlcXVlc3RfZ2V0X2VuZ2luZS8gJGY7IGRvbmUKZm9yIGYgaW4gKi5baGNdOyBkbyBzZWQgLWkg LWUgcy9pbnRlbF9yaW5nX2ZsYWcvaW50ZWxfZW5naW5lX2ZsYWcvICRmOyBkb25lCmZvciBmIGlu ICouW2hjXTsgZG8gc2VkIC1pIC1lIHMvaW50ZWxfcmluZ19pZGxlL2ludGVsX2VuZ2luZV9pZGxl LyAkZjsgZG9uZQpmb3IgZiBpbiAqLltoY107IGRvIHNlZCAtaSAtZSBzL2luaXRfcmluZ19saXN0 cy9pbml0X2VuZ2luZV9saXN0cy8gJGY7IGRvbmUKZm9yIGYgaW4gKi5baGNdOyBkbyBzZWQgLWkg LWUgcy9pOTE1X2dlbV9yZXNldF9yaW5nX2NsZWFudXAvaTkxNV9nZW1fcmVzZXRfZW5naW5lX2Ns ZWFudXAvICRmOyBkb25lCmZvciBmIGluICouW2hjXTsgZG8gc2VkIC1pIC1lIHMvaTkxNV9nZW1f cmVzZXRfcmluZ19zdGF0dXMvaTkxNV9nZW1fcmVzZXRfZW5naW5lX3N0YXR1cy8gJGY7IGRvbmUK CnYyOiBSZWJhc2UuCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3Vs aW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAg ICAgICB8IDUyICsrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgICAgIHwgMjYgKysrKystLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMgICAgICAgICAgICB8IDc0ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jICAgIHwgMTYgKysrLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZGVidWcuYyAgICAgIHwgIDIgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICA0ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgICAgfCAgNiArLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICAgICB8IDEyICsrLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMgfCAgNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgICAgICAgICAgICB8IDIwICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3RyYWNlLmggICAgICAgICAgfCAgNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9ndWNfbG9hZGVyLmMgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgICAgICAgICAgIHwgMTIgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21vY3Mu YyAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAg ICAgICAgfCAxMiArKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j ICAgIHwgMTIgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAg ICB8IDIwICsrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYyAgICAg ICAgfCAgNCArLQogMTkgZmlsZXMgY2hhbmdlZCwgMTQ3IGluc2VydGlvbnMoKyksIDE0NyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGE3MWZmYWFmMzgw ZC4uZGFiY2U4NDAzZDU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMTQz LDcgKzE0Myw3IEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJCSAgIG9iai0+YmFzZS5zaXplIC8gMTAyNCwKIAkJICAg b2JqLT5iYXNlLnJlYWRfZG9tYWlucywKIAkJICAgb2JqLT5iYXNlLndyaXRlX2RvbWFpbik7Ci0J Zm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpKQogCQlzZXFfcHJpbnRmKG0sICIleCAiLAogCQkJCWk5MTVfZ2VtX3Jl cXVlc3RfZ2V0X3NlcW5vKG9iai0+bGFzdF9yZWFkX3JlcVtpXSkpOwogCXNlcV9wcmludGYobSwg Il0gJXggJXglcyVzJXMiLApAQCAtMTg0LDcgKzE4NCw3IEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJfQogCWlmIChv YmotPmxhc3Rfd3JpdGVfcmVxICE9IE5VTEwpCiAJCXNlcV9wcmludGYobSwgIiAoJXMpIiwKLQkJ CSAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3Jpbmcob2JqLT5sYXN0X3dyaXRlX3JlcSktPm5hbWUp OworCQkJICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKG9iai0+bGFzdF93cml0ZV9yZXEp LT5uYW1lKTsKIAlpZiAob2JqLT5mcm9udGJ1ZmZlcl9iaXRzKQogCQlzZXFfcHJpbnRmKG0sICIg KGZyb250YnVmZmVyOiAweCUwM3gpIiwgb2JqLT5mcm9udGJ1ZmZlcl9iaXRzKTsKIH0KQEAgLTQw Miw3ICs0MDIsNyBAQCBzdGF0aWMgdm9pZCBwcmludF9iYXRjaF9wb29sX3N0YXRzKHN0cnVjdCBz ZXFfZmlsZSAqbSwKIAogCW1lbXNldCgmc3RhdHMsIDAsIHNpemVvZihzdGF0cykpOwogCi0JZm9y X2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpIHsKIAkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJWkUoZW5naW5lLT5i YXRjaF9wb29sLmNhY2hlX2xpc3QpOyBqKyspIHsKIAkJCWxpc3RfZm9yX2VhY2hfZW50cnkob2Jq LAogCQkJCQkgICAgJmVuZ2luZS0+YmF0Y2hfcG9vbC5jYWNoZV9saXN0W2pdLApAQCAtNTkxLDcg KzU5MSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcGFnZWZsaXBfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKmRhdGEpCiAJCQkJCSAgIHBpcGUsIHBsYW5lKTsKIAkJCX0KIAkJCWlmICh3 b3JrLT5mbGlwX3F1ZXVlZF9yZXEpIHsKLQkJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdp bmUgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKHdvcmstPmZsaXBfcXVldWVkX3JlcSk7CisJ CQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRf ZW5naW5lKHdvcmstPmZsaXBfcXVldWVkX3JlcSk7CiAKIAkJCQlzZXFfcHJpbnRmKG0sICJGbGlw IHF1ZXVlZCBvbiAlcyBhdCBzZXFubyAleCwgbmV4dCBzZXFubyAleCBbY3VycmVudCBicmVhZGNy dW1iICV4XSwgY29tcGxldGVkPyAlZFxuIiwKIAkJCQkJICAgZW5naW5lLT5uYW1lLApAQCAtNjQ0 LDcgKzY0NCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fYmF0Y2hfcG9vbF9pbmZvKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JZm9y X2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpIHsKIAkJZm9yIChqID0gMDsgaiA8IEFSUkFZX1NJWkUoZW5naW5lLT5i YXRjaF9wb29sLmNhY2hlX2xpc3QpOyBqKyspIHsKIAkJCWludCBjb3VudDsKIApAQCAtNjg5LDcg KzY4OSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZW1fcmVxdWVzdF9pbmZvKHN0cnVjdCBzZXFfZmls ZSAqbSwgdm9pZCAqZGF0YSkKIAkJcmV0dXJuIHJldDsKIAogCWFueSA9IDA7Ci0JZm9yX2VhY2hf cmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGkpIHsKIAkJaW50IGNvdW50OwogCiAJCWNvdW50ID0gMDsKQEAgLTc0Niw3ICs3NDYs NyBAQCBzdGF0aWMgaW50IGk5MTVfZ2VtX3NlcW5vX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2 b2lkICpkYXRhKQogCQlyZXR1cm4gcmV0OwogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2 KTsKIAotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdp bmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKIAkJaTkxNV9yaW5nX3NlcW5vX2luZm8obSwgZW5naW5l KTsKIAogCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKQEAgLTkzMyw3ICs5MzMsNyBA QCBzdGF0aWMgaW50IGk5MTVfaW50ZXJydXB0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lk ICpkYXRhKQogCQlzZXFfcHJpbnRmKG0sICJHcmFwaGljcyBJbnRlcnJ1cHQgbWFzazoJCSUwOHhc biIsCiAJCQkgICBJOTE1X1JFQUQoR1RJTVIpKTsKIAl9Ci0JZm9yX2VhY2hfcmluZyhlbmdpbmUs IGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsK IAkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDYpIHsKIAkJCXNlcV9wcmludGYobSwKIAkJ CQkgICAiR3JhcGhpY3MgSW50ZXJydXB0IG1hc2sgKCVzKToJJTA4eFxuIiwKQEAgLTEzMzEsOCAr MTMzMSw4IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUg Km0sIHZvaWQgKnVudXNlZCkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3It PmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKLQl1NjQgYWN0aGRbSTkxNV9O VU1fUklOR1NdOwotCXUzMiBzZXFub1tJOTE1X05VTV9SSU5HU107CisJdTY0IGFjdGhkW0k5MTVf TlVNX0VOR0lORVNdOworCXUzMiBzZXFub1tJOTE1X05VTV9FTkdJTkVTXTsKIAl1MzIgaW5zdGRv bmVbSTkxNV9OVU1fSU5TVERPTkVfUkVHXTsKIAlpbnQgaSwgajsKIApAQCAtMTM0Myw3ICsxMzQz LDcgQEAgc3RhdGljIGludCBpOTE1X2hhbmdjaGVja19pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwg dm9pZCAqdW51c2VkKQogCiAJaW50ZWxfcnVudGltZV9wbV9nZXQoZGV2X3ByaXYpOwogCi0JZm9y X2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpIHsKIAkJc2Vxbm9baV0gPSBlbmdpbmUtPmdldF9zZXFubyhlbmdpbmUs IGZhbHNlKTsKIAkJYWN0aGRbaV0gPSBpbnRlbF9yaW5nX2dldF9hY3RpdmVfaGVhZChlbmdpbmUp OwogCX0KQEAgLTEzNTksNyArMTM1OSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9oYW5nY2hlY2tfaW5m byhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAl9IGVsc2UKIAkJc2VxX3ByaW50 ZihtLCAiSGFuZ2NoZWNrIGluYWN0aXZlXG4iKTsKIAotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBk ZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKSB7CiAJ CXNlcV9wcmludGYobSwgIiVzOlxuIiwgZW5naW5lLT5uYW1lKTsKIAkJc2VxX3ByaW50ZihtLCAi XHRzZXFubyA9ICV4IFtjdXJyZW50ICV4XVxuIiwKIAkJCSAgIGVuZ2luZS0+aGFuZ2NoZWNrLnNl cW5vLCBzZXFub1tpXSk7CkBAIC0xOTY1LDcgKzE5NjUsNyBAQCBzdGF0aWMgaW50IGk5MTVfY29u dGV4dF9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAkJaWYgKGk5 MTUuZW5hYmxlX2V4ZWNsaXN0cykgewogCQkJc2VxX3B1dGMobSwgJ1xuJyk7Ci0JCQlmb3JfZWFj aF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwkJCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGRldl9wcml2LCBpKSB7CiAJCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmog PQogCQkJCQljdHgtPmVuZ2luZVtpXS5zdGF0ZTsKIAkJCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZl ciAqcmluZ2J1ZiA9CkBAIC0yMDU1LDcgKzIwNTUsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHVtcF9s cmMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAKIAlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGN0eCwgJmRldl9wcml2LT5jb250ZXh0X2xpc3QsIGxpbmspCiAJCWlmIChjdHggIT0gZGV2 X3ByaXYtPmtlcm5lbF9jb250ZXh0KQotCQkJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2 LCBpKQorCQkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCiAJCQkJaTkxNV9k dW1wX2xyY19vYmoobSwgY3R4LCBlbmdpbmUpOwogCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7CkBAIC0yMDg5LDcgKzIwODksNyBAQCBzdGF0aWMgaW50IGk5MTVfZXhlY2xpc3Rz KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAogCWludGVsX3J1bnRpbWVfcG1fZ2V0 KGRldl9wcml2KTsKIAotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgcmluZ19pZCkg eworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCByaW5nX2lkKSB7CiAJCXN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqaGVhZF9yZXEgPSBOVUxMOwogCQlpbnQgY291bnQgPSAw OwogCQl1bnNpZ25lZCBsb25nIGZsYWdzOwpAQCAtMjI1Myw3ICsyMjUzLDcgQEAgc3RhdGljIHZv aWQgZ2VuOF9wcGd0dF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAlpZiAoIXBwZ3R0KQogCQlyZXR1cm47CiAKLQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwg ZGV2X3ByaXYsIHVudXNlZCkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCB1 bnVzZWQpIHsKIAkJc2VxX3ByaW50ZihtLCAiJXNcbiIsIGVuZ2luZS0+bmFtZSk7CiAJCWZvciAo aSA9IDA7IGkgPCA0OyBpKyspIHsKIAkJCXU2NCBwZHAgPSBJOTE1X1JFQUQoR0VOOF9SSU5HX1BE UF9VRFcoZW5naW5lLCBpKSk7CkBAIC0yMjczLDcgKzIyNzMsNyBAQCBzdGF0aWMgdm9pZCBnZW42 X3BwZ3R0X2luZm8oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA9PSA2KQogCQlzZXFfcHJpbnRmKG0sICJHRlhfTU9E RTogMHglMDh4XG4iLCBJOTE1X1JFQUQoR0ZYX01PREUpKTsKIAotCWZvcl9lYWNoX3JpbmcoZW5n aW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp KSB7CiAJCXNlcV9wcmludGYobSwgIiVzXG4iLCBlbmdpbmUtPm5hbWUpOwogCQlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPT0gNykKIAkJCXNlcV9wcmludGYobSwgIkdGWF9NT0RFOiAweCUwOHhc biIsCkBAIC0yMzQyLDcgKzIzNDIsNyBAQCBzdGF0aWMgaW50IGNvdW50X2lycV93YWl0ZXJzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCWludCBjb3VudCA9IDA7CiAJaW50IGk7CiAK LQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgaTkxNSwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBpOTE1LCBpKQogCQljb3VudCArPSBlbmdpbmUtPmlycV9yZWZjb3VudDsKIAogCXJldHVybiBj b3VudDsKQEAgLTI0NjYsNyArMjQ2Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2NsaWVudF9p bmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKIAlzZXFfcHJpbnRmKG0sICJcdEZhaWxlZCBkb29yYmVs bDogJXVcbiIsIGNsaWVudC0+Yl9mYWlsKTsKIAlzZXFfcHJpbnRmKG0sICJcdExhc3Qgc3VibWlz c2lvbiByZXN1bHQ6ICVkXG4iLCBjbGllbnQtPnJldGNvZGUpOwogCi0JZm9yX2VhY2hfcmluZyhl bmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGkpIHsKIAkJc2VxX3ByaW50ZihtLCAiXHRTdWJtaXNzaW9uczogJWxsdSAlc1xuIiwKIAkJCQlj bGllbnQtPnN1Ym1pc3Npb25zW2VuZ2luZS0+Z3VjX2lkXSwKIAkJCQllbmdpbmUtPm5hbWUpOwpA QCAtMjUwNiw3ICsyNTA2LDcgQEAgc3RhdGljIGludCBpOTE1X2d1Y19pbmZvKHN0cnVjdCBzZXFf ZmlsZSAqbSwgdm9pZCAqZGF0YSkKIAlzZXFfcHJpbnRmKG0sICJHdUMgbGFzdCBhY3Rpb24gZXJy b3IgY29kZTogJWRcbiIsIGd1Yy5hY3Rpb25fZXJyKTsKIAogCXNlcV9wcmludGYobSwgIlxuR3VD IHN1Ym1pc3Npb25zOlxuIik7Ci0JZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7 CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKIAkJc2VxX3ByaW50Ziht LCAiXHQlLTI0czogJTEwbGx1LCBsYXN0IHNlcW5vIDB4JTA4eFxuIiwKIAkJCWVuZ2luZS0+bmFt ZSwgZ3VjLnN1Ym1pc3Npb25zW2VuZ2luZS0+Z3VjX2lkXSwKIAkJCWd1Yy5sYXN0X3NlcW5vW2Vu Z2luZS0+Z3VjX2lkXSk7CkBAIC0zMTUzLDE0ICszMTUzLDE0IEBAIHN0YXRpYyBpbnQgaTkxNV9z ZW1hcGhvcmVfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQogCQlwYWdl ID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGRldl9wcml2LT5zZW1hcGhvcmVfb2JqLCAwKTsK IAogCQlzZXFubyA9ICh1aW50NjRfdCAqKWttYXBfYXRvbWljKHBhZ2UpOwotCQlmb3JfZWFjaF9y aW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwkJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGkpIHsKIAkJCXVpbnQ2NF90IG9mZnNldDsKIAogCQkJc2VxX3ByaW50ZihtLCAiJXNc biIsIGVuZ2luZS0+bmFtZSk7CiAKIAkJCXNlcV9wdXRzKG0sICIgIExhc3Qgc2lnbmFsOiIpOwog CQkJZm9yIChqID0gMDsgaiA8IG51bV9yaW5nczsgaisrKSB7Ci0JCQkJb2Zmc2V0ID0gaSAqIEk5 MTVfTlVNX1JJTkdTICsgajsKKwkJCQlvZmZzZXQgPSBpICogSTkxNV9OVU1fRU5HSU5FUyArIGo7 CiAJCQkJc2VxX3ByaW50ZihtLCAiMHglMDhsbHggKDB4JTAybGx4KSAiLAogCQkJCQkgICBzZXFu b1tvZmZzZXRdLCBvZmZzZXQgKiA4KTsKIAkJCX0KQEAgLTMxNjgsNyArMzE2OCw3IEBAIHN0YXRp YyBpbnQgaTkxNV9zZW1hcGhvcmVfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51 c2VkKQogCiAJCQlzZXFfcHV0cyhtLCAiICBMYXN0IHdhaXQ6ICAiKTsKIAkJCWZvciAoaiA9IDA7 IGogPCBudW1fcmluZ3M7IGorKykgewotCQkJCW9mZnNldCA9IGkgKyAoaiAqIEk5MTVfTlVNX1JJ TkdTKTsKKwkJCQlvZmZzZXQgPSBpICsgKGogKiBJOTE1X05VTV9FTkdJTkVTKTsKIAkJCQlzZXFf cHJpbnRmKG0sICIweCUwOGxseCAoMHglMDJsbHgpICIsCiAJCQkJCSAgIHNlcW5vW29mZnNldF0s IG9mZnNldCAqIDgpOwogCQkJfQpAQCAtMzE3OCw3ICszMTc4LDcgQEAgc3RhdGljIGludCBpOTE1 X3NlbWFwaG9yZV9zdGF0dXMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCiAJCWt1 bm1hcF9hdG9taWMoc2Vxbm8pOwogCX0gZWxzZSB7CiAJCXNlcV9wdXRzKG0sICIgIExhc3Qgc2ln bmFsOiIpOwotCQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQogCQkJZm9yIChqID0gMDsgaiA8IG51bV9yaW5n czsgaisrKQogCQkJCXNlcV9wcmludGYobSwgIjB4JTA4eFxuIiwKIAkJCQkJICAgSTkxNV9SRUFE KGVuZ2luZS0+c2VtYXBob3JlLm1ib3guc2lnbmFsW2pdKSk7CkBAIC0zMTg2LDcgKzMxODYsNyBA QCBzdGF0aWMgaW50IGk5MTVfc2VtYXBob3JlX3N0YXR1cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZv aWQgKnVudXNlZCkKIAl9CiAKIAlzZXFfcHV0cyhtLCAiXG5TeW5jIHNlcW5vOlxuIik7Ci0JZm9y X2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpIHsKIAkJZm9yIChqID0gMDsgaiA8IG51bV9yaW5nczsgaisrKSB7CiAJ CQlzZXFfcHJpbnRmKG0sICIgIDB4JTA4eCAiLAogCQkJCSAgIGVuZ2luZS0+c2VtYXBob3JlLnN5 bmNfc2Vxbm9bal0pOwpAQCAtMzI0NCw3ICszMjQ0LDcgQEAgc3RhdGljIGludCBpOTE1X3dhX3Jl Z2lzdGVycyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAlpbnRlbF9ydW50aW1l X3BtX2dldChkZXZfcHJpdik7CiAKIAlzZXFfcHJpbnRmKG0sICJXb3JrYXJvdW5kcyBhcHBsaWVk OiAlZFxuIiwgd29ya2Fyb3VuZHMtPmNvdW50KTsKLQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2 X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCiAJCXNlcV9w cmludGYobSwgIkhXIHdoaXRlbGlzdCBjb3VudCBmb3IgJXM6ICVkXG4iLAogCQkJICAgZW5naW5l LT5uYW1lLCB3b3JrYXJvdW5kcy0+aHdfd2hpdGVsaXN0X2NvdW50W2ldKTsKIAlmb3IgKGkgPSAw OyBpIDwgd29ya2Fyb3VuZHMtPmNvdW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IDhmZDVhN2FhZDU2Ni4uZTg0MjdiNDBlODQ3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK QEAgLTUzMyw3ICs1MzMsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGUgewogCQl1MzIg Y3B1X3JpbmdfaGVhZDsKIAkJdTMyIGNwdV9yaW5nX3RhaWw7CiAKLQkJdTMyIHNlbWFwaG9yZV9z ZXFub1tJOTE1X05VTV9SSU5HUyAtIDFdOworCQl1MzIgc2VtYXBob3JlX3NlcW5vW0k5MTVfTlVN X0VOR0lORVMgLSAxXTsKIAogCQkvKiBSZWdpc3RlciBzdGF0ZSAqLwogCQl1MzIgc3RhcnQ7CkBA IC01NTMsNyArNTUzLDcgQEAgc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlIHsKIAkJdTMyIGZh dWx0X3JlZzsKIAkJdTY0IGZhZGRyOwogCQl1MzIgcmNfcHNtaTsgLyogc2xlZXAgc3RhdGUgKi8K LQkJdTMyIHNlbWFwaG9yZV9tYm94ZXNbSTkxNV9OVU1fUklOR1MgLSAxXTsKKwkJdTMyIHNlbWFw aG9yZV9tYm94ZXNbSTkxNV9OVU1fRU5HSU5FUyAtIDFdOwogCiAJCXN0cnVjdCBkcm1faTkxNV9l cnJvcl9vYmplY3QgewogCQkJaW50IHBhZ2VfY291bnQ7CkBAIC01NzksMTIgKzU3OSwxMiBAQCBz dHJ1Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGUgewogCiAJCXBpZF90IHBpZDsKIAkJY2hhciBjb21t W1RBU0tfQ09NTV9MRU5dOwotCX0gcmluZ1tJOTE1X05VTV9SSU5HU107CisJfSByaW5nW0k5MTVf TlVNX0VOR0lORVNdOwogCiAJc3RydWN0IGRybV9pOTE1X2Vycm9yX2J1ZmZlciB7CiAJCXUzMiBz aXplOwogCQl1MzIgbmFtZTsKLQkJdTMyIHJzZXFub1tJOTE1X05VTV9SSU5HU10sIHdzZXFubzsK KwkJdTMyIHJzZXFub1tJOTE1X05VTV9FTkdJTkVTXSwgd3NlcW5vOwogCQl1NjQgZ3R0X29mZnNl dDsKIAkJdTMyIHJlYWRfZG9tYWluczsKIAkJdTMyIHdyaXRlX2RvbWFpbjsKQEAgLTg5OCw3ICs4 OTgsNyBAQCBzdHJ1Y3QgaW50ZWxfY29udGV4dCB7CiAJCXN0cnVjdCBpOTE1X3ZtYSAqbHJjX3Zt YTsKIAkJdTY0IGxyY19kZXNjOwogCQl1aW50MzJfdCAqbHJjX3JlZ19zdGF0ZTsKLQl9IGVuZ2lu ZVtJOTE1X05VTV9SSU5HU107CisJfSBlbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CiAKIAlzdHJ1 Y3QgbGlzdF9oZWFkIGxpbms7CiB9OwpAQCAtMTcxMyw3ICsxNzEzLDcgQEAgc3RydWN0IGk5MTVf d2FfcmVnIHsKIHN0cnVjdCBpOTE1X3dvcmthcm91bmRzIHsKIAlzdHJ1Y3QgaTkxNV93YV9yZWcg cmVnW0k5MTVfTUFYX1dBX1JFR1NdOwogCXUzMiBjb3VudDsKLQl1MzIgaHdfd2hpdGVsaXN0X2Nv dW50W0k5MTVfTlVNX1JJTkdTXTsKKwl1MzIgaHdfd2hpdGVsaXN0X2NvdW50W0k5MTVfTlVNX0VO R0lORVNdOwogfTsKIAogc3RydWN0IGk5MTVfdmlydHVhbF9ncHUgewpAQCAtMTc3OCw3ICsxNzc4 LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCXdhaXRfcXVldWVfaGVhZF90IGdtYnVz X3dhaXRfcXVldWU7CiAKIAlzdHJ1Y3QgcGNpX2RldiAqYnJpZGdlX2RldjsKLQlzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzIGVuZ2luZVtJOTE1X05VTV9SSU5HU107CisJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyBlbmdpbmVbSTkxNV9OVU1fRU5HSU5FU107CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKnNlbWFwaG9yZV9vYmo7CiAJdWludDMyX3QgbGFzdF9zZXFubywgbmV4dF9zZXFubzsKIApA QCAtMjA0MCw4ICsyMDQwLDggQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZ3VjX3RvX2k5MTUoc3RydWN0IGludGVsX2d1YyAqZ3VjKQogfQogCiAvKiBJdGVyYXRlIG92 ZXIgaW5pdGlhbGlzZWQgcmluZ3MgKi8KLSNkZWZpbmUgZm9yX2VhY2hfcmluZyhyaW5nX18sIGRl dl9wcml2X18sIGlfXykgXAotCWZvciAoKGlfXykgPSAwOyAoaV9fKSA8IEk5MTVfTlVNX1JJTkdT OyAoaV9fKSsrKSBcCisjZGVmaW5lIGZvcl9lYWNoX2VuZ2luZShyaW5nX18sIGRldl9wcml2X18s IGlfXykgXAorCWZvciAoKGlfXykgPSAwOyAoaV9fKSA8IEk5MTVfTlVNX0VOR0lORVM7IChpX18p KyspIFwKIAkJZm9yX2VhY2hfaWYgKCgoKHJpbmdfXykgPSAmKGRldl9wcml2X18pLT5lbmdpbmVb KGlfXyldKSwgaW50ZWxfcmluZ19pbml0aWFsaXplZCgocmluZ19fKSkpKQogCiBlbnVtIGhkbWlf Zm9yY2VfYXVkaW8gewpAQCAtMjExMiw3ICsyMTEyLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgewogCXN0cnVjdCBkcm1fbW1fbm9kZSAqc3RvbGVuOwogCXN0cnVjdCBsaXN0X2hlYWQg Z2xvYmFsX2xpc3Q7CiAKLQlzdHJ1Y3QgbGlzdF9oZWFkIHJpbmdfbGlzdFtJOTE1X05VTV9SSU5H U107CisJc3RydWN0IGxpc3RfaGVhZCByaW5nX2xpc3RbSTkxNV9OVU1fRU5HSU5FU107CiAJLyoq IFVzZWQgaW4gZXhlY2J1ZiB0byB0ZW1wb3JhcmlseSBob2xkIGEgcmVmICovCiAJc3RydWN0IGxp c3RfaGVhZCBvYmpfZXhlY19saW5rOwogCkBAIC0yMTIzLDcgKzIxMjMsNyBAQCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCB7CiAJICogcmVuZGVyaW5nIGFuZCBzbyBhIG5vbi16ZXJvIHNlcW5v KSwgYW5kIGlzIG5vdCBzZXQgaWYgaXQgaSBzIG9uCiAJICogaW5hY3RpdmUgKHJlYWR5IHRvIGJl IHVuYm91bmQpIGxpc3QuCiAJICovCi0JdW5zaWduZWQgaW50IGFjdGl2ZTpJOTE1X05VTV9SSU5H UzsKKwl1bnNpZ25lZCBpbnQgYWN0aXZlOkk5MTVfTlVNX0VOR0lORVM7CiAKIAkvKioKIAkgKiBU aGlzIGlzIHNldCBpZiB0aGUgb2JqZWN0IGhhcyBiZWVuIHdyaXR0ZW4gdG8gc2luY2UgbGFzdCBi b3VuZApAQCAtMjIwMiw3ICsyMjAyLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewog CSAqIHJlYWQgcmVxdWVzdC4gVGhpcyBhbGxvd3MgZm9yIHRoZSBDUFUgdG8gcmVhZCBmcm9tIGFu IGFjdGl2ZQogCSAqIGJ1ZmZlciBieSBvbmx5IHdhaXRpbmcgZm9yIHRoZSB3cml0ZSB0byBjb21w bGV0ZS4KIAkgKiAqLwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqbGFzdF9yZWFkX3Jl cVtJOTE1X05VTV9SSU5HU107CisJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpsYXN0X3Jl YWRfcmVxW0k5MTVfTlVNX0VOR0lORVNdOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq bGFzdF93cml0ZV9yZXE7CiAJLyoqIEJyZWFkY3J1bWIgb2YgbGFzdCBmZW5jZWQgR1BVIGFjY2Vz cyB0byB0aGUgYnVmZmVyLiAqLwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqbGFzdF9m ZW5jZWRfcmVxOwpAQCAtMjM1MCw3ICsyMzUwLDcgQEAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vx bm8oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiB9CiAKIHN0YXRpYyBpbmxpbmUg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqCi1pOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQoraTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5l KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogewogCXJldHVybiByZXEgPyByZXEt PmVuZ2luZSA6IE5VTEw7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCBjZDY4YTg2NDM3 ZjEuLjBhZTE5M2Y5YmNiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0xMjQzLDExICsx MjQzLDExIEBAIGludCBfX2k5MTVfd2FpdF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqcmVxLAogCQkJczY0ICp0aW1lb3V0LAogCQkJc3RydWN0IGludGVsX3Jwc19jbGllbnQg KnJwcykKIHsKLQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSBpOTE1X2dlbV9yZXF1 ZXN0X2dldF9yaW5nKHJlcSk7CisJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gaTkx NV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKHJlcSk7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuZ2luZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7CiAJY29uc3QgYm9vbCBpcnFfdGVzdF9pbl9wcm9ncmVzcyA9Ci0JCUFDQ0VT U19PTkNFKGRldl9wcml2LT5ncHVfZXJyb3IudGVzdF9pcnFfcmluZ3MpICYgaW50ZWxfcmluZ19m bGFnKGVuZ2luZSk7CisJCUFDQ0VTU19PTkNFKGRldl9wcml2LT5ncHVfZXJyb3IudGVzdF9pcnFf cmluZ3MpICYgaW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKTsKIAlpbnQgc3RhdGUgPSBpbnRlcnJ1 cHRpYmxlID8gVEFTS19JTlRFUlJVUFRJQkxFIDogVEFTS19VTklOVEVSUlVQVElCTEU7CiAJREVG SU5FX1dBSVQod2FpdCk7CiAJdW5zaWduZWQgbG9uZyB0aW1lb3V0X2V4cGlyZTsKQEAgLTE1MTIs NyArMTUxMiw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZyhzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJCWk5MTVfZ2VtX29iamVjdF9yZXRpcmVfX3dyaXRlKG9i aik7CiAJCX0KIAl9IGVsc2UgewotCQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkr KykgeworCQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7CiAJCQlpZiAo b2JqLT5sYXN0X3JlYWRfcmVxW2ldID09IE5VTEwpCiAJCQkJY29udGludWU7CiAKQEAgLTE1NTIs NyArMTU1Miw3IEBAIGk5MTVfZ2VtX29iamVjdF93YWl0X3JlbmRlcmluZ19fbm9uYmxvY2tpbmco c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gb2JqLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dHNbSTkxNV9OVU1fUklOR1NdOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVz dHNbSTkxNV9OVU1fRU5HSU5FU107CiAJdW5zaWduZWQgcmVzZXRfY291bnRlcjsKIAlpbnQgcmV0 LCBpLCBuID0gMDsKIApAQCAtMTU3Nyw3ICsxNTc3LDcgQEAgaTkxNV9nZW1fb2JqZWN0X3dhaXRf cmVuZGVyaW5nX19ub25ibG9ja2luZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog CiAJCXJlcXVlc3RzW24rK10gPSBpOTE1X2dlbV9yZXF1ZXN0X3JlZmVyZW5jZShyZXEpOwogCX0g ZWxzZSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKSB7CisJCWZvciAo aSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxOwogCiAJCQlyZXEgPSBvYmotPmxhc3RfcmVhZF9yZXFbaV07CkBAIC0y NDA2LDEyICsyNDA2LDEyIEBAIHZvaWQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3RydWN0IGk5 MTVfdm1hICp2bWEsCiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHZtYS0+b2Jq OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAotCWVuZ2luZSA9IGk5MTVfZ2Vt X3JlcXVlc3RfZ2V0X3JpbmcocmVxKTsKKwllbmdpbmUgPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9l bmdpbmUocmVxKTsKIAogCS8qIEFkZCBhIHJlZmVyZW5jZSBpZiB3ZSdyZSBuZXdseSBlbnRlcmlu ZyB0aGUgYWN0aXZlIGxpc3QuICovCiAJaWYgKG9iai0+YWN0aXZlID09IDApCiAJCWRybV9nZW1f b2JqZWN0X3JlZmVyZW5jZSgmb2JqLT5iYXNlKTsKLQlvYmotPmFjdGl2ZSB8PSBpbnRlbF9yaW5n X2ZsYWcoZW5naW5lKTsKKwlvYmotPmFjdGl2ZSB8PSBpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUp OwogCiAJbGlzdF9tb3ZlX3RhaWwoJm9iai0+cmluZ19saXN0W2VuZ2luZS0+aWRdLCAmZW5naW5l LT5hY3RpdmVfbGlzdCk7CiAJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJm9iai0+bGFzdF9yZWFk X3JlcVtlbmdpbmUtPmlkXSwgcmVxKTsKQEAgLTI0MjMsNyArMjQyMyw3IEBAIHN0YXRpYyB2b2lk CiBpOTE1X2dlbV9vYmplY3RfcmV0aXJlX193cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqKQogewogCVJRX0JVR19PTihvYmotPmxhc3Rfd3JpdGVfcmVxID09IE5VTEwpOwotCVJR X0JVR19PTighKG9iai0+YWN0aXZlICYgaW50ZWxfcmluZ19mbGFnKG9iai0+bGFzdF93cml0ZV9y ZXEtPmVuZ2luZSkpKTsKKwlSUV9CVUdfT04oIShvYmotPmFjdGl2ZSAmIGludGVsX2VuZ2luZV9m bGFnKG9iai0+bGFzdF93cml0ZV9yZXEtPmVuZ2luZSkpKTsKIAogCWk5MTVfZ2VtX3JlcXVlc3Rf YXNzaWduKCZvYmotPmxhc3Rfd3JpdGVfcmVxLCBOVUxMKTsKIAlpbnRlbF9mYl9vYmpfZmx1c2go b2JqLCB0cnVlLCBPUklHSU5fQ1MpOwpAQCAtMjQ3MSwxNSArMjQ3MSwxNSBAQCBpOTE1X2dlbV9p bml0X3NlcW5vKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBzZXFubykKIAlpbnQgcmV0LCBp LCBqOwogCiAJLyogQ2FyZWZ1bGx5IHJldGlyZSBhbGwgcmVxdWVzdHMgd2l0aG91dCB3cml0aW5n IHRvIHRoZSByaW5ncyAqLwotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgewot CQlyZXQgPSBpbnRlbF9yaW5nX2lkbGUoZW5naW5lKTsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5l LCBkZXZfcHJpdiwgaSkgeworCQlyZXQgPSBpbnRlbF9lbmdpbmVfaWRsZShlbmdpbmUpOwogCQlp ZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CiAJaTkxNV9nZW1fcmV0aXJlX3JlcXVlc3RzKGRl dik7CiAKIAkvKiBGaW5hbGx5IHJlc2V0IGh3IHN0YXRlICovCi0JZm9yX2VhY2hfcmluZyhlbmdp bmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkp IHsKIAkJaW50ZWxfcmluZ19pbml0X3NlcW5vKGVuZ2luZSwgc2Vxbm8pOwogCiAJCWZvciAoaiA9 IDA7IGogPCBBUlJBWV9TSVpFKGVuZ2luZS0+c2VtYXBob3JlLnN5bmNfc2Vxbm8pOyBqKyspCkBA IC0yODAxLDcgKzI4MDEsNyBAQCBpOTE1X2dlbV9maW5kX2FjdGl2ZV9yZXF1ZXN0KHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlyZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIHZvaWQg aTkxNV9nZW1fcmVzZXRfcmluZ19zdGF0dXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAorc3RhdGljIHZvaWQgaTkxNV9nZW1fcmVzZXRfZW5naW5lX3N0YXR1cyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7CkBA IC0yODIwLDcgKzI4MjAsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9yaW5nX3N0YXR1 cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWk5MTVfc2V0X3Jlc2V0X3N0 YXR1cyhkZXZfcHJpdiwgcmVxdWVzdC0+Y3R4LCBmYWxzZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGk5 MTVfZ2VtX3Jlc2V0X3JpbmdfY2xlYW51cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCitzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZXNldF9lbmdpbmVfY2xlYW51cChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqYnVmZmVyOwpAQCAtMjg5MywxMSAr Mjg5MywxMSBAQCB2b2lkIGk5MTVfZ2VtX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ ICogdGhlbSBmb3IgZmluZGluZyB0aGUgZ3VpbHR5IHBhcnR5LiBBcyB0aGUgcmVxdWVzdHMgb25s eSBib3Jyb3cKIAkgKiB0aGVpciByZWZlcmVuY2UgdG8gdGhlIG9iamVjdHMsIHRoZSBpbnNwZWN0 aW9uIG11c3QgYmUgZG9uZSBmaXJzdC4KIAkgKi8KLQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2 X3ByaXYsIGkpCi0JCWk5MTVfZ2VtX3Jlc2V0X3Jpbmdfc3RhdHVzKGRldl9wcml2LCBlbmdpbmUp OworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKQorCQlpOTE1X2dlbV9yZXNl dF9lbmdpbmVfc3RhdHVzKGRldl9wcml2LCBlbmdpbmUpOwogCi0JZm9yX2VhY2hfcmluZyhlbmdp bmUsIGRldl9wcml2LCBpKQotCQlpOTE1X2dlbV9yZXNldF9yaW5nX2NsZWFudXAoZGV2X3ByaXYs IGVuZ2luZSk7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJCWk5MTVf Z2VtX3Jlc2V0X2VuZ2luZV9jbGVhbnVwKGRldl9wcml2LCBlbmdpbmUpOwogCiAJaTkxNV9nZW1f Y29udGV4dF9yZXNldChkZXYpOwogCkBAIC0yOTY2LDcgKzI5NjYsNyBAQCBpOTE1X2dlbV9yZXRp cmVfcmVxdWVzdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlib29sIGlkbGUgPSB0cnVlOwog CWludCBpOwogCi0JZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2Vh Y2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKIAkJaTkxNV9nZW1fcmV0aXJlX3JlcXVl c3RzX3JpbmcoZW5naW5lKTsKIAkJaWRsZSAmPSBsaXN0X2VtcHR5KCZlbmdpbmUtPnJlcXVlc3Rf bGlzdCk7CiAJCWlmIChpOTE1LmVuYWJsZV9leGVjbGlzdHMpIHsKQEAgLTMwMTQsNyArMzAxNCw3 IEBAIGk5MTVfZ2VtX2lkbGVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nOwogCWludCBpOwogCi0JZm9yX2VhY2hfcmlu ZyhyaW5nLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUocmluZywgZGV2X3ByaXYsIGkp CiAJCWlmICghbGlzdF9lbXB0eSgmcmluZy0+cmVxdWVzdF9saXN0KSkKIAkJCXJldHVybjsKIApA QCAtMzAyOCw3ICszMDI4LDcgQEAgaTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQogCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7CiAJCWlu dCBpOwogCi0JCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwkJZm9yX2VhY2hf ZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCiAJCQlpOTE1X2dlbV9iYXRjaF9wb29sX2Zpbmko JmVuZ2luZS0+YmF0Y2hfcG9vbCk7CiAKIAkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7CkBAIC0zMDQ4LDcgKzMwNDgsNyBAQCBpOTE1X2dlbV9vYmplY3RfZmx1c2hfYWN0aXZlKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiAJaWYgKCFvYmotPmFjdGl2ZSkKIAkJcmV0 dXJuIDA7CiAKLQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykgeworCWZvciAo aSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXE7CiAKIAkJcmVxID0gb2JqLT5sYXN0X3JlYWRfcmVxW2ldOwpAQCAtMzA5 Niw3ICszMDk2LDcgQEAgaTkxNV9nZW1fd2FpdF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3dhaXQgKmFyZ3MgPSBkYXRhOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Ci0J c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXFbSTkxNV9OVU1fUklOR1NdOworCXN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxW0k5MTVfTlVNX0VOR0lORVNdOwogCXVuc2lnbmVk IHJlc2V0X2NvdW50ZXI7CiAJaW50IGksIG4gPSAwOwogCWludCByZXQ7CkBAIC0zMTMzLDcgKzMx MzMsNyBAQCBpOTE1X2dlbV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZSgmb2JqLT5iYXNlKTsKIAlyZXNldF9jb3VudGVyID0gYXRvbWljX3JlYWQoJmRldl9wcml2LT5n cHVfZXJyb3IucmVzZXRfY291bnRlcik7CiAKLQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklO R1M7IGkrKykgeworCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJ aWYgKG9iai0+bGFzdF9yZWFkX3JlcVtpXSA9PSBOVUxMKQogCQkJY29udGludWU7CiAKQEAgLTMx NjYsNyArMzE2Niw3IEBAIF9faTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpmcm9tOwogCWludCByZXQ7 CiAKLQlmcm9tID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfcmluZyhmcm9tX3JlcSk7CisJZnJvbSA9 IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShmcm9tX3JlcSk7CiAJaWYgKHRvID09IGZyb20p CiAJCXJldHVybiAwOwogCkBAIC0zMjYwLDcgKzMyNjAsNyBAQCBpOTE1X2dlbV9vYmplY3Rfc3lu YyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgIHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqKnRvX3JlcSkKIHsKIAljb25zdCBib29sIHJlYWRvbmx5ID0gb2JqLT5i YXNlLnBlbmRpbmdfd3JpdGVfZG9tYWluID09IDA7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXFbSTkxNV9OVU1fUklOR1NdOworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxW0k5MTVfTlVNX0VOR0lORVNdOwogCWludCByZXQsIGksIG47CiAKIAlpZiAoIW9iai0+YWN0 aXZlKQpAQCAtMzI3NCw3ICszMjc0LDcgQEAgaTkxNV9nZW1fb2JqZWN0X3N5bmMoc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJaWYgKG9iai0+bGFzdF93cml0ZV9yZXEpCiAJCQly ZXFbbisrXSA9IG9iai0+bGFzdF93cml0ZV9yZXE7CiAJfSBlbHNlIHsKLQkJZm9yIChpID0gMDsg aSA8IEk5MTVfTlVNX1JJTkdTOyBpKyspCisJCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJ TkVTOyBpKyspCiAJCQlpZiAob2JqLT5sYXN0X3JlYWRfcmVxW2ldKQogCQkJCXJlcVtuKytdID0g b2JqLT5sYXN0X3JlYWRfcmVxW2ldOwogCX0KQEAgLTMzOTUsNyArMzM5NSw3IEBAIGludCBpOTE1 X2dwdV9pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaW50IHJldCwgaTsKIAogCS8qIEZs dXNoIGV2ZXJ5dGhpbmcgb250byB0aGUgaW5hY3RpdmUgbGlzdC4gKi8KLQlmb3JfZWFjaF9yaW5n KGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJp diwgaSkgewogCQlpZiAoIWk5MTUuZW5hYmxlX2V4ZWNsaXN0cykgewogCQkJc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKQEAgLTM0MTIsNyArMzQxMiw3IEBAIGludCBpOTE1X2dw dV9pZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQlpOTE1X2FkZF9yZXF1ZXN0X25vX2Zs dXNoKHJlcSk7CiAJCX0KIAotCQlyZXQgPSBpbnRlbF9yaW5nX2lkbGUoZW5naW5lKTsKKwkJcmV0 ID0gaW50ZWxfZW5naW5lX2lkbGUoZW5naW5lKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7 CiAJfQpAQCAtNDM1OSw3ICs0MzU5LDcgQEAgaTkxNV9nZW1fYnVzeV9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCWlmIChvYmotPmFjdGl2ZSkgewogCQlpbnQgaTsK IAotCQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykgeworCQlmb3IgKGkgPSAw OyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7CiAJCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcTsKIAogCQkJcmVxID0gb2JqLT5sYXN0X3JlYWRfcmVxW2ldOwpAQCAtNDQ0Nyw3 ICs0NDQ3LDcgQEAgdm9pZCBpOTE1X2dlbV9vYmplY3RfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCWludCBpOwogCiAJSU5JVF9MSVNUX0hFQUQoJm9iai0+Z2xvYmFsX2xp c3QpOwotCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKQorCWZvciAoaSA9IDA7 IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspCiAJCUlOSVRfTElTVF9IRUFEKCZvYmotPnJpbmdf bGlzdFtpXSk7CiAJSU5JVF9MSVNUX0hFQUQoJm9iai0+b2JqX2V4ZWNfbGluayk7CiAJSU5JVF9M SVNUX0hFQUQoJm9iai0+dm1hX2xpc3QpOwpAQCAtNDY1OSw3ICs0NjU5LDcgQEAgaTkxNV9nZW1f c3RvcF9yaW5nYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZf cHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKIAkJZGV2X3By aXYtPmd0LnN0b3BfcmluZyhlbmdpbmUpOwogfQogCkBAIC00ODc2LDcgKzQ4NzYsNyBAQCBpOTE1 X2dlbV9pbml0X2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJfQogCiAJLyogTmVlZCB0byBk byBiYXNpYyBpbml0aWFsaXNhdGlvbiBvZiBhbGwgcmluZ3MgZmlyc3Q6ICovCi0JZm9yX2VhY2hf cmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGkpIHsKIAkJcmV0ID0gZW5naW5lLT5pbml0X2h3KGVuZ2luZSk7CiAJCWlmIChyZXQp CiAJCQlnb3RvIG91dDsKQEAgLTQ5MDEsNyArNDkwMSw3IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAkJZ290byBvdXQ7CiAKIAkvKiBOb3cgaXQgaXMgc2FmZSB0 byBnbyBiYWNrIHJvdW5kIGFuZCBkbyBldmVyeXRoaW5nIGVsc2U6ICovCi0JZm9yX2VhY2hfcmlu ZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3By aXYsIGkpIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7CiAKIAkJcmVxID0g aTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhlbmdpbmUsIE5VTEwpOwpAQCAtNTAwOSw3ICs1MDA5LDcg QEAgaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBpOwogCi0JZm9yX2VhY2hfcmlu ZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2 LCBpKQogCQlkZXZfcHJpdi0+Z3QuY2xlYW51cF9yaW5nKGVuZ2luZSk7CiAKICAgICBpZiAoaTkx NS5lbmFibGVfZXhlY2xpc3RzKQpAQCAtNTAyMiw3ICs1MDIyLDcgQEAgaTkxNV9nZW1fY2xlYW51 cF9yaW5nYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB9CiAKIHN0YXRpYyB2b2lkCi1p bml0X3JpbmdfbGlzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoraW5pdF9lbmdp bmVfbGlzdHMoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCUlOSVRfTElTVF9I RUFEKCZlbmdpbmUtPmFjdGl2ZV9saXN0KTsKIAlJTklUX0xJU1RfSEVBRCgmZW5naW5lLT5yZXF1 ZXN0X2xpc3QpOwpAQCAtNTA1NSw4ICs1MDU1LDggQEAgaTkxNV9nZW1fbG9hZF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5tbS51bmJvdW5k X2xpc3QpOwogCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+bW0uYm91bmRfbGlzdCk7CiAJSU5J VF9MSVNUX0hFQUQoJmRldl9wcml2LT5tbS5mZW5jZV9saXN0KTsKLQlmb3IgKGkgPSAwOyBpIDwg STkxNV9OVU1fUklOR1M7IGkrKykKLQkJaW5pdF9yaW5nX2xpc3RzKCZkZXZfcHJpdi0+ZW5naW5l W2ldKTsKKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKQorCQlpbml0X2Vu Z2luZV9saXN0cygmZGV2X3ByaXYtPmVuZ2luZVtpXSk7CiAJZm9yIChpID0gMDsgaSA8IEk5MTVf TUFYX05VTV9GRU5DRVM7IGkrKykKIAkJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5mZW5jZV9y ZWdzW2ldLmxydV9saXN0KTsKIAlJTklUX0RFTEFZRURfV09SSygmZGV2X3ByaXYtPm1tLnJldGly ZV93b3JrLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4 dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29udGV4dC5jCmluZGV4IDZjMzI1 ZTRjNzU1Ni4uMTk5MzQ0OWFiN2M1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9jb250ZXh0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fY29u dGV4dC5jCkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9pZCBpOTE1X2dlbV9jb250ZXh0X3Jlc2V0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQlpbnRlbF9scl9jb250ZXh0X3Jlc2V0KGRldiwgY3R4 KTsKIAl9CiAKLQlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykgeworCWZvciAo aSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspIHsKIAkJc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbaV07CiAKIAkJaWYgKGVuZ2luZS0+bGFz dF9jb250ZXh0KSB7CkBAIC00MjYsNyArNDI2LDcgQEAgdm9pZCBpOTE1X2dlbV9jb250ZXh0X2Zp bmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4o ZGN0eC0+bGVnYWN5X2h3X2N0eC5yY3Nfc3RhdGUpOwogCX0KIAotCWZvciAoaSA9IEk5MTVfTlVN X1JJTkdTOyAtLWkgPj0gMDspIHsKKwlmb3IgKGkgPSBJOTE1X05VTV9FTkdJTkVTOyAtLWkgPj0g MDspIHsKIAkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdp bmVbaV07CiAKIAkJaWYgKGVuZ2luZS0+bGFzdF9jb250ZXh0KSB7CkBAIC01NTMsNyArNTUzLDcg QEAgbWlfc2V0X2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIHUzMiBo d19mbGFncykKIAogCQkJaW50ZWxfcmluZ19lbWl0KGVuZ2luZSwKIAkJCQkJTUlfTE9BRF9SRUdJ U1RFUl9JTU0obnVtX3JpbmdzKSk7Ci0JCQlmb3JfZWFjaF9yaW5nKHNpZ25hbGxlciwgdG9faTkx NShlbmdpbmUtPmRldiksIGkpIHsKKwkJCWZvcl9lYWNoX2VuZ2luZShzaWduYWxsZXIsIHRvX2k5 MTUoZW5naW5lLT5kZXYpLCBpKSB7CiAJCQkJaWYgKHNpZ25hbGxlciA9PSBlbmdpbmUpCiAJCQkJ CWNvbnRpbnVlOwogCkBAIC01ODIsNyArNTgyLDcgQEAgbWlfc2V0X2NvbnRleHQoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIHUzMiBod19mbGFncykKIAogCQkJaW50ZWxfcmluZ19l bWl0KGVuZ2luZSwKIAkJCQkJTUlfTE9BRF9SRUdJU1RFUl9JTU0obnVtX3JpbmdzKSk7Ci0JCQlm b3JfZWFjaF9yaW5nKHNpZ25hbGxlciwgdG9faTkxNShlbmdpbmUtPmRldiksIGkpIHsKKwkJCWZv cl9lYWNoX2VuZ2luZShzaWduYWxsZXIsIHRvX2k5MTUoZW5naW5lLT5kZXYpLCBpKSB7CiAJCQkJ aWYgKHNpZ25hbGxlciA9PSBlbmdpbmUpCiAJCQkJCWNvbnRpbnVlOwogCkBAIC02MDgsNyArNjA4 LDcgQEAgc3RhdGljIGlubGluZSBib29sIHNob3VsZF9za2lwX3N3aXRjaChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUsCiAJCXJldHVybiBmYWxzZTsKIAogCWlmICh0by0+cHBndHQgJiYg ZnJvbSA9PSB0byAmJgotCSAgICAhKGludGVsX3JpbmdfZmxhZyhlbmdpbmUpICYgdG8tPnBwZ3R0 LT5wZF9kaXJ0eV9yaW5ncykpCisJICAgICEoaW50ZWxfZW5naW5lX2ZsYWcoZW5naW5lKSAmIHRv LT5wcGd0dC0+cGRfZGlydHlfcmluZ3MpKQogCQlyZXR1cm4gdHJ1ZTsKIAogCXJldHVybiBmYWxz ZTsKQEAgLTY5Nyw3ICs2OTcsNyBAQCBzdGF0aWMgaW50IGRvX3N3aXRjaChzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJCWdvdG8gdW5waW5fb3V0OwogCiAJCS8qIERvaW5nIGEg UEQgbG9hZCBhbHdheXMgcmVsb2FkcyB0aGUgcGFnZSBkaXJzICovCi0JCXRvLT5wcGd0dC0+cGRf ZGlydHlfcmluZ3MgJj0gfmludGVsX3JpbmdfZmxhZyhlbmdpbmUpOworCQl0by0+cHBndHQtPnBk X2RpcnR5X3JpbmdzICY9IH5pbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpOwogCX0KIAogCWlmIChl bmdpbmUgIT0gJmRldl9wcml2LT5lbmdpbmVbUkNTXSkgewpAQCAtNzI1LDkgKzcyNSw5IEBAIHN0 YXRpYyBpbnQgZG9fc3dpdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQogCQkg KiBzcGFjZS4gVGhpcyBtZWFucyB3ZSBtdXN0IGVuZm9yY2UgdGhhdCBhIHBhZ2UgdGFibGUgbG9h ZAogCQkgKiBvY2N1ciB3aGVuIHRoaXMgb2NjdXJzLiAqLwogCX0gZWxzZSBpZiAodG8tPnBwZ3R0 ICYmCi0JCSAgIChpbnRlbF9yaW5nX2ZsYWcoZW5naW5lKSAmIHRvLT5wcGd0dC0+cGRfZGlydHlf cmluZ3MpKSB7CisJCSAgIChpbnRlbF9lbmdpbmVfZmxhZyhlbmdpbmUpICYgdG8tPnBwZ3R0LT5w ZF9kaXJ0eV9yaW5ncykpIHsKIAkJaHdfZmxhZ3MgfD0gTUlfRk9SQ0VfUkVTVE9SRTsKLQkJdG8t PnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncyAmPSB+aW50ZWxfcmluZ19mbGFnKGVuZ2luZSk7CisJCXRv LT5wcGd0dC0+cGRfZGlydHlfcmluZ3MgJj0gfmludGVsX2VuZ2luZV9mbGFnKGVuZ2luZSk7CiAJ fQogCiAJLyogV2Ugc2hvdWxkIG5ldmVyIGVtaXQgc3dpdGNoX21tIG1vcmUgdGhhbiBvbmNlICov CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kZWJ1Zy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZGVidWcuYwppbmRleCAyMDJhN2U2YWUyOTUuLmUw YmNhN2Q1YjBkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZGVi dWcuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kZWJ1Zy5jCkBAIC00Myw3 ICs0Myw3IEBAIGk5MTVfdmVyaWZ5X2xpc3RzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYg KHdhcm5lZCkKIAkJcmV0dXJuIDA7CiAKLQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYs IGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkgewogCQlsaXN0X2Zv cl9lYWNoX2VudHJ5KG9iaiwgJmVuZ2luZS0+YWN0aXZlX2xpc3QsCiAJCQkJICAgIHJpbmdfbGlz dFtlbmdpbmUtPmlkXSkgewogCQkJaWYgKG9iai0+YmFzZS5kZXYgIT0gZGV2IHx8CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggYmIxZWQ4YzRiY2I0Li5j MDU0NWRiODVhOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4 ZWNidWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVy LmMKQEAgLTk0Miw3ICs5NDIsNyBAQCBzdGF0aWMgaW50CiBpOTE1X2dlbV9leGVjYnVmZmVyX21v dmVfdG9fZ3B1KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCQkJCXN0cnVjdCBs aXN0X2hlYWQgKnZtYXMpCiB7Ci0JY29uc3QgdW5zaWduZWQgb3RoZXJfcmluZ3MgPSB+aW50ZWxf cmluZ19mbGFnKHJlcS0+ZW5naW5lKTsKKwljb25zdCB1bnNpZ25lZCBvdGhlcl9yaW5ncyA9IH5p bnRlbF9lbmdpbmVfZmxhZyhyZXEtPmVuZ2luZSk7CiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJ dWludDMyX3QgZmx1c2hfZG9tYWlucyA9IDA7CiAJYm9vbCBmbHVzaF9jaGlwc2V0ID0gZmFsc2U7 CkBAIC0xMDk5LDcgKzEwOTksNyBAQCB2b2lkCiBpOTE1X2dlbV9leGVjYnVmZmVyX21vdmVfdG9f YWN0aXZlKHN0cnVjdCBsaXN0X2hlYWQgKnZtYXMsCiAJCQkJICAgc3RydWN0IGRybV9pOTE1X2dl bV9yZXF1ZXN0ICpyZXEpCiB7Ci0Jc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gaTkx NV9nZW1fcmVxdWVzdF9nZXRfcmluZyhyZXEpOworCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShyZXEpOwogCXN0cnVjdCBpOTE1X3Zt YSAqdm1hOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsIHZtYXMsIGV4ZWNfbGlzdCkgewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwppbmRleCBhYjU0Mzk2MDI5Y2EuLjljNzUyZmUw ZjczMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTE3MzksNyArMTczOSw3 IEBAIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfZW5hYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBqOwogCi0JZm9yX2VhY2hf cmluZyhlbmdpbmUsIGRldl9wcml2LCBqKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2 X3ByaXYsIGopIHsKIAkJdTMyIGZvdXJfbGV2ZWwgPSBVU0VTX0ZVTExfNDhCSVRfUFBHVFQoZGV2 KSA/IEdFTjhfR0ZYX1BQR1RUXzQ4QiA6IDA7CiAJCUk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjco ZW5naW5lKSwKIAkJCSAgIF9NQVNLRURfQklUX0VOQUJMRShHRlhfUFBHVFRfRU5BQkxFIHwgZm91 cl9sZXZlbCkpOwpAQCAtMTc2NSw3ICsxNzY1LDcgQEAgc3RhdGljIHZvaWQgZ2VuN19wcGd0dF9l bmFibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAJSTkxNV9XUklURShHQU1fRUNPQ0hL LCBlY29jaGspOwogCi0JZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKIAkJLyogR0ZYX01PREUgaXMgcGVy LXJpbmcgb24gZ2VuNysgKi8KIAkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdpbmUpLAog CQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9QUEdUVF9FTkFCTEUpKTsKQEAgLTIyOTIsNyAr MjI5Miw3IEBAIHZvaWQgaTkxNV9jaGVja19hbmRfY2xlYXJfZmF1bHRzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNikKIAkJcmV0dXJuOwogCi0J Zm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVu Z2luZSwgZGV2X3ByaXYsIGkpIHsKIAkJdTMyIGZhdWx0X3JlZzsKIAkJZmF1bHRfcmVnID0gSTkx NV9SRUFEKFJJTkdfRkFVTFRfUkVHKGVuZ2luZSkpOwogCQlpZiAoZmF1bHRfcmVnICYgUklOR19G QVVMVF9WQUxJRCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggYTcz ZjcwNTdlODc1Li4zNDM5N2E2N2IwOWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYwpAQCAtMTk4LDcgKzE5OCw3IEBAIHN0YXRpYyB2b2lkIHByaW50X2Vycm9yX2J1ZmZlcnMo c3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKIAkJCSAgIGVyci0+c2l6ZSwKIAkJ CSAgIGVyci0+cmVhZF9kb21haW5zLAogCQkJICAgZXJyLT53cml0ZV9kb21haW4pOwotCQlmb3Ig KGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykKKwkJZm9yIChpID0gMDsgaSA8IEk5MTVf TlVNX0VOR0lORVM7IGkrKykKIAkJCWVycl9wcmludGYobSwgIiUwMnggIiwgZXJyLT5yc2Vxbm9b aV0pOwogCiAJCWVycl9wcmludGYobSwgIl0gJTAyeCIsIGVyci0+d3NlcW5vKTsKQEAgLTczMiw3 ICs3MzIsNyBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9i dWZmZXIgKmVyciwKIAogCWVyci0+c2l6ZSA9IG9iai0+YmFzZS5zaXplOwogCWVyci0+bmFtZSA9 IG9iai0+YmFzZS5uYW1lOwotCWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9SSU5HUzsgaSsrKQor CWZvciAoaSA9IDA7IGkgPCBJOTE1X05VTV9FTkdJTkVTOyBpKyspCiAJCWVyci0+cnNlcW5vW2ld ID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ob2JqLT5sYXN0X3JlYWRfcmVxW2ldKTsKIAll cnItPndzZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3NlcW5vKG9iai0+bGFzdF93cml0ZV9y ZXEpOwogCWVyci0+Z3R0X29mZnNldCA9IHZtYS0+bm9kZS5zdGFydDsKQEAgLTc0Nyw3ICs3NDcs NyBAQCBzdGF0aWMgdm9pZCBjYXB0dXJlX2JvKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9idWZmZXIg KmVyciwKIAllcnItPnB1cmdlYWJsZSA9IG9iai0+bWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQ7 CiAJZXJyLT51c2VycHRyID0gb2JqLT51c2VycHRyLm1tICE9IE5VTEw7CiAJZXJyLT5yaW5nID0g b2JqLT5sYXN0X3dyaXRlX3JlcSA/Ci0JCQlpOTE1X2dlbV9yZXF1ZXN0X2dldF9yaW5nKG9iai0+ bGFzdF93cml0ZV9yZXEpLT5pZCA6IC0xOworCQkJaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5l KG9iai0+bGFzdF93cml0ZV9yZXEpLT5pZCA6IC0xOwogCWVyci0+Y2FjaGVfbGV2ZWwgPSBvYmot PmNhY2hlX2xldmVsOwogfQogCkBAIC04MDksNyArODA5LDcgQEAgc3RhdGljIHVpbnQzMl90IGk5 MTVfZXJyb3JfZ2VuZXJhdGVfY29kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJICogc3luY2hyb25pemF0aW9uIGNvbW1hbmRzIHdoaWNoIGFsbW9zdCBhbHdheXMgYXBwZWFy IGluIHRoZSBjYXNlCiAJICogc3RyaWN0bHkgYSBjbGllbnQgYnVnLiBVc2UgaW5zdGRvbmUgdG8g ZGlmZmVyZW50aWF0ZSB0aG9zZSBzb21lLgogCSAqLwotCWZvciAoaSA9IDA7IGkgPCBJOTE1X05V TV9SSU5HUzsgaSsrKSB7CisJZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX0VOR0lORVM7IGkrKykg ewogCQlpZiAoZXJyb3ItPnJpbmdbaV0uaGFuZ2NoZWNrX2FjdGlvbiA9PSBIQU5HQ0hFQ0tfSFVO RykgewogCQkJaWYgKHJpbmdfaWQpCiAJCQkJKnJpbmdfaWQgPSBpOwpAQCAtODU2LDcgKzg1Niw3 IEBAIHN0YXRpYyB2b2lkIGdlbjhfcmVjb3JkX3NlbWFwaG9yZV9zdGF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQlpOTE1X2Vycm9yX2dndHRfb2JqZWN0X2NyZWF0ZShk ZXZfcHJpdiwKIAkJCQkJCSAgICAgIGRldl9wcml2LT5zZW1hcGhvcmVfb2JqKTsKIAotCWZvcl9l YWNoX3JpbmcodG8sIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKHRvLCBkZXZfcHJp diwgaSkgewogCQlpbnQgaWR4OwogCQl1MTYgc2lnbmFsX29mZnNldDsKIAkJdTMyICp0bXA7CkBA IC0xMDE5LDcgKzEwMTksNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2dlbV9yZWNvcmRfcmluZ3Moc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVl c3Q7CiAJaW50IGksIGNvdW50OwogCi0JZm9yIChpID0gMDsgaSA8IEk5MTVfTlVNX1JJTkdTOyBp KyspIHsKKwlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fRU5HSU5FUzsgaSsrKSB7CiAJCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW2ldOwogCQlzdHJ1 Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmJ1ZjsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n dWNfc3VibWlzc2lvbi5jCmluZGV4IGVkNGYwNzYyYjI2My4uYWUxZjU4ZDA3M2YyIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2d1Y19zdWJtaXNzaW9uLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCkBAIC0zOTAsNyArMzkwLDcg QEAgc3RhdGljIHZvaWQgZ3VjX2luaXRfY3R4X2Rlc2Moc3RydWN0IGludGVsX2d1YyAqZ3VjLAog CWRlc2MucHJpb3JpdHkgPSBjbGllbnQtPnByaW9yaXR5OwogCWRlc2MuZGJfaWQgPSBjbGllbnQt PmRvb3JiZWxsX2lkOwogCi0JZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKSB7CisJ Zm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpIHsKIAkJc3RydWN0IGd1Y19leGVj bGlzdF9jb250ZXh0ICpscmMgPSAmZGVzYy5scmNbZW5naW5lLT5ndWNfaWRdOwogCQlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCQl1aW50NjRfdCBjdHhfZGVzYzsKQEAgLTg3MSw3 ICs4NzEsNyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2FkcyhzdHJ1Y3QgaW50ZWxfZ3VjICpn dWMpCiAJZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbUkNTXTsKIAlhZHMtPmdvbGRlbl9jb250 ZXh0X2xyY2EgPSBlbmdpbmUtPnN0YXR1c19wYWdlLmdmeF9hZGRyOwogCi0JZm9yX2VhY2hfcmlu ZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2 LCBpKQogCQlhZHMtPmVuZ19zdGF0ZV9zaXplW2VuZ2luZS0+Z3VjX2lkXSA9IGludGVsX2xyX2Nv bnRleHRfc2l6ZShlbmdpbmUpOwogCiAJLyogR3VDIHNjaGVkdWxpbmcgcG9saWNpZXMgKi8KQEAg LTg4NCw3ICs4ODQsNyBAQCBzdGF0aWMgdm9pZCBndWNfY3JlYXRlX2FkcyhzdHJ1Y3QgaW50ZWxf Z3VjICpndWMpCiAJLyogTU1JTyByZWcgc3RhdGUgKi8KIAlyZWdfc3RhdGUgPSAodm9pZCAqKXBv bGljaWVzICsgc2l6ZW9mKHN0cnVjdCBndWNfcG9saWNpZXMpOwogCi0JZm9yX2VhY2hfcmluZyhl bmdpbmUsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGkpIHsKIAkJcmVnX3N0YXRlLT5tbWlvX3doaXRlX2xpc3RbZW5naW5lLT5ndWNfaWRdLm1taW9f c3RhcnQgPQogCQkJZW5naW5lLT5tbWlvX2Jhc2UgKyBHVUNfTU1JT19XSElURV9MSVNUX1NUQVJU OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRleCA2YjdiZWU1OWUwYzcuLjYzZWQ3N2ZlNmJj NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBAIC0xMDgyLDcgKzEwODIsNyBAQCBzdGF0aWMg Ym9vbCBhbnlfd2FpdGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBpOwogCi0JZm9yX2VhY2hfcmluZyhl bmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp KQogCQlpZiAoZW5naW5lLT5pcnFfcmVmY291bnQpCiAJCQlyZXR1cm4gdHJ1ZTsKIApAQCAtMjQ2 MCw3ICsyNDYwLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9lcnJvcl93YWtlX3VwKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkgKi8KIAogCS8qIFdha2UgdXAgX193YWl0X3NlcW5v LCBwb3RlbnRpYWxseSBob2xkaW5nIGRldi0+c3RydWN0X211dGV4LiAqLwotCWZvcl9lYWNoX3Jp bmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJp diwgaSkKIAkJd2FrZV91cF9hbGwoJmVuZ2luZS0+aXJxX3F1ZXVlKTsKIAogCS8qIFdha2UgdXAg aW50ZWxfY3J0Y193YWl0X2Zvcl9wZW5kaW5nX2ZsaXBzLCBob2xkaW5nIGNydGMtPm11dGV4LiAq LwpAQCAtMjgzMiw3ICsyODMyLDcgQEAgc2VtYXBob3JlX3dhaXRfdG9fc2lnbmFsbGVyX3Jpbmco c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaXBlaHIsCiAJaW50IGk7CiAKIAlp ZiAoSU5URUxfSU5GTyhkZXZfcHJpdi0+ZGV2KS0+Z2VuID49IDgpIHsKLQkJZm9yX2VhY2hfcmlu ZyhzaWduYWxsZXIsIGRldl9wcml2LCBpKSB7CisJCWZvcl9lYWNoX2VuZ2luZShzaWduYWxsZXIs IGRldl9wcml2LCBpKSB7CiAJCQlpZiAoZW5naW5lID09IHNpZ25hbGxlcikKIAkJCQljb250aW51 ZTsKIApAQCAtMjg0Miw3ICsyODQyLDcgQEAgc2VtYXBob3JlX3dhaXRfdG9fc2lnbmFsbGVyX3Jp bmcoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgaXBlaHIsCiAJfSBlbHNlIHsK IAkJdTMyIHN5bmNfYml0cyA9IGlwZWhyICYgTUlfU0VNQVBIT1JFX1NZTkNfTUFTSzsKIAotCQlm b3JfZWFjaF9yaW5nKHNpZ25hbGxlciwgZGV2X3ByaXYsIGkpIHsKKwkJZm9yX2VhY2hfZW5naW5l KHNpZ25hbGxlciwgZGV2X3ByaXYsIGkpIHsKIAkJCWlmKGVuZ2luZSA9PSBzaWduYWxsZXIpCiAJ CQkJY29udGludWU7CiAKQEAgLTI5NDEsNyArMjk0MSw3IEBAIHN0YXRpYyBpbnQgc2VtYXBob3Jl X3Bhc3NlZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCXJldHVybiAtMTsKIAog CS8qIFByZXZlbnQgcGF0aG9sb2dpY2FsIHJlY3Vyc2lvbiBkdWUgdG8gZHJpdmVyIGJ1Z3MgKi8K LQlpZiAoc2lnbmFsbGVyLT5oYW5nY2hlY2suZGVhZGxvY2sgPj0gSTkxNV9OVU1fUklOR1MpCisJ aWYgKHNpZ25hbGxlci0+aGFuZ2NoZWNrLmRlYWRsb2NrID49IEk5MTVfTlVNX0VOR0lORVMpCiAJ CXJldHVybiAtMTsKIAogCWlmIChpOTE1X3NlcW5vX3Bhc3NlZChzaWduYWxsZXItPmdldF9zZXFu byhzaWduYWxsZXIsIGZhbHNlKSwgc2Vxbm8pKQpAQCAtMjk2MCw3ICsyOTYwLDcgQEAgc3RhdGlj IHZvaWQgc2VtYXBob3JlX2NsZWFyX2RlYWRsb2NrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwogCWludCBpOwogCi0J Zm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShlbmdp bmUsIGRldl9wcml2LCBpKQogCQllbmdpbmUtPmhhbmdjaGVjay5kZWFkbG9jayA9IDA7CiB9CiAK QEAgLTMwNzUsNyArMzA3NSw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2VsYXBzZWQo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZTsKIAlpbnQgaTsKIAlpbnQgYnVzeV9jb3VudCA9IDAsIHJpbmdzX2h1bmcgPSAwOwotCWJvb2wg c3R1Y2tbSTkxNV9OVU1fUklOR1NdID0geyAwIH07CisJYm9vbCBzdHVja1tJOTE1X05VTV9FTkdJ TkVTXSA9IHsgMCB9OwogI2RlZmluZSBCVVNZIDEKICNkZWZpbmUgS0lDSyA1CiAjZGVmaW5lIEhV TkcgMjAKQEAgLTMwOTcsNyArMzA5Nyw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfaGFuZ2NoZWNrX2Vs YXBzZWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCSAqLwogCWludGVsX3VuY29yZV9hcm1f dW5jbGFpbWVkX21taW9fZGV0ZWN0aW9uKGRldl9wcml2KTsKIAotCWZvcl9lYWNoX3JpbmcoZW5n aW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp KSB7CiAJCXU2NCBhY3RoZDsKIAkJdTMyIHNlcW5vOwogCQlib29sIGJ1c3kgPSB0cnVlOwpAQCAt MzExNCw3ICszMTE0LDcgQEAgc3RhdGljIHZvaWQgaTkxNV9oYW5nY2hlY2tfZWxhcHNlZChzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJCQkJaWYgKHdhaXRxdWV1ZV9hY3RpdmUoJmVuZ2luZS0+ aXJxX3F1ZXVlKSkgewogCQkJCQkvKiBJc3N1ZSBhIHdha2UtdXAgdG8gY2F0Y2ggc3R1Y2sgaC93 LiAqLwogCQkJCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoZW5naW5lLT5pZCwgJmRldl9wcml2LT5n cHVfZXJyb3IubWlzc2VkX2lycV9yaW5ncykpIHsKLQkJCQkJCWlmICghKGRldl9wcml2LT5ncHVf ZXJyb3IudGVzdF9pcnFfcmluZ3MgJiBpbnRlbF9yaW5nX2ZsYWcoZW5naW5lKSkpCisJCQkJCQlp ZiAoIShkZXZfcHJpdi0+Z3B1X2Vycm9yLnRlc3RfaXJxX3JpbmdzICYgaW50ZWxfZW5naW5lX2Zs YWcoZW5naW5lKSkpCiAJCQkJCQkJRFJNX0VSUk9SKCJIYW5nY2hlY2sgdGltZXIgZWxhcHNlZC4u LiAlcyBpZGxlXG4iLAogCQkJCQkJCQkgIGVuZ2luZS0+bmFtZSk7CiAJCQkJCQllbHNlCkBAIC0z MTg0LDcgKzMxODQsNyBAQCBzdGF0aWMgdm9pZCBpOTE1X2hhbmdjaGVja19lbGFwc2VkKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKIAkJYnVzeV9jb3VudCArPSBidXN5OwogCX0KIAotCWZvcl9l YWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUs IGRldl9wcml2LCBpKSB7CiAJCWlmIChlbmdpbmUtPmhhbmdjaGVjay5zY29yZSA+PSBIQU5HQ0hF Q0tfU0NPUkVfUklOR19IVU5HKSB7CiAJCQlEUk1fSU5GTygiJXMgb24gJXNcbiIsCiAJCQkJIHN0 dWNrW2ldID8gInN0dWNrIiA6ICJubyBwcm9ncmVzcyIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3RyYWNlLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3RyYWNl LmgKaW5kZXggOTIzY2Y2ZTRkOGI2Li5hZmRkOGFlZmI1YjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfdHJhY2UuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3RyYWNlLmgKQEAgLTQ4Nyw3ICs0ODcsNyBAQCBUUkFDRV9FVkVOVChpOTE1X2dlbV9yaW5nX2Rp c3BhdGNoLAogCiAJICAgIFRQX2Zhc3RfYXNzaWduKAogCQkJICAgc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lID0KLQkJCQkJCWk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3JpbmcocmVxKTsKKwkJ CQkJCWk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShyZXEpOwogCQkJICAgX19lbnRyeS0+ZGV2 ID0gZW5naW5lLT5kZXYtPnByaW1hcnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+cmluZyA9IGVu Z2luZS0+aWQ7CiAJCQkgICBfX2VudHJ5LT5zZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3Nl cW5vKHJlcSk7CkBAIC01MzQsNyArNTM0LDcgQEAgREVDTEFSRV9FVkVOVF9DTEFTUyhpOTE1X2dl bV9yZXF1ZXN0LAogCiAJICAgIFRQX2Zhc3RfYXNzaWduKAogCQkJICAgc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lID0KLQkJCQkJCWk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3JpbmcocmVxKTsK KwkJCQkJCWk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShyZXEpOwogCQkJICAgX19lbnRyeS0+ ZGV2ID0gZW5naW5lLT5kZXYtPnByaW1hcnktPmluZGV4OwogCQkJICAgX19lbnRyeS0+cmluZyA9 IGVuZ2luZS0+aWQ7CiAJCQkgICBfX2VudHJ5LT5zZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0 X3NlcW5vKHJlcSk7CkBAIC01OTgsNyArNTk4LDcgQEAgVFJBQ0VfRVZFTlQoaTkxNV9nZW1fcmVx dWVzdF93YWl0X2JlZ2luLAogCSAgICAgKi8KIAkgICAgVFBfZmFzdF9hc3NpZ24oCiAJCQkgICBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPQotCQkJCQkJaTkxNV9nZW1fcmVxdWVzdF9n ZXRfcmluZyhyZXEpOworCQkJCQkJaTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKHJlcSk7CiAJ CQkgICBfX2VudHJ5LT5kZXYgPSBlbmdpbmUtPmRldi0+cHJpbWFyeS0+aW5kZXg7CiAJCQkgICBf X2VudHJ5LT5yaW5nID0gZW5naW5lLT5pZDsKIAkJCSAgIF9fZW50cnktPnNlcW5vID0gaTkxNV9n ZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmVxKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YwppbmRleCA2ODViZmZlMzU0MjcuLjc1OGNhMGNjYjcxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwpAQCAtMTE0MjIsNyArMTE0MjIsNyBAQCBzdGF0aWMgYm9vbCB1c2VfbW1p b19mbGlwKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAkJCQkJCSAgICAgICBmYWxz ZSkpCiAJCXJldHVybiB0cnVlOwogCWVsc2UKLQkJcmV0dXJuIGVuZ2luZSAhPSBpOTE1X2dlbV9y ZXF1ZXN0X2dldF9yaW5nKG9iai0+bGFzdF93cml0ZV9yZXEpOworCQlyZXR1cm4gZW5naW5lICE9 IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X2VuZ2luZShvYmotPmxhc3Rfd3JpdGVfcmVxKTsKIH0KIAog c3RhdGljIHZvaWQgc2tsX2RvX21taW9fZmxpcChzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YywKQEAgLTExNzYyLDcgKzExNzYyLDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxp cChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJfSBlbHNlIGlmIChJU19JVllCUklER0UoZGV2KSB8 fCBJU19IQVNXRUxMKGRldikpIHsKIAkJZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbQkNTXTsK IAl9IGVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDcpIHsKLQkJZW5naW5lID0gaTkx NV9nZW1fcmVxdWVzdF9nZXRfcmluZyhvYmotPmxhc3Rfd3JpdGVfcmVxKTsKKwkJZW5naW5lID0g aTkxNV9nZW1fcmVxdWVzdF9nZXRfZW5naW5lKG9iai0+bGFzdF93cml0ZV9yZXEpOwogCQlpZiAo ZW5naW5lID09IE5VTEwgfHwgZW5naW5lLT5pZCAhPSBSQ1MpCiAJCQllbmdpbmUgPSAmZGV2X3By aXYtPmVuZ2luZVtCQ1NdOwogCX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNf bG9hZGVyLmMKaW5kZXggZmMyYzUxODhiMDk1Li45ZjMwOTIxMTkzOWEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIHZvaWQg ZGlyZWN0X2ludGVycnVwdHNfdG9faG9zdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAJLyogdGVsbCBhbGwgY29tbWFuZCBzdHJlYW1lcnMgTk9UIHRvIGZvcndhcmQgaW50ZXJy dXB0cyBhbmQgdmJsYW5rIHRvIEd1QyAqLwogCWlycXMgPSBfTUFTS0VEX0ZJRUxEKEdGWF9GT1JX QVJEX1ZCTEFOS19NQVNLLCBHRlhfRk9SV0FSRF9WQkxBTktfTkVWRVIpOwogCWlycXMgfD0gX01B U0tFRF9CSVRfRElTQUJMRShHRlhfSU5URVJSVVBUX1NURUVSSU5HKTsKLQlmb3JfZWFjaF9yaW5n KGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYs IGkpCiAJCUk5MTVfV1JJVEUoUklOR19NT0RFX0dFTjcoZW5naW5lKSwgaXJxcyk7CiAKIAkvKiBy b3V0ZSBhbGwgR1QgaW50ZXJydXB0cyB0byB0aGUgaG9zdCAqLwpAQCAtMTA0LDcgKzEwNCw3IEBA IHN0YXRpYyB2b2lkIGRpcmVjdF9pbnRlcnJ1cHRzX3RvX2d1YyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCiAJLyogdGVsbCBhbGwgY29tbWFuZCBzdHJlYW1lcnMgdG8gZm9yd2Fy ZCBpbnRlcnJ1cHRzIGFuZCB2YmxhbmsgdG8gR3VDICovCiAJaXJxcyA9IF9NQVNLRURfRklFTEQo R0ZYX0ZPUldBUkRfVkJMQU5LX01BU0ssIEdGWF9GT1JXQVJEX1ZCTEFOS19BTFdBWVMpOwogCWly cXMgfD0gX01BU0tFRF9CSVRfRU5BQkxFKEdGWF9JTlRFUlJVUFRfU1RFRVJJTkcpOwotCWZvcl9l YWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdiwgaSkKIAkJSTkxNV9XUklURShSSU5HX01PREVfR0VONyhlbmdpbmUpLCBpcnFzKTsK IAogCS8qIHJvdXRlIFVTRVJfSU5URVJSVVBUIHRvIEhvc3QsIGFsbCBvdGhlcnMgYXJlIHNlbnQg dG8gR3VDLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBiYmNjMzFmNGIxNWQuLmYy Y2YwZTE2ODE0MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTY2OSw3ICs2NjksNyBA QCBzdGF0aWMgaW50IGxvZ2ljYWxfcmluZ19pbnZhbGlkYXRlX2FsbF9jYWNoZXMoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiBzdGF0aWMgaW50IGV4ZWNsaXN0c19tb3ZlX3RvX2dw dShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgc3RydWN0IGxpc3RfaGVh ZCAqdm1hcykKIHsKLQljb25zdCB1bnNpZ25lZCBvdGhlcl9yaW5ncyA9IH5pbnRlbF9yaW5nX2Zs YWcocmVxLT5lbmdpbmUpOworCWNvbnN0IHVuc2lnbmVkIG90aGVyX3JpbmdzID0gfmludGVsX2Vu Z2luZV9mbGFnKHJlcS0+ZW5naW5lKTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAl1aW50MzJf dCBmbHVzaF9kb21haW5zID0gMDsKIAlib29sIGZsdXNoX2NoaXBzZXQgPSBmYWxzZTsKQEAgLTEw NTcsNyArMTA1Nyw3IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX3N0b3Aoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lKQogCWlmICghaW50ZWxfcmluZ19pbml0aWFsaXplZChlbmdpbmUp KQogCQlyZXR1cm47CiAKLQlyZXQgPSBpbnRlbF9yaW5nX2lkbGUoZW5naW5lKTsKKwlyZXQgPSBp bnRlbF9lbmdpbmVfaWRsZShlbmdpbmUpOwogCWlmIChyZXQgJiYgIWk5MTVfcmVzZXRfaW5fcHJv Z3Jlc3MoJnRvX2k5MTUoZW5naW5lLT5kZXYpLT5ncHVfZXJyb3IpKQogCQlEUk1fRVJST1IoImZh aWxlZCB0byBxdWllc2NlICVzIHdoaWxzdCBjbGVhbmluZyB1cDogJWRcbiIsCiAJCQkgIGVuZ2lu ZS0+bmFtZSwgcmV0KTsKQEAgLTE2ODgsNyArMTY4OCw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0 X2JiX3N0YXJ0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAogCSAqIG5vdCBpZGxl KS4gUE1MNCBpcyBhbGxvY2F0ZWQgZHVyaW5nIHBwZ3R0IGluaXQgc28gdGhpcyBpcwogCSAqIG5v dCBuZWVkZWQgaW4gNDgtYml0LiovCiAJaWYgKHJlcS0+Y3R4LT5wcGd0dCAmJgotCSAgICAoaW50 ZWxfcmluZ19mbGFnKHJlcS0+ZW5naW5lKSAmIHJlcS0+Y3R4LT5wcGd0dC0+cGRfZGlydHlfcmlu Z3MpKSB7CisJICAgIChpbnRlbF9lbmdpbmVfZmxhZyhyZXEtPmVuZ2luZSkgJiByZXEtPmN0eC0+ cHBndHQtPnBkX2RpcnR5X3JpbmdzKSkgewogCQlpZiAoIVVTRVNfRlVMTF80OEJJVF9QUEdUVChy ZXEtPmk5MTUpICYmCiAJCSAgICAhaW50ZWxfdmdwdV9hY3RpdmUocmVxLT5pOTE1LT5kZXYpKSB7 CiAJCQlyZXQgPSBpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdF9wZHBzKHJlcSk7CkBAIC0xNjk2LDcg KzE2OTYsNyBAQCBzdGF0aWMgaW50IGdlbjhfZW1pdF9iYl9zdGFydChzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKIAkJCQlyZXR1cm4gcmV0OwogCQl9CiAKLQkJcmVxLT5jdHgtPnBw Z3R0LT5wZF9kaXJ0eV9yaW5ncyAmPSB+aW50ZWxfcmluZ19mbGFnKHJlcS0+ZW5naW5lKTsKKwkJ cmVxLT5jdHgtPnBwZ3R0LT5wZF9kaXJ0eV9yaW5ncyAmPSB+aW50ZWxfZW5naW5lX2ZsYWcocmVx LT5lbmdpbmUpOwogCX0KIAogCXJldCA9IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihyZXEsIDQp OwpAQCAtMjUxMSw3ICsyNTExLDcgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3RydWN0 IGludGVsX2NvbnRleHQgKmN0eCkKIHsKIAlpbnQgaTsKIAotCWZvciAoaSA9IEk5MTVfTlVNX1JJ TkdTOyAtLWkgPj0gMDsgKSB7CisJZm9yIChpID0gSTkxNV9OVU1fRU5HSU5FUzsgLS1pID49IDA7 ICkgewogCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW2ld LnJpbmdidWY7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0gY3R4LT5l bmdpbmVbaV0uc3RhdGU7CiAKQEAgLTI2NzQsNyArMjY3NCw3IEBAIHZvaWQgaW50ZWxfbHJfY29u dGV4dF9yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZTsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwg aSkgeworCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpKSB7CiAJCXN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KIAkJCQljdHgtPmVuZ2luZVtlbmdpbmUtPmlk XS5zdGF0ZTsKIAkJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9jcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbW9jcy5jCmluZGV4IDJjODk1NjM3YWI1MC4uNmU5MzZjN2UzODJhIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2NzLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbW9jcy5jCkBAIC0zMjgsNyArMzI4LDcgQEAgaW50IGludGVsX3Jjc19j b250ZXh0X2luaXRfbW9jcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIAkJZW51 bSBpbnRlbF9yaW5nX2lkIHJpbmdfaWQ7CiAKIAkJLyogUHJvZ3JhbSB0aGUgY29udHJvbCByZWdp c3RlcnMgKi8KLQkJZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCByaW5nX2lkKSB7CisJ CWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCByaW5nX2lkKSB7CiAJCQlyZXQgPSBl bWl0X21vY3NfY29udHJvbF90YWJsZShyZXEsICZ0LCByaW5nX2lkKTsKIAkJCWlmIChyZXQpCiAJ CQkJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IGU1MWMyODQ4NzY5Ni4u MjBjODI0M2VmNzA1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTQ4MzgsNyArNDgzOCw3 IEBAIHN0YXRpYyB2b2lkIGdlbjlfZW5hYmxlX3JjNihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQlJOTE1X1dSSVRFKEdFTjZfUkM2X1dBS0VfUkFURV9MSU1JVCwgNTQgPDwgMTYpOwogCUk5MTVf V1JJVEUoR0VONl9SQ19FVkFMVUFUSU9OX0lOVEVSVkFMLCAxMjUwMDApOyAvKiAxMjUwMCAqIDEy ODBucyAqLwogCUk5MTVfV1JJVEUoR0VONl9SQ19JRExFX0hZU1RFUlNJUywgMjUpOyAvKiAyNSAq IDEyODBucyAqLwotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgdW51c2VkKQorCWZv cl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCB1bnVzZWQpCiAJCUk5MTVfV1JJVEUoUklO R19NQVhfSURMRShlbmdpbmUtPm1taW9fYmFzZSksIDEwKTsKIAogCWlmIChIQVNfR1VDX1VDT0RF KGRldikpCkBAIC00OTA2LDcgKzQ5MDYsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2VuYWJsZV9ycHMo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJOTE1X1dSSVRFKEdFTjZfUkM2X1dBS0VfUkFURV9M SU1JVCwgNDAgPDwgMTYpOwogCUk5MTVfV1JJVEUoR0VONl9SQ19FVkFMVUFUSU9OX0lOVEVSVkFM LCAxMjUwMDApOyAvKiAxMjUwMCAqIDEyODBucyAqLwogCUk5MTVfV1JJVEUoR0VONl9SQ19JRExF X0hZU1RFUlNJUywgMjUpOyAvKiAyNSAqIDEyODBucyAqLwotCWZvcl9lYWNoX3JpbmcoZW5naW5l LCBkZXZfcHJpdiwgdW51c2VkKQorCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCB1 bnVzZWQpCiAJCUk5MTVfV1JJVEUoUklOR19NQVhfSURMRShlbmdpbmUtPm1taW9fYmFzZSksIDEw KTsKIAlJOTE1X1dSSVRFKEdFTjZfUkNfU0xFRVAsIDApOwogCWlmIChJU19CUk9BRFdFTEwoZGV2 KSkKQEAgLTUwMDMsNyArNTAwMyw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfZW5hYmxlX3JwcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoR0VONl9SQ19FVkFMVUFUSU9OX0lOVEVS VkFMLCAxMjUwMDApOwogCUk5MTVfV1JJVEUoR0VONl9SQ19JRExFX0hZU1RFUlNJUywgMjUpOwog Ci0JZm9yX2VhY2hfcmluZyhlbmdpbmUsIGRldl9wcml2LCBpKQorCWZvcl9lYWNoX2VuZ2luZShl bmdpbmUsIGRldl9wcml2LCBpKQogCQlJOTE1X1dSSVRFKFJJTkdfTUFYX0lETEUoZW5naW5lLT5t bWlvX2Jhc2UpLCAxMCk7CiAKIAlJOTE1X1dSSVRFKEdFTjZfUkNfU0xFRVAsIDApOwpAQCAtNTUy Miw3ICs1NTIyLDcgQEAgc3RhdGljIHZvaWQgY2hlcnJ5dmlld19lbmFibGVfcnBzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJSTkxNV9XUklURShHRU42X1JDX0VWQUxVQVRJT05fSU5URVJWQUws IDEyNTAwMCk7IC8qIDEyNTAwICogMTI4MG5zICovCiAJSTkxNV9XUklURShHRU42X1JDX0lETEVf SFlTVEVSU0lTLCAyNSk7IC8qIDI1ICogMTI4MG5zICovCiAKLQlmb3JfZWFjaF9yaW5nKGVuZ2lu ZSwgZGV2X3ByaXYsIGkpCisJZm9yX2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCiAJ CUk5MTVfV1JJVEUoUklOR19NQVhfSURMRShlbmdpbmUtPm1taW9fYmFzZSksIDEwKTsKIAlJOTE1 X1dSSVRFKEdFTjZfUkNfU0xFRVAsIDApOwogCkBAIC01NjMzLDcgKzU2MzMsNyBAQCBzdGF0aWMg dm9pZCB2YWxsZXl2aWV3X2VuYWJsZV9ycHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlJOTE1 X1dSSVRFKEdFTjZfUkNfRVZBTFVBVElPTl9JTlRFUlZBTCwgMTI1MDAwKTsKIAlJOTE1X1dSSVRF KEdFTjZfUkNfSURMRV9IWVNURVJTSVMsIDI1KTsKIAotCWZvcl9lYWNoX3JpbmcoZW5naW5lLCBk ZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkKIAkJSTkx NV9XUklURShSSU5HX01BWF9JRExFKGVuZ2luZS0+bW1pb19iYXNlKSwgMTApOwogCiAJSTkxNV9X UklURShHRU42X1JDNl9USFJFU0hPTEQsIDB4NTU3KTsKQEAgLTYwMTksNyArNjAxOSw3IEBAIGJv b2wgaTkxNV9ncHVfYnVzeSh2b2lkKQogCQlnb3RvIG91dF91bmxvY2s7CiAJZGV2X3ByaXYgPSBp OTE1X21jaF9kZXY7CiAKLQlmb3JfZWFjaF9yaW5nKGVuZ2luZSwgZGV2X3ByaXYsIGkpCisJZm9y X2VhY2hfZW5naW5lKGVuZ2luZSwgZGV2X3ByaXYsIGkpCiAJCXJldCB8PSAhbGlzdF9lbXB0eSgm ZW5naW5lLT5yZXF1ZXN0X2xpc3QpOwogCiBvdXRfdW5sb2NrOgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDcwNzViOTNhOGZjOS4uZjc0OTNjNWJmZjA3IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC02Miw3ICs2Miw3IEBAIGlu dCBpbnRlbF9yaW5nX3NwYWNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQogYm9v bCBpbnRlbF9yaW5nX3N0b3BwZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+ZGV2LT5kZXZfcHJp dmF0ZTsKLQlyZXR1cm4gZGV2X3ByaXYtPmdwdV9lcnJvci5zdG9wX3JpbmdzICYgaW50ZWxfcmlu Z19mbGFnKGVuZ2luZSk7CisJcmV0dXJuIGRldl9wcml2LT5ncHVfZXJyb3Iuc3RvcF9yaW5ncyAm IGludGVsX2VuZ2luZV9mbGFnKGVuZ2luZSk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW50ZWxfcmlu Z19hZHZhbmNlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKQEAgLTEyODMsNyArMTI4 Myw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9yY3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqc2lnbmFsbGVyX3JlcSwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JZm9yX2Vh Y2hfcmluZyh3YWl0ZXIsIGRldl9wcml2LCBpKSB7CisJZm9yX2VhY2hfZW5naW5lKHdhaXRlciwg ZGV2X3ByaXYsIGkpIHsKIAkJdTMyIHNlcW5vOwogCQl1NjQgZ3R0X29mZnNldCA9IHNpZ25hbGxl ci0+c2VtYXBob3JlLnNpZ25hbF9nZ3R0W2ldOwogCQlpZiAoZ3R0X29mZnNldCA9PSBNSV9TRU1B UEhPUkVfU1lOQ19JTlZBTElEKQpAQCAtMTMyNCw3ICsxMzI0LDcgQEAgc3RhdGljIGludCBnZW44 X3hjc19zaWduYWwoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpzaWduYWxsZXJfcmVxLAog CWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKLQlmb3JfZWFjaF9yaW5nKHdhaXRlciwgZGV2X3By aXYsIGkpIHsKKwlmb3JfZWFjaF9lbmdpbmUod2FpdGVyLCBkZXZfcHJpdiwgaSkgewogCQl1MzIg c2Vxbm87CiAJCXU2NCBndHRfb2Zmc2V0ID0gc2lnbmFsbGVyLT5zZW1hcGhvcmUuc2lnbmFsX2dn dHRbaV07CiAJCWlmIChndHRfb2Zmc2V0ID09IE1JX1NFTUFQSE9SRV9TWU5DX0lOVkFMSUQpCkBA IC0xMzYzLDcgKzEzNjMsNyBAQCBzdGF0aWMgaW50IGdlbjZfc2lnbmFsKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqc2lnbmFsbGVyX3JlcSwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0Owog Ci0JZm9yX2VhY2hfcmluZyh1c2VsZXNzLCBkZXZfcHJpdiwgaSkgeworCWZvcl9lYWNoX2VuZ2lu ZSh1c2VsZXNzLCBkZXZfcHJpdiwgaSkgewogCQlpOTE1X3JlZ190IG1ib3hfcmVnID0gc2lnbmFs bGVyLT5zZW1hcGhvcmUubWJveC5zaWduYWxbaV07CiAKIAkJaWYgKGk5MTVfbW1pb19yZWdfdmFs aWQobWJveF9yZWcpKSB7CkBAIC0yMzU2LDcgKzIzNTYsNyBAQCBzdGF0aWMgdm9pZCBfX3dyYXBf cmluZ19idWZmZXIoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCiAJaW50ZWxfcmlu Z191cGRhdGVfc3BhY2UocmluZ2J1Zik7CiB9CiAKLWludCBpbnRlbF9yaW5nX2lkbGUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQoraW50IGludGVsX2VuZ2luZV9pZGxlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcTsKIApAQCAtMzE3MCw3ICszMTcwLDcgQEAgaW50ZWxfc3RvcF9yaW5nX2J1ZmZlcihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJaWYgKCFpbnRlbF9yaW5nX2luaXRpYWxpemVk KGVuZ2luZSkpCiAJCXJldHVybjsKIAotCXJldCA9IGludGVsX3JpbmdfaWRsZShlbmdpbmUpOwor CXJldCA9IGludGVsX2VuZ2luZV9pZGxlKGVuZ2luZSk7CiAJaWYgKHJldCAmJiAhaTkxNV9yZXNl dF9pbl9wcm9ncmVzcygmdG9faTkxNShlbmdpbmUtPmRldiktPmdwdV9lcnJvcikpCiAJCURSTV9F UlJPUigiZmFpbGVkIHRvIHF1aWVzY2UgJXMgd2hpbHN0IGNsZWFuaW5nIHVwOiAlZFxuIiwKIAkJ CSAgZW5naW5lLT5uYW1lLCByZXQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5oCmluZGV4IDRiMDExNGUzYzQ2Ny4uZWU0ZDlhOGRkYzA0IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC01NSwxMiArNTUsMTIgQEAgc3RydWN0ICBpbnRlbF9o d19zdGF0dXNfcGFnZSB7CiAjZGVmaW5lIGk5MTVfc2VtYXBob3JlX3NlcW5vX3NpemUgc2l6ZW9m KHVpbnQ2NF90KQogI2RlZmluZSBHRU44X1NJR05BTF9PRkZTRVQoX19yaW5nLCB0bykJCQkgICAg IFwKIAkoaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KGRldl9wcml2LT5zZW1hcGhvcmVfb2JqKSAr IFwKLQkoKF9fcmluZyktPmlkICogSTkxNV9OVU1fUklOR1MgKiBpOTE1X3NlbWFwaG9yZV9zZXFu b19zaXplKSArCVwKKwkoKF9fcmluZyktPmlkICogSTkxNV9OVU1fRU5HSU5FUyAqIGk5MTVfc2Vt YXBob3JlX3NlcW5vX3NpemUpICsJXAogCShpOTE1X3NlbWFwaG9yZV9zZXFub19zaXplICogKHRv KSkpCiAKICNkZWZpbmUgR0VOOF9XQUlUX09GRlNFVChfX3JpbmcsIGZyb20pCQkJICAgICBcCiAJ KGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChkZXZfcHJpdi0+c2VtYXBob3JlX29iaikgKyBcCi0J KChmcm9tKSAqIEk5MTVfTlVNX1JJTkdTICogaTkxNV9zZW1hcGhvcmVfc2Vxbm9fc2l6ZSkgKyBc CisJKChmcm9tKSAqIEk5MTVfTlVNX0VOR0lORVMgKiBpOTE1X3NlbWFwaG9yZV9zZXFub19zaXpl KSArIFwKIAkoaTkxNV9zZW1hcGhvcmVfc2Vxbm9fc2l6ZSAqIChfX3JpbmcpLT5pZCkpCiAKICNk ZWZpbmUgR0VOOF9SSU5HX1NFTUFQSE9SRV9JTklUKGUpIGRvIHsgXApAQCAtMTUzLDcgKzE1Myw3 IEBAIHN0cnVjdCAgaW50ZWxfZW5naW5lX2NzIHsKIAkJVkNTMiwJLyogS2VlcCBpbnN0YW5jZXMg b2YgdGhlIHNhbWUgdHlwZSBlbmdpbmUgdG9nZXRoZXIuICovCiAJCVZFQ1MKIAl9IGlkOwotI2Rl ZmluZSBJOTE1X05VTV9SSU5HUyA1CisjZGVmaW5lIEk5MTVfTlVNX0VOR0lORVMgNQogI2RlZmlu ZSBfVkNTKG4pIChWQ1MgKyAobikpCiAJdW5zaWduZWQgaW50IGV4ZWNfaWQ7CiAJdW5zaWduZWQg aW50IGd1Y19pZDsKQEAgLTI0NCwxNiArMjQ0LDE2IEBAIHN0cnVjdCAgaW50ZWxfZW5naW5lX2Nz IHsKIAkgKiAgaWUuIHRyYW5zcG9zZSBvZiBmKHgsIHkpCiAJICovCiAJc3RydWN0IHsKLQkJdTMy CXN5bmNfc2Vxbm9bSTkxNV9OVU1fUklOR1MtMV07CisJCXUzMglzeW5jX3NlcW5vW0k5MTVfTlVN X0VOR0lORVMtMV07CiAKIAkJdW5pb24gewogCQkJc3RydWN0IHsKIAkJCQkvKiBvdXIgbWJveCB3 cml0dGVuIGJ5IG90aGVycyAqLwotCQkJCXUzMgkJd2FpdFtJOTE1X05VTV9SSU5HU107CisJCQkJ dTMyCQl3YWl0W0k5MTVfTlVNX0VOR0lORVNdOwogCQkJCS8qIG1ib3hlcyB0aGlzIHJpbmcgc2ln bmFscyB0byAqLwotCQkJCWk5MTVfcmVnX3QJc2lnbmFsW0k5MTVfTlVNX1JJTkdTXTsKKwkJCQlp OTE1X3JlZ190CXNpZ25hbFtJOTE1X05VTV9FTkdJTkVTXTsKIAkJCX0gbWJveDsKLQkJCXU2NAkJ c2lnbmFsX2dndHRbSTkxNV9OVU1fUklOR1NdOworCQkJdTY0CQlzaWduYWxfZ2d0dFtJOTE1X05V TV9FTkdJTkVTXTsKIAkJfTsKIAogCQkvKiBBS0Egd2FpdCgpICovCkBAIC0zNjEsNyArMzYxLDcg QEAgaW50ZWxfcmluZ19pbml0aWFsaXplZChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiB9CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQKLWludGVsX3JpbmdfZmxhZyhzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpCitpbnRlbF9lbmdpbmVfZmxhZyhzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICplbmdpbmUpCiB7CiAJcmV0dXJuIDEgPDwgZW5naW5lLT5pZDsKIH0KQEAgLTM4Miw3 ICszODIsNyBAQCBpbnRlbF9yaW5nX3N5bmNfaW5kZXgoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lLAogCiAJaWR4ID0gKG90aGVyIC0gZW5naW5lKSAtIDE7CiAJaWYgKGlkeCA8IDApCi0J CWlkeCArPSBJOTE1X05VTV9SSU5HUzsKKwkJaWR4ICs9IEk5MTVfTlVNX0VOR0lORVM7CiAKIAly ZXR1cm4gaWR4OwogfQpAQCAtNDY3LDcgKzQ2Nyw3IEBAIHZvaWQgaW50ZWxfcmluZ191cGRhdGVf c3BhY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwogaW50IGludGVsX3Jpbmdf c3BhY2Uoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwogYm9vbCBpbnRlbF9yaW5n X3N0b3BwZWQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIAotaW50IF9fbXVzdF9j aGVjayBpbnRlbF9yaW5nX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKK2lu dCBfX211c3RfY2hlY2sgaW50ZWxfZW5naW5lX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKTsKIHZvaWQgaW50ZWxfcmluZ19pbml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKmVuZ2luZSwgdTMyIHNlcW5vKTsKIGludCBpbnRlbF9yaW5nX2ZsdXNoX2FsbF9jYWNoZXMo c3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwogaW50IGludGVsX3JpbmdfaW52YWxp ZGF0ZV9hbGxfY2FjaGVzKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKaW5kZXggZDMxNDQ3ZjZmYTMyLi4wMmFkZDAyZTBjZTQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jCkBAIC0xNTczLDE0ICsxNTczLDE0IEBA IHN0YXRpYyBpbnQgZ2VuOF9kb19yZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZTsKIAlpbnQgaTsKIAotCWZvcl9lYWNoX3JpbmcoZW5n aW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBkZXZfcHJpdiwgaSkK IAkJaWYgKGdlbjhfcmVxdWVzdF9lbmdpbmVfcmVzZXQoZW5naW5lKSkKIAkJCWdvdG8gbm90X3Jl YWR5OwogCiAJcmV0dXJuIGdlbjZfZG9fcmVzZXQoZGV2KTsKIAogbm90X3JlYWR5OgotCWZvcl9l YWNoX3JpbmcoZW5naW5lLCBkZXZfcHJpdiwgaSkKKwlmb3JfZWFjaF9lbmdpbmUoZW5naW5lLCBk ZXZfcHJpdiwgaSkKIAkJZ2VuOF91bnJlcXVlc3RfZW5naW5lX3Jlc2V0KGVuZ2luZSk7CiAKIAly ZXR1cm4gLUVJTzsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK