From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Noralf_Tr=c3=b8nnes?= Subject: Re: [PATCH 8/8] drm/udl: Use drm_fb_helper deferred_io support Date: Wed, 20 Apr 2016 21:20:25 +0200 Message-ID: <5717D679.5070809@tronnes.org> References: <1461165929-11344-1-git-send-email-noralf@tronnes.org> <1461165929-11344-9-git-send-email-noralf@tronnes.org> <20160420175903.GS2510@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.domeneshop.no (smtp.domeneshop.no [IPv6:2a01:5b40:0:3005::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 62E846EAF4 for ; Wed, 20 Apr 2016 19:20:32 +0000 (UTC) In-Reply-To: <20160420175903.GS2510@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org, laurent.pinchart@ideasonboard.com, tomi.valkeinen@ti.com, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org CkRlbiAyMC4wNC4yMDE2IDE5OjU5LCBza3JldiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgQXBy IDIwLCAyMDE2IGF0IDA1OjI1OjI5UE0gKzAyMDAsIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToKPj4g VXNlIHRoZSBmYmRldiBkZWZlcnJlZCBpbyBzdXBwb3J0IGluIGRybV9mYl9oZWxwZXIuCj4+IFRo ZSAoc3RydWN0IGZiX29wcyAqKS0+ZmJfe2ZpbGxyZWN0LGNvcHlhcmVhLGltYWdlYmxpdH0gZnVu Y3Rpb25zIHdpbGwKPj4gbm93IGJlIGRlZmVycmVkIGluIHRoZSBzYW1lIHdheSB0aGF0IG1tYXAg ZGFtYWdlIGlzLCBpbnN0ZWFkIG9mIGJlaW5nCj4+IGZsdXNoZWQgZGlyZWN0bHkuCj4+IFRoZSBk ZWZlcnJlZCBtbWFwIGZ1bmN0aW9uYWxpdHkgaXMga2VwdCBkaXNhYmxlZCBieSBkZWZhdWx0LCBi ZWNhdXNlIG9mIHRoZQo+PiBsaXN0IGNvcnJ1cHRpb24gcHJvYmxlbXMgbWVudGlvbmVkIGluIGNv bW1pdCA2NzdkMjNiNzBiZjkKPj4gKCJkcm0vdWRsOiBkaXNhYmxlIGZiX2RlZmlvIGJ5IGRlZmF1 bHQiKS4KPj4gVGhpcyBwYXRjaCBoYXMgb25seSBiZWVuIGNvbXBpbGUgdGVzdGVkLgo+Pgo+PiBT aWduZWQtb2ZmLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPj4gLS0t Cj4+ICAgZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZHJ2LmggfCAgIDIgLQo+PiAgIGRyaXZlcnMv Z3B1L2RybS91ZGwvdWRsX2ZiLmMgIHwgMTUyICsrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQo+PiAgIDIgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgMTQy IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuaAo+PiBpbmRleCA0YTA2NGVmLi4w YjAzZDM0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuaAo+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kcnYuaAo+PiBAQCAtODEsOCArODEsNiBAQCBz dHJ1Y3QgdWRsX2ZyYW1lYnVmZmVyIHsKPj4gICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciBiYXNl Owo+PiAgIAlzdHJ1Y3QgdWRsX2dlbV9vYmplY3QgKm9iajsKPj4gICAJYm9vbCBhY3RpdmVfMTY7 IC8qIGFjdGl2ZSBvbiB0aGUgMTYtYml0IGNoYW5uZWwgKi8KPj4gLQlpbnQgeDEsIHkxLCB4Miwg eTI7IC8qIGRpcnR5IHJlY3QgKi8KPj4gLQlzcGlubG9ja190IGRpcnR5X2xvY2s7Cj4+ICAgfTsK Pj4gICAKPj4gICAjZGVmaW5lIHRvX3VkbF9mYih4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IHVk bF9mcmFtZWJ1ZmZlciwgYmFzZSkKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS91ZGwv dWRsX2ZiLmMgYi9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9mYi5jCj4+IGluZGV4IGE1MmRlMmYu LmI0NGQ0YTcgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2ZiLmMKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3VkbC91ZGxfZmIuYwo+PiBAQCAtNzcsNjggKzc3LDYgQEAg c3RhdGljIHVpbnQxNl90IHJnYjE2KHVpbnQzMl90IGNvbCkKPj4gICB9Cj4+ICAgI2VuZGlmCj4+ ICAgCj4+IC0vKgo+PiAtICogTk9URTogZmJfZGVmaW8uYyBpcyBob2xkaW5nIGluZm8tPmZiZGVm aW8ubXV0ZXgKPj4gLSAqICAgVG91Y2hpbmcgQU5ZIGZyYW1lYnVmZmVyIG1lbW9yeSB0aGF0IHRy aWdnZXJzIGEgcGFnZSBmYXVsdAo+PiAtICogICBpbiBmYl9kZWZpbyB3aWxsIGNhdXNlIGEgZGVh ZGxvY2ssIHdoZW4gaXQgYWxzbyB0cmllcyB0bwo+PiAtICogICBncmFiIHRoZSBzYW1lIG11dGV4 Lgo+PiAtICovCj4+IC1zdGF0aWMgdm9pZCB1ZGxmYl9kcHlfZGVmZXJyZWRfaW8oc3RydWN0IGZi X2luZm8gKmluZm8sCj4+IC0JCQkJICBzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlbGlzdCkKPj4gLXsK Pj4gLQlzdHJ1Y3QgcGFnZSAqY3VyOwo+PiAtCXN0cnVjdCBmYl9kZWZlcnJlZF9pbyAqZmJkZWZp byA9IGluZm8tPmZiZGVmaW87Cj4+IC0Jc3RydWN0IHVkbF9mYmRldiAqdWZiZGV2ID0gaW5mby0+ cGFyOwo+PiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSB1ZmJkZXYtPnVmYi5iYXNlLmRldjsK Pj4gLQlzdHJ1Y3QgdWRsX2RldmljZSAqdWRsID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gLQlzdHJ1 Y3QgdXJiICp1cmI7Cj4+IC0JY2hhciAqY21kOwo+PiAtCWN5Y2xlc190IHN0YXJ0X2N5Y2xlcywg ZW5kX2N5Y2xlczsKPj4gLQlpbnQgYnl0ZXNfc2VudCA9IDA7Cj4+IC0JaW50IGJ5dGVzX2lkZW50 aWNhbCA9IDA7Cj4+IC0JaW50IGJ5dGVzX3JlbmRlcmVkID0gMDsKPj4gLQo+PiAtCWlmICghZmJf ZGVmaW8pCj4+IC0JCXJldHVybjsKPj4gLQo+PiAtCXN0YXJ0X2N5Y2xlcyA9IGdldF9jeWNsZXMo KTsKPj4gLQo+PiAtCXVyYiA9IHVkbF9nZXRfdXJiKGRldik7Cj4+IC0JaWYgKCF1cmIpCj4+IC0J CXJldHVybjsKPj4gLQo+PiAtCWNtZCA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOwo+PiAtCj4+IC0J Lyogd2FsayB0aGUgd3JpdHRlbiBwYWdlIGxpc3QgYW5kIHJlbmRlciBlYWNoIHRvIGRldmljZSAq Lwo+PiAtCWxpc3RfZm9yX2VhY2hfZW50cnkoY3VyLCAmZmJkZWZpby0+cGFnZWxpc3QsIGxydSkg ewo+PiAtCj4+IC0JCWlmICh1ZGxfcmVuZGVyX2hsaW5lKGRldiwgKHVmYmRldi0+dWZiLmJhc2Uu Yml0c19wZXJfcGl4ZWwgLyA4KSwKPj4gLQkJCQkgICAgICZ1cmIsIChjaGFyICopIGluZm8tPmZp eC5zbWVtX3N0YXJ0LAo+PiAtCQkJCSAgICAgJmNtZCwgY3VyLT5pbmRleCA8PCBQQUdFX1NISUZU LAo+PiAtCQkJCSAgICAgY3VyLT5pbmRleCA8PCBQQUdFX1NISUZULAo+PiAtCQkJCSAgICAgUEFH RV9TSVpFLCAmYnl0ZXNfaWRlbnRpY2FsLCAmYnl0ZXNfc2VudCkpCj4+IC0JCQlnb3RvIGVycm9y Owo+PiAtCQlieXRlc19yZW5kZXJlZCArPSBQQUdFX1NJWkU7Cj4+IC0JfQo+PiAtCj4+IC0JaWYg KGNtZCA+IChjaGFyICopIHVyYi0+dHJhbnNmZXJfYnVmZmVyKSB7Cj4+IC0JCS8qIFNlbmQgcGFy dGlhbCBidWZmZXIgcmVtYWluaW5nIGJlZm9yZSBleGl0aW5nICovCj4+IC0JCWludCBsZW4gPSBj bWQgLSAoY2hhciAqKSB1cmItPnRyYW5zZmVyX2J1ZmZlcjsKPj4gLQkJdWRsX3N1Ym1pdF91cmIo ZGV2LCB1cmIsIGxlbik7Cj4+IC0JCWJ5dGVzX3NlbnQgKz0gbGVuOwo+PiAtCX0gZWxzZQo+PiAt CQl1ZGxfdXJiX2NvbXBsZXRpb24odXJiKTsKPj4gLQo+PiAtZXJyb3I6Cj4+IC0JYXRvbWljX2Fk ZChieXRlc19zZW50LCAmdWRsLT5ieXRlc19zZW50KTsKPj4gLQlhdG9taWNfYWRkKGJ5dGVzX2lk ZW50aWNhbCwgJnVkbC0+Ynl0ZXNfaWRlbnRpY2FsKTsKPj4gLQlhdG9taWNfYWRkKGJ5dGVzX3Jl bmRlcmVkLCAmdWRsLT5ieXRlc19yZW5kZXJlZCk7Cj4+IC0JZW5kX2N5Y2xlcyA9IGdldF9jeWNs ZXMoKTsKPj4gLQlhdG9taWNfYWRkKCgodW5zaWduZWQgaW50KSAoKGVuZF9jeWNsZXMgLSBzdGFy dF9jeWNsZXMpCj4+IC0JCSAgICA+PiAxMCkpLCAvKiBLY3ljbGVzICovCj4+IC0JCSAgICZ1ZGwt PmNwdV9rY3ljbGVzX3VzZWQpOwo+PiAtfQo+PiAtCj4+ICAgaW50IHVkbF9oYW5kbGVfZGFtYWdl KHN0cnVjdCB1ZGxfZnJhbWVidWZmZXIgKmZiLCBpbnQgeCwgaW50IHksCj4+ICAgCQkgICAgICBp bnQgd2lkdGgsIGludCBoZWlnaHQpCj4+ICAgewo+PiBAQCAtMTUyLDkgKzkwLDYgQEAgaW50IHVk bF9oYW5kbGVfZGFtYWdlKHN0cnVjdCB1ZGxfZnJhbWVidWZmZXIgKmZiLCBpbnQgeCwgaW50IHks Cj4+ICAgCXN0cnVjdCB1cmIgKnVyYjsKPj4gICAJaW50IGFsaWduZWRfeDsKPj4gICAJaW50IGJw cCA9IChmYi0+YmFzZS5iaXRzX3Blcl9waXhlbCAvIDgpOwo+PiAtCWludCB4MiwgeTI7Cj4+IC0J Ym9vbCBzdG9yZV9mb3JfbGF0ZXIgPSBmYWxzZTsKPj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ PiAgIAo+PiAgIAlpZiAoIWZiLT5hY3RpdmVfMTYpCj4+ICAgCQlyZXR1cm4gMDsKPj4gQEAgLTE4 MCwzOCArMTE1LDYgQEAgaW50IHVkbF9oYW5kbGVfZGFtYWdlKHN0cnVjdCB1ZGxfZnJhbWVidWZm ZXIgKmZiLCBpbnQgeCwgaW50IHksCj4+ICAgCSAgICAoeSArIGhlaWdodCA+IGZiLT5iYXNlLmhl aWdodCkpCj4+ICAgCQlyZXR1cm4gLUVJTlZBTDsKPj4gICAKPj4gLQkvKiBpZiB3ZSBhcmUgaW4g YXRvbWljIGp1c3Qgc3RvcmUgdGhlIGluZm8KPj4gLQkgICBjYW4ndCB0ZXN0IGluc2lkZSBzcGlu IGxvY2sgKi8KPj4gLQlpZiAoaW5fYXRvbWljKCkpCj4+IC0JCXN0b3JlX2Zvcl9sYXRlciA9IHRy dWU7Cj4+IC0KPj4gLQl4MiA9IHggKyB3aWR0aCAtIDE7Cj4+IC0JeTIgPSB5ICsgaGVpZ2h0IC0g MTsKPj4gLQo+PiAtCXNwaW5fbG9ja19pcnFzYXZlKCZmYi0+ZGlydHlfbG9jaywgZmxhZ3MpOwo+ PiAtCj4+IC0JaWYgKGZiLT55MSA8IHkpCj4+IC0JCXkgPSBmYi0+eTE7Cj4+IC0JaWYgKGZiLT55 MiA+IHkyKQo+PiAtCQl5MiA9IGZiLT55MjsKPj4gLQlpZiAoZmItPngxIDwgeCkKPj4gLQkJeCA9 IGZiLT54MTsKPj4gLQlpZiAoZmItPngyID4geDIpCj4+IC0JCXgyID0gZmItPngyOwo+PiAtCj4+ IC0JaWYgKHN0b3JlX2Zvcl9sYXRlcikgewo+PiAtCQlmYi0+eDEgPSB4Owo+PiAtCQlmYi0+eDIg PSB4MjsKPj4gLQkJZmItPnkxID0geTsKPj4gLQkJZmItPnkyID0geTI7Cj4+IC0JCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmZiLT5kaXJ0eV9sb2NrLCBmbGFncyk7Cj4+IC0JCXJldHVybiAwOwo+ PiAtCX0KPj4gLQo+PiAtCWZiLT54MSA9IGZiLT55MSA9IElOVF9NQVg7Cj4+IC0JZmItPngyID0g ZmItPnkyID0gMDsKPj4gLQo+PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmZiLT5kaXJ0eV9s b2NrLCBmbGFncyk7Cj4+ICAgCXN0YXJ0X2N5Y2xlcyA9IGdldF9jeWNsZXMoKTsKPj4gICAKPj4g ICAJdXJiID0gdWRsX2dldF91cmIoZGV2KTsKPj4gQEAgLTIxOSwxNCArMTIyLDE0IEBAIGludCB1 ZGxfaGFuZGxlX2RhbWFnZShzdHJ1Y3QgdWRsX2ZyYW1lYnVmZmVyICpmYiwgaW50IHgsIGludCB5 LAo+PiAgIAkJcmV0dXJuIDA7Cj4+ICAgCWNtZCA9IHVyYi0+dHJhbnNmZXJfYnVmZmVyOwo+PiAg IAo+PiAtCWZvciAoaSA9IHk7IGkgPD0geTIgOyBpKyspIHsKPj4gKwlmb3IgKGkgPSB5OyBpIDwg aGVpZ2h0IDsgaSsrKSB7Cj4+ICAgCQljb25zdCBpbnQgbGluZV9vZmZzZXQgPSBmYi0+YmFzZS5w aXRjaGVzWzBdICogaTsKPj4gICAJCWNvbnN0IGludCBieXRlX29mZnNldCA9IGxpbmVfb2Zmc2V0 ICsgKHggKiBicHApOwo+PiAgIAkJY29uc3QgaW50IGRldl9ieXRlX29mZnNldCA9IChmYi0+YmFz ZS53aWR0aCAqIGJwcCAqIGkpICsgKHggKiBicHApOwo+PiAgIAkJaWYgKHVkbF9yZW5kZXJfaGxp bmUoZGV2LCBicHAsICZ1cmIsCj4+ICAgCQkJCSAgICAgKGNoYXIgKikgZmItPm9iai0+dm1hcHBp bmcsCj4+ICAgCQkJCSAgICAgJmNtZCwgYnl0ZV9vZmZzZXQsIGRldl9ieXRlX29mZnNldCwKPj4g LQkJCQkgICAgICh4MiAtIHggKyAxKSAqIGJwcCwKPj4gKwkJCQkgICAgIHdpZHRoICogYnBwLAo+ PiAgIAkJCQkgICAgICZieXRlc19pZGVudGljYWwsICZieXRlc19zZW50KSkKPj4gICAJCQlnb3Rv IGVycm9yOwo+PiAgIAl9Cj4+IEBAIC0yODMsMzYgKzE4Niw2IEBAIHN0YXRpYyBpbnQgdWRsX2Zi X21tYXAoc3RydWN0IGZiX2luZm8gKmluZm8sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+ PiAgIAlyZXR1cm4gMDsKPj4gICB9Cj4+ICAgCj4+IC1zdGF0aWMgdm9pZCB1ZGxfZmJfZmlsbHJl Y3Qoc3RydWN0IGZiX2luZm8gKmluZm8sIGNvbnN0IHN0cnVjdCBmYl9maWxscmVjdCAqcmVjdCkK Pj4gLXsKPj4gLQlzdHJ1Y3QgdWRsX2ZiZGV2ICp1ZmJkZXYgPSBpbmZvLT5wYXI7Cj4+IC0KPj4g LQlzeXNfZmlsbHJlY3QoaW5mbywgcmVjdCk7Cj4+IC0KPj4gLQl1ZGxfaGFuZGxlX2RhbWFnZSgm dWZiZGV2LT51ZmIsIHJlY3QtPmR4LCByZWN0LT5keSwgcmVjdC0+d2lkdGgsCj4+IC0JCQkgIHJl Y3QtPmhlaWdodCk7Cj4+IC19Cj4+IC0KPj4gLXN0YXRpYyB2b2lkIHVkbF9mYl9jb3B5YXJlYShz dHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0IGZiX2NvcHlhcmVhICpyZWdpb24pCj4+ IC17Cj4+IC0Jc3RydWN0IHVkbF9mYmRldiAqdWZiZGV2ID0gaW5mby0+cGFyOwo+PiAtCj4+IC0J c3lzX2NvcHlhcmVhKGluZm8sIHJlZ2lvbik7Cj4+IC0KPj4gLQl1ZGxfaGFuZGxlX2RhbWFnZSgm dWZiZGV2LT51ZmIsIHJlZ2lvbi0+ZHgsIHJlZ2lvbi0+ZHksIHJlZ2lvbi0+d2lkdGgsCj4+IC0J CQkgIHJlZ2lvbi0+aGVpZ2h0KTsKPj4gLX0KPj4gLQo+PiAtc3RhdGljIHZvaWQgdWRsX2ZiX2lt YWdlYmxpdChzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgY29uc3Qgc3RydWN0IGZiX2ltYWdlICppbWFn ZSkKPj4gLXsKPj4gLQlzdHJ1Y3QgdWRsX2ZiZGV2ICp1ZmJkZXYgPSBpbmZvLT5wYXI7Cj4+IC0K Pj4gLQlzeXNfaW1hZ2VibGl0KGluZm8sIGltYWdlKTsKPj4gLQo+PiAtCXVkbF9oYW5kbGVfZGFt YWdlKCZ1ZmJkZXYtPnVmYiwgaW1hZ2UtPmR4LCBpbWFnZS0+ZHksIGltYWdlLT53aWR0aCwKPj4g LQkJCSAgaW1hZ2UtPmhlaWdodCk7Cj4+IC19Cj4+IC0KPj4gICAvKgo+PiAgICAqIEl0J3MgY29t bW9uIGZvciBzZXZlcmFsIGNsaWVudHMgdG8gaGF2ZSBmcmFtZWJ1ZmZlciBvcGVuIHNpbXVsdGFu ZW91c2x5Lgo+PiAgICAqIGUuZy4gYm90aCBmYmNvbiBhbmQgWC4gTWFrZXMgdGhpbmdzIGludGVy ZXN0aW5nLgo+PiBAQCAtMzMwLDIwICsyMDMsMjAgQEAgc3RhdGljIGludCB1ZGxfZmJfb3Blbihz dHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IHVzZXIpCj4+ICAgCj4+ICAgCXVmYmRldi0+ZmJfY291 bnQrKzsKPj4gICAKPj4gLQlpZiAoZmJfZGVmaW8gJiYgKGluZm8tPmZiZGVmaW8gPT0gTlVMTCkp IHsKPj4gLQkJLyogZW5hYmxlIGRlZmlvIGF0IGxhc3QgbW9tZW50IGlmIG5vdCBkaXNhYmxlZCBi eSBjbGllbnQgKi8KPj4gKwlpZiAoIWluZm8tPmZiZGVmaW8pIHsKPj4gKwkJLyogZW5hYmxlIGRl ZmlvIGF0IGxhc3QgbW9tZW50ICovCj4+ICAgCj4+ICAgCQlzdHJ1Y3QgZmJfZGVmZXJyZWRfaW8g KmZiZGVmaW87Cj4+ICAgCj4+ICAgCQlmYmRlZmlvID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGZi X2RlZmVycmVkX2lvKSwgR0ZQX0tFUk5FTCk7Cj4+IC0KPj4gICAJCWlmIChmYmRlZmlvKSB7Cj4+ ICAgCQkJZmJkZWZpby0+ZGVsYXkgPSBETF9ERUZJT19XUklURV9ERUxBWTsKPj4gLQkJCWZiZGVm aW8tPmRlZmVycmVkX2lvID0gdWRsZmJfZHB5X2RlZmVycmVkX2lvOwo+PiArCQkJZmJkZWZpby0+ ZGVmZXJyZWRfaW8gPSBkcm1fZmJfaGVscGVyX2RlZmVycmVkX2lvOwo+IFdoeSBhbGwgdGhlc2Ug Y2hhbmdlcyBoZXJlPyBJIGZpZ3VyZWQganVzdCBleGNoYW5naW5nIHRoZSBkZWZlcnJlZF9pbwo+ IHBvaW50ZXIgc2hvdWxkIGJlIGFsbCB0aGF0J3MgcmVhbGx5IG5lZWRlZCBpbiB0aGUgc2V0dXAg Y29kZT8KCkJlY2F1c2Ugd2UgYWx3YXlzIG5lZWQgdG8gaW5pdGlhbGl6ZSBkZWZlcnJlZF9pbyBz aW5jZSB3ZSB1c2UgaXQncyB3b3JrZXIKdG8gaGFuZGxlIGZiX3tmaWxscmVjdCxjb3B5YXJlYSxp bWFnZWJsaXR9IGRhbWFnZSBpbiBkcm1fZmJfaGVscGVyLgoKVGhlIHByZXZpb3VzIGNvZGUgZGlk bid0IHVzZSBkZWZlcnJlZF9pbyB0byBoYW5kbGUgdGhlc2UsIGl0IGp1c3QgaGFuZGxlZAp0aGUg ZGFtYWdlIGRpcmVjdGx5IHVubGVzcyBpdCB3YXMgcnVubmluZyBpbiBhdG9taWMgY29udGV4dCwg aW4gd2hpY2ggY2FzZQppdCBqdXN0IHJlY29yZGVkIHRoZSBkYW1hZ2UgYW5kIHJldHVybmVkLCBs ZWF2aW5nIGl0IHRvIHRoZSBuZXh0IGNhbGwgdG8KcHVzaCB0aGUgY2hhbmdlcy4KCkFuZCBpbiB0 aGUgZm9sbG93aW5nIGNvZGUgSSBmaXhlZCBhIG51bGwgcG9pbnRlciBwcm9ibGVtIGFzIHdlbGws IG1heWJlIEkKc2hvdWxkbid0IGhhdmUgcGFja2VkIGl0IGluIGhlcmUuIElmIGZiZGVmaW8gYWxs b2NhdGlvbiBmYWlscyA9PSBOVUxMLApmYl9kZWZlcnJlZF9pb19pbml0KCkgd2lsbCB0cmlnZ2Vy IGEgQlVHKCkuCgo+IC1EYW5pZWwKPgo+PiArCQkJaW5mby0+ZmJkZWZpbyA9IGZiZGVmaW87Cj4+ ICsJCQlmYl9kZWZlcnJlZF9pb19pbml0KGluZm8pOwo+PiArCQkJaWYgKCFmYl9kZWZpbykgLyog c2VlIGNvbW1pdCA2NzdkMjNiICovCj4+ICsJCQkJaW5mby0+ZmJvcHMtPmZiX21tYXAgPSB1ZGxf ZmJfbW1hcDsKPj4gICAJCX0KPj4gLQo+PiAtCQlpbmZvLT5mYmRlZmlvID0gZmJkZWZpbzsKPj4g LQkJZmJfZGVmZXJyZWRfaW9faW5pdChpbmZvKTsKPj4gICAJfQo+PiAgIAo+PiAgIAlwcl9ub3Rp Y2UoIm9wZW4gL2Rldi9mYiVkIHVzZXI9JWQgZmJfaW5mbz0lcCBjb3VudD0lZFxuIiwKPj4gQEAg LTM3OSw5ICsyNTIsOSBAQCBzdGF0aWMgc3RydWN0IGZiX29wcyB1ZGxmYl9vcHMgPSB7Cj4+ICAg CS5vd25lciA9IFRISVNfTU9EVUxFLAo+PiAgIAkuZmJfY2hlY2tfdmFyID0gZHJtX2ZiX2hlbHBl cl9jaGVja192YXIsCj4+ICAgCS5mYl9zZXRfcGFyID0gZHJtX2ZiX2hlbHBlcl9zZXRfcGFyLAo+ PiAtCS5mYl9maWxscmVjdCA9IHVkbF9mYl9maWxscmVjdCwKPj4gLQkuZmJfY29weWFyZWEgPSB1 ZGxfZmJfY29weWFyZWEsCj4+IC0JLmZiX2ltYWdlYmxpdCA9IHVkbF9mYl9pbWFnZWJsaXQsCj4+ ICsJLmZiX2ZpbGxyZWN0ID0gZHJtX2ZiX2hlbHBlcl9zeXNfZmlsbHJlY3QsCj4+ICsJLmZiX2Nv cHlhcmVhID0gZHJtX2ZiX2hlbHBlcl9zeXNfY29weWFyZWEsCj4+ICsJLmZiX2ltYWdlYmxpdCA9 IGRybV9mYl9oZWxwZXJfc3lzX2ltYWdlYmxpdCwKPj4gICAJLmZiX3Bhbl9kaXNwbGF5ID0gZHJt X2ZiX2hlbHBlcl9wYW5fZGlzcGxheSwKPj4gICAJLmZiX2JsYW5rID0gZHJtX2ZiX2hlbHBlcl9i bGFuaywKPj4gICAJLmZiX3NldGNtYXAgPSBkcm1fZmJfaGVscGVyX3NldGNtYXAsCj4+IEBAIC00 NTgsNyArMzMxLDYgQEAgdWRsX2ZyYW1lYnVmZmVyX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPj4gICB7Cj4+ICAgCWludCByZXQ7Cj4+ICAgCj4+IC0Jc3Bpbl9sb2NrX2luaXQoJnVmYi0+ ZGlydHlfbG9jayk7Cj4+ICAgCXVmYi0+b2JqID0gb2JqOwo+PiAgIAlkcm1faGVscGVyX21vZGVf ZmlsbF9mYl9zdHJ1Y3QoJnVmYi0+YmFzZSwgbW9kZV9jbWQpOwo+PiAgIAlyZXQgPSBkcm1fZnJh bWVidWZmZXJfaW5pdChkZXYsICZ1ZmItPmJhc2UsICZ1ZGxmYl9mdW5jcyk7Cj4+IC0tIAo+PiAy LjIuMgo+PgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==