From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 15/23] drm/i915: Link planes in a bigjoiner configuration. Date: Tue, 1 Oct 2019 20:21:06 +0300 Message-ID: <20191001172106.GR1208@intel.com> References: <20190920114235.22411-1-maarten.lankhorst@linux.intel.com> <20190920114235.22411-15-maarten.lankhorst@linux.intel.com> <20191001164409.GJ1869@mdroper-desk1.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8093F6E832 for ; Tue, 1 Oct 2019 17:21:10 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20191001164409.GJ1869@mdroper-desk1.amr.corp.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMDEsIDIwMTkgYXQgMDk6NDQ6MDlBTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBPbiBGcmksIFNlcCAyMCwgMjAxOSBhdCAwMTo0MjoyN1BNICswMjAwLCBNYWFydGVuIExh bmtob3JzdCB3cm90ZToKPiA+IE1ha2Ugc3VyZSB0aGF0IHdoZW4gYSBwbGFuZSBpcyBzZXQgaW4g YSBiaWdqb2luZXIgbW9kZSwgd2Ugd2lsbCBhZGQKPiA+IHRoZWlyIGNvdW50ZXJwYXJ0IHRvIHRo ZSBhdG9taWMgc3RhdGUgYXMgd2VsbC4gVGhpcyB3aWxsIGFsbG93IHVzIHRvCj4gPiBtYWtlIHN1 cmUgYWxsIHN0YXRlIGlzIGF2YWlsYWJsZSB3aGVuIHBsYW5lcyBhcmUgY2hlY2tlZC4KPiA+IAo+ ID4gQmVjYXVzZSBvZiB0aGUgZnVubnkgaW50ZXJhY3Rpb25zIHdpdGggYmlnam9pbmVyIGFuZCBw bGFuYXIgWVVWCj4gPiBmb3JtYXRzLCB3ZSBtYXkgZW5kIHVwIGFkZGluZyBhIGxvdCBvZiBwbGFu ZXMsIHNvIHdlIGhhdmUgdG8ga2VlcAo+ID4gaXRlcmF0aW5nIHVudGlsIHdlIG5vIGxvbmdlciBh ZGQgYW55IHBsYW5lcy4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3Qg PG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIC4uLi9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8ICAzMSArKystCj4gPiAgLi4u L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5oIHwgICA0ICsKPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCAxNDIgKysrKysr KysrKysrKysrKy0tCj4gPiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBl cy5oICAgIHwgIDExICsrCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAxNzIgaW5zZXJ0aW9ucygrKSwg MTYgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYwo+ID4gaW5kZXggOTY0ZGI3Nzc0ZDEwLi5jYzA4ODY3 NmYwYTIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2F0b21pY19wbGFuZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2F0b21pY19wbGFuZS5jCj4gPiBAQCAtMTgyLDE2ICsxODIsMzYgQEAgaW50IGludGVsX3Bs YW5lX2F0b21pY19jaGVja193aXRoX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpvbGRfY3J0Y18KPiA+ICAJCQkJCSAgICAgICBvbGRfcGxhbmVfc3RhdGUsIG5ld19wbGFuZV9z dGF0ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBzdHJ1Y3QgaW50ZWxfY3J0YyAqCj4gPiAt Z2V0X2NydGNfZnJvbV9zdGF0ZXMoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRf cGxhbmVfc3RhdGUsCj4gPiAtCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAq bmV3X3BsYW5lX3N0YXRlKQo+ID4gLXsKPiA+ICtzdHJ1Y3QgaW50ZWxfY3J0YyAqCj4gPiAraW50 ZWxfcGxhbmVfZ2V0X2NydGNfZnJvbV9zdGF0ZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCj4gCj4gVGhpcyBmdW5jdGlvbiBuYW1lIHNlZW1zIGFtYmlndW91cyBub3cgc2luY2Ug aXQgaXNuJ3QgY2xlYXIgd2hldGhlcgo+IHdlJ3JlIGdldHRpbmcgdGhlIHBsYW5lJ3MgaGFyZHdh cmUgQ1JUQyBvciBpdHMgdWFwaSBDUlRDLiAgTWF5YmUgY2FsbCBpdAo+IHNvbWV0aGluZyBsaWtl IGludGVsX3BsYW5lX3N0YXRlX2dldF91YXBpX2NydGMoKT8KCkkgd2FzIGFjdHVhbGx5IHdvbmRl cmluZyBpZiB3ZSBzaG91bGRuJ3QganVzdCBkbyAKZ2V0X2NydGMocGxhbmUtPnBpcGUpIGhlcmUu IFdlIHN0aWxsIGRvbid0IGV4cG9zZSBhbnkgcGxhbmVzCnRoYXQgY2FuIHN3aXRjaCBwaXBlcyBz byBmZWVscyBsaWtlIHRoaXMgc3R1ZmYgaXMgdW5lY2Vzc2FyeQpjb21wbGV4aXR5IHdlIGRvbid0 IHBhcnRpY3VsYXJseSBuZWVkLgoKPiAKPiAKPiAKPiA+ICsJCQkJIGNvbnN0IHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqb2xkX3BsYW5lX3N0YXRlLAo+ID4gKwkJCQkgY29uc3Qgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3RhdGUpCj4gPiArICB7Cj4gPiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKPiA+ ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKG5ld19wbGFuZV9z dGF0ZS0+YmFzZS5wbGFuZSk7Cj4gPiArCj4gPiAgCWlmIChuZXdfcGxhbmVfc3RhdGUtPmJhc2Uu Y3J0YykKPiA+ICAJCXJldHVybiB0b19pbnRlbF9jcnRjKG5ld19wbGFuZV9zdGF0ZS0+YmFzZS5j cnRjKTsKPiA+ICAKPiA+ICAJaWYgKG9sZF9wbGFuZV9zdGF0ZS0+YmFzZS5jcnRjKQo+ID4gIAkJ cmV0dXJuIHRvX2ludGVsX2NydGMob2xkX3BsYW5lX3N0YXRlLT5iYXNlLmNydGMpOwo+ID4gIAo+ ID4gKwlpZiAobmV3X3BsYW5lX3N0YXRlLT5iaWdqb2luZXJfc2xhdmUpIHsKPiA+ICsJCWNvbnN0 IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X21hc3Rlcl9wbGFuZV9zdGF0ZSA9Cj4gPiAr CQkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsIG5ld19wbGFuZV9zdGF0 ZS0+Ymlnam9pbmVyX3BsYW5lKTsKPiA+ICsKPiA+ICsJCWlmIChuZXdfbWFzdGVyX3BsYW5lX3N0 YXRlLT5iYXNlLmNydGMpCj4gPiArCQkJcmV0dXJuIGludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRl dl9wcml2LCBwbGFuZS0+cGlwZSk7Cj4gPiArCX0KPiAKPiBXaWxsIHRoaXMgY2F1c2UgcHJvYmxl bXMgaWYgd2UgYWRqdXN0IHByb3BlcnRpZXMgb2YgcGxhbmVzIG9uIGEgYQo+IHVhcGktZGlzYWJs ZWQgQ1JUQz8gIEUuZy4sIEkgYmVsaWV2ZSB1c2Vyc3BhY2UgY2FuIGZpZGRsZSB3aXRoIHN0dWZm Cj4gbGlrZSByb3RhdGlvbiBwcm9wZXJ0aWVzIG9uIGRpc2FibGVkIHBsYW5lcy9jcnRjcyBhbmQg bm93IEkgYmVsaWV2ZSB0aGF0Cj4gY2F1c2VzIHVzIHRvIG5lZWRsZXNzbHkgcHVsbCBpbiB0aGUg Ymlnam9pbmVyIG1hc3RlciBjcnRjIGFuZAo+IGNvcnJlc3BvbmRpbmcgcGxhbmU/CgpOb3Qgc3Vy ZSBpdCdzIHdvcnRoIHRoZSBlZmZvcnQgdG8gcmVhbGx5IHRyeSB0byBhdm9pZCBzdWNoIHRoaW5n cy4gSWYKdXNlcnNwYWNlIGtlZXBzIGZpZGRsaW5nIHdpdGggZGlzYWJsZWQgc3R1ZmYgYWxsIHRo ZSB0aW1lIGl0IGZlZWxzIGEKYml0IGJyb2tlbiB0byBtZS4KCk9uIGEgc2VtaS1yZWxhdGVkIG5v dGUgSSd2ZSBvY2Nhc2lvbmFsbHkgcG9uZGVyZWQgYWJvdXQgdHJ5aW5nIHRvCmZpbHRlciBvdXQg bm9wIGNvbW1pdHMgd2hpY2ggZG9uJ3Qgc2VuZCBvdXQgZXZlbnRzLCBldmVuIG9uIGFjdGl2ZQpw bGFuZXMvY3J0Y3MuIEJ1dCBJIGd1ZXNzIHRoYXQncyBhbHJlYWR5IHN0YXJ0aW5nIHRvIGJlIGEg Y2hhbmdlIHRvCnRoZSBzZW1hbnRpY3Mgc28gcHJvYmFibHkgbm90IHNvbWV0aGluZyB0aGF0IGNv dWxkIGJlIGRvbmUgd2l0aG91dAphIG5ldyBmbGFnL2V0Yy4KCj4gCj4gPiArCj4gPiArCWlmIChv bGRfcGxhbmVfc3RhdGUtPmJpZ2pvaW5lcl9zbGF2ZSkgewo+ID4gKwkJY29uc3Qgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpvbGRfbWFzdGVyX3BsYW5lX3N0YXRlID0KPiA+ICsJCQlpbnRlbF9h dG9taWNfZ2V0X29sZF9wbGFuZV9zdGF0ZShzdGF0ZSwgb2xkX3BsYW5lX3N0YXRlLT5iaWdqb2lu ZXJfcGxhbmUpOwo+ID4gKwo+ID4gKwkJaWYgKG9sZF9tYXN0ZXJfcGxhbmVfc3RhdGUtPmJhc2Uu Y3J0YykKPiA+ICsJCQlyZXR1cm4gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBs YW5lLT5waXBlKTsKPiA+ICsJfQo+ID4gKwo+ID4gIAlyZXR1cm4gTlVMTDsKPiA+ICB9Cj4gPiAg Cj4gPiBAQCAtMjA2LDcgKzIyNiw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfcGxhbmVfYXRvbWljX2No ZWNrKHN0cnVjdCBkcm1fcGxhbmUgKl9wbGFuZSwKPiA+ICAJY29uc3Qgc3RydWN0IGludGVsX3Bs YW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUgPQo+ID4gIAkJaW50ZWxfYXRvbWljX2dldF9vbGRf cGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKPiA+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMg PQo+ID4gLQkJZ2V0X2NydGNfZnJvbV9zdGF0ZXMob2xkX3BsYW5lX3N0YXRlLCBuZXdfcGxhbmVf c3RhdGUpOwo+ID4gKwkJaW50ZWxfcGxhbmVfZ2V0X2NydGNfZnJvbV9zdGF0ZXMoc3RhdGUsIG9s ZF9wbGFuZV9zdGF0ZSwKPiA+ICsJCQkJCQkgbmV3X3BsYW5lX3N0YXRlKTsKPiA+ICAJY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlOwo+ID4gIAlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmgKPiA+IGluZGV4IDMzZmI4 NWNkMzkwOS4uOTAxYTUwZTZlMmQzIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuaAo+ID4gQEAgLTQyLDUgKzQyLDkgQEAg aW50IGludGVsX3BsYW5lX2F0b21pY19jYWxjX2NoYW5nZXMoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm9sZF9jcnRjX3N0YXQKPiA+ICAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAo+ID4gIAkJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0 YXRlICpvbGRfcGxhbmVfc3RhdGUsCj4gPiAgCQkJCSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlKTsKPiA+ICtzdHJ1Y3QgaW50ZWxfY3J0YyAqCj4gPiAraW50ZWxfcGxh bmVfZ2V0X2NydGNfZnJvbV9zdGF0ZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs Cj4gPiArCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9sZF9wbGFuZV9zdGF0 ZSwKPiA+ICsJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0 YXRlKTsKPiA+ICAKPiA+ICAjZW5kaWYgLyogX19JTlRFTF9BVE9NSUNfUExBTkVfSF9fICovCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gaW5k ZXggZGY1ODhiZjQ3NTU5Li4wNmNlYWM0ZjE0MzYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiA+IEBAIC0xMTgxMSwyNCArMTE4MTEs MTAxIEBAIHN0YXRpYyBib29sIGNoZWNrX3NpbmdsZV9lbmNvZGVyX2Nsb25pbmcoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gIAlyZXR1cm4gdHJ1ZTsKPiA+ICB9Cj4gPiAgCj4g PiArc3RhdGljIGludCBpY2xfYWRkX2RlcGVuZGVudF9wbGFuZXMoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gPiArCQkJCSAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBs YW5lX3N0YXRlKQo+ID4gK3sKPiA+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxh bmVfc3RhdGU7Cj4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4gPiArCWludCByZXQg PSAwOwo+ID4gKwo+ID4gKwlwbGFuZSA9IHBsYW5lX3N0YXRlLT5iaWdqb2luZXJfcGxhbmU7Cj4g PiArCWlmIChwbGFuZSAmJiAhaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUs IHBsYW5lKSkgewo+ID4gKwkJbmV3X3BsYW5lX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9wbGFu ZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+ID4gKwkJaWYgKElTX0VSUihuZXdfcGxhbmVfc3RhdGUp KQo+ID4gKwkJCXJldHVybiBQVFJfRVJSKG5ld19wbGFuZV9zdGF0ZSk7Cj4gPiArCj4gPiArCQly ZXQgPSAxOwo+ID4gKwl9Cj4gPiArCj4gPiArCXBsYW5lID0gcGxhbmVfc3RhdGUtPnBsYW5hcl9s aW5rZWRfcGxhbmU7Cj4gPiArCWlmIChwbGFuZSAmJiAhaW50ZWxfYXRvbWljX2dldF9uZXdfcGxh bmVfc3RhdGUoc3RhdGUsIHBsYW5lKSkgewo+ID4gKwkJbmV3X3BsYW5lX3N0YXRlID0gaW50ZWxf YXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+ID4gKwkJaWYgKElTX0VSUihu ZXdfcGxhbmVfc3RhdGUpKQo+ID4gKwkJCXJldHVybiBQVFJfRVJSKG5ld19wbGFuZV9zdGF0ZSk7 Cj4gPiArCj4gPiArCQlyZXQgPSAxOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiByZXQ7Cj4g PiArfQo+ID4gKwo+ID4gIHN0YXRpYyBpbnQgaWNsX2FkZF9saW5rZWRfcGxhbmVzKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGludGVsX3BsYW5l ICpwbGFuZSwgKmxpbmtlZDsKPiA+IC0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSwgKmxpbmtlZF9wbGFuZV9zdGF0ZTsKPiA+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFu ZTsKPiA+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdf cGxhbmVfc3RhdGU7Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCAqbGlua2VkX2NydGM7 Cj4gPiArCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRj X3N0YXRlLCAqbGlua2VkX2NydGNfc3RhdGU7Cj4gPiArCWJvb2wgYWRkZWQ7Cj4gPiAgCWludCBp Owo+ID4gIAo+ID4gLQlmb3JfZWFjaF9uZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBs YW5lLCBwbGFuZV9zdGF0ZSwgaSkgewo+ID4gLQkJbGlua2VkID0gcGxhbmVfc3RhdGUtPnBsYW5h cl9saW5rZWRfcGxhbmU7Cj4gPiArCS8qCj4gPiArCSAqIEl0ZXJhdGl2ZWx5IGFkZCBwbGFuZV9z dGF0ZS0+bGlua2VkX3BsYW5lIGFuZCBwbGFuZV9zdGF0ZS0+Ymlnam9pbmVyX3BsYW5lCj4gPiAr CSAqCj4gPiArCSAqIFRoaXMgbmVlZHMgdG8gYmUgZG9uZSByZXBlYXRlZGx5LCBiZWNhdXNlIG9m IGlzIGEgZnVubnkgaW50ZXJhY3Rpb247Cj4gPiArCSAqIHRoZSBZLXBsYW5lIG1heSBiZSBhc3Np Z25lZCBkaWZmZXJlbnRseSBvbiB0aGUgb3RoZXIgYmlnam9pbmVyIGNydGMsCj4gPiArCSAqIGFu ZCB3ZSBjb3VsZCBlbmQgdXAgd2l0aCB0aGUgZm9sbG93aW5nIGV2aWwgcmVjdXJzaW9uLCB3aGVu IG9ubHkgYWRkaW5nIGEKPiA+ICsJICogc2luZ2xlIHBsYW5lIHRvIHN0YXRlOgo+ID4gKwkgKgo+ ID4gKwkgKiBYUkdCODg4OCBtYXN0ZXIgcGxhbmUgNiBhZGRzIE5WMTIgc2xhdmUgWS1wbGFuZSA2 LCB3aGljaCBhZGRzIHNsYXZlIFVWIHBsYW5lIDAsCj4gPiArCSAqIHdoaWNoIGFkZHMgbWFzdGVy IFVWIHBsYW5lIDAsIHdoaWNoIGFkZHMgbWFzdGVyIFktcGxhbmUgNywgd2hpY2ggYWRkcyBYUkdC ODg4OAo+ID4gKwkgKiBzbGF2ZSBwbGFuZSA3Lgo+ID4gKwkgKgo+ID4gKwkgKiBXZSBjb3VsZCBw dWxsIGluIGV2ZW4gbW9yZSBiZWNhdXNlIG9mIG9sZF9wbGFuZV9zdGF0ZSB2cyBuZXdfcGxhbmVf c3RhdGUuCj4gPiArCSAqCj4gPiArCSAqIE1heCBkZXB0aCA9IDUgKG9yIDcgZm9yIGV2aWwgY2Fz ZSkgaW4gdGhpcyBjYXNlLgo+ID4gKwkgKiBOdW1iZXIgb2YgcGFzc2VzIHdpbGwgYmUgbGVzcywg YmVjYXVzZSBuZXdseSBhZGRlZCBwbGFuZXMgc2hvdyB1cCBpbiB0aGUKPiA+ICsJICogc2FtZSBp dGVyYXRpb24gcm91bmQgd2hlbiBhZGRlZF9wbGFuZS0+aW5kZXggPiBwbGFuZS0+aW5kZXguCj4g PiArCSAqLwo+ID4gKwlkbyB7Cj4gPiArCQlhZGRlZCA9IGZhbHNlOwo+ID4gIAo+ID4gLQkJaWYg KCFsaW5rZWQpCj4gPiAtCQkJY29udGludWU7Cj4gPiArCQlmb3JfZWFjaF9vbGRuZXdfaW50ZWxf cGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBvbGRfcGxhbmVfc3RhdGUsIG5ld19wbGFuZV9z dGF0ZSwgaSkgewo+ID4gKwkJCWludCByZXQsIHJldDI7Cj4gPiArCj4gPiArCQkJcmV0ID0gaWNs X2FkZF9kZXBlbmRlbnRfcGxhbmVzKHN0YXRlLCBvbGRfcGxhbmVfc3RhdGUpOwo+ID4gKwkJCWlm IChyZXQgPCAwKQo+ID4gKwkJCQlyZXR1cm4gcmV0Owo+ID4gKwo+ID4gKwkJCXJldDIgPSBpY2xf YWRkX2RlcGVuZGVudF9wbGFuZXMoc3RhdGUsIG5ld19wbGFuZV9zdGF0ZSk7Cj4gPiArCQkJaWYg KHJldDIgPCAwKQo+ID4gKwkJCQlyZXR1cm4gcmV0MjsKPiA+ICAKPiA+IC0JCWxpbmtlZF9wbGFu ZV9zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGxpbmtlZCk7Cj4g PiAtCQlpZiAoSVNfRVJSKGxpbmtlZF9wbGFuZV9zdGF0ZSkpCj4gPiAtCQkJcmV0dXJuIFBUUl9F UlIobGlua2VkX3BsYW5lX3N0YXRlKTsKPiA+ICsJCQlhZGRlZCB8PSByZXQgfHwgcmV0MjsKCkkg c3VzcGVjdCBwYXNzaW5nICZhZGRlZCB0byB0aGUgZnVuY3Rpb25zIHdvdWxkIGJlIGxlc3MgYW5u b3lpbmcKdGhhbiB0aGlzIG1hZ2ljIHJldHVybiAxIHN0dWZmLgoKPiA+ICsJCX0KPiA+ICsJfSB3 aGlsZSAoYWRkZWQpOwo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBNYWtlIHN1cmUgYmlnam9pbmVy IHNsYXZlIGNydGMncyBhcmUgYWxzbyBwdWxsZWQgaW4uIFRoaXMgaXMgbm90IGRvbmUgYXV0b21h dGljYWxseQo+ID4gKwkgKiB3aGVuIGFkZGluZyBzbGF2ZSBwbGFuZXMsIGJlY2F1c2UgcGxhbmVf c3RhdGUtPmNydGMgaXMgbnVsbC4KPiA+ICsJICovCj4gPiArCWZvcl9lYWNoX29sZG5ld19pbnRl bF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwgbmV3X2NydGNfc3Rh dGUsIGkpIHsKPiA+ICsJCWxpbmtlZF9jcnRjID0gb2xkX2NydGNfc3RhdGUtPmJpZ2pvaW5lcl9s aW5rZWRfY3J0YzsKPiA+ICsJCWlmIChsaW5rZWRfY3J0Yykgewo+ID4gKwkJCWxpbmtlZF9jcnRj X3N0YXRlID0KPiA+ICsJCQkJaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKCZzdGF0ZS0+YmFz ZSwgbGlua2VkX2NydGMpOwo+ID4gKwo+ID4gKwkJCWlmIChJU19FUlIobGlua2VkX2NydGNfc3Rh dGUpKQo+ID4gKwkJCQlyZXR1cm4gUFRSX0VSUihsaW5rZWRfY3J0Y19zdGF0ZSk7Cj4gPiArCQl9 Cj4gPiArCj4gPiArCQlsaW5rZWRfY3J0YyA9IG5ld19jcnRjX3N0YXRlLT5iaWdqb2luZXJfbGlu a2VkX2NydGM7Cj4gPiArCQlpZiAobGlua2VkX2NydGMgJiYgbGlua2VkX2NydGMgIT0gb2xkX2Ny dGNfc3RhdGUtPmJpZ2pvaW5lcl9saW5rZWRfY3J0Yykgewo+ID4gKwkJCWxpbmtlZF9jcnRjX3N0 YXRlID0KPiA+ICsJCQkJaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwg bGlua2VkX2NydGMpOwo+ID4gIAo+ID4gLQkJV0FSTl9PTihsaW5rZWRfcGxhbmVfc3RhdGUtPnBs YW5hcl9saW5rZWRfcGxhbmUgIT0gcGxhbmUpOwo+ID4gLQkJV0FSTl9PTihsaW5rZWRfcGxhbmVf c3RhdGUtPnBsYW5hcl9zbGF2ZSA9PSBwbGFuZV9zdGF0ZS0+cGxhbmFyX3NsYXZlKTsKPiA+ICsJ CQlpZiAoSVNfRVJSKGxpbmtlZF9jcnRjX3N0YXRlKSkKPiA+ICsJCQkJcmV0dXJuIFBUUl9FUlIo bGlua2VkX2NydGNfc3RhdGUpOwo+ID4gKwkJfQo+ID4gIAl9Cj4gPiAgCj4gPiAgCXJldHVybiAw Owo+ID4gQEAgLTEzNzk5LDYgKzEzODc2LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hl Y2tfYmlnam9pbmVyKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7 Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwgKm5ld19jcnRj X3N0YXRlLCAqc2xhdmVfY3J0Y19zdGF0ZSwgKm1hc3Rlcl9jcnRjX3N0YXRlOwo+ID4gIAlzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywgKnNsYXZlLCAqbWFzdGVyOwo+ID4gKwlzdHJ1Y3QgaW50ZWxf cGxhbmUgKnBsYW5lOwo+ID4gIAlpbnQgaSwgcmV0ID0gMDsKPiA+ICAKPiA+ICAJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPCAxMSkKPiA+IEBAIC0xMzg5NCw2ICsxMzk3Miw0OCBAQCBzdGF0aWMg aW50IGludGVsX2F0b21pY19jaGVja19iaWdqb2luZXIoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCj4gPiAgCQkJcmV0dXJuIHJldDsKPiA+ICAJfQo+ID4gIAo+ID4gKwkvKgo+ID4g KwkgKiBTZXR1cCBhbmQgdGVhcmRvd24gdGhlIG5ldyBiaWdqb2luZXIgcGxhbmUgbWFwcGluZ3Mu Cj4gPiArCSAqLwo+ID4gKwlmb3JfZWFjaF9pbnRlbF9wbGFuZSgmZGV2X3ByaXYtPmRybSwgcGxh bmUpIHsKPiA+ICsJCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4gPiAr CQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKm90aGVyX3BsYW5lID0gTlVMTDsKPiA+ICsKPiA+ICsJCWNy dGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGlwZShkZXZfcHJpdiwgcGxhbmUtPnBpcGUpOwo+ID4g KwkJb2xkX2NydGNfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X29sZF9jcnRjX3N0YXRlKHN0YXRl LCBjcnRjKTsKPiA+ICsJCW5ld19jcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Cj4gPiArCj4gPiArCQlpZiAoIW5ld19jcnRjX3N0YXRlIHx8 ICFuZWVkc19tb2Rlc2V0KG5ld19jcnRjX3N0YXRlKSkKPiA+ICsJCQljb250aW51ZTsKPiA+ICsK PiA+ICsJCWlmIChuZXdfY3J0Y19zdGF0ZS0+Ymlnam9pbmVyKSB7Cj4gPiArCQkJc3RydWN0IGlu dGVsX2NydGMgKm90aGVyX2NydGMgPQo+ID4gKwkJCQluZXdfY3J0Y19zdGF0ZS0+Ymlnam9pbmVy X2xpbmtlZF9jcnRjOwo+ID4gKwkJCWJvb2wgZm91bmQgPSBmYWxzZTsKPiA+ICsKPiA+ICsJCQlm b3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRjKCZkZXZfcHJpdi0+ZHJtLCBvdGhlcl9jcnRjLCBv dGhlcl9wbGFuZSkgewo+ID4gKwkJCQlpZiAob3RoZXJfcGxhbmUtPmlkICE9IHBsYW5lLT5pZCkK PiA+ICsJCQkJCWNvbnRpbnVlOwo+ID4gKwo+ID4gKwkJCQlmb3VuZCA9IHRydWU7Cj4gPiArCQkJ CWJyZWFrOwo+ID4gKwkJCX0KPiA+ICsKPiA+ICsJCQkvKiBBbGwgcGlwZXMgc2hvdWxkIGhhdmUg aWRlbnRpY2FsIHBsYW5lcy4gKi8KPiA+ICsJCQlpZiAoV0FSTl9PTighZm91bmQpKQo+ID4gKwkJ CQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsJCX0gZWxzZSBpZiAoIW9sZF9jcnRjX3N0YXRlLT5iaWdq b2luZXIpIHsKPiA+ICsJCQljb250aW51ZTsKPiA+ICsJCX0KPiA+ICsKPiA+ICsJCXBsYW5lX3N0 YXRlID0gaW50ZWxfYXRvbWljX2dldF9wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOwo+ID4gKwkJ aWYgKElTX0VSUihwbGFuZV9zdGF0ZSkpCj4gPiArCQkJcmV0dXJuIFBUUl9FUlIocGxhbmVfc3Rh dGUpOwo+ID4gKwo+ID4gKwkJcGxhbmVfc3RhdGUtPmJpZ2pvaW5lcl9wbGFuZSA9IG90aGVyX3Bs YW5lOwo+ID4gKwkJcGxhbmVfc3RhdGUtPmJpZ2pvaW5lcl9zbGF2ZSA9IG5ld19jcnRjX3N0YXRl LT5iaWdqb2luZXJfc2xhdmU7Cj4gPiArCX0KPiAKPiBJcyBteSB1bmRlcnN0YW5kaW5nIGNvcnJl Y3QgdGhhdCB3ZSBhbHdheXMgZ3JhYiB0aGUgY29ycmVzcG9uZGluZyBwbGFuZQo+IG9uIHRoZSBv dGhlciBDUlRDIHdoZW4gdGhlIGJpZyBqb2luZXIgaXMgYWN0aXZlPyAgSS5lLiwgZXZlbiBpbiBj YXNlcwo+IHdoZXJlIHRoZSB1YXBpIHBsYW5lIGlzIHJlc3RyaWN0ZWQgdG8ganVzdCBvbmUgaGFs ZiBvZiB0aGUgc2NyZWVuLCB3ZSdyZQo+IHN0aWxsIGdvaW5nIHRvIGdyYWIgdGhlIGJpZ2pvaW5l ciBzbGF2ZSBwbGFuZT8gIEkgZ3Vlc3MgdHJ5aW5nIHRvCj4gcmVzdHJpY3QgdGhpcyB0byBvbmx5 IGNhc2VzIHdoZXJlIHRoZSB1YXBpIHBsYW5lIGNvdmVycyBib3RoIHBpcGVzIHdvdWxkCj4gbWFr ZSB0aGlzIHdob2xlIHRoaW5nIGV2ZW4gbW9yZSBjb21wbGljYXRlZC4KClllYWgsIEknbSB0aGlu a2luZyB3ZSBjYW4ganVzdCBpZ25vcmUgdGhhdCBwYXJ0aWN1bGFyIG9wdGltaXphdGlvbi4KV291 bGQgbmVlZCB0byBzb21laG93IGNvbnZpbmNlIG91cnNlbHZlcyBlYXJseSB0aGF0IHRoZSBwbGFu ZSBzdGlsbApyZW1haW5zIG9uIGl0cyBvd24gaGFsZiBvZiB0aGUgc2NyZWVuLCBvciB3ZSdkIG5l ZWQgdG8gY29tZSB1cCB3aXRoIHNvbWUKa2luZCBvZiByZXRyeSBsb29wIGZvciB0aGlzIHRoYXQg Y2FuIHJlc3RhcnQgaWYgYSBuZXcgcGxhbmUgZ2V0cyBhZGRlZAppbiB0aGUgbWlkZGxlIG9mIHRo ZSBwcm9jZXNzLiBJTU8gbm90IHdvcnRoIHRoZSBoYXNzbGUuCgotLSAKVmlsbGUgU3lyasOkbMOk CkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==