From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Remove special case slave handling during hw programming, v3. Date: Tue, 22 Oct 2019 21:14:37 +0300 Message-ID: <20191022181437.GP1208@intel.com> References: <20191017132105.15528-14-maarten.lankhorst@linux.intel.com> <20191022103149.17236-1-dev@mblankhorst.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7ED0A6E046 for ; Tue, 22 Oct 2019 18:14:41 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191022103149.17236-1-dev@mblankhorst.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMjIsIDIwMTkgYXQgMTI6MzE6NDlQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gRnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KPiAKPiBOb3cgdGhhdCB3ZSBzcGxpdCBwbGFuZV9zdGF0ZSB3aGljaCBJ IGRpZG4ndCB3YW50IHRvIGRvIHlldCwgd2UgY2FuCj4gcHJvZ3JhbSB0aGUgc2xhdmUgcGxhbmUg d2l0aG91dCByZXF1aXJpbmcgdGhlIG1hc3RlciBwbGFuZS4KPiAKPiBUaGlzIGlzIHVzZWZ1bCBm b3IgcHJvZ3JhbW1pbmcgYmlnam9pbmVyIHNsYXZlIHBsYW5lcyBhcyB3ZWxsLiBXZQo+IHdpbGwg bm8gbG9uZ2VyIG5lZWQgdGhlIG1hc3RlcidzIHBsYW5lX3N0YXRlLgo+IAo+IENoYW5nZXMgc2lu Y2UgdjE6Cj4gLSBzZXQgc3JjL2RzdCByZWN0YW5nbGVzIGFmdGVyIGNvcHlfdWFwaV90b19od19z dGF0ZS4KPiBDaGFuZ2VzIHNpbmNlIHYyOgo+IC0gVXNlIHRoZSBjb3JyZWN0IGNvbG9yX3BsYW5l IGZvciBwcmUtZ2VuMTEgYnkgdXNpbmcgcGxhbmFyX2xpbmtlZF9wbGFuZSAhPSBOVUxMLgo+IC0g VXNlIGRybV9mb3JtYXRfaW5mb19pc195dXZfc2VtaXBsYW5hciBpbiBza2xfcGxhbmVfY2hlY2so KSB0byBmaXggZ2VuMTErLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIC4uLi9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8IDMwICstLS0tLS0tLS0KPiAgLi4uL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5oIHwgIDMgLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAxOCArKysrKysKPiAgLi4u L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgIDYgKy0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYyAgIHwgNTcgKysrKysrLS0t LS0tLS0tLS0tLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDc0IGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9h dG9taWNfcGxhbmUuYwo+IGluZGV4IGQ5YjY1ZTljNDVmYy4uNTRkMTEyNDA4NzE2IDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5j Cj4gQEAgLTMwOSwxNiArMzA5LDYgQEAgdm9pZCBpbnRlbF91cGRhdGVfcGxhbmUoc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZSwKPiAgCXBsYW5lLT51cGRhdGVfcGxhbmUocGxhbmUsIGNydGNfc3Rh dGUsIHBsYW5lX3N0YXRlKTsKPiAgfQo+ICAKPiAtdm9pZCBpbnRlbF91cGRhdGVfc2xhdmUoc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiAtCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gLQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGUpCj4gLXsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLT51YXBpLmNydGMpOwo+IC0KPiAtCXRyYWNlX2ludGVsX3VwZGF0ZV9wbGFu ZSgmcGxhbmUtPmJhc2UsIGNydGMpOwo+IC0JcGxhbmUtPnVwZGF0ZV9zbGF2ZShwbGFuZSwgY3J0 Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+IC19Cj4gLQo+ICB2b2lkIGludGVsX2Rpc2FibGVfcGxh bmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiAgCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gQEAgLTM1MSwyNSArMzQxLDkgQEAgdm9pZCBz a2xfdXBkYXRlX3BsYW5lc19vbl9jcnRjKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAo+ICAJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlID0KPiAgCQkJ aW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKPiAgCj4gLQkJ aWYgKG5ld19wbGFuZV9zdGF0ZS0+dWFwaS52aXNpYmxlKSB7Cj4gKwkJaWYgKG5ld19wbGFuZV9z dGF0ZS0+dWFwaS52aXNpYmxlIHx8Cj4gKwkJICAgIG5ld19wbGFuZV9zdGF0ZS0+cGxhbmFyX3Ns YXZlKSB7Cj4gIAkJCWludGVsX3VwZGF0ZV9wbGFuZShwbGFuZSwgbmV3X2NydGNfc3RhdGUsIG5l d19wbGFuZV9zdGF0ZSk7Cj4gLQkJfSBlbHNlIGlmIChuZXdfcGxhbmVfc3RhdGUtPnBsYW5hcl9z bGF2ZSkgewo+IC0JCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKm1hc3RlciA9Cj4gLQkJCQluZXdfcGxh bmVfc3RhdGUtPnBsYW5hcl9saW5rZWRfcGxhbmU7Cj4gLQo+IC0JCQkvKgo+IC0JCQkgKiBXZSB1 cGRhdGUgdGhlIHNsYXZlIHBsYW5lIGZyb20gdGhpcyBmdW5jdGlvbiBiZWNhdXNlCj4gLQkJCSAq IHByb2dyYW1taW5nIGl0IGZyb20gdGhlIG1hc3RlciBwbGFuZSdzIHVwZGF0ZV9wbGFuZQo+IC0J CQkgKiBjYWxsYmFjayBydW5zIGludG8gaXNzdWVzIHdoZW4gdGhlIFkgcGxhbmUgaXMKPiAtCQkJ ICogcmVhc3NpZ25lZCwgZGlzYWJsZWQgb3IgdXNlZCBieSBhIGRpZmZlcmVudCBwbGFuZS4KPiAt CQkJICoKPiAtCQkJICogVGhlIHNsYXZlIHBsYW5lIGlzIHVwZGF0ZWQgd2l0aCB0aGUgbWFzdGVy IHBsYW5lJ3MKPiAtCQkJICogcGxhbmVfc3RhdGUuCj4gLQkJCSAqLwo+IC0JCQluZXdfcGxhbmVf c3RhdGUgPQo+IC0JCQkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsIG1h c3Rlcik7Cj4gLQo+IC0JCQlpbnRlbF91cGRhdGVfc2xhdmUocGxhbmUsIG5ld19jcnRjX3N0YXRl LCBuZXdfcGxhbmVfc3RhdGUpOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCWludGVsX2Rpc2FibGVfcGxh bmUocGxhbmUsIG5ld19jcnRjX3N0YXRlKTsKPiAgCQl9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5oCj4gaW5kZXggMTIzNDA0YTljZjIz Li43MjZlY2VjZDZhYmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9hdG9taWNfcGxhbmUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYXRvbWljX3BsYW5lLmgKPiBAQCAtMjUsOSArMjUsNiBAQCB2b2lkIGludGVsX3Bs YW5lX2NvcHlfdWFwaV90b19od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5l X3N0YXRlLAo+ICB2b2lkIGludGVsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lLAo+ICAJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAg CQkJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gLXZvaWQg aW50ZWxfdXBkYXRlX3NsYXZlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gLQkJCWNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+IC0JCQljb25zdCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKPiAgdm9pZCBpbnRlbF9kaXNhYmxlX3Bs YW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIHN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxh bmVfYWxsb2Modm9pZCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k aXNwbGF5LmMKPiBpbmRleCA0OTBmMDkyNjRjN2YuLmU1MWNiZjZiNDE1OSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTExOTExLDYg KzExOTExLDI0IEBAIHN0YXRpYyBpbnQgaWNsX2NoZWNrX252MTJfcGxhbmVzKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMg fD0gQklUKGxpbmtlZC0+aWQpOwo+ICAJCWNydGNfc3RhdGUtPnVwZGF0ZV9wbGFuZXMgfD0gQklU KGxpbmtlZC0+aWQpOwo+ICAJCURSTV9ERUJVR19LTVMoIlVzaW5nICVzIGFzIFkgcGxhbmUgZm9y ICVzXG4iLCBsaW5rZWQtPmJhc2UubmFtZSwgcGxhbmUtPmJhc2UubmFtZSk7Cj4gKwo+ICsJCS8q IENvcHkgcGFyYW1ldGVycyB0byBzbGF2ZSBwbGFuZSAqLwo+ICsJCWxpbmtlZF9zdGF0ZS0+Y3Rs ID0gcGxhbmVfc3RhdGUtPmN0bCB8IFBMQU5FX0NUTF9ZVVY0MjBfWV9QTEFORTsKPiArCQlsaW5r ZWRfc3RhdGUtPmNvbG9yX2N0bCA9IHBsYW5lX3N0YXRlLT5jb2xvcl9jdGw7Cj4gKwkJbGlua2Vk X3N0YXRlLT5jb2xvcl9wbGFuZVswXSA9IHBsYW5lX3N0YXRlLT5jb2xvcl9wbGFuZVswXTsKPiAr Cj4gKwkJaW50ZWxfcGxhbmVfY29weV91YXBpX3RvX2h3X3N0YXRlKGxpbmtlZF9zdGF0ZSwgcGxh bmVfc3RhdGUpOwo+ICsJCWxpbmtlZF9zdGF0ZS0+dWFwaS5zcmMgPSBwbGFuZV9zdGF0ZS0+dWFw aS5zcmM7Cj4gKwkJbGlua2VkX3N0YXRlLT51YXBpLmRzdCA9IHBsYW5lX3N0YXRlLT51YXBpLmRz dDsKPiArCj4gKwkJaWYgKGljbF9pc19oZHJfcGxhbmUoZGV2X3ByaXYsIHBsYW5lLT5pZCkpIHsK PiArCQkJaWYgKGxpbmtlZC0+aWQgPT0gUExBTkVfU1BSSVRFNSkKPiArCQkJCXBsYW5lX3N0YXRl LT5jdXNfY3RsIHw9IFBMQU5FX0NVU19QTEFORV83Owo+ICsJCQllbHNlIGlmIChsaW5rZWQtPmlk ID09IFBMQU5FX1NQUklURTQpCj4gKwkJCQlwbGFuZV9zdGF0ZS0+Y3VzX2N0bCB8PSBQTEFORV9D VVNfUExBTkVfNjsKPiArCQkJZWxzZQo+ICsJCQkJTUlTU0lOR19DQVNFKGxpbmtlZC0+aWQpOwo+ ICsJCX0KClRoYXQgc3R1ZmYgbG9va3MgbGlrZSBpdCBkZXNlcnZlcyBhIGZ1bmN0aW9uIG9mIGl0 cyBvd24uIEFsc28gYSBiaXQKYW5ub3lpbmcgdG8gY29weSBpZiBwaWVjZW1lYWwgbGlrZSB0aGF0 LiBJIGd1ZXNzIGRvbid0IGhhdmUgYQpjb252ZW5pZW50IHdheSB0byBqdXN0IGNvcHkgdGhlIHdo b2xlIHRoaW5nIGluIG9uZSBnby4KClRoZSB1c2Ugb2YgaW50ZWxfcGxhbmVfY29weV91YXBpX3Rv X2h3X3N0YXRlKCkgYWxzbyBzZWVtcyB3cm9uZwpmb3IgdGhlIGJpZ2pvaW5lciBzbGF2ZSBjYXNl LiBTaG91bGRuJ3Qgd2UganVzdCBjb3B5IHRoZSBodyBzdGF0ZQphbmQgaWdub3JlIHVhcGkgc3Rh dGUgaGVyZSBlbnRpcmVseT8KCj4gIAl9Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiBpbmRleCBh MzhkMGYyMGVmMmIuLmZmNDgxYWYyYjI0YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gQEAgLTU1NSw2ICs1NTUsOSBA QCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgewo+ICAJLyogcGxhbmUgY29sb3IgY29udHJvbCBy ZWdpc3RlciAqLwo+ICAJdTMyIGNvbG9yX2N0bDsKPiAgCj4gKwkvKiBjaHJvbWEgdXBzYW1wbGVy IGNvbnRyb2wgcmVnaXN0ZXIgKi8KPiArCXUzMiBjdXNfY3RsOwo+ICsKPiAgCS8qCj4gIAkgKiBz Y2FsZXJfaWQKPiAgCSAqICAgID0gLTEgOiBub3QgdXNpbmcgYSBzY2FsZXIKPiBAQCAtMTExMiw5 ICsxMTE1LDYgQEAgc3RydWN0IGludGVsX3BsYW5lIHsKPiAgCXZvaWQgKCp1cGRhdGVfcGxhbmUp KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gLQl2b2lkICgqdXBkYXRlX3NsYXZlKShzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lLAo+IC0JCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+IC0JCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGUpOwo+ICAJdm9pZCAoKmRpc2FibGVfcGxhbmUpKHN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUsCj4gIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKTsKPiAgCWJvb2wgKCpnZXRfaHdfc3RhdGUpKHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsIGVudW0gcGlwZSAqcGlwZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX3Nwcml0ZS5jCj4gaW5kZXggMDBmODNkMzdhYmNmLi4wMDM2Y2E2YzFhYmEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9zcHJpdGUuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfc3ByaXRlLmMKPiBAQCAtNTI2 LDcgKzUyNiw3IEBAIHN0YXRpYyB2b2lkCj4gIHNrbF9wcm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUsCj4gIAkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKPiAgCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUsCj4gLQkJICBpbnQgY29sb3JfcGxhbmUsIGJvb2wgc2xhdmUsIHUzMiBwbGFuZV9jdGwpCj4g KwkJICBpbnQgY29sb3JfcGxhbmUpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiAgCWVudW0gcGxhbmVfaWQgcGxh bmVfaWQgPSBwbGFuZS0+aWQ7Cj4gQEAgLTU0MSwxMiArNTQxLDEyIEBAIHNrbF9wcm9ncmFtX3Bs YW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAl1MzIgeSA9IHBsYW5lX3N0YXRlLT5j b2xvcl9wbGFuZVtjb2xvcl9wbGFuZV0ueTsKPiAgCXUzMiBzcmNfdyA9IGRybV9yZWN0X3dpZHRo KCZwbGFuZV9zdGF0ZS0+dWFwaS5zcmMpID4+IDE2Owo+ICAJdTMyIHNyY19oID0gZHJtX3JlY3Rf aGVpZ2h0KCZwbGFuZV9zdGF0ZS0+dWFwaS5zcmMpID4+IDE2Owo+IC0Jc3RydWN0IGludGVsX3Bs YW5lICpsaW5rZWQgPSBwbGFuZV9zdGF0ZS0+cGxhbmFyX2xpbmtlZF9wbGFuZTsKPiAgCWNvbnN0 IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmh3LmZiOwo+ICAJdTgg YWxwaGEgPSBwbGFuZV9zdGF0ZS0+aHcuYWxwaGEgPj4gODsKPiAgCXUzMiBwbGFuZV9jb2xvcl9j dGwgPSAwOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFnczsKPiAgCXUzMiBrZXltc2ssIGtleW1h eDsKPiArCXUzMiBwbGFuZV9jdGwgPSBwbGFuZV9zdGF0ZS0+Y3RsOwo+ICAKPiAgCXBsYW5lX2N0 bCB8PSBza2xfcGxhbmVfY3RsX2NydGMoY3J0Y19zdGF0ZSk7Cj4gIAo+IEBAIC01NzgsMjYgKzU3 OCw4IEBAIHNrbF9wcm9ncmFtX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gIAlJ OTE1X1dSSVRFX0ZXKFBMQU5FX0FVWF9ESVNUKHBpcGUsIHBsYW5lX2lkKSwKPiAgCQkgICAgICAo cGxhbmVfc3RhdGUtPmNvbG9yX3BsYW5lWzFdLm9mZnNldCAtIHN1cmZfYWRkcikgfCBhdXhfc3Ry aWRlKTsKPiAgCj4gLQlpZiAoaWNsX2lzX2hkcl9wbGFuZShkZXZfcHJpdiwgcGxhbmVfaWQpKSB7 Cj4gLQkJdTMyIGN1c19jdGwgPSAwOwo+IC0KPiAtCQlpZiAobGlua2VkKSB7Cj4gLQkJCS8qIEVu YWJsZSBhbmQgdXNlIE1QRUctMiBjaHJvbWEgc2l0aW5nICovCj4gLQkJCWN1c19jdGwgPSBQTEFO RV9DVVNfRU5BQkxFIHwKPiAtCQkJCVBMQU5FX0NVU19IUEhBU0VfMCB8Cj4gLQkJCQlQTEFORV9D VVNfVlBIQVNFX1NJR05fTkVHQVRJVkUgfAo+IC0JCQkJUExBTkVfQ1VTX1ZQSEFTRV8wXzI1Owo+ IC0KPiAtCQkJaWYgKGxpbmtlZC0+aWQgPT0gUExBTkVfU1BSSVRFNSkKPiAtCQkJCWN1c19jdGwg fD0gUExBTkVfQ1VTX1BMQU5FXzc7Cj4gLQkJCWVsc2UgaWYgKGxpbmtlZC0+aWQgPT0gUExBTkVf U1BSSVRFNCkKPiAtCQkJCWN1c19jdGwgfD0gUExBTkVfQ1VTX1BMQU5FXzY7Cj4gLQkJCWVsc2UK PiAtCQkJCU1JU1NJTkdfQ0FTRShsaW5rZWQtPmlkKTsKPiAtCQl9Cj4gLQo+IC0JCUk5MTVfV1JJ VEVfRlcoUExBTkVfQ1VTX0NUTChwaXBlLCBwbGFuZV9pZCksIGN1c19jdGwpOwo+IC0JfQo+ICsJ aWYgKGljbF9pc19oZHJfcGxhbmUoZGV2X3ByaXYsIHBsYW5lX2lkKSkKPiArCQlJOTE1X1dSSVRF X0ZXKFBMQU5FX0NVU19DVEwocGlwZSwgcGxhbmVfaWQpLCBwbGFuZV9zdGF0ZS0+Y3VzX2N0bCk7 Cj4gIAo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShk ZXZfcHJpdikpCj4gIAkJSTkxNV9XUklURV9GVyhQTEFORV9DT0xPUl9DVEwocGlwZSwgcGxhbmVf aWQpLCBwbGFuZV9jb2xvcl9jdGwpOwo+IEBAIC02MjcsNyArNjA5LDcgQEAgc2tsX3Byb2dyYW1f cGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiAgCUk5MTVfV1JJVEVfRlcoUExBTkVf U1VSRihwaXBlLCBwbGFuZV9pZCksCj4gIAkJICAgICAgaW50ZWxfcGxhbmVfZ2d0dF9vZmZzZXQo cGxhbmVfc3RhdGUpICsgc3VyZl9hZGRyKTsKPiAgCj4gLQlpZiAoIXNsYXZlICYmIHBsYW5lX3N0 YXRlLT5zY2FsZXJfaWQgPj0gMCkKPiArCWlmIChwbGFuZV9zdGF0ZS0+c2NhbGVyX2lkID49IDAp Cj4gIAkJc2tsX3Byb2dyYW1fc2NhbGVyKHBsYW5lLCBjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7 Cj4gIAo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBp cnFmbGFncyk7Cj4gQEAgLTY0MCwyNCArNjIyLDEyIEBAIHNrbF91cGRhdGVfcGxhbmUoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSwKPiAgewo+ICAJaW50IGNvbG9yX3BsYW5lID0gMDsKPiAgCj4g LQlpZiAocGxhbmVfc3RhdGUtPnBsYW5hcl9saW5rZWRfcGxhbmUpIHsKPiAtCQkvKiBQcm9ncmFt IHRoZSBVViBwbGFuZSAqLwo+ICsJaWYgKHBsYW5lX3N0YXRlLT5wbGFuYXJfbGlua2VkX3BsYW5l ICYmICFwbGFuZV9zdGF0ZS0+cGxhbmFyX3NsYXZlKQo+ICsJCS8qIFByb2dyYW0gdGhlIFVWIHBs YW5lIG9uIHBsYW5hciBtYXN0ZXIgKi8KPiAgCQljb2xvcl9wbGFuZSA9IDE7Cj4gLQl9Cj4gLQo+ IC0Jc2tsX3Byb2dyYW1fcGxhbmUocGxhbmUsIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlLAo+IC0J CQkgIGNvbG9yX3BsYW5lLCBmYWxzZSwgcGxhbmVfc3RhdGUtPmN0bCk7Cj4gLX0KPiAgCj4gLXN0 YXRpYyB2b2lkCj4gLWljbF91cGRhdGVfc2xhdmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwK PiAtCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gLQkJIGNv bnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gLXsKPiAtCXNrbF9w cm9ncmFtX3BsYW5lKHBsYW5lLCBjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSwgMCwgdHJ1ZSwKPiAt CQkJICBwbGFuZV9zdGF0ZS0+Y3RsIHwgUExBTkVfQ1RMX1lVVjQyMF9ZX1BMQU5FKTsKPiArCXNr bF9wcm9ncmFtX3BsYW5lKHBsYW5lLCBjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSwgY29sb3JfcGxh bmUpOwo+ICB9Cj4gLQo+ICBzdGF0aWMgdm9pZAo+ICBza2xfZGlzYWJsZV9wbGFuZShzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lLAo+ICAJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gQEAgLTE4NDQsNiArMTgxNCwxNSBAQCBzdGF0aWMgaW50IHNrbF9wbGFu ZV9jaGVjayhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQlwbGFuZV9z dGF0ZS0+Y29sb3JfY3RsID0gZ2xrX3BsYW5lX2NvbG9yX2N0bChjcnRjX3N0YXRlLAo+ICAJCQkJ CQkJICAgICBwbGFuZV9zdGF0ZSk7Cj4gIAo+ICsJaWYgKGRybV9mb3JtYXRfaW5mb19pc195dXZf c2VtaXBsYW5hcihmYi0+Zm9ybWF0KSAmJgo+ICsJICAgIGljbF9pc19oZHJfcGxhbmUoZGV2X3By aXYsIHBsYW5lLT5pZCkpCj4gKwkJLyogRW5hYmxlIGFuZCB1c2UgTVBFRy0yIGNocm9tYSBzaXRp bmcgKi8KPiArCQlwbGFuZV9zdGF0ZS0+Y3VzX2N0bCA9IFBMQU5FX0NVU19FTkFCTEUgfAo+ICsJ CQlQTEFORV9DVVNfSFBIQVNFXzAgfAo+ICsJCQlQTEFORV9DVVNfVlBIQVNFX1NJR05fTkVHQVRJ VkUgfCBQTEFORV9DVVNfVlBIQVNFXzBfMjU7Cj4gKwllbHNlCj4gKwkJcGxhbmVfc3RhdGUtPmN1 c19jdGwgPSAwOwo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC0yNTEyLDggKzI0OTEs NiBAQCBza2xfdW5pdmVyc2FsX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAlwbGFuZS0+ZGlzYWJsZV9wbGFuZSA9IHNrbF9kaXNhYmxlX3BsYW5lOwo+ ICAJcGxhbmUtPmdldF9od19zdGF0ZSA9IHNrbF9wbGFuZV9nZXRfaHdfc3RhdGU7Cj4gIAlwbGFu ZS0+Y2hlY2tfcGxhbmUgPSBza2xfcGxhbmVfY2hlY2s7Cj4gLQlpZiAoaWNsX2lzX252MTJfeV9w bGFuZShwbGFuZV9pZCkpCj4gLQkJcGxhbmUtPnVwZGF0ZV9zbGF2ZSA9IGljbF91cGRhdGVfc2xh dmU7Cj4gIAo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCj4gIAkJZm9ybWF0cyA9 IGljbF9nZXRfcGxhbmVfZm9ybWF0cyhkZXZfcHJpdiwgcGlwZSwKPiAtLSAKPiAyLjIzLjAKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4