From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 13/19] drm/i915: Make IS_BROXTON only take dev_priv Date: Wed, 12 Oct 2016 13:06:51 +0100 Message-ID: <165d16f5-248b-1717-7622-75cdd7740d21@linux.intel.com> References: <1476192112-25336-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1476192112-25336-14-git-send-email-tvrtko.ursulin@linux.intel.com> <20161012115206.ctoib72o7ltgy7ct@boom> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 530A96E3B0 for ; Wed, 12 Oct 2016 12:06:54 +0000 (UTC) In-Reply-To: <20161012115206.ctoib72o7ltgy7ct@boom> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDEyLzEwLzIwMTYgMTI6NTIsIERhdmlkIFdlaW5laGFsbCB3cm90ZToKPiBPbiBUdWUsIE9j dCAxMSwgMjAxNiBhdCAwMjoyMTo0NlBNICswMTAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4g RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4KPj4gU2F2 ZXMgMTM5MiBieXRlcyBvZiAucm9kYXRhIHN0cmluZ3MuCj4+Cj4+IHYyOiBBZGQgcGFyYW50aGVz ZXMgYXJvdW5kIGRldl9wcml2LiAoVmlsbGUgU3lyamFsYSkKPj4KPj4gU2lnbmVkLW9mZi1ieTog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPiBUaGlzIHBhdGNoIGRv ZXMgcXVpdGUgYSBiaXQgbW9yZSB0aGFuIGp1c3QgY2hhbmdlIElTX0JST1hUT04gdG8gdXNlCj4g ZGV2X3ByaXYuLi4KClNvbWUgY2FzY2FkZSBlZmZlY3RzIG9uIGZ1bmN0aW9uIHByb3RvdHlwZXMg aGVyZSBhbmQgdGhlcmUgLSBpZiB5b3UgZmluZCAKaXQgb2JqZWN0aW9uYWJsZSBJIGNhbiB0cnkg dG8gZWxpbWluYXRlIG9yIGF0IGxlYXN0IG1pbmltaXNlPwoKUmVnYXJkcywKClR2cnRrbwoKPj4g LS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgICAgIHwgIDIgKy0K Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgNSArKystLQo+ PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICB8IDQwICsrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgICAgICAgICB8ICAyICstCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMgICAgICAgIHwgIDQgKystLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyAgICB8IDMxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0KPj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jICAgICAgICAgfCAxNiArKysrKystLS0tLS0tCj4+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyAgIHwgIDIgKy0KPj4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgICAgfCAyNyArKysrKysrKysrKy0tLS0tLS0tLS0t Cj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jICAgIHwgMjYgKysrKysr KysrKy0tLS0tLS0tLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRl ci5jIHwgIDggKysrLS0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAg ICAgICB8ICA2ICsrLS0tCj4+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9w bS5jIHwgIDIgKy0KPj4gICAxMyBmaWxlcyBjaGFuZ2VkLCA4OSBpbnNlcnRpb25zKCspLCA4MiBk ZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+IGluZGV4IGQ4NTRlYTRh N2U5Mi4uMThhZjZkMWNjZWM5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4gQEAg LTI0MzcsNyArMjQzNyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9yZXN1bWUoc3RydWN0 IGRldmljZSAqa2RldikKPj4gICAJaWYgKElTX0dFTjYoZGV2X3ByaXYpKQo+PiAgIAkJaW50ZWxf aW5pdF9wY2hfcmVmY2xrKGRldik7Cj4+ICAgCj4+IC0JaWYgKElTX0JST1hUT04oZGV2KSkgewo+ PiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+PiAgIAkJYnh0X2Rpc2FibGVfZGM5KGRl dl9wcml2KTsKPj4gICAJCWJ4dF9kaXNwbGF5X2NvcmVfaW5pdChkZXZfcHJpdiwgdHJ1ZSk7Cj4+ ICAgCQlpZiAoZGV2X3ByaXYtPmNzci5kbWNfcGF5bG9hZCAmJgo+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPj4gaW5kZXggOTc4NGU2MTQwMGU1Li5hZDkyOTkxOTZkMTMgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+PiBAQCAtMjY2NCw3ICsyNjY0LDcgQEAgc3RydWN0IGRybV9pOTE1 X2NtZF90YWJsZSB7Cj4+ICAgI2RlZmluZSBJU19IQVNXRUxMKGRldl9wcml2KQkoKGRldl9wcml2 KS0+aW5mby5pc19oYXN3ZWxsKQo+PiAgICNkZWZpbmUgSVNfQlJPQURXRUxMKGRldl9wcml2KQko KGRldl9wcml2KS0+aW5mby5pc19icm9hZHdlbGwpCj4+ICAgI2RlZmluZSBJU19TS1lMQUtFKGRl dl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19za3lsYWtlKQo+PiAtI2RlZmluZSBJU19CUk9Y VE9OKGRldikJCShJTlRFTF9JTkZPKGRldiktPmlzX2Jyb3h0b24pCj4+ICsjZGVmaW5lIElTX0JS T1hUT04oZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX2Jyb3h0b24pCj4+ICAgI2RlZmlu ZSBJU19LQUJZTEFLRShkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfa2FieWxha2UpCj4+ ICAgI2RlZmluZSBJU19NT0JJTEUoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+aXNfbW9iaWxlKQo+ PiAgICNkZWZpbmUgSVNfSFNXX0VBUkxZX1NEVihkZXZfcHJpdikgKElTX0hBU1dFTEwoZGV2X3By aXYpICYmIFwKPj4gQEAgLTI3MjQsNyArMjcyNCw4IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFi bGUgewo+PiAgICNkZWZpbmUgQlhUX1JFVklEX0IwCQkweDMKPj4gICAjZGVmaW5lIEJYVF9SRVZJ RF9DMAkJMHg5Cj4+ICAgCj4+IC0jZGVmaW5lIElTX0JYVF9SRVZJRChwLCBzaW5jZSwgdW50aWwp IChJU19CUk9YVE9OKHApICYmIElTX1JFVklEKHAsIHNpbmNlLCB1bnRpbCkpCj4+ICsjZGVmaW5l IElTX0JYVF9SRVZJRChkZXZfcHJpdiwgc2luY2UsIHVudGlsKSBcCj4+ICsJKElTX0JST1hUT04o ZGV2X3ByaXYpICYmIElTX1JFVklEKGRldl9wcml2LCBzaW5jZSwgdW50aWwpKQo+PiAgIAo+PiAg ICNkZWZpbmUgS0JMX1JFVklEX0EwCQkweDAKPj4gICAjZGVmaW5lIEtCTF9SRVZJRF9CMAkJMHgx Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4+IGluZGV4IGNmNDNhNTYzMjk2MS4u ZTYyODY5MWZlOTdlIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9ndHQuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+PiBA QCAtMzczLDI3ICszNzMsMjkgQEAgc3RhdGljIHZvaWQgKmttYXBfcGFnZV9kbWEoc3RydWN0IGk5 MTVfcGFnZV9kbWEgKnApCj4+ICAgLyogV2UgdXNlIHRoZSBmbHVzaGluZyB1bm1hcCBvbmx5IHdp dGggcHBndHQgc3RydWN0dXJlczoKPj4gICAgKiBwYWdlIGRpcmVjdG9yaWVzLCBwYWdlIHRhYmxl cyBhbmQgc2NyYXRjaCBwYWdlcy4KPj4gICAgKi8KPj4gLXN0YXRpYyB2b2lkIGt1bm1hcF9wYWdl X2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICp2YWRkcikKPj4gK3N0YXRpYyB2b2lk IGt1bm1hcF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHZvaWQg KnZhZGRyKQo+PiAgIHsKPj4gICAJLyogVGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9y IGdlbiA+PTYuIGNodiBhbmQgYnh0Lgo+PiAgIAkgKiBBbmQgd2UgYXJlIG5vdCBzdXJlIGFib3V0 IHRoZSBsYXR0ZXIgc28gcGxheSBzYWZlIGZvciBub3cuCj4+ICAgCSAqLwo+PiAtCWlmIChJU19D SEVSUllWSUVXKGRldikgfHwgSVNfQlJPWFRPTihkZXYpKQo+PiArCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRldl9wcml2KSkKPj4gICAJCWRybV9jbGZsdXNoX3Zp cnRfcmFuZ2UodmFkZHIsIFBBR0VfU0laRSk7Cj4+ICAgCj4+ICAgCWt1bm1hcF9hdG9taWModmFk ZHIpOwo+PiAgIH0KPj4gICAKPj4gICAjZGVmaW5lIGttYXBfcHgocHgpIGttYXBfcGFnZV9kbWEo cHhfYmFzZShweCkpCj4+IC0jZGVmaW5lIGt1bm1hcF9weChwcGd0dCwgdmFkZHIpIGt1bm1hcF9w YWdlX2RtYSgocHBndHQpLT5iYXNlLmRldiwgKHZhZGRyKSkKPj4gKyNkZWZpbmUga3VubWFwX3B4 KHBwZ3R0LCB2YWRkcikgXAo+PiArCQlrdW5tYXBfcGFnZV9kbWEodG9faTkxNSgocHBndHQpLT5i YXNlLmRldiksICh2YWRkcikpCj4+ICAgCj4+ICAgI2RlZmluZSBzZXR1cF9weChkZXYsIHB4KSBz ZXR1cF9wYWdlX2RtYSgoZGV2KSwgcHhfYmFzZShweCkpCj4+ICAgI2RlZmluZSBjbGVhbnVwX3B4 KGRldiwgcHgpIGNsZWFudXBfcGFnZV9kbWEoKGRldiksIHB4X2Jhc2UocHgpKQo+PiAtI2RlZmlu ZSBmaWxsX3B4KGRldiwgcHgsIHYpIGZpbGxfcGFnZV9kbWEoKGRldiksIHB4X2Jhc2UocHgpLCAo dikpCj4+IC0jZGVmaW5lIGZpbGwzMl9weChkZXYsIHB4LCB2KSBmaWxsX3BhZ2VfZG1hXzMyKChk ZXYpLCBweF9iYXNlKHB4KSwgKHYpKQo+PiArI2RlZmluZSBmaWxsX3B4KGRldl9wcml2LCBweCwg dikgZmlsbF9wYWdlX2RtYSgoZGV2X3ByaXYpLCBweF9iYXNlKHB4KSwgKHYpKQo+PiArI2RlZmlu ZSBmaWxsMzJfcHgoZGV2X3ByaXYsIHB4LCB2KSBcCj4+ICsJCWZpbGxfcGFnZV9kbWFfMzIoKGRl dl9wcml2KSwgcHhfYmFzZShweCksICh2KSkKPj4gICAKPj4gLXN0YXRpYyB2b2lkIGZpbGxfcGFn ZV9kbWEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAsCj4+ IC0JCQkgIGNvbnN0IHVpbnQ2NF90IHZhbCkKPj4gK3N0YXRpYyB2b2lkIGZpbGxfcGFnZV9kbWEo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+PiArCQkJICBzdHJ1Y3QgaTkxNV9w YWdlX2RtYSAqcCwgY29uc3QgdWludDY0X3QgdmFsKQo+PiAgIHsKPj4gICAJaW50IGk7Cj4+ICAg CXVpbnQ2NF90ICogY29uc3QgdmFkZHIgPSBrbWFwX3BhZ2VfZG1hKHApOwo+PiBAQCAtNDAxLDE3 ICs0MDMsMTcgQEAgc3RhdGljIHZvaWQgZmlsbF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgaTkxNV9wYWdlX2RtYSAqcCwKPj4gICAJZm9yIChpID0gMDsgaSA8IDUxMjsg aSsrKQo+PiAgIAkJdmFkZHJbaV0gPSB2YWw7Cj4+ICAgCj4+IC0Ja3VubWFwX3BhZ2VfZG1hKGRl diwgdmFkZHIpOwo+PiArCWt1bm1hcF9wYWdlX2RtYShkZXZfcHJpdiwgdmFkZHIpOwo+PiAgIH0K Pj4gICAKPj4gLXN0YXRpYyB2b2lkIGZpbGxfcGFnZV9kbWFfMzIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAsCj4+IC0JCQkgICAgIGNvbnN0IHVpbnQzMl90 IHZhbDMyKQo+PiArc3RhdGljIHZvaWQgZmlsbF9wYWdlX2RtYV8zMihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICsJCQkgICAgIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwLCBj b25zdCB1aW50MzJfdCB2YWwzMikKPj4gICB7Cj4+ICAgCXVpbnQ2NF90IHYgPSB2YWwzMjsKPj4g ICAKPj4gICAJdiA9IHYgPDwgMzIgfCB2YWwzMjsKPj4gICAKPj4gLQlmaWxsX3BhZ2VfZG1hKGRl diwgcCwgdik7Cj4+ICsJZmlsbF9wYWdlX2RtYShkZXZfcHJpdiwgcCwgdik7Cj4+ICAgfQo+PiAg IAo+PiAgIHN0YXRpYyBpbnQKPj4gQEAgLTQ3NCw3ICs0NzYsNyBAQCBzdGF0aWMgdm9pZCBnZW44 X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4+ICAgCXNjcmF0 Y2hfcHRlID0gZ2VuOF9wdGVfZW5jb2RlKHZtLT5zY3JhdGNoX3BhZ2UuZGFkZHIsCj4+ICAgCQkJ CSAgICAgIEk5MTVfQ0FDSEVfTExDLCB0cnVlKTsKPj4gICAKPj4gLQlmaWxsX3B4KHZtLT5kZXYs IHB0LCBzY3JhdGNoX3B0ZSk7Cj4+ICsJZmlsbF9weCh0b19pOTE1KHZtLT5kZXYpLCBwdCwgc2Ny YXRjaF9wdGUpOwo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMgdm9pZCBnZW42X2luaXRpYWxpemVf cHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4+IEBAIC00ODcsNyArNDg5LDcgQEAg c3RhdGljIHZvaWQgZ2VuNl9pbml0aWFsaXplX3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2Ug KnZtLAo+PiAgIAlzY3JhdGNoX3B0ZSA9IHZtLT5wdGVfZW5jb2RlKHZtLT5zY3JhdGNoX3BhZ2Uu ZGFkZHIsCj4+ICAgCQkJCSAgICAgSTkxNV9DQUNIRV9MTEMsIHRydWUsIDApOwo+PiAgIAo+PiAt CWZpbGwzMl9weCh2bS0+ZGV2LCBwdCwgc2NyYXRjaF9wdGUpOwo+PiArCWZpbGwzMl9weCh0b19p OTE1KHZtLT5kZXYpLCBwdCwgc2NyYXRjaF9wdGUpOwo+PiAgIH0KPj4gICAKPj4gICBzdGF0aWMg c3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKmFsbG9jX3BkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4+IEBAIC01MzQsNyArNTM2LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3Bk KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+PiAgIAo+PiAgIAlzY3JhdGNoX3BkZSA9 IGdlbjhfcGRlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcHQpLCBJOTE1X0NBQ0hFX0xMQyk7 Cj4+ICAgCj4+IC0JZmlsbF9weCh2bS0+ZGV2LCBwZCwgc2NyYXRjaF9wZGUpOwo+PiArCWZpbGxf cHgodG9faTkxNSh2bS0+ZGV2KSwgcGQsIHNjcmF0Y2hfcGRlKTsKPj4gICB9Cj4+ICAgCj4+ICAg c3RhdGljIGludCBfX3BkcF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+IEBAIC02MTUs NyArNjE3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BkcChzdHJ1Y3QgaTkxNV9h ZGRyZXNzX3NwYWNlICp2bSwKPj4gICAKPj4gICAJc2NyYXRjaF9wZHBlID0gZ2VuOF9wZHBlX2Vu Y29kZShweF9kbWEodm0tPnNjcmF0Y2hfcGQpLCBJOTE1X0NBQ0hFX0xMQyk7Cj4+ICAgCj4+IC0J ZmlsbF9weCh2bS0+ZGV2LCBwZHAsIHNjcmF0Y2hfcGRwZSk7Cj4+ICsJZmlsbF9weCh0b19pOTE1 KHZtLT5kZXYpLCBwZHAsIHNjcmF0Y2hfcGRwZSk7Cj4+ICAgfQo+PiAgIAo+PiAgIHN0YXRpYyB2 b2lkIGdlbjhfaW5pdGlhbGl6ZV9wbWw0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ PiBAQCAtNjI2LDcgKzYyOCw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfaW5pdGlhbGl6ZV9wbWw0KHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+PiAgIAlzY3JhdGNoX3BtbDRlID0gZ2VuOF9w bWw0ZV9lbmNvZGUocHhfZG1hKHZtLT5zY3JhdGNoX3BkcCksCj4+ICAgCQkJCQkgIEk5MTVfQ0FD SEVfTExDKTsKPj4gICAKPj4gLQlmaWxsX3B4KHZtLT5kZXYsIHBtbDQsIHNjcmF0Y2hfcG1sNGUp Owo+PiArCWZpbGxfcHgodG9faTkxNSh2bS0+ZGV2KSwgcG1sNCwgc2NyYXRjaF9wbWw0ZSk7Cj4+ ICAgfQo+PiAgIAo+PiAgIHN0YXRpYyB2b2lkCj4+IEBAIC0yMTM1LDcgKzIxMzcsNyBAQCBzdGF0 aWMgdm9pZCBndHRfd3JpdGVfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4g ICAJCUk5MTVfV1JJVEUoR0VOOF9MM19MUkFfMV9HUEdQVSwgR0VOOF9MM19MUkFfMV9HUEdQVV9E RUZBVUxUX1ZBTFVFX0NIVik7Cj4+ICAgCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ PiAgIAkJSTkxNV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU45X0wzX0xSQV8xX0dQR1BV X0RFRkFVTFRfVkFMVUVfU0tMKTsKPj4gLQllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCj4+ICsJ ZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4+ICAgCQlJOTE1X1dSSVRFKEdFTjhfTDNf TFJBXzFfR1BHUFUsIEdFTjlfTDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9CWFQpOwo+PiAg IH0KPj4gICAKPj4gQEAgLTI4OTUsNyArMjg5Nyw3IEBAIHN0YXRpYyBpbnQgZ2d0dF9wcm9iZV9j b21tb24oc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCwgdTY0IHNpemUpCj4+ICAgCSAqIHJlc29ydCB0 byBhbiB1bmNhY2hlZCBtYXBwaW5nLiBUaGUgV0MgaXNzdWUgaXMgZWFzaWx5IGNhdWdodCBieSB0 aGUKPj4gICAJICogcmVhZGJhY2sgY2hlY2sgd2hlbiB3cml0aW5nIEdUVCBQVEUgZW50cmllcy4K Pj4gICAJICovCj4+IC0JaWYgKElTX0JST1hUT04oZ2d0dC0+YmFzZS5kZXYpKQo+PiArCWlmIChJ U19CUk9YVE9OKHRvX2k5MTUoZ2d0dC0+YmFzZS5kZXYpKSkKPj4gICAJCWdndHQtPmdzbSA9IGlv cmVtYXBfbm9jYWNoZShwaHlzX2FkZHIsIHNpemUpOwo+PiAgIAllbHNlCj4+ICAgCQlnZ3R0LT5n c20gPSBpb3JlbWFwX3djKHBoeXNfYWRkciwgc2l6ZSk7Cj4+IEBAIC0zMjY3LDcgKzMyNjksNyBA QCB2b2lkIGk5MTVfZ2VtX3Jlc3RvcmVfZ3R0X21hcHBpbmdzKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYpCj4+ICAgCWdndHQtPmJhc2UuY2xvc2VkID0gZmFsc2U7Cj4+ICAgCj4+ICAgCWlmIChJTlRF TF9JTkZPKGRldiktPmdlbiA+PSA4KSB7Cj4+IC0JCWlmIChJU19DSEVSUllWSUVXKGRldikgfHwg SVNfQlJPWFRPTihkZXYpKQo+PiArCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgfHwgSVNf QlJPWFRPTihkZXZfcHJpdikpCj4+ICAgCQkJY2h2X3NldHVwX3ByaXZhdGVfcHBhdChkZXZfcHJp dik7Cj4+ICAgCQllbHNlCj4+ICAgCQkJYmR3X3NldHVwX3ByaXZhdGVfcHBhdChkZXZfcHJpdik7 Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+PiBpbmRleCA0NzMzN2FhYmMzMjYuLjc1ZjRiYTkz NWViYyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4+IEBAIC00NTk3LDcgKzQ1OTcs NyBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPj4gICAJCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gZ2VuOF9pcnFfdW5pbnN0YWxs Owo+PiAgIAkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBnZW44X2VuYWJsZV92Ymxhbms7 Cj4+ICAgCQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBnZW44X2Rpc2FibGVfdmJsYW5r Owo+PiAtCQlpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiArCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJp dikpCj4+ICAgCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGJ4dF9ocGRfaXJx X3NldHVwOwo+PiAgIAkJZWxzZSBpZiAoSEFTX1BDSF9TUFQoZGV2X3ByaXYpIHx8IEhBU19QQ0hf S0JQKGRldl9wcml2KSkKPj4gICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0g c3B0X2hwZF9pcnFfc2V0dXA7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4+IGluZGV4IDA3 MTY0ZTI1MGFkZi4uYTc2YWZkN2E2NjE2IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGku Ywo+PiBAQCAtMjUwOSw3ICsyNTA5LDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCkKPj4gICAJICogY29uZmlndXJhdGlvbiBzbyB0 aGF0IHdlIHVzZSB0aGUgcHJvcGVyIGxhbmUgY291bnQgZm9yIG91cgo+PiAgIAkgKiBjYWxjdWxh dGlvbnMuCj4+ICAgCSAqLwo+PiAtCWlmIChJU19CUk9YVE9OKGRldikgJiYgcG9ydCA9PSBQT1JU X0EpIHsKPj4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikgJiYgcG9ydCA9PSBQT1JUX0EpIHsK Pj4gICAJCWlmICghKGludGVsX2RpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgJiBERElfQV80X0xB TkVTKSkgewo+PiAgIAkJCURSTV9ERUJVR19LTVMoIkJYVCBCSU9TIGZvcmdvdCB0byBzZXQgRERJ X0FfNF9MQU5FUyBmb3IgcG9ydCBBOyBmaXhpbmdcbiIpOwo+PiAgIAkJCWludGVsX2RpZ19wb3J0 LT5zYXZlZF9wb3J0X2JpdHMgfD0gRERJX0FfNF9MQU5FUzsKPj4gQEAgLTI1MzMsNyArMjUzMyw3 IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0 IHBvcnQpCj4+ICAgCQkgKiBPbiBCWFQgQTAvQTEsIHN3IG5lZWRzIHRvIGFjdGl2YXRlIERESUEg SFBEIGxvZ2ljIGFuZAo+PiAgIAkJICogaW50ZXJydXB0cyB0byBjaGVjayB0aGUgZXh0ZXJuYWwg cGFuZWwgY29ubmVjdGlvbi4KPj4gICAJCSAqLwo+PiAtCQlpZiAoSVNfQlhUX1JFVklEKGRldiwg MCwgQlhUX1JFVklEX0ExKSAmJiBwb3J0ID09IFBPUlRfQikKPj4gKwkJaWYgKElTX0JYVF9SRVZJ RChkZXZfcHJpdiwgMCwgQlhUX1JFVklEX0ExKSAmJiBwb3J0ID09IFBPUlRfQikKPj4gICAJCQlk ZXZfcHJpdi0+aG90cGx1Zy5pcnFfcG9ydFtQT1JUX0FdID0gaW50ZWxfZGlnX3BvcnQ7Cj4+ICAg CQllbHNlCj4+ICAgCQkJZGV2X3ByaXYtPmhvdHBsdWcuaXJxX3BvcnRbcG9ydF0gPSBpbnRlbF9k aWdfcG9ydDsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+PiBpbmRleCBlNjcz YTgwM2YyMTMuLjYzNmU1NTcyYjk5NiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+PiBAQCAtNjAwLDcgKzYwMCw3IEBAIGludCBjaHZfY2FsY19kcGxsX3BhcmFtcyhp bnQgcmVmY2xrLCBzdHJ1Y3QgZHBsbCAqY2xvY2spCj4+ICAgICogdGhlIGdpdmVuIGNvbm5lY3Rv cnMuCj4+ICAgICovCj4+ICAgCj4+IC1zdGF0aWMgYm9vbCBpbnRlbF9QTExfaXNfdmFsaWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPj4gK3N0YXRpYyBib29sIGludGVsX1BMTF9pc192YWxpZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+ICAgCQkJICAgICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCj4+ICAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcGxs ICpjbG9jaykKPj4gICB7Cj4+IEBAIC02MTMsMTIgKzYxMywxMyBAQCBzdGF0aWMgYm9vbCBpbnRl bF9QTExfaXNfdmFsaWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAJaWYgKGNsb2NrLT5t MSAgPCBsaW1pdC0+bTEubWluICB8fCBsaW1pdC0+bTEubWF4ICA8IGNsb2NrLT5tMSkKPj4gICAJ CUlOVEVMUGxsSW52YWxpZCgibTEgb3V0IG9mIHJhbmdlXG4iKTsKPj4gICAKPj4gLQlpZiAoIUlT X1BJTkVWSUVXKGRldikgJiYgIUlTX1ZBTExFWVZJRVcoZGV2KSAmJgo+PiAtCSAgICAhSVNfQ0hF UlJZVklFVyhkZXYpICYmICFJU19CUk9YVE9OKGRldikpCj4+ICsJaWYgKCFJU19QSU5FVklFVyhk ZXZfcHJpdikgJiYgIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmCj4+ICsJICAgICFJU19DSEVS UllWSUVXKGRldl9wcml2KSAmJiAhSVNfQlJPWFRPTihkZXZfcHJpdikpCj4+ICAgCQlpZiAoY2xv Y2stPm0xIDw9IGNsb2NrLT5tMikKPj4gICAJCQlJTlRFTFBsbEludmFsaWQoIm0xIDw9IG0yXG4i KTsKPj4gICAKPj4gLQlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhk ZXYpICYmICFJU19CUk9YVE9OKGRldikpIHsKPj4gKwlpZiAoIUlTX1ZBTExFWVZJRVcoZGV2X3By aXYpICYmICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJgo+PiArCSAgICAhSVNfQlJPWFRPTihk ZXZfcHJpdikpIHsKPj4gICAJCWlmIChjbG9jay0+cCA8IGxpbWl0LT5wLm1pbiB8fCBsaW1pdC0+ cC5tYXggPCBjbG9jay0+cCkKPj4gICAJCQlJTlRFTFBsbEludmFsaWQoInAgb3V0IG9mIHJhbmdl XG4iKTsKPj4gICAJCWlmIChjbG9jay0+bSA8IGxpbWl0LT5tLm1pbiB8fCBsaW1pdC0+bS5tYXgg PCBjbG9jay0+bSkKPj4gQEAgLTY5OCw3ICs2OTksOCBAQCBpOXh4X2ZpbmRfYmVzdF9kcGxsKGNv bnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCj4+ICAgCQkJCQlpbnQgdGhpc19lcnI7Cj4+ ICAgCj4+ICAgCQkJCQlpOXh4X2NhbGNfZHBsbF9wYXJhbXMocmVmY2xrLCAmY2xvY2spOwo+PiAt CQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZChkZXYsIGxpbWl0LAo+PiArCQkJCQlpZiAoIWlu dGVsX1BMTF9pc192YWxpZCh0b19pOTE1KGRldiksCj4+ICsJCQkJCQkJCWxpbWl0LAo+PiAgIAkJ CQkJCQkJJmNsb2NrKSkKPj4gICAJCQkJCQljb250aW51ZTsKPj4gICAJCQkJCWlmIChtYXRjaF9j bG9jayAmJgo+PiBAQCAtNzUzLDcgKzc1NSw4IEBAIHBudl9maW5kX2Jlc3RfZHBsbChjb25zdCBz dHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0LAo+PiAgIAkJCQkJaW50IHRoaXNfZXJyOwo+PiAgIAo+ PiAgIAkJCQkJcG52X2NhbGNfZHBsbF9wYXJhbXMocmVmY2xrLCAmY2xvY2spOwo+PiAtCQkJCQlp ZiAoIWludGVsX1BMTF9pc192YWxpZChkZXYsIGxpbWl0LAo+PiArCQkJCQlpZiAoIWludGVsX1BM TF9pc192YWxpZCh0b19pOTE1KGRldiksCj4+ICsJCQkJCQkJCWxpbWl0LAo+PiAgIAkJCQkJCQkJ JmNsb2NrKSkKPj4gICAJCQkJCQljb250aW51ZTsKPj4gICAJCQkJCWlmIChtYXRjaF9jbG9jayAm Jgo+PiBAQCAtODEzLDcgKzgxNiw4IEBAIGc0eF9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3Qg aW50ZWxfbGltaXQgKmxpbWl0LAo+PiAgIAkJCQkJaW50IHRoaXNfZXJyOwo+PiAgIAo+PiAgIAkJ CQkJaTl4eF9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNsb2NrKTsKPj4gLQkJCQkJaWYgKCFp bnRlbF9QTExfaXNfdmFsaWQoZGV2LCBsaW1pdCwKPj4gKwkJCQkJaWYgKCFpbnRlbF9QTExfaXNf dmFsaWQodG9faTkxNShkZXYpLAo+PiArCQkJCQkJCQlsaW1pdCwKPj4gICAJCQkJCQkJCSZjbG9j aykpCj4+ICAgCQkJCQkJY29udGludWU7Cj4+ICAgCj4+IEBAIC05MDksNyArOTEzLDggQEAgdmx2 X2ZpbmRfYmVzdF9kcGxsKGNvbnN0IHN0cnVjdCBpbnRlbF9saW1pdCAqbGltaXQsCj4+ICAgCj4+ ICAgCQkJCQl2bHZfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGssICZjbG9jayk7Cj4+ICAgCj4+IC0J CQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRldiwgbGltaXQsCj4+ICsJCQkJCWlmICghaW50 ZWxfUExMX2lzX3ZhbGlkKHRvX2k5MTUoZGV2KSwKPj4gKwkJCQkJCQkJbGltaXQsCj4+ICAgCQkJ CQkJCQkmY2xvY2spKQo+PiAgIAkJCQkJCWNvbnRpbnVlOwo+PiAgIAo+PiBAQCAtOTc3LDcgKzk4 Miw3IEBAIGNodl9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQgKmxpbWl0 LAo+PiAgIAo+PiAgIAkJCWNodl9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNsb2NrKTsKPj4g ICAKPj4gLQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRldiwgbGltaXQsICZjbG9jaykpCj4+ ICsJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZCh0b19pOTE1KGRldiksIGxpbWl0LCAmY2xvY2sp KQo+PiAgIAkJCQljb250aW51ZTsKPj4gICAKPj4gICAJCQlpZiAoIXZsdl9QTExfaXNfb3B0aW1h bChkZXYsIHRhcmdldCwgJmNsb2NrLCBiZXN0X2Nsb2NrLAo+PiBAQCAtNTg1Miw3ICs1ODU3LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX21heF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+PiAgIAkJCW1heF9jZGNsayA9IDMwODU3MTsKPj4gICAKPj4gICAJCWRldl9wcml2LT5t YXhfY2RjbGtfZnJlcSA9IHNrbF9jYWxjX2NkY2xrKG1heF9jZGNsaywgdmNvKTsKPj4gLQl9IGVs c2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+PiArCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZf cHJpdikpIHsKPj4gICAJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDYyNDAwMDsKPj4gICAJ fSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKSAgewo+PiAgIAkJLyoKPj4gQEAgLTEw NjUwLDcgKzEwNjU1LDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9nZXRfZGRpX3BvcnRfc3RhdGUo c3RydWN0IGludGVsX2NydGMgKmNydGMsCj4+ICAgCj4+ICAgCWlmIChJU19TS1lMQUtFKGRldl9w cml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJpdikpCj4+ICAgCQlza3lsYWtlX2dldF9kZGlfcGxs KGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7Cj4+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihk ZXYpKQo+PiArCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+PiAgIAkJYnh0X2dldF9k ZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBlX2NvbmZpZyk7Cj4+ICAgCWVsc2UKPj4gICAJCWhh c3dlbGxfZ2V0X2RkaV9wbGwoZGV2X3ByaXYsIHBvcnQsIHBpcGVfY29uZmlnKTsKPj4gQEAgLTEy ODA4LDcgKzEyODEzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4gICAJRFJNX0RFQlVHX0tNUygiaXBzOiAlaVxuIiwgcGlw ZV9jb25maWctPmlwc19lbmFibGVkKTsKPj4gICAJRFJNX0RFQlVHX0tNUygiZG91YmxlIHdpZGU6 ICVpXG4iLCBwaXBlX2NvbmZpZy0+ZG91YmxlX3dpZGUpOwo+PiAgIAo+PiAtCWlmIChJU19CUk9Y VE9OKGRldikpIHsKPj4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPj4gICAJCURSTV9E RUJVR19LTVMoImRwbGxfaHdfc3RhdGU6IGViYjA6IDB4JXgsIGViYjQ6IDB4JXgsIgo+PiAgIAkJ CSAgICAgICJwbGwwOiAweCV4LCBwbGwxOiAweCV4LCBwbGwyOiAweCV4LCBwbGwzOiAweCV4LCAi Cj4+ICAgCQkJICAgICAgInBsbDY6IDB4JXgsIHBsbDg6IDB4JXgsIHBsbDk6IDB4JXgsIHBsbDEw OiAweCV4LCBwY3NkdzEyOiAweCV4XG4iLAo+PiBAQCAtMTU0MDEsNyArMTU0MDYsNyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9zZXR1cF9vdXRwdXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAg CWlmIChpbnRlbF9jcnRfcHJlc2VudChkZXYpKQo+PiAgIAkJaW50ZWxfY3J0X2luaXQoZGV2KTsK Pj4gICAKPj4gLQlpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4+ICsJaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKSB7Cj4+ICAgCQkvKgo+PiAgIAkJICogRklYTUU6IEJyb3h0b24gZG9lc24ndCBzdXBw b3J0IHBvcnQgZGV0ZWN0aW9uIHZpYSB0aGUKPj4gICAJCSAqIERESV9CVUZfQ1RMX0Egb3IgU0ZV U0VfU1RSQVAgcmVnaXN0ZXJzLCBmaW5kIGFub3RoZXIgd2F5IHRvCj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHAuYwo+PiBpbmRleCAwMmU3NGM0NjdhNTUuLmI2YzhiMjVlZTFkNCAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4+IEBAIC01NzEsNyArNTcxLDcgQEAgdm9pZCBpbnRlbF9wb3dl cl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiAg IAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKPj4gICAKPj4gICAJaWYgKFdBUk5fT04o IUlTX1ZBTExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpICYmCj4+IC0JCSAgICAh SVNfQlJPWFRPTihkZXYpKSkKPj4gKwkJICAgICFJU19CUk9YVE9OKGRldl9wcml2KSkpCj4+ICAg CQlyZXR1cm47Cj4+ICAgCj4+ICAgCS8qCj4+IEBAIC01OTEsNyArNTkxLDcgQEAgdm9pZCBpbnRl bF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+PiAgIAkJCWNvbnRpbnVlOwo+PiAgIAo+PiAgIAkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxf ZHAoJmVuY29kZXItPmJhc2UpOwo+PiAtCQlpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiArCQlpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpCj4+ICAgCQkJaW50ZWxfZHAtPnBwc19yZXNldCA9IHRydWU7 Cj4+ICAgCQllbHNlCj4+ICAgCQkJaW50ZWxfZHAtPnBwc19waXBlID0gSU5WQUxJRF9QSVBFOwo+ PiBAQCAtMjk4MSw3ICsyOTgxLDcgQEAgaW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwo+PiAgIAllbnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVs X2RwKS0+cG9ydDsKPj4gICAKPj4gLQlpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiArCWlmIChJU19C Uk9YVE9OKGRldl9wcml2KSkKPj4gICAJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xF VkVMXzM7Cj4+ICAgCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsKPj4gICAJ CWlmIChkZXZfcHJpdi0+dmJ0LmVkcC5sb3dfdnN3aW5nICYmIHBvcnQgPT0gUE9SVF9BKQo+PiBA QCAtMzM0NCw3ICszMzQ0LDcgQEAgaW50ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCkKPj4gICAJaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4+ICAgCQlz aWduYWxfbGV2ZWxzID0gZGRpX3NpZ25hbF9sZXZlbHMoaW50ZWxfZHApOwo+PiAgIAo+PiAtCQlp ZiAoSVNfQlJPWFRPTihkZXYpKQo+PiArCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4+ICAg CQkJc2lnbmFsX2xldmVscyA9IDA7Cj4+ICAgCQllbHNlCj4+ICAgCQkJbWFzayA9IERESV9CVUZf RU1QX01BU0s7Cj4+IEBAIC01MDcyLDcgKzUwNzIsNyBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bv d2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4gICAJCSAo c2VxLT50MTAgPDwgUEFORUxfUE9XRVJfRE9XTl9ERUxBWV9TSElGVCk7Cj4+ICAgCS8qIENvbXB1 dGUgdGhlIGRpdmlzb3IgZm9yIHRoZSBwcCBjbG9jaywgc2ltcGx5IG1hdGNoIHRoZSBCc3BlYwo+ PiAgIAkgKiBmb3JtdWxhLiAqLwo+PiAtCWlmIChJU19CUk9YVE9OKGRldikpIHsKPj4gKwlpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPj4gICAJCXBwX2RpdiA9IEk5MTVfUkVBRChyZWdzLnBw X2N0cmwpOwo+PiAgIAkJcHBfZGl2ICY9IH5CWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSzsKPj4g ICAJCXBwX2RpdiB8PSAoRElWX1JPVU5EX1VQKChzZXEtPnQxMV90MTIgKyAxKSwgMTAwMCkKPj4g QEAgLTUwOTgsNyArNTA5OCw3IEBAIGludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2Vy X3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiAgIAo+PiAgIAlJOTE1X1dSSVRF KHJlZ3MucHBfb24sIHBwX29uKTsKPj4gICAJSTkxNV9XUklURShyZWdzLnBwX29mZiwgcHBfb2Zm KTsKPj4gLQlpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2 KSkKPj4gICAJCUk5MTVfV1JJVEUocmVncy5wcF9jdHJsLCBwcF9kaXYpOwo+PiAgIAllbHNlCj4+ ICAgCQlJOTE1X1dSSVRFKHJlZ3MucHBfZGl2LCBwcF9kaXYpOwo+PiBAQCAtNTEwNiw3ICs1MTA2 LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJfcmVnaXN0ZXJzKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4+ICAgCURSTV9ERUJVR19LTVMoInBhbmVsIHBvd2VyIHNlcXVl bmNlciByZWdpc3RlciBzZXR0aW5nczogUFBfT04gJSN4LCBQUF9PRkYgJSN4LCBQUF9ESVYgJSN4 XG4iLAo+PiAgIAkJICAgICAgSTkxNV9SRUFEKHJlZ3MucHBfb24pLAo+PiAgIAkJICAgICAgSTkx NV9SRUFEKHJlZ3MucHBfb2ZmKSwKPj4gLQkJICAgICAgSVNfQlJPWFRPTihkZXYpID8KPj4gKwkJ ICAgICAgSVNfQlJPWFRPTihkZXZfcHJpdikgPwo+PiAgIAkJICAgICAgKEk5MTVfUkVBRChyZWdz LnBwX2N0cmwpICYgQlhUX1BPV0VSX0NZQ0xFX0RFTEFZX01BU0spIDoKPj4gICAJCSAgICAgIEk5 MTVfUkVBRChyZWdzLnBwX2RpdikpOwo+PiAgIH0KPj4gQEAgLTU3MTUsNyArNTcxNSw3IEBAIGlu dGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0LAo+PiAgIAkJYnJlYWs7Cj4+ICAgCWNhc2UgUE9SVF9COgo+PiAgIAkJaW50ZWxfZW5j b2Rlci0+aHBkX3BpbiA9IEhQRF9QT1JUX0I7Cj4+IC0JCWlmIChJU19CWFRfUkVWSUQoZGV2LCAw LCBCWFRfUkVWSURfQTEpKQo+PiArCQlpZiAoSVNfQlhUX1JFVklEKGRldl9wcml2LCAwLCBCWFRf UkVWSURfQTEpKQo+PiAgIAkJCWludGVsX2VuY29kZXItPmhwZF9waW4gPSBIUERfUE9SVF9BOwo+ PiAgIAkJYnJlYWs7Cj4+ICAgCWNhc2UgUE9SVF9DOgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwbGxfbWdyLmMKPj4gaW5kZXggN2NmOWQ5MWMwNzQ2Li42MDVkMGI1MDlmMjQgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+PiBAQCAtMTg1Myw3ICsxODUzLDcg QEAgdm9pZCBpbnRlbF9zaGFyZWRfZHBsbF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ ICAgCj4+ICAgCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShkZXZfcHJp dikpCj4+ICAgCQlkcGxsX21nciA9ICZza2xfcGxsX21ncjsKPj4gLQllbHNlIGlmIChJU19CUk9Y VE9OKGRldikpCj4+ICsJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4+ICAgCQlkcGxs X21nciA9ICZieHRfcGxsX21ncjsKPj4gICAJZWxzZSBpZiAoSEFTX0RESShkZXZfcHJpdikpCj4+ ICAgCQlkcGxsX21nciA9ICZoc3dfcGxsX21ncjsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMK Pj4gaW5kZXggNWIxZTQ0NWE4MGQwLi40OGU4ZGQxMDhmNGYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RzaS5jCj4+IEBAIC00MzcsMTEgKzQzNywxMSBAQCBzdGF0aWMgdm9pZCB2bHZfZHNp X2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gICAKPj4gICBz dGF0aWMgdm9pZCBpbnRlbF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyKQo+PiAgIHsKPj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFz ZS5kZXY7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4+ICAgCj4+IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJ U19DSEVSUllWSUVXKGRldikpCj4+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+PiAgIAkJdmx2X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rl cik7Cj4+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiArCWVsc2UgaWYgKElTX0JST1hU T04oZGV2X3ByaXYpKQo+PiAgIAkJYnh0X2RzaV9kZXZpY2VfcmVhZHkoZW5jb2Rlcik7Cj4+ICAg fQo+PiAgIAo+PiBAQCAtNDY0LDcgKzQ2NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wb3J0 X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4gICAJfQo+PiAgIAo+PiAg IAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4+IC0JCWk5MTVf cmVnX3QgcG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXYpID8KPj4gKwkJaTkxNV9yZWdfdCBwb3J0 X2N0cmwgPSBJU19CUk9YVE9OKGRldl9wcml2KSA/Cj4+ICAgCQkJQlhUX01JUElfUE9SVF9DVFJM KHBvcnQpIDogTUlQSV9QT1JUX0NUUkwocG9ydCk7Cj4+ICAgCQl1MzIgdGVtcDsKPj4gICAKPj4g QEAgLTQ5NCw3ICs0OTQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfcG9ydF9kaXNhYmxlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+PiAgIAllbnVtIHBvcnQgcG9ydDsKPj4gICAK Pj4gICAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+PiAtCQlp OTE1X3JlZ190IHBvcnRfY3RybCA9IElTX0JST1hUT04oZGV2KSA/Cj4+ICsJCWk5MTVfcmVnX3Qg cG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXZfcHJpdikgPwo+PiAgIAkJCUJYVF9NSVBJX1BPUlRf Q1RSTChwb3J0KSA6IE1JUElfUE9SVF9DVFJMKHBvcnQpOwo+PiAgIAkJdTMyIHRlbXA7Cj4+ICAg Cj4+IEBAIC02NTYsNyArNjU2LDYgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX2Rpc2FibGUoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+ICAgCj4+ICAgc3RhdGljIHZvaWQgaW50ZWxf ZHNpX2NsZWFyX2RldmljZV9yZWFkeShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPj4g ICB7Cj4+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+PiAg IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPj4gICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0gZW5jX3RvX2ludGVs X2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4+ICAgCWVudW0gcG9ydCBwb3J0Owo+PiBAQCAtNjY0LDcg KzY2Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4+ICAgCURSTV9ERUJVR19LTVMoIlxuIik7Cj4+ICAg CWZvcl9lYWNoX2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPj4gICAJCS8qIENv bW1vbiBiaXQgZm9yIGJvdGggTUlQSSBQb3J0IEEgJiBNSVBJIFBvcnQgQyBvbiBWTFYvQ0hWICov Cj4+IC0JCWk5MTVfcmVnX3QgcG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXYpID8KPj4gKwkJaTkx NV9yZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9OKGRldl9wcml2KSA/Cj4+ICAgCQkJQlhUX01J UElfUE9SVF9DVFJMKHBvcnQpIDogTUlQSV9QT1JUX0NUUkwoUE9SVF9BKTsKPj4gICAJCXUzMiB2 YWw7Cj4+ICAgCj4+IEBAIC03NjIsNyArNzYxLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2dl dF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPj4gICAKPj4gICAJLyog WFhYOiB0aGlzIG9ubHkgd29ya3MgZm9yIG9uZSBEU0kgb3V0cHV0ICovCj4+ICAgCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPj4gLQkJaTkxNV9yZWdfdCBjdHJs X3JlZyA9IElTX0JST1hUT04oZGV2KSA/Cj4+ICsJCWk5MTVfcmVnX3QgY3RybF9yZWcgPSBJU19C Uk9YVE9OKGRldl9wcml2KSA/Cj4+ICAgCQkJQlhUX01JUElfUE9SVF9DVFJMKHBvcnQpIDogTUlQ SV9QT1JUX0NUUkwocG9ydCk7Cj4+ICAgCQlib29sIGVuYWJsZWQgPSBJOTE1X1JFQUQoY3RybF9y ZWcpICYgRFBJX0VOQUJMRTsKPj4gICAKPj4gQEAgLTk3MCwxMSArOTY5LDExIEBAIHN0YXRpYyB2 b2lkIGJ4dF9kc2lfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+PiAgIHN0YXRpYyB2b2lkIGludGVsX2RzaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAo+PiAgIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnKQo+PiAgIHsKPj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5k ZXY7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Cj4+ICAgCXUzMiBwY2xrOwo+PiAgIAlEUk1fREVCVUdfS01TKCJcbiIp Owo+PiAgIAo+PiAtCWlmIChJU19CUk9YVE9OKGRldikpCj4+ICsJaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKQo+PiAgIAkJYnh0X2RzaV9nZXRfcGlwZV9jb25maWcoZW5jb2RlciwgcGlwZV9jb25m aWcpOwo+PiAgIAo+PiAgIAlwY2xrID0gaW50ZWxfZHNpX2dldF9wY2xrKGVuY29kZXIsIHBpcGVf Y29uZmlnLT5waXBlX2JwcCwKPj4gQEAgLTEwNjYsNyArMTA2NSw3IEBAIHN0YXRpYyB2b2lkIHNl dF9kc2lfdGltaW5ncyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgCWhicCA9IHR4 Ynl0ZWNsa2hzKGhicCwgYnBwLCBsYW5lX2NvdW50LCBpbnRlbF9kc2ktPmJ1cnN0X21vZGVfcmF0 aW8pOwo+PiAgIAo+PiAgIAlmb3JfZWFjaF9kc2lfcG9ydChwb3J0LCBpbnRlbF9kc2ktPnBvcnRz KSB7Cj4+IC0JCWlmIChJU19CUk9YVE9OKGRldikpIHsKPj4gKwkJaWYgKElTX0JST1hUT04oZGV2 X3ByaXYpKSB7Cj4+ICAgCQkJLyoKPj4gICAJCQkgKiBQcm9ncmFtIGhkaXNwbGF5IGFuZCB2ZGlz cGxheSBvbiBNSVBJIHRyYW5zY29kZXIuCj4+ICAgCQkJICogVGhpcyBpcyBkaWZmZXJlbnQgZnJv bSBjYWxjdWxhdGVkIGhhY3RpdmUgYW5kCj4+IEBAIC0xMTUzLDcgKzExNTIsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9kc2lfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2Rl ciwKPj4gICAJCQl0bXAgJj0gflJFQURfUkVRVUVTVF9QUklPUklUWV9NQVNLOwo+PiAgIAkJCUk5 MTVfV1JJVEUoTUlQSV9DVFJMKHBvcnQpLCB0bXAgfAo+PiAgIAkJCQkJUkVBRF9SRVFVRVNUX1BS SU9SSVRZX0hJR0gpOwo+PiAtCQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+PiArCQl9 IGVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4+ICAgCQkJZW51bSBwaXBlIHBpcGUg PSBpbnRlbF9jcnRjLT5waXBlOwo+PiAgIAo+PiAgIAkJCXRtcCA9IEk5MTVfUkVBRChNSVBJX0NU UkwocG9ydCkpOwo+PiBAQCAtMTI0Miw3ICsxMjQxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNp X3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4+ICAgCQlJOTE1 X1dSSVRFKE1JUElfSU5JVF9DT1VOVChwb3J0KSwKPj4gICAJCQkJdHhjbGtlc2MoaW50ZWxfZHNp LT5lc2NhcGVfY2xrX2RpdiwgMTAwKSk7Cj4+ICAgCj4+IC0JCWlmIChJU19CUk9YVE9OKGRldikg JiYgKCFpbnRlbF9kc2ktPmR1YWxfbGluaykpIHsKPj4gKwkJaWYgKElTX0JST1hUT04oZGV2X3By aXYpICYmICghaW50ZWxfZHNpLT5kdWFsX2xpbmspKSB7Cj4+ICAgCQkJLyoKPj4gICAJCQkgKiBC WFQgc3BlYyBzYXlzIHdyaXRlIE1JUElfSU5JVF9DT1VOVCBmb3IKPj4gICAJCQkgKiBib3RoIHRo ZSBwb3J0cywgZXZlbiBpZiBvbmx5IG9uZSBpcwo+PiBAQCAtMTQ1Miw3ICsxNDUxLDcgQEAgdm9p ZCBpbnRlbF9kc2lfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgIAo+PiAgIAlpZiAo SVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+PiAgIAkJZGV2X3By aXYtPm1pcGlfbW1pb19iYXNlID0gVkxWX01JUElfQkFTRTsKPj4gLQl9IGVsc2UgaWYgKElTX0JS T1hUT04oZGV2KSkgewo+PiArCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPj4g ICAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9IEJYVF9NSVBJX0JBU0U7Cj4+ICAgCX0gZWxz ZSB7Cj4+ICAgCQlEUk1fRVJST1IoIlVuc3VwcG9ydGVkIE1pcGkgZGV2aWNlIHRvIHJlZyBiYXNl Iik7Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxsLmMKPj4gaW5kZXggNmFiNThhMDFi MThlLi41NmVmZjYwMDRiYzAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RzaV9wbGwuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2lfcGxs LmMKPj4gQEAgLTM1MSw3ICszNTEsNyBAQCBzdGF0aWMgdTMyIGJ4dF9kc2lfZ2V0X3BjbGsoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCBwaXBlX2JwcCwKPj4gICB1MzIgaW50ZWxf ZHNpX2dldF9wY2xrKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBpbnQgcGlwZV9icHAs Cj4+ICAgCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNvbmZpZykKPj4gICB7Cj4+ IC0JaWYgKElTX0JST1hUT04oZW5jb2Rlci0+YmFzZS5kZXYpKQo+PiArCWlmIChJU19CUk9YVE9O KHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpKSkKPj4gICAJCXJldHVybiBieHRfZHNpX2dldF9w Y2xrKGVuY29kZXIsIHBpcGVfYnBwLCBjb25maWcpOwo+PiAgIAllbHNlCj4+ICAgCQlyZXR1cm4g dmx2X2RzaV9nZXRfcGNsayhlbmNvZGVyLCBwaXBlX2JwcCwgY29uZmlnKTsKPj4gQEAgLTUxNSwx MSArNTE1LDExIEBAIGJvb2wgaW50ZWxfZHNpX3BsbF9pc19lbmFibGVkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPj4gICBpbnQgaW50ZWxfY29tcHV0ZV9kc2lfcGxsKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgIAkJCSAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNvbmZpZykKPj4gICB7Cj4+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXIt PmJhc2UuZGV2Owo+PiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+PiAgIAo+PiAtCWlmIChJU19WQUxMRVlWSUVXKGRldikg fHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+PiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8 fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPj4gICAJCXJldHVybiB2bHZfY29tcHV0ZV9kc2lf cGxsKGVuY29kZXIsIGNvbmZpZyk7Cj4+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiAr CWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+PiAgIAkJcmV0dXJuIGJ4dF9jb21wdXRl X2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsKPj4gICAKPj4gICAJcmV0dXJuIC1FTk9ERVY7Cj4+ IEBAIC01MjgsMjEgKzUyOCwyMSBAQCBpbnQgaW50ZWxfY29tcHV0ZV9kc2lfcGxsKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+PiAgIHZvaWQgaW50ZWxfZW5hYmxlX2RzaV9wbGwoc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4+ICAgCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY29uZmlnKQo+PiAgIHsKPj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+YmFzZS5kZXY7Cj4+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4+ICAgCj4+IC0JaWYgKElTX1ZBTExFWVZJ RVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCj4+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2 X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+PiAgIAkJdmx2X2VuYWJsZV9kc2lf cGxsKGVuY29kZXIsIGNvbmZpZyk7Cj4+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiAr CWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+PiAgIAkJYnh0X2VuYWJsZV9kc2lfcGxs KGVuY29kZXIsIGNvbmZpZyk7Cj4+ICAgfQo+PiAgIAo+PiAgIHZvaWQgaW50ZWxfZGlzYWJsZV9k c2lfcGxsKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+PiAgIHsKPj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4+ICAgCj4+ IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCj4+ICsJaWYg KElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+PiAg IAkJdmx2X2Rpc2FibGVfZHNpX3BsbChlbmNvZGVyKTsKPj4gLQllbHNlIGlmIChJU19CUk9YVE9O KGRldikpCj4+ICsJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4+ICAgCQlieHRfZGlz YWJsZV9kc2lfcGxsKGVuY29kZXIpOwo+PiAgIH0KPj4gICAKPj4gQEAgLTU2NCwxMCArNTY0LDEw IEBAIHN0YXRpYyB2b2lkIGJ4dF9kc2lfcmVzZXRfY2xvY2tzKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLCBlbnVtIHBvcnQgcG9ydCkKPj4gICAKPj4gICB2b2lkIGludGVsX2RzaV9yZXNl dF9jbG9ja3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGVudW0gcG9ydCBwb3J0KQo+ PiAgIHsKPj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5i YXNlLmRldik7Cj4+ICAgCj4+IC0JaWYgKElTX0JST1hUT04oZGV2KSkKPj4gKwlpZiAoSVNfQlJP WFRPTihkZXZfcHJpdikpCj4+ICAgCQlieHRfZHNpX3Jlc2V0X2Nsb2NrcyhlbmNvZGVyLCBwb3J0 KTsKPj4gLQllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYp KQo+PiArCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKQo+PiAgIAkJdmx2X2RzaV9yZXNldF9jbG9ja3MoZW5jb2RlciwgcG9ydCk7Cj4+ ICAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRl ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4+IGluZGV4IDE4 MjIwNDM3MzkzMS4uNWQ1ZDYwOWVkNWU5IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZ3VjX2xvYWRlci5jCj4+IEBAIC0zNzYsMTYgKzM3NiwxNiBAQCBzdGF0aWMgaW50IGd1Y191 Y29kZV94ZmVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gICAJSTkxNV9X UklURShHVUNfU0hJTV9DT05UUk9MLCBHVUNfU0hJTV9DT05UUk9MX1ZBTFVFKTsKPj4gICAKPj4g ICAJLyogV2FEaXNhYmxlTWludXRlSWFDbG9ja0dhdGluZzpieHQgKi8KPj4gLQlpZiAoSVNfQlhU X1JFVklEKGRldiwgMCwgQlhUX1JFVklEX0ExKSkgewo+PiArCWlmIChJU19CWFRfUkVWSUQoZGV2 X3ByaXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKPj4gICAJCUk5MTVfV1JJVEUoR1VDX1NISU1fQ09O VFJPTCwgKEk5MTVfUkVBRChHVUNfU0hJTV9DT05UUk9MKSAmCj4+ICAgCQkJCQkgICAgICB+R1VD X0VOQUJMRV9NSUFfQ0xPQ0tfR0FUSU5HKSk7Cj4+ICAgCX0KPj4gICAKPj4gICAJLyogV2FDNkRp c2FsbG93QnlHZnhQYXVzZTpieHQgKi8KPj4gLQlpZiAoSVNfQlhUX1JFVklEKGRldiwgMCwgQlhU X1JFVklEX0IwKSkKPj4gKwlpZiAoSVNfQlhUX1JFVklEKGRldl9wcml2LCAwLCBCWFRfUkVWSURf QjApKQo+PiAgIAkJSTkxNV9XUklURShHRU42X0dGWFBBVVNFLCAweDMwRkZGKTsKPj4gICAKPj4g LQlpZiAoSVNfQlJPWFRPTihkZXYpKQo+PiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKPj4g ICAJCUk5MTVfV1JJVEUoR0VOOUxQX0dUX1BNX0NPTkZJRywgR1RfRE9PUkJFTExfRU5BQkxFKTsK Pj4gICAJZWxzZQo+PiAgIAkJSTkxNV9XUklURShHRU45X0dUX1BNX0NPTkZJRywgR1RfRE9PUkJF TExfRU5BQkxFKTsKPj4gQEAgLTczMCw3ICs3MzAsNyBAQCB2b2lkIGludGVsX2d1Y19pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ICAgCQlmd19wYXRoID0gSTkxNV9TS0xfR1VDX1VDT0RF Owo+PiAgIAkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gU0tMX0ZXX01BSk9SOwo+PiAg IAkJZ3VjX2Z3LT5ndWNfZndfbWlub3Jfd2FudGVkID0gU0tMX0ZXX01JTk9SOwo+PiAtCX0gZWxz ZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4+ICsJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9w cml2KSkgewo+PiAgIAkJZndfcGF0aCA9IEk5MTVfQlhUX0dVQ19VQ09ERTsKPj4gICAJCWd1Y19m dy0+Z3VjX2Z3X21ham9yX3dhbnRlZCA9IEJYVF9GV19NQUpPUjsKPj4gICAJCWd1Y19mdy0+Z3Vj X2Z3X21pbm9yX3dhbnRlZCA9IEJYVF9GV19NSU5PUjsKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYwo+PiBpbmRleCA2NjA3YzRlM2MzNmMuLmY2NTYyNDUxYzQ3ZSAxMDA2NDQKPj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2hkbWkuYwo+PiBAQCAtMTI0MSw3ICsxMjQxLDcgQEAgc3RhdGljIGVudW0g ZHJtX21vZGVfc3RhdHVzCj4+ICAgaGRtaV9wb3J0X2Nsb2NrX3ZhbGlkKHN0cnVjdCBpbnRlbF9o ZG1pICpoZG1pLAo+PiAgIAkJICAgICAgaW50IGNsb2NrLCBib29sIHJlc3BlY3RfZG93bnN0cmVh bV9saW1pdHMpCj4+ICAgewo+PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9oZG1p X3RvX2RldihoZG1pKTsKPj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGludGVsX2hkbWlfdG9fZGV2KGhkbWkpKTsKPj4gICAKPj4gICAJaWYgKGNsb2NrIDwg MjUwMDApCj4+ICAgCQlyZXR1cm4gTU9ERV9DTE9DS19MT1c7Cj4+IEBAIC0xMjQ5LDExICsxMjQ5 LDExIEBAIGhkbWlfcG9ydF9jbG9ja192YWxpZChzdHJ1Y3QgaW50ZWxfaGRtaSAqaGRtaSwKPj4g ICAJCXJldHVybiBNT0RFX0NMT0NLX0hJR0g7Cj4+ICAgCj4+ICAgCS8qIEJYVCBEUExMIGNhbid0 IGdlbmVyYXRlIDIyMy0yNDAgTUh6ICovCj4+IC0JaWYgKElTX0JST1hUT04oZGV2KSAmJiBjbG9j ayA+IDIyMzMzMyAmJiBjbG9jayA8IDI0MDAwMCkKPj4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJp dikgJiYgY2xvY2sgPiAyMjMzMzMgJiYgY2xvY2sgPCAyNDAwMDApCj4+ICAgCQlyZXR1cm4gTU9E RV9DTE9DS19SQU5HRTsKPj4gICAKPj4gICAJLyogQ0hWIERQTEwgY2FuJ3QgZ2VuZXJhdGUgMjE2 LTI0MCBNSHogKi8KPj4gLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpICYmIGNsb2NrID4gMjE2MDAw ICYmIGNsb2NrIDwgMjQwMDAwKQo+PiArCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiBj bG9jayA+IDIxNjAwMCAmJiBjbG9jayA8IDI0MDAwMCkKPj4gICAJCXJldHVybiBNT0RFX0NMT0NL X1JBTkdFOwo+PiAgIAo+PiAgIAlyZXR1cm4gTU9ERV9PSzsKPj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYwo+PiBpbmRleCAwMjVmYmQ1MjI4MTkuLmU0YmI4NWM5YzZlMSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+PiBAQCAtMjU5 Niw3ICsyNTk2LDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9kb21haW5zX2luaXRfaHcoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHJlc3VtZSkKPj4gICAKPj4gICAJaWYgKElT X1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tBQllMQUtFKGRldl9wcml2KSkgewo+PiAgIAkJc2ts X2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCByZXN1bWUpOwo+PiAtCX0gZWxzZSBpZiAoSVNf QlJPWFRPTihkZXYpKSB7Cj4+ICsJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ PiAgIAkJYnh0X2Rpc3BsYXlfY29yZV9pbml0KGRldl9wcml2LCByZXN1bWUpOwo+PiAgIAl9IGVs c2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+PiAgIAkJbXV0ZXhfbG9jaygmcG93ZXJfZG9t YWlucy0+bG9jayk7Cj4+IC0tIAo+PiAyLjcuNAo+Pgo+PiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=