From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC] drm/atomic+msm: add helper to implement legacy dirtyfb Date: Wed, 4 Apr 2018 12:21:08 +0200 Message-ID: <20180404102108.GF3881@phenom.ffwll.local> References: <20180403224225.26776-1-robdclark@gmail.com> <20180404100300.GE3881@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180404100300.GE3881-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Rob Clark Cc: Thomas Hellstrom , David Airlie , linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Maarten Lankhorst , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Sean Paul , Lukasz Spintzyk , Daniel Vetter , Gustavo Padovan , Deepak Singh Rawat , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Ville =?iso-8859-1?Q?Syrj=E4l=E4?= List-Id: linux-arm-msm@vger.kernel.org T24gV2VkLCBBcHIgMDQsIDIwMTggYXQgMTI6MDM6MDBQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIEFwciAwMywgMjAxOCBhdCAwNjo0MjoyM1BNIC0wNDAwLCBSb2IgQ2xh cmsgd3JvdGU6Cj4gPiBBZGQgYW4gYXRvbWljIGhlbHBlciB0byBpbXBsZW1lbnQgZGlydHlmYiBz dXBwb3J0LiAgVGhpcyBpcyBuZWVkZWQgdG8KPiA+IHN1cHBvcnQgRFNJIGNvbW1hbmQtbW9kZSBw YW5lbHMgd2l0aCB4MTEgdXNlcnNwYWNlIChpZS4gd2hlbiB3ZSBjYW4ndAo+ID4gcmVseSBvbiBw YWdlZmxpcHMgdG8gdHJpZ2dlciBhIGZsdXNoIHRvIHRoZSBwYW5lbCkuCj4gPiAKPiA+IFRvIHNp Z25hbCB0byB0aGUgZHJpdmVyIHRoYXQgdGhlIGFzeW5jIGF0b21pYyB1cGRhdGUgbmVlZHMgdG8K PiA+IHN5bmNocm9uaXplIHdpdGggZmVuY2VzLCBldmVuIHRob3VnaCB0aGUgZmIgZGlkbid0IGNo YW5nZSwgdGhlCj4gPiBkcm1fYXRvbWljX3N0YXRlOjpkaXJ0eSBmbGFnIGlzIGFkZGVkLgo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4gPiAt LS0KPiA+IEJhY2tncm91bmQ6IHRoZXJlIGFyZSBhIG51bWJlciBvZiBkaWZmZXJlbnQgZm9sa3Mg d29ya2luZyBvbiBnZXR0aW5nCj4gPiB1cHN0cmVhbSBrZXJuZWwgd29ya2luZyBvbiB2YXJpb3Vz IGRpZmZlcmVudCBwaG9uZXMvdGFibGV0cyB3aXRoIHFjb20KPiA+IFNvQydzLi4gbWFueSBvZiB0 aGVtIGhhdmUgY29tbWFuZCBtb2RlIHBhbmVscywgc28gd2Uga2luZCBvZiBuZWVkIGEKPiA+IHdh eSB0byBzdXBwb3J0IHRoZSBsZWdhY3kgZGlydHlmYiBpb2N0bCBmb3IgeDExIHN1cHBvcnQuCj4g PiAKPiA+IEkga25vdyB0aGVyZSBpcyB3b3JrIG9uIGEgcHJvcHJlciBub24tbGVnYWN5IGF0b21p YyBwcm9wZXJ0eSBmb3IKPiA+IHVzZXJzcGFjZSB0byBjb21tdW5pY2F0ZSBkaXJ0eS1yZWN0KHMp IHRvIHRoZSBrZXJuZWwsIHNvIHRoaXMgY2FuCj4gPiBiZSBpbXByb3ZlZCBmcm9tIHRyaWdnZXJp bmcgYSBmdWxsLWZyYW1lIGZsdXNoIG9uY2UgdGhhdCBpcyBpbgo+ID4gcGxhY2UuICBCdXQgd2Ug a2luZGEgbmVlZGEgYSBzdG9wLWdhcCBzb2x1dGlvbi4KPiA+IAo+ID4gSSBoYWQgY29uc2lkZXJl ZCBhbiBpbi1kcml2ZXIgc29sdXRpb24gZm9yIHRoaXMsIGJ1dCB0aGluZ3MgZ2V0IGEKPiA+IGJp dCB0cmlja3kgaWYgdXNlcnNwYWNlIGFuZHMgdXAgY29tYmluaW5nIGRpcnR5ZmIgaW9jdGxzIHdp dGggcGFnZS0KPiA+IGZsaXBzLCBiZWNhdXNlIHdlIG5lZWQgdG8gc3luY2hyb25pemUgc2V0dGlu ZyB2YXJpb3VzIENUTC5GTFVTSCBiaXRzCj4gPiB3aXRoIHNldHRpbmcgdGhlIENUTC5TVEFSVCBi aXQuICAoaWUuIHJlYWxseSBhbGwgd2UgbmVlZCB0byBkbyBmb3IKPiA+IGNtZCBtb2RlIHBhbmVs cyBpcyBiYW5nIENUTC5TVEFSVCwgYnV0IGlzIHRoaXMgZW5kcyB1cCByYWNpbmcgd2l0aAo+ID4g cGFnZWZsaXBzIHNldHRpbmcgRkxVU0ggYml0cywgdGhlbiBiYWQgdGhpbmdzLikgIFRoZSBlYXNp ZXN0IHNvbG4KPiA+IGlzIHRvIHdyYXAgdGhpcyB1cCBhcyBhbiBhdG9taWMgY29tbWl0IGFuZCBy ZWx5IG9uIHRoZSB3b3JrZXIgdG8KPiA+IHNlcmlhbGl6ZSB0aGluZ3MuICBIZW5jZSBhZGRpbmcg YW4gYXRvbWljIGRpcnR5ZmIgaGVscGVyLgo+ID4gCj4gPiBJIGd1ZXNzIGF0IGxlYXN0IHRoZSBo ZWxwZXIsIHdpdGggc29tZSBzbWFsbCBhZGRpdGlvbiB0byB0cmFuc2xhdGUKPiA+IGFuZCBwYXNz LXRocnUgdGhlIGRpcnR5IHJlY3QocykgaXMgdXNlZnVsIHRvIHRoZSBmaW5hbCBhdG9taWMgZGly dHktCj4gPiByZWN0IHByb3BlcnR5IHNvbHV0aW9uLiAgRGVwZW5kaW5nIG9uIGhvdyBmYXIgb2Zm IHRoYXQgaXMsIGEgc3RvcC0KPiA+IGdhcCBzb2x1dGlvbiBjb3VsZCBiZSB1c2VmdWwuCj4gPiAK PiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8IDY2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9h dG9taWMuYyAgICB8ICA1ICsrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMgICAg ICAgIHwgIDEgKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmggICAgIHwgIDQg KysrCj4gPiAgaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggICAgICAgICAgICAgfCAgOSArKysrKwo+ ID4gIDUgZmlsZXMgY2hhbmdlZCwgODQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4g Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gaW5kZXggYzM1NjU0NTkxYzEy Li5hNTc4ZGM2ODFiMjcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK PiA+IEBAIC0zNTA0LDYgKzM1MDQsNyBAQCB2b2lkIF9fZHJtX2F0b21pY19oZWxwZXJfcGxhbmVf ZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4gIAlpZiAoc3RhdGUt PmZiKQo+ID4gIAkJZHJtX2ZyYW1lYnVmZmVyX2dldChzdGF0ZS0+ZmIpOwo+ID4gIAo+ID4gKwlz dGF0ZS0+ZGlydHkgPSBmYWxzZTsKPiA+ICAJc3RhdGUtPmZlbmNlID0gTlVMTDsKPiA+ICAJc3Rh dGUtPmNvbW1pdCA9IE5VTEw7Cj4gPiAgfQo+ID4gQEAgLTM4NDcsNiArMzg0OCw3MSBAQCBpbnQg ZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMs Cj4gPiAgfQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfbGVnYWN5X2dhbW1h X3NldCk7Cj4gPiAgCj4gPiArLyoqCj4gPiArICogZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYiAt IGhlbHBlciBmb3IgZGlydHlmYgo+ID4gKyAqCj4gPiArICogQSBoZWxwZXIgdG8gaW1wbGVtZW50 IGRybV9mcmFtZWJ1ZmZlcl9mdW5jczo6ZGlydHkKPiA+ICsgKi8KPiA+ICtpbnQgZHJtX2F0b21p Y19oZWxwZXJfZGlydHlmYihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICsJCQkgICAg ICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgdW5zaWduZWQgZmxhZ3MsCj4gPiArCQkJICAg ICAgdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwcywKPiA+ICsJCQkg ICAgICB1bnNpZ25lZCBudW1fY2xpcHMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX21vZGVzZXRf YWNxdWlyZV9jdHggY3R4Owo+ID4gKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4g PiArCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ID4gKwlpbnQgcmV0ID0gMDsKPiA+ICsKPiA+ ICsJLyoKPiA+ICsJICogV2hlbiBjYWxsZWQgZnJvbSBpb2N0bCwgd2UgYXJlIGludGVycnVwdGFi bGUsIGJ1dCBub3Qgd2hlbgo+ID4gKwkgKiBjYWxsZWQgaW50ZXJuYWxseSAoaWUuIGRlZmlvIHdv cmtlcikKPiA+ICsJICovCj4gPiArCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgmY3R4LAo+ID4g KwkJZmlsZV9wcml2ID8gRFJNX01PREVTRVRfQUNRVUlSRV9JTlRFUlJVUFRJQkxFIDogMCk7Cj4g PiArCj4gPiArCXN0YXRlID0gZHJtX2F0b21pY19zdGF0ZV9hbGxvYyhmYi0+ZGV2KTsKPiA+ICsJ aWYgKCFzdGF0ZSkgewo+ID4gKwkJcmV0ID0gLUVOT01FTTsKPiA+ICsJCWdvdG8gb3V0Owo+ID4g Kwl9Cj4gPiArCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7Cj4gPiArCj4gPiArcmV0cnk6Cj4g PiArCWRybV9mb3JfZWFjaF9wbGFuZShwbGFuZSwgZmItPmRldikgewo+ID4gKwkJc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPiArCj4gPiArCQlpZiAocGxhbmUtPnN0YXRl LT5mYiAhPSBmYikKPiA+ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCXBsYW5lX3N0YXRlID0g ZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKPiA+ICsJCWlmIChJU19F UlIocGxhbmVfc3RhdGUpKSB7Cj4gPiArCQkJcmV0ID0gUFRSX0VSUihwbGFuZV9zdGF0ZSk7Cj4g PiArCQkJZ290byBvdXQ7Cj4gPiArCQl9Cj4gPiArCj4gPiArCQlwbGFuZV9zdGF0ZS0+ZGlydHkg PSB0cnVlOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldCA9IGRybV9hdG9taWNfbm9uYmxvY2tpbmdf Y29tbWl0KHN0YXRlKTsKPiA+ICsKPiA+ICtvdXQ6Cj4gPiArCWlmIChyZXQgPT0gLUVERUFETEsp IHsKPiA+ICsJCWRybV9hdG9taWNfc3RhdGVfY2xlYXIoc3RhdGUpOwo+ID4gKwkJcmV0ID0gZHJt X21vZGVzZXRfYmFja29mZigmY3R4KTsKPiA+ICsJCWlmICghcmV0KQo+ID4gKwkJCWdvdG8gcmV0 cnk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJZHJtX2F0b21pY19zdGF0ZV9wdXQoc3RhdGUpOwo+ID4g Kwo+ID4gKwlkcm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwo+ID4gKwlkcm1fbW9kZXNldF9h Y3F1aXJlX2ZpbmkoJmN0eCk7Cj4gPiArCj4gPiArCXJldHVybiByZXQ7Cj4gPiArCj4gPiArfQo+ ID4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYik7Cj4gPiArCj4gPiAg LyoqCj4gPiAgICogX19kcm1fYXRvbWljX2hlbHBlcl9wcml2YXRlX2R1cGxpY2F0ZV9zdGF0ZSAt IGNvcHkgYXRvbWljIHByaXZhdGUgc3RhdGUKPiA+ICAgKiBAb2JqOiBDUlRDIG9iamVjdAo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jIGIvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+IGluZGV4IGJmNWY4YzM5ZjM0ZC4uYmI1NWEwNDhl OThiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gPiBAQCAtMjAxLDcgKzIw MSwxMCBAQCBpbnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ ICAJICogRmlndXJlIG91dCB3aGF0IGZlbmNlIHRvIHdhaXQgZm9yOgo+ID4gIAkgKi8KPiA+ICAJ Zm9yX2VhY2hfb2xkbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgb2xkX3BsYW5lX3N0 YXRlLCBuZXdfcGxhbmVfc3RhdGUsIGkpIHsKPiA+IC0JCWlmICgobmV3X3BsYW5lX3N0YXRlLT5m YiAhPSBvbGRfcGxhbmVfc3RhdGUtPmZiKSAmJiBuZXdfcGxhbmVfc3RhdGUtPmZiKSB7Cj4gPiAr CQlib29sIHN5bmNfZmIgPSBuZXdfcGxhbmVfc3RhdGUtPmZiICYmCj4gPiArCQkJKChuZXdfcGxh bmVfc3RhdGUtPmZiICE9IG9sZF9wbGFuZV9zdGF0ZS0+ZmIpIHx8Cj4gPiArCQkJIG5ld19wbGFu ZV9zdGF0ZS0+ZGlydHkpOwo+IAo+IFdoeSBkbyB5b3UgaGF2ZSB0aGlzIG9wdGltaXphdGlvbiBl dmVuIGhlcmU/IEltbyBmbGlwcGluZyB0byB0aGUgc2FtZSBmYgo+IHNob3VsZCByZXN1bHQgaW4g dGhlIGZiIGdldHRpbmcgZnVsbHkgdXBsb2FkZWQsIHdoZXRoZXIgeW91J3JlIGRvaW5nIGEKPiBs ZWdhY3kgcGFnZV9mbGlwLCBhbmQgYXRvbWljIG9uZSBvciBqdXN0IGEgcGxhbmUgdXBkYXRlLgo+ IAo+IElpcmMgc29tZSB1c2Vyc3BhY2UgZG9lcyB1c2UgdGhhdCBhcyBlc3NlbnRpYWxseSBhIGZ1 bGwtcGxhbmUgZnJvbnRidWZmZXIKPiByZW5kZXJpbmcgZmx1c2ggYWxyZWFkeS4gSU9XIEkgZG9u J3QgdGhpbmsgd2UgbmVlZCB5b3VyCj4gcGxhbmVfc3RhdGUtPmRpcnR5LCBpdCdzIGltcGxpZWQg dG8gYWx3YXlzIGJlIHRydWUgLSB3aHkgd291bGQgdXNlcnNwYWNlCj4gZG8gYSBmbGlwIG90aGVy d2lzZT8KPiAKPiBUaGUgaGVscGVyIGl0c2VsZiB0byBtYXAgZGlydHlmYiB0byBhIG5vbmJsb2Nr aW5nIGF0b21pYyBjb21taXQgbG9va3MKPiByZWFzb25hYmxlLCBidXQgbWlzc2VzIGEgYnVuY2gg b2YgdGhlIHRyaWNrZXJ5IGRpc2N1c3NlZCB3aXRoIE5vcmFsZiBhbmQKPiBvdGhlcnMgSSB0aGlu ay4KCk9rLCBJJ3ZlIGRvbmUgc29tZSBoaXN0b3J5IGRpZ2dpbmc6CgotIGk5MTUgYW5kIG5vdXZl YXUgdW5jb25kaXRpb25hbGx5IHdhaXQgZm9yIGZlbmNlcywgZXZlbiBmb3Igc2FtZS1mYgogIGZs aXBzLgotIG5vIGlkZWEgd2hhdCBhbWRncHUgYW5kIHZtd2dmeCBhcmUgZG9pbmcsIHRoZXkncmUg bm90IHVzaW5nCiAgcGxhbmVfc3RhdGUtPmZlbmNlIGZvciBpbXBsaWNpdCBmZW5jZXMuCi0gbW9z dCBhcm0tc29jIGRyaXZlcnMgZG8gaGF2ZSB0aGlzICJvcHRpbWl6YXRpb24iIGluIHRoZWlyIGNv ZGUsIGFuZCBpdAogIGV2ZW4gbWFuYWdlZCB0byBnZXQgaW50byB0aGUgbmV3IGRybV9nZW1fZmJf cHJlcGFyZV9mYiBoZWxwZXIgKHdoaWNoIEkKICByZXZpZXdlZCwgb3Igd2VsbCBjbGFpbWVkIHRv IGhhdmUgLi4uIG9vcHMpLiBBZmFpY3QgaXQgZ29lcyBiYWNrIHRvIHRoZQogIG9yaWdpbmFsIG1z bSBhdG9taWMgY29kZSwgYW5kIHdhcyB0aGVuIGR1dGlmdWxseSBjb3B5cGFzdGVkIGFsbCBvdmVy IHRoZQogIHBsYWNlLgoKSWYgZm9sa3MgYXJlIG9rIEknbGwgZG8gYSBwYXRjaCBzZXJpZXMgdG8g YWxpZ24gZHJpdmVycyB3aXRoIGk5MTUvbm91dmVhdS4KV2VsbCwgYW55IGRyaXZlciB1c2luZyBy ZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1ICsKZHJtX2F0b21pY19zZXRfZmVuY2VfZm9y X3BsYW5lIGNvbWJvLCBzaW5jZSBhbWRncHUgYW5kIHZtd2dmeCBkb24ndCBJIGhhdmUKbm8gaWRl YSB3aGF0IHRoZXkncmUgZG9pbmcgb3Igd2hldGhlciB0aGV5IG1pZ2h0IGhhdmUgdGhlIHNhbWUg YnVnLgoKRnJvbSBsb29raW5nIGF0IGF0IGxlYXN0IHRoZSB2YXJpb3VzIHByZXBhcmVfZmIgY2Fs bGJhY2tzIEkgZG9uJ3Qgc2VlIGFueQpvdGhlciBkcml2ZXJzIGRvaW5nIGZ1bm55IHN0dWZmIGFy b3VuZCBpbXBsaWNpdCBmZW5jZXMuCi1EYW5pZWwKCj4gPiArCQlpZiAoc3luY19mYikgewo+ID4g IAkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqID0gbXNtX2ZyYW1lYnVmZmVyX2JvKG5ld19w bGFuZV9zdGF0ZS0+ZmIsIDApOwo+ID4gIAkJCXN0cnVjdCBtc21fZ2VtX29iamVjdCAqbXNtX29i aiA9IHRvX21zbV9ibyhvYmopOwo+ID4gIAkJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlID0gcmVz ZXJ2YXRpb25fb2JqZWN0X2dldF9leGNsX3JjdShtc21fb2JqLT5yZXN2KTsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZmIuYwo+ID4gaW5kZXggMGUwYzg3MjUyYWIwLi5hNWQ4ODJhMzRhMzMgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9mYi5jCj4gPiBAQCAtNjIsNiArNjIsNyBAQCBzdGF0aWMgdm9pZCBtc21fZnJh bWVidWZmZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiA+ICBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyBtc21fZnJhbWVidWZmZXJfZnVuY3Mg PSB7Cj4gPiAgCS5jcmVhdGVfaGFuZGxlID0gbXNtX2ZyYW1lYnVmZmVyX2NyZWF0ZV9oYW5kbGUs Cj4gPiAgCS5kZXN0cm95ID0gbXNtX2ZyYW1lYnVmZmVyX2Rlc3Ryb3ksCj4gPiArCS5kaXJ0eSA9 IGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIsCj4gPiAgfTsKPiA+ICAKPiA+ICAjaWZkZWYgQ09O RklHX0RFQlVHX0ZTCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKPiA+IGluZGV4IDI2YWFiYTU4 ZDZjZS4uOWI3YTk1YzI2NDNkIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+ID4g QEAgLTE4Myw2ICsxODMsMTAgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9z ZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAkJCQkgICAgICAgdTE2ICpyZWQsIHUxNiAq Z3JlZW4sIHUxNiAqYmx1ZSwKPiA+ICAJCQkJICAgICAgIHVpbnQzMl90IHNpemUsCj4gPiAgCQkJ CSAgICAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Cj4gPiAraW50IGRy bV9hdG9taWNfaGVscGVyX2RpcnR5ZmIoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiAr CQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsIHVuc2lnbmVkIGZsYWdzLAo+ID4g KwkJCSAgICAgIHVuc2lnbmVkIGNvbG9yLCBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCj4g PiArCQkJICAgICAgdW5zaWduZWQgbnVtX2NsaXBzKTsKPiA+ICB2b2lkIF9fZHJtX2F0b21pY19o ZWxwZXJfcHJpdmF0ZV9vYmpfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fcHJpdmF0ZV9vYmog Km9iaiwKPiA+ICAJCQkJCQkgICAgIHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZSAqc3RhdGUpOwo+ ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9wbGFuZS5oIGIvaW5jbHVkZS9k cm0vZHJtX3BsYW5lLmgKPiA+IGluZGV4IGY3YmY0YTQ4YjFjMy4uMjk2ZmEyMmJkYTdhIDEwMDY0 NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJt L2RybV9wbGFuZS5oCj4gPiBAQCAtNzYsNiArNzYsMTUgQEAgc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSB7Cj4gPiAgCSAqLwo+ID4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiA+ICAKPiA+ ICsJLyoqCj4gPiArCSAqIEBkaXJ0eToKPiA+ICsJICoKPiA+ICsJICogRmxhZyB0aGF0IGluZGlj YXRlcyB0aGUgZmIgY29udGVudHMgaGF2ZSBjaGFuZ2VkIGV2ZW4gdGhvdWdoIHRoZQo+ID4gKwkg KiBmYiBoYXMgbm90LiAgVGhpcyBpcyBtb3N0bHkgYSBzdG9wLWdhcCBzb2x1dGlvbiB1bnRpbCB3 ZSBoYXZlCj4gPiArCSAqIGF0b21pYyBkaXJ0eS1yZWN0KHMpIHByb3BlcnR5Lgo+ID4gKwkgKi8K PiA+ICsJYm9vbCBkaXJ0eTsKPiA+ICsKPiA+ICAJLyoqCj4gPiAgCSAqIEBmZW5jZToKPiA+ICAJ ICoKPiA+IC0tIAo+ID4gMi4xNC4zCj4gPiAKPiAKPiAtLSAKPiBEYW5pZWwgVmV0dGVyCj4gU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gK Ci0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpo dHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpGcmVlZHJlbm8gbWFpbGluZyBsaXN0CkZyZWVkcmVub0BsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9m cmVlZHJlbm8K