From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: [PATCH 2/6] drm/i915: use dev_priv for the FBC functions Date: Tue, 7 Jul 2015 15:26:04 -0300 Message-ID: <1436293568-1674-3-git-send-email-przanoni@gmail.com> References: <1436293568-1674-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f178.google.com (mail-qk0-f178.google.com [209.85.220.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id AE4D06EA35 for ; Tue, 7 Jul 2015 11:26:55 -0700 (PDT) Received: by qkei195 with SMTP id i195so146194021qke.3 for ; Tue, 07 Jul 2015 11:26:54 -0700 (PDT) In-Reply-To: <1436293568-1674-1-git-send-email-przanoni@gmail.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 Cc: Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org RnJvbTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpCZWNhdXNlIHRo ZSBjb29sIGtpZHMgdXNlIGRldl9wcml2IGFuZCBGQkMgd2FudHMgdG8gYmUgY29vbCB0b28uCgpX ZSd2ZSBiZWVuIGhpc3RvcmljYWxseSB1c2luZyBzdHJ1Y3QgZHJtX2RldmljZSBvbiB0aGUgRkJD IGZ1bmN0aW9uCmFyZ3VtZW50cywgYnV0IHdlIG9ubHkgcmVhbGx5IG5lZWQgaXQgZm9yIGludGVs X3ZncHVfYWN0aXZlKCk6IHdlIGNhbgp1c2UgZGV2X3ByaXYgZXZlcnl3aGVyZSBlbHNlLiBTbyBs ZXQncyBmdWxseSBzd2l0Y2ggdG8gZGV2X3ByaXYgc2luY2UKSSdtIGdldHRpbmcgdGlyZWQgb2Yg YWRkaW5nICJzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldiIKZXZlcnl3aGVy ZS4KCklmIEkgZ2V0IGEgTkFDSyBoZXJlIEknbGwgcHJvcG9zZSB0aGUgb3Bwb3NpdGU6IGNvbnZl cnQgYWxsIHRoZQpmdW5jdGlvbnMgdGhhdCBjdXJyZW50bHkgdGFrZSBkZXZfcHJpdiB0byB0YWtl IGRldi4KClNpZ25lZC1vZmYtYnk6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICB8ICAgMiArLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgIHwgICAyICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfc3VzcGVuZC5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHwgIDE0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8 ICAgOCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgICAgIHwgMTU0ICsrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jICAgICAgfCAgIDQgKy0KIDggZmlsZXMgY2hhbmdlZCwgODAgaW5zZXJ0aW9ucygrKSwg MTEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggOThm ZDNjOS4uMDUzYWRiYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTE2MzUs NyArMTYzNSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9mYmNfc3RhdHVzKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQogCWludGVsX3J1bnRpbWVfcG1fZ2V0KGRldl9wcml2KTsKIAltdXRl eF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogCi0JaWYgKGludGVsX2ZiY19lbmFibGVkKGRl dikpCisJaWYgKGludGVsX2ZiY19lbmFibGVkKGRldl9wcml2KSkKIAkJc2VxX3B1dHMobSwgIkZC QyBlbmFibGVkXG4iKTsKIAllbHNlCiAJCXNlcV9wcmludGYobSwgIkZCQyBkaXNhYmxlZDogJXNc biIsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwppbmRleCAwNjZjMzRjLi41ZTYzMDc2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMKQEAgLTExMjMsNyArMTEyMyw3IEBAIGludCBpOTE1X2RyaXZlcl91 bmxvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpOTE1X2dlbV9jbGVhbnVwX3JpbmdidWZm ZXIoZGV2KTsKIAlpOTE1X2dlbV9jb250ZXh0X2ZpbmkoZGV2KTsKIAltdXRleF91bmxvY2soJmRl di0+c3RydWN0X211dGV4KTsKLQlpbnRlbF9mYmNfY2xlYW51cF9jZmIoZGV2KTsKKwlpbnRlbF9m YmNfY2xlYW51cF9jZmIoZGV2X3ByaXYpOwogCWk5MTVfZ2VtX2NsZWFudXBfc3RvbGVuKGRldik7 CiAKIAlpbnRlbF9jc3JfdWNvZGVfZmluaShkZXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5k ZXggNzlkN2VjZS4uN2Y3NWZmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC05MzcsOSAr OTM3LDkgQEAgc3RydWN0IGk5MTVfZmJjIHsKIAkJRkJDX1JPVEFUSU9OLCAvKiByb3RhdGlvbiBp cyBub3Qgc3VwcG9ydGVkICovCiAJfSBub19mYmNfcmVhc29uOwogCi0JYm9vbCAoKmZiY19lbmFi bGVkKShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKKwlib29sICgqZmJjX2VuYWJsZWQpKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAJdm9pZCAoKmVuYWJsZV9mYmMpKHN0cnVj dCBkcm1fY3J0YyAqY3J0Yyk7Ci0Jdm9pZCAoKmRpc2FibGVfZmJjKShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KTsKKwl2b2lkICgqZGlzYWJsZV9mYmMpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiB9OwogCiAvKioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3VzcGVuZC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMKaW5kZXgg Y2Y2N2Y4Mi4uMWNjYWM2MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9z dXNwZW5kLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMKQEAgLTky LDcgKzkyLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9yZXN0b3JlX2Rpc3BsYXkoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAl9CiAKIAkvKiBvbmx5IHJlc3RvcmUgRkJDIGluZm8gb24gdGhlIHBsYXRm b3JtIHRoYXQgc3VwcG9ydHMgRkJDKi8KLQlpbnRlbF9mYmNfZGlzYWJsZShkZXYpOworCWludGVs X2ZiY19kaXNhYmxlKGRldl9wcml2KTsKIAogCS8qIHJlc3RvcmUgRkJDIGludGVydmFsICovCiAJ aWYgKEhBU19GQkMoZGV2KSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA8PSA0ICYmICFJU19HNFgo ZGV2KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBhZWZjZjAyLi40YmNi ZmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0zMTM1LDcgKzMxMzUs NyBAQCBpbnRlbF9waXBlX3NldF9iYXNlX2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAKIAlpZiAoZGV2X3ByaXYtPmZiYy5kaXNhYmxlX2Zi YykKLQkJZGV2X3ByaXYtPmZiYy5kaXNhYmxlX2ZiYyhkZXYpOworCQlkZXZfcHJpdi0+ZmJjLmRp c2FibGVfZmJjKGRldl9wcml2KTsKIAogCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV9wcmltYXJ5 X3BsYW5lKGNydGMsIGZiLCB4LCB5KTsKIApAQCAtNDczNCw2ICs0NzM0LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB7CiAJ c3RydWN0IGludGVsX2NydGNfYXRvbWljX2NvbW1pdCAqYXRvbWljID0gJmNydGMtPmF0b21pYzsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZTsKIAogCWlmIChhdG9taWMtPndhaXRfdmJsYW5rKQpAQCAtNDc0OCw3ICs0NzQ5 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2Ny dGMgKmNydGMpCiAJCWludGVsX3VwZGF0ZV93YXRlcm1hcmtzKCZjcnRjLT5iYXNlKTsKIAogCWlm IChhdG9taWMtPnVwZGF0ZV9mYmMpCi0JCWludGVsX2ZiY191cGRhdGUoZGV2KTsKKwkJaW50ZWxf ZmJjX3VwZGF0ZShkZXZfcHJpdik7CiAKIAlpZiAoYXRvbWljLT5wb3N0X2VuYWJsZV9wcmltYXJ5 KQogCQlpbnRlbF9wb3N0X2VuYWJsZV9wcmltYXJ5KCZjcnRjLT5iYXNlKTsKQEAgLTEwNjg4LDEz ICsxMDY4OSwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF91bnBpbl93b3JrX2ZuKHN0cnVjdCB3b3Jr X3N0cnVjdCAqX193b3JrKQogCQljb250YWluZXJfb2YoX193b3JrLCBzdHJ1Y3QgaW50ZWxfdW5w aW5fd29yaywgd29yayk7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRj KHdvcmstPmNydGMpOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnkgPSBjcnRjLT5iYXNlLnByaW1hcnk7CiAKIAltdXRl eF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAJaW50ZWxfdW5waW5fZmJfb2JqKHdvcmstPm9s ZF9mYiwgcHJpbWFyeS0+c3RhdGUpOwogCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZ3b3Jr LT5wZW5kaW5nX2ZsaXBfb2JqLT5iYXNlKTsKIAotCWludGVsX2ZiY191cGRhdGUoZGV2KTsKKwlp bnRlbF9mYmNfdXBkYXRlKGRldl9wcml2KTsKIAogCWlmICh3b3JrLT5mbGlwX3F1ZXVlZF9yZXEp CiAJCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZ3b3JrLT5mbGlwX3F1ZXVlZF9yZXEsIE5VTEwp OwpAQCAtMTE0NjksNyArMTE0NzEsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlw KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCSAgdG9faW50ZWxfcGxhbmUocHJpbWFyeSktPmZy b250YnVmZmVyX2JpdCk7CiAJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CiAKLQlp bnRlbF9mYmNfZGlzYWJsZShkZXYpOworCWludGVsX2ZiY19kaXNhYmxlKGRldl9wcml2KTsKIAlp bnRlbF9mcm9udGJ1ZmZlcl9mbGlwX3ByZXBhcmUoZGV2LAogCQkJCSAgICAgICB0b19pbnRlbF9w bGFuZShwcmltYXJ5KS0+ZnJvbnRidWZmZXJfYml0KTsKIApAQCAtMTUwNDUsNyArMTUwNDcsNyBA QCB2b2lkIGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWludGVs X3NldHVwX291dHB1dHMoZGV2KTsKIAogCS8qIEp1c3QgaW4gY2FzZSB0aGUgQklPUyBpcyBkb2lu ZyBzb21ldGhpbmcgcXVlc3Rpb25hYmxlLiAqLwotCWludGVsX2ZiY19kaXNhYmxlKGRldik7CisJ aW50ZWxfZmJjX2Rpc2FibGUoZGV2X3ByaXYpOwogCiAJZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2 KTsKIAlpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldiwgZmFsc2UpOwpAQCAtMTU1OTks NyArMTU2MDEsNyBAQCB2b2lkIGludGVsX21vZGVzZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQogCiAJaW50ZWxfdW5yZWdpc3Rlcl9kc21faGFuZGxlcigpOwogCi0JaW50ZWxfZmJj X2Rpc2FibGUoZGV2KTsKKwlpbnRlbF9mYmNfZGlzYWJsZShkZXZfcHJpdik7CiAKIAkvKiBmbHVz aCBhbnkgZGVsYXllZCB0YXNrcyBvciBwZW5kaW5nIHdvcmsgKi8KIAlmbHVzaF9zY2hlZHVsZWRf d29yaygpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA2M2Q3ZDMyLi4wODJkMGU3IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTI0OCwxMCArMTI0OCwxMCBAQCBzdGF0aWMg aW5saW5lIHZvaWQgaW50ZWxfZmJkZXZfcmVzdG9yZV9tb2RlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAjZW5kaWYKIAogLyogaW50ZWxfZmJjLmMgKi8KLWJvb2wgaW50ZWxfZmJjX2VuYWJsZWQo c3RydWN0IGRybV9kZXZpY2UgKmRldik7Ci12b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7Citib29sIGludGVsX2ZiY19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZmJjX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KTsKLXZvaWQgaW50ZWxfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7Cit2b2lkIGludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7CiB2b2lkIGludGVsX2ZiY19kaXNhYmxlX2NydGMoc3RydWN0IGludGVs X2NydGMgKmNydGMpOwogdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzLApA QCAtMTI1OSw3ICsxMjU5LDcgQEAgdm9pZCBpbnRlbF9mYmNfaW52YWxpZGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB2b2lkIGludGVsX2ZiY19mbHVzaChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCSAgICAgdW5zaWduZWQgaW50IGZyb250YnVmZmVy X2JpdHMpOwogY29uc3QgY2hhciAqaW50ZWxfbm9fZmJjX3JlYXNvbl9zdHIoZW51bSBub19mYmNf cmVhc29uIHJlYXNvbik7Ci12b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKK3ZvaWQgaW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdik7CiAKIC8qIGludGVsX2hkbWkuYyAqLwogdm9pZCBpbnRlbF9oZG1p X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGhkbWlfcmVnLCBlbnVtIHBvcnQgcG9y dCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCmluZGV4IDA3ZWE1YjMuLjQ0OWRiZTQgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2ZiYy5jCkBAIC00MSw5ICs0MSw4IEBACiAjaW5jbHVkZSAiaW50ZWxf ZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKIAotc3RhdGljIHZvaWQgaTh4eF9mYmNfZGlz YWJsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIHZvaWQgaTh4eF9mYmNfZGlzYWJs ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAl1MzIgZmJjX2N0bDsKIAog CWRldl9wcml2LT5mYmMuZW5hYmxlZCA9IGZhbHNlOwpAQCAtNjcsOCArNjYsNyBAQCBzdGF0aWMg dm9pZCBpOHh4X2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIHN0YXRpYyB2 b2lkIGk4eHhfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPSBjcnRjLT5wcmltYXJ5LT5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq ID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Yyk7CkBAIC04NCw3ICs4Miw3IEBAIHN0YXRpYyB2b2lkIGk4eHhfZmJj X2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJCWNmYl9waXRjaCA9IGZiLT5waXRjaGVz WzBdOwogCiAJLyogRkJDX0NUTCB3YW50cyAzMkIgb3IgNjRCIHVuaXRzICovCi0JaWYgKElTX0dF TjIoZGV2KSkKKwlpZiAoSVNfR0VOMihkZXZfcHJpdikpCiAJCWNmYl9waXRjaCA9IChjZmJfcGl0 Y2ggLyAzMikgLSAxOwogCWVsc2UKIAkJY2ZiX3BpdGNoID0gKGNmYl9waXRjaCAvIDY0KSAtIDE7 CkBAIC05Myw3ICs5MSw3IEBAIHN0YXRpYyB2b2lkIGk4eHhfZmJjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiAJZm9yIChpID0gMDsgaSA8IChGQkNfTExfU0laRSAvIDMyKSArIDE7IGkr KykKIAkJSTkxNV9XUklURShGQkNfVEFHICsgKGkgKiA0KSwgMCk7CiAKLQlpZiAoSVNfR0VONChk ZXYpKSB7CisJaWYgKElTX0dFTjQoZGV2X3ByaXYpKSB7CiAJCXUzMiBmYmNfY3RsMjsKIAogCQkv KiBTZXQgaXQgdXAuLi4gKi8KQEAgLTEwNyw3ICsxMDUsNyBAQCBzdGF0aWMgdm9pZCBpOHh4X2Zi Y19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCWZiY19jdGwgPSBJOTE1X1JFQUQoRkJD X0NPTlRST0wpOwogCWZiY19jdGwgJj0gMHgzZmZmIDw8IEZCQ19DVExfSU5URVJWQUxfU0hJRlQ7 CiAJZmJjX2N0bCB8PSBGQkNfQ1RMX0VOIHwgRkJDX0NUTF9QRVJJT0RJQzsKLQlpZiAoSVNfSTk0 NUdNKGRldikpCisJaWYgKElTX0k5NDVHTShkZXZfcHJpdikpCiAJCWZiY19jdGwgfD0gRkJDX0NU TF9DM19JRExFOyAvKiA5NDUgbmVlZHMgc3BlY2lhbCBTUiBoYW5kbGluZyAqLwogCWZiY19jdGwg fD0gKGNmYl9waXRjaCAmIDB4ZmYpIDw8IEZCQ19DVExfU1RSSURFX1NISUZUOwogCWZiY19jdGwg fD0gb2JqLT5mZW5jZV9yZWc7CkBAIC0xMTcsMTcgKzExNSwxNCBAQCBzdGF0aWMgdm9pZCBpOHh4 X2ZiY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQkgICAgICBjZmJfcGl0Y2gsIGNy dGMtPnksIHBsYW5lX25hbWUoaW50ZWxfY3J0Yy0+cGxhbmUpKTsKIH0KIAotc3RhdGljIGJvb2wg aTh4eF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIGJvb2wgaTh4 eF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQogCXJl dHVybiBJOTE1X1JFQUQoRkJDX0NPTlRST0wpICYgRkJDX0NUTF9FTjsKIH0KIAogc3RhdGljIHZv aWQgZzR4X2ZiY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewotCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBjcnRjLT5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi ID0gY3J0Yy0+cHJpbWFyeS0+ZmI7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9 IGludGVsX2ZiX29iaihmYik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19p bnRlbF9jcnRjKGNydGMpOwpAQCAtMTUwLDkgKzE0NSw4IEBAIHN0YXRpYyB2b2lkIGc0eF9mYmNf ZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZi YyBvbiBwbGFuZSAlY1xuIiwgcGxhbmVfbmFtZShpbnRlbF9jcnRjLT5wbGFuZSkpOwogfQogCi1z dGF0aWMgdm9pZCBnNHhfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRp YyB2b2lkIGc0eF9mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKIAl1MzIgZHBmY19jdGw7CiAKIAlkZXZfcHJpdi0+ZmJjLmVuYWJsZWQgPSBmYWxzZTsKQEAg LTE2NywxMCArMTYxLDggQEAgc3RhdGljIHZvaWQgZzR4X2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCiAJfQogfQogCi1zdGF0aWMgYm9vbCBnNHhfZmJjX2VuYWJsZWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyBib29sIGc0eF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQogCXJldHVybiBJOTE1X1JFQUQoRFBGQ19DT05U Uk9MKSAmIERQRkNfQ1RMX0VOOwogfQogCkBAIC0xODIsOCArMTc0LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZmJjX251a2Uoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiBzdGF0 aWMgdm9pZCBpbGtfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPSBjcnRjLT5wcmltYXJ5LT5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9 IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC0yMDksNyArMjAwLDcgQEAgc3RhdGljIHZvaWQgaWxr X2ZiY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlicmVhazsKIAl9CiAJZHBmY19j dGwgfD0gRFBGQ19DVExfRkVOQ0VfRU47Ci0JaWYgKElTX0dFTjUoZGV2KSkKKwlpZiAoSVNfR0VO NShkZXZfcHJpdikpCiAJCWRwZmNfY3RsIHw9IG9iai0+ZmVuY2VfcmVnOwogCiAJSTkxNV9XUklU RShJTEtfRFBGQ19GRU5DRV9ZT0ZGLCBjcnRjLT55KTsKQEAgLTIxNyw3ICsyMDgsNyBAQCBzdGF0 aWMgdm9pZCBpbGtfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJLyogZW5hYmxl IGl0Li4uICovCiAJSTkxNV9XUklURShJTEtfRFBGQ19DT05UUk9MLCBkcGZjX2N0bCB8IERQRkNf Q1RMX0VOKTsKIAotCWlmIChJU19HRU42KGRldikpIHsKKwlpZiAoSVNfR0VONihkZXZfcHJpdikp IHsKIAkJSTkxNV9XUklURShTTkJfRFBGQ19DVExfU0EsCiAJCQkgICBTTkJfQ1BVX0ZFTkNFX0VO QUJMRSB8IG9iai0+ZmVuY2VfcmVnKTsKIAkJSTkxNV9XUklURShEUEZDX0NQVV9GRU5DRV9PRkZT RVQsIGNydGMtPnkpOwpAQCAtMjI4LDkgKzIxOSw4IEBAIHN0YXRpYyB2b2lkIGlsa19mYmNfZW5h YmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlEUk1fREVCVUdfS01TKCJlbmFibGVkIGZiYyBv biBwbGFuZSAlY1xuIiwgcGxhbmVfbmFtZShpbnRlbF9jcnRjLT5wbGFuZSkpOwogfQogCi1zdGF0 aWMgdm9pZCBpbGtfZmJjX2Rpc2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2 b2lkIGlsa19mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK IAl1MzIgZHBmY19jdGw7CiAKIAlkZXZfcHJpdi0+ZmJjLmVuYWJsZWQgPSBmYWxzZTsKQEAgLTI0 NSwxNyArMjM1LDE0IEBAIHN0YXRpYyB2b2lkIGlsa19mYmNfZGlzYWJsZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCX0KIH0KIAotc3RhdGljIGJvb2wgaWxrX2ZiY19lbmFibGVkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCitzdGF0aWMgYm9vbCBpbGtfZmJjX2VuYWJsZWQoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KIAlyZXR1cm4gSTkxNV9SRUFEKElMS19EUEZDX0NP TlRST0wpICYgRFBGQ19DVExfRU47CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjdfZmJjX2VuYWJsZShz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMt PmRldjsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNydGMtPmRldi0+ZGV2 X3ByaXZhdGU7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBjcnRjLT5wcmltYXJ5LT5m YjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBA IC0yNjUsNyArMjUyLDcgQEAgc3RhdGljIHZvaWQgZ2VuN19mYmNfZW5hYmxlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKIAlkZXZfcHJpdi0+ZmJjLmVuYWJsZWQgPSB0cnVlOwogCiAJZHBmY19jdGwg PSAwOwotCWlmIChJU19JVllCUklER0UoZGV2KSkKKwlpZiAoSVNfSVZZQlJJREdFKGRldl9wcml2 KSkKIAkJZHBmY19jdGwgfD0gSVZCX0RQRkNfQ1RMX1BMQU5FKGludGVsX2NydGMtPnBsYW5lKTsK IAogCWlmIChkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKSA9PSAyKQpA QCAtMjkxLDcgKzI3OCw3IEBAIHN0YXRpYyB2b2lkIGdlbjdfZmJjX2VuYWJsZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiAKIAlJOTE1X1dSSVRFKElMS19EUEZDX0NPTlRST0wsIGRwZmNfY3RsIHwg RFBGQ19DVExfRU4pOwogCi0JaWYgKElTX0lWWUJSSURHRShkZXYpKSB7CisJaWYgKElTX0lWWUJS SURHRShkZXZfcHJpdikpIHsKIAkJLyogV2FGYmNBc3luY2hGbGlwRGlzYWJsZUZiY1F1ZXVlOml2 YiAqLwogCQlJOTE1X1dSSVRFKElMS19ESVNQTEFZX0NISUNLRU4xLAogCQkJICAgSTkxNV9SRUFE KElMS19ESVNQTEFZX0NISUNLRU4xKSB8CkBAIC0zMTQsMTYgKzMwMSwxNCBAQCBzdGF0aWMgdm9p ZCBnZW43X2ZiY19lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAvKioKICAqIGludGVs X2ZiY19lbmFibGVkIC0gSXMgRkJDIGVuYWJsZWQ/Ci0gKiBAZGV2OiB0aGUgZHJtX2RldmljZQor ICogQGRldl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQogICoKICAqIFRoaXMgZnVuY3Rpb24g aXMgdXNlZCB0byB2ZXJpZnkgdGhlIGN1cnJlbnQgc3RhdGUgb2YgRkJDLgogICogRklYTUU6IFRo aXMgc2hvdWxkIGJlIHRyYWNrZWQgaW4gdGhlIHBsYW5lIGNvbmZpZyBldmVudHVhbGx5CiAgKiAg ICAgICAgaW5zdGVhZCBvZiBxdWVyaWVkIGF0IHJ1bnRpbWUgZm9yIG1vc3QgY2FsbGVycy4KICAq LwotYm9vbCBpbnRlbF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorYm9vbCBp bnRlbF9mYmNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQog CXJldHVybiBkZXZfcHJpdi0+ZmJjLmVuYWJsZWQ7CiB9CiAKQEAgLTMzMiw4ICszMTcsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9mYmNfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKl9fd29yaykK IAlzdHJ1Y3QgaW50ZWxfZmJjX3dvcmsgKndvcmsgPQogCQljb250YWluZXJfb2YodG9fZGVsYXll ZF93b3JrKF9fd29yayksCiAJCQkgICAgIHN0cnVjdCBpbnRlbF9mYmNfd29yaywgd29yayk7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHdvcmstPmNydGMtPmRldjsKLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHdvcmstPmNydGMtPmRldi0+ZGV2X3ByaXZhdGU7CiAKIAlt dXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogCWlmICh3b3JrID09IGRldl9wcml2LT5m YmMuZmJjX3dvcmspIHsKQEAgLTM4Myw4ICszNjcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9mYmNf Y2FuY2VsX3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZv aWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiB7CiAJc3RydWN0IGlu dGVsX2ZiY193b3JrICp3b3JrOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7 Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5kZXYtPmRldl9wcml2 YXRlOwogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZmJjLmxvY2spKTsK IApAQCAtNDE5LDMzICs0MDIsMjkgQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCiAJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZ3b3JrLT53b3JrLCBt c2Vjc190b19qaWZmaWVzKDUwKSk7CiB9CiAKLXN0YXRpYyB2b2lkIF9faW50ZWxfZmJjX2Rpc2Fi bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3N0YXRpYyB2b2lkIF9faW50ZWxfZmJjX2Rpc2Fi bGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KIAlXQVJOX09OKCFtdXRl eF9pc19sb2NrZWQoJmRldl9wcml2LT5mYmMubG9jaykpOwogCiAJaW50ZWxfZmJjX2NhbmNlbF93 b3JrKGRldl9wcml2KTsKIAotCWRldl9wcml2LT5mYmMuZGlzYWJsZV9mYmMoZGV2KTsKKwlkZXZf cHJpdi0+ZmJjLmRpc2FibGVfZmJjKGRldl9wcml2KTsKIAlkZXZfcHJpdi0+ZmJjLmNydGMgPSBO VUxMOwogfQogCiAvKioKICAqIGludGVsX2ZiY19kaXNhYmxlIC0gZGlzYWJsZSBGQkMKLSAqIEBk ZXY6IHRoZSBkcm1fZGV2aWNlCisgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCiAg KgogICogVGhpcyBmdW5jdGlvbiBkaXNhYmxlcyBGQkMuCiAgKi8KLXZvaWQgaW50ZWxfZmJjX2Rp c2FibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3ZvaWQgaW50ZWxfZmJjX2Rpc2FibGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Ci0KIAlpZiAoIWRldl9wcml2LT5mYmMu ZW5hYmxlX2ZiYykKIAkJcmV0dXJuOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2Nr KTsKLQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CisJX19pbnRlbF9mYmNfZGlzYWJsZShkZXZf cHJpdik7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQogCkBAIC00NTcs MTUgKzQzNiwxNCBAQCB2b2lkIGludGVsX2ZiY19kaXNhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAgKi8KIHZvaWQgaW50ZWxfZmJjX2Rpc2FibGVfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZh dGU7CiAKIAlpZiAoIWRldl9wcml2LT5mYmMuZW5hYmxlX2ZiYykKIAkJcmV0dXJuOwogCiAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKIAlpZiAoZGV2X3ByaXYtPmZiYy5jcnRjID09 IGNydGMpCi0JCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKKwkJX19pbnRlbF9mYmNfZGlzYWJs ZShkZXZfcHJpdik7CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQogCkBA IC01NDcsMTIgKzUyNSwxMSBAQCBzdGF0aWMgc3RydWN0IGRybV9jcnRjICppbnRlbF9mYmNfZmlu ZF9jcnRjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlyZXR1cm4gY3J0YzsK IH0KIAotc3RhdGljIGludCBmaW5kX2NvbXByZXNzaW9uX3RocmVzaG9sZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAorc3RhdGljIGludCBmaW5kX2NvbXByZXNzaW9uX3RocmVzaG9sZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICAgc3RydWN0IGRybV9tbV9ub2Rl ICpub2RlLAogCQkJCSAgICAgIGludCBzaXplLAogCQkJCSAgICAgIGludCBmYl9jcHApCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlp bnQgY29tcHJlc3Npb25fdGhyZXNob2xkID0gMTsKIAlpbnQgcmV0OwogCkBAIC01NzUsNyArNTUy LDcgQEAgYWdhaW46CiAJCXJldHVybiAwOwogCiAJcmV0ID0gaTkxNV9nZW1fc3RvbGVuX2luc2Vy dF9ub2RlKGRldl9wcml2LCBub2RlLCBzaXplID4+PSAxLCA0MDk2KTsKLQlpZiAocmV0ICYmIElO VEVMX0lORk8oZGV2KS0+Z2VuIDw9IDQpIHsKKwlpZiAocmV0ICYmIElOVEVMX0lORk8oZGV2X3By aXYpLT5nZW4gPD0gNCkgewogCQlyZXR1cm4gMDsKIAl9IGVsc2UgaWYgKHJldCkgewogCQljb21w cmVzc2lvbl90aHJlc2hvbGQgPDw9IDE7CkBAIC01ODUsMTMgKzU2MiwxMyBAQCBhZ2FpbjoKIAl9 CiB9CiAKLXN0YXRpYyBpbnQgaW50ZWxfZmJjX2FsbG9jX2NmYihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBpbnQgc2l6ZSwgaW50IGZiX2NwcCkKK3N0YXRpYyBpbnQgaW50ZWxfZmJjX2FsbG9jX2Nm YihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCBzaXplLAorCQkJICAgICAg IGludCBmYl9jcHApCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX21tX25vZGUgKnVuaW5pdGlhbGl6ZWRfdmFyKGNv bXByZXNzZWRfbGxiKTsKIAlpbnQgcmV0OwogCi0JcmV0ID0gZmluZF9jb21wcmVzc2lvbl90aHJl c2hvbGQoZGV2LCAmZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2ZiLAorCXJldCA9IGZpbmRfY29t cHJlc3Npb25fdGhyZXNob2xkKGRldl9wcml2LCAmZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2Zi LAogCQkJCQkgc2l6ZSwgZmJfY3BwKTsKIAlpZiAoIXJldCkKIAkJZ290byBlcnJfbGxiOwpAQCAt NjA0LDcgKzU4MSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZmJjX2FsbG9jX2NmYihzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgc2l6ZSwgaW50IGZiX2NwcCkKIAogCWlmIChJTlRFTF9JTkZPKGRl dl9wcml2KS0+Z2VuID49IDUpCiAJCUk5MTVfV1JJVEUoSUxLX0RQRkNfQ0JfQkFTRSwgZGV2X3By aXYtPmZiYy5jb21wcmVzc2VkX2ZiLnN0YXJ0KTsKLQllbHNlIGlmIChJU19HTTQ1KGRldikpIHsK KwllbHNlIGlmIChJU19HTTQ1KGRldl9wcml2KSkgewogCQlJOTE1X1dSSVRFKERQRkNfQ0JfQkFT RSwgZGV2X3ByaXYtPmZiYy5jb21wcmVzc2VkX2ZiLnN0YXJ0KTsKIAl9IGVsc2UgewogCQljb21w cmVzc2VkX2xsYiA9IGt6YWxsb2Moc2l6ZW9mKCpjb21wcmVzc2VkX2xsYiksIEdGUF9LRVJORUwp OwpAQCAtNjM5LDEwICs2MTYsOCBAQCBlcnJfbGxiOgogCXJldHVybiAtRU5PU1BDOwogfQogCi1z dGF0aWMgdm9pZCBfX2ludGVsX2ZiY19jbGVhbnVwX2NmYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQorc3RhdGljIHZvaWQgX19pbnRlbF9mYmNfY2xlYW51cF9jZmIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Ci0KIAlpZiAoZGV2X3ByaXYtPmZiYy51bmNvbXByZXNzZWRfc2l6 ZSA9PSAwKQogCQlyZXR1cm47CiAKQEAgLTY1NywzNCArNjMyLDMxIEBAIHN0YXRpYyB2b2lkIF9f aW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZGV2X3ByaXYt PmZiYy51bmNvbXByZXNzZWRfc2l6ZSA9IDA7CiB9CiAKLXZvaWQgaW50ZWxfZmJjX2NsZWFudXBf Y2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit2b2lkIGludGVsX2ZiY19jbGVhbnVwX2NmYihz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQogCWlmICghZGV2X3ByaXYtPmZi Yy5lbmFibGVfZmJjKQogCQlyZXR1cm47CiAKIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZmJjLmxv Y2spOwotCV9faW50ZWxfZmJjX2NsZWFudXBfY2ZiKGRldik7CisJX19pbnRlbF9mYmNfY2xlYW51 cF9jZmIoZGV2X3ByaXYpOwogCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKIH0K IAotc3RhdGljIGludCBpbnRlbF9mYmNfc2V0dXBfY2ZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBzaXplLCBpbnQgZmJfY3BwKQorc3RhdGljIGludCBpbnRlbF9mYmNfc2V0dXBfY2ZiKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHNpemUsCisJCQkgICAgICAgaW50 IGZiX2NwcCkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRl dl9wcml2YXRlOwotCiAJaWYgKHNpemUgPD0gZGV2X3ByaXYtPmZiYy51bmNvbXByZXNzZWRfc2l6 ZSkKIAkJcmV0dXJuIDA7CiAKIAkvKiBSZWxlYXNlIGFueSBjdXJyZW50IGJsb2NrICovCi0JX19p bnRlbF9mYmNfY2xlYW51cF9jZmIoZGV2KTsKKwlfX2ludGVsX2ZiY19jbGVhbnVwX2NmYihkZXZf cHJpdik7CiAKLQlyZXR1cm4gaW50ZWxfZmJjX2FsbG9jX2NmYihkZXYsIHNpemUsIGZiX2NwcCk7 CisJcmV0dXJuIGludGVsX2ZiY19hbGxvY19jZmIoZGV2X3ByaXYsIHNpemUsIGZiX2NwcCk7CiB9 CiAKIC8qKgogICogX19pbnRlbF9mYmNfdXBkYXRlIC0gZW5hYmxlL2Rpc2FibGUgRkJDIGFzIG5l ZWRlZCwgdW5sb2NrZWQKLSAqIEBkZXY6IHRoZSBkcm1fZGV2aWNlCisgKiBAZGV2X3ByaXY6IGk5 MTUgZGV2aWNlIGluc3RhbmNlCiAgKgogICogU2V0IHVwIHRoZSBmcmFtZWJ1ZmZlciBjb21wcmVz c2lvbiBoYXJkd2FyZSBhdCBtb2RlIHNldCB0aW1lLiAgV2UKICAqIGVuYWJsZSBpdCBpZiBwb3Nz aWJsZToKQEAgLTcwMSw5ICs2NzMsOCBAQCBzdGF0aWMgaW50IGludGVsX2ZiY19zZXR1cF9jZmIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHNpemUsIGludCBmYl9jcHApCiAgKgogICogV2Ug bmVlZCB0byBlbmFibGUvZGlzYWJsZSBGQkMgb24gYSBnbG9iYWwgYmFzaXMuCiAgKi8KLXN0YXRp YyB2b2lkIF9faW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGlj IHZvaWQgX19pbnRlbF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwogCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IE5VTEw7CiAJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGM7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7CkBAIC03MTQsNyArNjg1 LDcgQEAgc3RhdGljIHZvaWQgX19pbnRlbF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZmJjLmxvY2spKTsKIAog CS8qIGRpc2FibGUgZnJhbWVidWZmZXIgY29tcHJlc3Npb24gaW4gdkdQVSAqLwotCWlmIChpbnRl bF92Z3B1X2FjdGl2ZShkZXYpKQorCWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdi0+ZGV2 KSkKIAkJaTkxNS5lbmFibGVfZmJjID0gMDsKIAogCWlmIChpOTE1LmVuYWJsZV9mYmMgPCAwKSB7 CkBAIC03NTEsMTAgKzcyMiwxMCBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2ZiY191cGRhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAkJZ290byBvdXRfZGlzYWJsZTsKIAl9CiAKLQlpZiAoSU5U RUxfSU5GTyhkZXYpLT5nZW4gPj0gOCB8fCBJU19IQVNXRUxMKGRldikpIHsKKwlpZiAoSU5URUxf SU5GTyhkZXZfcHJpdiktPmdlbiA+PSA4IHx8IElTX0hBU1dFTEwoZGV2X3ByaXYpKSB7CiAJCW1h eF93aWR0aCA9IDQwOTY7CiAJCW1heF9oZWlnaHQgPSA0MDk2OwotCX0gZWxzZSBpZiAoSVNfRzRY KGRldikgfHwgSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSkgeworCX0gZWxzZSBpZiAoSVNfRzRY KGRldl9wcml2KSB8fCBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuID49IDUpIHsKIAkJbWF4X3dp ZHRoID0gNDA5NjsKIAkJbWF4X2hlaWdodCA9IDIwNDg7CiAJfSBlbHNlIHsKQEAgLTc2Niw3ICs3 MzcsNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAkJc2V0X25vX2ZiY19yZWFzb24oZGV2X3ByaXYsIEZCQ19NT0RFX1RPT19MQVJHRSk7 CiAJCWdvdG8gb3V0X2Rpc2FibGU7CiAJfQotCWlmICgoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0 IHx8IEhBU19EREkoZGV2KSkgJiYKKwlpZiAoKElOVEVMX0lORk8oZGV2X3ByaXYpLT5nZW4gPCA0 IHx8IEhBU19EREkoZGV2X3ByaXYpKSAmJgogCSAgICBpbnRlbF9jcnRjLT5wbGFuZSAhPSBQTEFO RV9BKSB7CiAJCXNldF9ub19mYmNfcmVhc29uKGRldl9wcml2LCBGQkNfQkFEX1BMQU5FKTsKIAkJ Z290byBvdXRfZGlzYWJsZTsKQEAgLTc4MCw3ICs3NTEsNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVs X2ZiY191cGRhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJc2V0X25vX2ZiY19yZWFzb24o ZGV2X3ByaXYsIEZCQ19OT1RfVElMRUQpOwogCQlnb3RvIG91dF9kaXNhYmxlOwogCX0KLQlpZiAo SU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiAhSVNfRzRYKGRldikgJiYKKwlpZiAoSU5URUxf SU5GTyhkZXZfcHJpdiktPmdlbiA8PSA0ICYmICFJU19HNFgoZGV2X3ByaXYpICYmCiAJICAgIGNy dGMtPnByaW1hcnktPnN0YXRlLT5yb3RhdGlvbiAhPSBCSVQoRFJNX1JPVEFURV8wKSkgewogCQlz ZXRfbm9fZmJjX3JlYXNvbihkZXZfcHJpdiwgRkJDX1JPVEFUSU9OKTsKIAkJZ290byBvdXRfZGlz YWJsZTsKQEAgLTc5MCw3ICs3NjEsNyBAQCBzdGF0aWMgdm9pZCBfX2ludGVsX2ZiY191cGRhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoaW5fZGJnX21hc3RlcigpKQogCQlnb3RvIG91 dF9kaXNhYmxlOwogCi0JaWYgKGludGVsX2ZiY19zZXR1cF9jZmIoZGV2LCBvYmotPmJhc2Uuc2l6 ZSwKKwlpZiAoaW50ZWxfZmJjX3NldHVwX2NmYihkZXZfcHJpdiwgb2JqLT5iYXNlLnNpemUsCiAJ CQkJZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCkpKSB7CiAJCXNldF9u b19mYmNfcmVhc29uKGRldl9wcml2LCBGQkNfU1RPTEVOX1RPT19TTUFMTCk7CiAJCWdvdG8gb3V0 X2Rpc2FibGU7CkBAIC04MDYsNyArNzc3LDcgQEAgc3RhdGljIHZvaWQgX19pbnRlbF9mYmNfdXBk YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICAgIGRldl9wcml2LT5mYmMueSA9PSBjcnRj LT55KQogCQlyZXR1cm47CiAKLQlpZiAoaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkgeworCWlmIChp bnRlbF9mYmNfZW5hYmxlZChkZXZfcHJpdikpIHsKIAkJLyogV2UgdXBkYXRlIEZCQyBhbG9uZyB0 d28gcGF0aHMsIGFmdGVyIGNoYW5naW5nIGZiL2NydGMKIAkJICogY29uZmlndXJhdGlvbiAobW9k ZXN3aXRjaGluZykgYW5kIGFmdGVyIHBhZ2UtZmxpcHBpbmcKIAkJICogZmluaXNoZXMuIEZvciB0 aGUgbGF0dGVyLCB3ZSBrbm93IHRoYXQgbm90IG9ubHkgZGlkCkBAIC04MzEsNyArODAyLDcgQEAg c3RhdGljIHZvaWQgX19pbnRlbF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ CSAqIHNvbWUgcG9pbnQuIEFuZCB3ZSB3YWl0IGJlZm9yZSBlbmFibGluZyBGQkMgYW55d2F5Lgog CQkgKi8KIAkJRFJNX0RFQlVHX0tNUygiZGlzYWJsaW5nIGFjdGl2ZSBGQkMgZm9yIHVwZGF0ZVxu Iik7Ci0JCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2KTsKKwkJX19pbnRlbF9mYmNfZGlzYWJsZShk ZXZfcHJpdik7CiAJfQogCiAJaW50ZWxfZmJjX2VuYWJsZShjcnRjKTsKQEAgLTg0MCwyOCArODEx LDI2IEBAIHN0YXRpYyB2b2lkIF9faW50ZWxfZmJjX3VwZGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCiBvdXRfZGlzYWJsZToKIAkvKiBNdWx0aXBsZSBkaXNhYmxlcyBzaG91bGQgYmUgaGFy bWxlc3MgKi8KLQlpZiAoaW50ZWxfZmJjX2VuYWJsZWQoZGV2KSkgeworCWlmIChpbnRlbF9mYmNf ZW5hYmxlZChkZXZfcHJpdikpIHsKIAkJRFJNX0RFQlVHX0tNUygidW5zdXBwb3J0ZWQgY29uZmln LCBkaXNhYmxpbmcgRkJDXG4iKTsKLQkJX19pbnRlbF9mYmNfZGlzYWJsZShkZXYpOworCQlfX2lu dGVsX2ZiY19kaXNhYmxlKGRldl9wcml2KTsKIAl9Ci0JX19pbnRlbF9mYmNfY2xlYW51cF9jZmIo ZGV2KTsKKwlfX2ludGVsX2ZiY19jbGVhbnVwX2NmYihkZXZfcHJpdik7CiB9CiAKIC8qCiAgKiBp bnRlbF9mYmNfdXBkYXRlIC0gZW5hYmxlL2Rpc2FibGUgRkJDIGFzIG5lZWRlZAotICogQGRldjog dGhlIGRybV9kZXZpY2UKKyAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UgaW5zdGFuY2UKICAqCiAg KiBUaGlzIGZ1bmN0aW9uIHJlZXZhbHVhdGVzIHRoZSBvdmVyYWxsIHN0YXRlIGFuZCBlbmFibGVz IG9yIGRpc2FibGVzIEZCQy4KICAqLwotdm9pZCBpbnRlbF9mYmNfdXBkYXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCit2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Ci0KIAlpZiAoIWRldl9wcml2LT5mYmMuZW5hYmxlX2ZiYykKIAkJcmV0 dXJuOwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKLQlfX2ludGVsX2ZiY191 cGRhdGUoZGV2KTsKKwlfX2ludGVsX2ZiY191cGRhdGUoZGV2X3ByaXYpOwogCW11dGV4X3VubG9j aygmZGV2X3ByaXYtPmZiYy5sb2NrKTsKIH0KIApAQCAtODY5LDcgKzgzOCw2IEBAIHZvaWQgaW50 ZWxfZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ ICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywKIAkJCSAgZW51bSBmYl9vcF9vcmlnaW4g b3JpZ2luKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OwogCXVu c2lnbmVkIGludCBmYmNfYml0czsKIAogCWlmICghZGV2X3ByaXYtPmZiYy5lbmFibGVfZmJjKQpA QCAtODkxLDcgKzg1OSw3IEBAIHZvaWQgaW50ZWxfZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWRldl9wcml2LT5mYmMuYnVzeV9iaXRzIHw9IChmYmNf Yml0cyAmIGZyb250YnVmZmVyX2JpdHMpOwogCiAJaWYgKGRldl9wcml2LT5mYmMuYnVzeV9iaXRz KQotCQlfX2ludGVsX2ZiY19kaXNhYmxlKGRldik7CisJCV9faW50ZWxfZmJjX2Rpc2FibGUoZGV2 X3ByaXYpOwogCiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZmJjLmxvY2spOwogfQpAQCAtODk5 LDggKzg2Nyw2IEBAIHZvaWQgaW50ZWxfZmJjX2ludmFsaWRhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogdm9pZCBpbnRlbF9mYmNfZmx1c2goc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCQkgICAgIHVuc2lnbmVkIGludCBmcm9udGJ1ZmZlcl9iaXRzKQog ewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2OwotCiAJaWYgKCFkZXZf cHJpdi0+ZmJjLmVuYWJsZV9mYmMpCiAJCXJldHVybjsKIApAQCAtOTEyLDcgKzg3OCw3IEBAIHZv aWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlk ZXZfcHJpdi0+ZmJjLmJ1c3lfYml0cyAmPSB+ZnJvbnRidWZmZXJfYml0czsKIAogCWlmICghZGV2 X3ByaXYtPmZiYy5idXN5X2JpdHMpCi0JCV9faW50ZWxfZmJjX3VwZGF0ZShkZXYpOworCQlfX2lu dGVsX2ZiY191cGRhdGUoZGV2X3ByaXYpOwogCiBvdXQ6CiAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJp di0+ZmJjLmxvY2spOwpAQCAtOTY1LDUgKzkzMSw1IEBAIHZvaWQgaW50ZWxfZmJjX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlJOTE1X1dSSVRFKEZCQ19DT05UUk9M LCA1MDAgPDwgRkJDX0NUTF9JTlRFUlZBTF9TSElGVCk7CiAJfQogCi0JZGV2X3ByaXYtPmZiYy5l bmFibGVkID0gZGV2X3ByaXYtPmZiYy5mYmNfZW5hYmxlZChkZXZfcHJpdi0+ZGV2KTsKKwlkZXZf cHJpdi0+ZmJjLmVuYWJsZWQgPSBkZXZfcHJpdi0+ZmJjLmZiY19lbmFibGVkKGRldl9wcml2KTsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDFlZmFjODkuLjRlMjRkMmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwpAQCAtMjQ3OSw2ICsyNDc5LDcgQEAgc3RhdGljIHZvaWQgaWxrX3dt X21lcmdlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkgY29uc3Qgc3RydWN0IGlsa193bV9t YXhpbXVtcyAqbWF4LAogCQkJIHN0cnVjdCBpbnRlbF9waXBlX3dtICptZXJnZWQpCiB7CisJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlpbnQg bGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKIAlpbnQgbGFzdF9lbmFi bGVkX2xldmVsID0gbWF4X2xldmVsOwogCkBAIC0yNTE5LDcgKzI1MjAsOCBAQCBzdGF0aWMgdm9p ZCBpbGtfd21fbWVyZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkgKiBXaGF0IHdlIHNob3Vs ZCBjaGVjayBoZXJlIGlzIHdoZXRoZXIgRkJDIGNhbiBiZQogCSAqIGVuYWJsZWQgc29tZXRpbWUg bGF0ZXIuCiAJICovCi0JaWYgKElTX0dFTjUoZGV2KSAmJiAhbWVyZ2VkLT5mYmNfd21fZW5hYmxl ZCAmJiBpbnRlbF9mYmNfZW5hYmxlZChkZXYpKSB7CisJaWYgKElTX0dFTjUoZGV2KSAmJiAhbWVy Z2VkLT5mYmNfd21fZW5hYmxlZCAmJgorCSAgICBpbnRlbF9mYmNfZW5hYmxlZChkZXZfcHJpdikp IHsKIAkJZm9yIChsZXZlbCA9IDI7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewogCQkJ c3RydWN0IGludGVsX3dtX2xldmVsICp3bSA9ICZtZXJnZWQtPndtW2xldmVsXTsKIAotLSAKMi4x LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==