From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915/gen11: Link nv12 Y and UV planes in the atomic state, v5. Date: Mon, 22 Oct 2018 18:48:22 +0300 Message-ID: <20181022154822.GM9144@intel.com> References: <20181019171403.GU9144@intel.com> <20181022135152.15324-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 07F1B8973E for ; Mon, 22 Oct 2018 15:48:25 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181022135152.15324-1-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 T24gTW9uLCBPY3QgMjIsIDIwMTggYXQgMDM6NTE6NTJQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gVG8gbWFrZSBOVjEyIHdvcmtpbmcgb24gaWNsLCB3ZSBuZWVkIHRvIHVwZGF0 ZSAyIHBsYW5lcyBzaW11bHRhbmVvdXNseS4KPiBJJ3ZlIGNob3NlbiB0byBkbyB0aGlzIGluIHRo ZSBDUlRDIHN0ZXAgYWZ0ZXIgcGxhbmUgdmFsaWRhdGlvbiBpcyBkb25lLAo+IHNvIHdlIGtub3cg d2hhdCBwbGFuZXMgYXJlIChpbil2aXNpYmxlLiBUaGUgbGlua2VkIFkgcGxhbmUgd2lsbCBnZXQK PiB1cGRhdGVkIGluIGludGVsX3BsYW5lX3VwZGF0ZV9wbGFuZXNfb25fY3J0YygpLCBieSB0aGUg Y2FsbCB0bwo+IHVwZGF0ZV9zbGF2ZSwgd2hpY2ggZ2V0cyB0aGUgbWFzdGVyJ3MgcGxhbmVfc3Rh dGUgYXMgYXJndW1lbnQuCj4gCj4gVGhlIGxpbmsgcmVxdWlyZXMgYm90aCBwbGFuZXMgZm9yIGF0 b21pY191cGRhdGUgdG8gd29yaywKPiBzbyBtYWtlIHN1cmUgc2tsX2RkYl9hZGRfYWZmZWN0ZWRf cGxhbmVzKCkgYWRkcyBib3RoIHN0YXRlcy4KPiAKPiBDaGFuZ2VzIHNpbmNlIHYxOgo+IC0gSW50 cm9kdWNlIGljbF9pc19udjEyX3lfcGxhbmUoKSwgaW5zdGVhZCBvZiBoYXJkY29kaW5nIHNwcml0 ZSBudW1iZXJzLgo+IC0gUHV0IGFsbCB0aGUgc3RhdGUgdXBkYXRpbmcgbG9naW4gaW4gaW50ZWxf cGxhbmVfYXRvbWljX2NoZWNrX3dpdGhfc3RhdGUoKS4KPiAtIENsZWFuIHVwIGNoYW5nZXMgaW4g aW50ZWxfcGxhbmVfYXRvbWljX2NoZWNrKCkuCj4gQ2hhbmdlcyBzaW5jZSB2MjoKPiAtIEZpeCBp bnRlbF9hdG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZSgpIHRvIGFjdHVhbGx5IHJldHVybiBvbGQg c3RhdGUuCj4gLSBNb3ZlIHZpc2liaWxpdHkgY2hhbmdlcyB0byBwcmVwYXJhdGlvbiBwYXRjaC4K PiAtIE9ubHkgdHJ5IHRvIGZpbmQgYSBZIHBsYW5lIG9uIGdlbjExLCBlYXJsaWVyIHBsYXRmb3Jt cyBvbmx5IHJlcXVpcmUKPiAgIGEgc2luZ2xlIHBsYW5lLgo+IENoYW5nZXMgc2luY2UgdjM6Cj4g LSBGaXggY2hlY2twYXRjaCB3YXJuaW5nIGFib3V0IHRvX2ludGVsX2NydGMoKSB1c2FnZS4KPiAt IEFkZCBhZmZlY3RlZCBwbGFuZXMgZnJvbSBpY2xfYWRkX2xpbmtlZF9wbGFuZXMoKSBiZWZvcmUg Y2hlY2tfcGxhbmVzKCksCj4gICBpdCdzIGEgY2xlYW5lciB3YXkgdG8gZG8gdGhpcy4gKFZpbGxl KQo+IENoYW5nZXMgc2luY2UgdjQ6Cj4gLSBDbGVhciBwbGFuZSBsaW5rcyBpbiBpY2xfY2hlY2tf bnYxMl9wbGFuZXMoKSBmb3IgY2xhcml0eS4KPiAtIE9ubHkgcGFzcyBjcnRjX3N0YXRlIHRvIGlj bF9jaGVja19udjEyX3BsYW5lcygpLgo+IC0gVXNlIGZvcl9lYWNoX25ld19pbnRlbF9wbGFuZV9p bl9zdGF0ZSgpIGluIGljbF9jaGVja19udjEyX3BsYW5lcy4KPiAtIFJlbmFtZSBhdXggdG8gbGlu a2VkLiAoVmlsbGUpCj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMgfCAxOSArKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgICAgICB8IDk1ICsrKysrKysrKysrKysrKysrKysrKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgIHwgNTMgKysrKysrKysrKysr Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICAgICB8IDEyICsrLQo+ ICA0IGZpbGVzIGNoYW5nZWQsIDE3OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljX3BsYW5lLmMKPiBpbmRleCBiOTU3YWQ2 M2NkODcuLjdkMzY4NTA3NTIwMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9hdG9taWNfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0 b21pY19wbGFuZS5jCj4gQEAgLTE4OCw2ICsxODgsMjUgQEAgdm9pZCBpbnRlbF91cGRhdGVfcGxh bmVzX29uX2NydGMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlLAo+ICAJCQl0 cmFjZV9pbnRlbF91cGRhdGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBjcnRjKTsKPiAgCj4gIAkJCXBs YW5lLT51cGRhdGVfcGxhbmUocGxhbmUsIG5ld19jcnRjX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUp Owo+ICsJCX0gZWxzZSBpZiAobmV3X3BsYW5lX3N0YXRlLT5zbGF2ZSkgewo+ICsJCQlzdHJ1Y3Qg aW50ZWxfcGxhbmUgKm1hc3RlciA9Cj4gKwkJCQluZXdfcGxhbmVfc3RhdGUtPmxpbmtlZF9wbGFu ZTsKPiArCj4gKwkJCS8qCj4gKwkJCSAqIFdlIHVwZGF0ZSB0aGUgc2xhdmUgcGxhbmUgZnJvbSB0 aGlzIGZ1bmN0aW9uIGJlY2F1c2UKPiArCQkJICogcHJvZ3JhbW1pbmcgaXQgZnJvbSB0aGUgbWFz dGVyIHBsYW5lJ3MgdXBkYXRlX3BsYW5lCj4gKwkJCSAqIGNhbGxiYWNrIHJ1bnMgaW50byBpc3N1 ZXMgd2hlbiB0aGUgWSBwbGFuZSBpcwo+ICsJCQkgKiByZWFzc2lnbmVkLCBkaXNhYmxlZCBvciB1 c2VkIGJ5IGEgZGlmZmVyZW50IHBsYW5lLgo+ICsJCQkgKgo+ICsJCQkgKiBUaGUgc2xhdmUgcGxh bmUgaXMgdXBkYXRlZCB3aXRoIHRoZSBtYXN0ZXIgcGxhbmUncwo+ICsJCQkgKiBwbGFuZV9zdGF0 ZS4KPiArCQkJICovCj4gKwkJCW5ld19wbGFuZV9zdGF0ZSA9Cj4gKwkJCQlpbnRlbF9hdG9taWNf Z2V0X25ld19wbGFuZV9zdGF0ZShvbGRfc3RhdGUsIG1hc3Rlcik7Cj4gKwo+ICsJCQl0cmFjZV9p bnRlbF91cGRhdGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBjcnRjKTsKPiArCj4gKwkJCXBsYW5lLT51 cGRhdGVfc2xhdmUocGxhbmUsIG5ld19jcnRjX3N0YXRlLCBuZXdfcGxhbmVfc3RhdGUpOwo+ICAJ CX0gZWxzZSB7Cj4gIAkJCXRyYWNlX2ludGVsX2Rpc2FibGVfcGxhbmUoJnBsYW5lLT5iYXNlLCBj cnRjKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDY4Yzlh ZWVlZTA1Yy4uNjgwODk1OTgyZTRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IEBAIC0xMDcyMyw2ICsxMDcyMyw5NSBAQCBzdGF0aWMgYm9vbCBjaGVja19zaW5nbGVf ZW5jb2Rlcl9jbG9uaW5nKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCXJldHVy biB0cnVlOwo+ICB9Cj4gIAo+ICtzdGF0aWMgaW50IGljbF9hZGRfbGlua2VkX3BsYW5lcyhzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwgKmxpbmtlZDsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUsICpsaW5rZWRfcGxhbmVfc3RhdGU7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3JfZWFjaF9uZXdf aW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+ICsJ CWxpbmtlZCA9IHBsYW5lX3N0YXRlLT5saW5rZWRfcGxhbmU7Cj4gKwo+ICsJCWlmICghbGlua2Vk KQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJbGlua2VkX3BsYW5lX3N0YXRlID0gaW50ZWxfYXRv bWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgbGlua2VkKTsKPiArCQlpZiAoSVNfRVJSKGxpbmtl ZF9wbGFuZV9zdGF0ZSkpCj4gKwkJCXJldHVybiBQVFJfRVJSKGxpbmtlZF9wbGFuZV9zdGF0ZSk7 CgpXQVJOX09OKGxpbmtlZF9wbGFuZV9zdGF0ZS0+bGlua2VkICE9IHBsYW5lKTsKV0FSTl9PTihs aW5rZWRfcGxhbmVfc3RhdGUtPnNsYXZlID09IHBsYW5lX3N0YXRlLT5zbGF2ZSk7CgpwZXJoYXBz PwoKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBpY2xfY2hl Y2tfbnYxMl9wbGFuZXMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sK PiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5i YXNlLmNydGMpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjcnRjLT5iYXNlLmRldik7Cj4gKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9 IHRvX2ludGVsX2F0b21pY19zdGF0ZShjcnRjX3N0YXRlLT5iYXNlLnN0YXRlKTsKPiArCXN0cnVj dCBpbnRlbF9wbGFuZSAqcGxhbmUsICpsaW5rZWQ7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlOwo+ICsJaW50IGk7Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPCAxMSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwkvKgo+ICsJICogRGVzdHJveSBhbGwgb2xk IHBsYW5lIGxpbmtzIGFuZCBtYWtlIHRoZSBzbGF2ZSBwbGFuZSBpbnZpc2libGUKPiArCSAqIGlu IHRoZSBjcnRjX3N0YXRlLT5hY3RpdmVfcGxhbmVzIG1hc2suCj4gKwkgKi8KPiArCWZvcl9lYWNo X25ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKSB7 Cj4gKwkJaWYgKHBsYW5lLT5waXBlICE9IGNydGMtPnBpcGUgfHwgIXBsYW5lX3N0YXRlLT5saW5r ZWRfcGxhbmUpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlwbGFuZV9zdGF0ZS0+bGlua2VkX3Bs YW5lID0gTlVMTDsKPiArCQlpZiAocGxhbmVfc3RhdGUtPnNsYXZlICYmICFwbGFuZV9zdGF0ZS0+ YmFzZS52aXNpYmxlKQoKSG1tLiBXYXMgY29uZnVzZWQgZm9yIGEgbW9tZW50IGhlcmUuIFNpbmNl IHdlIGRvIHRoaXMgYWZ0ZXIgdGhlIGNoZWNrX3BsYW5lKCkKd2UgY291bGQgaW5kZWVkIGhhdmUg YSB2aXNpYmxlIHNsYXZlIHBsYW5lIGhlcmUuCgpJIHdvbmRlciBpZiBpdCB3b3VsZCBiZSBjbGVh bmVyIHRvIGRvIHRoaXMgaW4gaWNsX2FkZF9saW5rZWRfcGxhbmVzKCkKaW5zdGVhZD8gTm90IHN1 cmUuCgpGZWVsIGZyZWUgdG8gaWdub3JlIG15IGJpa2VzaGVkcyB5b3UgdGhpbmsgdGhpcyBpcyBi ZXR0ZXIuClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgoKPiArCQkJY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyAmPSB+QklUKHBsYW5l LT5pZCk7Cj4gKwo+ICsJCXBsYW5lX3N0YXRlLT5zbGF2ZSA9IGZhbHNlOwo+ICsJfQo+ICsKPiAr CWlmICghY3J0Y19zdGF0ZS0+bnYxMl9wbGFuZXMpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJZm9y X2VhY2hfbmV3X2ludGVsX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUs IGkpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmxpbmtlZF9zdGF0ZSA9IE5VTEw7 Cj4gKwo+ICsJCWlmIChwbGFuZS0+cGlwZSAhPSBjcnRjLT5waXBlIHx8Cj4gKwkJICAgICEoY3J0 Y19zdGF0ZS0+bnYxMl9wbGFuZXMgJiBCSVQocGxhbmUtPmlkKSkpCj4gKwkJCWNvbnRpbnVlOwo+ ICsKPiArCQlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBjcnRj LCBsaW5rZWQpIHsKPiArCQkJaWYgKCFpY2xfaXNfbnYxMl95X3BsYW5lKGxpbmtlZC0+aWQpKQo+ ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQlpZiAoY3J0Y19zdGF0ZS0+YWN0aXZlX3BsYW5lcyAm IEJJVChsaW5rZWQtPmlkKSkKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJbGlua2VkX3N0YXRl ID0gaW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgbGlua2VkKTsKPiArCQkJaWYg KElTX0VSUihsaW5rZWRfc3RhdGUpKQo+ICsJCQkJcmV0dXJuIFBUUl9FUlIobGlua2VkX3N0YXRl KTsKPiArCj4gKwkJCWJyZWFrOwo+ICsJCX0KPiArCj4gKwkJaWYgKCFsaW5rZWRfc3RhdGUpIHsK PiArCQkJRFJNX0RFQlVHX0tNUygiTmVlZCAlZCBmcmVlIFkgcGxhbmVzIGZvciBOVjEyXG4iLAo+ ICsJCQkJICAgICAgaHdlaWdodDgoY3J0Y19zdGF0ZS0+bnYxMl9wbGFuZXMpKTsKPiArCj4gKwkJ CXJldHVybiAtRUlOVkFMOwo+ICsJCX0KPiArCj4gKwkJcGxhbmVfc3RhdGUtPmxpbmtlZF9wbGFu ZSA9IGxpbmtlZDsKPiArCj4gKwkJbGlua2VkX3N0YXRlLT5zbGF2ZSA9IHRydWU7Cj4gKwkJbGlu a2VkX3N0YXRlLT5saW5rZWRfcGxhbmUgPSBwbGFuZTsKPiArCQljcnRjX3N0YXRlLT5hY3RpdmVf cGxhbmVzIHw9IEJJVChsaW5rZWQtPmlkKTsKPiArCQlEUk1fREVCVUdfS01TKCJVc2luZyAlcyBh cyBZIHBsYW5lIGZvciAlc1xuIiwgbGlua2VkLT5iYXNlLm5hbWUsIHBsYW5lLT5iYXNlLm5hbWUp Owo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGludGVsX2Ny dGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCSAgIHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiAgewo+IEBAIC0xMDc5NCw2ICsxMDg4Myw4IEBA IHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICAJCWlmIChtb2RlX2NoYW5nZWQpCj4gIAkJCXJldCA9IHNrbF91cGRhdGVfc2NhbGVyX2Ny dGMocGlwZV9jb25maWcpOwo+ICAKPiArCQlpZiAoIXJldCkKPiArCQkJcmV0ID0gaWNsX2NoZWNr X252MTJfcGxhbmVzKHBpcGVfY29uZmlnKTsKPiAgCQlpZiAoIXJldCkKPiAgCQkJcmV0ID0gc2ts X2NoZWNrX3BpcGVfbWF4X3BpeGVsX3JhdGUoaW50ZWxfY3J0YywKPiAgCQkJCQkJCSAgICBwaXBl X2NvbmZpZyk7Cj4gQEAgLTEyNDYwLDYgKzEyNTUxLDEwIEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRv bWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJaW50ZWxfc3RhdGUtPmNkY2xr LmxvZ2ljYWwgPSBkZXZfcHJpdi0+Y2RjbGsubG9naWNhbDsKPiAgCX0KPiAgCj4gKwlyZXQgPSBp Y2xfYWRkX2xpbmtlZF9wbGFuZXMoaW50ZWxfc3RhdGUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1 cm4gcmV0Owo+ICsKPiAgCXJldCA9IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3BsYW5lcyhkZXYs IHN0YXRlKTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAo+IGluZGV4IDBlOWE5MjZmY2EwNC4uNTliMzUyOTNhNWY2IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtNTM5LDYgKzUzOSwyNiBAQCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgewo+ICAJICovCj4gIAlpbnQgc2NhbGVyX2lkOwo+ICAKPiArCS8qCj4gKwkgKiBs aW5rZWRfcGxhbmU6Cj4gKwkgKgo+ICsJICogSUNMIHBsYW5hciBmb3JtYXRzIHJlcXVpcmUgMiBw bGFuZXMgdGhhdCBhcmUgdXBkYXRlZCBhcyBwYWlycy4KPiArCSAqIFRoaXMgbWVtYmVyIGlzIHVz ZWQgdG8gbWFrZSBzdXJlIHRoZSBvdGhlciBwbGFuZSBpcyBhbHNvIHVwZGF0ZWQKPiArCSAqIHdo ZW4gcmVxdWlyZWQsIGFuZCBmb3IgdXBkYXRlX3NsYXZlKCkgdG8gZmluZCB0aGUgY29ycmVjdAo+ ICsJICogcGxhbmVfc3RhdGUgdG8gcGFzcyBhcyBhcmd1bWVudC4KPiArCSAqLwo+ICsJc3RydWN0 IGludGVsX3BsYW5lICpsaW5rZWRfcGxhbmU7Cj4gKwo+ICsJLyoKPiArCSAqIHNsYXZlOgo+ICsJ ICogSWYgc2V0IGRvbid0IHVwZGF0ZSB1c2UgdGhlIGxpbmtlZCBwbGFuZSdzIHN0YXRlIGZvciB1 cGRhdGluZwo+ICsJICogdGhpcyBwbGFuZSBkdXJpbmcgYXRvbWljIGNvbW1pdCB3aXRoIHRoZSB1 cGRhdGVfc2xhdmUoKSBjYWxsYmFjay4KPiArCSAqCj4gKwkgKiBJdCdzIGFsc28gdXNlZCBieSB0 aGUgd2F0ZXJtYXJrIGNvZGUgdG8gaWdub3JlIHdtIGNhbGN1bGF0aW9ucyBvbgo+ICsJICogdGhp cyBwbGFuZS4gVGhleSdyZSBjYWxjdWxhdGVkIGJ5IHRoZSBsaW5rZWQgcGxhbmUncyB3bSBjb2Rl Lgo+ICsJICovCj4gKwlib29sIHNsYXZlOwo+ICsKPiAgCXN0cnVjdCBkcm1faW50ZWxfc3ByaXRl X2NvbG9ya2V5IGNrZXk7Cj4gIH07Cj4gIAo+IEBAIC05ODMsNiArMTAwMyw5IEBAIHN0cnVjdCBp bnRlbF9wbGFuZSB7Cj4gIAl2b2lkICgqdXBkYXRlX3BsYW5lKShzdHJ1Y3QgaW50ZWxfcGxhbmUg KnBsYW5lLAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3Rh dGUpOwo+ICsJdm9pZCAoKnVwZGF0ZV9zbGF2ZSkoc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSwK PiArCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAr CQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKPiAg CXZvaWQgKCpkaXNhYmxlX3BsYW5lKShzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLAo+ICAJCQkg ICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cj4gIAlib29sICgqZ2V0X2h3X3N0YXRlKShz dHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lLCBlbnVtIHBpcGUgKnBpcGUpOwo+IEBAIC0xMzUxLDYg KzEzNzQsMjcgQEAgaGRtaV90b19kaWdfcG9ydChzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRt aSkKPiAgCXJldHVybiBjb250YWluZXJfb2YoaW50ZWxfaGRtaSwgc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCwgaGRtaSk7Cj4gIH0KPiAgCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICoKPiAraW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJCSBzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lKQo+ ICt7Cj4gKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpyZXQgPQo+ICsJCWRybV9hdG9taWNfZ2V0 X3BsYW5lX3N0YXRlKCZzdGF0ZS0+YmFzZSwgJnBsYW5lLT5iYXNlKTsKPiArCj4gKwlpZiAoSVNf RVJSKHJldCkpCj4gKwkJcmV0dXJuIEVSUl9DQVNUKHJldCk7Cj4gKwo+ICsJcmV0dXJuIHRvX2lu dGVsX3BsYW5lX3N0YXRlKHJldCk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbmxpbmUgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICoKPiAraW50ZWxfYXRvbWljX2dldF9vbGRfcGxhbmVfc3RhdGUoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSkKPiArewo+ICsJcmV0dXJuIHRvX2ludGVsX3BsYW5lX3N0YXRlKGRybV9hdG9taWNf Z2V0X29sZF9wbGFuZV9zdGF0ZSgmc3RhdGUtPmJhc2UsCj4gKwkJCQkJCQkJICAgJnBsYW5lLT5i YXNlKSk7Cj4gK30KPiArCj4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICoKPiAgaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gIAkJCQkgc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSkKPiBAQCAt MjE1OCw2ICsyMjAyLDE1IEBAIHN0cnVjdCBpbnRlbF9wbGFuZSAqCj4gIHNrbF91bml2ZXJzYWxf cGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAg ZW51bSBwaXBlIHBpcGUsIGVudW0gcGxhbmVfaWQgcGxhbmVfaWQpOwo+ICAKPiArc3RhdGljIGlu bGluZSBib29sIGljbF9pc19udjEyX3lfcGxhbmUoZW51bSBwbGFuZV9pZCBpZCkKPiArewo+ICsJ LyogRG9uJ3QgbmVlZCB0byBkbyBhIGdlbiBjaGVjaywgdGhlc2UgcGxhbmVzIGFyZSBvbmx5IGF2 YWlsYWJsZSBvbiBnZW4xMSAqLwo+ICsJaWYgKGlkID09IFBMQU5FX1NQUklURTQgfHwgaWQgPT0g UExBTkVfU1BSSVRFNSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlyZXR1cm4gZmFsc2U7Cj4g K30KPiArCj4gIC8qIGludGVsX3R2LmMgKi8KPiAgdm9pZCBpbnRlbF90dl9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ IGluZGV4IGY0MmI4YzMxOTA0Ni4uOWJhMzlhOWM3ZDFjIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCj4gQEAgLTUxNTMsMTEgKzUxNTMsMTIgQEAgc2tsX2RkYl9hZGRfYWZmZWN0ZWRfcGxh bmVzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4gIAlzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShzdGF0ZSk7Cj4g IAlzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpuZXdfZGRiID0gJmludGVsX3N0YXRlLT53bV9y ZXN1bHRzLmRkYjsKPiAgCXN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmN1cl9kZGIgPSAmZGV2 X3ByaXYtPndtLnNrbF9ody5kZGI7Cj4gLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZTsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBp bnRlbF9jcnRjLT5waXBlOwo+ICAKPiAgCWRybV9mb3JfZWFjaF9wbGFuZV9tYXNrKHBsYW5lLCBk ZXYsIGNzdGF0ZS0+YmFzZS5wbGFuZV9tYXNrKSB7Cj4gKwkJc3RydWN0IGRybV9wbGFuZV9zdGF0 ZSAqcGxhbmVfc3RhdGU7Cj4gKwkJc3RydWN0IGludGVsX3BsYW5lICpsaW5rZWQ7Cj4gIAkJZW51 bSBwbGFuZV9pZCBwbGFuZV9pZCA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKS0+aWQ7Cj4gIAo+ICAJ CWlmIChza2xfZGRiX2VudHJ5X2VxdWFsKCZjdXJfZGRiLT5wbGFuZVtwaXBlXVtwbGFuZV9pZF0s Cj4gQEAgLTUxNjksNiArNTE3MCwxNSBAQCBza2xfZGRiX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSkKPiAgCQlwbGFuZV9zdGF0ZSA9IGRybV9hdG9t aWNfZ2V0X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7Cj4gIAkJaWYgKElTX0VSUihwbGFuZV9z dGF0ZSkpCj4gIAkJCXJldHVybiBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPiArCj4gKwkJLyogTWFr ZSBzdXJlIGxpbmtlZCBwbGFuZSBpcyB1cGRhdGVkIHRvbyAqLwo+ICsJCWxpbmtlZCA9IHRvX2lu dGVsX3BsYW5lX3N0YXRlKHBsYW5lX3N0YXRlKS0+bGlua2VkX3BsYW5lOwo+ICsJCWlmICghbGlu a2VkKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJcGxhbmVfc3RhdGUgPSBkcm1fYXRvbWljX2dl dF9wbGFuZV9zdGF0ZShzdGF0ZSwgJmxpbmtlZC0+YmFzZSk7Cj4gKwkJaWYgKElTX0VSUihwbGFu ZV9zdGF0ZSkpCj4gKwkJCXJldHVybiBQVFJfRVJSKHBsYW5lX3N0YXRlKTsKPiAgCX0KPiAgCj4g IAlyZXR1cm4gMDsKPiAtLSAKPiAyLjE5LjEKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==