From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 07/19] drm/i915: Make INTEL_DEVID only take dev_priv Date: Tue, 11 Oct 2016 14:21:40 +0100 Message-ID: <1476192112-25336-8-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-x244.google.com (mail-lf0-x244.google.com [IPv6:2a00:1450:4010:c07::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id E210D6E669 for ; Tue, 11 Oct 2016 13:22:16 +0000 (UTC) Received: by mail-lf0-x244.google.com with SMTP id p80so3752002lfp.1 for ; Tue, 11 Oct 2016 06:22:16 -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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNhdmVzIDQ0 NzIgYnl0ZXMgb2YgLnJvZGF0YSBzdHJpbmdzLgoKdjI6IEFkZCBwYXJhbnRoZXNlcyBhcm91bmQg ZGV2X3ByaXYuIChWaWxsZSBTeXJqYWxhKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jICAgICAgICB8ICAxNCArKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgICAgfCAxMTEgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICB8ICAzNiArKysrKy0tLS0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgfCAgIDYgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5jIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2lycS5jICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0 LmMgICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAg IHwgIDU4ICsrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j ICAgICAgICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jICAgICAg fCAgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jICAgICAgIHwgICA1ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgICAgICB8ICAgOSArKy0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgIHwgIDI2ICsrKystLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgICAgICB8ICAxMSArKy0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF90di5jICAgICAgICB8ICAgNCArLQogMTUgZmlsZXMgY2hhbmdlZCwgMTUx IGluc2VydGlvbnMoKyksIDE0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwpp bmRleCBmYmI0ZTJlMGQxMjQuLmJmZGJiYjc0NTkzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CkBAIC0xODgsMTIgKzE4OCwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZXRlY3RfcGNoKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCiAJCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENIX0xQVDsKIAkJ CQlEUk1fREVCVUdfS01TKCJGb3VuZCBMeW54UG9pbnQgUENIXG4iKTsKIAkJCQlXQVJOX09OKCFJ U19IQVNXRUxMKGRldikgJiYgIUlTX0JST0FEV0VMTChkZXYpKTsKLQkJCQlXQVJOX09OKElTX0hT V19VTFQoZGV2KSB8fCBJU19CRFdfVUxUKGRldikpOworCQkJCVdBUk5fT04oSVNfSFNXX1VMVChk ZXZfcHJpdikgfHwKKwkJCQkJSVNfQkRXX1VMVChkZXZfcHJpdikpOwogCQkJfSBlbHNlIGlmIChp ZCA9PSBJTlRFTF9QQ0hfTFBUX0xQX0RFVklDRV9JRF9UWVBFKSB7CiAJCQkJZGV2X3ByaXYtPnBj aF90eXBlID0gUENIX0xQVDsKIAkJCQlEUk1fREVCVUdfS01TKCJGb3VuZCBMeW54UG9pbnQgTFAg UENIXG4iKTsKIAkJCQlXQVJOX09OKCFJU19IQVNXRUxMKGRldikgJiYgIUlTX0JST0FEV0VMTChk ZXYpKTsKLQkJCQlXQVJOX09OKCFJU19IU1dfVUxUKGRldikgJiYgIUlTX0JEV19VTFQoZGV2KSk7 CisJCQkJV0FSTl9PTighSVNfSFNXX1VMVChkZXZfcHJpdikgJiYKKwkJCQkJIUlTX0JEV19VTFQo ZGV2X3ByaXYpKTsKIAkJCX0gZWxzZSBpZiAoaWQgPT0gSU5URUxfUENIX1NQVF9ERVZJQ0VfSURf VFlQRSkgewogCQkJCWRldl9wcml2LT5wY2hfdHlwZSA9IFBDSF9TUFQ7CiAJCQkJRFJNX0RFQlVH X0tNUygiRm91bmQgU3VucmlzZVBvaW50IFBDSFxuIik7CkBAIC00MjIsNyArNDI0LDcgQEAgaW50 ZWxfc2V0dXBfbWNoYmFyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlkZXZfcHJpdi0+bWNo YmFyX25lZWRfZGlzYWJsZSA9IGZhbHNlOwogCi0JaWYgKElTX0k5MTVHKGRldikgfHwgSVNfSTkx NUdNKGRldikpIHsKKwlpZiAoSVNfSTkxNUcoZGV2X3ByaXYpIHx8IElTX0k5MTVHTShkZXZfcHJp dikpIHsKIAkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRldl9wcml2LT5icmlkZ2VfZGV2LCBERVZF TiwgJnRlbXApOwogCQllbmFibGVkID0gISEodGVtcCAmIERFVkVOX01DSEJBUl9FTik7CiAJfSBl bHNlIHsKQEAgLTQ0MCw3ICs0NDIsNyBAQCBpbnRlbF9zZXR1cF9tY2hiYXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAlkZXZfcHJpdi0+bWNoYmFyX25lZWRfZGlzYWJsZSA9IHRydWU7CiAKIAkv KiBTcGFjZSBpcyBhbGxvY2F0ZWQgb3IgcmVzZXJ2ZWQsIHNvIGVuYWJsZSBpdC4gKi8KLQlpZiAo SVNfSTkxNUcoZGV2KSB8fCBJU19JOTE1R00oZGV2KSkgeworCWlmIChJU19JOTE1RyhkZXZfcHJp dikgfHwgSVNfSTkxNUdNKGRldl9wcml2KSkgewogCQlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRl dl9wcml2LT5icmlkZ2VfZGV2LCBERVZFTiwKIAkJCQkgICAgICAgdGVtcCB8IERFVkVOX01DSEJB Ul9FTik7CiAJfSBlbHNlIHsKQEAgLTQ1Niw3ICs0NTgsNyBAQCBpbnRlbF90ZWFyZG93bl9tY2hi YXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpbnQgbWNoYmFyX3JlZyA9IElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDQgPyBNQ0hCQVJfSTk2NSA6IE1DSEJBUl9JOTE1OwogCiAJaWYgKGRldl9w cml2LT5tY2hiYXJfbmVlZF9kaXNhYmxlKSB7Ci0JCWlmIChJU19JOTE1RyhkZXYpIHx8IElTX0k5 MTVHTShkZXYpKSB7CisJCWlmIChJU19JOTE1RyhkZXZfcHJpdikgfHwgSVNfSTkxNUdNKGRldl9w cml2KSkgewogCQkJdTMyIGRldmVuX3ZhbDsKIAogCQkJcGNpX3JlYWRfY29uZmlnX2R3b3JkKGRl dl9wcml2LT5icmlkZ2VfZGV2LCBERVZFTiwKQEAgLTEwNzcsNyArMTA3OSw3IEBAIHN0YXRpYyBp bnQgaTkxNV9kcml2ZXJfaW5pdF9odyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiAJICogYmUgbG9zdCBvciBkZWxheWVkLCBidXQgd2UgdXNlIHRoZW0gYW55d2F5cyB0byBhdm9p ZAogCSAqIHN0dWNrIGludGVycnVwdHMgb24gc29tZSBtYWNoaW5lcy4KIAkgKi8KLQlpZiAoIUlT X0k5NDVHKGRldikgJiYgIUlTX0k5NDVHTShkZXYpKSB7CisJaWYgKCFJU19JOTQ1RyhkZXZfcHJp dikgJiYgIUlTX0k5NDVHTShkZXZfcHJpdikpIHsKIAkJaWYgKHBjaV9lbmFibGVfbXNpKHBkZXYp IDwgMCkKIAkJCURSTV9ERUJVR19EUklWRVIoImNhbid0IGVuYWJsZSBNU0kiKTsKIAl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAppbmRleCA1ODA0NWNkN2EwODcuLjdhNDBkZmE4MzBlNyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yNjA1LDcgKzI2MDUsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVf Y21kX3RhYmxlIHsKIH0pCiAjZGVmaW5lIElOVEVMX0lORk8ocCkJKCZfX0k5MTVfXyhwKS0+aW5m bykKICNkZWZpbmUgSU5URUxfR0VOKHApCShJTlRFTF9JTkZPKHApLT5nZW4pCi0jZGVmaW5lIElO VEVMX0RFVklEKHApCShJTlRFTF9JTkZPKHApLT5kZXZpY2VfaWQpCisKKyNkZWZpbmUgSU5URUxf REVWSUQoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmRldmljZV9pZCkKIAogI2RlZmluZSBS RVZJRF9GT1JFVkVSCQkweGZmCiAjZGVmaW5lIElOVEVMX1JFVklEKHApCShfX0k5MTVfXyhwKS0+ ZHJtLnBkZXYtPnJldmlzaW9uKQpAQCAtMjYzNywyNyArMjYzOCwyNyBAQCBzdHJ1Y3QgZHJtX2k5 MTVfY21kX3RhYmxlIHsKICNkZWZpbmUgSVNfUkVWSUQocCwgc2luY2UsIHVudGlsKSBcCiAJKElO VEVMX1JFVklEKHApID49IChzaW5jZSkgJiYgSU5URUxfUkVWSUQocCkgPD0gKHVudGlsKSkKIAot I2RlZmluZSBJU19JODMwKGRldikJCShJTlRFTF9ERVZJRChkZXYpID09IDB4MzU3NykKLSNkZWZp bmUgSVNfODQ1RyhkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDI1NjIpCisjZGVmaW5lIElT X0k4MzAoZGV2X3ByaXYpCShJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgzNTc3KQorI2RlZmlu ZSBJU184NDVHKGRldl9wcml2KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MjU2MikKICNk ZWZpbmUgSVNfSTg1WChkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5pc19pODV4KQotI2RlZmluZSBJ U19JODY1RyhkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDI1NzIpCisjZGVmaW5lIElTX0k4 NjVHKGRldl9wcml2KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MjU3MikKICNkZWZpbmUg SVNfSTkxNUcoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aXNfaTkxNWcpCi0jZGVmaW5lIElTX0k5 MTVHTShkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDI1OTIpCi0jZGVmaW5lIElTX0k5NDVH KGRldikJCShJTlRFTF9ERVZJRChkZXYpID09IDB4Mjc3MikKKyNkZWZpbmUgSVNfSTkxNUdNKGRl dl9wcml2KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MjU5MikKKyNkZWZpbmUgSVNfSTk0 NUcoZGV2X3ByaXYpCShJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgyNzcyKQogI2RlZmluZSBJ U19JOTQ1R00oZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aXNfaTk0NWdtKQogI2RlZmluZSBJU19C Uk9BRFdBVEVSKGRldikJKElOVEVMX0lORk8oZGV2KS0+aXNfYnJvYWR3YXRlcikKICNkZWZpbmUg SVNfQ1JFU1RMSU5FKGRldikJKElOVEVMX0lORk8oZGV2KS0+aXNfY3Jlc3RsaW5lKQotI2RlZmlu ZSBJU19HTTQ1KGRldikJCShJTlRFTF9ERVZJRChkZXYpID09IDB4MkE0MikKKyNkZWZpbmUgSVNf R000NShkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDJBNDIpCiAjZGVmaW5l IElTX0c0WChkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5pc19nNHgpCi0jZGVmaW5lIElTX1BJTkVW SUVXX0coZGV2KQkoSU5URUxfREVWSUQoZGV2KSA9PSAweGEwMDEpCi0jZGVmaW5lIElTX1BJTkVW SUVXX00oZGV2KQkoSU5URUxfREVWSUQoZGV2KSA9PSAweGEwMTEpCisjZGVmaW5lIElTX1BJTkVW SUVXX0coZGV2X3ByaXYpCShJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHhhMDAxKQorI2RlZmlu ZSBJU19QSU5FVklFV19NKGRldl9wcml2KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4YTAx MSkKICNkZWZpbmUgSVNfUElORVZJRVcoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19waW5ldmll dykKICNkZWZpbmUgSVNfRzMzKGRldikJCShJTlRFTF9JTkZPKGRldiktPmlzX2czMykKLSNkZWZp bmUgSVNfSVJPTkxBS0VfTShkZXYpCShJTlRFTF9ERVZJRChkZXYpID09IDB4MDA0NikKKyNkZWZp bmUgSVNfSVJPTkxBS0VfTShkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDAw NDYpCiAjZGVmaW5lIElTX0lWWUJSSURHRShkZXYpCShJTlRFTF9JTkZPKGRldiktPmlzX2l2eWJy aWRnZSkKLSNkZWZpbmUgSVNfSVZCX0dUMShkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDAx NTYgfHwgXAotCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4MDE1MiB8fCBcCi0JCQkJIElOVEVM X0RFVklEKGRldikgPT0gMHgwMTVhKQorI2RlZmluZSBJU19JVkJfR1QxKGRldl9wcml2KQkoSU5U RUxfREVWSUQoZGV2X3ByaXYpID09IDB4MDE1NiB8fCBcCisJCQkJIElOVEVMX0RFVklEKGRldl9w cml2KSA9PSAweDAxNTIgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgwMTVh KQogI2RlZmluZSBJU19WQUxMRVlWSUVXKGRldikJKElOVEVMX0lORk8oZGV2KS0+aXNfdmFsbGV5 dmlldykKICNkZWZpbmUgSVNfQ0hFUlJZVklFVyhkZXYpCShJTlRFTF9JTkZPKGRldiktPmlzX2No ZXJyeXZpZXcpCiAjZGVmaW5lIElTX0hBU1dFTEwoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19o YXN3ZWxsKQpAQCAtMjY2Niw0NCArMjY2Nyw0NCBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxl IHsKICNkZWZpbmUgSVNfQlJPWFRPTihkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5pc19icm94dG9u KQogI2RlZmluZSBJU19LQUJZTEFLRShkZXYpCShJTlRFTF9JTkZPKGRldiktPmlzX2thYnlsYWtl KQogI2RlZmluZSBJU19NT0JJTEUoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aXNfbW9iaWxlKQot I2RlZmluZSBJU19IU1dfRUFSTFlfU0RWKGRldikJKElTX0hBU1dFTEwoZGV2KSAmJiBcCi0JCQkJ IChJTlRFTF9ERVZJRChkZXYpICYgMHhGRjAwKSA9PSAweDBDMDApCi0jZGVmaW5lIElTX0JEV19V TFQoZGV2KQkJKElTX0JST0FEV0VMTChkZXYpICYmIFwKLQkJCQkgKChJTlRFTF9ERVZJRChkZXYp ICYgMHhmKSA9PSAweDYgfHwJXAotCQkJCSAoSU5URUxfREVWSUQoZGV2KSAmIDB4ZikgPT0gMHhi IHx8CVwKLQkJCQkgKElOVEVMX0RFVklEKGRldikgJiAweGYpID09IDB4ZSkpCisjZGVmaW5lIElT X0hTV19FQVJMWV9TRFYoZGV2X3ByaXYpIChJU19IQVNXRUxMKGRldl9wcml2KSAmJiBcCisJCQkJ ICAgIChJTlRFTF9ERVZJRChkZXZfcHJpdikgJiAweEZGMDApID09IDB4MEMwMCkKKyNkZWZpbmUg SVNfQkRXX1VMVChkZXZfcHJpdikJKElTX0JST0FEV0VMTChkZXZfcHJpdikgJiYgXAorCQkJCSAo KElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4ZikgPT0gMHg2IHx8CVwKKwkJCQkgKElOVEVMX0RF VklEKGRldl9wcml2KSAmIDB4ZikgPT0gMHhiIHx8CVwKKwkJCQkgKElOVEVMX0RFVklEKGRldl9w cml2KSAmIDB4ZikgPT0gMHhlKSkKIC8qIFVMWCBtYWNoaW5lcyBhcmUgYWxzbyBjb25zaWRlcmVk IFVMVC4gKi8KLSNkZWZpbmUgSVNfQkRXX1VMWChkZXYpCQkoSVNfQlJPQURXRUxMKGRldikgJiYg XAotCQkJCSAoSU5URUxfREVWSUQoZGV2KSAmIDB4ZikgPT0gMHhlKQotI2RlZmluZSBJU19CRFdf R1QzKGRldikJCShJU19CUk9BRFdFTEwoZGV2KSAmJiBcCi0JCQkJIChJTlRFTF9ERVZJRChkZXYp ICYgMHgwMEYwKSA9PSAweDAwMjApCi0jZGVmaW5lIElTX0hTV19VTFQoZGV2KQkJKElTX0hBU1dF TEwoZGV2KSAmJiBcCi0JCQkJIChJTlRFTF9ERVZJRChkZXYpICYgMHhGRjAwKSA9PSAweDBBMDAp Ci0jZGVmaW5lIElTX0hTV19HVDMoZGV2KQkJKElTX0hBU1dFTEwoZGV2KSAmJiBcCi0JCQkJIChJ TlRFTF9ERVZJRChkZXYpICYgMHgwMEYwKSA9PSAweDAwMjApCisjZGVmaW5lIElTX0JEV19VTFgo ZGV2X3ByaXYpCShJU19CUk9BRFdFTEwoZGV2X3ByaXYpICYmIFwKKwkJCQkgKElOVEVMX0RFVklE KGRldl9wcml2KSAmIDB4ZikgPT0gMHhlKQorI2RlZmluZSBJU19CRFdfR1QzKGRldl9wcml2KQko SVNfQlJPQURXRUxMKGRldl9wcml2KSAmJiBcCisJCQkJIChJTlRFTF9ERVZJRChkZXZfcHJpdikg JiAweDAwRjApID09IDB4MDAyMCkKKyNkZWZpbmUgSVNfSFNXX1VMVChkZXZfcHJpdikJKElTX0hB U1dFTEwoZGV2X3ByaXYpICYmIFwKKwkJCQkgKElOVEVMX0RFVklEKGRldl9wcml2KSAmIDB4RkYw MCkgPT0gMHgwQTAwKQorI2RlZmluZSBJU19IU1dfR1QzKGRldl9wcml2KQkoSVNfSEFTV0VMTChk ZXZfcHJpdikgJiYgXAorCQkJCSAoSU5URUxfREVWSUQoZGV2X3ByaXYpICYgMHgwMEYwKSA9PSAw eDAwMjApCiAvKiBVTFggbWFjaGluZXMgYXJlIGFsc28gY29uc2lkZXJlZCBVTFQuICovCi0jZGVm aW5lIElTX0hTV19VTFgoZGV2KQkJKElOVEVMX0RFVklEKGRldikgPT0gMHgwQTBFIHx8IFwKLQkJ CQkgSU5URUxfREVWSUQoZGV2KSA9PSAweDBBMUUpCi0jZGVmaW5lIElTX1NLTF9VTFQoZGV2KQkJ KElOVEVMX0RFVklEKGRldikgPT0gMHgxOTA2IHx8IFwKLQkJCQkgSU5URUxfREVWSUQoZGV2KSA9 PSAweDE5MTMgfHwgXAotCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4MTkxNiB8fCBcCi0JCQkJ IElOVEVMX0RFVklEKGRldikgPT0gMHgxOTIxIHx8IFwKLQkJCQkgSU5URUxfREVWSUQoZGV2KSA9 PSAweDE5MjYpCi0jZGVmaW5lIElTX1NLTF9VTFgoZGV2KQkJKElOVEVMX0RFVklEKGRldikgPT0g MHgxOTBFIHx8IFwKLQkJCQkgSU5URUxfREVWSUQoZGV2KSA9PSAweDE5MTUgfHwgXAotCQkJCSBJ TlRFTF9ERVZJRChkZXYpID09IDB4MTkxRSkKLSNkZWZpbmUgSVNfS0JMX1VMVChkZXYpCQkoSU5U RUxfREVWSUQoZGV2KSA9PSAweDU5MDYgfHwgXAotCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4 NTkxMyB8fCBcCi0JCQkJIElOVEVMX0RFVklEKGRldikgPT0gMHg1OTE2IHx8IFwKLQkJCQkgSU5U RUxfREVWSUQoZGV2KSA9PSAweDU5MjEgfHwgXAotCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4 NTkyNikKLSNkZWZpbmUgSVNfS0JMX1VMWChkZXYpCQkoSU5URUxfREVWSUQoZGV2KSA9PSAweDU5 MEUgfHwgXAotCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4NTkxNSB8fCBcCi0JCQkJIElOVEVM X0RFVklEKGRldikgPT0gMHg1OTFFKQotI2RlZmluZSBJU19TS0xfR1QzKGRldikJCShJU19TS1lM QUtFKGRldikgJiYgXAotCQkJCSAoSU5URUxfREVWSUQoZGV2KSAmIDB4MDBGMCkgPT0gMHgwMDIw KQotI2RlZmluZSBJU19TS0xfR1Q0KGRldikJCShJU19TS1lMQUtFKGRldikgJiYgXAotCQkJCSAo SU5URUxfREVWSUQoZGV2KSAmIDB4MDBGMCkgPT0gMHgwMDMwKQorI2RlZmluZSBJU19IU1dfVUxY KGRldl9wcml2KQkoSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MEEwRSB8fCBcCisJCQkJIElO VEVMX0RFVklEKGRldl9wcml2KSA9PSAweDBBMUUpCisjZGVmaW5lIElTX1NLTF9VTFQoZGV2X3By aXYpCShJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgxOTA2IHx8IFwKKwkJCQkgSU5URUxfREVW SUQoZGV2X3ByaXYpID09IDB4MTkxMyB8fCBcCisJCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9 PSAweDE5MTYgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgxOTIxIHx8IFwK KwkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4MTkyNikKKyNkZWZpbmUgSVNfU0tMX1VM WChkZXZfcHJpdikJKElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDE5MEUgfHwgXAorCQkJCSBJ TlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHgxOTE1IHx8IFwKKwkJCQkgSU5URUxfREVWSUQoZGV2 X3ByaXYpID09IDB4MTkxRSkKKyNkZWZpbmUgSVNfS0JMX1VMVChkZXZfcHJpdikJKElOVEVMX0RF VklEKGRldl9wcml2KSA9PSAweDU5MDYgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikg PT0gMHg1OTEzIHx8IFwKKwkJCQkgSU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4NTkxNiB8fCBc CisJCQkJIElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDU5MjEgfHwgXAorCQkJCSBJTlRFTF9E RVZJRChkZXZfcHJpdikgPT0gMHg1OTI2KQorI2RlZmluZSBJU19LQkxfVUxYKGRldl9wcml2KQko SU5URUxfREVWSUQoZGV2X3ByaXYpID09IDB4NTkwRSB8fCBcCisJCQkJIElOVEVMX0RFVklEKGRl dl9wcml2KSA9PSAweDU5MTUgfHwgXAorCQkJCSBJTlRFTF9ERVZJRChkZXZfcHJpdikgPT0gMHg1 OTFFKQorI2RlZmluZSBJU19TS0xfR1QzKGRldl9wcml2KQkoSVNfU0tZTEFLRShkZXZfcHJpdikg JiYgXAorCQkJCSAoSU5URUxfREVWSUQoZGV2X3ByaXYpICYgMHgwMEYwKSA9PSAweDAwMjApCisj ZGVmaW5lIElTX1NLTF9HVDQoZGV2X3ByaXYpCShJU19TS1lMQUtFKGRldl9wcml2KSAmJiBcCisJ CQkJIChJTlRFTF9ERVZJRChkZXZfcHJpdikgJiAweDAwRjApID09IDB4MDAzMCkKIAogI2RlZmlu ZSBJU19QUkVMSU1JTkFSWV9IVyhpbnRlbF9pbmZvKSAoKGludGVsX2luZm8pLT5pc19wcmVsaW1p bmFyeSkKIApAQCAtMjc4Miw3ICsyNzgzLDcgQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7 CiAjZGVmaW5lIE9WRVJMQVlfTkVFRFNfUEhZU0lDQUwoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5v dmVybGF5X25lZWRzX3BoeXNpY2FsKQogCiAvKiBFYXJseSBnZW4yIGhhdmUgYSB0b3RhbGx5IGJ1 c3RlZCBDUyB0bGIgYW5kIHJlcXVpcmUgcGlubmVkIGJhdGNoZXMuICovCi0jZGVmaW5lIEhBU19C Uk9LRU5fQ1NfVExCKGRldikJCShJU19JODMwKGRldikgfHwgSVNfODQ1RyhkZXYpKQorI2RlZmlu ZSBIQVNfQlJPS0VOX0NTX1RMQihkZXZfcHJpdikJKElTX0k4MzAoZGV2X3ByaXYpIHx8IElTXzg0 NUcoZGV2X3ByaXYpKQogCiAvKiBXYVJzRGlzYWJsZUNvYXJzZVBvd2VyR2F0aW5nOnNrbCxieHQg Ki8KICNkZWZpbmUgTkVFRFNfV2FSc0Rpc2FibGVDb2Fyc2VQb3dlckdhdGluZyhkZXZfcHJpdikg XApAQCAtMjgwMiw4ICsyODAzLDkgQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7CiAvKiBX aXRoIHRoZSA5NDUgYW5kIGxhdGVyLCBZIHRpbGluZyBnb3QgYWRqdXN0ZWQgc28gdGhhdCBpdCB3 YXMgMzIgMTI4LWJ5dGUKICAqIHJvd3MsIHdoaWNoIGNoYW5nZWQgdGhlIGFsaWdubWVudCByZXF1 aXJlbWVudHMgYW5kIGZlbmNlIHByb2dyYW1taW5nLgogICovCi0jZGVmaW5lIEhBU18xMjhfQllU RV9ZX1RJTElORyhkZXYpICghSVNfR0VOMihkZXYpICYmICEoSVNfSTkxNUcoZGV2KSB8fCBcCi0J CQkJCQkgICAgICBJU19JOTE1R00oZGV2KSkpCisjZGVmaW5lIEhBU18xMjhfQllURV9ZX1RJTElO RyhkZXZfcHJpdikgKCFJU19HRU4yKGRldl9wcml2KSAmJiBcCisJCQkJCSAhKElTX0k5MTVHKGRl dl9wcml2KSB8fCBcCisJCQkJCSBJU19JOTE1R00oZGV2X3ByaXYpKSkKICNkZWZpbmUgU1VQUE9S VFNfVFYoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+c3VwcG9ydHNfdHYpCiAjZGVmaW5lIEk5MTVf SEFTX0hPVFBMVUcoZGV2KQkJIChJTlRFTF9JTkZPKGRldiktPmhhc19ob3RwbHVnKQogCkBAIC0y ODExLDcgKzI4MTMsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxlIHsKICNkZWZpbmUgSEFT X1BJUEVfQ1hTUihkZXYpIChJTlRFTF9JTkZPKGRldiktPmhhc19waXBlX2N4c3IpCiAjZGVmaW5l IEhBU19GQkMoZGV2KSAoSU5URUxfSU5GTyhkZXYpLT5oYXNfZmJjKQogCi0jZGVmaW5lIEhBU19J UFMoZGV2KQkJKElTX0hTV19VTFQoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKKyNkZWZpbmUg SEFTX0lQUyhkZXZfcHJpdikJKElTX0hTV19VTFQoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChk ZXZfcHJpdikpCiAKICNkZWZpbmUgSEFTX0RQX01TVChkZXYpCShJTlRFTF9JTkZPKGRldiktPmhh c19kcF9tc3QpCiAKQEAgLTI4NjcsNyArMjg2OSw4IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFi bGUgewogCiAvKiBEUEYgPT0gZHluYW1pYyBwYXJpdHkgZmVhdHVyZSAqLwogI2RlZmluZSBIQVNf TDNfRFBGKGRldikgKElOVEVMX0lORk8oZGV2KS0+aGFzX2wzX2RwZikKLSNkZWZpbmUgTlVNX0wz X1NMSUNFUyhkZXYpIChJU19IU1dfR1QzKGRldikgPyAyIDogSEFTX0wzX0RQRihkZXYpKQorI2Rl ZmluZSBOVU1fTDNfU0xJQ0VTKGRldl9wcml2KSAoSVNfSFNXX0dUMyhkZXZfcHJpdikgPyBcCisJ CQkJIDIgOiBIQVNfTDNfRFBGKGRldl9wcml2KSkKIAogI2RlZmluZSBHVF9GUkVRVUVOQ1lfTVVM VElQTElFUiA1MAogI2RlZmluZSBHRU45X0ZSRVFfU0NBTEVSIDMKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jCmluZGV4IDZiMDk5ZjAxOThjYy4uYWZhYTQ5OTQ2MDQyIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKQEAgLTQzMjEsMzAgKzQzMjEsMjggQEAgdm9pZCBpOTE1X2dlbV9pbml0X3N3aXp6bGlu ZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlCVUcoKTsKIH0KIAotc3RhdGljIHZvaWQgaW5p dF91bnVzZWRfcmluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgYmFzZSkKK3N0YXRpYyB2 b2lkIGluaXRfdW51c2VkX3Jpbmcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1 MzIgYmFzZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Ci0KIAlJOTE1X1dSSVRFKFJJTkdfQ1RMKGJhc2UpLCAwKTsKIAlJOTE1X1dSSVRFKFJJ TkdfSEVBRChiYXNlKSwgMCk7CiAJSTkxNV9XUklURShSSU5HX1RBSUwoYmFzZSksIDApOwogCUk5 MTVfV1JJVEUoUklOR19TVEFSVChiYXNlKSwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIGluaXRfdW51 c2VkX3JpbmdzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCi17Ci0JaWYgKElTX0k4MzAoZGV2KSkg ewotCQlpbml0X3VudXNlZF9yaW5nKGRldiwgUFJCMV9CQVNFKTsKLQkJaW5pdF91bnVzZWRfcmlu ZyhkZXYsIFNSQjBfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2LCBTUkIxX0JBU0UpOwot CQlpbml0X3VudXNlZF9yaW5nKGRldiwgU1JCMl9CQVNFKTsKLQkJaW5pdF91bnVzZWRfcmluZyhk ZXYsIFNSQjNfQkFTRSk7Ci0JfSBlbHNlIGlmIChJU19HRU4yKGRldikpIHsKLQkJaW5pdF91bnVz ZWRfcmluZyhkZXYsIFNSQjBfQkFTRSk7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2LCBTUkIxX0JB U0UpOwotCX0gZWxzZSBpZiAoSVNfR0VOMyhkZXYpKSB7Ci0JCWluaXRfdW51c2VkX3JpbmcoZGV2 LCBQUkIxX0JBU0UpOwotCQlpbml0X3VudXNlZF9yaW5nKGRldiwgUFJCMl9CQVNFKTsKK3N0YXRp YyB2b2lkIGluaXRfdW51c2VkX3JpbmdzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKK3sKKwlpZiAoSVNfSTgzMChkZXZfcHJpdikpIHsKKwkJaW5pdF91bnVzZWRfcmluZyhkZXZf cHJpdiwgUFJCMV9CQVNFKTsKKwkJaW5pdF91bnVzZWRfcmluZyhkZXZfcHJpdiwgU1JCMF9CQVNF KTsKKwkJaW5pdF91bnVzZWRfcmluZyhkZXZfcHJpdiwgU1JCMV9CQVNFKTsKKwkJaW5pdF91bnVz ZWRfcmluZyhkZXZfcHJpdiwgU1JCMl9CQVNFKTsKKwkJaW5pdF91bnVzZWRfcmluZyhkZXZfcHJp diwgU1JCM19CQVNFKTsKKwl9IGVsc2UgaWYgKElTX0dFTjIoZGV2X3ByaXYpKSB7CisJCWluaXRf dW51c2VkX3JpbmcoZGV2X3ByaXYsIFNSQjBfQkFTRSk7CisJCWluaXRfdW51c2VkX3JpbmcoZGV2 X3ByaXYsIFNSQjFfQkFTRSk7CisJfSBlbHNlIGlmIChJU19HRU4zKGRldl9wcml2KSkgeworCQlp bml0X3VudXNlZF9yaW5nKGRldl9wcml2LCBQUkIxX0JBU0UpOworCQlpbml0X3VudXNlZF9yaW5n KGRldl9wcml2LCBQUkIyX0JBU0UpOwogCX0KIH0KIApAQCAtNDM2Miw3ICs0MzYwLDcgQEAgaTkx NV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlJOTE1X1dSSVRFKEhTV19J RElDUiwgSTkxNV9SRUFEKEhTV19JRElDUikgfCBJRElIQVNITVNLKDB4ZikpOwogCiAJaWYgKElT X0hBU1dFTEwoZGV2KSkKLQkJSTkxNV9XUklURShNSV9QUkVESUNBVEVfUkVTVUxUXzIsIElTX0hT V19HVDMoZGV2KSA/CisJCUk5MTVfV1JJVEUoTUlfUFJFRElDQVRFX1JFU1VMVF8yLCBJU19IU1df R1QzKGRldl9wcml2KSA/CiAJCQkgICBMT1dFUl9TTElDRV9FTkFCTEVEIDogTE9XRVJfU0xJQ0Vf RElTQUJMRUQpOwogCiAJaWYgKEhBU19QQ0hfTk9QKGRldl9wcml2KSkgewpAQCAtNDM4NSw3ICs0 MzgzLDcgQEAgaTkxNV9nZW1faW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIHdp bGwgcHJldmVudCBjMyBlbnRyeS4gTWFrZXMgc3VyZSBhbGwgdW51c2VkIHJpbmdzCiAJICogYXJl IHRvdGFsbHkgaWRsZS4KIAkgKi8KLQlpbml0X3VudXNlZF9yaW5ncyhkZXYpOworCWluaXRfdW51 c2VkX3JpbmdzKGRldl9wcml2KTsKIAogCUJVR19PTighZGV2X3ByaXYtPmtlcm5lbF9jb250ZXh0 KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCA1OTk4OWU4ZWU1 ZGMuLmNiZWE2ZmI4M2NlNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fc3RvbGVuLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMK QEAgLTExNSw3ICsxMTUsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xlbl90b19w aHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlwY2lfcmVhZF9jb25maWdfZHdvcmQo cGRldiwgSU5URUxfQlNNLCAmYnNtKTsKIAogCQliYXNlID0gYnNtICYgSU5URUxfQlNNX01BU0s7 Ci0JfSBlbHNlIGlmIChJU19JODY1RyhkZXYpKSB7CisJfSBlbHNlIGlmIChJU19JODY1RyhkZXZf cHJpdikpIHsKIAkJdTMyIHRzZWdfc2l6ZSA9IDA7CiAJCXUxNiB0b3VkID0gMDsKIAkJdTggdG1w OwpAQCAtMTU0LDcgKzE1NCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGk5MTVfc3RvbGVuX3Rv X3BoeXNpY2FsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCXRvbSA9IHRtcCAqIE1CKDMyKTsK IAogCQliYXNlID0gdG9tIC0gdHNlZ19zaXplIC0gZ2d0dC0+c3RvbGVuX3NpemU7Ci0JfSBlbHNl IGlmIChJU184NDVHKGRldikpIHsKKwl9IGVsc2UgaWYgKElTXzg0NUcoZGV2X3ByaXYpKSB7CiAJ CXUzMiB0c2VnX3NpemUgPSAwOwogCQl1MzIgdG9tOwogCQl1OCB0bXA7CkBAIC0xNzgsNyArMTc4 LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJdG9tID0gdG1wICogTUIoMzIpOwogCiAJCWJhc2UgPSB0b20g LSB0c2VnX3NpemUgLSBnZ3R0LT5zdG9sZW5fc2l6ZTsKLQl9IGVsc2UgaWYgKElTX0k4MzAoZGV2 KSkgeworCX0gZWxzZSBpZiAoSVNfSTgzMChkZXZfcHJpdikpIHsKIAkJdTMyIHRzZWdfc2l6ZSA9 IDA7CiAJCXUzMiB0b207CiAJCXU4IHRtcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3RpbGluZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fdGls aW5nLmMKaW5kZXggYTE0YjFlM2Q0Yzc4Li44OWQxZDIzNGExYjQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3RpbGluZy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX3RpbGluZy5jCkBAIC02Miw2ICs2Miw3IEBACiBzdGF0aWMgYm9vbAogaTkx NV90aWxpbmdfb2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0cmlkZSwgaW50IHNpemUs IGludCB0aWxpbmdfbW9kZSkKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGRldik7CiAJaW50IHRpbGVfd2lkdGg7CiAKIAkvKiBMaW5lYXIgaXMgYWx3YXlz IGZpbmUgKi8KQEAgLTcyLDcgKzczLDcgQEAgaTkxNV90aWxpbmdfb2soc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgaW50IHN0cmlkZSwgaW50IHNpemUsIGludCB0aWxpbmdfbW9kZSkKIAkJcmV0dXJu IGZhbHNlOwogCiAJaWYgKElTX0dFTjIoZGV2KSB8fAotCSAgICAodGlsaW5nX21vZGUgPT0gSTkx NV9USUxJTkdfWSAmJiBIQVNfMTI4X0JZVEVfWV9USUxJTkcoZGV2KSkpCisJICAgICh0aWxpbmdf bW9kZSA9PSBJOTE1X1RJTElOR19ZICYmIEhBU18xMjhfQllURV9ZX1RJTElORyhkZXZfcHJpdikp KQogCQl0aWxlX3dpZHRoID0gMTI4OwogCWVsc2UKIAkJdGlsZV93aWR0aCA9IDUxMjsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jCmluZGV4IDg4MzQ3NDQxMWFlZS4uNWZiM2IxYzlhNTJjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfaXJxLmMKQEAgLTM2NTYsNyArMzY1Niw3IEBAIHN0YXRpYyBpbnQgaXJvbmxh a2VfaXJxX3Bvc3RpbnN0YWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlpYnhfaXJxX3Bv c3RpbnN0YWxsKGRldik7CiAKLQlpZiAoSVNfSVJPTkxBS0VfTShkZXYpKSB7CisJaWYgKElTX0lS T05MQUtFX00oZGV2X3ByaXYpKSB7CiAJCS8qIEVuYWJsZSBQQ1UgZXZlbnQgaW50ZXJydXB0cwog CQkgKgogCQkgKiBzcGlubG9ja2luZyBub3QgcmVxdWlyZWQgaGVyZSBmb3IgY29ycmVjdG5lc3Mg c2luY2UgaW50ZXJydXB0CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j cnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCmluZGV4IGY4OTE5ZWYzYTdh Zi4uZDQzODhjMDNiNGRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j cnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwpAQCAtNDMxLDcgKzQz MSw3IEBAIHN0YXRpYyBib29sIGludGVsX2NydF9kZXRlY3RfaG90cGx1ZyhzdHJ1Y3QgZHJtX2Nv bm5lY3RvciAqY29ubmVjdG9yKQogCSAqIHRvIGdldCBhIHJlbGlhYmxlIHJlc3VsdC4KIAkgKi8K IAotCWlmIChJU19HNFgoZGV2KSAmJiAhSVNfR000NShkZXYpKQorCWlmIChJU19HNFgoZGV2X3By aXYpICYmICFJU19HTTQ1KGRldl9wcml2KSkKIAkJdHJpZXMgPSAyOwogCWVsc2UKIAkJdHJpZXMg PSAxOwpAQCAtODk0LDcgKzg5NCw3IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAogCWNydC0+YmFzZS50eXBlID0gSU5URUxfT1VUUFVUX0FOQUxPRzsKIAlj cnQtPmJhc2UuY2xvbmVhYmxlID0gKDEgPDwgSU5URUxfT1VUUFVUX0RWTykgfCAoMSA8PCBJTlRF TF9PVVRQVVRfSERNSSk7Ci0JaWYgKElTX0k4MzAoZGV2KSkKKwlpZiAoSVNfSTgzMChkZXZfcHJp dikpCiAJCWNydC0+YmFzZS5jcnRjX21hc2sgPSAoMSA8PCAwKTsKIAllbHNlCiAJCWNydC0+YmFz ZS5jcnRjX21hc2sgPSAoMSA8PCAwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggYjc2ODU5MzZkMzI0Li5lZTNiNTkzZDNlYzIgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEyMzAsMTAgKzEyMzAsOSBAQCB2 b2lkIGFzc2VydF9wYW5lbF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIGVudW0gcGlwZSBwaXBlKQogc3RhdGljIHZvaWQgYXNzZXJ0X2N1cnNvcihzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgIGVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRl KQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAlib29sIGN1 cl9zdGF0ZTsKIAotCWlmIChJU184NDVHKGRldikgfHwgSVNfSTg2NUcoZGV2KSkKKwlpZiAoSVNf ODQ1RyhkZXZfcHJpdikgfHwgSVNfSTg2NUcoZGV2X3ByaXYpKQogCQljdXJfc3RhdGUgPSBJOTE1 X1JFQUQoQ1VSQ05UUihQSVBFX0EpKSAmIENVUlNPUl9FTkFCTEU7CiAJZWxzZQogCQljdXJfc3Rh dGUgPSBJOTE1X1JFQUQoQ1VSQ05UUihwaXBlKSkgJiBDVVJTT1JfTU9ERTsKQEAgLTE2MTcsMTEg KzE2MTYsMTEgQEAgc3RhdGljIHZvaWQgaTl4eF9lbmFibGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQogCWFzc2VydF9waXBlX2Rpc2FibGVkKGRldl9wcml2LCBjcnRjLT5waXBlKTsKIAog CS8qIFBMTCBpcyBwcm90ZWN0ZWQgYnkgcGFuZWwsIG1ha2Ugc3VyZSB3ZSBjYW4gd3JpdGUgaXQg Ki8KLQlpZiAoSVNfTU9CSUxFKGRldikgJiYgIUlTX0k4MzAoZGV2KSkKKwlpZiAoSVNfTU9CSUxF KGRldl9wcml2KSAmJiAhSVNfSTgzMChkZXZfcHJpdikpCiAJCWFzc2VydF9wYW5lbF91bmxvY2tl ZChkZXZfcHJpdiwgY3J0Yy0+cGlwZSk7CiAKIAkvKiBFbmFibGUgRFZPIDJ4IGNsb2NrIG9uIGJv dGggUExMcyBpZiBuZWNlc3NhcnkgKi8KLQlpZiAoSVNfSTgzMChkZXYpICYmIGludGVsX251bV9k dm9fcGlwZXMoZGV2KSA+IDApIHsKKwlpZiAoSVNfSTgzMChkZXZfcHJpdikgJiYgaW50ZWxfbnVt X2R2b19waXBlcyhkZXYpID4gMCkgewogCQkvKgogCQkgKiBJdCBhcHBlYXJzIHRvIGJlIGltcG9y dGFudCB0aGF0IHdlIGRvbid0IGVuYWJsZSB0aGlzCiAJCSAqIGZvciB0aGUgY3VycmVudCBwaXBl IGJlZm9yZSBvdGhlcndpc2UgY29uZmlndXJpbmcgdGhlCkBAIC0xNjg2LDcgKzE2ODUsNyBAQCBz dGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfcGxsKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAogCS8qIERpc2FibGUgRFZPIDJ4IGNsb2NrIG9u IGJvdGggUExMcyBpZiBuZWNlc3NhcnkgKi8KLQlpZiAoSVNfSTgzMChkZXYpICYmCisJaWYgKElT X0k4MzAoZGV2X3ByaXYpICYmCiAJICAgIGludGVsX2NydGNfaGFzX3R5cGUoY3J0Yy0+Y29uZmln LCBJTlRFTF9PVVRQVVRfRFZPKSAmJgogCSAgICAhaW50ZWxfbnVtX2R2b19waXBlcyhkZXYpKSB7 CiAJCUk5MTVfV1JJVEUoRFBMTChQSVBFX0IpLApAQCAtNTM5Miw3ICs1MzkxLDcgQEAgc3RhdGlj IHZvaWQgaXJvbmxha2VfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnLAogLyogSVBTIG9ubHkgZXhpc3RzIG9uIFVMVCBtYWNoaW5lcyBhbmQgaXMgdGllZCB0 byBwaXBlIEEuICovCiBzdGF0aWMgYm9vbCBoc3dfY3J0Y19zdXBwb3J0c19pcHMoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCiB7Ci0JcmV0dXJuIEhBU19JUFMoY3J0Yy0+YmFzZS5kZXYpICYmIGNy dGMtPnBpcGUgPT0gUElQRV9BOworCXJldHVybiBIQVNfSVBTKHRvX2k5MTUoY3J0Yy0+YmFzZS5k ZXYpKSAmJiBjcnRjLT5waXBlID09IFBJUEVfQTsKIH0KIAogc3RhdGljIHZvaWQgaGFzd2VsbF9j cnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCkBAIC01ODY0 LDkgKzU4NjMsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCSAqLwogCQlpZiAoSTkxNV9SRUFEKEZVU0VfU1RSQVApICYgSFNX X0NEQ0xLX0xJTUlUKQogCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDUwMDAwOwotCQll bHNlIGlmIChJU19CRFdfVUxYKGRldikpCisJCWVsc2UgaWYgKElTX0JEV19VTFgoZGV2X3ByaXYp KQogCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNDUwMDAwOwotCQllbHNlIGlmIChJU19C RFdfVUxUKGRldikpCisJCWVsc2UgaWYgKElTX0JEV19VTFQoZGV2X3ByaXYpKQogCQkJZGV2X3By aXYtPm1heF9jZGNsa19mcmVxID0gNTQwMDAwOwogCQllbHNlCiAJCQlkZXZfcHJpdi0+bWF4X2Nk Y2xrX2ZyZXEgPSA2NzUwMDA7CkBAIC03MjI1LDcgKzcyMjQsNyBAQCBzdGF0aWMgaW50IGludGVs X2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCWFkanVzdGVk X21vZGUtPmNydGNfaHN5bmNfc3RhcnQgPT0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSkK IAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlpZiAoSEFTX0lQUyhkZXYpKQorCWlmIChIQVNfSVBTKGRl dl9wcml2KSkKIAkJaHN3X2NvbXB1dGVfaXBzX2NvbmZpZyhjcnRjLCBwaXBlX2NvbmZpZyk7CiAK IAlpZiAocGlwZV9jb25maWctPmhhc19wY2hfZW5jb2RlcikKQEAgLTczNjMsNyArNzM2Miw3IEBA IHN0YXRpYyBpbnQgaGFzd2VsbF9nZXRfZGlzcGxheV9jbG9ja19zcGVlZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCQlyZXR1cm4gNDUwMDAwOwogCWVsc2UgaWYgKGZyZXEgPT0gTENQTExfQ0xL X0ZSRVFfNDUwKQogCQlyZXR1cm4gNDUwMDAwOwotCWVsc2UgaWYgKElTX0hTV19VTFQoZGV2KSkK KwllbHNlIGlmIChJU19IU1dfVUxUKGRldl9wcml2KSkKIAkJcmV0dXJuIDMzNzUwMDsKIAllbHNl CiAJCXJldHVybiA1NDAwMDA7CkBAIC03NTMzLDcgKzc1MzIsNyBAQCBzdGF0aWMgdW5zaWduZWQg aW50IGludGVsX2hwbGxfdmNvKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJdWludDhfdCB0bXAg PSAwOwogCiAJLyogRklYTUUgb3RoZXIgY2hpcHNldHM/ICovCi0JaWYgKElTX0dNNDUoZGV2KSkK KwlpZiAoSVNfR000NShkZXZfcHJpdikpCiAJCXZjb190YWJsZSA9IGN0Z192Y287CiAJZWxzZSBp ZiAoSVNfRzRYKGRldikpCiAJCXZjb190YWJsZSA9IGVsa192Y287CkBAIC04MTUyLDcgKzgxNTEs NyBAQCBzdGF0aWMgdm9pZCBpOXh4X2NvbXB1dGVfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKIAllbHNlCiAJCWRwbGwgfD0gRFBMTEJfTU9ERV9EQUNfU0VSSUFMOwogCi0JaWYgKElTX0k5 NDVHKGRldikgfHwgSVNfSTk0NUdNKGRldikgfHwgSVNfRzMzKGRldikpIHsKKwlpZiAoSVNfSTk0 NUcoZGV2X3ByaXYpIHx8IElTX0k5NDVHTShkZXZfcHJpdikgfHwgSVNfRzMzKGRldl9wcml2KSkg ewogCQlkcGxsIHw9IChjcnRjX3N0YXRlLT5waXhlbF9tdWx0aXBsaWVyIC0gMSkKIAkJCTw8IFNE Vk9fTVVMVElQTElFUl9TSElGVF9ISVJFUzsKIAl9CkBAIC04MjMxLDcgKzgyMzAsOCBAQCBzdGF0 aWMgdm9pZCBpOHh4X2NvbXB1dGVfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCWRw bGwgfD0gUExMX1AyX0RJVklERV9CWV80OwogCX0KIAotCWlmICghSVNfSTgzMChkZXYpICYmIGlu dGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RWTykpCisJaWYgKCFJ U19JODMwKGRldl9wcml2KSAmJgorCSAgICBpbnRlbF9jcnRjX2hhc190eXBlKGNydGNfc3RhdGUs IElOVEVMX09VVFBVVF9EVk8pKQogCQlkcGxsIHw9IERQTExfRFZPXzJYX01PREU7CiAKIAlpZiAo aW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfTFZEUykgJiYKQEAg LTg2NTQsNyArODY1NCw4IEBAIHN0YXRpYyB2b2lkIGk5eHhfZ2V0X3BmaXRfY29uZmlnKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKIAl1aW50MzJfdCB0bXA7CiAKLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPD0gMyAmJiAoSVNfSTgzMChkZXYpIHx8ICFJU19NT0JJTEUoZGV2KSkpCisJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPD0gMyAmJgorCSAgICAoSVNfSTgzMChkZXZfcHJpdikgfHwgIUlTX01P QklMRShkZXZfcHJpdikpKQogCQlyZXR1cm47CiAKIAl0bXAgPSBJOTE1X1JFQUQoUEZJVF9DT05U Uk9MKTsKQEAgLTg4NjQsNyArODg2NSw4IEBAIHN0YXRpYyBib29sIGk5eHhfZ2V0X3BpcGVfY29u ZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJKCh0bXAgJiBEUExMX01EX1VESV9NVUxU SVBMSUVSX01BU0spCiAJCQkgPj4gRFBMTF9NRF9VRElfTVVMVElQTElFUl9TSElGVCkgKyAxOwog CQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5kcGxsX21kID0gdG1wOwotCX0gZWxzZSBpZiAo SVNfSTk0NUcoZGV2KSB8fCBJU19JOTQ1R00oZGV2KSB8fCBJU19HMzMoZGV2KSkgeworCX0gZWxz ZSBpZiAoSVNfSTk0NUcoZGV2X3ByaXYpIHx8IElTX0k5NDVHTShkZXZfcHJpdikgfHwKKwkJICAg SVNfRzMzKGRldl9wcml2KSkgewogCQl0bXAgPSBJOTE1X1JFQUQoRFBMTChjcnRjLT5waXBlKSk7 CiAJCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0KIAkJCSgodG1wICYgU0RWT19NVUxU SVBMSUVSX01BU0spCkBAIC04ODgyLDcgKzg4ODQsNyBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9w aXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJICogb24gODMwLiBGaWx0ZXIg aXQgb3V0IGhlcmUgc28gdGhhdCB3ZSBkb24ndAogCQkgKiByZXBvcnQgZXJyb3JzIGR1ZSB0byB0 aGF0LgogCQkgKi8KLQkJaWYgKElTX0k4MzAoZGV2KSkKKwkJaWYgKElTX0k4MzAoZGV2X3ByaXYp KQogCQkJcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCAmPSB+RFBMTF9EVk9fMlhfTU9E RTsKIAogCQlwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZS5mcDAgPSBJOTE1X1JFQUQoRlAwKGNy dGMtPnBpcGUpKTsKQEAgLTEwOTA0LDEzICsxMDkwNiwxMyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9j cnRjX3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLAogCiAJSTkxNV9XUklURShD VVJQT1MocGlwZSksIHBvcyk7CiAKLQlpZiAoSVNfODQ1RyhkZXYpIHx8IElTX0k4NjVHKGRldikp CisJaWYgKElTXzg0NUcoZGV2X3ByaXYpIHx8IElTX0k4NjVHKGRldl9wcml2KSkKIAkJaTg0NV91 cGRhdGVfY3Vyc29yKGNydGMsIGJhc2UsIHBsYW5lX3N0YXRlKTsKIAllbHNlCiAJCWk5eHhfdXBk YXRlX2N1cnNvcihjcnRjLCBiYXNlLCBwbGFuZV9zdGF0ZSk7CiB9CiAKLXN0YXRpYyBib29sIGN1 cnNvcl9zaXplX29rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCitzdGF0aWMgYm9vbCBjdXJzb3Jf c2l6ZV9vayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICB1aW50MzJf dCB3aWR0aCwgdWludDMyX3QgaGVpZ2h0KQogewogCWlmICh3aWR0aCA9PSAwIHx8IGhlaWdodCA9 PSAwKQpAQCAtMTA5MjIsMTEgKzEwOTI0LDExIEBAIHN0YXRpYyBib29sIGN1cnNvcl9zaXplX29r KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJICogdGhlIHByZWNpc2lvbiBvZiB0aGUgcmVnaXN0 ZXIuIEV2ZXJ5dGhpbmcgZWxzZSByZXF1aXJlcwogCSAqIHNxdWFyZSBjdXJzb3JzLCBsaW1pdGVk IHRvIGEgZmV3IHBvd2VyLW9mLXR3byBzaXplcy4KIAkgKi8KLQlpZiAoSVNfODQ1RyhkZXYpIHx8 IElTX0k4NjVHKGRldikpIHsKKwlpZiAoSVNfODQ1RyhkZXZfcHJpdikgfHwgSVNfSTg2NUcoZGV2 X3ByaXYpKSB7CiAJCWlmICgod2lkdGggJiA2MykgIT0gMCkKIAkJCXJldHVybiBmYWxzZTsKIAot CQlpZiAod2lkdGggPiAoSVNfODQ1RyhkZXYpID8gNjQgOiA1MTIpKQorCQlpZiAod2lkdGggPiAo SVNfODQ1RyhkZXZfcHJpdikgPyA2NCA6IDUxMikpCiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJaWYg KGhlaWdodCA+IDEwMjMpCkBAIC0xMDkzNSw3ICsxMDkzNyw3IEBAIHN0YXRpYyBib29sIGN1cnNv cl9zaXplX29rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXN3aXRjaCAod2lkdGggfCBoZWln aHQpIHsKIAkJY2FzZSAyNTY6CiAJCWNhc2UgMTI4OgotCQkJaWYgKElTX0dFTjIoZGV2KSkKKwkJ CWlmIChJU19HRU4yKGRldl9wcml2KSkKIAkJCQlyZXR1cm4gZmFsc2U7CiAJCWNhc2UgNjQ6CiAJ CQlicmVhazsKQEAgLTExMzc3LDcgKzExMzc5LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Ns b2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJZWxzZQogCQkJcG9ydF9jbG9jayA9 IGk5eHhfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGssICZjbG9jayk7CiAJfSBlbHNlIHsKLQkJdTMy IGx2ZHMgPSBJU19JODMwKGRldikgPyAwIDogSTkxNV9SRUFEKExWRFMpOworCQl1MzIgbHZkcyA9 IElTX0k4MzAoZGV2X3ByaXYpID8gMCA6IEk5MTVfUkVBRChMVkRTKTsKIAkJYm9vbCBpc19sdmRz ID0gKHBpcGUgPT0gMSkgJiYgKGx2ZHMgJiBMVkRTX1BPUlRfRU4pOwogCiAJCWlmIChpc19sdmRz KSB7CkBAIC0xNDY1OCw2ICsxNDY2MCw3IEBAIGludGVsX3ByZXBhcmVfcGxhbmVfZmIoc3RydWN0 IGRybV9wbGFuZSAqcGxhbmUsCiAJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdf c3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHBsYW5lLT5kZXY7CisJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0gbmV3X3N0YXRlLT5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2xkX29iaiA9IGludGVsX2ZiX29iaihwbGFuZS0+c3RhdGUtPmZiKTsKQEAgLTE0NzA5LDcg KzE0NzEyLDcgQEAgaW50ZWxfcHJlcGFyZV9wbGFuZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAogCWlmIChwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IgJiYKIAkgICAg SU5URUxfSU5GTyhkZXYpLT5jdXJzb3JfbmVlZHNfcGh5c2ljYWwpIHsKLQkJaW50IGFsaWduID0g SVNfSTgzMChkZXYpID8gMTYgKiAxMDI0IDogMjU2OworCQlpbnQgYWxpZ24gPSBJU19JODMwKGRl dl9wcml2KSA/IDE2ICogMTAyNCA6IDI1NjsKIAkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2F0dGFj aF9waHlzKG9iaiwgYWxpZ24pOwogCQlpZiAocmV0KQogCQkJRFJNX0RFQlVHX0tNUygiZmFpbGVk IHRvIGF0dGFjaCBwaHlzIG9iamVjdFxuIik7CkBAIC0xNTAzMSw3ICsxNTAzNCw4IEBAIGludGVs X2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAkJcmV0dXJuIDA7 CiAKIAkvKiBDaGVjayBmb3Igd2hpY2ggY3Vyc29yIHR5cGVzIHdlIHN1cHBvcnQgKi8KLQlpZiAo IWN1cnNvcl9zaXplX29rKHBsYW5lLT5kZXYsIHN0YXRlLT5iYXNlLmNydGNfdywgc3RhdGUtPmJh c2UuY3J0Y19oKSkgeworCWlmICghY3Vyc29yX3NpemVfb2sodG9faTkxNShwbGFuZS0+ZGV2KSwg c3RhdGUtPmJhc2UuY3J0Y193LAorCQkJICAgIHN0YXRlLT5iYXNlLmNydGNfaCkpIHsKIAkJRFJN X0RFQlVHKCJDdXJzb3IgZGltZW5zaW9uICVkeCVkIG5vdCBzdXBwb3J0ZWRcbiIsCiAJCQkgIHN0 YXRlLT5iYXNlLmNydGNfdywgc3RhdGUtPmJhc2UuY3J0Y19oKTsKIAkJcmV0dXJuIC1FSU5WQUw7 CkBAIC0xNTMyNSw3ICsxNTMyOSw3IEBAIHN0YXRpYyBib29sIGludGVsX2NydF9wcmVzZW50KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCiAJ CXJldHVybiBmYWxzZTsKIAotCWlmIChJU19IU1dfVUxUKGRldikgfHwgSVNfQkRXX1VMVChkZXYp KQorCWlmIChJU19IU1dfVUxUKGRldl9wcml2KSB8fCBJU19CRFdfVUxUKGRldl9wcml2KSkKIAkJ cmV0dXJuIGZhbHNlOwogCiAJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKQEAgLTE2Mzg0LDggKzE2 Mzg4LDggQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkJZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gODE5MjsKIAl9CiAKLQlpZiAoSVNfODQ1 RyhkZXYpIHx8IElTX0k4NjVHKGRldikpIHsKLQkJZGV2LT5tb2RlX2NvbmZpZy5jdXJzb3Jfd2lk dGggPSBJU184NDVHKGRldikgPyA2NCA6IDUxMjsKKwlpZiAoSVNfODQ1RyhkZXZfcHJpdikgfHwg SVNfSTg2NUcoZGV2X3ByaXYpKSB7CisJCWRldi0+bW9kZV9jb25maWcuY3Vyc29yX3dpZHRoID0g SVNfODQ1RyhkZXZfcHJpdikgPyA2NCA6IDUxMjsKIAkJZGV2LT5tb2RlX2NvbmZpZy5jdXJzb3Jf aGVpZ2h0ID0gMTAyMzsKIAl9IGVsc2UgaWYgKElTX0dFTjIoZGV2KSkgewogCQlkZXYtPm1vZGVf Y29uZmlnLmN1cnNvcl93aWR0aCA9IEdFTjJfQ1VSU09SX1dJRFRIOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKaW5kZXggNTFkOTJhOWM2Y2IxLi4yZTA2ZGZiNjRiZDQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwpAQCAtNTc0OCw3ICs1NzQ4LDcgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJICogMHhkLiAgRmFpbHVy ZSB0byBkbyBzbyB3aWxsIHJlc3VsdCBpbiBzcHVyaW91cyBpbnRlcnJ1cHRzIGJlaW5nCiAJICog Z2VuZXJhdGVkIG9uIHRoZSBwb3J0IHdoZW4gYSBjYWJsZSBpcyBub3QgYXR0YWNoZWQuCiAJICov Ci0JaWYgKElTX0c0WChkZXYpICYmICFJU19HTTQ1KGRldikpIHsKKwlpZiAoSVNfRzRYKGRldl9w cml2KSAmJiAhSVNfR000NShkZXZfcHJpdikpIHsKIAkJdTMyIHRlbXAgPSBJOTE1X1JFQUQoUEVH X0JBTkRfR0FQX0RBVEEpOwogCQlJOTE1X1dSSVRFKFBFR19CQU5EX0dBUF9EQVRBLCAodGVtcCAm IH4weGYpIHwgMHhkKTsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKaW5kZXggYWQzZmY0 ZmU2M2NmLi42NjA3YzRlM2MzNmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKQEAgLTE5 MjEsNyArMTkyMSw3IEBAIHZvaWQgaW50ZWxfaGRtaV9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKIAkgKiAweGQuICBGYWlsdXJlIHRvIGRv IHNvIHdpbGwgcmVzdWx0IGluIHNwdXJpb3VzIGludGVycnVwdHMgYmVpbmcKIAkgKiBnZW5lcmF0 ZWQgb24gdGhlIHBvcnQgd2hlbiBhIGNhYmxlIGlzIG5vdCBhdHRhY2hlZC4KIAkgKi8KLQlpZiAo SVNfRzRYKGRldikgJiYgIUlTX0dNNDUoZGV2KSkgeworCWlmIChJU19HNFgoZGV2X3ByaXYpICYm ICFJU19HTTQ1KGRldl9wcml2KSkgewogCQl1MzIgdGVtcCA9IEk5MTVfUkVBRChQRUdfQkFORF9H QVBfREFUQSk7CiAJCUk5MTVfV1JJVEUoUEVHX0JBTkRfR0FQX0RBVEEsICh0ZW1wICYgfjB4Zikg fCAweGQpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaTJjLmMKaW5kZXggMTQxMDMzMGVjOWJiLi5h ZmIyNjUyOTE5ZDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCkBAIC0xMzgsMTEgKzEzOCwx MCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9pMmNfcXVpcmtfc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgYm9vbCBlbmFibGUpCiBzdGF0aWMgdTMyIGdldF9yZXNlcnZlZChzdHJ1 Y3QgaW50ZWxfZ21idXMgKmJ1cykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBidXMtPmRldl9wcml2OwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYt PmRybTsKIAl1MzIgcmVzZXJ2ZWQgPSAwOwogCiAJLyogT24gbW9zdCBjaGlwcywgdGhlc2UgYml0 cyBtdXN0IGJlIHByZXNlcnZlZCBpbiBzb2Z0d2FyZS4gKi8KLQlpZiAoIUlTX0k4MzAoZGV2KSAm JiAhSVNfODQ1RyhkZXYpKQorCWlmICghSVNfSTgzMChkZXZfcHJpdikgJiYgIUlTXzg0NUcoZGV2 X3ByaXYpKQogCQlyZXNlcnZlZCA9IEk5MTVfUkVBRF9OT1RSQUNFKGJ1cy0+Z3Bpb19yZWcpICYK IAkJCQkJICAgICAoR1BJT19EQVRBX1BVTExVUF9ESVNBQkxFIHwKIAkJCQkJICAgICAgR1BJT19D TE9DS19QVUxMVVBfRElTQUJMRSk7CkBAIC02NzQsNyArNjczLDcgQEAgaW50IGludGVsX3NldHVw X2dtYnVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWJ1cy0+cmVnMCA9IHBpbiB8IEdNQlVT X1JBVEVfMTAwS0haOwogCiAJCS8qIGdtYnVzIHNlZW1zIHRvIGJlIGJyb2tlbiBvbiBpODMwICov Ci0JCWlmIChJU19JODMwKGRldikpCisJCWlmIChJU19JODMwKGRldl9wcml2KSkKIAkJCWJ1cy0+ Zm9yY2VfYml0ID0gMTsKIAogCQlpbnRlbF9ncGlvX3NldHVwKGJ1cywgcGluKTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2x2ZHMuYwppbmRleCBiYWFmMmVkODk3ZWYuLjFjNDdmOTk5MTdlNiAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2x2ZHMuYwpAQCAtOTQ5LDEwICs5NDksOCBAQCBzdGF0aWMgYm9vbCBj b21wdXRlX2lzX2R1YWxfbGlua19sdmRzKHN0cnVjdCBpbnRlbF9sdmRzX2VuY29kZXIgKmx2ZHNf ZW5jb2RlcikKIAlyZXR1cm4gKHZhbCAmIExWRFNfQ0xLQl9QT1dFUl9NQVNLKSA9PSBMVkRTX0NM S0JfUE9XRVJfVVA7CiB9CiAKLXN0YXRpYyBib29sIGludGVsX2x2ZHNfc3VwcG9ydGVkKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCitzdGF0aWMgYm9vbCBpbnRlbF9sdmRzX3N1cHBvcnRlZChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCiAJLyogV2l0aCB0aGUgaW50cm9kdWN0aW9u IG9mIHRoZSBQQ0ggd2UgZ2FpbmVkIGEgZGVkaWNhdGVkCiAJICogTFZEUyBwcmVzZW5jZSBwaW4s IHVzZSBpdC4gKi8KIAlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpIHx8IEhBU19QQ0hfQ1BUKGRl dl9wcml2KSkKQEAgLTk2MCw3ICs5NTgsOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9sdmRzX3N1cHBv cnRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJLyogT3RoZXJ3aXNlIExWRFMgd2FzIG9u bHkgYXR0YWNoZWQgdG8gbW9iaWxlIHByb2R1Y3RzLAogCSAqIGV4Y2VwdCBmb3IgdGhlIGluZ2xv cmlvdXMgODMwZ20gKi8KLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPD0gNCAmJiBJU19NT0JJ TEUoZGV2KSAmJiAhSVNfSTgzMChkZXYpKQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDw9IDQg JiYKKwkgICAgSVNfTU9CSUxFKGRldl9wcml2KSAmJiAhSVNfSTgzMChkZXZfcHJpdikpCiAJCXJl dHVybiB0cnVlOwogCiAJcmV0dXJuIGZhbHNlOwpAQCAtOTkyLDcgKzk5MSw3IEBAIHZvaWQgaW50 ZWxfbHZkc19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaW50IHBpcGU7CiAJdTggcGlu OwogCi0JaWYgKCFpbnRlbF9sdmRzX3N1cHBvcnRlZChkZXYpKQorCWlmICghaW50ZWxfbHZkc19z dXBwb3J0ZWQoZGV2X3ByaXYpKQogCQlyZXR1cm47CiAKIAkvKiBTa2lwIGluaXQgb24gbWFjaGlu ZXMgd2Uga25vdyBmYWxzZWx5IHJlcG9ydCBMVkRTICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpp bmRleCA4NjA1MWVmMjcxNmUuLjA0YTM4YTM3YWYyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CkBAIC0zMzQsMTIgKzMzNCwxMiBAQCB2b2lkIGludGVsX3NldF9tZW1vcnlfY3hzcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgZW5hYmxlKQogCQl2YWwgfD0gZW5hYmxl ID8gUElORVZJRVdfU0VMRl9SRUZSRVNIX0VOIDogMDsKIAkJSTkxNV9XUklURShEU1BGVzMsIHZh bCk7CiAJCVBPU1RJTkdfUkVBRChEU1BGVzMpOwotCX0gZWxzZSBpZiAoSVNfSTk0NUcoZGV2KSB8 fCBJU19JOTQ1R00oZGV2KSkgeworCX0gZWxzZSBpZiAoSVNfSTk0NUcoZGV2X3ByaXYpIHx8IElT X0k5NDVHTShkZXZfcHJpdikpIHsKIAkJdmFsID0gZW5hYmxlID8gX01BU0tFRF9CSVRfRU5BQkxF KEZXX0JMQ19TRUxGX0VOKSA6CiAJCQkgICAgICAgX01BU0tFRF9CSVRfRElTQUJMRShGV19CTENf U0VMRl9FTik7CiAJCUk5MTVfV1JJVEUoRldfQkxDX1NFTEYsIHZhbCk7CiAJCVBPU1RJTkdfUkVB RChGV19CTENfU0VMRik7Ci0JfSBlbHNlIGlmIChJU19JOTE1R00oZGV2KSkgeworCX0gZWxzZSBp ZiAoSVNfSTkxNUdNKGRldl9wcml2KSkgewogCQkvKgogCQkgKiBGSVhNRSBjYW4ndCBmaW5kIGEg Yml0IGxpa2UgdGhpcyBmb3IgOTE1RywgYW5kCiAJCSAqIGFuZCB5ZXQgaXQgZG9lcyBoYXZlIHRo ZSByZWxhdGVkIHdhdGVybWFyayBpbgpAQCAtNjQ4LDggKzY0OCwxMCBAQCBzdGF0aWMgdm9pZCBw aW5ldmlld191cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKIAl1MzIgcmVn OwogCXVuc2lnbmVkIGxvbmcgd207CiAKLQlsYXRlbmN5ID0gaW50ZWxfZ2V0X2N4c3JfbGF0ZW5j eShJU19QSU5FVklFV19HKGRldiksIGRldl9wcml2LT5pc19kZHIzLAotCQkJCQkgZGV2X3ByaXYt PmZzYl9mcmVxLCBkZXZfcHJpdi0+bWVtX2ZyZXEpOworCWxhdGVuY3kgPSBpbnRlbF9nZXRfY3hz cl9sYXRlbmN5KElTX1BJTkVWSUVXX0coZGV2X3ByaXYpLAorCQkJCQkgZGV2X3ByaXYtPmlzX2Rk cjMsCisJCQkJCSBkZXZfcHJpdi0+ZnNiX2ZyZXEsCisJCQkJCSBkZXZfcHJpdi0+bWVtX2ZyZXEp OwogCWlmICghbGF0ZW5jeSkgewogCQlEUk1fREVCVUdfS01TKCJVbmtub3duIEZTQi9NRU0gZm91 bmQsIGRpc2FibGUgQ3hTUlxuIik7CiAJCWludGVsX3NldF9tZW1vcnlfY3hzcihkZXZfcHJpdiwg ZmFsc2UpOwpAQCAtMTU3OSw3ICsxNTgxLDcgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20o c3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKIAogCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0 ZXJtYXJrcyAtIEE6ICVkLCBCOiAlZFxuIiwgcGxhbmVhX3dtLCBwbGFuZWJfd20pOwogCi0JaWYg KElTX0k5MTVHTShkZXYpICYmIGVuYWJsZWQpIHsKKwlpZiAoSVNfSTkxNUdNKGRldl9wcml2KSAm JiBlbmFibGVkKSB7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAKIAkJb2Jq ID0gaW50ZWxfZmJfb2JqKGVuYWJsZWQtPnByaW1hcnktPnN0YXRlLT5mYik7CkBAIC0xNjA5LDcg KzE2MTEsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVu dXNlZF9jcnRjKQogCQl1bnNpZ25lZCBsb25nIGxpbmVfdGltZV91czsKIAkJaW50IGVudHJpZXM7 CiAKLQkJaWYgKElTX0k5MTVHTShkZXYpIHx8IElTX0k5NDVHTShkZXYpKQorCQlpZiAoSVNfSTkx NUdNKGRldl9wcml2KSB8fCBJU19JOTQ1R00oZGV2X3ByaXYpKQogCQkJY3BwID0gNDsKIAogCQls aW5lX3RpbWVfdXMgPSBtYXgoaHRvdGFsICogMTAwMCAvIGNsb2NrLCAxKTsKQEAgLTE2MjMsNyAr MTYyNSw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqdW51 c2VkX2NydGMpCiAJCWlmIChzcndtIDwgMCkKIAkJCXNyd20gPSAxOwogCi0JCWlmIChJU19JOTQ1 RyhkZXYpIHx8IElTX0k5NDVHTShkZXYpKQorCQlpZiAoSVNfSTk0NUcoZGV2X3ByaXYpIHx8IElT X0k5NDVHTShkZXZfcHJpdikpCiAJCQlJOTE1X1dSSVRFKEZXX0JMQ19TRUxGLAogCQkJCSAgIEZX X0JMQ19TRUxGX0ZJRk9fTUFTSyB8IChzcndtICYgMHhmZikpOwogCQllbHNlCkBAIC02OTMwLDcg KzY5MzIsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV9pbml0X2Nsb2NrX2dhdGluZyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogCSAqIFRoZSBiaXQgMjIgb2YgMHg0MjAwNAogCSAqIFRoZSBiaXQg Nyw4LDkgb2YgMHg0MjAyMC4KIAkgKi8KLQlpZiAoSVNfSVJPTkxBS0VfTShkZXYpKSB7CisJaWYg KElTX0lST05MQUtFX00oZGV2X3ByaXYpKSB7CiAJCS8qIFdhRmJjQXN5bmNoRmxpcERpc2FibGVG YmNRdWV1ZTppbGsgKi8KIAkJSTkxNV9XUklURShJTEtfRElTUExBWV9DSElDS0VOMSwKIAkJCSAg IEk5MTVfUkVBRChJTEtfRElTUExBWV9DSElDS0VOMSkgfApAQCAtNzM0MCw3ICs3MzQyLDcgQEAg c3RhdGljIHZvaWQgaXZ5YnJpZGdlX2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJCSAgIENISUNLRU4zX0RHTUdfRE9ORV9GSVhfRElTQUJMRSk7CiAKIAkvKiBXYURp c2FibGVQU0REdWFsRGlzcGF0Y2hFbmFibGU6aXZiICovCi0JaWYgKElTX0lWQl9HVDEoZGV2KSkK KwlpZiAoSVNfSVZCX0dUMShkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUoR0VON19IQUxGX1NMSUNF X0NISUNLRU4xLAogCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKEdFTjdfUFNEX1NJTkdMRV9QT1JU X0RJU1BBVENIX0VOQUJMRSkpOwogCkBAIC03MzU2LDcgKzczNTgsNyBAQCBzdGF0aWMgdm9pZCBp dnlicmlkZ2VfaW5pdF9jbG9ja19nYXRpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCUdF TjdfV0FfRk9SX0dFTjdfTDNfQ09OVFJPTCk7CiAJSTkxNV9XUklURShHRU43X0wzX0NISUNLRU5f TU9ERV9SRUdJU1RFUiwKIAkJICAgR0VON19XQV9MM19DSElDS0VOX01PREUpOwotCWlmIChJU19J VkJfR1QxKGRldikpCisJaWYgKElTX0lWQl9HVDEoZGV2X3ByaXYpKQogCQlJOTE1X1dSSVRFKEdF TjdfUk9XX0NISUNLRU4yLAogCQkJICAgX01BU0tFRF9CSVRfRU5BQkxFKERPUF9DTE9DS19HQVRJ TkdfRElTQUJMRSkpOwogCWVsc2UgewpAQCAtNzU1MCw3ICs3NTUyLDcgQEAgc3RhdGljIHZvaWQg ZzR4X2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZHNwY2xrX2dh dGUgPSBWUkhVTklUX0NMT0NLX0dBVEVfRElTQUJMRSB8CiAJCU9WUlVOSVRfQ0xPQ0tfR0FURV9E SVNBQkxFIHwKIAkJT1ZDVU5JVF9DTE9DS19HQVRFX0RJU0FCTEU7Ci0JaWYgKElTX0dNNDUoZGV2 KSkKKwlpZiAoSVNfR000NShkZXZfcHJpdikpCiAJCWRzcGNsa19nYXRlIHw9IERTU1VOSVRfQ0xP Q0tfR0FURV9ESVNBQkxFOwogCUk5MTVfV1JJVEUoRFNQQ0xLX0dBVEVfRCwgZHNwY2xrX2dhdGUp OwogCkBAIC03NzU3LDcgKzc3NTksNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9k ZXZpY2UgKmRldikKIAkJdmx2X3NldHVwX3dtX2xhdGVuY3koZGV2KTsKIAkJZGV2X3ByaXYtPmRp c3BsYXkudXBkYXRlX3dtID0gdmx2X3VwZGF0ZV93bTsKIAl9IGVsc2UgaWYgKElTX1BJTkVWSUVX KGRldikpIHsKLQkJaWYgKCFpbnRlbF9nZXRfY3hzcl9sYXRlbmN5KElTX1BJTkVWSUVXX0coZGV2 KSwKKwkJaWYgKCFpbnRlbF9nZXRfY3hzcl9sYXRlbmN5KElTX1BJTkVWSUVXX0coZGV2X3ByaXYp LAogCQkJCQkgICAgZGV2X3ByaXYtPmlzX2RkcjMsCiAJCQkJCSAgICBkZXZfcHJpdi0+ZnNiX2Zy ZXEsCiAJCQkJCSAgICBkZXZfcHJpdi0+bWVtX2ZyZXEpKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z ZHZvLmMKaW5kZXggMGQ5MTE0ZjljZTI3Li41ZmU0MjM1NzFhN2UgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9zZHZvLmMKQEAgLTEyOTYsNyArMTI5Niw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9f cHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKIAogCWlmIChJ TlRFTF9JTkZPKGRldiktPmdlbiA+PSA0KSB7CiAJCS8qIGRvbmUgaW4gY3J0Y19tb2RlX3NldCBh cyB0aGUgZHBsbF9tZCByZWcgbXVzdCBiZSB3cml0dGVuIGVhcmx5ICovCi0JfSBlbHNlIGlmIChJ U19JOTQ1RyhkZXYpIHx8IElTX0k5NDVHTShkZXYpIHx8IElTX0czMyhkZXYpKSB7CisJfSBlbHNl IGlmIChJU19JOTQ1RyhkZXZfcHJpdikgfHwgSVNfSTk0NUdNKGRldl9wcml2KSB8fAorCQkgICBJ U19HMzMoZGV2X3ByaXYpKSB7CiAJCS8qIGRvbmUgaW4gY3J0Y19tb2RlX3NldCBhcyBpdCBsaXZl cyBpbnNpZGUgdGhlIGRwbGwgcmVnaXN0ZXIgKi8KIAl9IGVsc2UgewogCQlzZHZveCB8PSAoY3J0 Y19zdGF0ZS0+cGl4ZWxfbXVsdGlwbGllciAtIDEpCkBAIC0xMzg5LDcgKzEzOTAsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9zZHZvX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCiAJICogZW5jb2Rlci0+Z2V0X2NvbmZpZyB3ZSBzbyBhbHJlYWR5IGhhdmUgYSB2YWxpZCBw aXhlbCBtdWx0cGxpZXIgb24gYWxsCiAJICogb3RoZXIgcGxhdGZyb21zLgogCSAqLwotCWlmIChJ U19JOTE1RyhkZXYpIHx8IElTX0k5MTVHTShkZXYpKSB7CisJaWYgKElTX0k5MTVHKGRldl9wcml2 KSB8fCBJU19JOTE1R00oZGV2X3ByaXYpKSB7CiAJCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBs aWVyID0KIAkJCSgoc2R2b3ggJiBTRFZPX1BPUlRfTVVMVElQTFlfTUFTSykKIAkJCSA+PiBTRFZP X1BPUlRfTVVMVElQTFlfU0hJRlQpICsgMTsKQEAgLTE1OTUsMTUgKzE1OTYsMTUgQEAgc3RhdGlj IGJvb2wgaW50ZWxfc2R2b19nZXRfY2FwYWJpbGl0aWVzKHN0cnVjdCBpbnRlbF9zZHZvICppbnRl bF9zZHZvLCBzdHJ1Y3QgaW4KIAogc3RhdGljIHVpbnQxNl90IGludGVsX3Nkdm9fZ2V0X2hvdHBs dWdfc3VwcG9ydChzdHJ1Y3QgaW50ZWxfc2R2byAqaW50ZWxfc2R2bykKIHsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gaW50ZWxfc2R2by0+YmFzZS5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX3Nkdm8tPmJhc2UuYmFzZS5kZXYp OwogCXVpbnQxNl90IGhvdHBsdWc7CiAKLQlpZiAoIUk5MTVfSEFTX0hPVFBMVUcoZGV2KSkKKwlp ZiAoIUk5MTVfSEFTX0hPVFBMVUcoZGV2X3ByaXYpKQogCQlyZXR1cm4gMDsKIAogCS8qIEhXIEVy cmF0dW06IFNEVk8gSG90cGx1ZyBpcyBicm9rZW4gb24gYWxsIGk5NDVHIGNoaXBzLCB0aGVyZSdz IG5vaXNlCiAJICogb24gdGhlIGxpbmUuICovCi0JaWYgKElTX0k5NDVHKGRldikgfHwgSVNfSTk0 NUdNKGRldikpCisJaWYgKElTX0k5NDVHKGRldl9wcml2KSB8fCBJU19JOTQ1R00oZGV2X3ByaXYp KQogCQlyZXR1cm4gMDsKIAogCWlmICghaW50ZWxfc2R2b19nZXRfdmFsdWUoaW50ZWxfc2R2bywg U0RWT19DTURfR0VUX0hPVF9QTFVHX1NVUFBPUlQsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwppbmRl eCAzOTg4YzQ1ZjllNWYuLmRmMTZiMWRjNGMyZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdHYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCkBA IC0xMDk1LDcgKzEwOTUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90dl9wcmVfZW5hYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQl0dl9tb2RlLT5kZGEzX2luYyA8PCBUVl9TQ0RE QTNfSU5DX1NISUZUOwogCiAJLyogRW5hYmxlIHR3byBmaXhlcyBmb3IgdGhlIGNoaXBzIHRoYXQg bmVlZCB0aGVtLiAqLwotCWlmIChJU19JOTE1R00oZGV2KSkKKwlpZiAoSVNfSTkxNUdNKGRldl9w cml2KSkKIAkJdHZfY3RsIHw9IFRWX0VOQ19DMF9GSVggfCBUVl9FTkNfU0RQX0ZJWDsKIAogCXNl dF90dl9tb2RlX3RpbWluZ3MoZGV2X3ByaXYsIHR2X21vZGUsIGJ1cnN0X2VuYSk7CkBAIC0xMjIw LDcgKzEyMjAsNyBAQCBpbnRlbF90dl9kZXRlY3RfdHlwZShzdHJ1Y3QgaW50ZWxfdHYgKmludGVs X3R2LAogCSAqIFRoZSBUViBzZW5zZSBzdGF0ZSBzaG91bGQgYmUgY2xlYXJlZCB0byB6ZXJvIG9u IGNhbnRpZ2EgcGxhdGZvcm0uIE90aGVyd2lzZQogCSAqIHRoZSBUViBpcyBtaXNkZXRlY3RlZC4g VGhpcyBpcyBoYXJkd2FyZSByZXF1aXJlbWVudC4KIAkgKi8KLQlpZiAoSVNfR000NShkZXYpKQor CWlmIChJU19HTTQ1KGRldl9wcml2KSkKIAkJdHZfZGFjICY9IH4oVFZEQUNfU1RBVEVfQ0hHX0VO IHwgVFZEQUNfQV9TRU5TRV9DVEwgfAogCQkJICAgIFRWREFDX0JfU0VOU0VfQ1RMIHwgVFZEQUNf Q19TRU5TRV9DVEwpOwogCi0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==