From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [CI 4/4] drm/i915: Skip modeset for cdclk changes if possible Date: Fri, 22 Mar 2019 22:23:07 +0200 Message-ID: <20190322202307.GA30220@ideak-desk.fi.intel.com> References: <20190320135439.12201-1-imre.deak@intel.com> <20190320135439.12201-4-imre.deak@intel.com> <5b9e188f-c9e7-9429-7728-69d7b220e1de@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3A9C76E3BA for ; Fri, 22 Mar 2019 20:23:20 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5b9e188f-c9e7-9429-7728-69d7b220e1de@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Clinton Taylor Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBNYXIgMjEsIDIwMTkgYXQgMDI6NTM6MDBQTSAtMDcwMCwgQ2xpbnRvbiBUYXlsb3Ig d3JvdGU6Cj4gCj4gT24gMy8yMC8xOSA2OjU0IEFNLCBJbXJlIERlYWsgd3JvdGU6Cj4gPiBGcm9t OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gCj4g PiBJZiB3ZSBoYXZlIG9ubHkgYSBzaW5nbGUgYWN0aXZlIHBpcGUgYW5kIHRoZSBjZGNsayBjaGFu Z2Ugb25seSByZXF1aXJlcwo+ID4gdGhlIGNkMnggZGl2aWRlciB0byBiZSB1cGRhdGVkIGJ4dCsg Y2FuIGRvIHRoZSB1cGRhdGUgd2l0aCBmb3JjaW5nIGEgZnVsbAo+ID4gbW9kZXNldCBvbiB0aGUg cGlwZS4gVHJ5IHRvIGhvb2sgdGhhdCB1cC4KPiA+IAo+ID4gdjI6Cj4gPiAtIFdhaXQgZm9yIHZi bGFuayBhZnRlciBhbiBvcHRpbWl6ZWQgQ0RDTEsgY2hhbmdlLgo+ID4gLSBBdm9pZCBvcHRpbWl6 YXRpb24gaWYgdGhlIHBpcGUgbmVlZHMgYSBtb2Rlc2V0IChvciB3YXMgZGlzYWJsZWQpLgo+ID4g LSBTcGxpdCBDRENMSyBjaGFuZ2UgdG8gYSBwcmUvcG9zdCBwbGFuZSB1cGRhdGUgc3RlcC4KPiA+ IHYzOgo+ID4gLSBVc2UgY29ycmVjdCB2ZXJzaW9uIG9mIENEQ0xLIHN0YXRlIGFzIG9sZCBzdGF0 ZS4gKFZpbGxlKQo+ID4gLSBSZW1vdmUgdW51c2VkIGludGVsX2NkY2xrX2Nhbl9za2lwX21vZGVz ZXQoKQo+ID4gdjQ6Cj4gPiAtIEZvciBjb25zaXN0ZW5jeSBjYWxsIGludGVsX3NldF9jZGNsa19w b3N0X3BsYW5lX3VwZGF0ZSgpIG9ubHkgZHVyaW5nCj4gPiAgICBtb2Rlc2V0cyAoYW5kIG5vdCBm YXN0c2V0cykuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBBYmhheSBLdW1hciA8 YWJoYXkua3VtYXJAaW50ZWwuY29tPgo+ID4gVGVzdGVkLWJ5OiBBYmhheSBLdW1hciA8YWJoYXku a3VtYXJAaW50ZWwuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtA aW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICB8ICAgMyArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAg fCAgIDMgKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyAgIHwgMTQy ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICA0MiArKysrKysrKysrLQo+ID4gICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMTcgKysrKy0KPiA+ICAgNSBmaWxlcyBjaGFu Z2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggNmIxMGNlZTRlNzdmLi5kOGY5MTUyNWM5NGMgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMjc3LDcgKzI3Nyw4IEBAIHN0cnVj dCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKPiA+ICAgCXZvaWQgKCpnZXRfY2RjbGspKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAgCQkJICBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKmNkY2xrX3N0YXRlKTsKPiA+ICAgCXZvaWQgKCpzZXRfY2RjbGspKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+IC0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpOwo+ID4gKwkJCSAgY29uc3Qgc3RydWN0IGludGVsX2Nk Y2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiA+ICsJCQkgIGVudW0gcGlwZSBwaXBlKTsKPiA+ICAg CWludCAoKmdldF9maWZvX3NpemUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiA+ICAgCQkJICAgICBlbnVtIGk5eHhfcGxhbmVfaWQgaTl4eF9wbGFuZSk7Cj4gPiAgIAlpbnQg KCpjb21wdXRlX3BpcGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gPiBpbmRleCA5YjY5Y2VjMjFmN2IuLjEyYjgxNzBjZWQ5 NiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IEBAIC05NTIxLDcgKzk1MjEs OCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPiA+ICAgI2RlZmluZSAgQlhUX0NEQ0xLX0NEMlhf UElQRShwaXBlKQkoKHBpcGUpIDw8IDIwKQo+ID4gICAjZGVmaW5lICBDRENMS19ESVZNVVhfQ0Rf T1ZFUlJJREUJKDEgPDwgMTkpCj4gPiAgICNkZWZpbmUgIEJYVF9DRENMS19DRDJYX1BJUEVfTk9O RQlCWFRfQ0RDTEtfQ0QyWF9QSVBFKDMpCj4gPiAtI2RlZmluZSAgSUNMX0NEQ0xLX0NEMlhfUElQ RV9OT05FCSg3IDw8IDE5KQo+ID4gKyNkZWZpbmUgIElDTF9DRENMS19DRDJYX1BJUEUocGlwZSkJ KChwaXBlKSA8PCAxOSkKPiAKPiBVbmZvcnR1bmF0ZWx5IGJpdHMgMjE6MTkgb2YgQ0RDTEtfQ1RM IGRvbid0IG1hdGNoIHRoZSBwaXBlIGVudW0uIFRoaXMgTUFDUk8KPiB3aWxsIG5vdCB3b3JrIGV4 Y2VwdCBmb3IgUElQRV9BLgo+IAo+IFBpcGVfQSBpcyAweDAwLCBQSVBFX0IgaXMgMHgwMiwgUElQ RV9DIGlzIDB4MDYuCgpHb29kIGNhdGNoLgoKVGhlIHBpcGUgQiBhbmQgQyBlbmNvZGluZ3MgY291 bGQgYmUgdHlwb2VkIHRob3VnaCBhbmQgSSBjb3VsZG4ndCB0cmlnZ2VyCmFueSBwcm9ibGVtcyB3 aXRoIGVpdGhlciBlbmNvZGluZ3MgKGkuZS4gdXNpbmcgZWl0aGVyIDB4MSBvciAweDIgZm9yCnBp cGUgQiB1cGRhdGVzIHdoaWxlIHBpcGUgQiB3YXMgdGhlIG9ubHkgcGlwZSBlbmFibGVkKS4gU28g SSBvcGVuZWQgYQp0aWNrZXQgZm9yIHRoaXMgaW4gQlNwZWMsIGxldCdzIHdhaXQgZm9yIGEgY2xh cmlmaWNhdGlvbiBvbiB0aGlzLgoKPiBJbiBCWFQgb25seSBiaXRzIDIxOjIwIHdlcmUgdXNlZCBm b3IgQ0QyWCBwaXBlIHNlbGVjdCBhbmQgdGhlIHBpcGUgZW51bSBkb2VzCj4gd29yay4KPiAKPiAK PiAtQ2xpbnQKPiAKPiAKPiAKPiA+ICsjZGVmaW5lICBJQ0xfQ0RDTEtfQ0QyWF9QSVBFX05PTkUJ SUNMX0NEQ0xLX0NEMlhfUElQRSg3KQo+ID4gICAjZGVmaW5lICBCWFRfQ0RDTEtfU1NBX1BSRUNI QVJHRV9FTkFCTEUJKDEgPDwgMTYpCj4gPiAgICNkZWZpbmUgIENEQ0xLX0ZSRVFfREVDSU1BTF9N QVNLCSgweDdmZikKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j ZGNsay5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+ID4gaW5kZXggNWMy NTYyNmY4Y2YwLi40OGNjNDJhN2VmNGYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jZGNsay5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j ZGNsay5jCj4gPiBAQCAtNTE2LDcgKzUxNiw4IEBAIHN0YXRpYyB2b2lkIHZsdl9wcm9ncmFtX3Bm aV9jcmVkaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAgfQo+ID4g ICBzdGF0aWMgdm9pZCB2bHZfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+IC0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3Rh dGUpCj4gPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRl LAo+ID4gKwkJCSAgZW51bSBwaXBlIHBpcGUpCj4gPiAgIHsKPiA+ICAgCWludCBjZGNsayA9IGNk Y2xrX3N0YXRlLT5jZGNsazsKPiA+ICAgCXUzMiB2YWwsIGNtZCA9IGNkY2xrX3N0YXRlLT52b2x0 YWdlX2xldmVsOwo+ID4gQEAgLTU5OCw3ICs1OTksOCBAQCBzdGF0aWMgdm9pZCB2bHZfc2V0X2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAgfQo+ID4gICBzdGF0 aWMgdm9pZCBjaHZfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiA+IC0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4g PiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAo+ID4g KwkJCSAgZW51bSBwaXBlIHBpcGUpCj4gPiAgIHsKPiA+ICAgCWludCBjZGNsayA9IGNkY2xrX3N0 YXRlLT5jZGNsazsKPiA+ICAgCXUzMiB2YWwsIGNtZCA9IGNkY2xrX3N0YXRlLT52b2x0YWdlX2xl dmVsOwo+ID4gQEAgLTY5Nyw3ICs2OTksOCBAQCBzdGF0aWMgdm9pZCBiZHdfZ2V0X2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAgfQo+ID4gICBzdGF0aWMgdm9p ZCBiZHdfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+IC0J CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4gPiArCQkJ ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAo+ID4gKwkJCSAg ZW51bSBwaXBlIHBpcGUpCj4gPiAgIHsKPiA+ICAgCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5j ZGNsazsKPiA+ICAgCXUzMiB2YWw7Cj4gPiBAQCAtOTg3LDcgKzk5MCw4IEBAIHN0YXRpYyB2b2lk IHNrbF9kcGxsMF9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ ICAgfQo+ID4gICBzdGF0aWMgdm9pZCBza2xfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiA+IC0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAq Y2RjbGtfc3RhdGUpCj4gPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNk Y2xrX3N0YXRlLAo+ID4gKwkJCSAgZW51bSBwaXBlIHBpcGUpCj4gPiAgIHsKPiA+ICAgCWludCBj ZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKPiA+ICAgCWludCB2Y28gPSBjZGNsa19zdGF0ZS0+ dmNvOwo+ID4gQEAgLTExNTgsNyArMTE2Miw3IEBAIHZvaWQgc2tsX2luaXRfY2RjbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gICAJY2RjbGtfc3RhdGUuY2RjbGsgPSBz a2xfY2FsY19jZGNsaygwLCBjZGNsa19zdGF0ZS52Y28pOwo+ID4gICAJY2RjbGtfc3RhdGUudm9s dGFnZV9sZXZlbCA9IHNrbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwo+ ID4gLQlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUpOwo+ID4gKwlza2xfc2V0 X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURfUElQRSk7Cj4gPiAgIH0KPiA+ ICAgLyoqCj4gPiBAQCAtMTE3Niw3ICsxMTgwLDcgQEAgdm9pZCBza2xfdW5pbml0X2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAgCWNkY2xrX3N0YXRlLnZjbyA9 IDA7Cj4gPiAgIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gc2tsX2NhbGNfdm9sdGFnZV9s ZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7Cj4gPiAtCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZj ZGNsa19zdGF0ZSk7Cj4gPiArCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwg SU5WQUxJRF9QSVBFKTsKPiA+ICAgfQo+ID4gICBzdGF0aWMgaW50IGJ4dF9jYWxjX2NkY2xrKGlu dCBtaW5fY2RjbGspCj4gPiBAQCAtMTM1NSw3ICsxMzU5LDggQEAgc3RhdGljIHZvaWQgYnh0X2Rl X3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmNvKQo+ ID4gICB9Cj4gPiAgIHN0YXRpYyB2b2lkIGJ4dF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ID4gLQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRl ICpjZGNsa19zdGF0ZSkKPiA+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAq Y2RjbGtfc3RhdGUsCj4gPiArCQkJICBlbnVtIHBpcGUgcGlwZSkKPiA+ICAgewo+ID4gICAJaW50 IGNkY2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwo+ID4gICAJaW50IHZjbyA9IGNkY2xrX3N0YXRl LT52Y287Cj4gPiBAQCAtMTQwOCwxMSArMTQxMywxMCBAQCBzdGF0aWMgdm9pZCBieHRfc2V0X2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAgCQlieHRfZGVfcGxs X2VuYWJsZShkZXZfcHJpdiwgdmNvKTsKPiA+ICAgCXZhbCA9IGRpdmlkZXIgfCBza2xfY2RjbGtf ZGVjaW1hbChjZGNsayk7Cj4gPiAtCS8qCj4gPiAtCSAqIEZJWE1FIGlmIG9ubHkgdGhlIGNkMngg ZGl2aWRlciBuZWVkcyBjaGFuZ2luZywgaXQgY291bGQgYmUgZG9uZQo+ID4gLQkgKiB3aXRob3V0 IHNodXR0aW5nIG9mZiB0aGUgcGlwZSAoaWYgb25seSBvbmUgcGlwZSBpcyBhY3RpdmUpLgo+ID4g LQkgKi8KPiA+IC0JdmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEVfTk9ORTsKPiA+ICsJaWYgKHBp cGUgPT0gSU5WQUxJRF9QSVBFKQo+ID4gKwkJdmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEVfTk9O RTsKPiA+ICsJZWxzZQo+ID4gKwkJdmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEUocGlwZSk7Cj4g PiAgIAkvKgo+ID4gICAJICogRGlzYWJsZSBTU0EgUHJlY2hhcmdlIHdoZW4gQ0QgY2xvY2sgZnJl cXVlbmN5IDwgNTAwIE1IeiwKPiA+ICAgCSAqIGVuYWJsZSBvdGhlcndpc2UuCj4gPiBAQCAtMTQy MSw2ICsxNDI1LDkgQEAgc3RhdGljIHZvaWQgYnh0X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgIAkJdmFsIHw9IEJYVF9DRENMS19TU0FfUFJFQ0hBUkdF X0VOQUJMRTsKPiA+ICAgCUk5MTVfV1JJVEUoQ0RDTEtfQ1RMLCB2YWwpOwo+ID4gKwlpZiAocGlw ZSAhPSBJTlZBTElEX1BJUEUpCj4gPiArCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYs IHBpcGUpOwo+ID4gKwo+ID4gICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBjdV9sb2NrKTsKPiA+ ICAgCS8qCj4gPiAgIAkgKiBUaGUgdGltZW91dCBpc24ndCBzcGVjaWZpZWQsIHRoZSAybXMgdXNl ZCBoZXJlIGlzIGJhc2VkIG9uCj4gPiBAQCAtMTUyNSw3ICsxNTMyLDcgQEAgdm9pZCBieHRfaW5p dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgIAl9Cj4gPiAg IAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gYnh0X2NhbGNfdm9sdGFnZV9sZXZlbChjZGNs a19zdGF0ZS5jZGNsayk7Cj4gPiAtCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0 ZSk7Cj4gPiArCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9Q SVBFKTsKPiA+ICAgfQo+ID4gICAvKioKPiA+IEBAIC0xNTQzLDcgKzE1NTAsNyBAQCB2b2lkIGJ4 dF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gICAJ Y2RjbGtfc3RhdGUudmNvID0gMDsKPiA+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBi eHRfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiA+IC0JYnh0X3NldF9j ZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKPiA+ICsJYnh0X3NldF9jZGNsayhkZXZfcHJp diwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwo+ID4gICB9Cj4gPiAgIHN0YXRpYyBpbnQg Y25sX2NhbGNfY2RjbGsoaW50IG1pbl9jZGNsaykKPiA+IEBAIC0xNjYzLDcgKzE2NzAsOCBAQCBz dGF0aWMgdm9pZCBjbmxfY2RjbGtfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGludCB2Y28pCj4gPiAgIH0KPiA+ICAgc3RhdGljIHZvaWQgY25sX3NldF9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAtCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ID4gKwkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiA+ICsJCQkgIGVudW0gcGlwZSBwaXBl KQo+ID4gICB7Cj4gPiAgIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7Cj4gPiAgIAlp bnQgdmNvID0gY2RjbGtfc3RhdGUtPnZjbzsKPiA+IEBAIC0xNzA0LDEzICsxNzEyLDE1IEBAIHN0 YXRpYyB2b2lkIGNubF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gICAJCWNubF9jZGNsa19wbGxfZW5hYmxlKGRldl9wcml2LCB2Y28pOwo+ID4gICAJdmFs ID0gZGl2aWRlciB8IHNrbF9jZGNsa19kZWNpbWFsKGNkY2xrKTsKPiA+IC0JLyoKPiA+IC0JICog RklYTUUgaWYgb25seSB0aGUgY2QyeCBkaXZpZGVyIG5lZWRzIGNoYW5naW5nLCBpdCBjb3VsZCBi ZSBkb25lCj4gPiAtCSAqIHdpdGhvdXQgc2h1dHRpbmcgb2ZmIHRoZSBwaXBlIChpZiBvbmx5IG9u ZSBwaXBlIGlzIGFjdGl2ZSkuCj4gPiAtCSAqLwo+ID4gLQl2YWwgfD0gQlhUX0NEQ0xLX0NEMlhf UElQRV9OT05FOwo+ID4gKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpCj4gPiArCQl2YWwgfD0g QlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FOwo+ID4gKwllbHNlCj4gPiArCQl2YWwgfD0gQlhUX0NE Q0xLX0NEMlhfUElQRShwaXBlKTsKPiA+ICAgCUk5MTVfV1JJVEUoQ0RDTEtfQ1RMLCB2YWwpOwo+ ID4gKwlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUpCj4gPiArCQlpbnRlbF93YWl0X2Zvcl92Ymxh bmsoZGV2X3ByaXYsIHBpcGUpOwo+ID4gKwo+ID4gICAJLyogaW5mb3JtIFBDVSBvZiB0aGUgY2hh bmdlICovCj4gPiAgIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cGN1X2xvY2spOwo+ID4gICAJc2Fu ZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIFNLTF9QQ09ERV9DRENMS19DT05UUk9MLAo+ ID4gQEAgLTE4NDcsMTAgKzE4NTcsMTIgQEAgc3RhdGljIGludCBpY2xfY2FsY19jZGNsa19wbGxf dmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IGNkY2xrKQo+ID4gICB9 Cj4gPiAgIHN0YXRpYyB2b2lkIGljbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ID4gLQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNs a19zdGF0ZSkKPiA+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtf c3RhdGUsCj4gPiArCQkJICBlbnVtIHBpcGUgcGlwZSkKPiA+ICAgewo+ID4gICAJdW5zaWduZWQg aW50IGNkY2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwo+ID4gICAJdW5zaWduZWQgaW50IHZjbyA9 IGNkY2xrX3N0YXRlLT52Y287Cj4gPiArCXUzMiB2YWw7Cj4gPiAgIAlpbnQgcmV0Owo+ID4gICAJ bXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBjdV9sb2NrKTsKPiA+IEBAIC0xODcyLDggKzE4ODQsMTUg QEAgc3RhdGljIHZvaWQgaWNsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiAgIAlpZiAoZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyAhPSB2Y28pCj4gPiAgIAkJ Y25sX2NkY2xrX3BsbF9lbmFibGUoZGV2X3ByaXYsIHZjbyk7Cj4gPiAtCUk5MTVfV1JJVEUoQ0RD TEtfQ1RMLCBJQ0xfQ0RDTEtfQ0QyWF9QSVBFX05PTkUgfAo+ID4gLQkJCSAgICAgIHNrbF9jZGNs a19kZWNpbWFsKGNkY2xrKSk7Cj4gPiArCXZhbCA9IHNrbF9jZGNsa19kZWNpbWFsKGNkY2xrKTsK PiA+ICsJaWYgKHBpcGUgPT0gSU5WQUxJRF9QSVBFKQo+ID4gKwkJdmFsIHw9IElDTF9DRENMS19D RDJYX1BJUEVfTk9ORTsKPiA+ICsJZWxzZQo+ID4gKwkJdmFsIHw9IElDTF9DRENMS19DRDJYX1BJ UEUocGlwZSk7Cj4gPiArCUk5MTVfV1JJVEUoQ0RDTEtfQ1RMLCB2YWwpOwo+ID4gKwo+ID4gKwlp ZiAocGlwZSAhPSBJTlZBTElEX1BJUEUpCj4gPiArCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2 X3ByaXYsIHBpcGUpOwo+ID4gICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBjdV9sb2NrKTsKPiA+ ICAgCXNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBTS0xfUENPREVfQ0RDTEtfQ09O VFJPTCwKPiA+IEBAIC0yMDAyLDcgKzIwMjEsNyBAQCB2b2lkIGljbF9pbml0X2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAgCXNhbml0aXplZF9zdGF0ZS52b2x0 YWdlX2xldmVsID0KPiA+ICAgCQkJCWljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoc2FuaXRpemVkX3N0 YXRlLmNkY2xrKTsKPiA+IC0JaWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJnNhbml0aXplZF9zdGF0 ZSk7Cj4gPiArCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZzYW5pdGl6ZWRfc3RhdGUsIElOVkFM SURfUElQRSk7Cj4gPiAgIH0KPiA+ICAgLyoqCj4gPiBAQCAtMjAyMCw3ICsyMDM5LDcgQEAgdm9p ZCBpY2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ ICAgCWNkY2xrX3N0YXRlLnZjbyA9IDA7Cj4gPiAgIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVs ID0gaWNsX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7Cj4gPiAtCWljbF9z ZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4gPiArCWljbF9zZXRfY2RjbGsoZGV2 X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKPiA+ICAgfQo+ID4gICAvKioKPiA+ IEBAIC0yMDQ4LDcgKzIwNjcsNyBAQCB2b2lkIGNubF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAgCWNkY2xrX3N0YXRlLnZjbyA9IGNubF9jZGNsa19w bGxfdmNvKGRldl9wcml2LCBjZGNsa19zdGF0ZS5jZGNsayk7Cj4gPiAgIAljZGNsa19zdGF0ZS52 b2x0YWdlX2xldmVsID0gY25sX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7 Cj4gPiAtCWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4gPiArCWNubF9z ZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKPiA+ICAgfQo+ ID4gICAvKioKPiA+IEBAIC0yMDY2LDcgKzIwODUsNyBAQCB2b2lkIGNubF91bmluaXRfY2RjbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gICAJY2RjbGtfc3RhdGUudmNv ID0gMDsKPiA+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBjbmxfY2FsY192b2x0YWdl X2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiA+IC0JY25sX3NldF9jZGNsayhkZXZfcHJpdiwg JmNkY2xrX3N0YXRlKTsKPiA+ICsJY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRl LCBJTlZBTElEX1BJUEUpOwo+ID4gICB9Cj4gPiAgIC8qKgo+ID4gQEAgLTIwODYsNiArMjEwNSwy NyBAQCBib29sIGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoY29uc3Qgc3RydWN0IGludGVsX2Nk Y2xrX3N0YXRlICphLAo+ID4gICB9Cj4gPiAgIC8qKgo+ID4gKyAqIGludGVsX2NkY2xrX25lZWRz X2NkMnhfdXBkYXRlIC0gRGV0ZXJtaW5lIGlmIHR3byBDRENMSyBzdGF0ZXMgcmVxdWlyZSBhIGNk MnggZGl2aWRlciB1cGRhdGUKPiA+ICsgKiBAYTogZmlyc3QgQ0RDTEsgc3RhdGUKPiA+ICsgKiBA Yjogc2Vjb25kIENEQ0xLIHN0YXRlCj4gPiArICoKPiA+ICsgKiBSZXR1cm5zOgo+ID4gKyAqIFRy dWUgaWYgdGhlIENEQ0xLIHN0YXRlcyByZXF1aXJlIGp1c3QgYSBjZDJ4IGRpdmlkZXIgdXBkYXRl LCBmYWxzZSBpZiBub3QuCj4gPiArICovCj4gPiArYm9vbCBpbnRlbF9jZGNsa19uZWVkc19jZDJ4 X3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJCSAgIGNv bnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYSwKPiA+ICsJCQkJICAgY29uc3Qgc3RydWN0 IGludGVsX2NkY2xrX3N0YXRlICpiKQo+ID4gK3sKPiA+ICsJLyogT2xkZXIgaHcgZG9lc24ndCBo YXZlIHRoZSBjYXBhYmlsaXR5ICovCj4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTAg JiYgIUlTX0dFTjlfTFAoZGV2X3ByaXYpKQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4g KwlyZXR1cm4gYS0+Y2RjbGsgIT0gYi0+Y2RjbGsgJiYKPiA+ICsJCWEtPnZjbyA9PSBiLT52Y28g JiYKPiA+ICsJCWEtPnJlZiA9PSBiLT5yZWY7Cj4gPiArfQo+ID4gKwo+ID4gKy8qKgo+ID4gICAg KiBpbnRlbF9jZGNsa19jaGFuZ2VkIC0gRGV0ZXJtaW5lIGlmIHR3byBDRENMSyBzdGF0ZXMgYXJl IGRpZmZlcmVudAo+ID4gICAgKiBAYTogZmlyc3QgQ0RDTEsgc3RhdGUKPiA+ICAgICogQGI6IHNl Y29uZCBDRENMSyBzdGF0ZQo+ID4gQEAgLTIxMzMsMTIgKzIxNzMsMTQgQEAgdm9pZCBpbnRlbF9k dW1wX2NkY2xrX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3Rh dGUsCj4gPiAgICAqIGludGVsX3NldF9jZGNsayAtIFB1c2ggdGhlIENEQ0xLIHN0YXRlIHRvIHRo ZSBoYXJkd2FyZQo+ID4gICAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlCj4gPiAgICAqIEBjZGNs a19zdGF0ZTogbmV3IENEQ0xLIHN0YXRlCj4gPiArICogQHBpcGU6IHBpcGUgd2l0aCB3aGljaCB0 byBzeW5jaHJvbml6ZSB0aGUgdXBkYXRlCj4gPiAgICAqCj4gPiAgICAqIFByb2dyYW0gdGhlIGhh cmR3YXJlIGJhc2VkIG9uIHRoZSBwYXNzZWQgaW4gQ0RDTEsgc3RhdGUsCj4gPiAgICAqIGlmIG5l Y2Vzc2FyeS4KPiA+ICAgICovCj4gPiAtdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gLQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ID4gK3N0YXRpYyB2b2lkIGludGVsX3NldF9jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJICAgIGNvbnN0IHN0cnVj dCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCj4gPiArCQkJICAgIGVudW0gcGlwZSBw aXBlKQo+ID4gICB7Cj4gPiAgIAlpZiAoIWludGVsX2NkY2xrX2NoYW5nZWQoJmRldl9wcml2LT5j ZGNsay5odywgY2RjbGtfc3RhdGUpKQo+ID4gICAJCXJldHVybjsKPiA+IEBAIC0yMTQ4LDcgKzIx OTAsNyBAQCB2b2lkIGludGVsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiAgIAlpbnRlbF9kdW1wX2NkY2xrX3N0YXRlKGNkY2xrX3N0YXRlLCAiQ2hhbmdp bmcgQ0RDTEsgdG8iKTsKPiA+IC0JZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrKGRldl9wcml2 LCBjZGNsa19zdGF0ZSk7Cj4gPiArCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayhkZXZfcHJp diwgY2RjbGtfc3RhdGUsIHBpcGUpOwo+ID4gICAJaWYgKFdBUk4oaW50ZWxfY2RjbGtfY2hhbmdl ZCgmZGV2X3ByaXYtPmNkY2xrLmh3LCBjZGNsa19zdGF0ZSksCj4gPiAgIAkJICJjZGNsayBzdGF0 ZSBkb2Vzbid0IG1hdGNoIVxuIikpIHsKPiA+IEBAIC0yMTU3LDYgKzIxOTksNDYgQEAgdm9pZCBp bnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAJ fQo+ID4gICB9Cj4gPiArLyoqCj4gPiArICogaW50ZWxfc2V0X2NkY2xrX3ByZV9wbGFuZV91cGRh dGUgLSBQdXNoIHRoZSBDRENMSyBzdGF0ZSB0byB0aGUgaGFyZHdhcmUKPiA+ICsgKiBAZGV2X3By aXY6IGk5MTUgZGV2aWNlCj4gPiArICogQG9sZF9zdGF0ZTogb2xkIENEQ0xLIHN0YXRlCj4gPiAr ICogQG5ld19zdGF0ZTogbmV3IENEQ0xLIHN0YXRlCj4gPiArICogQHBpcGU6IHBpcGUgd2l0aCB3 aGljaCB0byBzeW5jaHJvbml6ZSB0aGUgdXBkYXRlCj4gPiArICoKPiA+ICsgKiBQcm9ncmFtIHRo ZSBoYXJkd2FyZSBiZWZvcmUgdXBkYXRpbmcgdGhlIEhXIHBsYW5lIHN0YXRlIGJhc2VkIG9uIHRo ZSBwYXNzZWQKPiA+ICsgKiBpbiBDRENMSyBzdGF0ZSwgaWYgbmVjZXNzYXJ5Lgo+ID4gKyAqLwo+ ID4gK3ZvaWQKPiA+ICtpbnRlbF9zZXRfY2RjbGtfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKm9sZF9zdGF0ZSwKPiA+ICsJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19z dGF0ZSAqbmV3X3N0YXRlLAo+ID4gKwkJCQkgZW51bSBwaXBlIHBpcGUpCj4gPiArewo+ID4gKwlp ZiAocGlwZSA9PSBJTlZBTElEX1BJUEUgfHwgb2xkX3N0YXRlLT5jZGNsayA8PSBuZXdfc3RhdGUt PmNkY2xrKQo+ID4gKwkJaW50ZWxfc2V0X2NkY2xrKGRldl9wcml2LCBuZXdfc3RhdGUsIHBpcGUp Owo+ID4gK30KPiA+ICsKPiA+ICsvKioKPiA+ICsgKiBpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFu ZV91cGRhdGUgLSBQdXNoIHRoZSBDRENMSyBzdGF0ZSB0byB0aGUgaGFyZHdhcmUKPiA+ICsgKiBA ZGV2X3ByaXY6IGk5MTUgZGV2aWNlCj4gPiArICogQG9sZF9zdGF0ZTogb2xkIENEQ0xLIHN0YXRl Cj4gPiArICogQG5ld19zdGF0ZTogbmV3IENEQ0xLIHN0YXRlCj4gPiArICogQHBpcGU6IHBpcGUg d2l0aCB3aGljaCB0byBzeW5jaHJvbml6ZSB0aGUgdXBkYXRlCj4gPiArICoKPiA+ICsgKiBQcm9n cmFtIHRoZSBoYXJkd2FyZSBhZnRlciB1cGRhdGluZyB0aGUgSFcgcGxhbmUgc3RhdGUgYmFzZWQg b24gdGhlIHBhc3NlZAo+ID4gKyAqIGluIENEQ0xLIHN0YXRlLCBpZiBuZWNlc3NhcnkuCj4gPiAr ICovCj4gPiArdm9pZAo+ID4gK2ludGVsX3NldF9jZGNsa19wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJCSAgY29uc3Qgc3RydWN0IGlu dGVsX2NkY2xrX3N0YXRlICpvbGRfc3RhdGUsCj4gPiArCQkJCSAgY29uc3Qgc3RydWN0IGludGVs X2NkY2xrX3N0YXRlICpuZXdfc3RhdGUsCj4gPiArCQkJCSAgZW51bSBwaXBlIHBpcGUpCj4gPiAr ewo+ID4gKwlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUgJiYgb2xkX3N0YXRlLT5jZGNsayA+IG5l d19zdGF0ZS0+Y2RjbGspCj4gPiArCQlpbnRlbF9zZXRfY2RjbGsoZGV2X3ByaXYsIG5ld19zdGF0 ZSwgcGlwZSk7Cj4gPiArfQo+ID4gKwo+ID4gICBzdGF0aWMgaW50IGludGVsX3BpeGVsX3JhdGVf dG9fY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gICAJCQkJICAg ICBpbnQgcGl4ZWxfcmF0ZSkKPiA+ICAgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+ID4gaW5kZXggZjdiNDQ3NzNlMWU3Li5iY2VjMDNmNDNkM2EgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTEyOTgyLDYgKzEyOTgyLDcgQEAg c3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gPiAgIAlpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzID0gZGV2X3ByaXYtPmFjdGl2 ZV9jcnRjczsKPiA+ICAgCWludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsID0gZGV2X3ByaXYtPmNk Y2xrLmxvZ2ljYWw7Cj4gPiAgIAlpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsID0gZGV2X3ByaXYt PmNkY2xrLmFjdHVhbDsKPiA+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUgPSBJTlZBTElEX1BJ UEU7Cj4gPiAgIAlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xk X2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gPiAgIAkJaWYgKG5ld19jcnRjX3N0 YXRlLT5hY3RpdmUpCj4gPiBAQCAtMTMwMDEsNiArMTMwMDIsOCBAQCBzdGF0aWMgaW50IGludGVs X21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICAgCSAq IGFkanVzdGVkX21vZGUgYml0cyBpbiB0aGUgY3J0YyBkaXJlY3RseS4KPiA+ICAgCSAqLwo+ID4g ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsaykgewo+ID4gKwkJZW51 bSBwaXBlIHBpcGU7Cj4gPiArCj4gPiAgIAkJcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNl dF9jYWxjX2NkY2xrKHN0YXRlKTsKPiA+ICAgCQlpZiAocmV0IDwgMCkKPiA+ICAgCQkJcmV0dXJu IHJldDsKPiA+IEBAIC0xMzAxNywxMiArMTMwMjAsMzYgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rl c2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAgIAkJCQlyZXR1 cm4gcmV0Owo+ID4gICAJCX0KPiA+ICsJCWlmIChpc19wb3dlcl9vZl8yKGludGVsX3N0YXRlLT5h Y3RpdmVfY3J0Y3MpKSB7Cj4gPiArCQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gKwkJCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+ICsKPiA+ICsJCQlwaXBlID0gaWxv ZzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyk7Cj4gPiArCQkJY3J0YyA9ICZpbnRlbF9nZXRf Y3J0Y19mb3JfcGlwZShkZXZfcHJpdiwgcGlwZSktPmJhc2U7Cj4gPiArCQkJY3J0Y19zdGF0ZSA9 IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiA+ICsJCQlpZiAo Y3J0Y19zdGF0ZSAmJiBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQo+ID4gKwkJCQlwaXBlID0g SU5WQUxJRF9QSVBFOwo+ID4gKwkJfSBlbHNlIHsKPiA+ICsJCQlwaXBlID0gSU5WQUxJRF9QSVBF Owo+ID4gKwkJfQo+ID4gKwo+ID4gICAJCS8qIEFsbCBwaXBlcyBtdXN0IGJlIHN3aXRjaGVkIG9m ZiB3aGlsZSB3ZSBjaGFuZ2UgdGhlIGNkY2xrLiAqLwo+ID4gLQkJaWYgKGludGVsX2NkY2xrX25l ZWRzX21vZGVzZXQoJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCj4gPiAtCQkJCQkgICAgICAmaW50 ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCkpIHsKPiA+ICsJCWlmIChwaXBlICE9IElOVkFMSURfUElQ RSAmJgo+ID4gKwkJICAgIGludGVsX2NkY2xrX25lZWRzX2NkMnhfdXBkYXRlKGRldl9wcml2LAo+ ID4gKwkJCQkJCSAgJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCj4gPiArCQkJCQkJICAmaW50ZWxf c3RhdGUtPmNkY2xrLmFjdHVhbCkpIHsKPiA+ICsJCQlyZXQgPSBpbnRlbF9sb2NrX2FsbF9waXBl cyhzdGF0ZSk7Cj4gPiArCQkJaWYgKHJldCA8IDApCj4gPiArCQkJCXJldHVybiByZXQ7Cj4gPiAr Cj4gPiArCQkJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUgPSBwaXBlOwo+ID4gKwkJfSBlbHNlIGlm IChpbnRlbF9jZGNsa19uZWVkc19tb2Rlc2V0KCZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsLAo+ID4g KwkJCQkJCSAgICAgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwpKSB7Cj4gPiAgIAkJCXJldCA9 IGludGVsX21vZGVzZXRfYWxsX3BpcGVzKHN0YXRlKTsKPiA+ICAgCQkJaWYgKHJldCA8IDApCj4g PiAgIAkJCQlyZXR1cm4gcmV0Owo+ID4gKwo+ID4gKwkJCWludGVsX3N0YXRlLT5jZGNsay5waXBl ID0gSU5WQUxJRF9QSVBFOwo+ID4gICAJCX0KPiA+ICAgCQlEUk1fREVCVUdfS01TKCJOZXcgY2Rj bGsgY2FsY3VsYXRlZCB0byBiZSBsb2dpY2FsICV1IGtIeiwgYWN0dWFsICV1IGtIelxuIiwKPiA+ IEBAIC0xMzQzMSw3ICsxMzQ1OCwxMCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0 X3RhaWwoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gICAJaWYgKGludGVsX3N0 YXRlLT5tb2Rlc2V0KSB7Cj4gPiAgIAkJZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9t b2Rlc2V0X3N0YXRlKHN0YXRlLT5kZXYsIHN0YXRlKTsKPiA+IC0JCWludGVsX3NldF9jZGNsayhk ZXZfcHJpdiwgJmRldl9wcml2LT5jZGNsay5hY3R1YWwpOwo+ID4gKwkJaW50ZWxfc2V0X2NkY2xr X3ByZV9wbGFuZV91cGRhdGUoZGV2X3ByaXYsCj4gPiArCQkJCQkJICZpbnRlbF9zdGF0ZS0+Y2Rj bGsuYWN0dWFsLAo+ID4gKwkJCQkJCSAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKPiA+ICsJCQkJ CQkgaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUpOwo+ID4gICAJCS8qCj4gPiAgIAkJICogU0tMIHdv cmthcm91bmQ6IGJzcGVjIHJlY29tbWVuZHMgd2UgZGlzYWJsZSB0aGUgU0FHViB3aGVuIHdlCj4g PiBAQCAtMTM0NjAsNiArMTM0OTAsMTIgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1p dF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICAgCS8qIE5vdyBlbmFi bGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFuZCBjb25uZWN0b3JzIHRoYXQgd2Ugc2V0IHVw LiAqLwo+ID4gICAJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX2NydGNzKHN0YXRlKTsKPiA+ICsJ aWYgKGludGVsX3N0YXRlLT5tb2Rlc2V0KQo+ID4gKwkJaW50ZWxfc2V0X2NkY2xrX3Bvc3RfcGxh bmVfdXBkYXRlKGRldl9wcml2LAo+ID4gKwkJCQkJCSAgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1 YWwsCj4gPiArCQkJCQkJICAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKPiA+ICsJCQkJCQkgIGlu dGVsX3N0YXRlLT5jZGNsay5waXBlKTsKPiA+ICsKPiA+ICAgCS8qIEZJWE1FOiBXZSBzaG91bGQg Y2FsbCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZSgpIGhlcmUKPiA+ICAgCSAqIGFs cmVhZHksIGJ1dCBzdGlsbCBuZWVkIHRoZSBzdGF0ZSBmb3IgdGhlIGRlbGF5ZWQgb3B0aW1pemF0 aW9uLiBUbwo+ID4gICAJICogZml4IHRoaXM6Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ ID4gaW5kZXggODVkZDZhOWQxZTQyLi5kMjJhMGU5MmUwZDQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC01NTksNiArNTU5LDggQEAgc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSB7Cj4gPiAgIAkJaW50IGZvcmNlX21pbl9jZGNsazsKPiA+ICAgCQlib29sIGZvcmNl X21pbl9jZGNsa19jaGFuZ2VkOwo+ID4gKwkJLyogcGlwZSB0byB3aGljaCBjZDJ4IHVwZGF0ZSBp cyBzeW5jaHJvbml6ZWQgKi8KPiA+ICsJCWVudW0gcGlwZSBwaXBlOwo+ID4gICAJfSBjZGNsazsK PiA+ICAgCWJvb2wgZHBsbF9zZXQsIG1vZGVzZXQ7Cj4gPiBAQCAtMTY5NCwxMyArMTY5NiwyNCBA QCB2b2lkIGludGVsX2luaXRfY2RjbGtfaG9va3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPiA+ICAgdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiAgIHZvaWQgaW50ZWxfdXBkYXRlX2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gPiAgIHZvaWQgaW50ZWxfdXBkYXRlX3Jh d2NsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gK2Jvb2wgaW50ZWxf Y2RjbGtfbmVlZHNfY2QyeF91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmEsCj4gPiArCQkJ CSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYik7Cj4gPiAgIGJvb2wgaW50ZWxf Y2RjbGtfbmVlZHNfbW9kZXNldChjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmEsCj4g PiAgIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpOwo+ID4gICBi b29sIGludGVsX2NkY2xrX2NoYW5nZWQoY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICph LAo+ID4gICAJCQkgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpiKTsKPiA+ICAgdm9p ZCBpbnRlbF9jZGNsa19zd2FwX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl KTsKPiA+IC12b2lkIGludGVsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gPiAtCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtf c3RhdGUpOwo+ID4gK3ZvaWQKPiA+ICtpbnRlbF9zZXRfY2RjbGtfcHJlX3BsYW5lX3VwZGF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiArCQkJCSBjb25zdCBzdHJ1Y3Qg aW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9zdGF0ZSwKPiA+ICsJCQkJIGNvbnN0IHN0cnVjdCBpbnRl bF9jZGNsa19zdGF0ZSAqbmV3X3N0YXRlLAo+ID4gKwkJCQkgZW51bSBwaXBlIHBpcGUpOwo+ID4g K3ZvaWQKPiA+ICtpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSAqb2xkX3N0YXRlLAo+ID4gKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19z dGF0ZSAqbmV3X3N0YXRlLAo+ID4gKwkJCQkgIGVudW0gcGlwZSBwaXBlKTsKPiA+ICAgdm9pZCBp bnRlbF9kdW1wX2NkY2xrX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2Rj bGtfc3RhdGUsCj4gPiAgIAkJCSAgICBjb25zdCBjaGFyICpjb250ZXh0KTsKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4