From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH v3 13/19] drm/i915: Make IS_BROXTON only take dev_priv Date: Thu, 13 Oct 2016 10:44:44 +0100 Message-ID: <1476351884-22586-1-git-send-email-tvrtko.ursulin@linux.intel.com> References: <20161012125038.bvpg6iy22nwkjgxh@boom> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-x244.google.com (mail-qk0-x244.google.com [IPv6:2607:f8b0:400d:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2B1936E9F1 for ; Thu, 13 Oct 2016 09:44:59 +0000 (UTC) Received: by mail-qk0-x244.google.com with SMTP id n189so5454203qke.1 for ; Thu, 13 Oct 2016 02:44:59 -0700 (PDT) In-Reply-To: <20161012125038.bvpg6iy22nwkjgxh@boom> 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 OTIgYnl0ZXMgb2YgLnJvZGF0YSBzdHJpbmdzLgoKQWxzbyBjaGFuZ2UgYSBmZXcgZnVuY3Rpb24v bWFjcm8gcHJvdG90eXBlcyBpbiBpOTE1X2dlbV9ndHQuYwpmcm9tIGRldiB0byBkZXZfcHJpdiB3 aGVyZSBpdCBtYWRlIG1vcmUgc2Vuc2UgdG8gZG8gc28uCgp2MjogQWRkIHBhcmFudGhlc2VzIGFy b3VuZCBkZXZfcHJpdi4gKFZpbGxlIFN5cmphbGEpCnYzOiBNZW50aW9uIGZ1bmN0aW9uIHByb3Rv dHlwZSBjaGFuZ2VzLiAoRGF2aWQgV2VpbmhhbGwpCgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJz dWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogRGF2aWQgV2VpbmVoYWxsIDxkYXZp ZC53ZWluZWhhbGxAbGludXguaW50ZWwuY29tPgpBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFu aWVsLnZldHRlckBmZndsbC5jaD4KQWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBs aW51eC5pbnRlbC5jb20+CkFja2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4KQWNrZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAg ICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICA1 ICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyAgICAgfCA0MCArKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAg ICAgICAgfCAgNCArKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgICAg fCAzMSArKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICAgICAgICAgfCAxNiArKysrKystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcGxsX21nci5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNp LmMgICAgICAgIHwgMjcgKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHNpX3BsbC5jICAgIHwgMjYgKysrKysrKysrKy0tLS0tLS0tLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMgfCAgOCArKystLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgICAgfCAgNiArKy0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgIDIgKy0KIDEzIGZpbGVzIGNoYW5nZWQsIDg5IGlu c2VydGlvbnMoKyksIDgyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4 IGQ4NTRlYTRhN2U5Mi4uMThhZjZkMWNjZWM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAg LTI0MzcsNyArMjQzNyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9yZXN1bWUoc3RydWN0 IGRldmljZSAqa2RldikKIAlpZiAoSVNfR0VONihkZXZfcHJpdikpCiAJCWludGVsX2luaXRfcGNo X3JlZmNsayhkZXYpOwogCi0JaWYgKElTX0JST1hUT04oZGV2KSkgeworCWlmIChJU19CUk9YVE9O KGRldl9wcml2KSkgewogCQlieHRfZGlzYWJsZV9kYzkoZGV2X3ByaXYpOwogCQlieHRfZGlzcGxh eV9jb3JlX2luaXQoZGV2X3ByaXYsIHRydWUpOwogCQlpZiAoZGV2X3ByaXYtPmNzci5kbWNfcGF5 bG9hZCAmJgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMjk3ZjZhMTAzZDU0Li45YWQ3OWQx OTZhNzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjY2Nyw3ICsyNjY3LDcgQEAgc3Ry dWN0IGRybV9pOTE1X2NtZF90YWJsZSB7CiAjZGVmaW5lIElTX0hBU1dFTEwoZGV2X3ByaXYpCSgo ZGV2X3ByaXYpLT5pbmZvLmlzX2hhc3dlbGwpCiAjZGVmaW5lIElTX0JST0FEV0VMTChkZXZfcHJp dikJKChkZXZfcHJpdiktPmluZm8uaXNfYnJvYWR3ZWxsKQogI2RlZmluZSBJU19TS1lMQUtFKGRl dl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19za3lsYWtlKQotI2RlZmluZSBJU19CUk9YVE9O KGRldikJCShJTlRFTF9JTkZPKGRldiktPmlzX2Jyb3h0b24pCisjZGVmaW5lIElTX0JST1hUT04o ZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX2Jyb3h0b24pCiAjZGVmaW5lIElTX0tBQllM QUtFKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19rYWJ5bGFrZSkKICNkZWZpbmUgSVNf TU9CSUxFKGRldikJCShJTlRFTF9JTkZPKGRldiktPmlzX21vYmlsZSkKICNkZWZpbmUgSVNfSFNX X0VBUkxZX1NEVihkZXZfcHJpdikgKElTX0hBU1dFTEwoZGV2X3ByaXYpICYmIFwKQEAgLTI3Mjcs NyArMjcyNyw4IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewogI2RlZmluZSBCWFRfUkVW SURfQjAJCTB4MwogI2RlZmluZSBCWFRfUkVWSURfQzAJCTB4OQogCi0jZGVmaW5lIElTX0JYVF9S RVZJRChwLCBzaW5jZSwgdW50aWwpIChJU19CUk9YVE9OKHApICYmIElTX1JFVklEKHAsIHNpbmNl LCB1bnRpbCkpCisjZGVmaW5lIElTX0JYVF9SRVZJRChkZXZfcHJpdiwgc2luY2UsIHVudGlsKSBc CisJKElTX0JST1hUT04oZGV2X3ByaXYpICYmIElTX1JFVklEKGRldl9wcml2LCBzaW5jZSwgdW50 aWwpKQogCiAjZGVmaW5lIEtCTF9SRVZJRF9BMAkJMHgwCiAjZGVmaW5lIEtCTF9SRVZJRF9CMAkJ MHgxCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCmluZGV4IDBiNDcwMmNlZGFkMS4uZDIx NWRiNWU2ZDM4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwpAQCAtMzczLDI3ICsz NzMsMjkgQEAgc3RhdGljIHZvaWQgKmttYXBfcGFnZV9kbWEoc3RydWN0IGk5MTVfcGFnZV9kbWEg KnApCiAvKiBXZSB1c2UgdGhlIGZsdXNoaW5nIHVubWFwIG9ubHkgd2l0aCBwcGd0dCBzdHJ1Y3R1 cmVzOgogICogcGFnZSBkaXJlY3RvcmllcywgcGFnZSB0YWJsZXMgYW5kIHNjcmF0Y2ggcGFnZXMu CiAgKi8KLXN0YXRpYyB2b2lkIGt1bm1hcF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICp2YWRkcikKK3N0YXRpYyB2b2lkIGt1bm1hcF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHZvaWQgKnZhZGRyKQogewogCS8qIFRoZXJlIGFyZSBvbmx5 IGZldyBleGNlcHRpb25zIGZvciBnZW4gPj02LiBjaHYgYW5kIGJ4dC4KIAkgKiBBbmQgd2UgYXJl IG5vdCBzdXJlIGFib3V0IHRoZSBsYXR0ZXIgc28gcGxheSBzYWZlIGZvciBub3cuCiAJICovCi0J aWYgKElTX0NIRVJSWVZJRVcoZGV2KSB8fCBJU19CUk9YVE9OKGRldikpCisJaWYgKElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpIHx8IElTX0JST1hUT04oZGV2X3ByaXYpKQogCQlkcm1fY2xmbHVzaF92 aXJ0X3JhbmdlKHZhZGRyLCBQQUdFX1NJWkUpOwogCiAJa3VubWFwX2F0b21pYyh2YWRkcik7CiB9 CiAKICNkZWZpbmUga21hcF9weChweCkga21hcF9wYWdlX2RtYShweF9iYXNlKHB4KSkKLSNkZWZp bmUga3VubWFwX3B4KHBwZ3R0LCB2YWRkcikga3VubWFwX3BhZ2VfZG1hKChwcGd0dCktPmJhc2Uu ZGV2LCAodmFkZHIpKQorI2RlZmluZSBrdW5tYXBfcHgocHBndHQsIHZhZGRyKSBcCisJCWt1bm1h cF9wYWdlX2RtYSh0b19pOTE1KChwcGd0dCktPmJhc2UuZGV2KSwgKHZhZGRyKSkKIAogI2RlZmlu ZSBzZXR1cF9weChkZXYsIHB4KSBzZXR1cF9wYWdlX2RtYSgoZGV2KSwgcHhfYmFzZShweCkpCiAj ZGVmaW5lIGNsZWFudXBfcHgoZGV2LCBweCkgY2xlYW51cF9wYWdlX2RtYSgoZGV2KSwgcHhfYmFz ZShweCkpCi0jZGVmaW5lIGZpbGxfcHgoZGV2LCBweCwgdikgZmlsbF9wYWdlX2RtYSgoZGV2KSwg cHhfYmFzZShweCksICh2KSkKLSNkZWZpbmUgZmlsbDMyX3B4KGRldiwgcHgsIHYpIGZpbGxfcGFn ZV9kbWFfMzIoKGRldiksIHB4X2Jhc2UocHgpLCAodikpCisjZGVmaW5lIGZpbGxfcHgoZGV2X3By aXYsIHB4LCB2KSBmaWxsX3BhZ2VfZG1hKChkZXZfcHJpdiksIHB4X2Jhc2UocHgpLCAodikpCisj ZGVmaW5lIGZpbGwzMl9weChkZXZfcHJpdiwgcHgsIHYpIFwKKwkJZmlsbF9wYWdlX2RtYV8zMigo ZGV2X3ByaXYpLCBweF9iYXNlKHB4KSwgKHYpKQogCi1zdGF0aWMgdm9pZCBmaWxsX3BhZ2VfZG1h KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwLAotCQkJICBj b25zdCB1aW50NjRfdCB2YWwpCitzdGF0aWMgdm9pZCBmaWxsX3BhZ2VfZG1hKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCSAgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAsIGNv bnN0IHVpbnQ2NF90IHZhbCkKIHsKIAlpbnQgaTsKIAl1aW50NjRfdCAqIGNvbnN0IHZhZGRyID0g a21hcF9wYWdlX2RtYShwKTsKQEAgLTQwMSwxNyArNDAzLDE3IEBAIHN0YXRpYyB2b2lkIGZpbGxf cGFnZV9kbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAs CiAJZm9yIChpID0gMDsgaSA8IDUxMjsgaSsrKQogCQl2YWRkcltpXSA9IHZhbDsKIAotCWt1bm1h cF9wYWdlX2RtYShkZXYsIHZhZGRyKTsKKwlrdW5tYXBfcGFnZV9kbWEoZGV2X3ByaXYsIHZhZGRy KTsKIH0KIAotc3RhdGljIHZvaWQgZmlsbF9wYWdlX2RtYV8zMihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCwKLQkJCSAgICAgY29uc3QgdWludDMyX3QgdmFs MzIpCitzdGF0aWMgdm9pZCBmaWxsX3BhZ2VfZG1hXzMyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKKwkJCSAgICAgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAsIGNvbnN0IHVpbnQz Ml90IHZhbDMyKQogewogCXVpbnQ2NF90IHYgPSB2YWwzMjsKIAogCXYgPSB2IDw8IDMyIHwgdmFs MzI7CiAKLQlmaWxsX3BhZ2VfZG1hKGRldiwgcCwgdik7CisJZmlsbF9wYWdlX2RtYShkZXZfcHJp diwgcCwgdik7CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTQ3NCw3ICs0NzYsNyBAQCBzdGF0aWMgdm9p ZCBnZW44X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJc2Ny YXRjaF9wdGUgPSBnZW44X3B0ZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGFnZS5kYWRkciwKIAkJCQkg ICAgICBJOTE1X0NBQ0hFX0xMQywgdHJ1ZSk7CiAKLQlmaWxsX3B4KHZtLT5kZXYsIHB0LCBzY3Jh dGNoX3B0ZSk7CisJZmlsbF9weCh0b19pOTE1KHZtLT5kZXYpLCBwdCwgc2NyYXRjaF9wdGUpOwog fQogCiBzdGF0aWMgdm9pZCBnZW42X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19z cGFjZSAqdm0sCkBAIC00ODcsNyArNDg5LDcgQEAgc3RhdGljIHZvaWQgZ2VuNl9pbml0aWFsaXpl X3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXNjcmF0Y2hfcHRlID0gdm0tPnB0 ZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGFnZS5kYWRkciwKIAkJCQkgICAgIEk5MTVfQ0FDSEVfTExD LCB0cnVlLCAwKTsKIAotCWZpbGwzMl9weCh2bS0+ZGV2LCBwdCwgc2NyYXRjaF9wdGUpOworCWZp bGwzMl9weCh0b19pOTE1KHZtLT5kZXYpLCBwdCwgc2NyYXRjaF9wdGUpOwogfQogCiBzdGF0aWMg c3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKmFsbG9jX3BkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCkBAIC01MzQsNyArNTM2LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BkKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCiAJc2NyYXRjaF9wZGUgPSBnZW44X3BkZV9l bmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3B0KSwgSTkxNV9DQUNIRV9MTEMpOwogCi0JZmlsbF9w eCh2bS0+ZGV2LCBwZCwgc2NyYXRjaF9wZGUpOworCWZpbGxfcHgodG9faTkxNSh2bS0+ZGV2KSwg cGQsIHNjcmF0Y2hfcGRlKTsKIH0KIAogc3RhdGljIGludCBfX3BkcF9pbml0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCkBAIC02MTUsNyArNjE3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFs aXplX3BkcChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAogCXNjcmF0Y2hfcGRwZSA9 IGdlbjhfcGRwZV9lbmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BkKSwgSTkxNV9DQUNIRV9MTEMp OwogCi0JZmlsbF9weCh2bS0+ZGV2LCBwZHAsIHNjcmF0Y2hfcGRwZSk7CisJZmlsbF9weCh0b19p OTE1KHZtLT5kZXYpLCBwZHAsIHNjcmF0Y2hfcGRwZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjhf aW5pdGlhbGl6ZV9wbWw0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLApAQCAtNjI2LDcg KzYyOCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfaW5pdGlhbGl6ZV9wbWw0KHN0cnVjdCBpOTE1X2Fk ZHJlc3Nfc3BhY2UgKnZtLAogCXNjcmF0Y2hfcG1sNGUgPSBnZW44X3BtbDRlX2VuY29kZShweF9k bWEodm0tPnNjcmF0Y2hfcGRwKSwKIAkJCQkJICBJOTE1X0NBQ0hFX0xMQyk7CiAKLQlmaWxsX3B4 KHZtLT5kZXYsIHBtbDQsIHNjcmF0Y2hfcG1sNGUpOworCWZpbGxfcHgodG9faTkxNSh2bS0+ZGV2 KSwgcG1sNCwgc2NyYXRjaF9wbWw0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkCkBAIC0yMTM1LDcgKzIx MzcsNyBAQCBzdGF0aWMgdm9pZCBndHRfd3JpdGVfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkJSTkxNV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU44X0wzX0xSQV8x X0dQR1BVX0RFRkFVTFRfVkFMVUVfQ0hWKTsKIAllbHNlIGlmIChJU19TS1lMQUtFKGRldl9wcml2 KSkKIAkJSTkxNV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU45X0wzX0xSQV8xX0dQR1BV X0RFRkFVTFRfVkFMVUVfU0tMKTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCisJZWxzZSBp ZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFfMV9HUEdQ VSwgR0VOOV9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0JYVCk7CiB9CiAKQEAgLTI5MTIs NyArMjkxNCw3IEBAIHN0YXRpYyBpbnQgZ2d0dF9wcm9iZV9jb21tb24oc3RydWN0IGk5MTVfZ2d0 dCAqZ2d0dCwgdTY0IHNpemUpCiAJICogcmVzb3J0IHRvIGFuIHVuY2FjaGVkIG1hcHBpbmcuIFRo ZSBXQyBpc3N1ZSBpcyBlYXNpbHkgY2F1Z2h0IGJ5IHRoZQogCSAqIHJlYWRiYWNrIGNoZWNrIHdo ZW4gd3JpdGluZyBHVFQgUFRFIGVudHJpZXMuCiAJICovCi0JaWYgKElTX0JST1hUT04oZ2d0dC0+ YmFzZS5kZXYpKQorCWlmIChJU19CUk9YVE9OKHRvX2k5MTUoZ2d0dC0+YmFzZS5kZXYpKSkKIAkJ Z2d0dC0+Z3NtID0gaW9yZW1hcF9ub2NhY2hlKHBoeXNfYWRkciwgc2l6ZSk7CiAJZWxzZQogCQln Z3R0LT5nc20gPSBpb3JlbWFwX3djKHBoeXNfYWRkciwgc2l6ZSk7CkBAIC0zMjg0LDcgKzMyODYs NyBAQCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpCiAJZ2d0dC0+YmFzZS5jbG9zZWQgPSBmYWxzZTsKIAogCWlmIChJTlRFTF9JTkZPKGRl diktPmdlbiA+PSA4KSB7Ci0JCWlmIChJU19DSEVSUllWSUVXKGRldikgfHwgSVNfQlJPWFRPTihk ZXYpKQorCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgfHwgSVNfQlJPWFRPTihkZXZfcHJp dikpCiAJCQljaHZfc2V0dXBfcHJpdmF0ZV9wcGF0KGRldl9wcml2KTsKIAkJZWxzZQogCQkJYmR3 X3NldHVwX3ByaXZhdGVfcHBhdChkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwppbmRl eCBhZTQzZDVlYmQ3NmEuLmE5YTczYzRiNDkzMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCkBA IC00NTk3LDcgKzQ1OTcsNyBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBnZW44X2ly cV91bmluc3RhbGw7CiAJCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJsYW5rID0gZ2VuOF9lbmFibGVf dmJsYW5rOwogCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBnZW44X2Rpc2FibGVfdmJs YW5rOwotCQlpZiAoSVNfQlJPWFRPTihkZXYpKQorCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikp CiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gYnh0X2hwZF9pcnFfc2V0dXA7 CiAJCWVsc2UgaWYgKEhBU19QQ0hfU1BUKGRldl9wcml2KSB8fCBIQVNfUENIX0tCUChkZXZfcHJp dikpCiAJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gc3B0X2hwZF9pcnFfc2V0 dXA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCmluZGV4IDA3MTY0ZTI1MGFkZi4uYTc2YWZkN2E2 NjE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwpAQCAtMjUwOSw3ICsyNTA5LDcgQEAgdm9p ZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCkK IAkgKiBjb25maWd1cmF0aW9uIHNvIHRoYXQgd2UgdXNlIHRoZSBwcm9wZXIgbGFuZSBjb3VudCBm b3Igb3VyCiAJICogY2FsY3VsYXRpb25zLgogCSAqLwotCWlmIChJU19CUk9YVE9OKGRldikgJiYg cG9ydCA9PSBQT1JUX0EpIHsKKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikgJiYgcG9ydCA9PSBQ T1JUX0EpIHsKIAkJaWYgKCEoaW50ZWxfZGlnX3BvcnQtPnNhdmVkX3BvcnRfYml0cyAmIERESV9B XzRfTEFORVMpKSB7CiAJCQlEUk1fREVCVUdfS01TKCJCWFQgQklPUyBmb3Jnb3QgdG8gc2V0IERE SV9BXzRfTEFORVMgZm9yIHBvcnQgQTsgZml4aW5nXG4iKTsKIAkJCWludGVsX2RpZ19wb3J0LT5z YXZlZF9wb3J0X2JpdHMgfD0gRERJX0FfNF9MQU5FUzsKQEAgLTI1MzMsNyArMjUzMyw3IEBAIHZv aWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBvcnQp CiAJCSAqIE9uIEJYVCBBMC9BMSwgc3cgbmVlZHMgdG8gYWN0aXZhdGUgRERJQSBIUEQgbG9naWMg YW5kCiAJCSAqIGludGVycnVwdHMgdG8gY2hlY2sgdGhlIGV4dGVybmFsIHBhbmVsIGNvbm5lY3Rp b24uCiAJCSAqLwotCQlpZiAoSVNfQlhUX1JFVklEKGRldiwgMCwgQlhUX1JFVklEX0ExKSAmJiBw b3J0ID09IFBPUlRfQikKKwkJaWYgKElTX0JYVF9SRVZJRChkZXZfcHJpdiwgMCwgQlhUX1JFVklE X0ExKSAmJiBwb3J0ID09IFBPUlRfQikKIAkJCWRldl9wcml2LT5ob3RwbHVnLmlycV9wb3J0W1BP UlRfQV0gPSBpbnRlbF9kaWdfcG9ydDsKIAkJZWxzZQogCQkJZGV2X3ByaXYtPmhvdHBsdWcuaXJx X3BvcnRbcG9ydF0gPSBpbnRlbF9kaWdfcG9ydDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCAyYzc4OTkwMDBiNzQuLjNkMmJkNTUwNGFiNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwpAQCAtNjAwLDcgKzYwMCw3IEBAIGludCBjaHZfY2FsY19kcGxsX3Bh cmFtcyhpbnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqY2xvY2spCiAgKiB0aGUgZ2l2ZW4gY29ubmVj dG9ycy4KICAqLwogCi1zdGF0aWMgYm9vbCBpbnRlbF9QTExfaXNfdmFsaWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKK3N0YXRpYyBib29sIGludGVsX1BMTF9pc192YWxpZChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2xpbWl0 ICpsaW1pdCwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHBsbCAqY2xvY2spCiB7CkBAIC02MTMs MTIgKzYxMywxMyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9QTExfaXNfdmFsaWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAlpZiAoY2xvY2stPm0xICA8IGxpbWl0LT5tMS5taW4gIHx8IGxpbWl0LT5t MS5tYXggIDwgY2xvY2stPm0xKQogCQlJTlRFTFBsbEludmFsaWQoIm0xIG91dCBvZiByYW5nZVxu Iik7CiAKLQlpZiAoIUlTX1BJTkVWSUVXKGRldikgJiYgIUlTX1ZBTExFWVZJRVcoZGV2KSAmJgot CSAgICAhSVNfQ0hFUlJZVklFVyhkZXYpICYmICFJU19CUk9YVE9OKGRldikpCisJaWYgKCFJU19Q SU5FVklFVyhkZXZfcHJpdikgJiYgIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmCisJICAgICFJ U19DSEVSUllWSUVXKGRldl9wcml2KSAmJiAhSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCWlmIChj bG9jay0+bTEgPD0gY2xvY2stPm0yKQogCQkJSU5URUxQbGxJbnZhbGlkKCJtMSA8PSBtMlxuIik7 CiAKLQlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpICYmICFJ U19CUk9YVE9OKGRldikpIHsKKwlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmICFJU19D SEVSUllWSUVXKGRldl9wcml2KSAmJgorCSAgICAhSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJ aWYgKGNsb2NrLT5wIDwgbGltaXQtPnAubWluIHx8IGxpbWl0LT5wLm1heCA8IGNsb2NrLT5wKQog CQkJSU5URUxQbGxJbnZhbGlkKCJwIG91dCBvZiByYW5nZVxuIik7CiAJCWlmIChjbG9jay0+bSA8 IGxpbWl0LT5tLm1pbiB8fCBsaW1pdC0+bS5tYXggPCBjbG9jay0+bSkKQEAgLTY5OCw3ICs2OTks OCBAQCBpOXh4X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQs CiAJCQkJCWludCB0aGlzX2VycjsKIAogCQkJCQlpOXh4X2NhbGNfZHBsbF9wYXJhbXMocmVmY2xr LCAmY2xvY2spOwotCQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZChkZXYsIGxpbWl0LAorCQkJ CQlpZiAoIWludGVsX1BMTF9pc192YWxpZCh0b19pOTE1KGRldiksCisJCQkJCQkJCWxpbWl0LAog CQkJCQkJCQkmY2xvY2spKQogCQkJCQkJY29udGludWU7CiAJCQkJCWlmIChtYXRjaF9jbG9jayAm JgpAQCAtNzUzLDcgKzc1NSw4IEBAIHBudl9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50 ZWxfbGltaXQgKmxpbWl0LAogCQkJCQlpbnQgdGhpc19lcnI7CiAKIAkJCQkJcG52X2NhbGNfZHBs bF9wYXJhbXMocmVmY2xrLCAmY2xvY2spOwotCQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZChk ZXYsIGxpbWl0LAorCQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZCh0b19pOTE1KGRldiksCisJ CQkJCQkJCWxpbWl0LAogCQkJCQkJCQkmY2xvY2spKQogCQkJCQkJY29udGludWU7CiAJCQkJCWlm IChtYXRjaF9jbG9jayAmJgpAQCAtODEzLDcgKzgxNiw4IEBAIGc0eF9maW5kX2Jlc3RfZHBsbChj b25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAogCQkJCQlpbnQgdGhpc19lcnI7CiAKIAkJ CQkJaTl4eF9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNsb2NrKTsKLQkJCQkJaWYgKCFpbnRl bF9QTExfaXNfdmFsaWQoZGV2LCBsaW1pdCwKKwkJCQkJaWYgKCFpbnRlbF9QTExfaXNfdmFsaWQo dG9faTkxNShkZXYpLAorCQkJCQkJCQlsaW1pdCwKIAkJCQkJCQkJJmNsb2NrKSkKIAkJCQkJCWNv bnRpbnVlOwogCkBAIC05MDksNyArOTEzLDggQEAgdmx2X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0 cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCiAKIAkJCQkJdmx2X2NhbGNfZHBsbF9wYXJhbXMocmVm Y2xrLCAmY2xvY2spOwogCi0JCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRldiwgbGltaXQs CisJCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKHRvX2k5MTUoZGV2KSwKKwkJCQkJCQkJbGlt aXQsCiAJCQkJCQkJCSZjbG9jaykpCiAJCQkJCQljb250aW51ZTsKIApAQCAtOTc3LDcgKzk4Miw3 IEBAIGNodl9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAog CiAJCQljaHZfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGssICZjbG9jayk7CiAKLQkJCWlmICghaW50 ZWxfUExMX2lzX3ZhbGlkKGRldiwgbGltaXQsICZjbG9jaykpCisJCQlpZiAoIWludGVsX1BMTF9p c192YWxpZCh0b19pOTE1KGRldiksIGxpbWl0LCAmY2xvY2spKQogCQkJCWNvbnRpbnVlOwogCiAJ CQlpZiAoIXZsdl9QTExfaXNfb3B0aW1hbChkZXYsIHRhcmdldCwgJmNsb2NrLCBiZXN0X2Nsb2Nr LApAQCAtNTg1MCw3ICs1ODU1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX21heF9jZGNs ayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJbWF4X2NkY2xrID0gMzA4NTcxOwogCiAJCWRl dl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IHNrbF9jYWxjX2NkY2xrKG1heF9jZGNsaywgdmNvKTsK LQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgeworCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikpIHsKIAkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNjI0MDAwOwogCX0gZWxz ZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgIHsKIAkJLyoKQEAgLTEwNjQ4LDcgKzEwNjUz LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9nZXRfZGRpX3BvcnRfc3RhdGUoc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAKIAlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0Uo ZGV2X3ByaXYpKQogCQlza3lsYWtlX2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2Nv bmZpZyk7Ci0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQorCWVsc2UgaWYgKElTX0JST1hUT04o ZGV2X3ByaXYpKQogCQlieHRfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmln KTsKIAllbHNlCiAJCWhhc3dlbGxfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29u ZmlnKTsKQEAgLTEyODA2LDcgKzEyODExLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlEUk1fREVCVUdfS01TKCJpcHM6ICVp XG4iLCBwaXBlX2NvbmZpZy0+aXBzX2VuYWJsZWQpOwogCURSTV9ERUJVR19LTVMoImRvdWJsZSB3 aWRlOiAlaVxuIiwgcGlwZV9jb25maWctPmRvdWJsZV93aWRlKTsKIAotCWlmIChJU19CUk9YVE9O KGRldikpIHsKKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJRFJNX0RFQlVHX0tNUygi ZHBsbF9od19zdGF0ZTogZWJiMDogMHgleCwgZWJiNDogMHgleCwiCiAJCQkgICAgICAicGxsMDog MHgleCwgcGxsMTogMHgleCwgcGxsMjogMHgleCwgcGxsMzogMHgleCwgIgogCQkJICAgICAgInBs bDY6IDB4JXgsIHBsbDg6IDB4JXgsIHBsbDk6IDB4JXgsIHBsbDEwOiAweCV4LCBwY3NkdzEyOiAw eCV4XG4iLApAQCAtMTUzOTksNyArMTU0MDQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZXR1cF9v dXRwdXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJaWYgKGludGVsX2NydF9wcmVzZW50KGRl dikpCiAJCWludGVsX2NydF9pbml0KGRldik7CiAKLQlpZiAoSVNfQlJPWFRPTihkZXYpKSB7CisJ aWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCS8qCiAJCSAqIEZJWE1FOiBCcm94dG9uIGRv ZXNuJ3Qgc3VwcG9ydCBwb3J0IGRldGVjdGlvbiB2aWEgdGhlCiAJCSAqIERESV9CVUZfQ1RMX0Eg b3IgU0ZVU0VfU1RSQVAgcmVnaXN0ZXJzLCBmaW5kIGFub3RoZXIgd2F5IHRvCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwppbmRleCAwMmU3NGM0NjdhNTUuLmI2YzhiMjVlZTFkNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCkBAIC01NzEsNyArNTcxLDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5j ZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyOwogCiAJaWYgKFdBUk5fT04oIUlTX1ZBTExFWVZJRVcoZGV2KSAm JiAhSVNfQ0hFUlJZVklFVyhkZXYpICYmCi0JCSAgICAhSVNfQlJPWFRPTihkZXYpKSkKKwkJICAg ICFJU19CUk9YVE9OKGRldl9wcml2KSkpCiAJCXJldHVybjsKIAogCS8qCkBAIC01OTEsNyArNTkx LDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCQkJY29udGludWU7CiAKIAkJaW50ZWxfZHAgPSBlbmNfdG9faW50 ZWxfZHAoJmVuY29kZXItPmJhc2UpOwotCQlpZiAoSVNfQlJPWFRPTihkZXYpKQorCQlpZiAoSVNf QlJPWFRPTihkZXZfcHJpdikpCiAJCQlpbnRlbF9kcC0+cHBzX3Jlc2V0ID0gdHJ1ZTsKIAkJZWxz ZQogCQkJaW50ZWxfZHAtPnBwc19waXBlID0gSU5WQUxJRF9QSVBFOwpAQCAtMjk4MSw3ICsyOTgx LDcgQEAgaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJZW51bSBw b3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7CiAKLQlpZiAoSVNfQlJP WFRPTihkZXYpKQorCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJcmV0dXJuIERQX1RSQUlO X1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzsKIAllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+ PSA5KSB7CiAJCWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nICYmIHBvcnQgPT0gUE9S VF9BKQpAQCAtMzM0NCw3ICszMzQ0LDcgQEAgaW50ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlpZiAoSEFTX0RESShkZXZfcHJpdikpIHsKIAkJc2ln bmFsX2xldmVscyA9IGRkaV9zaWduYWxfbGV2ZWxzKGludGVsX2RwKTsKIAotCQlpZiAoSVNfQlJP WFRPTihkZXYpKQorCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCQlzaWduYWxfbGV2ZWxz ID0gMDsKIAkJZWxzZQogCQkJbWFzayA9IERESV9CVUZfRU1QX01BU0s7CkBAIC01MDcyLDcgKzUw NzIsNyBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJIChzZXEtPnQxMCA8PCBQQU5FTF9QT1dFUl9ET1dOX0RF TEFZX1NISUZUKTsKIAkvKiBDb21wdXRlIHRoZSBkaXZpc29yIGZvciB0aGUgcHAgY2xvY2ssIHNp bXBseSBtYXRjaCB0aGUgQnNwZWMKIAkgKiBmb3JtdWxhLiAqLwotCWlmIChJU19CUk9YVE9OKGRl dikpIHsKKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKIAkJcHBfZGl2ID0gSTkxNV9SRUFE KHJlZ3MucHBfY3RybCk7CiAJCXBwX2RpdiAmPSB+QlhUX1BPV0VSX0NZQ0xFX0RFTEFZX01BU0s7 CiAJCXBwX2RpdiB8PSAoRElWX1JPVU5EX1VQKChzZXEtPnQxMV90MTIgKyAxKSwgMTAwMCkKQEAg LTUwOTgsNyArNTA5OCw3IEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3Jl Z2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJSTkxNV9XUklURShyZWdzLnBwX29u LCBwcF9vbik7CiAJSTkxNV9XUklURShyZWdzLnBwX29mZiwgcHBfb2ZmKTsKLQlpZiAoSVNfQlJP WFRPTihkZXYpKQorCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJSTkxNV9XUklURShyZWdz LnBwX2N0cmwsIHBwX2Rpdik7CiAJZWxzZQogCQlJOTE1X1dSSVRFKHJlZ3MucHBfZGl2LCBwcF9k aXYpOwpAQCAtNTEwNiw3ICs1MTA2LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1 ZW5jZXJfcmVnaXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJRFJNX0RFQlVHX0tNUygi cGFuZWwgcG93ZXIgc2VxdWVuY2VyIHJlZ2lzdGVyIHNldHRpbmdzOiBQUF9PTiAlI3gsIFBQX09G RiAlI3gsIFBQX0RJViAlI3hcbiIsCiAJCSAgICAgIEk5MTVfUkVBRChyZWdzLnBwX29uKSwKIAkJ ICAgICAgSTkxNV9SRUFEKHJlZ3MucHBfb2ZmKSwKLQkJICAgICAgSVNfQlJPWFRPTihkZXYpID8K KwkJICAgICAgSVNfQlJPWFRPTihkZXZfcHJpdikgPwogCQkgICAgICAoSTkxNV9SRUFEKHJlZ3Mu cHBfY3RybCkgJiBCWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSykgOgogCQkgICAgICBJOTE1X1JF QUQocmVncy5wcF9kaXYpKTsKIH0KQEAgLTU3MTUsNyArNTcxNSw3IEBAIGludGVsX2RwX2luaXRf Y29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCQli cmVhazsKIAljYXNlIFBPUlRfQjoKIAkJaW50ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IEhQRF9QT1JU X0I7Ci0JCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRfUkVWSURfQTEpKQorCQlpZiAoSVNf QlhUX1JFVklEKGRldl9wcml2LCAwLCBCWFRfUkVWSURfQTEpKQogCQkJaW50ZWxfZW5jb2Rlci0+ aHBkX3BpbiA9IEhQRF9QT1JUX0E7CiAJCWJyZWFrOwogCWNhc2UgUE9SVF9DOgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggN2NmOWQ5MWMwNzQ2Li42MDVkMGI1MDlmMjQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwpAQCAtMTg1Myw3ICsxODUzLDcg QEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAK IAlpZiAoSVNfU0tZTEFLRShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQogCQlk cGxsX21nciA9ICZza2xfcGxsX21ncjsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCisJZWxz ZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCiAJCWRwbGxfbWdyID0gJmJ4dF9wbGxfbWdyOwog CWVsc2UgaWYgKEhBU19EREkoZGV2X3ByaXYpKQogCQlkcGxsX21nciA9ICZoc3dfcGxsX21ncjsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKaW5kZXggNWIxZTQ0NWE4MGQwLi40OGU4ZGQxMDhmNGYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCkBAIC00MzcsMTEgKzQzNywxMSBAQCBzdGF0aWMg dm9pZCB2bHZfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK IAogc3RhdGljIHZvaWQgaW50ZWxfZHNpX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5k ZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7CiAKLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2KSkKKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpCiAJCXZsdl9kc2lfZGV2aWNlX3JlYWR5KGVuY29kZXIpOwotCWVsc2UgaWYgKElTX0JS T1hUT04oZGV2KSkKKwllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJYnh0X2RzaV9k ZXZpY2VfcmVhZHkoZW5jb2Rlcik7CiB9CiAKQEAgLTQ2NCw3ICs0NjQsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kc2lfcG9ydF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCiAJ fQogCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQlpOTE1 X3JlZ190IHBvcnRfY3RybCA9IElTX0JST1hUT04oZGV2KSA/CisJCWk5MTVfcmVnX3QgcG9ydF9j dHJsID0gSVNfQlJPWFRPTihkZXZfcHJpdikgPwogCQkJQlhUX01JUElfUE9SVF9DVFJMKHBvcnQp IDogTUlQSV9QT1JUX0NUUkwocG9ydCk7CiAJCXUzMiB0ZW1wOwogCkBAIC00OTQsNyArNDk0LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3BvcnRfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlcikKIAllbnVtIHBvcnQgcG9ydDsKIAogCWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQs IGludGVsX2RzaS0+cG9ydHMpIHsKLQkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9O KGRldikgPworCQlpOTE1X3JlZ190IHBvcnRfY3RybCA9IElTX0JST1hUT04oZGV2X3ByaXYpID8K IAkJCUJYVF9NSVBJX1BPUlRfQ1RSTChwb3J0KSA6IE1JUElfUE9SVF9DVFJMKHBvcnQpOwogCQl1 MzIgdGVtcDsKIApAQCAtNjU2LDcgKzY1Niw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9kaXNh YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBpbnRlbF9k c2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewot CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfZHNpICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5i YXNlKTsKIAllbnVtIHBvcnQgcG9ydDsKQEAgLTY2NCw3ICs2NjMsNyBAQCBzdGF0aWMgdm9pZCBp bnRlbF9kc2lfY2xlYXJfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy KQogCURSTV9ERUJVR19LTVMoIlxuIik7CiAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxf ZHNpLT5wb3J0cykgewogCQkvKiBDb21tb24gYml0IGZvciBib3RoIE1JUEkgUG9ydCBBICYgTUlQ SSBQb3J0IEMgb24gVkxWL0NIViAqLwotCQlpOTE1X3JlZ190IHBvcnRfY3RybCA9IElTX0JST1hU T04oZGV2KSA/CisJCWk5MTVfcmVnX3QgcG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXZfcHJpdikg PwogCQkJQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpIDogTUlQSV9QT1JUX0NUUkwoUE9SVF9BKTsK IAkJdTMyIHZhbDsKIApAQCAtNzYyLDcgKzc2MSw3IEBAIHN0YXRpYyBib29sIGludGVsX2RzaV9n ZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAkvKiBYWFg6IHRo aXMgb25seSB3b3JrcyBmb3Igb25lIERTSSBvdXRwdXQgKi8KIAlmb3JfZWFjaF9kc2lfcG9ydChw b3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Ci0JCWk5MTVfcmVnX3QgY3RybF9yZWcgPSBJU19CUk9Y VE9OKGRldikgPworCQlpOTE1X3JlZ190IGN0cmxfcmVnID0gSVNfQlJPWFRPTihkZXZfcHJpdikg PwogCQkJQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpIDogTUlQSV9QT1JUX0NUUkwocG9ydCk7CiAJ CWJvb2wgZW5hYmxlZCA9IEk5MTVfUkVBRChjdHJsX3JlZykgJiBEUElfRU5BQkxFOwogCkBAIC05 NzAsMTEgKzk2OSwxMSBAQCBzdGF0aWMgdm9pZCBieHRfZHNpX2dldF9waXBlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHN0YXRpYyB2b2lkIGludGVsX2RzaV9nZXRfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29k ZXItPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXUzMiBwY2xrOwogCURSTV9ERUJVR19LTVMoIlxuIik7 CiAKLQlpZiAoSVNfQlJPWFRPTihkZXYpKQorCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJ Ynh0X2RzaV9nZXRfcGlwZV9jb25maWcoZW5jb2RlciwgcGlwZV9jb25maWcpOwogCiAJcGNsayA9 IGludGVsX2RzaV9nZXRfcGNsayhlbmNvZGVyLCBwaXBlX2NvbmZpZy0+cGlwZV9icHAsCkBAIC0x MDY2LDcgKzEwNjUsNyBAQCBzdGF0aWMgdm9pZCBzZXRfZHNpX3RpbWluZ3Moc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAogCWhicCA9IHR4Ynl0ZWNsa2hzKGhicCwgYnBwLCBsYW5lX2NvdW50 LCBpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0aW8pOwogCiAJZm9yX2VhY2hfZHNpX3BvcnQocG9y dCwgaW50ZWxfZHNpLT5wb3J0cykgewotCQlpZiAoSVNfQlJPWFRPTihkZXYpKSB7CisJCWlmIChJ U19CUk9YVE9OKGRldl9wcml2KSkgewogCQkJLyoKIAkJCSAqIFByb2dyYW0gaGRpc3BsYXkgYW5k IHZkaXNwbGF5IG9uIE1JUEkgdHJhbnNjb2Rlci4KIAkJCSAqIFRoaXMgaXMgZGlmZmVyZW50IGZy b20gY2FsY3VsYXRlZCBoYWN0aXZlIGFuZApAQCAtMTE1Myw3ICsxMTUyLDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIs CiAJCQl0bXAgJj0gflJFQURfUkVRVUVTVF9QUklPUklUWV9NQVNLOwogCQkJSTkxNV9XUklURShN SVBJX0NUUkwocG9ydCksIHRtcCB8CiAJCQkJCVJFQURfUkVRVUVTVF9QUklPUklUWV9ISUdIKTsK LQkJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldikpIHsKKwkJfSBlbHNlIGlmIChJU19CUk9YVE9O KGRldl9wcml2KSkgewogCQkJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJ CQl0bXAgPSBJOTE1X1JFQUQoTUlQSV9DVFJMKHBvcnQpKTsKQEAgLTEyNDIsNyArMTI0MSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyLAogCQlJOTE1X1dSSVRFKE1JUElfSU5JVF9DT1VOVChwb3J0KSwKIAkJCQl0eGNs a2VzYyhpbnRlbF9kc2ktPmVzY2FwZV9jbGtfZGl2LCAxMDApKTsKIAotCQlpZiAoSVNfQlJPWFRP TihkZXYpICYmICghaW50ZWxfZHNpLT5kdWFsX2xpbmspKSB7CisJCWlmIChJU19CUk9YVE9OKGRl dl9wcml2KSAmJiAoIWludGVsX2RzaS0+ZHVhbF9saW5rKSkgewogCQkJLyoKIAkJCSAqIEJYVCBz cGVjIHNheXMgd3JpdGUgTUlQSV9JTklUX0NPVU5UIGZvcgogCQkJICogYm90aCB0aGUgcG9ydHMs IGV2ZW4gaWYgb25seSBvbmUgaXMKQEAgLTE0NTIsNyArMTQ1MSw3IEBAIHZvaWQgaW50ZWxfZHNp X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWlmIChJU19WQUxMRVlWSUVXKGRldikg fHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7CiAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9IFZM Vl9NSVBJX0JBU0U7Ci0JfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldikpIHsKKwl9IGVsc2UgaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKSB7CiAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9IEJY VF9NSVBJX0JBU0U7CiAJfSBlbHNlIHsKIAkJRFJNX0VSUk9SKCJVbnN1cHBvcnRlZCBNaXBpIGRl dmljZSB0byByZWcgYmFzZSIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpX3BsbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCmluZGV4 IDZhYjU4YTAxYjE4ZS4uNTZlZmY2MDA0YmMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2lfcGxsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNp X3BsbC5jCkBAIC0zNTEsNyArMzUxLDcgQEAgc3RhdGljIHUzMiBieHRfZHNpX2dldF9wY2xrKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgcGlwZV9icHAsCiB1MzIgaW50ZWxfZHNp X2dldF9wY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgcGlwZV9icHAsCiAJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQogewotCWlmIChJU19CUk9Y VE9OKGVuY29kZXItPmJhc2UuZGV2KSkKKwlpZiAoSVNfQlJPWFRPTih0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KSkpCiAJCXJldHVybiBieHRfZHNpX2dldF9wY2xrKGVuY29kZXIsIHBpcGVfYnBw LCBjb25maWcpOwogCWVsc2UKIAkJcmV0dXJuIHZsdl9kc2lfZ2V0X3BjbGsoZW5jb2RlciwgcGlw ZV9icHAsIGNvbmZpZyk7CkBAIC01MTUsMTEgKzUxNSwxMSBAQCBib29sIGludGVsX2RzaV9wbGxf aXNfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBpbnQgaW50ZWxf Y29tcHV0ZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJICBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQogewotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBlbmNvZGVyLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAotCWlmIChJU19WQUxMRVlWSUVXKGRldikg fHwgSVNfQ0hFUlJZVklFVyhkZXYpKQorCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJ U19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJcmV0dXJuIHZsdl9jb21wdXRlX2RzaV9wbGwoZW5j b2RlciwgY29uZmlnKTsKLQllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCisJZWxzZSBpZiAoSVNf QlJPWFRPTihkZXZfcHJpdikpCiAJCXJldHVybiBieHRfY29tcHV0ZV9kc2lfcGxsKGVuY29kZXIs IGNvbmZpZyk7CiAKIAlyZXR1cm4gLUVOT0RFVjsKQEAgLTUyOCwyMSArNTI4LDIxIEBAIGludCBp bnRlbF9jb21wdXRlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiB2b2lk IGludGVsX2VuYWJsZV9kc2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJ ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQogewotCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAotCWlmIChJU19WQUxM RVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQorCWlmIChJU19WQUxMRVlWSUVXKGRl dl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKIAkJdmx2X2VuYWJsZV9kc2lfcGxs KGVuY29kZXIsIGNvbmZpZyk7Ci0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQorCWVsc2UgaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKQogCQlieHRfZW5hYmxlX2RzaV9wbGwoZW5jb2RlciwgY29u ZmlnKTsKIH0KIAogdm9pZCBpbnRlbF9kaXNhYmxlX2RzaV9wbGwoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2Uu ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwogCi0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVX KGRldikpCisJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQogCQl2bHZfZGlzYWJsZV9kc2lfcGxsKGVuY29kZXIpOwotCWVsc2UgaWYgKElTX0JS T1hUT04oZGV2KSkKKwllbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJYnh0X2Rpc2Fi bGVfZHNpX3BsbChlbmNvZGVyKTsKIH0KIApAQCAtNTY0LDEwICs1NjQsMTAgQEAgc3RhdGljIHZv aWQgYnh0X2RzaV9yZXNldF9jbG9ja3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGVu dW0gcG9ydCBwb3J0KQogCiB2b2lkIGludGVsX2RzaV9yZXNldF9jbG9ja3Moc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsIGVudW0gcG9ydCBwb3J0KQogewotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAotCWlmIChJU19CUk9YVE9OKGRl dikpCisJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQogCQlieHRfZHNpX3Jlc2V0X2Nsb2Nrcyhl bmNvZGVyLCBwb3J0KTsKLQllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZ VklFVyhkZXYpKQorCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKQogCQl2bHZfZHNpX3Jlc2V0X2Nsb2NrcyhlbmNvZGVyLCBwb3J0KTsK IH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIuYwppbmRleCAxODIyMDQzNzM5 MzEuLjVkNWQ2MDllZDVlOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Z3VjX2xvYWRlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2d1Y19sb2FkZXIu YwpAQCAtMzc2LDE2ICszNzYsMTYgQEAgc3RhdGljIGludCBndWNfdWNvZGVfeGZlcihzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJSTkxNV9XUklURShHVUNfU0hJTV9DT05UUk9M LCBHVUNfU0hJTV9DT05UUk9MX1ZBTFVFKTsKIAogCS8qIFdhRGlzYWJsZU1pbnV0ZUlhQ2xvY2tH YXRpbmc6Ynh0ICovCi0JaWYgKElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsK KwlpZiAoSVNfQlhUX1JFVklEKGRldl9wcml2LCAwLCBCWFRfUkVWSURfQTEpKSB7CiAJCUk5MTVf V1JJVEUoR1VDX1NISU1fQ09OVFJPTCwgKEk5MTVfUkVBRChHVUNfU0hJTV9DT05UUk9MKSAmCiAJ CQkJCSAgICAgIH5HVUNfRU5BQkxFX01JQV9DTE9DS19HQVRJTkcpKTsKIAl9CiAKIAkvKiBXYUM2 RGlzYWxsb3dCeUdmeFBhdXNlOmJ4dCAqLwotCWlmIChJU19CWFRfUkVWSUQoZGV2LCAwLCBCWFRf UkVWSURfQjApKQorCWlmIChJU19CWFRfUkVWSUQoZGV2X3ByaXYsIDAsIEJYVF9SRVZJRF9CMCkp CiAJCUk5MTVfV1JJVEUoR0VONl9HRlhQQVVTRSwgMHgzMEZGRik7CiAKLQlpZiAoSVNfQlJPWFRP TihkZXYpKQorCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKIAkJSTkxNV9XUklURShHRU45TFBf R1RfUE1fQ09ORklHLCBHVF9ET09SQkVMTF9FTkFCTEUpOwogCWVsc2UKIAkJSTkxNV9XUklURShH RU45X0dUX1BNX0NPTkZJRywgR1RfRE9PUkJFTExfRU5BQkxFKTsKQEAgLTczMCw3ICs3MzAsNyBA QCB2b2lkIGludGVsX2d1Y19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCWZ3X3BhdGgg PSBJOTE1X1NLTF9HVUNfVUNPREU7CiAJCWd1Y19mdy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9IFNL TF9GV19NQUpPUjsKIAkJZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkID0gU0tMX0ZXX01JTk9S OwotCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7CisJfSBlbHNlIGlmIChJU19CUk9YVE9O KGRldl9wcml2KSkgewogCQlmd19wYXRoID0gSTkxNV9CWFRfR1VDX1VDT0RFOwogCQlndWNfZnct Pmd1Y19md19tYWpvcl93YW50ZWQgPSBCWFRfRldfTUFKT1I7CiAJCWd1Y19mdy0+Z3VjX2Z3X21p bm9yX3dhbnRlZCA9IEJYVF9GV19NSU5PUjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwppbmRl eCA2NjA3YzRlM2MzNmMuLmY2NTYyNDUxYzQ3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWku YwpAQCAtMTI0MSw3ICsxMjQxLDcgQEAgc3RhdGljIGVudW0gZHJtX21vZGVfc3RhdHVzCiBoZG1p X3BvcnRfY2xvY2tfdmFsaWQoc3RydWN0IGludGVsX2hkbWkgKmhkbWksCiAJCSAgICAgIGludCBj bG9jaywgYm9vbCByZXNwZWN0X2Rvd25zdHJlYW1fbGltaXRzKQogewotCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBpbnRlbF9oZG1pX3RvX2RldihoZG1pKTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2hkbWlfdG9fZGV2KGhkbWkpKTsKIAogCWlm IChjbG9jayA8IDI1MDAwKQogCQlyZXR1cm4gTU9ERV9DTE9DS19MT1c7CkBAIC0xMjQ5LDExICsx MjQ5LDExIEBAIGhkbWlfcG9ydF9jbG9ja192YWxpZChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwK IAkJcmV0dXJuIE1PREVfQ0xPQ0tfSElHSDsKIAogCS8qIEJYVCBEUExMIGNhbid0IGdlbmVyYXRl IDIyMy0yNDAgTUh6ICovCi0JaWYgKElTX0JST1hUT04oZGV2KSAmJiBjbG9jayA+IDIyMzMzMyAm JiBjbG9jayA8IDI0MDAwMCkKKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikgJiYgY2xvY2sgPiAy MjMzMzMgJiYgY2xvY2sgPCAyNDAwMDApCiAJCXJldHVybiBNT0RFX0NMT0NLX1JBTkdFOwogCiAJ LyogQ0hWIERQTEwgY2FuJ3QgZ2VuZXJhdGUgMjE2LTI0MCBNSHogKi8KLQlpZiAoSVNfQ0hFUlJZ VklFVyhkZXYpICYmIGNsb2NrID4gMjE2MDAwICYmIGNsb2NrIDwgMjQwMDAwKQorCWlmIChJU19D SEVSUllWSUVXKGRldl9wcml2KSAmJiBjbG9jayA+IDIxNjAwMCAmJiBjbG9jayA8IDI0MDAwMCkK IAkJcmV0dXJuIE1PREVfQ0xPQ0tfUkFOR0U7CiAKIAlyZXR1cm4gTU9ERV9PSzsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwppbmRleCAwMjVmYmQ1MjI4MTkuLmU0YmI4NWM5 YzZlMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwpAQCAtMjU5Niw3 ICsyNTk2LDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXRfaHcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHJlc3VtZSkKIAogCWlmIChJU19TS1lMQUtFKGRl dl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpIHsKIAkJc2tsX2Rpc3BsYXlfY29yZV9p bml0KGRldl9wcml2LCByZXN1bWUpOwotCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7CisJ fSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewogCQlieHRfZGlzcGxheV9jb3JlX2lu aXQoZGV2X3ByaXYsIHJlc3VtZSk7CiAJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpIHsK IAkJbXV0ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Ci0tIAoyLjcuNAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==