From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH v2 11/11] drm/exynos: remove struct exynos_drm_encoder layer Date: Fri, 07 Aug 2015 20:50:34 +0900 Message-ID: <55C49B8A.4090009@samsung.com> References: <1438817060-22164-10-git-send-email-gustavo@padovan.org> <1438867908-18975-1-git-send-email-gustavo@padovan.org> <1438867908-18975-2-git-send-email-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1438867908-18975-2-git-send-email-gustavo@padovan.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Gustavo Padovan , linux-samsung-soc@vger.kernel.org Cc: tjakobi@math.uni-bielefeld.de, Gustavo Padovan , dri-devel@lists.freedesktop.org List-Id: linux-samsung-soc@vger.kernel.org SGkgR3VzdGF2bywKCk9uIDIwMTXrhYQgMDjsm5QgMDbsnbwgMjI6MzEsIEd1c3Rhdm8gUGFkb3Zh biB3cm90ZToKPiBGcm9tOiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJv cmEuY28udWs+Cj4gCj4gc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciB3YXMganVzdGluZyB3cmFw cGluZyBzdHJ1Y3QgZHJtX2VuY29kZXIsIGl0IGhhZAo+IG9ubHkgYSBkcm1fZW5jb2RlciBtZW1i ZXIgYW5kIHRoZSBpbnRlcm5hbCBleHlub3NfZHJtX2VuY29kZXJzIG9wcyB0aGF0Cj4gd2FzIGRp cmVjdGx5IG1hcHBlZCB0byB0aGUgZHJtX2VuY29kZXIgaGVscGVyIGZ1bmNzLgo+IAo+IFNvIG5v dyBleHlub3MgRFJNIHVzZXMgc3RydWN0IGRybV9lbmNvZGVyIGRpcmVjdGx5LCB0aGlzIHJlbW92 ZXMKPiBjb21wbGV0ZWx5IHRoZSBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyLgo+IAoKVHJhdHMy IGJvYXJkLCB3aGljaCB1c2VzIEV4eW5vczQ0MTIgU29jLCBkb2Vzbid0IHdvcmsgYWZ0ZXIgdGhp cyBwYXRjaAppcyBhcHBsaWVkLiBCZWxvdyBpcyB0aGUgYm9vdGluZyBsb2dzLApbICAgIDEuMTcx MzE4XSBjb25zb2xlIFt0dHlTQUMyXSBlbmFibGVkClsgICAgMS4xNzU1MjJdIDEzODMwMDAwLnNl cmlhbDogdHR5U0FDMyBhdCBNTUlPIDB4MTM4MzAwMDAgKGlycSA9IDYwLApiYXNlX2JhdWQgPSAw KSBpcyBhIFMzQzY0MDAvMTAKWyAgICAxLjE4NTU0NV0gW2RybV0gSW5pdGlhbGl6ZWQgZHJtIDEu MS4wIDIwMDYwODEwClsgICAgMS4xOTQxMDRdIGV4eW5vcy1kcm0gZXh5bm9zLWRybTogYm91bmQg MTFjMDAwMDAuZmltZCAob3BzCmZpbWRfY29tcG9uZW50X29wcykKWyAgICAxLjIwMDM1Ml0gZXh5 bm9zLWRybSBleHlub3MtZHJtOiBib3VuZCAxMWM4MDAwMC5kc2kgKG9wcwpleHlub3NfZHNpX2Nv bXBvbmVudF9vcHMpClsgICAgMS4yMDc2ODhdIFtkcm1dIFN1cHBvcnRzIHZibGFuayB0aW1lc3Rh bXAgY2FjaGluZyBSZXYgMiAoMjEuMTAuMjAxMykuClsgICAgMS4yMTQzMTNdIFtkcm1dIE5vIGRy aXZlciBzdXBwb3J0IGZvciB2YmxhbmsgdGltZXN0YW1wIHF1ZXJ5LgpbICAgIDEuMjIwMjE4XSBb ZHJtXSBJbml0aWFsaXplZCBleHlub3MgMS4wLjAgMjAxMTA1MzAgb24gbWlub3IgMAoKQm9vdGlu ZyBpcyBsb2NrZWQgdXAgaGVyZS4gVGhpcyBwYXRjaCBsb29rcyBnb29kIHRvIG1lIHNvIEkgdHJp ZWQgdG8KZmluZCB3aHkgbG9ja2VkIHVwIGFuZCBJIGZvdW5kIHRoZSBib290aW5nIGlzIGxvY2tl ZCB1cCBhcyBzb29uIGFzCmNvbnNvbGVfbG9jayBmdW5jdGlvbiBpcyBjYWxsZWQuIENhbiB5b3Ug YW5kIG90aGVyIGd1eXMgbG9vayBpbnRvIHRoaXMKaXNzdWU/CgpUaGFua3MsCklua2kgRGFlCgo+ IFNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9y YS5jby51az4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9NYWtlZmlsZSAgICAgICAg ICAgICB8ICAgNyArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29u LmMgIHwgICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwX2NvcmUuYyAg ICAgfCAgNjggKysrKysrKysrKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RwX2NvcmUuaCAgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2NvcmUuYyAgICB8ICAgMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV9jcnRjLmMgICAgfCAgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19k cm1fZHBpLmMgICAgIHwgIDUxICsrKysrKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9kcnYuYyAgICAgfCAgIDEgLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fZHJ2LmggICAgIHwgIDQ3ICsrLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jICAgICB8ICA4MCArKysrKysrKysrKy0tLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2VuY29kZXIuYyB8IDEwNSAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9lbmNvZGVyLmggfCAgMjIgLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2RybV9maW1kLmMgICAgfCAgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX3ZpZGkuYyAgICB8ICA3MSArKysrKysrKysrKysrKy0tLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYyAgICAgICAgfCAgODUgKysrKysrKysrKysrKy0t LS0tLS0tLQo+ICAxNSBmaWxlcyBjaGFuZ2VkLCAyMzYgaW5zZXJ0aW9ucygrKSwgMzA5IGRlbGV0 aW9ucygtKQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2VuY29kZXIuYwo+ICBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX2VuY29kZXIuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9NYWtlZmlsZQo+IGlu ZGV4IDdkZTBiMTAuLjYxYzI5MDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9NYWtlZmlsZQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvTWFrZWZpbGUKPiBAQCAt MywxMCArMyw5IEBACj4gICMgRGlyZWN0IFJlbmRlcmluZyBJbmZyYXN0cnVjdHVyZSAoRFJJKSBp biBYRnJlZTg2IDQuMS4wIGFuZCBoaWdoZXIuCj4gIAo+ICBjY2ZsYWdzLXkgOj0gLUlpbmNsdWRl L2RybSAtSWRyaXZlcnMvZ3B1L2RybS9leHlub3MKPiAtZXh5bm9zZHJtLXkgOj0gZXh5bm9zX2Ry bV9kcnYubyBleHlub3NfZHJtX2VuY29kZXIubyBcCj4gLQkJZXh5bm9zX2RybV9jcnRjLm8gZXh5 bm9zX2RybV9mYmRldi5vIGV4eW5vc19kcm1fZmIubyBcCj4gLQkJZXh5bm9zX2RybV9idWYubyBl eHlub3NfZHJtX2dlbS5vIGV4eW5vc19kcm1fY29yZS5vIFwKPiAtCQlleHlub3NfZHJtX3BsYW5l Lm8gZXh5bm9zX2RybV9kbWFidWYubwo+ICtleHlub3Nkcm0teSA6PSBleHlub3NfZHJtX2Rydi5v IGV4eW5vc19kcm1fY3J0Yy5vIGV4eW5vc19kcm1fZmJkZXYubyBcCj4gKwkJZXh5bm9zX2RybV9m Yi5vIGV4eW5vc19kcm1fYnVmLm8gZXh5bm9zX2RybV9nZW0ubyBcCj4gKwkJZXh5bm9zX2RybV9j b3JlLm8gZXh5bm9zX2RybV9wbGFuZS5vIGV4eW5vc19kcm1fZG1hYnVmLm8KPiAgCj4gIGV4eW5v c2RybS0kKENPTkZJR19EUk1fRVhZTk9TX0lPTU1VKSArPSBleHlub3NfZHJtX2lvbW11Lm8KPiAg ZXh5bm9zZHJtLSQoQ09ORklHX0RSTV9FWFlOT1NfRklNRCkJKz0gZXh5bm9zX2RybV9maW1kLm8K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5j IGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jCj4gaW5kZXggZTFh MmNlNy4uMDc5MjY1NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v czdfZHJtX2RlY29uLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJt X2RlY29uLmMKPiBAQCAtNjEsNyArNjEsNyBAQCBzdHJ1Y3QgZGVjb25fY29udGV4dCB7Cj4gIAlh dG9taWNfdAkJCXdhaXRfdnN5bmNfZXZlbnQ7Cj4gIAo+ICAJc3RydWN0IGV4eW5vc19kcm1fcGFu ZWxfaW5mbyBwYW5lbDsKPiAtCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4g KwlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qg c3RydWN0IG9mX2RldmljZV9pZCBkZWNvbl9kcml2ZXJfZHRfbWF0Y2hbXSA9IHsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHBfY29yZS5jIGIvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHBfY29yZS5jCj4gaW5kZXggNGQ0OWQyNS4uOTI4NjRlZiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3JlLmMKPiBAQCAtMzIsMTgg KzMyLDE4IEBACj4gICNpbmNsdWRlIDxkcm0vZHJtX3BhbmVsLmg+Cj4gIAo+ICAjaW5jbHVkZSAi ZXh5bm9zX2RwX2NvcmUuaCIKPiAtI2luY2x1ZGUgImV4eW5vc19kcm1fZW5jb2Rlci5oIgo+ICsj aW5jbHVkZSAiZXh5bm9zX2RybV9jcnRjLmgiCj4gIAo+ICAjZGVmaW5lIGN0eF9mcm9tX2Nvbm5l Y3RvcihjKQljb250YWluZXJfb2YoYywgc3RydWN0IGV4eW5vc19kcF9kZXZpY2UsIFwKPiAgCQkJ CQljb25uZWN0b3IpCj4gIAo+ICBzdGF0aWMgaW5saW5lIHN0cnVjdCBleHlub3NfZHJtX2NydGMg KmRwX3RvX2NydGMoc3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwKQo+ICB7Cj4gLQlyZXR1cm4g dG9fZXh5bm9zX2NydGMoZHAtPmVuY29kZXIuYmFzZS5jcnRjKTsKPiArCXJldHVybiB0b19leHlu b3NfY3J0YyhkcC0+ZW5jb2Rlci5jcnRjKTsKPiAgfQo+ICAKPiAgc3RhdGljIGlubGluZSBzdHJ1 Y3QgZXh5bm9zX2RwX2RldmljZSAqZW5jb2Rlcl90b19kcCgKPiAtCQkJCQkJc3RydWN0IGV4eW5v c19kcm1fZW5jb2RlciAqZSkKPiArCQkJCQkJc3RydWN0IGRybV9lbmNvZGVyICplKQo+ICB7Cj4g IAlyZXR1cm4gY29udGFpbmVyX29mKGUsIHN0cnVjdCBleHlub3NfZHBfZGV2aWNlLCBlbmNvZGVy KTsKPiAgfQo+IEBAIC04ODksNyArODg5LDcgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RwX2hvdHBs dWcoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJCWRybV9oZWxwZXJfaHBkX2lycV9ldmVu dChkcC0+ZHJtX2Rldik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGV4eW5vc19kcF9jb21taXQo c3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgZXh5bm9z X2RwX2NvbW1pdChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBl eHlub3NfZHBfZGV2aWNlICpkcCA9IGVuY29kZXJfdG9fZHAoZW5jb2Rlcik7Cj4gIAlpbnQgcmV0 Owo+IEBAIC05OTUsNyArOTk1LDcgQEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqZXh5bm9z X2RwX2Jlc3RfZW5jb2RlcigKPiAgewo+ICAJc3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0g Y3R4X2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAo+IC0JcmV0dXJuICZkcC0+ZW5jb2Rl ci5iYXNlOwo+ICsJcmV0dXJuICZkcC0+ZW5jb2RlcjsKPiAgfQo+ICAKPiAgc3RhdGljIHN0cnVj dCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBleHlub3NfZHBfY29ubmVjdG9yX2hlbHBlcl9m dW5jcyA9IHsKPiBAQCAtMTAyMCwxMCArMTAyMCw5IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RybV9h dHRhY2hfbGNkX2JyaWRnZShzdHJ1Y3QgZXh5bm9zX2RwX2RldmljZSAqZHAsCj4gIAlyZXR1cm4g MDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBleHlub3NfZHBfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1 Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlub3NfZW5jb2RlcikKPiArc3RhdGljIGludCBleHlu b3NfZHBfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsK PiAtCXN0cnVjdCBleHlub3NfZHBfZGV2aWNlICpkcCA9IGVuY29kZXJfdG9fZHAoZXh5bm9zX2Vu Y29kZXIpOwo+IC0Jc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmV4eW5vc19lbmNvZGVy LT5iYXNlOwo+ICsJc3RydWN0IGV4eW5vc19kcF9kZXZpY2UgKmRwID0gZW5jb2Rlcl90b19kcChl bmNvZGVyKTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmZHAtPmNvbm5l Y3RvcjsKPiAgCWludCByZXQ7Cj4gIAo+IEBAIC0xMDUzLDcgKzEwNTIsMjAgQEAgc3RhdGljIGlu dCBleHlub3NfZHBfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpl eHlub3NfZW5jb2RlcikKPiAgCXJldHVybiByZXQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGV4 eW5vc19kcF9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3Rh dGljIGJvb2wgZXh5bm9zX2RwX21vZGVfZml4dXAoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAo+ICsJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICsJCQkJIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICt7Cj4gKwlyZXR1cm4gdHJ1 ZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZXh5bm9zX2RwX21vZGVfc2V0KHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlLAo+ICsJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUp Cj4gK3sKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZXh5bm9zX2RwX2VuYWJsZShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBleHlub3NfZHBfZGV2aWNlICpkcCA9 IGVuY29kZXJfdG9fZHAoZW5jb2Rlcik7Cj4gIAlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRj ID0gZHBfdG9fY3J0YyhkcCk7Cj4gQEAgLTEwNzgsNyArMTA5MCw3IEBAIHN0YXRpYyB2b2lkIGV4 eW5vc19kcF9lbmFibGUoc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCWV4 eW5vc19kcF9jb21taXQoJmRwLT5lbmNvZGVyKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZXh5 bm9zX2RwX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3Rh dGljIHZvaWQgZXh5bm9zX2RwX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ ICB7Cj4gIAlzdHJ1Y3QgZXh5bm9zX2RwX2RldmljZSAqZHAgPSBlbmNvZGVyX3RvX2RwKGVuY29k ZXIpOwo+ICAJc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YyA9IGRwX3RvX2NydGMoZHApOwo+ IEBAIC0xMTA3LDExICsxMTE5LDE3IEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kcF9kaXNhYmxlKHN0 cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRp YyBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyX29wcyBleHlub3NfZHBfZW5jb2Rlcl9vcHMgPSB7 Cj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGV4eW5vc19kcF9lbmNv ZGVyX2hlbHBlcl9mdW5jcyA9IHsKPiArCS5tb2RlX2ZpeHVwID0gZXh5bm9zX2RwX21vZGVfZml4 dXAsCj4gKwkubW9kZV9zZXQgPSBleHlub3NfZHBfbW9kZV9zZXQsCj4gIAkuZW5hYmxlID0gZXh5 bm9zX2RwX2VuYWJsZSwKPiAgCS5kaXNhYmxlID0gZXh5bm9zX2RwX2Rpc2FibGUsCj4gIH07Cj4g IAo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGV4eW5vc19kcF9lbmNvZGVyX2Z1 bmNzID0gewo+ICsJLmRlc3Ryb3kgPSBkcm1fZW5jb2Rlcl9jbGVhbnVwLAo+ICt9Owo+ICsKPiAg c3RhdGljIHN0cnVjdCB2aWRlb19pbmZvICpleHlub3NfZHBfZHRfcGFyc2VfcGRhdGEoc3RydWN0 IGRldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKmRwX25vZGUgPSBkZXYt Pm9mX25vZGU7Cj4gQEAgLTExODgsMTAgKzEyMDYsMTAgQEAgc3RhdGljIGludCBleHlub3NfZHBf YmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0 YSkKPiAgCXN0cnVjdCBleHlub3NfZHBfZGV2aWNlICpkcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp Owo+ICAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRmb3JtX2RldmljZShk ZXYpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkYXRhOwo+IC0Jc3RydWN0IGV4 eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2VuY29kZXIgPSAmZHAtPmVuY29kZXI7Cj4gKwlzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmZHAtPmVuY29kZXI7Cj4gIAlzdHJ1Y3QgcmVzb3Vy Y2UgKnJlczsKPiAgCXVuc2lnbmVkIGludCBpcnFfZmxhZ3M7Cj4gLQlpbnQgcmV0ID0gMDsKPiAr CWludCBwaXBlLCByZXQgPSAwOwo+ICAKPiAgCWRwLT5kZXYgPSAmcGRldi0+ZGV2Owo+ICAJZHAt PmRwbXNfbW9kZSA9IERSTV9NT0RFX0RQTVNfT0ZGOwo+IEBAIC0xMjgxLDE3ICsxMjk5LDI0IEBA IHN0YXRpYyBpbnQgZXh5bm9zX2RwX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2 aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIAo+ICAJZHAtPmRybV9kZXYgPSBkcm1fZGV2Owo+ ICAKPiAtCXJldCA9IGV4eW5vc19kcm1fZW5jb2Rlcl9jcmVhdGUoZHJtX2RldiwgZXh5bm9zX2Vu Y29kZXIsCj4gLQkJCQkJRVhZTk9TX0RJU1BMQVlfVFlQRV9MQ0QpOwo+IC0JaWYgKHJldCkgewo+ IC0JCURSTV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBlbmNvZGVyXG4iKTsKPiAtCQlyZXR1cm4g cmV0Owo+IC0JfQo+ICsJcGlwZSA9IGV4eW5vc19kcm1fY3J0Y19nZXRfcGlwZV9mcm9tX3R5cGUo ZHJtX2RldiwKPiArCQkJCQkJICBFWFlOT1NfRElTUExBWV9UWVBFX0xDRCk7Cj4gKwlpZiAocGlw ZSA8IDApCj4gKwkJcmV0dXJuIHBpcGU7Cj4gKwo+ICsJZW5jb2Rlci0+cG9zc2libGVfY3J0Y3Mg PSAxIDw8IHBpcGU7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygicG9zc2libGVfY3J0Y3MgPSAweCV4 XG4iLCBlbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyk7Cj4gKwo+ICsJZHJtX2VuY29kZXJfaW5pdChk cm1fZGV2LCBlbmNvZGVyLCAmZXh5bm9zX2RwX2VuY29kZXJfZnVuY3MsCj4gKwkJCSBEUk1fTU9E RV9FTkNPREVSX1RNRFMpOwo+ICsKPiArCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2Rlciwg JmV4eW5vc19kcF9lbmNvZGVyX2hlbHBlcl9mdW5jcyk7Cj4gIAo+IC0JcmV0ID0gZXh5bm9zX2Rw X2NyZWF0ZV9jb25uZWN0b3IoZXh5bm9zX2VuY29kZXIpOwo+ICsJcmV0ID0gZXh5bm9zX2RwX2Ny ZWF0ZV9jb25uZWN0b3IoZW5jb2Rlcik7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKCJm YWlsZWQgdG8gY3JlYXRlIGNvbm5lY3RvciByZXQgPSAlZFxuIiwgcmV0KTsKPiAtCQlkcm1fZW5j b2Rlcl9jbGVhbnVwKCZleHlub3NfZW5jb2Rlci0+YmFzZSk7Cj4gKwkJZHJtX2VuY29kZXJfY2xl YW51cChlbmNvZGVyKTsKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAKPiBAQCAtMTMyMiw3ICsx MzQ3LDYgQEAgc3RhdGljIGludCBleHlub3NfZHBfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiAgCWlmICghZHApCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0JZHAtPmVu Y29kZXIub3BzID0gJmV4eW5vc19kcF9lbmNvZGVyX29wczsKPiAgCXBsYXRmb3JtX3NldF9kcnZk YXRhKHBkZXYsIGRwKTsKPiAgCj4gIAlwYW5lbF9ub2RlID0gb2ZfcGFyc2VfcGhhbmRsZShkZXYt Pm9mX25vZGUsICJwYW5lbCIsIDApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcF9jb3JlLmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9j b3JlLmgKPiBpbmRleCBmOGNjMjAyLi5lNDEzYjZmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RwX2NvcmUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RwX2NvcmUuaAo+IEBAIC0xNDcsNyArMTQ3LDcgQEAgc3RydWN0IGxpbmtfdHJh aW4gewo+ICB9Owo+ICAKPiAgc3RydWN0IGV4eW5vc19kcF9kZXZpY2Ugewo+IC0Jc3RydWN0IGV4 eW5vc19kcm1fZW5jb2RlciBlbmNvZGVyOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyCWVuY29kZXI7 Cj4gIAlzdHJ1Y3QgZGV2aWNlCQkqZGV2Owo+ICAJc3RydWN0IGRybV9kZXZpY2UJKmRybV9kZXY7 Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcgljb25uZWN0b3I7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jb3JlLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fY29yZS5jCj4gaW5kZXggMWYzOGE0NC4uYzY4YTZhMiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY29yZS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NvcmUuYwo+IEBAIC0xNSw3ICsxNSw2IEBA Cj4gICNpbmNsdWRlIDxkcm0vZHJtUC5oPgo+ICAjaW5jbHVkZSAiZXh5bm9zX2RybV9kcnYuaCIK PiAgI2luY2x1ZGUgImV4eW5vc19kcm1fY3J0Yy5oIgo+IC0jaW5jbHVkZSAiZXh5bm9zX2RybV9l bmNvZGVyLmgiCj4gICNpbmNsdWRlICJleHlub3NfZHJtX2ZiZGV2LmgiCj4gIAo+ICBzdGF0aWMg TElTVF9IRUFEKGV4eW5vc19kcm1fc3ViZHJ2X2xpc3QpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2NydGMuYwo+IGluZGV4IDI3MTVjMmEuLmI5YjBlOWMgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2NydGMuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRjLmMKPiBAQCAtMTksNyArMTksNiBAQAo+ ICAKPiAgI2luY2x1ZGUgImV4eW5vc19kcm1fY3J0Yy5oIgo+ICAjaW5jbHVkZSAiZXh5bm9zX2Ry bV9kcnYuaCIKPiAtI2luY2x1ZGUgImV4eW5vc19kcm1fZW5jb2Rlci5oIgo+ICAjaW5jbHVkZSAi ZXh5bm9zX2RybV9wbGFuZS5oIgo+ICAKPiAgc3RhdGljIHZvaWQgZXh5bm9zX2RybV9jcnRjX2Vu YWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RybV9kcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2RybV9kcGkuYwo+IGluZGV4IDY4NTBjZTUuLjA0NzYyNjAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RwaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfZHJtX2RwaS5jCj4gQEAgLTIwLDExICsyMCwxMCBAQAo+ICAjaW5jbHVk ZSA8dmlkZW8vb2ZfdmlkZW9tb2RlLmg+Cj4gICNpbmNsdWRlIDx2aWRlby92aWRlb21vZGUuaD4K PiAgCj4gLSNpbmNsdWRlICJleHlub3NfZHJtX2VuY29kZXIuaCIKPiAgI2luY2x1ZGUgImV4eW5v c19kcm1fY3J0Yy5oIgo+ICAKPiAgc3RydWN0IGV4eW5vc19kcGkgewo+IC0Jc3RydWN0IGV4eW5v c19kcm1fZW5jb2RlciBlbmNvZGVyOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7Cj4g IAlzdHJ1Y3QgZGV2aWNlICpkZXY7Cj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKnBhbmVsX25vZGU7 Cj4gIAo+IEBAIC0zNiw3ICszNSw3IEBAIHN0cnVjdCBleHlub3NfZHBpIHsKPiAgCj4gICNkZWZp bmUgY29ubmVjdG9yX3RvX2RwaShjKSBjb250YWluZXJfb2YoYywgc3RydWN0IGV4eW5vc19kcGks IGNvbm5lY3RvcikKPiAgCj4gLXN0YXRpYyBpbmxpbmUgc3RydWN0IGV4eW5vc19kcGkgKmVuY29k ZXJfdG9fZHBpKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmUpCj4gK3N0YXRpYyBpbmxpbmUg c3RydWN0IGV4eW5vc19kcGkgKmVuY29kZXJfdG9fZHBpKHN0cnVjdCBkcm1fZW5jb2RlciAqZSkK PiAgewo+ICAJcmV0dXJuIGNvbnRhaW5lcl9vZihlLCBzdHJ1Y3QgZXh5bm9zX2RwaSwgZW5jb2Rl cik7Cj4gIH0KPiBAQCAtOTgsNyArOTcsNyBAQCBleHlub3NfZHBpX2Jlc3RfZW5jb2RlcihzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgZXh5bm9zX2RwaSAq Y3R4ID0gY29ubmVjdG9yX3RvX2RwaShjb25uZWN0b3IpOwo+ICAKPiAtCXJldHVybiAmY3R4LT5l bmNvZGVyLmJhc2U7Cj4gKwlyZXR1cm4gJmN0eC0+ZW5jb2RlcjsKPiAgfQo+ICAKPiAgc3RhdGlj IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBleHlub3NfZHBpX2Nvbm5lY3Rvcl9o ZWxwZXJfZnVuY3MgPSB7Cj4gQEAgLTEwNiwxMSArMTA1LDkgQEAgc3RhdGljIHN0cnVjdCBkcm1f Y29ubmVjdG9yX2hlbHBlcl9mdW5jcyBleHlub3NfZHBpX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mg PSB7Cj4gIAkuYmVzdF9lbmNvZGVyID0gZXh5bm9zX2RwaV9iZXN0X2VuY29kZXIsCj4gIH07Cj4g IAo+IC1zdGF0aWMgaW50IGV4eW5vc19kcGlfY3JlYXRlX2Nvbm5lY3RvcigKPiAtCQkJCXN0cnVj dCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5vc19lbmNvZGVyKQo+ICtzdGF0aWMgaW50IGV4eW5v c19kcGlfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsK PiAtCXN0cnVjdCBleHlub3NfZHBpICpjdHggPSBlbmNvZGVyX3RvX2RwaShleHlub3NfZW5jb2Rl cik7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIgPSAmZXh5bm9zX2VuY29kZXItPmJh c2U7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RwaSAqY3R4ID0gZW5jb2Rlcl90b19kcGkoZW5jb2Rlcik7 Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmN0eC0+Y29ubmVjdG9yOwo+ ICAJaW50IHJldDsKPiAgCj4gQEAgLTEzMSw3ICsxMjgsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19k cGlfY3JlYXRlX2Nvbm5lY3RvcigKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9p ZCBleHlub3NfZHBpX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKQo+ ICtzdGF0aWMgdm9pZCBleHlub3NfZHBpX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCj4gIHsKPiAgCXN0cnVjdCBleHlub3NfZHBpICpjdHggPSBlbmNvZGVyX3RvX2RwaShlbmNv ZGVyKTsKPiAgCj4gQEAgLTE0MSw3ICsxMzgsNyBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHBpX2Vu YWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKQo+ICAJfQo+ICB9Cj4gIAo+ IC1zdGF0aWMgdm9pZCBleHlub3NfZHBpX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fZW5jb2Rl ciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgZXh5bm9zX2RwaV9kaXNhYmxlKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlcikKPiAgewo+ICAJc3RydWN0IGV4eW5vc19kcGkgKmN0eCA9IGVuY29k ZXJfdG9fZHBpKGVuY29kZXIpOwo+ICAKPiBAQCAtMTUxLDExICsxNDgsMTUgQEAgc3RhdGljIHZv aWQgZXh5bm9zX2RwaV9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIp Cj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyX29wcyBl eHlub3NfZHBpX2VuY29kZXJfb3BzID0gewo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyX2hl bHBlcl9mdW5jcyBleHlub3NfZHBpX2VuY29kZXJfaGVscGVyX2Z1bmNzID0gewo+ICAJLmVuYWJs ZSA9IGV4eW5vc19kcGlfZW5hYmxlLAo+ICAJLmRpc2FibGUgPSBleHlub3NfZHBpX2Rpc2FibGUs Cj4gIH07Cj4gIAo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGV4eW5vc19kcGlf ZW5jb2Rlcl9mdW5jcyA9IHsKPiArCS5kZXN0cm95ID0gZHJtX2VuY29kZXJfY2xlYW51cCwKPiAr fTsKPiArCj4gIC8qIG9mXyogZnVuY3Rpb25zIHdpbGwgYmUgcmVtb3ZlZCBhZnRlciBtZXJnZSBv ZiBvZl9ncmFwaCBwYXRjaGVzICovCj4gIHN0YXRpYyBzdHJ1Y3QgZGV2aWNlX25vZGUgKgo+ICBv Zl9nZXRfY2hpbGRfYnlfbmFtZV9yZWcoc3RydWN0IGRldmljZV9ub2RlICpwYXJlbnQsIGNvbnN0 IGNoYXIgKm5hbWUsIHUzMiByZWcpCj4gQEAgLTI4MCwyOSArMjgxLDM0IEBAIHN0YXRpYyBpbnQg ZXh5bm9zX2RwaV9wYXJzZV9kdChzdHJ1Y3QgZXh5bm9zX2RwaSAqY3R4KQo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gLWludCBleHlub3NfZHBpX2JpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAtCQkgICAgc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2VuY29kZXIpCj4gK2lu dCBleHlub3NfZHBpX2JpbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCXJldCA9IGV4eW5vc19kcm1f ZW5jb2Rlcl9jcmVhdGUoZGV2LCBleHlub3NfZW5jb2RlciwKPiAtCQkJCQlFWFlOT1NfRElTUExB WV9UWVBFX0xDRCk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY3Jl YXRlIGVuY29kZXJcbiIpOwo+ICsJcmV0ID0gZXh5bm9zX2RybV9jcnRjX2dldF9waXBlX2Zyb21f dHlwZShkZXYsIEVYWU5PU19ESVNQTEFZX1RZUEVfTENEKTsKPiArCWlmIChyZXQgPCAwKQo+ICAJ CXJldHVybiByZXQ7Cj4gLQl9Cj4gIAo+IC0JcmV0ID0gZXh5bm9zX2RwaV9jcmVhdGVfY29ubmVj dG9yKGV4eW5vc19lbmNvZGVyKTsKPiArCWVuY29kZXItPnBvc3NpYmxlX2NydGNzID0gMSA8PCBy ZXQ7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygicG9zc2libGVfY3J0Y3MgPSAweCV4XG4iLCBlbmNv ZGVyLT5wb3NzaWJsZV9jcnRjcyk7Cj4gKwo+ICsJZHJtX2VuY29kZXJfaW5pdChkZXYsIGVuY29k ZXIsICZleHlub3NfZHBpX2VuY29kZXJfZnVuY3MsCj4gKwkJCSBEUk1fTU9ERV9FTkNPREVSX1RN RFMpOwo+ICsKPiArCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJmV4eW5vc19kcGlf ZW5jb2Rlcl9oZWxwZXJfZnVuY3MpOwo+ICsKPiArCXJldCA9IGV4eW5vc19kcGlfY3JlYXRlX2Nv bm5lY3RvcihlbmNvZGVyKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0 byBjcmVhdGUgY29ubmVjdG9yIHJldCA9ICVkXG4iLCByZXQpOwo+IC0JCWRybV9lbmNvZGVyX2Ns ZWFudXAoJmV4eW5vc19lbmNvZGVyLT5iYXNlKTsKPiArCQlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVu Y29kZXIpOwo+ICAJCXJldHVybiByZXQ7Cj4gIAl9Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAg Cj4gLXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5vc19kcGlfcHJvYmUoc3RydWN0IGRl dmljZSAqZGV2KQo+ICtzdHJ1Y3QgZHJtX2VuY29kZXIgKmV4eW5vc19kcGlfcHJvYmUoc3RydWN0 IGRldmljZSAqZGV2KQo+ICB7Cj4gIAlzdHJ1Y3QgZXh5bm9zX2RwaSAqY3R4Owo+ICAJaW50IHJl dDsKPiBAQCAtMzExLDcgKzMxNyw2IEBAIHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5v c19kcGlfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQo+ICAJaWYgKCFjdHgpCj4gIAkJcmV0dXJu IEVSUl9QVFIoLUVOT01FTSk7Cj4gIAo+IC0JY3R4LT5lbmNvZGVyLm9wcyA9ICZleHlub3NfZHBp X2VuY29kZXJfb3BzOwo+ICAJY3R4LT5kZXYgPSBkZXY7Cj4gIAo+ICAJcmV0ID0gZXh5bm9zX2Rw aV9wYXJzZV9kdChjdHgpOwo+IEBAIC0zMjksNyArMzM0LDcgQEAgc3RydWN0IGV4eW5vc19kcm1f ZW5jb2RlciAqZXh5bm9zX2RwaV9wcm9iZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gIAlyZXR1cm4g JmN0eC0+ZW5jb2RlcjsKPiAgfQo+ICAKPiAtaW50IGV4eW5vc19kcGlfcmVtb3ZlKHN0cnVjdCBl eHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gK2ludCBleHlub3NfZHBpX3JlbW92ZShzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBleHlub3NfZHBpICpjdHgg PSBlbmNvZGVyX3RvX2RwaShlbmNvZGVyKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9kcnYuYwo+IGluZGV4IDEwNWYxMGUuLjY2NzVlNzYgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5jCj4gQEAgLTIxLDcgKzIxLDYgQEAKPiAgCj4gICNp bmNsdWRlICJleHlub3NfZHJtX2Rydi5oIgo+ICAjaW5jbHVkZSAiZXh5bm9zX2RybV9jcnRjLmgi Cj4gLSNpbmNsdWRlICJleHlub3NfZHJtX2VuY29kZXIuaCIKPiAgI2luY2x1ZGUgImV4eW5vc19k cm1fZmJkZXYuaCIKPiAgI2luY2x1ZGUgImV4eW5vc19kcm1fZmIuaCIKPiAgI2luY2x1ZGUgImV4 eW5vc19kcm1fZ2VtLmgiCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaAo+ IGluZGV4IGE0OTc3YmUuLjZiOGEzMGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2Rydi5oCj4gQEAgLTIyLDcgKzIyLDYgQEAKPiAgI2RlZmluZSBNQVhfUExBTkUJNQo+ ICAjZGVmaW5lIE1BWF9GQl9CVUZGRVIJNAo+ICAKPiAtI2RlZmluZSB0b19leHlub3NfZW5jb2Rl cih4KQljb250YWluZXJfb2YoeCwgc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciwgYmFzZSkKPiAg I2RlZmluZSB0b19leHlub3NfY3J0Yyh4KQljb250YWluZXJfb2YoeCwgc3RydWN0IGV4eW5vc19k cm1fY3J0YywgYmFzZSkKPiAgI2RlZmluZSB0b19leHlub3NfcGxhbmUoeCkJY29udGFpbmVyX29m KHgsIHN0cnVjdCBleHlub3NfZHJtX3BsYW5lLCBiYXNlKQo+ICAKPiBAQCAtNzgsNDAgKzc3LDYg QEAgc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgewo+ICB9Owo+ICAKPiAgLyoKPiAtICogRXh5bm9z IERSTSBFbmNvZGVyIFN0cnVjdHVyZS4KPiAtICoJLSB0aGlzIHN0cnVjdHVyZSBpcyBjb21tb24g dG8gYW5hbG9nIHR2LCBkaWdpdGFsIHR2IGFuZCBsY2QgcGFuZWwuCj4gLSAqCj4gLSAqIEBtb2Rl X2ZpeHVwOiBmaXggbW9kZSBkYXRhIGNvbXBhcmluZyB0byBodyBzcGVjaWZpYyBkaXNwbGF5IG1v ZGUuCj4gLSAqIEBtb2RlX3NldDogY29udmVydCBkcm1fZGlzcGxheV9tb2RlIHRvIGh3IHNwZWNp ZmljIGRpc3BsYXkgbW9kZSBhbmQKPiAtICoJICAgICAgd291bGQgYmUgY2FsbGVkIGJ5IGVuY29k ZXItPm1vZGVfc2V0KCkuCj4gLSAqIEBlbmFibGU6IGRpc3BsYXkgZGV2aWNlIG9uLgo+IC0gKiBA ZGlzYWJsZTogZGlzcGxheSBkZXZpY2Ugb2ZmLgo+IC0gKi8KPiAtc3RydWN0IGV4eW5vc19kcm1f ZW5jb2RlcjsKPiAtc3RydWN0IGV4eW5vc19kcm1fZW5jb2Rlcl9vcHMgewo+IC0Jdm9pZCAoKm1v ZGVfZml4dXApKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gLQkJCQlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IC0JCQkJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUsCj4gLQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSk7Cj4gLQl2b2lkICgqbW9kZV9zZXQpKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVu Y29kZXIsCj4gLQkJCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSk7Cj4gLQl2b2lkICgq ZW5hYmxlKShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKTsKPiAtCXZvaWQgKCpk aXNhYmxlKShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKTsKPiAtfTsKPiAtCj4g LS8qCj4gLSAqIGV4eW5vcyBzcGVjaWZpYyBlbmNvZGVyIHN0cnVjdHVyZS4KPiAtICoKPiAtICog QGRybV9lbmNvZGVyOiBlbmNvZGVyIG9iamVjdC4KPiAtICogQHR5cGU6IG9uZSBvZiBFWFlOT1Nf RElTUExBWV9UWVBFX0xDRCBhbmQgSERNSS4KPiAtICogQG9wczogcG9pbnRlciB0byBjYWxsYmFj a3MgZm9yIGV4eW5vcyBkcm0gc3BlY2lmaWMgZnVuY3Rpb25hbGl0eQo+IC0gKi8KPiAtc3RydWN0 IGV4eW5vc19kcm1fZW5jb2RlciB7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIJCWJhc2U7Cj4gLQlz dHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyX29wcwkqb3BzOwo+IC19Owo+IC0KPiAtLyoKPiAgICog RXh5bm9zIGRybSBjcnRjIG9wcwo+ICAgKgo+ICAgKiBAZW5hYmxlOiBlbmFibGUgdGhlIGRldmlj ZQo+IEBAIC0yNTUsMTggKzIyMCwxOCBAQCBpbnQgZXh5bm9zX2RybV9zdWJkcnZfb3BlbihzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpOwo+ICB2b2lkIGV4eW5v c19kcm1fc3ViZHJ2X2Nsb3NlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmls ZSAqZmlsZSk7Cj4gIAo+ICAjaWZkZWYgQ09ORklHX0RSTV9FWFlOT1NfRFBJCj4gLXN0cnVjdCBl eHlub3NfZHJtX2VuY29kZXIgKmV4eW5vc19kcGlfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KTsK PiAtaW50IGV4eW5vc19kcGlfcmVtb3ZlKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29k ZXIpOwo+IC1pbnQgZXh5bm9zX2RwaV9iaW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ICtzdHJ1Y3QgZHJtX2VuY29kZXIgKmV4 eW5vc19kcGlfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KTsKPiAraW50IGV4eW5vc19kcGlfcmVt b3ZlKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gK2ludCBleHlub3NfZHBpX2JpbmQo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiAg I2Vsc2UKPiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICoKPiArc3Rh dGljIGlubGluZSBzdHJ1Y3QgZHJtX2VuY29kZXIgKgo+ICBleHlub3NfZHBpX3Byb2JlKHN0cnVj dCBkZXZpY2UgKmRldikgeyByZXR1cm4gTlVMTDsgfQo+IC1zdGF0aWMgaW5saW5lIGludCBleHlu b3NfZHBpX3JlbW92ZShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0 aWMgaW5saW5lIGludCBleHlub3NfZHBpX3JlbW92ZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCj4gIHsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIHN0YXRpYyBpbmxpbmUgaW50IGV4eW5vc19k cGlfYmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJICBzdHJ1Y3QgZXh5bm9zX2Ry bV9lbmNvZGVyICplbmNvZGVyKQo+ICsJCQkJICBzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIp Cj4gIHsKPiAgCXJldHVybiAwOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RybV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2Ry bV9kc2kuYwo+IGluZGV4IGQ3OTFhZDQuLmE4N2QwMzAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX2RzaS5jCj4gQEAgLTMwLDcgKzMwLDYgQEAKPiAgI2luY2x1ZGUgPHZp ZGVvL3ZpZGVvbW9kZS5oPgo+ICAKPiAgI2luY2x1ZGUgImV4eW5vc19kcm1fY3J0Yy5oIgo+IC0j aW5jbHVkZSAiZXh5bm9zX2RybV9lbmNvZGVyLmgiCj4gICNpbmNsdWRlICJleHlub3NfZHJtX2Ry di5oIgo+ICAKPiAgLyogcmV0dXJucyB0cnVlIGlmZiBib3RoIGFyZ3VtZW50cyBsb2dpY2FsbHkg ZGlmZmVycyAqLwo+IEBAIC0yNjAsNyArMjU5LDcgQEAgc3RydWN0IGV4eW5vc19kc2lfZHJpdmVy X2RhdGEgewo+ICB9Owo+ICAKPiAgc3RydWN0IGV4eW5vc19kc2kgewo+IC0Jc3RydWN0IGV4eW5v c19kcm1fZW5jb2RlciBlbmNvZGVyOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyIGVuY29kZXI7Cj4g IAlzdHJ1Y3QgbWlwaV9kc2lfaG9zdCBkc2lfaG9zdDsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9y IGNvbm5lY3RvcjsKPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcGFuZWxfbm9kZTsKPiBAQCAtMjk2 LDcgKzI5NSw3IEBAIHN0cnVjdCBleHlub3NfZHNpIHsKPiAgI2RlZmluZSBob3N0X3RvX2RzaSho b3N0KSBjb250YWluZXJfb2YoaG9zdCwgc3RydWN0IGV4eW5vc19kc2ksIGRzaV9ob3N0KQo+ICAj ZGVmaW5lIGNvbm5lY3Rvcl90b19kc2koYykgY29udGFpbmVyX29mKGMsIHN0cnVjdCBleHlub3Nf ZHNpLCBjb25uZWN0b3IpCj4gIAo+IC1zdGF0aWMgaW5saW5lIHN0cnVjdCBleHlub3NfZHNpICpl bmNvZGVyX3RvX2RzaShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplKQo+ICtzdGF0aWMgaW5s aW5lIHN0cnVjdCBleHlub3NfZHNpICplbmNvZGVyX3RvX2RzaShzdHJ1Y3QgZHJtX2VuY29kZXIg KmUpCj4gIHsKPiAgCXJldHVybiBjb250YWluZXJfb2YoZSwgc3RydWN0IGV4eW5vc19kc2ksIGVu Y29kZXIpOwo+ICB9Cj4gQEAgLTEyNzMsNyArMTI3Miw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBl eHlub3NfZHNpX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpCj4gIHN0YXRpYyBpcnFyZXR1cm5f dCBleHlub3NfZHNpX3RlX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pZCkKPiAgewo+ ICAJc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IChzdHJ1Y3QgZXh5bm9zX2RzaSAqKWRldl9pZDsK PiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZkc2ktPmVuY29kZXIuYmFzZTsKPiAr CXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9ICZkc2ktPmVuY29kZXI7Cj4gIAo+ICAJaWYg KGRzaS0+c3RhdGUgJiBEU0lNX1NUQVRFX1ZJRE9VVF9BVkFJTEFCTEUpCj4gIAkJZXh5bm9zX2Ry bV9jcnRjX3RlX2hhbmRsZXIoZW5jb2Rlci0+Y3J0Yyk7Cj4gQEAgLTE1MTksNyArMTUxOCw3IEBA IHN0YXRpYyB2b2lkIGV4eW5vc19kc2lfcG93ZXJvZmYoc3RydWN0IGV4eW5vc19kc2kgKmRzaSkK PiAgCQlkZXZfZXJyKGRzaS0+ZGV2LCAiY2Fubm90IGRpc2FibGUgcmVndWxhdG9ycyAlZFxuIiwg cmV0KTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9lbmFibGUoc3RydWN0IGV4 eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKPiArc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9lbmFi bGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3QgZXh5bm9zX2Rz aSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rlcik7Cj4gIAlpbnQgcmV0Owo+IEBAIC0xNTU1 LDcgKzE1NTQsNyBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHNpX2VuYWJsZShzdHJ1Y3QgZXh5bm9z X2RybV9lbmNvZGVyICplbmNvZGVyKQo+ICAJZHNpLT5zdGF0ZSB8PSBEU0lNX1NUQVRFX1ZJRE9V VF9BVkFJTEFCTEU7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGV4eW5vc19kc2lfZGlzYWJsZShz dHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKQo+ICtzdGF0aWMgdm9pZCBleHlub3Nf ZHNpX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICB7Cj4gIAlzdHJ1Y3Qg ZXh5bm9zX2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rlcik7Cj4gIAo+IEBAIC0xNTgz LDcgKzE1ODIsNyBAQCBleHlub3NfZHNpX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLCBib29sIGZvcmNlKQo+ICAJCWlmIChkc2ktPnBhbmVsKQo+ICAJCQlkcm1fcGFuZWxf YXR0YWNoKGRzaS0+cGFuZWwsICZkc2ktPmNvbm5lY3Rvcik7Cj4gIAl9IGVsc2UgaWYgKCFkc2kt PnBhbmVsX25vZGUpIHsKPiAtCQlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyOwo+ ICsJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiAgCj4gIAkJZW5jb2RlciA9IHBsYXRm b3JtX2dldF9kcnZkYXRhKHRvX3BsYXRmb3JtX2RldmljZShkc2ktPmRldikpOwo+ICAJCWV4eW5v c19kc2lfZGlzYWJsZShlbmNvZGVyKTsKPiBAQCAtMTYyOSw3ICsxNjI4LDcgQEAgZXh5bm9zX2Rz aV9iZXN0X2VuY29kZXIoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJ c3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGNvbm5lY3Rvcl90b19kc2koY29ubmVjdG9yKTsKPiAg Cj4gLQlyZXR1cm4gJmRzaS0+ZW5jb2Rlci5iYXNlOwo+ICsJcmV0dXJuICZkc2ktPmVuY29kZXI7 Cj4gIH0KPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgZXh5 bm9zX2RzaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+IEBAIC0xNjM3LDExICsxNjM2LDkg QEAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBleHlub3NfZHNpX2Nv bm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4gIAkuYmVzdF9lbmNvZGVyID0gZXh5bm9zX2RzaV9i ZXN0X2VuY29kZXIsCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IGV4eW5vc19kc2lfY3JlYXRlX2Nv bm5lY3RvcigKPiAtCQkJCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5vc19lbmNvZGVy KQo+ICtzdGF0aWMgaW50IGV4eW5vc19kc2lfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gIHsKPiAtCXN0cnVjdCBleHlub3NfZHNpICpkc2kgPSBlbmNvZGVy X3RvX2RzaShleHlub3NfZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIg PSAmZXh5bm9zX2VuY29kZXItPmJhc2U7Cj4gKwlzdHJ1Y3QgZXh5bm9zX2RzaSAqZHNpID0gZW5j b2Rlcl90b19kc2koZW5jb2Rlcik7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y ID0gJmRzaS0+Y29ubmVjdG9yOwo+ICAJaW50IHJldDsKPiAgCj4gQEAgLTE2NjIsMjggKzE2NTks MzQgQEAgc3RhdGljIGludCBleHlub3NfZHNpX2NyZWF0ZV9jb25uZWN0b3IoCj4gIAlyZXR1cm4g MDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZXh5bm9zX2RzaV9tb2RlX3NldChzdHJ1Y3QgZXh5 bm9zX2RybV9lbmNvZGVyICplbmNvZGVyLAo+IC0JCQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUpCj4gK3N0YXRpYyB2b2lkIGV4eW5vc19kc2lfbW9kZV9zZXQoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLAo+ICsJCQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gKwkJ CQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiAgewo+ICAJc3RydWN0 IGV4eW5vc19kc2kgKmRzaSA9IGVuY29kZXJfdG9fZHNpKGVuY29kZXIpOwo+ICAJc3RydWN0IHZp ZGVvbW9kZSAqdm0gPSAmZHNpLT52bTsKPiAtCj4gLQl2bS0+aGFjdGl2ZSA9IG1vZGUtPmhkaXNw bGF5Owo+IC0Jdm0tPnZhY3RpdmUgPSBtb2RlLT52ZGlzcGxheTsKPiAtCXZtLT52ZnJvbnRfcG9y Y2ggPSBtb2RlLT52c3luY19zdGFydCAtIG1vZGUtPnZkaXNwbGF5Owo+IC0Jdm0tPnZiYWNrX3Bv cmNoID0gbW9kZS0+dnRvdGFsIC0gbW9kZS0+dnN5bmNfZW5kOwo+IC0Jdm0tPnZzeW5jX2xlbiA9 IG1vZGUtPnZzeW5jX2VuZCAtIG1vZGUtPnZzeW5jX3N0YXJ0Owo+IC0Jdm0tPmhmcm9udF9wb3Jj aCA9IG1vZGUtPmhzeW5jX3N0YXJ0IC0gbW9kZS0+aGRpc3BsYXk7Cj4gLQl2bS0+aGJhY2tfcG9y Y2ggPSBtb2RlLT5odG90YWwgLSBtb2RlLT5oc3luY19lbmQ7Cj4gLQl2bS0+aHN5bmNfbGVuID0g bW9kZS0+aHN5bmNfZW5kIC0gbW9kZS0+aHN5bmNfc3RhcnQ7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbSA9IGFkanVzdGVkX21vZGU7Cj4gKwo+ICsJdm0tPmhhY3RpdmUgPSBtLT5oZGlz cGxheTsKPiArCXZtLT52YWN0aXZlID0gbS0+dmRpc3BsYXk7Cj4gKwl2bS0+dmZyb250X3BvcmNo ID0gbS0+dnN5bmNfc3RhcnQgLSBtLT52ZGlzcGxheTsKPiArCXZtLT52YmFja19wb3JjaCA9IG0t PnZ0b3RhbCAtIG0tPnZzeW5jX2VuZDsKPiArCXZtLT52c3luY19sZW4gPSBtLT52c3luY19lbmQg LSBtLT52c3luY19zdGFydDsKPiArCXZtLT5oZnJvbnRfcG9yY2ggPSBtLT5oc3luY19zdGFydCAt IG0tPmhkaXNwbGF5Owo+ICsJdm0tPmhiYWNrX3BvcmNoID0gbS0+aHRvdGFsIC0gbS0+aHN5bmNf ZW5kOwo+ICsJdm0tPmhzeW5jX2xlbiA9IG0tPmhzeW5jX2VuZCAtIG0tPmhzeW5jX3N0YXJ0Owo+ ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGV4eW5vc19kcm1fZW5jb2Rlcl9vcHMgZXh5bm9zX2Rz aV9lbmNvZGVyX29wcyA9IHsKPiArc3RhdGljIHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJfZnVu Y3MgZXh5bm9zX2RzaV9lbmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsKPiAgCS5tb2RlX3NldCA9IGV4 eW5vc19kc2lfbW9kZV9zZXQsCj4gIAkuZW5hYmxlID0gZXh5bm9zX2RzaV9lbmFibGUsCj4gIAku ZGlzYWJsZSA9IGV4eW5vc19kc2lfZGlzYWJsZSwKPiAgfTsKPiAgCj4gK3N0YXRpYyBzdHJ1Y3Qg ZHJtX2VuY29kZXJfZnVuY3MgZXh5bm9zX2RzaV9lbmNvZGVyX2Z1bmNzID0gewo+ICsJLmRlc3Ry b3kgPSBkcm1fZW5jb2Rlcl9jbGVhbnVwLAo+ICt9Owo+ICsKPiAgTU9EVUxFX0RFVklDRV9UQUJM RShvZiwgZXh5bm9zX2RzaV9vZl9tYXRjaCk7Cj4gIAo+ICAvKiBvZl8qIGZ1bmN0aW9ucyB3aWxs IGJlIHJlbW92ZWQgYWZ0ZXIgbWVyZ2Ugb2Ygb2ZfZ3JhcGggcGF0Y2hlcyAqLwo+IEBAIC0xODA0 LDIzICsxODA3LDMwIEBAIGVuZDoKPiAgc3RhdGljIGludCBleHlub3NfZHNpX2JpbmQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gIAkJCQl2b2lkICpkYXRhKQo+ ICB7Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlub3NfZW5jb2RlciA9IGRldl9n ZXRfZHJ2ZGF0YShkZXYpOwo+IC0Jc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGVuY29kZXJfdG9f ZHNpKGV4eW5vc19lbmNvZGVyKTsKPiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9IGRl dl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsJc3RydWN0IGV4eW5vc19kc2kgKmRzaSA9IGVuY29kZXJf dG9fZHNpKGVuY29kZXIpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkYXRhOwo+ ICAJc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZTsKPiAgCWludCByZXQ7Cj4gIAo+IC0JcmV0ID0g ZXh5bm9zX2RybV9lbmNvZGVyX2NyZWF0ZShkcm1fZGV2LCBleHlub3NfZW5jb2RlciwKPiAtCQkJ CQlFWFlOT1NfRElTUExBWV9UWVBFX0xDRCk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJRFJNX0VSUk9S KCJmYWlsZWQgdG8gY3JlYXRlIGVuY29kZXJcbiIpOwo+ICsJcmV0ID0gZXh5bm9zX2RybV9jcnRj X2dldF9waXBlX2Zyb21fdHlwZShkcm1fZGV2LAo+ICsJCQkJCQkgIEVYWU5PU19ESVNQTEFZX1RZ UEVfTENEKTsKPiArCWlmIChyZXQgPCAwKQo+ICAJCXJldHVybiByZXQ7Cj4gLQl9Cj4gIAo+IC0J cmV0ID0gZXh5bm9zX2RzaV9jcmVhdGVfY29ubmVjdG9yKGV4eW5vc19lbmNvZGVyKTsKPiArCWVu Y29kZXItPnBvc3NpYmxlX2NydGNzID0gMSA8PCByZXQ7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygi cG9zc2libGVfY3J0Y3MgPSAweCV4XG4iLCBlbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyk7Cj4gKwo+ ICsJZHJtX2VuY29kZXJfaW5pdChkcm1fZGV2LCBlbmNvZGVyLCAmZXh5bm9zX2RzaV9lbmNvZGVy X2Z1bmNzLAo+ICsJCQkgRFJNX01PREVfRU5DT0RFUl9UTURTKTsKPiArCj4gKwlkcm1fZW5jb2Rl cl9oZWxwZXJfYWRkKGVuY29kZXIsICZleHlub3NfZHNpX2VuY29kZXJfaGVscGVyX2Z1bmNzKTsK PiArCj4gKwlyZXQgPSBleHlub3NfZHNpX2NyZWF0ZV9jb25uZWN0b3IoZW5jb2Rlcik7Cj4gIAlp ZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gY3JlYXRlIGNvbm5lY3RvciByZXQg PSAlZFxuIiwgcmV0KTsKPiAtCQlkcm1fZW5jb2Rlcl9jbGVhbnVwKCZleHlub3NfZW5jb2Rlci0+ YmFzZSk7Cj4gKwkJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiAgCQlyZXR1cm4gcmV0 Owo+ICAJfQo+ICAKPiBAQCAtMTgzNSw3ICsxODQ1LDcgQEAgc3RhdGljIGludCBleHlub3NfZHNp X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gIHN0YXRp YyB2b2lkIGV4eW5vc19kc2lfdW5iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmlj ZSAqbWFzdGVyLAo+ICAJCQkJdm9pZCAqZGF0YSkKPiAgewo+IC0Jc3RydWN0IGV4eW5vc19kcm1f ZW5jb2RlciAqZW5jb2RlciA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsJc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gIAlzdHJ1Y3QgZXh5bm9z X2RzaSAqZHNpID0gZW5jb2Rlcl90b19kc2koZW5jb2Rlcik7Cj4gIAo+ICAJZXh5bm9zX2RzaV9k aXNhYmxlKGVuY29kZXIpOwo+IEBAIC0xODU5LDggKzE4NjksNiBAQCBzdGF0aWMgaW50IGV4eW5v c19kc2lfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCWlmICghZHNpKQo+ ICAJCXJldHVybiAtRU5PTUVNOwo+ICAKPiAtCWRzaS0+ZW5jb2Rlci5vcHMgPSAmZXh5bm9zX2Rz aV9lbmNvZGVyX29wczsKPiAtCj4gIAkvKiBUbyBiZSBjaGVja2VkIGFzIGludmFsaWQgb25lICov Cj4gIAlkc2ktPnRlX2dwaW8gPSAtRU5PRU5UOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9lbmNvZGVyLmMKPiBkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCBkNDVhNWM1Li4wMDAwMDAwCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHJtX2VuY29kZXIuYwo+ICsrKyAvZGV2L251bGwKPiBAQCAtMSwxMDUgKzAsMCBAQAo+IC0vKiBl eHlub3NfZHJtX2VuY29kZXIuYwo+IC0gKgo+IC0gKiBDb3B5cmlnaHQgKGMpIDIwMTEgU2Ftc3Vu ZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KPiAtICogQXV0aG9yczoKPiAtICoJSW5raSBEYWUgPGlu a2kuZGFlQHNhbXN1bmcuY29tPgo+IC0gKglKb29ueW91bmcgU2hpbSA8ankwOTIyLnNoaW1Ac2Ft c3VuZy5jb20+Cj4gLSAqCVNldW5nLVdvbyBLaW0gPHN3MDMxMi5raW1Ac2Ftc3VuZy5jb20+Cj4g LSAqCj4gLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSAgaXQgYW5kL29yIG1vZGlmeSBpdAo+IC0gKiB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUg R05VIEdlbmVyYWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKPiAtICogRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2Us IG9yIChhdCB5b3VyCj4gLSAqIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gLSAqLwo+IC0K PiAtI2luY2x1ZGUgPGRybS9kcm1QLmg+Cj4gLSNpbmNsdWRlIDxkcm0vZHJtX2NydGNfaGVscGVy Lmg+Cj4gLQo+IC0jaW5jbHVkZSAiZXh5bm9zX2RybV9kcnYuaCIKPiAtI2luY2x1ZGUgImV4eW5v c19kcm1fZW5jb2Rlci5oIgo+IC0jaW5jbHVkZSAiZXh5bm9zX2RybV9jcnRjLmgiCj4gLQo+IC1z dGF0aWMgYm9vbAo+IC1leHlub3NfZHJtX2VuY29kZXJfbW9kZV9maXh1cChzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIsCj4gLQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSwKPiAtCQkJICAgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9t b2RlKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+IC0J c3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2VuY29kZXIgPSB0b19leHlub3NfZW5j b2RlcihlbmNvZGVyKTsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gLQo+ IC0JbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3IsICZkZXYtPm1vZGVfY29uZmlnLmNvbm5l Y3Rvcl9saXN0LCBoZWFkKSB7Cj4gLQkJaWYgKGNvbm5lY3Rvci0+ZW5jb2RlciAhPSBlbmNvZGVy KQo+IC0JCQljb250aW51ZTsKPiAtCj4gLQkJaWYgKGV4eW5vc19lbmNvZGVyLT5vcHMtPm1vZGVf Zml4dXApCj4gLQkJCWV4eW5vc19lbmNvZGVyLT5vcHMtPm1vZGVfZml4dXAoZXh5bm9zX2VuY29k ZXIsCj4gLQkJCQkJCQljb25uZWN0b3IsIG1vZGUsCj4gLQkJCQkJCQlhZGp1c3RlZF9tb2RlKTsK PiAtCX0KPiAtCj4gLQlyZXR1cm4gdHJ1ZTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgZXh5bm9z X2RybV9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAtCQkJ CQkgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCQkJIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+IC17Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNv ZGVyICpleHlub3NfZW5jb2RlciA9IHRvX2V4eW5vc19lbmNvZGVyKGVuY29kZXIpOwo+IC0KPiAt CWlmIChleHlub3NfZW5jb2Rlci0+b3BzLT5tb2RlX3NldCkKPiAtCQlleHlub3NfZW5jb2Rlci0+ b3BzLT5tb2RlX3NldChleHlub3NfZW5jb2RlciwgYWRqdXN0ZWRfbW9kZSk7Cj4gLX0KPiAtCj4g LXN0YXRpYyB2b2lkIGV4eW5vc19kcm1fZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyKQo+IC17Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlub3NfZW5j b2RlciA9IHRvX2V4eW5vc19lbmNvZGVyKGVuY29kZXIpOwo+IC0KPiAtCWlmIChleHlub3NfZW5j b2Rlci0+b3BzLT5lbmFibGUpCj4gLQkJZXh5bm9zX2VuY29kZXItPm9wcy0+ZW5hYmxlKGV4eW5v c19lbmNvZGVyKTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgZXh5bm9zX2RybV9lbmNvZGVyX2Rp c2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+IC17Cj4gLQlzdHJ1Y3QgZXh5bm9z X2RybV9lbmNvZGVyICpleHlub3NfZW5jb2RlciA9IHRvX2V4eW5vc19lbmNvZGVyKGVuY29kZXIp Owo+IC0KPiAtCWlmIChleHlub3NfZW5jb2Rlci0+b3BzLT5kaXNhYmxlKQo+IC0JCWV4eW5vc19l bmNvZGVyLT5vcHMtPmRpc2FibGUoZXh5bm9zX2VuY29kZXIpOwo+IC19Cj4gLQo+IC1zdGF0aWMg c3RydWN0IGRybV9lbmNvZGVyX2hlbHBlcl9mdW5jcyBleHlub3NfZW5jb2Rlcl9oZWxwZXJfZnVu Y3MgPSB7Cj4gLQkubW9kZV9maXh1cAk9IGV4eW5vc19kcm1fZW5jb2Rlcl9tb2RlX2ZpeHVwLAo+ IC0JLm1vZGVfc2V0CT0gZXh5bm9zX2RybV9lbmNvZGVyX21vZGVfc2V0LAo+IC0JLmVuYWJsZQkJ PSBleHlub3NfZHJtX2VuY29kZXJfZW5hYmxlLAo+IC0JLmRpc2FibGUJPSBleHlub3NfZHJtX2Vu Y29kZXJfZGlzYWJsZSwKPiAtfTsKPiAtCj4gLXN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVu Y3MgZXh5bm9zX2VuY29kZXJfZnVuY3MgPSB7Cj4gLQkuZGVzdHJveSA9IGRybV9lbmNvZGVyX2Ns ZWFudXAsCj4gLX07Cj4gLQo+IC1pbnQgZXh5bm9zX2RybV9lbmNvZGVyX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+IC0JCQkgICAgICBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpl eHlub3NfZW5jb2RlciwKPiAtCQkJICAgICAgZW51bSBleHlub3NfZHJtX291dHB1dF90eXBlIHR5 cGUpCj4gLXsKPiAtCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiAtCWludCBwaXBlOwo+ IC0KPiAtCXBpcGUgPSBleHlub3NfZHJtX2NydGNfZ2V0X3BpcGVfZnJvbV90eXBlKGRldiwgdHlw ZSk7Cj4gLQlpZiAocGlwZSA8IDApCj4gLQkJcmV0dXJuIHBpcGU7Cj4gLQo+IC0JZW5jb2RlciA9 ICZleHlub3NfZW5jb2Rlci0+YmFzZTsKPiAtCWVuY29kZXItPnBvc3NpYmxlX2NydGNzID0gMSA8 PCBwaXBlOwo+IC0KPiAtCURSTV9ERUJVR19LTVMoInBvc3NpYmxlX2NydGNzID0gMHgleFxuIiwg ZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MpOwo+IC0KPiAtCWRybV9lbmNvZGVyX2luaXQoZGV2LCBl bmNvZGVyLCAmZXh5bm9zX2VuY29kZXJfZnVuY3MsCj4gLQkJCURSTV9NT0RFX0VOQ09ERVJfVE1E Uyk7Cj4gLQo+IC0JZHJtX2VuY29kZXJfaGVscGVyX2FkZChlbmNvZGVyLCAmZXh5bm9zX2VuY29k ZXJfaGVscGVyX2Z1bmNzKTsKPiAtCj4gLQlEUk1fREVCVUdfS01TKCJlbmNvZGVyIGhhcyBiZWVu IGNyZWF0ZWRcbiIpOwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9lbmNvZGVyLmggYi9kcml2ZXJzL2dwdS9kcm0v ZXh5bm9zL2V4eW5vc19kcm1fZW5jb2Rlci5oCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4g aW5kZXggNjYxMGRlZS4uMDAwMDAwMAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9lbmNvZGVyLmgKPiArKysgL2Rldi9udWxsCj4gQEAgLTEsMjIgKzAsMCBAQAo+IC0v Kgo+IC0gKiBDb3B5cmlnaHQgKGMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4K PiAtICogQXV0aG9yczoKPiAtICoJSW5raSBEYWUgPGlua2kuZGFlQHNhbXN1bmcuY29tPgo+IC0g KglKb29ueW91bmcgU2hpbSA8ankwOTIyLnNoaW1Ac2Ftc3VuZy5jb20+Cj4gLSAqCVNldW5nLVdv byBLaW0gPHN3MDMxMi5raW1Ac2Ftc3VuZy5jb20+Cj4gLSAqCj4gLSAqIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSAgaXQgYW5kL29yIG1vZGlmeSBp dAo+IC0gKiB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVyYWwgIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKPiAtICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyAg ZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgIExpY2Vuc2UsIG9yIChhdCB5b3VyCj4gLSAqIG9wdGlv bikgYW55IGxhdGVyIHZlcnNpb24uCj4gLSAqLwo+IC0KPiAtI2lmbmRlZiBfRVhZTk9TX0RSTV9F TkNPREVSX0hfCj4gLSNkZWZpbmUgX0VYWU5PU19EUk1fRU5DT0RFUl9IXwo+IC0KPiAtI2luY2x1 ZGUgImV4eW5vc19kcm1fZHJ2LmgiCj4gLQo+IC1pbnQgZXh5bm9zX2RybV9lbmNvZGVyX2NyZWF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyCj4gLQkJ CSAgICAgICplbmNvZGVyLCBlbnVtIGV4eW5vc19kcm1fb3V0cHV0X3R5cGUgdHlwZSk7Cj4gLQo+ IC0jZW5kaWYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2ZpbWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKPiBpbmRl eCA2YzBkM2RlLi41ZGVmNmJjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2RybV9maW1kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19k cm1fZmltZC5jCj4gQEAgLTE2OSw3ICsxNjksNyBAQCBzdHJ1Y3QgZmltZF9jb250ZXh0IHsKPiAg Cj4gIAlzdHJ1Y3QgZXh5bm9zX2RybV9wYW5lbF9pbmZvIHBhbmVsOwo+ICAJc3RydWN0IGZpbWRf ZHJpdmVyX2RhdGEgKmRyaXZlcl9kYXRhOwo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAq ZW5jb2RlcjsKPiArCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcjsKPiAgfTsKPiAgCj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGZpbWRfZHJpdmVyX2R0X21hdGNoW10gPSB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jCj4gaW5kZXggOWI2NGM3 Ny4uNTgxYWYzNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19k cm1fdmlkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGku Ywo+IEBAIC0yNSw3ICsyNSw2IEBACj4gICNpbmNsdWRlICJleHlub3NfZHJtX2Rydi5oIgo+ICAj aW5jbHVkZSAiZXh5bm9zX2RybV9jcnRjLmgiCj4gICNpbmNsdWRlICJleHlub3NfZHJtX3BsYW5l LmgiCj4gLSNpbmNsdWRlICJleHlub3NfZHJtX2VuY29kZXIuaCIKPiAgI2luY2x1ZGUgImV4eW5v c19kcm1fdmlkaS5oIgo+ICAKPiAgLyogdmlkaSBoYXMgdG90YWxseSB0aHJlZSB2aXJ0dWFsIHdp bmRvd3MuICovCj4gQEAgLTM1LDcgKzM0LDcgQEAKPiAgCQkJCQljb25uZWN0b3IpCj4gIAo+ICBz dHJ1Y3QgdmlkaV9jb250ZXh0IHsKPiAtCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIJZW5jb2Rl cjsKPiArCXN0cnVjdCBkcm1fZW5jb2RlcgkJZW5jb2RlcjsKPiAgCXN0cnVjdCBwbGF0Zm9ybV9k ZXZpY2UJCSpwZGV2Owo+ICAJc3RydWN0IGRybV9kZXZpY2UJCSpkcm1fZGV2Owo+ICAJc3RydWN0 IGV4eW5vc19kcm1fY3J0YwkJKmNydGM7Cj4gQEAgLTU0LDcgKzUzLDcgQEAgc3RydWN0IHZpZGlf Y29udGV4dCB7Cj4gIAlpbnQJCQkJcGlwZTsKPiAgfTsKPiAgCj4gLXN0YXRpYyBpbmxpbmUgc3Ry dWN0IHZpZGlfY29udGV4dCAqZW5jb2Rlcl90b192aWRpKHN0cnVjdCBleHlub3NfZHJtX2VuY29k ZXIgKmUpCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IHZpZGlfY29udGV4dCAqZW5jb2Rlcl90b192 aWRpKHN0cnVjdCBkcm1fZW5jb2RlciAqZSkKPiAgewo+ICAJcmV0dXJuIGNvbnRhaW5lcl9vZihl LCBzdHJ1Y3QgdmlkaV9jb250ZXh0LCBlbmNvZGVyKTsKPiAgfQo+IEBAIC0zNTgsNyArMzU3LDcg QEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqdmlkaV9iZXN0X2VuY29kZXIoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IHZpZGlfY29udGV4dCAqY3R4 ID0gY3R4X2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAo+IC0JcmV0dXJuICZjdHgtPmVu Y29kZXIuYmFzZTsKPiArCXJldHVybiAmY3R4LT5lbmNvZGVyOwo+ICB9Cj4gIAo+ICBzdGF0aWMg c3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzIHZpZGlfY29ubmVjdG9yX2hlbHBlcl9m dW5jcyA9IHsKPiBAQCAtMzY2LDEwICszNjUsOSBAQCBzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0 b3JfaGVscGVyX2Z1bmNzIHZpZGlfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKPiAgCS5iZXN0 X2VuY29kZXIgPSB2aWRpX2Jlc3RfZW5jb2RlciwKPiAgfTsKPiAgCj4gLXN0YXRpYyBpbnQgdmlk aV9jcmVhdGVfY29ubmVjdG9yKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4eW5vc19lbmNv ZGVyKQo+ICtzdGF0aWMgaW50IHZpZGlfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCj4gIHsKPiAtCXN0cnVjdCB2aWRpX2NvbnRleHQgKmN0eCA9IGVuY29kZXJf dG9fdmlkaShleHlub3NfZW5jb2Rlcik7Cj4gLQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIg PSAmZXh5bm9zX2VuY29kZXItPmJhc2U7Cj4gKwlzdHJ1Y3QgdmlkaV9jb250ZXh0ICpjdHggPSBl bmNvZGVyX3RvX3ZpZGkoZW5jb2Rlcik7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yID0gJmN0eC0+Y29ubmVjdG9yOwo+ICAJaW50IHJldDsKPiAgCj4gQEAgLTM4OSwxNSArMzg3 LDQ3IEBAIHN0YXRpYyBpbnQgdmlkaV9jcmVhdGVfY29ubmVjdG9yKHN0cnVjdCBleHlub3NfZHJt X2VuY29kZXIgKmV4eW5vc19lbmNvZGVyKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK3N0YXRp YyBib29sIGV4eW5vc192aWRpX21vZGVfZml4dXAoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy LAo+ICsJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLAo+ICsJCQkJIHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlKQo+ICt7Cj4gKwlyZXR1cm4gdHJ1 ZTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQgZXh5bm9zX3ZpZGlfbW9kZV9zZXQoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkgICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg Km1vZGUsCj4gKwkJCSAgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSkKPiArewo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBleHlub3NfdmlkaV9lbmFibGUoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIGV4eW5v c192aWRpX2Rpc2FibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gK30KPiAr Cj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGV4eW5vc192aWRpX2Vu Y29kZXJfaGVscGVyX2Z1bmNzID0gewo+ICsJLm1vZGVfZml4dXAgPSBleHlub3NfdmlkaV9tb2Rl X2ZpeHVwLAo+ICsJLm1vZGVfc2V0ID0gZXh5bm9zX3ZpZGlfbW9kZV9zZXQsCj4gKwkuZW5hYmxl ID0gZXh5bm9zX3ZpZGlfZW5hYmxlLAo+ICsJLmRpc2FibGUgPSBleHlub3NfdmlkaV9kaXNhYmxl LAo+ICt9Owo+ICsKPiArc3RhdGljIHN0cnVjdCBkcm1fZW5jb2Rlcl9mdW5jcyBleHlub3Nfdmlk aV9lbmNvZGVyX2Z1bmNzID0gewo+ICsJLmRlc3Ryb3kgPSBkcm1fZW5jb2Rlcl9jbGVhbnVwLAo+ ICt9Owo+ICsKPiAgc3RhdGljIGludCB2aWRpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIHsKPiAgCXN0cnVjdCB2aWRpX2NvbnRl eHQgKmN0eCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRy bV9kZXYgPSBkYXRhOwo+IC0Jc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2VuY29k ZXIgPSAmY3R4LT5lbmNvZGVyOwo+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmN0 eC0+ZW5jb2RlcjsKPiAgCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpleHlub3NfcGxhbmU7Cj4g IAllbnVtIGRybV9wbGFuZV90eXBlIHR5cGU7Cj4gIAl1bnNpZ25lZCBpbnQgenBvczsKPiAtCWlu dCByZXQ7Cj4gKwlpbnQgcGlwZSwgcmV0Owo+ICAKPiAgCXZpZGlfY3R4X2luaXRpYWxpemUoY3R4 LCBkcm1fZGV2KTsKPiAgCj4gQEAgLTQxOSwxNyArNDQ5LDI0IEBAIHN0YXRpYyBpbnQgdmlkaV9i aW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRh KQo+ICAJCXJldHVybiBQVFJfRVJSKGN0eC0+Y3J0Yyk7Cj4gIAl9Cj4gIAo+IC0JcmV0ID0gZXh5 bm9zX2RybV9lbmNvZGVyX2NyZWF0ZShkcm1fZGV2LCBleHlub3NfZW5jb2RlciwKPiAtCQkJCQlF WFlOT1NfRElTUExBWV9UWVBFX1ZJREkpOwo+IC0JaWYgKHJldCkgewo+IC0JCURSTV9FUlJPUigi ZmFpbGVkIHRvIGNyZWF0ZSBlbmNvZGVyXG4iKTsKPiAtCQlyZXR1cm4gcmV0Owo+IC0JfQo+ICsJ cGlwZSA9IGV4eW5vc19kcm1fY3J0Y19nZXRfcGlwZV9mcm9tX3R5cGUoZHJtX2RldiwKPiArCQkJ CQkJICBFWFlOT1NfRElTUExBWV9UWVBFX1ZJREkpOwo+ICsJaWYgKHBpcGUgPCAwKQo+ICsJCXJl dHVybiBwaXBlOwo+ICsKPiArCWVuY29kZXItPnBvc3NpYmxlX2NydGNzID0gMSA8PCBwaXBlOwo+ ICsKPiArCURSTV9ERUJVR19LTVMoInBvc3NpYmxlX2NydGNzID0gMHgleFxuIiwgZW5jb2Rlci0+ cG9zc2libGVfY3J0Y3MpOwo+ICsKPiArCWRybV9lbmNvZGVyX2luaXQoZHJtX2RldiwgZW5jb2Rl ciwgJmV4eW5vc192aWRpX2VuY29kZXJfZnVuY3MsCj4gKwkJCSBEUk1fTU9ERV9FTkNPREVSX1RN RFMpOwo+ICsKPiArCWRybV9lbmNvZGVyX2hlbHBlcl9hZGQoZW5jb2RlciwgJmV4eW5vc192aWRp X2VuY29kZXJfaGVscGVyX2Z1bmNzKTsKPiAgCj4gLQlyZXQgPSB2aWRpX2NyZWF0ZV9jb25uZWN0 b3IoZXh5bm9zX2VuY29kZXIpOwo+ICsJcmV0ID0gdmlkaV9jcmVhdGVfY29ubmVjdG9yKGVuY29k ZXIpOwo+ICAJaWYgKHJldCkgewo+ICAJCURSTV9FUlJPUigiZmFpbGVkIHRvIGNyZWF0ZSBjb25u ZWN0b3IgcmV0ID0gJWRcbiIsIHJldCk7Cj4gLQkJZHJtX2VuY29kZXJfY2xlYW51cCgmZXh5bm9z X2VuY29kZXItPmJhc2UpOwo+ICsJCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gIAkJ cmV0dXJuIHJldDsKPiAgCX0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+ IGluZGV4IDE0OGU0MmYuLjkzMmY3ZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf aGRtaS5jCj4gQEAgLTQ0LDcgKzQ0LDYgQEAKPiAgCj4gICNpbmNsdWRlICJleHlub3NfZHJtX2Ry di5oIgo+ICAjaW5jbHVkZSAiZXh5bm9zX2RybV9jcnRjLmgiCj4gLSNpbmNsdWRlICJleHlub3Nf ZHJtX2VuY29kZXIuaCIKPiAgI2luY2x1ZGUgImV4eW5vc19taXhlci5oIgo+ICAKPiAgI2luY2x1 ZGUgPGxpbnV4L2dwaW8uaD4KPiBAQCAtODgsNyArODcsNyBAQCBzdHJ1Y3QgaGRtaV9yZXNvdXJj ZXMgewo+ICB9Owo+ICAKPiAgc3RydWN0IGhkbWlfY29udGV4dCB7Cj4gLQlzdHJ1Y3QgZXh5bm9z X2RybV9lbmNvZGVyCWVuY29kZXI7Cj4gKwlzdHJ1Y3QgZHJtX2VuY29kZXIJCWVuY29kZXI7Cj4g IAlzdHJ1Y3QgZGV2aWNlCQkJKmRldjsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlCQkqZHJtX2RldjsK PiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yCQljb25uZWN0b3I7Cj4gQEAgLTExNiw3ICsxMTUsNyBA QCBzdHJ1Y3QgaGRtaV9jb250ZXh0IHsKPiAgCXN0cnVjdCByZWdtYXAJCQkqcG11cmVnOwo+ICB9 Owo+ICAKPiAtc3RhdGljIGlubGluZSBzdHJ1Y3QgaGRtaV9jb250ZXh0ICplbmNvZGVyX3RvX2hk bWkoc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZSkKPiArc3RhdGljIGlubGluZSBzdHJ1Y3Qg aGRtaV9jb250ZXh0ICplbmNvZGVyX3RvX2hkbWkoc3RydWN0IGRybV9lbmNvZGVyICplKQo+ICB7 Cj4gIAlyZXR1cm4gY29udGFpbmVyX29mKGUsIHN0cnVjdCBoZG1pX2NvbnRleHQsIGVuY29kZXIp Owo+ICB9Cj4gQEAgLTEwMzIsNyArMTAzMSw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXIg KmhkbWlfYmVzdF9lbmNvZGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIHsK PiAgCXN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhID0gY3R4X2Zyb21fY29ubmVjdG9yKGNvbm5l Y3Rvcik7Cj4gIAo+IC0JcmV0dXJuICZoZGF0YS0+ZW5jb2Rlci5iYXNlOwo+ICsJcmV0dXJuICZo ZGF0YS0+ZW5jb2RlcjsKPiAgfQo+ICAKPiAgc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hl bHBlcl9mdW5jcyBoZG1pX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4gQEAgLTEwNDEsOSAr MTA0MCw5IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgaGRtaV9j b25uZWN0b3JfaGVscGVyX2Z1bmNzID0gewo+ICAJLmJlc3RfZW5jb2RlciA9IGhkbWlfYmVzdF9l bmNvZGVyLAo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBoZG1pX2NyZWF0ZV9jb25uZWN0b3Ioc3Ry dWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2VuY29kZXIpCj4gK3N0YXRpYyBpbnQgaGRt aV9jcmVhdGVfY29ubmVjdG9yKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgewo+IC0J c3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEgPSBlbmNvZGVyX3RvX2hkbWkoZXh5bm9zX2VuY29k ZXIpOwo+ICsJc3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEgPSBlbmNvZGVyX3RvX2hkbWkoZW5j b2Rlcik7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmhkYXRhLT5jb25u ZWN0b3I7Cj4gIAlpbnQgcmV0Owo+ICAKPiBAQCAtMTA1OSwyOCArMTA1OCwzNSBAQCBzdGF0aWMg aW50IGhkbWlfY3JlYXRlX2Nvbm5lY3RvcihzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlu b3NfZW5jb2RlcikKPiAgCj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoY29ubmVjdG9yLCAm aGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzKTsKPiAgCWRybV9jb25uZWN0b3JfcmVnaXN0ZXIo Y29ubmVjdG9yKTsKPiAtCWRybV9tb2RlX2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0 b3IsICZleHlub3NfZW5jb2Rlci0+YmFzZSk7Cj4gKwlkcm1fbW9kZV9jb25uZWN0b3JfYXR0YWNo X2VuY29kZXIoY29ubmVjdG9yLCBlbmNvZGVyKTsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgaGRtaV9tb2RlX2ZpeHVwKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIg KmVuY29kZXIsCj4gLQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IC0JCQkJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gLQkJCQlzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSkKPiArc3RhdGljIGJvb2wgaGRtaV9tb2RlX2ZpeHVw KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICptb2RlLAo+ICsJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUpCj4gIHsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5k ZXY7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICAJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKm07Cj4gIAlpbnQgbW9kZV9vazsKPiAgCj4gLQlEUk1fREVCVUdfS01TKCIl c1xuIiwgX19GSUxFX18pOwo+IC0KPiAgCWRybV9tb2RlX3NldF9jcnRjaW5mbyhhZGp1c3RlZF9t b2RlLCAwKTsKPiAgCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmRldi0+bW9k ZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKPiArCQlpZiAoY29ubmVjdG9yLT5lbmNv ZGVyID09IGVuY29kZXIpCj4gKwkJCWJyZWFrOwo+ICsJfQo+ICsKPiArCWlmIChjb25uZWN0b3It PmVuY29kZXIgIT0gZW5jb2RlcikKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gIAltb2RlX29rID0g aGRtaV9tb2RlX3ZhbGlkKGNvbm5lY3RvciwgYWRqdXN0ZWRfbW9kZSk7Cj4gIAo+ICAJLyoganVz dCByZXR1cm4gaWYgdXNlciBkZXNpcmVkIG1vZGUgZXhpc3RzLiAqLwo+ICAJaWYgKG1vZGVfb2sg PT0gTU9ERV9PSykKPiAtCQlyZXR1cm47Cj4gKwkJcmV0dXJuIHRydWU7Cj4gIAo+ICAJLyoKPiAg CSAqIG90aGVyd2lzZSwgZmluZCB0aGUgbW9zdCBzdWl0YWJsZSBtb2RlIGFtb25nIG1vZGVzIGFu ZCBjaGFuZ2UgaXQKPiBAQCAtMTEwMCw2ICsxMTA2LDggQEAgc3RhdGljIHZvaWQgaGRtaV9tb2Rl X2ZpeHVwKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCWJyZWFrOwo+ ICAJCX0KPiAgCX0KPiArCj4gKwlyZXR1cm4gdHJ1ZTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQg aGRtaV9zZXRfYWNyKHUzMiBmcmVxLCB1OCAqYWNyKQo+IEBAIC0xNjk3LDIyICsxNzA1LDIzIEBA IHN0YXRpYyB2b2lkIGhkbWlfY29uZl9hcHBseShzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YSkK PiAgCWhkbWlfcmVnc19kdW1wKGhkYXRhLCAic3RhcnQiKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZv aWQgaGRtaV9tb2RlX3NldChzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyLAo+IC0J CQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiArc3RhdGljIHZvaWQgaGRtaV9tb2Rl X3NldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gKwkJCSAgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKm1vZGUsCj4gKwkJCSAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUpCj4gIHsKPiAgCXN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhID0gZW5jb2Rlcl90b19o ZG1pKGVuY29kZXIpOwo+IC0Jc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSBtb2RlOwo+ICsJ c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm0gPSBhZGp1c3RlZF9tb2RlOwo+ICAKPiAgCURSTV9E RUJVR19LTVMoInhyZXM9JWQsIHlyZXM9JWQsIHJlZnJlc2g9JWQsIGludGw9JXNcbiIsCj4gIAkJ bS0+aGRpc3BsYXksIG0tPnZkaXNwbGF5LAo+ICAJCW0tPnZyZWZyZXNoLCAobS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkgPwo+ICAJCSJJTlRFUkxBQ0VEIiA6ICJQUk9HUkVTU0lW RSIpOwo+ICAKPiAtCWRybV9tb2RlX2NvcHkoJmhkYXRhLT5jdXJyZW50X21vZGUsIG1vZGUpOwo+ ICsJZHJtX21vZGVfY29weSgmaGRhdGEtPmN1cnJlbnRfbW9kZSwgbSk7Cj4gIAloZGF0YS0+Y2Vh X3ZpZGVvX2lkID0gZHJtX21hdGNoX2NlYV9tb2RlKG1vZGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMg dm9pZCBoZG1pX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICplbmNvZGVyKQo+ICtz dGF0aWMgdm9pZCBoZG1pX2VuYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsK PiAgCXN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhID0gZW5jb2Rlcl90b19oZG1pKGVuY29kZXIp Owo+ICAJc3RydWN0IGhkbWlfcmVzb3VyY2VzICpyZXMgPSAmaGRhdGEtPnJlczsKPiBAQCAtMTcz OCwxMSArMTc0NywxMSBAQCBzdGF0aWMgdm9pZCBoZG1pX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2Ry bV9lbmNvZGVyICplbmNvZGVyKQo+ICAJaGRtaV9jb25mX2FwcGx5KGhkYXRhKTsKPiAgfQo+ICAK PiAtc3RhdGljIHZvaWQgaGRtaV9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmVu Y29kZXIpCj4gK3N0YXRpYyB2b2lkIGhkbWlfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIpCj4gIHsKPiAgCXN0cnVjdCBoZG1pX2NvbnRleHQgKmhkYXRhID0gZW5jb2Rlcl90b19o ZG1pKGVuY29kZXIpOwo+ICAJc3RydWN0IGhkbWlfcmVzb3VyY2VzICpyZXMgPSAmaGRhdGEtPnJl czsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGhkYXRhLT5lbmNvZGVyLmJhc2UuY3J0YzsK PiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGVuY29kZXItPmNydGM7Cj4gIAljb25zdCBzdHJ1 Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzICpmdW5jcyA9IE5VTEw7Cj4gIAo+ICAJaWYgKCFoZGF0 YS0+cG93ZXJlZCkKPiBAQCAtMTc4MywxMyArMTc5MiwxNyBAQCBzdGF0aWMgdm9pZCBoZG1pX2Rp c2FibGUoc3RydWN0IGV4eW5vc19kcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgCWhkYXRhLT5wb3dl cmVkID0gZmFsc2U7Cj4gIH0KPiAgCj4gLXN0YXRpYyBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVy X29wcyBoZG1pX2VuY29kZXJfb3BzID0gewo+ICtzdGF0aWMgc3RydWN0IGRybV9lbmNvZGVyX2hl bHBlcl9mdW5jcyBleHlub3NfaGRtaV9lbmNvZGVyX2hlbHBlcl9mdW5jcyA9IHsKPiAgCS5tb2Rl X2ZpeHVwCT0gaGRtaV9tb2RlX2ZpeHVwLAo+ICAJLm1vZGVfc2V0CT0gaGRtaV9tb2RlX3NldCwK PiAgCS5lbmFibGUJCT0gaGRtaV9lbmFibGUsCj4gIAkuZGlzYWJsZQk9IGhkbWlfZGlzYWJsZSwK PiAgfTsKPiAgCj4gK3N0YXRpYyBzdHJ1Y3QgZHJtX2VuY29kZXJfZnVuY3MgZXh5bm9zX2hkbWlf ZW5jb2Rlcl9mdW5jcyA9IHsKPiArCS5kZXN0cm95ID0gZHJtX2VuY29kZXJfY2xlYW51cCwKPiAr fTsKPiArCj4gIHN0YXRpYyB2b2lkIGhkbWlfaG90cGx1Z193b3JrX2Z1bmMoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQo+ICB7Cj4gIAlzdHJ1Y3QgaGRtaV9jb250ZXh0ICpoZGF0YTsKPiBAQCAt MTkxNywyMiArMTkzMCwyOSBAQCBzdGF0aWMgaW50IGhkbWlfYmluZChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0IGRy bV9kZXZpY2UgKmRybV9kZXYgPSBkYXRhOwo+ICAJc3RydWN0IGhkbWlfY29udGV4dCAqaGRhdGEg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiAtCXN0cnVjdCBleHlub3NfZHJtX2VuY29kZXIgKmV4 eW5vc19lbmNvZGVyID0gJmhkYXRhLT5lbmNvZGVyOwo+IC0JaW50IHJldDsKPiArCXN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlciA9ICZoZGF0YS0+ZW5jb2RlcjsKPiArCWludCByZXQsIHBpcGU7 Cj4gIAo+ICAJaGRhdGEtPmRybV9kZXYgPSBkcm1fZGV2Owo+ICAKPiAtCXJldCA9IGV4eW5vc19k cm1fZW5jb2Rlcl9jcmVhdGUoZHJtX2RldiwgZXh5bm9zX2VuY29kZXIsCj4gLQkJCQkJRVhZTk9T X0RJU1BMQVlfVFlQRV9IRE1JKTsKPiAtCWlmIChyZXQpIHsKPiAtCQlEUk1fRVJST1IoImZhaWxl ZCB0byBjcmVhdGUgZW5jb2RlclxuIik7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiArCXBpcGUg PSBleHlub3NfZHJtX2NydGNfZ2V0X3BpcGVfZnJvbV90eXBlKGRybV9kZXYsCj4gKwkJCQkJCSAg RVhZTk9TX0RJU1BMQVlfVFlQRV9IRE1JKTsKPiArCWlmIChwaXBlIDwgMCkKPiArCQlyZXR1cm4g cGlwZTsKPiArCj4gKwllbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyA9IDEgPDwgcGlwZTsKPiArCj4g KwlEUk1fREVCVUdfS01TKCJwb3NzaWJsZV9jcnRjcyA9IDB4JXhcbiIsIGVuY29kZXItPnBvc3Np YmxlX2NydGNzKTsKPiArCj4gKwlkcm1fZW5jb2Rlcl9pbml0KGRybV9kZXYsIGVuY29kZXIsICZl eHlub3NfaGRtaV9lbmNvZGVyX2Z1bmNzLAo+ICsJCQkgRFJNX01PREVfRU5DT0RFUl9UTURTKTsK PiArCj4gKwlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKGVuY29kZXIsICZleHlub3NfaGRtaV9lbmNv ZGVyX2hlbHBlcl9mdW5jcyk7Cj4gIAo+IC0JcmV0ID0gaGRtaV9jcmVhdGVfY29ubmVjdG9yKGV4 eW5vc19lbmNvZGVyKTsKPiArCXJldCA9IGhkbWlfY3JlYXRlX2Nvbm5lY3RvcihlbmNvZGVyKTsK PiAgCWlmIChyZXQpIHsKPiAgCQlEUk1fRVJST1IoImZhaWxlZCB0byBjcmVhdGUgY29ubmVjdG9y IHJldCA9ICVkXG4iLCByZXQpOwo+IC0JCWRybV9lbmNvZGVyX2NsZWFudXAoJmV4eW5vc19lbmNv ZGVyLT5iYXNlKTsKPiArCQlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29kZXIpOwo+ICAJCXJldHVy biByZXQ7Cj4gIAl9Cj4gIAo+IEBAIC0xOTg1LDcgKzIwMDUsNiBAQCBzdGF0aWMgaW50IGhkbWlf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQlyZXR1cm4gLUVOT0RFVjsK PiAgCj4gIAloZGF0YS0+ZHJ2X2RhdGEgPSBtYXRjaC0+ZGF0YTsKPiAtCWhkYXRhLT5lbmNvZGVy Lm9wcyA9ICZoZG1pX2VuY29kZXJfb3BzOwo+ICAKPiAgCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBk ZXYsIGhkYXRhKTsKPiAgCj4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo=