From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clinton Taylor Subject: Re: [PATCH v9 4/4] drm/i915: Skip modeset for cdclk changes if possible Date: Tue, 2 Apr 2019 13:13:05 -0700 Message-ID: <123c181a-76c2-ba19-e474-442d3bd6f4ec@intel.com> References: <20190320135439.12201-4-imre.deak@intel.com> <20190327101321.3095-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id D352B89A1F for ; Tue, 2 Apr 2019 21:12:39 +0000 (UTC) In-Reply-To: <20190327101321.3095-1-imre.deak@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org TG9va3MgZ29vZC4KClJldmlld2VkLWJ5OiBDbGludCBUYXlsb3IgPENsaW50b24uQS5UYXlsb3JA aW50ZWwuY29tPgoKCk9uIDMvMjcvMTkgMzoxMyBBTSwgSW1yZSBEZWFrIHdyb3RlOgo+IEZyb206 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4KPiBJZiB3 ZSBoYXZlIG9ubHkgYSBzaW5nbGUgYWN0aXZlIHBpcGUgYW5kIHRoZSBjZGNsayBjaGFuZ2Ugb25s eSByZXF1aXJlcwo+IHRoZSBjZDJ4IGRpdmlkZXIgdG8gYmUgdXBkYXRlZCBieHQrIGNhbiBkbyB0 aGUgdXBkYXRlIHdpdGggZm9yY2luZyBhIGZ1bGwKPiBtb2Rlc2V0IG9uIHRoZSBwaXBlLiBUcnkg dG8gaG9vayB0aGF0IHVwLgo+Cj4gdjI6Cj4gLSBXYWl0IGZvciB2YmxhbmsgYWZ0ZXIgYW4gb3B0 aW1pemVkIENEQ0xLIGNoYW5nZS4KPiAtIEF2b2lkIG9wdGltaXphdGlvbiBpZiB0aGUgcGlwZSBu ZWVkcyBhIG1vZGVzZXQgKG9yIHdhcyBkaXNhYmxlZCkuCj4gLSBTcGxpdCBDRENMSyBjaGFuZ2Ug dG8gYSBwcmUvcG9zdCBwbGFuZSB1cGRhdGUgc3RlcC4KPiB2MzoKPiAtIFVzZSBjb3JyZWN0IHZl cnNpb24gb2YgQ0RDTEsgc3RhdGUgYXMgb2xkIHN0YXRlLiAoVmlsbGUpCj4gLSBSZW1vdmUgdW51 c2VkIGludGVsX2NkY2xrX2Nhbl9za2lwX21vZGVzZXQoKQo+IHY0Ogo+IC0gRm9yIGNvbnNpc3Rl bmN5IGNhbGwgaW50ZWxfc2V0X2NkY2xrX3Bvc3RfcGxhbmVfdXBkYXRlKCkgb25seSBkdXJpbmcK PiAgICBtb2Rlc2V0cyAoYW5kIG5vdCBmYXN0c2V0cykuCj4gdjU6Cj4gLSBSZW1vdmUgdGhlIGxv Z2ljIHRvIHVwZGF0ZSB0aGUgQ0QyWCBkaXZpZGVyIG9uLXRoZS1mbHkgb24gSUNMLCBzaW5jZQo+ ICAgIG9ubHkgYSBkaXZpZGVyIG9mIDEgaXMgc3VwcG9ydGVkIHRoZXJlLiBDbGludCBhbHNvIG5v dGljZWQgdGhhdCB0aGUKPiAgICBwaXBlIHNlbGVjdCBiaXRzIGluIENEQ0xLX0NUTCBhcmUgb2Rk bHkgZGVmaW5lZCBvbiBJQ0wsIGl0J3Mgbm90IGNsZWFyCj4gICAgeWV0IHdoZXRoZXIgdGhhdCdz IG9ubHkgYW4gZXJyb3IgaW4gdGhlIHNwZWNpZmljYXRpb24uCj4KPiBTaWduZWQtb2ZmLWJ5OiBW aWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1v ZmYtYnk6IEFiaGF5IEt1bWFyIDxhYmhheS5rdW1hckBpbnRlbC5jb20+Cj4gVGVzdGVkLWJ5OiBB YmhheSBLdW1hciA8YWJoYXkua3VtYXJAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEltcmUg RGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmggICAgICB8ICAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y2RjbGsuYyAgIHwgMTM1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCj4gICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgNDIgKysrKysrKysrKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAxNyArKysrLQo+ICAgNCBm aWxlcyBjaGFuZ2VkLCAxNjMgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA3OGU2YmI0YTU0YmYuLjFjYjhkOTliYTBjMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yODIsNyArMjgyLDggQEAgc3RydWN0IGRy bV9pOTE1X2Rpc3BsYXlfZnVuY3Mgewo+ICAgCXZvaWQgKCpnZXRfY2RjbGspKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkJCSAgc3RydWN0IGludGVsX2NkY2xrX3N0YXRl ICpjZGNsa19zdGF0ZSk7Cj4gICAJdm9pZCAoKnNldF9jZGNsaykoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+IC0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAq Y2RjbGtfc3RhdGUpOwo+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2Rj bGtfc3RhdGUsCj4gKwkJCSAgZW51bSBwaXBlIHBpcGUpOwo+ICAgCWludCAoKmdldF9maWZvX3Np emUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkJCSAgICAgZW51bSBp OXh4X3BsYW5lX2lkIGk5eHhfcGxhbmUpOwo+ICAgCWludCAoKmNvbXB1dGVfcGlwZV93bSkoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NkY2xrLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNs ay5jCj4gaW5kZXggMmZjNDQzNDY4NzA2Li5iOGNkNDgxZjVlMzMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2NkY2xrLmMKPiBAQCAtNTE3LDcgKzUxNyw4IEBAIHN0YXRpYyB2b2lkIHZsdl9w cm9ncmFtX3BmaV9jcmVkaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg IH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgdmx2X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gLQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpj ZGNsa19zdGF0ZSkKPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xr X3N0YXRlLAo+ICsJCQkgIGVudW0gcGlwZSBwaXBlKQo+ICAgewo+ICAgCWludCBjZGNsayA9IGNk Y2xrX3N0YXRlLT5jZGNsazsKPiAgIAl1MzIgdmFsLCBjbWQgPSBjZGNsa19zdGF0ZS0+dm9sdGFn ZV9sZXZlbDsKPiBAQCAtNTk5LDcgKzYwMCw4IEBAIHN0YXRpYyB2b2lkIHZsdl9zZXRfY2RjbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgfQo+ICAgCj4gICBzdGF0aWMg dm9pZCBjaHZfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAt CQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICsJCQkg IGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCj4gKwkJCSAgZW51 bSBwaXBlIHBpcGUpCj4gICB7Cj4gICAJaW50IGNkY2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwo+ ICAgCXUzMiB2YWwsIGNtZCA9IGNkY2xrX3N0YXRlLT52b2x0YWdlX2xldmVsOwo+IEBAIC02OTgs NyArNzAwLDggQEAgc3RhdGljIHZvaWQgYmR3X2dldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGJkd19zZXRfY2RjbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgIGNvbnN0IHN0cnVjdCBp bnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4gKwkJCSAgY29uc3Qgc3RydWN0IGludGVs X2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiArCQkJICBlbnVtIHBpcGUgcGlwZSkKPiAgIHsK PiAgIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7Cj4gICAJdTMyIHZhbDsKPiBAQCAt OTg4LDcgKzk5MSw4IEBAIHN0YXRpYyB2b2lkIHNrbF9kcGxsMF9kaXNhYmxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgc2tsX3Nl dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCSAgY29uc3Qg c3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKPiArCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAo+ICsJCQkgIGVudW0gcGlwZSBwaXBl KQo+ICAgewo+ICAgCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKPiAgIAlpbnQgdmNv ID0gY2RjbGtfc3RhdGUtPnZjbzsKPiBAQCAtMTE1OSw3ICsxMTYzLDcgQEAgdm9pZCBza2xfaW5p dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJY2RjbGtfc3Rh dGUuY2RjbGsgPSBza2xfY2FsY19jZGNsaygwLCBjZGNsa19zdGF0ZS52Y28pOwo+ICAgCWNkY2xr X3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBza2xfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRl LmNkY2xrKTsKPiAgIAo+IC0Jc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsK PiArCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsK PiAgIH0KPiAgIAo+ICAgLyoqCj4gQEAgLTExNzcsNyArMTE4MSw3IEBAIHZvaWQgc2tsX3VuaW5p dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICAJY2RjbGtfc3Rh dGUudmNvID0gMDsKPiAgIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gc2tsX2NhbGNfdm9s dGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7Cj4gICAKPiAtCXNrbF9zZXRfY2RjbGsoZGV2 X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4gKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtf c3RhdGUsIElOVkFMSURfUElQRSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRpYyBpbnQgYnh0X2NhbGNf Y2RjbGsoaW50IG1pbl9jZGNsaykKPiBAQCAtMTM1Niw3ICsxMzYwLDggQEAgc3RhdGljIHZvaWQg Ynh0X2RlX3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQg dmNvKQo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBieHRfc2V0X2NkY2xrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtf c3RhdGUgKmNkY2xrX3N0YXRlKQo+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0 ZSAqY2RjbGtfc3RhdGUsCj4gKwkJCSAgZW51bSBwaXBlIHBpcGUpCj4gICB7Cj4gICAJaW50IGNk Y2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwo+ICAgCWludCB2Y28gPSBjZGNsa19zdGF0ZS0+dmNv Owo+IEBAIC0xNDA5LDExICsxNDE0LDEwIEBAIHN0YXRpYyB2b2lkIGJ4dF9zZXRfY2RjbGsoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQlieHRfZGVfcGxsX2VuYWJsZShk ZXZfcHJpdiwgdmNvKTsKPiAgIAo+ICAgCXZhbCA9IGRpdmlkZXIgfCBza2xfY2RjbGtfZGVjaW1h bChjZGNsayk7Cj4gLQkvKgo+IC0JICogRklYTUUgaWYgb25seSB0aGUgY2QyeCBkaXZpZGVyIG5l ZWRzIGNoYW5naW5nLCBpdCBjb3VsZCBiZSBkb25lCj4gLQkgKiB3aXRob3V0IHNodXR0aW5nIG9m ZiB0aGUgcGlwZSAoaWYgb25seSBvbmUgcGlwZSBpcyBhY3RpdmUpLgo+IC0JICovCj4gLQl2YWwg fD0gQlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FOwo+ICsJaWYgKHBpcGUgPT0gSU5WQUxJRF9QSVBF KQo+ICsJCXZhbCB8PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7Cj4gKwllbHNlCj4gKwkJdmFs IHw9IEJYVF9DRENMS19DRDJYX1BJUEUocGlwZSk7Cj4gICAJLyoKPiAgIAkgKiBEaXNhYmxlIFNT QSBQcmVjaGFyZ2Ugd2hlbiBDRCBjbG9jayBmcmVxdWVuY3kgPCA1MDAgTUh6LAo+ICAgCSAqIGVu YWJsZSBvdGhlcndpc2UuCj4gQEAgLTE0MjIsNiArMTQyNiw5IEBAIHN0YXRpYyB2b2lkIGJ4dF9z ZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQl2YWwgfD0g QlhUX0NEQ0xLX1NTQV9QUkVDSEFSR0VfRU5BQkxFOwo+ICAgCUk5MTVfV1JJVEUoQ0RDTEtfQ1RM LCB2YWwpOwo+ICAgCj4gKwlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUpCj4gKwkJaW50ZWxfd2Fp dF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsKPiArCj4gICAJbXV0ZXhfbG9jaygmZGV2X3By aXYtPnBjdV9sb2NrKTsKPiAgIAkvKgo+ICAgCSAqIFRoZSB0aW1lb3V0IGlzbid0IHNwZWNpZmll ZCwgdGhlIDJtcyB1c2VkIGhlcmUgaXMgYmFzZWQgb24KPiBAQCAtMTUyNiw3ICsxNTMzLDcgQEAg dm9pZCBieHRfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g ICAJfQo+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBieHRfY2FsY192b2x0YWdlX2xl dmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgIAo+IC0JYnh0X3NldF9jZGNsayhkZXZfcHJpdiwg JmNkY2xrX3N0YXRlKTsKPiArCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwg SU5WQUxJRF9QSVBFKTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gQEAgLTE1NDQsNyArMTU1MSw3IEBA IHZvaWQgYnh0X3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp Cj4gICAJY2RjbGtfc3RhdGUudmNvID0gMDsKPiAgIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVs ID0gYnh0X2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7Cj4gICAKPiAtCWJ4 dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7Cj4gKwlieHRfc2V0X2NkY2xrKGRl dl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURfUElQRSk7Cj4gICB9Cj4gICAKPiAgIHN0YXRp YyBpbnQgY25sX2NhbGNfY2RjbGsoaW50IG1pbl9jZGNsaykKPiBAQCAtMTY2NCw3ICsxNjcxLDgg QEAgc3RhdGljIHZvaWQgY25sX2NkY2xrX3BsbF9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBpbnQgdmNvKQo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBjbmxfc2V0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJICBjb25zdCBz dHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICsJCQkgIGNvbnN0IHN0cnVj dCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCj4gKwkJCSAgZW51bSBwaXBlIHBpcGUp Cj4gICB7Cj4gICAJaW50IGNkY2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwo+ICAgCWludCB2Y28g PSBjZGNsa19zdGF0ZS0+dmNvOwo+IEBAIC0xNzA1LDEzICsxNzEzLDE1IEBAIHN0YXRpYyB2b2lk IGNubF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAgCQlj bmxfY2RjbGtfcGxsX2VuYWJsZShkZXZfcHJpdiwgdmNvKTsKPiAgIAo+ICAgCXZhbCA9IGRpdmlk ZXIgfCBza2xfY2RjbGtfZGVjaW1hbChjZGNsayk7Cj4gLQkvKgo+IC0JICogRklYTUUgaWYgb25s eSB0aGUgY2QyeCBkaXZpZGVyIG5lZWRzIGNoYW5naW5nLCBpdCBjb3VsZCBiZSBkb25lCj4gLQkg KiB3aXRob3V0IHNodXR0aW5nIG9mZiB0aGUgcGlwZSAoaWYgb25seSBvbmUgcGlwZSBpcyBhY3Rp dmUpLgo+IC0JICovCj4gLQl2YWwgfD0gQlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FOwo+ICsJaWYg KHBpcGUgPT0gSU5WQUxJRF9QSVBFKQo+ICsJCXZhbCB8PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05P TkU7Cj4gKwllbHNlCj4gKwkJdmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEUocGlwZSk7Cj4gICAJ STkxNV9XUklURShDRENMS19DVEwsIHZhbCk7Cj4gICAKPiArCWlmIChwaXBlICE9IElOVkFMSURf UElQRSkKPiArCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOwo+ICsKPiAg IAkvKiBpbmZvcm0gUENVIG9mIHRoZSBjaGFuZ2UgKi8KPiAgIAltdXRleF9sb2NrKCZkZXZfcHJp di0+cGN1X2xvY2spOwo+ICAgCXNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBTS0xf UENPREVfQ0RDTEtfQ09OVFJPTCwKPiBAQCAtMTg0OCw3ICsxODU4LDggQEAgc3RhdGljIGludCBp Y2xfY2FsY19jZGNsa19wbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg aW50IGNkY2xrKQo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBpY2xfc2V0X2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSAqY2RjbGtfc3RhdGUsCj4gKwkJCSAgZW51bSBwaXBlIHBpcGUpCj4gICB7Cj4gICAJ dW5zaWduZWQgaW50IGNkY2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwo+ICAgCXVuc2lnbmVkIGlu dCB2Y28gPSBjZGNsa19zdGF0ZS0+dmNvOwo+IEBAIC0xODczLDYgKzE4ODQsMTEgQEAgc3RhdGlj IHZvaWQgaWNsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g ICAJaWYgKGRldl9wcml2LT5jZGNsay5ody52Y28gIT0gdmNvKQo+ICAgCQljbmxfY2RjbGtfcGxs X2VuYWJsZShkZXZfcHJpdiwgdmNvKTsKPiAgIAo+ICsJLyoKPiArCSAqIE9uIElDTCBDRDJYX0RJ ViBjYW4gb25seSBiZSAxLCBzbyB3ZSdsbCBuZXZlciBlbmQgdXAgY2hhbmdpbmcgdGhlCj4gKwkg KiBkaXZpZGVyIGhlcmUgc3luY2hyb25pemVkIHRvIGEgcGlwZSB3aGlsZSBDRENMSyBpcyBvbiwg bm9yIHdpbGwgd2UKPiArCSAqIG5lZWQgdGhlIGNvcnJlc3BvbmRpbmcgdmJsYW5rIHdhaXQuCj4g KwkgKi8KPiAgIAlJOTE1X1dSSVRFKENEQ0xLX0NUTCwgSUNMX0NEQ0xLX0NEMlhfUElQRV9OT05F IHwKPiAgIAkJCSAgICAgIHNrbF9jZGNsa19kZWNpbWFsKGNkY2xrKSk7Cj4gICAKPiBAQCAtMjAw Myw3ICsyMDE5LDcgQEAgdm9pZCBpY2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gICAJc2FuaXRpemVkX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPQo+ICAgCQkJ CWljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoc2FuaXRpemVkX3N0YXRlLmNkY2xrKTsKPiAgIAo+IC0J aWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJnNhbml0aXplZF9zdGF0ZSk7Cj4gKwlpY2xfc2V0X2Nk Y2xrKGRldl9wcml2LCAmc2FuaXRpemVkX3N0YXRlLCBJTlZBTElEX1BJUEUpOwo+ICAgfQo+ICAg Cj4gICAvKioKPiBAQCAtMjAyMSw3ICsyMDM3LDcgQEAgdm9pZCBpY2xfdW5pbml0X2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAljZGNsa19zdGF0ZS52Y28gPSAw Owo+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBpY2xfY2FsY192b2x0YWdlX2xldmVs KGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgIAo+IC0JaWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNk Y2xrX3N0YXRlKTsKPiArCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5W QUxJRF9QSVBFKTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gQEAgLTIwNDksNyArMjA2NSw3IEBAIHZv aWQgY25sX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAg CWNkY2xrX3N0YXRlLnZjbyA9IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsa19zdGF0 ZS5jZGNsayk7Cj4gICAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGNubF9jYWxjX3ZvbHRh Z2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwo+ICAgCj4gLQljbmxfc2V0X2NkY2xrKGRldl9w cml2LCAmY2RjbGtfc3RhdGUpOwo+ICsJY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0 YXRlLCBJTlZBTElEX1BJUEUpOwo+ICAgfQo+ICAgCj4gICAvKioKPiBAQCAtMjA2Nyw3ICsyMDgz LDcgQEAgdm9pZCBjbmxfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgIAljZGNsa19zdGF0ZS52Y28gPSAwOwo+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2Vf bGV2ZWwgPSBjbmxfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgIAo+ IC0JY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKPiArCWNubF9zZXRfY2Rj bGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKPiAgIH0KPiAgIAo+ICAg LyoqCj4gQEAgLTIwODcsNiArMjEwMywyNyBAQCBib29sIGludGVsX2NkY2xrX25lZWRzX21vZGVz ZXQoY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAo+ICAgfQo+ICAgCj4gICAvKioK PiArICogaW50ZWxfY2RjbGtfbmVlZHNfY2QyeF91cGRhdGUgLSBEZXRlcm1pbmUgaWYgdHdvIENE Q0xLIHN0YXRlcyByZXF1aXJlIGEgY2QyeCBkaXZpZGVyIHVwZGF0ZQo+ICsgKiBAYTogZmlyc3Qg Q0RDTEsgc3RhdGUKPiArICogQGI6IHNlY29uZCBDRENMSyBzdGF0ZQo+ICsgKgo+ICsgKiBSZXR1 cm5zOgo+ICsgKiBUcnVlIGlmIHRoZSBDRENMSyBzdGF0ZXMgcmVxdWlyZSBqdXN0IGEgY2QyeCBk aXZpZGVyIHVwZGF0ZSwgZmFsc2UgaWYgbm90Lgo+ICsgKi8KPiArYm9vbCBpbnRlbF9jZGNsa19u ZWVkc19jZDJ4X3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gKwkJ CQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmEsCj4gKwkJCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpCj4gK3sKPiArCS8qIE9sZGVyIGh3IGRvZXNuJ3Qg aGF2ZSB0aGUgY2FwYWJpbGl0eSAqLwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMCAm JiAhSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCXJldHVy biBhLT5jZGNsayAhPSBiLT5jZGNsayAmJgo+ICsJCWEtPnZjbyA9PSBiLT52Y28gJiYKPiArCQlh LT5yZWYgPT0gYi0+cmVmOwo+ICt9Cj4gKwo+ICsvKioKPiAgICAqIGludGVsX2NkY2xrX2NoYW5n ZWQgLSBEZXRlcm1pbmUgaWYgdHdvIENEQ0xLIHN0YXRlcyBhcmUgZGlmZmVyZW50Cj4gICAgKiBA YTogZmlyc3QgQ0RDTEsgc3RhdGUKPiAgICAqIEBiOiBzZWNvbmQgQ0RDTEsgc3RhdGUKPiBAQCAt MjEzNCwxMiArMjE3MSwxNCBAQCB2b2lkIGludGVsX2R1bXBfY2RjbGtfc3RhdGUoY29uc3Qgc3Ry dWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiAgICAqIGludGVsX3NldF9jZGNs ayAtIFB1c2ggdGhlIENEQ0xLIHN0YXRlIHRvIHRoZSBoYXJkd2FyZQo+ICAgICogQGRldl9wcml2 OiBpOTE1IGRldmljZQo+ICAgICogQGNkY2xrX3N0YXRlOiBuZXcgQ0RDTEsgc3RhdGUKPiArICog QHBpcGU6IHBpcGUgd2l0aCB3aGljaCB0byBzeW5jaHJvbml6ZSB0aGUgdXBkYXRlCj4gICAgKgo+ ICAgICogUHJvZ3JhbSB0aGUgaGFyZHdhcmUgYmFzZWQgb24gdGhlIHBhc3NlZCBpbiBDRENMSyBz dGF0ZSwKPiAgICAqIGlmIG5lY2Vzc2FyeS4KPiAgICAqLwo+IC12b2lkIGludGVsX3NldF9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9z ZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgY29u c3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiArCQkJICAgIGVudW0g cGlwZSBwaXBlKQo+ICAgewo+ICAgCWlmICghaW50ZWxfY2RjbGtfY2hhbmdlZCgmZGV2X3ByaXYt PmNkY2xrLmh3LCBjZGNsa19zdGF0ZSkpCj4gICAJCXJldHVybjsKPiBAQCAtMjE0OSw3ICsyMTg4 LDcgQEAgdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAgCj4gICAJaW50ZWxfZHVtcF9jZGNsa19zdGF0ZShjZGNsa19zdGF0ZSwgIkNoYW5n aW5nIENEQ0xLIHRvIik7Cj4gICAKPiAtCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayhkZXZf cHJpdiwgY2RjbGtfc3RhdGUpOwo+ICsJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrKGRldl9w cml2LCBjZGNsa19zdGF0ZSwgcGlwZSk7Cj4gICAKPiAgIAlpZiAoV0FSTihpbnRlbF9jZGNsa19j aGFuZ2VkKCZkZXZfcHJpdi0+Y2RjbGsuaHcsIGNkY2xrX3N0YXRlKSwKPiAgIAkJICJjZGNsayBz dGF0ZSBkb2Vzbid0IG1hdGNoIVxuIikpIHsKPiBAQCAtMjE1OCw2ICsyMTk3LDQ2IEBAIHZvaWQg aW50ZWxfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAl9 Cj4gICB9Cj4gICAKPiArLyoqCj4gKyAqIGludGVsX3NldF9jZGNsa19wcmVfcGxhbmVfdXBkYXRl IC0gUHVzaCB0aGUgQ0RDTEsgc3RhdGUgdG8gdGhlIGhhcmR3YXJlCj4gKyAqIEBkZXZfcHJpdjog aTkxNSBkZXZpY2UKPiArICogQG9sZF9zdGF0ZTogb2xkIENEQ0xLIHN0YXRlCj4gKyAqIEBuZXdf c3RhdGU6IG5ldyBDRENMSyBzdGF0ZQo+ICsgKiBAcGlwZTogcGlwZSB3aXRoIHdoaWNoIHRvIHN5 bmNocm9uaXplIHRoZSB1cGRhdGUKPiArICoKPiArICogUHJvZ3JhbSB0aGUgaGFyZHdhcmUgYmVm b3JlIHVwZGF0aW5nIHRoZSBIVyBwbGFuZSBzdGF0ZSBiYXNlZCBvbiB0aGUgcGFzc2VkCj4gKyAq IGluIENEQ0xLIHN0YXRlLCBpZiBuZWNlc3NhcnkuCj4gKyAqLwo+ICt2b2lkCj4gK2ludGVsX3Nl dF9jZGNsa19wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9zdGF0ZSwKPiAr CQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm5ld19zdGF0ZSwKPiArCQkJCSBl bnVtIHBpcGUgcGlwZSkKPiArewo+ICsJaWYgKHBpcGUgPT0gSU5WQUxJRF9QSVBFIHx8IG9sZF9z dGF0ZS0+Y2RjbGsgPD0gbmV3X3N0YXRlLT5jZGNsaykKPiArCQlpbnRlbF9zZXRfY2RjbGsoZGV2 X3ByaXYsIG5ld19zdGF0ZSwgcGlwZSk7Cj4gK30KPiArCj4gKy8qKgo+ICsgKiBpbnRlbF9zZXRf Y2RjbGtfcG9zdF9wbGFuZV91cGRhdGUgLSBQdXNoIHRoZSBDRENMSyBzdGF0ZSB0byB0aGUgaGFy ZHdhcmUKPiArICogQGRldl9wcml2OiBpOTE1IGRldmljZQo+ICsgKiBAb2xkX3N0YXRlOiBvbGQg Q0RDTEsgc3RhdGUKPiArICogQG5ld19zdGF0ZTogbmV3IENEQ0xLIHN0YXRlCj4gKyAqIEBwaXBl OiBwaXBlIHdpdGggd2hpY2ggdG8gc3luY2hyb25pemUgdGhlIHVwZGF0ZQo+ICsgKgo+ICsgKiBQ cm9ncmFtIHRoZSBoYXJkd2FyZSBhZnRlciB1cGRhdGluZyB0aGUgSFcgcGxhbmUgc3RhdGUgYmFz ZWQgb24gdGhlIHBhc3NlZAo+ICsgKiBpbiBDRENMSyBzdGF0ZSwgaWYgbmVjZXNzYXJ5Lgo+ICsg Ki8KPiArdm9pZAo+ICtpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKm9sZF9zdGF0ZSwKPiArCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0 YXRlICpuZXdfc3RhdGUsCj4gKwkJCQkgIGVudW0gcGlwZSBwaXBlKQo+ICt7Cj4gKwlpZiAocGlw ZSAhPSBJTlZBTElEX1BJUEUgJiYgb2xkX3N0YXRlLT5jZGNsayA+IG5ld19zdGF0ZS0+Y2RjbGsp Cj4gKwkJaW50ZWxfc2V0X2NkY2xrKGRldl9wcml2LCBuZXdfc3RhdGUsIHBpcGUpOwo+ICt9Cj4g Kwo+ICAgc3RhdGljIGludCBpbnRlbF9waXhlbF9yYXRlX3RvX2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPiAgIAkJCQkgICAgIGludCBwaXhlbF9yYXRlKQo+ICAgewo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBmOTJiYzE4NTM1OTUuLjZm NGRiNjgwNTljZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAt MTI5OTksNiArMTI5OTksNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgIAlpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNz ID0gZGV2X3ByaXYtPmFjdGl2ZV9jcnRjczsKPiAgIAlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNh bCA9IGRldl9wcml2LT5jZGNsay5sb2dpY2FsOwo+ICAgCWludGVsX3N0YXRlLT5jZGNsay5hY3R1 YWwgPSBkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsOwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUg PSBJTlZBTElEX1BJUEU7Cj4gICAKPiAgIAlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gICAJCWlm IChuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQo+IEBAIC0xMzAxOCw2ICsxMzAxOSw4IEBAIHN0YXRp YyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQo+ICAgCSAqIGFkanVzdGVkX21vZGUgYml0cyBpbiB0aGUgY3J0YyBkaXJlY3RseS4KPiAgIAkg Ki8KPiAgIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrKSB7Cj4gKwkJ ZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICAgCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NhbGNfY2RjbGsoc3RhdGUpOwo+ICAgCQlpZiAocmV0IDwgMCkKPiAgIAkJCXJldHVybiByZXQ7 Cj4gQEAgLTEzMDM0LDEyICsxMzAzNywzNiBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hl Y2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgIAkJCQlyZXR1cm4gcmV0Owo+ ICAgCQl9Cj4gICAKPiArCQlpZiAoaXNfcG93ZXJfb2ZfMihpbnRlbF9zdGF0ZS0+YWN0aXZlX2Ny dGNzKSkgewo+ICsJCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gKwkJCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiArCj4gKwkJCXBpcGUgPSBpbG9nMihpbnRlbF9zdGF0ZS0+ YWN0aXZlX2NydGNzKTsKPiArCQkJY3J0YyA9ICZpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZf cHJpdiwgcGlwZSktPmJhc2U7Cj4gKwkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdf Y3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gKwkJCWlmIChjcnRjX3N0YXRlICYmIG5lZWRzX21v ZGVzZXQoY3J0Y19zdGF0ZSkpCj4gKwkJCQlwaXBlID0gSU5WQUxJRF9QSVBFOwo+ICsJCX0gZWxz ZSB7Cj4gKwkJCXBpcGUgPSBJTlZBTElEX1BJUEU7Cj4gKwkJfQo+ICsKPiAgIAkJLyogQWxsIHBp cGVzIG11c3QgYmUgc3dpdGNoZWQgb2ZmIHdoaWxlIHdlIGNoYW5nZSB0aGUgY2RjbGsuICovCj4g LQkJaWYgKGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2LT5jZGNsay5hY3R1YWws Cj4gLQkJCQkJICAgICAgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwpKSB7Cj4gKwkJaWYgKHBp cGUgIT0gSU5WQUxJRF9QSVBFICYmCj4gKwkJICAgIGludGVsX2NkY2xrX25lZWRzX2NkMnhfdXBk YXRlKGRldl9wcml2LAo+ICsJCQkJCQkgICZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsLAo+ICsJCQkJ CQkgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsKSkgewo+ICsJCQlyZXQgPSBpbnRlbF9sb2Nr X2FsbF9waXBlcyhzdGF0ZSk7Cj4gKwkJCWlmIChyZXQgPCAwKQo+ICsJCQkJcmV0dXJuIHJldDsK PiArCj4gKwkJCWludGVsX3N0YXRlLT5jZGNsay5waXBlID0gcGlwZTsKPiArCQl9IGVsc2UgaWYg KGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCj4gKwkJ CQkJCSAgICAgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwpKSB7Cj4gICAJCQlyZXQgPSBpbnRl bF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7Cj4gICAJCQlpZiAocmV0IDwgMCkKPiAgIAkJCQly ZXR1cm4gcmV0Owo+ICsKPiArCQkJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUgPSBJTlZBTElEX1BJ UEU7Cj4gICAJCX0KPiAgIAo+ICAgCQlEUk1fREVCVUdfS01TKCJOZXcgY2RjbGsgY2FsY3VsYXRl ZCB0byBiZSBsb2dpY2FsICV1IGtIeiwgYWN0dWFsICV1IGtIelxuIiwKPiBAQCAtMTM0NDgsNyAr MTM0NzUsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgIAlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsK PiAgIAkJZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKHN0YXRl LT5kZXYsIHN0YXRlKTsKPiAgIAo+IC0JCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwgJmRldl9w cml2LT5jZGNsay5hY3R1YWwpOwo+ICsJCWludGVsX3NldF9jZGNsa19wcmVfcGxhbmVfdXBkYXRl KGRldl9wcml2LAo+ICsJCQkJCQkgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwsCj4gKwkJCQkJ CSAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKPiArCQkJCQkJIGludGVsX3N0YXRlLT5jZGNsay5w aXBlKTsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBTS0wgd29ya2Fyb3VuZDogYnNwZWMgcmVjb21t ZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UKPiBAQCAtMTM0NzcsNiArMTM1MDcsMTIg QEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiAgIAkvKiBOb3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBl LCBhbmQgY29ubmVjdG9ycyB0aGF0IHdlIHNldCB1cC4gKi8KPiAgIAlkZXZfcHJpdi0+ZGlzcGxh eS51cGRhdGVfY3J0Y3Moc3RhdGUpOwo+ICAgCj4gKwlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQp Cj4gKwkJaW50ZWxfc2V0X2NkY2xrX3Bvc3RfcGxhbmVfdXBkYXRlKGRldl9wcml2LAo+ICsJCQkJ CQkgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLAo+ICsJCQkJCQkgICZkZXZfcHJpdi0+Y2Rj bGsuYWN0dWFsLAo+ICsJCQkJCQkgIGludGVsX3N0YXRlLT5jZGNsay5waXBlKTsKPiArCj4gICAJ LyogRklYTUU6IFdlIHNob3VsZCBjYWxsIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25l KCkgaGVyZQo+ICAgCSAqIGFscmVhZHksIGJ1dCBzdGlsbCBuZWVkIHRoZSBzdGF0ZSBmb3IgdGhl IGRlbGF5ZWQgb3B0aW1pemF0aW9uLiBUbwo+ICAgCSAqIGZpeCB0aGlzOgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggMjM5NjhkZjRlM2VhLi5mOGM5ODhmZTQ1MTYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC01NTksNiArNTU5LDggQEAgc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSB7Cj4gICAKPiAgIAkJaW50IGZvcmNlX21pbl9jZGNsazsKPiAgIAkJYm9v bCBmb3JjZV9taW5fY2RjbGtfY2hhbmdlZDsKPiArCQkvKiBwaXBlIHRvIHdoaWNoIGNkMnggdXBk YXRlIGlzIHN5bmNocm9uaXplZCAqLwo+ICsJCWVudW0gcGlwZSBwaXBlOwo+ICAgCX0gY2RjbGs7 Cj4gICAKPiAgIAlib29sIGRwbGxfc2V0LCBtb2Rlc2V0Owo+IEBAIC0xNjk0LDEzICsxNjk2LDI0 IEBAIHZvaWQgaW50ZWxfaW5pdF9jZGNsa19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpOwo+ICAgdm9pZCBpbnRlbF91cGRhdGVfbWF4X2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Cj4gICB2b2lkIGludGVsX3VwZGF0ZV9jZGNsayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICAgdm9pZCBpbnRlbF91cGRhdGVfcmF3Y2xr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gK2Jvb2wgaW50ZWxfY2RjbGtf bmVlZHNfY2QyeF91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJ CQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAo+ICsJCQkJICAgY29uc3Qg c3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpiKTsKPiAgIGJvb2wgaW50ZWxfY2RjbGtfbmVlZHNf bW9kZXNldChjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmEsCj4gICAJCQkgICAgICAg Y29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpiKTsKPiAgIGJvb2wgaW50ZWxfY2RjbGtf Y2hhbmdlZChjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmEsCj4gICAJCQkgY29uc3Qg c3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpiKTsKPiAgIHZvaWQgaW50ZWxfY2RjbGtfc3dhcF9z dGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gLXZvaWQgaW50ZWxfc2V0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkgICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpOwo+ICt2b2lkCj4gK2ludGVs X3NldF9jZGNsa19wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9zdGF0ZSwK PiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm5ld19zdGF0ZSwKPiArCQkJ CSBlbnVtIHBpcGUgcGlwZSk7Cj4gK3ZvaWQKPiAraW50ZWxfc2V0X2NkY2xrX3Bvc3RfcGxhbmVf dXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgY29uc3Qg c3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpvbGRfc3RhdGUsCj4gKwkJCQkgIGNvbnN0IHN0cnVj dCBpbnRlbF9jZGNsa19zdGF0ZSAqbmV3X3N0YXRlLAo+ICsJCQkJICBlbnVtIHBpcGUgcGlwZSk7 Cj4gICB2b2lkIGludGVsX2R1bXBfY2RjbGtfc3RhdGUoY29uc3Qgc3RydWN0IGludGVsX2NkY2xr X3N0YXRlICpjZGNsa19zdGF0ZSwKPiAgIAkJCSAgICBjb25zdCBjaGFyICpjb250ZXh0KTsKPiAg IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=