From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH 2/2] drm/msm: dpu: Make legacy cursor updates asynchronous Date: Tue, 02 Oct 2018 18:19:52 -0700 Message-ID: References: <20180919185627.206368-1-sean@poorly.run> <20180919185627.206368-3-sean@poorly.run> <20181001203056.GA72545@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181001203056.GA72545@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Rob Clark , Sean Paul , hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0xMC0wMSAxMzozMCwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFdlZCwgU2VwIDI2LCAy MDE4IGF0IDExOjU2OjQ3QU0gLTA3MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBPbiAy MDE4LTA5LTE5IDExOjU2LCBTZWFuIFBhdWwgd3JvdGU6Cj4+ID4gRnJvbTogU2VhbiBQYXVsIDxz ZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+ID4KPj4gPiBUaGlzIHBhdGNoIHNwcmlua2xlcyBhIGZl dyBhc3luYy9sZWdhY3lfY3Vyc29yX3VwZGF0ZSBjaGVja3MKPj4gPiB0aHJvdWdoIGNvbW1pdCB0 byBlbnN1cmUgdGhhdCBjdXJzb3IgdXBkYXRlcyBhcmVuJ3QgYmxvY2tlZCBvbiB2c3luYy4KPj4g PiBUaGVyZSBhcmUgMiBtYWluIGNvbXBvbmVudHMgdG8gdGhpcywgdGhlIGZpcnN0IGlzIHRoYXQg d2UgZG9uJ3Qgd2FudAo+IHRvCj4+ID4gd2FpdF9mb3JfY29tbWl0X2RvbmUgaW4gbXNtX2F0b21p YyAgYmVmb3JlIHJldHVybmluZyBmcm9tCj4+ID4gYXRvbWljX2NvbXBsZXRlLgo+PiA+IFRoZSBz ZWNvbmQgaXMgdGhhdCBpbiBkcHUgd2UgZG9uJ3Qgd2FudCB0byB3YWl0IGZvciBmcmFtZV9kb25l IGV2ZW50cwo+PiA+IHdoZW4KPj4gPiB1cGRhdGluZyB0aGUgY3Vyc29yLgo+PiA+Cj4+ID4gU2ln bmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+ID4gLS0tCj4+ ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMgICAgfCA0NAo+ICsr KysrKysrKysrLS0tLS0tLS0tLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfY3J0Yy5oICAgIHwgIDMgKy0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2VuY29kZXIuYyB8IDIxICsrKysrKy0tLS0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2VuY29kZXIuaCB8ICA2ICsrLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfa21zLmMgICAgIHwgIDUgKystCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2F0b21pYy5jICAgICAgICAgICAgfCAgMyArLQo+PiA+ICA2IGZpbGVzIGNoYW5nZWQs IDQ4IGluc2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQo+PiA+Cj4+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPj4gPiBpbmRleCBhOGYyZGQ3YTM3Yzcu LmIyM2YwMGEyNTU0YiAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfY3J0Yy5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NydGMuYwo+PiA+IEBAIC04MTYsNyArODE2LDcgQEAgc3RhdGljIGludCBfZHB1X2NydGNf d2FpdF9mb3JfZnJhbWVfZG9uZShzdHJ1Y3QKPj4gPiBkcm1fY3J0YyAqY3J0YykKPj4gPiAgCXJl dHVybiByYzsKPj4gPiAgfQo+PiA+Cj4+ID4gLXZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+PiA+ICt2b2lkIGRwdV9jcnRjX2NvbW1pdF9raWNrb2Zm KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBhc3luYykKPj4gPiAgewo+PiA+ICAJc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyOwo+PiA+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPj4g PiBAQCAtODYyLDI3ICs4NjIsMzAgQEAgdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1 Y3QgZHJtX2NydGMKPj4gPiAqY3J0YykKPj4gPiAgCQkgKiBFbmNvZGVyIHdpbGwgZmx1c2gvc3Rh cnQgbm93LCB1bmxlc3MgaXQgaGFzIGEgdHgKPj4gPiBwZW5kaW5nLgo+PiA+ICAJCSAqIElmIHNv LCBpdCBtYXkgZGVsYXkgYW5kIGZsdXNoIGF0IGFuIGlycSBldmVudCAoZS5nLgo+PiA+IHBwZG9u ZSkKPj4gPiAgCQkgKi8KPj4gPiAtCQlkcHVfZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKGVu Y29kZXIsICZwYXJhbXMpOwo+PiA+ICsJCWRwdV9lbmNvZGVyX3ByZXBhcmVfZm9yX2tpY2tvZmYo ZW5jb2RlciwgJnBhcmFtcywgYXN5bmMpOwo+PiA+ICAJfQo+PiA+Cj4+ID4gLQkvKiB3YWl0IGZv ciBmcmFtZV9ldmVudF9kb25lIGNvbXBsZXRpb24gKi8KPj4gPiAtCURQVV9BVFJBQ0VfQkVHSU4o IndhaXRfZm9yX2ZyYW1lX2RvbmVfZXZlbnQiKTsKPj4gPiAtCXJldCA9IF9kcHVfY3J0Y193YWl0 X2Zvcl9mcmFtZV9kb25lKGNydGMpOwo+PiA+IC0JRFBVX0FUUkFDRV9FTkQoIndhaXRfZm9yX2Zy YW1lX2RvbmVfZXZlbnQiKTsKPj4gPiAtCWlmIChyZXQpIHsKPj4gPiAtCQlEUFVfRVJST1IoImNy dGMlZCB3YWl0IGZvciBmcmFtZSBkb25lCj4+ID4gZmFpbGVkO2ZyYW1lX3BlbmRpbmclZFxuIiwK Pj4gPiAtCQkJCWNydGMtPmJhc2UuaWQsCj4+ID4gLQkJCQlhdG9taWNfcmVhZCgmZHB1X2NydGMt PmZyYW1lX3BlbmRpbmcpKTsKPj4gPiAtCQlnb3RvIGVuZDsKPj4gPiAtCX0KPj4gPgo+PiA+IC0J aWYgKGF0b21pY19pbmNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPT0gMSkgewo+ PiA+IC0JCS8qIGFjcXVpcmUgYmFuZHdpZHRoIGFuZCBvdGhlciByZXNvdXJjZXMgKi8KPj4gPiAt CQlEUFVfREVCVUcoImNydGMlZCBmaXJzdCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+PiA+ IC0JfSBlbHNlCj4+ID4gLQkJRFBVX0RFQlVHKCJjcnRjJWQgY29tbWl0XG4iLCBjcnRjLT5iYXNl LmlkKTsKPj4gPiArCWlmICghYXN5bmMpIHsKPj4gPiArCQkvKiB3YWl0IGZvciBmcmFtZV9ldmVu dF9kb25lIGNvbXBsZXRpb24gKi8KPj4gPiArCQlEUFVfQVRSQUNFX0JFR0lOKCJ3YWl0X2Zvcl9m cmFtZV9kb25lX2V2ZW50Iik7Cj4+ID4gKwkJcmV0ID0gX2RwdV9jcnRjX3dhaXRfZm9yX2ZyYW1l X2RvbmUoY3J0Yyk7Cj4+ID4gKwkJRFBVX0FUUkFDRV9FTkQoIndhaXRfZm9yX2ZyYW1lX2RvbmVf ZXZlbnQiKTsKPj4gPiArCQlpZiAocmV0KSB7Cj4+ID4gKwkJCURQVV9FUlJPUigiY3J0YyVkIHdh aXQgZm9yIGZyYW1lIGRvbmUKPj4gPiBmYWlsZWQ7ZnJhbWVfcGVuZGluZyVkXG4iLAo+PiA+ICsJ CQkJCWNydGMtPmJhc2UuaWQsCj4+ID4gKwo+PiA+IGF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJh bWVfcGVuZGluZykpOwo+PiA+ICsJCQlnb3RvIGVuZDsKPj4gPiArCQl9Cj4+ID4gKwo+PiA+ICsJ CWlmIChhdG9taWNfaW5jX3JldHVybigmZHB1X2NydGMtPmZyYW1lX3BlbmRpbmcpID09IDEpIHsK Pj4gPiArCQkJLyogYWNxdWlyZSBiYW5kd2lkdGggYW5kIG90aGVyIHJlc291cmNlcyAqLwo+PiA+ ICsJCQlEUFVfREVCVUcoImNydGMlZCBmaXJzdCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+ PiA+ICsJCX0gZWxzZQo+PiA+ICsJCQlEUFVfREVCVUcoImNydGMlZCBjb21taXRcbiIsIGNydGMt PmJhc2UuaWQpOwo+PiA+Cj4+ID4gLQlkcHVfY3J0Yy0+cGxheV9jb3VudCsrOwo+PiA+ICsJCWRw dV9jcnRjLT5wbGF5X2NvdW50Kys7Cj4+ID4gKwl9Cj4+ID4KPj4gPiAgCWRwdV92YmlmX2NsZWFy X2Vycm9ycyhkcHVfa21zKTsKPj4gPgo+PiA+IEBAIC04OTAsMTEgKzg5MywxMiBAQCB2b2lkIGRw dV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0Ywo+PiA+ICpjcnRjKQo+PiA+ICAJ CWlmIChlbmNvZGVyLT5jcnRjICE9IGNydGMpCj4+ID4gIAkJCWNvbnRpbnVlOwo+PiA+Cj4+ID4g LQkJZHB1X2VuY29kZXJfa2lja29mZihlbmNvZGVyKTsKPj4gPiArCQlkcHVfZW5jb2Rlcl9raWNr b2ZmKGVuY29kZXIsIGFzeW5jKTsKPj4gPiAgCX0KPj4gPgo+PiA+ICBlbmQ6Cj4+ID4gLQlyZWlu aXRfY29tcGxldGlvbigmZHB1X2NydGMtPmZyYW1lX2RvbmVfY29tcCk7Cj4+ID4gKwlpZiAoIWFz eW5jKQo+PiA+ICsJCXJlaW5pdF9jb21wbGV0aW9uKCZkcHVfY3J0Yy0+ZnJhbWVfZG9uZV9jb21w KTsKPj4gPiAgCURQVV9BVFJBQ0VfRU5EKCJjcnRjX2NvbW1pdCIpOwo+PiA+ICB9Cj4+ID4KPj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+ PiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+PiA+IGluZGV4 IDM3MjNiNDgzMDMzNS4uNjdjOWY1OTk5N2NmIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4+ID4gQEAgLTI4NSw4ICsyODUsOSBAQCBpbnQgZHB1 X2NydGNfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbAo+IGVuKTsKPj4gPiAgLyoq Cj4+ID4gICAqIGRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmIC0gdHJpZ2dlciBraWNrb2ZmIG9mIHRo ZSBjb21taXQgZm9yIHRoaXMKPj4gPiBjcnRjCj4+ID4gICAqIEBjcnRjOiBQb2ludGVyIHRvIGRy bSBjcnRjIG9iamVjdAo+PiA+ICsgKiBAYXN5bmM6IHRydWUgaWYgdGhlIGNvbW1pdCBpcyBhc3lu Y2hyb25vdXMsIGZhbHNlIG90aGVyd2lzZQo+PiA+ICAgKi8KPj4gPiAtdm9pZCBkcHVfY3J0Y19j b21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+PiA+ICt2b2lkIGRwdV9jcnRj X2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBhc3luYyk7Cj4+ID4K Pj4gPiAgLyoqCj4+ID4gICAqIGRwdV9jcnRjX2NvbXBsZXRlX2NvbW1pdCAtIGNhbGxiYWNrIHNp Z25hbGxpbmcgY29tcGxldGlvbiBvZgo+IGN1cnJlbnQKPj4gPiBjb21taXQKPj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+PiA+IGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+PiA+IGluZGV4IGMy ZTg5ODViNGM1NC4uZmM3MjlmYzhkZDhjIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+ID4gQEAgLTE0MTAsNyArMTQxMCw3IEBAIHN0 YXRpYyB2b2lkIGRwdV9lbmNvZGVyX29mZl93b3JrKHN0cnVjdAo+PiA+IGt0aHJlYWRfd29yawo+ PiA+ICp3b3JrKQo+PiA+ICAgKiBleHRyYV9mbHVzaF9iaXRzOiBBZGRpdGlvbmFsIGJpdCBtYXNr IHRvIGluY2x1ZGUgaW4gZmx1c2ggdHJpZ2dlcgo+PiA+ICAgKi8KPj4gPiAgc3RhdGljIGlubGlu ZSB2b2lkIF9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKHN0cnVjdCBkcm1fZW5jb2Rlcgo+PiA+ ICpkcm1fZW5jLAo+PiA+IC0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzLCB1aW50MzJf dCBleHRyYV9mbHVzaF9iaXRzKQo+PiA+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlz LCB1aW50MzJfdCBleHRyYV9mbHVzaF9iaXRzLAo+PiA+IGJvb2wgYXN5bmMpCj4+ID4gIHsKPj4g PiAgCXN0cnVjdCBkcHVfaHdfY3RsICpjdGw7Cj4+ID4gIAlpbnQgcGVuZGluZ19raWNrb2ZmX2Nu dDsKPj4gPiBAQCAtMTQzMyw3ICsxNDMzLDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZAo+PiA+IF9k cHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKPj4g PiAgCQlyZXR1cm47Cj4+ID4gIAl9Cj4+ID4KPj4gPiAtCXBlbmRpbmdfa2lja29mZl9jbnQgPSBk cHVfZW5jb2Rlcl9waHlzX2luY19wZW5kaW5nKHBoeXMpOwo+PiA+ICsJaWYgKCFhc3luYykKPj4g PiArCQlwZW5kaW5nX2tpY2tvZmZfY250ID0gZHB1X2VuY29kZXJfcGh5c19pbmNfcGVuZGluZyhw aHlzKTsKPj4gPiArCWVsc2UKPj4gPiArCQlwZW5kaW5nX2tpY2tvZmZfY250ID0KPj4gPiBhdG9t aWNfcmVhZCgmcGh5cy0+cGVuZGluZ19raWNrb2ZmX2NudCk7Cj4+ID4KPj4gPiAgCWlmIChleHRy YV9mbHVzaF9iaXRzICYmIGN0bC0+b3BzLnVwZGF0ZV9wZW5kaW5nX2ZsdXNoKQo+PiA+ICAJCWN0 bC0+b3BzLnVwZGF0ZV9wZW5kaW5nX2ZsdXNoKGN0bCwgZXh0cmFfZmx1c2hfYml0cyk7Cj4+ID4g QEAgLTE1NDUsNyArMTU0OCw4IEBAIHZvaWQgZHB1X2VuY29kZXJfaGVscGVyX2h3X3Jlc2V0KHN0 cnVjdAo+PiA+IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKQo+PiA+ICAgKglhIHRpbWUuCj4+ ID4gICAqIGRwdV9lbmM6IFBvaW50ZXIgdG8gdmlydHVhbCBlbmNvZGVyIHN0cnVjdHVyZQo+PiA+ ICAgKi8KPj4gPiAtc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhzdHJ1Y3Qg ZHB1X2VuY29kZXJfdmlydAo+ICpkcHVfZW5jKQo+PiA+ICtzdGF0aWMgdm9pZCBfZHB1X2VuY29k ZXJfa2lja29mZl9waHlzKHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0Cj4gKmRwdV9lbmMsCj4+ID4g KwkJCQkgICAgICBib29sIGFzeW5jKQo+PiA+ICB7Cj4+ID4gIAlzdHJ1Y3QgZHB1X2h3X2N0bCAq Y3RsOwo+PiA+ICAJdWludDMyX3QgaSwgcGVuZGluZ19mbHVzaDsKPj4gPiBAQCAtMTU3Niw3ICsx NTgwLDggQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhzdHJ1Y3QKPj4g PiBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jKQo+PiA+ICAJCQlzZXRfYml0KGksIGRwdV9lbmMt PmZyYW1lX2J1c3lfbWFzayk7Cj4+ID4gIAkJaWYgKCFwaHlzLT5vcHMubmVlZHNfc2luZ2xlX2Zs dXNoIHx8Cj4+ID4gIAkJCQkhcGh5cy0+b3BzLm5lZWRzX3NpbmdsZV9mbHVzaChwaHlzKSkKPj4g PiAtCQkJX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goJmRwdV9lbmMtPmJhc2UsIHBoeXMsCj4+ ID4gMHgwKTsKPj4gPiArCQkJX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goJmRwdV9lbmMtPmJh c2UsIHBoeXMsCj4+ID4gMHgwLAo+PiA+ICsJCQkJCQkgICBhc3luYyk7Cj4+ID4gIAkJZWxzZSBp ZiAoY3RsLT5vcHMuZ2V0X3BlbmRpbmdfZmx1c2gpCj4+ID4gIAkJCXBlbmRpbmdfZmx1c2ggfD0g Y3RsLT5vcHMuZ2V0X3BlbmRpbmdfZmx1c2goY3RsKTsKPj4gPiAgCX0KPj4gPiBAQCAtMTU4Niw3 ICsxNTkxLDcgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhzdHJ1Y3QK Pj4gPiBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jKQo+PiA+ICAJCV9kcHVfZW5jb2Rlcl90cmln Z2VyX2ZsdXNoKAo+PiA+ICAJCQkJJmRwdV9lbmMtPmJhc2UsCj4+ID4gIAkJCQlkcHVfZW5jLT5j dXJfbWFzdGVyLAo+PiA+IC0JCQkJcGVuZGluZ19mbHVzaCk7Cj4+ID4gKwkJCQlwZW5kaW5nX2Zs dXNoLCBhc3luYyk7Cj4+ID4gIAl9Cj4+ID4KPj4gPiAgCV9kcHVfZW5jb2Rlcl90cmlnZ2VyX3N0 YXJ0KGRwdV9lbmMtPmN1cl9tYXN0ZXIpOwo+PiA+IEBAIC0xNzcwLDcgKzE3NzUsNyBAQCBzdGF0 aWMgdm9pZAo+PiA+IGRwdV9lbmNvZGVyX3ZzeW5jX2V2ZW50X3dvcmtfaGFuZGxlcihzdHJ1Y3Qg a3RocmVhZF93b3JrICp3b3JrKQo+PiA+ICB9Cj4+ID4KPj4gPiAgdm9pZCBkcHVfZW5jb2Rlcl9w cmVwYXJlX2Zvcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKPj4gPiAtCQlz dHJ1Y3QgZHB1X2VuY29kZXJfa2lja29mZl9wYXJhbXMgKnBhcmFtcykKPj4gPiArCQlzdHJ1Y3Qg ZHB1X2VuY29kZXJfa2lja29mZl9wYXJhbXMgKnBhcmFtcywgYm9vbCBhc3luYykKPj4gPiAgewo+ PiA+ICAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7Cj4+ID4gIAlzdHJ1Y3QgZHB1 X2VuY29kZXJfcGh5cyAqcGh5czsKPj4gPiBAQCAtMTgxMSw3ICsxODE2LDcgQEAgdm9pZCBkcHVf ZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKHN0cnVjdAo+PiA+IGRybV9lbmNvZGVyICpkcm1f ZW5jLAo+PiA+ICAJfQo+PiA+ICB9Cj4+ID4KPj4gPiAtdm9pZCBkcHVfZW5jb2Rlcl9raWNrb2Zm KHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYykKPj4gPiArdm9pZCBkcHVfZW5jb2Rlcl9raWNr b2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywgYm9vbCBhc3luYykKPj4gPiAgewo+PiA+ ICAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7Cj4+ID4gIAlzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5czsKPj4gPiBAQCAtMTgzNCw3ICsxODM5LDcgQEAgdm9pZCBkcHVfZW5j b2Rlcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2Rlcgo+PiA+ICpkcm1fZW5jKQo+PiA+ICAJCSgo YXRvbWljX3JlYWQoJmRwdV9lbmMtPmZyYW1lX2RvbmVfdGltZW91dCkgKiBIWikgLwo+PiA+IDEw MDApKTsKPj4gPgo+PiA+ICAJLyogQWxsIHBoeXMgZW5jcyBhcmUgcmVhZHkgdG8gZ28sIHRyaWdn ZXIgdGhlIGtpY2tvZmYgKi8KPj4gPiAtCV9kcHVfZW5jb2Rlcl9raWNrb2ZmX3BoeXMoZHB1X2Vu Yyk7Cj4+ID4gKwlfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKGRwdV9lbmMsIGFzeW5jKTsKPj4g Pgo+PiA+ICAJLyogYWxsb3cgcGh5cyBlbmNzIHRvIGhhbmRsZSBhbnkgcG9zdC1raWNrb2ZmIGJ1 c2luZXNzICovCj4+ID4gIAlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVtX3BoeXNfZW5jczsg aSsrKSB7Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9lbmNvZGVyLmgKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNv ZGVyLmgKPj4gPiBpbmRleCA5ZGJmMzhmNDQ2ZDkuLmMyMDQ0MTIyZDYwOSAxMDA2NDQKPj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCj4+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+PiA+IEBAIC04 MSw5ICs4MSwxMCBAQCB2b2lkCj4gZHB1X2VuY29kZXJfcmVnaXN0ZXJfZnJhbWVfZXZlbnRfY2Fs bGJhY2soc3RydWN0Cj4+ID4gZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+ID4gICAqCURlbGF5ZWQ6 IEJsb2NrIHVudGlsIG5leHQgdHJpZ2dlciBjYW4gYmUgaXNzdWVkLgo+PiA+ICAgKiBAZW5jb2Rl cjoJZW5jb2RlciBwb2ludGVyCj4+ID4gICAqIEBwYXJhbXM6CWtpY2tvZmYgdGltZSBwYXJhbWV0 ZXJzCj4+ID4gKyAqIEBhc3luYzoJdHJ1ZSBpZiB0aGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjb21t aXQKPj4gPiAgICovCj4+ID4gIHZvaWQgZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29mZihz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4+ID4gLQkJc3RydWN0IGRwdV9lbmNvZGVyX2tp Y2tvZmZfcGFyYW1zICpwYXJhbXMpOwo+PiA+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9raWNrb2Zm X3BhcmFtcyAqcGFyYW1zLCBib29sIGFzeW5jKTsKPj4gPgo+PiA+ICAvKioKPj4gPiAgICogZHB1 X2VuY29kZXJfdHJpZ2dlcl9raWNrb2ZmX3BlbmRpbmcgLSBDbGVhciB0aGUgZmx1c2ggYml0cyBm cm9tCj4+ID4gcHJldmlvdXMKPj4gPiBAQCAtOTYsOCArOTcsOSBAQCB2b2lkIGRwdV9lbmNvZGVy X3RyaWdnZXJfa2lja29mZl9wZW5kaW5nKHN0cnVjdAo+PiA+IGRybV9lbmNvZGVyICplbmNvZGVy KTsKPj4gPiAgICogZHB1X2VuY29kZXJfa2lja29mZiAtIHRyaWdnZXIgYSBkb3VibGUgYnVmZmVy IGZsaXAgb2YgdGhlIGN0bCBwYXRoCj4+ID4gICAqCShpLmUuIGN0bCBmbHVzaCBhbmQgc3RhcnQp IGltbWVkaWF0ZWx5Lgo+PiA+ICAgKiBAZW5jb2RlcjoJZW5jb2RlciBwb2ludGVyCj4+ID4gKyAq IEBhc3luYzoJdHJ1ZSBpZiB0aGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjb21taXQKPj4gPiAgICov Cj4+ID4gLXZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpOwo+PiA+ICt2b2lkIGRwdV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLCBib29sIGFzeW5jKTsKPj4gPgo+PiA+ICAvKioKPj4gPiAgICogZHB1X2VuY29kZXJf d2FpdF9mb3JfZXZlbnQgLSBXYWl0cyBmb3IgZW5jb2RlciBldmVudHMKPj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4+ID4gYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPj4gPiBpbmRleCAwYTY4M2U2NWE5ZjMu LjFjYmEyMWVkZDg2MiAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfa21zLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfa21zLmMKPj4gPiBAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgZHB1X2ttc19lbmNvZGVyX2Vu YWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIKPj4gPiAqZW5jb2RlcikKPj4gPgo+PiA+ICAJaWYgKGNy dGMgJiYgY3J0Yy0+c3RhdGUtPmFjdGl2ZSkgewo+PiA+ICAJCXRyYWNlX2RwdV9rbXNfZW5jX2Vu YWJsZShEUk1JRChjcnRjKSk7Cj4+ID4gLQkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7 Cj4+ID4gKwkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0YywgZmFsc2UpOwo+PiA+ICAJfQo+ PiA+ICB9Cj4+ID4KPj4gPiBAQCAtMzY5LDcgKzM2OSw4IEBAIHN0YXRpYyB2b2lkIGRwdV9rbXNf Y29tbWl0KHN0cnVjdCBtc21fa21zICprbXMsCj4+ID4gc3RydWN0Cj4+ID4gZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCj4+ID4KPj4gPiAgCQlpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSkgewo+PiA+ ICAJCQl0cmFjZV9kcHVfa21zX2NvbW1pdChEUk1JRChjcnRjKSk7Cj4+ID4gLQkJCWRwdV9jcnRj X2NvbW1pdF9raWNrb2ZmKGNydGMpOwo+PiA+ICsJCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihj cnRjLAo+PiA+ICsKPj4gPiBzdGF0ZS0+bGVnYWN5X2N1cnNvcl91cGRhdGUpOwo+PiA+ICAJCX0K Pj4gPiAgCX0KPj4gPiAgfQo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9hdG9taWMuYwo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPj4gPiBp bmRleCBjMWYxNzc5Yzk4MGYuLjc5MTIxMzBjZTVjZSAxMDA2NDQKPj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v bXNtX2F0b21pYy5jCj4+ID4gQEAgLTc2LDcgKzc2LDggQEAgdm9pZCBtc21fYXRvbWljX2NvbW1p dF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlCj4+ID4gKnN0YXRlKQo+PiA+ICAJCWttcy0+ ZnVuY3MtPmNvbW1pdChrbXMsIHN0YXRlKTsKPj4gPiAgCX0KPj4gPgo+PiA+IC0JbXNtX2F0b21p Y193YWl0X2Zvcl9jb21taXRfZG9uZShkZXYsIHN0YXRlKTsKPj4gPiArCWlmICghc3RhdGUtPmxl Z2FjeV9jdXJzb3JfdXBkYXRlKQo+PiBJIHNlZSBzdGF0ZS0+YXN5bmNfdXBkYXRlIGlzIHVwZGF0 ZWQgYWZ0ZXIgdmFsaWRhdGlvbiBjaGVja3Mgb24gdGhlCj4gYXN5bmMKPj4gY2FwYWJpbGl0aWVz LiBTaG91bGRuJ3Qgd2UgdXNlCj4+IHRoYXQgdmFyIGluc3RlYWQgb2Ygc3RhdGUtPmxlZ2FjeV9j dXJzb3JfdXBkYXRlPwo+PiA+ICsJCW1zbV9hdG9taWNfd2FpdF9mb3JfY29tbWl0X2RvbmUoZGV2 LCBzdGF0ZSk7Cj4+ID4KPj4gPiAgCWttcy0+ZnVuY3MtPmNvbXBsZXRlX2NvbW1pdChrbXMsIHN0 YXRlKTsKPj4gCj4+IERvIHdlIG5lZWQgdG8gaW50cm9kdWNlIHBsYW5lIGhlbHBlcnMgYXRvbWlj X2FzeW5jX3VwZGF0ZSBhbmQKPj4gYXRvbWljX2FzeW5jX2NoZWNrIGluIERQVSBiZWZvcmUgc3Vw cG9ydGluZwo+PiB0aGVzZSB3YWl0IHNraXBzPyBvciBhcmUgdGhleSBpcnJlbGV2YW50IGZvciB0 aGlzIGxlZ2FjeSBhc3luYyBwYXRoPwo+IAo+IEkgd2FzIHRyeWluZyB0byBsaW1pdCB0aGUgc2Nv cGUgb2YgdGhpcyB0byBqdXN0IGN1cnNvciB1cGRhdGVzLiBJIHRoaW5rCj4gb25jZS9pZgo+IHN1 cHBvcnQgaXMgYWRkZWQgZm9yIGdlbmVyaWMgYXN5bmMgaXQgbWFrZXMgc2Vuc2UgdG8gY2hhbmdl IG92ZXIgdG8gCj4gdGhhdAo+IHZlcmJhZ2UuCj4gClNpbmNlIFNETTg0NSBkb2VzbnQgc3VwcG9y dCBkZWRpY2F0ZWQgQ1VSU09SIHN0YWdlcywgSSB0aGluayB0aGUgcmlnaHQKd2F5IHRvIGFkZCB0 aGUgY3Vyc29yIHN1cHBvcnQgc2hvdWxkIGJlIHRvIGludHJvZHVjZSB0aGUgYXRvbWljIGFzeW5j IApzdXBwb3J0CmluIHRoZSBkcml2ZXIgYW5kIGxldCB0aGUgY3Vyc29yIGZyYW1lIHVwZGF0ZSBs aWtlIHJlZ3VsYXJ5IGFzeW5jIApjb21taXQuCgpJIG5lZWQgdG8gZXhwbG9yZSBvbiB0aGUgcmln aHQgd2F5IHRvIGZpdCB0aGF0IGluLgoKVGhhbmtzLApKZXlrdW1hciBTLgo+IFNlYW4KPiAKPj4g Cj4+IC0tCj4+IEpleWt1bWFyIFMKCi0tIApKZXlrdW1hciBTCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRy ZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=