From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 3/4] drm/i915: Add .get_hw_state() method for planes Date: Thu, 10 Sep 2015 18:07:34 +0200 Message-ID: <20150910160734.GL2767@phenom.ffwll.local> References: <1441900750-25599-1-git-send-email-ville.syrjala@linux.intel.com> <1441900750-25599-3-git-send-email-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-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66ED96ECE0 for ; Thu, 10 Sep 2015 09:04:52 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so34120919wic.0 for ; Thu, 10 Sep 2015 09:04:51 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1441900750-25599-3-git-send-email-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@linux.intel.com Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMTAsIDIwMTUgYXQgMDY6NTk6MDlQTSArMDMwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBBZGQgYSAuZ2V0X2h3X3N0YXRlKCkgbWV0aG9kIGZv ciBwbGFuZXMsIHJldHVybmluZyB0cnVlIG9yIGZhbHNlCj4gZGVwZW5kaW5nIG9uIHdoZXRoZXIg dGhlIHBsYW5lIGlzIGVuYWJsZWQuIFVzZSBpdCB0byBwb3B1bGF0ZSB0aGUKPiBwbGFuZSBzdGF0 ZSAndmlzaWJsZScgZHVyaW5nIHN0YXRlIHJlYWRvdXQuCj4gCj4gQ2M6IE1hYXJ0ZW4gTGFua2hv cnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IFBhdHJpayBKYWtv YnNzb24gPHBhdHJpay5qYWtvYnNzb25AbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpEbyB3ZSBy ZWFsbHkgbmVlZCB0aGlzPyBUaGUgcGxhbmUgcmVhZG91dCBpcyBmYWlybHkgbGltaXRlZCBhbmQg d2UgZG9uJ3QKcmVhbGx5IGNhcmUgYWJvdXQgcmVjb3ZlcmluZyBhbnl0aGluZyBidXQgdGhlIGlu aXRpYWwgcHJpbWFyeSBwbGFuZSBvbgpkcml2ZXIgbG9hZC4gQW55dGhpbmcgZWxzZSBjYW4ganVz dCBiZSBudWtlZCBpZiBpdCBtaXNmaXRzIC4uLgotRGFuaWVsCgo+IC0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCA2NyArKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDEg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyAgfCAzNyArKysrKysrKysr KysrKysrKysrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDkxIGluc2VydGlvbnMoKyksIDE0IGRlbGV0 aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCAzNzA3 MjEyLi41ZmVkMTIwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBA IC0yODQxLDYgKzI4NDEsMTMgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfdXBkYXRlX3ByaW1hcnlf cGxhbmUoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJUE9TVElOR19SRUFEKHJlZyk7Cj4gIH0K PiAgCj4gK3N0YXRpYyBib29sIGk5eHhfcHJpbWFyeV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ICsKPiArCXJldHVybiBJOTE1X1JFQUQoRFNQ U1VSRihwbGFuZS0+cGxhbmUpKSAmIERJU1BMQVlfUExBTkVfRU5BQkxFOwo+ICt9Cj4gKwo+ICB1 MzIgaW50ZWxfZmJfc3RyaWRlX2FsaWdubWVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1aW50 NjRfdCBmYl9tb2RpZmllciwKPiAgCQkJICAgICAgdWludDMyX3QgcGl4ZWxfZm9ybWF0KQo+ICB7 Cj4gQEAgLTMxMDQsNiArMzExMSwxMyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmlt YXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCVBPU1RJTkdfUkVBRChQTEFORV9T VVJGKHBpcGUsIDApKTsKPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgc2t5bGFrZV9wcmltYXJ5X2dl dF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gKwo+ ICsJcmV0dXJuIEk5MTVfUkVBRChQTEFORV9DVEwocGxhbmUtPnBpcGUsIDApKSAmIFBMQU5FX0NU TF9FTkFCTEU7Cj4gK30KPiArCj4gIC8qIEFzc3VtZSBmYiBvYmplY3QgaXMgcGlubmVkICYgaWRs ZSAmIGZlbmNlZCBhbmQganVzdCB1cGRhdGUgYmFzZSBwb2ludGVycyAqLwo+ICBzdGF0aWMgaW50 Cj4gIGludGVsX3BpcGVfc2V0X2Jhc2VfYXRvbWljKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gQEAgLTk4NjIsNiArOTg3NiwxMyBAQCBzdGF0aWMg dm9pZCBpODQ1X3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSkK PiAgCX0KPiAgfQo+ICAKPiArc3RhdGljIGJvb2wgaTg0NV9jdXJzb3JfZ2V0X2h3X3N0YXRlKHN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiArCj4gKwlyZXR1cm4gSTkx NV9SRUFEKF9DVVJBQ05UUikgJiBDVVJTT1JfRU5BQkxFOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9p ZCBpOXh4X3VwZGF0ZV9jdXJzb3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSkKPiAg ewo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKPiBAQCAtOTkwOSw2ICs5 OTMwLDEzIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QgZHJtX2NydGMg KmNydGMsIHUzMiBiYXNlKQo+ICAJaW50ZWxfY3J0Yy0+Y3Vyc29yX2Jhc2UgPSBiYXNlOwo+ICB9 Cj4gIAo+ICtzdGF0aWMgYm9vbCBpOXh4X2N1cnNvcl9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ICsKPiArCXJldHVybiBJOTE1X1JFQUQoQ1VS Q05UUihwbGFuZS0+cGlwZSkpICYgQ1VSU09SX01PREU7Cj4gK30KPiArCj4gIC8qIElmIG5vLXBh cnQgb2YgdGhlIGN1cnNvciBpcyB2aXNpYmxlIG9uIHRoZSBmcmFtZWJ1ZmZlciwgdGhlbiB0aGUg R1BVIG1heSBoYW5nLi4uICovCj4gIHN0YXRpYyB2b2lkIGludGVsX2NydGNfdXBkYXRlX2N1cnNv cihzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJCQkgICAgIGJvb2wgb24pCj4gQEAgLTEzNTE4 LDEyICsxMzU0NiwxNyBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqaW50ZWxfcHJpbWFyeV9w bGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCX0KPiAgCXByaW1hcnktPnBp cGUgPSBwaXBlOwo+ICAJcHJpbWFyeS0+cGxhbmUgPSBwaXBlOwo+ICsJaWYgKEhBU19GQkMoZGV2 KSAmJiBJTlRFTF9JTkZPKGRldiktPmdlbiA8IDQpCj4gKwkJcHJpbWFyeS0+cGxhbmUgPSAhcGlw ZTsKPiAgCXByaW1hcnktPmZyb250YnVmZmVyX2JpdCA9IElOVEVMX0ZST05UQlVGRkVSX1BSSU1B UlkocGlwZSk7Cj4gIAlwcmltYXJ5LT5jaGVja19wbGFuZSA9IGludGVsX2NoZWNrX3ByaW1hcnlf cGxhbmU7Cj4gIAlwcmltYXJ5LT5jb21taXRfcGxhbmUgPSBpbnRlbF9jb21taXRfcHJpbWFyeV9w bGFuZTsKPiAgCXByaW1hcnktPmRpc2FibGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX3ByaW1hcnlf cGxhbmU7Cj4gLQlpZiAoSEFTX0ZCQyhkZXYpICYmIElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkK PiAtCQlwcmltYXJ5LT5wbGFuZSA9ICFwaXBlOwo+ICsKPiArCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA+PSA5KQo+ICsJCXByaW1hcnktPmdldF9od19zdGF0ZSA9IHNreWxha2VfcHJpbWFyeV9n ZXRfaHdfc3RhdGU7Cj4gKwllbHNlCj4gKwkJcHJpbWFyeS0+Z2V0X2h3X3N0YXRlID0gaTl4eF9w cmltYXJ5X2dldF9od19zdGF0ZTsKPiAgCj4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g OSkgewo+ICAJCWludGVsX3ByaW1hcnlfZm9ybWF0cyA9IHNrbF9wcmltYXJ5X2Zvcm1hdHM7Cj4g QEAgLTEzNjc5LDYgKzEzNzEyLDExIEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICppbnRlbF9j dXJzb3JfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAljdXJzb3ItPmNv bW1pdF9wbGFuZSA9IGludGVsX2NvbW1pdF9jdXJzb3JfcGxhbmU7Cj4gIAljdXJzb3ItPmRpc2Fi bGVfcGxhbmUgPSBpbnRlbF9kaXNhYmxlX2N1cnNvcl9wbGFuZTsKPiAgCj4gKwlpZiAoSVNfODQ1 RyhkZXYpIHx8IElTX0k4NjVHKGRldikpCj4gKwkJY3Vyc29yLT5nZXRfaHdfc3RhdGUgPSBpODQ1 X2N1cnNvcl9nZXRfaHdfc3RhdGU7Cj4gKwllbHNlCj4gKwkJY3Vyc29yLT5nZXRfaHdfc3RhdGUg PSBpOXh4X2N1cnNvcl9nZXRfaHdfc3RhdGU7Cj4gKwo+ICAJZHJtX3VuaXZlcnNhbF9wbGFuZV9p bml0KGRldiwgJmN1cnNvci0+YmFzZSwgMCwKPiAgCQkJCSAmaW50ZWxfcGxhbmVfZnVuY3MsCj4g IAkJCQkgaW50ZWxfY3Vyc29yX2Zvcm1hdHMsCj4gQEAgLTE0ODg2LDcgKzE0OTI0LDExIEBAIHN0 YXRpYyB2b2lkIGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4g IAo+ICAJCS8qIERpc2FibGUgZXZlcnl0aGluZyBidXQgdGhlIHByaW1hcnkgcGxhbmUgKi8KPiAg CQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKGRldiwgY3J0YywgcGxhbmUpIHsKPiAtCQkJ aWYgKHBsYW5lLT5iYXNlLnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSkKPiArCQkJc3Ry dWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0ZSA9Cj4gKwkJCQl0b19pbnRlbF9wbGFuZV9zdGF0 ZShwbGFuZS0+YmFzZS5zdGF0ZSk7Cj4gKwo+ICsJCQlpZiAocGxhbmUtPmJhc2UudHlwZSA9PSBE Uk1fUExBTkVfVFlQRV9QUklNQVJZIHx8Cj4gKwkJCSAgICAhc3RhdGUtPnZpc2libGUpCj4gIAkJ CQljb250aW51ZTsKPiAgCj4gIAkJCXBsYW5lLT5kaXNhYmxlX3BsYW5lKCZwbGFuZS0+YmFzZSwg JmNydGMtPmJhc2UpOwo+IEBAIC0xNTA1MywyMSArMTUwOTUsMTggQEAgdm9pZCBpOTE1X3JlZGlz YWJsZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCWk5MTVfcmVkaXNhYmxlX3ZnYV9w b3dlcl9vbihkZXYpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBwcmltYXJ5X2dldF9od19zdGF0 ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Cj4gLQo+IC0JcmV0dXJu IEk5MTVfUkVBRChEU1BDTlRSKHBsYW5lLT5wbGFuZSkpICYgRElTUExBWV9QTEFORV9FTkFCTEU7 Cj4gLX0KPiAtCj4gIC8qIEZJWE1FIHJlYWQgb3V0IGZ1bGwgcGxhbmUgc3RhdGUgZm9yIGFsbCBw bGFuZXMgKi8KPiAgc3RhdGljIHZvaWQgcmVhZG91dF9wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKPiAgewo+IC0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSA9Cj4gLQkJdG9faW50ZWxfcGxhbmVfc3RhdGUoY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZSk7 Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKnBsYW5lOwo+ICAKPiAtCXBsYW5lX3N0YXRlLT52aXNpYmxlID0KPiAtCQlw cmltYXJ5X2dldF9od19zdGF0ZSh0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpKTsK PiArCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBjcnRjLCBwbGFuZSkgewo+ICsJ CXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+ICsJCQl0b19pbnRlbF9wbGFuZV9z dGF0ZShwbGFuZS0+YmFzZS5zdGF0ZSk7Cj4gKwo+ICsJCXN0YXRlLT52aXNpYmxlID0gcGxhbmUt PmdldF9od19zdGF0ZShwbGFuZSk7Cj4gKwl9Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVs X21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggNDY0ODRlNC4uNjRkNmQ5MCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTYyOCw2ICs2MjgsNyBAQCBzdHJ1Y3QgaW50ZWxfcGxh bmUgewo+ICAJCQkgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKTsKPiAgCXZvaWQg KCpjb21taXRfcGxhbmUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkgICAgIHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3RhdGUpOwo+ICsJYm9vbCAoKmdldF9od19zdGF0ZSkoc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSk7Cj4gIH07Cj4gIAo+ICBzdHJ1Y3QgaW50ZWxfd2F0ZXJt YXJrX3BhcmFtcyB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBpbmRleCBjYTdl MjY0Li44YjJjNzQ0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nw cml0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAt MjkwLDYgKzI5MCwxNSBAQCBza2xfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxh bmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgCWludGVsX3VwZGF0ZV9zcHJpdGVfd2F0ZXJt YXJrcyhkcGxhbmUsIGNydGMsIDAsIDAsIDAsIGZhbHNlLCBmYWxzZSk7Cj4gIH0KPiAgCj4gK3N0 YXRpYyBib29sCj4gK3NrbF9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShwbGFuZS0+YmFzZS5kZXYpOwo+ICsKPiArCXJldHVybiBJOTE1X1JFQUQoUExBTkVfQ1RMKHBs YW5lLT5waXBlLAo+ICsJCQkJICAgcGxhbmUtPnBsYW5lICsgMSkpICYgUExBTkVfQ1RMX0VOQUJM RTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQKPiAgY2h2X3VwZGF0ZV9jc2Moc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSwgdWludDMyX3QgZm9ybWF0KQo+ICB7Cj4gQEAgLTQ2OSw2ICs0 NzgsMTQgQEAgdmx2X2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCj4gIAlQT1NUSU5HX1JFQUQoU1BTVVJGKHBpcGUsIHBsYW5lKSk7 Cj4gIH0KPiAgCj4gK3N0YXRpYyBib29sCj4gK3Zsdl9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0 IGludGVsX3BsYW5lICpwbGFuZSkKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwo+ICsKPiArCXJldHVybiBJOTE1X1JF QUQoU1BDTlRSKHBsYW5lLT5waXBlLCBwbGFuZS0+cGxhbmUpKSAmIFNQX0VOQUJMRTsKPiArfQo+ ICsKPiAgc3RhdGljIHZvaWQKPiAgaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiwKPiBAQCAtNjExLDYgKzYyOCwxNCBAQCBpdmJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJUE9TVElOR19SRUFEKFNQ UlNVUkYocGlwZSkpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbAo+ICtpdmJfcGxhbmVfZ2V0X2h3 X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiArCj4gKwly ZXR1cm4gSTkxNV9SRUFEKFNQUkNUTChwbGFuZS0+cGlwZSkpICYgU1BSSVRFX0VOQUJMRTsKPiAr fQo+ICsKPiAgc3RhdGljIHZvaWQKPiAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJCSBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKPiBAQCAtNzM5LDYgKzc2NCwxNCBAQCBpbGtfZGlzYWJsZV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJUE9TVElOR19SRUFE KERWU1NVUkYocGlwZSkpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbAo+ICtpbGtfcGxhbmVfZ2V0 X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3sKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKPiArCj4g KwlyZXR1cm4gSTkxNV9SRUFEKERWU0NOVFIocGxhbmUtPnBpcGUpKSAmIERWU19FTkFCTEU7Cj4g K30KPiArCj4gIHN0YXRpYyBpbnQKPiAgaW50ZWxfY2hlY2tfc3ByaXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAo+ICAJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCj4gQEAgLTEwNzUsNiArMTEwOCw3IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiAgCQlpbnRlbF9wbGFuZS0+ bWF4X2Rvd25zY2FsZSA9IDE2Owo+ICAJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUgPSBpbGtf dXBkYXRlX3BsYW5lOwo+ICAJCWludGVsX3BsYW5lLT5kaXNhYmxlX3BsYW5lID0gaWxrX2Rpc2Fi bGVfcGxhbmU7Cj4gKwkJaW50ZWxfcGxhbmUtPmdldF9od19zdGF0ZSA9IGlsa19wbGFuZV9nZXRf aHdfc3RhdGU7Cj4gIAo+ICAJCWlmIChJU19HRU42KGRldikpIHsKPiAgCQkJcGxhbmVfZm9ybWF0 cyA9IHNuYl9wbGFuZV9mb3JtYXRzOwo+IEBAIC0xMDk4LDEyICsxMTMyLDE0IEBAIGludGVsX3Bs YW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFu ZSkKPiAgCQlpZiAoSVNfVkFMTEVZVklFVyhkZXYpKSB7Cj4gIAkJCWludGVsX3BsYW5lLT51cGRh dGVfcGxhbmUgPSB2bHZfdXBkYXRlX3BsYW5lOwo+ICAJCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9w bGFuZSA9IHZsdl9kaXNhYmxlX3BsYW5lOwo+ICsJCQlpbnRlbF9wbGFuZS0+Z2V0X2h3X3N0YXRl ID0gdmx2X3BsYW5lX2dldF9od19zdGF0ZTsKPiAgCj4gIAkJCXBsYW5lX2Zvcm1hdHMgPSB2bHZf cGxhbmVfZm9ybWF0czsKPiAgCQkJbnVtX3BsYW5lX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHZsdl9w bGFuZV9mb3JtYXRzKTsKPiAgCQl9IGVsc2Ugewo+ICAJCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3Bs YW5lID0gaXZiX3VwZGF0ZV9wbGFuZTsKPiAgCQkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUg PSBpdmJfZGlzYWJsZV9wbGFuZTsKPiArCQkJaW50ZWxfcGxhbmUtPmdldF9od19zdGF0ZSA9IGl2 Yl9wbGFuZV9nZXRfaHdfc3RhdGU7Cj4gIAo+ICAJCQlwbGFuZV9mb3JtYXRzID0gc25iX3BsYW5l X2Zvcm1hdHM7Cj4gIAkJCW51bV9wbGFuZV9mb3JtYXRzID0gQVJSQVlfU0laRShzbmJfcGxhbmVf Zm9ybWF0cyk7Cj4gQEAgLTExMTMsNiArMTE0OSw3IEBAIGludGVsX3BsYW5lX2luaXQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgZW51bSBwaXBlIHBpcGUsIGludCBwbGFuZSkKPiAgCQlpbnRlbF9w bGFuZS0+Y2FuX3NjYWxlID0gdHJ1ZTsKPiAgCQlpbnRlbF9wbGFuZS0+dXBkYXRlX3BsYW5lID0g c2tsX3VwZGF0ZV9wbGFuZTsKPiAgCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZSA9IHNrbF9k aXNhYmxlX3BsYW5lOwo+ICsJCWludGVsX3BsYW5lLT5nZXRfaHdfc3RhdGUgPSBza2xfcGxhbmVf Z2V0X2h3X3N0YXRlOwo+ICAJCXN0YXRlLT5zY2FsZXJfaWQgPSAtMTsKPiAgCj4gIAkJcGxhbmVf Zm9ybWF0cyA9IHNrbF9wbGFuZV9mb3JtYXRzOwo+IC0tIAo+IDIuNC42Cj4gCj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGlu ZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZnds bC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=