From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v3 04/10] drm: Convert connector_helper_funcs->atomic_check to accept drm_atomic_state Date: Sat, 11 May 2019 22:12:02 +0300 Message-ID: <20190511191202.GL13043@pendragon.ideasonboard.com> References: <20190502194956.218441-1-sean@poorly.run> <20190502194956.218441-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: <20190502194956.218441-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-kernel@vger.kernel.org, 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: intel-gfx@lists.freedesktop.org SGkgU2VhbiwKClRoYW5rIHlvdSBmb3IgdGhlIHBhdGNoLgoKT24gVGh1LCBNYXkgMDIsIDIwMTkg YXQgMDM6NDk6NDZQTSAtMDQwMCwgU2VhbiBQYXVsIHdyb3RlOgo+IEZyb206IFNlYW4gUGF1bCA8 c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+IAo+IEV2ZXJ5b25lIHdobyBpbXBsZW1lbnRzIGNvbm5l Y3Rvcl9oZWxwZXJfZnVuY3MtPmF0b21pY19jaGVjayByZWFjaGVzCj4gaW50byB0aGUgY29ubmVj dG9yIHN0YXRlIHRvIGdldCB0aGUgYXRvbWljIHN0YXRlLiBJbnN0ZWFkIG9mIGNvbnRpbnVpbmcK PiB0aGlzIHBhdHRlcm4sIGNoYW5nZSB0aGUgY2FsbGJhY2sgc2lnbmF0dXJlIHRvIGp1c3QgZ2l2 ZSBhdG9taWMgc3RhdGUKPiBhbmQgbGV0IHRoZSBkcml2ZXIgZGV0ZXJtaW5lIHdoYXQgaXQgZG9l cyBhbmQgZG9lcyBub3QgbmVlZCBmcm9tIGl0Lgo+IAo+IEV2ZW50dWFsbHkgYWxsIGF0b21pYyBm dW5jdGlvbnMgc2hvdWxkIGRvIHRoaXMsIGJ1dCB0aGF0J3MganVzdCB0b28gbXVjaAo+IGJ1c3kg d29yayBmb3IgbWUuCgpHaXZlbiB0aGF0IGRyaXZlcnMgYWxzbyBhY2Nlc3MgdGhlIGNvbm5lY3Rv ciBzdGF0ZSwgaXNuJ3QgdGhpcyBzbGlnaHRseQptb3JlIGluZWZmaWNpZW50ID8KCj4gQ2hhbmdl cyBpbiB2MzoKPiAtIEFkZGVkIHRvIHRoZSBzZXQKPiAKPiBDYzogRGFuaWVsIFZldHRlciA8ZGFu aWVsQGZmd2xsLmNoPgo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29t Pgo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ Cj4gQ2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBDYzogQmVuIFNr ZWdncyA8YnNrZWdnc0ByZWRoYXQuY29tPgo+IENjOiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50 LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+Cj4gQ2M6IEtpZXJhbiBCaW5naGFtIDxraWVyYW4u YmluZ2hhbStyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+Cj4gQ2M6IEVyaWMgQW5ob2x0IDxlcmlj QGFuaG9sdC5uZXQ+Cj4gU2lnbmVkLW9mZi1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1 bS5vcmc+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICAgICAg fCAgNCArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICAgICAgfCAg OCArKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyAgICAgIHwg IDcgKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgIHwg IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jICAgICAgICB8ICA5ICsr KysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jICAgICAgICAgIHwgIDgg KysrKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jICB8ICA1 ICsrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jICAgICAgfCAxMiAr KysrKysrLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdHhwLmMgICAgICAgICAgICB8 ICA3ICsrKystLS0KPiAgaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCB8 ICAyICstCj4gIDEwIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggOWQ5ZTQ3Mjc2 ODM5Li5mYTVhMzY3NTA3YzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ IEBAIC02ODMsNyArNjgzLDcgQEAgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfbW9kZXNldChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCX0KPiAgCj4gIAkJaWYgKGZ1bmNzLT5hdG9taWNfY2hl Y2spCj4gLQkJCXJldCA9IGZ1bmNzLT5hdG9taWNfY2hlY2soY29ubmVjdG9yLCBuZXdfY29ubmVj dG9yX3N0YXRlKTsKPiArCQkJcmV0ID0gZnVuY3MtPmF0b21pY19jaGVjayhjb25uZWN0b3IsIHN0 YXRlKTsKPiAgCQlpZiAocmV0KQo+ICAJCQlyZXR1cm4gcmV0Owo+ICAKPiBAQCAtNzI1LDcgKzcy NSw3IEBAIGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgCQkJY29udGludWU7Cj4gIAo+ICAJCWlmIChmdW5jcy0+YXRvbWljX2NoZWNrKQo+ IC0JCQlyZXQgPSBmdW5jcy0+YXRvbWljX2NoZWNrKGNvbm5lY3RvciwgbmV3X2Nvbm5lY3Rvcl9z dGF0ZSk7Cj4gKwkJCXJldCA9IGZ1bmNzLT5hdG9taWNfY2hlY2soY29ubmVjdG9yLCBzdGF0ZSk7 Cj4gIAkJaWYgKHJldCkKPiAgCQkJcmV0dXJuIHJldDsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWMuYwo+IGluZGV4IGI4NDRlODg0MGM2Zi4uZThhNWI4MmU5MjQyIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiBAQCAtMTAzLDEyICsxMDMsMTQgQEAgaW50 IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX2F0b21pY19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKPiAgfQo+ICAKPiAgaW50IGludGVsX2RpZ2l0YWxfY29ubmVj dG9yX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiwKPiAtCQkJCQkgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19zdGF0ZSkKPiArCQkJCQkgc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq bmV3X3N0YXRlID0KPiArCQlkcm1fYXRvbWljX2dldF9uZXdfY29ubmVjdG9yX3N0YXRlKHN0YXRl LCBjb25uKTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nv bm5fc3RhdGUgPQo+ICAJCXRvX2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKG5ld19zdGF0 ZSk7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX3N0YXRlID0KPiAtCQlkcm1f YXRvbWljX2dldF9vbGRfY29ubmVjdG9yX3N0YXRlKG5ld19zdGF0ZS0+c3RhdGUsIGNvbm4pOwo+ ICsJCWRybV9hdG9taWNfZ2V0X29sZF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm4pOwo+ICAJ c3RydWN0IGludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSA9Cj4g IAkJdG9faW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUob2xkX3N0YXRlKTsKPiAgCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiBAQCAtMTE4LDcgKzEyMCw3IEBAIGludCBp bnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm4sCj4gIAlpZiAoIW5ld19zdGF0ZS0+Y3J0YykKPiAgCQlyZXR1cm4gMDsKPiAgCj4gLQlj cnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUobmV3X3N0YXRlLT5zdGF0 ZSwgbmV3X3N0YXRlLT5jcnRjKTsKPiArCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdf Y3J0Y19zdGF0ZShzdGF0ZSwgbmV3X3N0YXRlLT5jcnRjKTsKPiAgCj4gIAkvKgo+ICAJICogVGhl c2UgcHJvcGVydGllcyBhcmUgaGFuZGxlZCBieSBmYXN0c2V0LCBhbmQgbWlnaHQgbm90IGVuZAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gaW5kZXggMTlkODFjZWYyYWI2Li44OWNm ZWMxMjhiYTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IEBAIC0xNDMs OSArMTQzLDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbXN0X2NvbXB1dGVfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgc3RhdGljIGludAo+ICBpbnRlbF9kcF9t c3RfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gLQkJCSAg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlKQo+ICsJCQkgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlID0gbmV3X2Nvbm5fc3RhdGUtPnN0YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlID0KPiArCQlkcm1fYXRvbWljX2dldF9uZXdfY29ubmVj dG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKm9sZF9jb25uX3N0YXRlID0KPiAgCQlkcm1fYXRvbWljX2dldF9vbGRfY29ubmVjdG9yX3N0 YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxf Y29ubmVjdG9yID0KPiBAQCAtMTU1LDcgKzE1Niw3IEBAIGludGVsX2RwX21zdF9hdG9taWNfY2hl Y2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCXN0cnVjdCBkcm1fZHBfbXN0 X3RvcG9sb2d5X21nciAqbWdyOwo+ICAJaW50IHJldDsKPiAgCj4gLQlyZXQgPSBpbnRlbF9kaWdp dGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soY29ubmVjdG9yLCBuZXdfY29ubl9zdGF0ZSk7Cj4g KwlyZXQgPSBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soY29ubmVjdG9yLCBz dGF0ZSk7Cj4gIAlpZiAocmV0KQo+ICAJCXJldHVybiByZXQ7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gaW5kZXggZjhjN2IyOTFmZGMzLi44ODU3MWI4ZThkNjIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0yNDgxLDcgKzI0ODEsNyBAQCBpbnQgaW50ZWxfZGln aXRhbF9jb25uZWN0b3JfYXRvbWljX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yLAo+ICAJCQkJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiAgCQkJ CQkJdTY0IHZhbCk7Cj4gIGludCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2so c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4sCj4gLQkJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpuZXdfc3RhdGUpOwo+ICsJCQkJCSBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpOwo+ICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqCj4gIGludGVsX2RpZ2l0YWxfY29u bmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsK PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IGluZGV4IDY4ZjQ5NzQ5M2Q0My4uNzJl YTE2NGI5NzFjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8u Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IEBAIC0yMzQyLDkg KzIzNDIsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVs X3Nkdm9fY29ubmVjdG9yX2Z1bmNzID0gewo+ICB9Owo+ICAKPiAgc3RhdGljIGludCBpbnRlbF9z ZHZvX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiwKPiAtCQkJCSAgIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZSkKPiArCQkJCSAgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlID0gbmV3X2Nvbm5fc3RhdGUtPnN0YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlID0KPiArCQlkcm1fYXRvbWljX2dldF9uZXdfY29ubmVj dG9yX3N0YXRlKHN0YXRlLCBjb25uKTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpv bGRfY29ubl9zdGF0ZSA9Cj4gIAkJZHJtX2F0b21pY19nZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShz dGF0ZSwgY29ubik7Cj4gIAlzdHJ1Y3QgaW50ZWxfc2R2b19jb25uZWN0b3Jfc3RhdGUgKm9sZF9z dGF0ZSA9Cj4gQEAgLTIzNTYsMTMgKzIzNTcsMTMgQEAgc3RhdGljIGludCBpbnRlbF9zZHZvX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubiwKPiAgCSAgICAobWVtY21wKCZv bGRfc3RhdGUtPnR2LCAmbmV3X3N0YXRlLT50diwgc2l6ZW9mKG9sZF9zdGF0ZS0+dHYpKSB8fAo+ ICAJICAgICBtZW1jbXAoJm9sZF9jb25uX3N0YXRlLT50diwgJm5ld19jb25uX3N0YXRlLT50diwg c2l6ZW9mKG9sZF9jb25uX3N0YXRlLT50dikpKSkgewo+ICAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSA9Cj4gLQkJCWRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKG5ld19j b25uX3N0YXRlLT5zdGF0ZSwKPiArCQkJZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3Rh dGUsCj4gIAkJCQkJCSAgICAgIG5ld19jb25uX3N0YXRlLT5jcnRjKTsKPiAgCj4gIAkJY3J0Y19z dGF0ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0gdHJ1ZTsKPiAgCX0KPiAgCj4gLQlyZXR1cm4gaW50 ZWxfZGlnaXRhbF9jb25uZWN0b3JfYXRvbWljX2NoZWNrKGNvbm4sIG5ld19jb25uX3N0YXRlKTsK PiArCXJldHVybiBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soY29ubiwgc3Rh dGUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfaGVscGVy X2Z1bmNzIGludGVsX3Nkdm9fY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3R2LmMKPiBpbmRleCAzOTI0YzQ5NDRlMWYuLmE0MWM1YjQ2N2MxNCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfdHYuYwo+IEBAIC0xODE3LDE2ICsxODE3LDE4IEBAIHN0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBpbnRlbF90dl9jb25uZWN0b3JfZnVuY3MgPSB7 Cj4gIH07Cj4gIAo+ICBzdGF0aWMgaW50IGludGVsX3R2X2F0b21pY19jaGVjayhzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IC0JCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICpuZXdfc3RhdGUpCj4gKwkJCQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7 Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlOwo+ICAJc3RydWN0IGRy bV9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpvbGRfc3RhdGU7Cj4gIAo+ICsJbmV3X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2Nv bm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yKTsKPiAgCWlmICghbmV3X3N0YXRlLT5jcnRj KQo+ICAJCXJldHVybiAwOwo+ICAKPiAtCW9sZF9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9j b25uZWN0b3Jfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSwgY29ubmVjdG9yKTsKPiAtCW5ld19jcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSwg bmV3X3N0YXRlLT5jcnRjKTsKPiArCW9sZF9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X29sZF9jb25u ZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gKwluZXdfY3J0Y19zdGF0ZSA9IGRybV9h dG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBuZXdfc3RhdGUtPmNydGMpOwo+ICAKPiAg CWlmIChvbGRfc3RhdGUtPnR2Lm1vZGUgIT0gbmV3X3N0YXRlLT50di5tb2RlIHx8Cj4gIAkgICAg b2xkX3N0YXRlLT50di5tYXJnaW5zLmxlZnQgIT0gbmV3X3N0YXRlLT50di5tYXJnaW5zLmxlZnQg fHwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5j IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52NTAvZGlzcC5jCj4gaW5kZXggNGIxNjUw ZjUxOTU1Li43YmEzNzNmNDkzYjIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvZGlzcG52NTAvZGlzcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvZGlzcG52 NTAvZGlzcC5jCj4gQEAgLTk0OCwxMSArOTQ4LDEyIEBAIG52NTBfbXN0Y19nZXRfbW9kZXMoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCj4gIHN0YXRpYyBpbnQKPiAgbnY1MF9t c3RjX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IC0JCSAg ICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGUpCj4gKwkJICAg ICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgewo+IC0Jc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlID0gbmV3X2Nvbm5fc3RhdGUtPnN0YXRlOwo+ICAJc3RydWN0IG52 NTBfbXN0YyAqbXN0YyA9IG52NTBfbXN0Yyhjb25uZWN0b3IpOwo+ICAJc3RydWN0IGRybV9kcF9t c3RfdG9wb2xvZ3lfbWdyICptZ3IgPSAmbXN0Yy0+bXN0bS0+bWdyOwo+ICsJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlID0KPiArCQlkcm1fYXRvbWljX2dldF9uZXdf Y29ubmVjdG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICAJc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlID0KPiAgCQlkcm1fYXRvbWljX2dldF9vbGRfY29ubmVj dG9yX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IpOwo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpj cnRjX3N0YXRlOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2 ZHMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jCj4gaW5kZXggNjIwYjUx YWFiMjkxLi41YjgxYmEyYTdmMjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9sdmRzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMu Ywo+IEBAIC05MiwxMyArOTIsMTUgQEAgc3RhdGljIGludCByY2FyX2x2ZHNfY29ubmVjdG9yX2dl dF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB9Cj4gIAo+ICBzdGF0 aWMgaW50IHJjYXJfbHZkc19jb25uZWN0b3JfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCj4gLQkJCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpz dGF0ZSkKPiArCQkJCQkgICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4g IAlzdHJ1Y3QgcmNhcl9sdmRzICpsdmRzID0gY29ubmVjdG9yX3RvX3JjYXJfbHZkcyhjb25uZWN0 b3IpOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBhbmVsX21vZGU7Cj4gKwlz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZTsKPiAgCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiAgCj4gLQlpZiAoIXN0YXRlLT5jcnRjKQo+ICsJY29ubl9z dGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUoc3RhdGUsIGNvbm5lY3Rv cik7Cj4gKwlpZiAoIWNvbm5fc3RhdGUtPmNydGMpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+ICAJaWYg KGxpc3RfZW1wdHkoJmNvbm5lY3Rvci0+bW9kZXMpKSB7Cj4gQEAgLTExMCw5ICsxMTIsOSBAQCBz dGF0aWMgaW50IHJjYXJfbHZkc19jb25uZWN0b3JfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IsCj4gIAkJCQkgICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSwg aGVhZCk7Cj4gIAo+ICAJLyogV2UncmUgbm90IGFsbG93ZWQgdG8gbW9kaWZ5IHRoZSByZXNvbHV0 aW9uLiAqLwo+IC0JY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUt PnN0YXRlLCBzdGF0ZS0+Y3J0Yyk7Cj4gLQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+IC0JCXJl dHVybiBQVFJfRVJSKGNydGNfc3RhdGUpOwo+ICsJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0 X2NydGNfc3RhdGUoc3RhdGUsIGNvbm5fc3RhdGUtPmNydGMpOwo+ICsJaWYgKCFjcnRjX3N0YXRl KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICAKPiAgCWlmIChjcnRjX3N0YXRlLT5tb2RlLmhkaXNw bGF5ICE9IHBhbmVsX21vZGUtPmhkaXNwbGF5IHx8Cj4gIAkgICAgY3J0Y19zdGF0ZS0+bW9kZS52 ZGlzcGxheSAhPSBwYW5lbF9tb2RlLT52ZGlzcGxheSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3ZjNC92YzRfdHhwLmMgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF90eHAuYwo+IGlu ZGV4IGM4Yjg5YTc4ZjlmNC4uOTZmOTFjMWI0YjZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92YzQvdmM0X3R4cC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfdHhwLmMK PiBAQCAtMjIxLDE3ICsyMjEsMTggQEAgc3RhdGljIGNvbnN0IHUzMiB0eHBfZm10c1tdID0gewo+ ICB9Owo+ICAKPiAgc3RhdGljIGludCB2YzRfdHhwX2Nvbm5lY3Rvcl9hdG9taWNfY2hlY2soc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm4sCj4gLQkJCQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCj4gKwkJCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gIHsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOwo+ICAJc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmI7Cj4gIAlpbnQgaTsKPiAgCj4gKwljb25uX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3 X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubik7Cj4gIAlpZiAoIWNvbm5fc3RhdGUtPndyaXRl YmFja19qb2IgfHwgIWNvbm5fc3RhdGUtPndyaXRlYmFja19qb2ItPmZiKQo+ICAJCXJldHVybiAw Owo+ICAKPiAtCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShjb25u X3N0YXRlLT5zdGF0ZSwKPiAtCQkJCQkJICAgY29ubl9zdGF0ZS0+Y3J0Yyk7Cj4gKwljcnRjX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNvbm5fc3RhdGUtPmNy dGMpOwo+ICAKPiAgCWZiID0gY29ubl9zdGF0ZS0+d3JpdGViYWNrX2pvYi0+ZmI7Cj4gIAlpZiAo ZmItPndpZHRoICE9IGNydGNfc3RhdGUtPm1vZGUuaGRpc3BsYXkgfHwKPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaCBiL2luY2x1ZGUvZHJtL2Ry bV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmgKPiBpbmRleCBkZTU3ZmI0MGNiNmUuLmFkYzhiN2Nm NjRiNSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRhYmxl cy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAo+IEBA IC0xMDIwLDcgKzEwMjAsNyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3Mgewo+ ICAJICogZGVhZGxvY2suCj4gIAkgKi8KPiAgCWludCAoKmF0b21pY19jaGVjaykoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAtCQkJICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0 YXRlICpzdGF0ZSk7Cj4gKwkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ ICAKPiAgCS8qKgo+ICAJICogQGF0b21pY19jb21taXQ6CgotLSAKUmVnYXJkcywKCkxhdXJlbnQg UGluY2hhcnQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs