From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Starkey Subject: Re: [PATCH v5 14/19] drm: writeback: Add job prepare and cleanup operations Date: Thu, 21 Feb 2019 18:12:03 +0000 Message-ID: <20190221181203.u3da7csxpikym5xv@DESKTOP-E1NTVVP.localdomain> References: <20190221103212.28764-1-laurent.pinchart+renesas@ideasonboard.com> <20190221103212.28764-15-laurent.pinchart+renesas@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60066.outbound.protection.outlook.com [40.107.6.66]) by gabe.freedesktop.org (Postfix) with ESMTPS id 325EE88E46 for ; Thu, 21 Feb 2019 18:12:06 +0000 (UTC) In-Reply-To: <20190221103212.28764-15-laurent.pinchart+renesas@ideasonboard.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart Cc: Liviu Dudau , nd , "james qian wang (Arm Technology China)" , Kieran Bingham , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org SGkgTGF1cmVudCwKCk9uIFRodSwgRmViIDIxLCAyMDE5IGF0IDEyOjMyOjA3UE0gKzAyMDAsIExh dXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gQXMgd3JpdGViYWNrIGpvYnMgY29udGFpbiBhIGZyYW1l YnVmZmVyLCBkcml2ZXJzIG1heSBuZWVkIHRvIHByZXBhcmUgYW5kCj4gY2xlYW51cCB0aGVtIHRo ZSBzYW1lIHdheSB0aGV5IGNhbiBwcmVwYXJlIGFuZCBjbGVhbnVwIGZyYW1lYnVmZmVycyBmb3IK PiBwbGFuZXMuIEFkZCB0d28gbmV3IG9wdGlvbmFsIGNvbm5lY3RvciBoZWxwZXIgb3BlcmF0aW9u cywKPiAucHJlcGFyZV93cml0ZWJhY2tfam9iKCkgYW5kIC5jbGVhbnVwX3dyaXRlYmFja19qb2Io KSB0byBzdXBwb3J0IHRoaXMuCj4gCj4gVGhlIGpvYiBwcmVwYXJlIG9wZXJhdGlvbiBpcyBjYWxs ZWQgZnJvbQo+IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKCkgdG8gYXZvaWQgYSBu ZXcgYXRvbWljIGNvbW1pdCBoZWxwZXIKPiB0aGF0IHdvdWxkIG5lZWQgdG8gYmUgY2FsbGVkIGJ5 IGFsbCBkcml2ZXJzIG5vdCB1c2luZwo+IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdCgpLiBUaGUg am9iIGNsZWFudXAgb3BlcmF0aW9uIGlzIGNhbGxlZCBmcm9tIHRoZQo+IGV4aXN0aW5nIGRybV93 cml0ZWJhY2tfY2xlYW51cF9qb2IoKSBmdW5jdGlvbiwgaW52b2tlZCBib3RoIHdoZW4KPiBkZXN0 cm95aW5nIHRoZSBqb2IgYXMgcGFydCBvZiBhIGFib3J0ZWQgY29tbWl0LCBvciB3aGVuIHRoZSBq b2IKPiBjb21wbGV0ZXMuCj4gCj4gVGhlIGRybV93cml0ZWJhY2tfam9iIHN0cnVjdHVyZSBpcyBl eHRlbmRlZCB3aXRoIGEgcHJpdiBmaWVsZCB0byBsZXQKPiBkcml2ZXJzIHN0b3JlIHBlci1qb2Ig ZGF0YSwgc3VjaCBhcyBtYXBwaW5ncyByZWxhdGVkIHRvIHRoZSB3cml0ZWJhY2sKPiBmcmFtZWJ1 ZmZlci4KPiAKPiBGb3IgaW50ZXJuYWwgcGx1bWJpbmcgcmVhc29ucyB0aGUgZHJtX3dyaXRlYmFj a19qb2Igc3RydWN0dXJlIG5lZWRzIHRvCj4gc3RvcmUgYSBiYWNrLXBvaW50ZXIgdG8gdGhlIGRy bV93cml0ZWJhY2tfY29ubmVjdG9yLiBUbyBhdm9pZCBwdXNoaW5nCj4gdG9vIG11Y2ggd3JpdGVi YWNrLXNwZWNpZmljIGtub3dsZWRnZSB0byBkcm1fYXRvbWljX3VhcGkuYywgY3JlYXRlIGEKPiBk cm1fd3JpdGViYWNrX3NldF9mYigpIGZ1bmN0aW9uLCBtb3ZlIHRoZSB3cml0ZWJhY2sgam9iIHNl dHVwIGNvZGUKPiB0aGVyZSwgYW5kIHNldCB0aGUgY29ubmVjdG9yIGJhY2twb2ludGVyLiBUaGUg cHJlcGFyZV9zaWduYWxpbmcoKQo+IGZ1bmN0aW9uIGRvZXNuJ3QgbmVlZCB0byBhbGxvY2F0ZSB3 cml0ZWJhY2sgam9icyBhbmQgY2FuIGlnbm9yZQo+IGNvbm5lY3RvcnMgd2l0aG91dCBhIGpvYiwg YXMgaXQgaXMgY2FsbGVkIGFmdGVyIHRoZSB3cml0ZWJhY2sgam9icyBhcmUKPiBhbGxvY2F0ZWQg dG8gc3RvcmUgZnJhbWVidWZmZXJzLCBhbmQgYSB3cml0ZWJhY2sgZmVuY2Ugd2l0aCBhCj4gZnJh bWVidWZmZXIgaXMgYW4gaW52YWxpZCBjb25maWd1cmF0aW9uIHRoYXQgZ2V0cyByZWplY3RlZCBi eSB0aGUgY29tbWl0Cj4gY2hlY2suCj4gCj4gU2lnbmVkLW9mZi1ieTogTGF1cmVudCBQaW5jaGFy dCA8bGF1cmVudC5waW5jaGFydCtyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+CgpJIHByb2JhYmx5 IG5lZWQgdG8gcmV2aXNpdCB0aGlzIHdpdGggZnJlc2ggZXllcyB0b21vcnJvdywgYnV0IGhvdyBj b21lCnRoZSBwcmVwYXJlZC1uZXNzIGFuZCB3aGF0ZXZlciBpcyBiZWluZyBwcmVwYXJlZCBjYW4n dCBiZSBwdXQgaW50byBhCnN1YmNsYXNzZWQgZnJhbWVidWZmZXI/IFRoYXQgc2VlbXMgbW9yZSBu YXR1cmFsIHRvIG1lLCB0aGFuIHRyYWNraW5nCml0IHdpdGggdGhlIGpvYi4gSXQncyByZWFsbHkg dGhlIGZyYW1lYnVmZmVyIHdlJ3JlIHByZXBhcmluZyBhZnRlcgphbGwuCgpJIGd1ZXNzIGlmIHlv dSBoYXZlIHRoZSBzYW1lIGZyYW1lYnVmZmVyIGluIHVzZSBmb3IgbXVsdGlwbGUgdGhpbmdzLAp5 b3UgbWlnaHQgbmVlZCB0byB0cmFjayBpdCBzZXBhcmF0ZWx5PyBDYW4gdGhlIG1hcHBpbmdzIGJl IHNoYXJlZCBpbgp0aGF0IGNhc2U/Cgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYyAgICAgIHwgMTEgKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X3VhcGkuYyAgICAgICAgfCAzMSArKysrKy0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v ZHJtX3dyaXRlYmFjay5jICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysrCj4g IGluY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmggfCAgNyArKysrCj4gIGlu Y2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaCAgICAgICAgICAgICAgfCAyOCArKysrKysrKysrKysr Ky0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkK PiAKPiBUaGlzIHBhdGNoIGlzIGN1cnJlbnRseSBtaXNzaW5nIGRvY3VtZW50YXRpb24gZm9yIHRo ZQo+IC5wcmVwYXJlX3dyaXRlYmFja19qb2IoKSBhbmQgLmNsZWFudXBfd3JpdGViYWNrX2pvYigp IG9wZXJhdGlvbnMuIEkgcGxhbgo+IHRvIGZpeCB0aGlzLCBidXQgZmlyc3Qgd2FudGVkIGZlZWRi YWNrIG9uIHRoZSBkaXJlY3Rpb24gdGFrZW4uIEknbSBub3QKPiBlbnRpcmVseSBoYXBweSB3aXRo IHRoZSBwcml2IHBvaW50ZXIgaW4gdGhlIGRybV93cml0ZWJhY2tfam9iIHN0cnVjdHVyZSwKPiBi dXQgYWRkaW5nIGEgZnVsbCBzdGF0ZSBkdXBsaWNhdGUvZGVzdHJveSBtYWNoaW5lcnkgZm9yIHRo YXQgc3RydWN0dXJlCj4gd2FzIGVxdWFsbHkgdW5hcHBlYWxpbmcgdG8gbWUuCj4gCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRleCA2ZmUyMzAzZmNjZDkuLjcwYTQ4ODZjNmU2 NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTIyNDUsMTAgKzIy NDUsMjEgQEAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfY2xlYW51cF9k b25lKTsKPiAgaW50IGRybV9hdG9taWNfaGVscGVyX3ByZXBhcmVfcGxhbmVzKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gIAkJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiAgewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiArCXN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lOwo+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlOwo+ICAJaW50 IHJldCwgaSwgajsKPiAgCj4gKwlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRl LCBjb25uZWN0b3IsIG5ld19jb25uX3N0YXRlLCBpKSB7Cj4gKwkJaWYgKCFuZXdfY29ubl9zdGF0 ZS0+d3JpdGViYWNrX2pvYikKPiArCQkJY29udGludWU7Cj4gKwo+ICsJCXJldCA9IGRybV93cml0 ZWJhY2tfcHJlcGFyZV9qb2IobmV3X2Nvbm5fc3RhdGUtPndyaXRlYmFja19qb2IpOwo+ICsJCWlm IChyZXQgPCAwKQo+ICsJCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiAgCWZvcl9lYWNoX25ld19w bGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIG5ld19wbGFuZV9zdGF0ZSwgaSkgewo+ICAJCWNv bnN0IHN0cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpmdW5jczsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX3VhcGkuYwo+IGluZGV4IGM0MDg4OTg4OGExNi4uZTgwMjE1MmEwMWFkIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYwo+IEBAIC02NDcsMjggKzY0NywxNSBAQCBkcm1f YXRvbWljX3BsYW5lX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCXJl dHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGRybV93cml0ZWJhY2tfam9iICoKPiAt ZHJtX2F0b21pY19nZXRfd3JpdGViYWNrX2pvYihzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSkKPiAtewo+IC0JV0FSTl9PTihjb25uX3N0YXRlLT5jb25uZWN0b3ItPmNvbm5l Y3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RPUl9XUklURUJBQ0spOwo+IC0KPiAtCWlmICgh Y29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYikKPiAtCQljb25uX3N0YXRlLT53cml0ZWJhY2tfam9i ID0KPiAtCQkJa3phbGxvYyhzaXplb2YoKmNvbm5fc3RhdGUtPndyaXRlYmFja19qb2IpLCBHRlBf S0VSTkVMKTsKPiAtCj4gLQlyZXR1cm4gY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYjsKPiAtfQo+ IC0KPiAgc3RhdGljIGludCBkcm1fYXRvbWljX3NldF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5lY3Rv cigKPiAgCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiAgCQlzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiAgewo+IC0Jc3RydWN0IGRybV93cml0ZWJhY2tfam9i ICpqb2IgPQo+IC0JCWRybV9hdG9taWNfZ2V0X3dyaXRlYmFja19qb2IoY29ubl9zdGF0ZSk7Cj4g LQlpZiAoIWpvYikKPiAtCQlyZXR1cm4gLUVOT01FTTsKPiArCWludCByZXQ7Cj4gIAo+IC0JZHJt X2ZyYW1lYnVmZmVyX2Fzc2lnbigmam9iLT5mYiwgZmIpOwo+ICsJcmV0ID0gZHJtX3dyaXRlYmFj a19zZXRfZmIoY29ubl9zdGF0ZSwgZmIpOwo+ICsJaWYgKHJldCA8IDApCj4gKwkJcmV0dXJuIHJl dDsKPiAgCj4gIAlpZiAoZmIpCj4gIAkJRFJNX0RFQlVHX0FUT01JQygiU2V0IFtGQjolZF0gZm9y IGNvbm5lY3RvciBzdGF0ZSAlcFxuIiwKPiBAQCAtMTE1OCwxOSArMTE0NSwxNyBAQCBzdGF0aWMg aW50IHByZXBhcmVfc2lnbmFsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ICAJZm9y X2VhY2hfbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubiwgY29ubl9zdGF0ZSwgaSkg ewo+ICAJCXN0cnVjdCBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciAqd2JfY29ubjsKPiAtCQlzdHJ1 Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYjsKPiAgCQlzdHJ1Y3QgZHJtX291dF9mZW5jZV9zdGF0 ZSAqZjsKPiAgCQlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPiAgCQlzMzIgX191c2VyICpmZW5j ZV9wdHI7Cj4gIAo+ICsJCWlmICghY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYikKPiArCQkJY29u dGludWU7Cj4gKwo+ICAJCWZlbmNlX3B0ciA9IGdldF9vdXRfZmVuY2VfZm9yX2Nvbm5lY3Rvcihz dGF0ZSwgY29ubik7Cj4gIAkJaWYgKCFmZW5jZV9wdHIpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAt CQlqb2IgPSBkcm1fYXRvbWljX2dldF93cml0ZWJhY2tfam9iKGNvbm5fc3RhdGUpOwo+IC0JCWlm ICgham9iKQo+IC0JCQlyZXR1cm4gLUVOT01FTTsKPiAtCj4gIAkJZiA9IGtyZWFsbG9jKCpmZW5j ZV9zdGF0ZSwgc2l6ZW9mKCoqZmVuY2Vfc3RhdGUpICoKPiAgCQkJICAgICAoKm51bV9mZW5jZXMg KyAxKSwgR0ZQX0tFUk5FTCk7Cj4gIAkJaWYgKCFmKQo+IEBAIC0xMTkyLDcgKzExNzcsNyBAQCBz dGF0aWMgaW50IHByZXBhcmVfc2lnbmFsaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJ CXJldHVybiByZXQ7Cj4gIAkJfQo+ICAKPiAtCQlqb2ItPm91dF9mZW5jZSA9IGZlbmNlOwo+ICsJ CWNvbm5fc3RhdGUtPndyaXRlYmFja19qb2ItPm91dF9mZW5jZSA9IGZlbmNlOwo+ICAJfQo+ICAK PiAgCS8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fd3JpdGViYWNrLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX3dyaXRlYmFjay5jCj4gaW5kZXggYWZiMWFlNmUwZWNiLi40Njc4 ZDYxZDYzNGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV93cml0ZWJhY2suYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fd3JpdGViYWNrLmMKPiBAQCAtMjM5LDYgKzIzOSw0 MiBAQCBpbnQgZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdCk7 Cj4gIAo+ICtpbnQgZHJtX3dyaXRlYmFja19zZXRfZmIoc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUsCj4gKwkJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiArewo+ ICsJV0FSTl9PTihjb25uX3N0YXRlLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9IERSTV9N T0RFX0NPTk5FQ1RPUl9XUklURUJBQ0spOwo+ICsKPiArCWlmICghY29ubl9zdGF0ZS0+d3JpdGVi YWNrX2pvYikgewo+ICsJCWNvbm5fc3RhdGUtPndyaXRlYmFja19qb2IgPQo+ICsJCQlremFsbG9j KHNpemVvZigqY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYiksIEdGUF9LRVJORUwpOwo+ICsJCWlm ICghY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYikKPiArCQkJcmV0dXJuIC1FTk9NRU07Cj4gKwo+ ICsJCWNvbm5fc3RhdGUtPndyaXRlYmFja19qb2ItPmNvbm5lY3RvciA9Cj4gKwkJCWRybV9jb25u ZWN0b3JfdG9fd3JpdGViYWNrKGNvbm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gKwl9Cj4gKwo+ICsJ ZHJtX2ZyYW1lYnVmZmVyX2Fzc2lnbigmY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYi0+ZmIsIGZi KTsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtpbnQgZHJtX3dyaXRlYmFja19wcmVwYXJlX2pv YihzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYikKPiArewo+ICsJc3RydWN0IGRybV93cml0 ZWJhY2tfY29ubmVjdG9yICpjb25uZWN0b3IgPSBqb2ItPmNvbm5lY3RvcjsKPiArCWNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqZnVuY3MgPQo+ICsJCWNvbm5lY3Rvci0+ YmFzZS5oZWxwZXJfcHJpdmF0ZTsKPiArCWludCByZXQ7Cj4gKwo+ICsJaWYgKGZ1bmNzLT5jbGVh bnVwX3dyaXRlYmFja19qb2IpIHsKPiArCQlyZXQgPSBmdW5jcy0+cHJlcGFyZV93cml0ZWJhY2tf am9iKGNvbm5lY3Rvciwgam9iKTsKPiArCQlpZiAocmV0IDwgMCkKPiArCQkJcmV0dXJuIHJldDsK PiArCX0KPiArCj4gKwlqb2ItPnByZXBhcmVkID0gdHJ1ZTsKPiArCXJldHVybiAwOwo+ICt9Cj4g Kwo+ICAvKioKPiAgICogZHJtX3dyaXRlYmFja19xdWV1ZV9qb2IgLSBRdWV1ZSBhIHdyaXRlYmFj ayBqb2IgZm9yIGxhdGVyIHNpZ25hbGxpbmcKPiAgICogQHdiX2Nvbm5lY3RvcjogVGhlIHdyaXRl YmFjayBjb25uZWN0b3IgdG8gcXVldWUgYSBqb2Igb24KPiBAQCAtMjc1LDYgKzMxMSwxMyBAQCBF WFBPUlRfU1lNQk9MKGRybV93cml0ZWJhY2tfcXVldWVfam9iKTsKPiAgCj4gIHZvaWQgZHJtX3dy aXRlYmFja19jbGVhbnVwX2pvYihzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKmpvYikKPiAgewo+ ICsJc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICpjb25uZWN0b3IgPSBqb2ItPmNvbm5l Y3RvcjsKPiArCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyAqZnVuY3Mg PQo+ICsJCWNvbm5lY3Rvci0+YmFzZS5oZWxwZXJfcHJpdmF0ZTsKPiArCj4gKwlpZiAoam9iLT5w cmVwYXJlZCAmJiBmdW5jcy0+Y2xlYW51cF93cml0ZWJhY2tfam9iKQo+ICsJCWZ1bmNzLT5jbGVh bnVwX3dyaXRlYmFja19qb2IoY29ubmVjdG9yLCBqb2IpOwo+ICsKPiAgCWlmIChqb2ItPmZiKQo+ ICAJCWRybV9mcmFtZWJ1ZmZlcl9wdXQoam9iLT5mYik7Cj4gIAo+IGRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oIGIvaW5jbHVkZS9kcm0vZHJtX21v ZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+IGluZGV4IDYxMTQyYWEwYWIyMy4uNzNkMDNmZTY2Nzk5 IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgK PiArKysgYi9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCj4gQEAgLTQ5 LDYgKzQ5LDggQEAKPiAgICovCj4gIAo+ICBlbnVtIG1vZGVfc2V0X2F0b21pYzsKPiArc3RydWN0 IGRybV93cml0ZWJhY2tfY29ubmVjdG9yOwo+ICtzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2I7Cj4g IAo+ICAvKioKPiAgICogc3RydWN0IGRybV9jcnRjX2hlbHBlcl9mdW5jcyAtIGhlbHBlciBvcGVy YXRpb25zIGZvciBDUlRDcwo+IEBAIC05ODksNiArOTkxLDExIEBAIHN0cnVjdCBkcm1fY29ubmVj dG9yX2hlbHBlcl9mdW5jcyB7Cj4gIAkgKi8KPiAgCXZvaWQgKCphdG9taWNfY29tbWl0KShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqc3RhdGUpOwo+ICsKPiArCWludCAoKnByZXBhcmVfd3JpdGViYWNrX2pvYiko c3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gKwkJCQkgICAgIHN0 cnVjdCBkcm1fd3JpdGViYWNrX2pvYiAqam9iKTsKPiArCXZvaWQgKCpjbGVhbnVwX3dyaXRlYmFj a19qb2IpKHN0cnVjdCBkcm1fd3JpdGViYWNrX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICsJCQkJ ICAgICAgc3RydWN0IGRybV93cml0ZWJhY2tfam9iICpqb2IpOwo+ICB9Owo+ICAKPiAgLyoqCj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaCBiL2luY2x1ZGUvZHJtL2Ry bV93cml0ZWJhY2suaAo+IGluZGV4IDQ3NjYyYzM2Mjc0My4uNzc3YzE0Yzg0N2YwIDEwMDY0NAo+ IC0tLSBhL2luY2x1ZGUvZHJtL2RybV93cml0ZWJhY2suaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bV93cml0ZWJhY2suaAo+IEBAIC03OSw2ICs3OSwyMCBAQCBzdHJ1Y3QgZHJtX3dyaXRlYmFja19j b25uZWN0b3Igewo+ICB9Owo+ICAKPiAgc3RydWN0IGRybV93cml0ZWJhY2tfam9iIHsKPiArCS8q Kgo+ICsJICogQGNvbm5lY3RvcjoKPiArCSAqCj4gKwkgKiBCYWNrLXBvaW50ZXIgdG8gdGhlIHdy aXRlYmFjayBjb25uZWN0b3IgYXNzb2NpYXRlZCB3aXRoIHRoZSBqb2IKPiArCSAqLwo+ICsJc3Ry dWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICpjb25uZWN0b3I7CgpJdCBraW5kLW9mIGZlZWxz IGxpa2UgdGhpcyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LCBidXQgSSB0aGluawphdm9pZGluZyBp dCB3b3VsZCBtZWFuIGVpdGhlciBhbGxvY2F0aW5nIHRoZSB3b3JrX3N0cnVjdCBvdXRzaWRlIG9m CnRoZSBqb2IsIGFuZCB0cmFja2luZyB0aGUgY29ubmVjdG9yIHRoZXJlIGluc3RlYWQgb2YgaW4g dGhlIGpvYiwgb3IKaGF2aW5nIHR3byBjYWxscyB0byB1bnByZXBhcmUgLSBvbmUgaW4gc2lnbmFs X2NvbXBsZXRpb24gYW5kIG9uZSBpbgpkZXN0cm95X3N0YXRlLgoKSXQncyBwcm9iYWJseSBub3Qg d29ydGggdGhlIGd5bW5hc3RpY3MgdG8gYXZvaWQgdGhlIGJhY2twb2ludGVyLi4uIGJ1dApmb3Ig c29tZSByZWFzb24gdGhlIGJhY2twb2ludGVyIGZlZWxzIGludGFuZ2libHkgZGlydHkgdG8gbWUu CgpUaGFua3MsCi1CcmlhbgoKPiArCj4gKwkvKioKPiArCSAqIEBwcmVwYXJlZDoKPiArCSAqCj4g KwkgKiBTZXQgd2hlbiB0aGUgam9iIGhhcyBiZWVuIHByZXBhcmVkIHdpdGggZHJtX3dyaXRlYmFj a19wcmVwYXJlX2pvYigpCj4gKwkgKi8KPiArCWJvb2wgcHJlcGFyZWQ7Cj4gKwo+ICAJLyoqCj4g IAkgKiBAY2xlYW51cF93b3JrOgo+ICAJICoKPiBAQCAtOTgsNyArMTEyLDcgQEAgc3RydWN0IGRy bV93cml0ZWJhY2tfam9iIHsKPiAgCSAqIEBmYjoKPiAgCSAqCj4gIAkgKiBGcmFtZWJ1ZmZlciB0 byBiZSB3cml0dGVuIHRvIGJ5IHRoZSB3cml0ZWJhY2sgY29ubmVjdG9yLiBEbyBub3Qgc2V0Cj4g LQkgKiBkaXJlY3RseSwgdXNlIGRybV9hdG9taWNfc2V0X3dyaXRlYmFja19mYl9mb3JfY29ubmVj dG9yKCkKPiArCSAqIGRpcmVjdGx5LCB1c2UgZHJtX3dyaXRlYmFja19zZXRfZmIoKQo+ICAJICov Cj4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKPiAgCj4gQEAgLTEwOCw2ICsxMjIsMTMg QEAgc3RydWN0IGRybV93cml0ZWJhY2tfam9iIHsKPiAgCSAqIEZlbmNlIHdoaWNoIHdpbGwgc2ln bmFsIG9uY2UgdGhlIHdyaXRlYmFjayBoYXMgY29tcGxldGVkCj4gIAkgKi8KPiAgCXN0cnVjdCBk bWFfZmVuY2UgKm91dF9mZW5jZTsKPiArCj4gKwkvKioKPiArCSAqIEBwcml2Ogo+ICsJICoKPiAr CSAqIERyaXZlci1wcml2YXRlIGRhdGEKPiArCSAqLwo+ICsJdm9pZCAqcHJpdjsKPiAgfTsKPiAg Cj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICoKPiBAQCAt MTIyLDYgKzE0MywxMSBAQCBpbnQgZHJtX3dyaXRlYmFja19jb25uZWN0b3JfaW5pdChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9oZWxwZXJf ZnVuY3MgKmVuY19oZWxwZXJfZnVuY3MsCj4gIAkJCQkgY29uc3QgdTMyICpmb3JtYXRzLCBpbnQg bl9mb3JtYXRzKTsKPiAgCj4gK2ludCBkcm1fd3JpdGViYWNrX3NldF9mYihzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSwKPiArCQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiKTsKPiArCj4gK2ludCBkcm1fd3JpdGViYWNrX3ByZXBhcmVfam9iKHN0cnVjdCBkcm1fd3Jp dGViYWNrX2pvYiAqam9iKTsKPiArCj4gIHZvaWQgZHJtX3dyaXRlYmFja19xdWV1ZV9qb2Ioc3Ry dWN0IGRybV93cml0ZWJhY2tfY29ubmVjdG9yICp3Yl9jb25uZWN0b3IsCj4gIAkJCSAgICAgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpOwo+ICAKPiAtLSAKPiBSZWdhcmRz LAo+IAo+IExhdXJlbnQgUGluY2hhcnQKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVs