From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 1/9] drm/i915: Add .get_hw_state() method for planes Date: Thu, 12 Oct 2017 20:59:20 +0200 Message-ID: <20171012185920.uptsanl6767zgkc2@phenom.ffwll.local> References: <20171011160455.1874-1-ville.syrjala@linux.intel.com> <20171011160455.1874-2-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x244.google.com (mail-wm0-x244.google.com [IPv6:2a00:1450:400c:c09::244]) by gabe.freedesktop.org (Postfix) with ESMTPS id CEEE96E92F for ; Thu, 12 Oct 2017 18:59:24 +0000 (UTC) Received: by mail-wm0-x244.google.com with SMTP id u138so15985517wmu.4 for ; Thu, 12 Oct 2017 11:59:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20171011160455.1874-2-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 Cc: intel-gfx@lists.freedesktop.org, Alex =?iso-8859-1?Q?Villac=EDs?= Lasso List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMTEsIDIwMTcgYXQgMDc6MDQ6NDdQTSArMDMwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IEFkZCBhIC5nZXRfaHdfc3RhdGUoKSBtZXRob2QgZm9yIHBsYW5lcywgcmV0dXJu aW5nIHRydWUgb3IgZmFsc2UKPiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgcGxhbmUgaXMgZW5h YmxlZC4gVXNlIGl0IHRvIHJld3JpdGUgdGhlCj4gcGxhbmUgZW5hYmxlZC9kaXNhYmxlZCBhc3Nl cnRzIGluIHBsYXRmb3JtIGFnbm9zdGljIGZhc2hpb24uCj4gCj4gV2UgZG8gbG9zZSB0aGUgcHJl LWdlbjQgcGxhbmU8LT5waXBlIG1hcHBpbmcgY2hlY2tzLCBidXQgc2luY2Ugd2UncmUKPiBzdXBw b3NlZCBzYW5pdGl6ZSB0aGF0IGFueXdheSBpdCBkb2Vzbid0IHJlYWxseSBtYXR0ZXIuCj4gCj4g djI6IFJlb2RlciBwYXRjaGVzIHRvIG5vdCBkZXBlbmQgb24gZW51bSBvbGRfcGxhbmVfaWQKPiAg ICAgSnVzdCBjYWxsIGFzc2VydF9wbGFuZV9kaXNhYmxlZCgpIGZyb20gYXNzZXJ0X3BsYW5lc19k aXNhYmxlZCgpCj4gCj4gQ2M6IFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BnbWFpbC5j b20+Cj4gQ2M6IEFsZXggVmlsbGFjw61zIExhc3NvIDxhbGV4dmlsbGFjaXNsYXNzb0Bob3RtYWls LmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGlu dXguaW50ZWwuY29tPgoKV291bGQgaGF2ZSBiZWVuIHJlYWxseSBuaWNlIHRvIHBpbXAgb3VyIGh3 IHN0YXRlIGNoZWNrZXIgKGF0IGxlYXN0IGZvcgpzeW5jaHJvbm91cyBtb2Rlc2V0cykgdG8gdmVy aWZ5IHRoZXNlLiBUaGF0IHdheSBJIGNvdWxkIGp1c3QgYmxpbmRseSB0cnVzdApDSS4KCkFueXdh eSwgc2VlbXMgY29ycmVjdCwgYnV0IGlmIHlvdSBjYW4gc3VwcGx5IHN1Y2ggYSBwYXRjaCBhcyBh IGZvbGxvdy11cAp3b3VsZCBiZSBldmVuIGJldHRlcjoKClJldmlld2VkLWJ5OiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGlzcGxheS5jIHwgMTU1ICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgMSArCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jICB8ICA0MyArKysrKysrKysrCj4gIDMg ZmlsZXMgY2hhbmdlZCwgMTAxIGluc2VydGlvbnMoKyksIDk4IGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBiMmM1ZmJhMTAyZTEuLjgyNWFi MDBiNjYzOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBAQCAtMTE5 MiwyMyArMTE5Miw2IEBAIHZvaWQgYXNzZXJ0X3BhbmVsX3VubG9ja2VkKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gIAkgICAgIHBpcGVfbmFtZShw aXBlKSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGFzc2VydF9jdXJzb3Ioc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkgIGVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRl KQo+IC17Cj4gLQlib29sIGN1cl9zdGF0ZTsKPiAtCj4gLQlpZiAoSVNfSTg0NUcoZGV2X3ByaXYp IHx8IElTX0k4NjVHKGRldl9wcml2KSkKPiAtCQljdXJfc3RhdGUgPSBJOTE1X1JFQUQoQ1VSQ05U UihQSVBFX0EpKSAmIENVUlNPUl9FTkFCTEU7Cj4gLQllbHNlCj4gLQkJY3VyX3N0YXRlID0gSTkx NV9SRUFEKENVUkNOVFIocGlwZSkpICYgQ1VSU09SX01PREU7Cj4gLQo+IC0JSTkxNV9TVEFURV9X QVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPiAtCSAgICAgImN1cnNvciBvbiBwaXBlICVjIGFzc2Vy dGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4gLQkJCXBpcGVfbmFt ZShwaXBlKSwgb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKPiAtfQo+IC0jZGVmaW5l IGFzc2VydF9jdXJzb3JfZW5hYmxlZChkLCBwKSBhc3NlcnRfY3Vyc29yKGQsIHAsIHRydWUpCj4g LSNkZWZpbmUgYXNzZXJ0X2N1cnNvcl9kaXNhYmxlZChkLCBwKSBhc3NlcnRfY3Vyc29yKGQsIHAs IGZhbHNlKQo+IC0KPiAgdm9pZCBhc3NlcnRfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAkJIGVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRlKQo+ICB7Cj4gQEAgLTEy MzYsNzcgKzEyMTksMjUgQEAgdm9pZCBhc3NlcnRfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAkJCXBpcGVfbmFtZShwaXBlKSwgb25vZmYoc3RhdGUpLCBvbm9mZihj dXJfc3RhdGUpKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgYXNzZXJ0X3BsYW5lKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJIGVudW0gcGxhbmUgcGxhbmUsIGJvb2wg c3RhdGUpCj4gK3N0YXRpYyB2b2lkIGFzc2VydF9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lLCBib29sIHN0YXRlKQo+ICB7Cj4gLQl1MzIgdmFsOwo+IC0JYm9vbCBjdXJfc3RhdGU7Cj4g Kwlib29sIGN1cl9zdGF0ZSA9IHBsYW5lLT5nZXRfaHdfc3RhdGUocGxhbmUpOwo+ICAKPiAtCXZh bCA9IEk5MTVfUkVBRChEU1BDTlRSKHBsYW5lKSk7Cj4gLQljdXJfc3RhdGUgPSAhISh2YWwgJiBE SVNQTEFZX1BMQU5FX0VOQUJMRSk7Cj4gIAlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0 YXRlLAo+IC0JICAgICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBj dXJyZW50ICVzKVxuIiwKPiAtCQkJcGxhbmVfbmFtZShwbGFuZSksIG9ub2ZmKHN0YXRlKSwgb25v ZmYoY3VyX3N0YXRlKSk7Cj4gKwkJCSIlcyBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQgJXMs IGN1cnJlbnQgJXMpXG4iLAo+ICsJCQlwbGFuZS0+YmFzZS5uYW1lLCBvbm9mZihzdGF0ZSksIG9u b2ZmKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gIAo+IC0jZGVmaW5lIGFzc2VydF9wbGFuZV9lbmFibGVk KGQsIHApIGFzc2VydF9wbGFuZShkLCBwLCB0cnVlKQo+IC0jZGVmaW5lIGFzc2VydF9wbGFuZV9k aXNhYmxlZChkLCBwKSBhc3NlcnRfcGxhbmUoZCwgcCwgZmFsc2UpCj4gKyNkZWZpbmUgYXNzZXJ0 X3BsYW5lX2VuYWJsZWQocCkgYXNzZXJ0X3BsYW5lKHAsIHRydWUpCj4gKyNkZWZpbmUgYXNzZXJ0 X3BsYW5lX2Rpc2FibGVkKHApIGFzc2VydF9wbGFuZShwLCBmYWxzZSkKPiAgCj4gLXN0YXRpYyB2 b2lkIGFzc2VydF9wbGFuZXNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+IC0JCQkJICAgZW51bSBwaXBlIHBpcGUpCj4gK3N0YXRpYyB2b2lkIGFzc2VydF9wbGFu ZXNfZGlzYWJsZWQoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIHsKPiAtCWludCBpOwo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRl dik7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOwo+ICAKPiAtCS8qIFByaW1hcnkgcGxh bmVzIGFyZSBmaXhlZCB0byBwaXBlcyBvbiBnZW40KyAqLwo+IC0JaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gNCkgewo+IC0JCXUzMiB2YWwgPSBJOTE1X1JFQUQoRFNQQ05UUihwaXBlKSk7Cj4g LQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIERJU1BMQVlfUExBTkVfRU5BQkxFLAo+IC0JCSAgICAg InBsYW5lICVjIGFzc2VydGlvbiBmYWlsdXJlLCBzaG91bGQgYmUgZGlzYWJsZWQgYnV0IG5vdFxu IiwKPiAtCQkgICAgIHBsYW5lX25hbWUocGlwZSkpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCj4g LQkvKiBOZWVkIHRvIGNoZWNrIGJvdGggcGxhbmVzIGFnYWluc3QgdGhlIHBpcGUgKi8KPiAtCWZv cl9lYWNoX3BpcGUoZGV2X3ByaXYsIGkpIHsKPiAtCQl1MzIgdmFsID0gSTkxNV9SRUFEKERTUENO VFIoaSkpOwo+IC0JCWVudW0gcGlwZSBjdXJfcGlwZSA9ICh2YWwgJiBESVNQUExBTkVfU0VMX1BJ UEVfTUFTSykgPj4KPiAtCQkJRElTUFBMQU5FX1NFTF9QSVBFX1NISUZUOwo+IC0JCUk5MTVfU1RB VEVfV0FSTigodmFsICYgRElTUExBWV9QTEFORV9FTkFCTEUpICYmIHBpcGUgPT0gY3VyX3BpcGUs Cj4gLQkJICAgICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBvZmYgb24g cGlwZSAlYyBidXQgaXMgc3RpbGwgYWN0aXZlXG4iLAo+IC0JCSAgICAgcGxhbmVfbmFtZShpKSwg cGlwZV9uYW1lKHBpcGUpKTsKPiAtCX0KPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgYXNzZXJ0X3Nw cml0ZXNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+IC0JCQkJ ICAgIGVudW0gcGlwZSBwaXBlKQo+IC17Cj4gLQlpbnQgc3ByaXRlOwo+IC0KPiAtCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDkpIHsKPiAtCQlmb3JfZWFjaF9zcHJpdGUoZGV2X3ByaXYsIHBp cGUsIHNwcml0ZSkgewo+IC0JCQl1MzIgdmFsID0gSTkxNV9SRUFEKFBMQU5FX0NUTChwaXBlLCBz cHJpdGUpKTsKPiAtCQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIFBMQU5FX0NUTF9FTkFCTEUsCj4g LQkJCSAgICAgInBsYW5lICVkIGFzc2VydGlvbiBmYWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBp cGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwKPiAtCQkJICAgICBzcHJpdGUsIHBpcGVfbmFt ZShwaXBlKSk7Cj4gLQkJfQo+IC0JfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8 fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+IC0JCWZvcl9lYWNoX3Nwcml0ZShkZXZfcHJp diwgcGlwZSwgc3ByaXRlKSB7Cj4gLQkJCXUzMiB2YWwgPSBJOTE1X1JFQUQoU1BDTlRSKHBpcGUs IFBMQU5FX1NQUklURTAgKyBzcHJpdGUpKTsKPiAtCQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIFNQ X0VOQUJMRSwKPiAtCQkJICAgICAic3ByaXRlICVjIGFzc2VydGlvbiBmYWlsdXJlLCBzaG91bGQg YmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwKPiAtCQkJICAgICBzcHJp dGVfbmFtZShwaXBlLCBzcHJpdGUpLCBwaXBlX25hbWUocGlwZSkpOwo+IC0JCX0KPiAtCX0gZWxz ZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KSB7Cj4gLQkJdTMyIHZhbCA9IEk5MTVfUkVB RChTUFJDVEwocGlwZSkpOwo+IC0JCUk5MTVfU1RBVEVfV0FSTih2YWwgJiBTUFJJVEVfRU5BQkxF LAo+IC0JCSAgICAgInNwcml0ZSAlYyBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIG9mZiBv biBwaXBlICVjIGJ1dCBpcyBzdGlsbCBhY3RpdmVcbiIsCj4gLQkJICAgICBwbGFuZV9uYW1lKHBp cGUpLCBwaXBlX25hbWUocGlwZSkpOwo+IC0JfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDUgfHwgSVNfRzRYKGRldl9wcml2KSkgewo+IC0JCXUzMiB2YWwgPSBJOTE1X1JFQUQoRFZT Q05UUihwaXBlKSk7Cj4gLQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIERWU19FTkFCTEUsCj4gLQkJ ICAgICAic3ByaXRlICVjIGFzc2VydGlvbiBmYWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUg JWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwKPiAtCQkgICAgIHBsYW5lX25hbWUocGlwZSksIHBp cGVfbmFtZShwaXBlKSk7Cj4gLQl9Cj4gKwlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKCZk ZXZfcHJpdi0+ZHJtLCBjcnRjLCBwbGFuZSkKPiArCQlhc3NlcnRfcGxhbmVfZGlzYWJsZWQocGxh bmUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZCBhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKPiBAQCAtMTg5OSw5ICsxODMwLDcgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZW5hYmxlX3BpcGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAo+ICAJRFJNX0RFQlVH X0tNUygiZW5hYmxpbmcgcGlwZSAlY1xuIiwgcGlwZV9uYW1lKHBpcGUpKTsKPiAgCj4gLQlhc3Nl cnRfcGxhbmVzX2Rpc2FibGVkKGRldl9wcml2LCBwaXBlKTsKPiAtCWFzc2VydF9jdXJzb3JfZGlz YWJsZWQoZGV2X3ByaXYsIHBpcGUpOwo+IC0JYXNzZXJ0X3Nwcml0ZXNfZGlzYWJsZWQoZGV2X3By aXYsIHBpcGUpOwo+ICsJYXNzZXJ0X3BsYW5lc19kaXNhYmxlZChjcnRjKTsKPiAgCj4gIAkvKgo+ ICAJICogQSBwaXBlIHdpdGhvdXQgYSBQTEwgd29uJ3QgYWN0dWFsbHkgYmUgYWJsZSB0byBkcml2 ZSBiaXRzIGZyb20KPiBAQCAtMTk3MSw5ICsxOTAwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlz YWJsZV9waXBlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJICogTWFrZSBzdXJlIHBsYW5l cyB3b24ndCBrZWVwIHRyeWluZyB0byBwdW1wIHBpeGVscyB0byB1cywKPiAgCSAqIG9yIHdlIG1p Z2h0IGhhbmcgdGhlIGRpc3BsYXkuCj4gIAkgKi8KPiAtCWFzc2VydF9wbGFuZXNfZGlzYWJsZWQo ZGV2X3ByaXYsIHBpcGUpOwo+IC0JYXNzZXJ0X2N1cnNvcl9kaXNhYmxlZChkZXZfcHJpdiwgcGlw ZSk7Cj4gLQlhc3NlcnRfc3ByaXRlc19kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gKwlhc3Nl cnRfcGxhbmVzX2Rpc2FibGVkKGNydGMpOwo+ICAKPiAgCXJlZyA9IFBJUEVDT05GKGNwdV90cmFu c2NvZGVyKTsKPiAgCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+IEBAIC0zMzcwLDYgKzMyOTcsMTQg QEAgc3RhdGljIHZvaWQgaTl4eF9kaXNhYmxlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGludGVsX3Bs YW5lICpwcmltYXJ5LAo+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29y ZS5sb2NrLCBpcnFmbGFncyk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBib29sIGk5eHhfcGxhbmVfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcHJpbWFyeSkKPiArewo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwcmltYXJ5LT5iYXNlLmRldik7Cj4g KwllbnVtIHBsYW5lIHBsYW5lID0gcHJpbWFyeS0+cGxhbmU7Cj4gKwo+ICsJcmV0dXJuIEk5MTVf UkVBRChEU1BDTlRSKHBsYW5lKSkgJiBESVNQTEFZX1BMQU5FX0VOQUJMRTsKPiArfQo+ICsKPiAg c3RhdGljIHUzMgo+ICBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50KGNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpCj4gIHsKPiBAQCAtMzYzOCw2ICszNTczLDE1IEBA IHN0YXRpYyB2b2lkIHNreWxha2VfZGlzYWJsZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBpbnRlbF9w bGFuZSAqcHJpbWFyeSwKPiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNv cmUubG9jaywgaXJxZmxhZ3MpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbCBza3lsYWtlX3ByaW1h cnlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsK PiArCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7Cj4gKwllbnVtIHBsYW5lX2lkIHBsYW5l X2lkID0gcGxhbmUtPmlkOwo+ICsKPiArCXJldHVybiBJOTE1X1JFQUQoUExBTkVfQ1RMKHBpcGUs IHBsYW5lX2lkKSkgJiBQTEFORV9DVExfRU5BQkxFOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50Cj4g IF9faW50ZWxfZGlzcGxheV9yZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkgICAg ICAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+IEBAIC00OTQ0LDcgKzQ4ODgsOCBA QCB2b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJICogYSB2 Ymxhbmsgd2FpdC4KPiAgCSAqLwo+ICAKPiAtCWFzc2VydF9wbGFuZV9lbmFibGVkKGRldl9wcml2 LCBjcnRjLT5wbGFuZSk7Cj4gKwlhc3NlcnRfcGxhbmVfZW5hYmxlZCh0b19pbnRlbF9wbGFuZShj cnRjLT5iYXNlLnByaW1hcnkpKTsKPiArCj4gIAlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkg ewo+ICAJCW11dGV4X2xvY2soJmRldl9wcml2LT5wY3VfbG9jayk7Cj4gIAkJV0FSTl9PTihzYW5k eWJyaWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgRElTUExBWV9JUFNfQ09OVFJPTCwKPiBAQCAt NDk3Nyw3ICs0OTIyLDggQEAgdm9pZCBoc3dfZGlzYWJsZV9pcHMoc3RydWN0IGludGVsX2NydGMg KmNydGMpCj4gIAlpZiAoIWNydGMtPmNvbmZpZy0+aXBzX2VuYWJsZWQpCj4gIAkJcmV0dXJuOwo+ ICAKPiAtCWFzc2VydF9wbGFuZV9lbmFibGVkKGRldl9wcml2LCBjcnRjLT5wbGFuZSk7Cj4gKwlh c3NlcnRfcGxhbmVfZW5hYmxlZCh0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpKTsK PiArCj4gIAlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewo+ICAJCW11dGV4X2xvY2soJmRl dl9wcml2LT5wY3VfbG9jayk7Cj4gIAkJV0FSTl9PTihzYW5keWJyaWRnZV9wY29kZV93cml0ZShk ZXZfcHJpdiwgRElTUExBWV9JUFNfQ09OVFJPTCwgMCkpOwo+IEBAIC05NTU3LDYgKzk1MDMsMTMg QEAgc3RhdGljIHZvaWQgaTg0NV9kaXNhYmxlX2N1cnNvcihzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lLAo+ICAJaTg0NV91cGRhdGVfY3Vyc29yKHBsYW5lLCBOVUxMLCBOVUxMKTsKPiAgfQo+ICAK PiArc3RhdGljIGJvb2wgaTg0NV9jdXJzb3JfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFu ZSAqcGxhbmUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiArCj4gKwlyZXR1cm4gSTkxNV9SRUFEKENVUkNOVFIo UElQRV9BKSkgJiBDVVJTT1JfRU5BQkxFOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdTMyIGk5eHhfY3Vy c29yX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJ ICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiAgewo+IEBA IC05NzUwLDYgKzk3MDMsMTMgQEAgc3RhdGljIHZvaWQgaTl4eF9kaXNhYmxlX2N1cnNvcihzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICAJaTl4eF91cGRhdGVfY3Vyc29yKHBsYW5lLCBOVUxM LCBOVUxMKTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgaTl4eF9jdXJzb3JfZ2V0X2h3X3N0YXRl KHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiArCWVudW0gcGlwZSBw aXBlID0gcGxhbmUtPnBpcGU7Cj4gKwo+ICsJcmV0dXJuIEk5MTVfUkVBRChDVVJDTlRSKHBpcGUp KSAmIENVUlNPUl9NT0RFOwo+ICt9Cj4gIAo+ICAvKiBWRVNBIDY0MHg0ODB4NzJIeiBtb2RlIHRv IHNldCBvbiB0aGUgcGlwZSAqLwo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgbG9hZF9kZXRlY3RfbW9kZSA9IHsKPiBAQCAtMTMyMzUsNiArMTMxOTUsNyBAQCBpbnRlbF9w cmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVu dW0gcGlwZSBwaXBlKQo+ICAKPiAgCQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBza3lsYWtlX3Vw ZGF0ZV9wcmltYXJ5X3BsYW5lOwo+ICAJCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBza3lsYWtl X2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsKPiArCQlwcmltYXJ5LT5nZXRfaHdfc3RhdGUgPSBza3ls YWtlX3ByaW1hcnlfZ2V0X2h3X3N0YXRlOwo+ICAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3By aXYpID49IDkpIHsKPiAgCQlpbnRlbF9wcmltYXJ5X2Zvcm1hdHMgPSBza2xfcHJpbWFyeV9mb3Jt YXRzOwo+ICAJCW51bV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcHJpbWFyeV9mb3JtYXRzKTsK PiBAQCAtMTMyNDUsNiArMTMyMDYsNyBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ICAKPiAgCQlw cmltYXJ5LT51cGRhdGVfcGxhbmUgPSBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+ICAJ CXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBza3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFuZTsK PiArCQlwcmltYXJ5LT5nZXRfaHdfc3RhdGUgPSBza3lsYWtlX3ByaW1hcnlfZ2V0X2h3X3N0YXRl Owo+ICAJfSBlbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDQpIHsKPiAgCQlpbnRlbF9w cmltYXJ5X2Zvcm1hdHMgPSBpOTY1X3ByaW1hcnlfZm9ybWF0czsKPiAgCQludW1fZm9ybWF0cyA9 IEFSUkFZX1NJWkUoaTk2NV9wcmltYXJ5X2Zvcm1hdHMpOwo+IEBAIC0xMzI1Miw2ICsxMzIxNCw3 IEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gIAo+ICAJCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9 IGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmU7Cj4gIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9 IGk5eHhfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+ICsJCXByaW1hcnktPmdldF9od19zdGF0ZSA9 IGk5eHhfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ICAJfSBlbHNlIHsKPiAgCQlpbnRlbF9wcmltYXJ5 X2Zvcm1hdHMgPSBpOHh4X3ByaW1hcnlfZm9ybWF0czsKPiAgCQludW1fZm9ybWF0cyA9IEFSUkFZ X1NJWkUoaTh4eF9wcmltYXJ5X2Zvcm1hdHMpOwo+IEBAIC0xMzI1OSw2ICsxMzIyMiw3IEBAIGlu dGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgZW51bSBwaXBlIHBpcGUpCj4gIAo+ICAJCXByaW1hcnktPnVwZGF0ZV9wbGFuZSA9IGk5eHhf dXBkYXRlX3ByaW1hcnlfcGxhbmU7Cj4gIAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9IGk5eHhf ZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+ICsJCXByaW1hcnktPmdldF9od19zdGF0ZSA9IGk5eHhf cGxhbmVfZ2V0X2h3X3N0YXRlOwo+ICAJfQo+ICAKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp ID49IDkpCj4gQEAgLTEzMzQ4LDEwICsxMzMxMiwxMiBAQCBpbnRlbF9jdXJzb3JfcGxhbmVfY3Jl YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWlmIChJU19JODQ1Ryhk ZXZfcHJpdikgfHwgSVNfSTg2NUcoZGV2X3ByaXYpKSB7Cj4gIAkJY3Vyc29yLT51cGRhdGVfcGxh bmUgPSBpODQ1X3VwZGF0ZV9jdXJzb3I7Cj4gIAkJY3Vyc29yLT5kaXNhYmxlX3BsYW5lID0gaTg0 NV9kaXNhYmxlX2N1cnNvcjsKPiArCQljdXJzb3ItPmdldF9od19zdGF0ZSA9IGk4NDVfY3Vyc29y X2dldF9od19zdGF0ZTsKPiAgCQljdXJzb3ItPmNoZWNrX3BsYW5lID0gaTg0NV9jaGVja19jdXJz b3I7Cj4gIAl9IGVsc2Ugewo+ICAJCWN1cnNvci0+dXBkYXRlX3BsYW5lID0gaTl4eF91cGRhdGVf Y3Vyc29yOwo+ICAJCWN1cnNvci0+ZGlzYWJsZV9wbGFuZSA9IGk5eHhfZGlzYWJsZV9jdXJzb3I7 Cj4gKwkJY3Vyc29yLT5nZXRfaHdfc3RhdGUgPSBpOXh4X2N1cnNvcl9nZXRfaHdfc3RhdGU7Cj4g IAkJY3Vyc29yLT5jaGVja19wbGFuZSA9IGk5eHhfY2hlY2tfY3Vyc29yOwo+ICAJfQo+ICAKPiBA QCAtMTQ2OTksOCArMTQ2NjUsOCBAQCB2b2lkIGk4MzBfZGlzYWJsZV9waXBlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gIAlEUk1fREVCVUdfS01T KCJkaXNhYmxpbmcgcGlwZSAlYyBkdWUgdG8gZm9yY2UgcXVpcmtcbiIsCj4gIAkJICAgICAgcGlw ZV9uYW1lKHBpcGUpKTsKPiAgCj4gLQlhc3NlcnRfcGxhbmVfZGlzYWJsZWQoZGV2X3ByaXYsIFBM QU5FX0EpOwo+IC0JYXNzZXJ0X3BsYW5lX2Rpc2FibGVkKGRldl9wcml2LCBQTEFORV9CKTsKPiAr CWFzc2VydF9wbGFuZXNfZGlzYWJsZWQoaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYs IFBJUEVfQSkpOwo+ICsJYXNzZXJ0X3BsYW5lc19kaXNhYmxlZChpbnRlbF9nZXRfY3J0Y19mb3Jf cGlwZShkZXZfcHJpdiwgUElQRV9CKSk7Cj4gIAo+ICAJSTkxNV9XUklURShQSVBFQ09ORihwaXBl KSwgMCk7Cj4gIAlQT1NUSU5HX1JFQUQoUElQRUNPTkYocGlwZSkpOwo+IEBAIC0xNDkxNCwyMCAr MTQ4ODAsMTMgQEAgdm9pZCBpOTE1X3JlZGlzYWJsZV92Z2Eoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VS X0RPTUFJTl9WR0EpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBwcmltYXJ5X2dldF9od19zdGF0 ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gLQo+IC0JcmV0dXJu IEk5MTVfUkVBRChEU1BDTlRSKHBsYW5lLT5wbGFuZSkpICYgRElTUExBWV9QTEFORV9FTkFCTEU7 Cj4gLX0KPiAtCj4gIC8qIEZJWE1FIHJlYWQgb3V0IGZ1bGwgcGxhbmUgc3RhdGUgZm9yIGFsbCBw bGFuZXMgKi8KPiAgc3RhdGljIHZvaWQgcmVhZG91dF9wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPiAgewo+ICAJc3RydWN0IGludGVsX3BsYW5lICpwcmltYXJ5ID0gdG9faW50 ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsKPiAgCWJvb2wgdmlzaWJsZTsKPiAgCj4gLQl2 aXNpYmxlID0gY3J0Yy0+YWN0aXZlICYmIHByaW1hcnlfZ2V0X2h3X3N0YXRlKHByaW1hcnkpOwo+ ICsJdmlzaWJsZSA9IGNydGMtPmFjdGl2ZSAmJiBwcmltYXJ5LT5nZXRfaHdfc3RhdGUocHJpbWFy eSk7Cj4gIAo+ICAJaW50ZWxfc2V0X3BsYW5lX3Zpc2libGUodG9faW50ZWxfY3J0Y19zdGF0ZShj cnRjLT5iYXNlLnN0YXRlKSwKPiAgCQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHByaW1hcnktPmJh c2Uuc3RhdGUpLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggY2RkYTBhODRiYWJl Li4yNGJiZjA1MTg0NzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC04Njgs NiArODY4LDcgQEAgc3RydWN0IGludGVsX3BsYW5lIHsKPiAgCQkJICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKPiAgCXZvaWQgKCpkaXNhYmxlX3BsYW5l KShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICAJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0Yyk7Cj4gKwlib29sICgqZ2V0X2h3X3N0YXRlKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lKTsKPiAgCWludCAoKmNoZWNrX3BsYW5lKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ ICAJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3By aXRlLmMKPiBpbmRleCBmMjkzNjk2MjJkMmMuLmE1MzNkZjZmZTcwNiAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gQEAgLTMyOSw2ICszMjksMTYgQEAgc2tsX2Rpc2FibGVf cGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwgc3RydWN0IGludGVsX2NydGMgKmNydGMp Cj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZs YWdzKTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wKPiArc2tsX3BsYW5lX2dldF9od19zdGF0ZShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gKwllbnVtIHBsYW5lX2lk IHBsYW5lX2lkID0gcGxhbmUtPmlkOwo+ICsJZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsK PiArCj4gKwlyZXR1cm4gSTkxNV9SRUFEKFBMQU5FX0NUTChwaXBlLCBwbGFuZV9pZCkpICYgUExB TkVfQ1RMX0VOQUJMRTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQKPiAgY2h2X3VwZGF0ZV9jc2Mo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwgdWludDMyX3QgZm9ybWF0KQo+ICB7Cj4gQEAgLTUw Niw2ICs1MTYsMTYgQEAgdmx2X2Rpc2FibGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZSwgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZk ZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdzKTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wK PiArdmx2X3BsYW5lX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ICt7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5i YXNlLmRldik7Cj4gKwllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwo+ICsJZW51 bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKPiArCj4gKwlyZXR1cm4gSTkxNV9SRUFEKFNQQ05U UihwaXBlLCBwbGFuZV9pZCkpICYgU1BfRU5BQkxFOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdTMyIGl2 Yl9zcHJpdGVfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ ICAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gIHsK PiBAQCAtNjQ2LDYgKzY2NiwxNSBAQCBpdmJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxh bmUgKnBsYW5lLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwo+ICB9Cj4gIAo+ICtzdGF0 aWMgYm9vbAo+ICtpdmJfcGxhbmVfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo cGxhbmUtPmJhc2UuZGV2KTsKPiArCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7Cj4gKwo+ ICsJcmV0dXJuIEk5MTVfUkVBRChTUFJDVEwocGlwZSkpICYgU1BSSVRFX0VOQUJMRTsKPiArfQo+ ICsKPiAgc3RhdGljIHUzMiBnNHhfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQo+ICB7Cj4gQEAgLTc3Nyw2ICs4MDYsMTUgQEAgZzR4X2Rpc2FibGVfcGxh bmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4g IAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2ssIGlycWZsYWdz KTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wKPiArZzR4X3BsYW5lX2dldF9od19zdGF0ZShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gKwllbnVtIHBpcGUgcGlwZSA9 IHBsYW5lLT5waXBlOwo+ICsKPiArCXJldHVybiBJOTE1X1JFQUQoRFZTQ05UUihwaXBlKSkgJiBE VlNfRU5BQkxFOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50Cj4gIGludGVsX2NoZWNrX3Nwcml0ZV9w bGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICAJCQkgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gQEAgLTEyMzIsNiArMTI3MCw3IEBAIGludGVsX3Nwcml0ZV9w bGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgCQlp bnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gc2tsX3VwZGF0ZV9wbGFuZTsKPiAgCQlpbnRlbF9w bGFuZS0+ZGlzYWJsZV9wbGFuZSA9IHNrbF9kaXNhYmxlX3BsYW5lOwo+ICsJCWludGVsX3BsYW5l LT5nZXRfaHdfc3RhdGUgPSBza2xfcGxhbmVfZ2V0X2h3X3N0YXRlOwo+ICAKPiAgCQlwbGFuZV9m b3JtYXRzID0gc2tsX3BsYW5lX2Zvcm1hdHM7Cj4gIAkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJB WV9TSVpFKHNrbF9wbGFuZV9mb3JtYXRzKTsKPiBAQCAtMTI0Miw2ICsxMjgxLDcgQEAgaW50ZWxf c3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g IAo+ICAJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSBza2xfdXBkYXRlX3BsYW5lOwo+ICAJ CWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gc2tsX2Rpc2FibGVfcGxhbmU7Cj4gKwkJaW50 ZWxfcGxhbmUtPmdldF9od19zdGF0ZSA9IHNrbF9wbGFuZV9nZXRfaHdfc3RhdGU7Cj4gIAo+ICAJ CXBsYW5lX2Zvcm1hdHMgPSBza2xfcGxhbmVfZm9ybWF0czsKPiAgCQludW1fcGxhbmVfZm9ybWF0 cyA9IEFSUkFZX1NJWkUoc2tsX3BsYW5lX2Zvcm1hdHMpOwo+IEBAIC0xMjUyLDYgKzEyOTIsNyBA QCBpbnRlbF9zcHJpdGVfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgCj4gIAkJaW50ZWxfcGxhbmUtPnVwZGF0ZV9wbGFuZSA9IHZsdl91cGRhdGVfcGxh bmU7Cj4gIAkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUgPSB2bHZfZGlzYWJsZV9wbGFuZTsK PiArCQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0YXRlID0gdmx2X3BsYW5lX2dldF9od19zdGF0ZTsK PiAgCj4gIAkJcGxhbmVfZm9ybWF0cyA9IHZsdl9wbGFuZV9mb3JtYXRzOwo+ICAJCW51bV9wbGFu ZV9mb3JtYXRzID0gQVJSQVlfU0laRSh2bHZfcGxhbmVfZm9ybWF0cyk7Cj4gQEAgLTEyNjcsNiAr MTMwOCw3IEBAIGludGVsX3Nwcml0ZV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAKPiAgCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gaXZiX3Vw ZGF0ZV9wbGFuZTsKPiAgCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZSA9IGl2Yl9kaXNhYmxl X3BsYW5lOwo+ICsJCWludGVsX3BsYW5lLT5nZXRfaHdfc3RhdGUgPSBpdmJfcGxhbmVfZ2V0X2h3 X3N0YXRlOwo+ICAKPiAgCQlwbGFuZV9mb3JtYXRzID0gc25iX3BsYW5lX2Zvcm1hdHM7Cj4gIAkJ bnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNuYl9wbGFuZV9mb3JtYXRzKTsKPiBAQCAt MTI3Nyw2ICsxMzE5LDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAo+ICAJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUg PSBnNHhfdXBkYXRlX3BsYW5lOwo+ICAJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gZzR4 X2Rpc2FibGVfcGxhbmU7Cj4gKwkJaW50ZWxfcGxhbmUtPmdldF9od19zdGF0ZSA9IGc0eF9wbGFu ZV9nZXRfaHdfc3RhdGU7Cj4gIAo+ICAJCW1vZGlmaWVycyA9IGk5eHhfcGxhbmVfZm9ybWF0X21v ZGlmaWVyczsKPiAgCQlpZiAoSVNfR0VONihkZXZfcHJpdikpIHsKPiAtLSAKPiAyLjEzLjYKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0t IApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRw Oi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK