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: Wed, 26 Sep 2018 11:56:47 -0700 Message-ID: References: <20180919185627.206368-1-sean@poorly.run> <20180919185627.206368-3-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180919185627.206368-3-sean-p7yTbzM4H96eqtR555YLDQ@public.gmane.org> 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 T24gMjAxOC0wOS0xOSAxMTo1NiwgU2VhbiBQYXVsIHdyb3RlOgo+IEZyb206IFNlYW4gUGF1bCA8 c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+IAo+IFRoaXMgcGF0Y2ggc3ByaW5rbGVzIGEgZmV3IGFz eW5jL2xlZ2FjeV9jdXJzb3JfdXBkYXRlIGNoZWNrcwo+IHRocm91Z2ggY29tbWl0IHRvIGVuc3Vy ZSB0aGF0IGN1cnNvciB1cGRhdGVzIGFyZW4ndCBibG9ja2VkIG9uIHZzeW5jLgo+IFRoZXJlIGFy ZSAyIG1haW4gY29tcG9uZW50cyB0byB0aGlzLCB0aGUgZmlyc3QgaXMgdGhhdCB3ZSBkb24ndCB3 YW50IHRvCj4gd2FpdF9mb3JfY29tbWl0X2RvbmUgaW4gbXNtX2F0b21pYyAgYmVmb3JlIHJldHVy bmluZyBmcm9tIAo+IGF0b21pY19jb21wbGV0ZS4KPiBUaGUgc2Vjb25kIGlzIHRoYXQgaW4gZHB1 IHdlIGRvbid0IHdhbnQgdG8gd2FpdCBmb3IgZnJhbWVfZG9uZSBldmVudHMgCj4gd2hlbgo+IHVw ZGF0aW5nIHRoZSBjdXJzb3IuCj4gCj4gU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1 bEBjaHJvbWl1bS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmMgICAgfCA0NCArKysrKysrKysrKy0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaCAgICB8ICAzICstCj4gIGRyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgfCAyMSArKysrKystLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmggfCAgNiArKy0KPiAgZHJpdmVycy9ncHUv ZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jICAgICB8ICA1ICsrLQo+ICBkcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9hdG9taWMuYyAgICAgICAgICAgIHwgIDMgKy0KPiAgNiBmaWxlcyBjaGFuZ2Vk LCA0OCBpbnNlcnRpb25zKCspLCAzNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IGluZGV4IGE4ZjJkZDdhMzdjNy4uYjIzZjAwYTI1 NTRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRj LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4gQEAg LTgxNiw3ICs4MTYsNyBAQCBzdGF0aWMgaW50IF9kcHVfY3J0Y193YWl0X2Zvcl9mcmFtZV9kb25l KHN0cnVjdAo+IGRybV9jcnRjICpjcnRjKQo+ICAJcmV0dXJuIHJjOwo+ICB9Cj4gCj4gLXZvaWQg ZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICt2b2lkIGRw dV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBhc3luYykK PiAgewo+ICAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOwo+ICAJc3RydWN0IGRybV9kZXZp Y2UgKmRldjsKPiBAQCAtODYyLDI3ICs4NjIsMzAgQEAgdm9pZCBkcHVfY3J0Y19jb21taXRfa2lj a29mZihzdHJ1Y3QgZHJtX2NydGMgCj4gKmNydGMpCj4gIAkJICogRW5jb2RlciB3aWxsIGZsdXNo L3N0YXJ0IG5vdywgdW5sZXNzIGl0IGhhcyBhIHR4Cj4gcGVuZGluZy4KPiAgCQkgKiBJZiBzbywg aXQgbWF5IGRlbGF5IGFuZCBmbHVzaCBhdCBhbiBpcnEgZXZlbnQgKGUuZy4KPiBwcGRvbmUpCj4g IAkJICovCj4gLQkJZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29mZihlbmNvZGVyLCAmcGFy YW1zKTsKPiArCQlkcHVfZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKGVuY29kZXIsICZwYXJh bXMsIGFzeW5jKTsKPiAgCX0KPiAKPiAtCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUgY29t cGxldGlvbiAqLwo+IC0JRFBVX0FUUkFDRV9CRUdJTigid2FpdF9mb3JfZnJhbWVfZG9uZV9ldmVu dCIpOwo+IC0JcmV0ID0gX2RwdV9jcnRjX3dhaXRfZm9yX2ZyYW1lX2RvbmUoY3J0Yyk7Cj4gLQlE UFVfQVRSQUNFX0VORCgid2FpdF9mb3JfZnJhbWVfZG9uZV9ldmVudCIpOwo+IC0JaWYgKHJldCkg ewo+IC0JCURQVV9FUlJPUigiY3J0YyVkIHdhaXQgZm9yIGZyYW1lIGRvbmUKPiBmYWlsZWQ7ZnJh bWVfcGVuZGluZyVkXG4iLAo+IC0JCQkJY3J0Yy0+YmFzZS5pZCwKPiAtCQkJCWF0b21pY19yZWFk KCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykpOwo+IC0JCWdvdG8gZW5kOwo+IC0JfQo+IAo+IC0J aWYgKGF0b21pY19pbmNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPT0gMSkgewo+ IC0JCS8qIGFjcXVpcmUgYmFuZHdpZHRoIGFuZCBvdGhlciByZXNvdXJjZXMgKi8KPiAtCQlEUFVf REVCVUcoImNydGMlZCBmaXJzdCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+IC0JfSBlbHNl Cj4gLQkJRFBVX0RFQlVHKCJjcnRjJWQgY29tbWl0XG4iLCBjcnRjLT5iYXNlLmlkKTsKPiArCWlm ICghYXN5bmMpIHsKPiArCQkvKiB3YWl0IGZvciBmcmFtZV9ldmVudF9kb25lIGNvbXBsZXRpb24g Ki8KPiArCQlEUFVfQVRSQUNFX0JFR0lOKCJ3YWl0X2Zvcl9mcmFtZV9kb25lX2V2ZW50Iik7Cj4g KwkJcmV0ID0gX2RwdV9jcnRjX3dhaXRfZm9yX2ZyYW1lX2RvbmUoY3J0Yyk7Cj4gKwkJRFBVX0FU UkFDRV9FTkQoIndhaXRfZm9yX2ZyYW1lX2RvbmVfZXZlbnQiKTsKPiArCQlpZiAocmV0KSB7Cj4g KwkJCURQVV9FUlJPUigiY3J0YyVkIHdhaXQgZm9yIGZyYW1lIGRvbmUKPiBmYWlsZWQ7ZnJhbWVf cGVuZGluZyVkXG4iLAo+ICsJCQkJCWNydGMtPmJhc2UuaWQsCj4gKwo+IGF0b21pY19yZWFkKCZk cHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykpOwo+ICsJCQlnb3RvIGVuZDsKPiArCQl9Cj4gKwo+ICsJ CWlmIChhdG9taWNfaW5jX3JldHVybigmZHB1X2NydGMtPmZyYW1lX3BlbmRpbmcpID09IDEpIHsK PiArCQkJLyogYWNxdWlyZSBiYW5kd2lkdGggYW5kIG90aGVyIHJlc291cmNlcyAqLwo+ICsJCQlE UFVfREVCVUcoImNydGMlZCBmaXJzdCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+ICsJCX0g ZWxzZQo+ICsJCQlEUFVfREVCVUcoImNydGMlZCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+ IAo+IC0JZHB1X2NydGMtPnBsYXlfY291bnQrKzsKPiArCQlkcHVfY3J0Yy0+cGxheV9jb3VudCsr Owo+ICsJfQo+IAo+ICAJZHB1X3ZiaWZfY2xlYXJfZXJyb3JzKGRwdV9rbXMpOwo+IAo+IEBAIC04 OTAsMTEgKzg5MywxMiBAQCB2b2lkIGRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1f Y3J0YyAKPiAqY3J0YykKPiAgCQlpZiAoZW5jb2Rlci0+Y3J0YyAhPSBjcnRjKQo+ICAJCQljb250 aW51ZTsKPiAKPiAtCQlkcHVfZW5jb2Rlcl9raWNrb2ZmKGVuY29kZXIpOwo+ICsJCWRwdV9lbmNv ZGVyX2tpY2tvZmYoZW5jb2RlciwgYXN5bmMpOwo+ICAJfQo+IAo+ICBlbmQ6Cj4gLQlyZWluaXRf Y29tcGxldGlvbigmZHB1X2NydGMtPmZyYW1lX2RvbmVfY29tcCk7Cj4gKwlpZiAoIWFzeW5jKQo+ ICsJCXJlaW5pdF9jb21wbGV0aW9uKCZkcHVfY3J0Yy0+ZnJhbWVfZG9uZV9jb21wKTsKPiAgCURQ VV9BVFJBQ0VfRU5EKCJjcnRjX2NvbW1pdCIpOwo+ICB9Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9t c20vZGlzcC9kcHUxL2RwdV9jcnRjLmgKPiBpbmRleCAzNzIzYjQ4MzAzMzUuLjY3YzlmNTk5OTdj ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+IEBAIC0y ODUsOCArMjg1LDkgQEAgaW50IGRwdV9jcnRjX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMs IGJvb2wgCj4gZW4pOwo+ICAvKioKPiAgICogZHB1X2NydGNfY29tbWl0X2tpY2tvZmYgLSB0cmln Z2VyIGtpY2tvZmYgb2YgdGhlIGNvbW1pdCBmb3IgdGhpcyAKPiBjcnRjCj4gICAqIEBjcnRjOiBQ b2ludGVyIHRvIGRybSBjcnRjIG9iamVjdAo+ICsgKiBAYXN5bmM6IHRydWUgaWYgdGhlIGNvbW1p dCBpcyBhc3luY2hyb25vdXMsIGZhbHNlIG90aGVyd2lzZQo+ICAgKi8KPiAtdm9pZCBkcHVfY3J0 Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICt2b2lkIGRwdV9jcnRj X2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBhc3luYyk7Cj4gCj4g IC8qKgo+ICAgKiBkcHVfY3J0Y19jb21wbGV0ZV9jb21taXQgLSBjYWxsYmFjayBzaWduYWxsaW5n IGNvbXBsZXRpb24gb2YgCj4gY3VycmVudAo+IGNvbW1pdAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gaW5kZXggYzJlODk4NWI0YzU0Li5mYzcyOWZj OGRkOGMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2Vu Y29kZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmMKPiBAQCAtMTQxMCw3ICsxNDEwLDcgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfb2ZmX3dv cmsoc3RydWN0IAo+IGt0aHJlYWRfd29yawo+ICp3b3JrKQo+ICAgKiBleHRyYV9mbHVzaF9iaXRz OiBBZGRpdGlvbmFsIGJpdCBtYXNrIHRvIGluY2x1ZGUgaW4gZmx1c2ggdHJpZ2dlcgo+ICAgKi8K PiAgc3RhdGljIGlubGluZSB2b2lkIF9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKHN0cnVjdCBk cm1fZW5jb2Rlcgo+ICpkcm1fZW5jLAo+IC0JCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlz LCB1aW50MzJfdCBleHRyYV9mbHVzaF9iaXRzKQo+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlz ICpwaHlzLCB1aW50MzJfdCBleHRyYV9mbHVzaF9iaXRzLAo+IGJvb2wgYXN5bmMpCj4gIHsKPiAg CXN0cnVjdCBkcHVfaHdfY3RsICpjdGw7Cj4gIAlpbnQgcGVuZGluZ19raWNrb2ZmX2NudDsKPiBA QCAtMTQzMyw3ICsxNDMzLDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZAo+IF9kcHVfZW5jb2Rlcl90 cmlnZ2VyX2ZsdXNoKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYywKPiAgCQlyZXR1cm47Cj4g IAl9Cj4gCj4gLQlwZW5kaW5nX2tpY2tvZmZfY250ID0gZHB1X2VuY29kZXJfcGh5c19pbmNfcGVu ZGluZyhwaHlzKTsKPiArCWlmICghYXN5bmMpCj4gKwkJcGVuZGluZ19raWNrb2ZmX2NudCA9IGRw dV9lbmNvZGVyX3BoeXNfaW5jX3BlbmRpbmcocGh5cyk7Cj4gKwllbHNlCj4gKwkJcGVuZGluZ19r aWNrb2ZmX2NudCA9Cj4gYXRvbWljX3JlYWQoJnBoeXMtPnBlbmRpbmdfa2lja29mZl9jbnQpOwo+ IAo+ICAJaWYgKGV4dHJhX2ZsdXNoX2JpdHMgJiYgY3RsLT5vcHMudXBkYXRlX3BlbmRpbmdfZmx1 c2gpCj4gIAkJY3RsLT5vcHMudXBkYXRlX3BlbmRpbmdfZmx1c2goY3RsLCBleHRyYV9mbHVzaF9i aXRzKTsKPiBAQCAtMTU0NSw3ICsxNTQ4LDggQEAgdm9pZCBkcHVfZW5jb2Rlcl9oZWxwZXJfaHdf cmVzZXQoc3RydWN0Cj4gZHB1X2VuY29kZXJfcGh5cyAqcGh5c19lbmMpCj4gICAqCWEgdGltZS4K PiAgICogZHB1X2VuYzogUG9pbnRlciB0byB2aXJ0dWFsIGVuY29kZXIgc3RydWN0dXJlCj4gICAq Lwo+IC1zdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVjdCBkcHVfZW5j b2Rlcl92aXJ0IAo+ICpkcHVfZW5jKQo+ICtzdGF0aWMgdm9pZCBfZHB1X2VuY29kZXJfa2lja29m Zl9waHlzKHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0IAo+ICpkcHVfZW5jLAo+ICsJCQkJICAgICAg Ym9vbCBhc3luYykKPiAgewo+ICAJc3RydWN0IGRwdV9od19jdGwgKmN0bDsKPiAgCXVpbnQzMl90 IGksIHBlbmRpbmdfZmx1c2g7Cj4gQEAgLTE1NzYsNyArMTU4MCw4IEBAIHN0YXRpYyB2b2lkIF9k cHVfZW5jb2Rlcl9raWNrb2ZmX3BoeXMoc3RydWN0Cj4gZHB1X2VuY29kZXJfdmlydCAqZHB1X2Vu YykKPiAgCQkJc2V0X2JpdChpLCBkcHVfZW5jLT5mcmFtZV9idXN5X21hc2spOwo+ICAJCWlmICgh cGh5cy0+b3BzLm5lZWRzX3NpbmdsZV9mbHVzaCB8fAo+ICAJCQkJIXBoeXMtPm9wcy5uZWVkc19z aW5nbGVfZmx1c2gocGh5cykpCj4gLQkJCV9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNoKCZkcHVf ZW5jLT5iYXNlLCBwaHlzLAo+IDB4MCk7Cj4gKwkJCV9kcHVfZW5jb2Rlcl90cmlnZ2VyX2ZsdXNo KCZkcHVfZW5jLT5iYXNlLCBwaHlzLAo+IDB4MCwKPiArCQkJCQkJICAgYXN5bmMpOwo+ICAJCWVs c2UgaWYgKGN0bC0+b3BzLmdldF9wZW5kaW5nX2ZsdXNoKQo+ICAJCQlwZW5kaW5nX2ZsdXNoIHw9 IGN0bC0+b3BzLmdldF9wZW5kaW5nX2ZsdXNoKGN0bCk7Cj4gIAl9Cj4gQEAgLTE1ODYsNyArMTU5 MSw3IEBAIHN0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9raWNrb2ZmX3BoeXMoc3RydWN0Cj4gZHB1 X2VuY29kZXJfdmlydCAqZHB1X2VuYykKPiAgCQlfZHB1X2VuY29kZXJfdHJpZ2dlcl9mbHVzaCgK PiAgCQkJCSZkcHVfZW5jLT5iYXNlLAo+ICAJCQkJZHB1X2VuYy0+Y3VyX21hc3RlciwKPiAtCQkJ CXBlbmRpbmdfZmx1c2gpOwo+ICsJCQkJcGVuZGluZ19mbHVzaCwgYXN5bmMpOwo+ICAJfQo+IAo+ ICAJX2RwdV9lbmNvZGVyX3RyaWdnZXJfc3RhcnQoZHB1X2VuYy0+Y3VyX21hc3Rlcik7Cj4gQEAg LTE3NzAsNyArMTc3NSw3IEBAIHN0YXRpYyB2b2lkCj4gZHB1X2VuY29kZXJfdnN5bmNfZXZlbnRf d29ya19oYW5kbGVyKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndvcmspCj4gIH0KPiAKPiAgdm9pZCBk cHVfZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2Vu YywKPiAtCQlzdHJ1Y3QgZHB1X2VuY29kZXJfa2lja29mZl9wYXJhbXMgKnBhcmFtcykKPiArCQlz dHJ1Y3QgZHB1X2VuY29kZXJfa2lja29mZl9wYXJhbXMgKnBhcmFtcywgYm9vbCBhc3luYykKPiAg ewo+ICAJc3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQgKmRwdV9lbmM7Cj4gIAlzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5czsKPiBAQCAtMTgxMSw3ICsxODE2LDcgQEAgdm9pZCBkcHVfZW5jb2Rl cl9wcmVwYXJlX2Zvcl9raWNrb2ZmKHN0cnVjdAo+IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+ICAJ fQo+ICB9Cj4gCj4gLXZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIg KmRybV9lbmMpCj4gK3ZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIg KmRybV9lbmMsIGJvb2wgYXN5bmMpCj4gIHsKPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpk cHVfZW5jOwo+ICAJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXM7Cj4gQEAgLTE4MzQsNyAr MTgzOSw3IEBAIHZvaWQgZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIKPiAq ZHJtX2VuYykKPiAgCQkoKGF0b21pY19yZWFkKCZkcHVfZW5jLT5mcmFtZV9kb25lX3RpbWVvdXQp ICogSFopIC8KPiAxMDAwKSk7Cj4gCj4gIAkvKiBBbGwgcGh5cyBlbmNzIGFyZSByZWFkeSB0byBn bywgdHJpZ2dlciB0aGUga2lja29mZiAqLwo+IC0JX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhk cHVfZW5jKTsKPiArCV9kcHVfZW5jb2Rlcl9raWNrb2ZmX3BoeXMoZHB1X2VuYywgYXN5bmMpOwo+ IAo+ICAJLyogYWxsb3cgcGh5cyBlbmNzIHRvIGhhbmRsZSBhbnkgcG9zdC1raWNrb2ZmIGJ1c2lu ZXNzICovCj4gIAlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVtX3BoeXNfZW5jczsgaSsrKSB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVy LmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKPiBpbmRl eCA5ZGJmMzhmNDQ2ZDkuLmMyMDQ0MTIyZDYwOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+IEBAIC04MSw5ICs4MSwxMCBAQCB2b2lkIAo+IGRw dV9lbmNvZGVyX3JlZ2lzdGVyX2ZyYW1lX2V2ZW50X2NhbGxiYWNrKHN0cnVjdAo+IGRybV9lbmNv ZGVyICplbmNvZGVyLAo+ICAgKglEZWxheWVkOiBCbG9jayB1bnRpbCBuZXh0IHRyaWdnZXIgY2Fu IGJlIGlzc3VlZC4KPiAgICogQGVuY29kZXI6CWVuY29kZXIgcG9pbnRlcgo+ICAgKiBAcGFyYW1z OglraWNrb2ZmIHRpbWUgcGFyYW1ldGVycwo+ICsgKiBAYXN5bmM6CXRydWUgaWYgdGhpcyBpcyBh biBhc3luY2hyb25vdXMgY29tbWl0Cj4gICAqLwo+ICB2b2lkIGRwdV9lbmNvZGVyX3ByZXBhcmVf Zm9yX2tpY2tvZmYoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+IC0JCXN0cnVjdCBkcHVf ZW5jb2Rlcl9raWNrb2ZmX3BhcmFtcyAqcGFyYW1zKTsKPiArCQlzdHJ1Y3QgZHB1X2VuY29kZXJf a2lja29mZl9wYXJhbXMgKnBhcmFtcywgYm9vbCBhc3luYyk7Cj4gCj4gIC8qKgo+ICAgKiBkcHVf ZW5jb2Rlcl90cmlnZ2VyX2tpY2tvZmZfcGVuZGluZyAtIENsZWFyIHRoZSBmbHVzaCBiaXRzIGZy b20KPiBwcmV2aW91cwo+IEBAIC05Niw4ICs5Nyw5IEBAIHZvaWQgZHB1X2VuY29kZXJfdHJpZ2dl cl9raWNrb2ZmX3BlbmRpbmcoc3RydWN0Cj4gZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ICAgKiBk cHVfZW5jb2Rlcl9raWNrb2ZmIC0gdHJpZ2dlciBhIGRvdWJsZSBidWZmZXIgZmxpcCBvZiB0aGUg Y3RsIHBhdGgKPiAgICoJKGkuZS4gY3RsIGZsdXNoIGFuZCBzdGFydCkgaW1tZWRpYXRlbHkuCj4g ICAqIEBlbmNvZGVyOgllbmNvZGVyIHBvaW50ZXIKPiArICogQGFzeW5jOgl0cnVlIGlmIHRoaXMg aXMgYW4gYXN5bmNocm9ub3VzIGNvbW1pdAo+ICAgKi8KPiAtdm9pZCBkcHVfZW5jb2Rlcl9raWNr b2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gK3ZvaWQgZHB1X2VuY29kZXJfa2lj a29mZihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGJvb2wgYXN5bmMpOwo+IAo+ICAvKioK PiAgICogZHB1X2VuY29kZXJfd2FpdF9mb3JfZXZlbnQgLSBXYWl0cyBmb3IgZW5jb2RlciBldmVu dHMKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5j Cj4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPiBpbmRleCAwYTY4 M2U2NWE5ZjMuLjFjYmEyMWVkZDg2MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfa21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfa21zLmMKPiBAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgZHB1X2ttc19lbmNvZGVyX2Vu YWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIKPiAqZW5jb2RlcikKPiAKPiAgCWlmIChjcnRjICYmIGNy dGMtPnN0YXRlLT5hY3RpdmUpIHsKPiAgCQl0cmFjZV9kcHVfa21zX2VuY19lbmFibGUoRFJNSUQo Y3J0YykpOwo+IC0JCWRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKGNydGMpOwo+ICsJCWRwdV9jcnRj X2NvbW1pdF9raWNrb2ZmKGNydGMsIGZhbHNlKTsKPiAgCX0KPiAgfQo+IAo+IEBAIC0zNjksNyAr MzY5LDggQEAgc3RhdGljIHZvaWQgZHB1X2ttc19jb21taXQoc3RydWN0IG1zbV9rbXMgKmttcywg Cj4gc3RydWN0Cj4gZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gCj4gIAkJaWYgKGNydGMtPnN0 YXRlLT5hY3RpdmUpIHsKPiAgCQkJdHJhY2VfZHB1X2ttc19jb21taXQoRFJNSUQoY3J0YykpOwo+ IC0JCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjKTsKPiArCQkJZHB1X2NydGNfY29tbWl0 X2tpY2tvZmYoY3J0YywKPiArCj4gc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKTsKPiAgCQl9 Cj4gIAl9Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWlj LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gaW5kZXggYzFmMTc3OWM5 ODBmLi43OTEyMTMwY2U1Y2UgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f YXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+IEBAIC03 Niw3ICs3Niw4IEBAIHZvaWQgbXNtX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZQo+ICpzdGF0ZSkKPiAgCQlrbXMtPmZ1bmNzLT5jb21taXQoa21zLCBzdGF0ZSk7Cj4g IAl9Cj4gCj4gLQltc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKGRldiwgc3RhdGUpOwo+ ICsJaWYgKCFzdGF0ZS0+bGVnYWN5X2N1cnNvcl91cGRhdGUpCkkgc2VlIHN0YXRlLT5hc3luY191 cGRhdGUgaXMgdXBkYXRlZCBhZnRlciB2YWxpZGF0aW9uIGNoZWNrcyBvbiB0aGUgCmFzeW5jIGNh cGFiaWxpdGllcy4gU2hvdWxkbid0IHdlIHVzZQp0aGF0IHZhciBpbnN0ZWFkIG9mIHN0YXRlLT5s ZWdhY3lfY3Vyc29yX3VwZGF0ZT8KPiArCQltc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25l KGRldiwgc3RhdGUpOwo+IAo+ICAJa21zLT5mdW5jcy0+Y29tcGxldGVfY29tbWl0KGttcywgc3Rh dGUpOwoKRG8gd2UgbmVlZCB0byBpbnRyb2R1Y2UgcGxhbmUgaGVscGVycyBhdG9taWNfYXN5bmNf dXBkYXRlIGFuZCAKYXRvbWljX2FzeW5jX2NoZWNrIGluIERQVSBiZWZvcmUgc3VwcG9ydGluZwp0 aGVzZSB3YWl0IHNraXBzPyBvciBhcmUgdGhleSBpcnJlbGV2YW50IGZvciB0aGlzIGxlZ2FjeSBh c3luYyBwYXRoPwoKLS0gCkpleWt1bWFyIFMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZnJlZWRyZW5vCg==