From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [RFC] drm/atomic+msm: add helper to implement legacy dirtyfb Date: Wed, 4 Apr 2018 12:36:12 +0200 Message-ID: <4976c166-32b2-75ef-ee78-7e7893dd4121@linux.intel.com> References: <20180403224225.26776-1-robdclark@gmail.com> <20180404100300.GE3881@phenom.ffwll.local> <20180404102108.GF3881@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180404102108.GF3881-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Rob Clark , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Thomas Hellstrom , =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= , Lukasz Spintzyk , Deepak Singh Rawat , Gustavo Padovan , Sean Paul , David Airlie , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T3AgMDQtMDQtMTggb20gMTI6MjEgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgQXBy IDA0LCAyMDE4IGF0IDEyOjAzOjAwUE0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4+IE9u IFR1ZSwgQXByIDAzLCAyMDE4IGF0IDA2OjQyOjIzUE0gLTA0MDAsIFJvYiBDbGFyayB3cm90ZToK Pj4+IEFkZCBhbiBhdG9taWMgaGVscGVyIHRvIGltcGxlbWVudCBkaXJ0eWZiIHN1cHBvcnQuICBU aGlzIGlzIG5lZWRlZCB0bwo+Pj4gc3VwcG9ydCBEU0kgY29tbWFuZC1tb2RlIHBhbmVscyB3aXRo IHgxMSB1c2Vyc3BhY2UgKGllLiB3aGVuIHdlIGNhbid0Cj4+PiByZWx5IG9uIHBhZ2VmbGlwcyB0 byB0cmlnZ2VyIGEgZmx1c2ggdG8gdGhlIHBhbmVsKS4KPj4+Cj4+PiBUbyBzaWduYWwgdG8gdGhl IGRyaXZlciB0aGF0IHRoZSBhc3luYyBhdG9taWMgdXBkYXRlIG5lZWRzIHRvCj4+PiBzeW5jaHJv bml6ZSB3aXRoIGZlbmNlcywgZXZlbiB0aG91Z2ggdGhlIGZiIGRpZG4ndCBjaGFuZ2UsIHRoZQo+ Pj4gZHJtX2F0b21pY19zdGF0ZTo6ZGlydHkgZmxhZyBpcyBhZGRlZC4KPj4+Cj4+PiBTaWduZWQt b2ZmLWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFpbC5jb20+Cj4+PiAtLS0KPj4+IEJhY2tn cm91bmQ6IHRoZXJlIGFyZSBhIG51bWJlciBvZiBkaWZmZXJlbnQgZm9sa3Mgd29ya2luZyBvbiBn ZXR0aW5nCj4+PiB1cHN0cmVhbSBrZXJuZWwgd29ya2luZyBvbiB2YXJpb3VzIGRpZmZlcmVudCBw aG9uZXMvdGFibGV0cyB3aXRoIHFjb20KPj4+IFNvQydzLi4gbWFueSBvZiB0aGVtIGhhdmUgY29t bWFuZCBtb2RlIHBhbmVscywgc28gd2Uga2luZCBvZiBuZWVkIGEKPj4+IHdheSB0byBzdXBwb3J0 IHRoZSBsZWdhY3kgZGlydHlmYiBpb2N0bCBmb3IgeDExIHN1cHBvcnQuCj4+Pgo+Pj4gSSBrbm93 IHRoZXJlIGlzIHdvcmsgb24gYSBwcm9wcmVyIG5vbi1sZWdhY3kgYXRvbWljIHByb3BlcnR5IGZv cgo+Pj4gdXNlcnNwYWNlIHRvIGNvbW11bmljYXRlIGRpcnR5LXJlY3QocykgdG8gdGhlIGtlcm5l bCwgc28gdGhpcyBjYW4KPj4+IGJlIGltcHJvdmVkIGZyb20gdHJpZ2dlcmluZyBhIGZ1bGwtZnJh bWUgZmx1c2ggb25jZSB0aGF0IGlzIGluCj4+PiBwbGFjZS4gIEJ1dCB3ZSBraW5kYSBuZWVkYSBh IHN0b3AtZ2FwIHNvbHV0aW9uLgo+Pj4KPj4+IEkgaGFkIGNvbnNpZGVyZWQgYW4gaW4tZHJpdmVy IHNvbHV0aW9uIGZvciB0aGlzLCBidXQgdGhpbmdzIGdldCBhCj4+PiBiaXQgdHJpY2t5IGlmIHVz ZXJzcGFjZSBhbmRzIHVwIGNvbWJpbmluZyBkaXJ0eWZiIGlvY3RscyB3aXRoIHBhZ2UtCj4+PiBm bGlwcywgYmVjYXVzZSB3ZSBuZWVkIHRvIHN5bmNocm9uaXplIHNldHRpbmcgdmFyaW91cyBDVEwu RkxVU0ggYml0cwo+Pj4gd2l0aCBzZXR0aW5nIHRoZSBDVEwuU1RBUlQgYml0LiAgKGllLiByZWFs bHkgYWxsIHdlIG5lZWQgdG8gZG8gZm9yCj4+PiBjbWQgbW9kZSBwYW5lbHMgaXMgYmFuZyBDVEwu U1RBUlQsIGJ1dCBpcyB0aGlzIGVuZHMgdXAgcmFjaW5nIHdpdGgKPj4+IHBhZ2VmbGlwcyBzZXR0 aW5nIEZMVVNIIGJpdHMsIHRoZW4gYmFkIHRoaW5ncy4pICBUaGUgZWFzaWVzdCBzb2xuCj4+PiBp cyB0byB3cmFwIHRoaXMgdXAgYXMgYW4gYXRvbWljIGNvbW1pdCBhbmQgcmVseSBvbiB0aGUgd29y a2VyIHRvCj4+PiBzZXJpYWxpemUgdGhpbmdzLiAgSGVuY2UgYWRkaW5nIGFuIGF0b21pYyBkaXJ0 eWZiIGhlbHBlci4KPj4+Cj4+PiBJIGd1ZXNzIGF0IGxlYXN0IHRoZSBoZWxwZXIsIHdpdGggc29t ZSBzbWFsbCBhZGRpdGlvbiB0byB0cmFuc2xhdGUKPj4+IGFuZCBwYXNzLXRocnUgdGhlIGRpcnR5 IHJlY3QocykgaXMgdXNlZnVsIHRvIHRoZSBmaW5hbCBhdG9taWMgZGlydHktCj4+PiByZWN0IHBy b3BlcnR5IHNvbHV0aW9uLiAgRGVwZW5kaW5nIG9uIGhvdyBmYXIgb2ZmIHRoYXQgaXMsIGEgc3Rv cC0KPj4+IGdhcCBzb2x1dGlvbiBjb3VsZCBiZSB1c2VmdWwuCj4+Pgo+Pj4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+Pj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jICAgIHwgIDUg KystCj4+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmIuYyAgICAgICAgfCAgMSArCj4+PiAg aW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCAgICAgfCAgNCArKysKPj4+ICBpbmNsdWRl L2RybS9kcm1fcGxhbmUuaCAgICAgICAgICAgICB8ICA5ICsrKysrCj4+PiAgNSBmaWxlcyBjaGFu Z2VkLCA4NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMKPj4+IGluZGV4IGMzNTY1NDU5MWMxMi4uYTU3OGRjNjgxYjI3IDEw MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4+PiBAQCAtMzUwNCw2ICsz NTA0LDcgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVscGVyX3BsYW5lX2R1cGxpY2F0ZV9zdGF0ZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPj4+ICAJaWYgKHN0YXRlLT5mYikKPj4+ICAJCWRybV9m cmFtZWJ1ZmZlcl9nZXQoc3RhdGUtPmZiKTsKPj4+ICAKPj4+ICsJc3RhdGUtPmRpcnR5ID0gZmFs c2U7Cj4+PiAgCXN0YXRlLT5mZW5jZSA9IE5VTEw7Cj4+PiAgCXN0YXRlLT5jb21taXQgPSBOVUxM Owo+Pj4gIH0KPj4+IEBAIC0zODQ3LDYgKzM4NDgsNzEgQEAgaW50IGRybV9hdG9taWNfaGVscGVy X2xlZ2FjeV9nYW1tYV9zZXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+Pj4gIH0KPj4+ICBFWFBP UlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2xlZ2FjeV9nYW1tYV9zZXQpOwo+Pj4gIAo+Pj4g Ky8qKgo+Pj4gKyAqIGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIgLSBoZWxwZXIgZm9yIGRpcnR5 ZmIKPj4+ICsgKgo+Pj4gKyAqIEEgaGVscGVyIHRvIGltcGxlbWVudCBkcm1fZnJhbWVidWZmZXJf ZnVuY3M6OmRpcnR5Cj4+PiArICovCj4+PiAraW50IGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIo c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4+PiArCQkJICAgICAgc3RydWN0IGRybV9maWxl ICpmaWxlX3ByaXYsIHVuc2lnbmVkIGZsYWdzLAo+Pj4gKwkJCSAgICAgIHVuc2lnbmVkIGNvbG9y LCBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCj4+PiArCQkJICAgICAgdW5zaWduZWQgbnVt X2NsaXBzKQo+Pj4gK3sKPj4+ICsJc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4IGN0eDsK Pj4+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+Pj4gKwlzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZTsKPj4+ICsJaW50IHJldCA9IDA7Cj4+PiArCj4+PiArCS8qCj4+PiArCSAqIFdo ZW4gY2FsbGVkIGZyb20gaW9jdGwsIHdlIGFyZSBpbnRlcnJ1cHRhYmxlLCBidXQgbm90IHdoZW4K Pj4+ICsJICogY2FsbGVkIGludGVybmFsbHkgKGllLiBkZWZpbyB3b3JrZXIpCj4+PiArCSAqLwo+ Pj4gKwlkcm1fbW9kZXNldF9hY3F1aXJlX2luaXQoJmN0eCwKPj4+ICsJCWZpbGVfcHJpdiA/IERS TV9NT0RFU0VUX0FDUVVJUkVfSU5URVJSVVBUSUJMRSA6IDApOwo+Pj4gKwo+Pj4gKwlzdGF0ZSA9 IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoZmItPmRldik7Cj4+PiArCWlmICghc3RhdGUpIHsKPj4+ ICsJCXJldCA9IC1FTk9NRU07Cj4+PiArCQlnb3RvIG91dDsKPj4+ICsJfQo+Pj4gKwlzdGF0ZS0+ YWNxdWlyZV9jdHggPSAmY3R4Owo+Pj4gKwo+Pj4gK3JldHJ5Ogo+Pj4gKwlkcm1fZm9yX2VhY2hf cGxhbmUocGxhbmUsIGZiLT5kZXYpIHsKPj4+ICsJCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlOwo+Pj4gKwo+Pj4gKwkJaWYgKHBsYW5lLT5zdGF0ZS0+ZmIgIT0gZmIpCj4+PiAr CQkJY29udGludWU7Cj4+PiArCj4+PiArCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3Bs YW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7Cj4+PiArCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkg ewo+Pj4gKwkJCXJldCA9IFBUUl9FUlIocGxhbmVfc3RhdGUpOwo+Pj4gKwkJCWdvdG8gb3V0Owo+ Pj4gKwkJfQo+Pj4gKwo+Pj4gKwkJcGxhbmVfc3RhdGUtPmRpcnR5ID0gdHJ1ZTsKPj4+ICsJfQo+ Pj4gKwo+Pj4gKwlyZXQgPSBkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdChzdGF0ZSk7Cj4+ PiArCj4+PiArb3V0Ogo+Pj4gKwlpZiAocmV0ID09IC1FREVBRExLKSB7Cj4+PiArCQlkcm1fYXRv bWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKPj4+ICsJCXJldCA9IGRybV9tb2Rlc2V0X2JhY2tvZmYo JmN0eCk7Cj4+PiArCQlpZiAoIXJldCkKPj4+ICsJCQlnb3RvIHJldHJ5Owo+Pj4gKwl9Cj4+PiAr Cj4+PiArCWRybV9hdG9taWNfc3RhdGVfcHV0KHN0YXRlKTsKPj4+ICsKPj4+ICsJZHJtX21vZGVz ZXRfZHJvcF9sb2NrcygmY3R4KTsKPj4+ICsJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgp Owo+Pj4gKwo+Pj4gKwlyZXR1cm4gcmV0Owo+Pj4gKwo+Pj4gK30KPj4+ICtFWFBPUlRfU1lNQk9M KGRybV9hdG9taWNfaGVscGVyX2RpcnR5ZmIpOwo+Pj4gKwo+Pj4gIC8qKgo+Pj4gICAqIF9fZHJt X2F0b21pY19oZWxwZXJfcHJpdmF0ZV9kdXBsaWNhdGVfc3RhdGUgLSBjb3B5IGF0b21pYyBwcml2 YXRlIHN0YXRlCj4+PiAgICogQG9iajogQ1JUQyBvYmplY3QKPj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0 b21pYy5jCj4+PiBpbmRleCBiZjVmOGMzOWYzNGQuLmJiNTVhMDQ4ZTk4YiAxMDA2NDQKPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4+PiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9hdG9taWMuYwo+Pj4gQEAgLTIwMSw3ICsyMDEsMTAgQEAgaW50IG1zbV9h dG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiAgCSAqIEZpZ3VyZSBvdXQg d2hhdCBmZW5jZSB0byB3YWl0IGZvcjoKPj4+ICAJICovCj4+PiAgCWZvcl9lYWNoX29sZG5ld19w bGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG9sZF9wbGFuZV9zdGF0ZSwgbmV3X3BsYW5lX3N0 YXRlLCBpKSB7Cj4+PiAtCQlpZiAoKG5ld19wbGFuZV9zdGF0ZS0+ZmIgIT0gb2xkX3BsYW5lX3N0 YXRlLT5mYikgJiYgbmV3X3BsYW5lX3N0YXRlLT5mYikgewo+Pj4gKwkJYm9vbCBzeW5jX2ZiID0g bmV3X3BsYW5lX3N0YXRlLT5mYiAmJgo+Pj4gKwkJCSgobmV3X3BsYW5lX3N0YXRlLT5mYiAhPSBv bGRfcGxhbmVfc3RhdGUtPmZiKSB8fAo+Pj4gKwkJCSBuZXdfcGxhbmVfc3RhdGUtPmRpcnR5KTsK Pj4gV2h5IGRvIHlvdSBoYXZlIHRoaXMgb3B0aW1pemF0aW9uIGV2ZW4gaGVyZT8gSW1vIGZsaXBw aW5nIHRvIHRoZSBzYW1lIGZiCj4+IHNob3VsZCByZXN1bHQgaW4gdGhlIGZiIGdldHRpbmcgZnVs bHkgdXBsb2FkZWQsIHdoZXRoZXIgeW91J3JlIGRvaW5nIGEKPj4gbGVnYWN5IHBhZ2VfZmxpcCwg YW5kIGF0b21pYyBvbmUgb3IganVzdCBhIHBsYW5lIHVwZGF0ZS4KPj4KPj4gSWlyYyBzb21lIHVz ZXJzcGFjZSBkb2VzIHVzZSB0aGF0IGFzIGVzc2VudGlhbGx5IGEgZnVsbC1wbGFuZSBmcm9udGJ1 ZmZlcgo+PiByZW5kZXJpbmcgZmx1c2ggYWxyZWFkeS4gSU9XIEkgZG9uJ3QgdGhpbmsgd2UgbmVl ZCB5b3VyCj4+IHBsYW5lX3N0YXRlLT5kaXJ0eSwgaXQncyBpbXBsaWVkIHRvIGFsd2F5cyBiZSB0 cnVlIC0gd2h5IHdvdWxkIHVzZXJzcGFjZQo+PiBkbyBhIGZsaXAgb3RoZXJ3aXNlPwo+Pgo+PiBU aGUgaGVscGVyIGl0c2VsZiB0byBtYXAgZGlydHlmYiB0byBhIG5vbmJsb2NraW5nIGF0b21pYyBj b21taXQgbG9va3MKPj4gcmVhc29uYWJsZSwgYnV0IG1pc3NlcyBhIGJ1bmNoIG9mIHRoZSB0cmlj a2VyeSBkaXNjdXNzZWQgd2l0aCBOb3JhbGYgYW5kCj4+IG90aGVycyBJIHRoaW5rLgo+IE9rLCBJ J3ZlIGRvbmUgc29tZSBoaXN0b3J5IGRpZ2dpbmc6Cj4KPiAtIGk5MTUgYW5kIG5vdXZlYXUgdW5j b25kaXRpb25hbGx5IHdhaXQgZm9yIGZlbmNlcywgZXZlbiBmb3Igc2FtZS1mYgo+ICAgZmxpcHMu Cj4gLSBubyBpZGVhIHdoYXQgYW1kZ3B1IGFuZCB2bXdnZnggYXJlIGRvaW5nLCB0aGV5J3JlIG5v dCB1c2luZwo+ICAgcGxhbmVfc3RhdGUtPmZlbmNlIGZvciBpbXBsaWNpdCBmZW5jZXMuCkkgdGhv dWdodCBwbGFuZV9zdGF0ZS0+ZmVuY2Ugd2FzIHVzZWQgZm9yIGV4cGxpY2l0IGZlbmNlcywgc28g aXRzIHVzZSBieSBkcml2ZXJzCndvdWxkIGludGVyZmVyZSB3aXRoIGl0PyBJIGRvbid0IHRoaW5r IGZlbmNpbmcgd291bGQgd29yayBvbiBtc20gb3IgdmM0Li4KPiAtIG1vc3QgYXJtLXNvYyBkcml2 ZXJzIGRvIGhhdmUgdGhpcyAib3B0aW1pemF0aW9uIiBpbiB0aGVpciBjb2RlLCBhbmQgaXQKPiAg IGV2ZW4gbWFuYWdlZCB0byBnZXQgaW50byB0aGUgbmV3IGRybV9nZW1fZmJfcHJlcGFyZV9mYiBo ZWxwZXIgKHdoaWNoIEkKPiAgIHJldmlld2VkLCBvciB3ZWxsIGNsYWltZWQgdG8gaGF2ZSAuLi4g b29wcykuIEFmYWljdCBpdCBnb2VzIGJhY2sgdG8gdGhlCj4gICBvcmlnaW5hbCBtc20gYXRvbWlj IGNvZGUsIGFuZCB3YXMgdGhlbiBkdXRpZnVsbHkgY29weXBhc3RlZCBhbGwgb3ZlciB0aGUKPiAg IHBsYWNlLgo+Cj4gSWYgZm9sa3MgYXJlIG9rIEknbGwgZG8gYSBwYXRjaCBzZXJpZXMgdG8gYWxp Z24gZHJpdmVycyB3aXRoIGk5MTUvbm91dmVhdS4KPiBXZWxsLCBhbnkgZHJpdmVyIHVzaW5nIHJl c2VydmF0aW9uX29iamVjdF9nZXRfZXhjbF9yY3UgKwo+IGRybV9hdG9taWNfc2V0X2ZlbmNlX2Zv cl9wbGFuZSBjb21ibywgc2luY2UgYW1kZ3B1IGFuZCB2bXdnZnggZG9uJ3QgSSBoYXZlCj4gbm8g aWRlYSB3aGF0IHRoZXkncmUgZG9pbmcgb3Igd2hldGhlciB0aGV5IG1pZ2h0IGhhdmUgdGhlIHNh bWUgYnVnLgo+Cj4gRnJvbSBsb29raW5nIGF0IGF0IGxlYXN0IHRoZSB2YXJpb3VzIHByZXBhcmVf ZmIgY2FsbGJhY2tzIEkgZG9uJ3Qgc2VlIGFueQo+IG90aGVyIGRyaXZlcnMgZG9pbmcgZnVubnkg c3R1ZmYgYXJvdW5kIGltcGxpY2l0IGZlbmNlcy4KPiAtRGFuaWVsCj4KPj4+ICsJCWlmIChzeW5j X2ZiKSB7Cj4+PiAgCQkJc3RydWN0IGRybV9nZW1fb2JqZWN0ICpvYmogPSBtc21fZnJhbWVidWZm ZXJfYm8obmV3X3BsYW5lX3N0YXRlLT5mYiwgMCk7Cj4+PiAgCQkJc3RydWN0IG1zbV9nZW1fb2Jq ZWN0ICptc21fb2JqID0gdG9fbXNtX2JvKG9iaik7Cj4+PiAgCQkJc3RydWN0IGRtYV9mZW5jZSAq ZmVuY2UgPSByZXNlcnZhdGlvbl9vYmplY3RfZ2V0X2V4Y2xfcmN1KG1zbV9vYmotPnJlc3YpOwo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9mYi5jCj4+PiBpbmRleCAwZTBjODcyNTJhYjAuLmE1ZDg4MmEzNGEzMyAx MDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMKPj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMKPj4+IEBAIC02Miw2ICs2Miw3IEBAIHN0YXRpYyB2 b2lkIG1zbV9mcmFtZWJ1ZmZlcl9kZXN0cm95KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKQo+ Pj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIG1zbV9mcmFtZWJ1 ZmZlcl9mdW5jcyA9IHsKPj4+ICAJLmNyZWF0ZV9oYW5kbGUgPSBtc21fZnJhbWVidWZmZXJfY3Jl YXRlX2hhbmRsZSwKPj4+ICAJLmRlc3Ryb3kgPSBtc21fZnJhbWVidWZmZXJfZGVzdHJveSwKPj4+ ICsJLmRpcnR5ID0gZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYiwKPj4+ICB9Owo+Pj4gIAo+Pj4g ICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1f YXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAo+Pj4gaW5k ZXggMjZhYWJhNThkNmNlLi45YjdhOTVjMjY0M2QgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL2Ry bS9kcm1fYXRvbWljX2hlbHBlci5oCj4+PiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hl bHBlci5oCj4+PiBAQCAtMTgzLDYgKzE4MywxMCBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfbGVn YWN5X2dhbW1hX3NldChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+PiAgCQkJCSAgICAgICB1MTYg KnJlZCwgdTE2ICpncmVlbiwgdTE2ICpibHVlLAo+Pj4gIAkJCQkgICAgICAgdWludDMyX3Qgc2l6 ZSwKPj4+ICAJCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsK Pj4+ICtpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlydHlmYihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiwKPj4+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgdW5zaWduZWQg ZmxhZ3MsCj4+PiArCQkJICAgICAgdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9yZWN0 ICpjbGlwcywKPj4+ICsJCQkgICAgICB1bnNpZ25lZCBudW1fY2xpcHMpOwo+Pj4gIHZvaWQgX19k cm1fYXRvbWljX2hlbHBlcl9wcml2YXRlX29ial9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9w cml2YXRlX29iaiAqb2JqLAo+Pj4gIAkJCQkJCSAgICAgc3RydWN0IGRybV9wcml2YXRlX3N0YXRl ICpzdGF0ZSk7Cj4+PiAgCj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgg Yi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+Pj4gaW5kZXggZjdiZjRhNDhiMWMzLi4yOTZmYTIy YmRhN2EgMTAwNjQ0Cj4+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+Pj4gKysrIGIv aW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPj4+IEBAIC03Niw2ICs3NiwxNSBAQCBzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlIHsKPj4+ICAJICovCj4+PiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi Owo+Pj4gIAo+Pj4gKwkvKioKPj4+ICsJICogQGRpcnR5Ogo+Pj4gKwkgKgo+Pj4gKwkgKiBGbGFn IHRoYXQgaW5kaWNhdGVzIHRoZSBmYiBjb250ZW50cyBoYXZlIGNoYW5nZWQgZXZlbiB0aG91Z2gg dGhlCj4+PiArCSAqIGZiIGhhcyBub3QuICBUaGlzIGlzIG1vc3RseSBhIHN0b3AtZ2FwIHNvbHV0 aW9uIHVudGlsIHdlIGhhdmUKPj4+ICsJICogYXRvbWljIGRpcnR5LXJlY3QocykgcHJvcGVydHku Cj4+PiArCSAqLwo+Pj4gKwlib29sIGRpcnR5Owo+Pj4gKwo+Pj4gIAkvKioKPj4+ICAJICogQGZl bmNlOgo+Pj4gIAkgKgo+Pj4gLS0gCj4+PiAyLjE0LjMKPj4+Cj4+IC0tIAo+PiBEYW5pZWwgVmV0 dGVyCj4+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+PiBodHRwOi8vYmxv Zy5mZndsbC5jaAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVu bwo=