From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Szyprowski Subject: Re: [PATCH] drm/exynos: remove chained calls to enable Date: Thu, 11 Jun 2015 09:52:06 +0200 Message-ID: <55793E26.1030605@samsung.com> References: <1434006446-8049-1-git-send-email-jy0922.shim@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1434006446-8049-1-git-send-email-jy0922.shim@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Joonyoung Shim , dri-devel@lists.freedesktop.org Cc: gustavo.padovan@collabora.co.uk, linux-samsung-soc@vger.kernel.org, sw0312.kim@samsung.com, a.hajda@samsung.com List-Id: linux-samsung-soc@vger.kernel.org SGVsbG8sCgpPbiAyMDE1LTA2LTExIDA5OjA3LCBKb29ueW91bmcgU2hpbSB3cm90ZToKPiBXaXRo IGF0b21pYyBtb2Rlc2V0dGluZyBhbGwgdGhlIGNvbnRyb2wgZm9yIENSVEMsIFBsYW5lcywgRW5j b2RlcnMgYW5kCj4gQ29ubmVjdG9ycyBzaG91bGQgY29tZSBmcm9tIERSTSBjb3JlLCBzbyB0aGUg ZHJpdmVyIGlzIG5vdCBhbGxvd2VkIHRvCj4gZW5hYmxlIG9yIGRpc2FibGUgcGxhbmVzIGZyb20g aW5zaWRlIHRoZSBjcnRjX2VuYWJsZSgpL2Rpc2FibGUoKSBjYWxsLgo+Cj4gQnV0IGl0IG5lZWRz IHRvIGRpc2FibGUgcGxhbmVzIHdpdGggY3J0Y19kaXNhYmxlIGluIGV4eW5vcyBodyBkcml2ZXIK PiBpbnRlcm5hbGx5LiBCZWNhdXNlIGNydGMgaXMgZGlzYWJsZWQgYmVmb3JlIHBsYW5lIGlzIGRp c2FibGVkLCBpdCBtZWFucwo+IHBsYW5lX2Rpc2FibGUganVzdCByZXR1cm5zIHdpdGhvdXQgYW55 IHJlZ2lzdGVyIGNoYW5nZXMsIHRoZW4gd2UgY2Fubm90Cj4gYmUgc3VyZSBzZXR0aW5nIHJlZ2lz dGVyIHRvIGRpc2FibGUgcGxhbmUgd2hlbiBjcnRjIGlzIGRpc2FibGUuCj4KPiBUaGlzIHBhdGNo IHJlbW92ZXMgdGhpcyBjaGFpbmVkIGNhbGxzIHRvIGVuYWJsZSBwbGFuZSBmcm9tIGV4eW5vcyBo dwo+IGRyaXZlcnMgY29kZSBsZXR0aW5nIG9ubHkgRFJNIGNvcmUgdG91Y2ggcGxhbmVzIGV4Y2Vw dCB0byBkaXNhYmxlIHBsYW5lLgo+IEFsc28gaXQgbGVhZHMgZWxpbWluYWJsZSBlbmFibGVkIGFu ZCByZXN1bWUgb2Ygc3RydWN0IGV4eW5vc19kcm1fcGxhbmUuCj4KPiBTaWduZWQtb2ZmLWJ5OiBH dXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFkb3ZhbkBjb2xsYWJvcmEuY28udWs+Cj4gU2lnbmVk LW9mZi1ieTogSm9vbnlvdW5nIFNoaW0gPGp5MDkyMi5zaGltQHNhbXN1bmcuY29tPgoKVGVzdGVk LWJ5OiBNYXJlayBTenlwcm93c2tpIDxtLnN6eXByb3dza2lAc2Ftc3VuZy5jb20+Cgo+IC0tLQo+ IFRoaXMgcGF0Y2ggd2FzIG1vZGlmaWVkIGZyb20gb3JpZ2luYWwgcGF0Y2ggb2YgR3VzdGF2byBQ YWRvdmFuIC0KPiBodHRwOi8vd3d3LnNwaW5pY3MubmV0L2xpc3RzL2xpbnV4LXNhbXN1bmctc29j L21zZzQ1MzUxLmh0bWwKPgo+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9k ZWNvbi5jIHwgNjMgKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmggICAgfCAgNSAtLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMgICB8IDYzICsrKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYyAg IHwgMjcgLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4 ZXIuYyAgICAgIHwgNDEgKysrLS0tLS0tLS0tLS0tLS0tLQo+ICAgNSBmaWxlcyBjaGFuZ2VkLCAx OCBpbnNlcnRpb25zKCspLCAxODEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3M3X2RybV9kZWNvbi5jCj4gaW5kZXggZDY1OWJhMi4uZjczY2VhZSAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMKPiBAQCAtNDEwLDEx ICs0MTAsOCBAQCBzdGF0aWMgdm9pZCBkZWNvbl93aW5fY29tbWl0KHN0cnVjdCBleHlub3NfZHJt X2NydGMgKmNydGMsIHVuc2lnbmVkIGludCB3aW4pCj4gICAKPiAgIAlwbGFuZSA9ICZjdHgtPnBs YW5lc1t3aW5dOwo+ICAgCj4gLQkvKiBJZiBzdXNwZW5kZWQsIGVuYWJsZSB0aGlzIG9uIHJlc3Vt ZSAqLwo+IC0JaWYgKGN0eC0+c3VzcGVuZGVkKSB7Cj4gLQkJcGxhbmUtPnJlc3VtZSA9IHRydWU7 Cj4gKwlpZiAoY3R4LT5zdXNwZW5kZWQpCj4gICAJCXJldHVybjsKPiAtCX0KPiAgIAo+ICAgCS8q Cj4gICAJICogU0hBRE9XQ09OL1BSVENPTiByZWdpc3RlciBpcyB1c2VkIGZvciBlbmFibGluZyB0 aW1pbmcuCj4gQEAgLTUwNiw4ICs1MDMsNiBAQCBzdGF0aWMgdm9pZCBkZWNvbl93aW5fY29tbWl0 KHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGludCB3aW4pCj4gICAJdmFs ID0gcmVhZGwoY3R4LT5yZWdzICsgREVDT05fVVBEQVRFKTsKPiAgIAl2YWwgfD0gREVDT05fVVBE QVRFX1NUQU5EQUxPTkVfRjsKPiAgIAl3cml0ZWwodmFsLCBjdHgtPnJlZ3MgKyBERUNPTl9VUERB VEUpOwo+IC0KPiAtCXBsYW5lLT5lbmFibGVkID0gdHJ1ZTsKPiAgIH0KPiAgIAo+ICAgc3RhdGlj IHZvaWQgZGVjb25fd2luX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgdW5z aWduZWQgaW50IHdpbikKPiBAQCAtNTIxLDExICs1MTYsOCBAQCBzdGF0aWMgdm9pZCBkZWNvbl93 aW5fZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLCB1bnNpZ25lZCBpbnQgd2lu KQo+ICAgCj4gICAJcGxhbmUgPSAmY3R4LT5wbGFuZXNbd2luXTsKPiAgIAo+IC0JaWYgKGN0eC0+ c3VzcGVuZGVkKSB7Cj4gLQkJLyogZG8gbm90IHJlc3VtZSB0aGlzIHdpbmRvdyovCj4gLQkJcGxh bmUtPnJlc3VtZSA9IGZhbHNlOwo+ICsJaWYgKGN0eC0+c3VzcGVuZGVkKQo+ICAgCQlyZXR1cm47 Cj4gLQl9Cj4gICAKPiAgIAkvKiBwcm90ZWN0IHdpbmRvd3MgKi8KPiAgIAlkZWNvbl9zaGFkb3df cHJvdGVjdF93aW4oY3R4LCB3aW4sIHRydWUpOwo+IEBAIC01NDEsNDkgKzUzMyw2IEBAIHN0YXRp YyB2b2lkIGRlY29uX3dpbl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIHVu c2lnbmVkIGludCB3aW4pCj4gICAJdmFsID0gcmVhZGwoY3R4LT5yZWdzICsgREVDT05fVVBEQVRF KTsKPiAgIAl2YWwgfD0gREVDT05fVVBEQVRFX1NUQU5EQUxPTkVfRjsKPiAgIAl3cml0ZWwodmFs LCBjdHgtPnJlZ3MgKyBERUNPTl9VUERBVEUpOwo+IC0KPiAtCXBsYW5lLT5lbmFibGVkID0gZmFs c2U7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGRlY29uX3dpbmRvd19zdXNwZW5kKHN0cnVjdCBk ZWNvbl9jb250ZXh0ICpjdHgpCj4gLXsKPiAtCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFu ZTsKPiAtCWludCBpOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBXSU5ET1dTX05SOyBpKyspIHsK PiAtCQlwbGFuZSA9ICZjdHgtPnBsYW5lc1tpXTsKPiAtCQlwbGFuZS0+cmVzdW1lID0gcGxhbmUt PmVuYWJsZWQ7Cj4gLQkJaWYgKHBsYW5lLT5lbmFibGVkKQo+IC0JCQlkZWNvbl93aW5fZGlzYWJs ZShjdHgtPmNydGMsIGkpOwo+IC0JfQo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBkZWNvbl93aW5k b3dfcmVzdW1lKHN0cnVjdCBkZWNvbl9jb250ZXh0ICpjdHgpCj4gLXsKPiAtCXN0cnVjdCBleHlu b3NfZHJtX3BsYW5lICpwbGFuZTsKPiAtCWludCBpOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBX SU5ET1dTX05SOyBpKyspIHsKPiAtCQlwbGFuZSA9ICZjdHgtPnBsYW5lc1tpXTsKPiAtCQlwbGFu ZS0+ZW5hYmxlZCA9IHBsYW5lLT5yZXN1bWU7Cj4gLQkJcGxhbmUtPnJlc3VtZSA9IGZhbHNlOwo+ IC0JfQo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBkZWNvbl9hcHBseShzdHJ1Y3QgZGVjb25fY29u dGV4dCAqY3R4KQo+IC17Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSAqcGxhbmU7Cj4gLQlp bnQgaTsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgV0lORE9XU19OUjsgaSsrKSB7Cj4gLQkJcGxh bmUgPSAmY3R4LT5wbGFuZXNbaV07Cj4gLQkJaWYgKHBsYW5lLT5lbmFibGVkKQo+IC0JCQlkZWNv bl93aW5fY29tbWl0KGN0eC0+Y3J0YywgaSk7Cj4gLQkJZWxzZQo+IC0JCQlkZWNvbl93aW5fZGlz YWJsZShjdHgtPmNydGMsIGkpOwo+IC0JfQo+IC0KPiAtCWRlY29uX2NvbW1pdChjdHgtPmNydGMp Owo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBkZWNvbl9pbml0KHN0cnVjdCBkZWNvbl9jb250 ZXh0ICpjdHgpCj4gQEAgLTYyNSwxNCArNTc0LDEzIEBAIHN0YXRpYyB2b2lkIGRlY29uX2VuYWJs ZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAgCWlmICh0ZXN0X2FuZF9jbGVhcl9i aXQoMCwgJmN0eC0+aXJxX2ZsYWdzKSkKPiAgIAkJZGVjb25fZW5hYmxlX3ZibGFuayhjdHgtPmNy dGMpOwo+ICAgCj4gLQlkZWNvbl93aW5kb3dfcmVzdW1lKGN0eCk7Cj4gLQo+IC0JZGVjb25fYXBw bHkoY3R4KTsKPiArCWRlY29uX2NvbW1pdChjdHgtPmNydGMpOwo+ICAgfQo+ICAgCj4gICBzdGF0 aWMgdm9pZCBkZWNvbl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4gICB7 Cj4gICAJc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsKPiArCWludCBpOwo+ ICAgCj4gICAJaWYgKGN0eC0+c3VzcGVuZGVkKQo+ICAgCQlyZXR1cm47Cj4gQEAgLTY0Miw3ICs1 OTAsOCBAQCBzdGF0aWMgdm9pZCBkZWNvbl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMg KmNydGMpCj4gICAJICogc3VzcGVuZCB0aGF0IGNvbm5lY3Rvci4gT3RoZXJ3aXNlIHdlIG1pZ2h0 IHRyeSB0byBzY2FuIGZyb20KPiAgIAkgKiBhIGRlc3Ryb3llZCBidWZmZXIgbGF0ZXIuCj4gICAJ ICovCj4gLQlkZWNvbl93aW5kb3dfc3VzcGVuZChjdHgpOwo+ICsJZm9yIChpID0gMDsgaSA8IFdJ TkRPV1NfTlI7IGkrKykKPiArCQlkZWNvbl93aW5fZGlzYWJsZShjcnRjLCBpKTsKPiAgIAo+ICAg CWNsa19kaXNhYmxlX3VucHJlcGFyZShjdHgtPnZjbGspOwo+ICAgCWNsa19kaXNhYmxlX3VucHJl cGFyZShjdHgtPmVjbGspOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgK PiBpbmRleCAxYzY2ZjY1Li4yOTFmMTMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zX2RybV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9kcnYuaAo+IEBAIC03MSw4ICs3MSw2IEBAIGVudW0gZXh5bm9zX2RybV9vdXRwdXRf dHlwZSB7Cj4gICAgKiBAZG1hX2FkZHI6IGFycmF5IG9mIGJ1cyhhY2Nlc3NlZCBieSBkbWEpIGFk ZHJlc3MgdG8gdGhlIG1lbW9yeSByZWdpb24KPiAgICAqCSAgICAgIGFsbG9jYXRlZCBmb3IgYSBv dmVybGF5Lgo+ICAgICogQHpwb3M6IG9yZGVyIG9mIG92ZXJsYXkgbGF5ZXIoeiBwb3NpdGlvbiku Cj4gLSAqIEBlbmFibGVkOiBlbmFibGVkIG9yIG5vdC4KPiAtICogQHJlc3VtZTogdG8gcmVzdW1l IG9yIG5vdC4KPiAgICAqCj4gICAgKiB0aGlzIHN0cnVjdHVyZSBpcyBjb21tb24gdG8gZXh5bm9z IFNvQyBhbmQgaXRzIGNvbnRlbnRzIHdvdWxkIGJlIGNvcGllZAo+ICAgICogdG8gaGFyZHdhcmUg c3BlY2lmaWMgb3ZlcmxheSBpbmZvLgo+IEBAIC0xMDEsOSArOTksNiBAQCBzdHJ1Y3QgZXh5bm9z X2RybV9wbGFuZSB7Cj4gICAJdWludDMyX3QgcGl4ZWxfZm9ybWF0Owo+ICAgCWRtYV9hZGRyX3Qg ZG1hX2FkZHJbTUFYX0ZCX0JVRkZFUl07Cj4gICAJdW5zaWduZWQgaW50IHpwb3M7Cj4gLQo+IC0J Ym9vbCBlbmFibGVkOjE7Cj4gLQlib29sIHJlc3VtZToxOwo+ICAgfTsKPiAgIAo+ICAgLyoKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKPiBpbmRleCA5NjYxODUzLi5i NDVlMDliIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9m aW1kLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCj4g QEAgLTYzNCwxMSArNjM0LDggQEAgc3RhdGljIHZvaWQgZmltZF93aW5fY29tbWl0KHN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGludCB3aW4pCj4gICAKPiAgIAlwbGFuZSA9 ICZjdHgtPnBsYW5lc1t3aW5dOwo+ICAgCj4gLQkvKiBJZiBzdXNwZW5kZWQsIGVuYWJsZSB0aGlz IG9uIHJlc3VtZSAqLwo+IC0JaWYgKGN0eC0+c3VzcGVuZGVkKSB7Cj4gLQkJcGxhbmUtPnJlc3Vt ZSA9IHRydWU7Cj4gKwlpZiAoY3R4LT5zdXNwZW5kZWQpCj4gICAJCXJldHVybjsKPiAtCX0KPiAg IAo+ICAgCS8qCj4gICAJICogU0hBRE9XQ09OL1BSVENPTiByZWdpc3RlciBpcyB1c2VkIGZvciBl bmFibGluZyB0aW1pbmcuCj4gQEAgLTcyOCw4ICs3MjUsNiBAQCBzdGF0aWMgdm9pZCBmaW1kX3dp bl9jb21taXQoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IHdpbikK PiAgIAkvKiBFbmFibGUgRE1BIGNoYW5uZWwgYW5kIHVucHJvdGVjdCB3aW5kb3dzICovCj4gICAJ ZmltZF9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCB3aW4sIGZhbHNlKTsKPiAgIAo+IC0JcGxhbmUt PmVuYWJsZWQgPSB0cnVlOwo+IC0KPiAgIAlpZiAoY3R4LT5pODBfaWYpCj4gICAJCWF0b21pY19z ZXQoJmN0eC0+d2luX3VwZGF0ZWQsIDEpOwo+ICAgfQo+IEBAIC03NDQsMTEgKzczOSw4IEBAIHN0 YXRpYyB2b2lkIGZpbWRfd2luX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0Yywg dW5zaWduZWQgaW50IHdpbikKPiAgIAo+ICAgCXBsYW5lID0gJmN0eC0+cGxhbmVzW3dpbl07Cj4g ICAKPiAtCWlmIChjdHgtPnN1c3BlbmRlZCkgewo+IC0JCS8qIGRvIG5vdCByZXN1bWUgdGhpcyB3 aW5kb3cqLwo+IC0JCXBsYW5lLT5yZXN1bWUgPSBmYWxzZTsKPiArCWlmIChjdHgtPnN1c3BlbmRl ZCkKPiAgIAkJcmV0dXJuOwo+IC0JfQo+ICAgCj4gICAJLyogcHJvdGVjdCB3aW5kb3dzICovCj4g ICAJZmltZF9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCB3aW4sIHRydWUpOwo+IEBAIC03NjAsNDkg Kzc1Miw2IEBAIHN0YXRpYyB2b2lkIGZpbWRfd2luX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YywgdW5zaWduZWQgaW50IHdpbikKPiAgIAo+ICAgCS8qIHVucHJvdGVjdCB3aW5k b3dzICovCj4gICAJZmltZF9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCB3aW4sIGZhbHNlKTsKPiAt Cj4gLQlwbGFuZS0+ZW5hYmxlZCA9IGZhbHNlOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBmaW1k X3dpbmRvd19zdXNwZW5kKHN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCkKPiAtewo+IC0Jc3RydWN0 IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lOwo+IC0JaW50IGk7Cj4gLQo+IC0JZm9yIChpID0gMDsg aSA8IFdJTkRPV1NfTlI7IGkrKykgewo+IC0JCXBsYW5lID0gJmN0eC0+cGxhbmVzW2ldOwo+IC0J CXBsYW5lLT5yZXN1bWUgPSBwbGFuZS0+ZW5hYmxlZDsKPiAtCQlpZiAocGxhbmUtPmVuYWJsZWQp Cj4gLQkJCWZpbWRfd2luX2Rpc2FibGUoY3R4LT5jcnRjLCBpKTsKPiAtCX0KPiAtfQo+IC0KPiAt c3RhdGljIHZvaWQgZmltZF93aW5kb3dfcmVzdW1lKHN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCkK PiAtewo+IC0Jc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lOwo+IC0JaW50IGk7Cj4gLQo+ IC0JZm9yIChpID0gMDsgaSA8IFdJTkRPV1NfTlI7IGkrKykgewo+IC0JCXBsYW5lID0gJmN0eC0+ cGxhbmVzW2ldOwo+IC0JCXBsYW5lLT5lbmFibGVkID0gcGxhbmUtPnJlc3VtZTsKPiAtCQlwbGFu ZS0+cmVzdW1lID0gZmFsc2U7Cj4gLQl9Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGZpbWRfYXBw bHkoc3RydWN0IGZpbWRfY29udGV4dCAqY3R4KQo+IC17Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9w bGFuZSAqcGxhbmU7Cj4gLQlpbnQgaTsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgV0lORE9XU19O UjsgaSsrKSB7Cj4gLQkJcGxhbmUgPSAmY3R4LT5wbGFuZXNbaV07Cj4gLQkJaWYgKHBsYW5lLT5l bmFibGVkKQo+IC0JCQlmaW1kX3dpbl9jb21taXQoY3R4LT5jcnRjLCBpKTsKPiAtCQllbHNlCj4g LQkJCWZpbWRfd2luX2Rpc2FibGUoY3R4LT5jcnRjLCBpKTsKPiAtCX0KPiAtCj4gLQlmaW1kX2Nv bW1pdChjdHgtPmNydGMpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBmaW1kX2VuYWJsZShz dHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+IEBAIC04MjMsMTQgKzc3MiwxMyBAQCBzdGF0 aWMgdm9pZCBmaW1kX2VuYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAgCWlm ICh0ZXN0X2FuZF9jbGVhcl9iaXQoMCwgJmN0eC0+aXJxX2ZsYWdzKSkKPiAgIAkJZmltZF9lbmFi bGVfdmJsYW5rKGN0eC0+Y3J0Yyk7Cj4gICAKPiAtCWZpbWRfd2luZG93X3Jlc3VtZShjdHgpOwo+ IC0KPiAtCWZpbWRfYXBwbHkoY3R4KTsKPiArCWZpbWRfY29tbWl0KGN0eC0+Y3J0Yyk7Cj4gICB9 Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGZpbWRfZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRj ICpjcnRjKQo+ICAgewo+ICAgCXN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0eDsK PiArCWludCBpOwo+ICAgCj4gICAJaWYgKGN0eC0+c3VzcGVuZGVkKQo+ICAgCQlyZXR1cm47Cj4g QEAgLTg0MCw3ICs3ODgsOCBAQCBzdGF0aWMgdm9pZCBmaW1kX2Rpc2FibGUoc3RydWN0IGV4eW5v c19kcm1fY3J0YyAqY3J0YykKPiAgIAkgKiBzdXNwZW5kIHRoYXQgY29ubmVjdG9yLiBPdGhlcndp c2Ugd2UgbWlnaHQgdHJ5IHRvIHNjYW4gZnJvbQo+ICAgCSAqIGEgZGVzdHJveWVkIGJ1ZmZlciBs YXRlci4KPiAgIAkgKi8KPiAtCWZpbWRfd2luZG93X3N1c3BlbmQoY3R4KTsKPiArCWZvciAoaSA9 IDA7IGkgPCBXSU5ET1dTX05SOyBpKyspCj4gKwkJZmltZF93aW5fZGlzYWJsZShjcnRjLCBpKTsK PiAgIAo+ICAgCWNsa19kaXNhYmxlX3VucHJlcGFyZShjdHgtPmxjZF9jbGspOwo+ICAgCWNsa19k aXNhYmxlX3VucHJlcGFyZShjdHgtPmJ1c19jbGspOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX3ZpZGkuYwo+IGluZGV4IGFiZTRlZTAuLmU1NTE3NGYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92aWRpLmMKPiBAQCAtMTMxLDMzICsxMzEsMTUgQEAg c3RhdGljIHZvaWQgdmlkaV93aW5fY29tbWl0KHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMs IHVuc2lnbmVkIGludCB3aW4pCj4gICAKPiAgIAlwbGFuZSA9ICZjdHgtPnBsYW5lc1t3aW5dOwo+ ICAgCj4gLQlwbGFuZS0+ZW5hYmxlZCA9IHRydWU7Cj4gLQo+ICAgCURSTV9ERUJVR19LTVMoImRt YV9hZGRyID0gJXBhZFxuIiwgcGxhbmUtPmRtYV9hZGRyKTsKPiAgIAo+ICAgCWlmIChjdHgtPnZi bGFua19vbikKPiAgIAkJc2NoZWR1bGVfd29yaygmY3R4LT53b3JrKTsKPiAgIH0KPiAgIAo+IC1z dGF0aWMgdm9pZCB2aWRpX3dpbl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMs IHVuc2lnbmVkIGludCB3aW4pCj4gLXsKPiAtCXN0cnVjdCB2aWRpX2NvbnRleHQgKmN0eCA9IGNy dGMtPmN0eDsKPiAtCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpwbGFuZTsKPiAtCj4gLQlpZiAo d2luIDwgMCB8fCB3aW4gPj0gV0lORE9XU19OUikKPiAtCQlyZXR1cm47Cj4gLQo+IC0JcGxhbmUg PSAmY3R4LT5wbGFuZXNbd2luXTsKPiAtCXBsYW5lLT5lbmFibGVkID0gZmFsc2U7Cj4gLQo+IC0J LyogVE9ETy4gKi8KPiAtfQo+IC0KPiAgIHN0YXRpYyB2b2lkIHZpZGlfZW5hYmxlKHN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmNydGMpCj4gICB7Cj4gICAJc3RydWN0IHZpZGlfY29udGV4dCAqY3R4 ID0gY3J0Yy0+Y3R4Owo+IC0Jc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lOwo+IC0JaW50 IGk7Cj4gICAKPiAgIAltdXRleF9sb2NrKCZjdHgtPmxvY2spOwo+ICAgCj4gQEAgLTE2NywyMCAr MTQ5LDEyIEBAIHN0YXRpYyB2b2lkIHZpZGlfZW5hYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMg KmNydGMpCj4gICAJaWYgKHRlc3RfYW5kX2NsZWFyX2JpdCgwLCAmY3R4LT5pcnFfZmxhZ3MpKQo+ ICAgCQl2aWRpX2VuYWJsZV92YmxhbmsoY3R4LT5jcnRjKTsKPiAgIAo+IC0JZm9yIChpID0gMDsg aSA8IFdJTkRPV1NfTlI7IGkrKykgewo+IC0JCXBsYW5lID0gJmN0eC0+cGxhbmVzW2ldOwo+IC0J CWlmIChwbGFuZS0+ZW5hYmxlZCkKPiAtCQkJdmlkaV93aW5fY29tbWl0KGN0eC0+Y3J0YywgaSk7 Cj4gLQl9Cj4gLQo+ICAgCW11dGV4X3VubG9jaygmY3R4LT5sb2NrKTsKPiAgIH0KPiAgIAo+ICAg c3RhdGljIHZvaWQgdmlkaV9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCj4g ICB7Cj4gICAJc3RydWN0IHZpZGlfY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4Owo+IC0Jc3RydWN0 IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lOwo+IC0JaW50IGk7Cj4gICAKPiAgIAltdXRleF9sb2Nr KCZjdHgtPmxvY2spOwo+ICAgCj4gQEAgLTIwNiw3ICsxODAsNiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgdmlkaV9jcnRjX29wcyA9IHsKPiAgIAkuZW5hYmxlX3Zi bGFuayA9IHZpZGlfZW5hYmxlX3ZibGFuaywKPiAgIAkuZGlzYWJsZV92YmxhbmsgPSB2aWRpX2Rp c2FibGVfdmJsYW5rLAo+ICAgCS53aW5fY29tbWl0ID0gdmlkaV93aW5fY29tbWl0LAo+IC0JLndp bl9kaXNhYmxlID0gdmlkaV93aW5fZGlzYWJsZSwKPiAgIH07Cj4gICAKPiAgIHN0YXRpYyB2b2lk IHZpZGlfZmFrZV92YmxhbmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVyLmMgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4gaW5kZXggNmJhYjcxNy4uZmQ4OGFlMSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYwo+IEBAIC05MzcsOCArOTM3 LDYgQEAgc3RhdGljIHZvaWQgbWl4ZXJfd2luX2NvbW1pdChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRj ICpjcnRjLCB1bnNpZ25lZCBpbnQgd2luKQo+ICAgCQl2cF92aWRlb19idWZmZXIobWl4ZXJfY3R4 LCB3aW4pOwo+ICAgCWVsc2UKPiAgIAkJbWl4ZXJfZ3JhcGhfYnVmZmVyKG1peGVyX2N0eCwgd2lu KTsKPiAtCj4gLQltaXhlcl9jdHgtPnBsYW5lc1t3aW5dLmVuYWJsZWQgPSB0cnVlOwo+ICAgfQo+ ICAgCj4gICBzdGF0aWMgdm9pZCBtaXhlcl93aW5fZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9j cnRjICpjcnRjLCB1bnNpZ25lZCBpbnQgd2luKQo+IEBAIC05NTIsNyArOTUwLDYgQEAgc3RhdGlj IHZvaWQgbWl4ZXJfd2luX2Rpc2FibGUoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YywgdW5z aWduZWQgaW50IHdpbikKPiAgIAltdXRleF9sb2NrKCZtaXhlcl9jdHgtPm1peGVyX211dGV4KTsK PiAgIAlpZiAoIW1peGVyX2N0eC0+cG93ZXJlZCkgewo+ICAgCQltdXRleF91bmxvY2soJm1peGVy X2N0eC0+bWl4ZXJfbXV0ZXgpOwo+IC0JCW1peGVyX2N0eC0+cGxhbmVzW3dpbl0ucmVzdW1lID0g ZmFsc2U7Cj4gICAJCXJldHVybjsKPiAgIAl9Cj4gICAJbXV0ZXhfdW5sb2NrKCZtaXhlcl9jdHgt Pm1peGVyX211dGV4KTsKPiBAQCAtOTY0LDggKzk2MSw2IEBAIHN0YXRpYyB2b2lkIG1peGVyX3dp bl9kaXNhYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsIHVuc2lnbmVkIGludCB3aW4p Cj4gICAKPiAgIAltaXhlcl92c3luY19zZXRfdXBkYXRlKG1peGVyX2N0eCwgdHJ1ZSk7Cj4gICAJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmVzLT5yZWdfc2xvY2ssIGZsYWdzKTsKPiAtCj4gLQlt aXhlcl9jdHgtPnBsYW5lc1t3aW5dLmVuYWJsZWQgPSBmYWxzZTsKPiAgIH0KPiAgIAo+ICAgc3Rh dGljIHZvaWQgbWl4ZXJfd2FpdF9mb3JfdmJsYW5rKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNy dGMpCj4gQEAgLTEwMDAsMzMgKzk5NSw2IEBAIHN0YXRpYyB2b2lkIG1peGVyX3dhaXRfZm9yX3Zi bGFuayhzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAgCWRybV92YmxhbmtfcHV0KG1p eGVyX2N0eC0+ZHJtX2RldiwgbWl4ZXJfY3R4LT5waXBlKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMg dm9pZCBtaXhlcl93aW5kb3dfc3VzcGVuZChzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4KQo+IC17 Cj4gLQlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSAqcGxhbmU7Cj4gLQlpbnQgaTsKPiAtCj4gLQlm b3IgKGkgPSAwOyBpIDwgTUlYRVJfV0lOX05SOyBpKyspIHsKPiAtCQlwbGFuZSA9ICZjdHgtPnBs YW5lc1tpXTsKPiAtCQlwbGFuZS0+cmVzdW1lID0gcGxhbmUtPmVuYWJsZWQ7Cj4gLQkJbWl4ZXJf d2luX2Rpc2FibGUoY3R4LT5jcnRjLCBpKTsKPiAtCX0KPiAtCW1peGVyX3dhaXRfZm9yX3ZibGFu ayhjdHgtPmNydGMpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBtaXhlcl93aW5kb3dfcmVzdW1l KHN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHgpCj4gLXsKPiAtCXN0cnVjdCBleHlub3NfZHJtX3Bs YW5lICpwbGFuZTsKPiAtCWludCBpOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCBNSVhFUl9XSU5f TlI7IGkrKykgewo+IC0JCXBsYW5lID0gJmN0eC0+cGxhbmVzW2ldOwo+IC0JCXBsYW5lLT5lbmFi bGVkID0gcGxhbmUtPnJlc3VtZTsKPiAtCQlwbGFuZS0+cmVzdW1lID0gZmFsc2U7Cj4gLQkJaWYg KHBsYW5lLT5lbmFibGVkKQo+IC0JCQltaXhlcl93aW5fY29tbWl0KGN0eC0+Y3J0YywgaSk7Cj4g LQl9Cj4gLX0KPiAtCj4gICBzdGF0aWMgdm9pZCBtaXhlcl9lbmFibGUoc3RydWN0IGV4eW5vc19k cm1fY3J0YyAqY3J0YykKPiAgIHsKPiAgIAlzdHJ1Y3QgbWl4ZXJfY29udGV4dCAqY3R4ID0gY3J0 Yy0+Y3R4Owo+IEBAIC0xMDU4LDE0ICsxMDI2LDEzIEBAIHN0YXRpYyB2b2lkIG1peGVyX2VuYWJs ZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAgCj4gICAJbWl4ZXJfcmVnX3dyaXRl KHJlcywgTVhSX0lOVF9FTiwgY3R4LT5pbnRfZW4pOwo+ICAgCW1peGVyX3dpbl9yZXNldChjdHgp Owo+IC0KPiAtCW1peGVyX3dpbmRvd19yZXN1bWUoY3R4KTsKPiAgIH0KPiAgIAo+ICAgc3RhdGlj IHZvaWQgbWl4ZXJfZGlzYWJsZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAgewo+ ICAgCXN0cnVjdCBtaXhlcl9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7Cj4gICAJc3RydWN0IG1p eGVyX3Jlc291cmNlcyAqcmVzID0gJmN0eC0+bWl4ZXJfcmVzOwo+ICsJaW50IGk7Cj4gICAKPiAg IAltdXRleF9sb2NrKCZjdHgtPm1peGVyX211dGV4KTsKPiAgIAlpZiAoIWN0eC0+cG93ZXJlZCkg ewo+IEBAIC0xMDc2LDcgKzEwNDMsMTEgQEAgc3RhdGljIHZvaWQgbWl4ZXJfZGlzYWJsZShzdHJ1 Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQo+ICAgCj4gICAJbWl4ZXJfc3RvcChjdHgpOwo+ICAg CW1peGVyX3JlZ3NfZHVtcChjdHgpOwo+IC0JbWl4ZXJfd2luZG93X3N1c3BlbmQoY3R4KTsKPiAr Cj4gKwlmb3IgKGkgPSAwOyBpIDwgTUlYRVJfV0lOX05SOyBpKyspCj4gKwkJbWl4ZXJfd2luX2Rp c2FibGUoY3J0YywgaSk7Cj4gKwo+ICsJbWl4ZXJfd2FpdF9mb3JfdmJsYW5rKGN0eC0+Y3J0Yyk7 Cj4gICAKPiAgIAljdHgtPmludF9lbiA9IG1peGVyX3JlZ19yZWFkKHJlcywgTVhSX0lOVF9FTik7 Cj4gICAKCkJlc3QgcmVnYXJkcwotLSAKTWFyZWsgU3p5cHJvd3NraSwgUGhEClNhbXN1bmcgUiZE IEluc3RpdHV0ZSBQb2xhbmQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==