From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2 3/3] drm/msm: dpu: Make legacy cursor updates asynchronous Date: Fri, 16 Nov 2018 15:02:26 -0500 Message-ID: <20181116200226.GW154160@art_vandelay> References: <20181030160033.18464-1-sean@poorly.run> <20181030160033.18464-3-sean@poorly.run> <0bb3272e248ad0a13fd8f8d863e7ed91@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <0bb3272e248ad0a13fd8f8d863e7ed91-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 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 , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , Abhinav Kumar , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVGh1LCBOb3YgMDgsIDIwMTggYXQgMDI6MDA6NTFQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0xMC0zMCAwOTowMCwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gRnJv bTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4gPiAKPiA+IFRoaXMgcGF0Y2gg c3ByaW5rbGVzIGEgZmV3IGFzeW5jL2xlZ2FjeV9jdXJzb3JfdXBkYXRlIGNoZWNrcwo+ID4gdGhy b3VnaCBjb21taXQgdG8gZW5zdXJlIHRoYXQgY3Vyc29yIHVwZGF0ZXMgYXJlbid0IGJsb2NrZWQg b24gdnN5bmMuCj4gPiBUaGVyZSBhcmUgMiBtYWluIGNvbXBvbmVudHMgdG8gdGhpcywgdGhlIGZp cnN0IGlzIHRoYXQgd2UgZG9uJ3Qgd2FudCB0bwo+ID4gd2FpdF9mb3JfY29tbWl0X2RvbmUgaW4g bXNtX2F0b21pYyAgYmVmb3JlIHJldHVybmluZyBmcm9tCj4gPiBhdG9taWNfY29tcGxldGUuCj4g PiBUaGUgc2Vjb25kIGlzIHRoYXQgaW4gZHB1IHdlIGRvbid0IHdhbnQgdG8gd2FpdCBmb3IgZnJh bWVfZG9uZSBldmVudHMKPiA+IHdoZW4KPiA+IHVwZGF0aW5nIHRoZSBjdXJzb3IuCj4gPiAKPiA+ IENoYW5nZXMgaW4gdjI6Cj4gPiAtIE5vbmUKPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogU2VhbiBQ YXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgIHwgNDQgKysrKysrKysrKystLS0tLS0tLS0tCj4g PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaCAgICB8ICAzICstCj4g PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyB8IDIyICsrKysr KystLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaCB8 ICA2ICsrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYyAgICAg fCAgNSArKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyAgICAgICAgICAg IHwgIDMgKy0KPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDM0IGRlbGV0 aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2NydGMuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0 Yy5jCj4gPiBpbmRleCBlZDg0Y2Y0NGEyMjIuLjFlM2U1NzgxN2I3MiAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPiA+IEBAIC03MDIsNyArNzAyLDcg QEAgc3RhdGljIGludCBfZHB1X2NydGNfd2FpdF9mb3JfZnJhbWVfZG9uZShzdHJ1Y3QKPiA+IGRy bV9jcnRjICpjcnRjKQo+ID4gIAlyZXR1cm4gcmM7Cj4gPiAgfQo+ID4gCj4gPiAtdm9pZCBkcHVf Y3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiArdm9pZCBkcHVf Y3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgYXN5bmMpCj4g PiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Cj4gPiBAQCAtNzMxLDI3ICs3MzEsMzAgQEAgdm9pZCBk cHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMKPiA+ICpjcnRjKQo+ID4gIAkJ ICogRW5jb2RlciB3aWxsIGZsdXNoL3N0YXJ0IG5vdywgdW5sZXNzIGl0IGhhcyBhIHR4Cj4gPiBw ZW5kaW5nLgo+ID4gIAkJICogSWYgc28sIGl0IG1heSBkZWxheSBhbmQgZmx1c2ggYXQgYW4gaXJx IGV2ZW50IChlLmcuCj4gPiBwcGRvbmUpCj4gPiAgCQkgKi8KPiA+IC0JCWRwdV9lbmNvZGVyX3By ZXBhcmVfZm9yX2tpY2tvZmYoZW5jb2RlciwgJnBhcmFtcyk7Cj4gPiArCQlkcHVfZW5jb2Rlcl9w cmVwYXJlX2Zvcl9raWNrb2ZmKGVuY29kZXIsICZwYXJhbXMsIGFzeW5jKTsKPiA+ICAJfQo+ID4g Cj4gPiAtCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUgY29tcGxldGlvbiAqLwo+ID4gLQlE UFVfQVRSQUNFX0JFR0lOKCJ3YWl0X2Zvcl9mcmFtZV9kb25lX2V2ZW50Iik7Cj4gPiAtCXJldCA9 IF9kcHVfY3J0Y193YWl0X2Zvcl9mcmFtZV9kb25lKGNydGMpOwo+ID4gLQlEUFVfQVRSQUNFX0VO RCgid2FpdF9mb3JfZnJhbWVfZG9uZV9ldmVudCIpOwo+ID4gLQlpZiAocmV0KSB7Cj4gPiAtCQlE UFVfRVJST1IoImNydGMlZCB3YWl0IGZvciBmcmFtZSBkb25lCj4gPiBmYWlsZWQ7ZnJhbWVfcGVu ZGluZyVkXG4iLAo+ID4gLQkJCQljcnRjLT5iYXNlLmlkLAo+ID4gLQkJCQlhdG9taWNfcmVhZCgm ZHB1X2NydGMtPmZyYW1lX3BlbmRpbmcpKTsKPiA+IC0JCWdvdG8gZW5kOwo+ID4gLQl9Cj4gPiAK PiA+IC0JaWYgKGF0b21pY19pbmNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPT0g MSkgewo+ID4gLQkJLyogYWNxdWlyZSBiYW5kd2lkdGggYW5kIG90aGVyIHJlc291cmNlcyAqLwo+ ID4gLQkJRFBVX0RFQlVHKCJjcnRjJWQgZmlyc3QgY29tbWl0XG4iLCBjcnRjLT5iYXNlLmlkKTsK PiA+IC0JfSBlbHNlCj4gPiAtCQlEUFVfREVCVUcoImNydGMlZCBjb21taXRcbiIsIGNydGMtPmJh c2UuaWQpOwo+ID4gKwlpZiAoIWFzeW5jKSB7Cj4gPiArCQkvKiB3YWl0IGZvciBmcmFtZV9ldmVu dF9kb25lIGNvbXBsZXRpb24gKi8KPiA+ICsJCURQVV9BVFJBQ0VfQkVHSU4oIndhaXRfZm9yX2Zy YW1lX2RvbmVfZXZlbnQiKTsKPiA+ICsJCXJldCA9IF9kcHVfY3J0Y193YWl0X2Zvcl9mcmFtZV9k b25lKGNydGMpOwo+ID4gKwkJRFBVX0FUUkFDRV9FTkQoIndhaXRfZm9yX2ZyYW1lX2RvbmVfZXZl bnQiKTsKPiA+ICsJCWlmIChyZXQpIHsKPiA+ICsJCQlEUFVfRVJST1IoImNydGMlZCB3YWl0IGZv ciBmcmFtZSBkb25lCj4gPiBmYWlsZWQ7ZnJhbWVfcGVuZGluZyVkXG4iLAo+ID4gKwkJCQkJY3J0 Yy0+YmFzZS5pZCwKPiA+ICsKPiA+IGF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGlu ZykpOwo+ID4gKwkJCWdvdG8gZW5kOwo+ID4gKwkJfQo+ID4gKwo+ID4gKwkJaWYgKGF0b21pY19p bmNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPT0gMSkgewo+ID4gKwkJCS8qIGFj cXVpcmUgYmFuZHdpZHRoIGFuZCBvdGhlciByZXNvdXJjZXMgKi8KPiA+ICsJCQlEUFVfREVCVUco ImNydGMlZCBmaXJzdCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+ID4gKwkJfSBlbHNlCj4g PiArCQkJRFBVX0RFQlVHKCJjcnRjJWQgY29tbWl0XG4iLCBjcnRjLT5iYXNlLmlkKTsKPiA+IAo+ ID4gLQlkcHVfY3J0Yy0+cGxheV9jb3VudCsrOwo+ID4gKwkJZHB1X2NydGMtPnBsYXlfY291bnQr KzsKPiA+ICsJfQo+ID4gCj4gPiAgCWRwdV92YmlmX2NsZWFyX2Vycm9ycyhkcHVfa21zKTsKPiA+ IAo+ID4gQEAgLTc1OSwxMSArNzYyLDEyIEBAIHZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYo c3RydWN0IGRybV9jcnRjCj4gPiAqY3J0YykKPiA+ICAJCWlmIChlbmNvZGVyLT5jcnRjICE9IGNy dGMpCj4gPiAgCQkJY29udGludWU7Cj4gPiAKPiA+IC0JCWRwdV9lbmNvZGVyX2tpY2tvZmYoZW5j b2Rlcik7Cj4gPiArCQlkcHVfZW5jb2Rlcl9raWNrb2ZmKGVuY29kZXIsIGFzeW5jKTsKPiA+ICAJ fQo+ID4gCj4gPiAgZW5kOgo+ID4gLQlyZWluaXRfY29tcGxldGlvbigmZHB1X2NydGMtPmZyYW1l X2RvbmVfY29tcCk7Cj4gPiArCWlmICghYXN5bmMpCj4gPiArCQlyZWluaXRfY29tcGxldGlvbigm ZHB1X2NydGMtPmZyYW1lX2RvbmVfY29tcCk7Cj4gPiAgCURQVV9BVFJBQ0VfRU5EKCJjcnRjX2Nv bW1pdCIpOwo+ID4gIH0KPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9jcnRjLmgKPiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2NydGMuaAo+ID4gaW5kZXggNDgyMjYwMjQwMmY5Li5lYzYzM2NlM2VlNmMgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4gPiBAQCAtMjc3LDgg KzI3Nyw5IEBAIGludCBkcHVfY3J0Y192Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29s IGVuKTsKPiA+ICAvKioKPiA+ICAgKiBkcHVfY3J0Y19jb21taXRfa2lja29mZiAtIHRyaWdnZXIg a2lja29mZiBvZiB0aGUgY29tbWl0IGZvciB0aGlzCj4gPiBjcnRjCj4gPiAgICogQGNydGM6IFBv aW50ZXIgdG8gZHJtIGNydGMgb2JqZWN0Cj4gPiArICogQGFzeW5jOiB0cnVlIGlmIHRoZSBjb21t aXQgaXMgYXN5bmNocm9ub3VzLCBmYWxzZSBvdGhlcndpc2UKPiA+ICAgKi8KPiA+IC12b2lkIGRw dV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gPiArdm9pZCBk cHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgYXN5bmMp Owo+ID4gCj4gPiAgLyoqCj4gPiAgICogZHB1X2NydGNfY29tcGxldGVfY29tbWl0IC0gY2FsbGJh Y2sgc2lnbmFsbGluZyBjb21wbGV0aW9uIG9mIGN1cnJlbnQKPiA+IGNvbW1pdAo+ID4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiA+IGIv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+ID4gaW5kZXggODJj NTVlZmI1MDBmLi5hOGJhMTBjZWFhY2YgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gPiBAQCAtMTM3NSw3ICsxMzc1LDggQEAgc3RhdGlj IHZvaWQgZHB1X2VuY29kZXJfb2ZmX3dvcmsoc3RydWN0Cj4gPiBrdGhyZWFkX3dvcmsKPiA+ICp3 b3JrKQo+ID4gICAqIGV4dHJhX2ZsdXNoX2JpdHM6IEFkZGl0aW9uYWwgYml0IG1hc2sgdG8gaW5j bHVkZSBpbiBmbHVzaCB0cmlnZ2VyCj4gPiAgICovCj4gPiAgc3RhdGljIHZvaWQgX2RwdV9lbmNv ZGVyX3RyaWdnZXJfZmx1c2goc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ID4gLQkJc3Ry dWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMsIHVpbnQzMl90IGV4dHJhX2ZsdXNoX2JpdHMpCj4g PiArCQlzdHJ1Y3QgZHB1X2VuY29kZXJfcGh5cyAqcGh5cywgdWludDMyX3QgZXh0cmFfZmx1c2hf Yml0cywKPiA+ICsJCWJvb2wgYXN5bmMpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHB1X2h3X2N0bCAq Y3RsOwo+ID4gIAlpbnQgcGVuZGluZ19raWNrb2ZmX2NudDsKPiA+IEBAIC0xMzk4LDcgKzEzOTks MTAgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goc3RydWN0Cj4gPiBk cm1fZW5jb2RlciAqZHJtX2VuYywKPiA+ICAJCXJldHVybjsKPiA+ICAJfQo+ID4gCj4gPiAtCXBl bmRpbmdfa2lja29mZl9jbnQgPSBkcHVfZW5jb2Rlcl9waHlzX2luY19wZW5kaW5nKHBoeXMpOwo+ ID4gKwlpZiAoIWFzeW5jKQo+ID4gKwkJcGVuZGluZ19raWNrb2ZmX2NudCA9IGRwdV9lbmNvZGVy X3BoeXNfaW5jX3BlbmRpbmcocGh5cyk7Cj4gPiArCWVsc2UKPiA+ICsJCXBlbmRpbmdfa2lja29m Zl9jbnQgPQo+ID4gYXRvbWljX3JlYWQoJnBoeXMtPnBlbmRpbmdfa2lja29mZl9jbnQpOwo+ID4g Cj4gPiAgCWlmIChleHRyYV9mbHVzaF9iaXRzICYmIGN0bC0+b3BzLnVwZGF0ZV9wZW5kaW5nX2Zs dXNoKQo+ID4gIAkJY3RsLT5vcHMudXBkYXRlX3BlbmRpbmdfZmx1c2goY3RsLCBleHRyYV9mbHVz aF9iaXRzKTsKPiA+IEBAIC0xNTExLDcgKzE1MTUsOCBAQCBzdGF0aWMgdm9pZCBkcHVfZW5jb2Rl cl9oZWxwZXJfaHdfcmVzZXQoc3RydWN0Cj4gPiBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykK PiA+ICAgKglhIHRpbWUuCj4gPiAgICogZHB1X2VuYzogUG9pbnRlciB0byB2aXJ0dWFsIGVuY29k ZXIgc3RydWN0dXJlCj4gPiAgICovCj4gPiAtc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX2tpY2tv ZmZfcGh5cyhzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYykKPiA+ICtzdGF0aWMgdm9p ZCBfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVf ZW5jLAo+ID4gKwkJCQkgICAgICBib29sIGFzeW5jKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRwdV9o d19jdGwgKmN0bDsKPiA+ICAJdWludDMyX3QgaSwgcGVuZGluZ19mbHVzaDsKPiA+IEBAIC0xNTQy LDcgKzE1NDcsOCBAQCBzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVj dAo+ID4gZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYykKPiA+ICAJCQlzZXRfYml0KGksIGRwdV9l bmMtPmZyYW1lX2J1c3lfbWFzayk7Cj4gPiAgCQlpZiAoIXBoeXMtPm9wcy5uZWVkc19zaW5nbGVf Zmx1c2ggfHwKPiA+ICAJCQkJIXBoeXMtPm9wcy5uZWVkc19zaW5nbGVfZmx1c2gocGh5cykpCj4g PiAtCQkJX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goJmRwdV9lbmMtPmJhc2UsIHBoeXMsCj4g PiAweDApOwo+ID4gKwkJCV9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKCZkcHVfZW5jLT5iYXNl LCBwaHlzLAo+ID4gMHgwLAo+ID4gKwkJCQkJCSAgIGFzeW5jKTsKPiA+ICAJCWVsc2UgaWYgKGN0 bC0+b3BzLmdldF9wZW5kaW5nX2ZsdXNoKQo+ID4gIAkJCXBlbmRpbmdfZmx1c2ggfD0gY3RsLT5v cHMuZ2V0X3BlbmRpbmdfZmx1c2goY3RsKTsKPiA+ICAJfQo+ID4gQEAgLTE1NTIsNyArMTU1OCw3 IEBAIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9raWNrb2ZmX3BoeXMoc3RydWN0Cj4gPiBkcHVf ZW5jb2Rlcl92aXJ0ICpkcHVfZW5jKQo+ID4gIAkJX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2go Cj4gPiAgCQkJCSZkcHVfZW5jLT5iYXNlLAo+ID4gIAkJCQlkcHVfZW5jLT5jdXJfbWFzdGVyLAo+ ID4gLQkJCQlwZW5kaW5nX2ZsdXNoKTsKPiA+ICsJCQkJcGVuZGluZ19mbHVzaCwgYXN5bmMpOwo+ ID4gIAl9Cj4gPiAKPiA+ICAJX2RwdV9lbmNvZGVyX3RyaWdnZXJfc3RhcnQoZHB1X2VuYy0+Y3Vy X21hc3Rlcik7Cj4gPiBAQCAtMTczNiw3ICsxNzQyLDcgQEAgc3RhdGljIHZvaWQKPiA+IGRwdV9l bmNvZGVyX3ZzeW5jX2V2ZW50X3dvcmtfaGFuZGxlcihzdHJ1Y3Qga3RocmVhZF93b3JrICp3b3Jr KQo+ID4gIH0KPiA+IAo+ID4gIHZvaWQgZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29mZihz dHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCj4gPiAtCQlzdHJ1Y3QgZHB1X2VuY29kZXJfa2lj a29mZl9wYXJhbXMgKnBhcmFtcykKPiA+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9raWNrb2ZmX3Bh cmFtcyAqcGFyYW1zLCBib29sIGFzeW5jKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRwdV9lbmNvZGVy X3ZpcnQgKmRwdV9lbmM7Cj4gPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzOwo+ID4g QEAgLTE3NzUsNyArMTc4MSw3IEBAIHZvaWQgZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29m ZihzdHJ1Y3QKPiA+IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ID4gIAl9Cj4gPiAgfQo+ID4gCj4g PiAtdm9pZCBkcHVfZW5jb2Rlcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYykK PiA+ICt2b2lkIGRwdV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5j LCBib29sIGFzeW5jKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9l bmM7Cj4gPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzOwo+ID4gQEAgLTE3OTgsNyAr MTgwNCw3IEBAIHZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIKPiA+ ICpkcm1fZW5jKQo+ID4gIAkJKChhdG9taWNfcmVhZCgmZHB1X2VuYy0+ZnJhbWVfZG9uZV90aW1l b3V0KSAqIEhaKSAvCj4gPiAxMDAwKSk7Cj4gPiAKPiA+ICAJLyogQWxsIHBoeXMgZW5jcyBhcmUg cmVhZHkgdG8gZ28sIHRyaWdnZXIgdGhlIGtpY2tvZmYgKi8KPiA+IC0JX2RwdV9lbmNvZGVyX2tp Y2tvZmZfcGh5cyhkcHVfZW5jKTsKPiA+ICsJX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhkcHVf ZW5jLCBhc3luYyk7Cj4gPiAKPiA+ICAJLyogYWxsb3cgcGh5cyBlbmNzIHRvIGhhbmRsZSBhbnkg cG9zdC1raWNrb2ZmIGJ1c2luZXNzICovCj4gPiAgCWZvciAoaSA9IDA7IGkgPCBkcHVfZW5jLT5u dW1fcGh5c19lbmNzOyBpKyspIHsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9lbmNvZGVyLmgKPiA+IGluZGV4IDlkYmYzOGY0NDZkOS4uYzIwNDQxMjJkNjA5IDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIu aAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+ ID4gQEAgLTgxLDkgKzgxLDEwIEBAIHZvaWQgZHB1X2VuY29kZXJfcmVnaXN0ZXJfZnJhbWVfZXZl bnRfY2FsbGJhY2soc3RydWN0Cj4gPiBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+ICAgKglEZWxh eWVkOiBCbG9jayB1bnRpbCBuZXh0IHRyaWdnZXIgY2FuIGJlIGlzc3VlZC4KPiA+ICAgKiBAZW5j b2RlcjoJZW5jb2RlciBwb2ludGVyCj4gPiAgICogQHBhcmFtczoJa2lja29mZiB0aW1lIHBhcmFt ZXRlcnMKPiA+ICsgKiBAYXN5bmM6CXRydWUgaWYgdGhpcyBpcyBhbiBhc3luY2hyb25vdXMgY29t bWl0Cj4gPiAgICovCj4gPiAgdm9pZCBkcHVfZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+IC0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9raWNr b2ZmX3BhcmFtcyAqcGFyYW1zKTsKPiA+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9raWNrb2ZmX3Bh cmFtcyAqcGFyYW1zLCBib29sIGFzeW5jKTsKPiA+IAo+ID4gIC8qKgo+ID4gICAqIGRwdV9lbmNv ZGVyX3RyaWdnZXJfa2lja29mZl9wZW5kaW5nIC0gQ2xlYXIgdGhlIGZsdXNoIGJpdHMgZnJvbQo+ ID4gcHJldmlvdXMKPiA+IEBAIC05Niw4ICs5Nyw5IEBAIHZvaWQgZHB1X2VuY29kZXJfdHJpZ2dl cl9raWNrb2ZmX3BlbmRpbmcoc3RydWN0Cj4gPiBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiAg ICogZHB1X2VuY29kZXJfa2lja29mZiAtIHRyaWdnZXIgYSBkb3VibGUgYnVmZmVyIGZsaXAgb2Yg dGhlIGN0bCBwYXRoCj4gPiAgICoJKGkuZS4gY3RsIGZsdXNoIGFuZCBzdGFydCkgaW1tZWRpYXRl bHkuCj4gPiAgICogQGVuY29kZXI6CWVuY29kZXIgcG9pbnRlcgo+ID4gKyAqIEBhc3luYzoJdHJ1 ZSBpZiB0aGlzIGlzIGFuIGFzeW5jaHJvbm91cyBjb21taXQKPiA+ICAgKi8KPiA+IC12b2lkIGRw dV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiA+ICt2b2lk IGRwdV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBib29sIGFz eW5jKTsKPiA+IAo+ID4gIC8qKgo+ID4gICAqIGRwdV9lbmNvZGVyX3dhaXRfZm9yX2V2ZW50IC0g V2FpdHMgZm9yIGVuY29kZXIgZXZlbnRzCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9rbXMuYwo+ID4gaW5kZXggOTg1Yzg1NTc5NmFlLi41N2FkODM4Njg3NjYgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+ID4gQEAgLTM1Miw3 ICszNTIsNyBAQCB2b2lkIGRwdV9rbXNfZW5jb2Rlcl9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVy Cj4gPiAqZW5jb2RlcikKPiA+IAo+ID4gIAlpZiAoY3J0YyAmJiBjcnRjLT5zdGF0ZS0+YWN0aXZl KSB7Cj4gPiAgCQl0cmFjZV9kcHVfa21zX2VuY19lbmFibGUoRFJNSUQoY3J0YykpOwo+ID4gLQkJ ZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoY3J0Yyk7Cj4gPiArCQlkcHVfY3J0Y19jb21taXRfa2lj a29mZihjcnRjLCBmYWxzZSk7Cj4gPiAgCX0KPiA+ICB9Cj4gPiAKPiA+IEBAIC0zNjksNyArMzY5 LDggQEAgc3RhdGljIHZvaWQgZHB1X2ttc19jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywKPiA+ IHN0cnVjdAo+ID4gZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAKPiA+ICAJCWlmIChjcnRj LT5zdGF0ZS0+YWN0aXZlKSB7Cj4gPiAgCQkJdHJhY2VfZHB1X2ttc19jb21taXQoRFJNSUQoY3J0 YykpOwo+ID4gLQkJCWRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKGNydGMpOwo+ID4gKwkJCWRwdV9j cnRjX2NvbW1pdF9raWNrb2ZmKGNydGMsCj4gPiArCj4gPiBzdGF0ZS0+bGVnYWN5X2N1cnNvcl91 cGRhdGUpOwo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgfQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0 b21pYy5jCj4gPiBpbmRleCAyMDg4YTIwZWIyNzAuLmY1YjEyNTZlMzJiNiAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9hdG9taWMuYwo+ID4gQEAgLTgzLDcgKzgzLDggQEAgdm9pZCBtc21fYXRv bWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlCj4gPiAqc3RhdGUpCj4gPiAg CQlrbXMtPmZ1bmNzLT5jb21taXQoa21zLCBzdGF0ZSk7Cj4gPiAgCX0KPiA+IAo+ID4gLQltc21f YXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKGRldiwgc3RhdGUpOwo+ID4gKwlpZiAoIXN0YXRl LT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSkKPiA+ICsJCW1zbV9hdG9taWNfd2FpdF9mb3JfY29tbWl0 X2RvbmUoZGV2LCBzdGF0ZSk7Cj4gV2FzIHRoaXMgY2hhbmdlIHRlc3RlZCB3aXRoIE1EUDU/IFRo ZXkgaGF2ZSBhIGRpZmZlcmVudCBwYXRoCj4gdG8gc3VwcG9ydCBhc3luYyB1cGRhdGVzLgo+IAoK SSBqdXN0IHJlYWxpemVkIEkgZGlkbid0IHJlc3BvbmQgdG8gdGhpcy4gSSBoYXZlbid0IHRlc3Rl ZCB3aXRoIE1EUDUsIEkgZG9uJ3QKaGF2ZSB0aGUgcHJvcGVyIGh3LiBUaGF0IHNhaWQsIGN1cnNv ciBvbiBNRFA1IHdvbid0IHdvcmsgd2l0aG91dCB0aGlzIGNoYW5nZQpzaW5jZSBpdCdsbCByYXRl bGltaXQgY3Vyc29yIHVwZGF0ZXMgdG8gb25jZS1wcmUtdnN5bmMuCgpTZWFuCgo+IFRoYW5rcywK PiBKZXlrdW1hciBTLgo+ID4gCj4gPiAgCWttcy0+ZnVuY3MtPmNvbXBsZXRlX2NvbW1pdChrbXMs IHN0YXRlKTsKPiAKPiAtLSAKPiBKZXlrdW1hciBTCgotLSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBF bmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZnJlZWRyZW5vCg==