From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: Re: [RFC v3 5/8] drm/msm: update cursors asynchronously through atomic Date: Wed, 17 May 2017 10:56:25 +0530 Message-ID: <9ba97677-adbb-6589-cdf6-0619f86e0dd2@codeaurora.org> References: <20170512191054.10074-1-gustavo@padovan.org> <20170512191054.10074-6-gustavo@padovan.org> <99acad61-8906-adb1-bcb4-a704dbed833c@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from smtp.codeaurora.org (smtp.codeaurora.org [198.145.29.96]) by gabe.freedesktop.org (Postfix) with ESMTPS id 017A96E038 for ; Wed, 17 May 2017 05:26:29 +0000 (UTC) In-Reply-To: <99acad61-8906-adb1-bcb4-a704dbed833c@codeaurora.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 , dri-devel@lists.freedesktop.org Cc: Gustavo Padovan List-Id: dri-devel@lists.freedesktop.org SGksCgpPbiAwNS8xNi8yMDE3IDA4OjE0IFBNLCBBcmNoaXQgVGFuZWphIHdyb3RlOgo+Cj4KPiBP biA1LzEzLzIwMTcgMTI6NDAgQU0sIEd1c3Rhdm8gUGFkb3ZhbiB3cm90ZToKPj4gRnJvbTogR3Vz dGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvbT4KPj4KPj4gQWRkIHN1 cHBvcnQgdG8gYXN5bmMgdXBkYXRlcyBvZiBjdXJzb3JzIGJ5IHVzaW5nIHRoZSBuZXcgYXRvbWlj Cj4+IGludGVyZmFjZSBmb3IgdGhhdC4gQmFzaWNhbGx5IHdoYXQgdGhpcyBjb21taXQgZG9lcyBp cyBkbyB3aGF0Cj4+IG1kcDVfdXBkYXRlX2N1cnNvcl9wbGFuZV9sZWdhY3koKSBkaWQgYnV0IHRo cm91Z2ggYXRvbWljLgo+Cj4gV29ya3Mgd2VsbCBvbiBEQjgyMGMgKHdoaWNoIGhhcyBhIEFQUTgw OTYgU29DKS4KPgo+IFRlc3RlZC1ieTogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3Jh Lm9yZz4KCkFjdHVhbGx5LCBhZnRlciBzb21lIG1vcmUgdGhvcm91Z2ggdGVzdGluZywgSSBmb3Vu ZCBvbmUgaXNzdWUsIG1lbnRpb25lZCBiZWxvdy4KCj4KPj4KPj4gdjM6IG1vdmUgc2l6ZSBjaGVj a3MgYmFjayB0byBkcml2ZXJzIChWaWxsZSBTeXJqw6Rsw6QpCj4+Cj4+IHYyOiBtb3ZlIGZiIHNl dHRpbmcgdG8gY29yZSBhbmQgdXNlIG5ldyBzdGF0ZSAoRXJpYyBBbmhvbHQpCj4+Cj4+IENjOiBS b2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8g UGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9yYS5jb20+Cj4+IC0tLQo+PiAgIGRyaXZl cnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jIHwgMTUxICsrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCA4 OCBkZWxldGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbWRw L21kcDUvbWRwNV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3Bs YW5lLmMKPj4gaW5kZXggYTM4YzVmZS4uMDcxMDZjMSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKPj4gQEAgLTMzLDE1ICszMyw2IEBAIHN0YXRpYyBp bnQgbWRwNV9wbGFuZV9tb2RlX3NldChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPj4gICAgICAg ICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4+ ICAgICAgICAgICBzdHJ1Y3QgZHJtX3JlY3QgKnNyYywgc3RydWN0IGRybV9yZWN0ICpkZXN0KTsK Pj4gICAtc3RhdGljIGludCBtZHA1X3VwZGF0ZV9jdXJzb3JfcGxhbmVfbGVnYWN5KHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+PiAtICAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+IC0g ICAgICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+PiAtICAgICAgICBpbnQgY3J0Y194 LCBpbnQgY3J0Y195LAo+PiAtICAgICAgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBp bnQgY3J0Y19oLAo+PiAtICAgICAgICB1aW50MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksCj4+ IC0gICAgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKPj4gLSAgICAgICAgc3Ry dWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpjdHgpOwo+PiAtCj4+ICAgc3RhdGljIHN0cnVj dCBtZHA1X2ttcyAqZ2V0X2ttcyhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPj4gICB7Cj4+ICAg ICAgIHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBwbGFuZS0+ZGV2LT5kZXZfcHJpdmF0 ZTsKPj4gQEAgLTI1Nyw3ICsyNDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wbGFuZV9m dW5jcyBtZHA1X3BsYW5lX2Z1bmNzID0gewo+PiAgIH07Cj4+ICAgICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRybV9wbGFuZV9mdW5jcyBtZHA1X2N1cnNvcl9wbGFuZV9mdW5jcyA9IHsKPj4gLSAgICAg ICAgLnVwZGF0ZV9wbGFuZSA9IG1kcDVfdXBkYXRlX2N1cnNvcl9wbGFuZV9sZWdhY3ksCj4+ICsg ICAgICAgIC51cGRhdGVfcGxhbmUgPSBkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfcGxhbmUsCj4+ ICAgICAgICAgICAuZGlzYWJsZV9wbGFuZSA9IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxh bmUsCj4+ICAgICAgICAgICAuZGVzdHJveSA9IG1kcDVfcGxhbmVfZGVzdHJveSwKPj4gICAgICAg ICAgIC5zZXRfcHJvcGVydHkgPSBkcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9zZXRfcHJvcGVydHks Cj4+IEBAIC00ODQsMTEgKzQ3NSw3MyBAQCBzdGF0aWMgdm9pZCBtZHA1X3BsYW5lX2F0b21pY191 cGRhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4+ICAgICAgIH0KPj4gICB9Cj4+ICAgK3N0 YXRpYyBpbnQgbWRwNV9wbGFuZV9hdG9taWNfYXN5bmNfY2hlY2soc3RydWN0IGRybV9wbGFuZSAq cGxhbmUsCj4+ICsgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpz dGF0ZSkKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgbWRwNV9wbGFuZV9zdGF0ZSAqbWRwNV9zdGF0ZSA9 IHRvX21kcDVfcGxhbmVfc3RhdGUoc3RhdGUpOwo+PiArICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZTsKPj4gKwo+PiArICAgIGNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9l eGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLT5zdGF0ZSwKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0ZS0+Y3J0Yyk7CgpJIHNlZSBhIGtlcm5lbCBzcGxhdCBoZXJlIChhIE5VTEwg cG9pbnRlciBkZXJlZmVyZW5jZSkuIFRoZSBhc3luY19jaGVjawpmdW5jdGlvbiBhc3N1bWVzIHRo YXQgdGhlcmUgaXMgYWx3YXlzIGdvaW5nIHRvIGJlIGEgcGxhbmVfc3RhdGUtPmNydGMKYXZhaWxh YmxlLiBUaGlzIGRvZXNuJ3Qgc2VlbSB0byBiZSB0aGUgY2FzZSBhdCBsZWFzdCBpbiB0aGUKZHJt X2F0b21pY19oZWxwZXJfZGlzYWJsZV9wbGFuZSgpIHBhdGguIE1vdmluZyB0aGUgY2hlY2sgdG8g c2V0CmxlZ2FjeV9jdXJzb3JfdXBkYXRlIGFmdGVyIGNhbGxpbmcgX19kcm1fYXRvbWljX2hlbHBl cl9kaXNhYmxlX3BsYW5lKCkKc2VlbXMgdG8gZml4IHRoZSBpc3N1ZS4gRG8geW91IHRoaW5rIGl0 J3MgYSBsZWdpdCBmaXg/CgpPbmUgbW9yZSBwb2ludCB3LnIudCBtc20gZHJpdmVyIGlzIHRoYXQg d2UgZG9uJ3QgdXNlIHRoZSBkZWZhdWx0CmRybV9hdG9taWNfaGVscGVyX2NvbW1pdCgpIGZvciBv dXIgYXRvbWljX2NvbW1pdCBvcC4gU28gSSBoYWQgdG8KY2FsbCBkcm1fYXRvbWljX2hlbHBlcl9h c3luY19jb21taXQoKSBmcm9tIG91ciBhdG9taWNfY29tbWl0CmltcGxlbWVudGF0aW9uCihpLmUs IGluIG1zbV9hdG9taWNfY29tbWl0IGluIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5j KQoKVGhhbmtzLApBcmNoaXQKCj4+ICsgICAgaWYgKFdBUk5fT04oIWNydGNfc3RhdGUpKQo+PiAr ICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArICAgIGlmICghY3J0Y19zdGF0ZS0+YWN0 aXZlKQo+PiArICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArICAgIG1kcDVfc3RhdGUg PSB0b19tZHA1X3BsYW5lX3N0YXRlKHN0YXRlKTsKPj4gKwo+PiArICAgIC8qIGRvbid0IHVzZSBm YXN0IHBhdGggaWYgd2UgZG9uJ3QgaGF2ZSBhIGh3cGlwZSBhbGxvY2F0ZWQgeWV0ICovCj4+ICsg ICAgaWYgKCFtZHA1X3N0YXRlLT5od3BpcGUpCj4+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ PiArCj4+ICsgICAgLyogb25seSBhbGxvdyBjaGFuZ2luZyBvZiBwb3NpdGlvbihjcnRjIHgveSBv ciBzcmMgeC95KSBpbiBmYXN0IHBhdGggKi8KPj4gKyAgICBpZiAocGxhbmUtPnN0YXRlLT5jcnRj ICE9IHN0YXRlLT5jcnRjIHx8Cj4+ICsgICAgICAgIHBsYW5lLT5zdGF0ZS0+c3JjX3cgIT0gc3Rh dGUtPnNyY193IHx8Cj4+ICsgICAgICAgIHBsYW5lLT5zdGF0ZS0+c3JjX2ggIT0gc3RhdGUtPnNy Y19oIHx8Cj4+ICsgICAgICAgIHBsYW5lLT5zdGF0ZS0+Y3J0Y193ICE9IHN0YXRlLT5jcnRjX3cg fHwKPj4gKyAgICAgICAgcGxhbmUtPnN0YXRlLT5jcnRjX2ggIT0gc3RhdGUtPmNydGNfaCB8fAo+ PiArICAgICAgICAhcGxhbmUtPnN0YXRlLT5mYiB8fAo+PiArICAgICAgICBwbGFuZS0+c3RhdGUt PmZiICE9IHN0YXRlLT5mYikKPj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKyAg ICByZXR1cm4gMDsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgbWRwNV9wbGFuZV9hdG9taWNf YXN5bmNfdXBkYXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+PiArICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3RhdGUpCj4+ICt7Cj4+ICsgICAg cGxhbmUtPnN0YXRlLT5zcmNfeCA9IG5ld19zdGF0ZS0+c3JjX3g7Cj4+ICsgICAgcGxhbmUtPnN0 YXRlLT5zcmNfeSA9IG5ld19zdGF0ZS0+c3JjX3k7Cj4+ICsgICAgcGxhbmUtPnN0YXRlLT5jcnRj X3ggPSBuZXdfc3RhdGUtPmNydGNfeDsKPj4gKyAgICBwbGFuZS0+c3RhdGUtPmNydGNfeSA9IG5l d19zdGF0ZS0+Y3J0Y195Owo+PiArCj4+ICsgICAgaWYgKHBsYW5lX2VuYWJsZWQobmV3X3N0YXRl KSkgewo+PiArICAgICAgICBzdHJ1Y3QgbWRwNV9jdGwgKmN0bDsKPj4gKyAgICAgICAgc3RydWN0 IG1kcDVfcGlwZWxpbmUgKnBpcGVsaW5lID0KPj4gKyAgICAgICAgICAgICAgICAgICAgbWRwNV9j cnRjX2dldF9waXBlbGluZShwbGFuZS0+Y3J0Yyk7Cj4+ICsgICAgICAgIGludCByZXQ7Cj4+ICsK Pj4gKyAgICAgICAgcmV0ID0gbWRwNV9wbGFuZV9tb2RlX3NldChwbGFuZSwgbmV3X3N0YXRlLT5j cnRjLCBuZXdfc3RhdGUtPmZiLAo+PiArICAgICAgICAgICAgICAgICZuZXdfc3RhdGUtPnNyYywg Jm5ld19zdGF0ZS0+ZHN0KTsKPj4gKyAgICAgICAgV0FSTl9PTihyZXQgPCAwKTsKPj4gKwo+PiAr ICAgICAgICBjdGwgPSBtZHA1X2NydGNfZ2V0X2N0bChuZXdfc3RhdGUtPmNydGMpOwo+PiArCj4+ ICsgICAgICAgIG1kcDVfY3RsX2NvbW1pdChjdGwsIHBpcGVsaW5lLCBtZHA1X3BsYW5lX2dldF9m bHVzaChwbGFuZSkpOwo+PiArICAgIH0KPj4gKwo+PiArICAgICp0b19tZHA1X3BsYW5lX3N0YXRl KHBsYW5lLT5zdGF0ZSkgPQo+PiArICAgICAgICAqdG9fbWRwNV9wbGFuZV9zdGF0ZShuZXdfc3Rh dGUpOwo+PiArfQo+PiArCj4+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVy X2Z1bmNzIG1kcDVfcGxhbmVfaGVscGVyX2Z1bmNzID0gewo+PiAgICAgICAgICAgLnByZXBhcmVf ZmIgPSBtZHA1X3BsYW5lX3ByZXBhcmVfZmIsCj4+ICAgICAgICAgICAuY2xlYW51cF9mYiA9IG1k cDVfcGxhbmVfY2xlYW51cF9mYiwKPj4gICAgICAgICAgIC5hdG9taWNfY2hlY2sgPSBtZHA1X3Bs YW5lX2F0b21pY19jaGVjaywKPj4gICAgICAgICAgIC5hdG9taWNfdXBkYXRlID0gbWRwNV9wbGFu ZV9hdG9taWNfdXBkYXRlLAo+PiArICAgICAgICAuYXRvbWljX2FzeW5jX2NoZWNrID0gbWRwNV9w bGFuZV9hdG9taWNfYXN5bmNfY2hlY2ssCj4+ICsgICAgICAgIC5hdG9taWNfYXN5bmNfdXBkYXRl ID0gbWRwNV9wbGFuZV9hdG9taWNfYXN5bmNfdXBkYXRlLAo+PiAgIH07Cj4+ICAgICBzdGF0aWMg dm9pZCBzZXRfc2Nhbm91dF9sb2NrZWQoc3RydWN0IG1kcDVfa21zICptZHA1X2ttcywKPj4gQEAg LTk5Nyw4NCArMTA1MCw2IEBAIHN0YXRpYyBpbnQgbWRwNV9wbGFuZV9tb2RlX3NldChzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPj4gICAgICAgcmV0dXJuIHJldDsKPj4gICB9Cj4+ICAgLXN0YXRp YyBpbnQgbWRwNV91cGRhdGVfY3Vyc29yX3BsYW5lX2xlZ2FjeShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPj4gLSAgICAgICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCj4+IC0gICAgICAgICAgICBpbnQgY3J0Y194LCBpbnQgY3J0Y195LAo+ PiAtICAgICAgICAgICAgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwK Pj4gLSAgICAgICAgICAgIHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKPj4gLSAgICAg ICAgICAgIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKPj4gLSAgICAgICAgICAgIHN0 cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KQo+PiAtewo+PiAtICAgIHN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlLCAqbmV3X3BsYW5lX3N0YXRlOwo+PiAtICAgIHN0 cnVjdCBtZHA1X3BsYW5lX3N0YXRlICptZHA1X3BzdGF0ZTsKPj4gLSAgICBzdHJ1Y3QgZHJtX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUgPSBjcnRjLT5zdGF0ZTsKPj4gLSAgICBpbnQgcmV0Owo+PiAt Cj4+IC0gICAgaWYgKCFjcnRjX3N0YXRlLT5hY3RpdmUgfHwgZHJtX2F0b21pY19jcnRjX25lZWRz X21vZGVzZXQoY3J0Y19zdGF0ZSkpCj4+IC0gICAgICAgIGdvdG8gc2xvdzsKPj4gLQo+PiAtICAg IHBsYW5lX3N0YXRlID0gcGxhbmUtPnN0YXRlOwo+PiAtICAgIG1kcDVfcHN0YXRlID0gdG9fbWRw NV9wbGFuZV9zdGF0ZShwbGFuZV9zdGF0ZSk7Cj4+IC0KPj4gLSAgICAvKiBkb24ndCB1c2UgZmFz dCBwYXRoIGlmIHdlIGRvbid0IGhhdmUgYSBod3BpcGUgYWxsb2NhdGVkIHlldCAqLwo+PiAtICAg IGlmICghbWRwNV9wc3RhdGUtPmh3cGlwZSkKPj4gLSAgICAgICAgZ290byBzbG93Owo+PiAtCj4+ IC0gICAgLyogb25seSBhbGxvdyBjaGFuZ2luZyBvZiBwb3NpdGlvbihjcnRjIHgveSBvciBzcmMg eC95KSBpbiBmYXN0IHBhdGggKi8KPj4gLSAgICBpZiAocGxhbmVfc3RhdGUtPmNydGMgIT0gY3J0 YyB8fAo+PiAtICAgICAgICBwbGFuZV9zdGF0ZS0+c3JjX3cgIT0gc3JjX3cgfHwKPj4gLSAgICAg ICAgcGxhbmVfc3RhdGUtPnNyY19oICE9IHNyY19oIHx8Cj4+IC0gICAgICAgIHBsYW5lX3N0YXRl LT5jcnRjX3cgIT0gY3J0Y193IHx8Cj4+IC0gICAgICAgIHBsYW5lX3N0YXRlLT5jcnRjX2ggIT0g Y3J0Y19oIHx8Cj4+IC0gICAgICAgICFwbGFuZV9zdGF0ZS0+ZmIgfHwKPj4gLSAgICAgICAgcGxh bmVfc3RhdGUtPmZiICE9IGZiKQo+PiAtICAgICAgICBnb3RvIHNsb3c7Cj4+IC0KPj4gLSAgICBu ZXdfcGxhbmVfc3RhdGUgPSBtZHA1X3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShwbGFuZSk7Cj4+IC0g ICAgaWYgKCFuZXdfcGxhbmVfc3RhdGUpCj4+IC0gICAgICAgIHJldHVybiAtRU5PTUVNOwo+PiAt Cj4+IC0gICAgbmV3X3BsYW5lX3N0YXRlLT5zcmNfeCA9IHNyY194Owo+PiAtICAgIG5ld19wbGFu ZV9zdGF0ZS0+c3JjX3kgPSBzcmNfeTsKPj4gLSAgICBuZXdfcGxhbmVfc3RhdGUtPnNyY193ID0g c3JjX3c7Cj4+IC0gICAgbmV3X3BsYW5lX3N0YXRlLT5zcmNfaCA9IHNyY19oOwo+PiAtICAgIG5l d19wbGFuZV9zdGF0ZS0+Y3J0Y194ID0gY3J0Y194Owo+PiAtICAgIG5ld19wbGFuZV9zdGF0ZS0+ Y3J0Y195ID0gY3J0Y195Owo+PiAtICAgIG5ld19wbGFuZV9zdGF0ZS0+Y3J0Y193ID0gY3J0Y193 Owo+PiAtICAgIG5ld19wbGFuZV9zdGF0ZS0+Y3J0Y19oID0gY3J0Y19oOwo+PiAtCj4+IC0gICAg cmV0ID0gbWRwNV9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShjcnRjX3N0YXRlLCBuZXdf cGxhbmVfc3RhdGUpOwo+PiAtICAgIGlmIChyZXQpCj4+IC0gICAgICAgIGdvdG8gc2xvd19mcmVl Owo+PiAtCj4+IC0gICAgaWYgKG5ld19wbGFuZV9zdGF0ZS0+dmlzaWJsZSkgewo+PiAtICAgICAg ICBzdHJ1Y3QgbWRwNV9jdGwgKmN0bDsKPj4gLSAgICAgICAgc3RydWN0IG1kcDVfcGlwZWxpbmUg KnBpcGVsaW5lID0gbWRwNV9jcnRjX2dldF9waXBlbGluZShjcnRjKTsKPj4gLQo+PiAtICAgICAg ICByZXQgPSBtZHA1X3BsYW5lX21vZGVfc2V0KHBsYW5lLCBjcnRjLCBmYiwKPj4gLSAgICAgICAg ICAgICAgICAgICAgICAmbmV3X3BsYW5lX3N0YXRlLT5zcmMsCj4+IC0gICAgICAgICAgICAgICAg ICAgICAgJm5ld19wbGFuZV9zdGF0ZS0+ZHN0KTsKPj4gLSAgICAgICAgV0FSTl9PTihyZXQgPCAw KTsKPj4gLQo+PiAtICAgICAgICBjdGwgPSBtZHA1X2NydGNfZ2V0X2N0bChjcnRjKTsKPj4gLQo+ PiAtICAgICAgICBtZHA1X2N0bF9jb21taXQoY3RsLCBwaXBlbGluZSwgbWRwNV9wbGFuZV9nZXRf Zmx1c2gocGxhbmUpKTsKPj4gLSAgICB9Cj4+IC0KPj4gLSAgICAqdG9fbWRwNV9wbGFuZV9zdGF0 ZShwbGFuZV9zdGF0ZSkgPQo+PiAtICAgICAgICAqdG9fbWRwNV9wbGFuZV9zdGF0ZShuZXdfcGxh bmVfc3RhdGUpOwo+PiAtCj4+IC0gICAgbWRwNV9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLCBu ZXdfcGxhbmVfc3RhdGUpOwo+PiAtCj4+IC0gICAgcmV0dXJuIDA7Cj4+IC1zbG93X2ZyZWU6Cj4+ IC0gICAgbWRwNV9wbGFuZV9kZXN0cm95X3N0YXRlKHBsYW5lLCBuZXdfcGxhbmVfc3RhdGUpOwo+ PiAtc2xvdzoKPj4gLSAgICByZXR1cm4gZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lKHBs YW5lLCBjcnRjLCBmYiwKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgY3J0Y194LCBjcnRj X3ksIGNydGNfdywgY3J0Y19oLAo+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfeCwg c3JjX3ksIHNyY193LCBzcmNfaCwgY3R4KTsKPj4gLX0KPj4gLQo+PiAgIC8qCj4+ICAgICogVXNl IHRoaXMgZnVuYyBhbmQgdGhlIG9uZSBiZWxvdyBvbmx5IGFmdGVyIHRoZSBhdG9taWMgc3RhdGUg aGFzIGJlZW4KPj4gICAgKiBzdWNjZXNzZnVsbHkgc3dhcHBlZAo+Pgo+CgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY19oZWxwZXIuYwppbmRleCAxOWU1YTRmNTUyOWEuLmIzODRjOTg1Y2QwOCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTIyMzAsMTMgKzIyMzAsMTQgQEAgaW50IGRy bV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAg CQlnb3RvIGZhaWw7CiAgCX0KCi0JaWYgKHBsYW5lX3N0YXRlLT5jcnRjICYmIChwbGFuZSA9PSBw bGFuZS0+Y3J0Yy0+Y3Vyc29yKSkKLQkJcGxhbmVfc3RhdGUtPnN0YXRlLT5sZWdhY3lfY3Vyc29y X3VwZGF0ZSA9IHRydWU7Ci0KICAJcmV0ID0gX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3Bs YW5lKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CiAgCWlmIChyZXQgIT0gMCkKICAJCWdvdG8gZmFpbDsK CisJaWYgKHBsYW5lX3N0YXRlLT5jcnRjICYmIChwbGFuZSA9PSBwbGFuZS0+Y3J0Yy0+Y3Vyc29y KSkKKwkJcGxhbmVfc3RhdGUtPnN0YXRlLT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSA9IHRydWU7CisK KwogIAlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7CiAgZmFpbDoKICAJZHJtX2F0b21p Y19zdGF0ZV9wdXQoc3RhdGUpOwoKCi0tIApRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5j LiBpcyBhIG1lbWJlciBvZiBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51eCBGb3VuZGF0aW9uIENv bGxhYm9yYXRpdmUgUHJvamVjdApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK