From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 19/19] drm/i915: Make IS_GEN macros only take dev_priv Date: Tue, 11 Oct 2016 14:21:52 +0100 Message-ID: <1476192112-25336-20-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 7205F6E66D for ; Tue, 11 Oct 2016 13:22:28 +0000 (UTC) Received: by mail-lf0-x244.google.com with SMTP id l131so1045965lfl.0 for ; Tue, 11 Oct 2016 06:22:28 -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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNhdmVzIDE0 MTYgYnl0ZXMgb2YgLnJvZGF0YSBzdHJpbmdzLgoKdjI6IEFkZCBwYXJhbnRoZXNlcyBhcm91bmQg ZGV2X3ByaXYuIChWaWxsZSBTeXJqYWxhKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu YyAgICAgICAgICAgIHwgIDYgKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAg ICAgICAgICAgfCAxNiArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAg ICAgICAgICB8ICA4ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2ZlbmNlLmMgICAgICB8 ICA5ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICB8IDEw ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jICAgICB8ICA0ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aWxpbmcuYyAgICAgfCAgNCArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgIHwgMTAgKystLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfc3VzcGVuZC5jICAgICAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jcnQuYyAgICAgICAgICAgfCAgNiArLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICAgICB8IDQxICsrKysrKysrLS0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICAgIHwgMjAgKysrLS0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2ZpZm9fdW5kZXJydW4uYyB8ICA2ICstLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZ3VjX2xvYWRlci5jICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2x2ZHMuYyAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j ICAgICAgICAgICAgfCA4MyArKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICAgICB8ICA0ICstCiAyMSBmaWxlcyBjaGFu Z2VkLCAxMjYgaW5zZXJ0aW9ucygrKSwgMTI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKaW5kZXggMjA2ODlmMWNkNzE5Li4zYTQyZGYzYTI5ZTUgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCkBAIC00NTUyLDcgKzQ1NTIsNyBAQCBzdGF0aWMgdm9p ZCB3bV9sYXRlbmN5X3Nob3coc3RydWN0IHNlcV9maWxlICptLCBjb25zdCB1aW50MTZfdCB3bVs4 XSkKIAllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkKIAkJbnVtX2xldmVscyA9IDE7 CiAJZWxzZQotCQludW1fbGV2ZWxzID0gaWxrX3dtX21heF9sZXZlbChkZXYpICsgMTsKKwkJbnVt X2xldmVscyA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpICsgMTsKIAogCWRybV9tb2Rlc2V0 X2xvY2tfYWxsKGRldik7CiAKQEAgLTQ2NjgsNyArNDY2OCw3IEBAIHN0YXRpYyBzc2l6ZV90IHdt X2xhdGVuY3lfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICp1YnVm LAogCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpKQogCQludW1fbGV2ZWxzID0gMTsK IAllbHNlCi0JCW51bV9sZXZlbHMgPSBpbGtfd21fbWF4X2xldmVsKGRldikgKyAxOworCQludW1f bGV2ZWxzID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdikgKyAxOwogCiAJaWYgKGxlbiA+PSBz aXplb2YodG1wKSkKIAkJcmV0dXJuIC1FSU5WQUw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRl eCA1ZTdiNmExY2IyYzguLmMxOTU2ODU1ZmViNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBA IC0xNzQsNyArMTc0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGV0ZWN0X3BjaChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCQkJaWYgKGlkID09IElOVEVMX1BDSF9JQlhfREVWSUNFX0lEX1RZUEUp IHsKIAkJCQlkZXZfcHJpdi0+cGNoX3R5cGUgPSBQQ0hfSUJYOwogCQkJCURSTV9ERUJVR19LTVMo IkZvdW5kIEliZXggUGVhayBQQ0hcbiIpOwotCQkJCVdBUk5fT04oIUlTX0dFTjUoZGV2KSk7CisJ CQkJV0FSTl9PTighSVNfR0VONShkZXZfcHJpdikpOwogCQkJfSBlbHNlIGlmIChpZCA9PSBJTlRF TF9QQ0hfQ1BUX0RFVklDRV9JRF9UWVBFKSB7CiAJCQkJZGV2X3ByaXYtPnBjaF90eXBlID0gUENI X0NQVDsKIAkJCQlEUk1fREVCVUdfS01TKCJGb3VuZCBDb3VnYXJQb2ludCBQQ0hcbiIpOwpAQCAt ODg0LDcgKzg4NCw3IEBAIHN0YXRpYyBpbnQgaTkxNV9tbWlvX3NldHVwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCiAJaW50IG1taW9fYmFyOwogCWludCBtbWlvX3NpemU7CiAKLQltbWlvX2JhciA9 IElTX0dFTjIoZGV2KSA/IDEgOiAwOworCW1taW9fYmFyID0gSVNfR0VOMihkZXZfcHJpdikgPyAx IDogMDsKIAkvKgogCSAqIEJlZm9yZSBnZW40LCB0aGUgcmVnaXN0ZXJzIGFuZCB0aGUgR1RUIGFy ZSBiZWhpbmQgZGlmZmVyZW50IEJBUnMuCiAJICogSG93ZXZlciwgZnJvbSBnZW40IG9ud2FyZHMs IHRoZSByZWdpc3RlcnMgYW5kIHRoZSBHVFQgYXJlIHNoYXJlZApAQCAtMTAzNyw3ICsxMDM3LDcg QEAgc3RhdGljIGludCBpOTE1X2RyaXZlcl9pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAlwY2lfc2V0X21hc3RlcihwZGV2KTsKIAogCS8qIG92ZXJsYXkgb24gZ2Vu MiBpcyBicm9rZW4gYW5kIGNhbid0IGFkZHJlc3MgYWJvdmUgMUcgKi8KLQlpZiAoSVNfR0VOMihk ZXYpKSB7CisJaWYgKElTX0dFTjIoZGV2X3ByaXYpKSB7CiAJCXJldCA9IGRtYV9zZXRfY29oZXJl bnRfbWFzaygmcGRldi0+ZGV2LCBETUFfQklUX01BU0soMzApKTsKIAkJaWYgKHJldCkgewogCQkJ RFJNX0VSUk9SKCJmYWlsZWQgdG8gc2V0IERNQSBtYXNrXG4iKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCmluZGV4IDNmMzhiOTc1NTc2My4uYTA1NjY1YWYzMWJlIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKQEAgLTI3NDIsMTQgKzI3NDIsMTQgQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7 CiAgKiBoYXZlIHRoZWlyIG93biAoZS5nLiBIQVNfUENIX1NQTElUIGZvciBJTEsrIGRpc3BsYXks IElTX2ZvbyBmb3IgcGFydGljdWxhcgogICogY2hpcHMsIGV0Yy4pLgogICovCi0jZGVmaW5lIElT X0dFTjIoZGV2KQkoISEoSU5URUxfSU5GTyhkZXYpLT5nZW5fbWFzayAmIEJJVCgxKSkpCi0jZGVm aW5lIElTX0dFTjMoZGV2KQkoISEoSU5URUxfSU5GTyhkZXYpLT5nZW5fbWFzayAmIEJJVCgyKSkp Ci0jZGVmaW5lIElTX0dFTjQoZGV2KQkoISEoSU5URUxfSU5GTyhkZXYpLT5nZW5fbWFzayAmIEJJ VCgzKSkpCi0jZGVmaW5lIElTX0dFTjUoZGV2KQkoISEoSU5URUxfSU5GTyhkZXYpLT5nZW5fbWFz ayAmIEJJVCg0KSkpCi0jZGVmaW5lIElTX0dFTjYoZGV2KQkoISEoSU5URUxfSU5GTyhkZXYpLT5n ZW5fbWFzayAmIEJJVCg1KSkpCi0jZGVmaW5lIElTX0dFTjcoZGV2KQkoISEoSU5URUxfSU5GTyhk ZXYpLT5nZW5fbWFzayAmIEJJVCg2KSkpCi0jZGVmaW5lIElTX0dFTjgoZGV2KQkoISEoSU5URUxf SU5GTyhkZXYpLT5nZW5fbWFzayAmIEJJVCg3KSkpCi0jZGVmaW5lIElTX0dFTjkoZGV2KQkoISEo SU5URUxfSU5GTyhkZXYpLT5nZW5fbWFzayAmIEJJVCg4KSkpCisjZGVmaW5lIElTX0dFTjIoZGV2 X3ByaXYpCSghISgoZGV2X3ByaXYpLT5pbmZvLmdlbl9tYXNrICYgQklUKDEpKSkKKyNkZWZpbmUg SVNfR0VOMyhkZXZfcHJpdikJKCEhKChkZXZfcHJpdiktPmluZm8uZ2VuX21hc2sgJiBCSVQoMikp KQorI2RlZmluZSBJU19HRU40KGRldl9wcml2KQkoISEoKGRldl9wcml2KS0+aW5mby5nZW5fbWFz ayAmIEJJVCgzKSkpCisjZGVmaW5lIElTX0dFTjUoZGV2X3ByaXYpCSghISgoZGV2X3ByaXYpLT5p bmZvLmdlbl9tYXNrICYgQklUKDQpKSkKKyNkZWZpbmUgSVNfR0VONihkZXZfcHJpdikJKCEhKChk ZXZfcHJpdiktPmluZm8uZ2VuX21hc2sgJiBCSVQoNSkpKQorI2RlZmluZSBJU19HRU43KGRldl9w cml2KQkoISEoKGRldl9wcml2KS0+aW5mby5nZW5fbWFzayAmIEJJVCg2KSkpCisjZGVmaW5lIElT X0dFTjgoZGV2X3ByaXYpCSghISgoZGV2X3ByaXYpLT5pbmZvLmdlbl9tYXNrICYgQklUKDcpKSkK KyNkZWZpbmUgSVNfR0VOOShkZXZfcHJpdikJKCEhKChkZXZfcHJpdiktPmluZm8uZ2VuX21hc2sg JiBCSVQoOCkpKQogCiAjZGVmaW5lIEVOR0lORV9NQVNLKGlkKQlCSVQoaWQpCiAjZGVmaW5lIFJF TkRFUl9SSU5HCUVOR0lORV9NQVNLKFJDUykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDhj MzYyODk5Njc0YS4uYjc5MzkyNjA1MjU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQz MDgsMTUgKzQzMDgsMTUgQEAgdm9pZCBpOTE1X2dlbV9pbml0X3N3aXp6bGluZyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoRElTUF9BUkJfQ1RMLCBJOTE1X1JFQUQoRElTUF9B UkJfQ1RMKSB8CiAJCQkJIERJU1BfVElMRV9TVVJGQUNFX1NXSVpaTElORyk7CiAKLQlpZiAoSVNf R0VONShkZXYpKQorCWlmIChJU19HRU41KGRldl9wcml2KSkKIAkJcmV0dXJuOwogCiAJSTkxNV9X UklURShUSUxFQ1RMLCBJOTE1X1JFQUQoVElMRUNUTCkgfCBUSUxFQ1RMX1NXWkNUTCk7Ci0JaWYg KElTX0dFTjYoZGV2KSkKKwlpZiAoSVNfR0VONihkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUoQVJC X01PREUsIF9NQVNLRURfQklUX0VOQUJMRShBUkJfTU9ERV9TV0laWkxFX1NOQikpOwotCWVsc2Ug aWYgKElTX0dFTjcoZGV2KSkKKwllbHNlIGlmIChJU19HRU43KGRldl9wcml2KSkKIAkJSTkxNV9X UklURShBUkJfTU9ERSwgX01BU0tFRF9CSVRfRU5BQkxFKEFSQl9NT0RFX1NXSVpaTEVfSVZCKSk7 Ci0JZWxzZSBpZiAoSVNfR0VOOChkZXYpKQorCWVsc2UgaWYgKElTX0dFTjgoZGV2X3ByaXYpKQog CQlJOTE1X1dSSVRFKEdBTVRBUkJNT0RFLCBfTUFTS0VEX0JJVF9FTkFCTEUoQVJCX01PREVfU1dJ WlpMRV9CRFcpKTsKIAllbHNlCiAJCUJVRygpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZXhlY2J1ZmZlci5jCmluZGV4IDcyYzdjMTg1NWU3MC4uMTFiYjNhZTk0ZTAwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC01NzIsNyArNTcyLDcg QEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZWxvY2F0ZV9lbnRyeShzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqLAogCQkJCSAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVsb2NhdGlvbl9lbnRy eSAqcmVsb2MsCiAJCQkJICAgc3RydWN0IHJlbG9jX2NhY2hlICpjYWNoZSkKIHsKLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOwogCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqdGFyZ2V0X29iajsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdGFyZ2V0X2k5 MTVfb2JqOwogCXN0cnVjdCBpOTE1X3ZtYSAqdGFyZ2V0X3ZtYTsKQEAgLTU5MSw3ICs1OTEsNyBA QCBpOTE1X2dlbV9leGVjYnVmZmVyX3JlbG9jYXRlX2VudHJ5KHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpvYmosCiAJLyogU2FuZHlicmlkZ2UgUFBHVFQgZXJyYXRhOiBXZSBuZWVkIGEgZ2xv YmFsIGd0dCBtYXBwaW5nIGZvciBNSSBhbmQKIAkgKiBwaXBlX2NvbnRyb2wgd3JpdGVzIGJlY2F1 c2UgdGhlIGdwdSBkb2Vzbid0IHByb3Blcmx5IHJlZGlyZWN0IHRoZW0KIAkgKiB0aHJvdWdoIHRo ZSBwcGd0dCBmb3Igbm9uX3NlY3VyZSBiYXRjaGJ1ZmZlcnMuICovCi0JaWYgKHVubGlrZWx5KElT X0dFTjYoZGV2KSAmJgorCWlmICh1bmxpa2VseShJU19HRU42KGRldl9wcml2KSAmJgogCSAgICBy ZWxvYy0+d3JpdGVfZG9tYWluID09IEk5MTVfR0VNX0RPTUFJTl9JTlNUUlVDVElPTikpIHsKIAkJ cmV0ID0gaTkxNV92bWFfYmluZCh0YXJnZXRfdm1hLCB0YXJnZXRfaTkxNV9vYmotPmNhY2hlX2xl dmVsLAogCQkJCSAgICBQSU5fR0xPQkFMKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5j ZS5jCmluZGV4IGQyNjc2ODU2NzI1Mi4uYmVkZjIyNzhkZjE2IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2ZlbmNlLmMKQEAgLTQ4NywxOSArNDg3LDIwIEBAIGk5MTVfZ2VtX2RldGVjdF9i aXRfNl9zd2l6emxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkJc3dpenpsZV95ID0gSTkx NV9CSVRfNl9TV0laWkxFX05PTkU7CiAJCQl9CiAJCX0KLQl9IGVsc2UgaWYgKElTX0dFTjUoZGV2 KSkgeworCX0gZWxzZSBpZiAoSVNfR0VONShkZXZfcHJpdikpIHsKIAkJLyogT24gSXJvbmxha2Ug d2hhdGV2ZXIgRFJBTSBjb25maWcsIEdQVSBhbHdheXMgZG8KIAkJICogc2FtZSBzd2l6emxpbmcg c2V0dXAuCiAJCSAqLwogCQlzd2l6emxlX3ggPSBJOTE1X0JJVF82X1NXSVpaTEVfOV8xMDsKIAkJ c3dpenpsZV95ID0gSTkxNV9CSVRfNl9TV0laWkxFXzk7Ci0JfSBlbHNlIGlmIChJU19HRU4yKGRl dikpIHsKKwl9IGVsc2UgaWYgKElTX0dFTjIoZGV2X3ByaXYpKSB7CiAJCS8qIEFzIGZhciBhcyB3 ZSBrbm93LCB0aGUgODY1IGRvZXNuJ3QgaGF2ZSB0aGVzZSBiaXQgNgogCQkgKiBzd2l6emxpbmcg aXNzdWVzLgogCQkgKi8KIAkJc3dpenpsZV94ID0gSTkxNV9CSVRfNl9TV0laWkxFX05PTkU7CiAJ CXN3aXp6bGVfeSA9IEk5MTVfQklUXzZfU1dJWlpMRV9OT05FOwotCX0gZWxzZSBpZiAoSVNfTU9C SUxFKGRldikgfHwgKElTX0dFTjMoZGV2KSAmJiAhSVNfRzMzKGRldikpKSB7CisJfSBlbHNlIGlm IChJU19NT0JJTEUoZGV2X3ByaXYpIHx8IChJU19HRU4zKGRldl9wcml2KSAmJgorCQkgICAhSVNf RzMzKGRldl9wcml2KSkpIHsKIAkJdWludDMyX3QgZGNjOwogCiAJCS8qIE9uIDl4eCBjaGlwc2V0 cywgY2hhbm5lbCBpbnRlcmxlYXZlIGJ5IHRoZSBDUFUgaXMKQEAgLTUzNyw3ICs1MzgsNyBAQCBp OTE1X2dlbV9kZXRlY3RfYml0XzZfc3dpenpsZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl9 CiAKIAkJLyogY2hlY2sgZm9yIEwtc2hhcGVkIG1lbW9yeSBha2EgbW9kaWZpZWQgZW5oYW5jZWQg YWRkcmVzc2luZyAqLwotCQlpZiAoSVNfR0VONChkZXYpICYmCisJCWlmIChJU19HRU40KGRldl9w cml2KSAmJgogCQkgICAgIShJOTE1X1JFQUQoRENDMikgJiBEQ0MyX01PRElGSUVEX0VOSEFOQ0VE X0RJU0FCTEUpKSB7CiAJCQlzd2l6emxlX3ggPSBJOTE1X0JJVF82X1NXSVpaTEVfVU5LTk9XTjsK IAkJCXN3aXp6bGVfeSA9IEk5MTVfQklUXzZfU1dJWlpMRV9VTktOT1dOOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9ndHQuYwppbmRleCA0MjExYjlhNGE5MTguLmMzNWJhNjdkMWE1ZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKQEAgLTIwNTgsMTEgKzIwNTgsMTEgQEAgc3RhdGlj IGludCBnZW42X3BwZ3R0X2luaXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQogCWludCBy ZXQ7CiAKIAlwcGd0dC0+YmFzZS5wdGVfZW5jb2RlID0gZ2d0dC0+YmFzZS5wdGVfZW5jb2RlOwot CWlmIChpbnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikgfHwgSVNfR0VONihkZXYpKQorCWlmIChp bnRlbF92Z3B1X2FjdGl2ZShkZXZfcHJpdikgfHwgSVNfR0VONihkZXZfcHJpdikpCiAJCXBwZ3R0 LT5zd2l0Y2hfbW0gPSBnZW42X21tX3N3aXRjaDsKIAllbHNlIGlmIChJU19IQVNXRUxMKGRldl9w cml2KSkKIAkJcHBndHQtPnN3aXRjaF9tbSA9IGhzd19tbV9zd2l0Y2g7Ci0JZWxzZSBpZiAoSVNf R0VONyhkZXYpKQorCWVsc2UgaWYgKElTX0dFTjcoZGV2X3ByaXYpKQogCQlwcGd0dC0+c3dpdGNo X21tID0gZ2VuN19tbV9zd2l0Y2g7CiAJZWxzZQogCQlCVUcoKTsKQEAgLTIxNTksNiArMjE1OSw4 IEBAIHN0YXRpYyBpbnQgaTkxNV9wcGd0dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0 dCwKIAogaW50IGk5MTVfcHBndHRfaW5pdF9odyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwogCWd0 dF93cml0ZV93b3JrYXJvdW5kcyhkZXYpOwogCiAJLyogSW4gdGhlIGNhc2Ugb2YgZXhlY2xpc3Rz LCBQUEdUVCBpcyBlbmFibGVkIGJ5IHRoZSBjb250ZXh0IGRlc2NyaXB0b3IKQEAgLTIxNzAsOSAr MjE3Miw5IEBAIGludCBpOTE1X3BwZ3R0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAlpZiAoIVVTRVNfUFBHVFQoZGV2KSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoSVNfR0VONihkZXYp KQorCWlmIChJU19HRU42KGRldl9wcml2KSkKIAkJZ2VuNl9wcGd0dF9lbmFibGUoZGV2KTsKLQll bHNlIGlmIChJU19HRU43KGRldikpCisJZWxzZSBpZiAoSVNfR0VONyhkZXZfcHJpdikpCiAJCWdl bjdfcHBndHRfZW5hYmxlKGRldik7CiAJZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OCkKIAkJZ2VuOF9wcGd0dF9lbmFibGUoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1f c3RvbGVuLmMKaW5kZXggZDFiNDBiY2UwMjQ5Li5mNGY2ZDNhNDhiMDUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC0yMTUsNyArMjE1LDcgQEAgc3RhdGljIHVuc2ln bmVkIGxvbmcgaTkxNV9zdG9sZW5fdG9fcGh5c2ljYWwoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkJdTY0IGdndHRfc3RhcnQsIGdndHRfZW5kOwogCiAJCWdndHRfc3RhcnQgPSBJOTE1X1JFQUQo UEdUQkxfQ1RMKTsKLQkJaWYgKElTX0dFTjQoZGV2KSkKKwkJaWYgKElTX0dFTjQoZGV2X3ByaXYp KQogCQkJZ2d0dF9zdGFydCA9IChnZ3R0X3N0YXJ0ICYgUEdUQkxfQUREUkVTU19MT19NQVNLKSB8 CiAJCQkJICAgICAoZ2d0dF9zdGFydCAmIFBHVEJMX0FERFJFU1NfSElfTUFTSykgPDwgMjg7CiAJ CWVsc2UKQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBpOTE1X3N0b2xl bl90b19waHlzaWNhbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkgKiBHRU4zIGZpcm13YXJl IGxpa2VzIHRvIHNtYXNoIHBjaSBicmlkZ2VzIGludG8gdGhlIHN0b2xlbgogCQkgKiByYW5nZS4g QXBwYXJlbnRseSB0aGlzIHdvcmtzLgogCQkgKi8KLQkJaWYgKHIgPT0gTlVMTCAmJiAhSVNfR0VO MyhkZXYpKSB7CisJCWlmIChyID09IE5VTEwgJiYgIUlTX0dFTjMoZGV2X3ByaXYpKSB7CiAJCQlE Uk1fRVJST1IoImNvbmZsaWN0IGRldGVjdGVkIHdpdGggc3RvbGVuIHJlZ2lvbjogWzB4JTA4eCAt IDB4JTA4eF1cbiIsCiAJCQkJICBiYXNlLCBiYXNlICsgKHVpbnQzMl90KWdndHQtPnN0b2xlbl9z aXplKTsKIAkJCWJhc2UgPSAwOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fdGlsaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV90aWxpbmcuYwpp bmRleCA4OWQxZDIzNGExYjQuLmMyMWJjMDA2OGQyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fdGlsaW5nLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fdGlsaW5nLmMKQEAgLTcyLDcgKzcyLDcgQEAgaTkxNV90aWxpbmdfb2soc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgaW50IHN0cmlkZSwgaW50IHNpemUsIGludCB0aWxpbmdfbW9kZSkKIAlp ZiAodGlsaW5nX21vZGUgPiBJOTE1X1RJTElOR19MQVNUKQogCQlyZXR1cm4gZmFsc2U7CiAKLQlp ZiAoSVNfR0VOMihkZXYpIHx8CisJaWYgKElTX0dFTjIoZGV2X3ByaXYpIHx8CiAJICAgICh0aWxp bmdfbW9kZSA9PSBJOTE1X1RJTElOR19ZICYmIEhBU18xMjhfQllURV9ZX1RJTElORyhkZXZfcHJp dikpKQogCQl0aWxlX3dpZHRoID0gMTI4OwogCWVsc2UKQEAgLTkxLDcgKzkxLDcgQEAgaTkxNV90 aWxpbmdfb2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IHN0cmlkZSwgaW50IHNpemUsIGlu dCB0aWxpbmdfbW9kZSkKIAkJaWYgKHN0cmlkZSA+IDgxOTIpCiAJCQlyZXR1cm4gZmFsc2U7CiAK LQkJaWYgKElTX0dFTjMoZGV2KSkgeworCQlpZiAoSVNfR0VOMyhkZXZfcHJpdikpIHsKIAkJCWlm IChzaXplID4gSTgzMF9GRU5DRV9NQVhfU0laRV9WQUwgPDwgMjApCiAJCQkJcmV0dXJuIGZhbHNl OwogCQl9IGVsc2UgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVf ZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKaW5kZXggNmVi MTFmZDMyNmZkLi42MjlhYzU2N2RjYmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJy b3IuYwpAQCAtNDQyLDcgKzQ0Miw3IEBAIGludCBpOTE1X2Vycm9yX3N0YXRlX3RvX3N0cihzdHJ1 Y3QgZHJtX2k5MTVfZXJyb3Jfc3RhdGVfYnVmICptLAogCQllcnJfcHJpbnRmKG0sICJET05FX1JF RzogMHglMDh4XG4iLCBlcnJvci0+ZG9uZV9yZWcpOwogCX0KIAotCWlmIChJU19HRU43KGRldikp CisJaWYgKElTX0dFTjcoZGV2X3ByaXYpKQogCQllcnJfcHJpbnRmKG0sICJFUlJfSU5UOiAweCUw OHhcbiIsIGVycm9yLT5lcnJfaW50KTsKIAogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVy cm9yLT5lbmdpbmUpOyBpKyspIHsKQEAgLTEzNTUsNyArMTM1NSw3IEBAIHN0YXRpYyB2b2lkIGk5 MTVfY2FwdHVyZV9yZWdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CQllcnJvci0+Zm9yY2V3YWtlID0gSTkxNV9SRUFEX0ZXKEZPUkNFV0FLRV9WTFYpOwogCX0KIAot CWlmIChJU19HRU43KGRldikpCisJaWYgKElTX0dFTjcoZGV2X3ByaXYpKQogCQllcnJvci0+ZXJy X2ludCA9IEk5MTVfUkVBRChHRU43X0VSUl9JTlQpOwogCiAJaWYgKElOVEVMX0lORk8oZGV2KS0+ Z2VuID49IDgpIHsKQEAgLTEzNjMsNyArMTM2Myw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfY2FwdHVy ZV9yZWdfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQllcnJvci0+ ZmF1bHRfZGF0YTEgPSBJOTE1X1JFQUQoR0VOOF9GQVVMVF9UTEJfREFUQTEpOwogCX0KIAotCWlm IChJU19HRU42KGRldikpIHsKKwlpZiAoSVNfR0VONihkZXZfcHJpdikpIHsKIAkJZXJyb3ItPmZv cmNld2FrZSA9IEk5MTVfUkVBRF9GVyhGT1JDRVdBS0UpOwogCQllcnJvci0+Z2FiX2N0bCA9IEk5 MTVfUkVBRChHQUJfQ1RMKTsKIAkJZXJyb3ItPmdmeF9tb2RlID0gSTkxNV9SRUFEKEdGWF9NT0RF KTsKQEAgLTEzODAsNyArMTM4MCw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfY2FwdHVyZV9yZWdfc3Rh dGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIAogCS8qIDM6IEZlYXR1 cmUgc3BlY2lmaWMgcmVnaXN0ZXJzICovCi0JaWYgKElTX0dFTjYoZGV2KSB8fCBJU19HRU43KGRl dikpIHsKKwlpZiAoSVNfR0VONihkZXZfcHJpdikgfHwgSVNfR0VONyhkZXZfcHJpdikpIHsKIAkJ ZXJyb3ItPmdhbV9lY29jaGsgPSBJOTE1X1JFQUQoR0FNX0VDT0NISyk7CiAJCWVycm9yLT5nYWNf ZWNvID0gSTkxNV9SRUFEKEdBQ19FQ09fQklUUyk7CiAJfQpAQCAtMTM5Niw3ICsxMzk2LDcgQEAg c3RhdGljIHZvaWQgaTkxNV9jYXB0dXJlX3JlZ19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldl9wcml2KSkgewogCQll cnJvci0+aWVyID0gSTkxNV9SRUFEKERFSUVSKTsKIAkJZXJyb3ItPmd0aWVyWzBdID0gSTkxNV9S RUFEKEdUSUVSKTsKLQl9IGVsc2UgaWYgKElTX0dFTjIoZGV2KSkgeworCX0gZWxzZSBpZiAoSVNf R0VOMihkZXZfcHJpdikpIHsKIAkJZXJyb3ItPmllciA9IEk5MTVfUkVBRDE2KElFUik7CiAJfSBl bHNlIGlmICghSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpIHsKIAkJZXJyb3ItPmllciA9IEk5MTVf UkVBRChJRVIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggMDc5YmE3Y2ZjOTcxLi5kNjEw ZGY5MmFkMWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMzMzMyw3ICszMzMzLDcgQEAg c3RhdGljIHZvaWQgaXJvbmxha2VfaXJxX3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJ STkxNV9XUklURShIV1NUQU0sIDB4ZmZmZmZmZmYpOwogCiAJR0VONV9JUlFfUkVTRVQoREUpOwot CWlmIChJU19HRU43KGRldikpCisJaWYgKElTX0dFTjcoZGV2X3ByaXYpKQogCQlJOTE1X1dSSVRF KEdFTjdfRVJSX0lOVCwgMHhmZmZmZmZmZik7CiAKIAlnZW41X2d0X2lycV9yZXNldChkZXYpOwpA QCAtMzU5OSw3ICszNTk5LDcgQEAgc3RhdGljIHZvaWQgZ2VuNV9ndF9pcnFfcG9zdGluc3RhbGwo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAl9CiAKIAlndF9pcnFzIHw9IEdUX1JFTkRFUl9VU0VS X0lOVEVSUlVQVDsKLQlpZiAoSVNfR0VONShkZXYpKSB7CisJaWYgKElTX0dFTjUoZGV2X3ByaXYp KSB7CiAJCWd0X2lycXMgfD0gSUxLX0JTRF9VU0VSX0lOVEVSUlVQVDsKIAl9IGVsc2UgewogCQln dF9pcnFzIHw9IEdUX0JMVF9VU0VSX0lOVEVSUlVQVCB8IEdUX0JTRF9VU0VSX0lOVEVSUlVQVDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3VzcGVuZC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9zdXNwZW5kLmMKaW5kZXggNzg3MDg1NmZjY2QwLi4zNDRjYmYz OWNmYTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3VzcGVuZC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3VzcGVuZC5jCkBAIC03MCw3ICs3MCw3IEBA IGludCBpOTE1X3NhdmVfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWk5MTVfc2F2 ZV9kaXNwbGF5KGRldik7CiAKLQlpZiAoSVNfR0VONChkZXYpKQorCWlmIChJU19HRU40KGRldl9w cml2KSkKIAkJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwgR0NER01CVVMsCiAJCQkJICAgICAm ZGV2X3ByaXYtPnJlZ2ZpbGUuc2F2ZUdDREdNQlVTKTsKIApAQCAtMTE2LDcgKzExNiw3IEBAIGlu dCBpOTE1X3Jlc3RvcmVfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWk5MTVfZ2Vt X3Jlc3RvcmVfZmVuY2VzKGRldik7CiAKLQlpZiAoSVNfR0VONChkZXYpKQorCWlmIChJU19HRU40 KGRldl9wcml2KSkKIAkJcGNpX3dyaXRlX2NvbmZpZ193b3JkKHBkZXYsIEdDREdNQlVTLAogCQkJ CSAgICAgIGRldl9wcml2LT5yZWdmaWxlLnNhdmVHQ0RHTUJVUyk7CiAJaTkxNV9yZXN0b3JlX2Rp c3BsYXkoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKaW5kZXggZDkyYzNlZGYxMGZmLi5h OTcxNTFmY2I5ZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCkBAIC0yNTksNyArMjU5LDcg QEAgaW50ZWxfY3J0X21vZGVfdmFsaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK IAkJICogREFDIGxpbWl0IHN1cHBvc2VkbHkgMzU1IE1Iei4KIAkJICovCiAJCW1heF9jbG9jayA9 IDI3MDAwMDsKLQllbHNlIGlmIChJU19HRU4zKGRldikgfHwgSVNfR0VONChkZXYpKQorCWVsc2Ug aWYgKElTX0dFTjMoZGV2X3ByaXYpIHx8IElTX0dFTjQoZGV2X3ByaXYpKQogCQltYXhfY2xvY2sg PSA0MDAwMDA7CiAJZWxzZQogCQltYXhfY2xvY2sgPSAzNTAwMDA7CkBAIC01NjcsNyArNTY3LDcg QEAgaW50ZWxfY3J0X2xvYWRfZGV0ZWN0KHN0cnVjdCBpbnRlbF9jcnQgKmNydCwgdWludDMyX3Qg cGlwZSkKIAkvKiBTZXQgdGhlIGJvcmRlciBjb2xvciB0byBwdXJwbGUuICovCiAJSTkxNV9XUklU RShiY2xycGF0X3JlZywgMHg1MDAwNTApOwogCi0JaWYgKCFJU19HRU4yKGRldikpIHsKKwlpZiAo IUlTX0dFTjIoZGV2X3ByaXYpKSB7CiAJCXVpbnQzMl90IHBpcGVjb25mID0gSTkxNV9SRUFEKHBp cGVjb25mX3JlZyk7CiAJCUk5MTVfV1JJVEUocGlwZWNvbmZfcmVnLCBwaXBlY29uZiB8IFBJUEVD T05GX0ZPUkNFX0JPUkRFUik7CiAJCVBPU1RJTkdfUkVBRChwaXBlY29uZl9yZWcpOwpAQCAtODk5 LDcgKzg5OSw3IEBAIHZvaWQgaW50ZWxfY3J0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAllbHNlCiAJCWNydC0+YmFzZS5jcnRjX21hc2sgPSAoMSA8PCAwKSB8ICgxIDw8IDEpIHwgKDEg PDwgMik7CiAKLQlpZiAoSVNfR0VOMihkZXYpKQorCWlmIChJU19HRU4yKGRldl9wcml2KSkKIAkJ Y29ubmVjdG9yLT5pbnRlcmxhY2VfYWxsb3dlZCA9IDA7CiAJZWxzZQogCQljb25uZWN0b3ItPmlu dGVybGFjZV9hbGxvd2VkID0gMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRl eCBlZGEzOGU1M2Y2OGEuLmYzOTMxYzY2MTE2ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwpAQCAtMTA0NSw3ICsxMDQ1LDcgQEAgc3RhdGljIGJvb2wgcGlwZV9kc2xfc3RvcHBl ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKIAl1MzIgbGluZTEsIGxp bmUyOwogCXUzMiBsaW5lX21hc2s7CiAKLQlpZiAoSVNfR0VOMihkZXYpKQorCWlmIChJU19HRU4y KGRldl9wcml2KSkKIAkJbGluZV9tYXNrID0gRFNMX0xJTkVNQVNLX0dFTjI7CiAJZWxzZQogCQls aW5lX21hc2sgPSBEU0xfTElORU1BU0tfR0VOMzsKQEAgLTM5NDcsNyArMzk0Nyw3IEBAIHN0YXRp YyB2b2lkIGdlbjZfZmRpX2xpbmtfdHJhaW4oc3RydWN0IGRybV9jcnRjICpjcnRjKQogCXRlbXAg PSBJOTE1X1JFQUQocmVnKTsKIAl0ZW1wICY9IH5GRElfTElOS19UUkFJTl9OT05FOwogCXRlbXAg fD0gRkRJX0xJTktfVFJBSU5fUEFUVEVSTl8yOwotCWlmIChJU19HRU42KGRldikpIHsKKwlpZiAo SVNfR0VONihkZXZfcHJpdikpIHsKIAkJdGVtcCAmPSB+RkRJX0xJTktfVFJBSU5fVk9MX0VNUF9N QVNLOwogCQkvKiBTTkItQiAqLwogCQl0ZW1wIHw9IEZESV9MSU5LX1RSQUlOXzQwME1WXzBEQl9T TkJfQjsKQEAgLTQ5ODUsNyArNDk4NSw3IEBAIGludGVsX3Bvc3RfZW5hYmxlX3ByaW1hcnkoc3Ry dWN0IGRybV9jcnRjICpjcnRjKQogCSAqIEZJWE1FOiBOZWVkIHRvIGZpeCB0aGUgbG9naWMgdG8g d29yayB3aGVuIHdlIHR1cm4gb2ZmIGFsbCBwbGFuZXMKIAkgKiBidXQgbGVhdmUgdGhlIHBpcGUg cnVubmluZy4KIAkgKi8KLQlpZiAoSVNfR0VOMihkZXYpKQorCWlmIChJU19HRU4yKGRldl9wcml2 KSkKIAkJaW50ZWxfc2V0X2NwdV9maWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGlw ZSwgdHJ1ZSk7CiAKIAkvKiBVbmRlcnJ1bnMgZG9uJ3QgYWx3YXlzIHJhaXNlIGludGVycnVwdHMs IHNvIGNoZWNrIG1hbnVhbGx5LiAqLwpAQCAtNTAwOCw3ICs1MDA4LDcgQEAgaW50ZWxfcHJlX2Rp c2FibGVfcHJpbWFyeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCiAJICogRklYTUU6IE5lZWQgdG8g Zml4IHRoZSBsb2dpYyB0byB3b3JrIHdoZW4gd2UgdHVybiBvZmYgYWxsIHBsYW5lcwogCSAqIGJ1 dCBsZWF2ZSB0aGUgcGlwZSBydW5uaW5nLgogCSAqLwotCWlmIChJU19HRU4yKGRldikpCisJaWYg KElTX0dFTjIoZGV2X3ByaXYpKQogCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKGRldl9wcml2LCBwaXBlLCBmYWxzZSk7CiAKIAkvKgpAQCAtNjc3NSw3ICs2Nzc1LDcgQEAg c3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCiAKIAlpbnRlbF9jcnRjLT5hY3RpdmUgPSB0cnVlOwogCi0JaWYgKCFJU19HRU4y KGRldikpCisJaWYgKCFJU19HRU4yKGRldl9wcml2KSkKIAkJaW50ZWxfc2V0X2NwdV9maWZvX3Vu ZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgcGlwZSwgdHJ1ZSk7CiAKIAlpbnRlbF9lbmNvZGVy c19wcmVfZW5hYmxlKGNydGMsIHBpcGVfY29uZmlnLCBvbGRfc3RhdGUpOwpAQCAtNjgyMyw3ICs2 ODIzLDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCSAqIE9uIGdlbjIgcGxhbmVzIGFyZSBkb3VibGUgYnVm ZmVyZWQgYnV0IHRoZSBwaXBlIGlzbid0LCBzbyB3ZSBtdXN0CiAJICogd2FpdCBmb3IgcGxhbmVz IHRvIGZ1bGx5IHR1cm4gb2ZmIGJlZm9yZSBkaXNhYmxpbmcgdGhlIHBpcGUuCiAJICovCi0JaWYg KElTX0dFTjIoZGV2KSkKKwlpZiAoSVNfR0VOMihkZXZfcHJpdikpCiAJCWludGVsX3dhaXRfZm9y X3ZibGFuayhkZXYsIHBpcGUpOwogCiAJaW50ZWxfZW5jb2RlcnNfZGlzYWJsZShjcnRjLCBvbGRf Y3J0Y19zdGF0ZSwgb2xkX3N0YXRlKTsKQEAgLTY4NDgsNyArNjg0OCw3IEBAIHN0YXRpYyB2b2lk IGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSwKIAogCWludGVsX2VuY29kZXJzX3Bvc3RfcGxsX2Rpc2FibGUoY3J0Yywgb2xkX2NydGNfc3Rh dGUsIG9sZF9zdGF0ZSk7CiAKLQlpZiAoIUlTX0dFTjIoZGV2KSkKKwlpZiAoIUlTX0dFTjIoZGV2 X3ByaXYpKQogCQlpbnRlbF9zZXRfY3B1X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2 LCBwaXBlLCBmYWxzZSk7CiB9CiAKQEAgLTk4NDYsNyArOTg0Niw3IEBAIHN0YXRpYyB2b2lkIGly b25sYWtlX2dldF9wZml0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJLyogV2Ug Y3VycmVudGx5IGRvIG5vdCBmcmVlIGFzc2lnbmVtZW50cyBvZiBwYW5lbCBmaXR0ZXJzIG9uCiAJ CSAqIGl2Yi9oc3cgKHNpbmNlIHdlIGRvbid0IHVzZSB0aGUgaGlnaGVyIHVwc2NhbGluZyBtb2Rl cyB3aGljaAogCQkgKiBkaWZmZXJlbnRpYXRlcyB0aGVtKSBzbyBqdXN0IFdBUk4gYWJvdXQgdGhp cyBjYXNlIGZvciBub3cuICovCi0JCWlmIChJU19HRU43KGRldikpIHsKKwkJaWYgKElTX0dFTjco ZGV2X3ByaXYpKSB7CiAJCQlXQVJOX09OKCh0bXAgJiBQRl9QSVBFX1NFTF9NQVNLX0lWQikgIT0K IAkJCQlQRl9QSVBFX1NFTF9JVkIoY3J0Yy0+cGlwZSkpOwogCQl9CkBAIC0xMTMyMiw3ICsxMTMy Miw3IEBAIHN0YXRpYyBpbnQgaTl4eF9wbGxfcmVmY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJCXJldHVybiBkZXZfcHJpdi0+dmJ0Lmx2ZHNfc3NjX2ZyZXE7CiAJZWxzZSBpZiAoSEFTX1BD SF9TUExJVChkZXZfcHJpdikpCiAJCXJldHVybiAxMjAwMDA7Ci0JZWxzZSBpZiAoIUlTX0dFTjIo ZGV2KSkKKwllbHNlIGlmICghSVNfR0VOMihkZXZfcHJpdikpCiAJCXJldHVybiA5NjAwMDsKIAll bHNlCiAJCXJldHVybiA0ODAwMDsKQEAgLTExMzU1LDcgKzExMzU1LDcgQEAgc3RhdGljIHZvaWQg aTl4eF9jcnRjX2Nsb2NrX2dldChzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJY2xvY2subTIg PSAoZnAgJiBGUF9NMl9ESVZfTUFTSykgPj4gRlBfTTJfRElWX1NISUZUOwogCX0KIAotCWlmICgh SVNfR0VOMihkZXYpKSB7CisJaWYgKCFJU19HRU4yKGRldl9wcml2KSkgewogCQlpZiAoSVNfUElO RVZJRVcoZGV2KSkKIAkJCWNsb2NrLnAxID0gZmZzKChkcGxsICYgRFBMTF9GUEEwMV9QMV9QT1NU X0RJVl9NQVNLX1BJTkVWSUVXKSA+PgogCQkJCURQTExfRlBBMDFfUDFfUE9TVF9ESVZfU0hJRlRf UElORVZJRVcpOwpAQCAtMTE4NTQsNiArMTE4NTQsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjdf cXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCSBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3JlcXVlc3QgKnJlcSwKIAkJCQkgdWludDMyX3QgZmxhZ3MpCiB7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9yaW5n ICpyaW5nID0gcmVxLT5yaW5nOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKIAl1aW50MzJfdCBwbGFuZV9iaXQgPSAwOwpAQCAtMTE4ODIsNyAr MTE4ODMsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjdfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkgKiA0OGJpdHMgYWRkcmVzc2VzLCBhbmQgd2UgbmVlZCBhIE5PT1AgZm9y IHRoZSBiYXRjaCBzaXplIHRvCiAJCSAqIHN0YXkgZXZlbi4KIAkJICovCi0JCWlmIChJU19HRU44 KGRldikpCisJCWlmIChJU19HRU44KGRldl9wcml2KSkKIAkJCWxlbiArPSAyOwogCX0KIApAQCAt MTE5MTksNyArMTE5MjAsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjdfcXVldWVfZmxpcChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCQlpbnRlbF9yaW5nX2VtaXQocmluZywgfihERVJSTVJfUElQ RUFfUFJJX0ZMSVBfRE9ORSB8CiAJCQkJCSAgREVSUk1SX1BJUEVCX1BSSV9GTElQX0RPTkUgfAog CQkJCQkgIERFUlJNUl9QSVBFQ19QUklfRkxJUF9ET05FKSk7Ci0JCWlmIChJU19HRU44KGRldikp CisJCWlmIChJU19HRU44KGRldl9wcml2KSkKIAkJCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9T VE9SRV9SRUdJU1RFUl9NRU1fR0VOOCB8CiAJCQkJCSAgICAgIE1JX1NSTV9MUk1fR0xPQkFMX0dU VCk7CiAJCWVsc2UKQEAgLTExOTI4LDcgKzExOTI5LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW43 X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJaW50ZWxfcmluZ19lbWl0X3Jl ZyhyaW5nLCBERVJSTVIpOwogCQlpbnRlbF9yaW5nX2VtaXQocmluZywKIAkJCQlpOTE1X2dndHRf b2Zmc2V0KHJlcS0+ZW5naW5lLT5zY3JhdGNoKSArIDI1Nik7Ci0JCWlmIChJU19HRU44KGRldikp IHsKKwkJaWYgKElTX0dFTjgoZGV2X3ByaXYpKSB7CiAJCQlpbnRlbF9yaW5nX2VtaXQocmluZywg MCk7CiAJCQlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7CiAJCX0KQEAgLTE1MzIyLDcg KzE1MzIzLDcgQEAgc3RhdGljIGJvb2wgaGFzX2VkcF9hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp CiAJaWYgKChJOTE1X1JFQUQoRFBfQSkgJiBEUF9ERVRFQ1RFRCkgPT0gMCkKIAkJcmV0dXJuIGZh bHNlOwogCi0JaWYgKElTX0dFTjUoZGV2KSAmJiAoSTkxNV9SRUFEKEZVU0VfU1RSQVApICYgSUxL X2VEUF9BX0RJU0FCTEUpKQorCWlmIChJU19HRU41KGRldl9wcml2KSAmJiAoSTkxNV9SRUFEKEZV U0VfU1RSQVApICYgSUxLX2VEUF9BX0RJU0FCTEUpKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlyZXR1 cm4gdHJ1ZTsKQEAgLTE1NTI0LDcgKzE1NTI1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBf b3V0cHV0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl9CiAKIAkJaW50ZWxfZHNpX2luaXQo ZGV2KTsKLQl9IGVsc2UgaWYgKCFJU19HRU4yKGRldikgJiYgIUlTX1BJTkVWSUVXKGRldikpIHsK Kwl9IGVsc2UgaWYgKCFJU19HRU4yKGRldl9wcml2KSAmJiAhSVNfUElORVZJRVcoZGV2X3ByaXYp KSB7CiAJCWJvb2wgZm91bmQgPSBmYWxzZTsKIAogCQlpZiAoSTkxNV9SRUFEKEdFTjNfU0RWT0Ip ICYgU0RWT19ERVRFQ1RFRCkgewpAQCAtMTU1NTgsNyArMTU1NTksNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9zZXR1cF9vdXRwdXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAkJaWYgKElTX0c0 WChkZXZfcHJpdikgJiYgKEk5MTVfUkVBRChEUF9EKSAmIERQX0RFVEVDVEVEKSkKIAkJCWludGVs X2RwX2luaXQoZGV2LCBEUF9ELCBQT1JUX0QpOwotCX0gZWxzZSBpZiAoSVNfR0VOMihkZXYpKQor CX0gZWxzZSBpZiAoSVNfR0VOMihkZXZfcHJpdikpCiAJCWludGVsX2R2b19pbml0KGRldik7CiAK IAlpZiAoU1VQUE9SVFNfVFYoZGV2KSkKQEAgLTE2MzgzLDEwICsxNjM4NCwxMCBAQCB2b2lkIGlu dGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQl9CiAJfQogCi0JaWYg KElTX0dFTjIoZGV2KSkgeworCWlmIChJU19HRU4yKGRldl9wcml2KSkgewogCQlkZXYtPm1vZGVf Y29uZmlnLm1heF93aWR0aCA9IDIwNDg7CiAJCWRldi0+bW9kZV9jb25maWcubWF4X2hlaWdodCA9 IDIwNDg7Ci0JfSBlbHNlIGlmIChJU19HRU4zKGRldikpIHsKKwl9IGVsc2UgaWYgKElTX0dFTjMo ZGV2X3ByaXYpKSB7CiAJCWRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoID0gNDA5NjsKIAkJZGV2 LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0ID0gNDA5NjsKIAl9IGVsc2UgewpAQCAtMTYzOTcsNyAr MTYzOTgsNyBAQCB2b2lkIGludGVsX21vZGVzZXRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQogCWlmIChJU184NDVHKGRldl9wcml2KSB8fCBJU19JODY1RyhkZXZfcHJpdikpIHsKIAkJZGV2 LT5tb2RlX2NvbmZpZy5jdXJzb3Jfd2lkdGggPSBJU184NDVHKGRldl9wcml2KSA/IDY0IDogNTEy OwogCQlkZXYtPm1vZGVfY29uZmlnLmN1cnNvcl9oZWlnaHQgPSAxMDIzOwotCX0gZWxzZSBpZiAo SVNfR0VOMihkZXYpKSB7CisJfSBlbHNlIGlmIChJU19HRU4yKGRldl9wcml2KSkgewogCQlkZXYt Pm1vZGVfY29uZmlnLmN1cnNvcl93aWR0aCA9IEdFTjJfQ1VSU09SX1dJRFRIOwogCQlkZXYtPm1v ZGVfY29uZmlnLmN1cnNvcl9oZWlnaHQgPSBHRU4yX0NVUlNPUl9IRUlHSFQ7CiAJfSBlbHNlIHsK QEAgLTE2OTE4LDcgKzE2OTE5LDcgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQl2bHZfd21fZ2V0X2h3X3N0YXRlKGRldik7Ci0JZWxz ZSBpZiAoSVNfR0VOOShkZXYpKQorCWVsc2UgaWYgKElTX0dFTjkoZGV2X3ByaXYpKQogCQlza2xf d21fZ2V0X2h3X3N0YXRlKGRldik7CiAJZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikp CiAJCWlsa193bV9nZXRfaHdfc3RhdGUoZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4 IGEyYzRkNWEwYjcwNC4uYmEzYWMyNjYxNjI1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAg LTE3NjcsNyArMTc2Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX3ByZXBhcmUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkvKiBTcGxpdCBvdXQgdGhlIElCWC9DUFUgdnMgQ1BU IHNldHRpbmdzICovCiAKLQlpZiAoSVNfR0VONyhkZXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7CisJ aWYgKElTX0dFTjcoZGV2X3ByaXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7CiAJCWlmIChhZGp1c3Rl ZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfUEhTWU5DKQogCQkJaW50ZWxfZHAtPkRQIHw9 IERQX1NZTkNfSFNfSElHSDsKIAkJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdzICYgRFJNX01PREVf RkxBR19QVlNZTkMpCkBAIC0yMTEzLDcgKzIxMTMsNyBAQCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxf b24oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAogCXBwX2N0cmxfcmVnID0gX3BwX2N0cmxf cmVnKGludGVsX2RwKTsKIAlwcCA9IGlyb25sYWtlX2dldF9wcF9jb250cm9sKGludGVsX2RwKTsK LQlpZiAoSVNfR0VONShkZXYpKSB7CisJaWYgKElTX0dFTjUoZGV2X3ByaXYpKSB7CiAJCS8qIElM SyB3b3JrYXJvdW5kOiBkaXNhYmxlIHJlc2V0IGFyb3VuZCBwb3dlciBzZXF1ZW5jZSAqLwogCQlw cCAmPSB+UEFORUxfUE9XRVJfUkVTRVQ7CiAJCUk5MTVfV1JJVEUocHBfY3RybF9yZWcsIHBwKTsK QEAgLTIxMjEsNyArMjEyMSw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF9vbihzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQogCX0KIAogCXBwIHw9IFBBTkVMX1BPV0VSX09OOwotCWlmICghSVNf R0VONShkZXYpKQorCWlmICghSVNfR0VONShkZXZfcHJpdikpCiAJCXBwIHw9IFBBTkVMX1BPV0VS X1JFU0VUOwogCiAJSTkxNV9XUklURShwcF9jdHJsX3JlZywgcHApOwpAQCAtMjEzMCw3ICsyMTMw LDcgQEAgc3RhdGljIHZvaWQgZWRwX3BhbmVsX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp CiAJd2FpdF9wYW5lbF9vbihpbnRlbF9kcCk7CiAJaW50ZWxfZHAtPmxhc3RfcG93ZXJfb24gPSBq aWZmaWVzOwogCi0JaWYgKElTX0dFTjUoZGV2KSkgeworCWlmIChJU19HRU41KGRldl9wcml2KSkg ewogCQlwcCB8PSBQQU5FTF9QT1dFUl9SRVNFVDsgLyogcmVzdG9yZSBwYW5lbCByZXNldCBiaXQg Ki8KIAkJSTkxNV9XUklURShwcF9jdHJsX3JlZywgcHApOwogCQlQT1NUSU5HX1JFQUQocHBfY3Ry bF9yZWcpOwpAQCAtMjQ0Myw3ICsyNDQzLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfZ2V0X2h3 X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCWlmICghKHRtcCAmIERQX1BP UlRfRU4pKQogCQlnb3RvIG91dDsKIAotCWlmIChJU19HRU43KGRldikgJiYgcG9ydCA9PSBQT1JU X0EpIHsKKwlpZiAoSVNfR0VONyhkZXZfcHJpdikgJiYgcG9ydCA9PSBQT1JUX0EpIHsKIAkJKnBp cGUgPSBQT1JUX1RPX1BJUEVfQ1BUKHRtcCk7CiAJfSBlbHNlIGlmIChIQVNfUENIX0NQVChkZXZf cHJpdikgJiYgcG9ydCAhPSBQT1JUX0EpIHsKIAkJZW51bSBwaXBlIHA7CkBAIC0yNjYxLDcgKzI2 NjEsNyBAQCBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKIAkJfQogCQlJOTE1X1dSSVRFKERQX1RQX0NUTChwb3J0KSwgdGVtcCk7CiAKLQl9IGVsc2Ug aWYgKChJU19HRU43KGRldikgJiYgcG9ydCA9PSBQT1JUX0EpIHx8CisJfSBlbHNlIGlmICgoSVNf R0VONyhkZXZfcHJpdikgJiYgcG9ydCA9PSBQT1JUX0EpIHx8CiAJCSAgIChIQVNfUENIX0NQVChk ZXZfcHJpdikgJiYgcG9ydCAhPSBQT1JUX0EpKSB7CiAJCSpEUCAmPSB+RFBfTElOS19UUkFJTl9N QVNLX0NQVDsKIApAQCAtMjk5MCw3ICsyOTkwLDcgQEAgaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdf TEVWRUxfMjsKIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKQogCQlyZXR1cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8z OwotCWVsc2UgaWYgKElTX0dFTjcoZGV2KSAmJiBwb3J0ID09IFBPUlRfQSkKKwllbHNlIGlmIChJ U19HRU43KGRldl9wcml2KSAmJiBwb3J0ID09IFBPUlRfQSkKIAkJcmV0dXJuIERQX1RSQUlOX1ZP TFRBR0VfU1dJTkdfTEVWRUxfMjsKIAllbHNlIGlmIChIQVNfUENIX0NQVChkZXZfcHJpdikgJiYg cG9ydCAhPSBQT1JUX0EpCiAJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzM7 CkBAIC0zMzUzLDEwICszMzUzLDEwIEBAIGludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCiAJCXNpZ25hbF9sZXZlbHMgPSBjaHZfc2lnbmFsX2xldmVs cyhpbnRlbF9kcCk7CiAJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSkgewogCQlz aWduYWxfbGV2ZWxzID0gdmx2X3NpZ25hbF9sZXZlbHMoaW50ZWxfZHApOwotCX0gZWxzZSBpZiAo SVNfR0VONyhkZXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7CisJfSBlbHNlIGlmIChJU19HRU43KGRl dl9wcml2KSAmJiBwb3J0ID09IFBPUlRfQSkgewogCQlzaWduYWxfbGV2ZWxzID0gZ2VuN19lZHBf c2lnbmFsX2xldmVscyh0cmFpbl9zZXQpOwogCQltYXNrID0gRURQX0xJTktfVFJBSU5fVk9MX0VN UF9NQVNLX0lWQjsKLQl9IGVsc2UgaWYgKElTX0dFTjYoZGV2KSAmJiBwb3J0ID09IFBPUlRfQSkg eworCX0gZWxzZSBpZiAoSVNfR0VONihkZXZfcHJpdikgJiYgcG9ydCA9PSBQT1JUX0EpIHsKIAkJ c2lnbmFsX2xldmVscyA9IGdlbjZfZWRwX3NpZ25hbF9sZXZlbHModHJhaW5fc2V0KTsKIAkJbWFz ayA9IEVEUF9MSU5LX1RSQUlOX1ZPTF9FTVBfTUFTS19TTkI7CiAJfSBlbHNlIHsKQEAgLTM0NDQs NyArMzQ0NCw3IEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQogCiAJRFJNX0RFQlVHX0tNUygiXG4iKTsKIAotCWlmICgoSVNfR0VONyhkZXYpICYmIHBvcnQg PT0gUE9SVF9BKSB8fAorCWlmICgoSVNfR0VONyhkZXZfcHJpdikgJiYgcG9ydCA9PSBQT1JUX0Ep IHx8CiAJICAgIChIQVNfUENIX0NQVChkZXZfcHJpdikgJiYgcG9ydCAhPSBQT1JUX0EpKSB7CiAJ CURQICY9IH5EUF9MSU5LX1RSQUlOX01BU0tfQ1BUOwogCQlEUCB8PSBEUF9MSU5LX1RSQUlOX1BB VF9JRExFX0NQVDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggZjQ4ZTc5YWUyYWM2Li45 ZjU3MTc3MGMxZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0xNzIyLDcgKzE3MjIs NyBAQCBib29sIGNodl9waHlfcG93ZXJnYXRlX2NoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgZW51bSBkcGlvX3BoeSBwaHksCiAvKiBpbnRlbF9wbS5jICovCiB2b2lkIGludGVs X2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9z dXNwZW5kX2h3KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwotaW50IGlsa193bV9tYXhfbGV2ZWwo Y29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitpbnQgaWxrX3dtX21heF9sZXZlbChjb25z dCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF91cGRhdGVf d2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogdm9pZCBpbnRlbF9pbml0X3BtKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogdm9pZCBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZ19ob29r cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCmluZGV4IDA3Njg5M2NjMzg5MC4uMzAxOGY0ZjU4OWM4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmlmb191bmRlcnJ1bi5jCkBAIC0yNTYs MTEgKzI1NiwxMSBAQCBzdGF0aWMgYm9vbCBfX2ludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9y ZXBvcnRpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogCWlmIChIQVNfR01DSF9ESVNQTEFZ KGRldl9wcml2KSkKIAkJaTl4eF9zZXRfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2LCBwaXBl LCBlbmFibGUsIG9sZCk7Ci0JZWxzZSBpZiAoSVNfR0VONShkZXYpIHx8IElTX0dFTjYoZGV2KSkK KwllbHNlIGlmIChJU19HRU41KGRldl9wcml2KSB8fCBJU19HRU42KGRldl9wcml2KSkKIAkJaXJv bmxha2Vfc2V0X2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldiwgcGlwZSwgZW5hYmxlKTsKLQll bHNlIGlmIChJU19HRU43KGRldikpCisJZWxzZSBpZiAoSVNfR0VONyhkZXZfcHJpdikpCiAJCWl2 eWJyaWRnZV9zZXRfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2LCBwaXBlLCBlbmFibGUsIG9s ZCk7Ci0JZWxzZSBpZiAoSVNfR0VOOChkZXYpIHx8IElTX0dFTjkoZGV2KSkKKwllbHNlIGlmIChJ U19HRU44KGRldl9wcml2KSB8fCBJU19HRU45KGRldl9wcml2KSkKIAkJYnJvYWR3ZWxsX3NldF9m aWZvX3VuZGVycnVuX3JlcG9ydGluZyhkZXYsIHBpcGUsIGVuYWJsZSk7CiAKIAlyZXR1cm4gb2xk OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4IDVkNWQ2MDllZDVl OS4uY2M3ZGYwYzU3OTgyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9n dWNfbG9hZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5j CkBAIC0zNDcsNyArMzQ3LDYgQEAgc3RhdGljIHUzMiBndWNfd29wY21fc2l6ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlzdHJ1Y3QgaW50ZWxfZ3VjX2Z3ICpn dWNfZncgPSAmZGV2X3ByaXYtPmd1Yy5ndWNfZnc7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 ICZkZXZfcHJpdi0+ZHJtOwogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCWludCByZXQ7CiAKQEAg LTM5MCw3ICszODksNyBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAllbHNlCiAJCUk5MTVfV1JJVEUoR0VOOV9HVF9QTV9DT05G SUcsIEdUX0RPT1JCRUxMX0VOQUJMRSk7CiAKLQlpZiAoSVNfR0VOOShkZXYpKSB7CisJaWYgKElT X0dFTjkoZGV2X3ByaXYpKSB7CiAJCS8qIERPUCBDbG9jayBHYXRpbmcgRW5hYmxlIGZvciBHdUMg Y2xvY2tzICovCiAJCUk5MTVfV1JJVEUoR0VON19NSVNDQ1BDVEwsIChHRU44X0RPUF9DTE9DS19H QVRFX0dVQ19FTkFCTEUgfAogCQkJCQkgICAgSTkxNV9SRUFEKEdFTjdfTUlTQ0NQQ1RMKSkpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCmluZGV4IDFjNDdmOTk5MTdlNi4uMTk5YjkwYzc5MDdh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCkBAIC0xMDcxLDcgKzEwNzEsNyBAQCB2b2lk IGludGVsX2x2ZHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWludGVsX2VuY29kZXIt PmNsb25lYWJsZSA9IDA7CiAJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKQogCQlpbnRlbF9l bmNvZGVyLT5jcnRjX21hc2sgPSAoMSA8PCAwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMik7Ci0JZWxz ZSBpZiAoSVNfR0VONChkZXYpKQorCWVsc2UgaWYgKElTX0dFTjQoZGV2X3ByaXYpKQogCQlpbnRl bF9lbmNvZGVyLT5jcnRjX21hc2sgPSAoMSA8PCAwKSB8ICgxIDw8IDEpOwogCWVsc2UKIAkJaW50 ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID0gKDEgPDwgMSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwpp bmRleCA5YmFmZmFlNGY5ZjguLmQ5ZWIxMGYyYmI3OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CkBAIC0xNTMwLDcgKzE1MzAsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3Qg ZHJtX2NydGMgKnVudXNlZF9jcnRjKQogCiAJaWYgKElTX0k5NDVHTShkZXYpKQogCQl3bV9pbmZv ID0gJmk5NDVfd21faW5mbzsKLQllbHNlIGlmICghSVNfR0VOMihkZXYpKQorCWVsc2UgaWYgKCFJ U19HRU4yKGRldl9wcml2KSkKIAkJd21faW5mbyA9ICZpOTE1X3dtX2luZm87CiAJZWxzZQogCQl3 bV9pbmZvID0gJmk4MzBfYV93bV9pbmZvOwpAQCAtMTU0MCw3ICsxNTQwLDcgQEAgc3RhdGljIHZv aWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKIAlpZiAoaW50 ZWxfY3J0Y19hY3RpdmUoY3J0YykpIHsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KmFkanVzdGVkX21vZGU7CiAJCWludCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChjcnRjLT5w cmltYXJ5LT5zdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCwgMCk7Ci0JCWlmIChJU19HRU4yKGRldikp CisJCWlmIChJU19HRU4yKGRldl9wcml2KSkKIAkJCWNwcCA9IDQ7CiAKIAkJYWRqdXN0ZWRfbW9k ZSA9ICZ0b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKQEAg LTE1NTQsNyArMTU1NCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBkcm1f Y3J0YyAqdW51c2VkX2NydGMpCiAJCQlwbGFuZWFfd20gPSB3bV9pbmZvLT5tYXhfd207CiAJfQog Ci0JaWYgKElTX0dFTjIoZGV2KSkKKwlpZiAoSVNfR0VOMihkZXZfcHJpdikpCiAJCXdtX2luZm8g PSAmaTgzMF9iY193bV9pbmZvOwogCiAJZmlmb19zaXplID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0 X2ZpZm9fc2l6ZShkZXYsIDEpOwpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgc3RhdGljIHZvaWQgaTl4 eF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICp1bnVzZWRfY3J0YykKIAlpZiAoaW50ZWxfY3J0 Y19hY3RpdmUoY3J0YykpIHsKIAkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGU7CiAJCWludCBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChjcnRjLT5wcmltYXJ5 LT5zdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCwgMCk7Ci0JCWlmIChJU19HRU4yKGRldikpCisJCWlm IChJU19HRU4yKGRldl9wcml2KSkKIAkJCWNwcCA9IDQ7CiAKIAkJYWRqdXN0ZWRfbW9kZSA9ICZ0 b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKQEAgLTIwODIs MTAgKzIwODIsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfcmVhZF93bV9sYXRlbmN5KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVpbnQxNl90IHdtWzhdKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAotCWlmIChJU19HRU45KGRldikpIHsKKwlp ZiAoSVNfR0VOOShkZXZfcHJpdikpIHsKIAkJdWludDMyX3QgdmFsOwogCQlpbnQgcmV0LCBpOwot CQlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2KTsKKwkJaW50IGxl dmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsKIAogCQkvKiByZWFk IHRoZSBmaXJzdCBzZXQgb2YgbWVtb3J5IGxhdGVuY2llc1swOjNdICovCiAJCXZhbCA9IDA7IC8q IGRhdGEwIHRvIGJlIHByb2dyYW1tZWQgdG8gMCBmb3IgZmlyc3Qgc2V0ICovCkBAIC0yMTg0LDEw ICsyMTg0LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX3JlYWRfd21fbGF0ZW5jeShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1aW50MTZfdCB3bVs4XSkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGludGVs X2ZpeHVwX3Nwcl93bV9sYXRlbmN5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQxNl90IHdt WzVdKQorc3RhdGljIHZvaWQgaW50ZWxfZml4dXBfc3ByX3dtX2xhdGVuY3koc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgICAgICB1aW50MTZfdCB3bVs1XSkKIHsKIAkv KiBJTEsgc3ByaXRlIExQMCBsYXRlbmN5IGlzIDEzMDAgbnMgKi8KLQlpZiAoSVNfR0VONShkZXYp KQorCWlmIChJU19HRU41KGRldl9wcml2KSkKIAkJd21bMF0gPSAxMzsKIH0KIApAQCAtMjIwMywx MCArMjIwNCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZpeHVwX2N1cl93bV9sYXRlbmN5KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJd21bM10gKj0gMjsKIH0KIAotaW50IGls a193bV9tYXhfbGV2ZWwoY29uc3Qgc3RydWN0IGRybV9kZXZpY2UgKmRldikKK2ludCBpbGtfd21f bWF4X2xldmVsKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0KIAkvKiBo b3cgbWFueSBXTSBsZXZlbHMgYXJlIHdlIGV4cGVjdGluZyAqLwogCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDkpCiAJCXJldHVybiA3OwpAQCAtMjIxOCwxMSArMjIxNywxMSBAQCBpbnQgaWxr X3dtX21heF9sZXZlbChjb25zdCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlyZXR1cm4gMjsK IH0KIAotc3RhdGljIHZvaWQgaW50ZWxfcHJpbnRfd21fbGF0ZW5jeShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAorc3RhdGljIHZvaWQgaW50ZWxfcHJpbnRfd21fbGF0ZW5jeShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkgICBj b25zdCB1aW50MTZfdCB3bVs4XSkKIHsKLQlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9t YXhfbGV2ZWwoZGV2KTsKKwlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwo ZGV2X3ByaXYpOwogCiAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwr KykgewogCQl1bnNpZ25lZCBpbnQgbGF0ZW5jeSA9IHdtW2xldmVsXTsKQEAgLTIyMzcsNyArMjIz Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByaW50X3dtX2xhdGVuY3koc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAkJICogLSBsYXRlbmNpZXMgYXJlIGluIHVzIG9uIGdlbjkuCiAJCSAqIC0gYmVm b3JlIHRoZW4sIFdNMSsgbGF0ZW5jeSB2YWx1ZXMgYXJlIGluIDAuNXVzIHVuaXRzCiAJCSAqLwot CQlpZiAoSVNfR0VOOShkZXYpKQorCQlpZiAoSVNfR0VOOShkZXZfcHJpdikpCiAJCQlsYXRlbmN5 ICo9IDEwOwogCQllbHNlIGlmIChsZXZlbCA+IDApCiAJCQlsYXRlbmN5ICo9IDU7CkBAIC0yMjUx LDcgKzIyNTAsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmludF93bV9sYXRlbmN5KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiBzdGF0aWMgYm9vbCBpbGtfaW5jcmVhc2Vfd21fbGF0ZW5jeShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgIHVpbnQxNl90IHdtWzVdLCB1 aW50MTZfdCBtaW4pCiB7Ci0JaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVs KCZkZXZfcHJpdi0+ZHJtKTsKKwlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2 ZWwoZGV2X3ByaXYpOwogCiAJaWYgKHdtWzBdID49IG1pbikKIAkJcmV0dXJuIGZhbHNlOwpAQCAt MjI4MCw5ICsyMjc5LDkgQEAgc3RhdGljIHZvaWQgc25iX3dtX2xhdGVuY3lfcXVpcmsoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAkJcmV0dXJuOwogCiAJRFJNX0RFQlVHX0tNUygiV00gbGF0ZW5j eSB2YWx1ZXMgaW5jcmVhc2VkIHRvIGF2b2lkIHBvdGVudGlhbCB1bmRlcnJ1bnNcbiIpOwotCWlu dGVsX3ByaW50X3dtX2xhdGVuY3koZGV2LCAiUHJpbWFyeSIsIGRldl9wcml2LT53bS5wcmlfbGF0 ZW5jeSk7Ci0JaW50ZWxfcHJpbnRfd21fbGF0ZW5jeShkZXYsICJTcHJpdGUiLCBkZXZfcHJpdi0+ d20uc3ByX2xhdGVuY3kpOwotCWludGVsX3ByaW50X3dtX2xhdGVuY3koZGV2LCAiQ3Vyc29yIiwg ZGV2X3ByaXYtPndtLmN1cl9sYXRlbmN5KTsKKwlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldl9w cml2LCAiUHJpbWFyeSIsIGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeSk7CisJaW50ZWxfcHJpbnRf d21fbGF0ZW5jeShkZXZfcHJpdiwgIlNwcml0ZSIsIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeSk7 CisJaW50ZWxfcHJpbnRfd21fbGF0ZW5jeShkZXZfcHJpdiwgIkN1cnNvciIsIGRldl9wcml2LT53 bS5jdXJfbGF0ZW5jeSk7CiB9CiAKIHN0YXRpYyB2b2lkIGlsa19zZXR1cF93bV9sYXRlbmN5KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCkBAIC0yMjk2LDE0ICsyMjk1LDE0IEBAIHN0YXRpYyB2b2lk IGlsa19zZXR1cF93bV9sYXRlbmN5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJbWVtY3B5KGRl dl9wcml2LT53bS5jdXJfbGF0ZW5jeSwgZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5LAogCSAgICAg ICBzaXplb2YoZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5KSk7CiAKLQlpbnRlbF9maXh1cF9zcHJf d21fbGF0ZW5jeShkZXYsIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeSk7CisJaW50ZWxfZml4dXBf c3ByX3dtX2xhdGVuY3koZGV2X3ByaXYsIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeSk7CiAJaW50 ZWxfZml4dXBfY3VyX3dtX2xhdGVuY3koZGV2X3ByaXYsIGRldl9wcml2LT53bS5jdXJfbGF0ZW5j eSk7CiAKLQlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldiwgIlByaW1hcnkiLCBkZXZfcHJpdi0+ d20ucHJpX2xhdGVuY3kpOwotCWludGVsX3ByaW50X3dtX2xhdGVuY3koZGV2LCAiU3ByaXRlIiwg ZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5KTsKLQlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldiwg IkN1cnNvciIsIGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeSk7CisJaW50ZWxfcHJpbnRfd21fbGF0 ZW5jeShkZXZfcHJpdiwgIlByaW1hcnkiLCBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3kpOworCWlu dGVsX3ByaW50X3dtX2xhdGVuY3koZGV2X3ByaXYsICJTcHJpdGUiLCBkZXZfcHJpdi0+d20uc3By X2xhdGVuY3kpOworCWludGVsX3ByaW50X3dtX2xhdGVuY3koZGV2X3ByaXYsICJDdXJzb3IiLCBk ZXZfcHJpdi0+d20uY3VyX2xhdGVuY3kpOwogCi0JaWYgKElTX0dFTjYoZGV2KSkKKwlpZiAoSVNf R0VONihkZXZfcHJpdikpCiAJCXNuYl93bV9sYXRlbmN5X3F1aXJrKGRldik7CiB9CiAKQEAgLTIz MTIsNyArMjMxMSw3IEBAIHN0YXRpYyB2b2lkIHNrbF9zZXR1cF93bV9sYXRlbmN5KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkZXYpOwogCiAJaW50ZWxfcmVhZF93bV9sYXRlbmN5KGRldiwgZGV2X3ByaXYtPndtLnNr bF9sYXRlbmN5KTsKLQlpbnRlbF9wcmludF93bV9sYXRlbmN5KGRldiwgIkdlbjkgUGxhbmUiLCBk ZXZfcHJpdi0+d20uc2tsX2xhdGVuY3kpOworCWludGVsX3ByaW50X3dtX2xhdGVuY3koZGV2X3By aXYsICJHZW45IFBsYW5lIiwgZGV2X3ByaXYtPndtLnNrbF9sYXRlbmN5KTsKIH0KIAogc3RhdGlj IGJvb2wgaWxrX3ZhbGlkYXRlX3BpcGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTIz NTAsNyArMjM0OSw3IEBAIHN0YXRpYyBpbnQgaWxrX2NvbXB1dGVfcGlwZV93bShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcHJpc3Rh dGUgPSBOVUxMOwogCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3Byc3RhdGUgPSBOVUxMOwog CXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqY3Vyc3RhdGUgPSBOVUxMOwotCWludCBsZXZlbCwg bWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpLCB1c2FibGVfbGV2ZWw7CisJaW50IGxl dmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KSwgdXNhYmxlX2xldmVs OwogCXN0cnVjdCBpbGtfd21fbWF4aW11bXMgbWF4OwogCiAJcGlwZV93bSA9ICZjc3RhdGUtPndt Lmlsay5vcHRpbWFsOwpAQCAtMjQzNyw3ICsyNDM2LDcgQEAgc3RhdGljIGludCBpbGtfY29tcHV0 ZV9pbnRlcm1lZGlhdGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIHsKIAlzdHJ1Y3QgaW50 ZWxfcGlwZV93bSAqYSA9ICZuZXdzdGF0ZS0+d20uaWxrLmludGVybWVkaWF0ZTsKIAlzdHJ1Y3Qg aW50ZWxfcGlwZV93bSAqYiA9ICZpbnRlbF9jcnRjLT53bS5hY3RpdmUuaWxrOwotCWludCBsZXZl bCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCWludCBsZXZlbCwgbWF4X2xl dmVsID0gaWxrX3dtX21heF9sZXZlbCh0b19pOTE1KGRldikpOwogCiAJLyoKIAkgKiBTdGFydCB3 aXRoIHRoZSBmaW5hbCwgdGFyZ2V0IHdhdGVybWFya3MsIHRoZW4gY29tYmluZSB3aXRoIHRoZQpA QCAtMjUyMSw3ICsyNTIwLDcgQEAgc3RhdGljIHZvaWQgaWxrX3dtX21lcmdlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJCQkgc3RydWN0IGludGVsX3BpcGVfd20gKm1lcmdlZCkKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Ci0JaW50IGxldmVs LCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldik7CisJaW50IGxldmVsLCBtYXhfbGV2 ZWwgPSBpbGtfd21fbWF4X2xldmVsKGRldl9wcml2KTsKIAlpbnQgbGFzdF9lbmFibGVkX2xldmVs ID0gbWF4X2xldmVsOwogCiAJLyogSUxLL1NOQi9JVkI6IExQMSsgd2F0ZXJtYXJrcyBvbmx5IHcv IHNpbmdsZSBwaXBlICovCkBAIC0yNTYxLDcgKzI1NjAsNyBAQCBzdGF0aWMgdm9pZCBpbGtfd21f bWVyZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkgKiBXaGF0IHdlIHNob3VsZCBjaGVjayBo ZXJlIGlzIHdoZXRoZXIgRkJDIGNhbiBiZQogCSAqIGVuYWJsZWQgc29tZXRpbWUgbGF0ZXIuCiAJ ICovCi0JaWYgKElTX0dFTjUoZGV2KSAmJiAhbWVyZ2VkLT5mYmNfd21fZW5hYmxlZCAmJgorCWlm IChJU19HRU41KGRldl9wcml2KSAmJiAhbWVyZ2VkLT5mYmNfd21fZW5hYmxlZCAmJgogCSAgICBp bnRlbF9mYmNfaXNfYWN0aXZlKGRldl9wcml2KSkgewogCQlmb3IgKGxldmVsID0gMjsgbGV2ZWwg PD0gbWF4X2xldmVsOyBsZXZlbCsrKSB7CiAJCQlzdHJ1Y3QgaW50ZWxfd21fbGV2ZWwgKndtID0g Jm1lcmdlZC0+d21bbGV2ZWxdOwpAQCAtMjY2MSw3ICsyNjYwLDcgQEAgc3RhdGljIHN0cnVjdCBp bnRlbF9waXBlX3dtICppbGtfZmluZF9iZXN0X3Jlc3VsdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJCQkJICBzdHJ1Y3QgaW50ZWxfcGlwZV93bSAqcjEsCiAJCQkJCQkgIHN0cnVjdCBpbnRl bF9waXBlX3dtICpyMikKIHsKLQlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2 ZWwoZGV2KTsKKwlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwodG9faTkx NShkZXYpKTsKIAlpbnQgbGV2ZWwxID0gMCwgbGV2ZWwyID0gMDsKIAogCWZvciAobGV2ZWwgPSAx OyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKQEAgLTMwMzUsNyArMzAzNCw3IEBAIGJv b2wgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK IAkJCWNvbnRpbnVlOwogCiAJCS8qIEZpbmQgdGhlIGhpZ2hlc3QgZW5hYmxlZCB3bSBsZXZlbCBm b3IgdGhpcyBwbGFuZSAqLwotCQlmb3IgKGxldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOwor CQlmb3IgKGxldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJCSAgICAgaW50ZWxf c3RhdGUtPndtX3Jlc3VsdHMucGxhbmVbcGlwZV1bcGxhbmVdW2xldmVsXSA9PSAwOyAtLWxldmVs KQogCQkgICAgIHsgfQogCkBAIC0zNzc2LDcgKzM3NzUsNyBAQCBzdGF0aWMgaW50IHNrbF9idWls ZF9waXBlX3dtKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCiB7CiAJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNzdGF0ZS0+YmFzZS5jcnRjLT5kZXY7CiAJY29uc3Qgc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwotCWludCBsZXZlbCwgbWF4 X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCWludCBsZXZlbCwgbWF4X2xldmVsID0g aWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJaW50IHJldDsKIAogCWZvciAobGV2ZWwgPSAw OyBsZXZlbCA8PSBtYXhfbGV2ZWw7IGxldmVsKyspIHsKQEAgLTM3OTcsNyArMzc5Niw3IEBAIHN0 YXRpYyB2b2lkIHNrbF9jb21wdXRlX3dtX3Jlc3VsdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAkJCQkgICBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqciwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YykKIHsKLQlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2 ZWwoZGV2KTsKKwlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwodG9faTkx NShkZXYpKTsKIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdWludDMyX3Qg dGVtcDsKIAlpbnQgaTsKQEAgLTM4NjYsNyArMzg2NSw3IEBAIHZvaWQgc2tsX3dyaXRlX3BsYW5l X3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCXN0cnVjdCBkcm1fY3J0YyAqY3J0 YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5k ZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwot CWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCWludCBsZXZl bCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJZW51bSBwaXBlIHBp cGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1heF9s ZXZlbDsgbGV2ZWwrKykgewpAQCAtMzg4Nyw3ICszODg2LDcgQEAgdm9pZCBza2xfd3JpdGVfY3Vy c29yX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAogCXN0cnVjdCBkcm1fY3J0YyAq Y3J0YyA9ICZpbnRlbF9jcnRjLT5iYXNlOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRj LT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYp OwotCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXYpOworCWludCBs ZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChkZXZfcHJpdik7CiAJZW51bSBwaXBl IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJZm9yIChsZXZlbCA9IDA7IGxldmVsIDw9IG1h eF9sZXZlbDsgbGV2ZWwrKykgewpAQCAtNDMzMSw3ICs0MzMwLDcgQEAgc3RhdGljIHZvaWQgc2ts X3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlpbnQgbGV2ZWws IGksIG1heF9sZXZlbDsKIAl1aW50MzJfdCB0ZW1wOwogCi0JbWF4X2xldmVsID0gaWxrX3dtX21h eF9sZXZlbChkZXYpOworCW1heF9sZXZlbCA9IGlsa193bV9tYXhfbGV2ZWwoZGV2X3ByaXYpOwog CiAJaHctPndtX2xpbmV0aW1lW3BpcGVdID0gSTkxNV9SRUFEKFBJUEVfV01fTElORVRJTUUocGlw ZSkpOwogCkBAIC00NDMxLDcgKzQ0MzAsNyBAQCBzdGF0aWMgdm9pZCBpbGtfcGlwZV93bV9nZXRf aHdfc3RhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCQlhY3RpdmUtPndtWzBdLmN1cl92YWwg PSB0bXAgJiBXTTBfUElQRV9DVVJTT1JfTUFTSzsKIAkJYWN0aXZlLT5saW5ldGltZSA9IGh3LT53 bV9saW5ldGltZVtwaXBlXTsKIAl9IGVsc2UgewotCQlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGls a193bV9tYXhfbGV2ZWwoZGV2KTsKKwkJaW50IGxldmVsLCBtYXhfbGV2ZWwgPSBpbGtfd21fbWF4 X2xldmVsKGRldl9wcml2KTsKIAogCQkvKgogCQkgKiBGb3IgaW5hY3RpdmUgcGlwZXMsIGFsbCB3 YXRlcm1hcmsgbGV2ZWxzCkBAIC03NzI5LDcgKzc3MjgsNyBAQCB2b2lkIGludGVsX2luaXRfcG0o c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkvKiBGb3IgY3hzciAqLwogCWlmIChJU19QSU5FVklF VyhkZXYpKQogCQlpOTE1X3BpbmV2aWV3X2dldF9tZW1fZnJlcShkZXYpOwotCWVsc2UgaWYgKElT X0dFTjUoZGV2KSkKKwllbHNlIGlmIChJU19HRU41KGRldl9wcml2KSkKIAkJaTkxNV9pcm9ubGFr ZV9nZXRfbWVtX2ZyZXEoZGV2KTsKIAogCS8qIEZvciBGSUZPIHdhdGVybWFyayB1cGRhdGVzICov CkBAIC03NzQwLDkgKzc3MzksOSBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpKSB7CiAJCWlsa19z ZXR1cF93bV9sYXRlbmN5KGRldik7CiAKLQkJaWYgKChJU19HRU41KGRldikgJiYgZGV2X3ByaXYt PndtLnByaV9sYXRlbmN5WzFdICYmCisJCWlmICgoSVNfR0VONShkZXZfcHJpdikgJiYgZGV2X3By aXYtPndtLnByaV9sYXRlbmN5WzFdICYmCiAJCSAgICAgZGV2X3ByaXYtPndtLnNwcl9sYXRlbmN5 WzFdICYmIGRldl9wcml2LT53bS5jdXJfbGF0ZW5jeVsxXSkgfHwKLQkJICAgICghSVNfR0VONShk ZXYpICYmIGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVswXSAmJgorCQkgICAgKCFJU19HRU41KGRl dl9wcml2KSAmJiBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbMF0gJiYKIAkJICAgICBkZXZfcHJp di0+d20uc3ByX2xhdGVuY3lbMF0gJiYgZGV2X3ByaXYtPndtLmN1cl9sYXRlbmN5WzBdKSkgewog CQkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9waXBlX3dtID0gaWxrX2NvbXB1dGVfcGlwZV93 bTsKIAkJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfaW50ZXJtZWRpYXRlX3dtID0KQEAgLTc3 NzgsMTIgKzc3NzcsMTIgQEAgdm9pZCBpbnRlbF9pbml0X3BtKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCiAJCQlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfd20gPSBwaW5ldmlld191cGRhdGVfd207 CiAJfSBlbHNlIGlmIChJU19HNFgoZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5kaXNwbGF5LnVw ZGF0ZV93bSA9IGc0eF91cGRhdGVfd207Ci0JfSBlbHNlIGlmIChJU19HRU40KGRldikpIHsKKwl9 IGVsc2UgaWYgKElTX0dFTjQoZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0 ZV93bSA9IGk5NjVfdXBkYXRlX3dtOwotCX0gZWxzZSBpZiAoSVNfR0VOMyhkZXYpKSB7CisJfSBl bHNlIGlmIChJU19HRU4zKGRldl9wcml2KSkgewogCQlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVf d20gPSBpOXh4X3VwZGF0ZV93bTsKIAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2ZpZm9fc2l6ZSA9 IGk5eHhfZ2V0X2ZpZm9fc2l6ZTsKLQl9IGVsc2UgaWYgKElTX0dFTjIoZGV2KSkgeworCX0gZWxz ZSBpZiAoSVNfR0VOMihkZXZfcHJpdikpIHsKIAkJaWYgKElOVEVMX0lORk8oZGV2KS0+bnVtX3Bp cGVzID09IDEpIHsKIAkJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93bSA9IGk4NDVfdXBkYXRl X3dtOwogCQkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2ZpZm9fc2l6ZSA9IGk4NDVfZ2V0X2ZpZm9f c2l6ZTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggOGI0NzQ4ODM5YzA3Li5j N2Q5YTIwZTM3MGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCkBAIC02ODAsNyAr NjgwLDcgQEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlpZiAo ZmItPm1vZGlmaWVyWzBdID09IEk5MTVfRk9STUFUX01PRF9YX1RJTEVEKQogCQlkdnNjbnRyIHw9 IERWU19USUxFRDsKIAotCWlmIChJU19HRU42KGRldikpCisJaWYgKElTX0dFTjYoZGV2X3ByaXYp KQogCQlkdnNjbnRyIHw9IERWU19UUklDS0xFX0ZFRURfRElTQUJMRTsgLyogbXVzdCBkaXNhYmxl ICovCiAKIAkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLwpAQCAtMTA3NSw3ICsxMDc1LDcgQEAgaW50 ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50 IHBsYW5lKQogCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gaWxrX3VwZGF0ZV9wbGFuZTsK IAkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSBpbGtfZGlzYWJsZV9wbGFuZTsKIAotCQlp ZiAoSVNfR0VONihkZXYpKSB7CisJCWlmIChJU19HRU42KGRldl9wcml2KSkgewogCQkJcGxhbmVf Zm9ybWF0cyA9IHNuYl9wbGFuZV9mb3JtYXRzOwogCQkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJB WV9TSVpFKHNuYl9wbGFuZV9mb3JtYXRzKTsKIAkJfSBlbHNlIHsKLS0gCjIuNy40CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK