From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH 3/7] drm/i915: Have plane->get_hw_state() return the current pipe Date: Fri, 01 Jun 2018 11:38:56 +0300 Message-ID: <1527842336.27355.8.camel@intel.com> References: <20180130203807.13721-1-ville.syrjala@linux.intel.com> <20180130203807.13721-3-ville.syrjala@linux.intel.com> Reply-To: mika.kahola@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0F13E6E5A4 for ; Fri, 1 Jun 2018 08:38:59 +0000 (UTC) In-Reply-To: <20180130203807.13721-3-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 T24gVHVlLCAyMDE4LTAxLTMwIGF0IDIyOjM4ICswMjAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+ IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4g Cj4gTGlrZSB3ZSBkbyBmb3IgZW5jb2RlciBsZXQncyBtYWtlIHRoZSBwbGFuZS0+Z2V0X2h3X3N0 YXRlKCkgcmV0dXJuCj4gdGhlIHBpcGUgdG8gd2hpY2ggdGhlIHBsYW5lIGlzIGN1cnJlbnRseSBh dHRhY2hlZC4gV2UgZG9uJ3QgY3VycmVudGx5Cj4gYWxsb3cgcGxhbmVzIHRvIG1vdmUgYmV0d2Vl biB0aGUgcGlwZXMsIGJ1dCBwZXJoYXBzIG9uZSBkYXkgd2Ugd2lsbC4KPiAKPiBJbiBlaXRoZXIg Y2FzZSB0aGlzIG1ha2VzIHRoZSBjb2RlIG1vcmUgdW5pZm9ybSBhbmQgcGVyaGFwcyBtYWtlcwo+ IGludGVsX3BsYW5lX21hcHBpbmdfb2soKSBzbGlnaHRseSBtb3JlIGNsZWFyLgo+IAo+IE5vdGUg dGhhdCBmb3IgaTk2NSBhbmQgZzR4IHBsYW5lcyBBIGFuZCBCIHN0aWxsIGhhdmUgcGlwZSBzZWxl Y3QgYml0cwo+IGJ1dCB0aGV5J3JlIGhhcmR3aXJlZCB0byBwaXBlIEEgYW5kIEIgcmVzcGVjdGl2 ZWx5LiBUaGlzIG1lYW5zIHdlIGNhbgo+IHNhZmVseSBpbnRlcnByZXQgdGhvc2UgYml0cyBqdXN0 IGxpa2Ugb24gZ2VuMi8zLiBUaGlzIGFsbG93cyB0aGUKPiBzYW1lIHJlYWRvdXQgY29kZSB3b3Jr IGZvciBwbGFuZSBDICh3aGljaCBjYW4gc3RpbGwgYmUgYXNzaWduZWQKPiB0byBlaXRlciBwaXBl IG9uIGk5NjUpIHNob3VsZCB3ZSBldmVyIGV4cG9zZSBpdC4KPiAKPiBnNHggbm8gbG9uZ2VyIGFs bG93cyBtb3ZpbmcgdGhlIGN1cnNvciBwbGFuZXMgYmV0d2VlbiB0aGUgcGlwZXMsCj4gYnV0IHRo ZSBwaXBlIHNlbGVjdCBiaXRzIGNhbiBzdGlsbCBiZSBzZXQgaW4gdGhlIHJlZ2lzdGVyLiBUaHVz Cj4gd2UgaGF2ZSB0byBpZ25vcmUgdGhvc2UgYml0cy4gT1RPSCBpOTY1IHN0aWxsIGFsbG93cyB0 aGUgY3Vyc29ycwo+IHRvIG1vdmUgYmV0d2VlbiBwaXBlcyB0aHVzIHdlIGhhdmUgdG8gdHJ1c3Qg dGhlIGJpdHMgdGhlcmUuCj4gClJldmlld2VkLWJ5OiBNaWthIEthaG9sYSA8bWlrYS5rYWhvbGFA aW50ZWwuY29tPgoKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaMKgwqDCoMKgwqDCoHzCoMKgMiArCj4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgfCA3MQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQo+IMKg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmjCoMKgwqDCoMKgfMKgwqA0ICstCj4gwqBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuY8KgwqB8IDQwICsrKysrKysrKysrKy0t LS0tLS0tCj4gwqA0IGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9u cygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4g Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gaW5kZXggNjQ5MzNmZDc0Y2I2Li5l YmI0MWYyNzkxMzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtNTkwOCw2ICs1 OTA4LDggQEAgZW51bSB7Cj4gwqAjZGVmaW5lwqDCoMKgQ1VSU09SX01PREVfMTI4X0FSR0JfQVgg KCgxIDw8IDUpIHwKPiBDVVJTT1JfTU9ERV8xMjhfMzJCX0FYKQo+IMKgI2RlZmluZcKgwqDCoENV UlNPUl9NT0RFXzI1Nl9BUkdCX0FYICgoMSA8PCA1KSB8Cj4gQ1VSU09SX01PREVfMjU2XzMyQl9B WCkKPiDCoCNkZWZpbmXCoMKgwqBDVVJTT1JfTU9ERV82NF9BUkdCX0FYICgoMSA8PCA1KSB8IENV UlNPUl9NT0RFXzY0XzMyQl9BWCkKPiArI2RlZmluZcKgwqDCoE1DVVJTT1JfUElQRV9TRUxFQ1Rf TUFTSwkoMHgzIDw8IDI4KQo+ICsjZGVmaW5lwqDCoMKgTUNVUlNPUl9QSVBFX1NFTEVDVF9TSElG VAkyOAo+IMKgI2RlZmluZcKgwqDCoE1DVVJTT1JfUElQRV9TRUxFQ1QocGlwZSkJKChwaXBlKSA8 PCAyOCkKPiDCoCNkZWZpbmXCoMKgwqBNQ1VSU09SX0dBTU1BX0VOQUJMRcKgwqAoMSA8PCAyNikK PiDCoCNkZWZpbmXCoMKgwqBDVVJTT1JfUk9UQVRFXzE4MAkoMTw8MTUpCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gaW5kZXggNmZmYzFkMDg4ZDdhLi5mZWFlNmJkNTFhNDQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTEyMjQsNyArMTIy NCwxMCBAQCB2b2lkIGFzc2VydF9waXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gKmRldl9w cml2LAo+IMKgCj4gwqBzdGF0aWMgdm9pZCBhc3NlcnRfcGxhbmUoc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwgYm9vbCBzdGF0ZSkKPiDCoHsKPiAtCWJvb2wgY3VyX3N0YXRlID0gcGxhbmUtPmdl dF9od19zdGF0ZShwbGFuZSk7Cj4gKwllbnVtIHBpcGUgcGlwZTsKPiArCWJvb2wgY3VyX3N0YXRl Owo+ICsKPiArCWN1cl9zdGF0ZSA9IHBsYW5lLT5nZXRfaHdfc3RhdGUocGxhbmUsICZwaXBlKTsK PiDCoAo+IMKgCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gwqAJCQkiJXMg YXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50Cj4gJXMpXG4iLAo+IEBAIC0z MzI2LDI0ICszMzI5LDMzIEBAIHN0YXRpYyB2b2lkIGk5eHhfZGlzYWJsZV9wbGFuZShzdHJ1Y3QK PiBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gwqAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3By aXYtPnVuY29yZS5sb2NrLCBpcnFmbGFncyk7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIGJvb2wgaTl4 eF9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiArc3RhdGlj IGJvb2wgaTl4eF9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwK PiArCQkJCcKgwqDCoMKgZW51bSBwaXBlICpwaXBlKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtCj4gPmJhc2UuZGV2KTsKPiDCoAll bnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiDCoAllbnVtIGk5 eHhfcGxhbmVfaWQgaTl4eF9wbGFuZSA9IHBsYW5lLT5pOXh4X3BsYW5lOwo+IC0JZW51bSBwaXBl IHBpcGUgPSBwbGFuZS0+cGlwZTsKPiDCoAlib29sIHJldDsKPiArCXUzMiB2YWw7Cj4gwqAKPiDC oAkvKgo+IMKgCcKgKiBOb3QgMTAwJSBjb3JyZWN0IGZvciBwbGFuZXMgdGhhdCBjYW4gbW92ZSBi ZXR3ZWVuIHBpcGVzLAo+IMKgCcKgKiBidXQgdGhhdCdzIG9ubHkgdGhlIGNhc2UgZm9yIGdlbjIt NCB3aGljaCBkb24ndCBoYXZlIGFueQo+IMKgCcKgKiBkaXNwbGF5IHBvd2VyIHdlbGxzLgo+IMKg CcKgKi8KPiAtCXBvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9QSVBFKHBpcGUpOwo+ICsJcG93 ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEUocGxhbmUtPnBpcGUpOwo+IMKgCWlmICghaW50 ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJpdiwKPiBwb3dlcl9kb21haW4p KQo+IMKgCQlyZXR1cm4gZmFsc2U7Cj4gwqAKPiAtCXJldCA9IEk5MTVfUkVBRChEU1BDTlRSKGk5 eHhfcGxhbmUpKSAmIERJU1BMQVlfUExBTkVfRU5BQkxFOwo+ICsJdmFsID0gSTkxNV9SRUFEKERT UENOVFIoaTl4eF9wbGFuZSkpOwo+ICsKPiArCXJldCA9IHZhbCAmIERJU1BMQVlfUExBTkVfRU5B QkxFOwo+ICsKPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDUpCj4gKwkJKnBpcGUgPSBw bGFuZS0+cGlwZTsKPiArCWVsc2UKPiArCQkqcGlwZSA9ICh2YWwgJiBESVNQUExBTkVfU0VMX1BJ UEVfTUFTSykgPj4KPiArCQkJRElTUFBMQU5FX1NFTF9QSVBFX1NISUZUOwo+IMKgCj4gwqAJaW50 ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4gwqAKPiBAQCAt NzQ4MiwxNiArNzQ5NCwxOCBAQCBpOXh4X2dldF9pbml0aWFsX3BsYW5lX2NvbmZpZyhzdHJ1Y3QK PiBpbnRlbF9jcnRjICpjcnRjLAo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZGV2KTsKPiDCoAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50 ZWxfcGxhbmUoY3J0Yy0KPiA+YmFzZS5wcmltYXJ5KTsKPiDCoAllbnVtIGk5eHhfcGxhbmVfaWQg aTl4eF9wbGFuZSA9IHBsYW5lLT5pOXh4X3BsYW5lOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBjcnRj LT5waXBlOwo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gwqAJdTMyIHZhbCwgYmFzZSwgb2Zmc2V0Owo+ IMKgCWludCBmb3VyY2MsIHBpeGVsX2Zvcm1hdDsKPiDCoAl1bnNpZ25lZCBpbnQgYWxpZ25lZF9o ZWlnaHQ7Cj4gwqAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gwqAJc3RydWN0IGludGVs X2ZyYW1lYnVmZmVyICppbnRlbF9mYjsKPiDCoAo+IC0JaWYgKCFwbGFuZS0+Z2V0X2h3X3N0YXRl KHBsYW5lKSkKPiArCWlmICghcGxhbmUtPmdldF9od19zdGF0ZShwbGFuZSwgJnBpcGUpKQo+IMKg CQlyZXR1cm47Cj4gwqAKPiArCVdBUk5fT04ocGlwZSAhPSBjcnRjLT5waXBlKTsKPiArCj4gwqAJ aW50ZWxfZmIgPSBremFsbG9jKHNpemVvZigqaW50ZWxfZmIpLCBHRlBfS0VSTkVMKTsKPiDCoAlp ZiAoIWludGVsX2ZiKSB7Cj4gwqAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvYyBmYlxu Iik7Cj4gQEAgLTg1MTIsMTYgKzg1MjYsMTggQEAgc2t5bGFrZV9nZXRfaW5pdGlhbF9wbGFuZV9j b25maWcoc3RydWN0Cj4gaW50ZWxfY3J0YyAqY3J0YywKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gwqAJc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSA9IHRvX2ludGVsX3BsYW5lKGNydGMtCj4gPmJhc2UucHJpbWFyeSk7Cj4gwqAJZW51bSBw bGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5pZDsKPiAtCWVudW0gcGlwZSBwaXBlID0gY3J0Yy0+ cGlwZTsKPiArCWVudW0gcGlwZSBwaXBlOwo+IMKgCXUzMiB2YWwsIGJhc2UsIG9mZnNldCwgc3Ry aWRlX211bHQsIHRpbGluZywgYWxwaGE7Cj4gwqAJaW50IGZvdXJjYywgcGl4ZWxfZm9ybWF0Owo+ IMKgCXVuc2lnbmVkIGludCBhbGlnbmVkX2hlaWdodDsKPiDCoAlzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYjsKPiDCoAlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiOwo+IMKgCj4g LQlpZiAoIXBsYW5lLT5nZXRfaHdfc3RhdGUocGxhbmUpKQo+ICsJaWYgKCFwbGFuZS0+Z2V0X2h3 X3N0YXRlKHBsYW5lLCAmcGlwZSkpCj4gwqAJCXJldHVybjsKPiDCoAo+ICsJV0FSTl9PTihwaXBl ICE9IGNydGMtPnBpcGUpOwo+ICsKPiDCoAlpbnRlbF9mYiA9IGt6YWxsb2Moc2l6ZW9mKCppbnRl bF9mYiksIEdGUF9LRVJORUwpOwo+IMKgCWlmICghaW50ZWxfZmIpIHsKPiDCoAkJRFJNX0RFQlVH X0tNUygiZmFpbGVkIHRvIGFsbG9jIGZiXG4iKTsKPiBAQCAtOTUwMiw3ICs5NTE4LDggQEAgc3Rh dGljIHZvaWQgaTg0NV9kaXNhYmxlX2N1cnNvcihzdHJ1Y3QKPiBpbnRlbF9wbGFuZSAqcGxhbmUs Cj4gwqAJaTg0NV91cGRhdGVfY3Vyc29yKHBsYW5lLCBOVUxMLCBOVUxMKTsKPiDCoH0KPiDCoAo+ IC1zdGF0aWMgYm9vbCBpODQ1X2N1cnNvcl9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSkKPiArc3RhdGljIGJvb2wgaTg0NV9jdXJzb3JfZ2V0X2h3X3N0YXRlKHN0cnVjdCBp bnRlbF9wbGFuZSAqcGxhbmUsCj4gKwkJCQnCoMKgwqDCoMKgZW51bSBwaXBlICpwaXBlKQo+IMKg ewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUt Cj4gPmJhc2UuZGV2KTsKPiDCoAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIHBvd2Vy X2RvbWFpbjsKPiBAQCAtOTUxNCw2ICs5NTMxLDggQEAgc3RhdGljIGJvb2wgaTg0NV9jdXJzb3Jf Z2V0X2h3X3N0YXRlKHN0cnVjdAo+IGludGVsX3BsYW5lICpwbGFuZSkKPiDCoAo+IMKgCXJldCA9 IEk5MTVfUkVBRChDVVJDTlRSKFBJUEVfQSkpICYgQ1VSU09SX0VOQUJMRTsKPiDCoAo+ICsJKnBp cGUgPSBQSVBFX0E7Cj4gKwo+IMKgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBw b3dlcl9kb21haW4pOwo+IMKgCj4gwqAJcmV0dXJuIHJldDsKPiBAQCAtOTcxMywyMyArOTczMiwz MiBAQCBzdGF0aWMgdm9pZCBpOXh4X2Rpc2FibGVfY3Vyc29yKHN0cnVjdAo+IGludGVsX3BsYW5l ICpwbGFuZSwKPiDCoAlpOXh4X3VwZGF0ZV9jdXJzb3IocGxhbmUsIE5VTEwsIE5VTEwpOwo+IMKg fQo+IMKgCj4gLXN0YXRpYyBib29sIGk5eHhfY3Vyc29yX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lKQo+ICtzdGF0aWMgYm9vbCBpOXh4X2N1cnNvcl9nZXRfaHdfc3RhdGUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiArCQkJCcKgwqDCoMKgwqBlbnVtIHBpcGUgKnBp cGUpCj4gwqB7Cj4gwqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShwbGFuZS0KPiA+YmFzZS5kZXYpOwo+IMKgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21h aW4gcG93ZXJfZG9tYWluOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKPiDCoAli b29sIHJldDsKPiArCXUzMiB2YWw7Cj4gwqAKPiDCoAkvKgo+IMKgCcKgKiBOb3QgMTAwJSBjb3Jy ZWN0IGZvciBwbGFuZXMgdGhhdCBjYW4gbW92ZSBiZXR3ZWVuIHBpcGVzLAo+IMKgCcKgKiBidXQg dGhhdCdzIG9ubHkgdGhlIGNhc2UgZm9yIGdlbjItMyB3aGljaCBkb24ndCBoYXZlIGFueQo+IMKg CcKgKiBkaXNwbGF5IHBvd2VyIHdlbGxzLgo+IMKgCcKgKi8KPiAtCXBvd2VyX2RvbWFpbiA9IFBP V0VSX0RPTUFJTl9QSVBFKHBpcGUpOwo+ICsJcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJ UEUocGxhbmUtPnBpcGUpOwo+IMKgCWlmICghaW50ZWxfZGlzcGxheV9wb3dlcl9nZXRfaWZfZW5h YmxlZChkZXZfcHJpdiwKPiBwb3dlcl9kb21haW4pKQo+IMKgCQlyZXR1cm4gZmFsc2U7Cj4gwqAK PiAtCXJldCA9IEk5MTVfUkVBRChDVVJDTlRSKHBpcGUpKSAmIENVUlNPUl9NT0RFOwo+ICsJdmFs ID0gSTkxNV9SRUFEKENVUkNOVFIocGxhbmUtPnBpcGUpKTsKPiArCj4gKwlyZXQgPSB2YWwgJiBD VVJTT1JfTU9ERTsKPiArCj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA1IHx8IElTX0c0 WChkZXZfcHJpdikpCj4gKwkJKnBpcGUgPSBwbGFuZS0+cGlwZTsKPiArCWVsc2UKPiArCQkqcGlw ZSA9ICh2YWwgJiBNQ1VSU09SX1BJUEVfU0VMRUNUX01BU0spID4+Cj4gKwkJCU1DVVJTT1JfUElQ RV9TRUxFQ1RfU0hJRlQ7Cj4gwqAKPiDCoAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJp diwgcG93ZXJfZG9tYWluKTsKPiDCoAo+IEBAIC0xNDc1NSwxMiArMTQ3ODMsMTIgQEAgdm9pZCBp ODMwX2Rpc2FibGVfcGlwZShzdHJ1Y3QKPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51 bSBwaXBlIHBpcGUpCj4gwqBzdGF0aWMgYm9vbCBpbnRlbF9wbGFuZV9tYXBwaW5nX29rKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+IMKgCQkJCcKgwqDCoHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNydGMtPmJhc2UuZGV2KTsKPiAtCWVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lID0gcGxh bmUtPmk5eHhfcGxhbmU7Cj4gLQl1MzIgdmFsID0gSTkxNV9SRUFEKERTUENOVFIoaTl4eF9wbGFu ZSkpOwo+ICsJZW51bSBwaXBlIHBpcGU7Cj4gwqAKPiAtCXJldHVybiAodmFsICYgRElTUExBWV9Q TEFORV9FTkFCTEUpID09IDAgfHwKPiAtCQkodmFsICYgRElTUFBMQU5FX1NFTF9QSVBFX01BU0sp ID09Cj4gRElTUFBMQU5FX1NFTF9QSVBFKGNydGMtPnBpcGUpOwo+ICsJaWYgKCFwbGFuZS0+Z2V0 X2h3X3N0YXRlKHBsYW5lLCAmcGlwZSkpCj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJcmV0dXJu IHBpcGUgPT0gY3J0Yy0+cGlwZTsKPiDCoH0KPiDCoAo+IMKgc3RhdGljIHZvaWQKPiBAQCAtMTQ5 NTksNyArMTQ5ODcsMTAgQEAgc3RhdGljIHZvaWQgcmVhZG91dF9wbGFuZV9zdGF0ZShzdHJ1Y3QK PiBpbnRlbF9jcnRjICpjcnRjKQo+IMKgCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoJmRl dl9wcml2LT5kcm0sIGNydGMsIHBsYW5lKSB7Cj4gwqAJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGUgPQo+IMKgCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uu c3RhdGUpOwo+IC0JCWJvb2wgdmlzaWJsZSA9IHBsYW5lLT5nZXRfaHdfc3RhdGUocGxhbmUpOwo+ ICsJCWVudW0gcGlwZSBwaXBlOwo+ICsJCWJvb2wgdmlzaWJsZTsKPiArCj4gKwkJdmlzaWJsZSA9 IHBsYW5lLT5nZXRfaHdfc3RhdGUocGxhbmUsICZwaXBlKTsKPiDCoAo+IMKgCQlpbnRlbF9zZXRf cGxhbmVfdmlzaWJsZShjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSwKPiB2aXNpYmxlKTsKPiDCoAl9 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDgzMzVkMjdmNDE1Ni4uZDgwZWFl N2E2OWJhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtOTQ2LDcgKzk0Niw3 IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSB7Cj4gwqAJCQnCoMKgwqDCoMKgY29uc3Qgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlCj4gKnBsYW5lX3N0YXRlKTsKPiDCoAl2b2lkICgqZGlzYWJsZV9wbGFu ZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiDCoAkJCcKgwqDCoMKgwqDCoHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKTsKPiAtCWJvb2wgKCpnZXRfaHdfc3RhdGUpKHN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUpOwo+ICsJYm9vbCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwgZW51bSBwaXBlCj4gKnBpcGUpOwo+IMKgCWludCAoKmNoZWNrX3BsYW5lKShzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+IMKgCQkJwqDCoMKgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCj4gwqAJCQnCoMKgwqBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0 YXRlKTsKPiBAQCAtMjAyMyw3ICsyMDIzLDcgQEAgdm9pZCBza2xfdXBkYXRlX3BsYW5lKHN0cnVj dCBpbnRlbF9wbGFuZQo+ICpwbGFuZSwKPiDCoAkJwqDCoMKgwqDCoMKgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gwqAJCcKgwqDCoMKgwqDCoGNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpOwo+IMKgdm9pZCBza2xfZGlzYWJsZV9w bGFuZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgaW50ZWxfY3J0Ywo+ICpjcnRj KTsKPiAtYm9vbCBza2xfcGxhbmVfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUpOwo+ICtib29sIHNrbF9wbGFuZV9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSwgZW51bSBwaXBlCj4gKnBpcGUpOwo+IMKgYm9vbCBza2xfcGxhbmVfaGFzX2NjcyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gwqAJCcKgwqDCoMKgwqDCoMKgZW51bSBw aXBlIHBpcGUsIGVudW0gcGxhbmVfaWQgcGxhbmVfaWQpOwo+IMKgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwo+IGluZGV4IGFlYTIxYTlhYmY2Yy4uODZhMzE1MzVmY2UzIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKPiBAQCAtMzI2LDE5ICszMjYsMjEgQEAg c2tsX2Rpc2FibGVfcGxhbmUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiBzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YykKPiDCoH0KPiDCoAo+IMKgYm9vbAo+IC1za2xfcGxhbmVfZ2V0X2h3X3N0 YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpCj4gK3NrbF9wbGFuZV9nZXRfaHdfc3RhdGUo c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiArCQnCoMKgwqDCoMKgwqDCoGVudW0gcGlwZSAq cGlwZSkKPiDCoHsKPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KHBsYW5lLQo+ID5iYXNlLmRldik7Cj4gwqAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2Rv bWFpbiBwb3dlcl9kb21haW47Cj4gwqAJZW51bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHBsYW5lLT5p ZDsKPiAtCWVudW0gcGlwZSBwaXBlID0gcGxhbmUtPnBpcGU7Cj4gwqAJYm9vbCByZXQ7Cj4gwqAK PiAtCXBvd2VyX2RvbWFpbiA9IFBPV0VSX0RPTUFJTl9QSVBFKHBpcGUpOwo+ICsJcG93ZXJfZG9t YWluID0gUE9XRVJfRE9NQUlOX1BJUEUocGxhbmUtPnBpcGUpOwo+IMKgCWlmICghaW50ZWxfZGlz cGxheV9wb3dlcl9nZXRfaWZfZW5hYmxlZChkZXZfcHJpdiwKPiBwb3dlcl9kb21haW4pKQo+IMKg CQlyZXR1cm4gZmFsc2U7Cj4gwqAKPiAtCXJldCA9IEk5MTVfUkVBRChQTEFORV9DVEwocGlwZSwg cGxhbmVfaWQpKSAmCj4gUExBTkVfQ1RMX0VOQUJMRTsKPiArCXJldCA9IEk5MTVfUkVBRChQTEFO RV9DVEwocGxhbmUtPnBpcGUsIHBsYW5lX2lkKSkgJgo+IFBMQU5FX0NUTF9FTkFCTEU7Cj4gKwo+ ICsJKnBpcGUgPSBwbGFuZS0+cGlwZTsKPiDCoAo+IMKgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0 KGRldl9wcml2LCBwb3dlcl9kb21haW4pOwo+IMKgCj4gQEAgLTUyMywxOSArNTI1LDIxIEBAIHZs dl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCj4gc3RydWN0IGludGVs X2NydGMgKmNydGMpCj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBib29sCj4gLXZsdl9wbGFuZV9nZXRf aHdfc3RhdGUoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiArdmx2X3BsYW5lX2dldF9od19z dGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICsJCcKgwqDCoMKgwqDCoMKgZW51bSBw aXBlICpwaXBlKQo+IMKgewo+IMKgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUocGxhbmUtCj4gPmJhc2UuZGV2KTsKPiDCoAllbnVtIGludGVsX2Rpc3BsYXlfcG93 ZXJfZG9tYWluIHBvd2VyX2RvbWFpbjsKPiDCoAllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gcGxh bmUtPmlkOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKPiDCoAlib29sIHJldDsK PiDCoAo+IC0JcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEUocGlwZSk7Cj4gKwlwb3dl cl9kb21haW4gPSBQT1dFUl9ET01BSU5fUElQRShwbGFuZS0+cGlwZSk7Cj4gwqAJaWYgKCFpbnRl bF9kaXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2LAo+IHBvd2VyX2RvbWFpbikp Cj4gwqAJCXJldHVybiBmYWxzZTsKPiDCoAo+IC0JcmV0ID0gSTkxNV9SRUFEKFNQQ05UUihwaXBl LCBwbGFuZV9pZCkpICYgU1BfRU5BQkxFOwo+ICsJcmV0ID0gSTkxNV9SRUFEKFNQQ05UUihwbGFu ZS0+cGlwZSwgcGxhbmVfaWQpKSAmIFNQX0VOQUJMRTsKPiArCj4gKwkqcGlwZSA9IHBsYW5lLT5w aXBlOwo+IMKgCj4gwqAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2Rv bWFpbik7Cj4gwqAKPiBAQCAtNjgzLDE4ICs2ODcsMjAgQEAgaXZiX2Rpc2FibGVfcGxhbmUoc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSwKPiBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiDCoH0K PiDCoAo+IMKgc3RhdGljIGJvb2wKPiAtaXZiX3BsYW5lX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lKQo+ICtpdmJfcGxhbmVfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9w bGFuZSAqcGxhbmUsCj4gKwkJwqDCoMKgwqDCoMKgwqBlbnVtIHBpcGUgKnBpcGUpCj4gwqB7Cj4g wqAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0KPiA+ YmFzZS5kZXYpOwo+IMKgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9t YWluOwo+IC0JZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKPiDCoAlib29sIHJldDsKPiDC oAo+IC0JcG93ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEUocGlwZSk7Cj4gKwlwb3dlcl9k b21haW4gPSBQT1dFUl9ET01BSU5fUElQRShwbGFuZS0+cGlwZSk7Cj4gwqAJaWYgKCFpbnRlbF9k aXNwbGF5X3Bvd2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2LAo+IHBvd2VyX2RvbWFpbikpCj4g wqAJCXJldHVybiBmYWxzZTsKPiDCoAo+IC0JcmV0ID3CoMKgSTkxNV9SRUFEKFNQUkNUTChwaXBl KSkgJiBTUFJJVEVfRU5BQkxFOwo+ICsJcmV0ID3CoMKgSTkxNV9SRUFEKFNQUkNUTChwbGFuZS0+ cGlwZSkpICYgU1BSSVRFX0VOQUJMRTsKPiArCj4gKwkqcGlwZSA9IHBsYW5lLT5waXBlOwo+IMKg Cj4gwqAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIHBvd2VyX2RvbWFpbik7Cj4g wqAKPiBAQCAtODMzLDE4ICs4MzksMjAgQEAgZzR4X2Rpc2FibGVfcGxhbmUoc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSwKPiBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiDCoH0KPiDCoAo+IMKg c3RhdGljIGJvb2wKPiAtZzR4X3BsYW5lX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lKQo+ICtnNHhfcGxhbmVfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxh bmUsCj4gKwkJwqDCoMKgwqDCoMKgwqBlbnVtIHBpcGUgKnBpcGUpCj4gwqB7Cj4gwqAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0KPiA+YmFzZS5kZXYp Owo+IMKgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gcG93ZXJfZG9tYWluOwo+IC0J ZW51bSBwaXBlIHBpcGUgPSBwbGFuZS0+cGlwZTsKPiDCoAlib29sIHJldDsKPiDCoAo+IC0JcG93 ZXJfZG9tYWluID0gUE9XRVJfRE9NQUlOX1BJUEUocGlwZSk7Cj4gKwlwb3dlcl9kb21haW4gPSBQ T1dFUl9ET01BSU5fUElQRShwbGFuZS0+cGlwZSk7Cj4gwqAJaWYgKCFpbnRlbF9kaXNwbGF5X3Bv d2VyX2dldF9pZl9lbmFibGVkKGRldl9wcml2LAo+IHBvd2VyX2RvbWFpbikpCj4gwqAJCXJldHVy biBmYWxzZTsKPiDCoAo+IC0JcmV0ID0gSTkxNV9SRUFEKERWU0NOVFIocGlwZSkpICYgRFZTX0VO QUJMRTsKPiArCXJldCA9IEk5MTVfUkVBRChEVlNDTlRSKHBsYW5lLT5waXBlKSkgJiBEVlNfRU5B QkxFOwo+ICsKPiArCSpwaXBlID0gcGxhbmUtPnBpcGU7Cj4gwqAKPiDCoAlpbnRlbF9kaXNwbGF5 X3Bvd2VyX3B1dChkZXZfcHJpdiwgcG93ZXJfZG9tYWluKTsKPiDCoAotLSAKTWlrYSBLYWhvbGEg LSBJbnRlbCBPVEMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=