From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 09/19] drm/i915: Make IS_BROADWELL only take dev_priv Date: Tue, 11 Oct 2016 14:21:42 +0100 Message-ID: <1476192112-25336-10-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-x241.google.com (mail-lf0-x241.google.com [IPv6:2a00:1450:4010:c07::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 033396E66D for ; Tue, 11 Oct 2016 13:22:19 +0000 (UTC) Received: by mail-lf0-x241.google.com with SMTP id b75so3721282lfg.3 for ; Tue, 11 Oct 2016 06:22:18 -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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNhdmVzIDE4 MDggYnl0ZXMgb2YgLnJvZGF0YSBzdHJpbmdzLgoKdjI6IEFkZCBwYXJhbnRoZXNlcyBhcm91bmQg ZGV2X3ByaXYuIChWaWxsZSBTeXJqYWxhKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jICAgICAgICAgfCAgNiArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggICAgICAgICB8ICA2ICsrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAg ICAgICAgIHwgIDUgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAg ICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jICAgICAgfCAgNCAr Ky0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAgfCAyMSArKysrKysr KysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAgICB8 IDE5ICsrKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMg ICAgICAgICB8IDIwICsrKysrKysrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wc3IuYyAgICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMgfCAgMyArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j ICAgICB8ICA4ICsrKystLS0tCiAxMSBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA0 NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBmNmJhOGYyNjIyMzgu Ljg4OTk4MzVmZmZhYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC0xODksMTMgKzE4OSwx NSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZXRlY3RfcGNoKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BDSF9MUFRfREVWSUNFX0lEX1RZUEUpIHsKIAkJ CQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBQQ0hfTFBUOwogCQkJCURSTV9ERUJVR19LTVMoIkZvdW5k IEx5bnhQb2ludCBQQ0hcbiIpOwotCQkJCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2KSAmJiAhSVNf QlJPQURXRUxMKGRldikpOworCQkJCVdBUk5fT04oIUlTX0hBU1dFTEwoZGV2X3ByaXYpICYmCisJ CQkJCSFJU19CUk9BRFdFTEwoZGV2X3ByaXYpKTsKIAkJCQlXQVJOX09OKElTX0hTV19VTFQoZGV2 X3ByaXYpIHx8CiAJCQkJCUlTX0JEV19VTFQoZGV2X3ByaXYpKTsKIAkJCX0gZWxzZSBpZiAoaWQg PT0gSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRSkgewogCQkJCWRldl9wcml2LT5wY2hf dHlwZSA9IFBDSF9MUFQ7CiAJCQkJRFJNX0RFQlVHX0tNUygiRm91bmQgTHlueFBvaW50IExQIFBD SFxuIik7Ci0JCQkJV0FSTl9PTighSVNfSEFTV0VMTChkZXYpICYmICFJU19CUk9BRFdFTEwoZGV2 KSk7CisJCQkJV0FSTl9PTighSVNfSEFTV0VMTChkZXZfcHJpdikgJiYKKwkJCQkJIUlTX0JST0FE V0VMTChkZXZfcHJpdikpOwogCQkJCVdBUk5fT04oIUlTX0hTV19VTFQoZGV2X3ByaXYpICYmCiAJ CQkJCSFJU19CRFdfVUxUKGRldl9wcml2KSk7CiAJCQl9IGVsc2UgaWYgKGlkID09IElOVEVMX1BD SF9TUFRfREVWSUNFX0lEX1RZUEUpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDNmMzIx OTMyZDE4YS4uMTNlNDA5NTU0ZmNjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI2NjIs NyArMjY2Miw3IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewogI2RlZmluZSBJU19WQUxM RVlWSUVXKGRldikJKElOVEVMX0lORk8oZGV2KS0+aXNfdmFsbGV5dmlldykKICNkZWZpbmUgSVNf Q0hFUlJZVklFVyhkZXYpCShJTlRFTF9JTkZPKGRldiktPmlzX2NoZXJyeXZpZXcpCiAjZGVmaW5l IElTX0hBU1dFTEwoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19oYXN3ZWxsKQotI2RlZmluZSBJ U19CUk9BRFdFTEwoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5pc19icm9hZHdlbGwpCisjZGVmaW5l IElTX0JST0FEV0VMTChkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfYnJvYWR3ZWxsKQog I2RlZmluZSBJU19TS1lMQUtFKGRldikJKElOVEVMX0lORk8oZGV2KS0+aXNfc2t5bGFrZSkKICNk ZWZpbmUgSVNfQlJPWFRPTihkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5pc19icm94dG9uKQogI2Rl ZmluZSBJU19LQUJZTEFLRShkZXYpCShJTlRFTF9JTkZPKGRldiktPmlzX2thYnlsYWtlKQpAQCAt Mjc2OSw4ICsyNzY5LDggQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7CiAjZGVmaW5lIEhB U19MTEMoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aGFzX2xsYykKICNkZWZpbmUgSEFTX1NOT09Q KGRldikJCShJTlRFTF9JTkZPKGRldiktPmhhc19zbm9vcCkKICNkZWZpbmUgSEFTX0VEUkFNKGRl dikJCSghIShfX0k5MTVfXyhkZXYpLT5lZHJhbV9jYXAgJiBFRFJBTV9FTkFCTEVEKSkKLSNkZWZp bmUgSEFTX1dUKGRldikJCSgoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSAm JiBcCi0JCQkJIEhBU19FRFJBTShkZXYpKQorI2RlZmluZSBIQVNfV1QoZGV2X3ByaXYpCSgoSVNf SEFTV0VMTChkZXZfcHJpdikgfHwgXAorCQkJCSBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAmJiBI QVNfRURSQU0oZGV2X3ByaXYpKQogI2RlZmluZSBIV1NfTkVFRFNfUEhZU0lDQUwoZGV2KQkoSU5U RUxfSU5GTyhkZXYpLT5od3NfbmVlZHNfcGh5c2ljYWwpCiAKICNkZWZpbmUgSEFTX0hXX0NPTlRF WFRTKGRldikJKElOVEVMX0lORk8oZGV2KS0+aGFzX2h3X2NvbnRleHRzKQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKaW5kZXggNmRhODQxNTAwNTEwLi5hZWZiODhmOTg3YjIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYwpAQCAtMzQ3Myw3ICszNDczLDcgQEAgaW50IGk5MTVfZ2VtX3NldF9jYWNoaW5n X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWxldmVsID0gSTkx NV9DQUNIRV9MTEM7CiAJCWJyZWFrOwogCWNhc2UgSTkxNV9DQUNISU5HX0RJU1BMQVk6Ci0JCWxl dmVsID0gSEFTX1dUKGRldikgPyBJOTE1X0NBQ0hFX1dUIDogSTkxNV9DQUNIRV9OT05FOworCQls ZXZlbCA9IEhBU19XVChkZXZfcHJpdikgPyBJOTE1X0NBQ0hFX1dUIDogSTkxNV9DQUNIRV9OT05F OwogCQlicmVhazsKIAlkZWZhdWx0OgogCQlyZXR1cm4gLUVJTlZBTDsKQEAgLTM1MzEsNyArMzUz MSw4IEBAIGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqLAogCSAqIHdpdGggdGhhdCBiaXQgaW4gdGhlIFBURSB0byBtYWlu IG1lbW9yeSB3aXRoIGp1c3Qgb25lIFBJUEVfQ09OVFJPTC4KIAkgKi8KIAlyZXQgPSBpOTE1X2dl bV9vYmplY3Rfc2V0X2NhY2hlX2xldmVsKG9iaiwKLQkJCQkJICAgICAgSEFTX1dUKG9iai0+YmFz ZS5kZXYpID8gSTkxNV9DQUNIRV9XVCA6IEk5MTVfQ0FDSEVfTk9ORSk7CisJCQkJCSAgICAgIEhB U19XVCh0b19pOTE1KG9iai0+YmFzZS5kZXYpKSA/CisJCQkJCSAgICAgIEk5MTVfQ0FDSEVfV1Qg OiBJOTE1X0NBQ0hFX05PTkUpOwogCWlmIChyZXQpIHsKIAkJdm1hID0gRVJSX1BUUihyZXQpOwog CQlnb3RvIGVycl91bnBpbl9kaXNwbGF5OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpp bmRleCAwYmI0MjMyZjY2YmMuLjBmOGYwNzNjNTg5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMKQEAgLTIxMjksNyArMjEyOSw3IEBAIHN0YXRpYyB2b2lkIGd0dF93cml0ZV93b3Jr YXJvdW5kcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCSAqIHdvcmthcm91bmRzIGhlcmUgZXZl biBpZiB0aGV5IGdldCBvdmVyd3JpdHRlbiBieSBHUFUgcmVzZXQuCiAJICovCiAJLyogV2FJbmNy ZWFzZURlZmF1bHRUTEJFbnRyaWVzOmNodixiZHcsc2tsLGJ4dCAqLwotCWlmIChJU19CUk9BRFdF TEwoZGV2KSkKKwlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkKIAkJSTkxNV9XUklURShHRU44 X0wzX0xSQV8xX0dQR1BVLCBHRU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfQkRXKTsK IAllbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpCiAJCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFf MV9HUEdQVSwgR0VOOF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0NIVik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY29sb3IuYwppbmRleCA1MzYyYzA3OTMyZDMuLmJlNzZlZjg4Njc4YyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCkBAIC01NDAsOCArNTQwLDggQEAgdm9pZCBpbnRl bF9jb2xvcl9pbml0KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAl9IGVsc2UgaWYgKElTX0hBU1dF TEwoZGV2KSkgewogCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPSBpOXh4X2xv YWRfY3NjX21hdHJpeDsKIAkJZGV2X3ByaXYtPmRpc3BsYXkubG9hZF9sdXRzID0gaGFzd2VsbF9s b2FkX2x1dHM7Ci0JfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSB8fCBJU19TS1lMQUtFKGRl dikgfHwKLQkJICAgSVNfQlJPWFRPTihkZXYpIHx8IElTX0tBQllMQUtFKGRldikpIHsKKwl9IGVs c2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgfHwgSVNfU0tZTEFLRShkZXZfcHJpdikgfHwK KwkJICAgSVNfQlJPWFRPTihkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKSB7CiAJ CWRldl9wcml2LT5kaXNwbGF5LmxvYWRfY3NjX21hdHJpeCA9IGk5eHhfbG9hZF9jc2NfbWF0cml4 OwogCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBicm9hZHdlbGxfbG9hZF9sdXRzOwog CX0gZWxzZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggNzg5NDY3NWJm Y2I4Li5kMTU5YTMxNTA5OWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAg LTMxMzksNyArMzEzOSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3VwZGF0ZV9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCiAJZHNwY250ciA9IERJU1BQTEFORV9HQU1N QV9FTkFCTEU7CiAJZHNwY250ciB8PSBESVNQTEFZX1BMQU5FX0VOQUJMRTsKIAotCWlmIChJU19I QVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpCisJaWYgKElTX0hBU1dFTEwoZGV2X3By aXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJCWRzcGNudHIgfD0gRElTUFBMQU5FX1BJ UEVfQ1NDX0VOQUJMRTsKIAogCXN3aXRjaCAoZmItPnBpeGVsX2Zvcm1hdCkgewpAQCAtMzE2OCw3 ICszMTY4LDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3Ry dWN0IGRybV9wbGFuZSAqcHJpbWFyeSwKIAlpZiAoZmItPm1vZGlmaWVyWzBdID09IEk5MTVfRk9S TUFUX01PRF9YX1RJTEVEKQogCQlkc3BjbnRyIHw9IERJU1BQTEFORV9USUxFRDsKIAotCWlmICgh SVNfSEFTV0VMTChkZXYpICYmICFJU19CUk9BRFdFTEwoZGV2KSkKKwlpZiAoIUlTX0hBU1dFTEwo ZGV2X3ByaXYpICYmICFJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQlkc3BjbnRyIHw9IERJU1BQ TEFORV9UUklDS0xFX0ZFRURfRElTQUJMRTsKIAogCWludGVsX2FkZF9mYl9vZmZzZXRzKCZ4LCAm eSwgcGxhbmVfc3RhdGUsIDApOwpAQCAtMzE3OSw3ICszMTc5LDcgQEAgc3RhdGljIHZvaWQgaXJv bmxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeSwKIAlp ZiAocm90YXRpb24gPT0gRFJNX1JPVEFURV8xODApIHsKIAkJZHNwY250ciB8PSBESVNQUExBTkVf Uk9UQVRFXzE4MDsKIAotCQlpZiAoIUlTX0hBU1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRl dikpIHsKKwkJaWYgKCFJU19IQVNXRUxMKGRldl9wcml2KSAmJiAhSVNfQlJPQURXRUxMKGRldl9w cml2KSkgewogCQkJeCArPSAoY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdyAtIDEpOwogCQkJeSArPSAo Y3J0Y19zdGF0ZS0+cGlwZV9zcmNfaCAtIDEpOwogCQl9CkBAIC0zMTk2LDcgKzMxOTYsNyBAQCBz dGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwcmltYXJ5LAogCUk5MTVfV1JJVEUoRFNQU1VSRihwbGFuZSksCiAJCSAgIGludGVsX2ZiX2d0 dF9vZmZzZXQoZmIsIHJvdGF0aW9uKSArCiAJCSAgIGludGVsX2NydGMtPmRzcGFkZHJfb2Zmc2V0 KTsKLQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7CisJaWYgKElT X0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKIAkJSTkxNV9X UklURShEU1BPRkZTRVQocGxhbmUpLCAoeSA8PCAxNikgfCB4KTsKIAl9IGVsc2UgewogCQlJOTE1 X1dSSVRFKERTUFRJTEVPRkYocGxhbmUpLCAoeSA8PCAxNikgfCB4KTsKQEAgLTQ4NzksNyArNDg3 OSw3IEBAIHZvaWQgaHN3X2VuYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJICov CiAKIAlhc3NlcnRfcGxhbmVfZW5hYmxlZChkZXZfcHJpdiwgY3J0Yy0+cGxhbmUpOwotCWlmIChJ U19CUk9BRFdFTEwoZGV2KSkgeworCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7CiAJCW11 dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CiAJCVdBUk5fT04oc2FuZHlicmlkZ2Vf cGNvZGVfd3JpdGUoZGV2X3ByaXYsIERJU1BMQVlfSVBTX0NPTlRST0wsIDB4YzAwMDAwMDApKTsK IAkJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwpAQCAtNDkxMSw3ICs0OTEx LDcgQEAgdm9pZCBoc3dfZGlzYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJCXJl dHVybjsKIAogCWFzc2VydF9wbGFuZV9lbmFibGVkKGRldl9wcml2LCBjcnRjLT5wbGFuZSk7Ci0J aWYgKElTX0JST0FEV0VMTChkZXYpKSB7CisJaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsK IAkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKIAkJV0FSTl9PTihzYW5keWJy aWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgRElTUExBWV9JUFNfQ09OVFJPTCwgMCkpOwogCQlt dXRleF91bmxvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7CkBAIC01ODU0LDcgKzU4NTQsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IHNrbF9jYWxjX2NkY2xrKG1heF9jZGNs aywgdmNvKTsKIAl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewogCQlkZXZfcHJpdi0+bWF4 X2NkY2xrX2ZyZXEgPSA2MjQwMDA7Ci0JfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSkgIHsK Kwl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpICB7CiAJCS8qCiAJCSAqIEZJWE1F IHdpdGggZXh0cmEgY29vbGluZyB3ZSBjYW4gYWxsb3cKIAkJICogNTQwIE1IeiBmb3IgVUxYIGFu ZCA2NzUgTWh6IGZvciBVTFQuCkBAIC03MDIzLDYgKzcwMjMsNyBAQCBzdGF0aWMgaW50IHBpcGVf cmVxdWlyZWRfZmRpX2xhbmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog c3RhdGljIGludCBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgZW51bSBwaXBlIHBpcGUsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcpCiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IHBpcGVfY29uZmlnLT5i YXNlLnN0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICpvdGhlcl9jcnRjOwogCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvdGhlcl9jcnRjX3N0YXRlOwpAQCAtNzAzNSw3ICs3MDM2LDcgQEAgc3Rh dGljIGludCBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg ZW51bSBwaXBlIHBpcGUsCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAotCWlmIChJU19IQVNXRUxM KGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpIHsKKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikg fHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewogCQlpZiAocGlwZV9jb25maWctPmZkaV9sYW5l cyA+IDIpIHsKIAkJCURSTV9ERUJVR19LTVMoIm9ubHkgMiBsYW5lcyBvbiBoYXN3ZWxsLCByZXF1 aXJlZDogJWkgbGFuZXNcbiIsCiAJCQkJICAgICAgcGlwZV9jb25maWctPmZkaV9sYW5lcyk7CkBA IC05ODgzLDcgKzk4ODQsNyBAQCBpcm9ubGFrZV9nZXRfaW5pdGlhbF9wbGFuZV9jb25maWcoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCiAJZmItPmJpdHNfcGVyX3BpeGVsID0gZHJtX2Zvcm1hdF9w bGFuZV9jcHAoZm91cmNjLCAwKSAqIDg7CiAKIAliYXNlID0gSTkxNV9SRUFEKERTUFNVUkYocGlw ZSkpICYgMHhmZmZmZjAwMDsKLQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChk ZXYpKSB7CisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJp dikpIHsKIAkJb2Zmc2V0ID0gSTkxNV9SRUFEKERTUE9GRlNFVChwaXBlKSk7CiAJfSBlbHNlIHsK IAkJaWYgKHBsYW5lX2NvbmZpZy0+dGlsaW5nKQpAQCAtMTcyNDQsNyArMTcyNDUsNyBAQCBpbnRl bF9kaXNwbGF5X3ByaW50X2Vycm9yX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0ZV9i dWYgKm0sCiAJCXJldHVybjsKIAogCWVycl9wcmludGYobSwgIk51bSBQaXBlczogJWRcbiIsIElO VEVMX0lORk8oZGV2KS0+bnVtX3BpcGVzKTsKLQlpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JS T0FEV0VMTChkZXYpKQorCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKQogCQllcnJfcHJpbnRmKG0sICJQV1JfV0VMTF9DVEwyOiAlMDh4XG4iLAogCQkJ ICAgZXJyb3ItPnBvd2VyX3dlbGxfZHJpdmVyKTsKIAlmb3JfZWFjaF9waXBlKGRldl9wcml2LCBp KSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwppbmRleCAyZTA2ZGZiNjRiZDQuLjAyZTc0YzQ2N2E1 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC04MjEsMTUgKzgyMSwxNiBAQCBzdGF0aWMg dWludDMyX3QgZzR4X2dldF9hdXhfc2VuZF9jdGwoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwK IAkJCQkgICAgIHVpbnQzMl90IGF1eF9jbG9ja19kaXZpZGVyKQogewogCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwot CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQorCQkJdG9faTkxNShpbnRlbF9k aWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CiAJdWludDMyX3QgcHJlY2hhcmdlLCB0aW1lb3V0Owog Ci0JaWYgKElTX0dFTjYoZGV2KSkKKwlpZiAoSVNfR0VONihkZXZfcHJpdikpCiAJCXByZWNoYXJn ZSA9IDM7CiAJZWxzZQogCQlwcmVjaGFyZ2UgPSA1OwogCi0JaWYgKElTX0JST0FEV0VMTChkZXYp ICYmIGludGVsX2RpZ19wb3J0LT5wb3J0ID09IFBPUlRfQSkKKwlpZiAoSVNfQlJPQURXRUxMKGRl dl9wcml2KSAmJiBpbnRlbF9kaWdfcG9ydC0+cG9ydCA9PSBQT1JUX0EpCiAJCXRpbWVvdXQgPSBE UF9BVVhfQ0hfQ1RMX1RJTUVfT1VUXzYwMHVzOwogCWVsc2UKIAkJdGltZW91dCA9IERQX0FVWF9D SF9DVExfVElNRV9PVVRfNDAwdXM7CkBAIC0yOTk5LDEwICszMDAwLDEwIEBAIGludGVsX2RwX3Zv bHRhZ2VfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCiB1aW50OF90CiBpbnRlbF9kcF9w cmVfZW1waGFzaXNfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3Qgdm9sdGFn ZV9zd2luZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGlu dGVsX2RwKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGlu dGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwogCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApLT5wb3J0OwogCi0JaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsK KwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7CiAJCXN3aXRjaCAodm9sdGFnZV9zd2lu ZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewogCQljYXNlIERQX1RSQUlOX1ZPTFRB R0VfU1dJTkdfTEVWRUxfMDoKIAkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8zOwpA QCAtMzAxNSw3ICszMDE2LDcgQEAgaW50ZWxfZHBfcHJlX2VtcGhhc2lzX21heChzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IHZvbHRhZ2Vfc3dpbmcpCiAJCWRlZmF1bHQ6CiAJCQly ZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsKIAkJfQotCX0gZWxzZSBpZiAoSVNfSEFT V0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7CisJfSBlbHNlIGlmIChJU19IQVNXRUxM KGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7CiAJCXN3aXRjaCAodm9sdGFn ZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewogCQljYXNlIERQX1RSQUlO X1ZPTFRBR0VfU1dJTkdfTEVWRUxfMDoKIAkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZF TF8zOwpAQCAtMzAyNyw3ICszMDI4LDcgQEAgaW50ZWxfZHBfcHJlX2VtcGhhc2lzX21heChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1aW50OF90IHZvbHRhZ2Vfc3dpbmcpCiAJCWRlZmF1bHQ6 CiAJCQlyZXR1cm4gRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDsKIAkJfQotCX0gZWxzZSBpZiAo SVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgeworCX0gZWxzZSBpZiAo SVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKIAkJ c3dpdGNoICh2b2x0YWdlX3N3aW5nICYgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLKSB7CiAJ CWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wOgogCQkJcmV0dXJuIERQX1RSQUlO X1BSRV9FTVBIX0xFVkVMXzM7CkBAIC0zMDM5LDcgKzMwNDAsNyBAQCBpbnRlbF9kcF9wcmVfZW1w aGFzaXNfbWF4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQ4X3Qgdm9sdGFnZV9zd2lu ZykKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOwogCQl9 Ci0JfSBlbHNlIGlmIChJU19HRU43KGRldikgJiYgcG9ydCA9PSBQT1JUX0EpIHsKKwl9IGVsc2Ug aWYgKElTX0dFTjcoZGV2X3ByaXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7CiAJCXN3aXRjaCAodm9s dGFnZV9zd2luZyAmIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTUFTSykgewogCQljYXNlIERQX1RS QUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMDoKIAkJCXJldHVybiBEUF9UUkFJTl9QUkVfRU1QSF9M RVZFTF8yOwpAQCAtNTY0OCw3ICs1NjQ5LDcgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCiAJLyogaW50ZWxfZHAgdmZ1 bmNzICovCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCiAJCWludGVsX2RwLT5nZXRf YXV4X2Nsb2NrX2RpdmlkZXIgPSBza2xfZ2V0X2F1eF9jbG9ja19kaXZpZGVyOwotCWVsc2UgaWYg KElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKKwllbHNlIGlmIChJU19IQVNX RUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQlpbnRlbF9kcC0+Z2V0 X2F1eF9jbG9ja19kaXZpZGVyID0gaHN3X2dldF9hdXhfY2xvY2tfZGl2aWRlcjsKIAllbHNlIGlm IChIQVNfUENIX1NQTElUKGRldl9wcml2KSkKIAkJaW50ZWxfZHAtPmdldF9hdXhfY2xvY2tfZGl2 aWRlciA9IGlsa19nZXRfYXV4X2Nsb2NrX2RpdmlkZXI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpp bmRleCA5MTU1NzM1ZDAxZGYuLjNiYTk1MDJjZjJjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CkBAIC0yMTU3LDcgKzIxNTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9yZWFkX3dtX2xhdGVuY3ko c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDE2X3Qgd21bOF0pCiAJCQl9CiAJCX0KIAotCX0g ZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYpKSB7CisJfSBlbHNl IGlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSB7CiAJ CXVpbnQ2NF90IHNza3BkID0gSTkxNV9SRUFENjQoTUNIX1NTS1BEKTsKIAogCQl3bVswXSA9IChz c2twZCA+PiA1NikgJiAweEZGOwpAQCAtMjIwNSwxMiArMjIwNSwxNCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9maXh1cF9jdXJfd21fbGF0ZW5jeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAKIGludCBpbGtfd21fbWF4X2xldmVsKGNvbnN0IHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiB7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwor CiAJLyogaG93IG1hbnkgV00gbGV2ZWxzIGFyZSB3ZSBleHBlY3RpbmcgKi8KLQlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOSkKKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQogCQly ZXR1cm4gNzsKLQllbHNlIGlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikp CisJZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2 KSkKIAkJcmV0dXJuIDQ7Ci0JZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNikKKwll bHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDYpCiAJCXJldHVybiAzOwogCWVsc2UKIAkJ cmV0dXJuIDI7CkBAIC0yMzkzLDcgKzIzOTUsNyBAQCBzdGF0aWMgaW50IGlsa19jb21wdXRlX3Bp cGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKIAltZW1zZXQoJnBpcGVfd20t PndtLCAwLCBzaXplb2YocGlwZV93bS0+d20pKTsKIAlwaXBlX3dtLT53bVswXSA9IHBpcGVfd20t PnJhd193bVswXTsKIAotCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikp CisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJ CXBpcGVfd20tPmxpbmV0aW1lID0gaHN3X2NvbXB1dGVfbGluZXRpbWVfd20oY3N0YXRlKTsKIAog CWlmICghaWxrX3ZhbGlkYXRlX3BpcGVfd20oZGV2LCBwaXBlX3dtKSkKQEAgLTI1ODAsNyArMjU4 Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaWxrX3dtX2xwX2xhdGVuY3koc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgaW50IGxldmVsKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKIAotCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURX RUxMKGRldikpCisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZf cHJpdikpCiAJCXJldHVybiAyICogbGV2ZWw7CiAJZWxzZQogCQlyZXR1cm4gZGV2X3ByaXYtPndt LnByaV9sYXRlbmN5W2xldmVsXTsKQEAgLTI4MDQsNyArMjgwNiw3IEBAIHN0YXRpYyB2b2lkIGls a193cml0ZV93bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlJ OTE1X1dSSVRFKFBJUEVfV01fTElORVRJTUUoUElQRV9DKSwgcmVzdWx0cy0+d21fbGluZXRpbWVb Ml0pOwogCiAJaWYgKGRpcnR5ICYgV01fRElSVFlfRERCKSB7Ci0JCWlmIChJU19IQVNXRUxMKGRl dikgfHwgSVNfQlJPQURXRUxMKGRldikpIHsKKwkJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8 IElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKIAkJCXZhbCA9IEk5MTVfUkVBRChXTV9NSVNDKTsK IAkJCWlmIChyZXN1bHRzLT5wYXJ0aXRpb25pbmcgPT0gSU5URUxfRERCX1BBUlRfMV8yKQogCQkJ CXZhbCAmPSB+V01fTUlTQ19EQVRBX1BBUlRJVElPTl81XzY7CkBAIC00NDA3LDcgKzQ0MDksNyBA QCBzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpj cnRjKQogCX07CiAKIAlody0+d21fcGlwZVtwaXBlXSA9IEk5MTVfUkVBRCh3bTBfcGlwZV9yZWdb cGlwZV0pOwotCWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpCisJaWYg KElTX0hBU1dFTEwoZGV2X3ByaXYpIHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJCWh3LT53 bV9saW5ldGltZVtwaXBlXSA9IEk5MTVfUkVBRChQSVBFX1dNX0xJTkVUSU1FKHBpcGUpKTsKIAog CW1lbXNldChhY3RpdmUsIDAsIHNpemVvZigqYWN0aXZlKSk7CkBAIC00NjE1LDcgKzQ2MTcsNyBA QCB2b2lkIGlsa193bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJaHct PndtX2xwX3NwclsyXSA9IEk5MTVfUkVBRChXTTNTX0xQX0lWQik7CiAJfQogCi0JaWYgKElTX0hB U1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJp dikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKIAkJaHctPnBhcnRpdGlvbmluZyA9IChJOTE1 X1JFQUQoV01fTUlTQykgJiBXTV9NSVNDX0RBVEFfUEFSVElUSU9OXzVfNikgPwogCQkJSU5URUxf RERCX1BBUlRfNV82IDogSU5URUxfRERCX1BBUlRfMV8yOwogCWVsc2UgaWYgKElTX0lWWUJSSURH RShkZXZfcHJpdikpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3Iu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCmluZGV4IDllMmZiYWM5Nzc2ZS4u ZDA2NjdmOWQ5MTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3Iu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwpAQCAtODI3LDE0ICs4Mjcs MTQgQEAgdm9pZCBpbnRlbF9wc3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJLyog UGVyIHBsYXRmb3JtIGRlZmF1bHQgKi8KIAlpZiAoaTkxNS5lbmFibGVfcHNyID09IC0xKSB7Ci0J CWlmIChJU19IQVNXRUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpCisJCWlmIChJU19IQVNX RUxMKGRldl9wcml2KSB8fCBJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQogCQkJaTkxNS5lbmFibGVf cHNyID0gMTsKIAkJZWxzZQogCQkJaTkxNS5lbmFibGVfcHNyID0gMDsKIAl9CiAKIAkvKiBTZXQg bGlua19zdGFuZGJ5IHggbGlua19vZmYgZGVmYXVsdHMgKi8KLQlpZiAoSVNfSEFTV0VMTChkZXYp IHx8IElTX0JST0FEV0VMTChkZXYpKQorCWlmIChJU19IQVNXRUxMKGRldl9wcml2KSB8fCBJU19C Uk9BRFdFTEwoZGV2X3ByaXYpKQogCQkvKiBIU1cgYW5kIEJEVyByZXF1aXJlIHdvcmthcm91bmRz IHRoYXQgd2UgZG9uJ3QgaW1wbGVtZW50LiAqLwogCQlkZXZfcHJpdi0+cHNyLmxpbmtfc3RhbmRi eSA9IGZhbHNlOwogCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVX KGRldikpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMKaW5kZXggZWQxZmFm MTRmNzc3Li43N2VmMDNjYjYxNjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1l X3BtLmMKQEAgLTI4OCw3ICsyODgsNiBAQCB2b2lkIGludGVsX2Rpc3BsYXlfc2V0X2luaXRfcG93 ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogc3RhdGljIHZvaWQgaHN3X3Bv d2VyX3dlbGxfcG9zdF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQog ewogCXN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2OwotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKIAogCS8qCiAJICogQWZ0ZXIgd2UgcmUt ZW5hYmxlIHRoZSBwb3dlciB3ZWxsLCBpZiB3ZSB0b3VjaCBWR0EgcmVnaXN0ZXIgMHgzZDUKQEAg LTMwNCw3ICszMDMsNyBAQCBzdGF0aWMgdm9pZCBoc3dfcG93ZXJfd2VsbF9wb3N0X2VuYWJsZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJb3V0YihpbmIoVkdBX01TUl9SRUFE KSwgVkdBX01TUl9XUklURSk7CiAJdmdhX3B1dChwZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOwog Ci0JaWYgKElTX0JST0FEV0VMTChkZXYpKQorCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQog CQlnZW44X2lycV9wb3dlcl93ZWxsX3Bvc3RfZW5hYmxlKGRldl9wcml2LAogCQkJCQkJMSA8PCBQ SVBFX0MgfCAxIDw8IFBJUEVfQik7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCmlu ZGV4IGQwZjc5OGNlNmJiMi4uZmVmZDMwMzRhZWFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYwpAQCAtNTQyLDEyICs1NDIsMTIgQEAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwKIAlpZiAoZmItPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9Y X1RJTEVEKQogCQlzcHJjdGwgfD0gU1BSSVRFX1RJTEVEOwogCi0JaWYgKElTX0hBU1dFTEwoZGV2 KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKKwlpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikgfHwgSVNf QlJPQURXRUxMKGRldl9wcml2KSkKIAkJc3ByY3RsICY9IH5TUFJJVEVfVFJJQ0tMRV9GRUVEX0RJ U0FCTEU7CiAJZWxzZQogCQlzcHJjdGwgfD0gU1BSSVRFX1RSSUNLTEVfRkVFRF9ESVNBQkxFOwog Ci0JaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKKwlpZiAoSVNfSEFT V0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKIAkJc3ByY3RsIHw9IFNQ UklURV9QSVBFX0NTQ19FTkFCTEU7CiAKIAkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLwpAQCAtNTY2 LDcgKzU2Niw3IEBAIGl2Yl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJ CXNwcmN0bCB8PSBTUFJJVEVfUk9UQVRFXzE4MDsKIAogCQkvKiBIU1cgYW5kIEJEVyBkb2VzIHRo aXMgYXV0b21hZ2ljYWxseSBpbiBoYXJkd2FyZSAqLwotCQlpZiAoIUlTX0hBU1dFTEwoZGV2KSAm JiAhSVNfQlJPQURXRUxMKGRldikpIHsKKwkJaWYgKCFJU19IQVNXRUxMKGRldl9wcml2KSAmJiAh SVNfQlJPQURXRUxMKGRldl9wcml2KSkgewogCQkJeCArPSBzcmNfdzsKIAkJCXkgKz0gc3JjX2g7 CiAJCX0KQEAgLTU5MCw3ICs1OTAsNyBAQCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAogCiAJLyogSFNXIGNvbnNvbGlkYXRlcyBTUFJUSUxFT0ZGIGFuZCBTUFJMSU5P RkYgaW50byBhIHNpbmdsZSBTUFJPRkZTRVQKIAkgKiByZWdpc3RlciAqLwotCWlmIChJU19IQVNX RUxMKGRldikgfHwgSVNfQlJPQURXRUxMKGRldikpCisJaWYgKElTX0hBU1dFTEwoZGV2X3ByaXYp IHx8IElTX0JST0FEV0VMTChkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUoU1BST0ZGU0VUKHBpcGUp LCAoeSA8PCAxNikgfCB4KTsKIAllbHNlIGlmIChmYi0+bW9kaWZpZXJbMF0gPT0gSTkxNV9GT1JN QVRfTU9EX1hfVElMRUQpCiAJCUk5MTVfV1JJVEUoU1BSVElMRU9GRihwaXBlKSwgKHkgPDwgMTYp IHwgeCk7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==