From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v5 04/11] drm: Convert connector_helper_funcs->atomic_check to accept drm_atomic_state Date: Tue, 11 Jun 2019 20:58:39 +0300 Message-ID: <20190611175839.GR5016@pendragon.ideasonboard.com> References: <20190611160844.257498-1-sean@poorly.run> <20190611160844.257498-5-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190611160844.257498-5-sean@poorly.run> 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: Maxime Ripard , nouveau@lists.freedesktop.org, David Airlie , linux-renesas-soc@vger.kernel.org, Kieran Bingham , Sean Paul , dri-devel@lists.freedesktop.org, Rodrigo Vivi , intel-gfx@lists.freedesktop.org, Ben Skeggs List-Id: dri-devel@lists.freedesktop.org SGkgU2VhbiwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gVHVlLCBKdW4gMTEsIDIwMTkg YXQgMTI6MDg6MThQTSAtMDQwMCwgU2VhbiBQYXVsIHdyb3RlOgo+IEZyb206IFNlYW4gUGF1bCA8 c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+IAo+IEV2ZXJ5b25lIHdobyBpbXBsZW1lbnRzIGNvbm5l Y3Rvcl9oZWxwZXJfZnVuY3MtPmF0b21pY19jaGVjayByZWFjaGVzCj4gaW50byB0aGUgY29ubmVj dG9yIHN0YXRlIHRvIGdldCB0aGUgYXRvbWljIHN0YXRlLiBJbnN0ZWFkIG9mIGNvbnRpbnVpbmcK PiB0aGlzIHBhdHRlcm4sIGNoYW5nZSB0aGUgY2FsbGJhY2sgc2lnbmF0dXJlIHRvIGp1c3QgZ2l2 ZSBhdG9taWMgc3RhdGUKPiBhbmQgbGV0IHRoZSBkcml2ZXIgZGV0ZXJtaW5lIHdoYXQgaXQgZG9l cyBhbmQgZG9lcyBub3QgbmVlZCBmcm9tIGl0Lgo+IAo+IEV2ZW50dWFsbHkgYWxsIGF0b21pYyBm dW5jdGlvbnMgc2hvdWxkIGRvIHRoaXMsIGJ1dCB0aGF0J3MganVzdCB0b28gbXVjaAo+IGJ1c3kg d29yayBmb3IgbWUuCj4gCj4gQ2hhbmdlcyBpbiB2MzoKPiAtIEFkZGVkIHRvIHRoZSBzZXQKPiBD aGFuZ2VzIGluIHY0Ogo+IC0gTm9uZQo+IENoYW5nZXMgaW4gdjU6Cj4gLSBpbnRlbF9kaWdpdGFs X2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2sgZGVjbGFyYXRpb24gbW92ZWQgdG8gaTkxNV9hdG9taWMu aAo+IAo+IExpbmsgdG8gdjM6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRj aC9tc2dpZC8yMDE5MDUwMjE5NDk1Ni4yMTg0NDEtNS1zZWFuQHBvb3JseS5ydW4KPiBMaW5rIHRv IHY0OiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvbXNnaWQvMjAxOTA1 MDgxNjA5MjAuMTQ0NzM5LTUtc2VhbkBwb29ybHkucnVuCj4gCj4gQ2M6IERhbmllbCBWZXR0ZXIg PGRhbmllbEBmZndsbC5jaD4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4LmludGVs LmNvbT4KPiBDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwu Y29tPgo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Cj4gQ2M6IEJl biBTa2VnZ3MgPGJza2VnZ3NAcmVkaGF0LmNvbT4KPiBDYzogTGF1cmVudCBQaW5jaGFydCA8bGF1 cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgo+IENjOiBLaWVyYW4gQmluZ2hhbSA8a2ll cmFuLmJpbmdoYW0rcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+IENjOiBFcmljIEFuaG9sdCA8 ZXJpY0BhbmhvbHQubmV0Pgo+IFRlc3RlZC1ieTogSGVpa28gU3R1ZWJuZXIgPGhlaWtvQHNudGVj aC5kZT4KPiBBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPgo+IFNpZ25l ZC1vZmYtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+IC0tLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgICAgIHwgIDQgKystLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYyAgICAgIHwgIDggKysrKystLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmggICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICAgICAgfCAgNyArKysrLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nkdm8uYyAgICAgICAgfCAgOSArKysrKy0tLS0KPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfdHYuYyAgICAgICAgICB8ICA4ICsrKysrLS0tCj4gIGRyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L2Rpc3BudjUwL2Rpc3AuYyAgfCAgNSArKystLQo+ICBkcml2ZXJzL2dw dS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYyAgICAgIHwgMTIgKysrKysrKy0tLS0tCgpGb3IgdGhl IFItQ2FyIExWRFMgZHJpdmVyLAoKUmV2aWV3ZWQtYnk6IExhdXJlbnQgUGluY2hhcnQgPGxhdXJl bnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X3R4cC5jICAgICAgICAgICAgfCAgNyArKysrLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9tb2Rlc2V0 X2hlbHBlcl92dGFibGVzLmggfCAgMiArLQo+ICAxMCBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNlcnRp b25zKCspLCAyNyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu Ywo+IGluZGV4IDIxMzNmNjI1MzkxNzYuLmU1OGJlNjk5NjA2OTIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2F0b21pY19oZWxwZXIuYwo+IEBAIC02ODYsNyArNjg2LDcgQEAgZHJtX2F0b21pY19oZWxw ZXJfY2hlY2tfbW9kZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCX0KPiAgCj4gIAkJ aWYgKGZ1bmNzLT5hdG9taWNfY2hlY2spCj4gLQkJCXJldCA9IGZ1bmNzLT5hdG9taWNfY2hlY2so Y29ubmVjdG9yLCBuZXdfY29ubmVjdG9yX3N0YXRlKTsKPiArCQkJcmV0ID0gZnVuY3MtPmF0b21p Y19jaGVjayhjb25uZWN0b3IsIHN0YXRlKTsKPiAgCQlpZiAocmV0KQo+ICAJCQlyZXR1cm4gcmV0 Owo+ICAKPiBAQCAtNzI4LDcgKzcyOCw3IEBAIGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVz ZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCWlmIChm dW5jcy0+YXRvbWljX2NoZWNrKQo+IC0JCQlyZXQgPSBmdW5jcy0+YXRvbWljX2NoZWNrKGNvbm5l Y3RvciwgbmV3X2Nvbm5lY3Rvcl9zdGF0ZSk7Cj4gKwkJCXJldCA9IGZ1bmNzLT5hdG9taWNfY2hl Y2soY29ubmVjdG9yLCBzdGF0ZSk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiAg CX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IGluZGV4IDU4YjgwNDk2NDlhMGYu LmFiNDA0NDhhMTlkNTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXRvbWljLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwo+IEBA IC0xMDYsMTIgKzEwNiwxNCBAQCBpbnQgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3JfYXRvbWljX3Nl dF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICB9Cj4gIAo+ICBp bnQgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3JfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uLAo+IC0JCQkJCSBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRl KQo+ICsJCQkJCSBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiArCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUgPQo+ICsJCWRybV9hdG9taWNfZ2V0X25l d19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm4pOwo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxf Y29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZSA9Cj4gIAkJdG9faW50ZWxfZGlnaXRhbF9j b25uZWN0b3Jfc3RhdGUobmV3X3N0YXRlKTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpvbGRfc3RhdGUgPQo+IC0JCWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUobmV3 X3N0YXRlLT5zdGF0ZSwgY29ubik7Cj4gKwkJZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9z dGF0ZShzdGF0ZSwgY29ubik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3Rh dGUgKm9sZF9jb25uX3N0YXRlID0KPiAgCQl0b19pbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0 ZShvbGRfc3RhdGUpOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+IEBA IC0xMjEsNyArMTIzLDcgQEAgaW50IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19jaGVj ayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiwKPiAgCWlmICghbmV3X3N0YXRlLT5jcnRjKQo+ ICAJCXJldHVybiAwOwo+ICAKPiAtCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0 Y19zdGF0ZShuZXdfc3RhdGUtPnN0YXRlLCBuZXdfc3RhdGUtPmNydGMpOwo+ICsJY3J0Y19zdGF0 ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBuZXdfc3RhdGUtPmNydGMp Owo+ICAKPiAgCS8qCj4gIAkgKiBUaGVzZSBwcm9wZXJ0aWVzIGFyZSBoYW5kbGVkIGJ5IGZhc3Rz ZXQsIGFuZCBtaWdodCBub3QgZW5kCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2F0b21pYy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmgKPiBp bmRleCAxYzg1MDdkYTFhNjkwLi41ODA2NWQzMTYxYTM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljLmgKPiBAQCAtMjgsNyArMjgsNyBAQCBpbnQgaW50ZWxfZGlnaXRhbF9jb25u ZWN0b3JfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+ICAJCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiAgCQkJCQkJdTY0IHZh bCk7Cj4gIGludCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm4sCj4gLQkJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpu ZXdfc3RhdGUpOwo+ICsJCQkJCSBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqCj4gIGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2R1 cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAgCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBpbmRleCAwY2FmNjQ1ZmJiYjg0Li42MDY1MmVi YmRmNjEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBAQCAtMTUxLDkg KzE1MSwxMCBAQCBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIHN0YXRpYyBpbnQKPiAgaW50ZWxfZHBfbXN0 X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IC0JCQkgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZSkKPiArCQkJICBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSA9IG5ld19jb25uX3N0YXRlLT5zdGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpuZXdfY29ubl9zdGF0ZSA9Cj4gKwkJZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rv cl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yKTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpvbGRfY29ubl9zdGF0ZSA9Cj4gIAkJZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0 ZShzdGF0ZSwgY29ubmVjdG9yKTsKPiAgCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nv bm5lY3RvciA9Cj4gQEAgLTE2Myw3ICsxNjQsNyBAQCBpbnRlbF9kcF9tc3RfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAlzdHJ1Y3QgZHJtX2RwX21zdF90 b3BvbG9neV9tZ3IgKm1ncjsKPiAgCWludCByZXQ7Cj4gIAo+IC0JcmV0ID0gaW50ZWxfZGlnaXRh bF9jb25uZWN0b3JfYXRvbWljX2NoZWNrKGNvbm5lY3RvciwgbmV3X2Nvbm5fc3RhdGUpOwo+ICsJ cmV0ID0gaW50ZWxfZGlnaXRhbF9jb25uZWN0b3JfYXRvbWljX2NoZWNrKGNvbm5lY3Rvciwgc3Rh dGUpOwo+ICAJaWYgKHJldCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc2R2by5jCj4gaW5kZXggNmM5OGIzNTc5MGRiNS4uMzY4Yjk5ZjZmN2ZiZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiBAQCAtMjM1Myw5ICsyMzUzLDEwIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF9zZHZvX2Nvbm5lY3Rvcl9mdW5j cyA9IHsKPiAgfTsKPiAgCj4gIHN0YXRpYyBpbnQgaW50ZWxfc2R2b19hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm4sCj4gLQkJCQkgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9z dGF0ZSAqbmV3X2Nvbm5fc3RhdGUpCj4gKwkJCQkgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG5ld19jb25u X3N0YXRlLT5zdGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9z dGF0ZSA9Cj4gKwkJZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29u bik7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGUgPQo+ICAJ CWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm4pOwo+ICAJc3Ry dWN0IGludGVsX3Nkdm9fY29ubmVjdG9yX3N0YXRlICpvbGRfc3RhdGUgPQo+IEBAIC0yMzY3LDEz ICsyMzY4LDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfc2R2b19hdG9taWNfY2hlY2soc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm4sCj4gIAkgICAgKG1lbWNtcCgmb2xkX3N0YXRlLT50diwgJm5ld19z dGF0ZS0+dHYsIHNpemVvZihvbGRfc3RhdGUtPnR2KSkgfHwKPiAgCSAgICAgbWVtY21wKCZvbGRf Y29ubl9zdGF0ZS0+dHYsICZuZXdfY29ubl9zdGF0ZS0+dHYsIHNpemVvZihvbGRfY29ubl9zdGF0 ZS0+dHYpKSkpIHsKPiAgCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQo+IC0J CQlkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShuZXdfY29ubl9zdGF0ZS0+c3RhdGUsCj4g KwkJCWRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLAo+ICAJCQkJCQkgICAgICBu ZXdfY29ubl9zdGF0ZS0+Y3J0Yyk7Cj4gIAo+ICAJCWNydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hh bmdlZCA9IHRydWU7Cj4gIAl9Cj4gIAo+IC0JcmV0dXJuIGludGVsX2RpZ2l0YWxfY29ubmVjdG9y X2F0b21pY19jaGVjayhjb25uLCBuZXdfY29ubl9zdGF0ZSk7Cj4gKwlyZXR1cm4gaW50ZWxfZGln aXRhbF9jb25uZWN0b3JfYXRvbWljX2NoZWNrKGNvbm4sIHN0YXRlKTsKPiAgfQo+ICAKPiAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyBpbnRlbF9zZHZvX2Nv bm5lY3Rvcl9oZWxwZXJfZnVuY3MgPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3R2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gaW5kZXgg NWRjNTk0ZWFmYWYyZi4uMGE5NWRmNmM2YTU3ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF90di5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYu Ywo+IEBAIC0xODIxLDE2ICsxODIxLDE4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfZnVuY3MgPSB7Cj4gIH07Cj4gIAo+ICBzdGF0 aWMgaW50IGludGVsX3R2X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+IC0JCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfc3RhdGUpCj4gKwkJ CQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdf Y3J0Y19zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfc3RhdGU7Cj4g IAo+ICsJbmV3X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0 ZSwgY29ubmVjdG9yKTsKPiAgCWlmICghbmV3X3N0YXRlLT5jcnRjKQo+ICAJCXJldHVybiAwOwo+ ICAKPiAtCW9sZF9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUobmV3 X3N0YXRlLT5zdGF0ZSwgY29ubmVjdG9yKTsKPiAtCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0b21p Y19nZXRfbmV3X2NydGNfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSwgbmV3X3N0YXRlLT5jcnRjKTsK PiArCW9sZF9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUs IGNvbm5lY3Rvcik7Cj4gKwluZXdfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRj X3N0YXRlKHN0YXRlLCBuZXdfc3RhdGUtPmNydGMpOwo+ICAKPiAgCWlmIChvbGRfc3RhdGUtPnR2 Lm1vZGUgIT0gbmV3X3N0YXRlLT50di5tb2RlIHx8Cj4gIAkgICAgb2xkX3N0YXRlLT50di5tYXJn aW5zLmxlZnQgIT0gbmV3X3N0YXRlLT50di5tYXJnaW5zLmxlZnQgfHwKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jIGIvZHJpdmVycy9ncHUvZHJt L25vdXZlYXUvZGlzcG52NTAvZGlzcC5jCj4gaW5kZXggNGIxNjUwZjUxOTU1ZC4uN2JhMzczZjQ5 M2IyOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNw LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9kaXNwbnY1MC9kaXNwLmMKPiBAQCAt OTQ4LDExICs5NDgsMTIgQEAgbnY1MF9tc3RjX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICAKPiAgc3RhdGljIGludAo+ICBudjUwX21zdGNfYXRvbWljX2NoZWNr KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gLQkJICAgICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZSkKPiArCQkgICAgICAgc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUgPSBuZXdfY29ubl9zdGF0ZS0+c3RhdGU7Cj4gIAlzdHJ1Y3QgbnY1MF9tc3RjICptc3RjID0g bnY1MF9tc3RjKGNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3Ig Km1nciA9ICZtc3RjLT5tc3RtLT5tZ3I7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq bmV3X2Nvbm5fc3RhdGUgPQo+ICsJCWRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUo c3RhdGUsIGNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nv bm5fc3RhdGUgPQo+ICAJCWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUs IGNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jIGIvZHJpdmVycy9n cHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKPiBpbmRleCA2MjBiNTFhYWIyOTFmLi41YjgxYmEy YTdmMjcyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMKPiBAQCAtOTIsMTMg KzkyLDE1IEBAIHN0YXRpYyBpbnQgcmNhcl9sdmRzX2Nvbm5lY3Rvcl9nZXRfbW9kZXMoc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgfQo+ICAKPiAgc3RhdGljIGludCByY2FyX2x2 ZHNfY29ubmVjdG9yX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAo+IC0JCQkJCSAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUpCj4gKwkJCQkJ ICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+ICAJc3RydWN0IHJjYXJf bHZkcyAqbHZkcyA9IGNvbm5lY3Rvcl90b19yY2FyX2x2ZHMoY29ubmVjdG9yKTsKPiAgCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwYW5lbF9tb2RlOwo+ICsJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNf c3RhdGU7Cj4gIAo+IC0JaWYgKCFzdGF0ZS0+Y3J0YykKPiArCWNvbm5fc3RhdGUgPSBkcm1fYXRv bWljX2dldF9uZXdfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICsJaWYgKCFj b25uX3N0YXRlLT5jcnRjKQo+ICAJCXJldHVybiAwOwo+ICAKPiAgCWlmIChsaXN0X2VtcHR5KCZj b25uZWN0b3ItPm1vZGVzKSkgewo+IEBAIC0xMTAsOSArMTEyLDkgQEAgc3RhdGljIGludCByY2Fy X2x2ZHNfY29ubmVjdG9yX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAo+ICAJCQkJICAgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUsIGhlYWQpOwo+ICAKPiAg CS8qIFdlJ3JlIG5vdCBhbGxvd2VkIHRvIG1vZGlmeSB0aGUgcmVzb2x1dGlvbi4gKi8KPiAtCWNy dGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLT5zdGF0ZSwgc3RhdGUt PmNydGMpOwo+IC0JaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKPiAtCQlyZXR1cm4gUFRSX0VSUihj cnRjX3N0YXRlKTsKPiArCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0 YXRlLCBjb25uX3N0YXRlLT5jcnRjKTsKPiArCWlmICghY3J0Y19zdGF0ZSkKPiArCQlyZXR1cm4g LUVJTlZBTDsKPiAgCj4gIAlpZiAoY3J0Y19zdGF0ZS0+bW9kZS5oZGlzcGxheSAhPSBwYW5lbF9t b2RlLT5oZGlzcGxheSB8fAo+ICAJICAgIGNydGNfc3RhdGUtPm1vZGUudmRpc3BsYXkgIT0gcGFu ZWxfbW9kZS0+dmRpc3BsYXkpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X3R4cC5jIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdHhwLmMKPiBpbmRleCBjOGI4OWE3OGY5 ZjRmLi45NmY5MWMxYjRiNmU2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0 X3R4cC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdHhwLmMKPiBAQCAtMjIxLDE3 ICsyMjEsMTggQEAgc3RhdGljIGNvbnN0IHUzMiB0eHBfZm10c1tdID0gewo+ICB9Owo+ICAKPiAg c3RhdGljIGludCB2YzRfdHhwX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm4sCj4gLQkJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUpCj4gKwkJCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiArCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOwo+ICAJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gIAlp bnQgaTsKPiAgCj4gKwljb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Nvbm5lY3Rvcl9z dGF0ZShzdGF0ZSwgY29ubik7Cj4gIAlpZiAoIWNvbm5fc3RhdGUtPndyaXRlYmFja19qb2IgfHwg IWNvbm5fc3RhdGUtPndyaXRlYmFja19qb2ItPmZiKQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCWNy dGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShjb25uX3N0YXRlLT5zdGF0 ZSwKPiAtCQkJCQkJICAgY29ubl9zdGF0ZS0+Y3J0Yyk7Cj4gKwljcnRjX3N0YXRlID0gZHJtX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNvbm5fc3RhdGUtPmNydGMpOwo+ICAKPiAg CWZiID0gY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYi0+ZmI7Cj4gIAlpZiAoZmItPndpZHRoICE9 IGNydGNfc3RhdGUtPm1vZGUuaGRpc3BsYXkgfHwKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hl bHBlcl92dGFibGVzLmgKPiBpbmRleCAwNzAxYjNhMzEwOGU1Li4wODk5ZjUzMTgwZTU5IDEwMDY0 NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiArKysg Yi9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxlcy5oCj4gQEAgLTEwMjcsNyAr MTAyNyw3IEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyB7Cj4gIAkgKiBkZWFk bG9jay4KPiAgCSAqLwo+ICAJaW50ICgqYXRvbWljX2NoZWNrKShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+IC0JCQkgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRl KTsKPiArCQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gIAo+ICAJLyoq Cj4gIAkgKiBAYXRvbWljX2NvbW1pdDoKCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwg bWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=