From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/7] drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v3. Date: Fri, 21 Sep 2018 21:35:52 +0300 Message-ID: <20180921183552.GH5565@intel.com> References: <20180921173945.6276-1-maarten.lankhorst@linux.intel.com> <20180921173945.6276-3-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id D55176E00C for ; Fri, 21 Sep 2018 18:35:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180921173945.6276-3-maarten.lankhorst@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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBTZXAgMjEsIDIwMTggYXQgMDc6Mzk6NDBQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVG8gbWFrZSBOVjEyIHdvcmtpbmcgb24gaWNsLCB3ZSBuZWVkIHRvIHVwZGF0 ZSAyIHBsYW5lcyBzaW11bHRhbmVvdXNseS4KPiBJJ3ZlIGNob3NlbiB0byBkbyB0aGlzIGluIHRo ZSBDUlRDIHN0ZXAgYWZ0ZXIgcGxhbmUgdmFsaWRhdGlvbiBpcyBkb25lLAo+IHNvIHdlIGtub3cg d2hhdCBwbGFuZXMgYXJlIChpbil2aXNpYmxlLiBUaGUgbGlua2VkIFkgcGxhbmUgd2lsbCBnZXQK PiB1cGRhdGVkIGluIGludGVsX3BsYW5lX3VwZGF0ZV9wbGFuZXNfb25fY3J0YygpLCBieSB0aGUg Y2FsbCB0bwo+IHVwZGF0ZV9zbGF2ZSwgd2hpY2ggZ2V0cyB0aGUgbWFzdGVyJ3MgcGxhbmVfc3Rh dGUgYXMgYXJndW1lbnQuCj4gCj4gVGhlIGxpbmsgcmVxdWlyZXMgYm90aCBwbGFuZXMgZm9yIGF0 b21pY191cGRhdGUgdG8gd29yaywKPiBzbyBtYWtlIHN1cmUgc2tsX2RkYl9hZGRfYWZmZWN0ZWRf cGxhbmVzKCkgYWRkcyBib3RoIHN0YXRlcy4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0gSW50 cm9kdWNlIGljbF9pc19udjEyX3lfcGxhbmUoKSwgaW5zdGVhZCBvZiBoYXJkY29kaW5nIHNwcml0 ZSBudW1iZXJzLgo+IC0gUHV0IGFsbCB0aGUgc3RhdGUgdXBkYXRpbmcgbG9naW4gaW4gaW50ZWxf cGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoKS4KPiAtIENsZWFuIHVwIGNoYW5nZXMgaW4g aW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKCkuCj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAtIEZpeCBp bnRlbF9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZSgpIHRvIGFjdHVhbGx5IHJldHVybiBvbGQg c3RhdGUuCj4gLSBNb3ZlIHZpc2liaWxpdHkgY2hhbmdlcyB0byBwcmVwYXJhdGlvbiBwYXRjaC4K PiAtIE9ubHkgdHJ5IHRvIGZpbmQgYSBZIHBsYW5lIG9uIGdlbjExLCBlYXJsaWVyIHBsYXRmb3Jt cyBvbmx5IHJlcXVpcmUgYSBzaW5nbGUgcGxhbmUuCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRl biBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAKPiBmaXh1 cCBZL1VWIExpbmthZ2UKPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFh cnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8IDEwNiArKysrKysrKysrKysrKysrKystLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgIHwgIDU3ICsrKysrKysr KysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICB8ICA1MyAr KysrKysrKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICB8 ICAxMiArKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCAyMTAgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRp b25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21p Y19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiBp bmRleCA5ODRiYzFmMjY2MjUuLjUyMjY5OTA4NWE1OSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2F0b21pY19wbGFuZS5jCj4gQEAgLTEyMSw3ICsxMjEsMTEgQEAgaW50IGludGVs X3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpvbGRfY3J0Y18KPiAgCWNydGNfc3RhdGUtPm52MTJfcGxhbmVzICY9IH5CSVQoaW50ZWxf cGxhbmUtPmlkKTsKPiAgCWludGVsX3N0YXRlLT5iYXNlLnZpc2libGUgPSBmYWxzZTsKPiAgCj4g LQkvKiBJZiB0aGlzIGlzIGEgY3Vyc29yIHBsYW5lLCBubyBmdXJ0aGVyIGNoZWNrcyBhcmUgbmVl ZGVkLiAqLwo+ICsJLyogRGVzdHJveSB0aGUgbGluayAqLwo+ICsJaW50ZWxfc3RhdGUtPmxpbmtl ZF9wbGFuZSA9IE5VTEw7Cj4gKwlpbnRlbF9zdGF0ZS0+c2xhdmUgPSBmYWxzZTsKPiArCj4gKwkv KiBJZiB0aGlzIGlzIGEgY3Vyc29yIG9yIFkgcGxhbmUsIG5vIGZ1cnRoZXIgY2hlY2tzIGFyZSBu ZWVkZWQuICovCj4gIAlpZiAoIWludGVsX3N0YXRlLT5iYXNlLmNydGMgJiYgIW9sZF9wbGFuZV9z dGF0ZS0+YmFzZS5jcnRjKQo+ICAJCXJldHVybiAwOwo+ICAKPiBAQCAtMTQyLDI3ICsxNDYsNzYg QEAgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y18KPiAgCQkJCQkgICAgICAgc3RhdGUpOwo+ICB9Cj4g IAo+IC1zdGF0aWMgaW50IGludGVsX3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5l ICpwbGFuZSwKPiAtCQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3Rh dGUpCj4gK3N0YXRpYyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxh bmUgKmRybV9wbGFuZSwKPiArCQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfZHJt X3BsYW5lX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBu ZXdfcGxhbmVfc3RhdGUtPnN0YXRlOwo+IC0JY29uc3Qgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq b2xkX3BsYW5lX3N0YXRlID0KPiAtCQlkcm1fYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoc3Rh dGUsIHBsYW5lKTsKPiAtCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG5ld19wbGFuZV9zdGF0ZS0+ Y3J0YyA/OiBvbGRfcGxhbmVfc3RhdGUtPmNydGM7Cj4gLQljb25zdCBzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlOwo+IC0Jc3RydWN0IGRybV9jcnRjX3N0YXRlICpuZXdfY3J0 Y19zdGF0ZTsKPiAtCj4gLQluZXdfcGxhbmVfc3RhdGUtPnZpc2libGUgPSBmYWxzZTsKPiArCXN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KPiArCQl0b19pbnRlbF9hdG9taWNfc3Rh dGUobmV3X2RybV9wbGFuZV9zdGF0ZS0+c3RhdGUpOwo+ICsJc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSA9IHRvX2ludGVsX3BsYW5lKGRybV9wbGFuZSk7Cj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0ZSA9Cj4gKwkJaW50ZWxfYXRvbWljX2dldF9vbGRf cGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq bmV3X3BsYW5lX3N0YXRlID0KPiArCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShuZXdfZHJtX3BsYW5l X3N0YXRlKTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YygKPiAr CQluZXdfcGxhbmVfc3RhdGUtPmJhc2UuY3J0YyA/Ogo+ICsJCW9sZF9wbGFuZV9zdGF0ZS0+YmFz ZS5jcnRjKTsKPiArCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZTsKPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpuZXdfY3J0Y19zdGF0ZTsKPiArCXN0cnVj dCBpbnRlbF9wbGFuZSAqbGlua2VkID0gb2xkX3BsYW5lX3N0YXRlLT5saW5rZWRfcGxhbmU7Cj4g KwlpbnQgcmV0Owo+ICsJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfbGlua2Vk X3N0YXRlOwo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfbGlua2VkX3N0YXRlID0g TlVMTDsKPiArCj4gKwlpZiAobGlua2VkKSB7Cj4gKwkJLyoKPiArCQkqIE1ha2Ugc3VyZSBhIHBy ZXZpb3VzbHkgbGlua2VkIHBsYW5lIChhbmQgaW1wbGljaXRseSwgdGhlIENSVEMpCj4gKwkJKiBp cyBwYXJ0IG9mIHRoZSBhdG9taWMgY29tbWl0Lgo+ICsJCSovCj4gKwkJaWYgKCFpbnRlbF9hdG9t aWNfZ2V0X25ld19wbGFuZV9zdGF0ZShzdGF0ZSwgbGlua2VkKSkgewo+ICsJCQluZXdfbGlua2Vk X3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgbGlua2VkKTsKPiAr CQkJaWYgKElTX0VSUihuZXdfbGlua2VkX3N0YXRlKSkKPiArCQkJCXJldHVybiBQVFJfRVJSKG5l d19saW5rZWRfc3RhdGUpOwo+ICsJCX0KPiArCj4gKwkJb2xkX2xpbmtlZF9zdGF0ZSA9Cj4gKwkJ CWludGVsX2F0b21pY19nZXRfb2xkX3BsYW5lX3N0YXRlKHN0YXRlLCBsaW5rZWQpOwo+ICsKPiAr CQkvKgo+ICsJCSAqIFRoaXMgd2lsbCBoYXBwZW4gd2hlbiB3ZSdyZSB0aGUgWSBwbGFuZS4gSW4g d2hpY2ggY2FzZQo+ICsJCSAqIG9sZC9uZXdfc3RhdGUtPmNydGMgYXJlIGJvdGggTlVMTC4gV2Ug c3RpbGwgbmVlZCB0byBwZXJmb3JtCj4gKwkJICogdXBkYXRlcyBvbiB0aGUgbGlua2VkIHBsYW5l Lgo+ICsJCSAqLwo+ICsJCWlmICghY3J0YykKPiArCQkJY3J0YyA9IHRvX2ludGVsX2NydGMob2xk X2xpbmtlZF9zdGF0ZS0+YmFzZS5jcnRjKTsKPiArCj4gKwkJV0FSTl9PTighY3J0Yyk7Cj4gKwl9 Cj4gKwo+ICsJbmV3X3BsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUgPSBmYWxzZTsKPiAgCWlmICgh Y3J0YykKPiAgCQlyZXR1cm4gMDsKPiAgCj4gLQlvbGRfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNf Z2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiAtCW5ld19jcnRjX3N0YXRlID0gZHJt X2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+ICsJb2xkX2NydGNfc3Rh dGUgPSBpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPiArCW5l d19jcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7Cj4gKwo+ICsJaWYgKG5ld19saW5rZWRfc3RhdGUgJiYKPiArCSAgICBkcm1fcGxhbmVfaW5k ZXgoJmxpbmtlZC0+YmFzZSkgPCBkcm1fcGxhbmVfaW5kZXgoJnBsYW5lLT5iYXNlKSkgewo+ICsJ CS8qCj4gKwkJICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSBkcm1fYXRvbWljX2hlbHBl cl9jaGVja19wbGFuZXMoKSwgd2hpY2gKPiArCQkgKiB3aWxsIG5vcm1hbGx5IGNoZWNrIHRoZSBu ZXdseSBhZGRlZCBwbGFuZSBmb3IgdXMsIGJ1dCBzaW5jZSB3ZSdyZQo+ICsJCSAqIGFscmVhZHkg aW4gdGhhdCBmdW5jdGlvbiwgaXQgd29uJ3QgY2hlY2sgdGhlIHBsYW5lIGlmIG91ciBpbmRleAo+ ICsJCSAqIGlzIGJpZ2dlciB0aGFuIHRoZSBsaW5rZWQgaW5kZXggYmVjYXVzZSBvZiB0aGUKPiAr CQkgKiBmb3JfZWFjaF9vbGRuZXdfcGxhbmVfaW5fc3RhdGUoKSBjYWxsLgo+ICsJCSAqLwo+ICsJ CW5ld19jcnRjX3N0YXRlLT5iYXNlLnBsYW5lc19jaGFuZ2VkID0gdHJ1ZTsKPiArCQlyZXQgPSBp bnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZShvbGRfY3J0Y19zdGF0ZSwgbmV3X2Ny dGNfc3RhdGUsCj4gKwkJCQkJCQkgIG9sZF9saW5rZWRfc3RhdGUsIG5ld19saW5rZWRfc3RhdGUp Owo+ICsJCWlmIChyZXQpCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9CgpUaGlzIGlzIGFsbCByYXRo ZXIgY29uZnVzaW5nLiBDYW4ndCB3ZSBqdXN0IGRvIGEgcHJlcHJvY2Vzc2luZyBzdGVwCmJlZm9y ZSBjaGVja19wbGFuZXMoKSB0byBhZGQgdGhlIGxpbmtlZCBwbGFuZXMgYXMgbmVlZGVkLCBhbmQg dGhlbgpsZXQgdGhlIG5vcm1hbCBjaGVja19wbGFuZXMoKSBkbyBpdHMgdGhpbmc/Cgo+ICAKPiAt CXJldHVybiBpbnRlbF9wbGFuZV9hdG9taWNfY2hlY2tfd2l0aF9zdGF0ZSh0b19pbnRlbF9jcnRj X3N0YXRlKG9sZF9jcnRjX3N0YXRlKSwKPiAtCQkJCQkJICAgdG9faW50ZWxfY3J0Y19zdGF0ZShu ZXdfY3J0Y19zdGF0ZSksCj4gLQkJCQkJCSAgIHRvX2ludGVsX3BsYW5lX3N0YXRlKG9sZF9wbGFu ZV9zdGF0ZSksCj4gLQkJCQkJCSAgIHRvX2ludGVsX3BsYW5lX3N0YXRlKG5ld19wbGFuZV9zdGF0 ZSkpOwo+ICsJcmV0dXJuIGludGVsX3BsYW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKG9sZF9j cnRjX3N0YXRlLCBuZXdfY3J0Y19zdGF0ZSwKPiArCQkJCQkJICAgb2xkX3BsYW5lX3N0YXRlLCBu ZXdfcGxhbmVfc3RhdGUpOwo+ICB9Cj4gIAo+ICB2b2lkIGludGVsX3VwZGF0ZV9wbGFuZXNfb25f Y3J0YyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpvbGRfc3RhdGUsCj4gQEAgLTE4Nyw2ICsy NDAsMjUgQEAgdm9pZCBpbnRlbF91cGRhdGVfcGxhbmVzX29uX2NydGMoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqb2xkX3N0YXRlLAo+ICAJCQl0cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUoJnBs YW5lLT5iYXNlLCBjcnRjKTsKPiAgCj4gIAkJCXBsYW5lLT51cGRhdGVfcGxhbmUocGxhbmUsIG5l d19jcnRjX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpOwo+ICsJCX0gZWxzZSBpZiAobmV3X3BsYW5l X3N0YXRlLT5zbGF2ZSkgewo+ICsJCQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKm1hc3RlciA9Cj4gKwkJ CQluZXdfcGxhbmVfc3RhdGUtPmxpbmtlZF9wbGFuZTsKPiArCj4gKwkJCS8qCj4gKwkJCSAqIFdl IHVwZGF0ZSB0aGUgc2xhdmUgcGxhbmUgZnJvbSB0aGlzIGZ1bmN0aW9uIGJlY2F1c2UKPiArCQkJ ICogcHJvZ3JhbW1pbmcgaXQgZnJvbSB0aGUgbWFzdGVyIHBsYW5lJ3MgdXBkYXRlX3BsYW5lCj4g KwkJCSAqIGNhbGxiYWNrIHJ1bnMgaW50byBpc3N1ZXMgd2hlbiB0aGUgWSBwbGFuZSBpcwo+ICsJ CQkgKiByZWFzc2lnbmVkLCBkaXNhYmxlZCBvciB1c2VkIGJ5IGEgZGlmZmVyZW50IHBsYW5lLgo+ ICsJCQkgKgo+ICsJCQkgKiBUaGUgc2xhdmUgcGxhbmUgaXMgdXBkYXRlZCB3aXRoIHRoZSBtYXN0 ZXIgcGxhbmUncwo+ICsJCQkgKiBwbGFuZV9zdGF0ZS4KPiArCQkJICovCj4gKwkJCW5ld19wbGFu ZV9zdGF0ZSA9Cj4gKwkJCQlpbnRlbF9hdG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShvbGRfc3Rh dGUsIG1hc3Rlcik7Cj4gKwo+ICsJCQl0cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUoJnBsYW5lLT5i YXNlLCBjcnRjKTsKPiArCj4gKwkJCXBsYW5lLT51cGRhdGVfc2xhdmUocGxhbmUsIG5ld19jcnRj X3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCXRyYWNlX2ludGVs X2Rpc2FibGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBjcnRjKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDM5MDkwN2Q3N2VjZC4uMTljZDZiYmI0M2M0IDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMDcyNiw2ICsxMDcyNiw2 MCBAQCBzdGF0aWMgYm9vbCBjaGVja19zaW5nbGVfZW5jb2Rlcl9jbG9uaW5nKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCXJldHVybiB0cnVlOwo+ICB9Cj4gIAo+ICtzdGF0aWMg aW50IGljbF9jaGVja19udjEyX3BsYW5lcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gKwkJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCQkgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPmJhc2Uuc3RhdGUp Owo+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwgKmF1eDsKPiArCj4gKwlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA8IDExIHx8ICFjcnRjX3N0YXRlLT5udjEyX3BsYW5lcykKPiArCQlyZXR1 cm4gMDsKPiArCj4gKwlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKCZkZXZfcHJpdi0+ZHJt LCBjcnRjLCBwbGFuZSkgewo+ICsJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUsICphdXhfc3RhdGU7Cj4gKwkJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqZHJtX2F1eF9zdGF0 ZSA9IE5VTEw7Cj4gKwo+ICsJCWlmICghKGNydGNfc3RhdGUtPm52MTJfcGxhbmVzICYgQklUKHBs YW5lLT5pZCkpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJcGxhbmVfc3RhdGUgPSBpbnRlbF9h dG9taWNfZ2V0X25ld19wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+ICsJCWlmICghcGxhbmVf c3RhdGUpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9j cnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRjLCBhdXgpIHsKPiArCQkJaWYgKCFpY2xfaXNfbnYxMl95 X3BsYW5lKGF1eC0+aWQpKQo+ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQlpZiAoY3J0Y19zdGF0 ZS0+YWN0aXZlX3BsYW5lcyAmIEJJVChhdXgtPmlkKSkKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiAr CQkJZHJtX2F1eF9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKCZzdGF0ZS0+YmFz ZSwgJmF1eC0+YmFzZSk7Cj4gKwkJCWlmIChJU19FUlIoZHJtX2F1eF9zdGF0ZSkpCj4gKwkJCQly ZXR1cm4gUFRSX0VSUihkcm1fYXV4X3N0YXRlKTsKPiArCj4gKwkJCWJyZWFrOwo+ICsJCX0KPiAr Cj4gKwkJaWYgKCFkcm1fYXV4X3N0YXRlKSB7Cj4gKwkJCURSTV9ERUJVR19LTVMoIk5lZWQgJWQg ZnJlZSBZIHBsYW5lcyBmb3IgTlYxMlxuIiwKPiArCQkJCSAgICAgIGh3ZWlnaHQ4KGNydGNfc3Rh dGUtPm52MTJfcGxhbmVzKSk7Cj4gKwo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQl9Cj4gKwo+ ICsJCXBsYW5lX3N0YXRlLT5saW5rZWRfcGxhbmUgPSBhdXg7Cj4gKwo+ICsJCWF1eF9zdGF0ZSA9 IHRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9hdXhfc3RhdGUpOwoKRG9uJ3QgcmVhbGx5IGxpa2Ug dGhlIGF1eCBuYW1lIGhlcmUuIEVhY2ggcGxhbmUgY2FuIGhhdmUgYW4gYXV4IHN1cmZhY2UKc28g bm93IGhhdmluZyBhdXggcGxhbmVzIGlzIGdldHRpbmcgYSBiaXQgb3ZlcmxvYWR5LiBZb3UgY2Fs bGVkIGl0IHNsYXZlCmVsc2V3aGVyZSBzbyBJJ2Qgc3RpY2sgdG8gdGhhdCBldmVyeXdoZXJlLgoK PiArCQlhdXhfc3RhdGUtPnNsYXZlID0gdHJ1ZTsKPiArCQlhdXhfc3RhdGUtPmxpbmtlZF9wbGFu ZSA9IHBsYW5lOwo+ICsJCWNydGNfc3RhdGUtPmFjdGl2ZV9wbGFuZXMgfD0gQklUKGF1eC0+aWQp Owo+ICsJCURSTV9ERUJVR19LTVMoIlVzaW5nICVzIGFzIFkgcGxhbmUgZm9yICVzXG4iLCBhdXgt PmJhc2UubmFtZSwgcGxhbmUtPmJhc2UubmFtZSk7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4g K30KPiArCj4gIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9j cnRjICpjcnRjLAo+ICAJCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ ICB7Cj4gQEAgLTEwNzk3LDYgKzEwODUxLDkgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21p Y19jaGVjayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAkJaWYgKG1vZGVfY2hhbmdlZCkKPiAg CQkJcmV0ID0gc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhwaXBlX2NvbmZpZyk7Cj4gIAo+ICsJCWlm ICghcmV0KQo+ICsJCQlyZXQgPSBpY2xfY2hlY2tfbnYxMl9wbGFuZXMoZGV2X3ByaXYsIGludGVs X2NydGMsCj4gKwkJCQkJCSAgICBwaXBlX2NvbmZpZyk7Cj4gIAkJaWYgKCFyZXQpCj4gIAkJCXJl dCA9IHNrbF9jaGVja19waXBlX21heF9waXhlbF9yYXRlKGludGVsX2NydGMsCj4gIAkJCQkJCQkg ICAgcGlwZV9jb25maWcpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gaW5kZXggODA3M2E4 NWQ3MTc4Li4yOWM3YTRiYjQ4NGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBA IC01MzksNiArNTM5LDI2IEBAIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7Cj4gIAkgKi8KPiAg CWludCBzY2FsZXJfaWQ7Cj4gIAo+ICsJLyoKPiArCSAqIGxpbmtlZF9wbGFuZToKPiArCSAqCj4g KwkgKiBJQ0wgcGxhbmFyIGZvcm1hdHMgcmVxdWlyZSAyIHBsYW5lcyB0aGF0IGFyZSB1cGRhdGVk IGFzIHBhaXJzLgo+ICsJICogVGhpcyBtZW1iZXIgaXMgdXNlZCB0byBtYWtlIHN1cmUgdGhlIG90 aGVyIHBsYW5lIGlzIGFsc28gdXBkYXRlZAo+ICsJICogd2hlbiByZXF1aXJlZCwgYW5kIGZvciB1 cGRhdGVfc2xhdmUoKSB0byBmaW5kIHRoZSBjb3JyZWN0Cj4gKwkgKiBwbGFuZV9zdGF0ZSB0byBw YXNzIGFzIGFyZ3VtZW50Lgo+ICsJICovCj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmxpbmtlZF9w bGFuZTsKPiArCj4gKwkvKgo+ICsJICogc2xhdmU6Cj4gKwkgKiBJZiBzZXQgZG9uJ3QgdXBkYXRl IHVzZSB0aGUgbGlua2VkIHBsYW5lJ3Mgc3RhdGUgZm9yIHVwZGF0aW5nCj4gKwkgKiB0aGlzIHBs YW5lIGR1cmluZyBhdG9taWMgY29tbWl0IHdpdGggdGhlIHVwZGF0ZV9zbGF2ZSgpIGNhbGxiYWNr Lgo+ICsJICoKPiArCSAqIEl0J3MgYWxzbyB1c2VkIGJ5IHRoZSB3YXRlcm1hcmsgY29kZSB0byBp Z25vcmUgd20gY2FsY3VsYXRpb25zIG9uCj4gKwkgKiB0aGlzIHBsYW5lLiBUaGV5J3JlIGNhbGN1 bGF0ZWQgYnkgdGhlIGxpbmtlZCBwbGFuZSdzIHdtIGNvZGUuCj4gKwkgKi8KPiArCWJvb2wgc2xh dmU7CgpXb25kZXJpbmcgaWYgc2VwYXJhdGUgKnNsYXZlIGFuZCAqbWFzdGVyIHBvaW50ZXJzIHdv dWxkIGJlIG1ha2UgdGhpbmdzCm1vcmUgb2J2aW9pdXMgd2hpY2ggb25lIHdlJ3JlIGxvb2tpbmcg YXQgaW4gZWFjaCBwaWVjZSBvZiBjb2RlLgoKPiArCj4gIAlzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0 ZV9jb2xvcmtleSBja2V5Owo+ICB9Owo+ICAKPiBAQCAtOTczLDYgKzk5Myw5IEBAIHN0cnVjdCBp bnRlbF9wbGFuZSB7Cj4gIAl2b2lkICgqdXBkYXRlX3BsYW5lKShzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lLAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUpOwo+ICsJdm9pZCAoKnVwZGF0ZV9zbGF2ZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwK PiArCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAr CQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKPiAg CXZvaWQgKCpkaXNhYmxlX3BsYW5lKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICAJCQkg ICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gIAlib29sICgqZ2V0X2h3X3N0YXRlKShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCBlbnVtIHBpcGUgKnBpcGUpOwo+IEBAIC0xMzMwLDYg KzEzNTMsMjcgQEAgaGRtaV90b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRt aSkKPiAgCXJldHVybiBjb250YWluZXJfb2YoaW50ZWxfaGRtaSwgc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCwgaGRtaSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICoKPiAraW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJCSBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpyZXQgPQo+ICsJCWRybV9hdG9taWNfZ2V0 X3BsYW5lX3N0YXRlKCZzdGF0ZS0+YmFzZSwgJnBsYW5lLT5iYXNlKTsKPiArCj4gKwlpZiAoSVNf RVJSKHJldCkpCj4gKwkJcmV0dXJuIEVSUl9DQVNUKHJldCk7Cj4gKwo+ICsJcmV0dXJuIHRvX2lu dGVsX3BsYW5lX3N0YXRlKHJldCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICoKPiAraW50ZWxfYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSkKPiArewo+ICsJcmV0dXJuIHRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9hdG9taWNf Z2V0X29sZF9wbGFuZV9zdGF0ZSgmc3RhdGUtPmJhc2UsCj4gKwkJCQkJCQkJICAgJnBsYW5lLT5i YXNlKSk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICoKPiAgaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiBAQCAt MjE0Myw2ICsyMTg3LDE1IEBAIGludCBza2xfcGxhbmVfY2hlY2soc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gIGludCBpbnRlbF9wbGFuZV9jaGVja19zcmNfY29vcmRpbmF0 ZXMoc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7Cj4gIGludCBjaHZfcGxh bmVfY2hlY2tfcm90YXRpb24oY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSk7Cj4gIAo+ICtzdGF0aWMgaW5saW5lIGJvb2wgaWNsX2lzX252MTJfeV9wbGFuZShlbnVt IHBsYW5lX2lkIGlkKQo+ICt7Cj4gKwkvKiBEb24ndCBuZWVkIHRvIGRvIGEgZ2VuIGNoZWNrLCB0 aGVzZSBwbGFuZXMgYXJlIG9ubHkgYXZhaWxhYmxlIG9uIGdlbjExICovCj4gKwlpZiAoaWQgPT0g UExBTkVfU1BSSVRFNCB8fCBpZCA9PSBQTEFORV9TUFJJVEU1KQo+ICsJCXJldHVybiB0cnVlOwo+ ICsKPiArCXJldHVybiBmYWxzZTsKPiArfQo+ICsKPiAgLyogaW50ZWxfdHYuYyAqLwo+ICB2b2lk IGludGVsX3R2X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggMWRiOWI4MzI4Mjc1Li5kNzZkOTM0NTIxMzcg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtNTEzNywxMSArNTEzNywxMiBAQCBz a2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0 ZSkKPiAgCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxf YXRvbWljX3N0YXRlKHN0YXRlKTsKPiAgCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKm5ld19k ZGIgPSAmaW50ZWxfc3RhdGUtPndtX3Jlc3VsdHMuZGRiOwo+ICAJc3RydWN0IHNrbF9kZGJfYWxs b2NhdGlvbiAqY3VyX2RkYiA9ICZkZXZfcHJpdi0+d20uc2tsX2h3LmRkYjsKPiAtCXN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7 Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gIAo+ICAJZHJtX2Zvcl9l YWNoX3BsYW5lX21hc2socGxhbmUsIGRldiwgY3N0YXRlLT5iYXNlLnBsYW5lX21hc2spIHsKPiAr CQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiArCQlzdHJ1Y3QgaW50ZWxf cGxhbmUgKmxpbmtlZDsKPiAgCQllbnVtIHBsYW5lX2lkIHBsYW5lX2lkID0gdG9faW50ZWxfcGxh bmUocGxhbmUpLT5pZDsKPiAgCj4gIAkJaWYgKHNrbF9kZGJfZW50cnlfZXF1YWwoJmN1cl9kZGIt PnBsYW5lW3BpcGVdW3BsYW5lX2lkXSwKPiBAQCAtNTE1Myw2ICs1MTU0LDE1IEBAIHNrbF9kZGJf YWRkX2FmZmVjdGVkX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ICAJ CXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsK PiAgCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkKPiAgCQkJcmV0dXJuIFBUUl9FUlIocGxhbmVf c3RhdGUpOwo+ICsKPiArCQkvKiBNYWtlIHN1cmUgbGlua2VkIHBsYW5lIGlzIHVwZGF0ZWQgdG9v ICovCj4gKwkJbGlua2VkID0gdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmVfc3RhdGUpLT5saW5r ZWRfcGxhbmU7Cj4gKwkJaWYgKCFsaW5rZWQpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlwbGFu ZV9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCAmbGlua2VkLT5iYXNl KTsKPiArCQlpZiAoSVNfRVJSKHBsYW5lX3N0YXRlKSkKPiArCQkJcmV0dXJuIFBUUl9FUlIocGxh bmVfc3RhdGUpOwo+ICAJfQo+ICAKPiAgCXJldHVybiAwOwo+IC0tIAo+IDIuMTguMAo+IAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZp bGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK