From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: Switch to per-crtc vblank vfuncs Date: Tue, 18 Jun 2019 15:55:07 +0300 Message-ID: <87blyvt5n8.fsf@intel.com> References: <20190618085826.4120-1-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 80CE089F3C for ; Tue, 18 Jun 2019 12:52:14 +0000 (UTC) In-Reply-To: <20190618085826.4120-1-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAxOCBKdW4gMjAxOSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBTd2l0Y2ggZnJvbSB0aGUgZHJpdmVyLXdpZGUgdmJsYW5rIHZm dW5jcyB0byB0aGUgcGVyLWNydGMgb25lcyBzbyB0aGF0Cj4gd2UgZG9uJ3QgaGF2ZSBzbyBtYW55 IHBsYXRmb3JtIHNwZWNpZmljIHZmdW5jcyBpbiB0aGUgZHJpdmVyIHN0cnVjdC4KPgo+IFdlIHN0 aWxsIG5lZWQgdG8gZG8gc29tZXRoaW5nIGFib3V0IHRoZSByZXN0IGZvIHRoZSBpcnEgdmZ1bmNz Li4uCgpXZSdsbCBhbHNvIG5lZWQgdG8gZG8gc29tZXRoaW5nIGFib3V0IGhhdmluZyBhbGwgb2Yg dGhpcyBpbgppbnRlbF9kaXNwbGF5LmMuIFdvdWxkIGludGVsX2NydGMuW2NoXSBiZSB0b28gY2xv c2UgdG8gaW50ZWxfY3J0LltjaF0/CgpBbHNvLCBpbnRlbF9lbmNvZGVyLltjaF0/CgpPciwgbW92 ZSBldmVyeXRoaW5nICplbHNlKiBvdXQgb2YgaW50ZWxfZGlzcGxheS5jPwoKTm90IHBhcnQgb2Yg dGhpcyBwYXRjaCwgb2J2aW91c2x5LiBTb21lIGNvbW1lbnRzIGlubGluZS4KCj4KPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyB8IDEw NCArKysrKysrKysrKysrKysrLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMg ICAgICAgICAgICAgIHwgIDkzICsrKysrKystLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmggICAgICAgICAgICAgIHwgIDE0ICsrKwo+ICAzIGZpbGVzIGNoYW5nZWQs IDE0MyBpbnNlcnRpb25zKCspLCA2OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggOGQ3ZTRjOGI2MGJjLi5kYzYw MmE4YTUyZmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYwo+IEBAIC0xMzU1Niw3ICsxMzU1Niw3IEBAIHUzMiBpbnRlbF9jcnRjX2dldF92Ymxh bmtfY291bnRlcihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCWlmICghdmJsYW5rLT5tYXhf dmJsYW5rX2NvdW50KQo+ICAJCXJldHVybiAodTMyKWRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19j b3VudCgmY3J0Yy0+YmFzZSk7Cj4gIAo+IC0JcmV0dXJuIGRldi0+ZHJpdmVyLT5nZXRfdmJsYW5r X2NvdW50ZXIoZGV2LCBjcnRjLT5waXBlKTsKPiArCXJldHVybiBjcnRjLT5iYXNlLmZ1bmNzLT5n ZXRfdmJsYW5rX2NvdW50ZXIoJmNydGMtPmJhc2UpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBp bnRlbF91cGRhdGVfY3J0YyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gQEAgLTE0MDk0LDE4ICsx NDA5NCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2NydGNfZnVuY3MgaW50ZWxfY3J0Y19mdW5jcyA9IHsKPiAtCS5nYW1tYV9zZXQgPSBkcm1fYXRv bWljX2hlbHBlcl9sZWdhY3lfZ2FtbWFfc2V0LAo+IC0JLnNldF9jb25maWcgPSBkcm1fYXRvbWlj X2hlbHBlcl9zZXRfY29uZmlnLAo+IC0JLmRlc3Ryb3kgPSBpbnRlbF9jcnRjX2Rlc3Ryb3ksCj4g LQkucGFnZV9mbGlwID0gZHJtX2F0b21pY19oZWxwZXJfcGFnZV9mbGlwLAo+IC0JLmF0b21pY19k dXBsaWNhdGVfc3RhdGUgPSBpbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSwKPiAtCS5hdG9taWNf ZGVzdHJveV9zdGF0ZSA9IGludGVsX2NydGNfZGVzdHJveV9zdGF0ZSwKPiAtCS5zZXRfY3JjX3Nv dXJjZSA9IGludGVsX2NydGNfc2V0X2NyY19zb3VyY2UsCj4gLQkudmVyaWZ5X2NyY19zb3VyY2Ug PSBpbnRlbF9jcnRjX3ZlcmlmeV9jcmNfc291cmNlLAo+IC0JLmdldF9jcmNfc291cmNlcyA9IGlu dGVsX2NydGNfZ2V0X2NyY19zb3VyY2VzLAo+IC19Owo+IC0KPiAgc3RydWN0IHdhaXRfcnBzX2Jv b3N0IHsKPiAgCXN0cnVjdCB3YWl0X3F1ZXVlX2VudHJ5IHdhaXQ7Cj4gIAo+IEBAIC0xNDg5OSw4 ICsxNDg4Nyw3NiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2luaXRfc2NhbGVycyhzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YywKPiAgCXNjYWxlcl9zdGF0ZS0+c2NhbGVyX2lkID0gLTE7Cj4gIH0K PiAgCj4gKyNkZWZpbmUgSU5URUxfQ1JUQ19GVU5DUyBcCj4gKwkuZ2FtbWFfc2V0ID0gZHJtX2F0 b21pY19oZWxwZXJfbGVnYWN5X2dhbW1hX3NldCwgXAo+ICsJLnNldF9jb25maWcgPSBkcm1fYXRv bWljX2hlbHBlcl9zZXRfY29uZmlnLCBcCj4gKwkuZGVzdHJveSA9IGludGVsX2NydGNfZGVzdHJv eSwgXAo+ICsJLnBhZ2VfZmxpcCA9IGRybV9hdG9taWNfaGVscGVyX3BhZ2VfZmxpcCwgXAo+ICsJ LmF0b21pY19kdXBsaWNhdGVfc3RhdGUgPSBpbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZSwgXAo+ ICsJLmF0b21pY19kZXN0cm95X3N0YXRlID0gaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRlLCBcCj4g Kwkuc2V0X2NyY19zb3VyY2UgPSBpbnRlbF9jcnRjX3NldF9jcmNfc291cmNlLCBcCj4gKwkudmVy aWZ5X2NyY19zb3VyY2UgPSBpbnRlbF9jcnRjX3ZlcmlmeV9jcmNfc291cmNlLCBcCj4gKwkuZ2V0 X2NyY19zb3VyY2VzID0gaW50ZWxfY3J0Y19nZXRfY3JjX3NvdXJjZXMKPiArCj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgYmR3X2NydGNfZnVuY3MgPSB7Cj4gKwlJTlRFTF9D UlRDX0ZVTkNTLAo+ICsKPiArCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBnNHhfZ2V0X3ZibGFua19j b3VudGVyLAo+ICsJLmVuYWJsZV92YmxhbmsgPSBiZHdfZW5hYmxlX3ZibGFuaywKPiArCS5kaXNh YmxlX3ZibGFuayA9IGJkd19kaXNhYmxlX3ZibGFuaywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25z dCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgaWxrX2NydGNfZnVuY3MgPSB7Cj4gKwlJTlRFTF9DUlRD X0ZVTkNTLAo+ICsKPiArCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBnNHhfZ2V0X3ZibGFua19jb3Vu dGVyLAo+ICsJLmVuYWJsZV92YmxhbmsgPSBpbGtfZW5hYmxlX3ZibGFuaywKPiArCS5kaXNhYmxl X3ZibGFuayA9IGlsa19kaXNhYmxlX3ZibGFuaywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2NydGNfZnVuY3MgZzR4X2NydGNfZnVuY3MgPSB7Cj4gKwlJTlRFTF9DUlRDX0ZV TkNTLAo+ICsKPiArCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBnNHhfZ2V0X3ZibGFua19jb3VudGVy LAo+ICsJLmVuYWJsZV92YmxhbmsgPSBpOTY1X2VuYWJsZV92YmxhbmssCj4gKwkuZGlzYWJsZV92 YmxhbmsgPSBpOTY1X2Rpc2FibGVfdmJsYW5rLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fY3J0Y19mdW5jcyBpOTY1X2NydGNfZnVuY3MgPSB7Cj4gKwlJTlRFTF9DUlRDX0ZV TkNTLAo+ICsKPiArCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBpOTE1X2dldF92YmxhbmtfY291bnRl ciwKPiArCS5lbmFibGVfdmJsYW5rID0gaTk2NV9lbmFibGVfdmJsYW5rLAo+ICsJLmRpc2FibGVf dmJsYW5rID0gaTk2NV9kaXNhYmxlX3ZibGFuaywKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2NydGNfZnVuY3MgaTk0NWdtX2NydGNfZnVuY3MgPSB7Cj4gKwlJTlRFTF9DUlRD X0ZVTkNTLAo+ICsKPiArCS5nZXRfdmJsYW5rX2NvdW50ZXIgPSBpOTE1X2dldF92YmxhbmtfY291 bnRlciwKPiArCS5lbmFibGVfdmJsYW5rID0gaTk0NWdtX2VuYWJsZV92YmxhbmssCj4gKwkuZGlz YWJsZV92YmxhbmsgPSBpOTQ1Z21fZGlzYWJsZV92YmxhbmssCj4gK307Cj4gKwo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9jcnRjX2Z1bmNzIGk5MTVfY3J0Y19mdW5jcyA9IHsKPiArCUlOVEVM X0NSVENfRlVOQ1MsCj4gKwo+ICsJLmdldF92YmxhbmtfY291bnRlciA9IGk5MTVfZ2V0X3ZibGFu a19jb3VudGVyLAo+ICsJLmVuYWJsZV92YmxhbmsgPSBpOHh4X2VuYWJsZV92YmxhbmssCj4gKwku ZGlzYWJsZV92YmxhbmsgPSBpOHh4X2Rpc2FibGVfdmJsYW5rLAo+ICt9Owo+ICsKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fY3J0Y19mdW5jcyBpOHh4X2NydGNfZnVuY3MgPSB7Cj4gKwlJTlRF TF9DUlRDX0ZVTkNTLAo+ICsKPiArCS8qIG5vIGh3IHZibGFuayBjb3VudGVyICovCj4gKwkuZW5h YmxlX3ZibGFuayA9IGk4eHhfZW5hYmxlX3ZibGFuaywKPiArCS5kaXNhYmxlX3ZibGFuayA9IGk4 eHhfZGlzYWJsZV92YmxhbmssCj4gK307Cj4gKwo+ICBzdGF0aWMgaW50IGludGVsX2NydGNfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ICB7 Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX2NydGNfZnVuY3MgKmZ1bmNzOwo+ICAJc3RydWN0IGludGVs X2NydGMgKmludGVsX2NydGM7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSA9IE5VTEw7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnByaW1hcnkgPSBOVUxMOwo+IEBAIC0x NDk0NCwxMCArMTUwMDAsMjggQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2luaXQoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPiAgCX0KPiAgCWludGVs X2NydGMtPnBsYW5lX2lkc19tYXNrIHw9IEJJVChjdXJzb3ItPmlkKTsKPiAgCj4gKwlpZiAoSEFT X0dNQ0goZGV2X3ByaXYpKSB7Cj4gKwkJaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpIHx8Cj4g KwkJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0c0WChkZXZfcHJpdikpCj4gKwkJ CWZ1bmNzID0gJmc0eF9jcnRjX2Z1bmNzOwo+ICsJCWVsc2UgaWYgKElTX0dFTihkZXZfcHJpdiwg NCkpCj4gKwkJCWZ1bmNzID0gJmk5NjVfY3J0Y19mdW5jczsKPiArCQllbHNlIGlmIChJU19JOTQ1 R00oZGV2X3ByaXYpKQo+ICsJCQlmdW5jcyA9ICZpOTQ1Z21fY3J0Y19mdW5jczsKPiArCQllbHNl IGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDMpCj4gKwkJCWZ1bmNzID0gJmk5MTVfY3J0Y19m dW5jczsKPiArCQllbHNlCj4gKwkJCWZ1bmNzID0gJmk4eHhfY3J0Y19mdW5jczsKPiArCX0gZWxz ZSB7Cj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKPiArCQkJZnVuY3MgPSAmYmR3 X2NydGNfZnVuY3M7Cj4gKwkJZWxzZQo+ICsJCQlmdW5jcyA9ICZpbGtfY3J0Y19mdW5jczsKPiAr CX0KPiArCgpUaGF0J3MgYSBraW5kIG9mIG9kZCBvcmRlcmluZyB3cnQgZXZlcnl0aGluZyBlbHNl IHdlIGhhdmUuIEkgZ3Vlc3MgaXQncwpDSFYgdGhhdCBtZXNzZXMgdXAgdGhlIHJlZ3VsYXIgb3Jk ZXIgd29yc3Q/CgoKCj4gIAlyZXQgPSBkcm1fY3J0Y19pbml0X3dpdGhfcGxhbmVzKCZkZXZfcHJp di0+ZHJtLCAmaW50ZWxfY3J0Yy0+YmFzZSwKPiAgCQkJCQkmcHJpbWFyeS0+YmFzZSwgJmN1cnNv ci0+YmFzZSwKPiAtCQkJCQkmaW50ZWxfY3J0Y19mdW5jcywKPiAtCQkJCQkicGlwZSAlYyIsIHBp cGVfbmFtZShwaXBlKSk7Cj4gKwkJCQkJZnVuY3MsICJwaXBlICVjIiwgcGlwZV9uYW1lKHBpcGUp KTsKPiAgCWlmIChyZXQpCj4gIAkJZ290byBmYWlsOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKPiBpbmRleCAyYWViMDQzMWM0MzIuLjFjYzI3ZWVhZTNkZSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9pcnEuYwo+IEBAIC05MTgsMTEgKzkxOCwxMiBAQCBzdGF0aWMgdm9pZCBpOTE1X2VuYWJs ZV9hc2xlX3BpcGVzdGF0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgLyog Q2FsbGVkIGZyb20gZHJtIGdlbmVyaWMgY29kZSwgcGFzc2VkIGEgJ2NydGMnLCB3aGljaAo+ICAg KiB3ZSB1c2UgYXMgYSBwaXBlIGluZGV4Cj4gICAqLwo+IC1zdGF0aWMgdTMyIGk5MTVfZ2V0X3Zi bGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ ICt1MzIgaTkxNV9nZXRfdmJsYW5rX2NvdW50ZXIoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g LQlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2LT52YmxhbmtbcGlwZV07Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7 Cj4gKwlzdHJ1Y3QgZHJtX3ZibGFua19jcnRjICp2YmxhbmsgPSAmZGV2X3ByaXYtPmRybS52Ymxh bmtbZHJtX2NydGNfaW5kZXgoY3J0YyldOwo+ICAJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUgPSAmdmJsYW5rLT5od21vZGU7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVs X2NydGMoY3J0YyktPnBpcGU7Cj4gIAlpOTE1X3JlZ190IGhpZ2hfZnJhbWUsIGxvd19mcmFtZTsK PiAgCXUzMiBoaWdoMSwgaGlnaDIsIGxvdywgcGl4ZWwsIHZibF9zdGFydCwgaHN5bmNfc3RhcnQs IGh0b3RhbDsKPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gQEAgLTk4Myw5ICs5ODQsMTAg QEAgc3RhdGljIHUzMiBpOTE1X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgCXJldHVybiAoKChoaWdoMSA8PCA4KSB8IGxvdykg KyAocGl4ZWwgPj0gdmJsX3N0YXJ0KSkgJiAweGZmZmZmZjsKPiAgfQo+ICAKPiAtc3RhdGljIHUz MiBnNHhfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGludCBwaXBlKQo+ICt1MzIgZzR4X2dldF92YmxhbmtfY291bnRlcihzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+ZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlw ZTsKPiAgCj4gIAlyZXR1cm4gSTkxNV9SRUFEKFBJUEVfRlJNQ09VTlRfRzRYKHBpcGUpKTsKPiAg fQo+IEBAIC0zMjM0LDkgKzMyMzYsMTAgQEAgc3RhdGljIGlycXJldHVybl90IGdlbjExX2lycV9o YW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKPiAgLyogQ2FsbGVkIGZyb20gZHJtIGdlbmVyaWMg Y29kZSwgcGFzc2VkICdjcnRjJyB3aGljaAo+ICAgKiB3ZSB1c2UgYXMgYSBwaXBlIGluZGV4Cj4g ICAqLwo+IC1zdGF0aWMgaW50IGk4eHhfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAraW50IGk4eHhfZW5hYmxlX3ZibGFuayhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0Yyhj cnRjKS0+cGlwZTsKPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gIAo+ICAJc3Bpbl9sb2Nr X2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+IEBAIC0zMjQ2LDE5ICsz MjQ5LDIwIEBAIHN0YXRpYyBpbnQgaTh4eF9lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRp YyBpbnQgaTk0NWdtX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWdu ZWQgaW50IHBpcGUpCj4gK2ludCBpOTQ1Z21fZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo Y3J0Yy0+ZGV2KTsKPiAgCj4gIAlpZiAoZGV2X3ByaXYtPmk5NDVnbV92YmxhbmsuZW5hYmxlZCsr ID09IDApCj4gIAkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPmk5NDVnbV92Ymxhbmsud29yayk7 Cj4gIAo+IC0JcmV0dXJuIGk4eHhfZW5hYmxlX3ZibGFuayhkZXYsIHBpcGUpOwo+ICsJcmV0dXJu IGk4eHhfZW5hYmxlX3ZibGFuayhjcnRjKTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBpOTY1X2Vu YWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4g K2ludCBpOTY1X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7Cj4gKwll bnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGU7Cj4gIAl1bnNpZ25lZCBs b25nIGlycWZsYWdzOwo+ICAKPiAgCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xv Y2ssIGlycWZsYWdzKTsKPiBAQCAtMzI2OSw5ICszMjczLDEwIEBAIHN0YXRpYyBpbnQgaTk2NV9l bmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgaXJvbmxha2VfZW5hYmxlX3ZibGFu ayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAraW50IGlsa19l bmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5kZXYpOwo+ICsJZW51bSBwaXBlIHBp cGUgPSB0b19pbnRlbF9jcnRjKGNydGMpLT5waXBlOwo+ICAJdW5zaWduZWQgbG9uZyBpcnFmbGFn czsKPiAgCXUzMiBiaXQgPSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDcgPwo+ICAJCURFX1BJUEVf VkJMQU5LX0lWQihwaXBlKSA6IERFX1BJUEVfVkJMQU5LKHBpcGUpOwo+IEBAIC0zMjg0LDE0ICsz Mjg5LDE1IEBAIHN0YXRpYyBpbnQgaXJvbmxha2VfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgCSAqIFBTUiBpcyBhY3RpdmUgYXMgbm8g ZnJhbWVzIGFyZSBnZW5lcmF0ZWQuCj4gIAkgKi8KPiAgCWlmIChIQVNfUFNSKGRldl9wcml2KSkK PiAtCQlkcm1fdmJsYW5rX3Jlc3RvcmUoZGV2LCBwaXBlKTsKPiArCQlkcm1fY3J0Y192Ymxhbmtf cmVzdG9yZShjcnRjKTsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBn ZW44X2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBp cGUpCj4gK2ludCBiZHdfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsK PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAr CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsK PiArCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKPiAgCXVuc2ln bmVkIGxvbmcgaXJxZmxhZ3M7Cj4gIAo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5p cnFfbG9jaywgaXJxZmxhZ3MpOwo+IEBAIC0zMzAyLDcgKzMzMDgsNyBAQCBzdGF0aWMgaW50IGdl bjhfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlw ZSkKPiAgCSAqIFBTUiBpcyBhY3RpdmUgYXMgbm8gZnJhbWVzIGFyZSBnZW5lcmF0ZWQsIHNvIGNo ZWNrIG9ubHkgZm9yIFBTUi4KPiAgCSAqLwo+ICAJaWYgKEhBU19QU1IoZGV2X3ByaXYpKQo+IC0J CWRybV92YmxhbmtfcmVzdG9yZShkZXYsIHBpcGUpOwo+ICsJCWRybV9jcnRjX3ZibGFua19yZXN0 b3JlKGNydGMpOwo+ICAKPiAgCXJldHVybiAwOwo+ICB9Cj4gQEAgLTMzMTAsOSArMzMxNiwxMCBA QCBzdGF0aWMgaW50IGdlbjhfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSkKPiAgLyogQ2FsbGVkIGZyb20gZHJtIGdlbmVyaWMgY29kZSwgcGFz c2VkICdjcnRjJyB3aGljaAo+ICAgKiB3ZSB1c2UgYXMgYSBwaXBlIGluZGV4Cj4gICAqLwo+IC1z dGF0aWMgdm9pZCBpOHh4X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVu c2lnbmVkIGludCBwaXBlKQo+ICt2b2lkIGk4eHhfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9j cnRjICpjcnRjKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmRldik7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Yykt PnBpcGU7Cj4gIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ICAKPiAgCXNwaW5fbG9ja19pcnFz YXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGlycWZsYWdzKTsKPiBAQCAtMzMyMCwxOSArMzMyNywy MCBAQCBzdGF0aWMgdm9pZCBpOHh4X2Rpc2FibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3By aXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGk5NDVnbV9k aXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkK PiArdm9pZCBpOTQ1Z21fZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7 Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7 Cj4gIAo+IC0JaTh4eF9kaXNhYmxlX3ZibGFuayhkZXYsIHBpcGUpOwo+ICsJaTh4eF9kaXNhYmxl X3ZibGFuayhjcnRjKTsKPiAgCj4gIAlpZiAoLS1kZXZfcHJpdi0+aTk0NWdtX3ZibGFuay5lbmFi bGVkID09IDApCj4gIAkJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPmk5NDVnbV92Ymxhbmsud29y ayk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGk5NjVfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IHBpcGUpCj4gK3ZvaWQgaTk2NV9kaXNhYmxlX3Zi bGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0gdG9f aW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4gIAo+ ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+IEBA IC0zMzQxLDkgKzMzNDksMTAgQEAgc3RhdGljIHZvaWQgaTk2NV9kaXNhYmxlX3ZibGFuayhzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcGlwZSkKPiAgCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgdm9pZCBpcm9ubGFrZV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1 bnNpZ25lZCBpbnQgcGlwZSkKPiArdm9pZCBpbGtfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9j cnRjICpjcnRjKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNydGMtPmRldik7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IHRvX2ludGVsX2NydGMoY3J0Yykt PnBpcGU7Cj4gIAl1bnNpZ25lZCBsb25nIGlycWZsYWdzOwo+ICAJdTMyIGJpdCA9IElOVEVMX0dF TihkZXZfcHJpdikgPj0gNyA/Cj4gIAkJREVfUElQRV9WQkxBTktfSVZCKHBpcGUpIDogREVfUElQ RV9WQkxBTksocGlwZSk7Cj4gQEAgLTMzNTMsOSArMzM2MiwxMCBAQCBzdGF0aWMgdm9pZCBpcm9u bGFrZV9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQg cGlwZSkKPiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJx ZmxhZ3MpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfdmJsYW5rKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICt2b2lkIGJkd19kaXNhYmxl X3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0g dG9faW50ZWxfY3J0YyhjcnRjKS0+cGlwZTsKPiAgCXVuc2lnbmVkIGxvbmcgaXJxZmxhZ3M7Cj4g IAo+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgaXJxZmxhZ3MpOwo+ IEBAIC0zMzYzLDcgKzMzNzMsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2Rpc2FibGVfdmJsYW5rKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ICAJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBpcnFmbGFncyk7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGk5NDVnbV92Ymxhbmtfd29ya19mdW5jKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykKPiArdm9pZCBpOTQ1Z21fdmJsYW5rX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndv cmspCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4gIAkJY29u dGFpbmVyX29mKHdvcmssIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlLCBpOTQ1Z21fdmJsYW5rLndv cmspOwo+IEBAIC00Nzk2LDExICs0ODA2LDYgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA4KQo+ICAJCXJwcy0+cG1faW50cm1za19tYnogfD0gR0VOOF9QTUlOVFJfRElTQUJMRV9SRURJ UkVDVF9UT19HVUM7Cj4gIAo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNSB8fCBJU19H NFgoZGV2X3ByaXYpKQo+IC0JCWRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIgPSBnNHhf Z2V0X3ZibGFua19jb3VudGVyOwo+IC0JZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAz KQo+IC0JCWRldi0+ZHJpdmVyLT5nZXRfdmJsYW5rX2NvdW50ZXIgPSBpOTE1X2dldF92Ymxhbmtf Y291bnRlcjsKPiAtCj4gIAlkZXYtPnZibGFua19kaXNhYmxlX2ltbWVkaWF0ZSA9IHRydWU7Cj4g IAo+ICAJLyogTW9zdCBwbGF0Zm9ybXMgdHJlYXQgdGhlIGRpc3BsYXkgaXJxIGJsb2NrIGFzIGFu IGFsd2F5cy1vbgo+IEBAIC00ODMwLDMyICs0ODM1LDI0IEBAIHZvaWQgaW50ZWxfaXJxX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCWRldi0+ZHJpdmVyLT5pcnFf cHJlaW5zdGFsbCA9IGNoZXJyeXZpZXdfaXJxX3Jlc2V0Owo+ICAJCWRldi0+ZHJpdmVyLT5pcnFf cG9zdGluc3RhbGwgPSBjaGVycnl2aWV3X2lycV9wb3N0aW5zdGFsbDsKPiAgCQlkZXYtPmRyaXZl ci0+aXJxX3VuaW5zdGFsbCA9IGNoZXJyeXZpZXdfaXJxX3Jlc2V0Owo+IC0JCWRldi0+ZHJpdmVy LT5lbmFibGVfdmJsYW5rID0gaTk2NV9lbmFibGVfdmJsYW5rOwo+IC0JCWRldi0+ZHJpdmVyLT5k aXNhYmxlX3ZibGFuayA9IGk5NjVfZGlzYWJsZV92Ymxhbms7Cj4gIAkJZGV2X3ByaXYtPmRpc3Bs YXkuaHBkX2lycV9zZXR1cCA9IGk5MTVfaHBkX2lycV9zZXR1cDsKPiAgCX0gZWxzZSBpZiAoSVNf VkFMTEVZVklFVyhkZXZfcHJpdikpIHsKPiAgCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSB2 YWxsZXl2aWV3X2lycV9oYW5kbGVyOwo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9 IHZhbGxleXZpZXdfaXJxX3Jlc2V0Owo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwg PSB2YWxsZXl2aWV3X2lycV9wb3N0aW5zdGFsbDsKPiAgCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5z dGFsbCA9IHZhbGxleXZpZXdfaXJxX3Jlc2V0Owo+IC0JCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJs YW5rID0gaTk2NV9lbmFibGVfdmJsYW5rOwo+IC0JCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFu ayA9IGk5NjVfZGlzYWJsZV92Ymxhbms7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9z ZXR1cCA9IGk5MTVfaHBkX2lycV9zZXR1cDsKPiAgCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9w cml2KSA+PSAxMSkgewo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfaGFuZGxlciA9IGdlbjExX2lycV9o YW5kbGVyOwo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfcHJlaW5zdGFsbCA9IGdlbjExX2lycV9yZXNl dDsKPiAgCQlkZXYtPmRyaXZlci0+aXJxX3Bvc3RpbnN0YWxsID0gZ2VuMTFfaXJxX3Bvc3RpbnN0 YWxsOwo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0YWxsID0gZ2VuMTFfaXJxX3Jlc2V0Owo+ IC0JCWRldi0+ZHJpdmVyLT5lbmFibGVfdmJsYW5rID0gZ2VuOF9lbmFibGVfdmJsYW5rOwo+IC0J CWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGdlbjhfZGlzYWJsZV92Ymxhbms7Cj4gIAkJ ZGV2X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cCA9IGdlbjExX2hwZF9pcnFfc2V0dXA7Cj4g IAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkgewo+ICAJCWRldi0+ZHJpdmVy LT5pcnFfaGFuZGxlciA9IGdlbjhfaXJxX2hhbmRsZXI7Cj4gIAkJZGV2LT5kcml2ZXItPmlycV9w cmVpbnN0YWxsID0gZ2VuOF9pcnFfcmVzZXQ7Cj4gIAkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5z dGFsbCA9IGdlbjhfaXJxX3Bvc3RpbnN0YWxsOwo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfdW5pbnN0 YWxsID0gZ2VuOF9pcnFfcmVzZXQ7Cj4gLQkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBn ZW44X2VuYWJsZV92Ymxhbms7Cj4gLQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gZ2Vu OF9kaXNhYmxlX3ZibGFuazsKPiAgCQlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gIAkJCWRl dl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBieHRfaHBkX2lycV9zZXR1cDsKPiAgCQll bHNlIGlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX1NQVCkKPiBAQCAtNDg2Nyw4 ICs0ODY0LDYgQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCj4gIAkJZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsID0gaXJvbmxha2VfaXJx X3Jlc2V0Owo+ICAJCWRldi0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpcm9ubGFrZV9pcnFf cG9zdGluc3RhbGw7Cj4gIAkJZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBpcm9ubGFrZV9p cnFfcmVzZXQ7Cj4gLQkJZGV2LT5kcml2ZXItPmVuYWJsZV92YmxhbmsgPSBpcm9ubGFrZV9lbmFi bGVfdmJsYW5rOwo+IC0JCWRldi0+ZHJpdmVyLT5kaXNhYmxlX3ZibGFuayA9IGlyb25sYWtlX2Rp c2FibGVfdmJsYW5rOwo+ICAJCWRldl9wcml2LT5kaXNwbGF5LmhwZF9pcnFfc2V0dXAgPSBpbGtf aHBkX2lycV9zZXR1cDsKPiAgCX0gZWxzZSB7Cj4gIAkJaWYgKElTX0dFTihkZXZfcHJpdiwgMikp IHsKPiBAQCAtNDg3NiwyOSArNDg3MSwyMSBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5z dGFsbCA9IGk4eHhfaXJxX3Bvc3RpbnN0YWxsOwo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRs ZXIgPSBpOHh4X2lycV9oYW5kbGVyOwo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbCA9 IGk4eHhfaXJxX3Jlc2V0Owo+IC0JCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGk4eHhf ZW5hYmxlX3ZibGFuazsKPiAtCQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gaTh4eF9k aXNhYmxlX3ZibGFuazsKPiAgCQl9IGVsc2UgaWYgKElTX0k5NDVHTShkZXZfcHJpdikpIHsKPiAg CQkJZGV2LT5kcml2ZXItPmlycV9wcmVpbnN0YWxsID0gaTkxNV9pcnFfcmVzZXQ7Cj4gIAkJCWRl di0+ZHJpdmVyLT5pcnFfcG9zdGluc3RhbGwgPSBpOTE1X2lycV9wb3N0aW5zdGFsbDsKPiAgCQkJ ZGV2LT5kcml2ZXItPmlycV91bmluc3RhbGwgPSBpOTE1X2lycV9yZXNldDsKPiAgCQkJZGV2LT5k cml2ZXItPmlycV9oYW5kbGVyID0gaTkxNV9pcnFfaGFuZGxlcjsKPiAtCQkJZGV2LT5kcml2ZXIt PmVuYWJsZV92YmxhbmsgPSBpOTQ1Z21fZW5hYmxlX3ZibGFuazsKPiAtCQkJZGV2LT5kcml2ZXIt PmRpc2FibGVfdmJsYW5rID0gaTk0NWdtX2Rpc2FibGVfdmJsYW5rOwo+ICAJCX0gZWxzZSBpZiAo SVNfR0VOKGRldl9wcml2LCAzKSkgewo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwg PSBpOTE1X2lycV9yZXNldDsKPiAgCQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5zdGFsbCA9IGk5 MTVfaXJxX3Bvc3RpbnN0YWxsOwo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbCA9IGk5 MTVfaXJxX3Jlc2V0Owo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBpOTE1X2lycV9o YW5kbGVyOwo+IC0JCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGk4eHhfZW5hYmxlX3Zi bGFuazsKPiAtCQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gaTh4eF9kaXNhYmxlX3Zi bGFuazsKPiAgCQl9IGVsc2Ugewo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX3ByZWluc3RhbGwgPSBp OTY1X2lycV9yZXNldDsKPiAgCQkJZGV2LT5kcml2ZXItPmlycV9wb3N0aW5zdGFsbCA9IGk5NjVf aXJxX3Bvc3RpbnN0YWxsOwo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX3VuaW5zdGFsbCA9IGk5NjVf aXJxX3Jlc2V0Owo+ICAJCQlkZXYtPmRyaXZlci0+aXJxX2hhbmRsZXIgPSBpOTY1X2lycV9oYW5k bGVyOwo+IC0JCQlkZXYtPmRyaXZlci0+ZW5hYmxlX3ZibGFuayA9IGk5NjVfZW5hYmxlX3ZibGFu azsKPiAtCQkJZGV2LT5kcml2ZXItPmRpc2FibGVfdmJsYW5rID0gaTk2NV9kaXNhYmxlX3ZibGFu azsKPiAgCQl9Cj4gIAkJaWYgKEk5MTVfSEFTX0hPVFBMVUcoZGV2X3ByaXYpKQo+ICAJCQlkZXZf cHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwID0gaTkxNV9ocGRfaXJxX3NldHVwOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9pcnEuaAo+IGluZGV4IGNiMjVkZDIxMzMwOC4uZWY3ODJlNWFiMjQwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2lycS5oCj4gQEAgLTExNCw0ICsxMTQsMTggQEAgdm9pZCBnZW4x MV9yZXNldF9ndWNfaW50ZXJydXB0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Cj4g IHZvaWQgZ2VuMTFfZW5hYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KTsKPiAgdm9pZCBnZW4xMV9kaXNhYmxlX2d1Y19pbnRlcnJ1cHRzKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1KTsKPiAgCj4gK3UzMiBpOTE1X2dldF92YmxhbmtfY291bnRlcihz dHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICt1MzIgZzR4X2dldF92YmxhbmtfY291bnRlcihzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpOwo+ICsKPiAraW50IGk4eHhfZW5hYmxlX3ZibGFuayhzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpOwo+ICtpbnQgaTk0NWdtX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9j cnRjICpjcnRjKTsKPiAraW50IGk5NjVfZW5hYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpOwo+ICtpbnQgaWxrX2VuYWJsZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiAr aW50IGJkd19lbmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4gK3ZvaWQgaTh4 eF9kaXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICt2b2lkIGk5NDVnbV9k aXNhYmxlX3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICt2b2lkIGk5NjVfZGlzYWJs ZV92Ymxhbmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiArdm9pZCBpbGtfZGlzYWJsZV92Ymxh bmsoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiArdm9pZCBiZHdfZGlzYWJsZV92Ymxhbmsoc3Ry dWN0IGRybV9jcnRjICpjcnRjKTsKCipjcmluZ2UqIGF0IGV4cG9zaW5nIHNvIG1hbnkgcGxhdGZv cm0gc3BlY2lmaWMgZnVuY3Rpb25zIGZyb20KaTkxNV9pcnEuYy4KCkJSLApKYW5pLgoKCgoKPiAr Cj4gICNlbmRpZiAvKiBfX0k5MTVfSVJRX0hfXyAqLwoKLS0gCkphbmkgTmlrdWxhLCBJbnRlbCBP cGVuIFNvdXJjZSBHcmFwaGljcyBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4