From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 13/19] drm/i915: Make IS_BROXTON only take dev_priv Date: Wed, 12 Oct 2016 14:52:06 +0300 Message-ID: <20161012115206.ctoib72o7ltgy7ct@boom> References: <1476192112-25336-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1476192112-25336-14-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 mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3CE226E82E for ; Wed, 12 Oct 2016 11:52:09 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1476192112-25336-14-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: Tvrtko Ursulin Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMTEsIDIwMTYgYXQgMDI6MjE6NDZQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K PiAKPiBTYXZlcyAxMzkyIGJ5dGVzIG9mIC5yb2RhdGEgc3RyaW5ncy4KPiAKPiB2MjogQWRkIHBh cmFudGhlc2VzIGFyb3VuZCBkZXZfcHJpdi4gKFZpbGxlIFN5cmphbGEpCj4gCj4gU2lnbmVkLW9m Zi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRoaXMgcGF0 Y2ggZG9lcyBxdWl0ZSBhIGJpdCBtb3JlIHRoYW4ganVzdCBjaGFuZ2UgSVNfQlJPWFRPTiB0byB1 c2UKZGV2X3ByaXYuLi4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg ICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICB8ICA1ICsrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICB8 IDQwICsrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2lycS5jICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kZGkuYyAgICAgICAgfCAgNCArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyAgICB8IDMxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgIHwgMTYgKysrKysrLS0tLS0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jICAgfCAgMiArLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgICAgfCAyNyArKysrKysrKysrKy0tLS0tLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaV9wbGwuYyAgICB8IDI2ICsrKysrKysr KystLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9ndWNfbG9hZGVyLmMg fCAgOCArKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICAgICB8 ICA2ICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8ICAy ICstCj4gIDEzIGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDgyIGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IGQ4NTRlYTRhN2U5Mi4uMThhZjZk MWNjZWM5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTI0MzcsNyArMjQzNyw3 IEBAIHN0YXRpYyBpbnQgaW50ZWxfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqa2RldikK PiAgCWlmIChJU19HRU42KGRldl9wcml2KSkKPiAgCQlpbnRlbF9pbml0X3BjaF9yZWZjbGsoZGV2 KTsKPiAgCj4gLQlpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gKwlpZiAoSVNfQlJPWFRPTihkZXZf cHJpdikpIHsKPiAgCQlieHRfZGlzYWJsZV9kYzkoZGV2X3ByaXYpOwo+ICAJCWJ4dF9kaXNwbGF5 X2NvcmVfaW5pdChkZXZfcHJpdiwgdHJ1ZSk7Cj4gIAkJaWYgKGRldl9wcml2LT5jc3IuZG1jX3Bh eWxvYWQgJiYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA5Nzg0ZTYxNDAwZTUuLmFk OTI5OTE5NmQxMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yNjY0LDcgKzI2 NjQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxlIHsKPiAgI2RlZmluZSBJU19IQVNXRUxM KGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19oYXN3ZWxsKQo+ICAjZGVmaW5lIElTX0JS T0FEV0VMTChkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfYnJvYWR3ZWxsKQo+ICAjZGVm aW5lIElTX1NLWUxBS0UoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX3NreWxha2UpCj4g LSNkZWZpbmUgSVNfQlJPWFRPTihkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5pc19icm94dG9uKQo+ ICsjZGVmaW5lIElTX0JST1hUT04oZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX2Jyb3h0 b24pCj4gICNkZWZpbmUgSVNfS0FCWUxBS0UoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlz X2thYnlsYWtlKQo+ICAjZGVmaW5lIElTX01PQklMRShkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5p c19tb2JpbGUpCj4gICNkZWZpbmUgSVNfSFNXX0VBUkxZX1NEVihkZXZfcHJpdikgKElTX0hBU1dF TEwoZGV2X3ByaXYpICYmIFwKPiBAQCAtMjcyNCw3ICsyNzI0LDggQEAgc3RydWN0IGRybV9pOTE1 X2NtZF90YWJsZSB7Cj4gICNkZWZpbmUgQlhUX1JFVklEX0IwCQkweDMKPiAgI2RlZmluZSBCWFRf UkVWSURfQzAJCTB4OQo+ICAKPiAtI2RlZmluZSBJU19CWFRfUkVWSUQocCwgc2luY2UsIHVudGls KSAoSVNfQlJPWFRPTihwKSAmJiBJU19SRVZJRChwLCBzaW5jZSwgdW50aWwpKQo+ICsjZGVmaW5l IElTX0JYVF9SRVZJRChkZXZfcHJpdiwgc2luY2UsIHVudGlsKSBcCj4gKwkoSVNfQlJPWFRPTihk ZXZfcHJpdikgJiYgSVNfUkVWSUQoZGV2X3ByaXYsIHNpbmNlLCB1bnRpbCkpCj4gIAo+ICAjZGVm aW5lIEtCTF9SRVZJRF9BMAkJMHgwCj4gICNkZWZpbmUgS0JMX1JFVklEX0IwCQkweDEKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IGluZGV4IGNmNDNhNTYzMjk2MS4uZTYyODY5MWZl OTdlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtMzczLDI3ICsz NzMsMjkgQEAgc3RhdGljIHZvaWQgKmttYXBfcGFnZV9kbWEoc3RydWN0IGk5MTVfcGFnZV9kbWEg KnApCj4gIC8qIFdlIHVzZSB0aGUgZmx1c2hpbmcgdW5tYXAgb25seSB3aXRoIHBwZ3R0IHN0cnVj dHVyZXM6Cj4gICAqIHBhZ2UgZGlyZWN0b3JpZXMsIHBhZ2UgdGFibGVzIGFuZCBzY3JhdGNoIHBh Z2VzLgo+ICAgKi8KPiAtc3RhdGljIHZvaWQga3VubWFwX3BhZ2VfZG1hKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKnZhZGRyKQo+ICtzdGF0aWMgdm9pZCBrdW5tYXBfcGFnZV9kbWEoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB2b2lkICp2YWRkcikKPiAgewo+ICAJLyog VGhlcmUgYXJlIG9ubHkgZmV3IGV4Y2VwdGlvbnMgZm9yIGdlbiA+PTYuIGNodiBhbmQgYnh0Lgo+ ICAJICogQW5kIHdlIGFyZSBub3Qgc3VyZSBhYm91dCB0aGUgbGF0dGVyIHNvIHBsYXkgc2FmZSBm b3Igbm93Lgo+ICAJICovCj4gLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpIHx8IElTX0JST1hUT04o ZGV2KSkKPiArCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSB8fCBJU19CUk9YVE9OKGRldl9w cml2KSkKPiAgCQlkcm1fY2xmbHVzaF92aXJ0X3JhbmdlKHZhZGRyLCBQQUdFX1NJWkUpOwo+ICAK PiAgCWt1bm1hcF9hdG9taWModmFkZHIpOwo+ICB9Cj4gIAo+ICAjZGVmaW5lIGttYXBfcHgocHgp IGttYXBfcGFnZV9kbWEocHhfYmFzZShweCkpCj4gLSNkZWZpbmUga3VubWFwX3B4KHBwZ3R0LCB2 YWRkcikga3VubWFwX3BhZ2VfZG1hKChwcGd0dCktPmJhc2UuZGV2LCAodmFkZHIpKQo+ICsjZGVm aW5lIGt1bm1hcF9weChwcGd0dCwgdmFkZHIpIFwKPiArCQlrdW5tYXBfcGFnZV9kbWEodG9faTkx NSgocHBndHQpLT5iYXNlLmRldiksICh2YWRkcikpCj4gIAo+ICAjZGVmaW5lIHNldHVwX3B4KGRl diwgcHgpIHNldHVwX3BhZ2VfZG1hKChkZXYpLCBweF9iYXNlKHB4KSkKPiAgI2RlZmluZSBjbGVh bnVwX3B4KGRldiwgcHgpIGNsZWFudXBfcGFnZV9kbWEoKGRldiksIHB4X2Jhc2UocHgpKQo+IC0j ZGVmaW5lIGZpbGxfcHgoZGV2LCBweCwgdikgZmlsbF9wYWdlX2RtYSgoZGV2KSwgcHhfYmFzZShw eCksICh2KSkKPiAtI2RlZmluZSBmaWxsMzJfcHgoZGV2LCBweCwgdikgZmlsbF9wYWdlX2RtYV8z MigoZGV2KSwgcHhfYmFzZShweCksICh2KSkKPiArI2RlZmluZSBmaWxsX3B4KGRldl9wcml2LCBw eCwgdikgZmlsbF9wYWdlX2RtYSgoZGV2X3ByaXYpLCBweF9iYXNlKHB4KSwgKHYpKQo+ICsjZGVm aW5lIGZpbGwzMl9weChkZXZfcHJpdiwgcHgsIHYpIFwKPiArCQlmaWxsX3BhZ2VfZG1hXzMyKChk ZXZfcHJpdiksIHB4X2Jhc2UocHgpLCAodikpCj4gIAo+IC1zdGF0aWMgdm9pZCBmaWxsX3BhZ2Vf ZG1hKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwLAo+IC0J CQkgIGNvbnN0IHVpbnQ2NF90IHZhbCkKPiArc3RhdGljIHZvaWQgZmlsbF9wYWdlX2RtYShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAgc3RydWN0IGk5MTVfcGFnZV9k bWEgKnAsIGNvbnN0IHVpbnQ2NF90IHZhbCkKPiAgewo+ICAJaW50IGk7Cj4gIAl1aW50NjRfdCAq IGNvbnN0IHZhZGRyID0ga21hcF9wYWdlX2RtYShwKTsKPiBAQCAtNDAxLDE3ICs0MDMsMTcgQEAg c3RhdGljIHZvaWQgZmlsbF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg aTkxNV9wYWdlX2RtYSAqcCwKPiAgCWZvciAoaSA9IDA7IGkgPCA1MTI7IGkrKykKPiAgCQl2YWRk cltpXSA9IHZhbDsKPiAgCj4gLQlrdW5tYXBfcGFnZV9kbWEoZGV2LCB2YWRkcik7Cj4gKwlrdW5t YXBfcGFnZV9kbWEoZGV2X3ByaXYsIHZhZGRyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZmls bF9wYWdlX2RtYV8zMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9wYWdlX2Rt YSAqcCwKPiAtCQkJICAgICBjb25zdCB1aW50MzJfdCB2YWwzMikKPiArc3RhdGljIHZvaWQgZmls bF9wYWdlX2RtYV8zMihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJCSAg ICAgc3RydWN0IGk5MTVfcGFnZV9kbWEgKnAsIGNvbnN0IHVpbnQzMl90IHZhbDMyKQo+ICB7Cj4g IAl1aW50NjRfdCB2ID0gdmFsMzI7Cj4gIAo+ICAJdiA9IHYgPDwgMzIgfCB2YWwzMjsKPiAgCj4g LQlmaWxsX3BhZ2VfZG1hKGRldiwgcCwgdik7Cj4gKwlmaWxsX3BhZ2VfZG1hKGRldl9wcml2LCBw LCB2KTsKPiAgfQo+ICAKPiAgc3RhdGljIGludAo+IEBAIC00NzQsNyArNDc2LDcgQEAgc3RhdGlj IHZvaWQgZ2VuOF9pbml0aWFsaXplX3B0KHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ ICAJc2NyYXRjaF9wdGUgPSBnZW44X3B0ZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGFnZS5kYWRkciwK PiAgCQkJCSAgICAgIEk5MTVfQ0FDSEVfTExDLCB0cnVlKTsKPiAgCj4gLQlmaWxsX3B4KHZtLT5k ZXYsIHB0LCBzY3JhdGNoX3B0ZSk7Cj4gKwlmaWxsX3B4KHRvX2k5MTUodm0tPmRldiksIHB0LCBz Y3JhdGNoX3B0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGdlbjZfaW5pdGlhbGl6ZV9wdChz dHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiBAQCAtNDg3LDcgKzQ4OSw3IEBAIHN0YXRp YyB2b2lkIGdlbjZfaW5pdGlhbGl6ZV9wdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwK PiAgCXNjcmF0Y2hfcHRlID0gdm0tPnB0ZV9lbmNvZGUodm0tPnNjcmF0Y2hfcGFnZS5kYWRkciwK PiAgCQkJCSAgICAgSTkxNV9DQUNIRV9MTEMsIHRydWUsIDApOwo+ICAKPiAtCWZpbGwzMl9weCh2 bS0+ZGV2LCBwdCwgc2NyYXRjaF9wdGUpOwo+ICsJZmlsbDMyX3B4KHRvX2k5MTUodm0tPmRldiks IHB0LCBzY3JhdGNoX3B0ZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgaTkxNV9wYWdlX2Rp cmVjdG9yeSAqYWxsb2NfcGQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiBAQCAtNTM0LDcgKzUz Niw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfaW5pdGlhbGl6ZV9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bSwKPiAgCj4gIAlzY3JhdGNoX3BkZSA9IGdlbjhfcGRlX2VuY29kZShweF9kbWEo dm0tPnNjcmF0Y2hfcHQpLCBJOTE1X0NBQ0hFX0xMQyk7Cj4gIAo+IC0JZmlsbF9weCh2bS0+ZGV2 LCBwZCwgc2NyYXRjaF9wZGUpOwo+ICsJZmlsbF9weCh0b19pOTE1KHZtLT5kZXYpLCBwZCwgc2Ny YXRjaF9wZGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IF9fcGRwX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiBAQCAtNjE1LDcgKzYxNyw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfaW5pdGlh bGl6ZV9wZHAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gIAo+ICAJc2NyYXRjaF9w ZHBlID0gZ2VuOF9wZHBlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcGQpLCBJOTE1X0NBQ0hF X0xMQyk7Cj4gIAo+IC0JZmlsbF9weCh2bS0+ZGV2LCBwZHAsIHNjcmF0Y2hfcGRwZSk7Cj4gKwlm aWxsX3B4KHRvX2k5MTUodm0tPmRldiksIHBkcCwgc2NyYXRjaF9wZHBlKTsKPiAgfQo+ICAKPiAg c3RhdGljIHZvaWQgZ2VuOF9pbml0aWFsaXplX3BtbDQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFj ZSAqdm0sCj4gQEAgLTYyNiw3ICs2MjgsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVf cG1sNChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgCXNjcmF0Y2hfcG1sNGUgPSBn ZW44X3BtbDRlX2VuY29kZShweF9kbWEodm0tPnNjcmF0Y2hfcGRwKSwKPiAgCQkJCQkgIEk5MTVf Q0FDSEVfTExDKTsKPiAgCj4gLQlmaWxsX3B4KHZtLT5kZXYsIHBtbDQsIHNjcmF0Y2hfcG1sNGUp Owo+ICsJZmlsbF9weCh0b19pOTE1KHZtLT5kZXYpLCBwbWw0LCBzY3JhdGNoX3BtbDRlKTsKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQKPiBAQCAtMjEzNSw3ICsyMTM3LDcgQEAgc3RhdGljIHZvaWQg Z3R0X3dyaXRlX3dvcmthcm91bmRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAkJSTkxNV9X UklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU44X0wzX0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFM VUVfQ0hWKTsKPiAgCWVsc2UgaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpKQo+ICAJCUk5MTVfV1JJ VEUoR0VOOF9MM19MUkFfMV9HUEdQVSwgR0VOOV9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVF X1NLTCk7Cj4gLQllbHNlIGlmIChJU19CUk9YVE9OKGRldikpCj4gKwllbHNlIGlmIChJU19CUk9Y VE9OKGRldl9wcml2KSkKPiAgCQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjlf TDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9CWFQpOwo+ICB9Cj4gIAo+IEBAIC0yODk1LDcg KzI4OTcsNyBAQCBzdGF0aWMgaW50IGdndHRfcHJvYmVfY29tbW9uKHN0cnVjdCBpOTE1X2dndHQg KmdndHQsIHU2NCBzaXplKQo+ICAJICogcmVzb3J0IHRvIGFuIHVuY2FjaGVkIG1hcHBpbmcuIFRo ZSBXQyBpc3N1ZSBpcyBlYXNpbHkgY2F1Z2h0IGJ5IHRoZQo+ICAJICogcmVhZGJhY2sgY2hlY2sg d2hlbiB3cml0aW5nIEdUVCBQVEUgZW50cmllcy4KPiAgCSAqLwo+IC0JaWYgKElTX0JST1hUT04o Z2d0dC0+YmFzZS5kZXYpKQo+ICsJaWYgKElTX0JST1hUT04odG9faTkxNShnZ3R0LT5iYXNlLmRl dikpKQo+ICAJCWdndHQtPmdzbSA9IGlvcmVtYXBfbm9jYWNoZShwaHlzX2FkZHIsIHNpemUpOwo+ ICAJZWxzZQo+ICAJCWdndHQtPmdzbSA9IGlvcmVtYXBfd2MocGh5c19hZGRyLCBzaXplKTsKPiBA QCAtMzI2Nyw3ICszMjY5LDcgQEAgdm9pZCBpOTE1X2dlbV9yZXN0b3JlX2d0dF9tYXBwaW5ncyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJZ2d0dC0+YmFzZS5jbG9zZWQgPSBmYWxzZTsKPiAg Cj4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOCkgewo+IC0JCWlmIChJU19DSEVSUllW SUVXKGRldikgfHwgSVNfQlJPWFRPTihkZXYpKQo+ICsJCWlmIChJU19DSEVSUllWSUVXKGRldl9w cml2KSB8fCBJU19CUk9YVE9OKGRldl9wcml2KSkKPiAgCQkJY2h2X3NldHVwX3ByaXZhdGVfcHBh dChkZXZfcHJpdik7Cj4gIAkJZWxzZQo+ICAJCQliZHdfc2V0dXBfcHJpdmF0ZV9wcGF0KGRldl9w cml2KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCA0NzMzN2FhYmMzMjYuLjc1ZjRi YTkzNWViYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC00NTk3LDcgKzQ1OTcs NyBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiAgCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbCA9IGdlbjhfaXJxX3VuaW5zdGFsbDsK PiAgCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGdlbjhfZW5hYmxlX3ZibGFuazsKPiAg CQlkZXYtPmRyaXZlci0+ZGlzYWJsZV92YmxhbmsgPSBnZW44X2Rpc2FibGVfdmJsYW5rOwo+IC0J CWlmIChJU19CUk9YVE9OKGRldikpCj4gKwkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJ CQlkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gYnh0X2hwZF9pcnFfc2V0dXA7Cj4g IAkJZWxzZSBpZiAoSEFTX1BDSF9TUFQoZGV2X3ByaXYpIHx8IEhBU19QQ0hfS0JQKGRldl9wcml2 KSkKPiAgCQkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IHNwdF9ocGRfaXJxX3Nl dHVwOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggMDcxNjRlMjUwYWRmLi5hNzZh ZmQ3YTY2MTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IEBAIC0yNTA5LDcgKzI1 MDksNyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGVudW0g cG9ydCBwb3J0KQo+ICAJICogY29uZmlndXJhdGlvbiBzbyB0aGF0IHdlIHVzZSB0aGUgcHJvcGVy IGxhbmUgY291bnQgZm9yIG91cgo+ICAJICogY2FsY3VsYXRpb25zLgo+ICAJICovCj4gLQlpZiAo SVNfQlJPWFRPTihkZXYpICYmIHBvcnQgPT0gUE9SVF9BKSB7Cj4gKwlpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikgJiYgcG9ydCA9PSBQT1JUX0EpIHsKPiAgCQlpZiAoIShpbnRlbF9kaWdfcG9ydC0+ c2F2ZWRfcG9ydF9iaXRzICYgRERJX0FfNF9MQU5FUykpIHsKPiAgCQkJRFJNX0RFQlVHX0tNUygi QlhUIEJJT1MgZm9yZ290IHRvIHNldCBERElfQV80X0xBTkVTIGZvciBwb3J0IEE7IGZpeGluZ1xu Iik7Cj4gIAkJCWludGVsX2RpZ19wb3J0LT5zYXZlZF9wb3J0X2JpdHMgfD0gRERJX0FfNF9MQU5F UzsKPiBAQCAtMjUzMyw3ICsyNTMzLDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCkKPiAgCQkgKiBPbiBCWFQgQTAvQTEsIHN3IG5l ZWRzIHRvIGFjdGl2YXRlIERESUEgSFBEIGxvZ2ljIGFuZAo+ICAJCSAqIGludGVycnVwdHMgdG8g Y2hlY2sgdGhlIGV4dGVybmFsIHBhbmVsIGNvbm5lY3Rpb24uCj4gIAkJICovCj4gLQkJaWYgKElT X0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkgJiYgcG9ydCA9PSBQT1JUX0IpCj4gKwkJ aWYgKElTX0JYVF9SRVZJRChkZXZfcHJpdiwgMCwgQlhUX1JFVklEX0ExKSAmJiBwb3J0ID09IFBP UlRfQikKPiAgCQkJZGV2X3ByaXYtPmhvdHBsdWcuaXJxX3BvcnRbUE9SVF9BXSA9IGludGVsX2Rp Z19wb3J0Owo+ICAJCWVsc2UKPiAgCQkJZGV2X3ByaXYtPmhvdHBsdWcuaXJxX3BvcnRbcG9ydF0g PSBpbnRlbF9kaWdfcG9ydDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5k ZXggZTY3M2E4MDNmMjEzLi42MzZlNTU3MmI5OTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCj4gQEAgLTYwMCw3ICs2MDAsNyBAQCBpbnQgY2h2X2NhbGNfZHBsbF9wYXJh bXMoaW50IHJlZmNsaywgc3RydWN0IGRwbGwgKmNsb2NrKQo+ICAgKiB0aGUgZ2l2ZW4gY29ubmVj dG9ycy4KPiAgICovCj4gIAo+IC1zdGF0aWMgYm9vbCBpbnRlbF9QTExfaXNfdmFsaWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiArc3RhdGljIGJvb2wgaW50ZWxfUExMX2lzX3ZhbGlkKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBp bnRlbF9saW1pdCAqbGltaXQsCj4gIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHBsbCAqY2xvY2sp Cj4gIHsKPiBAQCAtNjEzLDEyICs2MTMsMTMgQEAgc3RhdGljIGJvb2wgaW50ZWxfUExMX2lzX3Zh bGlkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpZiAoY2xvY2stPm0xICA8IGxpbWl0LT5t MS5taW4gIHx8IGxpbWl0LT5tMS5tYXggIDwgY2xvY2stPm0xKQo+ICAJCUlOVEVMUGxsSW52YWxp ZCgibTEgb3V0IG9mIHJhbmdlXG4iKTsKPiAgCj4gLQlpZiAoIUlTX1BJTkVWSUVXKGRldikgJiYg IUlTX1ZBTExFWVZJRVcoZGV2KSAmJgo+IC0JICAgICFJU19DSEVSUllWSUVXKGRldikgJiYgIUlT X0JST1hUT04oZGV2KSkKPiArCWlmICghSVNfUElORVZJRVcoZGV2X3ByaXYpICYmICFJU19WQUxM RVlWSUVXKGRldl9wcml2KSAmJgo+ICsJICAgICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiAh SVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJaWYgKGNsb2NrLT5tMSA8PSBjbG9jay0+bTIpCj4g IAkJCUlOVEVMUGxsSW52YWxpZCgibTEgPD0gbTJcbiIpOwo+ICAKPiAtCWlmICghSVNfVkFMTEVZ VklFVyhkZXYpICYmICFJU19DSEVSUllWSUVXKGRldikgJiYgIUlTX0JST1hUT04oZGV2KSkgewo+ ICsJaWYgKCFJU19WQUxMRVlWSUVXKGRldl9wcml2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXZfcHJp dikgJiYKPiArCSAgICAhSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiAgCQlpZiAoY2xvY2stPnAg PCBsaW1pdC0+cC5taW4gfHwgbGltaXQtPnAubWF4IDwgY2xvY2stPnApCj4gIAkJCUlOVEVMUGxs SW52YWxpZCgicCBvdXQgb2YgcmFuZ2VcbiIpOwo+ICAJCWlmIChjbG9jay0+bSA8IGxpbWl0LT5t Lm1pbiB8fCBsaW1pdC0+bS5tYXggPCBjbG9jay0+bSkKPiBAQCAtNjk4LDcgKzY5OSw4IEBAIGk5 eHhfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKPiAgCQkJ CQlpbnQgdGhpc19lcnI7Cj4gIAo+ICAJCQkJCWk5eHhfY2FsY19kcGxsX3BhcmFtcyhyZWZjbGss ICZjbG9jayk7Cj4gLQkJCQkJaWYgKCFpbnRlbF9QTExfaXNfdmFsaWQoZGV2LCBsaW1pdCwKPiAr CQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZCh0b19pOTE1KGRldiksCj4gKwkJCQkJCQkJbGlt aXQsCj4gIAkJCQkJCQkJJmNsb2NrKSkKPiAgCQkJCQkJY29udGludWU7Cj4gIAkJCQkJaWYgKG1h dGNoX2Nsb2NrICYmCj4gQEAgLTc1Myw3ICs3NTUsOCBAQCBwbnZfZmluZF9iZXN0X2RwbGwoY29u c3Qgc3RydWN0IGludGVsX2xpbWl0ICpsaW1pdCwKPiAgCQkJCQlpbnQgdGhpc19lcnI7Cj4gIAo+ ICAJCQkJCXBudl9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNsb2NrKTsKPiAtCQkJCQlpZiAo IWludGVsX1BMTF9pc192YWxpZChkZXYsIGxpbWl0LAo+ICsJCQkJCWlmICghaW50ZWxfUExMX2lz X3ZhbGlkKHRvX2k5MTUoZGV2KSwKPiArCQkJCQkJCQlsaW1pdCwKPiAgCQkJCQkJCQkmY2xvY2sp KQo+ICAJCQkJCQljb250aW51ZTsKPiAgCQkJCQlpZiAobWF0Y2hfY2xvY2sgJiYKPiBAQCAtODEz LDcgKzgxNiw4IEBAIGc0eF9maW5kX2Jlc3RfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfbGltaXQg KmxpbWl0LAo+ICAJCQkJCWludCB0aGlzX2VycjsKPiAgCj4gIAkJCQkJaTl4eF9jYWxjX2RwbGxf cGFyYW1zKHJlZmNsaywgJmNsb2NrKTsKPiAtCQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZChk ZXYsIGxpbWl0LAo+ICsJCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKHRvX2k5MTUoZGV2KSwK PiArCQkJCQkJCQlsaW1pdCwKPiAgCQkJCQkJCQkmY2xvY2spKQo+ICAJCQkJCQljb250aW51ZTsK PiAgCj4gQEAgLTkwOSw3ICs5MTMsOCBAQCB2bHZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0 IGludGVsX2xpbWl0ICpsaW1pdCwKPiAgCj4gIAkJCQkJdmx2X2NhbGNfZHBsbF9wYXJhbXMocmVm Y2xrLCAmY2xvY2spOwo+ICAKPiAtCQkJCQlpZiAoIWludGVsX1BMTF9pc192YWxpZChkZXYsIGxp bWl0LAo+ICsJCQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKHRvX2k5MTUoZGV2KSwKPiArCQkJ CQkJCQlsaW1pdCwKPiAgCQkJCQkJCQkmY2xvY2spKQo+ICAJCQkJCQljb250aW51ZTsKPiAgCj4g QEAgLTk3Nyw3ICs5ODIsNyBAQCBjaHZfZmluZF9iZXN0X2RwbGwoY29uc3Qgc3RydWN0IGludGVs X2xpbWl0ICpsaW1pdCwKPiAgCj4gIAkJCWNodl9jYWxjX2RwbGxfcGFyYW1zKHJlZmNsaywgJmNs b2NrKTsKPiAgCj4gLQkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKGRldiwgbGltaXQsICZjbG9j aykpCj4gKwkJCWlmICghaW50ZWxfUExMX2lzX3ZhbGlkKHRvX2k5MTUoZGV2KSwgbGltaXQsICZj bG9jaykpCj4gIAkJCQljb250aW51ZTsKPiAgCj4gIAkJCWlmICghdmx2X1BMTF9pc19vcHRpbWFs KGRldiwgdGFyZ2V0LCAmY2xvY2ssIGJlc3RfY2xvY2ssCj4gQEAgLTU4NTIsNyArNTg1Nyw3IEBA IHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgCQkJbWF4X2NkY2xrID0gMzA4NTcxOwo+ICAKPiAgCQlkZXZfcHJpdi0+bWF4X2NkY2xr X2ZyZXEgPSBza2xfY2FsY19jZGNsayhtYXhfY2RjbGssIHZjbyk7Cj4gLQl9IGVsc2UgaWYgKElT X0JST1hUT04oZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ ICAJCWRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSA9IDYyNDAwMDsKPiAgCX0gZWxzZSBpZiAoSVNf QlJPQURXRUxMKGRldl9wcml2KSkgIHsKPiAgCQkvKgo+IEBAIC0xMDY1MCw3ICsxMDY1NSw3IEBA IHN0YXRpYyB2b2lkIGhhc3dlbGxfZ2V0X2RkaV9wb3J0X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjLAo+ICAKPiAgCWlmIChJU19TS1lMQUtFKGRldl9wcml2KSB8fCBJU19LQUJZTEFLRShk ZXZfcHJpdikpCj4gIAkJc2t5bGFrZV9nZXRfZGRpX3BsbChkZXZfcHJpdiwgcG9ydCwgcGlwZV9j b25maWcpOwo+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+ICsJZWxzZSBpZiAoSVNfQlJP WFRPTihkZXZfcHJpdikpCj4gIAkJYnh0X2dldF9kZGlfcGxsKGRldl9wcml2LCBwb3J0LCBwaXBl X2NvbmZpZyk7Cj4gIAllbHNlCj4gIAkJaGFzd2VsbF9nZXRfZGRpX3BsbChkZXZfcHJpdiwgcG9y dCwgcGlwZV9jb25maWcpOwo+IEBAIC0xMjgwOCw3ICsxMjgxMyw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2R1bXBfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAlEUk1fREVC VUdfS01TKCJpcHM6ICVpXG4iLCBwaXBlX2NvbmZpZy0+aXBzX2VuYWJsZWQpOwo+ICAJRFJNX0RF QlVHX0tNUygiZG91YmxlIHdpZGU6ICVpXG4iLCBwaXBlX2NvbmZpZy0+ZG91YmxlX3dpZGUpOwo+ ICAKPiAtCWlmIChJU19CUk9YVE9OKGRldikpIHsKPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2 KSkgewo+ICAJCURSTV9ERUJVR19LTVMoImRwbGxfaHdfc3RhdGU6IGViYjA6IDB4JXgsIGViYjQ6 IDB4JXgsIgo+ICAJCQkgICAgICAicGxsMDogMHgleCwgcGxsMTogMHgleCwgcGxsMjogMHgleCwg cGxsMzogMHgleCwgIgo+ICAJCQkgICAgICAicGxsNjogMHgleCwgcGxsODogMHgleCwgcGxsOTog MHgleCwgcGxsMTA6IDB4JXgsIHBjc2R3MTI6IDB4JXhcbiIsCj4gQEAgLTE1NDAxLDcgKzE1NDA2 LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAJaWYgKGludGVsX2NydF9wcmVzZW50KGRldikpCj4gIAkJaW50ZWxfY3J0X2luaXQo ZGV2KTsKPiAgCj4gLQlpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gKwlpZiAoSVNfQlJPWFRPTihk ZXZfcHJpdikpIHsKPiAgCQkvKgo+ICAJCSAqIEZJWE1FOiBCcm94dG9uIGRvZXNuJ3Qgc3VwcG9y dCBwb3J0IGRldGVjdGlvbiB2aWEgdGhlCj4gIAkJICogRERJX0JVRl9DVExfQSBvciBTRlVTRV9T VFJBUCByZWdpc3RlcnMsIGZpbmQgYW5vdGhlciB3YXkgdG8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiBpbmRleCAwMmU3NGM0NjdhNTUuLmI2YzhiMjVlZTFkNCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+IEBAIC01NzEsNyArNTcxLDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5j ZXJfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gIAo+ICAJaWYgKFdBUk5fT04oIUlTX1ZBTExFWVZJRVco ZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpICYmCj4gLQkJICAgICFJU19CUk9YVE9OKGRldikp KQo+ICsJCSAgICAhSVNfQlJPWFRPTihkZXZfcHJpdikpKQo+ICAJCXJldHVybjsKPiAgCj4gIAkv Kgo+IEBAIC01OTEsNyArNTkxLDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCQljb250aW51ZTsKPiAgCj4g IAkJaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+IC0JCWlmIChJ U19CUk9YVE9OKGRldikpCj4gKwkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJCQlpbnRl bF9kcC0+cHBzX3Jlc2V0ID0gdHJ1ZTsKPiAgCQllbHNlCj4gIAkJCWludGVsX2RwLT5wcHNfcGlw ZSA9IElOVkFMSURfUElQRTsKPiBAQCAtMjk4MSw3ICsyOTgxLDcgQEAgaW50ZWxfZHBfdm9sdGFn ZV9tYXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9f ZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0Owo+ICAKPiAtCWlmIChJU19CUk9YVE9OKGRldikpCj4g KwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJcmV0dXJuIERQX1RSQUlOX1ZPTFRBR0Vf U1dJTkdfTEVWRUxfMzsKPiAgCWVsc2UgaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpIHsK PiAgCQlpZiAoZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZyAmJiBwb3J0ID09IFBPUlRfQSkK PiBAQCAtMzM0NCw3ICszMzQ0LDcgQEAgaW50ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWlmIChIQVNfRERJKGRldl9wcml2KSkgewo+ICAJCXNp Z25hbF9sZXZlbHMgPSBkZGlfc2lnbmFsX2xldmVscyhpbnRlbF9kcCk7Cj4gIAo+IC0JCWlmIChJ U19CUk9YVE9OKGRldikpCj4gKwkJaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJCQlzaWdu YWxfbGV2ZWxzID0gMDsKPiAgCQllbHNlCj4gIAkJCW1hc2sgPSBERElfQlVGX0VNUF9NQVNLOwo+ IEBAIC01MDcyLDcgKzUwNzIsNyBAQCBpbnRlbF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNl cl9yZWdpc3RlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkgKHNlcS0+dDEwIDw8IFBB TkVMX1BPV0VSX0RPV05fREVMQVlfU0hJRlQpOwo+ICAJLyogQ29tcHV0ZSB0aGUgZGl2aXNvciBm b3IgdGhlIHBwIGNsb2NrLCBzaW1wbHkgbWF0Y2ggdGhlIEJzcGVjCj4gIAkgKiBmb3JtdWxhLiAq Lwo+IC0JaWYgKElTX0JST1hUT04oZGV2KSkgewo+ICsJaWYgKElTX0JST1hUT04oZGV2X3ByaXYp KSB7Cj4gIAkJcHBfZGl2ID0gSTkxNV9SRUFEKHJlZ3MucHBfY3RybCk7Cj4gIAkJcHBfZGl2ICY9 IH5CWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSzsKPiAgCQlwcF9kaXYgfD0gKERJVl9ST1VORF9V UCgoc2VxLT50MTFfdDEyICsgMSksIDEwMDApCj4gQEAgLTUwOTgsNyArNTA5OCw3IEBAIGludGVs X2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAKPiAgCUk5MTVfV1JJVEUocmVncy5wcF9vbiwgcHBfb24pOwo+ICAJSTkxNV9X UklURShyZWdzLnBwX29mZiwgcHBfb2ZmKTsKPiAtCWlmIChJU19CUk9YVE9OKGRldikpCj4gKwlp ZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJSTkxNV9XUklURShyZWdzLnBwX2N0cmwsIHBw X2Rpdik7Cj4gIAllbHNlCj4gIAkJSTkxNV9XUklURShyZWdzLnBwX2RpdiwgcHBfZGl2KTsKPiBA QCAtNTEwNiw3ICs1MTA2LDcgQEAgaW50ZWxfZHBfaW5pdF9wYW5lbF9wb3dlcl9zZXF1ZW5jZXJf cmVnaXN0ZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlEUk1fREVCVUdfS01TKCJwYW5l bCBwb3dlciBzZXF1ZW5jZXIgcmVnaXN0ZXIgc2V0dGluZ3M6IFBQX09OICUjeCwgUFBfT0ZGICUj eCwgUFBfRElWICUjeFxuIiwKPiAgCQkgICAgICBJOTE1X1JFQUQocmVncy5wcF9vbiksCj4gIAkJ ICAgICAgSTkxNV9SRUFEKHJlZ3MucHBfb2ZmKSwKPiAtCQkgICAgICBJU19CUk9YVE9OKGRldikg Pwo+ICsJCSAgICAgIElTX0JST1hUT04oZGV2X3ByaXYpID8KPiAgCQkgICAgICAoSTkxNV9SRUFE KHJlZ3MucHBfY3RybCkgJiBCWFRfUE9XRVJfQ1lDTEVfREVMQVlfTUFTSykgOgo+ICAJCSAgICAg IEk5MTVfUkVBRChyZWdzLnBwX2RpdikpOwo+ICB9Cj4gQEAgLTU3MTUsNyArNTcxNSw3IEBAIGlu dGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0LAo+ICAJCWJyZWFrOwo+ICAJY2FzZSBQT1JUX0I6Cj4gIAkJaW50ZWxfZW5jb2Rlci0+ aHBkX3BpbiA9IEhQRF9QT1JUX0I7Cj4gLQkJaWYgKElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9S RVZJRF9BMSkpCj4gKwkJaWYgKElTX0JYVF9SRVZJRChkZXZfcHJpdiwgMCwgQlhUX1JFVklEX0Ex KSkKPiAgCQkJaW50ZWxfZW5jb2Rlci0+aHBkX3BpbiA9IEhQRF9QT1JUX0E7Cj4gIAkJYnJlYWs7 Cj4gIAljYXNlIFBPUlRfQzoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMKPiBp bmRleCA3Y2Y5ZDkxYzA3NDYuLjYwNWQwYjUwOWYyNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0xODUzLDcgKzE4NTMsNyBAQCB2b2lkIGludGVsX3NoYXJl ZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAlpZiAoSVNfU0tZTEFL RShkZXZfcHJpdikgfHwgSVNfS0FCWUxBS0UoZGV2X3ByaXYpKQo+ICAJCWRwbGxfbWdyID0gJnNr bF9wbGxfbWdyOwo+IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+ICsJZWxzZSBpZiAoSVNf QlJPWFRPTihkZXZfcHJpdikpCj4gIAkJZHBsbF9tZ3IgPSAmYnh0X3BsbF9tZ3I7Cj4gIAllbHNl IGlmIChIQVNfRERJKGRldl9wcml2KSkKPiAgCQlkcGxsX21nciA9ICZoc3dfcGxsX21ncjsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IGluZGV4IDViMWU0NDVhODBkMC4uNDhlOGRkMTA4ZjRm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBAQCAtNDM3LDExICs0MzcsMTEgQEAg c3RhdGljIHZvaWQgdmx2X2RzaV9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIpCj4gIAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZGV2aWNlX3JlYWR5KHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g ZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCj4gLQlpZiAoSVNfVkFMTEVZVklFVyhk ZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQl2bHZfZHNpX2RldmljZV9yZWFkeShl bmNvZGVyKTsKPiAtCWVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkKPiArCWVsc2UgaWYgKElTX0JS T1hUT04oZGV2X3ByaXYpKQo+ICAJCWJ4dF9kc2lfZGV2aWNlX3JlYWR5KGVuY29kZXIpOwo+ICB9 Cj4gIAo+IEBAIC00NjQsNyArNDY0LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNpX3BvcnRfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ICAJfQo+ICAKPiAgCWZvcl9lYWNo X2RzaV9wb3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiAtCQlpOTE1X3JlZ190IHBvcnRf Y3RybCA9IElTX0JST1hUT04oZGV2KSA/Cj4gKwkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19C Uk9YVE9OKGRldl9wcml2KSA/Cj4gIAkJCUJYVF9NSVBJX1BPUlRfQ1RSTChwb3J0KSA6IE1JUElf UE9SVF9DVFJMKHBvcnQpOwo+ICAJCXUzMiB0ZW1wOwo+ICAKPiBAQCAtNDk0LDcgKzQ5NCw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2RzaV9wb3J0X2Rpc2FibGUoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCj4gIAllbnVtIHBvcnQgcG9ydDsKPiAgCj4gIAlmb3JfZWFjaF9kc2lfcG9ydChw b3J0LCBpbnRlbF9kc2ktPnBvcnRzKSB7Cj4gLQkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19C Uk9YVE9OKGRldikgPwo+ICsJCWk5MTVfcmVnX3QgcG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXZf cHJpdikgPwo+ICAJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJX1BPUlRfQ1RSTChw b3J0KTsKPiAgCQl1MzIgdGVtcDsKPiAgCj4gQEAgLTY1Niw3ICs2NTYsNiBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9kc2lfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCj4g IHN0YXRpYyB2b2lkIGludGVsX2RzaV9jbGVhcl9kZXZpY2VfcmVhZHkoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVy LT5iYXNlLmRldjsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2RzaSAqaW50ZWxfZHNpID0g ZW5jX3RvX2ludGVsX2RzaSgmZW5jb2Rlci0+YmFzZSk7Cj4gIAllbnVtIHBvcnQgcG9ydDsKPiBA QCAtNjY0LDcgKzY2Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9jbGVhcl9kZXZpY2VfcmVh ZHkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIAlEUk1fREVCVUdfS01TKCJcbiIp Owo+ICAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNpLT5wb3J0cykgewo+ICAJCS8q IENvbW1vbiBiaXQgZm9yIGJvdGggTUlQSSBQb3J0IEEgJiBNSVBJIFBvcnQgQyBvbiBWTFYvQ0hW ICovCj4gLQkJaTkxNV9yZWdfdCBwb3J0X2N0cmwgPSBJU19CUk9YVE9OKGRldikgPwo+ICsJCWk5 MTVfcmVnX3QgcG9ydF9jdHJsID0gSVNfQlJPWFRPTihkZXZfcHJpdikgPwo+ICAJCQlCWFRfTUlQ SV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJX1BPUlRfQ1RSTChQT1JUX0EpOwo+ICAJCXUzMiB2YWw7 Cj4gIAo+IEBAIC03NjIsNyArNzYxLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2dldF9od19z dGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAkvKiBYWFg6IHRoaXMg b25seSB3b3JrcyBmb3Igb25lIERTSSBvdXRwdXQgKi8KPiAgCWZvcl9lYWNoX2RzaV9wb3J0KHBv cnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiAtCQlpOTE1X3JlZ190IGN0cmxfcmVnID0gSVNfQlJP WFRPTihkZXYpID8KPiArCQlpOTE1X3JlZ190IGN0cmxfcmVnID0gSVNfQlJPWFRPTihkZXZfcHJp dikgPwo+ICAJCQlCWFRfTUlQSV9QT1JUX0NUUkwocG9ydCkgOiBNSVBJX1BPUlRfQ1RSTChwb3J0 KTsKPiAgCQlib29sIGVuYWJsZWQgPSBJOTE1X1JFQUQoY3RybF9yZWcpICYgRFBJX0VOQUJMRTsK PiAgCj4gQEAgLTk3MCwxMSArOTY5LDExIEBAIHN0YXRpYyB2b2lkIGJ4dF9kc2lfZ2V0X3BpcGVf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICBzdGF0aWMgdm9pZCBpbnRl bF9kc2lfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCSBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gIHsKPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJdTMyIHBjbGs7 Cj4gIAlEUk1fREVCVUdfS01TKCJcbiIpOwo+ICAKPiAtCWlmIChJU19CUk9YVE9OKGRldikpCj4g KwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJYnh0X2RzaV9nZXRfcGlwZV9jb25maWco ZW5jb2RlciwgcGlwZV9jb25maWcpOwo+ICAKPiAgCXBjbGsgPSBpbnRlbF9kc2lfZ2V0X3BjbGso ZW5jb2RlciwgcGlwZV9jb25maWctPnBpcGVfYnBwLAo+IEBAIC0xMDY2LDcgKzEwNjUsNyBAQCBz dGF0aWMgdm9pZCBzZXRfZHNpX3RpbWluZ3Moc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ ICAJaGJwID0gdHhieXRlY2xraHMoaGJwLCBicHAsIGxhbmVfY291bnQsIGludGVsX2RzaS0+YnVy c3RfbW9kZV9yYXRpbyk7Cj4gIAo+ICAJZm9yX2VhY2hfZHNpX3BvcnQocG9ydCwgaW50ZWxfZHNp LT5wb3J0cykgewo+IC0JCWlmIChJU19CUk9YVE9OKGRldikpIHsKPiArCQlpZiAoSVNfQlJPWFRP TihkZXZfcHJpdikpIHsKPiAgCQkJLyoKPiAgCQkJICogUHJvZ3JhbSBoZGlzcGxheSBhbmQgdmRp c3BsYXkgb24gTUlQSSB0cmFuc2NvZGVyLgo+ICAJCQkgKiBUaGlzIGlzIGRpZmZlcmVudCBmcm9t IGNhbGN1bGF0ZWQgaGFjdGl2ZSBhbmQKPiBAQCAtMTE1Myw3ICsxMTUyLDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHNpX3ByZXBhcmUoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIs Cj4gIAkJCXRtcCAmPSB+UkVBRF9SRVFVRVNUX1BSSU9SSVRZX01BU0s7Cj4gIAkJCUk5MTVfV1JJ VEUoTUlQSV9DVFJMKHBvcnQpLCB0bXAgfAo+ICAJCQkJCVJFQURfUkVRVUVTVF9QUklPUklUWV9I SUdIKTsKPiAtCQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+ICsJCX0gZWxzZSBpZiAo SVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiAgCQkJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRj LT5waXBlOwo+ICAKPiAgCQkJdG1wID0gSTkxNV9SRUFEKE1JUElfQ1RSTChwb3J0KSk7Cj4gQEAg LTEyNDIsNyArMTI0MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJCUk5MTVfV1JJVEUoTUlQSV9JTklUX0NP VU5UKHBvcnQpLAo+ICAJCQkJdHhjbGtlc2MoaW50ZWxfZHNpLT5lc2NhcGVfY2xrX2RpdiwgMTAw KSk7Cj4gIAo+IC0JCWlmIChJU19CUk9YVE9OKGRldikgJiYgKCFpbnRlbF9kc2ktPmR1YWxfbGlu aykpIHsKPiArCQlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikgJiYgKCFpbnRlbF9kc2ktPmR1YWxf bGluaykpIHsKPiAgCQkJLyoKPiAgCQkJICogQlhUIHNwZWMgc2F5cyB3cml0ZSBNSVBJX0lOSVRf Q09VTlQgZm9yCj4gIAkJCSAqIGJvdGggdGhlIHBvcnRzLCBldmVuIGlmIG9ubHkgb25lIGlzCj4g QEAgLTE0NTIsNyArMTQ1MSw3IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCj4gIAlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2KSkgewo+ICAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9IFZMVl9NSVBJX0JBU0U7Cj4g LQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19CUk9YVE9O KGRldl9wcml2KSkgewo+ICAJCWRldl9wcml2LT5taXBpX21taW9fYmFzZSA9IEJYVF9NSVBJX0JB U0U7Cj4gIAl9IGVsc2Ugewo+ICAJCURSTV9FUlJPUigiVW5zdXBwb3J0ZWQgTWlwaSBkZXZpY2Ug dG8gcmVnIGJhc2UiKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpX3BsbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpX3BsbC5jCj4gaW5kZXgg NmFiNThhMDFiMThlLi41NmVmZjYwMDRiYzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHNpX3BsbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpX3BsbC5jCj4gQEAgLTM1MSw3ICszNTEsNyBAQCBzdGF0aWMgdTMyIGJ4dF9kc2lfZ2V0X3Bj bGsoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsIGludCBwaXBlX2JwcCwKPiAgdTMyIGlu dGVsX2RzaV9nZXRfcGNsayhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwgaW50IHBpcGVf YnBwLAo+ICAJCSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQo+ICB7Cj4g LQlpZiAoSVNfQlJPWFRPTihlbmNvZGVyLT5iYXNlLmRldikpCj4gKwlpZiAoSVNfQlJPWFRPTih0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KSkpCj4gIAkJcmV0dXJuIGJ4dF9kc2lfZ2V0X3BjbGso ZW5jb2RlciwgcGlwZV9icHAsIGNvbmZpZyk7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIHZsdl9kc2lf Z2V0X3BjbGsoZW5jb2RlciwgcGlwZV9icHAsIGNvbmZpZyk7Cj4gQEAgLTUxNSwxMSArNTE1LDEx IEBAIGJvb2wgaW50ZWxfZHNpX3BsbF9pc19lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKPiAgaW50IGludGVsX2NvbXB1dGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQo+ ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKPiAgCj4gLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 KSkKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9w cml2KSkKPiAgCQlyZXR1cm4gdmx2X2NvbXB1dGVfZHNpX3BsbChlbmNvZGVyLCBjb25maWcpOwo+ IC0JZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKQo+ICsJZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZf cHJpdikpCj4gIAkJcmV0dXJuIGJ4dF9jb21wdXRlX2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsK PiAgCj4gIAlyZXR1cm4gLUVOT0RFVjsKPiBAQCAtNTI4LDIxICs1MjgsMjEgQEAgaW50IGludGVs X2NvbXB1dGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgdm9pZCBp bnRlbF9lbmFibGVfZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJ ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY29uZmlnKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCj4gLQlp ZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKPiArCWlmIChJU19W QUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQl2bHZf ZW5hYmxlX2RzaV9wbGwoZW5jb2RlciwgY29uZmlnKTsKPiAtCWVsc2UgaWYgKElTX0JST1hUT04o ZGV2KSkKPiArCWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJCWJ4dF9lbmFibGVf ZHNpX3BsbChlbmNvZGVyLCBjb25maWcpOwo+ICB9Cj4gIAo+ICB2b2lkIGludGVsX2Rpc2FibGVf ZHNpX3BsbChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgewo+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAo+IC0JaWYg KElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpCj4gKwlpZiAoSVNfVkFM TEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJdmx2X2Rp c2FibGVfZHNpX3BsbChlbmNvZGVyKTsKPiAtCWVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkKPiAr CWVsc2UgaWYgKElTX0JST1hUT04oZGV2X3ByaXYpKQo+ICAJCWJ4dF9kaXNhYmxlX2RzaV9wbGwo ZW5jb2Rlcik7Cj4gIH0KPiAgCj4gQEAgLTU2NCwxMCArNTY0LDEwIEBAIHN0YXRpYyB2b2lkIGJ4 dF9kc2lfcmVzZXRfY2xvY2tzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBlbnVtIHBv cnQgcG9ydCkKPiAgCj4gIHZvaWQgaW50ZWxfZHNpX3Jlc2V0X2Nsb2NrcyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAKPiAtCWlmIChJU19C Uk9YVE9OKGRldikpCj4gKwlpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpCj4gIAkJYnh0X2RzaV9y ZXNldF9jbG9ja3MoZW5jb2RlciwgcG9ydCk7Cj4gLQllbHNlIGlmIChJU19WQUxMRVlWSUVXKGRl dikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXZf cHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJdmx2X2RzaV9yZXNldF9jbG9j a3MoZW5jb2RlciwgcG9ydCk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZ3VjX2xvYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xv YWRlci5jCj4gaW5kZXggMTgyMjA0MzczOTMxLi41ZDVkNjA5ZWQ1ZTkgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZ3VjX2xvYWRlci5jCj4gQEAgLTM3NiwxNiArMzc2LDE2IEBAIHN0 YXRpYyBpbnQgZ3VjX3Vjb2RlX3hmZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQo+ICAJSTkxNV9XUklURShHVUNfU0hJTV9DT05UUk9MLCBHVUNfU0hJTV9DT05UUk9MX1ZBTFVF KTsKPiAgCj4gIAkvKiBXYURpc2FibGVNaW51dGVJYUNsb2NrR2F0aW5nOmJ4dCAqLwo+IC0JaWYg KElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKPiArCWlmIChJU19CWFRfUkVW SUQoZGV2X3ByaXYsIDAsIEJYVF9SRVZJRF9BMSkpIHsKPiAgCQlJOTE1X1dSSVRFKEdVQ19TSElN X0NPTlRST0wsIChJOTE1X1JFQUQoR1VDX1NISU1fQ09OVFJPTCkgJgo+ICAJCQkJCSAgICAgIH5H VUNfRU5BQkxFX01JQV9DTE9DS19HQVRJTkcpKTsKPiAgCX0KPiAgCj4gIAkvKiBXYUM2RGlzYWxs b3dCeUdmeFBhdXNlOmJ4dCAqLwo+IC0JaWYgKElTX0JYVF9SRVZJRChkZXYsIDAsIEJYVF9SRVZJ RF9CMCkpCj4gKwlpZiAoSVNfQlhUX1JFVklEKGRldl9wcml2LCAwLCBCWFRfUkVWSURfQjApKQo+ ICAJCUk5MTVfV1JJVEUoR0VONl9HRlhQQVVTRSwgMHgzMEZGRik7Cj4gIAo+IC0JaWYgKElTX0JS T1hUT04oZGV2KSkKPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkKPiAgCQlJOTE1X1dSSVRF KEdFTjlMUF9HVF9QTV9DT05GSUcsIEdUX0RPT1JCRUxMX0VOQUJMRSk7Cj4gIAllbHNlCj4gIAkJ STkxNV9XUklURShHRU45X0dUX1BNX0NPTkZJRywgR1RfRE9PUkJFTExfRU5BQkxFKTsKPiBAQCAt NzMwLDcgKzczMCw3IEBAIHZvaWQgaW50ZWxfZ3VjX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgCQlmd19wYXRoID0gSTkxNV9TS0xfR1VDX1VDT0RFOwo+ICAJCWd1Y19mdy0+Z3VjX2Z3 X21ham9yX3dhbnRlZCA9IFNLTF9GV19NQUpPUjsKPiAgCQlndWNfZnctPmd1Y19md19taW5vcl93 YW50ZWQgPSBTS0xfRldfTUlOT1I7Cj4gLQl9IGVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkgewo+ ICsJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ICAJCWZ3X3BhdGggPSBJOTE1 X0JYVF9HVUNfVUNPREU7Cj4gIAkJZ3VjX2Z3LT5ndWNfZndfbWFqb3Jfd2FudGVkID0gQlhUX0ZX X01BSk9SOwo+ICAJCWd1Y19mdy0+Z3VjX2Z3X21pbm9yX3dhbnRlZCA9IEJYVF9GV19NSU5PUjsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gaW5kZXggNjYwN2M0ZTNjMzZjLi5mNjU2MjQ1 MWM0N2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gQEAgLTEyNDEsNyArMTI0 MSw3IEBAIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cwo+ICBoZG1pX3BvcnRfY2xvY2tfdmFs aWQoc3RydWN0IGludGVsX2hkbWkgKmhkbWksCj4gIAkJICAgICAgaW50IGNsb2NrLCBib29sIHJl c3BlY3RfZG93bnN0cmVhbV9saW1pdHMpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBpbnRlbF9oZG1pX3RvX2RldihoZG1pKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfaGRtaV90b19kZXYoaGRtaSkpOwo+ICAKPiAgCWlmIChj bG9jayA8IDI1MDAwKQo+ICAJCXJldHVybiBNT0RFX0NMT0NLX0xPVzsKPiBAQCAtMTI0OSwxMSAr MTI0OSwxMSBAQCBoZG1pX3BvcnRfY2xvY2tfdmFsaWQoc3RydWN0IGludGVsX2hkbWkgKmhkbWks Cj4gIAkJcmV0dXJuIE1PREVfQ0xPQ0tfSElHSDsKPiAgCj4gIAkvKiBCWFQgRFBMTCBjYW4ndCBn ZW5lcmF0ZSAyMjMtMjQwIE1IeiAqLwo+IC0JaWYgKElTX0JST1hUT04oZGV2KSAmJiBjbG9jayA+ IDIyMzMzMyAmJiBjbG9jayA8IDI0MDAwMCkKPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSAm JiBjbG9jayA+IDIyMzMzMyAmJiBjbG9jayA8IDI0MDAwMCkKPiAgCQlyZXR1cm4gTU9ERV9DTE9D S19SQU5HRTsKPiAgCj4gIAkvKiBDSFYgRFBMTCBjYW4ndCBnZW5lcmF0ZSAyMTYtMjQwIE1IeiAq Lwo+IC0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSAmJiBjbG9jayA+IDIxNjAwMCAmJiBjbG9jayA8 IDI0MDAwMCkKPiArCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJiBjbG9jayA+IDIxNjAw MCAmJiBjbG9jayA8IDI0MDAwMCkKPiAgCQlyZXR1cm4gTU9ERV9DTE9DS19SQU5HRTsKPiAgCj4g IAlyZXR1cm4gTU9ERV9PSzsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j Cj4gaW5kZXggMDI1ZmJkNTIyODE5Li5lNGJiODVjOWM2ZTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gQEAgLTI1OTYsNyArMjU5Niw3IEBAIHZvaWQgaW50 ZWxfcG93ZXJfZG9tYWluc19pbml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgYm9vbCByZXN1bWUpCj4gIAo+ICAJaWYgKElTX1NLWUxBS0UoZGV2X3ByaXYpIHx8IElTX0tB QllMQUtFKGRldl9wcml2KSkgewo+ICAJCXNrbF9kaXNwbGF5X2NvcmVfaW5pdChkZXZfcHJpdiwg cmVzdW1lKTsKPiAtCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXYpKSB7Cj4gKwl9IGVsc2UgaWYg KElTX0JST1hUT04oZGV2X3ByaXYpKSB7Cj4gIAkJYnh0X2Rpc3BsYXlfY29yZV9pbml0KGRldl9w cml2LCByZXN1bWUpOwo+ICAJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpIHsKPiAgCQlt dXRleF9sb2NrKCZwb3dlcl9kb21haW5zLT5sb2NrKTsKPiAtLSAKPiAyLjcuNAo+IAo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK