From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 2/2] drm/msm: dpu: Make legacy cursor updates asynchronous Date: Mon, 1 Oct 2018 16:30:56 -0400 Message-ID: <20181001203056.GA72545@art_vandelay> References: <20180919185627.206368-1-sean@poorly.run> <20180919185627.206368-3-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jeykumar Sankaran Cc: Sean Paul , abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, Rob Clark , Sean Paul , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBTZXAgMjYsIDIwMTggYXQgMTE6NTY6NDdBTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0wOS0xOSAxMTo1NiwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gRnJv bTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4gPiAKPiA+IFRoaXMgcGF0Y2gg c3ByaW5rbGVzIGEgZmV3IGFzeW5jL2xlZ2FjeV9jdXJzb3JfdXBkYXRlIGNoZWNrcwo+ID4gdGhy b3VnaCBjb21taXQgdG8gZW5zdXJlIHRoYXQgY3Vyc29yIHVwZGF0ZXMgYXJlbid0IGJsb2NrZWQg b24gdnN5bmMuCj4gPiBUaGVyZSBhcmUgMiBtYWluIGNvbXBvbmVudHMgdG8gdGhpcywgdGhlIGZp cnN0IGlzIHRoYXQgd2UgZG9uJ3Qgd2FudCB0bwo+ID4gd2FpdF9mb3JfY29tbWl0X2RvbmUgaW4g bXNtX2F0b21pYyAgYmVmb3JlIHJldHVybmluZyBmcm9tCj4gPiBhdG9taWNfY29tcGxldGUuCj4g PiBUaGUgc2Vjb25kIGlzIHRoYXQgaW4gZHB1IHdlIGRvbid0IHdhbnQgdG8gd2FpdCBmb3IgZnJh bWVfZG9uZSBldmVudHMKPiA+IHdoZW4KPiA+IHVwZGF0aW5nIHRoZSBjdXJzb3IuCj4gPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+ID4gLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYyAgICB8IDQ0ICsr KysrKysrKysrLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmggICAgfCAgMyArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9lbmNvZGVyLmMgfCAyMSArKysrKystLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXIuaCB8ICA2ICsrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9rbXMuYyAgICAgfCAgNSArKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9hdG9taWMuYyAgICAgICAgICAgIHwgIDMgKy0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDQ4IGlu c2VydGlvbnMoKyksIDM0IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4gPiBpbmRleCBhOGYyZGQ3YTM3YzcuLmIyM2YwMGEy NTU0YiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMK PiA+IEBAIC04MTYsNyArODE2LDcgQEAgc3RhdGljIGludCBfZHB1X2NydGNfd2FpdF9mb3JfZnJh bWVfZG9uZShzdHJ1Y3QKPiA+IGRybV9jcnRjICpjcnRjKQo+ID4gIAlyZXR1cm4gcmM7Cj4gPiAg fQo+ID4gCj4gPiAtdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gPiArdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIGJvb2wgYXN5bmMpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXI7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7Cj4gPiBAQCAtODYyLDI3ICs4NjIsMzAg QEAgdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMKPiA+ICpjcnRj KQo+ID4gIAkJICogRW5jb2RlciB3aWxsIGZsdXNoL3N0YXJ0IG5vdywgdW5sZXNzIGl0IGhhcyBh IHR4Cj4gPiBwZW5kaW5nLgo+ID4gIAkJICogSWYgc28sIGl0IG1heSBkZWxheSBhbmQgZmx1c2gg YXQgYW4gaXJxIGV2ZW50IChlLmcuCj4gPiBwcGRvbmUpCj4gPiAgCQkgKi8KPiA+IC0JCWRwdV9l bmNvZGVyX3ByZXBhcmVfZm9yX2tpY2tvZmYoZW5jb2RlciwgJnBhcmFtcyk7Cj4gPiArCQlkcHVf ZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKGVuY29kZXIsICZwYXJhbXMsIGFzeW5jKTsKPiA+ ICAJfQo+ID4gCj4gPiAtCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUgY29tcGxldGlvbiAq Lwo+ID4gLQlEUFVfQVRSQUNFX0JFR0lOKCJ3YWl0X2Zvcl9mcmFtZV9kb25lX2V2ZW50Iik7Cj4g PiAtCXJldCA9IF9kcHVfY3J0Y193YWl0X2Zvcl9mcmFtZV9kb25lKGNydGMpOwo+ID4gLQlEUFVf QVRSQUNFX0VORCgid2FpdF9mb3JfZnJhbWVfZG9uZV9ldmVudCIpOwo+ID4gLQlpZiAocmV0KSB7 Cj4gPiAtCQlEUFVfRVJST1IoImNydGMlZCB3YWl0IGZvciBmcmFtZSBkb25lCj4gPiBmYWlsZWQ7 ZnJhbWVfcGVuZGluZyVkXG4iLAo+ID4gLQkJCQljcnRjLT5iYXNlLmlkLAo+ID4gLQkJCQlhdG9t aWNfcmVhZCgmZHB1X2NydGMtPmZyYW1lX3BlbmRpbmcpKTsKPiA+IC0JCWdvdG8gZW5kOwo+ID4g LQl9Cj4gPiAKPiA+IC0JaWYgKGF0b21pY19pbmNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVu ZGluZykgPT0gMSkgewo+ID4gLQkJLyogYWNxdWlyZSBiYW5kd2lkdGggYW5kIG90aGVyIHJlc291 cmNlcyAqLwo+ID4gLQkJRFBVX0RFQlVHKCJjcnRjJWQgZmlyc3QgY29tbWl0XG4iLCBjcnRjLT5i YXNlLmlkKTsKPiA+IC0JfSBlbHNlCj4gPiAtCQlEUFVfREVCVUcoImNydGMlZCBjb21taXRcbiIs IGNydGMtPmJhc2UuaWQpOwo+ID4gKwlpZiAoIWFzeW5jKSB7Cj4gPiArCQkvKiB3YWl0IGZvciBm cmFtZV9ldmVudF9kb25lIGNvbXBsZXRpb24gKi8KPiA+ICsJCURQVV9BVFJBQ0VfQkVHSU4oIndh aXRfZm9yX2ZyYW1lX2RvbmVfZXZlbnQiKTsKPiA+ICsJCXJldCA9IF9kcHVfY3J0Y193YWl0X2Zv cl9mcmFtZV9kb25lKGNydGMpOwo+ID4gKwkJRFBVX0FUUkFDRV9FTkQoIndhaXRfZm9yX2ZyYW1l X2RvbmVfZXZlbnQiKTsKPiA+ICsJCWlmIChyZXQpIHsKPiA+ICsJCQlEUFVfRVJST1IoImNydGMl ZCB3YWl0IGZvciBmcmFtZSBkb25lCj4gPiBmYWlsZWQ7ZnJhbWVfcGVuZGluZyVkXG4iLAo+ID4g KwkJCQkJY3J0Yy0+YmFzZS5pZCwKPiA+ICsKPiA+IGF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJh bWVfcGVuZGluZykpOwo+ID4gKwkJCWdvdG8gZW5kOwo+ID4gKwkJfQo+ID4gKwo+ID4gKwkJaWYg KGF0b21pY19pbmNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPT0gMSkgewo+ID4g KwkJCS8qIGFjcXVpcmUgYmFuZHdpZHRoIGFuZCBvdGhlciByZXNvdXJjZXMgKi8KPiA+ICsJCQlE UFVfREVCVUcoImNydGMlZCBmaXJzdCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+ID4gKwkJ fSBlbHNlCj4gPiArCQkJRFBVX0RFQlVHKCJjcnRjJWQgY29tbWl0XG4iLCBjcnRjLT5iYXNlLmlk KTsKPiA+IAo+ID4gLQlkcHVfY3J0Yy0+cGxheV9jb3VudCsrOwo+ID4gKwkJZHB1X2NydGMtPnBs YXlfY291bnQrKzsKPiA+ICsJfQo+ID4gCj4gPiAgCWRwdV92YmlmX2NsZWFyX2Vycm9ycyhkcHVf a21zKTsKPiA+IAo+ID4gQEAgLTg5MCwxMSArODkzLDEyIEBAIHZvaWQgZHB1X2NydGNfY29tbWl0 X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjCj4gPiAqY3J0YykKPiA+ICAJCWlmIChlbmNvZGVyLT5j cnRjICE9IGNydGMpCj4gPiAgCQkJY29udGludWU7Cj4gPiAKPiA+IC0JCWRwdV9lbmNvZGVyX2tp Y2tvZmYoZW5jb2Rlcik7Cj4gPiArCQlkcHVfZW5jb2Rlcl9raWNrb2ZmKGVuY29kZXIsIGFzeW5j KTsKPiA+ICAJfQo+ID4gCj4gPiAgZW5kOgo+ID4gLQlyZWluaXRfY29tcGxldGlvbigmZHB1X2Ny dGMtPmZyYW1lX2RvbmVfY29tcCk7Cj4gPiArCWlmICghYXN5bmMpCj4gPiArCQlyZWluaXRfY29t cGxldGlvbigmZHB1X2NydGMtPmZyYW1lX2RvbmVfY29tcCk7Cj4gPiAgCURQVV9BVFJBQ0VfRU5E KCJjcnRjX2NvbW1pdCIpOwo+ID4gIH0KPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2NydGMuaAo+ID4gaW5kZXggMzcyM2I0ODMwMzM1Li42N2M5ZjU5OTk3Y2Yg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5o Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4gPiBA QCAtMjg1LDggKzI4NSw5IEBAIGludCBkcHVfY3J0Y192Ymxhbmsoc3RydWN0IGRybV9jcnRjICpj cnRjLCBib29sIGVuKTsKPiA+ICAvKioKPiA+ICAgKiBkcHVfY3J0Y19jb21taXRfa2lja29mZiAt IHRyaWdnZXIga2lja29mZiBvZiB0aGUgY29tbWl0IGZvciB0aGlzCj4gPiBjcnRjCj4gPiAgICog QGNydGM6IFBvaW50ZXIgdG8gZHJtIGNydGMgb2JqZWN0Cj4gPiArICogQGFzeW5jOiB0cnVlIGlm IHRoZSBjb21taXQgaXMgYXN5bmNocm9ub3VzLCBmYWxzZSBvdGhlcndpc2UKPiA+ICAgKi8KPiA+ IC12b2lkIGRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4g PiArdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJv b2wgYXN5bmMpOwo+ID4gCj4gPiAgLyoqCj4gPiAgICogZHB1X2NydGNfY29tcGxldGVfY29tbWl0 IC0gY2FsbGJhY2sgc2lnbmFsbGluZyBjb21wbGV0aW9uIG9mIGN1cnJlbnQKPiA+IGNvbW1pdAo+ ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ID4g aW5kZXggYzJlODk4NWI0YzU0Li5mYzcyOWZjOGRkOGMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gPiBAQCAtMTQxMCw3ICsxNDEwLDcg QEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfb2ZmX3dvcmsoc3RydWN0Cj4gPiBrdGhyZWFkX3dv cmsKPiA+ICp3b3JrKQo+ID4gICAqIGV4dHJhX2ZsdXNoX2JpdHM6IEFkZGl0aW9uYWwgYml0IG1h c2sgdG8gaW5jbHVkZSBpbiBmbHVzaCB0cmlnZ2VyCj4gPiAgICovCj4gPiAgc3RhdGljIGlubGlu ZSB2b2lkIF9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKHN0cnVjdCBkcm1fZW5jb2Rlcgo+ID4g KmRybV9lbmMsCj4gPiAtCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5cywgdWludDMyX3Qg ZXh0cmFfZmx1c2hfYml0cykKPiA+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzLCB1 aW50MzJfdCBleHRyYV9mbHVzaF9iaXRzLAo+ID4gYm9vbCBhc3luYykKPiA+ICB7Cj4gPiAgCXN0 cnVjdCBkcHVfaHdfY3RsICpjdGw7Cj4gPiAgCWludCBwZW5kaW5nX2tpY2tvZmZfY250Owo+ID4g QEAgLTE0MzMsNyArMTQzMywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQKPiA+IF9kcHVfZW5jb2Rl cl90cmlnZ2VyX2ZsdXNoKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKPiA+ICAJCXJldHVy bjsKPiA+ICAJfQo+ID4gCj4gPiAtCXBlbmRpbmdfa2lja29mZl9jbnQgPSBkcHVfZW5jb2Rlcl9w aHlzX2luY19wZW5kaW5nKHBoeXMpOwo+ID4gKwlpZiAoIWFzeW5jKQo+ID4gKwkJcGVuZGluZ19r aWNrb2ZmX2NudCA9IGRwdV9lbmNvZGVyX3BoeXNfaW5jX3BlbmRpbmcocGh5cyk7Cj4gPiArCWVs c2UKPiA+ICsJCXBlbmRpbmdfa2lja29mZl9jbnQgPQo+ID4gYXRvbWljX3JlYWQoJnBoeXMtPnBl bmRpbmdfa2lja29mZl9jbnQpOwo+ID4gCj4gPiAgCWlmIChleHRyYV9mbHVzaF9iaXRzICYmIGN0 bC0+b3BzLnVwZGF0ZV9wZW5kaW5nX2ZsdXNoKQo+ID4gIAkJY3RsLT5vcHMudXBkYXRlX3BlbmRp bmdfZmx1c2goY3RsLCBleHRyYV9mbHVzaF9iaXRzKTsKPiA+IEBAIC0xNTQ1LDcgKzE1NDgsOCBA QCB2b2lkIGRwdV9lbmNvZGVyX2hlbHBlcl9od19yZXNldChzdHJ1Y3QKPiA+IGRwdV9lbmNvZGVy X3BoeXMgKnBoeXNfZW5jKQo+ID4gICAqCWEgdGltZS4KPiA+ICAgKiBkcHVfZW5jOiBQb2ludGVy IHRvIHZpcnR1YWwgZW5jb2RlciBzdHJ1Y3R1cmUKPiA+ICAgKi8KPiA+IC1zdGF0aWMgdm9pZCBf ZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5j KQo+ID4gK3N0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9raWNrb2ZmX3BoeXMoc3RydWN0IGRwdV9l bmNvZGVyX3ZpcnQgKmRwdV9lbmMsCj4gPiArCQkJCSAgICAgIGJvb2wgYXN5bmMpCj4gPiAgewo+ ID4gIAlzdHJ1Y3QgZHB1X2h3X2N0bCAqY3RsOwo+ID4gIAl1aW50MzJfdCBpLCBwZW5kaW5nX2Zs dXNoOwo+ID4gQEAgLTE1NzYsNyArMTU4MCw4IEBAIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9r aWNrb2ZmX3BoeXMoc3RydWN0Cj4gPiBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVfZW5jKQo+ID4gIAkJ CXNldF9iaXQoaSwgZHB1X2VuYy0+ZnJhbWVfYnVzeV9tYXNrKTsKPiA+ICAJCWlmICghcGh5cy0+ b3BzLm5lZWRzX3NpbmdsZV9mbHVzaCB8fAo+ID4gIAkJCQkhcGh5cy0+b3BzLm5lZWRzX3Npbmds ZV9mbHVzaChwaHlzKSkKPiA+IC0JCQlfZHB1X2VuY29kZXJfdHJpZ2dlcl9mbHVzaCgmZHB1X2Vu Yy0+YmFzZSwgcGh5cywKPiA+IDB4MCk7Cj4gPiArCQkJX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1 c2goJmRwdV9lbmMtPmJhc2UsIHBoeXMsCj4gPiAweDAsCj4gPiArCQkJCQkJICAgYXN5bmMpOwo+ ID4gIAkJZWxzZSBpZiAoY3RsLT5vcHMuZ2V0X3BlbmRpbmdfZmx1c2gpCj4gPiAgCQkJcGVuZGlu Z19mbHVzaCB8PSBjdGwtPm9wcy5nZXRfcGVuZGluZ19mbHVzaChjdGwpOwo+ID4gIAl9Cj4gPiBA QCAtMTU4Niw3ICsxNTkxLDcgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5 cyhzdHJ1Y3QKPiA+IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmMpCj4gPiAgCQlfZHB1X2VuY29k ZXJfdHJpZ2dlcl9mbHVzaCgKPiA+ICAJCQkJJmRwdV9lbmMtPmJhc2UsCj4gPiAgCQkJCWRwdV9l bmMtPmN1cl9tYXN0ZXIsCj4gPiAtCQkJCXBlbmRpbmdfZmx1c2gpOwo+ID4gKwkJCQlwZW5kaW5n X2ZsdXNoLCBhc3luYyk7Cj4gPiAgCX0KPiA+IAo+ID4gIAlfZHB1X2VuY29kZXJfdHJpZ2dlcl9z dGFydChkcHVfZW5jLT5jdXJfbWFzdGVyKTsKPiA+IEBAIC0xNzcwLDcgKzE3NzUsNyBAQCBzdGF0 aWMgdm9pZAo+ID4gZHB1X2VuY29kZXJfdnN5bmNfZXZlbnRfd29ya19oYW5kbGVyKHN0cnVjdCBr dGhyZWFkX3dvcmsgKndvcmspCj4gPiAgfQo+ID4gCj4gPiAgdm9pZCBkcHVfZW5jb2Rlcl9wcmVw YXJlX2Zvcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKPiA+IC0JCXN0cnVj dCBkcHVfZW5jb2Rlcl9raWNrb2ZmX3BhcmFtcyAqcGFyYW1zKQo+ID4gKwkJc3RydWN0IGRwdV9l bmNvZGVyX2tpY2tvZmZfcGFyYW1zICpwYXJhbXMsIGJvb2wgYXN5bmMpCj4gPiAgewo+ID4gIAlz dHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKPiA+ICAJc3RydWN0IGRwdV9lbmNvZGVy X3BoeXMgKnBoeXM7Cj4gPiBAQCAtMTgxMSw3ICsxODE2LDcgQEAgdm9pZCBkcHVfZW5jb2Rlcl9w cmVwYXJlX2Zvcl9raWNrb2ZmKHN0cnVjdAo+ID4gZHJtX2VuY29kZXIgKmRybV9lbmMsCj4gPiAg CX0KPiA+ICB9Cj4gPiAKPiA+IC12b2lkIGRwdV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9l bmNvZGVyICpkcm1fZW5jKQo+ID4gK3ZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJt X2VuY29kZXIgKmRybV9lbmMsIGJvb2wgYXN5bmMpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHB1X2Vu Y29kZXJfdmlydCAqZHB1X2VuYzsKPiA+ICAJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXM7 Cj4gPiBAQCAtMTgzNCw3ICsxODM5LDcgQEAgdm9pZCBkcHVfZW5jb2Rlcl9raWNrb2ZmKHN0cnVj dCBkcm1fZW5jb2Rlcgo+ID4gKmRybV9lbmMpCj4gPiAgCQkoKGF0b21pY19yZWFkKCZkcHVfZW5j LT5mcmFtZV9kb25lX3RpbWVvdXQpICogSFopIC8KPiA+IDEwMDApKTsKPiA+IAo+ID4gIAkvKiBB bGwgcGh5cyBlbmNzIGFyZSByZWFkeSB0byBnbywgdHJpZ2dlciB0aGUga2lja29mZiAqLwo+ID4g LQlfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKGRwdV9lbmMpOwo+ID4gKwlfZHB1X2VuY29kZXJf a2lja29mZl9waHlzKGRwdV9lbmMsIGFzeW5jKTsKPiA+IAo+ID4gIAkvKiBhbGxvdyBwaHlzIGVu Y3MgdG8gaGFuZGxlIGFueSBwb3N0LWtpY2tvZmYgYnVzaW5lc3MgKi8KPiA+ICAJZm9yIChpID0g MDsgaSA8IGRwdV9lbmMtPm51bV9waHlzX2VuY3M7IGkrKykgewo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKPiA+IGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+ID4gaW5kZXggOWRiZjM4ZjQ0NmQ5 Li5jMjA0NDEyMmQ2MDkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3Av ZHB1MS9kcHVfZW5jb2Rlci5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfZW5jb2Rlci5oCj4gPiBAQCAtODEsOSArODEsMTAgQEAgdm9pZCBkcHVfZW5jb2Rlcl9y ZWdpc3Rlcl9mcmFtZV9ldmVudF9jYWxsYmFjayhzdHJ1Y3QKPiA+IGRybV9lbmNvZGVyICplbmNv ZGVyLAo+ID4gICAqCURlbGF5ZWQ6IEJsb2NrIHVudGlsIG5leHQgdHJpZ2dlciBjYW4gYmUgaXNz dWVkLgo+ID4gICAqIEBlbmNvZGVyOgllbmNvZGVyIHBvaW50ZXIKPiA+ICAgKiBAcGFyYW1zOglr aWNrb2ZmIHRpbWUgcGFyYW1ldGVycwo+ID4gKyAqIEBhc3luYzoJdHJ1ZSBpZiB0aGlzIGlzIGFu IGFzeW5jaHJvbm91cyBjb21taXQKPiA+ICAgKi8KPiA+ICB2b2lkIGRwdV9lbmNvZGVyX3ByZXBh cmVfZm9yX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ID4gLQkJc3RydWN0 IGRwdV9lbmNvZGVyX2tpY2tvZmZfcGFyYW1zICpwYXJhbXMpOwo+ID4gKwkJc3RydWN0IGRwdV9l bmNvZGVyX2tpY2tvZmZfcGFyYW1zICpwYXJhbXMsIGJvb2wgYXN5bmMpOwo+ID4gCj4gPiAgLyoq Cj4gPiAgICogZHB1X2VuY29kZXJfdHJpZ2dlcl9raWNrb2ZmX3BlbmRpbmcgLSBDbGVhciB0aGUg Zmx1c2ggYml0cyBmcm9tCj4gPiBwcmV2aW91cwo+ID4gQEAgLTk2LDggKzk3LDkgQEAgdm9pZCBk cHVfZW5jb2Rlcl90cmlnZ2VyX2tpY2tvZmZfcGVuZGluZyhzdHJ1Y3QKPiA+IGRybV9lbmNvZGVy ICplbmNvZGVyKTsKPiA+ICAgKiBkcHVfZW5jb2Rlcl9raWNrb2ZmIC0gdHJpZ2dlciBhIGRvdWJs ZSBidWZmZXIgZmxpcCBvZiB0aGUgY3RsIHBhdGgKPiA+ICAgKgkoaS5lLiBjdGwgZmx1c2ggYW5k IHN0YXJ0KSBpbW1lZGlhdGVseS4KPiA+ICAgKiBAZW5jb2RlcjoJZW5jb2RlciBwb2ludGVyCj4g PiArICogQGFzeW5jOgl0cnVlIGlmIHRoaXMgaXMgYW4gYXN5bmNocm9ub3VzIGNvbW1pdAo+ID4g ICAqLwo+ID4gLXZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIpOwo+ID4gK3ZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsIGJvb2wgYXN5bmMpOwo+ID4gCj4gPiAgLyoqCj4gPiAgICogZHB1X2VuY29kZXJf d2FpdF9mb3JfZXZlbnQgLSBXYWl0cyBmb3IgZW5jb2RlciBldmVudHMKPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPiA+IGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4gPiBpbmRleCAwYTY4M2U2NWE5ZjMuLjFj YmEyMWVkZDg2MiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9rbXMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2tt cy5jCj4gPiBAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgZHB1X2ttc19lbmNvZGVyX2VuYWJsZShz dHJ1Y3QgZHJtX2VuY29kZXIKPiA+ICplbmNvZGVyKQo+ID4gCj4gPiAgCWlmIChjcnRjICYmIGNy dGMtPnN0YXRlLT5hY3RpdmUpIHsKPiA+ICAJCXRyYWNlX2RwdV9rbXNfZW5jX2VuYWJsZShEUk1J RChjcnRjKSk7Cj4gPiAtCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjKTsKPiA+ICsJCWRw dV9jcnRjX2NvbW1pdF9raWNrb2ZmKGNydGMsIGZhbHNlKTsKPiA+ICAJfQo+ID4gIH0KPiA+IAo+ ID4gQEAgLTM2OSw3ICszNjksOCBAQCBzdGF0aWMgdm9pZCBkcHVfa21zX2NvbW1pdChzdHJ1Y3Qg bXNtX2ttcyAqa21zLAo+ID4gc3RydWN0Cj4gPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ IAo+ID4gIAkJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpIHsKPiA+ICAJCQl0cmFjZV9kcHVfa21z X2NvbW1pdChEUk1JRChjcnRjKSk7Cj4gPiAtCQkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0 Yyk7Cj4gPiArCQkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0YywKPiA+ICsKPiA+IHN0YXRl LT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSk7Cj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICB9Cj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+IGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+IGluZGV4IGMxZjE3NzljOTgwZi4uNzkxMjEzMGNl NWNlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gPiBAQCAtNzYsNyArNzYs OCBAQCB2b2lkIG1zbV9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUK PiA+ICpzdGF0ZSkKPiA+ICAJCWttcy0+ZnVuY3MtPmNvbW1pdChrbXMsIHN0YXRlKTsKPiA+ICAJ fQo+ID4gCj4gPiAtCW1zbV9hdG9taWNfd2FpdF9mb3JfY29tbWl0X2RvbmUoZGV2LCBzdGF0ZSk7 Cj4gPiArCWlmICghc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKQo+IEkgc2VlIHN0YXRlLT5h c3luY191cGRhdGUgaXMgdXBkYXRlZCBhZnRlciB2YWxpZGF0aW9uIGNoZWNrcyBvbiB0aGUgYXN5 bmMKPiBjYXBhYmlsaXRpZXMuIFNob3VsZG4ndCB3ZSB1c2UKPiB0aGF0IHZhciBpbnN0ZWFkIG9m IHN0YXRlLT5sZWdhY3lfY3Vyc29yX3VwZGF0ZT8KPiA+ICsJCW1zbV9hdG9taWNfd2FpdF9mb3Jf Y29tbWl0X2RvbmUoZGV2LCBzdGF0ZSk7Cj4gPiAKPiA+ICAJa21zLT5mdW5jcy0+Y29tcGxldGVf Y29tbWl0KGttcywgc3RhdGUpOwo+IAo+IERvIHdlIG5lZWQgdG8gaW50cm9kdWNlIHBsYW5lIGhl bHBlcnMgYXRvbWljX2FzeW5jX3VwZGF0ZSBhbmQKPiBhdG9taWNfYXN5bmNfY2hlY2sgaW4gRFBV IGJlZm9yZSBzdXBwb3J0aW5nCj4gdGhlc2Ugd2FpdCBza2lwcz8gb3IgYXJlIHRoZXkgaXJyZWxl dmFudCBmb3IgdGhpcyBsZWdhY3kgYXN5bmMgcGF0aD8KCkkgd2FzIHRyeWluZyB0byBsaW1pdCB0 aGUgc2NvcGUgb2YgdGhpcyB0byBqdXN0IGN1cnNvciB1cGRhdGVzLiBJIHRoaW5rIG9uY2UvaWYK c3VwcG9ydCBpcyBhZGRlZCBmb3IgZ2VuZXJpYyBhc3luYyBpdCBtYWtlcyBzZW5zZSB0byBjaGFu Z2Ugb3ZlciB0byB0aGF0CnZlcmJhZ2UuCgpTZWFuCgo+IAo+IC0tIAo+IEpleWt1bWFyIFMKCi0t IApTZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpGcmVlZHJlbm8gbWFp bGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8K