From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH v2 3/3] drm/msm: dpu: Make legacy cursor updates asynchronous Date: Mon, 19 Nov 2018 10:32:52 -0800 Message-ID: <74a86eeb38a1451b20c802c8262da7d2@codeaurora.org> References: <20181030160033.18464-1-sean@poorly.run> <20181030160033.18464-3-sean@poorly.run> <0bb3272e248ad0a13fd8f8d863e7ed91@codeaurora.org> <20181116200226.GW154160@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181116200226.GW154160@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sean Paul Cc: linux-arm-msm@vger.kernel.org, Abhinav Kumar , Sean Paul , dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOC0xMS0xNiAxMjowMiwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFRodSwgTm92IDA4LCAy MDE4IGF0IDAyOjAwOjUxUE0gLTA4MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBPbiAy MDE4LTEwLTMwIDA5OjAwLCBTZWFuIFBhdWwgd3JvdGU6Cj4+ID4gRnJvbTogU2VhbiBQYXVsIDxz ZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4+ID4KPj4gPiBUaGlzIHBhdGNoIHNwcmlua2xlcyBhIGZl dyBhc3luYy9sZWdhY3lfY3Vyc29yX3VwZGF0ZSBjaGVja3MKPj4gPiB0aHJvdWdoIGNvbW1pdCB0 byBlbnN1cmUgdGhhdCBjdXJzb3IgdXBkYXRlcyBhcmVuJ3QgYmxvY2tlZCBvbiB2c3luYy4KPj4g PiBUaGVyZSBhcmUgMiBtYWluIGNvbXBvbmVudHMgdG8gdGhpcywgdGhlIGZpcnN0IGlzIHRoYXQg d2UgZG9uJ3Qgd2FudAo+IHRvCj4+ID4gd2FpdF9mb3JfY29tbWl0X2RvbmUgaW4gbXNtX2F0b21p YyAgYmVmb3JlIHJldHVybmluZyBmcm9tCj4+ID4gYXRvbWljX2NvbXBsZXRlLgo+PiA+IFRoZSBz ZWNvbmQgaXMgdGhhdCBpbiBkcHUgd2UgZG9uJ3Qgd2FudCB0byB3YWl0IGZvciBmcmFtZV9kb25l IGV2ZW50cwo+PiA+IHdoZW4KPj4gPiB1cGRhdGluZyB0aGUgY3Vyc29yLgo+PiA+Cj4+ID4gQ2hh bmdlcyBpbiB2MjoKPj4gPiAtIE5vbmUKPj4gPgo+PiA+IFNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1 bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+PiA+IC0tLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0v bXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgIHwgNDQKPiArKysrKysrKysrKy0tLS0tLS0tLS0K Pj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaCAgICB8ICAzICst Cj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgfCAyMiAr KysrKysrLS0tLQo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rl ci5oIHwgIDYgKystCj4+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMu YyAgICAgfCAgNSArKy0KPj4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgICAg ICAgICAgICB8ICAzICstCj4+ID4gIDYgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwg MzQgZGVsZXRpb25zKC0pCj4+ID4KPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+PiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2NydGMuYwo+PiA+IGluZGV4IGVkODRjZjQ0YTIyMi4uMWUzZTU3ODE3YjcyIDEwMDY0 NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9jcnRjLmMKPj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4+ID4gQEAg LTcwMiw3ICs3MDIsNyBAQCBzdGF0aWMgaW50IF9kcHVfY3J0Y193YWl0X2Zvcl9mcmFtZV9kb25l KHN0cnVjdAo+PiA+IGRybV9jcnRjICpjcnRjKQo+PiA+ICAJcmV0dXJuIHJjOwo+PiA+ICB9Cj4+ ID4KPj4gPiAtdm9pZCBkcHVfY3J0Y19jb21taXRfa2lja29mZihzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCj4+ID4gK3ZvaWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpj cnRjLCBib29sIGFzeW5jKQo+PiA+ICB7Cj4+ID4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXI7Cj4+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+PiA+IEBAIC03 MzEsMjcgKzczMSwzMCBAQCB2b2lkIGRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKHN0cnVjdCBkcm1f Y3J0Ywo+PiA+ICpjcnRjKQo+PiA+ICAJCSAqIEVuY29kZXIgd2lsbCBmbHVzaC9zdGFydCBub3cs IHVubGVzcyBpdCBoYXMgYSB0eAo+PiA+IHBlbmRpbmcuCj4+ID4gIAkJICogSWYgc28sIGl0IG1h eSBkZWxheSBhbmQgZmx1c2ggYXQgYW4gaXJxIGV2ZW50IChlLmcuCj4+ID4gcHBkb25lKQo+PiA+ ICAJCSAqLwo+PiA+IC0JCWRwdV9lbmNvZGVyX3ByZXBhcmVfZm9yX2tpY2tvZmYoZW5jb2Rlciwg JnBhcmFtcyk7Cj4+ID4gKwkJZHB1X2VuY29kZXJfcHJlcGFyZV9mb3Jfa2lja29mZihlbmNvZGVy LCAmcGFyYW1zLCBhc3luYyk7Cj4+ID4gIAl9Cj4+ID4KPj4gPiAtCS8qIHdhaXQgZm9yIGZyYW1l X2V2ZW50X2RvbmUgY29tcGxldGlvbiAqLwo+PiA+IC0JRFBVX0FUUkFDRV9CRUdJTigid2FpdF9m b3JfZnJhbWVfZG9uZV9ldmVudCIpOwo+PiA+IC0JcmV0ID0gX2RwdV9jcnRjX3dhaXRfZm9yX2Zy YW1lX2RvbmUoY3J0Yyk7Cj4+ID4gLQlEUFVfQVRSQUNFX0VORCgid2FpdF9mb3JfZnJhbWVfZG9u ZV9ldmVudCIpOwo+PiA+IC0JaWYgKHJldCkgewo+PiA+IC0JCURQVV9FUlJPUigiY3J0YyVkIHdh aXQgZm9yIGZyYW1lIGRvbmUKPj4gPiBmYWlsZWQ7ZnJhbWVfcGVuZGluZyVkXG4iLAo+PiA+IC0J CQkJY3J0Yy0+YmFzZS5pZCwKPj4gPiAtCQkJCWF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJhbWVf cGVuZGluZykpOwo+PiA+IC0JCWdvdG8gZW5kOwo+PiA+IC0JfQo+PiA+Cj4+ID4gLQlpZiAoYXRv bWljX2luY19yZXR1cm4oJmRwdV9jcnRjLT5mcmFtZV9wZW5kaW5nKSA9PSAxKSB7Cj4+ID4gLQkJ LyogYWNxdWlyZSBiYW5kd2lkdGggYW5kIG90aGVyIHJlc291cmNlcyAqLwo+PiA+IC0JCURQVV9E RUJVRygiY3J0YyVkIGZpcnN0IGNvbW1pdFxuIiwgY3J0Yy0+YmFzZS5pZCk7Cj4+ID4gLQl9IGVs c2UKPj4gPiAtCQlEUFVfREVCVUcoImNydGMlZCBjb21taXRcbiIsIGNydGMtPmJhc2UuaWQpOwo+ PiA+ICsJaWYgKCFhc3luYykgewo+PiA+ICsJCS8qIHdhaXQgZm9yIGZyYW1lX2V2ZW50X2RvbmUg Y29tcGxldGlvbiAqLwo+PiA+ICsJCURQVV9BVFJBQ0VfQkVHSU4oIndhaXRfZm9yX2ZyYW1lX2Rv bmVfZXZlbnQiKTsKPj4gPiArCQlyZXQgPSBfZHB1X2NydGNfd2FpdF9mb3JfZnJhbWVfZG9uZShj cnRjKTsKPj4gPiArCQlEUFVfQVRSQUNFX0VORCgid2FpdF9mb3JfZnJhbWVfZG9uZV9ldmVudCIp Owo+PiA+ICsJCWlmIChyZXQpIHsKPj4gPiArCQkJRFBVX0VSUk9SKCJjcnRjJWQgd2FpdCBmb3Ig ZnJhbWUgZG9uZQo+PiA+IGZhaWxlZDtmcmFtZV9wZW5kaW5nJWRcbiIsCj4+ID4gKwkJCQkJY3J0 Yy0+YmFzZS5pZCwKPj4gPiArCj4+ID4gYXRvbWljX3JlYWQoJmRwdV9jcnRjLT5mcmFtZV9wZW5k aW5nKSk7Cj4+ID4gKwkJCWdvdG8gZW5kOwo+PiA+ICsJCX0KPj4gPiArCj4+ID4gKwkJaWYgKGF0 b21pY19pbmNfcmV0dXJuKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykgPT0gMSkgewo+PiA+ICsJ CQkvKiBhY3F1aXJlIGJhbmR3aWR0aCBhbmQgb3RoZXIgcmVzb3VyY2VzICovCj4+ID4gKwkJCURQ VV9ERUJVRygiY3J0YyVkIGZpcnN0IGNvbW1pdFxuIiwgY3J0Yy0+YmFzZS5pZCk7Cj4+ID4gKwkJ fSBlbHNlCj4+ID4gKwkJCURQVV9ERUJVRygiY3J0YyVkIGNvbW1pdFxuIiwgY3J0Yy0+YmFzZS5p ZCk7Cj4+ID4KPj4gPiAtCWRwdV9jcnRjLT5wbGF5X2NvdW50Kys7Cj4+ID4gKwkJZHB1X2NydGMt PnBsYXlfY291bnQrKzsKPj4gPiArCX0KPj4gPgo+PiA+ICAJZHB1X3ZiaWZfY2xlYXJfZXJyb3Jz KGRwdV9rbXMpOwo+PiA+Cj4+ID4gQEAgLTc1OSwxMSArNzYyLDEyIEBAIHZvaWQgZHB1X2NydGNf Y29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjCj4+ID4gKmNydGMpCj4+ID4gIAkJaWYgKGVu Y29kZXItPmNydGMgIT0gY3J0YykKPj4gPiAgCQkJY29udGludWU7Cj4+ID4KPj4gPiAtCQlkcHVf ZW5jb2Rlcl9raWNrb2ZmKGVuY29kZXIpOwo+PiA+ICsJCWRwdV9lbmNvZGVyX2tpY2tvZmYoZW5j b2RlciwgYXN5bmMpOwo+PiA+ICAJfQo+PiA+Cj4+ID4gIGVuZDoKPj4gPiAtCXJlaW5pdF9jb21w bGV0aW9uKCZkcHVfY3J0Yy0+ZnJhbWVfZG9uZV9jb21wKTsKPj4gPiArCWlmICghYXN5bmMpCj4+ ID4gKwkJcmVpbml0X2NvbXBsZXRpb24oJmRwdV9jcnRjLT5mcmFtZV9kb25lX2NvbXApOwo+PiA+ ICAJRFBVX0FUUkFDRV9FTkQoImNydGNfY29tbWl0Iik7Cj4+ID4gIH0KPj4gPgo+PiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4+ID4gYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5oCj4+ID4gaW5kZXggNDgyMjYw MjQwMmY5Li5lYzYzM2NlM2VlNmMgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9jcnRjLmgKPj4gPiBAQCAtMjc3LDggKzI3Nyw5IEBAIGludCBkcHVfY3J0Y192 Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sCj4gZW4pOwo+PiA+ICAvKioKPj4gPiAg ICogZHB1X2NydGNfY29tbWl0X2tpY2tvZmYgLSB0cmlnZ2VyIGtpY2tvZmYgb2YgdGhlIGNvbW1p dCBmb3IgdGhpcwo+PiA+IGNydGMKPj4gPiAgICogQGNydGM6IFBvaW50ZXIgdG8gZHJtIGNydGMg b2JqZWN0Cj4+ID4gKyAqIEBhc3luYzogdHJ1ZSBpZiB0aGUgY29tbWl0IGlzIGFzeW5jaHJvbm91 cywgZmFsc2Ugb3RoZXJ3aXNlCj4+ID4gICAqLwo+PiA+IC12b2lkIGRwdV9jcnRjX2NvbW1pdF9r aWNrb2ZmKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4+ID4gK3ZvaWQgZHB1X2NydGNfY29tbWl0 X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpjcnRjLCBib29sIGFzeW5jKTsKPj4gPgo+PiA+ICAv KioKPj4gPiAgICogZHB1X2NydGNfY29tcGxldGVfY29tbWl0IC0gY2FsbGJhY2sgc2lnbmFsbGlu ZyBjb21wbGV0aW9uIG9mCj4gY3VycmVudAo+PiA+IGNvbW1pdAo+PiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+ID4gYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4+ID4gaW5kZXggODJjNTVlZmI1 MDBmLi5hOGJhMTBjZWFhY2YgMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2VuY29kZXIuYwo+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyLmMKPj4gPiBAQCAtMTM3NSw3ICsxMzc1LDggQEAgc3RhdGljIHZv aWQgZHB1X2VuY29kZXJfb2ZmX3dvcmsoc3RydWN0Cj4+ID4ga3RocmVhZF93b3JrCj4+ID4gKndv cmspCj4+ID4gICAqIGV4dHJhX2ZsdXNoX2JpdHM6IEFkZGl0aW9uYWwgYml0IG1hc2sgdG8gaW5j bHVkZSBpbiBmbHVzaCB0cmlnZ2VyCj4+ID4gICAqLwo+PiA+ICBzdGF0aWMgdm9pZCBfZHB1X2Vu Y29kZXJfdHJpZ2dlcl9mbHVzaChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCj4+ID4gLQkJ c3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMsIHVpbnQzMl90IGV4dHJhX2ZsdXNoX2JpdHMp Cj4+ID4gKwkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMsIHVpbnQzMl90IGV4dHJhX2Zs dXNoX2JpdHMsCj4+ID4gKwkJYm9vbCBhc3luYykKPj4gPiAgewo+PiA+ICAJc3RydWN0IGRwdV9o d19jdGwgKmN0bDsKPj4gPiAgCWludCBwZW5kaW5nX2tpY2tvZmZfY250Owo+PiA+IEBAIC0xMzk4 LDcgKzEzOTksMTAgQEAgc3RhdGljIHZvaWQgX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goc3Ry dWN0Cj4+ID4gZHJtX2VuY29kZXIgKmRybV9lbmMsCj4+ID4gIAkJcmV0dXJuOwo+PiA+ICAJfQo+ PiA+Cj4+ID4gLQlwZW5kaW5nX2tpY2tvZmZfY250ID0gZHB1X2VuY29kZXJfcGh5c19pbmNfcGVu ZGluZyhwaHlzKTsKPj4gPiArCWlmICghYXN5bmMpCj4+ID4gKwkJcGVuZGluZ19raWNrb2ZmX2Nu dCA9IGRwdV9lbmNvZGVyX3BoeXNfaW5jX3BlbmRpbmcocGh5cyk7Cj4+ID4gKwllbHNlCj4+ID4g KwkJcGVuZGluZ19raWNrb2ZmX2NudCA9Cj4+ID4gYXRvbWljX3JlYWQoJnBoeXMtPnBlbmRpbmdf a2lja29mZl9jbnQpOwo+PiA+Cj4+ID4gIAlpZiAoZXh0cmFfZmx1c2hfYml0cyAmJiBjdGwtPm9w cy51cGRhdGVfcGVuZGluZ19mbHVzaCkKPj4gPiAgCQljdGwtPm9wcy51cGRhdGVfcGVuZGluZ19m bHVzaChjdGwsIGV4dHJhX2ZsdXNoX2JpdHMpOwo+PiA+IEBAIC0xNTExLDcgKzE1MTUsOCBAQCBz dGF0aWMgdm9pZCBkcHVfZW5jb2Rlcl9oZWxwZXJfaHdfcmVzZXQoc3RydWN0Cj4+ID4gZHB1X2Vu Y29kZXJfcGh5cyAqcGh5c19lbmMpCj4+ID4gICAqCWEgdGltZS4KPj4gPiAgICogZHB1X2VuYzog UG9pbnRlciB0byB2aXJ0dWFsIGVuY29kZXIgc3RydWN0dXJlCj4+ID4gICAqLwo+PiA+IC1zdGF0 aWMgdm9pZCBfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0 Cj4gKmRwdV9lbmMpCj4+ID4gK3N0YXRpYyB2b2lkIF9kcHVfZW5jb2Rlcl9raWNrb2ZmX3BoeXMo c3RydWN0IGRwdV9lbmNvZGVyX3ZpcnQKPiAqZHB1X2VuYywKPj4gPiArCQkJCSAgICAgIGJvb2wg YXN5bmMpCj4+ID4gIHsKPj4gPiAgCXN0cnVjdCBkcHVfaHdfY3RsICpjdGw7Cj4+ID4gIAl1aW50 MzJfdCBpLCBwZW5kaW5nX2ZsdXNoOwo+PiA+IEBAIC0xNTQyLDcgKzE1NDcsOCBAQCBzdGF0aWMg dm9pZCBfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVjdAo+PiA+IGRwdV9lbmNvZGVyX3Zp cnQgKmRwdV9lbmMpCj4+ID4gIAkJCXNldF9iaXQoaSwgZHB1X2VuYy0+ZnJhbWVfYnVzeV9tYXNr KTsKPj4gPiAgCQlpZiAoIXBoeXMtPm9wcy5uZWVkc19zaW5nbGVfZmx1c2ggfHwKPj4gPiAgCQkJ CSFwaHlzLT5vcHMubmVlZHNfc2luZ2xlX2ZsdXNoKHBoeXMpKQo+PiA+IC0JCQlfZHB1X2VuY29k ZXJfdHJpZ2dlcl9mbHVzaCgmZHB1X2VuYy0+YmFzZSwgcGh5cywKPj4gPiAweDApOwo+PiA+ICsJ CQlfZHB1X2VuY29kZXJfdHJpZ2dlcl9mbHVzaCgmZHB1X2VuYy0+YmFzZSwgcGh5cywKPj4gPiAw eDAsCj4+ID4gKwkJCQkJCSAgIGFzeW5jKTsKPj4gPiAgCQllbHNlIGlmIChjdGwtPm9wcy5nZXRf cGVuZGluZ19mbHVzaCkKPj4gPiAgCQkJcGVuZGluZ19mbHVzaCB8PSBjdGwtPm9wcy5nZXRfcGVu ZGluZ19mbHVzaChjdGwpOwo+PiA+ICAJfQo+PiA+IEBAIC0xNTUyLDcgKzE1NTgsNyBAQCBzdGF0 aWMgdm9pZCBfZHB1X2VuY29kZXJfa2lja29mZl9waHlzKHN0cnVjdAo+PiA+IGRwdV9lbmNvZGVy X3ZpcnQgKmRwdV9lbmMpCj4+ID4gIAkJX2RwdV9lbmNvZGVyX3RyaWdnZXJfZmx1c2goCj4+ID4g IAkJCQkmZHB1X2VuYy0+YmFzZSwKPj4gPiAgCQkJCWRwdV9lbmMtPmN1cl9tYXN0ZXIsCj4+ID4g LQkJCQlwZW5kaW5nX2ZsdXNoKTsKPj4gPiArCQkJCXBlbmRpbmdfZmx1c2gsIGFzeW5jKTsKPj4g PiAgCX0KPj4gPgo+PiA+ICAJX2RwdV9lbmNvZGVyX3RyaWdnZXJfc3RhcnQoZHB1X2VuYy0+Y3Vy X21hc3Rlcik7Cj4+ID4gQEAgLTE3MzYsNyArMTc0Miw3IEBAIHN0YXRpYyB2b2lkCj4+ID4gZHB1 X2VuY29kZXJfdnN5bmNfZXZlbnRfd29ya19oYW5kbGVyKHN0cnVjdCBrdGhyZWFkX3dvcmsgKndv cmspCj4+ID4gIH0KPj4gPgo+PiA+ICB2b2lkIGRwdV9lbmNvZGVyX3ByZXBhcmVfZm9yX2tpY2tv ZmYoc3RydWN0IGRybV9lbmNvZGVyICpkcm1fZW5jLAo+PiA+IC0JCXN0cnVjdCBkcHVfZW5jb2Rl cl9raWNrb2ZmX3BhcmFtcyAqcGFyYW1zKQo+PiA+ICsJCXN0cnVjdCBkcHVfZW5jb2Rlcl9raWNr b2ZmX3BhcmFtcyAqcGFyYW1zLCBib29sIGFzeW5jKQo+PiA+ICB7Cj4+ID4gIAlzdHJ1Y3QgZHB1 X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKPj4gPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpw aHlzOwo+PiA+IEBAIC0xNzc1LDcgKzE3ODEsNyBAQCB2b2lkIGRwdV9lbmNvZGVyX3ByZXBhcmVf Zm9yX2tpY2tvZmYoc3RydWN0Cj4+ID4gZHJtX2VuY29kZXIgKmRybV9lbmMsCj4+ID4gIAl9Cj4+ ID4gIH0KPj4gPgo+PiA+IC12b2lkIGRwdV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9lbmNv ZGVyICpkcm1fZW5jKQo+PiA+ICt2b2lkIGRwdV9lbmNvZGVyX2tpY2tvZmYoc3RydWN0IGRybV9l bmNvZGVyICpkcm1fZW5jLCBib29sIGFzeW5jKQo+PiA+ICB7Cj4+ID4gIAlzdHJ1Y3QgZHB1X2Vu Y29kZXJfdmlydCAqZHB1X2VuYzsKPj4gPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlz Owo+PiA+IEBAIC0xNzk4LDcgKzE4MDQsNyBAQCB2b2lkIGRwdV9lbmNvZGVyX2tpY2tvZmYoc3Ry dWN0IGRybV9lbmNvZGVyCj4+ID4gKmRybV9lbmMpCj4+ID4gIAkJKChhdG9taWNfcmVhZCgmZHB1 X2VuYy0+ZnJhbWVfZG9uZV90aW1lb3V0KSAqIEhaKSAvCj4+ID4gMTAwMCkpOwo+PiA+Cj4+ID4g IAkvKiBBbGwgcGh5cyBlbmNzIGFyZSByZWFkeSB0byBnbywgdHJpZ2dlciB0aGUga2lja29mZiAq Lwo+PiA+IC0JX2RwdV9lbmNvZGVyX2tpY2tvZmZfcGh5cyhkcHVfZW5jKTsKPj4gPiArCV9kcHVf ZW5jb2Rlcl9raWNrb2ZmX3BoeXMoZHB1X2VuYywgYXN5bmMpOwo+PiA+Cj4+ID4gIAkvKiBhbGxv dyBwaHlzIGVuY3MgdG8gaGFuZGxlIGFueSBwb3N0LWtpY2tvZmYgYnVzaW5lc3MgKi8KPj4gPiAg CWZvciAoaSA9IDA7IGkgPCBkcHVfZW5jLT5udW1fcGh5c19lbmNzOyBpKyspIHsKPj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+PiA+ IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaAo+PiA+IGluZGV4 IDlkYmYzOGY0NDZkOS4uYzIwNDQxMjJkNjA5IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5oCj4+ID4gQEAgLTgxLDkgKzgxLDEwIEBAIHZv aWQKPiBkcHVfZW5jb2Rlcl9yZWdpc3Rlcl9mcmFtZV9ldmVudF9jYWxsYmFjayhzdHJ1Y3QKPj4g PiBkcm1fZW5jb2RlciAqZW5jb2RlciwKPj4gPiAgICoJRGVsYXllZDogQmxvY2sgdW50aWwgbmV4 dCB0cmlnZ2VyIGNhbiBiZSBpc3N1ZWQuCj4+ID4gICAqIEBlbmNvZGVyOgllbmNvZGVyIHBvaW50 ZXIKPj4gPiAgICogQHBhcmFtczoJa2lja29mZiB0aW1lIHBhcmFtZXRlcnMKPj4gPiArICogQGFz eW5jOgl0cnVlIGlmIHRoaXMgaXMgYW4gYXN5bmNocm9ub3VzIGNvbW1pdAo+PiA+ICAgKi8KPj4g PiAgdm9pZCBkcHVfZW5jb2Rlcl9wcmVwYXJlX2Zvcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciwKPj4gPiAtCQlzdHJ1Y3QgZHB1X2VuY29kZXJfa2lja29mZl9wYXJhbXMgKnBh cmFtcyk7Cj4+ID4gKwkJc3RydWN0IGRwdV9lbmNvZGVyX2tpY2tvZmZfcGFyYW1zICpwYXJhbXMs IGJvb2wgYXN5bmMpOwo+PiA+Cj4+ID4gIC8qKgo+PiA+ICAgKiBkcHVfZW5jb2Rlcl90cmlnZ2Vy X2tpY2tvZmZfcGVuZGluZyAtIENsZWFyIHRoZSBmbHVzaCBiaXRzIGZyb20KPj4gPiBwcmV2aW91 cwo+PiA+IEBAIC05Niw4ICs5Nyw5IEBAIHZvaWQgZHB1X2VuY29kZXJfdHJpZ2dlcl9raWNrb2Zm X3BlbmRpbmcoc3RydWN0Cj4+ID4gZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+PiA+ICAgKiBkcHVf ZW5jb2Rlcl9raWNrb2ZmIC0gdHJpZ2dlciBhIGRvdWJsZSBidWZmZXIgZmxpcCBvZiB0aGUgY3Rs IHBhdGgKPj4gPiAgICoJKGkuZS4gY3RsIGZsdXNoIGFuZCBzdGFydCkgaW1tZWRpYXRlbHkuCj4+ ID4gICAqIEBlbmNvZGVyOgllbmNvZGVyIHBvaW50ZXIKPj4gPiArICogQGFzeW5jOgl0cnVlIGlm IHRoaXMgaXMgYW4gYXN5bmNocm9ub3VzIGNvbW1pdAo+PiA+ICAgKi8KPj4gPiAtdm9pZCBkcHVf ZW5jb2Rlcl9raWNrb2ZmKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4+ID4gK3ZvaWQg ZHB1X2VuY29kZXJfa2lja29mZihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIGJvb2wgYXN5 bmMpOwo+PiA+Cj4+ID4gIC8qKgo+PiA+ICAgKiBkcHVfZW5jb2Rlcl93YWl0X2Zvcl9ldmVudCAt IFdhaXRzIGZvciBlbmNvZGVyIGV2ZW50cwo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9rbXMuYwo+PiA+IGluZGV4IDk4NWM4NTU3OTZhZS4uNTdhZDgzODY4NzY2IDEw MDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+ PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuYwo+PiA+IEBA IC0zNTIsNyArMzUyLDcgQEAgdm9pZCBkcHVfa21zX2VuY29kZXJfZW5hYmxlKHN0cnVjdCBkcm1f ZW5jb2Rlcgo+PiA+ICplbmNvZGVyKQo+PiA+Cj4+ID4gIAlpZiAoY3J0YyAmJiBjcnRjLT5zdGF0 ZS0+YWN0aXZlKSB7Cj4+ID4gIAkJdHJhY2VfZHB1X2ttc19lbmNfZW5hYmxlKERSTUlEKGNydGMp KTsKPj4gPiAtCQlkcHVfY3J0Y19jb21taXRfa2lja29mZihjcnRjKTsKPj4gPiArCQlkcHVfY3J0 Y19jb21taXRfa2lja29mZihjcnRjLCBmYWxzZSk7Cj4+ID4gIAl9Cj4+ID4gIH0KPj4gPgo+PiA+ IEBAIC0zNjksNyArMzY5LDggQEAgc3RhdGljIHZvaWQgZHB1X2ttc19jb21taXQoc3RydWN0IG1z bV9rbXMgKmttcywKPj4gPiBzdHJ1Y3QKPj4gPiBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4g Pgo+PiA+ICAJCWlmIChjcnRjLT5zdGF0ZS0+YWN0aXZlKSB7Cj4+ID4gIAkJCXRyYWNlX2RwdV9r bXNfY29tbWl0KERSTUlEKGNydGMpKTsKPj4gPiAtCQkJZHB1X2NydGNfY29tbWl0X2tpY2tvZmYo Y3J0Yyk7Cj4+ID4gKwkJCWRwdV9jcnRjX2NvbW1pdF9raWNrb2ZmKGNydGMsCj4+ID4gKwo+PiA+ IHN0YXRlLT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSk7Cj4+ID4gIAkJfQo+PiA+ICAJfQo+PiA+ICB9 Cj4+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYwo+PiA+IGluZGV4IDIwODhhMjBlYjI3 MC4uZjViMTI1NmUzMmI2IDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2F0b21pYy5jCj4+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPj4g PiBAQCAtODMsNyArODMsOCBAQCB2b2lkIG1zbV9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUKPj4gPiAqc3RhdGUpCj4+ID4gIAkJa21zLT5mdW5jcy0+Y29tbWl0KGtt cywgc3RhdGUpOwo+PiA+ICAJfQo+PiA+Cj4+ID4gLQltc21fYXRvbWljX3dhaXRfZm9yX2NvbW1p dF9kb25lKGRldiwgc3RhdGUpOwo+PiA+ICsJaWYgKCFzdGF0ZS0+bGVnYWN5X2N1cnNvcl91cGRh dGUpCj4+ID4gKwkJbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZShkZXYsIHN0YXRlKTsK Pj4gV2FzIHRoaXMgY2hhbmdlIHRlc3RlZCB3aXRoIE1EUDU/IFRoZXkgaGF2ZSBhIGRpZmZlcmVu dCBwYXRoCj4+IHRvIHN1cHBvcnQgYXN5bmMgdXBkYXRlcy4KPj4gCj4gCj4gSSBqdXN0IHJlYWxp emVkIEkgZGlkbid0IHJlc3BvbmQgdG8gdGhpcy4gSSBoYXZlbid0IHRlc3RlZCB3aXRoIE1EUDUs IEkKPiBkb24ndAo+IGhhdmUgdGhlIHByb3BlciBody4gVGhhdCBzYWlkLCBjdXJzb3Igb24gTURQ NSB3b24ndCB3b3JrIHdpdGhvdXQgdGhpcwo+IGNoYW5nZQo+IHNpbmNlIGl0J2xsIHJhdGVsaW1p dCBjdXJzb3IgdXBkYXRlcyB0byBvbmNlLXByZS12c3luYy4KPiAKPiBTZWFuCgpSZXZpZXdlZC1i eTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KCj4gCj4+IFRoYW5r cywKPj4gSmV5a3VtYXIgUy4KPj4gPgo+PiA+ICAJa21zLT5mdW5jcy0+Y29tcGxldGVfY29tbWl0 KGttcywgc3RhdGUpOwo+PiAKPj4gLS0KPj4gSmV5a3VtYXIgUwoKLS0gCkpleWt1bWFyIFMKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==