From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v5 14/19] drm: writeback: Add job prepare and cleanup operations Date: Wed, 27 Feb 2019 14:38:56 +0200 Message-ID: <20190227123856.GA4813@pendragon.ideasonboard.com> References: <20190221103212.28764-1-laurent.pinchart+renesas@ideasonboard.com> <20190221103212.28764-15-laurent.pinchart+renesas@ideasonboard.com> <20190226183940.GH25147@e110455-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2407389F97 for ; Wed, 27 Feb 2019 12:39:04 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190226183940.GH25147@e110455-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Liviu Dudau Cc: Laurent Pinchart , James Qian Wang , dri-devel@lists.freedesktop.org, Kieran Bingham List-Id: dri-devel@lists.freedesktop.org SGkgTGl2aXUsCgpPbiBUdWUsIEZlYiAyNiwgMjAxOSBhdCAwNjozOTo0MFBNICswMDAwLCBMaXZp dSBEdWRhdSB3cm90ZToKPiBPbiBUaHUsIEZlYiAyMSwgMjAxOSBhdCAxMjozMjowN1BNICswMjAw LCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4gQXMgd3JpdGViYWNrIGpvYnMgY29udGFpbiBh IGZyYW1lYnVmZmVyLCBkcml2ZXJzIG1heSBuZWVkIHRvIHByZXBhcmUgYW5kCj4gPiBjbGVhbnVw IHRoZW0gdGhlIHNhbWUgd2F5IHRoZXkgY2FuIHByZXBhcmUgYW5kIGNsZWFudXAgZnJhbWVidWZm ZXJzIGZvcgo+ID4gcGxhbmVzLiBBZGQgdHdvIG5ldyBvcHRpb25hbCBjb25uZWN0b3IgaGVscGVy IG9wZXJhdGlvbnMsCj4gPiAucHJlcGFyZV93cml0ZWJhY2tfam9iKCkgYW5kIC5jbGVhbnVwX3dy aXRlYmFja19qb2IoKSB0byBzdXBwb3J0IHRoaXMuCj4gCj4gSSdtIGhhdmluZyBhIGJpdCBvZiBh IGhhcmQgdGltZSBwYXJzaW5nIHRoZSBhYm92ZSBwYXJhZ3JhcGguIEkgdGhpbmsgdGhhdAo+IHdo YXQgeW91IGFyZSBzYXlpbmcgaXMgdGhhdCB5b3UgbmVlZCB0byBwcmVwYXJlIGFuZCBjbGVhbnVw IHRoZSBmcmFtZWJ1ZmZlcnMgdGhhdAo+IHdyaXRlYmFjayBqb2JzIGhhdmUsIGJ1dCBpdCBhbHNv IGNhbiBiZSByZWFkIHRoYXQgeW91IG5lZWQgdG8gcHJlcGFyZS9jbGVhbnVwCj4gdGhlIGFjdHVh bCBqb2JzLiBJZiB0aGUgbGF0dGVyLCB0aGVuIEknbSBjdXJpb3VzIHRvIGtub3cgd2hhdCBpcyBz cGVjaWFsCj4gYWJvdXQgdGhlIGpvYnMgdGhhdCB5b3UgbmVlZCBwcmVwYXJpbmcvY2xlYW5pbmcg dXAuCgpJIG1lYW50IHRoZSBmcmFtZWJ1ZmZlcnMsIGJ1dCBJIHdvdWxkbid0IGJlIHN1cnByaXNl ZCBpZiB0aGUgam9icyB3ZXJlCmxhdGVyIGV4dGVuZGVkIHdpdGggbW9yZSBmaWVsZHMgdGhhdCB3 b3VsZCByZXF1aXJlIHNpbWlsYXIgcHJlcGFyYXRpb24uClRoYXQncyB3aHkgSSB0aGluayBwcmVw YXJlL2NsZWFudXAgam9iIG9wZXJhdGlvbnMgbWFrZSBzZW5zZS4KCj4gPiBUaGUgam9iIHByZXBh cmUgb3BlcmF0aW9uIGlzIGNhbGxlZCBmcm9tCj4gPiBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJl X3BsYW5lcygpIHRvIGF2b2lkIGEgbmV3IGF0b21pYyBjb21taXQgaGVscGVyCj4gPiB0aGF0IHdv dWxkIG5lZWQgdG8gYmUgY2FsbGVkIGJ5IGFsbCBkcml2ZXJzIG5vdCB1c2luZwo+ID4gZHJtX2F0 b21pY19oZWxwZXJfY29tbWl0KCkuIFRoZSBqb2IgY2xlYW51cCBvcGVyYXRpb24gaXMgY2FsbGVk IGZyb20gdGhlCj4gPiBleGlzdGluZyBkcm1fd3JpdGViYWNrX2NsZWFudXBfam9iKCkgZnVuY3Rp b24sIGludm9rZWQgYm90aCB3aGVuCj4gPiBkZXN0cm95aW5nIHRoZSBqb2IgYXMgcGFydCBvZiBh IGFib3J0ZWQgY29tbWl0LCBvciB3aGVuIHRoZSBqb2IKPiA+IGNvbXBsZXRlcy4KPiA+IAo+ID4g VGhlIGRybV93cml0ZWJhY2tfam9iIHN0cnVjdHVyZSBpcyBleHRlbmRlZCB3aXRoIGEgcHJpdiBm aWVsZCB0byBsZXQKPiA+IGRyaXZlcnMgc3RvcmUgcGVyLWpvYiBkYXRhLCBzdWNoIGFzIG1hcHBp bmdzIHJlbGF0ZWQgdG8gdGhlIHdyaXRlYmFjawo+ID4gZnJhbWVidWZmZXIuCj4gCj4gQ291bGQg dGhlIGRyaXZlciBzdG9yZSBpbiB0aGlzIHByaXYgZmllbGQgYSBzdHJ1Y3R1cmUgdGhhdCBjb250 YWlucyB0aGUKPiBjb25uZWN0b3IsIHdoZXJlYnkgcmVtb3ZpbmcgdGhlIG5lZWQgZm9yIGEgYmFj ay1wb2ludGVyPwoKVGhlIHByaXYgZmllbGQgcG9pbnRzIHRvIGFuIG9wYXF1ZSBzdHJ1Y3R1cmUs IGZvcmNpbmcgZHJpdmVycyB0byB1c2UgYQpzdGFuZGFyZCBzdHJ1Y3R1cmUgdGhlcmUgd291bGQg bWFrZSB0aGUgQVBJIG1vcmUgY29tcGxleCBpbiBteSBvcGluaW9uLAp3aXRob3V0IGFueSBhZGRl ZCB2YWx1ZSBJIGNhbiBzZWUuCgo+ID4gRm9yIGludGVybmFsIHBsdW1iaW5nIHJlYXNvbnMgdGhl IGRybV93cml0ZWJhY2tfam9iIHN0cnVjdHVyZSBuZWVkcyB0bwo+ID4gc3RvcmUgYSBiYWNrLXBv aW50ZXIgdG8gdGhlIGRybV93cml0ZWJhY2tfY29ubmVjdG9yLiBUbyBhdm9pZCBwdXNoaW5nCj4g PiB0b28gbXVjaCB3cml0ZWJhY2stc3BlY2lmaWMga25vd2xlZGdlIHRvIGRybV9hdG9taWNfdWFw aS5jLCBjcmVhdGUgYQo+ID4gZHJtX3dyaXRlYmFja19zZXRfZmIoKSBmdW5jdGlvbiwgbW92ZSB0 aGUgd3JpdGViYWNrIGpvYiBzZXR1cCBjb2RlCj4gPiB0aGVyZSwgYW5kIHNldCB0aGUgY29ubmVj dG9yIGJhY2twb2ludGVyLiBUaGUgcHJlcGFyZV9zaWduYWxpbmcoKQo+ID4gZnVuY3Rpb24gZG9l c24ndCBuZWVkIHRvIGFsbG9jYXRlIHdyaXRlYmFjayBqb2JzIGFuZCBjYW4gaWdub3JlCj4gPiBj b25uZWN0b3JzIHdpdGhvdXQgYSBqb2IsIGFzIGl0IGlzIGNhbGxlZCBhZnRlciB0aGUgd3JpdGVi YWNrIGpvYnMgYXJlCj4gPiBhbGxvY2F0ZWQgdG8gc3RvcmUgZnJhbWVidWZmZXJzLCBhbmQgYSB3 cml0ZWJhY2sgZmVuY2Ugd2l0aCBhCj4gPiBmcmFtZWJ1ZmZlciBpcyBhbiBpbnZhbGlkIGNvbmZp Z3VyYXRpb24gdGhhdCBnZXRzIHJlamVjdGVkIGJ5IHRoZSBjb21taXQKPiA+IGNoZWNrLgo+ID4g Cj4gPiBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0K3Jl bmVzYXNAaWRlYXNvbmJvYXJkLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jICAgICAgfCAxMSArKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pY191YXBpLmMgICAgICAgIHwgMzEgKysrKystLS0tLS0tLS0tLS0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysr KysrKysrCj4gPiAgaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCB8ICA3 ICsrKysKPiA+ICBpbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmggICAgICAgICAgICAgIHwgMjgg KysrKysrKysrKysrKystCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCAy NCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gVGhpcyBwYXRjaCBpcyBjdXJyZW50bHkgbWlzc2luZyBk b2N1bWVudGF0aW9uIGZvciB0aGUKPiA+IC5wcmVwYXJlX3dyaXRlYmFja19qb2IoKSBhbmQgLmNs ZWFudXBfd3JpdGViYWNrX2pvYigpIG9wZXJhdGlvbnMuIEkgcGxhbgo+ID4gdG8gZml4IHRoaXMs IGJ1dCBmaXJzdCB3YW50ZWQgZmVlZGJhY2sgb24gdGhlIGRpcmVjdGlvbiB0YWtlbi4gSSdtIG5v dAo+ID4gZW50aXJlbHkgaGFwcHkgd2l0aCB0aGUgcHJpdiBwb2ludGVyIGluIHRoZSBkcm1fd3Jp dGViYWNrX2pvYiBzdHJ1Y3R1cmUsCj4gPiBidXQgYWRkaW5nIGEgZnVsbCBzdGF0ZSBkdXBsaWNh dGUvZGVzdHJveSBtYWNoaW5lcnkgZm9yIHRoYXQgc3RydWN0dXJlCj4gPiB3YXMgZXF1YWxseSB1 bmFwcGVhbGluZyB0byBtZS4KPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK PiA+IGluZGV4IDZmZTIzMDNmY2NkOS4uNzBhNDg4NmM2ZTY1IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiBAQCAtMjI0NSwxMCArMjI0NSwyMSBAQCBFWFBPUlRf U1lNQk9MKGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9jbGVhbnVwX2RvbmUpOwo+ID4gIGludCBk cm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ID4gIAkJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICB7Cj4gPiAr CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiArCXN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKPiA+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7 Cj4gPiAgCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm5ld19wbGFuZV9zdGF0ZTsKPiA+ICAJaW50 IHJldCwgaSwgajsKPiA+ICAKPiA+ICsJZm9yX2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShz dGF0ZSwgY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSwgaSkgewo+ID4gKwkJaWYgKCFuZXdfY29u bl9zdGF0ZS0+d3JpdGViYWNrX2pvYikKPiA+ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICsJCXJl dCA9IGRybV93cml0ZWJhY2tfcHJlcGFyZV9qb2IobmV3X2Nvbm5fc3RhdGUtPndyaXRlYmFja19q b2IpOwo+ID4gKwkJaWYgKHJldCA8IDApCj4gPiArCQkJcmV0dXJuIHJldDsKPiA+ICsJfQo+ID4g Kwo+ID4gIAlmb3JfZWFjaF9uZXdfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBuZXdfcGxh bmVfc3RhdGUsIGkpIHsKPiA+ICAJCWNvbnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNz ICpmdW5jczsKPiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y191YXBpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+IGluZGV4IGM0 MDg4OTg4OGExNi4uZTgwMjE1MmEwMWFkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfdWFwaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191 YXBpLmMKPiA+IEBAIC02NDcsMjggKzY0NywxNSBAQCBkcm1fYXRvbWljX3BsYW5lX2dldF9wcm9w ZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ICAJcmV0dXJuIDA7Cj4gPiAgfQo+ID4g IAo+ID4gLXN0YXRpYyBzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKgo+ID4gLWRybV9hdG9taWNf Z2V0X3dyaXRlYmFja19qb2Ioc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUp Cj4gPiAtewo+ID4gLQlXQVJOX09OKGNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5 cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSyk7Cj4gPiAtCj4gPiAtCWlmICghY29u bl9zdGF0ZS0+d3JpdGViYWNrX2pvYikKPiA+IC0JCWNvbm5fc3RhdGUtPndyaXRlYmFja19qb2Ig PQo+ID4gLQkJCWt6YWxsb2Moc2l6ZW9mKCpjb25uX3N0YXRlLT53cml0ZWJhY2tfam9iKSwgR0ZQ X0tFUk5FTCk7Cj4gPiAtCj4gPiAtCXJldHVybiBjb25uX3N0YXRlLT53cml0ZWJhY2tfam9iOwo+ ID4gLX0KPiA+IC0KPiA+ICBzdGF0aWMgaW50IGRybV9hdG9taWNfc2V0X3dyaXRlYmFja19mYl9m b3JfY29ubmVjdG9yKAo+ID4gIAkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUsCj4gPiAgCQlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiA+ICB7Cj4gPiAtCXN0cnVj dCBkcm1fd3JpdGViYWNrX2pvYiAqam9iID0KPiA+IC0JCWRybV9hdG9taWNfZ2V0X3dyaXRlYmFj a19qb2IoY29ubl9zdGF0ZSk7Cj4gPiAtCWlmICgham9iKQo+ID4gLQkJcmV0dXJuIC1FTk9NRU07 Cj4gPiArCWludCByZXQ7Cj4gPiAgCj4gPiAtCWRybV9mcmFtZWJ1ZmZlcl9hc3NpZ24oJmpvYi0+ ZmIsIGZiKTsKPiA+ICsJcmV0ID0gZHJtX3dyaXRlYmFja19zZXRfZmIoY29ubl9zdGF0ZSwgZmIp Owo+ID4gKwlpZiAocmV0IDwgMCkKPiA+ICsJCXJldHVybiByZXQ7Cj4gPiAgCj4gPiAgCWlmIChm YikKPiA+ICAJCURSTV9ERUJVR19BVE9NSUMoIlNldCBbRkI6JWRdIGZvciBjb25uZWN0b3Igc3Rh dGUgJXBcbiIsCj4gPiBAQCAtMTE1OCwxOSArMTE0NSwxNyBAQCBzdGF0aWMgaW50IHByZXBhcmVf c2lnbmFsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCj4gPiAgCWZvcl9lYWNoX25l d19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm4sIGNvbm5fc3RhdGUsIGkpIHsKPiA+ICAJ CXN0cnVjdCBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciAqd2JfY29ubjsKPiA+IC0JCXN0cnVjdCBk cm1fd3JpdGViYWNrX2pvYiAqam9iOwo+ID4gIAkJc3RydWN0IGRybV9vdXRfZmVuY2Vfc3RhdGUg KmY7Cj4gPiAgCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPiA+ICAJCXMzMiBfX3VzZXIgKmZl bmNlX3B0cjsKPiA+ICAKPiA+ICsJCWlmICghY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYikKPiA+ ICsJCQljb250aW51ZTsKPiA+ICsKPiA+ICAJCWZlbmNlX3B0ciA9IGdldF9vdXRfZmVuY2VfZm9y X2Nvbm5lY3RvcihzdGF0ZSwgY29ubik7Cj4gPiAgCQlpZiAoIWZlbmNlX3B0cikKPiA+ICAJCQlj b250aW51ZTsKPiA+ICAKPiA+IC0JCWpvYiA9IGRybV9hdG9taWNfZ2V0X3dyaXRlYmFja19qb2Io Y29ubl9zdGF0ZSk7Cj4gPiAtCQlpZiAoIWpvYikKPiA+IC0JCQlyZXR1cm4gLUVOT01FTTsKPiA+ IC0KPiA+ICAJCWYgPSBrcmVhbGxvYygqZmVuY2Vfc3RhdGUsIHNpemVvZigqKmZlbmNlX3N0YXRl KSAqCj4gPiAgCQkJICAgICAoKm51bV9mZW5jZXMgKyAxKSwgR0ZQX0tFUk5FTCk7Cj4gPiAgCQlp ZiAoIWYpCj4gPiBAQCAtMTE5Miw3ICsxMTc3LDcgQEAgc3RhdGljIGludCBwcmVwYXJlX3NpZ25h bGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJCXJldHVybiByZXQ7Cj4gPiAgCQl9 Cj4gPiAgCj4gPiAtCQlqb2ItPm91dF9mZW5jZSA9IGZlbmNlOwo+ID4gKwkJY29ubl9zdGF0ZS0+ d3JpdGViYWNrX2pvYi0+b3V0X2ZlbmNlID0gZmVuY2U7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJLyoK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV93cml0ZWJhY2suYwo+ID4gaW5kZXggYWZiMWFlNmUwZWNiLi40Njc4ZDYx ZDYzNGEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCj4gPiBAQCAtMjM5LDYgKzIz OSw0MiBAQCBpbnQgZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ID4gIH0KPiA+ICBFWFBPUlRfU1lNQk9MKGRybV93cml0ZWJhY2tfY29ubmVjdG9y X2luaXQpOwo+ID4gIAo+ID4gK2ludCBkcm1fd3JpdGViYWNrX3NldF9mYihzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiA+ICsJCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIpCj4gPiArewo+ID4gKwlXQVJOX09OKGNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+Y29ubmVj dG9yX3R5cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX1dSSVRFQkFDSyk7Cj4gPiArCj4gPiArCWlm ICghY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYikgewo+ID4gKwkJY29ubl9zdGF0ZS0+d3JpdGVi YWNrX2pvYiA9Cj4gPiArCQkJa3phbGxvYyhzaXplb2YoKmNvbm5fc3RhdGUtPndyaXRlYmFja19q b2IpLCBHRlBfS0VSTkVMKTsKPiA+ICsJCWlmICghY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYikK PiA+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiA+ICsKPiA+ICsJCWNvbm5fc3RhdGUtPndyaXRlYmFj a19qb2ItPmNvbm5lY3RvciA9Cj4gPiArCQkJZHJtX2Nvbm5lY3Rvcl90b193cml0ZWJhY2soY29u bl9zdGF0ZS0+Y29ubmVjdG9yKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlkcm1fZnJhbWVidWZmZXJf YXNzaWduKCZjb25uX3N0YXRlLT53cml0ZWJhY2tfam9iLT5mYiwgZmIpOwo+ID4gKwlyZXR1cm4g MDsKPiA+ICt9Cj4gPiArCj4gPiAraW50IGRybV93cml0ZWJhY2tfcHJlcGFyZV9qb2Ioc3RydWN0 IGRybV93cml0ZWJhY2tfam9iICpqb2IpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX3dyaXRlYmFj a19jb25uZWN0b3IgKmNvbm5lY3RvciA9IGpvYi0+Y29ubmVjdG9yOwo+ID4gKwljb25zdCBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MgKmZ1bmNzID0KPiA+ICsJCWNvbm5lY3Rvci0+ YmFzZS5oZWxwZXJfcHJpdmF0ZTsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJaWYgKGZ1bmNz LT5jbGVhbnVwX3dyaXRlYmFja19qb2IpIHsKPiAKPiBUaGlzIGZlZWxzIHdlaXJkLCBkaWQgeW91 IG1lYW4gdG8gYWN0dWFsbHkgY2hlY2sgdGhhdCB0aGUgZnVuY3MtPnByZXBhcmVfd3JpdGViYWNr X2pvYgo+IGhvb2sgaXMgaW1wbGVtZW50ZWQ/CgpHb29kIGNhdGNoLiBJJ2xsIGZpeCB0aGlzLgoK PiBPdGhlcndpc2UsIHRoaW5ncyBsb29rIGdvb2QgdG8gbWUhCgpUaGFuayB5b3UuCgo+ID4gKwkJ cmV0ID0gZnVuY3MtPnByZXBhcmVfd3JpdGViYWNrX2pvYihjb25uZWN0b3IsIGpvYik7Cj4gPiAr CQlpZiAocmV0IDwgMCkKPiA+ICsJCQlyZXR1cm4gcmV0Owo+ID4gKwl9Cj4gPiArCj4gPiArCWpv Yi0+cHJlcGFyZWQgPSB0cnVlOwo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiAgLyoq Cj4gPiAgICogZHJtX3dyaXRlYmFja19xdWV1ZV9qb2IgLSBRdWV1ZSBhIHdyaXRlYmFjayBqb2Ig Zm9yIGxhdGVyIHNpZ25hbGxpbmcKPiA+ICAgKiBAd2JfY29ubmVjdG9yOiBUaGUgd3JpdGViYWNr IGNvbm5lY3RvciB0byBxdWV1ZSBhIGpvYiBvbgo+ID4gQEAgLTI3NSw2ICszMTEsMTMgQEAgRVhQ T1JUX1NZTUJPTChkcm1fd3JpdGViYWNrX3F1ZXVlX2pvYik7Cj4gPiAgCj4gPiAgdm9pZCBkcm1f d3JpdGViYWNrX2NsZWFudXBfam9iKHN0cnVjdCBkcm1fd3JpdGViYWNrX2pvYiAqam9iKQo+ID4g IHsKPiA+ICsJc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICpjb25uZWN0b3IgPSBqb2It PmNvbm5lY3RvcjsKPiA+ICsJY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVyX2Z1bmNz ICpmdW5jcyA9Cj4gPiArCQljb25uZWN0b3ItPmJhc2UuaGVscGVyX3ByaXZhdGU7Cj4gPiArCj4g PiArCWlmIChqb2ItPnByZXBhcmVkICYmIGZ1bmNzLT5jbGVhbnVwX3dyaXRlYmFja19qb2IpCj4g PiArCQlmdW5jcy0+Y2xlYW51cF93cml0ZWJhY2tfam9iKGNvbm5lY3Rvciwgam9iKTsKPiA+ICsK PiA+ICAJaWYgKGpvYi0+ZmIpCj4gPiAgCQlkcm1fZnJhbWVidWZmZXJfcHV0KGpvYi0+ZmIpOwo+ ID4gIAo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFi bGVzLmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCj4gPiBpbmRl eCA2MTE0MmFhMGFiMjMuLjczZDAzZmU2Njc5OSAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJt L2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9t b2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiA+IEBAIC00OSw2ICs0OSw4IEBACj4gPiAgICovCj4g PiAgCj4gPiAgZW51bSBtb2RlX3NldF9hdG9taWM7Cj4gPiArc3RydWN0IGRybV93cml0ZWJhY2tf Y29ubmVjdG9yOwo+ID4gK3N0cnVjdCBkcm1fd3JpdGViYWNrX2pvYjsKPiA+ICAKPiA+ICAvKioK PiA+ICAgKiBzdHJ1Y3QgZHJtX2NydGNfaGVscGVyX2Z1bmNzIC0gaGVscGVyIG9wZXJhdGlvbnMg Zm9yIENSVENzCj4gPiBAQCAtOTg5LDYgKzk5MSwxMSBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9o ZWxwZXJfZnVuY3Mgewo+ID4gIAkgKi8KPiA+ICAJdm9pZCAoKmF0b21pY19jb21taXQpKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCQkJICAgICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKnN0YXRlKTsKPiA+ICsKPiA+ICsJaW50ICgqcHJlcGFyZV93cml0ZWJhY2tf am9iKShzdHJ1Y3QgZHJtX3dyaXRlYmFja19jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsJCQkJ ICAgICBzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYik7Cj4gPiArCXZvaWQgKCpjbGVhbnVw X3dyaXRlYmFja19qb2IpKHN0cnVjdCBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+ID4gKwkJCQkgICAgICBzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYik7Cj4gPiAgfTsK PiA+ICAKPiA+ICAvKioKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fd3JpdGViYWNr LmggYi9pbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmgKPiA+IGluZGV4IDQ3NjYyYzM2Mjc0My4u Nzc3YzE0Yzg0N2YwIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX3dyaXRlYmFjay5o Cj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fd3JpdGViYWNrLmgKPiA+IEBAIC03OSw2ICs3OSwy MCBAQCBzdHJ1Y3QgZHJtX3dyaXRlYmFja19jb25uZWN0b3Igewo+ID4gIH07Cj4gPiAgCj4gPiAg c3RydWN0IGRybV93cml0ZWJhY2tfam9iIHsKPiA+ICsJLyoqCj4gPiArCSAqIEBjb25uZWN0b3I6 Cj4gPiArCSAqCj4gPiArCSAqIEJhY2stcG9pbnRlciB0byB0aGUgd3JpdGViYWNrIGNvbm5lY3Rv ciBhc3NvY2lhdGVkIHdpdGggdGhlIGpvYgo+ID4gKwkgKi8KPiA+ICsJc3RydWN0IGRybV93cml0 ZWJhY2tfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiArCj4gPiArCS8qKgo+ID4gKwkgKiBAcHJl cGFyZWQ6Cj4gPiArCSAqCj4gPiArCSAqIFNldCB3aGVuIHRoZSBqb2IgaGFzIGJlZW4gcHJlcGFy ZWQgd2l0aCBkcm1fd3JpdGViYWNrX3ByZXBhcmVfam9iKCkKPiA+ICsJICovCj4gPiArCWJvb2wg cHJlcGFyZWQ7Cj4gPiArCj4gPiAgCS8qKgo+ID4gIAkgKiBAY2xlYW51cF93b3JrOgo+ID4gIAkg Kgo+ID4gQEAgLTk4LDcgKzExMiw3IEBAIHN0cnVjdCBkcm1fd3JpdGViYWNrX2pvYiB7Cj4gPiAg CSAqIEBmYjoKPiA+ICAJICoKPiA+ICAJICogRnJhbWVidWZmZXIgdG8gYmUgd3JpdHRlbiB0byBi eSB0aGUgd3JpdGViYWNrIGNvbm5lY3Rvci4gRG8gbm90IHNldAo+ID4gLQkgKiBkaXJlY3RseSwg dXNlIGRybV9hdG9taWNfc2V0X3dyaXRlYmFja19mYl9mb3JfY29ubmVjdG9yKCkKPiA+ICsJICog ZGlyZWN0bHksIHVzZSBkcm1fd3JpdGViYWNrX3NldF9mYigpCj4gPiAgCSAqLwo+ID4gIAlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiA+ICAKPiA+IEBAIC0xMDgsNiArMTIyLDEzIEBAIHN0 cnVjdCBkcm1fd3JpdGViYWNrX2pvYiB7Cj4gPiAgCSAqIEZlbmNlIHdoaWNoIHdpbGwgc2lnbmFs IG9uY2UgdGhlIHdyaXRlYmFjayBoYXMgY29tcGxldGVkCj4gPiAgCSAqLwo+ID4gIAlzdHJ1Y3Qg ZG1hX2ZlbmNlICpvdXRfZmVuY2U7Cj4gPiArCj4gPiArCS8qKgo+ID4gKwkgKiBAcHJpdjoKPiA+ ICsJICoKPiA+ICsJICogRHJpdmVyLXByaXZhdGUgZGF0YQo+ID4gKwkgKi8KPiA+ICsJdm9pZCAq cHJpdjsKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV93cml0ZWJh Y2tfY29ubmVjdG9yICoKPiA+IEBAIC0xMjIsNiArMTQzLDExIEBAIGludCBkcm1fd3JpdGViYWNr X2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQkJCSBjb25zdCBz dHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzICplbmNfaGVscGVyX2Z1bmNzLAo+ID4gIAkJ CQkgY29uc3QgdTMyICpmb3JtYXRzLCBpbnQgbl9mb3JtYXRzKTsKPiA+ICAKPiA+ICtpbnQgZHJt X3dyaXRlYmFja19zZXRfZmIoc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUs Cj4gPiArCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKPiA+ICsKPiA+ICtpbnQgZHJt X3dyaXRlYmFja19wcmVwYXJlX2pvYihzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYik7Cj4g PiArCj4gPiAgdm9pZCBkcm1fd3JpdGViYWNrX3F1ZXVlX2pvYihzdHJ1Y3QgZHJtX3dyaXRlYmFj a19jb25uZWN0b3IgKndiX2Nvbm5lY3RvciwKPiA+ICAJCQkgICAgIHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKTsKPiA+ICAKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5j aGFydApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmkt ZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=