From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Ausmus Subject: Re: [PATCH 13/17] drm/i915/icl: Enable 2nd DBuf slice only when needed Date: Thu, 25 Jan 2018 14:56:29 -0800 Message-ID: <20180125225627.GE3309@jausmus-gentoo-dev6.jf.intel.com> References: <20180123190536.11208-1-paulo.r.zanoni@intel.com> <20180123190536.11208-14-paulo.r.zanoni@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 683C86E0B1 for ; Thu, 25 Jan 2018 22:54:13 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180123190536.11208-14-paulo.r.zanoni@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKYW4gMjMsIDIwMTggYXQgMDU6MDU6MzJQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdy b3RlOgo+IEZyb206IE1haGVzaCBLdW1hciA8bWFoZXNoMS5rdW1hckBpbnRlbC5jb20+Cj4gCj4g SUNMIGhhcyB0d28gc2xpY2VzIG9mIERCdWYsIGVhY2ggc2xpY2Ugb2Ygc2l6ZSAxMDI0IGJsb2Nr cy4KPiBXZSBzaG91bGQgbm90IGFsd2F5cyBlbmFibGUgc2xpY2UtMi4gSXQgc2hvdWxkIGJlIGVu YWJsZWQgb25seSBpZgo+IGRpc3BsYXkgdG90YWwgcmVxdWlyZWQgQlcgaXMgPiAxMkdCcHMgT1Ig bW9yZSB0aGFuIDEgcGlwZXMgYXJlIGVuYWJsZWQuCj4gCj4gQ2hhbmdlcyBzaW5jZSBWMToKPiAg LSB0eXBlY2FzdCB0b3RhbF9kYXRhX3JhdGUgdG8gdTY0IGJlZm9yZSBtdWx0aXBsaWNhdGlvbiB0 byBzb2x2ZSBhbnkKPiAgICBwb3NzaWJsZSBvdmVyZmxvdyAoUm9kcmlnbykKPiAgLSBmaXggd2hl cmUgc2tsX3dtX2dldF9od19zdGF0ZSB3YXMgbWVtc2V0dGluZyBkZGIsIHJlc3VsdGluZwo+ICAg IGVuYWJsZWRfc2xpY2VzIHRvIGJlY29tZSB6ZXJvCj4gIC0gRml4IHRoZSBsb2dpYyBvZiBjYWxj dWxhdGluZyBkZGJfc2l6ZQo+IENoYW5nZXMgc2luY2UgVjI6Cj4gIC0gSWYgbm8tY3J0YyBpcyBw YXJ0IG9mIGNvbW1pdCByZXF1aXJlZF9zbGljZXMgd2lsbCBoYXZlIHZhbHVlICIwIiwKPiAgICBk b24ndCB0cnkgdG8gZGlzYWJsZSBEQnVmIHNsaWNlLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1haGVz aCBLdW1hciA8bWFoZXNoMS5rdW1hckBpbnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8IDEyICsrKysrKysKPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgICAgIHwgIDYgKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jICAgICAgICAgfCA2NCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgNDcgKysrKysr KysrKysrKysrKysrKysrLS0tCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTEwIGluc2VydGlvbnMoKyks IDE5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBp bmRleCBiYWQzYjExMmFjM2UuLjNlYjIzNTljMjIxYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kaXNwbGF5LmMKPiBAQCAtMTIxMTcsNiArMTIxMTcsOCBAQCBzdGF0aWMgdm9pZCBza2xf dXBkYXRlX2NydGNzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCWJvb2wgcHJv Z3Jlc3M7Cj4gIAllbnVtIHBpcGUgcGlwZTsKPiAgCWludCBpOwo+ICsJdWludDhfdCBod19lbmFi bGVkX3NsaWNlcyA9IGRldl9wcml2LT53bS5za2xfaHcuZGRiLmVuYWJsZWRfc2xpY2VzOwo+ICsJ dWludDhfdCByZXF1aXJlZF9zbGljZXMgPSBpbnRlbF9zdGF0ZS0+d21fcmVzdWx0cy5kZGIuZW5h YmxlZF9zbGljZXM7Cj4gIAo+ICAJY29uc3Qgc3RydWN0IHNrbF9kZGJfZW50cnkgKmVudHJpZXNb STkxNV9NQVhfUElQRVNdID0ge307Cj4gIAo+IEBAIC0xMjEyNSw2ICsxMjEyNywxMSBAQCBzdGF0 aWMgdm9pZCBza2xfdXBkYXRlX2NydGNzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiAgCQlpZiAobmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkKPiAgCQkJZW50cmllc1tpXSA9ICZ0b19p bnRlbF9jcnRjX3N0YXRlKG9sZF9jcnRjX3N0YXRlKS0+d20uc2tsLmRkYjsKPiAgCj4gKwkvKiBJ ZiAybmQgREJ1ZiBzbGljZSByZXF1aXJlZCwgZW5hYmxlIGl0IGhlcmUgKi8KPiArCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpID49IDExICYmIHJlcXVpcmVkX3NsaWNlcyAmJgo+ICsJCQkJCSByZXF1 aXJlZF9zbGljZXMgPiBod19lbmFibGVkX3NsaWNlcykKPiArCQlpY2xfZGJ1Zl9zbGljZXNfdXBk YXRlKGRldl9wcml2LCByZXF1aXJlZF9zbGljZXMpOwo+ICsKPiAgCS8qCj4gIAkgKiBXaGVuZXZl ciB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBwaXBlcyBjaGFuZ2VzLCB3ZSBuZWVkIHRvIG1ha2Ugc3Vy ZSB3ZQo+ICAJICogdXBkYXRlIHRoZSBwaXBlcyBpbiB0aGUgcmlnaHQgb3JkZXIgc28gdGhhdCB0 aGVpciBkZGIgYWxsb2NhdGlvbnMKPiBAQCAtMTIxNzUsNiArMTIxODIsMTEgQEAgc3RhdGljIHZv aWQgc2tsX3VwZGF0ZV9jcnRjcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJ CXByb2dyZXNzID0gdHJ1ZTsKPiAgCQl9Cj4gIAl9IHdoaWxlIChwcm9ncmVzcyk7Cj4gKwo+ICsJ LyogSWYgMm5kIERCdWYgc2xpY2UgaXMgbm8gbW9yZSByZXF1aXJlZCBkaXNhYmxlIGl0ICovCj4g KwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSAmJiByZXF1aXJlZF9zbGljZXMgJiYKPiAr CQkJCQkgcmVxdWlyZWRfc2xpY2VzIDwgaHdfZW5hYmxlZF9zbGljZXMpCj4gKwkJaWNsX2RidWZf c2xpY2VzX3VwZGF0ZShkZXZfcHJpdiwgcmVxdWlyZWRfc2xpY2VzKTsKPiAgfQo+ICAKPiAgc3Rh dGljIHZvaWQgaW50ZWxfYXRvbWljX2hlbHBlcl9mcmVlX3N0YXRlKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGM1ZDYw OTJhY2E0MS4uZDQ2MzlhMTYxZmUzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBA QCAtMTQwLDYgKzE0MCwxMCBAQAo+ICAjZGVmaW5lIEtIeih4KSAoMTAwMCAqICh4KSkKPiAgI2Rl ZmluZSBNSHooeCkgS0h6KDEwMDAgKiAoeCkpCj4gIAo+ICsjZGVmaW5lIEtCcHMoeCkgKDEwMDAg KiAoeCkpCj4gKyNkZWZpbmUgTUJwcyh4KSBLQnBzKDEwMDAgKiAoeCkpCj4gKyNkZWZpbmUgR0Jw cyh4KSAoKHVpbnQ2NF90KSAxMDAwICogTUJwcygoeCkpKQo+ICsKPiAgLyoKPiAgICogRGlzcGxh eSByZWxhdGVkIHN0dWZmCj4gICAqLwo+IEBAIC0xODkwLDYgKzE4OTQsOCBAQCBib29sIGludGVs X2Rpc3BsYXlfcG93ZXJfZ2V0X2lmX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAo+ICAJCQkJCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZG9tYWluKTsK PiAgdm9pZCBpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAkJCSAgICAgZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21h aW4pOwo+ICt2b2lkIGljbF9kYnVmX3NsaWNlc191cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICsJCQkgICAgdWludDhfdCByZXFfc2xpY2VzKTsKPiAgCj4gIHN0YXRp YyBpbmxpbmUgdm9pZAo+ICBhc3NlcnRfcnBtX2RldmljZV9ub3Rfc3VzcGVuZGVkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBpbmRl eCBlOGQ5ODg1N2MyMDguLmQ0Y2Q2MzEzNzdkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0u Ywo+IEBAIC0zNzY3LDkgKzM3NjcsNDIgQEAgYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJcmV0dXJuIHRydWU7Cj4gIH0KPiAgCj4g K3N0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfZ2V0X2RkYl9zaXplKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKPiArCQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3N0YXRlLAo+ICsJCQkJICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCB0b3RhbF9kYXRh X3JhdGUsCj4gKwkJCQkgICAgICAgY29uc3QgaW50IG51bV9hY3RpdmUsCj4gKwkJCQkgICAgICAg c3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiKQo+ICt7Cj4gKwljb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZTsKPiArCXU2NCB0b3RhbF9kYXRhX2J3Owo+ICsJ dTE2IGRkYl9zaXplID0gSU5URUxfSU5GTyhkZXZfcHJpdiktPmRkYl9zaXplOwo+ICsKPiArCVdB Uk5fT04oZGRiX3NpemUgPT0gMCk7Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAx MSkKPiArCQlyZXR1cm4gZGRiX3NpemUgLSA0OyAvKiA0IGJsb2NrcyBmb3IgYnlwYXNzIHBhdGgg YWxsb2NhdGlvbiAqLwo+ICsKPiArCWFkanVzdGVkX21vZGUgPSAmY3N0YXRlLT5iYXNlLmFkanVz dGVkX21vZGU7Cj4gKwl0b3RhbF9kYXRhX2J3ID0gKHU2NCl0b3RhbF9kYXRhX3JhdGUgKiBkcm1f bW9kZV92cmVmcmVzaChhZGp1c3RlZF9tb2RlKTsKPiArCj4gKwkvKgo+ICsJICogMTJHQi9zIGlz IG1heGltdW0gQlcgc3VwcG9ydGVkIGJ5IHNpbmdsZSBEQnVmIHNsaWNlLgo+ICsJICovCj4gKwlp ZiAodG90YWxfZGF0YV9idyA+PSBHQnBzKDEyKSB8fCBudW1fYWN0aXZlID4gMSkKPiArCQlkZGIt PmVuYWJsZWRfc2xpY2VzID0gMjsKPiArCWVsc2Ugewo+ICsJCWRkYi0+ZW5hYmxlZF9zbGljZXMg PSAxOwo+ICsJCWRkYl9zaXplIC89IDI7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGRkYl9zaXplOwo+ ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZAo+ICBza2xfZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGlt aXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3N0YXRlLAo+ICsJCQkJICAgY29uc3QgdW5zaWduZWQgaW50IHRvdGFsX2Rh dGFfcmF0ZSwKPiArCQkJCSAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwKPiAgCQkJ CSAgIHN0cnVjdCBza2xfZGRiX2VudHJ5ICphbGxvYywgLyogb3V0ICovCj4gIAkJCQkgICBpbnQg Km51bV9hY3RpdmUgLyogb3V0ICovKQo+ICB7Cj4gQEAgLTM3OTIsMTEgKzM4MjUsOCBAQCBza2xf ZGRiX2dldF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAllbHNlCj4gIAkJKm51bV9hY3RpdmUgPSBod2VpZ2h0MzIoZGV2X3ByaXYtPmFjdGl2ZV9jcnRj cyk7Cj4gIAo+IC0JZGRiX3NpemUgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+ZGRiX3NpemU7Cj4g LQlXQVJOX09OKGRkYl9zaXplID09IDApOwo+IC0KPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYp IDwgMTEpCj4gLQkJZGRiX3NpemUgLT0gNDsgLyogNCBibG9ja3MgZm9yIGJ5cGFzcyBwYXRoIGFs bG9jYXRpb24gKi8KPiArCWRkYl9zaXplID0gaW50ZWxfZ2V0X2RkYl9zaXplKGRldl9wcml2LCBj c3RhdGUsIHRvdGFsX2RhdGFfcmF0ZSwKPiArCQkJCSAgICAgICpudW1fYWN0aXZlLCBkZGIpOwo+ ICAKPiAgCS8qCj4gIAkgKiBJZiB0aGUgc3RhdGUgZG9lc24ndCBjaGFuZ2UgdGhlIGFjdGl2ZSBD UlRDJ3MsIHRoZW4gdGhlcmUncwo+IEBAIC00MjM1LDcgKzQyNjUsMTQgQEAgc2tsX2FsbG9jYXRl X3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gIAkJcmV0dXJuIDA7 Cj4gIAl9Cj4gIAo+IC0Jc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhkZXYsIGNz dGF0ZSwgYWxsb2MsICZudW1fYWN0aXZlKTsKPiArCXRvdGFsX2RhdGFfcmF0ZSA9IHNrbF9nZXRf dG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNzdGF0ZSwKPiArCQkJCQkJCSAgIHBsYW5lX2RhdGFf cmF0ZSwKPiArCQkJCQkJCSAgIHBsYW5lX3lfZGF0YV9yYXRlKTsKPiArCWlmICh0b3RhbF9kYXRh X3JhdGUgPT0gMCkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlza2xfZGRiX2dldF9waXBlX2FsbG9j YXRpb25fbGltaXRzKGRldiwgY3N0YXRlLCB0b3RhbF9kYXRhX3JhdGUsIGRkYiwKPiArCQkJCQkg ICBhbGxvYywgJm51bV9hY3RpdmUpOwo+ICAJYWxsb2Nfc2l6ZSA9IHNrbF9kZGJfZW50cnlfc2l6 ZShhbGxvYyk7Cj4gIAlpZiAoYWxsb2Nfc2l6ZSA9PSAwKQo+ICAJCXJldHVybiAwOwo+IEBAIC00 MjcwLDEyICs0MzA3LDYgQEAgc2tsX2FsbG9jYXRlX3BpcGVfZGRiKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjc3RhdGUsCj4gIAkgKgo+ICAJICogRklYTUU6IHdlIG1heSBub3QgYWxsb2NhdGUg ZXZlcnkgc2luZ2xlIGJsb2NrIGhlcmUuCj4gIAkgKi8KPiAtCXRvdGFsX2RhdGFfcmF0ZSA9IHNr bF9nZXRfdG90YWxfcmVsYXRpdmVfZGF0YV9yYXRlKGNzdGF0ZSwKPiAtCQkJCQkJCSAgIHBsYW5l X2RhdGFfcmF0ZSwKPiAtCQkJCQkJCSAgIHBsYW5lX3lfZGF0YV9yYXRlKTsKPiAtCWlmICh0b3Rh bF9kYXRhX3JhdGUgPT0gMCkKPiAtCQlyZXR1cm4gMDsKPiAtCj4gIAlzdGFydCA9IGFsbG9jLT5z dGFydDsKPiAgCWZvcl9lYWNoX3BsYW5lX2lkX29uX2NydGMoaW50ZWxfY3J0YywgcGxhbmVfaWQp IHsKPiAgCQl1bnNpZ25lZCBpbnQgZGF0YV9yYXRlLCB5X2RhdGFfcmF0ZTsKPiBAQCAtNTA2OCw3 ICs1MDk5LDYgQEAgc2tsX2NvcHlfd21fZm9yX3BpcGUoc3RydWN0IHNrbF93bV92YWx1ZXMgKmRz dCwKPiAgCSAgICAgICBzaXplb2YoZHN0LT5kZGIueV9wbGFuZVtwaXBlXSkpOwo+ICAJbWVtY3B5 KGRzdC0+ZGRiLnBsYW5lW3BpcGVdLCBzcmMtPmRkYi5wbGFuZVtwaXBlXSwKPiAgCSAgICAgICBz aXplb2YoZHN0LT5kZGIucGxhbmVbcGlwZV0pKTsKPiAtCWRzdC0+ZGRiLmVuYWJsZWRfc2xpY2Vz ID0gc3JjLT5kZGIuZW5hYmxlZF9zbGljZXM7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkCj4gQEAg LTUzODEsOCArNTQxMSwxMiBAQCB2b2lkIHNrbF93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgCQkvKiBGdWxseSByZWNvbXB1dGUgRERCIG9uIGZpcnN0IGF0b21pYyBj b21taXQgKi8KPiAgCQlkZXZfcHJpdi0+d20uZGlzdHJ1c3RfYmlvc193bSA9IHRydWU7Cj4gIAl9 IGVsc2Ugewo+IC0JCS8qIEVhc3kvY29tbW9uIGNhc2U7IGp1c3Qgc2FuaXRpemUgRERCIG5vdyBp ZiBldmVyeXRoaW5nIG9mZiAqLwo+IC0JCW1lbXNldChkZGIsIDAsIHNpemVvZigqZGRiKSk7Cj4g KwkJLyoKPiArCQkgKiBFYXN5L2NvbW1vbiBjYXNlOyBqdXN0IHNhbml0aXplIEREQiBub3cgaWYg ZXZlcnl0aGluZyBvZmYKPiArCQkgKiBLZWVwIGRidWYgc2xpY2UgaW5mbyBpbnRhY3QKPiArCQkg Ki8KPiArCQltZW1zZXQoZGRiLT5wbGFuZSwgMCwgc2l6ZW9mKGRkYi0+cGxhbmUpKTsKPiArCQlt ZW1zZXQoZGRiLT55X3BsYW5lLCAwLCBzaXplb2YoZGRiLT55X3BsYW5lKSk7Cj4gIAl9Cj4gIH0K PiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IDEzYzhk YWQ5NWI4NC4uYTY3YTU3NzM4NzQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1 bnRpbWVfcG0uYwo+IEBAIC0yNjEwLDEwICsyNjEwLDQ5IEBAIHN0YXRpYyB2b2lkIGdlbjlfZGJ1 Zl9kaXNhYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCQlEUk1fRVJS T1IoIkRCdWYgcG93ZXIgZGlzYWJsZSB0aW1lb3V0IVxuIik7Cj4gIH0KPiAgCj4gLS8qCj4gLSAq IFRPRE86IHdlIHNob3VsZG4ndCBhbHdheXMgZW5hYmxlIERCVUZfQ1RMX1MyLCB3ZSBzaG91bGQg b25seSBlbmFibGUgaXQgd2hlbgo+IC0gKiBuZWVkZWQgYW5kIGtlZXAgaXQgZGlzYWJsZWQgYXMg bXVjaCBhcyBwb3NzaWJsZS4KPiAtICovCj4gK3N0YXRpYyB1aW50OF90IGludGVsX2RidWZfbWF4 X3NsaWNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gK3sKPiArCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCj4gKwkJcmV0dXJuIDE7Cj4gKwlyZXR1cm4gMjsKPiAr fQo+ICsKPiArdm9pZCBpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKPiArCQkJICAgIHVpbnQ4X3QgcmVxX3NsaWNlcykKPiArewo+ICsJdWlu dDhfdCBod19lbmFibGVkX3NsaWNlcyA9IGRldl9wcml2LT53bS5za2xfaHcuZGRiLmVuYWJsZWRf c2xpY2VzOwo+ICsJdTMyIHZhbDsKPiArCj4gKwlpZiAocmVxX3NsaWNlcyA+IGludGVsX2RidWZf bWF4X3NsaWNlcyhkZXZfcHJpdikpIHsKPiArCQlEUk1fRVJST1IoIkludmFsaWQgbnVtYmVyIG9m IGRidWYgc2xpY2VzIHJlcXVlc3RlZFxuIik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCWlm IChyZXFfc2xpY2VzID09IGh3X2VuYWJsZWRfc2xpY2VzKQo+ICsJCXJldHVybjsKPiArCj4gKwl2 YWwgPSBJOTE1X1JFQUQoREJVRl9DVExfUzIpOwo+ICsJaWYgKHJlcV9zbGljZXMgPiBod19lbmFi bGVkX3NsaWNlcykgewo+ICsJCUk5MTVfV1JJVEUoREJVRl9DVExfUzIsIHZhbCB8IERCVUZfUE9X RVJfUkVRVUVTVCk7Cj4gKwkJUE9TVElOR19SRUFEKERCVUZfQ1RMX1MyKTsKPiArCj4gKwkJdWRl bGF5KDEwKTsKPiArCQlpZiAoIShJOTE1X1JFQUQoREJVRl9DVExfUzIpICYgREJVRl9QT1dFUl9T VEFURSkpCj4gKwkJCURSTV9FUlJPUigiREJ1ZiBwb3dlciBlbmFibGUgdGltZW91dFxuIik7Cj4g KwkJZWxzZQo+ICsJCQlkZXZfcHJpdi0+d20uc2tsX2h3LmRkYi5lbmFibGVkX3NsaWNlcyA9IHJl cV9zbGljZXM7Cj4gKwl9IGVsc2Ugewo+ICsJCUk5MTVfV1JJVEUoREJVRl9DVExfUzIsIHZhbCAm IH5EQlVGX1BPV0VSX1JFUVVFU1QpOwo+ICsJCVBPU1RJTkdfUkVBRChEQlVGX0NUTF9TMik7Cj4g Kwo+ICsJCXVkZWxheSgxMCk7Cj4gKwkJaWYgKEk5MTVfUkVBRChEQlVGX0NUTF9TMikgJiBEQlVG X1BPV0VSX1NUQVRFKQo+ICsJCQlEUk1fRVJST1IoIkRCdWYgcG93ZXIgZGlzYWJsZSB0aW1lb3V0 IVxuIik7Cj4gKwkJZWxzZQo+ICsJCQlkZXZfcHJpdi0+d20uc2tsX2h3LmRkYi5lbmFibGVkX3Ns aWNlcyA9IHJlcV9zbGljZXM7CgpJdCBmZWVscyBhIGxpdHRsZSB1Z2x5IHRvIGJlIGR1cGxpY2F0 aW5nIHRoZSBXcml0ZS0+UG9zdGluZwpSZWFkLT5XYWl0LT5SZWFkLT5FcnJvciBwYXR0ZXJuIGFj cm9zcyB0aGlzIGZ1bmN0aW9uIGFuZAppY2xfZGJ1Zl9lbmFibGUvZGlzYWJsZSBiZWxvdyAtIG5v dCB0byBtZW50aW9uIHRoYXQgd2UgaGF2ZSB0aGUgc2FtZQpwYXR0ZXJuIHVwIGFib3ZlIGluIGdl bjlfZGJ1Zl9lbmFibGUvZGlzYWJsZS4gTWF5YmUgd2Ugc2hvdWxkIHJlZmFjdG9yCnRoZSBnZW45 IHZlcnNpb25zIGluIHRvIGhlbHBlcnMgdGhhdCB0YWtlIGEgc2xpY2UgbnVtYmVyLCBhbmQgdGhl biByZXVzZQp0aG9zZSBmb3IgSUNMIGFzIHdlbGw/CgoKPiArCX0KPiArfQo+ICsKPiAgc3RhdGlj IHZvaWQgaWNsX2RidWZfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK PiAgewo+ICAJSTkxNV9XUklURShEQlVGX0NUTF9TMSwgSTkxNV9SRUFEKERCVUZfQ1RMX1MxKSB8 IERCVUZfUE9XRVJfUkVRVUVTVCk7Cj4gLS0gCj4gMi4xNC4zCj4gCj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=