From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Kocialkowski Subject: Re: [PATCH v2 1/2] drm/vc4: Use common helpers for debugfs setup by the driver components. Date: Tue, 02 Apr 2019 16:38:36 +0200 Message-ID: <249eaf7b385054a5d56302562bc3d6420e3fec4e.camel@bootlin.com> References: <20190401183559.3823-1-eric@anholt.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by gabe.freedesktop.org (Postfix) with ESMTPS id B5DE56E7D9 for ; Tue, 2 Apr 2019 14:38:40 +0000 (UTC) In-Reply-To: <20190401183559.3823-1-eric@anholt.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Eric Anholt , dri-devel@lists.freedesktop.org Cc: Maxime Ripard , linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org SGksCgpMZSBsdW5kaSAwMSBhdnJpbCAyMDE5IMOgIDExOjM1IC0wNzAwLCBFcmljIEFuaG9sdCBh IMOpY3JpdCA6Cj4gVGhlIGdsb2JhbCBsaXN0IG9mIGFsbCBkZWJ1Z2ZzIGVudHJpZXMgZm9yIHRo ZSBkcml2ZXIgd2FzIHBhaW5mdWw6IHRoZQo+IGxpc3QgY291bGRuJ3Qgc2VlIGludG8gdGhlIGNv bXBvbmVudHMnIHN0cnVjdHMsIHNvIGVhY2ggY29tcG9uZW50IGhhZAo+IGl0cyBvd24gZGVidWdz IHNob3cgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29tcG9uZW50LCB0aGVuIGZpbmQgdGhlCj4gcmVn c2V0IGFuZCBkdW1wIGl0LiAgVGhlIGNvbXBvbmVudHMgYWxzbyBoYWQgdG8gYmUgY2FyZWZ1bCB0 byBjaGVjawo+IHRoYXQgdGhleSB3ZXJlIGFjdHVhbGx5IHJlZ2lzdGVyZWQgaW4gdmM0IGJlZm9y ZSBkZXJlZmVyZW5jaW5nCj4gdGhlbXNlbHZlcywgaW4gY2FzZSB0aGV5IHdlcmVuJ3QgcHJvYmVk IG9uIGEgcGFydGljdWxhciBwbGF0Zm9ybS4KPiBUaGV5IHJvdXRpbmVseSBmYWlsZWQgYXQgdGhh dC4KPiAKPiBJbnN0ZWFkLCB3ZSBjYW4gaGF2ZSB0aGUgY29tcG9uZW50cyBhZGQgdGhlaXIgZGVi dWdmcyBjYWxsYmFja3MgdG8gYQo+IGxpdHRsZSBsaXN0IGluIHZjNCB0byBiZSByZWdpc3RlcmVk IGF0IGRybV9kZXZfcmVnaXN0ZXIoKSB0aW1lLCB3aGljaAo+IGdldHMgdmM0X2RlYnVnZnMuYyBv dXQgb2YgdGhlIGJ1c2luZXNzIG9mIGtub3dpbmcgdGhlIHdob2xlIGxpc3Qgb2YKPiBjb21wb25l bnRzLgo+IAo+IFRoYW5rcyB0byB0aGlzIGNoYW5nZSwgZHNpMCAoaWYgaXQgZXhpc3RlZCkgd291 bGQgcmVnaXN0ZXIgaXRzIG5vZGUuCj4gCj4gdjI6IFJlYmFzZSBvbiBodnNfdW5kZXJydW4gYWRk aXRpb24uCgpHbGFkIHRoYXQgd2UgaGF2ZSBhIHVuaWZpZWQgYW5kIHJlbGF0aXZlbHkgcGFpbmxl c3MgYXBwcm9hY2ggZm9yCmRlYnVnZnMgd2l0aCB0aGlzIGNoYW5nZS4gTG9va3MgZ29vZCB0byBt ZSBzbyB0aGlzIGlzOgoKUmV2aWV3ZWQtYnk6IFBhdWwgS29jaWFsa293c2tpIDxwYXVsLmtvY2lh bGtvd3NraUBib290bGluLmNvbT4KCkNoZWVycywKClBhdWwxYAoKPiBTaWduZWQtb2ZmLWJ5OiBF cmljIEFuaG9sdCA8ZXJpY0BhbmhvbHQubmV0Pgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmM0 L3ZjNF9iby5jICAgICAgfCAgNiArLS0KPiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5j ICAgIHwgMzMgKysrLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kZWJ1Z2Zz LmMgfCA4MiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS92YzQvdmM0X2RwaS5jICAgICB8IDIwICstLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQv dmM0X2Rydi5jICAgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmggICAg IHwgNDEgKysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYyAg ICAgfCAyNCArKy0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaGRtaS5jICAgIHwg IDYgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2h2cy5jICAgICB8IDIwICsrLS0tLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3R4cC5jICAgICB8IDIwICstLS0tLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS92YzQvdmM0X3YzZC5jICAgICB8IDE5ICsrLS0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfdmVjLmMgICAgIHwgMjAgKy0tLS0tLS0KPiAgMTIgZmlsZXMgY2hhbmdl ZCwgMTI2IGluc2VydGlvbnMoKyksIDE2NiBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Jv LmMKPiBpbmRleCAyNzZlYTljNTUwYzAuLjg4ZWJkNjgxZDdlYiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdmM0L3ZjNF9iby5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRf Ym8uYwo+IEBAIC02Niw4ICs2Niw3IEBAIHN0YXRpYyB2b2lkIHZjNF9ib19zdGF0c19wcmludChz dHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB2YzRfZGV2ICp2YzQpCj4gIAltdXRleF91bmxv Y2soJnZjNC0+cHVyZ2VhYmxlLmxvY2spOwo+ICB9Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0RFQlVH X0ZTCj4gLWludCB2YzRfYm9fc3RhdHNfZGVidWdmcyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KnVudXNlZCkKPiArc3RhdGljIGludCB2YzRfYm9fc3RhdHNfZGVidWdmcyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgewo+ICAJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUg PSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gQEAgLTc4LDcgKzc3LDYgQEAgaW50IHZjNF9i b19zdGF0c19kZWJ1Z2ZzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICAKPiAg CXJldHVybiAwOwo+ICB9Cj4gLSNlbmRpZgo+ICAKPiAgLyogVGFrZXMgb3duZXJzaGlwIG9mICpu YW1lIGFuZCByZXR1cm5zIHRoZSBhcHByb3ByaWF0ZSBzbG90IGZvciBpdCBpbgo+ICAgKiB0aGUg Ym9fbGFiZWxzW10gYXJyYXksIGV4dGVuZGluZyBpdCBhcyBuZWNlc3NhcnkuCj4gQEAgLTEwMDUs NiArMTAwMyw4IEBAIGludCB2YzRfYm9fY2FjaGVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAKPiAgCW11dGV4X2luaXQoJnZjNC0+Ym9fbG9jayk7Cj4gIAo+ICsJdmM0X2RlYnVnZnNf YWRkX2ZpbGUoZGV2LCAiYm9fc3RhdHMiLCB2YzRfYm9fc3RhdHNfZGVidWdmcywgTlVMTCk7Cj4g Kwo+ICAJSU5JVF9MSVNUX0hFQUQoJnZjNC0+Ym9fY2FjaGUudGltZV9saXN0KTsKPiAgCj4gIAlJ TklUX1dPUksoJnZjNC0+Ym9fY2FjaGUudGltZV93b3JrLCB2YzRfYm9fY2FjaGVfdGltZV93b3Jr KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jIGIvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jCj4gaW5kZXggNmU1NjQ3ODNiYTk0Li5iMjg5MWNhMGU3 ZjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfY3J0Yy5jCj4gQEAgLTg0LDMzICs4NCw2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZGVidWdmc19yZWczMiBjcnRjX3JlZ3NbXSA9IHsKPiAgCVZDNF9SRUcz MihQVl9IQUNUX0FDVCksCj4gIH07Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gLWlu dCB2YzRfY3J0Y19kZWJ1Z2ZzX3JlZ3Moc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp Cj4gLXsKPiAtCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5mb19u b2RlICopbS0+cHJpdmF0ZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5v ci0+ZGV2Owo+IC0JaW50IGNydGNfaW5kZXggPSAodWludHB0cl90KW5vZGUtPmluZm9fZW50LT5k YXRhOwo+IC0Jc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsK PiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiAtCXN0cnVjdCB2YzRfY3J0YyAqdmM0X2NydGM7 Cj4gLQlpbnQgaTsKPiAtCj4gLQlpID0gMDsKPiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoY3J0Yywg JmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKSB7Cj4gLQkJaWYgKGkgPT0gY3J0Y19p bmRleCkKPiAtCQkJYnJlYWs7Cj4gLQkJaSsrOwo+IC0JfQo+IC0JaWYgKCFjcnRjKQo+IC0JCXJl dHVybiAwOwo+IC0JdmM0X2NydGMgPSB0b192YzRfY3J0YyhjcnRjKTsKPiAtCj4gLQlkcm1fcHJp bnRfcmVnc2V0MzIoJnAsICZ2YzRfY3J0Yy0+cmVnc2V0KTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAt fQo+IC0jZW5kaWYKPiAtCj4gIGJvb2wgdmM0X2NydGNfZ2V0X3NjYW5vdXRwb3Moc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IGNydGNfaWQsCj4gIAkJCSAgICAgYm9vbCBpbl92 YmxhbmtfaXJxLCBpbnQgKnZwb3MsIGludCAqaHBvcywKPiAgCQkJICAgICBrdGltZV90ICpzdGlt ZSwga3RpbWVfdCAqZXRpbWUsCj4gQEAgLTEwNzAsNiArMTA0Myw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIHZjNF9jcnRjX2hlbHBlcl9mdW5jcyA9IHsKPiAg Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdmM0X2NydGNfZGF0YSBwdjBfZGF0YSA9IHsKPiAgCS5o dnNfY2hhbm5lbCA9IDAsCj4gKwkuZGVidWdmc19uYW1lID0gImNydGMwX3JlZ3MiLAo+ICAJLmVu Y29kZXJfdHlwZXMgPSB7Cj4gIAkJW1BWX0NPTlRST0xfQ0xLX1NFTEVDVF9EU0ldID0gVkM0X0VO Q09ERVJfVFlQRV9EU0kwLAo+ICAJCVtQVl9DT05UUk9MX0NMS19TRUxFQ1RfRFBJX1NNSV9IRE1J XSA9IFZDNF9FTkNPREVSX1RZUEVfRFBJLAo+IEBAIC0xMDc4LDYgKzEwNTIsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IHZjNF9jcnRjX2RhdGEgcHYwX2RhdGEgPSB7Cj4gIAo+ICBzdGF0aWMgY29u c3Qgc3RydWN0IHZjNF9jcnRjX2RhdGEgcHYxX2RhdGEgPSB7Cj4gIAkuaHZzX2NoYW5uZWwgPSAy LAo+ICsJLmRlYnVnZnNfbmFtZSA9ICJjcnRjMV9yZWdzIiwKPiAgCS5lbmNvZGVyX3R5cGVzID0g ewo+ICAJCVtQVl9DT05UUk9MX0NMS19TRUxFQ1RfRFNJXSA9IFZDNF9FTkNPREVSX1RZUEVfRFNJ MSwKPiAgCQlbUFZfQ09OVFJPTF9DTEtfU0VMRUNUX0RQSV9TTUlfSERNSV0gPSBWQzRfRU5DT0RF Ul9UWVBFX1NNSSwKPiBAQCAtMTA4Niw2ICsxMDYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2 YzRfY3J0Y19kYXRhIHB2MV9kYXRhID0gewo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB2YzRf Y3J0Y19kYXRhIHB2Ml9kYXRhID0gewo+ICAJLmh2c19jaGFubmVsID0gMSwKPiArCS5kZWJ1Z2Zz X25hbWUgPSAiY3J0YzJfcmVncyIsCj4gIAkuZW5jb2Rlcl90eXBlcyA9IHsKPiAgCQlbUFZfQ09O VFJPTF9DTEtfU0VMRUNUX0RQSV9TTUlfSERNSV0gPSBWQzRfRU5DT0RFUl9UWVBFX0hETUksCj4g IAkJW1BWX0NPTlRST0xfQ0xLX1NFTEVDVF9WRUNdID0gVkM0X0VOQ09ERVJfVFlQRV9WRUMsCj4g QEAgLTEyNDcsNiArMTIyMyw5IEBAIHN0YXRpYyBpbnQgdmM0X2NydGNfYmluZChzdHJ1Y3QgZGV2 aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCj4gIAlwbGF0 Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCB2YzRfY3J0Yyk7Cj4gIAo+ICsJdmM0X2RlYnVnZnNfYWRk X3JlZ3NldDMyKGRybSwgdmM0X2NydGMtPmRhdGEtPmRlYnVnZnNfbmFtZSwKPiArCQkJCSAmdmM0 X2NydGMtPnJlZ3NldCk7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBlcnJfZGVzdHJveV9wbGFu ZXM6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RlYnVnZnMuYyBiL2Ry aXZlcnMvZ3B1L2RybS92YzQvdmM0X2RlYnVnZnMuYwo+IGluZGV4IDU5Y2RhZDg5Zjg0NC4uNjlk Zjg0YmRmOTA0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RlYnVnZnMu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RlYnVnZnMuYwo+IEBAIC0xNSwyOCAr MTUsMjAgQEAKPiAgI2luY2x1ZGUgInZjNF9kcnYuaCIKPiAgI2luY2x1ZGUgInZjNF9yZWdzLmgi Cj4gIAo+IC1zdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pbmZvX2xpc3QgdmM0X2RlYnVnZnNfbGlz dFtdID0gewo+IC0JeyJib19zdGF0cyIsIHZjNF9ib19zdGF0c19kZWJ1Z2ZzLCAwfSwKPiAtCXsi ZHBpX3JlZ3MiLCB2YzRfZHBpX2RlYnVnZnNfcmVncywgMH0sCj4gLQl7ImRzaTFfcmVncyIsIHZj NF9kc2lfZGVidWdmc19yZWdzLCAwLCAodm9pZCAqKSh1aW50cHRyX3QpMX0sCj4gLQl7ImhkbWlf cmVncyIsIHZjNF9oZG1pX2RlYnVnZnNfcmVncywgMH0sCj4gLQl7InZlY19yZWdzIiwgdmM0X3Zl Y19kZWJ1Z2ZzX3JlZ3MsIDB9LAo+IC0JeyJ0eHBfcmVncyIsIHZjNF90eHBfZGVidWdmc19yZWdz LCAwfSwKPiAtCXsiaHZzX3JlZ3MiLCB2YzRfaHZzX2RlYnVnZnNfcmVncywgMH0sCj4gLQl7Imh2 c191bmRlcnJ1biIsICB2YzRfaHZzX2RlYnVnZnNfdW5kZXJydW4sIDB9LAo+IC0JeyJjcnRjMF9y ZWdzIiwgdmM0X2NydGNfZGVidWdmc19yZWdzLCAwLCAodm9pZCAqKSh1aW50cHRyX3QpMH0sCj4g LQl7ImNydGMxX3JlZ3MiLCB2YzRfY3J0Y19kZWJ1Z2ZzX3JlZ3MsIDAsICh2b2lkICopKHVpbnRw dHJfdCkxfSwKPiAtCXsiY3J0YzJfcmVncyIsIHZjNF9jcnRjX2RlYnVnZnNfcmVncywgMCwgKHZv aWQgKikodWludHB0cl90KTJ9LAo+IC0JeyJ2M2RfaWRlbnQiLCB2YzRfdjNkX2RlYnVnZnNfaWRl bnQsIDB9LAo+IC0JeyJ2M2RfcmVncyIsIHZjNF92M2RfZGVidWdmc19yZWdzLCAwfSwKPiArc3Ry dWN0IHZjNF9kZWJ1Z2ZzX2luZm9fZW50cnkgewo+ICsJc3RydWN0IGxpc3RfaGVhZCBsaW5rOwo+ ICsJc3RydWN0IGRybV9pbmZvX2xpc3QgaW5mbzsKPiAgfTsKPiAgCj4gLSNkZWZpbmUgVkM0X0RF QlVHRlNfRU5UUklFUyBBUlJBWV9TSVpFKHZjNF9kZWJ1Z2ZzX2xpc3QpCj4gLQo+ICsvKioKPiAr ICogQ2FsbGVkIGF0IGRybV9kZXZfcmVnaXN0ZXIoKSB0aW1lIG9uIGVhY2ggb2YgdGhlIG1pbm9y cyByZWdpc3RlcmVkCj4gKyAqIGJ5IHRoZSBEUk0gZGV2aWNlLCB0byBhdHRhY2ggdGhlIGRlYnVn ZnMgZmlsZXMuCj4gKyAqLwo+ICBpbnQKPiAgdmM0X2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHJtX21p bm9yICptaW5vcikKPiAgewo+ICAJc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9kZXYobWlu b3ItPmRldik7Cj4gKwlzdHJ1Y3QgdmM0X2RlYnVnZnNfaW5mb19lbnRyeSAqZW50cnk7Cj4gIAlz dHJ1Y3QgZGVudHJ5ICpkZW50cnk7Cj4gIAo+ICAJZGVudHJ5ID0gZGVidWdmc19jcmVhdGVfYm9v bCgiaHZzX2xvYWRfdHJhY2tlciIsIFNfSVJVR08gfCBTX0lXVVNSLAo+IEBAIC00NSw2ICszNyw2 MCBAQCB2YzRfZGVidWdmc19pbml0KHN0cnVjdCBkcm1fbWlub3IgKm1pbm9yKQo+ICAJaWYgKCFk ZW50cnkpCj4gIAkJcmV0dXJuIC1FTk9NRU07Cj4gIAo+IC0JcmV0dXJuIGRybV9kZWJ1Z2ZzX2Ny ZWF0ZV9maWxlcyh2YzRfZGVidWdmc19saXN0LCBWQzRfREVCVUdGU19FTlRSSUVTLAo+IC0JCQkJ CW1pbm9yLT5kZWJ1Z2ZzX3Jvb3QsIG1pbm9yKTsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkoZW50 cnksICZ2YzQtPmRlYnVnZnNfbGlzdCwgbGluaykgewo+ICsJCWludCByZXQgPSBkcm1fZGVidWdm c19jcmVhdGVfZmlsZXMoJmVudHJ5LT5pbmZvLCAxLAo+ICsJCQkJCQkgICBtaW5vci0+ZGVidWdm c19yb290LCBtaW5vcik7Cj4gKwo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK2ludCB2YzRfZGVidWdmc19yZWdzZXQzMihz dHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiArewo+ICsJc3RydWN0IGRybV9pbmZv X25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwo+ICsJc3Ry dWN0IGRlYnVnZnNfcmVnc2V0MzIgKnJlZ3NldCA9IG5vZGUtPmluZm9fZW50LT5kYXRhOwo+ICsJ c3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKPiArCj4gKwlk cm1fcHJpbnRfcmVnc2V0MzIoJnAsIHJlZ3NldCk7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiAr Cj4gKy8qKgo+ICsgKiBSZWdpc3RlcnMgYSBkZWJ1Z2ZzIGZpbGUgd2l0aCBhIGNhbGxiYWNrIGZ1 bmN0aW9uIGZvciBhIHZjNCBjb21wb25lbnQuCj4gKyAqCj4gKyAqIFRoaXMgaXMgbGlrZSBkcm1f ZGVidWdmc19jcmVhdGVfZmlsZXMoKSwgYnV0IHRoYXQgY2FuIG9ubHkgYmUKPiArICogY2FsbGVk IGEgZ2l2ZW4gRFJNIG1pbm9yLCB3aGlsZSB0aGUgdmFyaW91cyBWQzQgY29tcG9uZW50cyB3YW50 IHRvCj4gKyAqIHJlZ2lzdGVyIHRoZWlyIGRlYnVnZnMgZmlsZXMgZHVyaW5nIHRoZSBjb21wb25l bnQgYmluZCBwcm9jZXNzLiAgV2UKPiArICogdHJhY2sgdGhlIHJlcXVlc3QgYW5kIGRlbGF5IGl0 IHRvIGJlIGNhbGxlZCBvbiBlYWNoIG1pbm9yIGR1cmluZwo+ICsgKiB2YzRfZGVidWdmc19pbml0 KCkuCj4gKyAqLwo+ICt2b2lkIHZjNF9kZWJ1Z2ZzX2FkZF9maWxlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gKwkJCSAgY29uc3QgY2hhciAqbmFtZSwKPiArCQkJICBpbnQgKCpzaG93KShzdHJ1 Y3Qgc2VxX2ZpbGUqLCB2b2lkKiksCj4gKwkJCSAgdm9pZCAqZGF0YSkKPiArewo+ICsJc3RydWN0 IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9kZXYoZGV2KTsKPiArCj4gKwlzdHJ1Y3QgdmM0X2RlYnVn ZnNfaW5mb19lbnRyeSAqZW50cnkgPQo+ICsJCWRldm1fa3phbGxvYyhkZXYtPmRldiwgc2l6ZW9m KCplbnRyeSksIEdGUF9LRVJORUwpOwo+ICsKPiArCWlmICghZW50cnkpCj4gKwkJcmV0dXJuOwo+ ICsKPiArCWVudHJ5LT5pbmZvLm5hbWUgPSBuYW1lOwo+ICsJZW50cnktPmluZm8uc2hvdyA9IHNo b3c7Cj4gKwllbnRyeS0+aW5mby5kYXRhID0gZGF0YTsKPiArCj4gKwlsaXN0X2FkZCgmZW50cnkt PmxpbmssICZ2YzQtPmRlYnVnZnNfbGlzdCk7Cj4gK30KPiArCj4gK3ZvaWQgdmM0X2RlYnVnZnNf YWRkX3JlZ3NldDMyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gKwkJCSAgICAgIGNvbnN0IGNo YXIgKm5hbWUsCj4gKwkJCSAgICAgIHN0cnVjdCBkZWJ1Z2ZzX3JlZ3NldDMyICpyZWdzZXQpCj4g K3sKPiArCXZjNF9kZWJ1Z2ZzX2FkZF9maWxlKGRybSwgbmFtZSwgdmM0X2RlYnVnZnNfcmVnc2V0 MzIsIHJlZ3NldCk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRf ZHBpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcGkuYwo+IGluZGV4IDhiZTIyNjRmNDk2 YS4uMzRmOTBjYThmNDc5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rw aS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHBpLmMKPiBAQCAtMTI1LDI0ICsx MjUsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgZHBpX3JlZ3NbXSA9IHsK PiAgCVZDNF9SRUczMihEUElfSUQpLAo+ICB9Owo+ICAKPiAtI2lmZGVmIENPTkZJR19ERUJVR19G Uwo+IC1pbnQgdmM0X2RwaV9kZWJ1Z2ZzX3JlZ3Moc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpCj4gLXsKPiAtCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1f aW5mb19ub2RlICopbS0+cHJpdmF0ZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2Rl LT5taW5vci0+ZGV2Owo+IC0Jc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3ZjNF9kZXYoZGV2KTsK PiAtCXN0cnVjdCB2YzRfZHBpICpkcGkgPSB2YzQtPmRwaTsKPiAtCXN0cnVjdCBkcm1fcHJpbnRl ciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gLQo+IC0JaWYgKCFkcGkpCj4gLQkJcmV0 dXJuIDA7Cj4gLQo+IC0JZHJtX3ByaW50X3JlZ3NldDMyKCZwLCAmZHBpLT5yZWdzZXQpOwo+IC0K PiAtCXJldHVybiAwOwo+IC19Cj4gLSNlbmRpZgo+IC0KPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBk cm1fZW5jb2Rlcl9mdW5jcyB2YzRfZHBpX2VuY29kZXJfZnVuY3MgPSB7Cj4gIAkuZGVzdHJveSA9 IGRybV9lbmNvZGVyX2NsZWFudXAsCj4gIH07Cj4gQEAgLTM0OSw2ICszMzEsOCBAQCBzdGF0aWMg aW50IHZjNF9kcGlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rl ciwgdm9pZCAqZGF0YSkKPiAgCj4gIAl2YzQtPmRwaSA9IGRwaTsKPiAgCj4gKwl2YzRfZGVidWdm c19hZGRfcmVnc2V0MzIoZHJtLCAiZHBpX3JlZ3MiLCAmZHBpLT5yZWdzZXQpOwo+ICsKPiAgCXJl dHVybiAwOwo+ICAKPiAgZXJyX2Rlc3Ryb3lfZW5jb2RlcjoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3ZjNC92YzRfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuYwo+ IGluZGV4IGYyZDBmYjNhYTcyOS4uM2Q2ZmNjZWE1MDgwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2 LmMKPiBAQCAtMjYyLDYgKzI2Miw3IEBAIHN0YXRpYyBpbnQgdmM0X2RybV9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldikKPiAgCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIGRybSk7Cj4gIAl2YzQt PmRldiA9IGRybTsKPiAgCWRybS0+ZGV2X3ByaXZhdGUgPSB2YzQ7Cj4gKwlJTklUX0xJU1RfSEVB RCgmdmM0LT5kZWJ1Z2ZzX2xpc3QpOwo+ICAKPiAgCXJldCA9IHZjNF9ib19jYWNoZV9pbml0KGRy bSk7Cj4gIAlpZiAocmV0KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9k cnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2Rydi5oCj4gaW5kZXggZjZjOWRlNzVkNDY1 Li5iZTg1NjU2MDI0ZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcnYuaAo+IEBAIC0yMTAsNyArMjEw LDEyIEBAIHN0cnVjdCB2YzRfZGV2IHsKPiAgCj4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfbG9jayBj dG1fc3RhdGVfbG9jazsKPiAgCXN0cnVjdCBkcm1fcHJpdmF0ZV9vYmogY3RtX21hbmFnZXI7Cj4g LQlzdHJ1Y3QgZHJtX3ByaXZhdGVfb2JqIGxvYWRfdHJhY2tlcjsKPiArIAlzdHJ1Y3QgZHJtX3By aXZhdGVfb2JqIGxvYWRfdHJhY2tlcjsKPiArCj4gKwkvKiBMaXN0IG9mIHZjNF9kZWJ1Z2ZzX2lu Zm9fZW50cnkgZm9yIGFkZGluZyB0byBkZWJ1Z2ZzIG9uY2UKPiArCSAqIHRoZSBtaW5vciBpcyBh dmFpbGFibGUgKGFmdGVyIGRybV9kZXZfcmVnaXN0ZXIoKSkuCj4gKwkgKi8KPiArCXN0cnVjdCBs aXN0X2hlYWQgZGVidWdmc19saXN0Owo+ICB9Owo+ICAKPiAgc3RhdGljIGlubGluZSBzdHJ1Y3Qg dmM0X2RldiAqCj4gQEAgLTQyOSw2ICs0MzQsNyBAQCBzdHJ1Y3QgdmM0X2NydGNfZGF0YSB7Cj4g IAlpbnQgaHZzX2NoYW5uZWw7Cj4gIAo+ICAJZW51bSB2YzRfZW5jb2Rlcl90eXBlIGVuY29kZXJf dHlwZXNbNF07Cj4gKwljb25zdCBjaGFyICpkZWJ1Z2ZzX25hbWU7Cj4gIH07Cj4gIAo+ICBzdHJ1 Y3QgdmM0X2NydGMgewo+IEBAIC03MTUsNyArNzIxLDYgQEAgc3RydWN0IGRybV9nZW1fb2JqZWN0 ICp2YzRfcHJpbWVfaW1wb3J0X3NnX3RhYmxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIHZv aWQgKnZjNF9wcmltZV92bWFwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKTsKPiAgaW50IHZj NF9ib19jYWNoZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICB2b2lkIHZjNF9ib19j YWNoZV9kZXN0cm95KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC1pbnQgdmM0X2JvX3N0YXRz X2RlYnVnZnMoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICphcmcpOwo+ICBpbnQgdmM0X2JvX2lu Y191c2VjbnQoc3RydWN0IHZjNF9ibyAqYm8pOwo+ICB2b2lkIHZjNF9ib19kZWNfdXNlY250KHN0 cnVjdCB2YzRfYm8gKmJvKTsKPiAgdm9pZCB2YzRfYm9fYWRkX3RvX3B1cmdlYWJsZV9wb29sKHN0 cnVjdCB2YzRfYm8gKmJvKTsKPiBAQCAtNzIzLDcgKzcyOCw2IEBAIHZvaWQgdmM0X2JvX3JlbW92 ZV9mcm9tX3B1cmdlYWJsZV9wb29sKHN0cnVjdCB2YzRfYm8gKmJvKTsKPiAgCj4gIC8qIHZjNF9j cnRjLmMgKi8KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdmM0X2NydGNfZHJpdmVy Owo+IC1pbnQgdmM0X2NydGNfZGVidWdmc19yZWdzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAq YXJnKTsKPiAgYm9vbCB2YzRfY3J0Y19nZXRfc2Nhbm91dHBvcyhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1bnNpZ25lZCBpbnQgY3J0Y19pZCwKPiAgCQkJICAgICBib29sIGluX3ZibGFua19pcnEs IGludCAqdnBvcywgaW50ICpocG9zLAo+ICAJCQkgICAgIGt0aW1lX3QgKnN0aW1lLCBrdGltZV90 ICpldGltZSwKPiBAQCAtNzM2LDE3ICs3NDAsMzcgQEAgdm9pZCB2YzRfY3J0Y19nZXRfbWFyZ2lu cyhzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLAo+ICAKPiAgLyogdmM0X2RlYnVnZnMuYyAq Lwo+ICBpbnQgdmM0X2RlYnVnZnNfaW5pdChzdHJ1Y3QgZHJtX21pbm9yICptaW5vcik7Cj4gKyNp ZmRlZiBDT05GSUdfREVCVUdfRlMKPiArdm9pZCB2YzRfZGVidWdmc19hZGRfZmlsZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZHJtLAo+ICsJCQkgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAo+ICsJCQkgIGlu dCAoKnNob3cpKHN0cnVjdCBzZXFfZmlsZSosIHZvaWQqKSwKPiArCQkJICB2b2lkICpkYXRhKTsK PiArdm9pZCB2YzRfZGVidWdmc19hZGRfcmVnc2V0MzIoc3RydWN0IGRybV9kZXZpY2UgKmRybSwK PiArCQkJICAgICAgY29uc3QgY2hhciAqZmlsZW5hbWUsCj4gKwkJCSAgICAgIHN0cnVjdCBkZWJ1 Z2ZzX3JlZ3NldDMyICpyZWdzZXQpOwo+ICsjZWxzZQo+ICtzdGF0aWMgaW5saW5lIHZvaWQgdmM0 X2RlYnVnZnNfYWRkX2ZpbGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiArCQkJCQljb25zdCBj aGFyICpmaWxlbmFtZSwKPiArCQkJCQlpbnQgKCpzaG93KShzdHJ1Y3Qgc2VxX2ZpbGUqLCB2b2lk KiksCj4gKwkJCQkJdm9pZCAqZGF0YSkKPiArewo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZv aWQgdmM0X2RlYnVnZnNfYWRkX3JlZ3NldDMyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gKwkJ CQkJICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lLAo+ICsJCQkJCSAgICBzdHJ1Y3QgZGVidWdmc19y ZWdzZXQzMiAqcmVnc2V0KQo+ICt7Cj4gK30KPiArI2VuZGlmCj4gIAo+ICAvKiB2YzRfZHJ2LmMg Ki8KPiAgdm9pZCBfX2lvbWVtICp2YzRfaW9yZW1hcF9yZWdzKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKmRldiwgaW50IGluZGV4KTsKPiAgCj4gIC8qIHZjNF9kcGkuYyAqLwo+ICBleHRlcm4gc3Ry dWN0IHBsYXRmb3JtX2RyaXZlciB2YzRfZHBpX2RyaXZlcjsKPiAtaW50IHZjNF9kcGlfZGVidWdm c19yZWdzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKTsKPiAgCj4gIC8qIHZjNF9k c2kuYyAqLwo+ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2YzRfZHNpX2RyaXZlcjsK PiAtaW50IHZjNF9kc2lfZGVidWdmc19yZWdzKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51 c2VkKTsKPiAgCj4gIC8qIHZjNF9mZW5jZS5jICovCj4gIGV4dGVybiBjb25zdCBzdHJ1Y3QgZG1h X2ZlbmNlX29wcyB2YzRfZmVuY2Vfb3BzOwo+IEBAIC03NzQsMTUgKzc5OCwxMiBAQCBpbnQgdmM0 X2dlbV9tYWR2aXNlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4g IAo+ICAvKiB2YzRfaGRtaS5jICovCj4gIGV4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHZj NF9oZG1pX2RyaXZlcjsKPiAtaW50IHZjNF9oZG1pX2RlYnVnZnNfcmVncyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sIHZvaWQgKnVudXNlZCk7Cj4gIAo+ICAvKiB2YzRfdmVjLmMgKi8KPiAgZXh0ZXJuIHN0 cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdmM0X3ZlY19kcml2ZXI7Cj4gLWludCB2YzRfdmVjX2RlYnVn ZnNfcmVncyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCk7Cj4gIAo+ICAvKiB2YzRf dHhwLmMgKi8KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdmM0X3R4cF9kcml2ZXI7 Cj4gLWludCB2YzRfdHhwX2RlYnVnZnNfcmVncyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVu dXNlZCk7Cj4gIAo+ICAvKiB2YzRfaXJxLmMgKi8KPiAgaXJxcmV0dXJuX3QgdmM0X2lycShpbnQg aXJxLCB2b2lkICphcmcpOwo+IEBAIC03OTQsOCArODE1LDYgQEAgdm9pZCB2YzRfaXJxX3Jlc2V0 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ICAvKiB2YzRfaHZzLmMgKi8KPiAgZXh0ZXJuIHN0 cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdmM0X2h2c19kcml2ZXI7Cj4gIHZvaWQgdmM0X2h2c19kdW1w X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+IC1pbnQgdmM0X2h2c19kZWJ1Z2ZzX3Jl Z3Moc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpOwo+IC1pbnQgdmM0X2h2c19kZWJ1 Z2ZzX3VuZGVycnVuKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKTsKPiAgdm9pZCB2 YzRfaHZzX3VubWFza191bmRlcnJ1bihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgY2hhbm5l bCk7Cj4gIHZvaWQgdmM0X2h2c19tYXNrX3VuZGVycnVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBjaGFubmVsKTsKPiAgCj4gQEAgLTgxMiw4ICs4MzEsNiBAQCB2b2lkIHZjNF9wbGFuZV9h c3luY19zZXRfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAo+ICAvKiB2YzRfdjNkLmMg Ki8KPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdmM0X3YzZF9kcml2ZXI7Cj4gLWlu dCB2YzRfdjNkX2RlYnVnZnNfaWRlbnQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp Owo+IC1pbnQgdmM0X3YzZF9kZWJ1Z2ZzX3JlZ3Moc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1 bnVzZWQpOwo+ICBpbnQgdmM0X3YzZF9nZXRfYmluX3Nsb3Qoc3RydWN0IHZjNF9kZXYgKnZjNCk7 Cj4gIGludCB2YzRfdjNkX3BtX2dldChzdHJ1Y3QgdmM0X2RldiAqdmM0KTsKPiAgdm9pZCB2YzRf djNkX3BtX3B1dChzdHJ1Y3QgdmM0X2RldiAqdmM0KTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYwo+IGlu ZGV4IDgwNmNmYWEyYTZhNy4uOTQxMjcwOTA2N2Y1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X2RzaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMK PiBAQCAtNjU3LDI1ICs2NTcsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIg ZHNpMV9yZWdzW10gPSB7Cj4gIAlWQzRfUkVHMzIoRFNJMV9JRCksCj4gIH07Cj4gIAo+IC0jaWZk ZWYgQ09ORklHX0RFQlVHX0ZTCj4gLWludCB2YzRfZHNpX2RlYnVnZnNfcmVncyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAtewo+IC0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5v ZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRybSA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gLQlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0g dG9fdmM0X2Rldihkcm0pOwo+IC0JaW50IGRzaV9pbmRleCA9ICh1aW50cHRyX3Qpbm9kZS0+aW5m b19lbnQtPmRhdGE7Cj4gLQlzdHJ1Y3QgdmM0X2RzaSAqZHNpID0gKGRzaV9pbmRleCA9PSAxID8g dmM0LT5kc2kxIDogTlVMTCk7Cj4gLQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmls ZV9wcmludGVyKG0pOwo+IC0KPiAtCWlmICghZHNpKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWRy bV9wcmludF9yZWdzZXQzMigmcCwgJmRzaS0+cmVnc2V0KTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAt fQo+IC0jZW5kaWYKPiAtCj4gIHN0YXRpYyB2b2lkIHZjNF9kc2lfZW5jb2Rlcl9kZXN0cm95KHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiAgewo+ICAJZHJtX2VuY29kZXJfY2xlYW51cChl bmNvZGVyKTsKPiBAQCAtMTYzNyw2ICsxNjE4LDExIEBAIHN0YXRpYyBpbnQgdmM0X2RzaV9iaW5k KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ ICAJICovCj4gIAlkc2ktPmVuY29kZXItPmJyaWRnZSA9IE5VTEw7Cj4gIAo+ICsJaWYgKGRzaS0+ cG9ydCA9PSAwKQo+ICsJCXZjNF9kZWJ1Z2ZzX2FkZF9yZWdzZXQzMihkcm0sICJkc2kwX3JlZ3Mi LCAmZHNpLT5yZWdzZXQpOwo+ICsJZWxzZQo+ICsJCXZjNF9kZWJ1Z2ZzX2FkZF9yZWdzZXQzMihk cm0sICJkc2kxX3JlZ3MiLCAmZHNpLT5yZWdzZXQpOwo+ICsKPiAgCXBtX3J1bnRpbWVfZW5hYmxl KGRldik7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92 YzQvdmM0X2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2hkbWkuYwo+IGluZGV4IDM4 YzkxNzJjZmU1Mi4uOTlmYzg1NjllMGY1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 YzQvdmM0X2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2hkbWkuYwo+IEBA IC0xODcsOCArMTg3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyIGhkX3Jl Z3NbXSA9IHsKPiAgCVZDNF9SRUczMihWQzRfSERfRlJBTUVfQ09VTlQpLAo+ICB9Owo+ICAKPiAt I2lmZGVmIENPTkZJR19ERUJVR19GUwo+IC1pbnQgdmM0X2hkbWlfZGVidWdmc19yZWdzKHN0cnVj dCBzZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+ICtzdGF0aWMgaW50IHZjNF9oZG1pX2RlYnVn ZnNfcmVncyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgewo+ICAJc3RydWN0 IGRybV9pbmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRl Owo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gQEAgLTIw MSw3ICsyMDAsNiBAQCBpbnQgdmM0X2hkbWlfZGVidWdmc19yZWdzKHN0cnVjdCBzZXFfZmlsZSAq bSwgdm9pZCAqdW51c2VkKQo+ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gLSNlbmRpZiAvKiBDT05G SUdfREVCVUdfRlMgKi8KPiAgCj4gIHN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzCj4g IHZjNF9oZG1pX2Nvbm5lY3Rvcl9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwgYm9vbCBmb3JjZSkKPiBAQCAtMTQzMiw2ICsxNDMwLDggQEAgc3RhdGljIGludCB2YzRfaGRt aV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpk YXRhKQo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGVycl9kZXN0cm95X2VuY29kZXI7Cj4gIAo+ICsJ dmM0X2RlYnVnZnNfYWRkX2ZpbGUoZHJtLCAiaGRtaV9yZWdzIiwgdmM0X2hkbWlfZGVidWdmc19y ZWdzLCBoZG1pKTsKPiArCj4gIAlyZXR1cm4gMDsKPiAgCj4gICNpZmRlZiBDT05GSUdfRFJNX1ZD NF9IRE1JX0NFQwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9odnMuYyBi L2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2h2cy5jCj4gaW5kZXggYzQ2MzQ1M2Y5NDFiLi5mNzQ2 ZTlhN2E4OGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfaHZzLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9odnMuYwo+IEBAIC04MCwyMCArODAsNyBAQCB2 b2lkIHZjNF9odnNfZHVtcF9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJfQo+ICB9 Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gLWludCB2YzRfaHZzX2RlYnVnZnNfcmVn cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAtewo+IC0Jc3RydWN0IGRybV9p bmZvX25vZGUgKm5vZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwo+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gLQlzdHJ1Y3QgdmM0 X2RldiAqdmM0ID0gdG9fdmM0X2RldihkZXYpOwo+IC0Jc3RydWN0IGRybV9wcmludGVyIHAgPSBk cm1fc2VxX2ZpbGVfcHJpbnRlcihtKTsKPiAtCj4gLQlkcm1fcHJpbnRfcmVnc2V0MzIoJnAsICZ2 YzQtPmh2cy0+cmVnc2V0KTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtaW50IHZjNF9o dnNfZGVidWdmc191bmRlcnJ1bihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKmRhdGEpCj4gK3N0 YXRpYyBpbnQgdmM0X2h2c19kZWJ1Z2ZzX3VuZGVycnVuKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqZGF0YSkKPiAgewo+ICAJc3RydWN0IGRybV9pbmZvX25vZGUgKm5vZGUgPSBtLT5wcml2YXRl Owo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gQEAgLTEw NCw3ICs5MSw2IEBAIGludCB2YzRfaHZzX2RlYnVnZnNfdW5kZXJydW4oc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICpkYXRhKQo+ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gLSNlbmRpZgo+ICAKPiAg LyogVGhlIGZpbHRlciBrZXJuZWwgaXMgY29tcG9zZWQgb2YgZHdvcmRzIGVhY2ggY29udGFpbmlu ZyAzIDktYml0Cj4gICAqIHNpZ25lZCBpbnRlZ2VycyBwYWNrZWQgbmV4dCB0byBlYWNoIG90aGVy Lgo+IEBAIC0zMTYsNiArMzAyLDEwIEBAIHN0YXRpYyBpbnQgdmM0X2h2c19iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAJaWYgKHJl dCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiArCXZjNF9kZWJ1Z2ZzX2FkZF9yZWdzZXQzMihkcm0s ICJodnNfcmVncyIsICZodnMtPnJlZ3NldCk7Cj4gKwl2YzRfZGVidWdmc19hZGRfZmlsZShkcm0s ICJodnNfdW5kZXJydW4iLCB2YzRfaHZzX2RlYnVnZnNfdW5kZXJydW4sCj4gKwkJCSAgICAgTlVM TCk7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X3R4cC5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdHhwLmMKPiBpbmRl eCBjOGY4MDA2NGMxNzkuLjEyMjBmNGE1YWFjNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdmM0L3ZjNF90eHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3R4cC5jCj4g QEAgLTE2OSwyNCArMTY5LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZWJ1Z2ZzX3JlZzMyIHR4 cF9yZWdzW10gPSB7Cj4gIAlWQzRfUkVHMzIoVFhQX1BST0dSRVNTKSwKPiAgfTsKPiAgCj4gLSNp ZmRlZiBDT05GSUdfREVCVUdfRlMKPiAtaW50IHZjNF90eHBfZGVidWdmc19yZWdzKHN0cnVjdCBz ZXFfZmlsZSAqbSwgdm9pZCAqdW51c2VkKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2luZm9fbm9kZSAq bm9kZSA9IChzdHJ1Y3QgZHJtX2luZm9fbm9kZSAqKW0tPnByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gbm9kZS0+bWlub3ItPmRldjsKPiAtCXN0cnVjdCB2YzRfZGV2ICp2YzQg PSB0b192YzRfZGV2KGRldik7Cj4gLQlzdHJ1Y3QgdmM0X3R4cCAqdHhwID0gdmM0LT50eHA7Cj4g LQlzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9zZXFfZmlsZV9wcmludGVyKG0pOwo+IC0KPiAt CWlmICghdHhwKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWRybV9wcmludF9yZWdzZXQzMigmcCwg JnR4cC0+cmVnc2V0KTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0jZW5kaWYKPiAtCj4gIHN0 YXRpYyBpbnQgdmM0X3R4cF9jb25uZWN0b3JfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmRldjsKPiBAQCAtNDI0LDYgKzQwNiw4IEBAIHN0YXRpYyBpbnQgdmM0X3R4cF9iaW5kKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAJZGV2 X3NldF9kcnZkYXRhKGRldiwgdHhwKTsKPiAgCXZjNC0+dHhwID0gdHhwOwo+ICAKPiArCXZjNF9k ZWJ1Z2ZzX2FkZF9yZWdzZXQzMihkcm0sICJ0eHBfcmVncyIsICZ0eHAtPnJlZ3NldCk7Cj4gKwo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X3YzZC5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdjNkLmMKPiBpbmRleCAyN2M3MGVi NTI0MDUuLjM2ZTZjNzA4NmVjZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3Zj NF92M2QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3YzZC5jCj4gQEAgLTIyLDcg KzIyLDYgQEAKPiAgI2luY2x1ZGUgInZjNF9kcnYuaCIKPiAgI2luY2x1ZGUgInZjNF9yZWdzLmgi Cj4gIAo+IC0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGVi dWdmc19yZWczMiB2M2RfcmVnc1tdID0gewo+ICAJVkM0X1JFRzMyKFYzRF9JREVOVDApLAo+ICAJ VkM0X1JFRzMyKFYzRF9JREVOVDEpLAo+IEBAIC0xMDQsMTkgKzEwMyw3IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZGVidWdmc19yZWczMiB2M2RfcmVnc1tdID0gewo+ICAJVkM0X1JFRzMyKFYzRF9F UlJTVEFUKSwKPiAgfTsKPiAgCj4gLWludCB2YzRfdjNkX2RlYnVnZnNfcmVncyhzdHJ1Y3Qgc2Vx X2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAtewo+IC0Jc3RydWN0IGRybV9pbmZvX25vZGUgKm5v ZGUgPSAoc3RydWN0IGRybV9pbmZvX25vZGUgKiltLT5wcml2YXRlOwo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IG5vZGUtPm1pbm9yLT5kZXY7Cj4gLQlzdHJ1Y3QgdmM0X2RldiAqdmM0ID0g dG9fdmM0X2RldihkZXYpOwo+IC0Jc3RydWN0IGRybV9wcmludGVyIHAgPSBkcm1fc2VxX2ZpbGVf cHJpbnRlcihtKTsKPiAtCj4gLQlkcm1fcHJpbnRfcmVnc2V0MzIoJnAsICZ2YzQtPnYzZC0+cmVn c2V0KTsKPiAtCj4gLQlyZXR1cm4gMDsKPiAtfQo+IC0KPiAtaW50IHZjNF92M2RfZGVidWdmc19p ZGVudChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiArc3RhdGljIGludCB2YzRf djNkX2RlYnVnZnNfaWRlbnQoc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQpCj4gIHsK PiAgCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0gKHN0cnVjdCBkcm1faW5mb19ub2RlICop bS0+cHJpdmF0ZTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBub2RlLT5taW5vci0+ZGV2 Owo+IEBAIC0xNDEsNyArMTI4LDYgQEAgaW50IHZjNF92M2RfZGVidWdmc19pZGVudChzdHJ1Y3Qg c2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+IC0jZW5k aWYgLyogQ09ORklHX0RFQlVHX0ZTICovCj4gIAo+ICAvKioKPiAgICogV3JhcHMgcG1fcnVudGlt ZV9nZXRfc3luYygpIGluIGEgcmVmY291bnQsIHNvIHRoYXQgd2UgY2FuIHJlbGlhYmx5Cj4gQEAg LTQ0Miw2ICs0MjgsOSBAQCBzdGF0aWMgaW50IHZjNF92M2RfYmluZChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCXBtX3J1bnRpbWVfc2V0 X2F1dG9zdXNwZW5kX2RlbGF5KGRldiwgNDApOyAvKiBhIGxpdHRsZSBvdmVyIDIgZnJhbWVzLiAq Lwo+ICAJcG1fcnVudGltZV9lbmFibGUoZGV2KTsKPiAgCj4gKwl2YzRfZGVidWdmc19hZGRfZmls ZShkcm0sICJ2M2RfaWRlbnQiLCB2YzRfdjNkX2RlYnVnZnNfaWRlbnQsIE5VTEwpOwo+ICsJdmM0 X2RlYnVnZnNfYWRkX3JlZ3NldDMyKGRybSwgInYzZF9yZWdzIiwgJnYzZC0+cmVnc2V0KTsKPiAr Cj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Zj NC92YzRfdmVjLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF92ZWMuYwo+IGluZGV4IDgzMjI3 ZDI0NDBhYS4uMGEyN2U0OGZhYjMxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQv dmM0X3ZlYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdmVjLmMKPiBAQCAtMjUy LDI0ICsyNTIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRlYnVnZnNfcmVnMzIgdmVjX3JlZ3Nb XSA9IHsKPiAgCVZDNF9SRUczMihWRUNfREFDX01JU0MpLAo+ICB9Owo+ICAKPiAtI2lmZGVmIENP TkZJR19ERUJVR19GUwo+IC1pbnQgdmM0X3ZlY19kZWJ1Z2ZzX3JlZ3Moc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICp1bnVzZWQpCj4gLXsKPiAtCXN0cnVjdCBkcm1faW5mb19ub2RlICpub2RlID0g KHN0cnVjdCBkcm1faW5mb19ub2RlICopbS0+cHJpdmF0ZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBub2RlLT5taW5vci0+ZGV2Owo+IC0Jc3RydWN0IHZjNF9kZXYgKnZjNCA9IHRvX3Zj NF9kZXYoZGV2KTsKPiAtCXN0cnVjdCB2YzRfdmVjICp2ZWMgPSB2YzQtPnZlYzsKPiAtCXN0cnVj dCBkcm1fcHJpbnRlciBwID0gZHJtX3NlcV9maWxlX3ByaW50ZXIobSk7Cj4gLQo+IC0JaWYgKCF2 ZWMpCj4gLQkJcmV0dXJuIDA7Cj4gLQo+IC0JZHJtX3ByaW50X3JlZ3NldDMyKCZwLCAmdmVjLT5y ZWdzZXQpOwo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLSNlbmRpZgo+IC0KPiAgc3RhdGljIHZv aWQgdmM0X3ZlY19udHNjX21vZGVfc2V0KHN0cnVjdCB2YzRfdmVjICp2ZWMpCj4gIHsKPiAgCVZF Q19XUklURShWRUNfQ09ORklHMCwgVkVDX0NPTkZJRzBfTlRTQ19TVEQgfCBWRUNfQ09ORklHMF9Q REVOKTsKPiBAQCAtNjA5LDYgKzU5MSw4IEBAIHN0YXRpYyBpbnQgdmM0X3ZlY19iaW5kKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAKPiAg CXZjNC0+dmVjID0gdmVjOwo+ICAKPiArCXZjNF9kZWJ1Z2ZzX2FkZF9yZWdzZXQzMihkcm0sICJ2 ZWNfcmVncyIsICZ2ZWMtPnJlZ3NldCk7Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIAo+ICBlcnJfZGVz dHJveV9lbmNvZGVyOgotLSAKUGF1bCBLb2NpYWxrb3dza2ksIEJvb3RsaW4KRW1iZWRkZWQgTGlu dXggYW5kIGtlcm5lbCBlbmdpbmVlcmluZwpodHRwczovL2Jvb3RsaW4uY29tCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=