From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/9] drm/i915: Add .get_hw_state() method for planes Date: Fri, 13 Oct 2017 13:31:05 +0300 Message-ID: <20171013103105.GT10981@intel.com> References: <20171011160455.1874-1-ville.syrjala@linux.intel.com> <20171011160455.1874-2-ville.syrjala@linux.intel.com> <20171012185920.uptsanl6767zgkc2@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 611A56EAA2 for ; Fri, 13 Oct 2017 10:31:25 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171012185920.uptsanl6767zgkc2@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, Alex =?iso-8859-1?Q?Villac=EDs?= Lasso List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMTIsIDIwMTcgYXQgMDg6NTk6MjBQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIE9jdCAxMSwgMjAxNyBhdCAwNzowNDo0N1BNICswMzAwLCBWaWxsZSBT eXJqYWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KPiA+IAo+ID4gQWRkIGEgLmdldF9od19zdGF0ZSgpIG1ldGhvZCBmb3Ig cGxhbmVzLCByZXR1cm5pbmcgdHJ1ZSBvciBmYWxzZQo+ID4gZGVwZW5kaW5nIG9uIHdoZXRoZXIg dGhlIHBsYW5lIGlzIGVuYWJsZWQuIFVzZSBpdCB0byByZXdyaXRlIHRoZQo+ID4gcGxhbmUgZW5h YmxlZC9kaXNhYmxlZCBhc3NlcnRzIGluIHBsYXRmb3JtIGFnbm9zdGljIGZhc2hpb24uCj4gPiAK PiA+IFdlIGRvIGxvc2UgdGhlIHByZS1nZW40IHBsYW5lPC0+cGlwZSBtYXBwaW5nIGNoZWNrcywg YnV0IHNpbmNlIHdlJ3JlCj4gPiBzdXBwb3NlZCBzYW5pdGl6ZSB0aGF0IGFueXdheSBpdCBkb2Vz bid0IHJlYWxseSBtYXR0ZXIuCj4gPiAKPiA+IHYyOiBSZW9kZXIgcGF0Y2hlcyB0byBub3QgZGVw ZW5kIG9uIGVudW0gb2xkX3BsYW5lX2lkCj4gPiAgICAgSnVzdCBjYWxsIGFzc2VydF9wbGFuZV9k aXNhYmxlZCgpIGZyb20gYXNzZXJ0X3BsYW5lc19kaXNhYmxlZCgpCj4gPiAKPiA+IENjOiBUaGll cnJ5IFJlZGluZyA8dGhpZXJyeS5yZWRpbmdAZ21haWwuY29tPgo+ID4gQ2M6IEFsZXggVmlsbGFj w61zIExhc3NvIDxhbGV4dmlsbGFjaXNsYXNzb0Bob3RtYWlsLmNvbT4KPiA+IFNpZ25lZC1vZmYt Ynk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4g V291bGQgaGF2ZSBiZWVuIHJlYWxseSBuaWNlIHRvIHBpbXAgb3VyIGh3IHN0YXRlIGNoZWNrZXIg KGF0IGxlYXN0IGZvcgo+IHN5bmNocm9ub3VzIG1vZGVzZXRzKSB0byB2ZXJpZnkgdGhlc2UuIFRo YXQgd2F5IEkgY291bGQganVzdCBibGluZGx5IHRydXN0Cj4gQ0kuCj4gCj4gQW55d2F5LCBzZWVt cyBjb3JyZWN0LCBidXQgaWYgeW91IGNhbiBzdXBwbHkgc3VjaCBhIHBhdGNoIGFzIGEgZm9sbG93 LXVwCj4gd291bGQgYmUgZXZlbiBiZXR0ZXI6CgpTdXJlLCBJIGNhbiBhdCBsZWFzdCB0YWtlIGEg c3RhYiBhIGl0LgoKPiAKPiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBmZndsbC5jaD4KPiAKPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyB8IDE1NSArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAgMSArCj4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgIHwgIDQzICsrKysrKysrKysKPiA+ICAzIGZpbGVz IGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCA5OCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5kZXggYjJjNWZiYTEwMmUxLi44MjVh YjAwYjY2MzkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4g QEAgLTExOTIsMjMgKzExOTIsNiBAQCB2b2lkIGFzc2VydF9wYW5lbF91bmxvY2tlZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ID4gIAkgICAgIHBp cGVfbmFtZShwaXBlKSk7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyB2b2lkIGFzc2VydF9jdXJz b3Ioc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gLQkJCSAgZW51bSBwaXBl IHBpcGUsIGJvb2wgc3RhdGUpCj4gPiAtewo+ID4gLQlib29sIGN1cl9zdGF0ZTsKPiA+IC0KPiA+ IC0JaWYgKElTX0k4NDVHKGRldl9wcml2KSB8fCBJU19JODY1RyhkZXZfcHJpdikpCj4gPiAtCQlj dXJfc3RhdGUgPSBJOTE1X1JFQUQoQ1VSQ05UUihQSVBFX0EpKSAmIENVUlNPUl9FTkFCTEU7Cj4g PiAtCWVsc2UKPiA+IC0JCWN1cl9zdGF0ZSA9IEk5MTVfUkVBRChDVVJDTlRSKHBpcGUpKSAmIENV UlNPUl9NT0RFOwo+ID4gLQo+ID4gLQlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRl LAo+ID4gLQkgICAgICJjdXJzb3Igb24gcGlwZSAlYyBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0 ZWQgJXMsIGN1cnJlbnQgJXMpXG4iLAo+ID4gLQkJCXBpcGVfbmFtZShwaXBlKSwgb25vZmYoc3Rh dGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKPiA+IC19Cj4gPiAtI2RlZmluZSBhc3NlcnRfY3Vyc29y X2VuYWJsZWQoZCwgcCkgYXNzZXJ0X2N1cnNvcihkLCBwLCB0cnVlKQo+ID4gLSNkZWZpbmUgYXNz ZXJ0X2N1cnNvcl9kaXNhYmxlZChkLCBwKSBhc3NlcnRfY3Vyc29yKGQsIHAsIGZhbHNlKQo+ID4g LQo+ID4gIHZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gIAkJIGVudW0gcGlwZSBwaXBlLCBib29sIHN0YXRlKQo+ID4gIHsKPiA+IEBAIC0xMjM2 LDc3ICsxMjE5LDI1IEBAIHZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+ID4gIAkJCXBpcGVfbmFtZShwaXBlKSwgb25vZmYoc3RhdGUpLCBvbm9mZihj dXJfc3RhdGUpKTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgYXNzZXJ0X3BsYW5lKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+IC0JCQkgZW51bSBwbGFuZSBwbGFu ZSwgYm9vbCBzdGF0ZSkKPiA+ICtzdGF0aWMgdm9pZCBhc3NlcnRfcGxhbmUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwgYm9vbCBzdGF0ZSkKPiA+ICB7Cj4gPiAtCXUzMiB2YWw7Cj4gPiAtCWJv b2wgY3VyX3N0YXRlOwo+ID4gKwlib29sIGN1cl9zdGF0ZSA9IHBsYW5lLT5nZXRfaHdfc3RhdGUo cGxhbmUpOwo+ID4gIAo+ID4gLQl2YWwgPSBJOTE1X1JFQUQoRFNQQ05UUihwbGFuZSkpOwo+ID4g LQljdXJfc3RhdGUgPSAhISh2YWwgJiBESVNQTEFZX1BMQU5FX0VOQUJMRSk7Cj4gPiAgCUk5MTVf U1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gPiAtCSAgICAgInBsYW5lICVjIGFzc2Vy dGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4gPiAtCQkJcGxhbmVf bmFtZShwbGFuZSksIG9ub2ZmKHN0YXRlKSwgb25vZmYoY3VyX3N0YXRlKSk7Cj4gPiArCQkJIiVz IGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4gPiArCQkJ cGxhbmUtPmJhc2UubmFtZSwgb25vZmYoc3RhdGUpLCBvbm9mZihjdXJfc3RhdGUpKTsKPiA+ICB9 Cj4gPiAgCj4gPiAtI2RlZmluZSBhc3NlcnRfcGxhbmVfZW5hYmxlZChkLCBwKSBhc3NlcnRfcGxh bmUoZCwgcCwgdHJ1ZSkKPiA+IC0jZGVmaW5lIGFzc2VydF9wbGFuZV9kaXNhYmxlZChkLCBwKSBh c3NlcnRfcGxhbmUoZCwgcCwgZmFsc2UpCj4gPiArI2RlZmluZSBhc3NlcnRfcGxhbmVfZW5hYmxl ZChwKSBhc3NlcnRfcGxhbmUocCwgdHJ1ZSkKPiA+ICsjZGVmaW5lIGFzc2VydF9wbGFuZV9kaXNh YmxlZChwKSBhc3NlcnRfcGxhbmUocCwgZmFsc2UpCj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgYXNz ZXJ0X3BsYW5lc19kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4g PiAtCQkJCSAgIGVudW0gcGlwZSBwaXBlKQo+ID4gK3N0YXRpYyB2b2lkIGFzc2VydF9wbGFuZXNf ZGlzYWJsZWQoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgewo+ID4gLQlpbnQgaTsKPiA+ ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Cj4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gPiAgCj4gPiAtCS8qIFBy aW1hcnkgcGxhbmVzIGFyZSBmaXhlZCB0byBwaXBlcyBvbiBnZW40KyAqLwo+ID4gLQlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA+PSA0KSB7Cj4gPiAtCQl1MzIgdmFsID0gSTkxNV9SRUFEKERTUENO VFIocGlwZSkpOwo+ID4gLQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIERJU1BMQVlfUExBTkVfRU5B QkxFLAo+ID4gLQkJICAgICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBk aXNhYmxlZCBidXQgbm90XG4iLAo+ID4gLQkJICAgICBwbGFuZV9uYW1lKHBpcGUpKTsKPiA+IC0J CXJldHVybjsKPiA+IC0JfQo+ID4gLQo+ID4gLQkvKiBOZWVkIHRvIGNoZWNrIGJvdGggcGxhbmVz IGFnYWluc3QgdGhlIHBpcGUgKi8KPiA+IC0JZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgaSkgewo+ ID4gLQkJdTMyIHZhbCA9IEk5MTVfUkVBRChEU1BDTlRSKGkpKTsKPiA+IC0JCWVudW0gcGlwZSBj dXJfcGlwZSA9ICh2YWwgJiBESVNQUExBTkVfU0VMX1BJUEVfTUFTSykgPj4KPiA+IC0JCQlESVNQ UExBTkVfU0VMX1BJUEVfU0hJRlQ7Cj4gPiAtCQlJOTE1X1NUQVRFX1dBUk4oKHZhbCAmIERJU1BM QVlfUExBTkVfRU5BQkxFKSAmJiBwaXBlID09IGN1cl9waXBlLAo+ID4gLQkJICAgICAicGxhbmUg JWMgYXNzZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBvZmYgb24gcGlwZSAlYyBidXQgaXMgc3Rp bGwgYWN0aXZlXG4iLAo+ID4gLQkJICAgICBwbGFuZV9uYW1lKGkpLCBwaXBlX25hbWUocGlwZSkp Owo+ID4gLQl9Cj4gPiAtfQo+ID4gLQo+ID4gLXN0YXRpYyB2b2lkIGFzc2VydF9zcHJpdGVzX2Rp c2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+IC0JCQkJICAgIGVu dW0gcGlwZSBwaXBlKQo+ID4gLXsKPiA+IC0JaW50IHNwcml0ZTsKPiA+IC0KPiA+IC0JaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkgewo+ID4gLQkJZm9yX2VhY2hfc3ByaXRlKGRldl9wcml2 LCBwaXBlLCBzcHJpdGUpIHsKPiA+IC0JCQl1MzIgdmFsID0gSTkxNV9SRUFEKFBMQU5FX0NUTChw aXBlLCBzcHJpdGUpKTsKPiA+IC0JCQlJOTE1X1NUQVRFX1dBUk4odmFsICYgUExBTkVfQ1RMX0VO QUJMRSwKPiA+IC0JCQkgICAgICJwbGFuZSAlZCBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJl IG9mZiBvbiBwaXBlICVjIGJ1dCBpcyBzdGlsbCBhY3RpdmVcbiIsCj4gPiAtCQkJICAgICBzcHJp dGUsIHBpcGVfbmFtZShwaXBlKSk7Cj4gPiAtCQl9Cj4gPiAtCX0gZWxzZSBpZiAoSVNfVkFMTEVZ VklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpIHsKPiA+IC0JCWZvcl9l YWNoX3Nwcml0ZShkZXZfcHJpdiwgcGlwZSwgc3ByaXRlKSB7Cj4gPiAtCQkJdTMyIHZhbCA9IEk5 MTVfUkVBRChTUENOVFIocGlwZSwgUExBTkVfU1BSSVRFMCArIHNwcml0ZSkpOwo+ID4gLQkJCUk5 MTVfU1RBVEVfV0FSTih2YWwgJiBTUF9FTkFCTEUsCj4gPiAtCQkJICAgICAic3ByaXRlICVjIGFz c2VydGlvbiBmYWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFj dGl2ZVxuIiwKPiA+IC0JCQkgICAgIHNwcml0ZV9uYW1lKHBpcGUsIHNwcml0ZSksIHBpcGVfbmFt ZShwaXBlKSk7Cj4gPiAtCQl9Cj4gPiAtCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA3KSB7Cj4gPiAtCQl1MzIgdmFsID0gSTkxNV9SRUFEKFNQUkNUTChwaXBlKSk7Cj4gPiAtCQlJ OTE1X1NUQVRFX1dBUk4odmFsICYgU1BSSVRFX0VOQUJMRSwKPiA+IC0JCSAgICAgInNwcml0ZSAl YyBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIG9mZiBvbiBwaXBlICVjIGJ1dCBpcyBzdGls bCBhY3RpdmVcbiIsCj4gPiAtCQkgICAgIHBsYW5lX25hbWUocGlwZSksIHBpcGVfbmFtZShwaXBl KSk7Cj4gPiAtCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1IHx8IElTX0c0WChk ZXZfcHJpdikpIHsKPiA+IC0JCXUzMiB2YWwgPSBJOTE1X1JFQUQoRFZTQ05UUihwaXBlKSk7Cj4g PiAtCQlJOTE1X1NUQVRFX1dBUk4odmFsICYgRFZTX0VOQUJMRSwKPiA+IC0JCSAgICAgInNwcml0 ZSAlYyBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIG9mZiBvbiBwaXBlICVjIGJ1dCBpcyBz dGlsbCBhY3RpdmVcbiIsCj4gPiAtCQkgICAgIHBsYW5lX25hbWUocGlwZSksIHBpcGVfbmFtZShw aXBlKSk7Cj4gPiAtCX0KPiA+ICsJZm9yX2VhY2hfaW50ZWxfcGxhbmVfb25fY3J0YygmZGV2X3By aXYtPmRybSwgY3J0YywgcGxhbmUpCj4gPiArCQlhc3NlcnRfcGxhbmVfZGlzYWJsZWQocGxhbmUp Owo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBhc3NlcnRfdmJsYW5rX2Rpc2FibGVkKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+IEBAIC0xODk5LDkgKzE4MzAsNyBAQCBzdGF0aWMgdm9p ZCBpbnRlbF9lbmFibGVfcGlwZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ICAKPiA+ICAJ RFJNX0RFQlVHX0tNUygiZW5hYmxpbmcgcGlwZSAlY1xuIiwgcGlwZV9uYW1lKHBpcGUpKTsKPiA+ ICAKPiA+IC0JYXNzZXJ0X3BsYW5lc19kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiAtCWFz c2VydF9jdXJzb3JfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUpOwo+ID4gLQlhc3NlcnRfc3ByaXRl c19kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiArCWFzc2VydF9wbGFuZXNfZGlzYWJsZWQo Y3J0Yyk7Cj4gPiAgCj4gPiAgCS8qCj4gPiAgCSAqIEEgcGlwZSB3aXRob3V0IGEgUExMIHdvbid0 IGFjdHVhbGx5IGJlIGFibGUgdG8gZHJpdmUgYml0cyBmcm9tCj4gPiBAQCAtMTk3MSw5ICsxOTAw LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGlzYWJsZV9waXBlKHN0cnVjdCBpbnRlbF9jcnRjICpj cnRjKQo+ID4gIAkgKiBNYWtlIHN1cmUgcGxhbmVzIHdvbid0IGtlZXAgdHJ5aW5nIHRvIHB1bXAg cGl4ZWxzIHRvIHVzLAo+ID4gIAkgKiBvciB3ZSBtaWdodCBoYW5nIHRoZSBkaXNwbGF5Lgo+ID4g IAkgKi8KPiA+IC0JYXNzZXJ0X3BsYW5lc19kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiAt CWFzc2VydF9jdXJzb3JfZGlzYWJsZWQoZGV2X3ByaXYsIHBpcGUpOwo+ID4gLQlhc3NlcnRfc3By aXRlc19kaXNhYmxlZChkZXZfcHJpdiwgcGlwZSk7Cj4gPiArCWFzc2VydF9wbGFuZXNfZGlzYWJs ZWQoY3J0Yyk7Cj4gPiAgCj4gPiAgCXJlZyA9IFBJUEVDT05GKGNwdV90cmFuc2NvZGVyKTsKPiA+ ICAJdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gPiBAQCAtMzM3MCw2ICszMjk3LDE0IEBAIHN0YXRp YyB2b2lkIGk5eHhfZGlzYWJsZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcHJp bWFyeSwKPiA+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2Nr LCBpcnFmbGFncyk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBib29sIGk5eHhfcGxhbmVfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcHJpbWFyeSkKPiA+ICt7Cj4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocHJpbWFyeS0+YmFzZS5kZXYp Owo+ID4gKwllbnVtIHBsYW5lIHBsYW5lID0gcHJpbWFyeS0+cGxhbmU7Cj4gPiArCj4gPiArCXJl dHVybiBJOTE1X1JFQUQoRFNQQ05UUihwbGFuZSkpICYgRElTUExBWV9QTEFORV9FTkFCTEU7Cj4g PiArfQo+ID4gKwo+ID4gIHN0YXRpYyB1MzIKPiA+ICBpbnRlbF9mYl9zdHJpZGVfYWxpZ25tZW50 KGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCBpbnQgcGxhbmUpCj4gPiAgewo+ID4g QEAgLTM2MzgsNiArMzU3MywxNSBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX2Rpc2FibGVfcHJpbWFy eV9wbGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnByaW1hcnksCj4gPiAgCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwo+ID4gIH0KPiA+ICAK PiA+ICtzdGF0aWMgYm9vbCBza3lsYWtlX3ByaW1hcnlfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRl bF9wbGFuZSAqcGxhbmUpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0g cGxhbmUtPnBpcGU7Cj4gPiArCWVudW0gcGxhbmVfaWQgcGxhbmVfaWQgPSBwbGFuZS0+aWQ7Cj4g PiArCj4gPiArCXJldHVybiBJOTE1X1JFQUQoUExBTkVfQ1RMKHBpcGUsIHBsYW5lX2lkKSkgJiBQ TEFORV9DVExfRU5BQkxFOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50Cj4gPiAgX19pbnRl bF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJICAgICAgIHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+IEBAIC00OTQ0LDcgKzQ4ODgsOCBAQCB2 b2lkIGhzd19lbmFibGVfaXBzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ID4gIAkgKiBhIHZi bGFuayB3YWl0Lgo+ID4gIAkgKi8KPiA+ICAKPiA+IC0JYXNzZXJ0X3BsYW5lX2VuYWJsZWQoZGV2 X3ByaXYsIGNydGMtPnBsYW5lKTsKPiA+ICsJYXNzZXJ0X3BsYW5lX2VuYWJsZWQodG9faW50ZWxf cGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KSk7Cj4gPiArCj4gPiAgCWlmIChJU19CUk9BRFdFTEwo ZGV2X3ByaXYpKSB7Cj4gPiAgCQltdXRleF9sb2NrKCZkZXZfcHJpdi0+cGN1X2xvY2spOwo+ID4g IAkJV0FSTl9PTihzYW5keWJyaWRnZV9wY29kZV93cml0ZShkZXZfcHJpdiwgRElTUExBWV9JUFNf Q09OVFJPTCwKPiA+IEBAIC00OTc3LDcgKzQ5MjIsOCBAQCB2b2lkIGhzd19kaXNhYmxlX2lwcyhz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ICAJaWYgKCFjcnRjLT5jb25maWctPmlwc19lbmFi bGVkKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQlhc3NlcnRfcGxhbmVfZW5hYmxlZChkZXZf cHJpdiwgY3J0Yy0+cGxhbmUpOwo+ID4gKwlhc3NlcnRfcGxhbmVfZW5hYmxlZCh0b19pbnRlbF9w bGFuZShjcnRjLT5iYXNlLnByaW1hcnkpKTsKPiA+ICsKPiA+ICAJaWYgKElTX0JST0FEV0VMTChk ZXZfcHJpdikpIHsKPiA+ICAJCW11dGV4X2xvY2soJmRldl9wcml2LT5wY3VfbG9jayk7Cj4gPiAg CQlXQVJOX09OKHNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2LCBESVNQTEFZX0lQU19D T05UUk9MLCAwKSk7Cj4gPiBAQCAtOTU1Nyw2ICs5NTAzLDEzIEBAIHN0YXRpYyB2b2lkIGk4NDVf ZGlzYWJsZV9jdXJzb3Ioc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+ICAJaTg0NV91cGRh dGVfY3Vyc29yKHBsYW5lLCBOVUxMLCBOVUxMKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJv b2wgaTg0NV9jdXJzb3JfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4g PiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBs YW5lLT5iYXNlLmRldik7Cj4gPiArCj4gPiArCXJldHVybiBJOTE1X1JFQUQoQ1VSQ05UUihQSVBF X0EpKSAmIENVUlNPUl9FTkFCTEU7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB1MzIgaTl4eF9j dXJzb3JfY3RsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4g IAkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gPiAg ewo+ID4gQEAgLTk3NTAsNiArOTcwMywxMyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfY3Vy c29yKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gPiAgCWk5eHhfdXBkYXRlX2N1cnNvcihw bGFuZSwgTlVMTCwgTlVMTCk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBib29sIGk5eHhfY3Vy c29yX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gK3sKPiA+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5k ZXYpOwo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IHBsYW5lLT5waXBlOwo+ID4gKwo+ID4gKwlyZXR1 cm4gSTkxNV9SRUFEKENVUkNOVFIocGlwZSkpICYgQ1VSU09SX01PREU7Cj4gPiArfQo+ID4gIAo+ ID4gIC8qIFZFU0EgNjQweDQ4MHg3Mkh6IG1vZGUgdG8gc2V0IG9uIHRoZSBwaXBlICovCj4gPiAg c3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIGxvYWRfZGV0ZWN0X21vZGUgPSB7 Cj4gPiBAQCAtMTMyMzUsNiArMTMxOTUsNyBAQCBpbnRlbF9wcmltYXJ5X3BsYW5lX2NyZWF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBwaXBlKQo+ID4gIAo+ ID4gIAkJcHJpbWFyeS0+dXBkYXRlX3BsYW5lID0gc2t5bGFrZV91cGRhdGVfcHJpbWFyeV9wbGFu ZTsKPiA+ICAJCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBza3lsYWtlX2Rpc2FibGVfcHJpbWFy eV9wbGFuZTsKPiA+ICsJCXByaW1hcnktPmdldF9od19zdGF0ZSA9IHNreWxha2VfcHJpbWFyeV9n ZXRfaHdfc3RhdGU7Cj4gPiAgCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KSB7 Cj4gPiAgCQlpbnRlbF9wcmltYXJ5X2Zvcm1hdHMgPSBza2xfcHJpbWFyeV9mb3JtYXRzOwo+ID4g IAkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHNrbF9wcmltYXJ5X2Zvcm1hdHMpOwo+ID4gQEAg LTEzMjQ1LDYgKzEzMjA2LDcgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPiA+ICAKPiA+ICAJCXBy aW1hcnktPnVwZGF0ZV9wbGFuZSA9IHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmU7Cj4gPiAg CQlwcmltYXJ5LT5kaXNhYmxlX3BsYW5lID0gc2t5bGFrZV9kaXNhYmxlX3ByaW1hcnlfcGxhbmU7 Cj4gPiArCQlwcmltYXJ5LT5nZXRfaHdfc3RhdGUgPSBza3lsYWtlX3ByaW1hcnlfZ2V0X2h3X3N0 YXRlOwo+ID4gIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewo+ID4gIAkJ aW50ZWxfcHJpbWFyeV9mb3JtYXRzID0gaTk2NV9wcmltYXJ5X2Zvcm1hdHM7Cj4gPiAgCQludW1f Zm9ybWF0cyA9IEFSUkFZX1NJWkUoaTk2NV9wcmltYXJ5X2Zvcm1hdHMpOwo+ID4gQEAgLTEzMjUy LDYgKzEzMjE0LDcgQEAgaW50ZWxfcHJpbWFyeV9wbGFuZV9jcmVhdGUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSkKPiA+ICAKPiA+ICAJCXByaW1hcnkt PnVwZGF0ZV9wbGFuZSA9IGk5eHhfdXBkYXRlX3ByaW1hcnlfcGxhbmU7Cj4gPiAgCQlwcmltYXJ5 LT5kaXNhYmxlX3BsYW5lID0gaTl4eF9kaXNhYmxlX3ByaW1hcnlfcGxhbmU7Cj4gPiArCQlwcmlt YXJ5LT5nZXRfaHdfc3RhdGUgPSBpOXh4X3BsYW5lX2dldF9od19zdGF0ZTsKPiA+ICAJfSBlbHNl IHsKPiA+ICAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IGk4eHhfcHJpbWFyeV9mb3JtYXRzOwo+ ID4gIAkJbnVtX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGk4eHhfcHJpbWFyeV9mb3JtYXRzKTsKPiA+ IEBAIC0xMzI1OSw2ICsxMzIyMiw3IEBAIGludGVsX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gPiAgCj4gPiAg CQlwcmltYXJ5LT51cGRhdGVfcGxhbmUgPSBpOXh4X3VwZGF0ZV9wcmltYXJ5X3BsYW5lOwo+ID4g IAkJcHJpbWFyeS0+ZGlzYWJsZV9wbGFuZSA9IGk5eHhfZGlzYWJsZV9wcmltYXJ5X3BsYW5lOwo+ ID4gKwkJcHJpbWFyeS0+Z2V0X2h3X3N0YXRlID0gaTl4eF9wbGFuZV9nZXRfaHdfc3RhdGU7Cj4g PiAgCX0KPiA+ICAKPiA+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiA+IEBAIC0x MzM0OCwxMCArMTMzMTIsMTIgQEAgaW50ZWxfY3Vyc29yX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCWlmIChJU19JODQ1RyhkZXZfcHJpdikgfHwg SVNfSTg2NUcoZGV2X3ByaXYpKSB7Cj4gPiAgCQljdXJzb3ItPnVwZGF0ZV9wbGFuZSA9IGk4NDVf dXBkYXRlX2N1cnNvcjsKPiA+ICAJCWN1cnNvci0+ZGlzYWJsZV9wbGFuZSA9IGk4NDVfZGlzYWJs ZV9jdXJzb3I7Cj4gPiArCQljdXJzb3ItPmdldF9od19zdGF0ZSA9IGk4NDVfY3Vyc29yX2dldF9o d19zdGF0ZTsKPiA+ICAJCWN1cnNvci0+Y2hlY2tfcGxhbmUgPSBpODQ1X2NoZWNrX2N1cnNvcjsK PiA+ICAJfSBlbHNlIHsKPiA+ICAJCWN1cnNvci0+dXBkYXRlX3BsYW5lID0gaTl4eF91cGRhdGVf Y3Vyc29yOwo+ID4gIAkJY3Vyc29yLT5kaXNhYmxlX3BsYW5lID0gaTl4eF9kaXNhYmxlX2N1cnNv cjsKPiA+ICsJCWN1cnNvci0+Z2V0X2h3X3N0YXRlID0gaTl4eF9jdXJzb3JfZ2V0X2h3X3N0YXRl Owo+ID4gIAkJY3Vyc29yLT5jaGVja19wbGFuZSA9IGk5eHhfY2hlY2tfY3Vyc29yOwo+ID4gIAl9 Cj4gPiAgCj4gPiBAQCAtMTQ2OTksOCArMTQ2NjUsOCBAQCB2b2lkIGk4MzBfZGlzYWJsZV9waXBl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCj4gPiAg CURSTV9ERUJVR19LTVMoImRpc2FibGluZyBwaXBlICVjIGR1ZSB0byBmb3JjZSBxdWlya1xuIiwK PiA+ICAJCSAgICAgIHBpcGVfbmFtZShwaXBlKSk7Cj4gPiAgCj4gPiAtCWFzc2VydF9wbGFuZV9k aXNhYmxlZChkZXZfcHJpdiwgUExBTkVfQSk7Cj4gPiAtCWFzc2VydF9wbGFuZV9kaXNhYmxlZChk ZXZfcHJpdiwgUExBTkVfQik7Cj4gPiArCWFzc2VydF9wbGFuZXNfZGlzYWJsZWQoaW50ZWxfZ2V0 X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIFBJUEVfQSkpOwo+ID4gKwlhc3NlcnRfcGxhbmVzX2Rp c2FibGVkKGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LCBQSVBFX0IpKTsKPiA+ICAK PiA+ICAJSTkxNV9XUklURShQSVBFQ09ORihwaXBlKSwgMCk7Cj4gPiAgCVBPU1RJTkdfUkVBRChQ SVBFQ09ORihwaXBlKSk7Cj4gPiBAQCAtMTQ5MTQsMjAgKzE0ODgwLDEzIEBAIHZvaWQgaTkxNV9y ZWRpc2FibGVfdmdhKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICAJaW50 ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9WR0EpOwo+ID4gIH0K PiA+ICAKPiA+IC1zdGF0aWMgYm9vbCBwcmltYXJ5X2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxf cGxhbmUgKnBsYW5lKQo+ID4gLXsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ID4gLQo+ID4gLQlyZXR1cm4gSTkxNV9S RUFEKERTUENOVFIocGxhbmUtPnBsYW5lKSkgJiBESVNQTEFZX1BMQU5FX0VOQUJMRTsKPiA+IC19 Cj4gPiAtCj4gPiAgLyogRklYTUUgcmVhZCBvdXQgZnVsbCBwbGFuZSBzdGF0ZSBmb3IgYWxsIHBs YW5lcyAqLwo+ID4gIHN0YXRpYyB2b2lkIHJlYWRvdXRfcGxhbmVfc3RhdGUoc3RydWN0IGludGVs X2NydGMgKmNydGMpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnByaW1hcnkgPSB0 b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpOwo+ID4gIAlib29sIHZpc2libGU7Cj4g PiAgCj4gPiAtCXZpc2libGUgPSBjcnRjLT5hY3RpdmUgJiYgcHJpbWFyeV9nZXRfaHdfc3RhdGUo cHJpbWFyeSk7Cj4gPiArCXZpc2libGUgPSBjcnRjLT5hY3RpdmUgJiYgcHJpbWFyeS0+Z2V0X2h3 X3N0YXRlKHByaW1hcnkpOwo+ID4gIAo+ID4gIAlpbnRlbF9zZXRfcGxhbmVfdmlzaWJsZSh0b19p bnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpLAo+ID4gIAkJCQl0b19pbnRlbF9wbGFu ZV9zdGF0ZShwcmltYXJ5LT5iYXNlLnN0YXRlKSwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiBpbmRleCBjZGRhMGE4NGJhYmUuLjI0YmJmMDUxODQ3MyAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTg2OCw2ICs4NjgsNyBAQCBzdHJ1Y3QgaW50ZWxfcGxh bmUgewo+ID4gIAkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSk7Cj4gPiAgCXZvaWQgKCpkaXNhYmxlX3BsYW5lKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lLAo+ID4gIAkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiA+ICsJYm9vbCAo KmdldF9od19zdGF0ZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSk7Cj4gPiAgCWludCAoKmNo ZWNrX3BsYW5lKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ID4gIAkJCSAgIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAkJCSAgIHN0cnVjdCBpbnRlbF9wbGFu ZV9zdGF0ZSAqc3RhdGUpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+IGlu ZGV4IGYyOTM2OTYyMmQyYy4uYTUzM2RmNmZlNzA2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3Nwcml0ZS5jCj4gPiBAQCAtMzI5LDYgKzMyOSwxNiBAQCBza2xfZGlzYWJsZV9wbGFu ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiA+ ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPnVuY29yZS5sb2NrLCBpcnFmbGFn cyk7Cj4gPiAgfQo+ID4gIAo+ID4gK3N0YXRpYyBib29sCj4gPiArc2tsX3BsYW5lX2dldF9od19z dGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ID4gKwll bnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxhbmUtPmlkOwo+ID4gKwllbnVtIHBpcGUgcGlwZSA9 IHBsYW5lLT5waXBlOwo+ID4gKwo+ID4gKwlyZXR1cm4gSTkxNV9SRUFEKFBMQU5FX0NUTChwaXBl LCBwbGFuZV9pZCkpICYgUExBTkVfQ1RMX0VOQUJMRTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGlj IHZvaWQKPiA+ICBjaHZfdXBkYXRlX2NzYyhzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCB1aW50 MzJfdCBmb3JtYXQpCj4gPiAgewo+ID4gQEAgLTUwNiw2ICs1MTYsMTYgQEAgdmx2X2Rpc2FibGVf cGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwgc3RydWN0IGludGVsX2NydGMgKmNydGMp Cj4gPiAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJx ZmxhZ3MpOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgYm9vbAo+ID4gK3Zsdl9wbGFuZV9nZXRf aHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ ICsJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKPiA+ICsJZW51bSBwaXBlIHBp cGUgPSBwbGFuZS0+cGlwZTsKPiA+ICsKPiA+ICsJcmV0dXJuIEk5MTVfUkVBRChTUENOVFIocGlw ZSwgcGxhbmVfaWQpKSAmIFNQX0VOQUJMRTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHUzMiBp dmJfc3ByaXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiA+ICAJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4g PiAgewo+ID4gQEAgLTY0Niw2ICs2NjYsMTUgQEAgaXZiX2Rpc2FibGVfcGxhbmUoc3RydWN0IGlu dGVsX3BsYW5lICpwbGFuZSwgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwo+ID4gIH0K PiA+ICAKPiA+ICtzdGF0aWMgYm9vbAo+ID4gK2l2Yl9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ICsJZW51bSBwaXBlIHBp cGUgPSBwbGFuZS0+cGlwZTsKPiA+ICsKPiA+ICsJcmV0dXJuIEk5MTVfUkVBRChTUFJDVEwocGlw ZSkpICYgU1BSSVRFX0VOQUJMRTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHUzMiBnNHhfc3By aXRlX2N0bChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJ CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCj4gPiAgewo+ ID4gQEAgLTc3Nyw2ICs4MDYsMTUgQEAgZzR4X2Rpc2FibGVfcGxhbmUoc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSwgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgCXNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmRldl9wcml2LT51bmNvcmUubG9jaywgaXJxZmxhZ3MpOwo+ID4gIH0KPiA+ICAK PiA+ICtzdGF0aWMgYm9vbAo+ID4gK2c0eF9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBw bGFuZS0+cGlwZTsKPiA+ICsKPiA+ICsJcmV0dXJuIEk5MTVfUkVBRChEVlNDTlRSKHBpcGUpKSAm IERWU19FTkFCTEU7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQKPiA+ICBpbnRlbF9jaGVj a19zcHJpdGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiA+ICAJCQkgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiBAQCAtMTIzMiw2ICsxMjcwLDcgQEAg aW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiAgCj4gPiAgCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gc2tsX3VwZGF0ZV9w bGFuZTsKPiA+ICAJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gc2tsX2Rpc2FibGVfcGxh bmU7Cj4gPiArCQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0YXRlID0gc2tsX3BsYW5lX2dldF9od19z dGF0ZTsKPiA+ICAKPiA+ICAJCXBsYW5lX2Zvcm1hdHMgPSBza2xfcGxhbmVfZm9ybWF0czsKPiA+ ICAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShza2xfcGxhbmVfZm9ybWF0cyk7Cj4g PiBAQCAtMTI0Miw2ICsxMjgxLDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCj4gPiAgCQlpbnRlbF9wbGFuZS0+dXBk YXRlX3BsYW5lID0gc2tsX3VwZGF0ZV9wbGFuZTsKPiA+ICAJCWludGVsX3BsYW5lLT5kaXNhYmxl X3BsYW5lID0gc2tsX2Rpc2FibGVfcGxhbmU7Cj4gPiArCQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0 YXRlID0gc2tsX3BsYW5lX2dldF9od19zdGF0ZTsKPiA+ICAKPiA+ICAJCXBsYW5lX2Zvcm1hdHMg PSBza2xfcGxhbmVfZm9ybWF0czsKPiA+ICAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0la RShza2xfcGxhbmVfZm9ybWF0cyk7Cj4gPiBAQCAtMTI1Miw2ICsxMjkyLDcgQEAgaW50ZWxfc3By aXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAg Cj4gPiAgCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gdmx2X3VwZGF0ZV9wbGFuZTsKPiA+ ICAJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gdmx2X2Rpc2FibGVfcGxhbmU7Cj4gPiAr CQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0YXRlID0gdmx2X3BsYW5lX2dldF9od19zdGF0ZTsKPiA+ ICAKPiA+ICAJCXBsYW5lX2Zvcm1hdHMgPSB2bHZfcGxhbmVfZm9ybWF0czsKPiA+ICAJCW51bV9w bGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRSh2bHZfcGxhbmVfZm9ybWF0cyk7Cj4gPiBAQCAtMTI2 Nyw2ICsxMzA4LDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCj4gPiAgCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5l ID0gaXZiX3VwZGF0ZV9wbGFuZTsKPiA+ICAJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0g aXZiX2Rpc2FibGVfcGxhbmU7Cj4gPiArCQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0YXRlID0gaXZi X3BsYW5lX2dldF9od19zdGF0ZTsKPiA+ICAKPiA+ICAJCXBsYW5lX2Zvcm1hdHMgPSBzbmJfcGxh bmVfZm9ybWF0czsKPiA+ICAJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShzbmJfcGxh bmVfZm9ybWF0cyk7Cj4gPiBAQCAtMTI3Nyw2ICsxMzE5LDcgQEAgaW50ZWxfc3ByaXRlX3BsYW5l X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCj4gPiAgCQlp bnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0gZzR4X3VwZGF0ZV9wbGFuZTsKPiA+ICAJCWludGVs X3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gZzR4X2Rpc2FibGVfcGxhbmU7Cj4gPiArCQlpbnRlbF9w bGFuZS0+Z2V0X2h3X3N0YXRlID0gZzR4X3BsYW5lX2dldF9od19zdGF0ZTsKPiA+ICAKPiA+ICAJ CW1vZGlmaWVycyA9IGk5eHhfcGxhbmVfZm9ybWF0X21vZGlmaWVyczsKPiA+ICAJCWlmIChJU19H RU42KGRldl9wcml2KSkgewo+ID4gLS0gCj4gPiAyLjEzLjYKPiA+IAo+ID4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gCj4gLS0gCj4g RGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0 dHA6Ly9ibG9nLmZmd2xsLmNoCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK