From mboxrd@z Thu Jan 1 00:00:00 1970 From: Clinton Taylor Subject: Re: [CI 4/4] drm/i915: Skip modeset for cdclk changes if possible Date: Thu, 21 Mar 2019 14:53:00 -0700 Message-ID: <5b9e188f-c9e7-9429-7728-69d7b220e1de@intel.com> References: <20190320135439.12201-1-imre.deak@intel.com> <20190320135439.12201-4-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9EA4F89BFF for ; Thu, 21 Mar 2019 22:51:36 +0000 (UTC) In-Reply-To: <20190320135439.12201-4-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 Ck9uIDMvMjAvMTkgNjo1NCBBTSwgSW1yZSBEZWFrIHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrD pGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4KPiBJZiB3ZSBoYXZlIG9ubHkg YSBzaW5nbGUgYWN0aXZlIHBpcGUgYW5kIHRoZSBjZGNsayBjaGFuZ2Ugb25seSByZXF1aXJlcwo+ IHRoZSBjZDJ4IGRpdmlkZXIgdG8gYmUgdXBkYXRlZCBieHQrIGNhbiBkbyB0aGUgdXBkYXRlIHdp dGggZm9yY2luZyBhIGZ1bGwKPiBtb2Rlc2V0IG9uIHRoZSBwaXBlLiBUcnkgdG8gaG9vayB0aGF0 IHVwLgo+Cj4gdjI6Cj4gLSBXYWl0IGZvciB2YmxhbmsgYWZ0ZXIgYW4gb3B0aW1pemVkIENEQ0xL IGNoYW5nZS4KPiAtIEF2b2lkIG9wdGltaXphdGlvbiBpZiB0aGUgcGlwZSBuZWVkcyBhIG1vZGVz ZXQgKG9yIHdhcyBkaXNhYmxlZCkuCj4gLSBTcGxpdCBDRENMSyBjaGFuZ2UgdG8gYSBwcmUvcG9z dCBwbGFuZSB1cGRhdGUgc3RlcC4KPiB2MzoKPiAtIFVzZSBjb3JyZWN0IHZlcnNpb24gb2YgQ0RD TEsgc3RhdGUgYXMgb2xkIHN0YXRlLiAoVmlsbGUpCj4gLSBSZW1vdmUgdW51c2VkIGludGVsX2Nk Y2xrX2Nhbl9za2lwX21vZGVzZXQoKQo+IHY0Ogo+IC0gRm9yIGNvbnNpc3RlbmN5IGNhbGwgaW50 ZWxfc2V0X2NkY2xrX3Bvc3RfcGxhbmVfdXBkYXRlKCkgb25seSBkdXJpbmcKPiAgICBtb2Rlc2V0 cyAoYW5kIG5vdCBmYXN0c2V0cykuCj4KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEFiaGF5IEt1 bWFyIDxhYmhheS5rdW1hckBpbnRlbC5jb20+Cj4gVGVzdGVkLWJ5OiBBYmhheSBLdW1hciA8YWJo YXkua3VtYXJAaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFr QGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICB8ICAgMyArLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgICAz ICstCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jICAgfCAxNDIgKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyB8ICA0MiArKysrKysrKysrLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggICAgIHwgIDE3ICsrKystCj4gICA1IGZpbGVzIGNoYW5nZWQsIDE3MCBpbnNl cnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGlu ZGV4IDZiMTBjZWU0ZTc3Zi4uZDhmOTE1MjVjOTRjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gQEAgLTI3Nyw3ICsyNzcsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7 Cj4gICAJdm9pZCAoKmdldF9jZGNsaykoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ICAgCQkJICBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKTsKPiAgIAl2 b2lkICgqc2V0X2NkY2xrKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJ CSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSk7Cj4gKwkJCSAg Y29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiArCQkJICBlbnVt IHBpcGUgcGlwZSk7Cj4gICAJaW50ICgqZ2V0X2ZpZm9fc2l6ZSkoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+ICAgCQkJICAgICBlbnVtIGk5eHhfcGxhbmVfaWQgaTl4eF9wbGFu ZSk7Cj4gICAJaW50ICgqY29tcHV0ZV9waXBlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3N0YXRlKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBpbmRleCA5YjY5Y2VjMjFmN2IuLjEy YjgxNzBjZWQ5NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+IEBAIC05NTIxLDcgKzk1 MjEsOCBAQCBlbnVtIHNrbF9wb3dlcl9nYXRlIHsKPiAgICNkZWZpbmUgIEJYVF9DRENMS19DRDJY X1BJUEUocGlwZSkJKChwaXBlKSA8PCAyMCkKPiAgICNkZWZpbmUgIENEQ0xLX0RJVk1VWF9DRF9P VkVSUklERQkoMSA8PCAxOSkKPiAgICNkZWZpbmUgIEJYVF9DRENMS19DRDJYX1BJUEVfTk9ORQlC WFRfQ0RDTEtfQ0QyWF9QSVBFKDMpCj4gLSNkZWZpbmUgIElDTF9DRENMS19DRDJYX1BJUEVfTk9O RQkoNyA8PCAxOSkKPiArI2RlZmluZSAgSUNMX0NEQ0xLX0NEMlhfUElQRShwaXBlKQkoKHBpcGUp IDw8IDE5KQoKVW5mb3J0dW5hdGVseSBiaXRzIDIxOjE5IG9mIENEQ0xLX0NUTCBkb24ndCBtYXRj aCB0aGUgcGlwZSBlbnVtLiBUaGlzIApNQUNSTyB3aWxsIG5vdCB3b3JrIGV4Y2VwdCBmb3IgUElQ RV9BLgoKUGlwZV9BIGlzIDB4MDAsIFBJUEVfQiBpcyAweDAyLCBQSVBFX0MgaXMgMHgwNi4KCklu IEJYVCBvbmx5IGJpdHMgMjE6MjAgd2VyZSB1c2VkIGZvciBDRDJYIHBpcGUgc2VsZWN0IGFuZCB0 aGUgcGlwZSBlbnVtIApkb2VzIHdvcmsuCgoKLUNsaW50CgoKCj4gKyNkZWZpbmUgIElDTF9DRENM S19DRDJYX1BJUEVfTk9ORQlJQ0xfQ0RDTEtfQ0QyWF9QSVBFKDcpCj4gICAjZGVmaW5lICBCWFRf Q0RDTEtfU1NBX1BSRUNIQVJHRV9FTkFCTEUJKDEgPDwgMTYpCj4gICAjZGVmaW5lICBDRENMS19G UkVRX0RFQ0lNQUxfTUFTSwkoMHg3ZmYpCj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xr LmMKPiBpbmRleCA1YzI1NjI2ZjhjZjAuLjQ4Y2M0MmE3ZWY0ZiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfY2RjbGsuYwo+IEBAIC01MTYsNyArNTE2LDggQEAgc3RhdGljIHZvaWQgdmx2X3By b2dyYW1fcGZpX2NyZWRpdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAg fQo+ICAgCj4gICBzdGF0aWMgdm9pZCB2bHZfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAtCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNk Y2xrX3N0YXRlKQo+ICsJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtf c3RhdGUsCj4gKwkJCSAgZW51bSBwaXBlIHBpcGUpCj4gICB7Cj4gICAJaW50IGNkY2xrID0gY2Rj bGtfc3RhdGUtPmNkY2xrOwo+ICAgCXUzMiB2YWwsIGNtZCA9IGNkY2xrX3N0YXRlLT52b2x0YWdl X2xldmVsOwo+IEBAIC01OTgsNyArNTk5LDggQEAgc3RhdGljIHZvaWQgdmx2X3NldF9jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2 b2lkIGNodl9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0J CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4gKwkJCSAg Y29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiArCQkJICBlbnVt IHBpcGUgcGlwZSkKPiAgIHsKPiAgIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7Cj4g ICAJdTMyIHZhbCwgY21kID0gY2RjbGtfc3RhdGUtPnZvbHRhZ2VfbGV2ZWw7Cj4gQEAgLTY5Nyw3 ICs2OTksOCBAQCBzdGF0aWMgdm9pZCBiZHdfZ2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgYmR3X3NldF9jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCSAgY29uc3Qgc3RydWN0IGlu dGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAo+ICsJCQkgIGVudW0gcGlwZSBwaXBlKQo+ICAgewo+ ICAgCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKPiAgIAl1MzIgdmFsOwo+IEBAIC05 ODcsNyArOTkwLDggQEAgc3RhdGljIHZvaWQgc2tsX2RwbGwwX2Rpc2FibGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgfQo+ICAgCj4gICBzdGF0aWMgdm9pZCBza2xfc2V0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJICBjb25zdCBz dHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICsJCQkgIGNvbnN0IHN0cnVj dCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCj4gKwkJCSAgZW51bSBwaXBlIHBpcGUp Cj4gICB7Cj4gICAJaW50IGNkY2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwo+ICAgCWludCB2Y28g PSBjZGNsa19zdGF0ZS0+dmNvOwo+IEBAIC0xMTU4LDcgKzExNjIsNyBAQCB2b2lkIHNrbF9pbml0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAljZGNsa19zdGF0 ZS5jZGNsayA9IHNrbF9jYWxjX2NkY2xrKDAsIGNkY2xrX3N0YXRlLnZjbyk7Cj4gICAJY2RjbGtf c3RhdGUudm9sdGFnZV9sZXZlbCA9IHNrbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUu Y2RjbGspOwo+ICAgCj4gLQlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUpOwo+ ICsJc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwo+ ICAgfQo+ICAgCj4gICAvKioKPiBAQCAtMTE3Niw3ICsxMTgwLDcgQEAgdm9pZCBza2xfdW5pbml0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAljZGNsa19zdGF0 ZS52Y28gPSAwOwo+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBza2xfY2FsY192b2x0 YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgIAo+IC0Jc2tsX3NldF9jZGNsayhkZXZf cHJpdiwgJmNkY2xrX3N0YXRlKTsKPiArCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19z dGF0ZSwgSU5WQUxJRF9QSVBFKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGljIGludCBieHRfY2FsY19j ZGNsayhpbnQgbWluX2NkY2xrKQo+IEBAIC0xMzU1LDcgKzEzNTksOCBAQCBzdGF0aWMgdm9pZCBi eHRfZGVfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2 Y28pCj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGJ4dF9zZXRfY2RjbGsoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19z dGF0ZSAqY2RjbGtfc3RhdGUpCj4gKwkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRl ICpjZGNsa19zdGF0ZSwKPiArCQkJICBlbnVtIHBpcGUgcGlwZSkKPiAgIHsKPiAgIAlpbnQgY2Rj bGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7Cj4gICAJaW50IHZjbyA9IGNkY2xrX3N0YXRlLT52Y287 Cj4gQEAgLTE0MDgsMTEgKzE0MTMsMTAgQEAgc3RhdGljIHZvaWQgYnh0X3NldF9jZGNsayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCWJ4dF9kZV9wbGxfZW5hYmxlKGRl dl9wcml2LCB2Y28pOwo+ICAgCj4gICAJdmFsID0gZGl2aWRlciB8IHNrbF9jZGNsa19kZWNpbWFs KGNkY2xrKTsKPiAtCS8qCj4gLQkgKiBGSVhNRSBpZiBvbmx5IHRoZSBjZDJ4IGRpdmlkZXIgbmVl ZHMgY2hhbmdpbmcsIGl0IGNvdWxkIGJlIGRvbmUKPiAtCSAqIHdpdGhvdXQgc2h1dHRpbmcgb2Zm IHRoZSBwaXBlIChpZiBvbmx5IG9uZSBwaXBlIGlzIGFjdGl2ZSkuCj4gLQkgKi8KPiAtCXZhbCB8 PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7Cj4gKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUp Cj4gKwkJdmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEVfTk9ORTsKPiArCWVsc2UKPiArCQl2YWwg fD0gQlhUX0NEQ0xLX0NEMlhfUElQRShwaXBlKTsKPiAgIAkvKgo+ICAgCSAqIERpc2FibGUgU1NB IFByZWNoYXJnZSB3aGVuIENEIGNsb2NrIGZyZXF1ZW5jeSA8IDUwMCBNSHosCj4gICAJICogZW5h YmxlIG90aGVyd2lzZS4KPiBAQCAtMTQyMSw2ICsxNDI1LDkgQEAgc3RhdGljIHZvaWQgYnh0X3Nl dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCXZhbCB8PSBC WFRfQ0RDTEtfU1NBX1BSRUNIQVJHRV9FTkFCTEU7Cj4gICAJSTkxNV9XUklURShDRENMS19DVEws IHZhbCk7Cj4gICAKPiArCWlmIChwaXBlICE9IElOVkFMSURfUElQRSkKPiArCQlpbnRlbF93YWl0 X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOwo+ICsKPiAgIAltdXRleF9sb2NrKCZkZXZfcHJp di0+cGN1X2xvY2spOwo+ICAgCS8qCj4gICAJICogVGhlIHRpbWVvdXQgaXNuJ3Qgc3BlY2lmaWVk LCB0aGUgMm1zIHVzZWQgaGVyZSBpcyBiYXNlZCBvbgo+IEBAIC0xNTI1LDcgKzE1MzIsNyBAQCB2 b2lkIGJ4dF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAg IAl9Cj4gICAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGJ4dF9jYWxjX3ZvbHRhZ2VfbGV2 ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwo+ICAgCj4gLQlieHRfc2V0X2NkY2xrKGRldl9wcml2LCAm Y2RjbGtfc3RhdGUpOwo+ICsJYnh0X3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJ TlZBTElEX1BJUEUpOwo+ICAgfQo+ICAgCj4gICAvKioKPiBAQCAtMTU0Myw3ICsxNTUwLDcgQEAg dm9pZCBieHRfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgIAljZGNsa19zdGF0ZS52Y28gPSAwOwo+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwg PSBieHRfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgIAo+IC0JYnh0 X3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKPiArCWJ4dF9zZXRfY2RjbGsoZGV2 X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKPiAgIH0KPiAgIAo+ICAgc3RhdGlj IGludCBjbmxfY2FsY19jZGNsayhpbnQgbWluX2NkY2xrKQo+IEBAIC0xNjYzLDcgKzE2NzAsOCBA QCBzdGF0aWMgdm9pZCBjbmxfY2RjbGtfcGxsX2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGludCB2Y28pCj4gICB9Cj4gICAKPiAgIHN0YXRpYyB2b2lkIGNubF9zZXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCj4gKwkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiArCQkJICBlbnVtIHBpcGUgcGlwZSkK PiAgIHsKPiAgIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7Cj4gICAJaW50IHZjbyA9 IGNkY2xrX3N0YXRlLT52Y287Cj4gQEAgLTE3MDQsMTMgKzE3MTIsMTUgQEAgc3RhdGljIHZvaWQg Y25sX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCWNu bF9jZGNsa19wbGxfZW5hYmxlKGRldl9wcml2LCB2Y28pOwo+ICAgCj4gICAJdmFsID0gZGl2aWRl ciB8IHNrbF9jZGNsa19kZWNpbWFsKGNkY2xrKTsKPiAtCS8qCj4gLQkgKiBGSVhNRSBpZiBvbmx5 IHRoZSBjZDJ4IGRpdmlkZXIgbmVlZHMgY2hhbmdpbmcsIGl0IGNvdWxkIGJlIGRvbmUKPiAtCSAq IHdpdGhvdXQgc2h1dHRpbmcgb2ZmIHRoZSBwaXBlIChpZiBvbmx5IG9uZSBwaXBlIGlzIGFjdGl2 ZSkuCj4gLQkgKi8KPiAtCXZhbCB8PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7Cj4gKwlpZiAo cGlwZSA9PSBJTlZBTElEX1BJUEUpCj4gKwkJdmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEVfTk9O RTsKPiArCWVsc2UKPiArCQl2YWwgfD0gQlhUX0NEQ0xLX0NEMlhfUElQRShwaXBlKTsKPiAgIAlJ OTE1X1dSSVRFKENEQ0xLX0NUTCwgdmFsKTsKPiAgIAo+ICsJaWYgKHBpcGUgIT0gSU5WQUxJRF9Q SVBFKQo+ICsJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgcGlwZSk7Cj4gKwo+ICAg CS8qIGluZm9ybSBQQ1Ugb2YgdGhlIGNoYW5nZSAqLwo+ICAgCW11dGV4X2xvY2soJmRldl9wcml2 LT5wY3VfbG9jayk7Cj4gICAJc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIFNLTF9Q Q09ERV9DRENMS19DT05UUk9MLAo+IEBAIC0xODQ3LDEwICsxODU3LDEyIEBAIHN0YXRpYyBpbnQg aWNsX2NhbGNfY2RjbGtfcGxsX3ZjbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGludCBjZGNsaykKPiAgIH0KPiAgIAo+ICAgc3RhdGljIHZvaWQgaWNsX3NldF9jZGNsayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJCSAgY29uc3Qgc3RydWN0IGludGVs X2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKPiArCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKmNkY2xrX3N0YXRlLAo+ICsJCQkgIGVudW0gcGlwZSBwaXBlKQo+ICAgewo+ICAg CXVuc2lnbmVkIGludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKPiAgIAl1bnNpZ25lZCBp bnQgdmNvID0gY2RjbGtfc3RhdGUtPnZjbzsKPiArCXUzMiB2YWw7Cj4gICAJaW50IHJldDsKPiAg IAo+ICAgCW11dGV4X2xvY2soJmRldl9wcml2LT5wY3VfbG9jayk7Cj4gQEAgLTE4NzIsOCArMTg4 NCwxNSBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgIAlpZiAoZGV2X3ByaXYtPmNkY2xrLmh3LnZjbyAhPSB2Y28pCj4gICAJ CWNubF9jZGNsa19wbGxfZW5hYmxlKGRldl9wcml2LCB2Y28pOwo+ICAgCj4gLQlJOTE1X1dSSVRF KENEQ0xLX0NUTCwgSUNMX0NEQ0xLX0NEMlhfUElQRV9OT05FIHwKPiAtCQkJICAgICAgc2tsX2Nk Y2xrX2RlY2ltYWwoY2RjbGspKTsKPiArCXZhbCA9IHNrbF9jZGNsa19kZWNpbWFsKGNkY2xrKTsK PiArCWlmIChwaXBlID09IElOVkFMSURfUElQRSkKPiArCQl2YWwgfD0gSUNMX0NEQ0xLX0NEMlhf UElQRV9OT05FOwo+ICsJZWxzZQo+ICsJCXZhbCB8PSBJQ0xfQ0RDTEtfQ0QyWF9QSVBFKHBpcGUp Owo+ICsJSTkxNV9XUklURShDRENMS19DVEwsIHZhbCk7Cj4gKwo+ICsJaWYgKHBpcGUgIT0gSU5W QUxJRF9QSVBFKQo+ICsJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgcGlwZSk7Cj4g ICAKPiAgIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+cGN1X2xvY2spOwo+ICAgCXNhbmR5YnJpZGdl X3Bjb2RlX3dyaXRlKGRldl9wcml2LCBTS0xfUENPREVfQ0RDTEtfQ09OVFJPTCwKPiBAQCAtMjAw Miw3ICsyMDIxLDcgQEAgdm9pZCBpY2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gICAJc2FuaXRpemVkX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPQo+ICAgCQkJ CWljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoc2FuaXRpemVkX3N0YXRlLmNkY2xrKTsKPiAgIAo+IC0J aWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJnNhbml0aXplZF9zdGF0ZSk7Cj4gKwlpY2xfc2V0X2Nk Y2xrKGRldl9wcml2LCAmc2FuaXRpemVkX3N0YXRlLCBJTlZBTElEX1BJUEUpOwo+ICAgfQo+ICAg Cj4gICAvKioKPiBAQCAtMjAyMCw3ICsyMDM5LDcgQEAgdm9pZCBpY2xfdW5pbml0X2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIAljZGNsa19zdGF0ZS52Y28gPSAw Owo+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBpY2xfY2FsY192b2x0YWdlX2xldmVs KGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgIAo+IC0JaWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNk Y2xrX3N0YXRlKTsKPiArCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5W QUxJRF9QSVBFKTsKPiAgIH0KPiAgIAo+ICAgLyoqCj4gQEAgLTIwNDgsNyArMjA2Nyw3IEBAIHZv aWQgY25sX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAg CWNkY2xrX3N0YXRlLnZjbyA9IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsa19zdGF0 ZS5jZGNsayk7Cj4gICAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGNubF9jYWxjX3ZvbHRh Z2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwo+ICAgCj4gLQljbmxfc2V0X2NkY2xrKGRldl9w cml2LCAmY2RjbGtfc3RhdGUpOwo+ICsJY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0 YXRlLCBJTlZBTElEX1BJUEUpOwo+ICAgfQo+ICAgCj4gICAvKioKPiBAQCAtMjA2Niw3ICsyMDg1 LDcgQEAgdm9pZCBjbmxfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKPiAgIAljZGNsa19zdGF0ZS52Y28gPSAwOwo+ICAgCWNkY2xrX3N0YXRlLnZvbHRhZ2Vf bGV2ZWwgPSBjbmxfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKPiAgIAo+ IC0JY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKPiArCWNubF9zZXRfY2Rj bGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKPiAgIH0KPiAgIAo+ICAg LyoqCj4gQEAgLTIwODYsNiArMjEwNSwyNyBAQCBib29sIGludGVsX2NkY2xrX25lZWRzX21vZGVz 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 MjEzMywxMiArMjE3MywxNCBAQCB2b2lkIGludGVsX2R1bXBfY2RjbGtfc3RhdGUoY29uc3Qgc3Ry dWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiAgICAqIGludGVsX3NldF9jZGNs ayAtIFB1c2ggdGhlIENEQ0xLIHN0YXRlIHRvIHRoZSBoYXJkd2FyZQo+ICAgICogQGRldl9wcml2 OiBpOTE1IGRldmljZQo+ICAgICogQGNkY2xrX3N0YXRlOiBuZXcgQ0RDTEsgc3RhdGUKPiArICog QHBpcGU6IHBpcGUgd2l0aCB3aGljaCB0byBzeW5jaHJvbml6ZSB0aGUgdXBkYXRlCj4gICAgKgo+ ICAgICogUHJvZ3JhbSB0aGUgaGFyZHdhcmUgYmFzZWQgb24gdGhlIHBhc3NlZCBpbiBDRENMSyBz dGF0ZSwKPiAgICAqIGlmIG5lY2Vzc2FyeS4KPiAgICAqLwo+IC12b2lkIGludGVsX3NldF9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gLQkJICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQo+ICtzdGF0aWMgdm9pZCBpbnRlbF9z ZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICsJCQkgICAgY29u c3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKPiArCQkJICAgIGVudW0g cGlwZSBwaXBlKQo+ICAgewo+ICAgCWlmICghaW50ZWxfY2RjbGtfY2hhbmdlZCgmZGV2X3ByaXYt PmNkY2xrLmh3LCBjZGNsa19zdGF0ZSkpCj4gICAJCXJldHVybjsKPiBAQCAtMjE0OCw3ICsyMTkw LDcgQEAgdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAgCj4gICAJaW50ZWxfZHVtcF9jZGNsa19zdGF0ZShjZGNsa19zdGF0ZSwgIkNoYW5n aW5nIENEQ0xLIHRvIik7Cj4gICAKPiAtCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayhkZXZf cHJpdiwgY2RjbGtfc3RhdGUpOwo+ICsJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2NkY2xrKGRldl9w cml2LCBjZGNsa19zdGF0ZSwgcGlwZSk7Cj4gICAKPiAgIAlpZiAoV0FSTihpbnRlbF9jZGNsa19j aGFuZ2VkKCZkZXZfcHJpdi0+Y2RjbGsuaHcsIGNkY2xrX3N0YXRlKSwKPiAgIAkJICJjZGNsayBz dGF0ZSBkb2Vzbid0IG1hdGNoIVxuIikpIHsKPiBAQCAtMjE1Nyw2ICsyMTk5LDQ2IEBAIHZvaWQg 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 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBmN2I0NDc3M2UxZTcuLmJj ZWMwM2Y0M2QzYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAt MTI5ODIsNiArMTI5ODIsNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgIAlpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNz ID0gZGV2X3ByaXYtPmFjdGl2ZV9jcnRjczsKPiAgIAlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNh bCA9IGRldl9wcml2LT5jZGNsay5sb2dpY2FsOwo+ICAgCWludGVsX3N0YXRlLT5jZGNsay5hY3R1 YWwgPSBkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsOwo+ICsJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUg PSBJTlZBTElEX1BJUEU7Cj4gICAKPiAgIAlmb3JfZWFjaF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBpKSB7Cj4gICAJCWlm IChuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQo+IEBAIC0xMzAwMSw2ICsxMzAwMiw4IEBAIHN0YXRp YyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl KQo+ICAgCSAqIGFkanVzdGVkX21vZGUgYml0cyBpbiB0aGUgY3J0YyBkaXJlY3RseS4KPiAgIAkg Ki8KPiAgIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xrKSB7Cj4gKwkJ ZW51bSBwaXBlIHBpcGU7Cj4gKwo+ICAgCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0 X2NhbGNfY2RjbGsoc3RhdGUpOwo+ICAgCQlpZiAocmV0IDwgMCkKPiAgIAkJCXJldHVybiByZXQ7 Cj4gQEAgLTEzMDE3LDEyICsxMzAyMCwzNiBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hl 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 ZCB0byBiZSBsb2dpY2FsICV1IGtIeiwgYWN0dWFsICV1IGtIelxuIiwKPiBAQCAtMTM0MzEsNyAr MTM0NTgsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgIAlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsK PiAgIAkJZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKHN0YXRl LT5kZXYsIHN0YXRlKTsKPiAgIAo+IC0JCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwgJmRldl9w cml2LT5jZGNsay5hY3R1YWwpOwo+ICsJCWludGVsX3NldF9jZGNsa19wcmVfcGxhbmVfdXBkYXRl KGRldl9wcml2LAo+ICsJCQkJCQkgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwsCj4gKwkJCQkJ CSAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKPiArCQkJCQkJIGludGVsX3N0YXRlLT5jZGNsay5w aXBlKTsKPiAgIAo+ICAgCQkvKgo+ICAgCQkgKiBTS0wgd29ya2Fyb3VuZDogYnNwZWMgcmVjb21t ZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UKPiBAQCAtMTM0NjAsNiArMTM0OTAsMTIg QEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiAgIAkvKiBOb3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBl LCBhbmQgY29ubmVjdG9ycyB0aGF0IHdlIHNldCB1cC4gKi8KPiAgIAlkZXZfcHJpdi0+ZGlzcGxh eS51cGRhdGVfY3J0Y3Moc3RhdGUpOwo+ICAgCj4gKwlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQp Cj4gKwkJaW50ZWxfc2V0X2NkY2xrX3Bvc3RfcGxhbmVfdXBkYXRlKGRldl9wcml2LAo+ICsJCQkJ CQkgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLAo+ICsJCQkJCQkgICZkZXZfcHJpdi0+Y2Rj bGsuYWN0dWFsLAo+ICsJCQkJCQkgIGludGVsX3N0YXRlLT5jZGNsay5waXBlKTsKPiArCj4gICAJ LyogRklYTUU6IFdlIHNob3VsZCBjYWxsIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25l KCkgaGVyZQo+ICAgCSAqIGFscmVhZHksIGJ1dCBzdGlsbCBuZWVkIHRoZSBzdGF0ZSBmb3IgdGhl IGRlbGF5ZWQgb3B0aW1pemF0aW9uLiBUbwo+ICAgCSAqIGZpeCB0aGlzOgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gaW5kZXggODVkZDZhOWQxZTQyLi5kMjJhMGU5MmUwZDQgMTAwNjQ0Cj4g 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=