From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 02/19] drm/i915: Make INTEL_PCH_TYPE & co only take dev_priv Date: Tue, 11 Oct 2016 14:21:35 +0100 Message-ID: <1476192112-25336-3-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-x242.google.com (mail-lf0-x242.google.com [IPv6:2a00:1450:4010:c07::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A2DF6E661 for ; Tue, 11 Oct 2016 13:22:12 +0000 (UTC) Received: by mail-lf0-x242.google.com with SMTP id p80so3751640lfp.1 for ; Tue, 11 Oct 2016 06:22:12 -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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRoaXMgc2F2 ZXMgMTg3MiBieXRlcyBvZiAucm9kYXRhIHN0cmluZ3MuCgp2MjoKICogUmViYXNlLgogKiBBZGQg cGFyYW50aGVzZXMgYXJvdW5kIGRldl9wcml2LiAoVmlsbGUgU3lyamFsYSkKClNpZ25lZC1vZmYt Ynk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICB8IDE2ICsrKysrKy0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jIHwgIDQgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jICAgICAgIHwgMjAgKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdWRpby5jICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5j ICAgICAgfCAyNSArKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyAgfCA0OCArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICB8IDI3ICsrKysrKysrKystLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIHwgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICAgfCAxOSArKysrKysrLS0tLS0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9sdmRzLmMgICAgIHwgMjIgKysrKysrKystLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICB8ICA2ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zZHZvLmMgICAgIHwgMTIgKysrKy0tLS0tCiAxNCBmaWxlcyBjaGFuZ2VkLCAx MDcgaW5zZXJ0aW9ucygrKSwgMTAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IDUxZGQxMGYyNWY1OS4uM2NhYTFjNzY3NTEyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKQEAgLTI4NTAsMTggKzI4NTAsMTggQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7CiAj ZGVmaW5lIElOVEVMX1BDSF9QM1hfREVWSUNFX0lEX1RZUEUJCTB4NzAwMAogI2RlZmluZSBJTlRF TF9QQ0hfUUVNVV9ERVZJQ0VfSURfVFlQRQkJMHgyOTAwIC8qIHFlbXUgcTM1IGhhcyAyOTE4ICov CiAKLSNkZWZpbmUgSU5URUxfUENIX1RZUEUoZGV2KSAoX19JOTE1X18oZGV2KS0+cGNoX3R5cGUp Ci0jZGVmaW5lIEhBU19QQ0hfS0JQKGRldikgKElOVEVMX1BDSF9UWVBFKGRldikgPT0gUENIX0tC UCkKLSNkZWZpbmUgSEFTX1BDSF9TUFQoZGV2KSAoSU5URUxfUENIX1RZUEUoZGV2KSA9PSBQQ0hf U1BUKQotI2RlZmluZSBIQVNfUENIX0xQVChkZXYpIChJTlRFTF9QQ0hfVFlQRShkZXYpID09IFBD SF9MUFQpCisjZGVmaW5lIElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSAoKGRldl9wcml2KS0+cGNo X3R5cGUpCisjZGVmaW5lIEhBU19QQ0hfS0JQKGRldl9wcml2KSAoSU5URUxfUENIX1RZUEUoZGV2 X3ByaXYpID09IFBDSF9LQlApCisjZGVmaW5lIEhBU19QQ0hfU1BUKGRldl9wcml2KSAoSU5URUxf UENIX1RZUEUoZGV2X3ByaXYpID09IFBDSF9TUFQpCisjZGVmaW5lIEhBU19QQ0hfTFBUKGRldl9w cml2KSAoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID09IFBDSF9MUFQpCiAjZGVmaW5lIEhBU19Q Q0hfTFBUX0xQKGRldl9wcml2KSBcCiAJKChkZXZfcHJpdiktPnBjaF9pZCA9PSBJTlRFTF9QQ0hf TFBUX0xQX0RFVklDRV9JRF9UWVBFKQogI2RlZmluZSBIQVNfUENIX0xQVF9IKGRldl9wcml2KSBc CiAJKChkZXZfcHJpdiktPnBjaF9pZCA9PSBJTlRFTF9QQ0hfTFBUX0RFVklDRV9JRF9UWVBFKQot I2RlZmluZSBIQVNfUENIX0NQVChkZXYpIChJTlRFTF9QQ0hfVFlQRShkZXYpID09IFBDSF9DUFQp Ci0jZGVmaW5lIEhBU19QQ0hfSUJYKGRldikgKElOVEVMX1BDSF9UWVBFKGRldikgPT0gUENIX0lC WCkKLSNkZWZpbmUgSEFTX1BDSF9OT1AoZGV2KSAoSU5URUxfUENIX1RZUEUoZGV2KSA9PSBQQ0hf Tk9QKQotI2RlZmluZSBIQVNfUENIX1NQTElUKGRldikgKElOVEVMX1BDSF9UWVBFKGRldikgIT0g UENIX05PTkUpCisjZGVmaW5lIEhBU19QQ0hfQ1BUKGRldl9wcml2KSAoSU5URUxfUENIX1RZUEUo ZGV2X3ByaXYpID09IFBDSF9DUFQpCisjZGVmaW5lIEhBU19QQ0hfSUJYKGRldl9wcml2KSAoSU5U RUxfUENIX1RZUEUoZGV2X3ByaXYpID09IFBDSF9JQlgpCisjZGVmaW5lIEhBU19QQ0hfTk9QKGRl dl9wcml2KSAoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID09IFBDSF9OT1ApCisjZGVmaW5lIEhB U19QQ0hfU1BMSVQoZGV2X3ByaXYpIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgIT0gUENIX05P TkUpCiAKICNkZWZpbmUgSEFTX0dNQ0hfRElTUExBWShkZXYpIChJTlRFTF9JTkZPKGRldiktPmhh c19nbWNoX2Rpc3BsYXkpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IGZkZDQ5NmU2YzA4 MS4uNmIwOTlmMDE5OGNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQzNjUsNyArNDM2 NSw3IEBAIGk5MTVfZ2VtX2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJSTkxNV9X UklURShNSV9QUkVESUNBVEVfUkVTVUxUXzIsIElTX0hTV19HVDMoZGV2KSA/CiAJCQkgICBMT1dF Ul9TTElDRV9FTkFCTEVEIDogTE9XRVJfU0xJQ0VfRElTQUJMRUQpOwogCi0JaWYgKEhBU19QQ0hf Tk9QKGRldikpIHsKKwlpZiAoSEFTX1BDSF9OT1AoZGV2X3ByaXYpKSB7CiAJCWlmIChJU19JVllC UklER0UoZGV2KSkgewogCQkJdTMyIHRlbXAgPSBJOTE1X1JFQUQoR0VON19NU0dfQ1RMKTsKIAkJ CXRlbXAgJj0gfihXQUlUX0ZPUl9QQ0hfRkxSX0FDSyB8IFdBSVRfRk9SX1BDSF9SRVNFVF9BQ0sp OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggYjViNTg2OTJhYzVhLi5k NDE1MTdlMTE5NzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vy cm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwpAQCAtNDIx LDcgKzQyMSw3IEBAIGludCBpOTE1X2Vycm9yX3N0YXRlX3RvX3N0cihzdHJ1Y3QgZHJtX2k5MTVf ZXJyb3Jfc3RhdGVfYnVmICptLAogCQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQogCQkJZXJyX3By aW50ZihtLCAiR1RJRVIgZ3QgJWQ6IDB4JTA4eFxuIiwgaSwKIAkJCQkgICBlcnJvci0+Z3RpZXJb aV0pOwotCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXYpIHx8IElTX1ZBTExFWVZJRVcoZGV2 KSkKKwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpIHx8IElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpKQogCQllcnJfcHJpbnRmKG0sICJHVElFUjogMHglMDh4XG4iLCBlcnJvci0+Z3Rp ZXJbMF0pOwogCWVycl9wcmludGYobSwgIlBHVEJMX0VSOiAweCUwOHhcbiIsIGVycm9yLT5wZ3Ri bF9lcik7CiAJZXJyX3ByaW50ZihtLCAiRk9SQ0VXQUtFOiAweCUwOHhcbiIsIGVycm9yLT5mb3Jj ZXdha2UpOwpAQCAtMTM5Myw3ICsxMzkzLDcgQEAgc3RhdGljIHZvaWQgaTkxNV9jYXB0dXJlX3Jl Z19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWVycm9yLT5pZXIg PSBJOTE1X1JFQUQoR0VOOF9ERV9NSVNDX0lFUik7CiAJCWZvciAoaSA9IDA7IGkgPCA0OyBpKysp CiAJCQllcnJvci0+Z3RpZXJbaV0gPSBJOTE1X1JFQUQoR0VOOF9HVF9JRVIoaSkpOwotCX0gZWxz ZSBpZiAoSEFTX1BDSF9TUExJVChkZXYpKSB7CisJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRl dl9wcml2KSkgewogCQllcnJvci0+aWVyID0gSTkxNV9SRUFEKERFSUVSKTsKIAkJZXJyb3ItPmd0 aWVyWzBdID0gSTkxNV9SRUFEKEdUSUVSKTsKIAl9IGVsc2UgaWYgKElTX0dFTjIoZGV2KSkgewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggYmQ2YzhiMGVlYWVmLi44ODM0NzQ0MTFhZWUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMzIzNywxMiArMzIzNywxMiBAQCBzdGF0aWMgdm9p ZCBpYnhfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCi0JaWYgKEhBU19QQ0hfTk9Q KGRldikpCisJaWYgKEhBU19QQ0hfTk9QKGRldl9wcml2KSkKIAkJcmV0dXJuOwogCiAJR0VONV9J UlFfUkVTRVQoU0RFKTsKIAotCWlmIChIQVNfUENIX0NQVChkZXYpIHx8IEhBU19QQ0hfTFBUKGRl dikpCisJaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSB8fCBIQVNfUENIX0xQVChkZXZfcHJpdikp CiAJCUk5MTVfV1JJVEUoU0VSUl9JTlQsIDB4ZmZmZmZmZmYpOwogfQogCkBAIC0zMjU4LDcgKzMy NTgsNyBAQCBzdGF0aWMgdm9pZCBpYnhfaXJxX3ByZV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKIAotCWlmIChIQVNfUENIX05PUChkZXYpKQorCWlmIChIQVNfUENIX05PUChkZXZf cHJpdikpCiAJCXJldHVybjsKIAogCVdBUk5fT04oSTkxNV9SRUFEKFNERUlFUikgIT0gMCk7CkBA IC0zMzgzLDcgKzMzODMsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2lycV9yZXNldChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCUdFTjVfSVJRX1JFU0VUKEdFTjhfREVfTUlTQ18pOwogCUdFTjVfSVJR X1JFU0VUKEdFTjhfUENVXyk7CiAKLQlpZiAoSEFTX1BDSF9TUExJVChkZXYpKQorCWlmIChIQVNf UENIX1NQTElUKGRldl9wcml2KSkKIAkJaWJ4X2lycV9yZXNldChkZXYpOwogfQogCkBAIC0zNTcy LDEwICszNTcyLDEwIEBAIHN0YXRpYyB2b2lkIGlieF9pcnFfcG9zdGluc3RhbGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CiAJdTMyIG1hc2s7CiAKLQlpZiAoSEFTX1BDSF9OT1AoZGV2KSkKKwlpZiAoSEFT X1BDSF9OT1AoZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKLQlpZiAoSEFTX1BDSF9JQlgoZGV2KSkK KwlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpKQogCQltYXNrID0gU0RFX0dNQlVTIHwgU0RFX0FV WF9NQVNLIHwgU0RFX1BPSVNPTjsKIAllbHNlCiAJCW1hc2sgPSBTREVfR01CVVNfQ1BUIHwgU0RF X0FVWF9NQVNLX0NQVDsKQEAgLTM3OTYsMTMgKzM3OTYsMTMgQEAgc3RhdGljIGludCBnZW44X2ly cV9wb3N0aW5zdGFsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAotCWlmIChIQVNfUENIX1NQTElU KGRldikpCisJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQogCQlpYnhfaXJxX3ByZV9wb3N0 aW5zdGFsbChkZXYpOwogCiAJZ2VuOF9ndF9pcnFfcG9zdGluc3RhbGwoZGV2X3ByaXYpOwogCWdl bjhfZGVfaXJxX3Bvc3RpbnN0YWxsKGRldl9wcml2KTsKIAotCWlmIChIQVNfUENIX1NQTElUKGRl dikpCisJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQogCQlpYnhfaXJxX3Bvc3RpbnN0YWxs KGRldik7CiAKIAlJOTE1X1dSSVRFKEdFTjhfTUFTVEVSX0lSUSwgR0VOOF9NQVNURVJfSVJRX0NP TlRST0wpOwpAQCAtNDU5OSwxMSArNDU5OSwxMSBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJs YW5rID0gZ2VuOF9kaXNhYmxlX3ZibGFuazsKIAkJaWYgKElTX0JST1hUT04oZGV2KSkKIAkJCWRl dl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBieHRfaHBkX2lycV9zZXR1cDsKLQkJZWxz ZSBpZiAoSEFTX1BDSF9TUFQoZGV2KSB8fCBIQVNfUENIX0tCUChkZXYpKQorCQllbHNlIGlmIChI QVNfUENIX1NQVChkZXZfcHJpdikgfHwgSEFTX1BDSF9LQlAoZGV2X3ByaXYpKQogCQkJZGV2X3By aXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IHNwdF9ocGRfaXJxX3NldHVwOwogCQllbHNlCiAJ CQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaWxrX2hwZF9pcnFfc2V0dXA7Ci0J fSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldikpIHsKKwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BM SVQoZGV2X3ByaXYpKSB7CiAJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGlyb25sYWtlX2ly cV9oYW5kbGVyOwogCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBpcm9ubGFrZV9pcnFf cmVzZXQ7CiAJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpcm9ubGFrZV9pcnFfcG9z dGluc3RhbGw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYwppbmRleCA5NTgzZjQzMmUwMmUu LjEzYjcyNjkxNmY5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVk aW8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCkBAIC00MjMsNyAr NDIzLDcgQEAgc3RhdGljIHZvaWQgaWxrX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yLAogCSAqIGluZnJhc3RydWN0dXJlIGlzIG5vdCB0aGVyZSB5ZXQu CiAJICovCiAKLQlpZiAoSEFTX1BDSF9JQlgoY29ubmVjdG9yLT5kZXYpKSB7CisJaWYgKEhBU19Q Q0hfSUJYKGRldl9wcml2KSkgewogCQloZG1pd19oZG1pZWRpZCA9IElCWF9IRE1JV19IRE1JRURJ RChwaXBlKTsKIAkJYXVkX2NvbmZpZyA9IElCWF9BVURfQ0ZHKHBpcGUpOwogCQlhdWRfY250bF9z dCA9IElCWF9BVURfQ05UTF9TVChwaXBlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2NydC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKaW5kZXgg ZDRiOWIxNjZkZTVkLi5mODkxOWVmM2E3YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2NydC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCkBA IC04NCw3ICs4NCw3IEBAIHN0YXRpYyBib29sIGludGVsX2NydF9nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKCEodG1wICYgQURQQV9EQUNfRU5BQkxFKSkK IAkJZ290byBvdXQ7CiAKLQlpZiAoSEFTX1BDSF9DUFQoZGV2KSkKKwlpZiAoSEFTX1BDSF9DUFQo ZGV2X3ByaXYpKQogCQkqcGlwZSA9IFBPUlRfVE9fUElQRV9DUFQodG1wKTsKIAllbHNlCiAJCSpw aXBlID0gUE9SVF9UT19QSVBFKHRtcCk7CkBAIC0xNjUsMTYgKzE2NSwxNiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9jcnRfc2V0X2RwbXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCWFk cGEgfD0gQURQQV9WU1lOQ19BQ1RJVkVfSElHSDsKIAogCS8qIEZvciBDUFQgYWxsb3cgMyBwaXBl IGNvbmZpZywgZm9yIG90aGVycyBqdXN0IHVzZSBBIG9yIEIgKi8KLQlpZiAoSEFTX1BDSF9MUFQo ZGV2KSkKKwlpZiAoSEFTX1BDSF9MUFQoZGV2X3ByaXYpKQogCQk7IC8qIFRob3NlIGJpdHMgZG9u J3QgZXhpc3QgaGVyZSAqLwotCWVsc2UgaWYgKEhBU19QQ0hfQ1BUKGRldikpCisJZWxzZSBpZiAo SEFTX1BDSF9DUFQoZGV2X3ByaXYpKQogCQlhZHBhIHw9IFBPUlRfVFJBTlNfU0VMX0NQVChjcnRj LT5waXBlKTsKIAllbHNlIGlmIChjcnRjLT5waXBlID09IDApCiAJCWFkcGEgfD0gQURQQV9QSVBF X0FfU0VMRUNUOwogCWVsc2UKIAkJYWRwYSB8PSBBRFBBX1BJUEVfQl9TRUxFQ1Q7CiAKLQlpZiAo IUhBU19QQ0hfU1BMSVQoZGV2KSkKKwlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQogCQlJ OTE1X1dSSVRFKEJDTFJQQVQoY3J0Yy0+cGlwZSksIDApOwogCiAJc3dpdGNoIChtb2RlKSB7CkBA IC0yNDEsNyArMjQxLDggQEAgaW50ZWxfY3J0X21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKIAkJICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKIHsK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Ci0JaW50IG1heF9kb3Rj bGsgPSB0b19pOTE1KGRldiktPm1heF9kb3RjbGtfZnJlcTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJaW50IG1heF9kb3RjbGsgPSBkZXZfcHJp di0+bWF4X2RvdGNsa19mcmVxOwogCWludCBtYXhfY2xvY2s7CiAKIAlpZiAobW9kZS0+ZmxhZ3Mg JiBEUk1fTU9ERV9GTEFHX0RCTFNDQU4pCkBAIC0yNTAsNyArMjUxLDcgQEAgaW50ZWxfY3J0X21v ZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlpZiAobW9kZS0+Y2xv Y2sgPCAyNTAwMCkKIAkJcmV0dXJuIE1PREVfQ0xPQ0tfTE9XOwogCi0JaWYgKEhBU19QQ0hfTFBU KGRldikpCisJaWYgKEhBU19QQ0hfTFBUKGRldl9wcml2KSkKIAkJbWF4X2Nsb2NrID0gMTgwMDAw OwogCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKIAkJLyoKQEAgLTI2OSw3ICsyNzAsNyBA QCBpbnRlbF9jcnRfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAog CQlyZXR1cm4gTU9ERV9DTE9DS19ISUdIOwogCiAJLyogVGhlIEZESSByZWNlaXZlciBvbiBMUFQg b25seSBzdXBwb3J0cyA4YnBjIGFuZCBvbmx5IGhhcyAyIGxhbmVzLiAqLwotCWlmIChIQVNfUENI X0xQVChkZXYpICYmCisJaWYgKEhBU19QQ0hfTFBUKGRldl9wcml2KSAmJgogCSAgICAoaXJvbmxh a2VfZ2V0X2xhbmVzX3JlcXVpcmVkKG1vZGUtPmNsb2NrLCAyNzAwMDAsIDI0KSA+IDIpKQogCQly ZXR1cm4gTU9ERV9DTE9DS19ISUdIOwogCkBAIC0zMTIsNyArMzEzLDcgQEAgc3RhdGljIGJvb2wg aW50ZWxfaXJvbmxha2VfY3J0X2RldGVjdF9ob3RwbHVnKHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCiAKIAkvKiBUaGUgZmlyc3QgdGltZSB0aHJvdWdoLCB0cmlnZ2VyIGFuIGV4cGxp Y2l0IGRldGVjdGlvbiBjeWNsZSAqLwogCWlmIChjcnQtPmZvcmNlX2hvdHBsdWdfcmVxdWlyZWQp IHsKLQkJYm9vbCB0dXJuX29mZl9kYWMgPSBIQVNfUENIX1NQTElUKGRldik7CisJCWJvb2wgdHVy bl9vZmZfZGFjID0gSEFTX1BDSF9TUExJVChkZXZfcHJpdik7CiAJCXUzMiBzYXZlX2FkcGE7CiAK IAkJY3J0LT5mb3JjZV9ob3RwbHVnX3JlcXVpcmVkID0gMDsKQEAgLTQxOSw3ICs0MjAsNyBAQCBz dGF0aWMgYm9vbCBpbnRlbF9jcnRfZGV0ZWN0X2hvdHBsdWcoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIAlib29sIHJldCA9IGZhbHNlOwogCWludCBpLCB0cmllcyA9IDA7CiAKLQlp ZiAoSEFTX1BDSF9TUExJVChkZXYpKQorCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKIAkJ cmV0dXJuIGludGVsX2lyb25sYWtlX2NydF9kZXRlY3RfaG90cGx1Zyhjb25uZWN0b3IpOwogCiAJ aWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKQEAgLTg0Nyw3ICs4NDgsNyBAQCB2b2lkIGludGVsX2Ny dF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaTkxNV9yZWdfdCBhZHBhX3JlZzsKIAl1 MzIgYWRwYTsKIAotCWlmIChIQVNfUENIX1NQTElUKGRldikpCisJaWYgKEhBU19QQ0hfU1BMSVQo ZGV2X3ByaXYpKQogCQlhZHBhX3JlZyA9IFBDSF9BRFBBOwogCWVsc2UgaWYgKElTX1ZBTExFWVZJ RVcoZGV2KSkKIAkJYWRwYV9yZWcgPSBWTFZfQURQQTsKQEAgLTkwNyw3ICs5MDgsNyBAQCB2b2lk IGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJY3J0LT5hZHBhX3JlZyA9 IGFkcGFfcmVnOwogCiAJY3J0LT5iYXNlLmNvbXB1dGVfY29uZmlnID0gaW50ZWxfY3J0X2NvbXB1 dGVfY29uZmlnOwotCWlmIChIQVNfUENIX1NQTElUKGRldikpIHsKKwlpZiAoSEFTX1BDSF9TUExJ VChkZXZfcHJpdikpIHsKIAkJY3J0LT5iYXNlLmRpc2FibGUgPSBwY2hfZGlzYWJsZV9jcnQ7CiAJ CWNydC0+YmFzZS5wb3N0X2Rpc2FibGUgPSBwY2hfcG9zdF9kaXNhYmxlX2NydDsKIAl9IGVsc2Ug ewpAQCAtOTQ0LDcgKzk0NSw3IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkgKiBwb2xhcml0eSBhbmQgbGluayByZXZlcnNhbCBiaXRzIG9yIG5vdCwgaW5z dGVhZCBvZiByZWx5aW5nIG9uIHRoZQogCSAqIEJJT1MuCiAJICovCi0JaWYgKEhBU19QQ0hfTFBU KGRldikpIHsKKwlpZiAoSEFTX1BDSF9MUFQoZGV2X3ByaXYpKSB7CiAJCXUzMiBmZGlfY29uZmln ID0gRkRJX1JYX1BPTEFSSVRZX1JFVkVSU0VEX0xQVCB8CiAJCQkJIEZESV9SWF9MSU5LX1JFVkVS U0FMX09WRVJSSURFOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNmU0 NDdiNTc1NDEzLi4wYTY5ZTgwODIxZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKQEAgLTE3ODQsNyArMTc4NCw2IEBAIHZvaWQgdmx2X3dhaXRfcG9ydF9yZWFkeShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9lbmFibGVf cGNoX3RyYW5zY29kZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJCQkg ICBlbnVtIHBpcGUgcGlwZSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2 LT5kcm07CiAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gZGV2X3ByaXYtPnBpcGVfdG9fY3J0Y19t YXBwaW5nW3BpcGVdOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKIAlpOTE1X3JlZ190IHJlZzsKQEAgLTE3OTcsNyArMTc5Niw3IEBAIHN0YXRp YyB2b2lkIGlyb25sYWtlX2VuYWJsZV9wY2hfdHJhbnNjb2RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJYXNzZXJ0X2ZkaV90eF9lbmFibGVkKGRldl9wcml2LCBwaXBlKTsK IAlhc3NlcnRfZmRpX3J4X2VuYWJsZWQoZGV2X3ByaXYsIHBpcGUpOwogCi0JaWYgKEhBU19QQ0hf Q1BUKGRldikpIHsKKwlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7CiAJCS8qIFdvcmthcm91 bmQ6IFNldCB0aGUgdGltaW5nIG92ZXJyaWRlIGJpdCBiZWZvcmUgZW5hYmxpbmcgdGhlCiAJCSAq IHBjaCB0cmFuc2NvZGVyLiAqLwogCQlyZWcgPSBUUkFOU19DSElDS0VOMihwaXBlKTsKQEAgLTE4 NzUsNyArMTg3NCw2IEBAIHN0YXRpYyB2b2lkIGxwdF9lbmFibGVfcGNoX3RyYW5zY29kZXIoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQgaXJvbmxha2VfZGlz YWJsZV9wY2hfdHJhbnNjb2RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CQkJCSAgICBlbnVtIHBpcGUgcGlwZSkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRl dl9wcml2LT5kcm07CiAJaTkxNV9yZWdfdCByZWc7CiAJdWludDMyX3QgdmFsOwogCkBAIC0xODk2 LDcgKzE4OTQsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9kaXNhYmxlX3BjaF90cmFuc2NvZGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgNTApKQogCQlEUk1f RVJST1IoImZhaWxlZCB0byBkaXNhYmxlIHRyYW5zY29kZXIgJWNcbiIsIHBpcGVfbmFtZShwaXBl KSk7CiAKLQlpZiAoSEFTX1BDSF9DUFQoZGV2KSkgeworCWlmIChIQVNfUENIX0NQVChkZXZfcHJp dikpIHsKIAkJLyogV29ya2Fyb3VuZDogQ2xlYXIgdGhlIHRpbWluZyBvdmVycmlkZSBjaGlja2Vu IGJpdCBhZ2Fpbi4gKi8KIAkJcmVnID0gVFJBTlNfQ0hJQ0tFTjIocGlwZSk7CiAJCXZhbCA9IEk5 MTVfUkVBRChyZWcpOwpAQCAtMzcxMiw3ICszNzEwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBk YXRlX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCiAJCWlmIChwaXBlX2Nv bmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkKIAkJCXNreWxha2VfcGZpdF9lbmFibGUoY3J0Yyk7Ci0J fSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldikpIHsKKwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BM SVQoZGV2X3ByaXYpKSB7CiAJCWlmIChwaXBlX2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkKIAkJ CWlyb25sYWtlX3BmaXRfZW5hYmxlKGNydGMpOwogCQllbHNlIGlmIChvbGRfY3J0Y19zdGF0ZS0+ cGNoX3BmaXQuZW5hYmxlZCkKQEAgLTM3NDMsNyArMzc0MSw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2ZkaV9ub3JtYWxfdHJhaW4oc3RydWN0IGRybV9jcnRjICpjcnRjKQogCiAJcmVnID0gRkRJX1JY X0NUTChwaXBlKTsKIAl0ZW1wID0gSTkxNV9SRUFEKHJlZyk7Ci0JaWYgKEhBU19QQ0hfQ1BUKGRl dikpIHsKKwlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7CiAJCXRlbXAgJj0gfkZESV9MSU5L X1RSQUlOX1BBVFRFUk5fTUFTS19DUFQ7CiAJCXRlbXAgfD0gRkRJX0xJTktfVFJBSU5fTk9STUFM X0NQVDsKIAl9IGVsc2UgewpAQCAtMzkwMSw3ICszODk5LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9m ZGlfbGlua190cmFpbihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAKIAlyZWcgPSBGRElfUlhfQ1RM KHBpcGUpOwogCXRlbXAgPSBJOTE1X1JFQUQocmVnKTsKLQlpZiAoSEFTX1BDSF9DUFQoZGV2KSkg eworCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdikpIHsKIAkJdGVtcCAmPSB+RkRJX0xJTktfVFJB SU5fUEFUVEVSTl9NQVNLX0NQVDsKIAkJdGVtcCB8PSBGRElfTElOS19UUkFJTl9QQVRURVJOXzFf Q1BUOwogCX0gZWxzZSB7CkBAIC0zOTU0LDcgKzM5NTIsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2Zk aV9saW5rX3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAogCXJlZyA9IEZESV9SWF9DVEwo cGlwZSk7CiAJdGVtcCA9IEk5MTVfUkVBRChyZWcpOwotCWlmIChIQVNfUENIX0NQVChkZXYpKSB7 CisJaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSkgewogCQl0ZW1wICY9IH5GRElfTElOS19UUkFJ Tl9QQVRURVJOX01BU0tfQ1BUOwogCQl0ZW1wIHw9IEZESV9MSU5LX1RSQUlOX1BBVFRFUk5fMl9D UFQ7CiAJfSBlbHNlIHsKQEAgLTQyMDgsNyArNDIwNiw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtl X2ZkaV9kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAl1ZGVsYXkoMTAwKTsKIAogCS8q IElyb25sYWtlIHdvcmthcm91bmQsIGRpc2FibGUgY2xvY2sgcG9pbnRlciBhZnRlciBkb3duaW5n IEZESSAqLwotCWlmIChIQVNfUENIX0lCWChkZXYpKQorCWlmIChIQVNfUENIX0lCWChkZXZfcHJp dikpCiAJCUk5MTVfV1JJVEUoRkRJX1JYX0NISUNLRU4ocGlwZSksIEZESV9SWF9QSEFTRV9TWU5D X1BPSU5URVJfT1ZSKTsKIAogCS8qIHN0aWxsIHNldCB0cmFpbiBwYXR0ZXJuIDEgKi8KQEAgLTQy MjAsNyArNDIxOCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2ZkaV9kaXNhYmxlKHN0cnVjdCBk cm1fY3J0YyAqY3J0YykKIAogCXJlZyA9IEZESV9SWF9DVEwocGlwZSk7CiAJdGVtcCA9IEk5MTVf UkVBRChyZWcpOwotCWlmIChIQVNfUENIX0NQVChkZXYpKSB7CisJaWYgKEhBU19QQ0hfQ1BUKGRl dl9wcml2KSkgewogCQl0ZW1wICY9IH5GRElfTElOS19UUkFJTl9QQVRURVJOX01BU0tfQ1BUOwog CQl0ZW1wIHw9IEZESV9MSU5LX1RSQUlOX1BBVFRFUk5fMV9DUFQ7CiAJfSBlbHNlIHsKQEAgLTQ1 NTYsNyArNDU1NCw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogCiAJLyogV2UgbmVlZCB0byBwcm9ncmFtIHRoZSByaWdodCBjbG9jayBz ZWxlY3Rpb24gYmVmb3JlIHdyaXRpbmcgdGhlIHBpeGVsCiAJICogbXV0bGlwbGllciBpbnRvIHRo ZSBEUExMLiAqLwotCWlmIChIQVNfUENIX0NQVChkZXYpKSB7CisJaWYgKEhBU19QQ0hfQ1BUKGRl dl9wcml2KSkgewogCQl1MzIgc2VsOwogCiAJCXRlbXAgPSBJOTE1X1JFQUQoUENIX0RQTExfU0VM KTsKQEAgLTQ1ODYsNyArNDU4NCw4IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFibGUo c3RydWN0IGRybV9jcnRjICpjcnRjKQogCWludGVsX2ZkaV9ub3JtYWxfdHJhaW4oY3J0Yyk7CiAK IAkvKiBGb3IgUENIIERQLCBlbmFibGUgVFJBTlNfRFBfQ1RMICovCi0JaWYgKEhBU19QQ0hfQ1BU KGRldikgJiYgaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihpbnRlbF9jcnRjLT5jb25maWcpKSB7 CisJaWYgKEhBU19QQ0hfQ1BUKGRldl9wcml2KSAmJgorCSAgICBpbnRlbF9jcnRjX2hhc19kcF9l bmNvZGVyKGludGVsX2NydGMtPmNvbmZpZykpIHsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFkanVzdGVkX21vZGUgPQogCQkJJmludGVsX2NydGMtPmNvbmZpZy0+YmFzZS5hZGp1 c3RlZF9tb2RlOwogCQl1MzIgYnBjID0gKEk5MTVfUkVBRChQSVBFQ09ORihwaXBlKSkgJiBQSVBF Q09ORl9CUENfTUFTSykgPj4gNTsKQEAgLTUzODAsNyArNTM3OSw3IEBAIHN0YXRpYyB2b2lkIGly b25sYWtlX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK IAogCWludGVsX2VuY29kZXJzX2VuYWJsZShjcnRjLCBwaXBlX2NvbmZpZywgb2xkX3N0YXRlKTsK IAotCWlmIChIQVNfUENIX0NQVChkZXYpKQorCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdikpCiAJ CWNwdF92ZXJpZnlfbW9kZXNldChkZXYsIGludGVsX2NydGMtPnBpcGUpOwogCiAJLyogTXVzdCB3 YWl0IGZvciB2YmxhbmsgdG8gYXZvaWQgc3B1cmlvdXMgUENIIEZJRk8gdW5kZXJydW5zICovCkBA IC01NTYyLDcgKzU1NjEsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2Rpc2FibGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCWlmIChpbnRlbF9jcnRjLT5j b25maWctPmhhc19wY2hfZW5jb2RlcikgewogCQlpcm9ubGFrZV9kaXNhYmxlX3BjaF90cmFuc2Nv ZGVyKGRldl9wcml2LCBwaXBlKTsKIAotCQlpZiAoSEFTX1BDSF9DUFQoZGV2KSkgeworCQlpZiAo SEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7CiAJCQlpOTE1X3JlZ190IHJlZzsKIAkJCXUzMiB0ZW1w OwogCkBAIC04OTQ4LDcgKzg5NDcsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9pbml0X3BjaF9y ZWZjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJfQogCX0KIAotCWlmIChIQVNfUENIX0lC WChkZXYpKSB7CisJaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSkgewogCQloYXNfY2s1MDUgPSBk ZXZfcHJpdi0+dmJ0LmRpc3BsYXlfY2xvY2tfbW9kZTsKIAkJY2FuX3NzYyA9IGhhc19jazUwNTsK IAl9IGVsc2UgewpAQCAtOTM0NCw5ICs5MzQzLDExIEBAIHN0YXRpYyB2b2lkIGxwdF9pbml0X3Bj aF9yZWZjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKICAqLwogdm9pZCBpbnRlbF9pbml0X3Bj aF9yZWZjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKLQlpZiAoSEFTX1BDSF9JQlgoZGV2 KSB8fCBIQVNfUENIX0NQVChkZXYpKQorCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKKworCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikgfHwgSEFTX1BD SF9DUFQoZGV2X3ByaXYpKQogCQlpcm9ubGFrZV9pbml0X3BjaF9yZWZjbGsoZGV2KTsKLQllbHNl IGlmIChIQVNfUENIX0xQVChkZXYpKQorCWVsc2UgaWYgKEhBU19QQ0hfTFBUKGRldl9wcml2KSkK IAkJbHB0X2luaXRfcGNoX3JlZmNsayhkZXYpOwogfQogCkBAIC05NDc1LDcgKzk0NzYsNyBAQCBz dGF0aWMgdm9pZCBpcm9ubGFrZV9jb21wdXRlX2RwbGwoc3RydWN0IGludGVsX2NydGMgKmludGVs X2NydGMsCiAJaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVU X0xWRFMpKSB7CiAJCWlmICgoaW50ZWxfcGFuZWxfdXNlX3NzYyhkZXZfcHJpdikgJiYKIAkJICAg ICBkZXZfcHJpdi0+dmJ0Lmx2ZHNfc3NjX2ZyZXEgPT0gMTAwMDAwKSB8fAotCQkgICAgKEhBU19Q Q0hfSUJYKGRldikgJiYgaW50ZWxfaXNfZHVhbF9saW5rX2x2ZHMoZGV2KSkpCisJCSAgICAoSEFT X1BDSF9JQlgoZGV2X3ByaXYpICYmIGludGVsX2lzX2R1YWxfbGlua19sdmRzKGRldikpKQogCQkJ ZmFjdG9yID0gMjU7CiAJfSBlbHNlIGlmIChjcnRjX3N0YXRlLT5zZHZvX3R2X2Nsb2NrKQogCQlm YWN0b3IgPSAyMDsKQEAgLTExMzEzLDcgKzExMzE0LDcgQEAgc3RhdGljIGludCBpOXh4X3BsbF9y ZWZjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWlmICgoZHBsbCAmIFBMTF9SRUZfSU5Q VVRfTUFTSykgPT0gUExMQl9SRUZfSU5QVVRfU1BSRUFEU1BFQ1RSVU1JTikKIAkJcmV0dXJuIGRl dl9wcml2LT52YnQubHZkc19zc2NfZnJlcTsKLQllbHNlIGlmIChIQVNfUENIX1NQTElUKGRldikp CisJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCiAJCXJldHVybiAxMjAwMDA7CiAJ ZWxzZSBpZiAoIUlTX0dFTjIoZGV2KSkKIAkJcmV0dXJuIDk2MDAwOwpAQCAtMTQ4OTgsNiArMTQ4 OTksNyBAQCBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1bmNzID0g ewogc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCQkgICAgaW50IHBpcGUpCiB7CisJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9w bGFuZSAqcHJpbWFyeSA9IE5VTEw7CiAJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9 IE5VTEw7CiAJY29uc3QgdWludDMyX3QgKmludGVsX3ByaW1hcnlfZm9ybWF0czsKQEAgLTE0OTMy LDcgKzE0OTM0LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fcGxhbmUgKmludGVsX3ByaW1hcnlfcGxh bmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAkJcHJpbWFyeS0+dXBkYXRlX3Bs YW5lID0gc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZTsKIAkJcHJpbWFyeS0+ZGlzYWJsZV9w bGFuZSA9IHNreWxha2VfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwotCX0gZWxzZSBpZiAoSEFTX1BD SF9TUExJVChkZXYpKSB7CisJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewog CQlpbnRlbF9wcmltYXJ5X2Zvcm1hdHMgPSBpOTY1X3ByaW1hcnlfZm9ybWF0czsKIAkJbnVtX2Zv cm1hdHMgPSBBUlJBWV9TSVpFKGk5NjVfcHJpbWFyeV9mb3JtYXRzKTsKIApAQCAtMTU0NDAsNyAr MTU0NDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9vdXRwdXRzKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJCSAgICAgZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW1BPUlRfRV0uc3Vw cG9ydHNfaGRtaSkpCiAJCQlpbnRlbF9kZGlfaW5pdChkZXYsIFBPUlRfRSk7CiAKLQl9IGVsc2Ug aWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgeworCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZf cHJpdikpIHsKIAkJaW50IGZvdW5kOwogCQlkcGRfaXNfZWRwID0gaW50ZWxfZHBfaXNfZWRwKGRl diwgUE9SVF9EKTsKIApAQCAtMTYzNTksNyArMTYzNjEsNyBAQCB2b2lkIGludGVsX21vZGVzZXRf aW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIEJJT1MgaXNuJ3QgdXNpbmcgaXQsIGRv bid0IGFzc3VtZSBpdCB3aWxsIHdvcmsgZXZlbiBpZiB0aGUgVkJUCiAJICogaW5kaWNhdGVzIGFz IG11Y2guCiAJICovCi0JaWYgKEhBU19QQ0hfSUJYKGRldikgfHwgSEFTX1BDSF9DUFQoZGV2KSkg eworCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikgfHwgSEFTX1BDSF9DUFQoZGV2X3ByaXYpKSB7 CiAJCWJvb2wgYmlvc19sdmRzX3VzZV9zc2MgPSAhIShJOTE1X1JFQUQoUENIX0RSRUZfQ09OVFJP TCkgJgogCQkJCQkgICAgRFJFRl9TU0MxX0VOQUJMRSk7CiAKQEAgLTE2OTA4LDcgKzE2OTEwLDcg QEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQog CQl2bHZfd21fZ2V0X2h3X3N0YXRlKGRldik7CiAJZWxzZSBpZiAoSVNfR0VOOShkZXYpKQogCQlz a2xfd21fZ2V0X2h3X3N0YXRlKGRldik7Ci0JZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXYpKQor CWVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQogCQlpbGtfd21fZ2V0X2h3X3N0YXRl KGRldik7CiAKIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykgewpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMKaW5kZXggZWRhZjM1Yjk3NWMwLi4wYjZmMWJhYjY3MWQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwpAQCAtMTMzNiwxMyArMTMzNiwxNCBAQCBpbnRlbF9kcF9zZXRfY2xvY2soc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCSAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFz ZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OwogCWNvbnN0IHN0cnVjdCBkcF9saW5rX2RwbGwgKmRpdmlzb3IgPSBOVUxMOwogCWludCBpLCBj b3VudCA9IDA7CiAKIAlpZiAoSVNfRzRYKGRldikpIHsKIAkJZGl2aXNvciA9IGdlbjRfZHBsbDsK IAkJY291bnQgPSBBUlJBWV9TSVpFKGdlbjRfZHBsbCk7Ci0JfSBlbHNlIGlmIChIQVNfUENIX1NQ TElUKGRldikpIHsKKwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7CiAJCWRp dmlzb3IgPSBwY2hfZHBsbDsKIAkJY291bnQgPSBBUlJBWV9TSVpFKHBjaF9kcGxsKTsKIAl9IGVs c2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewpAQCAtMTc3Niw3ICsxNzc3LDcgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJ CWludGVsX2RwLT5EUCB8PSBEUF9FTkhBTkNFRF9GUkFNSU5HOwogCiAJCWludGVsX2RwLT5EUCB8 PSBjcnRjLT5waXBlIDw8IDI5OwotCX0gZWxzZSBpZiAoSEFTX1BDSF9DUFQoZGV2KSAmJiBwb3J0 ICE9IFBPUlRfQSkgeworCX0gZWxzZSBpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpICYmIHBvcnQg IT0gUE9SVF9BKSB7CiAJCXUzMiB0cmFuc19kcDsKIAogCQlpbnRlbF9kcC0+RFAgfD0gRFBfTElO S19UUkFJTl9PRkZfQ1BUOwpAQCAtMTc4OCw3ICsxNzg5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxf ZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkJCXRyYW5zX2RwICY9 IH5UUkFOU19EUF9FTkhfRlJBTUlORzsKIAkJSTkxNV9XUklURShUUkFOU19EUF9DVEwoY3J0Yy0+ cGlwZSksIHRyYW5zX2RwKTsKIAl9IGVsc2UgewotCQlpZiAoIUhBU19QQ0hfU1BMSVQoZGV2KSAm JiAhSVNfVkFMTEVZVklFVyhkZXYpICYmCisJCWlmICghSEFTX1BDSF9TUExJVChkZXZfcHJpdikg JiYgIUlTX1ZBTExFWVZJRVcoZGV2KSAmJgogCQkgICAgIUlTX0NIRVJSWVZJRVcoZGV2KSAmJiBw aXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkKIAkJCWludGVsX2RwLT5EUCB8PSBEUF9D T0xPUl9SQU5HRV8xNl8yMzU7CiAKQEAgLTI0NDIsNyArMjQ0Myw3IEBAIHN0YXRpYyBib29sIGlu dGVsX2RwX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCWlm IChJU19HRU43KGRldikgJiYgcG9ydCA9PSBQT1JUX0EpIHsKIAkJKnBpcGUgPSBQT1JUX1RPX1BJ UEVfQ1BUKHRtcCk7Ci0JfSBlbHNlIGlmIChIQVNfUENIX0NQVChkZXYpICYmIHBvcnQgIT0gUE9S VF9BKSB7CisJfSBlbHNlIGlmIChIQVNfUENIX0NQVChkZXZfcHJpdikgJiYgcG9ydCAhPSBQT1JU X0EpIHsKIAkJZW51bSBwaXBlIHA7CiAKIAkJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcCkgewpA QCAtMjQ4NSw3ICsyNDg2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0X2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCXBpcGVfY29uZmlnLT5oYXNfYXVkaW8gPSB0 bXAgJiBEUF9BVURJT19PVVRQVVRfRU5BQkxFICYmIHBvcnQgIT0gUE9SVF9BOwogCi0JaWYgKEhB U19QQ0hfQ1BUKGRldikgJiYgcG9ydCAhPSBQT1JUX0EpIHsKKwlpZiAoSEFTX1BDSF9DUFQoZGV2 X3ByaXYpICYmIHBvcnQgIT0gUE9SVF9BKSB7CiAJCXUzMiB0cmFuc19kcCA9IEk5MTVfUkVBRChU UkFOU19EUF9DVEwoY3J0Yy0+cGlwZSkpOwogCiAJCWlmICh0cmFuc19kcCAmIFRSQU5TX0RQX0hT WU5DX0FDVElWRV9ISUdIKQpAQCAtMjUxMSw4ICsyNTEyLDggQEAgc3RhdGljIHZvaWQgaW50ZWxf ZHBfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAogCXBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuZmxhZ3MgfD0gZmxhZ3M7CiAKLQlpZiAoIUhBU19QQ0hf U1BMSVQoZGV2KSAmJiAhSVNfVkFMTEVZVklFVyhkZXYpICYmCi0JICAgICFJU19DSEVSUllWSUVX KGRldikgJiYgdG1wICYgRFBfQ09MT1JfUkFOR0VfMTZfMjM1KQorCWlmICghSEFTX1BDSF9TUExJ VChkZXZfcHJpdikgJiYgIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmCisJICAgICFJU19DSEVS UllWSUVXKGRldl9wcml2KSAmJiB0bXAgJiBEUF9DT0xPUl9SQU5HRV8xNl8yMzUpCiAJCXBpcGVf Y29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlID0gdHJ1ZTsKIAogCXBpcGVfY29uZmlnLT5sYW5l X2NvdW50ID0KQEAgLTI2NTksNyArMjY2MCw3IEBAIF9pbnRlbF9kcF9zZXRfbGlua190cmFpbihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCQlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwg dGVtcCk7CiAKIAl9IGVsc2UgaWYgKChJU19HRU43KGRldikgJiYgcG9ydCA9PSBQT1JUX0EpIHx8 Ci0JCSAgIChIQVNfUENIX0NQVChkZXYpICYmIHBvcnQgIT0gUE9SVF9BKSkgeworCQkgICAoSEFT X1BDSF9DUFQoZGV2X3ByaXYpICYmIHBvcnQgIT0gUE9SVF9BKSkgewogCQkqRFAgJj0gfkRQX0xJ TktfVFJBSU5fTUFTS19DUFQ7CiAKIAkJc3dpdGNoIChkcF90cmFpbl9wYXQgJiBEUF9UUkFJTklO R19QQVRURVJOX01BU0spIHsKQEAgLTI5ODksNyArMjk5MCw3IEBAIGludGVsX2RwX3ZvbHRhZ2Vf bWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdF X1NXSU5HX0xFVkVMXzM7CiAJZWxzZSBpZiAoSVNfR0VONyhkZXYpICYmIHBvcnQgPT0gUE9SVF9B KQogCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8yOwotCWVsc2UgaWYgKEhB U19QQ0hfQ1BUKGRldikgJiYgcG9ydCAhPSBQT1JUX0EpCisJZWxzZSBpZiAoSEFTX1BDSF9DUFQo ZGV2X3ByaXYpICYmIHBvcnQgIT0gUE9SVF9BKQogCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9T V0lOR19MRVZFTF8zOwogCWVsc2UKIAkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVW RUxfMjsKQEAgLTM0NDIsNyArMzQ0Myw3IEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQogCURSTV9ERUJVR19LTVMoIlxuIik7CiAKIAlpZiAoKElTX0dFTjco ZGV2KSAmJiBwb3J0ID09IFBPUlRfQSkgfHwKLQkgICAgKEhBU19QQ0hfQ1BUKGRldikgJiYgcG9y dCAhPSBQT1JUX0EpKSB7CisJICAgIChIQVNfUENIX0NQVChkZXZfcHJpdikgJiYgcG9ydCAhPSBQ T1JUX0EpKSB7CiAJCURQICY9IH5EUF9MSU5LX1RSQUlOX01BU0tfQ1BUOwogCQlEUCB8PSBEUF9M SU5LX1RSQUlOX1BBVF9JRExFX0NQVDsKIAl9IGVsc2UgewpAQCAtMzQ2NCw3ICszNDY1LDcgQEAg aW50ZWxfZHBfbGlua19kb3duKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJICogdG8gdHJh bnNjb2RlciBBIGFmdGVyIGRpc2FibGluZyBpdCB0byBhbGxvdyB0aGUKIAkgKiBtYXRjaGluZyBI RE1JIHBvcnQgdG8gYmUgZW5hYmxlZCBvbiB0cmFuc2NvZGVyIEEuCiAJICovCi0JaWYgKEhBU19Q Q0hfSUJYKGRldikgJiYgY3J0Yy0+cGlwZSA9PSBQSVBFX0IgJiYgcG9ydCAhPSBQT1JUX0EpIHsK KwlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpICYmIGNydGMtPnBpcGUgPT0gUElQRV9CICYmIHBv cnQgIT0gUE9SVF9BKSB7CiAJCS8qCiAJCSAqIFdlIGdldCBDUFUvUENIIEZJRk8gdW5kZXJydW5z IG9uIHRoZSBvdGhlciBwaXBlIHdoZW4KIAkJICogZG9pbmcgdGhlIHdvcmthcm91bmQuIFN3ZWVw IHRoZW0gdW5kZXIgdGhlIHJ1Zy4KQEAgLTUwODUsNyArNTA4Niw3IEBAIGludGVsX2RwX2luaXRf cGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CSAqIHBvd2VyIHNlcXVlbmNlciBhbnkgbW9yZS4gKi8KIAlpZiAoSVNfVkFMTEVZVklFVyhkZXYp IHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewogCQlwb3J0X3NlbCA9IFBBTkVMX1BPUlRfU0VMRUNU X1ZMVihwb3J0KTsKLQl9IGVsc2UgaWYgKEhBU19QQ0hfSUJYKGRldikgfHwgSEFTX1BDSF9DUFQo ZGV2KSkgeworCX0gZWxzZSBpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpIHx8IEhBU19QQ0hfQ1BU KGRldl9wcml2KSkgewogCQlpZiAocG9ydCA9PSBQT1JUX0EpCiAJCQlwb3J0X3NlbCA9IFBBTkVM X1BPUlRfU0VMRUNUX0RQQTsKIAkJZWxzZQpAQCAtNTY0OSw3ICs1NjUwLDcgQEAgaW50ZWxfZHBf aW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQs CiAJCWludGVsX2RwLT5nZXRfYXV4X2Nsb2NrX2RpdmlkZXIgPSBza2xfZ2V0X2F1eF9jbG9ja19k aXZpZGVyOwogCWVsc2UgaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkK IAkJaW50ZWxfZHAtPmdldF9hdXhfY2xvY2tfZGl2aWRlciA9IGhzd19nZXRfYXV4X2Nsb2NrX2Rp dmlkZXI7Ci0JZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXYpKQorCWVsc2UgaWYgKEhBU19QQ0hf U1BMSVQoZGV2X3ByaXYpKQogCQlpbnRlbF9kcC0+Z2V0X2F1eF9jbG9ja19kaXZpZGVyID0gaWxr X2dldF9hdXhfY2xvY2tfZGl2aWRlcjsKIAllbHNlCiAJCWludGVsX2RwLT5nZXRfYXV4X2Nsb2Nr X2RpdmlkZXIgPSBnNHhfZ2V0X2F1eF9jbG9ja19kaXZpZGVyOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwbGxfbWdyLmMKaW5kZXggZDBjNTljMTc5M2VmLi5jMzdjZTEyNjMxNDIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwpAQCAtMTg1Nyw3ICsxODU3LDcgQEAgdm9pZCBp bnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWRwbGxfbWdy ID0gJmJ4dF9wbGxfbWdyOwogCWVsc2UgaWYgKEhBU19EREkoZGV2X3ByaXYpKQogCQlkcGxsX21n ciA9ICZoc3dfcGxsX21ncjsKLQllbHNlIGlmIChIQVNfUENIX0lCWChkZXYpIHx8IEhBU19QQ0hf Q1BUKGRldikpCisJZWxzZSBpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpIHx8IEhBU19QQ0hfQ1BU KGRldl9wcml2KSkKIAkJZHBsbF9tZ3IgPSAmcGNoX3BsbF9tZ3I7CiAKIAlpZiAoIWRwbGxfbWdy KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggMDliMjE0NmYxNTdmLi4zOTdlMTBm NGI2ZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKQEAgLTg2NCw3ICs4NjQsNyBAQCBz dGF0aWMgdm9pZCBpbnRlbF9oZG1pX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIpCiAJaW50ZWxfZHBfZHVhbF9tb2RlX3NldF90bWRzX291dHB1dChpbnRlbF9oZG1pLCB0cnVl KTsKIAogCWhkbWlfdmFsID0gU0RWT19FTkNPRElOR19IRE1JOwotCWlmICghSEFTX1BDSF9TUExJ VChkZXYpICYmIGNydGMtPmNvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkKKwlpZiAoIUhBU19Q Q0hfU1BMSVQoZGV2X3ByaXYpICYmIGNydGMtPmNvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkK IAkJaGRtaV92YWwgfD0gSERNSV9DT0xPUl9SQU5HRV8xNl8yMzU7CiAJaWYgKGFkanVzdGVkX21v ZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19QVlNZTkMpCiAJCWhkbWlfdmFsIHw9IFNEVk9fVlNZ TkNfQUNUSVZFX0hJR0g7CkBAIC04NzksNyArODc5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRt aV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCWlmIChjcnRjLT5jb25m aWctPmhhc19oZG1pX3NpbmspCiAJCWhkbWlfdmFsIHw9IEhETUlfTU9ERV9TRUxFQ1RfSERNSTsK IAotCWlmIChIQVNfUENIX0NQVChkZXYpKQorCWlmIChIQVNfUENIX0NQVChkZXZfcHJpdikpCiAJ CWhkbWlfdmFsIHw9IFNEVk9fUElQRV9TRUxfQ1BUKGNydGMtPnBpcGUpOwogCWVsc2UgaWYgKElT X0NIRVJSWVZJRVcoZGV2KSkKIAkJaGRtaV92YWwgfD0gU0RWT19QSVBFX1NFTF9DSFYoY3J0Yy0+ cGlwZSk7CkBAIC05MTEsNyArOTExLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfaGRtaV9nZXRfaHdf c3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKCEodG1wICYgU0RWT19F TkFCTEUpKQogCQlnb3RvIG91dDsKIAotCWlmIChIQVNfUENIX0NQVChkZXYpKQorCWlmIChIQVNf UENIX0NQVChkZXZfcHJpdikpCiAJCSpwaXBlID0gUE9SVF9UT19QSVBFX0NQVCh0bXApOwogCWVs c2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKIAkJKnBpcGUgPSBTRFZPX1BPUlRfVE9fUElQRV9D SFYodG1wKTsKQEAgLTk1Niw3ICs5NTYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX2dldF9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJaWYgKHRtcCAmIFNEVk9fQVVE SU9fRU5BQkxFKQogCQlwaXBlX2NvbmZpZy0+aGFzX2F1ZGlvID0gdHJ1ZTsKIAotCWlmICghSEFT X1BDSF9TUExJVChkZXYpICYmCisJaWYgKCFIQVNfUENIX1NQTElUKGRldl9wcml2KSAmJgogCSAg ICB0bXAgJiBIRE1JX0NPTE9SX1JBTkdFXzE2XzIzNSkKIAkJcGlwZV9jb25maWctPmxpbWl0ZWRf Y29sb3JfcmFuZ2UgPSB0cnVlOwogCkBAIC0xMTQxLDcgKzExNDEsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kaXNhYmxlX2hkbWkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJICogdG8g dHJhbnNjb2RlciBBIGFmdGVyIGRpc2FibGluZyBpdCB0byBhbGxvdyB0aGUKIAkgKiBtYXRjaGlu ZyBEUCBwb3J0IHRvIGJlIGVuYWJsZWQgb24gdHJhbnNjb2RlciBBLgogCSAqLwotCWlmIChIQVNf UENIX0lCWChkZXYpICYmIGNydGMtPnBpcGUgPT0gUElQRV9CKSB7CisJaWYgKEhBU19QQ0hfSUJY KGRldl9wcml2KSAmJiBjcnRjLT5waXBlID09IFBJUEVfQikgewogCQkvKgogCQkgKiBXZSBnZXQg Q1BVL1BDSCBGSUZPIHVuZGVycnVucyBvbiB0aGUgb3RoZXIgcGlwZSB3aGVuCiAJCSAqIGRvaW5n IHRoZSB3b3JrYXJvdW5kLiBTd2VlcCB0aGVtIHVuZGVyIHRoZSBydWcuCkBAIC0xODk2LDcgKzE4 OTYsNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJCWludGVsX2hkbWktPndyaXRlX2luZm9mcmFtZSA9 IGhzd193cml0ZV9pbmZvZnJhbWU7CiAJCWludGVsX2hkbWktPnNldF9pbmZvZnJhbWVzID0gaHN3 X3NldF9pbmZvZnJhbWVzOwogCQlpbnRlbF9oZG1pLT5pbmZvZnJhbWVfZW5hYmxlZCA9IGhzd19p bmZvZnJhbWVfZW5hYmxlZDsKLQl9IGVsc2UgaWYgKEhBU19QQ0hfSUJYKGRldikpIHsKKwl9IGVs c2UgaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSkgewogCQlpbnRlbF9oZG1pLT53cml0ZV9pbmZv ZnJhbWUgPSBpYnhfd3JpdGVfaW5mb2ZyYW1lOwogCQlpbnRlbF9oZG1pLT5zZXRfaW5mb2ZyYW1l cyA9IGlieF9zZXRfaW5mb2ZyYW1lczsKIAkJaW50ZWxfaGRtaS0+aW5mb2ZyYW1lX2VuYWJsZWQg PSBpYnhfaW5mb2ZyYW1lX2VuYWJsZWQ7CkBAIC0xOTI5LDYgKzE5MjksNyBAQCB2b2lkIGludGVs X2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQsCiB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkg ICAgIGk5MTVfcmVnX3QgaGRtaV9yZWcsIGVudW0gcG9ydCBwb3J0KQogeworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlcjsKIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3I7CkBAIC0x OTQ5LDcgKzE5NTAsNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCQkJIERSTV9NT0RFX0VOQ09ERVJfVE1EUywgIkhETUkgJWMiLCBwb3J0X25hbWUocG9y dCkpOwogCiAJaW50ZWxfZW5jb2Rlci0+Y29tcHV0ZV9jb25maWcgPSBpbnRlbF9oZG1pX2NvbXB1 dGVfY29uZmlnOwotCWlmIChIQVNfUENIX1NQTElUKGRldikpIHsKKwlpZiAoSEFTX1BDSF9TUExJ VChkZXZfcHJpdikpIHsKIAkJaW50ZWxfZW5jb2Rlci0+ZGlzYWJsZSA9IHBjaF9kaXNhYmxlX2hk bWk7CiAJCWludGVsX2VuY29kZXItPnBvc3RfZGlzYWJsZSA9IHBjaF9wb3N0X2Rpc2FibGVfaGRt aTsKIAl9IGVsc2UgewpAQCAtMTk3MCw5ICsxOTcxLDkgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJaW50ZWxfZW5jb2Rlci0+cG9zdF9kaXNhYmxlID0g dmx2X2hkbWlfcG9zdF9kaXNhYmxlOwogCX0gZWxzZSB7CiAJCWludGVsX2VuY29kZXItPnByZV9l bmFibGUgPSBpbnRlbF9oZG1pX3ByZV9lbmFibGU7Ci0JCWlmIChIQVNfUENIX0NQVChkZXYpKQor CQlpZiAoSEFTX1BDSF9DUFQoZGV2X3ByaXYpKQogCQkJaW50ZWxfZW5jb2Rlci0+ZW5hYmxlID0g Y3B0X2VuYWJsZV9oZG1pOwotCQllbHNlIGlmIChIQVNfUENIX0lCWChkZXYpKQorCQllbHNlIGlm IChIQVNfUENIX0lCWChkZXZfcHJpdikpCiAJCQlpbnRlbF9lbmNvZGVyLT5lbmFibGUgPSBpYnhf ZW5hYmxlX2hkbWk7CiAJCWVsc2UKIAkJCWludGVsX2VuY29kZXItPmVuYWJsZSA9IGc0eF9lbmFi bGVfaGRtaTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKaW5kZXggNzlhYWI5YWQ2ZmFhLi4xNDEw MzMwZWM5YmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCkBAIC02MzMsNyArNjMzLDcgQEAg aW50IGludGVsX3NldHVwX2dtYnVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJdW5zaWduZWQg aW50IHBpbjsKIAlpbnQgcmV0OwogCi0JaWYgKEhBU19QQ0hfTk9QKGRldikpCisJaWYgKEhBU19Q Q0hfTk9QKGRldl9wcml2KSkKIAkJcmV0dXJuIDA7CiAKIAlpZiAoSVNfVkFMTEVZVklFVyhkZXYp IHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYwppbmRleCAy ZTk0M2JkMWMzY2YuLmJhYWYyZWQ4OTdlZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYwpA QCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRpYyBib29sIGludGVsX2x2ZHNfZ2V0X2h3X3N0YXRlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlmICghKHRtcCAmIExWRFNfUE9SVF9FTikp CiAJCWdvdG8gb3V0OwogCi0JaWYgKEhBU19QQ0hfQ1BUKGRldikpCisJaWYgKEhBU19QQ0hfQ1BU KGRldl9wcml2KSkKIAkJKnBpcGUgPSBQT1JUX1RPX1BJUEVfQ1BUKHRtcCk7CiAJZWxzZQogCQkq cGlwZSA9IFBPUlRfVE9fUElQRSh0bXApOwpAQCAtMzk2LDcgKzM5Niw3IEBAIHN0YXRpYyBib29s IGludGVsX2x2ZHNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2Vu Y29kZXIsCiAJCQkJICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAog CQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQogewotCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRldjsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2VuY29kZXItPmJhc2Uu ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPQogCQl0b19s dmRzX2VuY29kZXIoJmludGVsX2VuY29kZXItPmJhc2UpOwogCXN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmludGVsX2Nvbm5lY3RvciA9CkBAIC00MDYsNyArNDA2LDcgQEAgc3RhdGljIGJvb2wgaW50 ZWxfbHZkc19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl ciwKIAl1bnNpZ25lZCBpbnQgbHZkc19icHA7CiAKIAkvKiBTaG91bGQgbmV2ZXIgaGFwcGVuISEg Ki8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0ICYmIGludGVsX2NydGMtPnBpcGUgPT0g MCkgeworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCAmJiBpbnRlbF9jcnRjLT5waXBlID09 IDApIHsKIAkJRFJNX0VSUk9SKCJDYW4ndCBzdXBwb3J0IExWRFMgb24gcGlwZSBBXG4iKTsKIAkJ cmV0dXJuIGZhbHNlOwogCX0KQEAgLTQzMSw3ICs0MzEsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9s dmRzX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAog CWludGVsX2ZpeGVkX3BhbmVsX21vZGUoaW50ZWxfY29ubmVjdG9yLT5wYW5lbC5maXhlZF9tb2Rl LAogCQkJICAgICAgIGFkanVzdGVkX21vZGUpOwogCi0JaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkg eworCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewogCQlwaXBlX2NvbmZpZy0+aGFzX3Bj aF9lbmNvZGVyID0gdHJ1ZTsKIAogCQlpbnRlbF9wY2hfcGFuZWxfZml0dGluZyhpbnRlbF9jcnRj LCBwaXBlX2NvbmZpZywKQEAgLTU2Niw3ICs1NjYsNyBAQCBzdGF0aWMgaW50IGludGVsX2xpZF9u b3RpZnkoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyB2YWwsCiAJICog YW5kIGFzIHBhcnQgb2YgdGhlIGNsZWFudXAgaW4gdGhlIGh3IHN0YXRlIHJlc3RvcmUgd2UgYWxz byByZWRpc2FibGUKIAkgKiB0aGUgdmdhIHBsYW5lLgogCSAqLwotCWlmICghSEFTX1BDSF9TUExJ VChkZXYpKQorCWlmICghSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCiAJCWludGVsX2Rpc3BsYXlf cmVzdW1lKGRldik7CiAKIAlkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlID0gTU9ERVNFVF9ET05F OwpAQCAtOTUxLDkgKzk1MSwxMSBAQCBzdGF0aWMgYm9vbCBjb21wdXRlX2lzX2R1YWxfbGlua19s dmRzKHN0cnVjdCBpbnRlbF9sdmRzX2VuY29kZXIgKmx2ZHNfZW5jb2RlcikKIAogc3RhdGljIGJv b2wgaW50ZWxfbHZkc19zdXBwb3J0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisKIAkvKiBXaXRo IHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlIFBDSCB3ZSBnYWluZWQgYSBkZWRpY2F0ZWQKIAkgKiBM VkRTIHByZXNlbmNlIHBpbiwgdXNlIGl0LiAqLwotCWlmIChIQVNfUENIX0lCWChkZXYpIHx8IEhB U19QQ0hfQ1BUKGRldikpCisJaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSB8fCBIQVNfUENIX0NQ VChkZXZfcHJpdikpCiAJCXJldHVybiB0cnVlOwogCiAJLyogT3RoZXJ3aXNlIExWRFMgd2FzIG9u bHkgYXR0YWNoZWQgdG8gbW9iaWxlIHByb2R1Y3RzLApAQCAtOTk3LDE0ICs5OTksMTQgQEAgdm9p ZCBpbnRlbF9sdmRzX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoZG1pX2NoZWNr X3N5c3RlbShpbnRlbF9ub19sdmRzKSkKIAkJcmV0dXJuOwogCi0JaWYgKEhBU19QQ0hfU1BMSVQo ZGV2KSkKKwlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCiAJCWx2ZHNfcmVnID0gUENIX0xW RFM7CiAJZWxzZQogCQlsdmRzX3JlZyA9IExWRFM7CiAKIAlsdmRzID0gSTkxNV9SRUFEKGx2ZHNf cmVnKTsKIAotCWlmIChIQVNfUENIX1NQTElUKGRldikpIHsKKwlpZiAoSEFTX1BDSF9TUExJVChk ZXZfcHJpdikpIHsKIAkJaWYgKChsdmRzICYgTFZEU19ERVRFQ1RFRCkgPT0gMCkKIAkJCXJldHVy bjsKIAkJaWYgKGRldl9wcml2LT52YnQuZWRwLnN1cHBvcnQpIHsKQEAgLTEwNjgsNyArMTA3MCw3 IEBAIHZvaWQgaW50ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaW50ZWxf ZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9MVkRTOwogCWludGVsX2VuY29kZXItPnBvcnQg PSBQT1JUX05PTkU7CiAJaW50ZWxfZW5jb2Rlci0+Y2xvbmVhYmxlID0gMDsKLQlpZiAoSEFTX1BD SF9TUExJVChkZXYpKQorCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKIAkJaW50ZWxfZW5j b2Rlci0+Y3J0Y19tYXNrID0gKDEgPDwgMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDIpOwogCWVsc2Ug aWYgKElTX0dFTjQoZGV2KSkKIAkJaW50ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID0gKDEgPDwgMCkg fCAoMSA8PCAxKTsKQEAgLTExNTgsNyArMTE2MCw3IEBAIHZvaWQgaW50ZWxfbHZkc19pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJICovCiAKIAkvKiBJcm9ubGFrZTogRklYTUUgaWYgc3Rp bGwgZmFpbCwgbm90IHRyeSBwaXBlIG1vZGUgbm93ICovCi0JaWYgKEhBU19QQ0hfU1BMSVQoZGV2 KSkKKwlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpCiAJCWdvdG8gZmFpbGVkOwogCiAJcGlw ZSA9IChsdmRzICYgTFZEU19QSVBFQl9TRUxFQ1QpID8gMSA6IDA7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwppbmRleCBlN2IzZTZmMzkyODEuLjg2MDUxZWYyNzE2ZSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCkBAIC03NDEzLDcgKzc0MTMsNyBAQCBzdGF0aWMgdm9pZCBpdnlicmlkZ2VfaW5pdF9j bG9ja19nYXRpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlzbnBjciB8PSBHRU42X01CQ19T TlBDUl9NRUQ7CiAJSTkxNV9XUklURShHRU42X01CQ1VOSVRfU05QQ1IsIHNucGNyKTsKIAotCWlm ICghSEFTX1BDSF9OT1AoZGV2KSkKKwlpZiAoIUhBU19QQ0hfTk9QKGRldl9wcml2KSkKIAkJY3B0 X2luaXRfY2xvY2tfZ2F0aW5nKGRldik7CiAKIAlnZW42X2NoZWNrX21jaF9zZXR1cChkZXYpOwpA QCAtNzY1Niw3ICs3NjU2LDcgQEAgdm9pZCBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCiB2b2lkIGludGVsX3N1c3BlbmRfaHcoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIHsKLQlpZiAoSEFTX1BDSF9MUFQoZGV2KSkKKwlpZiAoSEFTX1BDSF9MUFQodG9f aTkxNShkZXYpKSkKIAkJbHB0X3N1c3BlbmRfaHcoZGV2KTsKIH0KIApAQCAtNzczMiw3ICs3NzMy LDcgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXNrbF9z ZXR1cF93bV9sYXRlbmN5KGRldik7CiAJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IHNr bF91cGRhdGVfd207CiAJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFy a3MgPSBza2xfY29tcHV0ZV93bTsKLQl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkgewor CX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikpIHsKIAkJaWxrX3NldHVwX3dtX2xh dGVuY3koZGV2KTsKIAogCQlpZiAoKElTX0dFTjUoZGV2KSAmJiBkZXZfcHJpdi0+d20ucHJpX2xh dGVuY3lbMV0gJiYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwppbmRleCBhMDYxYjAwMjk3OTcu LjBkOTExNGY5Y2UyNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2 by5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwpAQCAtMjUxLDcgKzI1 MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9fd3JpdGVfc2R2b3goc3RydWN0IGludGVsX3Nk dm8gKmludGVsX3Nkdm8sIHUzMiB2YWwpCiAJCSAqIEhXIHdvcmthcm91bmQsIG5lZWQgdG8gd3Jp dGUgdGhpcyB0d2ljZSBmb3IgaXNzdWUKIAkJICogdGhhdCBtYXkgcmVzdWx0IGluIGZpcnN0IHdy aXRlIGdldHRpbmcgbWFza2VkLgogCQkgKi8KLQkJaWYgKEhBU19QQ0hfSUJYKGRldikpIHsKKwkJ aWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSkgewogCQkJSTkxNV9XUklURShpbnRlbF9zZHZvLT5z ZHZvX3JlZywgdmFsKTsKIAkJCVBPU1RJTkdfUkVBRChpbnRlbF9zZHZvLT5zZHZvX3JlZyk7CiAJ CX0KQEAgLTExMzMsNyArMTEzMyw3IEBAIHN0YXRpYyBib29sIGludGVsX3Nkdm9fY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJRFJNX0RFQlVHX0tNUygiZm9y Y2luZyBicGMgdG8gOCBmb3IgU0RWT1xuIik7CiAJcGlwZV9jb25maWctPnBpcGVfYnBwID0gOCoz OwogCi0JaWYgKEhBU19QQ0hfU1BMSVQoZW5jb2Rlci0+YmFzZS5kZXYpKQorCWlmIChIQVNfUENI X1NQTElUKHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpKSkKIAkJcGlwZV9jb25maWctPmhhc19w Y2hfZW5jb2RlciA9IHRydWU7CiAKIAkvKiBXZSBuZWVkIHRvIGNvbnN0cnVjdCBwcmVmZXJyZWQg aW5wdXQgdGltaW5ncyBiYXNlZCBvbiBvdXIKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHN0YXRpYyB2 b2lkIGludGVsX3Nkdm9fcHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlciwKIAkJLyogVGhlIHJlYWwgbW9kZSBwb2xhcml0eSBpcyBzZXQgYnkgdGhlIFNEVk8gY29t bWFuZHMsIHVzaW5nCiAJCSAqIHN0cnVjdCBpbnRlbF9zZHZvX2R0ZC4gKi8KIAkJc2R2b3ggPSBT RFZPX1ZTWU5DX0FDVElWRV9ISUdIIHwgU0RWT19IU1lOQ19BQ1RJVkVfSElHSDsKLQkJaWYgKCFI QVNfUENIX1NQTElUKGRldikgJiYgY3J0Y19zdGF0ZS0+bGltaXRlZF9jb2xvcl9yYW5nZSkKKwkJ aWYgKCFIQVNfUENIX1NQTElUKGRldl9wcml2KSAmJiBjcnRjX3N0YXRlLT5saW1pdGVkX2NvbG9y X3JhbmdlKQogCQkJc2R2b3ggfD0gSERNSV9DT0xPUl9SQU5HRV8xNl8yMzU7CiAJCWlmIChJTlRF TF9JTkZPKGRldiktPmdlbiA8IDUpCiAJCQlzZHZveCB8PSBTRFZPX0JPUkRFUl9FTkFCTEU7CkBA IC0xMjg2LDcgKzEyODYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX3ByZV9lbmFibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCiAJCXNkdm94IHw9ICg5IDw8IDE5KSB8 IFNEVk9fQk9SREVSX0VOQUJMRTsKIAl9CiAKLQlpZiAoSU5URUxfUENIX1RZUEUoZGV2KSA+PSBQ Q0hfQ1BUKQorCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX0NQVCkKIAkJc2R2 b3ggfD0gU0RWT19QSVBFX1NFTF9DUFQoY3J0Yy0+cGlwZSk7CiAJZWxzZQogCQlzZHZveCB8PSBT RFZPX1BJUEVfU0VMKGNydGMtPnBpcGUpOwpAQCAtMTMzOSw3ICsxMzM5LDcgQEAgc3RhdGljIGJv b2wgaW50ZWxfc2R2b19nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJaWYgKCEodG1wICYgU0RWT19FTkFCTEUpICYmIChhY3RpdmVfb3V0cHV0cyA9PSAwKSkKIAkJ cmV0dXJuIGZhbHNlOwogCi0JaWYgKEhBU19QQ0hfQ1BUKGRldikpCisJaWYgKEhBU19QQ0hfQ1BU KGRldl9wcml2KSkKIAkJKnBpcGUgPSBQT1JUX1RPX1BJUEVfQ1BUKHRtcCk7CiAJZWxzZQogCQkq cGlwZSA9IFBPUlRfVE9fUElQRSh0bXApOwpAQCAtMjk5Nyw3ICsyOTk3LDcgQEAgYm9vbCBpbnRl bF9zZHZvX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl9CiAKIAlpbnRlbF9lbmNvZGVy LT5jb21wdXRlX2NvbmZpZyA9IGludGVsX3Nkdm9fY29tcHV0ZV9jb25maWc7Ci0JaWYgKEhBU19Q Q0hfU1BMSVQoZGV2KSkgeworCWlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewogCQlpbnRl bF9lbmNvZGVyLT5kaXNhYmxlID0gcGNoX2Rpc2FibGVfc2R2bzsKIAkJaW50ZWxfZW5jb2Rlci0+ cG9zdF9kaXNhYmxlID0gcGNoX3Bvc3RfZGlzYWJsZV9zZHZvOwogCX0gZWxzZSB7Ci0tIAoyLjcu NAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==