From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 16/19] drm/i915: Make IS_CHERRYVIEW only take dev_priv Date: Tue, 11 Oct 2016 14:21:49 +0100 Message-ID: <1476192112-25336-17-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1476192112-25336-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E3B16E674 for ; Tue, 11 Oct 2016 13:22:25 +0000 (UTC) Received: by mail-lf0-x243.google.com with SMTP id b75so3721821lfg.3 for ; Tue, 11 Oct 2016 06:22:25 -0700 (PDT) In-Reply-To: <1476192112-25336-1-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNhdmVzIDg2 NCBieXRlcyBvZiAucm9kYXRhIHN0cmluZ3MgYW5kIH4xMDAgb2YgLnRleHQuCgp2MjogQWRkIHBh cmFudGhlc2VzIGFyb3VuZCBkZXZfcHJpdi4gKFZpbGxlIFN5cmphbGEpCgpTaWduZWQtb2ZmLWJ5 OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgOCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ndHQuYyAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVk aW8uYyAgICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCA2NyAr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgICAgICAgICB8IDU1ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgICAgICAgIHwgIDggKystLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jICAgICAgIHwgMTAgKystLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2kyYy5jICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jICAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMg ICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgICAgfCAxMCArKyst LQogMTQgZmlsZXMgY2hhbmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmMKaW5kZXggMThhZjZkMWNjZWM5Li41ZTdiNmExY2IyYzggMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpAQCAtNDI0LDcgKzQyNCw3IEBAIGludGVsX3NldHVwX21j aGJhcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCXUzMiB0ZW1wOwogCWJvb2wgZW5hYmxlZDsK IAotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQorCWlmIChJ U19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJcmV0 dXJuOwogCiAJZGV2X3ByaXYtPm1jaGJhcl9uZWVkX2Rpc2FibGUgPSBmYWxzZTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oCmluZGV4IGY1NDQ2NWVhMmY0NC4uOTY4NDZlY2ZjMjI0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKQEAgLTI2NjAsNyArMjY2MCw3IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRf dGFibGUgewogCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgwMTUyIHx8IFwKIAkJCQkg SU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MDE1YSkKICNkZWZpbmUgSVNfVkFMTEVZVklFVyhk ZXYpCShJTlRFTF9JTkZPKGRldiktPmlzX3ZhbGxleXZpZXcpCi0jZGVmaW5lIElTX0NIRVJSWVZJ RVcoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19jaGVycnl2aWV3KQorI2RlZmluZSBJU19DSEVS UllWSUVXKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19jaGVycnl2aWV3KQogI2RlZmlu ZSBJU19IQVNXRUxMKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19oYXN3ZWxsKQogI2Rl ZmluZSBJU19CUk9BRFdFTEwoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX2Jyb2Fkd2Vs bCkKICNkZWZpbmUgSVNfU0tZTEFLRShkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfc2t5 bGFrZSkKQEAgLTM4MzgsMTEgKzM4MzgsMTEgQEAgX19yYXdfd3JpdGUoNjQsIHEpCiAjZGVmaW5l IElOVEVMX0JST0FEQ0FTVF9SR0JfRlVMTCAxCiAjZGVmaW5lIElOVEVMX0JST0FEQ0FTVF9SR0Jf TElNSVRFRCAyCiAKLXN0YXRpYyBpbmxpbmUgaTkxNV9yZWdfdCBpOTE1X3ZnYWNudHJsX3JlZyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQorc3RhdGljIGlubGluZSBpOTE1X3JlZ190IGk5MTVfdmdh Y250cmxfcmVnKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpZiAoSVNf VkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKKwlpZiAoSVNfVkFMTEVZVklF VyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXJldHVybiBWTFZfVkdB Q05UUkw7Ci0JZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNSkKKwllbHNlIGlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpID49IDUpCiAJCXJldHVybiBDUFVfVkdBQ05UUkw7CiAJZWxzZQog CQlyZXR1cm4gVkdBQ05UUkw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IGU2 Mjg2OTFmZTk3ZS4uNDIxMWI5YTRhOTE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu YwpAQCAtMjEzMyw3ICsyMTMzLDcgQEAgc3RhdGljIHZvaWQgZ3R0X3dyaXRlX3dvcmthcm91bmRz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJLyogV2FJbmNyZWFzZURlZmF1bHRUTEJFbnRyaWVz OmNodixiZHcsc2tsLGJ4dCAqLwogCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQlJOTE1 X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjhfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9W QUxVRV9CRFcpOwotCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKKwllbHNlIGlmIChJU19D SEVSUllWSUVXKGRldl9wcml2KSkKIAkJSTkxNV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBH RU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfQ0hWKTsKIAllbHNlIGlmIChJU19TS1lM QUtFKGRldl9wcml2KSkKIAkJSTkxNV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU45X0wz X0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfU0tMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRp by5jCmluZGV4IDEzYjcyNjkxNmY5OC4uZDEyNzVjYmQ1OTA1IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmMKQEAgLTQyOCw4ICs0MjgsOCBAQCBzdGF0aWMgdm9pZCBpbGtfYXVkaW9fY29k ZWNfZW5hYmxlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCWF1ZF9jb25maWcg PSBJQlhfQVVEX0NGRyhwaXBlKTsKIAkJYXVkX2NudGxfc3QgPSBJQlhfQVVEX0NOVExfU1QocGlw ZSk7CiAJCWF1ZF9jbnRybF9zdDIgPSBJQlhfQVVEX0NOVExfU1QyOwotCX0gZWxzZSBpZiAoSVNf VkFMTEVZVklFVyhjb25uZWN0b3ItPmRldikgfHwKLQkJICAgSVNfQ0hFUlJZVklFVyhjb25uZWN0 b3ItPmRldikpIHsKKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8CisJCSAg IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCWhkbWl3X2hkbWllZGlkID0gVkxWX0hETUlX X0hETUlFRElEKHBpcGUpOwogCQlhdWRfY29uZmlnID0gVkxWX0FVRF9DRkcocGlwZSk7CiAJCWF1 ZF9jbnRsX3N0ID0gVkxWX0FVRF9DTlRMX1NUKHBpcGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nv bG9yLmMKaW5kZXggZGE3NmE3OTk0MTFhLi40NDUxMDg4NTUyNzUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY29sb3IuYwpAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgaW50ZWxfY29sb3JfaW5pdChz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAlkcm1fbW9kZV9jcnRjX3NldF9nYW1tYV9zaXplKGNy dGMsIDI1Nik7CiAKLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJaWYgKElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5kaXNwbGF5LmxvYWRfY3NjX21hdHJpeCA9IGNo ZXJyeXZpZXdfbG9hZF9jc2NfbWF0cml4OwogCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMg PSBjaGVycnl2aWV3X2xvYWRfbHV0czsKIAl9IGVsc2UgaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYp KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYmY4NzFiNTY1NTQ5Li5k NjFhMTJkYmJkNzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTg0OSw3 ICs4NDksNyBAQCBzdGF0aWMgYm9vbCB2bHZfUExMX2lzX29wdGltYWwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgaW50IHRhcmdldF9mcmVxLAogCSAqIEZvciBDSFYgaWdub3JlIHRoZSBlcnJvciBh bmQgY29uc2lkZXIgb25seSB0aGUgUCB2YWx1ZS4KIAkgKiBQcmVmZXIgYSBiaWdnZXIgUCB2YWx1 ZSBiYXNlZCBvbiBIVyByZXF1aXJlbWVudHMuCiAJICovCi0JaWYgKElTX0NIRVJSWVZJRVcoZGV2 KSkgeworCWlmIChJU19DSEVSUllWSUVXKHRvX2k5MTUoZGV2KSkpIHsKIAkJKmVycm9yX3BwbSA9 IDA7CiAKIAkJcmV0dXJuIGNhbGN1bGF0ZWRfY2xvY2stPnAgPiBiZXN0X2Nsb2NrLT5wOwpAQCAt MTMzMiw3ICsxMzMyLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3Nwcml0ZXNfZGlzYWJsZWQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAicGxhbmUgJWQgYXNzZXJ0 aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBvZmYgb24gcGlwZSAlYyBidXQgaXMgc3RpbGwgYWN0aXZl XG4iLAogCQkJICAgICBzcHJpdGUsIHBpcGVfbmFtZShwaXBlKSk7CiAJCX0KLQl9IGVsc2UgaWYg KElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKKwl9IGVsc2UgaWYg KElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJ CWZvcl9lYWNoX3Nwcml0ZShkZXZfcHJpdiwgcGlwZSwgc3ByaXRlKSB7CiAJCQl1MzIgdmFsID0g STkxNV9SRUFEKFNQQ05UUihwaXBlLCBzcHJpdGUpKTsKIAkJCUk5MTVfU1RBVEVfV0FSTih2YWwg JiBTUF9FTkFCTEUsCkBAIC0zMDMzLDcgKzMwMzMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0 ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCiAJCQkgICAoKGNydGNf c3RhdGUtPnBpcGVfc3JjX2ggLSAxKSA8PCAxNikgfAogCQkJICAgKGNydGNfc3RhdGUtPnBpcGVf c3JjX3cgLSAxKSk7CiAJCUk5MTVfV1JJVEUoRFNQUE9TKHBsYW5lKSwgMCk7Ci0JfSBlbHNlIGlm IChJU19DSEVSUllWSUVXKGRldikgJiYgcGxhbmUgPT0gUExBTkVfQikgeworCX0gZWxzZSBpZiAo SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYgcGxhbmUgPT0gUExBTkVfQikgewogCQlJOTE1X1dS SVRFKFBSSU1TSVpFKHBsYW5lKSwKIAkJCSAgICgoY3J0Y19zdGF0ZS0+cGlwZV9zcmNfaCAtIDEp IDw8IDE2KSB8CiAJCQkgICAoY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdyAtIDEpKTsKQEAgLTU4NzQs NyArNTg3NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAkJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDU0MDAwMDsKIAkJ ZWxzZQogCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNjc1MDAwOwotCX0gZWxzZSBpZiAo SVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2 KSkgewogCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSAzMjAwMDA7CiAJfSBlbHNlIGlmIChJ U19WQUxMRVlWSUVXKGRldikpIHsKIAkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDAwMDAw OwpAQCAtNjY3Niw3ICs2Njc2LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19tb2Rlc2V0X2Nv bW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQogCSAqLwogCWlu dGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fUElQRV9BKTsKIAot CWlmIChJU19DSEVSUllWSUVXKGRldikpCisJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQog CQljaGVycnl2aWV3X3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7CiAJZWxzZQogCQl2YWxsZXl2 aWV3X3NldF9jZGNsayhkZXYsIHJlcV9jZGNsayk7CkBAIC02NzA0LDcgKzY3MDQsNyBAQCBzdGF0 aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZywKIAlpbnRlbF9zZXRfcGlwZV90aW1pbmdzKGludGVsX2NydGMpOwogCWludGVs X3NldF9waXBlX3NyY19zaXplKGludGVsX2NydGMpOwogCi0JaWYgKElTX0NIRVJSWVZJRVcoZGV2 KSAmJiBwaXBlID09IFBJUEVfQikgeworCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiBw aXBlID09IFBJUEVfQikgewogCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7CiAKIAkJSTkxNV9XUklURShDSFZfQkxFTkQocGlwZSksIENIVl9CTEVORF9M RUdBQ1kpOwpAQCAtNjcxOSw3ICs2NzE5LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAKIAlpbnRlbF9l bmNvZGVyc19wcmVfcGxsX2VuYWJsZShjcnRjLCBwaXBlX2NvbmZpZywgb2xkX3N0YXRlKTsKIAot CWlmIChJU19DSEVSUllWSUVXKGRldikpIHsKKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikp IHsKIAkJY2h2X3ByZXBhcmVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7CiAJ CWNodl9lbmFibGVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7CiAJfSBlbHNl IHsKQEAgLTY4MzgsNyArNjgzOCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19kaXNhYmxlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAlpbnRlbF9lbmNvZGVyc19w b3N0X2Rpc2FibGUoY3J0Yywgb2xkX2NydGNfc3RhdGUsIG9sZF9zdGF0ZSk7CiAKIAlpZiAoIWlu dGVsX2NydGNfaGFzX3R5cGUoaW50ZWxfY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFNJKSkg ewotCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQorCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikpCiAJCQljaHZfZGlzYWJsZV9wbGwoZGV2X3ByaXYsIHBpcGUpOwogCQllbHNlIGlmIChJU19W QUxMRVlWSUVXKGRldikpCiAJCQl2bHZfZGlzYWJsZV9wbGwoZGV2X3ByaXYsIHBpcGUpOwpAQCAt NzgwNSw4ICs3ODA1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfY3B1X3RyYW5zY29kZXJfc2V0X21f bihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJICogZm9yIGdlbiA8IDgpIGFuZCBpZiBEUlJT IGlzIHN1cHBvcnRlZCAodG8gbWFrZSBzdXJlIHRoZQogCQkgKiByZWdpc3RlcnMgYXJlIG5vdCB1 bm5lY2Vzc2FyaWx5IGFjY2Vzc2VkKS4KIAkJICovCi0JCWlmIChtMl9uMiAmJiAoSVNfQ0hFUlJZ VklFVyhkZXYpIHx8IElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgOCkgJiYKLQkJCWNydGMtPmNvbmZp Zy0+aGFzX2RycnMpIHsKKwkJaWYgKG0yX24yICYmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSB8 fAorCQkgICAgSU5URUxfR0VOKGRldl9wcml2KSA8IDgpICYmIGNydGMtPmNvbmZpZy0+aGFzX2Ry cnMpIHsKIAkJCUk5MTVfV1JJVEUoUElQRV9EQVRBX00yKHRyYW5zY29kZXIpLAogCQkJCQlUVV9T SVpFKG0yX24yLT50dSkgfCBtMl9uMi0+Z21jaF9tKTsKIAkJCUk5MTVfV1JJVEUoUElQRV9EQVRB X04yKHRyYW5zY29kZXIpLCBtMl9uMi0+Z21jaF9uKTsKQEAgLTgxMDgsNyArODEwOCw3IEBAIGlu dCB2bHZfZm9yY2VfcGxsX29uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBl LAogCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0gMTsKIAlwaXBlX2NvbmZpZy0+ZHBs bCA9ICpkcGxsOwogCi0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgeworCWlmIChJU19DSEVSUllW SUVXKHRvX2k5MTUoZGV2KSkpIHsKIAkJY2h2X2NvbXB1dGVfZHBsbChjcnRjLCBwaXBlX2NvbmZp Zyk7CiAJCWNodl9wcmVwYXJlX3BsbChjcnRjLCBwaXBlX2NvbmZpZyk7CiAJCWNodl9lbmFibGVf cGxsKGNydGMsIHBpcGVfY29uZmlnKTsKQEAgLTgxMzMsNyArODEzMyw3IEBAIGludCB2bHZfZm9y Y2VfcGxsX29uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLAogICovCiB2 b2lkIHZsdl9mb3JjZV9wbGxfb2ZmKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0gcGlwZSBw aXBlKQogewotCWlmIChJU19DSEVSUllWSUVXKGRldikpCisJaWYgKElTX0NIRVJSWVZJRVcodG9f aTkxNShkZXYpKSkKIAkJY2h2X2Rpc2FibGVfcGxsKHRvX2k5MTUoZGV2KSwgcGlwZSk7CiAJZWxz ZQogCQl2bHZfZGlzYWJsZV9wbGwodG9faTkxNShkZXYpLCBwaXBlKTsKQEAgLTg0NTcsNyArODQ1 Nyw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfc2V0X3BpcGVjb25mKHN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjKQogCX0gZWxzZQogCQlwaXBlY29uZiB8PSBQSVBFQ09ORl9QUk9HUkVTU0lWRTsK IAotCWlmICgoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgJiYKKwlp ZiAoKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSAm JgogCSAgICAgaW50ZWxfY3J0Yy0+Y29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlKQogCQlwaXBl Y29uZiB8PSBQSVBFQ09ORl9DT0xPUl9SQU5HRV9TRUxFQ1Q7CiAKQEAgLTg4NTEsNyArODg1MSw3 IEBAIHN0YXRpYyBib29sIGk5eHhfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjLAogCQl9CiAJfQogCi0JaWYgKChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklF VyhkZXYpKSAmJgorCWlmICgoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikpICYmCiAJICAgICh0bXAgJiBQSVBFQ09ORl9DT0xPUl9SQU5HRV9TRUxFQ1Qp KQogCQlwaXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRydWU7CiAKQEAgLTg4NjUs NyArODg2NSw3IEBAIHN0YXRpYyBib29sIGk5eHhfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRl bF9jcnRjICpjcnRjLAogCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQpIHsKIAkJLyog Tm8gd2F5IHRvIHJlYWQgaXQgb3V0IG9uIHBpcGVzIEIgYW5kIEMgKi8KLQkJaWYgKElTX0NIRVJS WVZJRVcoZGV2KSAmJiBjcnRjLT5waXBlICE9IFBJUEVfQSkKKwkJaWYgKElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpICYmIGNydGMtPnBpcGUgIT0gUElQRV9BKQogCQkJdG1wID0gZGV2X3ByaXYtPmNo dl9kcGxsX21kW2NydGMtPnBpcGVdOwogCQllbHNlCiAJCQl0bXAgPSBJOTE1X1JFQUQoRFBMTF9N RChjcnRjLT5waXBlKSk7CkBAIC04ODg2LDcgKzg4ODYsNyBAQCBzdGF0aWMgYm9vbCBpOXh4X2dl dF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJcGlwZV9jb25maWctPnBp eGVsX211bHRpcGxpZXIgPSAxOwogCX0KIAlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxs ID0gSTkxNV9SRUFEKERQTEwoY3J0Yy0+cGlwZSkpOwotCWlmICghSVNfVkFMTEVZVklFVyhkZXYp ICYmICFJU19DSEVSUllWSUVXKGRldikpIHsKKwlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYp ICYmICFJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQkvKgogCQkgKiBEUExMX0RWT18yWF9N T0RFIG11c3QgYmUgZW5hYmxlZCBmb3IgYm90aCBEUExMcwogCQkgKiBvbiA4MzAuIEZpbHRlciBp dCBvdXQgaGVyZSBzbyB0aGF0IHdlIGRvbid0CkBAIC04OTA0LDcgKzg5MDQsNyBAQCBzdGF0aWMg Ym9vbCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkJ CSAgICAgRFBMTF9QT1JUQl9SRUFEWV9NQVNLKTsKIAl9CiAKLQlpZiAoSVNfQ0hFUlJZVklFVyhk ZXYpKQorCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJY2h2X2NydGNfY2xvY2tfZ2V0 KGNydGMsIHBpcGVfY29uZmlnKTsKIAllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpCiAJCXZs dl9jcnRjX2Nsb2NrX2dldChjcnRjLCBwaXBlX2NvbmZpZyk7CkBAIC0xMjI1MCw3ICsxMjI1MCw3 IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19wYWdlX2ZsaXAoc3RydWN0IGRybV9jcnRjICpjcnRj LAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUgfHwgSVNfRzRYKGRldl9wcml2KSkKIAkJ d29yay0+ZmxpcF9jb3VudCA9IEk5MTVfUkVBRChQSVBFX0ZMSVBDT1VOVF9HNFgocGlwZSkpICsg MTsKIAotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJ aWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7 CiAJCWVuZ2luZSA9ICZkZXZfcHJpdi0+ZW5naW5lW0JDU107CiAJCWlmIChmYi0+bW9kaWZpZXJb MF0gIT0gb2xkX2ZiLT5tb2RpZmllclswXSkKIAkJCS8qIHZsdjogRElTUExBWV9GTElQIGZhaWxz IHRvIGNoYW5nZSB0aWxpbmcgKi8KQEAgLTEzMzQ4LDcgKzEzMzQ4LDcgQEAgaW50ZWxfcGlwZV9j b25maWdfY29tcGFyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCVBJUEVfQ09ORl9DSEVDS19J KHBpeGVsX211bHRpcGxpZXIpOwogCVBJUEVfQ09ORl9DSEVDS19JKGhhc19oZG1pX3NpbmspOwog CWlmICgoSU5URUxfR0VOKGRldl9wcml2KSA8IDggJiYgIUlTX0hBU1dFTEwoZGV2X3ByaXYpKSB8 fAotCSAgICBJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQorCSAgICBJ U19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJUElQ RV9DT05GX0NIRUNLX0kobGltaXRlZF9jb2xvcl9yYW5nZSk7CiAJUElQRV9DT05GX0NIRUNLX0ko aGFzX2luZm9mcmFtZSk7CiAKQEAgLTE1MDY4LDcgKzE1MDY4LDcgQEAgaW50ZWxfY2hlY2tfY3Vy c29yX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCSAqIGRpc3BsYXkgcG93ZXIgd2Vs bCBtdXN0IGJlIHR1cm5lZCBvZmYgYW5kIG9uIGFnYWluLgogCSAqIFJlZnVzZSB0aGUgcHV0IHRo ZSBjdXJzb3IgaW50byB0aGF0IGNvbXByb21pc2VkIHBvc2l0aW9uLgogCSAqLwotCWlmIChJU19D SEVSUllWSUVXKHBsYW5lLT5kZXYpICYmIHBpcGUgPT0gUElQRV9DICYmCisJaWYgKElTX0NIRVJS WVZJRVcodG9faTkxNShwbGFuZS0+ZGV2KSkgJiYgcGlwZSA9PSBQSVBFX0MgJiYKIAkgICAgc3Rh dGUtPmJhc2UudmlzaWJsZSAmJiBzdGF0ZS0+YmFzZS5jcnRjX3ggPCAwKSB7CiAJCURSTV9ERUJV R19LTVMoIkNIViBjdXJzb3IgQyBub3QgYWxsb3dlZCB0byBzdHJhZGRsZSB0aGUgbGVmdCBzY3Jl ZW4gZWRnZVxuIik7CiAJCXJldHVybiAtRUlOVkFMOwpAQCAtMTUzMzgsNyArMTUzMzgsNyBAQCBz dGF0aWMgYm9vbCBpbnRlbF9jcnRfcHJlc2VudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlm IChJU19IU1dfVUxUKGRldl9wcml2KSB8fCBJU19CRFdfVUxUKGRldl9wcml2KSkKIAkJcmV0dXJu IGZhbHNlOwogCi0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKKwlpZiAoSVNfQ0hFUlJZVklFVyhk ZXZfcHJpdikpCiAJCXJldHVybiBmYWxzZTsKIAogCWlmIChIQVNfUENIX0xQVF9IKGRldl9wcml2 KSAmJgpAQCAtMTU0NzksNyArMTU0NzksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9vdXRw dXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkJaWYgKEk5MTVfUkVBRChQQ0hfRFBfRCkg JiBEUF9ERVRFQ1RFRCkKIAkJCWludGVsX2RwX2luaXQoZGV2LCBQQ0hfRFBfRCwgUE9SVF9EKTsK LQl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsK Kwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKSB7CiAJCWJvb2wgaGFzX2VkcCwgaGFzX3BvcnQ7CiAKIAkJLyoKQEAgLTE1NTExLDcg KzE1NTExLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQlpZiAoKEk5MTVfUkVBRChWTFZfSERNSUMpICYgU0RWT19ERVRFQ1RFRCB8 fCBoYXNfcG9ydCkgJiYgIWhhc19lZHApCiAJCQlpbnRlbF9oZG1pX2luaXQoZGV2LCBWTFZfSERN SUMsIFBPUlRfQyk7CiAKLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgeworCQlpZiAoSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpIHsKIAkJCS8qCiAJCQkgKiBlRFAgbm90IHN1cHBvcnRlZCBvbiBw b3J0IEQsCiAJCQkgKiBzbyBubyBuZWVkIHRvIHdvcnJ5IGFib3V0IGl0CkBAIC0xNTYyOSwxMCAr MTU2MjksMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgaW50 ZWxfZmJfZnVuY3MgPSB7CiB9OwogCiBzdGF0aWMKLXUzMiBpbnRlbF9mYl9waXRjaF9saW1pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50NjRfdCBmYl9tb2RpZmllciwKLQkJCSB1aW50MzJf dCBwaXhlbF9mb3JtYXQpCit1MzIgaW50ZWxfZmJfcGl0Y2hfbGltaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAorCQkJIHVpbnQ2NF90IGZiX21vZGlmaWVyLCB1aW50MzJfdCBw aXhlbF9mb3JtYXQpCiB7Ci0JdTMyIGdlbiA9IElOVEVMX0lORk8oZGV2KS0+Z2VuOworCXUzMiBn ZW4gPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+Z2VuOwogCiAJaWYgKGdlbiA+PSA5KSB7CiAJCWlu dCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChwaXhlbF9mb3JtYXQsIDApOwpAQCAtMTU2NDEs NyArMTU2NDEsOCBAQCB1MzIgaW50ZWxfZmJfcGl0Y2hfbGltaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdWludDY0X3QgZmJfbW9kaWZpZXIsCiAJCSAqICBwaXhlbHMgYW5kIDMySyBieXRlcy4i CiAJCSAqLwogCQlyZXR1cm4gbWluKDgxOTIgKiBjcHAsIDMyNzY4KTsKLQl9IGVsc2UgaWYgKGdl biA+PSA1ICYmICFJU19WQUxMRVlWSUVXKGRldikgJiYgIUlTX0NIRVJSWVZJRVcoZGV2KSkgewor CX0gZWxzZSBpZiAoZ2VuID49IDUgJiYgIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmCisJCSAg ICFJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQlyZXR1cm4gMzIqMTAyNDsKIAl9IGVsc2Ug aWYgKGdlbiA+PSA0KSB7CiAJCWlmIChmYl9tb2RpZmllciA9PSBJOTE1X0ZPUk1BVF9NT0RfWF9U SUxFRCkKQEAgLTE1NzI4LDcgKzE1NzI5LDcgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZl cl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAot CXBpdGNoX2xpbWl0ID0gaW50ZWxfZmJfcGl0Y2hfbGltaXQoZGV2LCBtb2RlX2NtZC0+bW9kaWZp ZXJbMF0sCisJcGl0Y2hfbGltaXQgPSBpbnRlbF9mYl9waXRjaF9saW1pdChkZXZfcHJpdiwgbW9k ZV9jbWQtPm1vZGlmaWVyWzBdLAogCQkJCQkgICBtb2RlX2NtZC0+cGl4ZWxfZm9ybWF0KTsKIAlp ZiAobW9kZV9jbWQtPnBpdGNoZXNbMF0gPiBwaXRjaF9saW1pdCkgewogCQlEUk1fREVCVUcoIiVz IHBpdGNoICgldSkgbXVzdCBiZSBhdCBsZXNzIHRoYW4gJWRcbiIsCkBAIC0xNTc2Niw3ICsxNTc2 Nyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAogCQl9CiAJCWJyZWFrOwogCWNhc2UgRFJNX0ZPUk1BVF9BQkdSODg4ODoKLQkJaWYg KCFJU19WQUxMRVlWSUVXKGRldikgJiYgIUlTX0NIRVJSWVZJRVcoZGV2KSAmJgorCQlpZiAoIUlT X1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJgogCQkg ICAgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA5KSB7CiAJCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRf Zm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zvcm1hdCk7CiAJCQlEUk1fREVCVUcoInVuc3Vw cG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZvcm1hdF9uYW1lKTsKQEAgLTE1Nzg1LDcgKzE1 Nzg2LDcgQEAgc3RhdGljIGludCBpbnRlbF9mcmFtZWJ1ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCX0KIAkJYnJlYWs7CiAJY2FzZSBEUk1fRk9STUFUX0FCR1IyMTAxMDEwOgot CQlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJCWlm ICghSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYgIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7 CiAJCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBpeGVsX2Zv cm1hdCk7CiAJCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZv cm1hdF9uYW1lKTsKIAkJCWtmcmVlKGZvcm1hdF9uYW1lKTsKQEAgLTE2MjMyLDcgKzE2MjMzLDcg QEAgc3RhdGljIHZvaWQgaTkxNV9kaXNhYmxlX3ZnYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1 Y3QgcGNpX2RldiAqcGRldiA9IGRldl9wcml2LT5kcm0ucGRldjsKIAl1OCBzcjE7Ci0JaTkxNV9y ZWdfdCB2Z2FfcmVnID0gaTkxNV92Z2FjbnRybF9yZWcoZGV2KTsKKwlpOTE1X3JlZ190IHZnYV9y ZWcgPSBpOTE1X3ZnYWNudHJsX3JlZyhkZXZfcHJpdik7CiAKIAkvKiBXYUVuYWJsZVZHQUFjY2Vz c1Rocm91Z2hJT1BvcnQ6Y3RnLGVsayxpbGssc25iLGl2Yix2bHYsaHN3ICovCiAJdmdhX2dldF91 bmludGVycnVwdGlibGUocGRldiwgVkdBX1JTUkNfTEVHQUNZX0lPKTsKQEAgLTE2Njc3LDcgKzE2 Njc4LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2FuaXRpemVfZW5jb2RlcihzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlcikKIHZvaWQgaTkxNV9yZWRpc2FibGVfdmdhX3Bvd2VyX29uKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwotCWk5MTVfcmVnX3QgdmdhX3JlZyA9IGk5MTVfdmdhY250cmxfcmVn KGRldik7CisJaTkxNV9yZWdfdCB2Z2FfcmVnID0gaTkxNV92Z2FjbnRybF9yZWcoZGV2X3ByaXYp OwogCiAJaWYgKCEoSTkxNV9SRUFEKHZnYV9yZWcpICYgVkdBX0RJU1BfRElTQUJMRSkpIHsKIAkJ RFJNX0RFQlVHX0tNUygiU29tZXRoaW5nIGVuYWJsZWQgVkdBIHBsYW5lLCBkaXNhYmxpbmcgaXRc biIpOwpAQCAtMTY5MTUsNyArMTY5MTYsNyBAQCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXBsbC0+b24gPSBmYWxzZTsKIAl9CiAKLQlpZiAo SVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKKwlpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXZsdl93bV9nZXRf aHdfc3RhdGUoZGV2KTsKIAllbHNlIGlmIChJU19HRU45KGRldikpCiAJCXNrbF93bV9nZXRfaHdf c3RhdGUoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4IGRmYzkzY2MxMWExMy4uMWUx Y2NmMDkyZTExIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTM0NCw3ICszNDQsNyBAQCB2 bHZfcG93ZXJfc2VxdWVuY2VyX2tpY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlEUCB8 PSBEUF9QT1JUX1dJRFRIKDEpOwogCURQIHw9IERQX0xJTktfVFJBSU5fUEFUXzE7CiAKLQlpZiAo SVNfQ0hFUlJZVklFVyhkZXYpKQorCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJRFAg fD0gRFBfUElQRV9TRUxFQ1RfQ0hWKHBpcGUpOwogCWVsc2UgaWYgKHBpcGUgPT0gUElQRV9CKQog CQlEUCB8PSBEUF9QSVBFQl9TRUxFQ1Q7CkBAIC0zNTYsMTAgKzM1NiwxMCBAQCB2bHZfcG93ZXJf c2VxdWVuY2VyX2tpY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkgKiBTbyBlbmFibGUg dGVtcG9yYXJpbHkgaXQgaWYgaXQncyBub3QgYWxyZWFkeSBlbmFibGVkLgogCSAqLwogCWlmICgh cGxsX2VuYWJsZWQpIHsKLQkJcmVsZWFzZV9jbF9vdmVycmlkZSA9IElTX0NIRVJSWVZJRVcoZGV2 KSAmJgorCQlyZWxlYXNlX2NsX292ZXJyaWRlID0gSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYK IAkJCSFjaHZfcGh5X3Bvd2VyZ2F0ZV9jaChkZXZfcHJpdiwgcGh5LCBjaCwgdHJ1ZSk7CiAKLQkJ aWYgKHZsdl9mb3JjZV9wbGxfb24oZGV2LCBwaXBlLCBJU19DSEVSUllWSUVXKGRldikgPworCQlp ZiAodmx2X2ZvcmNlX3BsbF9vbihkZXYsIHBpcGUsIElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpID8K IAkJCQkgICAgICZjaHZfZHBsbFswXS5kcGxsIDogJnZsdl9kcGxsWzBdLmRwbGwpKSB7CiAJCQlE Uk1fRVJST1IoIkZhaWxlZCB0byBmb3JjZSBvbiBwbGwgZm9yIHBpcGUgJWMhXG4iLAogCQkJCSAg cGlwZV9uYW1lKHBpcGUpKTsKQEAgLTU3MCw3ICs1NzAsNyBAQCB2b2lkIGludGVsX3Bvd2VyX3Nl cXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyOwogCi0JaWYgKFdBUk5fT04oIUlTX1ZBTExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hF UlJZVklFVyhkZXYpICYmCisJaWYgKFdBUk5fT04oIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYm ICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJgogCQkgICAgIUlTX0JST1hUT04oZGV2X3ByaXYp KSkKIAkJcmV0dXJuOwogCkBAIC02NjQsNyArNjY0LDcgQEAgc3RhdGljIGludCBlZHBfbm90aWZ5 X2hhbmRsZXIoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICp0aGlzLCB1bnNpZ25lZCBsb25nIGNvZGUs CiAKIAlwcHNfbG9jayhpbnRlbF9kcCk7CiAKLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2KSkgeworCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19D SEVSUllWSUVXKGRldl9wcml2KSkgewogCQllbnVtIHBpcGUgcGlwZSA9IHZsdl9wb3dlcl9zZXF1 ZW5jZXJfcGlwZShpbnRlbF9kcCk7CiAJCWk5MTVfcmVnX3QgcHBfY3RybF9yZWcsIHBwX2Rpdl9y ZWc7CiAJCXUzMiBwcF9kaXY7CkBAIC02OTIsNyArNjkyLDcgQEAgc3RhdGljIGJvb2wgZWRwX2hh dmVfcGFuZWxfcG93ZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAogCWxvY2tkZXBfYXNz ZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCi0JaWYgKChJU19WQUxMRVlWSUVXKGRl dikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSAmJgorCWlmICgoSVNfVkFMTEVZVklFVyhkZXZfcHJp dikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpICYmCiAJICAgIGludGVsX2RwLT5wcHNfcGlw ZSA9PSBJTlZBTElEX1BJUEUpCiAJCXJldHVybiBmYWxzZTsKIApAQCAtNzA2LDcgKzcwNiw3IEBA IHN0YXRpYyBib29sIGVkcF9oYXZlX3BhbmVsX3ZkZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQogCiAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7CiAKLQlpZiAo KElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpICYmCisJaWYgKChJU19W QUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgJiYKIAkgICAg aW50ZWxfZHAtPnBwc19waXBlID09IElOVkFMSURfUElQRSkKIAkJcmV0dXJuIGZhbHNlOwogCkBA IC0xMzQ3LDcgKzEzNDcsNyBAQCBpbnRlbF9kcF9zZXRfY2xvY2soc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewogCQlk aXZpc29yID0gcGNoX2RwbGw7CiAJCWNvdW50ID0gQVJSQVlfU0laRShwY2hfZHBsbCk7Ci0JfSBl bHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpIHsKKwl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKSB7CiAJCWRpdmlzb3IgPSBjaHZfZHBsbDsKIAkJY291bnQgPSBBUlJBWV9TSVpF KGNodl9kcGxsKTsKIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewpAQCAtMTc5MSw3 ICsxNzkxLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAkJSTkxNV9XUklURShUUkFOU19EUF9DVEwoY3J0Yy0+cGlwZSksIHRy YW5zX2RwKTsKIAl9IGVsc2UgewogCQlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpICYmICFJ U19WQUxMRVlWSUVXKGRldikgJiYKLQkJICAgICFJU19DSEVSUllWSUVXKGRldikgJiYgcGlwZV9j b25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCisJCSAgICAhSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikgJiYKKwkJICAgIHBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlKQogCQkJaW50ZWxf ZHAtPkRQIHw9IERQX0NPTE9SX1JBTkdFXzE2XzIzNTsKIAogCQlpZiAoYWRqdXN0ZWRfbW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX1BIU1lOQykKQEAgLTE4MDMsNyArMTgwNCw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2RwX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJ CWlmIChkcm1fZHBfZW5oYW5jZWRfZnJhbWVfY2FwKGludGVsX2RwLT5kcGNkKSkKIAkJCWludGVs X2RwLT5EUCB8PSBEUF9FTkhBTkNFRF9GUkFNSU5HOwogCi0JCWlmIChJU19DSEVSUllWSUVXKGRl dikpCisJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJCWludGVsX2RwLT5EUCB8PSBE UF9QSVBFX1NFTEVDVF9DSFYoY3J0Yy0+cGlwZSk7CiAJCWVsc2UgaWYgKGNydGMtPnBpcGUgPT0g UElQRV9CKQogCQkJaW50ZWxfZHAtPkRQIHw9IERQX1BJUEVCX1NFTEVDVDsKQEAgLTI0NTksNyAr MjQ2MCw3IEBAIHN0YXRpYyBib29sIGludGVsX2RwX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKIAogCQlEUk1fREVCVUdfS01TKCJObyBwaXBlIGZvciBkcCBwb3J0 IDB4JXggZm91bmRcbiIsCiAJCQkgICAgICBpOTE1X21taW9fcmVnX29mZnNldChpbnRlbF9kcC0+ b3V0cHV0X3JlZykpOwotCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJfSBlbHNl IGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQkqcGlwZSA9IERQX1BPUlRfVE9fUElQ RV9DSFYodG1wKTsKIAl9IGVsc2UgewogCQkqcGlwZSA9IFBPUlRfVE9fUElQRSh0bXApOwpAQCAt MjY4MSw3ICsyNjgyLDcgQEAgX2ludGVsX2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHAsCiAJCX0KIAogCX0gZWxzZSB7Ci0JCWlmIChJU19DSEVSUllWSUVXKGRldikp CisJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJCSpEUCAmPSB+RFBfTElOS19UUkFJ Tl9NQVNLX0NIVjsKIAkJZWxzZQogCQkJKkRQICY9IH5EUF9MSU5LX1RSQUlOX01BU0s7CkBAIC0y Njk3LDcgKzI2OTgsNyBAQCBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKIAkJCSpEUCB8PSBEUF9MSU5LX1RSQUlOX1BBVF8yOwogCQkJYnJlYWs7CiAJ CWNhc2UgRFBfVFJBSU5JTkdfUEFUVEVSTl8zOgotCQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkg eworCQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCQkJKkRQIHw9IERQX0xJTktf VFJBSU5fUEFUXzNfQ0hWOwogCQkJfSBlbHNlIHsKIAkJCQlEUk1fREVCVUdfS01TKCJUUFMzIG5v dCBzdXBwb3J0ZWQsIHVzaW5nIFRQUzIgaW5zdGVhZFxuIik7CkBAIC0yNzQ3LDcgKzI3NDgsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAKIAlwcHNfbG9jayhpbnRlbF9kcCk7CiAKLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8 IElTX0NIRVJSWVZJRVcoZGV2KSkKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXZsdl9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcihp bnRlbF9kcCk7CiAKIAlpbnRlbF9kcF9lbmFibGVfcG9ydChpbnRlbF9kcCwgcGlwZV9jb25maWcp OwpAQCAtMjc1OCwxMCArMjc1OSwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZHAoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlwcHNfdW5sb2NrKGludGVsX2RwKTsKIAot CWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJaWYgKElT X1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCXVu c2lnbmVkIGludCBsYW5lX21hc2sgPSAweDA7CiAKLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkK KwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQkJbGFuZV9tYXNrID0gaW50ZWxfZHBf dW51c2VkX2xhbmVfbWFzayhwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCk7CiAKIAkJdmx2X3dhaXRf cG9ydF9yZWFkeShkZXZfcHJpdiwgZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLApAQCAtMjk4Nyw3 ICsyOTg4LDcgQEAgaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCkKIAkJaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcgJiYgcG9ydCA9PSBQT1JUX0Ep CiAJCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwogCQlyZXR1cm4gRFBf VFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOwotCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhk ZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKKwl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2 X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlyZXR1cm4gRFBfVFJBSU5fVk9M VEFHRV9TV0lOR19MRVZFTF8zOwogCWVsc2UgaWYgKElTX0dFTjcoZGV2KSAmJiBwb3J0ID09IFBP UlRfQSkKIAkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMjsKQEAgLTMzNDgs NyArMzM0OSw3IEBAIGludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCiAJCQlzaWduYWxfbGV2ZWxzID0gMDsKIAkJZWxzZQogCQkJbWFzayA9IERESV9C VUZfRU1QX01BU0s7Ci0JfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpIHsKKwl9IGVsc2Ug aWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCXNpZ25hbF9sZXZlbHMgPSBjaHZfc2ln bmFsX2xldmVscyhpbnRlbF9kcCk7CiAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsK IAkJc2lnbmFsX2xldmVscyA9IHZsdl9zaWduYWxfbGV2ZWxzKGludGVsX2RwKTsKQEAgLTM0NDgs NyArMzQ0OSw3IEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQogCQlEUCAmPSB+RFBfTElOS19UUkFJTl9NQVNLX0NQVDsKIAkJRFAgfD0gRFBfTElOS19UUkFJ Tl9QQVRfSURMRV9DUFQ7CiAJfSBlbHNlIHsKLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKKwkJ aWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQkJRFAgJj0gfkRQX0xJTktfVFJBSU5fTUFT S19DSFY7CiAJCWVsc2UKIAkJCURQICY9IH5EUF9MSU5LX1RSQUlOX01BU0s7CkBAIC01MDg1LDcg KzUwODYsNyBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCS8qIEhhc3dlbGwgZG9lc24ndCBoYXZlIGFueSBw b3J0IHNlbGVjdGlvbiBiaXRzIGZvciB0aGUgcGFuZWwKIAkgKiBwb3dlciBzZXF1ZW5jZXIgYW55 IG1vcmUuICovCi0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikp IHsKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikpIHsKIAkJcG9ydF9zZWwgPSBQQU5FTF9QT1JUX1NFTEVDVF9WTFYocG9ydCk7CiAJfSBlbHNl IGlmIChIQVNfUENIX0lCWChkZXZfcHJpdikgfHwgSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7CiAJ CWlmIChwb3J0ID09IFBPUlRfQSkKQEAgLTUxMTQsNyArNTExNSw5IEBAIGludGVsX2RwX2luaXRf cGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog c3RhdGljIHZvaWQgaW50ZWxfZHBfcHBzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ CSAgICAgIHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB7Ci0JaWYgKElTX1ZBTExFWVZJRVco ZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikg fHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJdmx2X2luaXRpYWxfcG93ZXJfc2VxdWVu Y2VyX3NldHVwKGludGVsX2RwKTsKIAl9IGVsc2UgewogCQlpbnRlbF9kcF9pbml0X3BhbmVsX3Bv d2VyX3NlcXVlbmNlcihkZXYsIGludGVsX2RwKTsKQEAgLTU1ODQsNyArNTU4Nyw3IEBAIHN0YXRp YyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LAogCX0KIAltdXRleF91bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwogCi0JaWYgKElT X1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKKwlpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJaW50ZWxfZHAt PmVkcF9ub3RpZmllci5ub3RpZmllcl9jYWxsID0gZWRwX25vdGlmeV9oYW5kbGVyOwogCQlyZWdp c3Rlcl9yZWJvb3Rfbm90aWZpZXIoJmludGVsX2RwLT5lZHBfbm90aWZpZXIpOwogCkBAIC01NTkz LDcgKzU1OTYsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKIAkJICogSWYgdGhlIGN1cnJlbnQgcGlwZSBpc24ndCB2YWxp ZCwgdHJ5IHRoZSBQUFMgcGlwZSwgYW5kIGlmIHRoYXQKIAkJICogZmFpbHMganVzdCBhc3N1bWUg cGlwZSBBLgogCQkgKi8KLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKKwkJaWYgKElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKQogCQkJcGlwZSA9IERQX1BPUlRfVE9fUElQRV9DSFYoaW50ZWxfZHAt PkRQKTsKIAkJZWxzZQogCQkJcGlwZSA9IFBPUlRfVE9fUElQRShpbnRlbF9kcC0+RFApOwpAQCAt NTY4Miw3ICs1Njg1LDcgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRF TF9PVVRQVVRfRURQOwogCiAJLyogZURQIG9ubHkgb24gcG9ydCBCIGFuZC9vciBDIG9uIHZsdi9j aHYgKi8KLQlpZiAoV0FSTl9PTigoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2KSkgJiYKKwlpZiAoV0FSTl9PTigoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpICYmCiAJCSAgICBpc19lZHAoaW50ZWxfZHApICYmIHBvcnQgIT0g UE9SVF9CICYmIHBvcnQgIT0gUE9SVF9DKSkKIAkJcmV0dXJuIGZhbHNlOwogCkBAIC01NzkyLDcg KzU3OTUsNyBAQCBib29sIGludGVsX2RwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlp bnRlbF9lbmNvZGVyLT5nZXRfaHdfc3RhdGUgPSBpbnRlbF9kcF9nZXRfaHdfc3RhdGU7CiAJaW50 ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVsX2RwX2dldF9jb25maWc7CiAJaW50ZWxfZW5j b2Rlci0+c3VzcGVuZCA9IGludGVsX2RwX2VuY29kZXJfc3VzcGVuZDsKLQlpZiAoSVNfQ0hFUlJZ VklFVyhkZXYpKSB7CisJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCWludGVsX2Vu Y29kZXItPnByZV9wbGxfZW5hYmxlID0gY2h2X2RwX3ByZV9wbGxfZW5hYmxlOwogCQlpbnRlbF9l bmNvZGVyLT5wcmVfZW5hYmxlID0gY2h2X3ByZV9lbmFibGVfZHA7CiAJCWludGVsX2VuY29kZXIt PmVuYWJsZSA9IHZsdl9lbmFibGVfZHA7CkBAIC01ODE1LDcgKzU4MTgsNyBAQCBib29sIGludGVs X2RwX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRlbF9kaWdfcG9ydC0+bWF4X2xh bmVzID0gNDsKIAogCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRFA7Ci0JaWYg KElTX0NIRVJSWVZJRVcoZGV2KSkgeworCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewog CQlpZiAocG9ydCA9PSBQT1JUX0QpCiAJCQlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAxIDw8 IDI7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKaW5kZXggNDhlOGRkMTA4ZjRmLi40 ZTBkMDI1NDkwYTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCkBAIC03NDAsNyArNzQwLDYg QEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBl bmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZW5jb2Rlci0+YmFzZS5kZXY7CiAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBw b3dlcl9kb21haW47CiAJZW51bSBwb3J0IHBvcnQ7CiAJYm9vbCBhY3RpdmUgPSBmYWxzZTsKQEAg LTc3MCw3ICs3NjksOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kc2lfZ2V0X2h3X3N0YXRlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkgKiBiaXQgaW4gcG9ydCBDIGNvbnRyb2wgcmVn aXN0ZXIgZG9lcyBub3QgZ2V0IHNldC4gQXMgYQogCQkgKiB3b3JrYXJvdW5kLCBjaGVjayBwaXBl IEIgY29uZiBpbnN0ZWFkLgogCQkgKi8KLQkJaWYgKChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNf Q0hFUlJZVklFVyhkZXYpKSAmJiBwb3J0ID09IFBPUlRfQykKKwkJaWYgKChJU19WQUxMRVlWSUVX KGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgJiYKKwkJICAgIHBvcnQgPT0g UE9SVF9DKQogCQkJZW5hYmxlZCA9IEk5MTVfUkVBRChQSVBFQ09ORihQSVBFX0IpKSAmIFBJUEVD T05GX0VOQUJMRTsKIAogCQkvKiBUcnkgY29tbWFuZCBtb2RlIGlmIHZpZGVvIG1vZGUgbm90IGVu YWJsZWQgKi8KQEAgLTExMzcsNyArMTEzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVw YXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAogCX0KIAogCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJaWYgKElTX1ZBTExFWVZJRVco ZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKKwkJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3By aXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCQkvKgogCQkJICogZXNjYXBlIGNs b2NrIGRpdmlkZXIsIDIwTUh6LCBzaGFyZWQgZm9yIEEgYW5kIEMuCiAJCQkgKiBkZXZpY2UgcmVh ZHkgbXVzdCBiZSBvZmYgd2hlbiBkb2luZyB0aGlzISB0eGNsa2VzYz8KQEAgLTE0NDksNyArMTQ0 OSw3IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAo IWludGVsX2Jpb3NfaXNfZHNpX3ByZXNlbnQoZGV2X3ByaXYsICZwb3J0KSkKIAkJcmV0dXJuOwog Ci0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKKwlpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJ ZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlID0gVkxWX01JUElfQkFTRTsKIAl9IGVsc2UgaWYgKElT X0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9IEJYVF9N SVBJX0JBU0U7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggYzdkOWNkZGY0ZTNlLi5j ODI0M2RjNGQyYjkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKQEAgLTg4MSw3ICs4ODEs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCiAKIAlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpKQogCQloZG1pX3ZhbCB8PSBT RFZPX1BJUEVfU0VMX0NQVChjcnRjLT5waXBlKTsKLQllbHNlIGlmIChJU19DSEVSUllWSUVXKGRl dikpCisJZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCWhkbWlfdmFsIHw9IFNE Vk9fUElQRV9TRUxfQ0hWKGNydGMtPnBpcGUpOwogCWVsc2UKIAkJaGRtaV92YWwgfD0gU0RWT19Q SVBFX1NFTChjcnRjLT5waXBlKTsKQEAgLTkxMyw3ICs5MTMsNyBAQCBzdGF0aWMgYm9vbCBpbnRl bF9oZG1pX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWlm IChIQVNfUENIX0NQVChkZXZfcHJpdikpCiAJCSpwaXBlID0gUE9SVF9UT19QSVBFX0NQVCh0bXAp OwotCWVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKKwllbHNlIGlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSkKIAkJKnBpcGUgPSBTRFZPX1BPUlRfVE9fUElQRV9DSFYodG1wKTsKIAllbHNl CiAJCSpwaXBlID0gUE9SVF9UT19QSVBFKHRtcCk7CkBAIC0xODg1LDcgKzE4ODUsNyBAQCB2b2lk IGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsCiAJCUJVRygpOwogCX0KIAotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwg SVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCWludGVsX2hkbWktPndyaXRlX2luZm9mcmFtZSA9 IHZsdl93cml0ZV9pbmZvZnJhbWU7CiAJCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzID0gdmx2 X3NldF9pbmZvZnJhbWVzOwogCQlpbnRlbF9oZG1pLT5pbmZvZnJhbWVfZW5hYmxlZCA9IHZsdl9p bmZvZnJhbWVfZW5hYmxlZDsKQEAgLTE5NTksNyArMTk1OSw3IEBAIHZvaWQgaW50ZWxfaGRtaV9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCWludGVsX2VuY29kZXItPmdldF9od19z dGF0ZSA9IGludGVsX2hkbWlfZ2V0X2h3X3N0YXRlOwogCWludGVsX2VuY29kZXItPmdldF9jb25m aWcgPSBpbnRlbF9oZG1pX2dldF9jb25maWc7Ci0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewor CWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQlpbnRlbF9lbmNvZGVyLT5wcmVfcGxs X2VuYWJsZSA9IGNodl9oZG1pX3ByZV9wbGxfZW5hYmxlOwogCQlpbnRlbF9lbmNvZGVyLT5wcmVf ZW5hYmxlID0gY2h2X2hkbWlfcHJlX2VuYWJsZTsKIAkJaW50ZWxfZW5jb2Rlci0+ZW5hYmxlID0g dmx2X2VuYWJsZV9oZG1pOwpAQCAtMTk4Miw3ICsxOTgyLDcgQEAgdm9pZCBpbnRlbF9oZG1pX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRF TF9PVVRQVVRfSERNSTsKIAlpbnRlbF9lbmNvZGVyLT5wb3J0ID0gcG9ydDsKLQlpZiAoSVNfQ0hF UlJZVklFVyhkZXYpKSB7CisJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCWlmIChw b3J0ID09IFBPUlRfRCkKIAkJCWludGVsX2VuY29kZXItPmNydGNfbWFzayA9IDEgPDwgMjsKIAkJ ZWxzZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYwppbmRleCBhZmIyNjUyOTE5ZDAuLmQwNDE4NWUx ZWRkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKQEAgLTYzNSw3ICs2MzUsNyBAQCBpbnQg aW50ZWxfc2V0dXBfZ21idXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoSEFTX1BDSF9O T1AoZGV2X3ByaXYpKQogCQlyZXR1cm4gMDsKIAotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwg SVNfQ0hFUlJZVklFVyhkZXYpKQorCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19D SEVSUllWSUVXKGRldl9wcml2KSkKIAkJZGV2X3ByaXYtPmdwaW9fbW1pb19iYXNlID0gVkxWX0RJ U1BMQVlfQkFTRTsKIAllbHNlIGlmICghSEFTX0dNQ0hfRElTUExBWShkZXZfcHJpdikpCiAJCWRl dl9wcml2LT5ncGlvX21taW9fYmFzZSA9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCAyYzVk Y2QzYmEyYzIuLjIxMDc0MzRhNDJlNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC0zMjIs NyArMzIyLDcgQEAgdm9pZCBpbnRlbF9zZXRfbWVtb3J5X2N4c3Ioc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LCBib29sIGVuYWJsZSkKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g JmRldl9wcml2LT5kcm07CiAJdTMyIHZhbDsKIAotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwg SVNfQ0hFUlJZVklFVyhkZXYpKSB7CisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCUk5MTVfV1JJVEUoRldfQkxDX1NFTEZfVkxWLCBl bmFibGUgPyBGV19DU1BXUkRXTkVOIDogMCk7CiAJCVBPU1RJTkdfUkVBRChGV19CTENfU0VMRl9W TFYpOwogCQlkZXZfcHJpdi0+d20udmx2LmN4c3IgPSBlbmFibGU7CkBAIC03NzU1LDcgKzc3NTUs NyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCURSTV9E RUJVR19LTVMoIkZhaWxlZCB0byByZWFkIGRpc3BsYXkgcGxhbmUgbGF0ZW5jeS4gIgogCQkJCSAg ICAgICJEaXNhYmxlIEN4U1JcbiIpOwogCQl9Ci0JfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRl dikpIHsKKwl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7CiAJCXZsdl9zZXR1 cF93bV9sYXRlbmN5KGRldik7CiAJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IHZsdl91 cGRhdGVfd207CiAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcHNyLmMKaW5kZXggNGE5NzNiMzQzNDhhLi4yNzFhM2UyOWZmMjMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Bzci5jCkBAIC0zNTQsNyArMzU0LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfcHNy X21hdGNoX2NvbmRpdGlvbnMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkJcmV0dXJuIGZh bHNlOwogCX0KIAotCWlmICgoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 KSkgJiYKKwlpZiAoKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKSAmJgogCSAgICAhZGV2X3ByaXYtPnBzci5saW5rX3N0YW5kYnkpIHsKIAkJRFJNX0VS Uk9SKCJQU1IgY29uZGl0aW9uIGZhaWxlZDogTGluayBvZmYgcmVxdWVzdGVkIGJ1dCBub3Qgc3Vw cG9ydGVkIG9uIHRoaXMgcGxhdGZvcm1cbiIpOwogCQlyZXR1cm4gZmFsc2U7CkBAIC04MzcsNyAr ODM3LDcgQEAgdm9pZCBpbnRlbF9wc3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWlm IChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQkvKiBI U1cgYW5kIEJEVyByZXF1aXJlIHdvcmthcm91bmRzIHRoYXQgd2UgZG9uJ3QgaW1wbGVtZW50LiAq LwogCQlkZXZfcHJpdi0+cHNyLmxpbmtfc3RhbmRieSA9IGZhbHNlOwotCWVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCisJZWxzZSBpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCS8qIE9uIFZMViBh bmQgQ0hWIG9ubHkgc3RhbmRieSBtb2RlIGlzIHN1cHBvcnRlZC4gKi8KIAkJZGV2X3ByaXYtPnBz ci5saW5rX3N0YW5kYnkgPSB0cnVlOwogCWVsc2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uYwppbmRleCBlNGJiODVjOWM2ZTEuLjNhNmUxYTkzYWVkOSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMjU5OCw3ICsyNTk4LDcgQEAgdm9pZCBp bnRlbF9wb3dlcl9kb21haW5zX2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCBib29sIHJlc3VtZSkKIAkJc2tsX2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCByZXN1 bWUpOwogCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJYnh0X2Rpc3BsYXlf Y29yZV9pbml0KGRldl9wcml2LCByZXN1bWUpOwotCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhk ZXYpKSB7CisJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewogCQltdXRleF9s b2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKIAkJY2h2X3BoeV9jb250cm9sX2luaXQoZGV2X3By aXYpOwogCQltdXRleF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwppbmRleCBmZWZkMzAzNGFlYWQuLmY3NjBkNWZjYmU0OCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2bHZfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRwbGFuZSwKIAlpZiAoa2V5LT5mbGFncyAmIEk5MTVf U0VUX0NPTE9SS0VZX1NPVVJDRSkKIAkJc3ByY3RsIHw9IFNQX1NPVVJDRV9LRVk7CiAKLQlpZiAo SVNfQ0hFUlJZVklFVyhkZXYpICYmIHBpcGUgPT0gUElQRV9CKQorCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSAmJiBwaXBlID09IFBJUEVfQikKIAkJY2h2X3VwZGF0ZV9jc2MoaW50ZWxfcGxh bmUsIGZiLT5waXhlbF9mb3JtYXQpOwogCiAJSTkxNV9XUklURShTUFNUUklERShwaXBlLCBwbGFu ZSksIGZiLT5waXRjaGVzWzBdKTsKQEAgLTk0NCw2ICs5NDQsNyBAQCBpbnRlbF9jaGVja19zcHJp dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiBpbnQgaW50ZWxfc3ByaXRlX3NldF9j b2xvcmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJICAgICAgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5 ICpzZXQgPSBkYXRhOwogCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwogCXN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlOwpAQCAtOTU1LDcgKzk1Niw3IEBAIGludCBpbnRlbF9zcHJp dGVfc2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJaWYg KChzZXQtPmZsYWdzICYgKEk5MTVfU0VUX0NPTE9SS0VZX0RFU1RJTkFUSU9OIHwgSTkxNV9TRVRf Q09MT1JLRVlfU09VUkNFKSkgPT0gKEk5MTVfU0VUX0NPTE9SS0VZX0RFU1RJTkFUSU9OIHwgSTkx NV9TRVRfQ09MT1JLRVlfU09VUkNFKSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoKElTX1ZB TExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpICYmCisJaWYgKChJU19WQUxMRVlW SUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgJiYKIAkgICAgc2V0LT5m bGFncyAmIEk5MTVfU0VUX0NPTE9SS0VZX0RFU1RJTkFUSU9OKQogCQlyZXR1cm4gLUVJTlZBTDsK IApAQCAtMTA0Miw2ICsxMDQzLDcgQEAgc3RhdGljIHVpbnQzMl90IHNrbF9wbGFuZV9mb3JtYXRz W10gPSB7CiBpbnQKIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51 bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9 IE5VTEw7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9IE5VTEw7CiAJdW5zaWdu ZWQgbG9uZyBwb3NzaWJsZV9jcnRjczsKQEAgLTEwODQsNyArMTA4Niw3IEBAIGludGVsX3BsYW5l X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkK IAogCWNhc2UgNzoKIAljYXNlIDg6Ci0JCWlmIChJU19JVllCUklER0UodG9faTkxNShkZXYpKSkg eworCQlpZiAoSVNfSVZZQlJJREdFKGRldl9wcml2KSkgewogCQkJaW50ZWxfcGxhbmUtPmNhbl9z Y2FsZSA9IHRydWU7CiAJCQlpbnRlbF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDI7CiAJCX0gZWxz ZSB7CkBAIC0xMDkyLDcgKzEwOTQsNyBAQCBpbnRlbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIGVudW0gcGlwZSBwaXBlLCBpbnQgcGxhbmUpCiAJCQlpbnRlbF9wbGFuZS0+bWF4 X2Rvd25zY2FsZSA9IDE7CiAJCX0KIAotCQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NI RVJSWVZJRVcoZGV2KSkgeworCQlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpIHsKIAkJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSB2bHZf dXBkYXRlX3BsYW5lOwogCQkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSB2bHZfZGlzYWJs ZV9wbGFuZTsKIAotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=