From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Weinehall Subject: Re: [PATCH 16/19] drm/i915: Make IS_CHERRYVIEW only take dev_priv Date: Wed, 12 Oct 2016 15:09:02 +0300 Message-ID: <20161012120902.f4365e57ybspisx2@boom> References: <1476192112-25336-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1476192112-25336-17-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id C26E16E835 for ; Wed, 12 Oct 2016 12:09:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1476192112-25336-17-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 T24gVHVlLCBPY3QgMTEsIDIwMTYgYXQgMDI6MjE6NDlQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K PiAKPiBTYXZlcyA4NjQgYnl0ZXMgb2YgLnJvZGF0YSBzdHJpbmdzIGFuZCB+MTAwIG9mIC50ZXh0 Lgo+IAo+IHYyOiBBZGQgcGFyYW50aGVzZXMgYXJvdW5kIGRldl9wcml2LiAoVmlsbGUgU3lyamFs YSkKPiAKPiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50 ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IERhdmlkIFdlaW5laGFsbCA8ZGF2aWQud2VpbmVoYWxsQGxp bnV4LmludGVsLmNvbT4KCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMg ICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAg ICB8ICA4ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgICAgIHwg IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyAgICAgIHwgIDQgKy0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYyAgICAgIHwgIDIgKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgNjcgKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAg ICAgICB8IDU1ICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuYyAgICAgICAgfCAgOCArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuYyAgICAgICB8IDEwICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2kyYy5jICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgICAgICAgICB8ICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAg ICAgICB8ICA0ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyB8 ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICAgICB8IDEwICsr Ky0tCj4gIDE0IGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDg3IGRlbGV0aW9ucygt KQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+IGluZGV4IDE4YWY2ZDFjY2VjOS4uNWU3YjZh MWNiMmM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gQEAgLTQyNCw3ICs0MjQsNyBA QCBpbnRlbF9zZXR1cF9tY2hiYXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCXUzMiB0ZW1w Owo+ICAJYm9vbCBlbmFibGVkOwo+ICAKPiAtCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNf Q0hFUlJZVklFVyhkZXYpKQo+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NI RVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCXJldHVybjsKPiAgCj4gIAlkZXZfcHJpdi0+bWNoYmFy X25lZWRfZGlzYWJsZSA9IGZhbHNlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4IGY1 NDQ2NWVhMmY0NC4uOTY4NDZlY2ZjMjI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4g QEAgLTI2NjAsNyArMjY2MCw3IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewo+ICAJCQkJ IElOVEVMX0RFVklEKGRldl9wcml2KSA9PSAweDAxNTIgfHwgXAo+ICAJCQkJIElOVEVMX0RFVklE KGRldl9wcml2KSA9PSAweDAxNWEpCj4gICNkZWZpbmUgSVNfVkFMTEVZVklFVyhkZXYpCShJTlRF TF9JTkZPKGRldiktPmlzX3ZhbGxleXZpZXcpCj4gLSNkZWZpbmUgSVNfQ0hFUlJZVklFVyhkZXYp CShJTlRFTF9JTkZPKGRldiktPmlzX2NoZXJyeXZpZXcpCj4gKyNkZWZpbmUgSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfY2hlcnJ5dmlldykKPiAgI2RlZmluZSBJ U19IQVNXRUxMKGRldl9wcml2KQkoKGRldl9wcml2KS0+aW5mby5pc19oYXN3ZWxsKQo+ICAjZGVm aW5lIElTX0JST0FEV0VMTChkZXZfcHJpdikJKChkZXZfcHJpdiktPmluZm8uaXNfYnJvYWR3ZWxs KQo+ICAjZGVmaW5lIElTX1NLWUxBS0UoZGV2X3ByaXYpCSgoZGV2X3ByaXYpLT5pbmZvLmlzX3Nr eWxha2UpCj4gQEAgLTM4MzgsMTEgKzM4MzgsMTEgQEAgX19yYXdfd3JpdGUoNjQsIHEpCj4gICNk ZWZpbmUgSU5URUxfQlJPQURDQVNUX1JHQl9GVUxMIDEKPiAgI2RlZmluZSBJTlRFTF9CUk9BRENB U1RfUkdCX0xJTUlURUQgMgo+ICAKPiAtc3RhdGljIGlubGluZSBpOTE1X3JlZ190IGk5MTVfdmdh Y250cmxfcmVnKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3N0YXRpYyBpbmxpbmUgaTkxNV9y ZWdfdCBpOTE1X3ZnYWNudHJsX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gIHsKPiAtCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+ ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYp KQo+ICAJCXJldHVybiBWTFZfVkdBQ05UUkw7Cj4gLQllbHNlIGlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA+PSA1KQo+ICsJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1KQo+ICAJCXJl dHVybiBDUFVfVkdBQ05UUkw7Cj4gIAllbHNlCj4gIAkJcmV0dXJuIFZHQUNOVFJMOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4gaW5kZXggZTYyODY5MWZlOTdlLi40MjExYjlhNGE5 MTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+IEBAIC0yMTMzLDcgKzIx MzMsNyBAQCBzdGF0aWMgdm9pZCBndHRfd3JpdGVfd29ya2Fyb3VuZHMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCS8qIFdhSW5jcmVhc2VEZWZhdWx0VExCRW50cmllczpjaHYsYmR3LHNrbCxi eHQgKi8KPiAgCWlmIChJU19CUk9BRFdFTEwoZGV2X3ByaXYpKQo+ICAJCUk5MTVfV1JJVEUoR0VO OF9MM19MUkFfMV9HUEdQVSwgR0VOOF9MM19MUkFfMV9HUEdQVV9ERUZBVUxUX1ZBTFVFX0JEVyk7 Cj4gLQllbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpCj4gKwllbHNlIGlmIChJU19DSEVSUllW SUVXKGRldl9wcml2KSkKPiAgCQlJOTE1X1dSSVRFKEdFTjhfTDNfTFJBXzFfR1BHUFUsIEdFTjhf TDNfTFJBXzFfR1BHUFVfREVGQVVMVF9WQUxVRV9DSFYpOwo+ICAJZWxzZSBpZiAoSVNfU0tZTEFL RShkZXZfcHJpdikpCj4gIAkJSTkxNV9XUklURShHRU44X0wzX0xSQV8xX0dQR1BVLCBHRU45X0wz X0xSQV8xX0dQR1BVX0RFRkFVTFRfVkFMVUVfU0tMKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfYXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1 ZGlvLmMKPiBpbmRleCAxM2I3MjY5MTZmOTguLmQxMjc1Y2JkNTkwNSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfYXVkaW8uYwo+IEBAIC00MjgsOCArNDI4LDggQEAgc3RhdGljIHZvaWQgaWxr X2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJ CWF1ZF9jb25maWcgPSBJQlhfQVVEX0NGRyhwaXBlKTsKPiAgCQlhdWRfY250bF9zdCA9IElCWF9B VURfQ05UTF9TVChwaXBlKTsKPiAgCQlhdWRfY250cmxfc3QyID0gSUJYX0FVRF9DTlRMX1NUMjsK PiAtCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhjb25uZWN0b3ItPmRldikgfHwKPiAtCQkgICBJ U19DSEVSUllWSUVXKGNvbm5lY3Rvci0+ZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19WQUxMRVlW SUVXKGRldl9wcml2KSB8fAo+ICsJCSAgIElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJ aGRtaXdfaGRtaWVkaWQgPSBWTFZfSERNSVdfSERNSUVESUQocGlwZSk7Cj4gIAkJYXVkX2NvbmZp ZyA9IFZMVl9BVURfQ0ZHKHBpcGUpOwo+ICAJCWF1ZF9jbnRsX3N0ID0gVkxWX0FVRF9DTlRMX1NU KHBpcGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+IGluZGV4IGRhNzZhNzk5NDEx YS4uNDQ1MTA4ODU1Mjc1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NvbG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xvci5jCj4gQEAg LTUzNCw3ICs1MzQsNyBAQCB2b2lkIGludGVsX2NvbG9yX2luaXQoc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ICAKPiAgCWRybV9tb2RlX2NydGNfc2V0X2dhbW1hX3NpemUoY3J0YywgMjU2KTsKPiAg Cj4gLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpIHsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2NzY19tYXRyaXggPSBjaGVycnl2 aWV3X2xvYWRfY3NjX21hdHJpeDsKPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5sb2FkX2x1dHMgPSBj aGVycnl2aWV3X2xvYWRfbHV0czsKPiAgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXZfcHJpdikp IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggYmY4NzFiNTY1NTQ5 Li5kNjFhMTJkYmJkNzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g QEAgLTg0OSw3ICs4NDksNyBAQCBzdGF0aWMgYm9vbCB2bHZfUExMX2lzX29wdGltYWwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgaW50IHRhcmdldF9mcmVxLAo+ICAJICogRm9yIENIViBpZ25vcmUg dGhlIGVycm9yIGFuZCBjb25zaWRlciBvbmx5IHRoZSBQIHZhbHVlLgo+ICAJICogUHJlZmVyIGEg YmlnZ2VyIFAgdmFsdWUgYmFzZWQgb24gSFcgcmVxdWlyZW1lbnRzLgo+ICAJICovCj4gLQlpZiAo SVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwlpZiAoSVNfQ0hFUlJZVklFVyh0b19pOTE1KGRldikp KSB7Cj4gIAkJKmVycm9yX3BwbSA9IDA7Cj4gIAo+ICAJCXJldHVybiBjYWxjdWxhdGVkX2Nsb2Nr LT5wID4gYmVzdF9jbG9jay0+cDsKPiBAQCAtMTMzMiw3ICsxMzMyLDcgQEAgc3RhdGljIHZvaWQg YXNzZXJ0X3Nwcml0ZXNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAJCQkgICAgICJwbGFuZSAlZCBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIG9mZiBv biBwaXBlICVjIGJ1dCBpcyBzdGlsbCBhY3RpdmVcbiIsCj4gIAkJCSAgICAgc3ByaXRlLCBwaXBl X25hbWUocGlwZSkpOwo+ICAJCX0KPiAtCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8 IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9w cml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCWZvcl9lYWNoX3Nwcml0ZShk ZXZfcHJpdiwgcGlwZSwgc3ByaXRlKSB7Cj4gIAkJCXUzMiB2YWwgPSBJOTE1X1JFQUQoU1BDTlRS KHBpcGUsIHNwcml0ZSkpOwo+ICAJCQlJOTE1X1NUQVRFX1dBUk4odmFsICYgU1BfRU5BQkxFLAo+ IEBAIC0zMDMzLDcgKzMwMzMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9wcmltYXJ5X3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnByaW1hcnksCj4gIAkJCSAgICgoY3J0Y19zdGF0ZS0+cGlw ZV9zcmNfaCAtIDEpIDw8IDE2KSB8Cj4gIAkJCSAgIChjcnRjX3N0YXRlLT5waXBlX3NyY193IC0g MSkpOwo+ICAJCUk5MTVfV1JJVEUoRFNQUE9TKHBsYW5lKSwgMCk7Cj4gLQl9IGVsc2UgaWYgKElT X0NIRVJSWVZJRVcoZGV2KSAmJiBwbGFuZSA9PSBQTEFORV9CKSB7Cj4gKwl9IGVsc2UgaWYgKElT X0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmIHBsYW5lID09IFBMQU5FX0IpIHsKPiAgCQlJOTE1X1dS SVRFKFBSSU1TSVpFKHBsYW5lKSwKPiAgCQkJICAgKChjcnRjX3N0YXRlLT5waXBlX3NyY19oIC0g MSkgPDwgMTYpIHwKPiAgCQkJICAgKGNydGNfc3RhdGUtPnBpcGVfc3JjX3cgLSAxKSk7Cj4gQEAg LTU4NzQsNyArNTg3NCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNTQw MDAwOwo+ICAJCWVsc2UKPiAgCQkJZGV2X3ByaXYtPm1heF9jZGNsa19mcmVxID0gNjc1MDAwOwo+ IC0JfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpIHsKPiArCX0gZWxzZSBpZiAoSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQlkZXZfcHJpdi0+bWF4X2NkY2xrX2ZyZXEgPSAzMjAw MDA7Cj4gIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+ICAJCWRldl9wcml2LT5t YXhfY2RjbGtfZnJlcSA9IDQwMDAwMDsKPiBAQCAtNjY3Niw3ICs2Njc2LDcgQEAgc3RhdGljIHZv aWQgdmFsbGV5dmlld19tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqb2xkX3N0YXRlKQo+ICAJICovCj4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJp diwgUE9XRVJfRE9NQUlOX1BJUEVfQSk7Cj4gIAo+IC0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkK PiArCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQljaGVycnl2aWV3X3NldF9jZGNs ayhkZXYsIHJlcV9jZGNsayk7Cj4gIAllbHNlCj4gIAkJdmFsbGV5dmlld19zZXRfY2RjbGsoZGV2 LCByZXFfY2RjbGspOwo+IEBAIC02NzA0LDcgKzY3MDQsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2 aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAg CWludGVsX3NldF9waXBlX3RpbWluZ3MoaW50ZWxfY3J0Yyk7Cj4gIAlpbnRlbF9zZXRfcGlwZV9z cmNfc2l6ZShpbnRlbF9jcnRjKTsKPiAgCj4gLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpICYmIHBp cGUgPT0gUElQRV9CKSB7Cj4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYgcGlwZSA9 PSBQSVBFX0IpIHsKPiAgCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gIAo+ICAJCUk5MTVfV1JJVEUoQ0hWX0JMRU5EKHBpcGUpLCBDSFZfQkxFTkRf TEVHQUNZKTsKPiBAQCAtNjcxOSw3ICs2NzE5LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19j cnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gIAo+ICAJ aW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoY3J0YywgcGlwZV9jb25maWcsIG9sZF9zdGF0 ZSk7Cj4gIAo+IC0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJaWYgKElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSB7Cj4gIAkJY2h2X3ByZXBhcmVfcGxsKGludGVsX2NydGMsIGludGVsX2Ny dGMtPmNvbmZpZyk7Cj4gIAkJY2h2X2VuYWJsZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+ Y29uZmlnKTsKPiAgCX0gZWxzZSB7Cj4gQEAgLTY4MzgsNyArNjgzOCw3IEBAIHN0YXRpYyB2b2lk IGk5eHhfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSwKPiAgCWludGVsX2VuY29kZXJzX3Bvc3RfZGlzYWJsZShjcnRjLCBvbGRfY3J0Y19zdGF0ZSwg b2xkX3N0YXRlKTsKPiAgCj4gIAlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUoaW50ZWxfY3J0Yy0+ Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFNJKSkgewo+IC0JCWlmIChJU19DSEVSUllWSUVXKGRldikp Cj4gKwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCQljaHZfZGlzYWJsZV9wbGwo ZGV2X3ByaXYsIHBpcGUpOwo+ICAJCWVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkKPiAgCQkJ dmx2X2Rpc2FibGVfcGxsKGRldl9wcml2LCBwaXBlKTsKPiBAQCAtNzgwNSw4ICs3ODA1LDggQEAg c3RhdGljIHZvaWQgaW50ZWxfY3B1X3RyYW5zY29kZXJfc2V0X21fbihzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YywKPiAgCQkgKiBmb3IgZ2VuIDwgOCkgYW5kIGlmIERSUlMgaXMgc3VwcG9ydGVkICh0 byBtYWtlIHN1cmUgdGhlCj4gIAkJICogcmVnaXN0ZXJzIGFyZSBub3QgdW5uZWNlc3NhcmlseSBh Y2Nlc3NlZCkuCj4gIAkJICovCj4gLQkJaWYgKG0yX24yICYmIChJU19DSEVSUllWSUVXKGRldikg fHwgSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA4KSAmJgo+IC0JCQljcnRjLT5jb25maWctPmhhc19k cnJzKSB7Cj4gKwkJaWYgKG0yX24yICYmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSB8fAo+ICsJ CSAgICBJTlRFTF9HRU4oZGV2X3ByaXYpIDwgOCkgJiYgY3J0Yy0+Y29uZmlnLT5oYXNfZHJycykg ewo+ICAJCQlJOTE1X1dSSVRFKFBJUEVfREFUQV9NMih0cmFuc2NvZGVyKSwKPiAgCQkJCQlUVV9T SVpFKG0yX24yLT50dSkgfCBtMl9uMi0+Z21jaF9tKTsKPiAgCQkJSTkxNV9XUklURShQSVBFX0RB VEFfTjIodHJhbnNjb2RlciksIG0yX24yLT5nbWNoX24pOwo+IEBAIC04MTA4LDcgKzgxMDgsNyBA QCBpbnQgdmx2X2ZvcmNlX3BsbF9vbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUg cGlwZSwKPiAgCXBpcGVfY29uZmlnLT5waXhlbF9tdWx0aXBsaWVyID0gMTsKPiAgCXBpcGVfY29u ZmlnLT5kcGxsID0gKmRwbGw7Cj4gIAo+IC0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJ aWYgKElTX0NIRVJSWVZJRVcodG9faTkxNShkZXYpKSkgewo+ICAJCWNodl9jb21wdXRlX2RwbGwo Y3J0YywgcGlwZV9jb25maWcpOwo+ICAJCWNodl9wcmVwYXJlX3BsbChjcnRjLCBwaXBlX2NvbmZp Zyk7Cj4gIAkJY2h2X2VuYWJsZV9wbGwoY3J0YywgcGlwZV9jb25maWcpOwo+IEBAIC04MTMzLDcg KzgxMzMsNyBAQCBpbnQgdmx2X2ZvcmNlX3BsbF9vbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBl bnVtIHBpcGUgcGlwZSwKPiAgICovCj4gIHZvaWQgdmx2X2ZvcmNlX3BsbF9vZmYoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUpCj4gIHsKPiAtCWlmIChJU19DSEVSUllWSUVX KGRldikpCj4gKwlpZiAoSVNfQ0hFUlJZVklFVyh0b19pOTE1KGRldikpKQo+ICAJCWNodl9kaXNh YmxlX3BsbCh0b19pOTE1KGRldiksIHBpcGUpOwo+ICAJZWxzZQo+ICAJCXZsdl9kaXNhYmxlX3Bs bCh0b19pOTE1KGRldiksIHBpcGUpOwo+IEBAIC04NDU3LDcgKzg0NTcsNyBAQCBzdGF0aWMgdm9p ZCBpOXh4X3NldF9waXBlY29uZihzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YykKPiAgCX0g ZWxzZQo+ICAJCXBpcGVjb25mIHw9IFBJUEVDT05GX1BST0dSRVNTSVZFOwo+ICAKPiAtCWlmICgo SVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgJiYKPiArCWlmICgoSVNf VkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpICYmCj4gIAkg ICAgIGludGVsX2NydGMtPmNvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSkKPiAgCQlwaXBlY29u ZiB8PSBQSVBFQ09ORl9DT0xPUl9SQU5HRV9TRUxFQ1Q7Cj4gIAo+IEBAIC04ODUxLDcgKzg4NTEs NyBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKPiAgCQl9Cj4gIAl9Cj4gIAo+IC0JaWYgKChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNf Q0hFUlJZVklFVyhkZXYpKSAmJgo+ICsJaWYgKChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJ U19DSEVSUllWSUVXKGRldl9wcml2KSkgJiYKPiAgCSAgICAodG1wICYgUElQRUNPTkZfQ09MT1Jf UkFOR0VfU0VMRUNUKSkKPiAgCQlwaXBlX2NvbmZpZy0+bGltaXRlZF9jb2xvcl9yYW5nZSA9IHRy dWU7Cj4gIAo+IEBAIC04ODY1LDcgKzg4NjUsNyBAQCBzdGF0aWMgYm9vbCBpOXh4X2dldF9waXBl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCj4gIAlpZiAoSU5URUxfSU5GTyhk ZXYpLT5nZW4gPj0gNCkgewo+ICAJCS8qIE5vIHdheSB0byByZWFkIGl0IG91dCBvbiBwaXBlcyBC IGFuZCBDICovCj4gLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSAmJiBjcnRjLT5waXBlICE9IFBJ UEVfQSkKPiArCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYgY3J0Yy0+cGlwZSAhPSBQ SVBFX0EpCj4gIAkJCXRtcCA9IGRldl9wcml2LT5jaHZfZHBsbF9tZFtjcnRjLT5waXBlXTsKPiAg CQllbHNlCj4gIAkJCXRtcCA9IEk5MTVfUkVBRChEUExMX01EKGNydGMtPnBpcGUpKTsKPiBAQCAt ODg4Niw3ICs4ODg2LDcgQEAgc3RhdGljIGJvb2wgaTl4eF9nZXRfcGlwZV9jb25maWcoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCj4gIAkJcGlwZV9jb25maWctPnBpeGVsX211bHRpcGxpZXIgPSAx Owo+ICAJfQo+ICAJcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuZHBsbCA9IEk5MTVfUkVBRChE UExMKGNydGMtPnBpcGUpKTsKPiAtCWlmICghSVNfVkFMTEVZVklFVyhkZXYpICYmICFJU19DSEVS UllWSUVXKGRldikpIHsKPiArCWlmICghSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYgIUlTX0NI RVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJLyoKPiAgCQkgKiBEUExMX0RWT18yWF9NT0RFIG11 c3QgYmUgZW5hYmxlZCBmb3IgYm90aCBEUExMcwo+ICAJCSAqIG9uIDgzMC4gRmlsdGVyIGl0IG91 dCBoZXJlIHNvIHRoYXQgd2UgZG9uJ3QKPiBAQCAtODkwNCw3ICs4OTA0LDcgQEAgc3RhdGljIGJv b2wgaTl4eF9nZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJCQkJ CSAgICAgRFBMTF9QT1JUQl9SRUFEWV9NQVNLKTsKPiAgCX0KPiAgCj4gLQlpZiAoSVNfQ0hFUlJZ VklFVyhkZXYpKQo+ICsJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCWNodl9jcnRj X2Nsb2NrX2dldChjcnRjLCBwaXBlX2NvbmZpZyk7Cj4gIAllbHNlIGlmIChJU19WQUxMRVlWSUVX KGRldikpCj4gIAkJdmx2X2NydGNfY2xvY2tfZ2V0KGNydGMsIHBpcGVfY29uZmlnKTsKPiBAQCAt MTIyNTAsNyArMTIyNTAsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVj dCBkcm1fY3J0YyAqY3J0YywKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUgfHwgSVNf RzRYKGRldl9wcml2KSkKPiAgCQl3b3JrLT5mbGlwX2NvdW50ID0gSTkxNV9SRUFEKFBJUEVfRkxJ UENPVU5UX0c0WChwaXBlKSkgKyAxOwo+ICAKPiAtCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwg SVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwg SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQllbmdpbmUgPSAmZGV2X3ByaXYtPmVuZ2lu ZVtCQ1NdOwo+ICAJCWlmIChmYi0+bW9kaWZpZXJbMF0gIT0gb2xkX2ZiLT5tb2RpZmllclswXSkK PiAgCQkJLyogdmx2OiBESVNQTEFZX0ZMSVAgZmFpbHMgdG8gY2hhbmdlIHRpbGluZyAqLwo+IEBA IC0xMzM0OCw3ICsxMzM0OCw3IEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPiAgCVBJUEVfQ09ORl9DSEVDS19JKHBpeGVsX211bHRpcGxpZXIpOwo+ ICAJUElQRV9DT05GX0NIRUNLX0koaGFzX2hkbWlfc2luayk7Cj4gIAlpZiAoKElOVEVMX0dFTihk ZXZfcHJpdikgPCA4ICYmICFJU19IQVNXRUxMKGRldl9wcml2KSkgfHwKPiAtCSAgICBJU19WQUxM RVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJICAgIElTX1ZBTExFWVZJRVco ZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCVBJUEVfQ09ORl9DSEVD S19JKGxpbWl0ZWRfY29sb3JfcmFuZ2UpOwo+ICAJUElQRV9DT05GX0NIRUNLX0koaGFzX2luZm9m cmFtZSk7Cj4gIAo+IEBAIC0xNTA2OCw3ICsxNTA2OCw3IEBAIGludGVsX2NoZWNrX2N1cnNvcl9w bGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCSAqIGRpc3BsYXkgcG93ZXIgd2VsbCBt dXN0IGJlIHR1cm5lZCBvZmYgYW5kIG9uIGFnYWluLgo+ICAJICogUmVmdXNlIHRoZSBwdXQgdGhl IGN1cnNvciBpbnRvIHRoYXQgY29tcHJvbWlzZWQgcG9zaXRpb24uCj4gIAkgKi8KPiAtCWlmIChJ U19DSEVSUllWSUVXKHBsYW5lLT5kZXYpICYmIHBpcGUgPT0gUElQRV9DICYmCj4gKwlpZiAoSVNf Q0hFUlJZVklFVyh0b19pOTE1KHBsYW5lLT5kZXYpKSAmJiBwaXBlID09IFBJUEVfQyAmJgo+ICAJ ICAgIHN0YXRlLT5iYXNlLnZpc2libGUgJiYgc3RhdGUtPmJhc2UuY3J0Y194IDwgMCkgewo+ICAJ CURSTV9ERUJVR19LTVMoIkNIViBjdXJzb3IgQyBub3QgYWxsb3dlZCB0byBzdHJhZGRsZSB0aGUg bGVmdCBzY3JlZW4gZWRnZVxuIik7Cj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gQEAgLTE1MzM4LDcg KzE1MzM4LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0X3ByZXNlbnQoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgCWlmIChJU19IU1dfVUxUKGRldl9wcml2KSB8fCBJU19CRFdfVUxUKGRldl9w cml2KSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkK PiArCWlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+ ICAJaWYgKEhBU19QQ0hfTFBUX0goZGV2X3ByaXYpICYmCj4gQEAgLTE1NDc5LDcgKzE1NDc5LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfc2V0dXBfb3V0cHV0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAKPiAgCQlpZiAoSTkxNV9SRUFEKFBDSF9EUF9EKSAmIERQX0RFVEVDVEVEKQo+ICAJCQlp bnRlbF9kcF9pbml0KGRldiwgUENIX0RQX0QsIFBPUlRfRCk7Cj4gLQl9IGVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKPiArCX0gZWxzZSBpZiAoSVNf VkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQli b29sIGhhc19lZHAsIGhhc19wb3J0Owo+ICAKPiAgCQkvKgo+IEBAIC0xNTUxMSw3ICsxNTUxMSw3 IEBAIHN0YXRpYyB2b2lkIGludGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgCQlpZiAoKEk5MTVfUkVBRChWTFZfSERNSUMpICYgU0RWT19ERVRFQ1RFRCB8fCBoYXNf cG9ydCkgJiYgIWhhc19lZHApCj4gIAkJCWludGVsX2hkbWlfaW5pdChkZXYsIFZMVl9IRE1JQywg UE9SVF9DKTsKPiAgCj4gLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJCWlmIChJU19D SEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCQkvKgo+ICAJCQkgKiBlRFAgbm90IHN1cHBvcnRl ZCBvbiBwb3J0IEQsCj4gIAkJCSAqIHNvIG5vIG5lZWQgdG8gd29ycnkgYWJvdXQgaXQKPiBAQCAt MTU2MjksMTAgKzE1NjI5LDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy X2Z1bmNzIGludGVsX2ZiX2Z1bmNzID0gewo+ICB9Owo+ICAKPiAgc3RhdGljCj4gLXUzMiBpbnRl bF9mYl9waXRjaF9saW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50NjRfdCBmYl9tb2Rp ZmllciwKPiAtCQkJIHVpbnQzMl90IHBpeGVsX2Zvcm1hdCkKPiArdTMyIGludGVsX2ZiX3BpdGNo X2xpbWl0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJIHVpbnQ2NF90 IGZiX21vZGlmaWVyLCB1aW50MzJfdCBwaXhlbF9mb3JtYXQpCj4gIHsKPiAtCXUzMiBnZW4gPSBJ TlRFTF9JTkZPKGRldiktPmdlbjsKPiArCXUzMiBnZW4gPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+ Z2VuOwo+ICAKPiAgCWlmIChnZW4gPj0gOSkgewo+ICAJCWludCBjcHAgPSBkcm1fZm9ybWF0X3Bs YW5lX2NwcChwaXhlbF9mb3JtYXQsIDApOwo+IEBAIC0xNTY0MSw3ICsxNTY0MSw4IEBAIHUzMiBp bnRlbF9mYl9waXRjaF9saW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50NjRfdCBmYl9t b2RpZmllciwKPiAgCQkgKiAgcGl4ZWxzIGFuZCAzMksgYnl0ZXMuIgo+ICAJCSAqLwo+ICAJCXJl dHVybiBtaW4oODE5MiAqIGNwcCwgMzI3NjgpOwo+IC0JfSBlbHNlIGlmIChnZW4gPj0gNSAmJiAh SVNfVkFMTEVZVklFVyhkZXYpICYmICFJU19DSEVSUllWSUVXKGRldikpIHsKPiArCX0gZWxzZSBp ZiAoZ2VuID49IDUgJiYgIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYmCj4gKwkJICAgIUlTX0NI RVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJcmV0dXJuIDMyKjEwMjQ7Cj4gIAl9IGVsc2UgaWYg KGdlbiA+PSA0KSB7Cj4gIAkJaWYgKGZiX21vZGlmaWVyID09IEk5MTVfRk9STUFUX01PRF9YX1RJ TEVEKQo+IEBAIC0xNTcyOCw3ICsxNTcyOSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZnJhbWVidWZm ZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJ fQo+ICAKPiAtCXBpdGNoX2xpbWl0ID0gaW50ZWxfZmJfcGl0Y2hfbGltaXQoZGV2LCBtb2RlX2Nt ZC0+bW9kaWZpZXJbMF0sCj4gKwlwaXRjaF9saW1pdCA9IGludGVsX2ZiX3BpdGNoX2xpbWl0KGRl dl9wcml2LCBtb2RlX2NtZC0+bW9kaWZpZXJbMF0sCj4gIAkJCQkJICAgbW9kZV9jbWQtPnBpeGVs X2Zvcm1hdCk7Cj4gIAlpZiAobW9kZV9jbWQtPnBpdGNoZXNbMF0gPiBwaXRjaF9saW1pdCkgewo+ ICAJCURSTV9ERUJVRygiJXMgcGl0Y2ggKCV1KSBtdXN0IGJlIGF0IGxlc3MgdGhhbiAlZFxuIiwK PiBAQCAtMTU3NjYsNyArMTU3NjcsNyBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVyX2lu aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQl9Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIERS TV9GT1JNQVRfQUJHUjg4ODg6Cj4gLQkJaWYgKCFJU19WQUxMRVlWSUVXKGRldikgJiYgIUlTX0NI RVJSWVZJRVcoZGV2KSAmJgo+ICsJCWlmICghSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgJiYgIUlT X0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmCj4gIAkJICAgIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwg OSkgewo+ICAJCQlmb3JtYXRfbmFtZSA9IGRybV9nZXRfZm9ybWF0X25hbWUobW9kZV9jbWQtPnBp eGVsX2Zvcm1hdCk7Cj4gIAkJCURSTV9ERUJVRygidW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0OiAl c1xuIiwgZm9ybWF0X25hbWUpOwo+IEBAIC0xNTc4NSw3ICsxNTc4Niw3IEBAIHN0YXRpYyBpbnQg aW50ZWxfZnJhbWVidWZmZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCX0KPiAg CQlicmVhazsKPiAgCWNhc2UgRFJNX0ZPUk1BVF9BQkdSMjEwMTAxMDoKPiAtCQlpZiAoIUlTX1ZB TExFWVZJRVcoZGV2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwkJaWYgKCFJU19WQUxM RVlWSUVXKGRldl9wcml2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQkJZm9y bWF0X25hbWUgPSBkcm1fZ2V0X2Zvcm1hdF9uYW1lKG1vZGVfY21kLT5waXhlbF9mb3JtYXQpOwo+ ICAJCQlEUk1fREVCVUcoInVuc3VwcG9ydGVkIHBpeGVsIGZvcm1hdDogJXNcbiIsIGZvcm1hdF9u YW1lKTsKPiAgCQkJa2ZyZWUoZm9ybWF0X25hbWUpOwo+IEBAIC0xNjIzMiw3ICsxNjIzMyw3IEBA IHN0YXRpYyB2b2lkIGk5MTVfZGlzYWJsZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAg CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgCXN0 cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGV2X3ByaXYtPmRybS5wZGV2Owo+ICAJdTggc3IxOwo+IC0J aTkxNV9yZWdfdCB2Z2FfcmVnID0gaTkxNV92Z2FjbnRybF9yZWcoZGV2KTsKPiArCWk5MTVfcmVn X3QgdmdhX3JlZyA9IGk5MTVfdmdhY250cmxfcmVnKGRldl9wcml2KTsKPiAgCj4gIAkvKiBXYUVu YWJsZVZHQUFjY2Vzc1Rocm91Z2hJT1BvcnQ6Y3RnLGVsayxpbGssc25iLGl2Yix2bHYsaHN3ICov Cj4gIAl2Z2FfZ2V0X3VuaW50ZXJydXB0aWJsZShwZGV2LCBWR0FfUlNSQ19MRUdBQ1lfSU8pOwo+ IEBAIC0xNjY3Nyw3ICsxNjY3OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2VuY29k ZXIoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIHZvaWQgaTkxNV9yZWRpc2FibGVf dmdhX3Bvd2VyX29uKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAtCWk5MTVfcmVnX3Qgdmdh X3JlZyA9IGk5MTVfdmdhY250cmxfcmVnKGRldik7Cj4gKwlpOTE1X3JlZ190IHZnYV9yZWcgPSBp OTE1X3ZnYWNudHJsX3JlZyhkZXZfcHJpdik7Cj4gIAo+ICAJaWYgKCEoSTkxNV9SRUFEKHZnYV9y ZWcpICYgVkdBX0RJU1BfRElTQUJMRSkpIHsKPiAgCQlEUk1fREVCVUdfS01TKCJTb21ldGhpbmcg ZW5hYmxlZCBWR0EgcGxhbmUsIGRpc2FibGluZyBpdFxuIik7Cj4gQEAgLTE2OTE1LDcgKzE2OTE2 LDcgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJCXBsbC0+b24gPSBmYWxzZTsKPiAgCX0KPiAgCj4gLQlpZiAoSVNfVkFMTEVZVklFVyhk ZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQl2bHZfd21fZ2V0X2h3X3N0YXRlKGRl dik7Cj4gIAllbHNlIGlmIChJU19HRU45KGRldikpCj4gIAkJc2tsX3dtX2dldF9od19zdGF0ZShk ZXYpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IGluZGV4IGRmYzkzY2MxMWExMy4uMWUxY2Nm MDkyZTExIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTM0NCw3ICszNDQsNyBA QCB2bHZfcG93ZXJfc2VxdWVuY2VyX2tpY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAg CURQIHw9IERQX1BPUlRfV0lEVEgoMSk7Cj4gIAlEUCB8PSBEUF9MSU5LX1RSQUlOX1BBVF8xOwo+ ICAKPiAtCWlmIChJU19DSEVSUllWSUVXKGRldikpCj4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikpCj4gIAkJRFAgfD0gRFBfUElQRV9TRUxFQ1RfQ0hWKHBpcGUpOwo+ICAJZWxzZSBpZiAo cGlwZSA9PSBQSVBFX0IpCj4gIAkJRFAgfD0gRFBfUElQRUJfU0VMRUNUOwo+IEBAIC0zNTYsMTAg KzM1NiwxMCBAQCB2bHZfcG93ZXJfc2VxdWVuY2VyX2tpY2soc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiAgCSAqIFNvIGVuYWJsZSB0ZW1wb3JhcmlseSBpdCBpZiBpdCdzIG5vdCBhbHJlYWR5 IGVuYWJsZWQuCj4gIAkgKi8KPiAgCWlmICghcGxsX2VuYWJsZWQpIHsKPiAtCQlyZWxlYXNlX2Ns X292ZXJyaWRlID0gSVNfQ0hFUlJZVklFVyhkZXYpICYmCj4gKwkJcmVsZWFzZV9jbF9vdmVycmlk ZSA9IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpICYmCj4gIAkJCSFjaHZfcGh5X3Bvd2VyZ2F0ZV9j aChkZXZfcHJpdiwgcGh5LCBjaCwgdHJ1ZSk7Cj4gIAo+IC0JCWlmICh2bHZfZm9yY2VfcGxsX29u KGRldiwgcGlwZSwgSVNfQ0hFUlJZVklFVyhkZXYpID8KPiArCQlpZiAodmx2X2ZvcmNlX3BsbF9v bihkZXYsIHBpcGUsIElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpID8KPiAgCQkJCSAgICAgJmNodl9k cGxsWzBdLmRwbGwgOiAmdmx2X2RwbGxbMF0uZHBsbCkpIHsKPiAgCQkJRFJNX0VSUk9SKCJGYWls ZWQgdG8gZm9yY2Ugb24gcGxsIGZvciBwaXBlICVjIVxuIiwKPiAgCQkJCSAgcGlwZV9uYW1lKHBp cGUpKTsKPiBAQCAtNTcwLDcgKzU3MCw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfc2VxdWVuY2VyX3Jl c2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyOwo+ICAKPiAtCWlmIChXQVJOX09OKCFJU19WQUxMRVlWSUVXKGRldikgJiYgIUlTX0NIRVJS WVZJRVcoZGV2KSAmJgo+ICsJaWYgKFdBUk5fT04oIUlTX1ZBTExFWVZJRVcoZGV2X3ByaXYpICYm ICFJU19DSEVSUllWSUVXKGRldl9wcml2KSAmJgo+ICAJCSAgICAhSVNfQlJPWFRPTihkZXZfcHJp dikpKQo+ICAJCXJldHVybjsKPiAgCj4gQEAgLTY2NCw3ICs2NjQsNyBAQCBzdGF0aWMgaW50IGVk cF9ub3RpZnlfaGFuZGxlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxv bmcgY29kZSwKPiAgCj4gIAlwcHNfbG9jayhpbnRlbF9kcCk7Cj4gIAo+IC0JaWYgKElTX1ZBTExF WVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKPiArCWlmIChJU19WQUxMRVlWSUVX KGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCWVudW0gcGlwZSBw aXBlID0gdmx2X3Bvd2VyX3NlcXVlbmNlcl9waXBlKGludGVsX2RwKTsKPiAgCQlpOTE1X3JlZ190 IHBwX2N0cmxfcmVnLCBwcF9kaXZfcmVnOwo+ICAJCXUzMiBwcF9kaXY7Cj4gQEAgLTY5Miw3ICs2 OTIsNyBAQCBzdGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF9wb3dlcihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ICAKPiAgCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmRldl9wcml2LT5wcHNfbXV0 ZXgpOwo+ICAKPiAtCWlmICgoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2 KSkgJiYKPiArCWlmICgoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhk ZXZfcHJpdikpICYmCj4gIAkgICAgaW50ZWxfZHAtPnBwc19waXBlID09IElOVkFMSURfUElQRSkK PiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IEBAIC03MDYsNyArNzA2LDcgQEAgc3RhdGljIGJvb2wg ZWRwX2hhdmVfcGFuZWxfdmRkKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAo+ICAJbG9j a2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gIAo+IC0JaWYgKChJU19W QUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSAmJgo+ICsJaWYgKChJU19WQUxM RVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgJiYKPiAgCSAgICBp bnRlbF9kcC0+cHBzX3BpcGUgPT0gSU5WQUxJRF9QSVBFKQo+ICAJCXJldHVybiBmYWxzZTsKPiAg Cj4gQEAgLTEzNDcsNyArMTM0Nyw3IEBAIGludGVsX2RwX3NldF9jbG9jayhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCX0gZWxzZSBpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikp IHsKPiAgCQlkaXZpc29yID0gcGNoX2RwbGw7Cj4gIAkJY291bnQgPSBBUlJBWV9TSVpFKHBjaF9k cGxsKTsKPiAtCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwl9IGVsc2UgaWYg KElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJZGl2aXNvciA9IGNodl9kcGxsOwo+ICAJ CWNvdW50ID0gQVJSQVlfU0laRShjaHZfZHBsbCk7Cj4gIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJ RVcoZGV2KSkgewo+IEBAIC0xNzkxLDcgKzE3OTEsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9w cmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCUk5MTVfV1JJVEUoVFJB TlNfRFBfQ1RMKGNydGMtPnBpcGUpLCB0cmFuc19kcCk7Cj4gIAl9IGVsc2Ugewo+ICAJCWlmICgh SEFTX1BDSF9TUExJVChkZXZfcHJpdikgJiYgIUlTX1ZBTExFWVZJRVcoZGV2KSAmJgo+IC0JCSAg ICAhSVNfQ0hFUlJZVklFVyhkZXYpICYmIHBpcGVfY29uZmlnLT5saW1pdGVkX2NvbG9yX3Jhbmdl KQo+ICsJCSAgICAhSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYKPiArCQkgICAgcGlwZV9jb25m aWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCj4gIAkJCWludGVsX2RwLT5EUCB8PSBEUF9DT0xPUl9S QU5HRV8xNl8yMzU7Cj4gIAo+ICAJCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RF X0ZMQUdfUEhTWU5DKQo+IEBAIC0xODAzLDcgKzE4MDQsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9k cF9wcmVwYXJlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCWlmIChkcm1fZHBf ZW5oYW5jZWRfZnJhbWVfY2FwKGludGVsX2RwLT5kcGNkKSkKPiAgCQkJaW50ZWxfZHAtPkRQIHw9 IERQX0VOSEFOQ0VEX0ZSQU1JTkc7Cj4gIAo+IC0JCWlmIChJU19DSEVSUllWSUVXKGRldikpCj4g KwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCQlpbnRlbF9kcC0+RFAgfD0gRFBf UElQRV9TRUxFQ1RfQ0hWKGNydGMtPnBpcGUpOwo+ICAJCWVsc2UgaWYgKGNydGMtPnBpcGUgPT0g UElQRV9CKQo+ICAJCQlpbnRlbF9kcC0+RFAgfD0gRFBfUElQRUJfU0VMRUNUOwo+IEBAIC0yNDU5 LDcgKzI0NjAsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9nZXRfaHdfc3RhdGUoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAo+ICAJCURSTV9ERUJVR19LTVMoIk5vIHBpcGUgZm9y IGRwIHBvcnQgMHgleCBmb3VuZFxuIiwKPiAgCQkJICAgICAgaTkxNV9tbWlvX3JlZ19vZmZzZXQo aW50ZWxfZHAtPm91dHB1dF9yZWcpKTsKPiAtCX0gZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXYp KSB7Cj4gKwl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJKnBpcGUg PSBEUF9QT1JUX1RPX1BJUEVfQ0hWKHRtcCk7Cj4gIAl9IGVsc2Ugewo+ICAJCSpwaXBlID0gUE9S VF9UT19QSVBFKHRtcCk7Cj4gQEAgLTI2ODEsNyArMjY4Miw3IEBAIF9pbnRlbF9kcF9zZXRfbGlu a190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJCX0KPiAgCj4gIAl9IGVsc2Ug ewo+IC0JCWlmIChJU19DSEVSUllWSUVXKGRldikpCj4gKwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2 X3ByaXYpKQo+ICAJCQkqRFAgJj0gfkRQX0xJTktfVFJBSU5fTUFTS19DSFY7Cj4gIAkJZWxzZQo+ ICAJCQkqRFAgJj0gfkRQX0xJTktfVFJBSU5fTUFTSzsKPiBAQCAtMjY5Nyw3ICsyNjk4LDcgQEAg X2ludGVsX2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJ CSpEUCB8PSBEUF9MSU5LX1RSQUlOX1BBVF8yOwo+ICAJCQlicmVhazsKPiAgCQljYXNlIERQX1RS QUlOSU5HX1BBVFRFUk5fMzoKPiAtCQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJCQlp ZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQkJCSpEUCB8PSBEUF9MSU5LX1RSQUlO X1BBVF8zX0NIVjsKPiAgCQkJfSBlbHNlIHsKPiAgCQkJCURSTV9ERUJVR19LTVMoIlRQUzMgbm90 IHN1cHBvcnRlZCwgdXNpbmcgVFBTMiBpbnN0ZWFkXG4iKTsKPiBAQCAtMjc0Nyw3ICsyNzQ4LDcg QEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAKPiAgCXBwc19sb2NrKGludGVsX2RwKTsKPiAgCj4gLQlpZiAoSVNfVkFMTEVZVklF VyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9w cml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQl2bHZfaW5pdF9wYW5lbF9wb3dl cl9zZXF1ZW5jZXIoaW50ZWxfZHApOwo+ICAKPiAgCWludGVsX2RwX2VuYWJsZV9wb3J0KGludGVs X2RwLCBwaXBlX2NvbmZpZyk7Cj4gQEAgLTI3NTgsMTAgKzI3NTksMTAgQEAgc3RhdGljIHZvaWQg aW50ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCXBw c191bmxvY2soaW50ZWxfZHApOwo+ICAKPiAtCWlmIChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNf Q0hFUlJZVklFVyhkZXYpKSB7Cj4gKwlpZiAoSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNf Q0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQl1bnNpZ25lZCBpbnQgbGFuZV9tYXNrID0gMHgw Owo+ICAKPiAtCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSkKPiAgCQkJbGFuZV9tYXNrID0gaW50ZWxfZHBfdW51c2VkX2xhbmVfbWFzayhw aXBlX2NvbmZpZy0+bGFuZV9jb3VudCk7Cj4gIAo+ICAJCXZsdl93YWl0X3BvcnRfcmVhZHkoZGV2 X3ByaXYsIGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKSwKPiBAQCAtMjk4Nyw3ICsyOTg4LDcgQEAg aW50ZWxfZHBfdm9sdGFnZV9tYXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCQlpZiAo ZGV2X3ByaXYtPnZidC5lZHAubG93X3Zzd2luZyAmJiBwb3J0ID09IFBPUlRfQSkKPiAgCQkJcmV0 dXJuIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMzsKPiAgCQlyZXR1cm4gRFBfVFJBSU5f Vk9MVEFHRV9TV0lOR19MRVZFTF8yOwo+IC0JfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldikg fHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9w cml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKPiAgCQlyZXR1cm4gRFBfVFJBSU5fVk9M VEFHRV9TV0lOR19MRVZFTF8zOwo+ICAJZWxzZSBpZiAoSVNfR0VONyhkZXYpICYmIHBvcnQgPT0g UE9SVF9BKQo+ICAJCXJldHVybiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzI7Cj4gQEAg LTMzNDgsNyArMzM0OSw3IEBAIGludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gIAkJCXNpZ25hbF9sZXZlbHMgPSAwOwo+ICAJCWVsc2UKPiAgCQkJ bWFzayA9IERESV9CVUZfRU1QX01BU0s7Cj4gLQl9IGVsc2UgaWYgKElTX0NIRVJSWVZJRVcoZGV2 KSkgewo+ICsJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCXNpZ25h bF9sZXZlbHMgPSBjaHZfc2lnbmFsX2xldmVscyhpbnRlbF9kcCk7Cj4gIAl9IGVsc2UgaWYgKElT X1ZBTExFWVZJRVcoZGV2KSkgewo+ICAJCXNpZ25hbF9sZXZlbHMgPSB2bHZfc2lnbmFsX2xldmVs cyhpbnRlbF9kcCk7Cj4gQEAgLTM0NDgsNyArMzQ0OSw3IEBAIGludGVsX2RwX2xpbmtfZG93bihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJCURQICY9IH5EUF9MSU5LX1RSQUlOX01BU0tf Q1BUOwo+ICAJCURQIHw9IERQX0xJTktfVFJBSU5fUEFUX0lETEVfQ1BUOwo+ICAJfSBlbHNlIHsK PiAtCQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJCWlmIChJU19DSEVSUllWSUVXKGRldl9w cml2KSkKPiAgCQkJRFAgJj0gfkRQX0xJTktfVFJBSU5fTUFTS19DSFY7Cj4gIAkJZWxzZQo+ICAJ CQlEUCAmPSB+RFBfTElOS19UUkFJTl9NQVNLOwo+IEBAIC01MDg1LDcgKzUwODYsNyBAQCBpbnRl bF9kcF9pbml0X3BhbmVsX3Bvd2VyX3NlcXVlbmNlcl9yZWdpc3RlcnMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAgCj4gIAkvKiBIYXN3ZWxsIGRvZXNuJ3QgaGF2ZSBhbnkgcG9ydCBzZWxlY3Rp b24gYml0cyBmb3IgdGhlIHBhbmVsCj4gIAkgKiBwb3dlciBzZXF1ZW5jZXIgYW55IG1vcmUuICov Cj4gLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJ aWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7 Cj4gIAkJcG9ydF9zZWwgPSBQQU5FTF9QT1JUX1NFTEVDVF9WTFYocG9ydCk7Cj4gIAl9IGVsc2Ug aWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSB8fCBIQVNfUENIX0NQVChkZXZfcHJpdikpIHsKPiAg CQlpZiAocG9ydCA9PSBQT1JUX0EpCj4gQEAgLTUxMTQsNyArNTExNSw5IEBAIGludGVsX2RwX2lu aXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyX3JlZ2lzdGVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICBzdGF0aWMgdm9pZCBpbnRlbF9kcF9wcHNfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAo+ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlpZiAoSVNf VkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsKPiArCWlmIChJU19WQUxM RVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCXZsdl9p bml0aWFsX3Bvd2VyX3NlcXVlbmNlcl9zZXR1cChpbnRlbF9kcCk7Cj4gIAl9IGVsc2Ugewo+ICAJ CWludGVsX2RwX2luaXRfcGFuZWxfcG93ZXJfc2VxdWVuY2VyKGRldiwgaW50ZWxfZHApOwo+IEBA IC01NTg0LDcgKzU1ODcsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9jb25uZWN0b3Io c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCX0KPiAgCW11dGV4X3VubG9jaygmZGV2LT5t b2RlX2NvbmZpZy5tdXRleCk7Cj4gIAo+IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19D SEVSUllWSUVXKGRldikpIHsKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19D SEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCWludGVsX2RwLT5lZHBfbm90aWZpZXIubm90aWZp ZXJfY2FsbCA9IGVkcF9ub3RpZnlfaGFuZGxlcjsKPiAgCQlyZWdpc3Rlcl9yZWJvb3Rfbm90aWZp ZXIoJmludGVsX2RwLT5lZHBfbm90aWZpZXIpOwo+ICAKPiBAQCAtNTU5Myw3ICs1NTk2LDcgQEAg c3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsCj4gIAkJICogSWYgdGhlIGN1cnJlbnQgcGlwZSBpc24ndCB2YWxpZCwgdHJ5IHRoZSBQ UFMgcGlwZSwgYW5kIGlmIHRoYXQKPiAgCQkgKiBmYWlscyBqdXN0IGFzc3VtZSBwaXBlIEEuCj4g IAkJICovCj4gLQkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkKPiArCQlpZiAoSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikpCj4gIAkJCXBpcGUgPSBEUF9QT1JUX1RPX1BJUEVfQ0hWKGludGVsX2RwLT5E UCk7Cj4gIAkJZWxzZQo+ICAJCQlwaXBlID0gUE9SVF9UT19QSVBFKGludGVsX2RwLT5EUCk7Cj4g QEAgLTU2ODIsNyArNTY4NSw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAJCWludGVsX2VuY29kZXItPnR5cGUg PSBJTlRFTF9PVVRQVVRfRURQOwo+ICAKPiAgCS8qIGVEUCBvbmx5IG9uIHBvcnQgQiBhbmQvb3Ig QyBvbiB2bHYvY2h2ICovCj4gLQlpZiAoV0FSTl9PTigoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElT X0NIRVJSWVZJRVcoZGV2KSkgJiYKPiArCWlmIChXQVJOX09OKChJU19WQUxMRVlWSUVXKGRldl9w cml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgJiYKPiAgCQkgICAgaXNfZWRwKGludGVs X2RwKSAmJiBwb3J0ICE9IFBPUlRfQiAmJiBwb3J0ICE9IFBPUlRfQykpCj4gIAkJcmV0dXJuIGZh bHNlOwo+ICAKPiBAQCAtNTc5Miw3ICs1Nzk1LDcgQEAgYm9vbCBpbnRlbF9kcF9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gIAlpbnRlbF9lbmNvZGVyLT5nZXRfaHdfc3RhdGUgPSBpbnRl bF9kcF9nZXRfaHdfc3RhdGU7Cj4gIAlpbnRlbF9lbmNvZGVyLT5nZXRfY29uZmlnID0gaW50ZWxf ZHBfZ2V0X2NvbmZpZzsKPiAgCWludGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kcF9lbmNv ZGVyX3N1c3BlbmQ7Cj4gLQlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwlpZiAoSVNfQ0hF UlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQlpbnRlbF9lbmNvZGVyLT5wcmVfcGxsX2VuYWJsZSA9 IGNodl9kcF9wcmVfcGxsX2VuYWJsZTsKPiAgCQlpbnRlbF9lbmNvZGVyLT5wcmVfZW5hYmxlID0g Y2h2X3ByZV9lbmFibGVfZHA7Cj4gIAkJaW50ZWxfZW5jb2Rlci0+ZW5hYmxlID0gdmx2X2VuYWJs ZV9kcDsKPiBAQCAtNTgxNSw3ICs1ODE4LDcgQEAgYm9vbCBpbnRlbF9kcF9pbml0KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gIAlpbnRlbF9kaWdfcG9ydC0+bWF4X2xhbmVzID0gNDsKPiAgCj4g IAlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RQOwo+IC0JaWYgKElTX0NIRVJS WVZJRVcoZGV2KSkgewo+ICsJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJaWYg KHBvcnQgPT0gUE9SVF9EKQo+ICAJCQlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAxIDw8IDI7 Cj4gIAkJZWxzZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2ku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gaW5kZXggNDhlOGRkMTA4ZjRm Li40ZTBkMDI1NDkwYTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHNpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+IEBAIC03NDAs NyArNzQwLDYgQEAgc3RhdGljIGJvb2wgaW50ZWxfZHNpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHNp ICppbnRlbF9kc2kgPSBlbmNfdG9faW50ZWxfZHNpKCZlbmNvZGVyLT5iYXNlKTsKPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiAgCWVudW0gaW50ZWxfZGlz cGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+ICAJZW51bSBwb3J0IHBvcnQ7Cj4gIAli b29sIGFjdGl2ZSA9IGZhbHNlOwo+IEBAIC03NzAsNyArNzY5LDggQEAgc3RhdGljIGJvb2wgaW50 ZWxfZHNpX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkg KiBiaXQgaW4gcG9ydCBDIGNvbnRyb2wgcmVnaXN0ZXIgZG9lcyBub3QgZ2V0IHNldC4gQXMgYQo+ ICAJCSAqIHdvcmthcm91bmQsIGNoZWNrIHBpcGUgQiBjb25mIGluc3RlYWQuCj4gIAkJICovCj4g LQkJaWYgKChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSAmJiBwb3J0 ID09IFBPUlRfQykKPiArCQlpZiAoKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKSAmJgo+ICsJCSAgICBwb3J0ID09IFBPUlRfQykKPiAgCQkJZW5hYmxl ZCA9IEk5MTVfUkVBRChQSVBFQ09ORihQSVBFX0IpKSAmIFBJUEVDT05GX0VOQUJMRTsKPiAgCj4g IAkJLyogVHJ5IGNvbW1hbmQgbW9kZSBpZiB2aWRlbyBtb2RlIG5vdCBlbmFibGVkICovCj4gQEAg LTExMzcsNyArMTEzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9wcmVwYXJlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyLAo+ICAJfQo+ICAKPiAgCWZvcl9lYWNoX2RzaV9w b3J0KHBvcnQsIGludGVsX2RzaS0+cG9ydHMpIHsKPiAtCQlpZiAoSVNfVkFMTEVZVklFVyhkZXYp IHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2 KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCQkvKgo+ICAJCQkgKiBlc2NhcGUg Y2xvY2sgZGl2aWRlciwgMjBNSHosIHNoYXJlZCBmb3IgQSBhbmQgQy4KPiAgCQkJICogZGV2aWNl IHJlYWR5IG11c3QgYmUgb2ZmIHdoZW4gZG9pbmcgdGhpcyEgdHhjbGtlc2M/Cj4gQEAgLTE0NDks NyArMTQ0OSw3IEBAIHZvaWQgaW50ZWxfZHNpX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgCWlmICghaW50ZWxfYmlvc19pc19kc2lfcHJlc2VudChkZXZfcHJpdiwgJnBvcnQpKQo+ICAJ CXJldHVybjsKPiAgCj4gLQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2KSkgewo+ICsJaWYgKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVco ZGV2X3ByaXYpKSB7Cj4gIAkJZGV2X3ByaXYtPm1pcGlfbW1pb19iYXNlID0gVkxWX01JUElfQkFT RTsKPiAgCX0gZWxzZSBpZiAoSVNfQlJPWFRPTihkZXZfcHJpdikpIHsKPiAgCQlkZXZfcHJpdi0+ bWlwaV9tbWlvX2Jhc2UgPSBCWFRfTUlQSV9CQVNFOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1p LmMKPiBpbmRleCBjN2Q5Y2RkZjRlM2UuLmM4MjQzZGM0ZDJiOSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZG1pLmMKPiBAQCAtODgxLDcgKzg4MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2hk bWlfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCj4gIAlpZiAoSEFT X1BDSF9DUFQoZGV2X3ByaXYpKQo+ICAJCWhkbWlfdmFsIHw9IFNEVk9fUElQRV9TRUxfQ1BUKGNy dGMtPnBpcGUpOwo+IC0JZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJZWxzZSBpZiAo SVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJaGRtaV92YWwgfD0gU0RWT19QSVBFX1NFTF9D SFYoY3J0Yy0+cGlwZSk7Cj4gIAllbHNlCj4gIAkJaGRtaV92YWwgfD0gU0RWT19QSVBFX1NFTChj cnRjLT5waXBlKTsKPiBAQCAtOTEzLDcgKzkxMyw3IEBAIHN0YXRpYyBib29sIGludGVsX2hkbWlf Z2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCWlmIChI QVNfUENIX0NQVChkZXZfcHJpdikpCj4gIAkJKnBpcGUgPSBQT1JUX1RPX1BJUEVfQ1BUKHRtcCk7 Cj4gLQllbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpCj4gKwllbHNlIGlmIChJU19DSEVSUllW SUVXKGRldl9wcml2KSkKPiAgCQkqcGlwZSA9IFNEVk9fUE9SVF9UT19QSVBFX0NIVih0bXApOwo+ ICAJZWxzZQo+ICAJCSpwaXBlID0gUE9SVF9UT19QSVBFKHRtcCk7Cj4gQEAgLTE4ODUsNyArMTg4 NSw3IEBAIHZvaWQgaW50ZWxfaGRtaV9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQlCVUcoKTsKPiAgCX0KPiAgCj4gLQlpZiAoSVNf VkFMTEVZVklFVyhkZXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJaWYgKElTX1ZBTExF WVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJaW50ZWxf aGRtaS0+d3JpdGVfaW5mb2ZyYW1lID0gdmx2X3dyaXRlX2luZm9mcmFtZTsKPiAgCQlpbnRlbF9o ZG1pLT5zZXRfaW5mb2ZyYW1lcyA9IHZsdl9zZXRfaW5mb2ZyYW1lczsKPiAgCQlpbnRlbF9oZG1p LT5pbmZvZnJhbWVfZW5hYmxlZCA9IHZsdl9pbmZvZnJhbWVfZW5hYmxlZDsKPiBAQCAtMTk1OSw3 ICsxOTU5LDcgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgCX0KPiAgCWludGVsX2VuY29kZXItPmdldF9od19zdGF0ZSA9IGludGVsX2hkbWlfZ2V0X2h3 X3N0YXRlOwo+ICAJaW50ZWxfZW5jb2Rlci0+Z2V0X2NvbmZpZyA9IGludGVsX2hkbWlfZ2V0X2Nv bmZpZzsKPiAtCWlmIChJU19DSEVSUllWSUVXKGRldikpIHsKPiArCWlmIChJU19DSEVSUllWSUVX KGRldl9wcml2KSkgewo+ICAJCWludGVsX2VuY29kZXItPnByZV9wbGxfZW5hYmxlID0gY2h2X2hk bWlfcHJlX3BsbF9lbmFibGU7Cj4gIAkJaW50ZWxfZW5jb2Rlci0+cHJlX2VuYWJsZSA9IGNodl9o ZG1pX3ByZV9lbmFibGU7Cj4gIAkJaW50ZWxfZW5jb2Rlci0+ZW5hYmxlID0gdmx2X2VuYWJsZV9o ZG1pOwo+IEBAIC0xOTgyLDcgKzE5ODIsNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQ VVRfSERNSTsKPiAgCWludGVsX2VuY29kZXItPnBvcnQgPSBwb3J0Owo+IC0JaWYgKElTX0NIRVJS WVZJRVcoZGV2KSkgewo+ICsJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJaWYg KHBvcnQgPT0gUE9SVF9EKQo+ICAJCQlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAxIDw8IDI7 Cj4gIAkJZWxzZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2kyYy5jCj4gaW5kZXggYWZiMjY1MjkxOWQw Li5kMDQxODVlMWVkZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aTJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9pMmMuYwo+IEBAIC02MzUs NyArNjM1LDcgQEAgaW50IGludGVsX3NldHVwX2dtYnVzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gIAlpZiAoSEFTX1BDSF9OT1AoZGV2X3ByaXYpKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCWlm IChJU19WQUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJaWYgKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+ICAJCWRldl9w cml2LT5ncGlvX21taW9fYmFzZSA9IFZMVl9ESVNQTEFZX0JBU0U7Cj4gIAllbHNlIGlmICghSEFT X0dNQ0hfRElTUExBWShkZXZfcHJpdikpCj4gIAkJZGV2X3ByaXYtPmdwaW9fbW1pb19iYXNlID0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRleCAyYzVkY2QzYmEyYzIuLjIxMDc0MzRhNDJl NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+IEBAIC0zMjIsNyArMzIyLDcgQEAgdm9p ZCBpbnRlbF9zZXRfbWVtb3J5X2N4c3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBib29sIGVuYWJsZSkKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRy bTsKPiAgCXUzMiB2YWw7Cj4gIAo+IC0JaWYgKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVS UllWSUVXKGRldikpIHsKPiArCWlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkgewo+ICAJCUk5MTVfV1JJVEUoRldfQkxDX1NFTEZfVkxWLCBlbmFi bGUgPyBGV19DU1BXUkRXTkVOIDogMCk7Cj4gIAkJUE9TVElOR19SRUFEKEZXX0JMQ19TRUxGX1ZM Vik7Cj4gIAkJZGV2X3ByaXYtPndtLnZsdi5jeHNyID0gZW5hYmxlOwo+IEBAIC03NzU1LDcgKzc3 NTUsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJ RFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgZGlzcGxheSBwbGFuZSBsYXRlbmN5LiAiCj4g IAkJCQkgICAgICAiRGlzYWJsZSBDeFNSXG4iKTsKPiAgCQl9Cj4gLQl9IGVsc2UgaWYgKElTX0NI RVJSWVZJRVcoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldl9wcml2KSkg ewo+ICAJCXZsdl9zZXR1cF93bV9sYXRlbmN5KGRldik7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXku dXBkYXRlX3dtID0gdmx2X3VwZGF0ZV93bTsKPiAgCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhk ZXYpKSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiBpbmRleCA0YTk3M2IzNDM0OGEuLjI3 MWEzZTI5ZmYyMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3Iu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gQEAgLTM1NCw3ICsz NTQsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9wc3JfbWF0Y2hfY29uZGl0aW9ucyhzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCX0KPiAgCj4gLQlpZiAoKElT X1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpICYmCj4gKwlpZiAoKElTX1ZB TExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSAmJgo+ICAJICAg ICFkZXZfcHJpdi0+cHNyLmxpbmtfc3RhbmRieSkgewo+ICAJCURSTV9FUlJPUigiUFNSIGNvbmRp dGlvbiBmYWlsZWQ6IExpbmsgb2ZmIHJlcXVlc3RlZCBidXQgbm90IHN1cHBvcnRlZCBvbiB0aGlz IHBsYXRmb3JtXG4iKTsKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gQEAgLTgzNyw3ICs4MzcsNyBAQCB2 b2lkIGludGVsX3Bzcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAlpZiAoSVNfSEFT V0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKPiAgCQkvKiBIU1cgYW5k IEJEVyByZXF1aXJlIHdvcmthcm91bmRzIHRoYXQgd2UgZG9uJ3QgaW1wbGVtZW50LiAqLwo+ICAJ CWRldl9wcml2LT5wc3IubGlua19zdGFuZGJ5ID0gZmFsc2U7Cj4gLQllbHNlIGlmIChJU19WQUxM RVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICsJZWxzZSBpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCj4gIAkJLyogT24gVkxW IGFuZCBDSFYgb25seSBzdGFuZGJ5IG1vZGUgaXMgc3VwcG9ydGVkLiAqLwo+ICAJCWRldl9wcml2 LT5wc3IubGlua19zdGFuZGJ5ID0gdHJ1ZTsKPiAgCWVsc2UKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcnVudGltZV9wbS5jCj4gaW5kZXggZTRiYjg1YzljNmUxLi4zYTZlMWE5M2FlZDkgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4gQEAgLTI1OTgsNyAr MjU5OCw3IEBAIHZvaWQgaW50ZWxfcG93ZXJfZG9tYWluc19pbml0X2h3KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCByZXN1bWUpCj4gIAkJc2tsX2Rpc3BsYXlfY29yZV9p bml0KGRldl9wcml2LCByZXN1bWUpOwo+ICAJfSBlbHNlIGlmIChJU19CUk9YVE9OKGRldl9wcml2 KSkgewo+ICAJCWJ4dF9kaXNwbGF5X2NvcmVfaW5pdChkZXZfcHJpdiwgcmVzdW1lKTsKPiAtCX0g ZWxzZSBpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSB7Cj4gIAkJbXV0ZXhfbG9jaygmcG93ZXJfZG9tYWlucy0+bG9jayk7Cj4g IAkJY2h2X3BoeV9jb250cm9sX2luaXQoZGV2X3ByaXYpOwo+ICAJCW11dGV4X3VubG9jaygmcG93 ZXJfZG9tYWlucy0+bG9jayk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRl eCBmZWZkMzAzNGFlYWQuLmY3NjBkNWZjYmU0OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nwcml0ZS5jCj4gQEAgLTQ1MCw3ICs0NTAsNyBAQCB2bHZfdXBkYXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKmRwbGFuZSwKPiAgCWlmIChrZXktPmZsYWdzICYgSTkxNV9TRVRfQ09MT1JLRVlf U09VUkNFKQo+ICAJCXNwcmN0bCB8PSBTUF9TT1VSQ0VfS0VZOwo+ICAKPiAtCWlmIChJU19DSEVS UllWSUVXKGRldikgJiYgcGlwZSA9PSBQSVBFX0IpCj4gKwlpZiAoSVNfQ0hFUlJZVklFVyhkZXZf cHJpdikgJiYgcGlwZSA9PSBQSVBFX0IpCj4gIAkJY2h2X3VwZGF0ZV9jc2MoaW50ZWxfcGxhbmUs IGZiLT5waXhlbF9mb3JtYXQpOwo+ICAKPiAgCUk5MTVfV1JJVEUoU1BTVFJJREUocGlwZSwgcGxh bmUpLCBmYi0+cGl0Y2hlc1swXSk7Cj4gQEAgLTk0NCw2ICs5NDQsNyBAQCBpbnRlbF9jaGVja19z cHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIGludCBpbnRlbF9zcHJpdGVf c2V0X2NvbG9ya2V5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJCSAg ICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gIAlzdHJ1Y3QgZHJtX2ludGVsX3Nw cml0ZV9jb2xvcmtleSAqc2V0ID0gZGF0YTsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gQEAgLTk1NSw3ICs5NTYs NyBAQCBpbnQgaW50ZWxfc3ByaXRlX3NldF9jb2xvcmtleShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+ICAJaWYgKChzZXQtPmZsYWdzICYgKEk5MTVfU0VUX0NPTE9SS0VZX0RF U1RJTkFUSU9OIHwgSTkxNV9TRVRfQ09MT1JLRVlfU09VUkNFKSkgPT0gKEk5MTVfU0VUX0NPTE9S S0VZX0RFU1RJTkFUSU9OIHwgSTkxNV9TRVRfQ09MT1JLRVlfU09VUkNFKSkKPiAgCQlyZXR1cm4g LUVJTlZBTDsKPiAgCj4gLQlpZiAoKElTX1ZBTExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVX KGRldikpICYmCj4gKwlpZiAoKElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSAmJgo+ICAJICAgIHNldC0+ZmxhZ3MgJiBJOTE1X1NFVF9DT0xPUktFWV9E RVNUSU5BVElPTikKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gQEAgLTEwNDIsNiArMTA0Myw3 IEBAIHN0YXRpYyB1aW50MzJfdCBza2xfcGxhbmVfZm9ybWF0c1tdID0gewo+ICBpbnQKPiAgaW50 ZWxfcGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50 IHBsYW5lKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gTlVMTDsKPiAg CXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPSBOVUxMOwo+ICAJdW5zaWduZWQgbG9u ZyBwb3NzaWJsZV9jcnRjczsKPiBAQCAtMTA4NCw3ICsxMDg2LDcgQEAgaW50ZWxfcGxhbmVfaW5p dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSwgaW50IHBsYW5lKQo+ICAK PiAgCWNhc2UgNzoKPiAgCWNhc2UgODoKPiAtCQlpZiAoSVNfSVZZQlJJREdFKHRvX2k5MTUoZGV2 KSkpIHsKPiArCQlpZiAoSVNfSVZZQlJJREdFKGRldl9wcml2KSkgewo+ICAJCQlpbnRlbF9wbGFu ZS0+Y2FuX3NjYWxlID0gdHJ1ZTsKPiAgCQkJaW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUgPSAy Owo+ICAJCX0gZWxzZSB7Cj4gQEAgLTEwOTIsNyArMTA5NCw3IEBAIGludGVsX3BsYW5lX2luaXQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiAgCQkJ aW50ZWxfcGxhbmUtPm1heF9kb3duc2NhbGUgPSAxOwo+ICAJCX0KPiAgCj4gLQkJaWYgKElTX1ZB TExFWVZJRVcoZGV2KSB8fCBJU19DSEVSUllWSUVXKGRldikpIHsKPiArCQlpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiAgCQkJaW50ZWxf cGxhbmUtPnVwZGF0ZV9wbGFuZSA9IHZsdl91cGRhdGVfcGxhbmU7Cj4gIAkJCWludGVsX3BsYW5l LT5kaXNhYmxlX3BsYW5lID0gdmx2X2Rpc2FibGVfcGxhbmU7Cj4gIAo+IC0tIAo+IDIuNy40Cj4g Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRl bC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=