From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH 13/19] drm/i915: Make IS_BROXTON only take dev_priv Date: Tue, 11 Oct 2016 14:21:46 +0100 Message-ID: <1476192112-25336-14-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-qk0-x243.google.com (mail-qk0-x243.google.com [IPv6:2607:f8b0:400d:c09::243]) by gabe.freedesktop.org (Postfix) with ESMTPS id 736116E673 for ; Tue, 11 Oct 2016 13:22:21 +0000 (UTC) Received: by mail-qk0-x243.google.com with SMTP id n189so1385654qke.1 for ; Tue, 11 Oct 2016 06:22:21 -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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClNhdmVzIDEz OTIgYnl0ZXMgb2YgLnJvZGF0YSBzdHJpbmdzLgoKdjI6IEFkZCBwYXJhbnRoZXNlcyBhcm91bmQg ZGV2X3ByaXYuIChWaWxsZSBTeXJqYWxhKQoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4g PHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAg ICAgICAgIHwgIDUgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAg ICB8IDQwICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYyAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RkaS5jICAgICAgICB8ICA0ICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyAgICB8IDMxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgICAgICAgICB8IDE2ICsrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2kuYyAgICAgICAgfCAyNyArKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMgICAgfCAyNiArKysrKysrKysrLS0tLS0tLS0t LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyB8ICA4ICsrKy0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICAgICB8ICA2ICsrLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ydW50aW1lX3BtLmMgfCAgMiArLQogMTMgZmlsZXMgY2hh bmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKaW5kZXggZDg1NGVhNGE3ZTkyLi4xOGFmNmQxY2NlYzkgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuYwpAQCAtMjQzNyw3ICsyNDM3LDcgQEAgc3RhdGljIGludCBpbnRlbF9ydW50aW1lX3Jl c3VtZShzdHJ1Y3QgZGV2aWNlICprZGV2KQogCWlmIChJU19HRU42KGRldl9wcml2KSkKIAkJaW50 ZWxfaW5pdF9wY2hfcmVmY2xrKGRldik7CiAKLQlpZiAoSVNfQlJPWFRPTihkZXYpKSB7CisJaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCWJ4dF9kaXNhYmxlX2RjOShkZXZfcHJpdik7CiAJ CWJ4dF9kaXNwbGF5X2NvcmVfaW5pdChkZXZfcHJpdiwgdHJ1ZSk7CiAJCWlmIChkZXZfcHJpdi0+ Y3NyLmRtY19wYXlsb2FkICYmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA5Nzg0ZTYxNDAw ZTUuLmFkOTI5OTE5NmQxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC0yNjY0LDcgKzI2 NjQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxlIHsKICNkZWZpbmUgSVNfSEFTV0VMTChk ZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfaGFzd2VsbCkKICNkZWZpbmUgSVNfQlJPQURX RUxMKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19icm9hZHdlbGwpCiAjZGVmaW5lIElT X1NLWUxBS0UoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX3NreWxha2UpCi0jZGVmaW5l IElTX0JST1hUT04oZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aXNfYnJveHRvbikKKyNkZWZpbmUg SVNfQlJPWFRPTihkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfYnJveHRvbikKICNkZWZp bmUgSVNfS0FCWUxBS0UoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX2thYnlsYWtlKQog I2RlZmluZSBJU19NT0JJTEUoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aXNfbW9iaWxlKQogI2Rl ZmluZSBJU19IU1dfRUFSTFlfU0RWKGRldl9wcml2KSAoSVNfSEFTV0VMTChkZXZfcHJpdikgJiYg XApAQCAtMjcyNCw3ICsyNzI0LDggQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7CiAjZGVm aW5lIEJYVF9SRVZJRF9CMAkJMHgzCiAjZGVmaW5lIEJYVF9SRVZJRF9DMAkJMHg5CiAKLSNkZWZp bmUgSVNfQlhUX1JFVklEKHAsIHNpbmNlLCB1bnRpbCkgKElTX0JST1hUT04ocCkgJiYgSVNfUkVW SUQocCwgc2luY2UsIHVudGlsKSkKKyNkZWZpbmUgSVNfQlhUX1JFVklEKGRldl9wcml2LCBzaW5j ZSwgdW50aWwpIFwKKwkoSVNfQlJPWFRPTihkZXZfcHJpdikgJiYgSVNfUkVWSUQoZGV2X3ByaXYs IHNpbmNlLCB1bnRpbCkpCiAKICNkZWZpbmUgS0JMX1JFVklEX0EwCQkweDAKICNkZWZpbmUgS0JM X1JFVklEX0IwCQkweDEKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt X2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXggY2Y0M2E1 NjMyOTYxLi5lNjI4NjkxZmU5N2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCkBA IC0zNzMsMjcgKzM3MywyOSBAQCBzdGF0aWMgdm9pZCAqa21hcF9wYWdlX2RtYShzdHJ1Y3QgaTkx NV9wYWdlX2RtYSAqcCkKIC8qIFdlIHVzZSB0aGUgZmx1c2hpbmcgdW5tYXAgb25seSB3aXRoIHBw Z3R0IHN0cnVjdHVyZXM6CiAgKiBwYWdlIGRpcmVjdG9yaWVzLCBwYWdlIHRhYmxlcyBhbmQgc2Ny YXRjaCBwYWdlcy4KICAqLwotc3RhdGljIHZvaWQga3VubWFwX3BhZ2VfZG1hKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKnZhZGRyKQorc3RhdGljIHZvaWQga3VubWFwX3BhZ2VfZG1hKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdm9pZCAqdmFkZHIpCiB7CiAJLyogVGhl cmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9yIGdlbiA+PTYuIGNodiBhbmQgYnh0LgogCSAq IEFuZCB3ZSBhcmUgbm90IHN1cmUgYWJvdXQgdGhlIGxhdHRlciBzbyBwbGF5IHNhZmUgZm9yIG5v dy4KIAkgKi8KLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpIHx8IElTX0JST1hUT04oZGV2KSkKKwlp ZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgfHwgSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCWRy bV9jbGZsdXNoX3ZpcnRfcmFuZ2UodmFkZHIsIFBBR0VfU0laRSk7CiAKIAlrdW5tYXBfYXRvbWlj KHZhZGRyKTsKIH0KIAogI2RlZmluZSBrbWFwX3B4KHB4KSBrbWFwX3BhZ2VfZG1hKHB4X2Jhc2Uo cHgpKQotI2RlZmluZSBrdW5tYXBfcHgocHBndHQsIHZhZGRyKSBrdW5tYXBfcGFnZV9kbWEoKHBw Z3R0KS0+YmFzZS5kZXYsICh2YWRkcikpCisjZGVmaW5lIGt1bm1hcF9weChwcGd0dCwgdmFkZHIp IFwKKwkJa3VubWFwX3BhZ2VfZG1hKHRvX2k5MTUoKHBwZ3R0KS0+YmFzZS5kZXYpLCAodmFkZHIp KQogCiAjZGVmaW5lIHNldHVwX3B4KGRldiwgcHgpIHNldHVwX3BhZ2VfZG1hKChkZXYpLCBweF9i YXNlKHB4KSkKICNkZWZpbmUgY2xlYW51cF9weChkZXYsIHB4KSBjbGVhbnVwX3BhZ2VfZG1hKChk ZXYpLCBweF9iYXNlKHB4KSkKLSNkZWZpbmUgZmlsbF9weChkZXYsIHB4LCB2KSBmaWxsX3BhZ2Vf ZG1hKChkZXYpLCBweF9iYXNlKHB4KSwgKHYpKQotI2RlZmluZSBmaWxsMzJfcHgoZGV2LCBweCwg dikgZmlsbF9wYWdlX2RtYV8zMigoZGV2KSwgcHhfYmFzZShweCksICh2KSkKKyNkZWZpbmUgZmls bF9weChkZXZfcHJpdiwgcHgsIHYpIGZpbGxfcGFnZV9kbWEoKGRldl9wcml2KSwgcHhfYmFzZShw eCksICh2KSkKKyNkZWZpbmUgZmlsbDMyX3B4KGRldl9wcml2LCBweCwgdikgXAorCQlmaWxsX3Bh Z2VfZG1hXzMyKChkZXZfcHJpdiksIHB4X2Jhc2UocHgpLCAodikpCiAKLXN0YXRpYyB2b2lkIGZp bGxfcGFnZV9kbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFnZV9kbWEg KnAsCi0JCQkgIGNvbnN0IHVpbnQ2NF90IHZhbCkKK3N0YXRpYyB2b2lkIGZpbGxfcGFnZV9kbWEo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICBzdHJ1Y3QgaTkxNV9wYWdl X2RtYSAqcCwgY29uc3QgdWludDY0X3QgdmFsKQogewogCWludCBpOwogCXVpbnQ2NF90ICogY29u c3QgdmFkZHIgPSBrbWFwX3BhZ2VfZG1hKHApOwpAQCAtNDAxLDE3ICs0MDMsMTcgQEAgc3RhdGlj IHZvaWQgZmlsbF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9w YWdlX2RtYSAqcCwKIAlmb3IgKGkgPSAwOyBpIDwgNTEyOyBpKyspCiAJCXZhZGRyW2ldID0gdmFs OwogCi0Ja3VubWFwX3BhZ2VfZG1hKGRldiwgdmFkZHIpOworCWt1bm1hcF9wYWdlX2RtYShkZXZf cHJpdiwgdmFkZHIpOwogfQogCi1zdGF0aWMgdm9pZCBmaWxsX3BhZ2VfZG1hXzMyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwLAotCQkJICAgICBjb25zdCB1 aW50MzJfdCB2YWwzMikKK3N0YXRpYyB2b2lkIGZpbGxfcGFnZV9kbWFfMzIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJICAgICBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCwg Y29uc3QgdWludDMyX3QgdmFsMzIpCiB7CiAJdWludDY0X3QgdiA9IHZhbDMyOwogCiAJdiA9IHYg PDwgMzIgfCB2YWwzMjsKIAotCWZpbGxfcGFnZV9kbWEoZGV2LCBwLCB2KTsKKwlmaWxsX3BhZ2Vf ZG1hKGRldl9wcml2LCBwLCB2KTsKIH0KIAogc3RhdGljIGludApAQCAtNDc0LDcgKzQ3Niw3IEBA IHN0YXRpYyB2b2lkIGdlbjhfaW5pdGlhbGl6ZV9wdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKIAlzY3JhdGNoX3B0ZSA9IGdlbjhfcHRlX2VuY29kZSh2bS0+c2NyYXRjaF9wYWdlLmRh ZGRyLAogCQkJCSAgICAgIEk5MTVfQ0FDSEVfTExDLCB0cnVlKTsKIAotCWZpbGxfcHgodm0tPmRl diwgcHQsIHNjcmF0Y2hfcHRlKTsKKwlmaWxsX3B4KHRvX2k5MTUodm0tPmRldiksIHB0LCBzY3Jh dGNoX3B0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjZfaW5pdGlhbGl6ZV9wdChzdHJ1Y3QgaTkx NV9hZGRyZXNzX3NwYWNlICp2bSwKQEAgLTQ4Nyw3ICs0ODksNyBAQCBzdGF0aWMgdm9pZCBnZW42 X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJc2NyYXRjaF9w dGUgPSB2bS0+cHRlX2VuY29kZSh2bS0+c2NyYXRjaF9wYWdlLmRhZGRyLAogCQkJCSAgICAgSTkx NV9DQUNIRV9MTEMsIHRydWUsIDApOwogCi0JZmlsbDMyX3B4KHZtLT5kZXYsIHB0LCBzY3JhdGNo X3B0ZSk7CisJZmlsbDMyX3B4KHRvX2k5MTUodm0tPmRldiksIHB0LCBzY3JhdGNoX3B0ZSk7CiB9 CiAKIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqYWxsb2NfcGQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKQEAgLTUzNCw3ICs1MzYsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRp YWxpemVfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAKIAlzY3JhdGNoX3BkZSA9 IGdlbjhfcGRlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcHQpLCBJOTE1X0NBQ0hFX0xMQyk7 CiAKLQlmaWxsX3B4KHZtLT5kZXYsIHBkLCBzY3JhdGNoX3BkZSk7CisJZmlsbF9weCh0b19pOTE1 KHZtLT5kZXYpLCBwZCwgc2NyYXRjaF9wZGUpOwogfQogCiBzdGF0aWMgaW50IF9fcGRwX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKQEAgLTYxNSw3ICs2MTcsNyBAQCBzdGF0aWMgdm9pZCBn ZW44X2luaXRpYWxpemVfcGRwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJc2Ny YXRjaF9wZHBlID0gZ2VuOF9wZHBlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcGQpLCBJOTE1 X0NBQ0hFX0xMQyk7CiAKLQlmaWxsX3B4KHZtLT5kZXYsIHBkcCwgc2NyYXRjaF9wZHBlKTsKKwlm aWxsX3B4KHRvX2k5MTUodm0tPmRldiksIHBkcCwgc2NyYXRjaF9wZHBlKTsKIH0KIAogc3RhdGlj IHZvaWQgZ2VuOF9pbml0aWFsaXplX3BtbDQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s CkBAIC02MjYsNyArNjI4LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BtbDQoc3Ry dWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJc2NyYXRjaF9wbWw0ZSA9IGdlbjhfcG1sNGVf ZW5jb2RlKHB4X2RtYSh2bS0+c2NyYXRjaF9wZHApLAogCQkJCQkgIEk5MTVfQ0FDSEVfTExDKTsK IAotCWZpbGxfcHgodm0tPmRldiwgcG1sNCwgc2NyYXRjaF9wbWw0ZSk7CisJZmlsbF9weCh0b19p OTE1KHZtLT5kZXYpLCBwbWw0LCBzY3JhdGNoX3BtbDRlKTsKIH0KIAogc3RhdGljIHZvaWQKQEAg LTIxMzUsNyArMjEzNyw3IEBAIHN0YXRpYyB2b2lkIGd0dF93cml0ZV93b3JrYXJvdW5kcyhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdF TjhfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9DSFYpOwogCWVsc2UgaWYgKElTX1NLWUxB S0UoZGV2X3ByaXYpKQogCQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjlfTDNf TFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9TS0wpOwotCWVsc2UgaWYgKElTX0JST1hUT04oZGV2 KSkKKwllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJSTkxNV9XUklURShHRU44X0wz X0xSQV8xX0dQR1BVLCBHRU45X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfQlhUKTsKIH0K IApAQCAtMjg5NSw3ICsyODk3LDcgQEAgc3RhdGljIGludCBnZ3R0X3Byb2JlX2NvbW1vbihzdHJ1 Y3QgaTkxNV9nZ3R0ICpnZ3R0LCB1NjQgc2l6ZSkKIAkgKiByZXNvcnQgdG8gYW4gdW5jYWNoZWQg bWFwcGluZy4gVGhlIFdDIGlzc3VlIGlzIGVhc2lseSBjYXVnaHQgYnkgdGhlCiAJICogcmVhZGJh Y2sgY2hlY2sgd2hlbiB3cml0aW5nIEdUVCBQVEUgZW50cmllcy4KIAkgKi8KLQlpZiAoSVNfQlJP WFRPTihnZ3R0LT5iYXNlLmRldikpCisJaWYgKElTX0JST1hUT04odG9faTkxNShnZ3R0LT5iYXNl LmRldikpKQogCQlnZ3R0LT5nc20gPSBpb3JlbWFwX25vY2FjaGUocGh5c19hZGRyLCBzaXplKTsK IAllbHNlCiAJCWdndHQtPmdzbSA9IGlvcmVtYXBfd2MocGh5c19hZGRyLCBzaXplKTsKQEAgLTMy NjcsNyArMzI2OSw3IEBAIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9ndHRfbWFwcGluZ3Moc3RydWN0 IGRybV9kZXZpY2UgKmRldikKIAlnZ3R0LT5iYXNlLmNsb3NlZCA9IGZhbHNlOwogCiAJaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID49IDgpIHsKLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSB8fCBJ U19CUk9YVE9OKGRldikpCisJCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSB8fCBJU19CUk9Y VE9OKGRldl9wcml2KSkKIAkJCWNodl9zZXR1cF9wcml2YXRlX3BwYXQoZGV2X3ByaXYpOwogCQll bHNlCiAJCQliZHdfc2V0dXBfcHJpdmF0ZV9wcGF0KGRldl9wcml2KTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2lycS5jCmluZGV4IDQ3MzM3YWFiYzMyNi4uNzVmNGJhOTM1ZWJjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKQEAgLTQ1OTcsNyArNDU5Nyw3IEBAIHZvaWQgaW50ZWxfaXJxX2luaXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFs bCA9IGdlbjhfaXJxX3VuaW5zdGFsbDsKIAkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBn ZW44X2VuYWJsZV92Ymxhbms7CiAJCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGdlbjhf ZGlzYWJsZV92Ymxhbms7Ci0JCWlmIChJU19CUk9YVE9OKGRldikpCisJCWlmIChJU19CUk9YVE9O KGRldl9wcml2KSkKIAkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBieHRfaHBk X2lycV9zZXR1cDsKIAkJZWxzZSBpZiAoSEFTX1BDSF9TUFQoZGV2X3ByaXYpIHx8IEhBU19QQ0hf S0JQKGRldl9wcml2KSkKIAkJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBzcHRf aHBkX2lycV9zZXR1cDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKaW5kZXggMDcxNjRlMjUwYWRm Li5hNzZhZmQ3YTY2MTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rk aS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCkBAIC0yNTA5LDcgKzI1 MDksNyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0g cG9ydCBwb3J0KQogCSAqIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB3ZSB1c2UgdGhlIHByb3BlciBs YW5lIGNvdW50IGZvciBvdXIKIAkgKiBjYWxjdWxhdGlvbnMuCiAJICovCi0JaWYgKElTX0JST1hU T04oZGV2KSAmJiBwb3J0ID09IFBPUlRfQSkgeworCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSAm JiBwb3J0ID09IFBPUlRfQSkgewogCQlpZiAoIShpbnRlbF9kaWdfcG9ydC0+c2F2ZWRfcG9ydF9i aXRzICYgRERJX0FfNF9MQU5FUykpIHsKIAkJCURSTV9ERUJVR19LTVMoIkJYVCBCSU9TIGZvcmdv dCB0byBzZXQgRERJX0FfNF9MQU5FUyBmb3IgcG9ydCBBOyBmaXhpbmdcbiIpOwogCQkJaW50ZWxf ZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyB8PSBERElfQV80X0xBTkVTOwpAQCAtMjUzMyw3ICsy NTMzLDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVt IHBvcnQgcG9ydCkKIAkJICogT24gQlhUIEEwL0ExLCBzdyBuZWVkcyB0byBhY3RpdmF0ZSBERElB IEhQRCBsb2dpYyBhbmQKIAkJICogaW50ZXJydXB0cyB0byBjaGVjayB0aGUgZXh0ZXJuYWwgcGFu ZWwgY29ubmVjdGlvbi4KIAkJICovCi0JCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVW SURfQTEpICYmIHBvcnQgPT0gUE9SVF9CKQorCQlpZiAoSVNfQlhUX1JFVklEKGRldl9wcml2LCAw LCBCWFRfUkVWSURfQTEpICYmIHBvcnQgPT0gUE9SVF9CKQogCQkJZGV2X3ByaXYtPmhvdHBsdWcu aXJxX3BvcnRbUE9SVF9BXSA9IGludGVsX2RpZ19wb3J0OwogCQllbHNlCiAJCQlkZXZfcHJpdi0+ aG90cGx1Zy5pcnFfcG9ydFtwb3J0XSA9IGludGVsX2RpZ19wb3J0OwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCmluZGV4IGU2NzNhODAzZjIxMy4uNjM2ZTU1NzJiOTk2IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC02MDAsNyArNjAwLDcgQEAgaW50IGNodl9j YWxjX2RwbGxfcGFyYW1zKGludCByZWZjbGssIHN0cnVjdCBkcGxsICpjbG9jaykKICAqIHRoZSBn aXZlbiBjb25uZWN0b3JzLgogICovCiAKLXN0YXRpYyBib29sIGludGVsX1BMTF9pc192YWxpZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorc3RhdGljIGJvb2wgaW50ZWxfUExMX2lzX3ZhbGlkKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfbGltaXQgKmxpbWl0LAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcGxsICpjbG9jaykK IHsKQEAgLTYxMywxMiArNjEzLDEzIEBAIHN0YXRpYyBib29sIGludGVsX1BMTF9pc192YWxpZChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCWlmIChjbG9jay0+bTEgIDwgbGltaXQtPm0xLm1pbiAg fHwgbGltaXQtPm0xLm1heCAgPCBjbG9jay0+bTEpCiAJCUlOVEVMUGxsSW52YWxpZCgibTEgb3V0 IG9mIHJhbmdlXG4iKTsKIAotCWlmICghSVNfUElORVZJRVcoZGV2KSAmJiAhSVNfVkFMTEVZVklF VyhkZXYpICYmCi0JICAgICFJU19DSEVSUllWSUVXKGRldikgJiYgIUlTX0JST1hUT04oZGV2KSkK KwlpZiAoIUlTX1BJTkVWSUVXKGRldl9wcml2KSAmJiAhSVNfVkFMTEVZVklFVyhkZXZfcHJpdikg JiYKKwkgICAgIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmICFJU19CUk9YVE9OKGRldl9wcml2 KSkKIAkJaWYgKGNsb2NrLT5tMSA8PSBjbG9jay0+bTIpCiAJCQlJTlRFTFBsbEludmFsaWQoIm0x IDw9IG0yXG4iKTsKIAotCWlmICghSVNfVkFMTEVZVklFVyhkZXYpICYmICFJU19DSEVSUllWSUVX KGRldikgJiYgIUlTX0JST1hUT04oZGV2KSkgeworCWlmICghSVNfVkFMTEVZVklFVyhkZXZfcHJp dikgJiYgIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmCisJICAgICFJU19CUk9YVE9OKGRldl9w cml2KSkgewogCQlpZiAoY2xvY2stPnAgPCBsaW1pdC0+cC5taW4gfHwgbGltaXQtPnAubWF4IDwg Y2xvY2stPnApCiAJCQlJTlRFTFBsbEludmFsaWQoInAgb3V0IG9mIHJhbmdlXG4iKTsKIAkJaWYg KGNsb2NrLT5tIDwgbGltaXQtPm0ubWluIHx8IGxpbWl0LT5tLm1heCA8IGNsb2NrLT5tKQpAQCAt Njk4LDcgKzY5OSw4IEBAIGk5eHhfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xp bWl0ICpsaW1pdCwKIAkJCQkJaW50IHRoaXNfZXJyOwogCiAJCQkJCWk5eHhfY2FsY19kcGxsX3Bh cmFtcyhyZWZjbGssICZjbG9jayk7Ci0JCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRldiwg bGltaXQsCisJCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKHRvX2k5MTUoZGV2KSwKKwkJCQkJ CQkJbGltaXQsCiAJCQkJCQkJCSZjbG9jaykpCiAJCQkJCQljb250aW51ZTsKIAkJCQkJaWYgKG1h dGNoX2Nsb2NrICYmCkBAIC03NTMsNyArNzU1LDggQEAgcG52X2ZpbmRfYmVzdF9kcGxsKGNvbnN0 IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAJCQkJCWludCB0aGlzX2VycjsKIAogCQkJCQlw bnZfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGssICZjbG9jayk7Ci0JCQkJCWlmICghaW50ZWxfUExM X2lzX3ZhbGlkKGRldiwgbGltaXQsCisJCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKHRvX2k5 MTUoZGV2KSwKKwkJCQkJCQkJbGltaXQsCiAJCQkJCQkJCSZjbG9jaykpCiAJCQkJCQljb250aW51 ZTsKIAkJCQkJaWYgKG1hdGNoX2Nsb2NrICYmCkBAIC04MTMsNyArODE2LDggQEAgZzR4X2ZpbmRf YmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAJCQkJCWludCB0aGlz X2VycjsKIAogCQkJCQlpOXh4X2NhbGNfZHBsbF9wYXJhbXMocmVmY2xrLCAmY2xvY2spOwotCQkJ CQlpZiAoIWludGVsX1BMTF9pc192YWxpZChkZXYsIGxpbWl0LAorCQkJCQlpZiAoIWludGVsX1BM TF9pc192YWxpZCh0b19pOTE1KGRldiksCisJCQkJCQkJCWxpbWl0LAogCQkJCQkJCQkmY2xvY2sp KQogCQkJCQkJY29udGludWU7CiAKQEAgLTkwOSw3ICs5MTMsOCBAQCB2bHZfZmluZF9iZXN0X2Rw bGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKIAogCQkJCQl2bHZfY2FsY19kcGxs X3BhcmFtcyhyZWZjbGssICZjbG9jayk7CiAKLQkJCQkJaWYgKCFpbnRlbF9QTExfaXNfdmFsaWQo ZGV2LCBsaW1pdCwKKwkJCQkJaWYgKCFpbnRlbF9QTExfaXNfdmFsaWQodG9faTkxNShkZXYpLAor CQkJCQkJCQlsaW1pdCwKIAkJCQkJCQkJJmNsb2NrKSkKIAkJCQkJCWNvbnRpbnVlOwogCkBAIC05 NzcsNyArOTgyLDcgQEAgY2h2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1p dCAqbGltaXQsCiAKIAkJCWNodl9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNsb2NrKTsKIAot CQkJaWYgKCFpbnRlbF9QTExfaXNfdmFsaWQoZGV2LCBsaW1pdCwgJmNsb2NrKSkKKwkJCWlmICgh aW50ZWxfUExMX2lzX3ZhbGlkKHRvX2k5MTUoZGV2KSwgbGltaXQsICZjbG9jaykpCiAJCQkJY29u dGludWU7CiAKIAkJCWlmICghdmx2X1BMTF9pc19vcHRpbWFsKGRldiwgdGFyZ2V0LCAmY2xvY2ss IGJlc3RfY2xvY2ssCkBAIC01ODUyLDcgKzU4NTcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF91cGRh dGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQltYXhfY2RjbGsgPSAzMDg1 NzE7CiAKIAkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gc2tsX2NhbGNfY2RjbGsobWF4X2Nk Y2xrLCB2Y28pOwotCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7CisJfSBlbHNlIGlmIChJ U19CUk9YVE9OKGRldl9wcml2KSkgewogCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSA2MjQw MDA7CiAJfSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAgewogCQkvKgpAQCAtMTA2 NTAsNyArMTA2NTUsNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2dldF9kZGlfcG9ydF9zdGF0ZShz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJ U19LQUJZTEFLRShkZXZfcHJpdikpCiAJCXNreWxha2VfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBv cnQsIHBpcGVfY29uZmlnKTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCisJZWxzZSBpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCWJ4dF9nZXRfZGRpX3BsbChkZXZfcHJpdiwgcG9ydCwg cGlwZV9jb25maWcpOwogCWVsc2UKIAkJaGFzd2VsbF9nZXRfZGRpX3BsbChkZXZfcHJpdiwgcG9y dCwgcGlwZV9jb25maWcpOwpAQCAtMTI4MDgsNyArMTI4MTMsNyBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kdW1wX3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCURSTV9ERUJVR19L TVMoImlwczogJWlcbiIsIHBpcGVfY29uZmlnLT5pcHNfZW5hYmxlZCk7CiAJRFJNX0RFQlVHX0tN UygiZG91YmxlIHdpZGU6ICVpXG4iLCBwaXBlX2NvbmZpZy0+ZG91YmxlX3dpZGUpOwogCi0JaWYg KElTX0JST1hUT04oZGV2KSkgeworCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewogCQlEUk1f REVCVUdfS01TKCJkcGxsX2h3X3N0YXRlOiBlYmIwOiAweCV4LCBlYmI0OiAweCV4LCIKIAkJCSAg ICAgICJwbGwwOiAweCV4LCBwbGwxOiAweCV4LCBwbGwyOiAweCV4LCBwbGwzOiAweCV4LCAiCiAJ CQkgICAgICAicGxsNjogMHgleCwgcGxsODogMHgleCwgcGxsOTogMHgleCwgcGxsMTA6IDB4JXgs IHBjc2R3MTI6IDB4JXhcbiIsCkBAIC0xNTQwMSw3ICsxNTQwNiw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoaW50ZWxfY3J0 X3ByZXNlbnQoZGV2KSkKIAkJaW50ZWxfY3J0X2luaXQoZGV2KTsKIAotCWlmIChJU19CUk9YVE9O KGRldikpIHsKKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJLyoKIAkJICogRklYTUU6 IEJyb3h0b24gZG9lc24ndCBzdXBwb3J0IHBvcnQgZGV0ZWN0aW9uIHZpYSB0aGUKIAkJICogRERJ X0JVRl9DVExfQSBvciBTRlVTRV9TVFJBUCByZWdpc3RlcnMsIGZpbmQgYW5vdGhlciB3YXkgdG8K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4IDAyZTc0YzQ2N2E1NS4uYjZjOGIyNWVlMWQ0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTU3MSw3ICs1NzEsNyBAQCB2b2lkIGludGVsX3Bv d2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CiAKIAlpZiAoV0FSTl9PTighSVNfVkFMTEVZ VklFVyhkZXYpICYmICFJU19DSEVSUllWSUVXKGRldikgJiYKLQkJICAgICFJU19CUk9YVE9OKGRl dikpKQorCQkgICAgIUlTX0JST1hUT04oZGV2X3ByaXYpKSkKIAkJcmV0dXJuOwogCiAJLyoKQEAg LTU5MSw3ICs1OTEsNyBAQCB2b2lkIGludGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCQljb250aW51ZTsKIAogCQlpbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Ci0JCWlmIChJU19CUk9YVE9OKGRldikp CisJCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJCWludGVsX2RwLT5wcHNfcmVzZXQgPSB0 cnVlOwogCQllbHNlCiAJCQlpbnRlbF9kcC0+cHBzX3BpcGUgPSBJTlZBTElEX1BJUEU7CkBAIC0y OTgxLDcgKzI5ODEsNyBAQCBpbnRlbF9kcF92b2x0YWdlX21heChzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKIAot CWlmIChJU19CUk9YVE9OKGRldikpCisJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQogCQlyZXR1 cm4gRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8zOwogCWVsc2UgaWYgKElOVEVMX0lORk8o ZGV2KS0+Z2VuID49IDkpIHsKIAkJaWYgKGRldl9wcml2LT52YnQuZWRwLmxvd192c3dpbmcgJiYg cG9ydCA9PSBQT1JUX0EpCkBAIC0zMzQ0LDcgKzMzNDQsNyBAQCBpbnRlbF9kcF9zZXRfc2lnbmFs X2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCWlmIChIQVNfRERJKGRldl9wcml2 KSkgewogCQlzaWduYWxfbGV2ZWxzID0gZGRpX3NpZ25hbF9sZXZlbHMoaW50ZWxfZHApOwogCi0J CWlmIChJU19CUk9YVE9OKGRldikpCisJCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJCXNp Z25hbF9sZXZlbHMgPSAwOwogCQllbHNlCiAJCQltYXNrID0gRERJX0JVRl9FTVBfTUFTSzsKQEAg LTUwNzIsNyArNTA3Miw3IEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3Jl Z2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkgKHNlcS0+dDEwIDw8IFBBTkVMX1BP V0VSX0RPV05fREVMQVlfU0hJRlQpOwogCS8qIENvbXB1dGUgdGhlIGRpdmlzb3IgZm9yIHRoZSBw cCBjbG9jaywgc2ltcGx5IG1hdGNoIHRoZSBCc3BlYwogCSAqIGZvcm11bGEuICovCi0JaWYgKElT X0JST1hUT04oZGV2KSkgeworCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewogCQlwcF9kaXYg PSBJOTE1X1JFQUQocmVncy5wcF9jdHJsKTsKIAkJcHBfZGl2ICY9IH5CWFRfUE9XRVJfQ1lDTEVf REVMQVlfTUFTSzsKIAkJcHBfZGl2IHw9IChESVZfUk9VTkRfVVAoKHNlcS0+dDExX3QxMiArIDEp LCAxMDAwKQpAQCAtNTA5OCw3ICs1MDk4LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9z ZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAKIAlJOTE1X1dSSVRF KHJlZ3MucHBfb24sIHBwX29uKTsKIAlJOTE1X1dSSVRFKHJlZ3MucHBfb2ZmLCBwcF9vZmYpOwot CWlmIChJU19CUk9YVE9OKGRldikpCisJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQogCQlJOTE1 X1dSSVRFKHJlZ3MucHBfY3RybCwgcHBfZGl2KTsKIAllbHNlCiAJCUk5MTVfV1JJVEUocmVncy5w cF9kaXYsIHBwX2Rpdik7CkBAIC01MTA2LDcgKzUxMDYsNyBAQCBpbnRlbF9kcF9pbml0X3BhbmVs X3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlEUk1f REVCVUdfS01TKCJwYW5lbCBwb3dlciBzZXF1ZW5jZXIgcmVnaXN0ZXIgc2V0dGluZ3M6IFBQX09O ICUjeCwgUFBfT0ZGICUjeCwgUFBfRElWICUjeFxuIiwKIAkJICAgICAgSTkxNV9SRUFEKHJlZ3Mu cHBfb24pLAogCQkgICAgICBJOTE1X1JFQUQocmVncy5wcF9vZmYpLAotCQkgICAgICBJU19CUk9Y VE9OKGRldikgPworCQkgICAgICBJU19CUk9YVE9OKGRldl9wcml2KSA/CiAJCSAgICAgIChJOTE1 X1JFQUQocmVncy5wcF9jdHJsKSAmIEJYVF9QT1dFUl9DWUNMRV9ERUxBWV9NQVNLKSA6CiAJCSAg ICAgIEk5MTVfUkVBRChyZWdzLnBwX2RpdikpOwogfQpAQCAtNTcxNSw3ICs1NzE1LDcgQEAgaW50 ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQsCiAJCWJyZWFrOwogCWNhc2UgUE9SVF9COgogCQlpbnRlbF9lbmNvZGVyLT5ocGRfcGlu ID0gSFBEX1BPUlRfQjsKLQkJaWYgKElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkp CisJCWlmIChJU19CWFRfUkVWSUQoZGV2X3ByaXYsIDAsIEJYVF9SRVZJRF9BMSkpCiAJCQlpbnRl bF9lbmNvZGVyLT5ocGRfcGluID0gSFBEX1BPUlRfQTsKIAkJYnJlYWs7CiAJY2FzZSBQT1JUX0M6 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwppbmRleCA3Y2Y5ZDkxYzA3NDYuLjYw NWQwYjUwOWYyNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCkBAIC0xODUz LDcgKzE4NTMsNyBAQCB2b2lkIGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAogCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZf cHJpdikpCiAJCWRwbGxfbWdyID0gJnNrbF9wbGxfbWdyOwotCWVsc2UgaWYgKElTX0JST1hUT04o ZGV2KSkKKwllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJZHBsbF9tZ3IgPSAmYnh0 X3BsbF9tZ3I7CiAJZWxzZSBpZiAoSEFTX0RESShkZXZfcHJpdikpCiAJCWRwbGxfbWdyID0gJmhz d19wbGxfbWdyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwppbmRleCA1YjFlNDQ1YTgwZDAuLjQ4 ZThkZDEwOGY0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKQEAgLTQzNywxMSArNDM3LDEx IEBAIHN0YXRpYyB2b2lkIHZsdl9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNv ZGVyLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAotCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNf Q0hFUlJZVklFVyhkZXYpKQorCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkKIAkJdmx2X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Ci0JZWxz ZSBpZiAoSVNfQlJPWFRPTihkZXYpKQorCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQog CQlieHRfZHNpX2RldmljZV9yZWFkeShlbmNvZGVyKTsKIH0KIApAQCAtNDY0LDcgKzQ2NCw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wb3J0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKIAl9CiAKIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRz KSB7Ci0JCWk5MTVfcmVnX3QgcG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXYpID8KKwkJaTkxNV9y ZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9OKGRldl9wcml2KSA/CiAJCQlCWFRfTUlQSV9QT1JU X0NUUkwocG9ydCkgOiBNSVBJX1BPUlRfQ1RSTChwb3J0KTsKIAkJdTMyIHRlbXA7CiAKQEAgLTQ5 NCw3ICs0OTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9ydF9kaXNhYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQogCWVudW0gcG9ydCBwb3J0OwogCiAJZm9yX2VhY2hfZHNp X3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQlpOTE1X3JlZ190IHBvcnRfY3RybCA9 IElTX0JST1hUT04oZGV2KSA/CisJCWk5MTVfcmVnX3QgcG9ydF9jdHJsID0gSVNfQlJPWFRPTihk ZXZfcHJpdikgPwogCQkJQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpIDogTUlQSV9QT1JUX0NUUkwo cG9ydCk7CiAJCXUzMiB0ZW1wOwogCkBAIC02NTYsNyArNjU2LDYgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHNpX2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAKIHN0YXRpYyB2 b2lkIGludGVsX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFz ZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kc2kgKmludGVsX2RzaSA9IGVuY190b19pbnRlbF9kc2ko JmVuY29kZXItPmJhc2UpOwogCWVudW0gcG9ydCBwb3J0OwpAQCAtNjY0LDcgKzY2Myw3IEBAIHN0 YXRpYyB2b2lkIGludGVsX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCiAJRFJNX0RFQlVHX0tNUygiXG4iKTsKIAlmb3JfZWFjaF9kc2lfcG9ydChw b3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7CiAJCS8qIENvbW1vbiBiaXQgZm9yIGJvdGggTUlQSSBQ b3J0IEEgJiBNSVBJIFBvcnQgQyBvbiBWTFYvQ0hWICovCi0JCWk5MTVfcmVnX3QgcG9ydF9jdHJs ID0gSVNfQlJPWFRPTihkZXYpID8KKwkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9O KGRldl9wcml2KSA/CiAJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJX1BPUlRfQ1RS TChQT1JUX0EpOwogCQl1MzIgdmFsOwogCkBAIC03NjIsNyArNzYxLDcgQEAgc3RhdGljIGJvb2wg aW50ZWxfZHNpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAog CS8qIFhYWDogdGhpcyBvbmx5IHdvcmtzIGZvciBvbmUgRFNJIG91dHB1dCAqLwogCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKLQkJaTkxNV9yZWdfdCBjdHJsX3Jl ZyA9IElTX0JST1hUT04oZGV2KSA/CisJCWk5MTVfcmVnX3QgY3RybF9yZWcgPSBJU19CUk9YVE9O KGRldl9wcml2KSA/CiAJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJX1BPUlRfQ1RS TChwb3J0KTsKIAkJYm9vbCBlbmFibGVkID0gSTkxNV9SRUFEKGN0cmxfcmVnKSAmIERQSV9FTkFC TEU7CiAKQEAgLTk3MCwxMSArOTY5LDExIEBAIHN0YXRpYyB2b2lkIGJ4dF9kc2lfZ2V0X3BpcGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogc3RhdGljIHZvaWQgaW50ZWxf ZHNpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkJIHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAJdTMyIHBjbGs7CiAJRFJNX0RFQlVH X0tNUygiXG4iKTsKIAotCWlmIChJU19CUk9YVE9OKGRldikpCisJaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKQogCQlieHRfZHNpX2dldF9waXBlX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7 CiAKIAlwY2xrID0gaW50ZWxfZHNpX2dldF9wY2xrKGVuY29kZXIsIHBpcGVfY29uZmlnLT5waXBl X2JwcCwKQEAgLTEwNjYsNyArMTA2NSw3IEBAIHN0YXRpYyB2b2lkIHNldF9kc2lfdGltaW5ncyhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCiAJaGJwID0gdHhieXRlY2xraHMoaGJwLCBicHAs IGxhbmVfY291bnQsIGludGVsX2RzaS0+YnVyc3RfbW9kZV9yYXRpbyk7CiAKIAlmb3JfZWFjaF9k c2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCWlmIChJU19CUk9YVE9OKGRldikp IHsKKwkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCQkvKgogCQkJICogUHJvZ3JhbSBo ZGlzcGxheSBhbmQgdmRpc3BsYXkgb24gTUlQSSB0cmFuc2NvZGVyLgogCQkJICogVGhpcyBpcyBk aWZmZXJlbnQgZnJvbSBjYWxjdWxhdGVkIGhhY3RpdmUgYW5kCkBAIC0xMTUzLDcgKzExNTIsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50 ZWxfZW5jb2RlciwKIAkJCXRtcCAmPSB+UkVBRF9SRVFVRVNUX1BSSU9SSVRZX01BU0s7CiAJCQlJ OTE1X1dSSVRFKE1JUElfQ1RSTChwb3J0KSwgdG1wIHwKIAkJCQkJUkVBRF9SRVFVRVNUX1BSSU9S SVRZX0hJR0gpOwotCQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgeworCQl9IGVsc2UgaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCQllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMt PnBpcGU7CiAKIAkJCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NUUkwocG9ydCkpOwpAQCAtMTI0Miw3 ICsxMjQxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIsCiAJCUk5MTVfV1JJVEUoTUlQSV9JTklUX0NPVU5UKHBvcnQp LAogCQkJCXR4Y2xrZXNjKGludGVsX2RzaS0+ZXNjYXBlX2Nsa19kaXYsIDEwMCkpOwogCi0JCWlm IChJU19CUk9YVE9OKGRldikgJiYgKCFpbnRlbF9kc2ktPmR1YWxfbGluaykpIHsKKwkJaWYgKElT X0JST1hUT04oZGV2X3ByaXYpICYmICghaW50ZWxfZHNpLT5kdWFsX2xpbmspKSB7CiAJCQkvKgog CQkJICogQlhUIHNwZWMgc2F5cyB3cml0ZSBNSVBJX0lOSVRfQ09VTlQgZm9yCiAJCQkgKiBib3Ro IHRoZSBwb3J0cywgZXZlbiBpZiBvbmx5IG9uZSBpcwpAQCAtMTQ1Miw3ICsxNDUxLDcgQEAgdm9p ZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCiAJaWYgKElTX1ZBTExF WVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKIAkJZGV2X3ByaXYtPm1pcGlfbW1p b19iYXNlID0gVkxWX01JUElfQkFTRTsKLQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewor CX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPm1pcGlfbW1p b19iYXNlID0gQlhUX01JUElfQkFTRTsKIAl9IGVsc2UgewogCQlEUk1fRVJST1IoIlVuc3VwcG9y dGVkIE1pcGkgZGV2aWNlIHRvIHJlZyBiYXNlIik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lf cGxsLmMKaW5kZXggNmFiNThhMDFiMThlLi41NmVmZjYwMDRiYzAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kc2lfcGxsLmMKQEAgLTM1MSw3ICszNTEsNyBAQCBzdGF0aWMgdTMyIGJ4dF9kc2lf Z2V0X3BjbGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCBwaXBlX2JwcCwKIHUz MiBpbnRlbF9kc2lfZ2V0X3BjbGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCBw aXBlX2JwcCwKIAkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcpCiB7Ci0J aWYgKElTX0JST1hUT04oZW5jb2Rlci0+YmFzZS5kZXYpKQorCWlmIChJU19CUk9YVE9OKHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpKSkKIAkJcmV0dXJuIGJ4dF9kc2lfZ2V0X3BjbGsoZW5jb2Rl ciwgcGlwZV9icHAsIGNvbmZpZyk7CiAJZWxzZQogCQlyZXR1cm4gdmx2X2RzaV9nZXRfcGNsayhl bmNvZGVyLCBwaXBlX2JwcCwgY29uZmlnKTsKQEAgLTUxNSwxMSArNTE1LDExIEBAIGJvb2wgaW50 ZWxfZHNpX3BsbF9pc19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IGludCBpbnRlbF9jb21wdXRlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs CiAJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcpCiB7Ci0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCi0JaWYgKElTX1ZBTExF WVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCisJaWYgKElTX1ZBTExFWVZJRVcoZGV2 X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQlyZXR1cm4gdmx2X2NvbXB1dGVf ZHNpX3BsbChlbmNvZGVyLCBjb25maWcpOwotCWVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkKKwll bHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJcmV0dXJuIGJ4dF9jb21wdXRlX2RzaV9w bGwoZW5jb2RlciwgY29uZmlnKTsKIAogCXJldHVybiAtRU5PREVWOwpAQCAtNTI4LDIxICs1Mjgs MjEgQEAgaW50IGludGVsX2NvbXB1dGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIHZvaWQgaW50ZWxfZW5hYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCiAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjb25maWcpCiB7Ci0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCi0J aWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCisJaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQogCQl2bHZfZW5h YmxlX2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldikp CisJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCWJ4dF9lbmFibGVfZHNpX3BsbChl bmNvZGVyLCBjb25maWcpOwogfQogCiB2b2lkIGludGVsX2Rpc2FibGVfZHNpX3BsbChzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5j b2Rlci0+YmFzZS5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7CiAKLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2KSkKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpCiAJCXZsdl9kaXNhYmxlX2RzaV9wbGwoZW5jb2Rlcik7Ci0JZWxz ZSBpZiAoSVNfQlJPWFRPTihkZXYpKQorCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQog CQlieHRfZGlzYWJsZV9kc2lfcGxsKGVuY29kZXIpOwogfQogCkBAIC01NjQsMTAgKzU2NCwxMCBA QCBzdGF0aWMgdm9pZCBieHRfZHNpX3Jlc2V0X2Nsb2NrcyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwgZW51bSBwb3J0IHBvcnQpCiAKIHZvaWQgaW50ZWxfZHNpX3Jlc2V0X2Nsb2Nrcyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgZW51bSBwb3J0IHBvcnQpCiB7Ci0Jc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCi0JaWYgKElT X0JST1hUT04oZGV2KSkKKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCWJ4dF9kc2lfcmVz ZXRfY2xvY2tzKGVuY29kZXIsIHBvcnQpOwotCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8 fCBJU19DSEVSUllWSUVXKGRldikpCisJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikg fHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXZsdl9kc2lfcmVzZXRfY2xvY2tzKGVuY29k ZXIsIHBvcnQpOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3Vj X2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCmluZGV4 IDE4MjIwNDM3MzkzMS4uNWQ1ZDYwOWVkNWU5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX2xvYWRlci5jCkBAIC0zNzYsMTYgKzM3NiwxNiBAQCBzdGF0aWMgaW50IGd1Y191Y29kZV94 ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAlJOTE1X1dSSVRFKEdVQ19T SElNX0NPTlRST0wsIEdVQ19TSElNX0NPTlRST0xfVkFMVUUpOwogCiAJLyogV2FEaXNhYmxlTWlu dXRlSWFDbG9ja0dhdGluZzpieHQgKi8KLQlpZiAoSVNfQlhUX1JFVklEKGRldiwgMCwgQlhUX1JF VklEX0ExKSkgeworCWlmIChJU19CWFRfUkVWSUQoZGV2X3ByaXYsIDAsIEJYVF9SRVZJRF9BMSkp IHsKIAkJSTkxNV9XUklURShHVUNfU0hJTV9DT05UUk9MLCAoSTkxNV9SRUFEKEdVQ19TSElNX0NP TlRST0wpICYKIAkJCQkJICAgICAgfkdVQ19FTkFCTEVfTUlBX0NMT0NLX0dBVElORykpOwogCX0K IAogCS8qIFdhQzZEaXNhbGxvd0J5R2Z4UGF1c2U6Ynh0ICovCi0JaWYgKElTX0JYVF9SRVZJRChk ZXYsIDAsIEJYVF9SRVZJRF9CMCkpCisJaWYgKElTX0JYVF9SRVZJRChkZXZfcHJpdiwgMCwgQlhU X1JFVklEX0IwKSkKIAkJSTkxNV9XUklURShHRU42X0dGWFBBVVNFLCAweDMwRkZGKTsKIAotCWlm IChJU19CUk9YVE9OKGRldikpCisJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQogCQlJOTE1X1dS SVRFKEdFTjlMUF9HVF9QTV9DT05GSUcsIEdUX0RPT1JCRUxMX0VOQUJMRSk7CiAJZWxzZQogCQlJ OTE1X1dSSVRFKEdFTjlfR1RfUE1fQ09ORklHLCBHVF9ET09SQkVMTF9FTkFCTEUpOwpAQCAtNzMw LDcgKzczMCw3IEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK IAkJZndfcGF0aCA9IEk5MTVfU0tMX0dVQ19VQ09ERTsKIAkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jf d2FudGVkID0gU0tMX0ZXX01BSk9SOwogCQlndWNfZnctPmd1Y19md19taW5vcl93YW50ZWQgPSBT S0xfRldfTUlOT1I7Ci0JfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldikpIHsKKwl9IGVsc2UgaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCWZ3X3BhdGggPSBJOTE1X0JYVF9HVUNfVUNPREU7 CiAJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9IEJYVF9GV19NQUpPUjsKIAkJZ3VjX2Z3 LT5ndWNfZndfbWlub3Jfd2FudGVkID0gQlhUX0ZXX01JTk9SOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGRtaS5jCmluZGV4IDY2MDdjNGUzYzM2Yy4uZjY1NjI0NTFjNDdlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaGRtaS5jCkBAIC0xMjQxLDcgKzEyNDEsNyBAQCBzdGF0aWMgZW51bSBkcm1fbW9kZV9z dGF0dXMKIGhkbWlfcG9ydF9jbG9ja192YWxpZChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwKIAkJ ICAgICAgaW50IGNsb2NrLCBib29sIHJlc3BlY3RfZG93bnN0cmVhbV9saW1pdHMpCiB7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2hkbWlfdG9fZGV2KGhkbWkpOworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfaGRtaV90b19kZXYoaGRt aSkpOwogCiAJaWYgKGNsb2NrIDwgMjUwMDApCiAJCXJldHVybiBNT0RFX0NMT0NLX0xPVzsKQEAg LTEyNDksMTEgKzEyNDksMTEgQEAgaGRtaV9wb3J0X2Nsb2NrX3ZhbGlkKHN0cnVjdCBpbnRlbF9o ZG1pICpoZG1pLAogCQlyZXR1cm4gTU9ERV9DTE9DS19ISUdIOwogCiAJLyogQlhUIERQTEwgY2Fu J3QgZ2VuZXJhdGUgMjIzLTI0MCBNSHogKi8KLQlpZiAoSVNfQlJPWFRPTihkZXYpICYmIGNsb2Nr ID4gMjIzMzMzICYmIGNsb2NrIDwgMjQwMDAwKQorCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSAm JiBjbG9jayA+IDIyMzMzMyAmJiBjbG9jayA8IDI0MDAwMCkKIAkJcmV0dXJuIE1PREVfQ0xPQ0tf UkFOR0U7CiAKIAkvKiBDSFYgRFBMTCBjYW4ndCBnZW5lcmF0ZSAyMTYtMjQwIE1IeiAqLwotCWlm IChJU19DSEVSUllWSUVXKGRldikgJiYgY2xvY2sgPiAyMTYwMDAgJiYgY2xvY2sgPCAyNDAwMDAp CisJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmIGNsb2NrID4gMjE2MDAwICYmIGNsb2Nr IDwgMjQwMDAwKQogCQlyZXR1cm4gTU9ERV9DTE9DS19SQU5HRTsKIAogCXJldHVybiBNT0RFX09L OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCmluZGV4IDAyNWZiZDUyMjgx OS4uZTRiYjg1YzljNmUxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y dW50aW1lX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j CkBAIC0yNTk2LDcgKzI1OTYsNyBAQCB2b2lkIGludGVsX3Bvd2VyX2RvbWFpbnNfaW5pdF9odyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgcmVzdW1lKQogCiAJaWYgKElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewogCQlza2xfZGlz cGxheV9jb3JlX2luaXQoZGV2X3ByaXYsIHJlc3VtZSk7Ci0JfSBlbHNlIGlmIChJU19CUk9YVE9O KGRldikpIHsKKwl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCWJ4dF9kaXNw bGF5X2NvcmVfaW5pdChkZXZfcHJpdiwgcmVzdW1lKTsKIAl9IGVsc2UgaWYgKElTX0NIRVJSWVZJ RVcoZGV2KSkgewogCQltdXRleF9sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKLS0gCjIuNy40 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK