From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v6 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Mon, 29 Oct 2018 15:12:51 -0700 Message-ID: <20181029221251.GD27040@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-14-manasi.d.navare@intel.com> <20181029203039.GO9144@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181029203039.GO9144@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 =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMjksIDIwMTggYXQgMTA6MzA6MzlQTSArMDIwMCwgVmlsbGUgU3lyasOkbMOk IHdyb3RlOgo+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0IDAzOjI4OjI1UE0gLTA3MDAsIE1hbmFz aSBOYXZhcmUgd3JvdGU6Cj4gPiBEU0MgcGFyYW1zIGxpa2UgdGhlIGVuYWJsZSwgY29tcHJlc3Nl ZCBicHAsIHNsaWNlIGNvdW50IGFuZAo+ID4gZHNjX3NwbGl0IGFyZSBhZGRlZCB0byB0aGUgaW50 ZWxfY3J0Y19zdGF0ZS4gVGhlc2UgcGFyYW1ldGVycwo+ID4gYXJlIHNldCBiYXNlZCBvbiB0aGUg cmVxdWVzdGVkIG1vZGUgYW5kIGF2YWlsYWJsZSBsaW5rIHBhcmFtZXRlcnMKPiA+IGR1cmluZyB0 aGUgcGlwZSBjb25maWd1cmF0aW9uIGluIGF0b21pYyBjaGVjayBwaGFzZS4KPiA+IFRoZXNlIHZh bHVlcyBhcmUgdGhlbiBsYXRlciB1c2VkIHRvIHBvcHVsYXRlIHRoZSByZW1haW5pbmcgRFNDCj4g PiBhbmQgUkMgcGFyYW1ldGVycyBiZWZvcmUgZW5iYWxpbmcgRFNDIGluIGF0b21pYyBjb21taXQu Cj4gPiAKPiA+IHY5Ogo+ID4gKiBSZWJhc2Ugb24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cgdXNl cyBmYXN0X25hcnJvdyBjb25maWcKPiA+IGZvciBlZHAgKE1hbmFzaSkKPiA+IHY4Ogo+ID4gKiBD aGVjayBmb3IgRFNDIGJwYyBub3QgMCAobWFuYXNpKQo+ID4gCj4gPiB2NzoKPiA+ICogRml4IGlu ZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChNYW5hc2kpCj4gPiAKPiA+IHY2IChGcm9tIEdhdXJh dik6Cj4gPiAqIFJlbW92ZSBmdW5jdGlvbiBjYWxsIG9mIGludGVsX2RwX2NvbXB1dGVfZHNjX3Bh cmFtcygpIGFuZAo+ID4gaW52b2tlIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGluIHRo ZSBwYXRjaCB3aGVyZQo+ID4gaXQgaXMgZGVmaW5lZCB0byBmaXggY29tcGlsYXRpb24gd2Fybmlu ZyAoR2F1cmF2KQo+ID4gCj4gPiB2NToKPiA+IEFkZCBkcm1fZHNjX2NmZyBpbiBpbnRlbF9jcnRj X3N0YXRlIChNYW5hc2kpCj4gPiAKPiA+IHY0Ogo+ID4gKiBSZWJhc2Ugb24gcmVmYWN0b3Jpbmcg b2YgaW50ZWxfZHBfY29tcHV0ZV9jb25maWcgb24gdGlwIChNYW5hc2kpCj4gPiAqIEFkZCBhIGNv bW1lbnQgd2h5IHdlIG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVuYWJsaW5nIERTQyAoR2F1cmF2 KQo+ID4gCj4gPiB2MzoKPiA+ICogQ2hlY2sgUFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRT QyBpbnN0YW5jZXMgKFZpbGxlKQo+ID4gCj4gPiB2MjoKPiA+ICogQWRkIGlmLWVsc2UgZm9yIGVE UC9EUCAoR2F1cmF2KQo+ID4gCj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4 LmludGVsLmNvbT4KPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+IENjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5j b20+Cj4gPiBDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KPiA+ IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4gPiBSZXZpZXdlZC1ieTogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwu Y29tPgo+ID4gQWNrZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5j b20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAg MjAgKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaCB8ICAgMyAr LQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICB8IDE3MCArKysrKysr KysrKysrKysrKysrKysrLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9t c3QuYyAgfCAgIDIgKy0KPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDE1NSBpbnNlcnRpb25zKCspLCA0 MCBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ID4gaW5kZXggZmUwNDVhYmI2NDcyLi4xODczN2JkODJiNjggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTY0MzQsNyArNjQzNCw3IEBAIHN0YXRpYyBp bnQgaXJvbmxha2VfZmRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjLAo+ID4gIAo+ID4gIAlwaXBlX2NvbmZpZy0+ZmRpX2xhbmVzID0gbGFuZTsKPiA+ICAKPiA+ IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlwZV9icHAsIGxhbmUsIGZk aV9kb3RjbG9jaywKPiA+ICsJaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2NvbmZpZy0+cGlw ZV9icHAsIDAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiA+ICAJCQkgICAgICAgbGlua19idywgJnBp cGVfY29uZmlnLT5mZGlfbV9uLCBmYWxzZSk7Cj4gPiAgCj4gPiAgCXJldCA9IGlyb25sYWtlX2No ZWNrX2ZkaV9sYW5lcyhkZXYsIGludGVsX2NydGMtPnBpcGUsIHBpcGVfY29uZmlnKTsKPiA+IEBA IC02NjcxLDE3ICs2NjcxLDI1IEBAIHN0YXRpYyB2b2lkIGNvbXB1dGVfbV9uKHVuc2lnbmVkIGlu dCBtLCB1bnNpZ25lZCBpbnQgbiwKPiA+ICB9Cj4gPiAgCj4gPiAgdm9pZAo+ID4gLWludGVsX2xp bmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVzLAo+ID4gK2ludGVs X2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCB1aW50MTZfdCBjb21wcmVzc2Vk X2JwcCwKPiA+ICsJCSAgICAgICBpbnQgbmxhbmVzLAo+ID4gIAkJICAgICAgIGludCBwaXhlbF9j bG9jaywgaW50IGxpbmtfY2xvY2ssCj4gPiAgCQkgICAgICAgc3RydWN0IGludGVsX2xpbmtfbV9u ICptX24sCj4gPiAgCQkgICAgICAgYm9vbCBjb25zdGFudF9uKQo+ID4gIHsKPiA+ICAJbV9uLT50 dSA9IDY0Owo+ID4gIAo+ID4gLQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Ns b2NrLAo+ID4gLQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4gLQkJICAgICZtX24t PmdtY2hfbSwgJm1fbi0+Z21jaF9uLAo+ID4gLQkJICAgIGNvbnN0YW50X24pOwo+ID4gKwkvKiBG b3IgRFNDLCBEYXRhIE0vTiBjYWxjdWxhdGlvbiB1c2VzIGNvbXByZXNzZWQgQlBQICovCj4gPiAr CWlmIChjb21wcmVzc2VkX2JwcCkKPiA+ICsJCWNvbXB1dGVfbV9uKGNvbXByZXNzZWRfYnBwICog cGl4ZWxfY2xvY2ssCj4gPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4gKwkJ CSAgICAmbV9uLT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiA+ICsJCQkgICAgY29uc3RhbnRfbik7 Cj4gPiArCWVsc2UKPiA+ICsJCWNvbXB1dGVfbV9uKGJpdHNfcGVyX3BpeGVsICogcGl4ZWxfY2xv Y2ssCj4gPiArCQkJICAgIGxpbmtfY2xvY2sgKiBubGFuZXMgKiA4LAo+ID4gKwkJCSAgICAmbV9u LT5nbWNoX20sICZtX24tPmdtY2hfbiwKPiA+ICsJCQkgICAgY29uc3RhbnRfbik7Cj4gPiAgCj4g PiAgCWNvbXB1dGVfbV9uKHBpeGVsX2Nsb2NrLCBsaW5rX2Nsb2NrLAo+ID4gIAkJICAgICZtX24t PmxpbmtfbSwgJm1fbi0+bGlua19uLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku aAo+ID4gaW5kZXggNWQ1MGRlY2JjYmI1Li5iMGIyM2UxZTkzOTIgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gQEAgLTQwNyw3ICs0MDcsOCBAQCBzdHJ1Y3Qg aW50ZWxfbGlua19tX24gewo+ID4gIAkgICAgIChfX2kpKyspIFwKPiA+ICAJCWZvcl9lYWNoX2lm KHBsYW5lKQo+ID4gIAo+ID4gLXZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCBp bnQgbmxhbmVzLAo+ID4gK3ZvaWQgaW50ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCB1aW50 MTZfdCBjb21wcmVzc2VkX2JwcCwKPiA+ICsJCQkgICAgaW50IG5sYW5lcywKPiA+ICAJCQkgICAg aW50IHBpeGVsX2Nsb2NrLCBpbnQgbGlua19jbG9jaywKPiA+ICAJCQkgICAgc3RydWN0IGludGVs X2xpbmtfbV9uICptX24sCj4gPiAgCQkJICAgIGJvb2wgY29uc3RhbnRfbik7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IDZmNjZhMzhiYTBiMi4uYTg4ZjkzNzFkZDMyIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTQ3LDYgKzQ3LDggQEAKPiA+ICAK PiA+ICAvKiBEUCBEU0Mgc21hbGwgam9pbmVyIGhhcyAyIEZJRk9zIGVhY2ggb2YgNjQwIHggNiBi eXRlcyAqLwo+ID4gICNkZWZpbmUgRFBfRFNDX01BWF9TTUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2 MTQ0MAo+ID4gKyNkZWZpbmUgRFBfRFNDX01JTl9TVVBQT1JURURfQlBDCQk4Cj4gPiArI2RlZmlu ZSBEUF9EU0NfTUFYX1NVUFBPUlRFRF9CUEMJCTEwCj4gPiAgCj4gPiAgLyogRFAgRFNDIHRocm91 Z2hwdXQgdmFsdWVzIHVzZWQgZm9yIHNsaWNlIGNvdW50IGNhbGN1bGF0aW9ucyBLUGl4ZWxzL3Mg Ki8KPiA+ICAjZGVmaW5lIERQX0RTQ19QRUFLX1BJWEVMX1JBVEUJCQkyNzIwMDAwCj4gPiBAQCAt MTkyNCw2ICsxOTI2LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0 IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCX0KPiA+ICAJfQo+ID4gIAo+ID4gKwkvKiBJZiBE U0MgaXMgc3VwcG9ydGVkLCB1c2UgdGhlIG1heCB2YWx1ZSByZXBvcnRlZCBieSBwYW5lbCAqLwo+ ID4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMCAmJgo+ID4gKwkgICAgZHJtX2RwX3Np bmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkpIHsKPiA+ICsJCWJwYyA9IG1pbl90 KHU4LAo+ID4gKwkJCSAgICBkcm1fZHBfZHNjX3NpbmtfbWF4X2NvbG9yX2RlcHRoKGludGVsX2Rw LT5kc2NfZHBjZCksCj4gPiArCQkJICAgIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQQyk7Cj4gPiAr CQlpZiAoYnBjKQo+ID4gKwkJCWJwcCA9IDMgKiBicGM7Cj4gCj4gVGhpcyBzZWVtcyBsaWtlIGl0 IHNob3VsZCBiZSAnYnBwID0gbWluKGJwcCwgMypicGMpJy4gCj4gT3RoZXJ3aXNlIHdlIG1heSBi dW1wIHRoZSBicHAgYWJvdmUgYSBsaW1pdCB3ZSBhbHJlYWR5IGVzdGFibGlzaGVkIGVhcmxpZXIu Cj4KClllcyB3aWxsIG1ha2UgdGhpcyBjaGFuZ2UuCiAKPiA+ICsJfQo+ID4gKwo+ID4gIAlyZXR1 cm4gYnBwOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0xOTg0LDE0ICsxOTk2LDExIEBAIGludGVsX2Rw X2NvbXB1dGVfbGlua19jb25maWdfd2lkZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4g IAkJCQlsaW5rX2Nsb2NrID0gaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107Cj4gPiAgCQkJ CWxpbmtfYXZhaWwgPSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKGxpbmtfY2xvY2ssCj4gPiAgCQkJ CQkJCQkgICAgbGFuZV9jb3VudCk7Cj4gPiAtCj4gPiAtCQkJCWlmIChtb2RlX3JhdGUgPD0gbGlu a19hdmFpbCkgewo+ID4gLQkJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50 Owo+ID4gLQkJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ID4gLQkJCQkJcGlwZV9j b25maWctPnBvcnRfY2xvY2sgPSBsaW5rX2Nsb2NrOwo+ID4gLQo+ID4gKwkJCQlwaXBlX2NvbmZp Zy0+bGFuZV9jb3VudCA9IGxhbmVfY291bnQ7Cj4gPiArCQkJCXBpcGVfY29uZmlnLT5waXBlX2Jw cCA9IGJwcDsKPiA+ICsJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBsaW5rX2Nsb2NrOwo+ ID4gKwkJCQlpZiAobW9kZV9yYXRlIDw9IGxpbmtfYXZhaWwpCj4gPiAgCQkJCQlyZXR1cm4gdHJ1 ZTsKPiAKPiBXaHkgZG8gd2UgbmVlZCB0byBhc3NpZ24gdGhlc2UgaWYgd2UgZG9uJ3QgYWNjZXB0 IHRoZSBjb25maWd1cmF0aW9uPwoKV2UgbmVlZCB0byBhc3NpZ24gdGhlbSBiZWNhdXNlIGluIGNh c2Ugb2YgZmFpbHVyZSwgd2UgdXNlIHRoZW0gdG8gdGhlbiBjb25maWd1cmUgRFNDIHBhcmFtZXRl cnMKaW4gaW50ZWxfZHBfZHNjX2NvbXB1dGVfY29uZmlnKCkuClByZXZpb3VzbHkgd2Ugd2VyZSBq dXN0IHJldHVybmluZyBhIGZhaWx1cmUgaWYgdGhpcyBmYWlsZWQgYW5kIHNvIHdlIG5lZWQgbm90 IHNzaWduIHRoZW0uIEJ1dCBub3cKaW4gY2FzZSB0aGlzIGZhaWxzLCB3ZSB0cnkgdGhlIERTQyBj b21wdXRlIGNvbmZpZy4KCj4gCj4gPiAtCQkJCX0KPiA+ICAJCQl9Cj4gPiAgCQl9Cj4gPiAgCX0K PiA+IEBAIC0yMDIwLDE0ICsyMDI5LDExIEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWdf ZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCQlsaW5rX2Nsb2NrID0gaW50 ZWxfZHAtPmNvbW1vbl9yYXRlc1tjbG9ja107Cj4gPiAgCQkJCWxpbmtfYXZhaWwgPSBpbnRlbF9k cF9tYXhfZGF0YV9yYXRlKGxpbmtfY2xvY2ssCj4gPiAgCQkJCQkJCQkgICAgbGFuZV9jb3VudCk7 Cj4gPiAtCj4gPiAtCQkJCWlmIChtb2RlX3JhdGUgPD0gbGlua19hdmFpbCkgewo+ID4gLQkJCQkJ cGlwZV9jb25maWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ID4gLQkJCQkJcGlwZV9jb25m aWctPnBpcGVfYnBwID0gYnBwOwo+ID4gLQkJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBs aW5rX2Nsb2NrOwo+ID4gLQo+ID4gKwkJCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IGxhbmVf Y291bnQ7Cj4gPiArCQkJCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcDsKPiA+ICsJCQkJcGlw ZV9jb25maWctPnBvcnRfY2xvY2sgPSBsaW5rX2Nsb2NrOwo+ID4gKwkJCQlpZiAobW9kZV9yYXRl IDw9IGxpbmtfYXZhaWwpCj4gPiAgCQkJCQlyZXR1cm4gdHJ1ZTsKPiA+IC0JCQkJfQo+ID4gIAkJ CX0KPiA+ICAJCX0KPiA+ICAJfQo+ID4gQEAgLTIwMzUsMTQgKzIwNDEsODggQEAgaW50ZWxfZHBf Y29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAg CXJldHVybiBmYWxzZTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGJvb2wgaW50ZWxfZHBfZHNj X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiArCQkJCQlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiArCQkJCQlzdHJ1Y3QgbGlua19j b25maWdfbGltaXRzICpsaW1pdHMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRl dik7Cj4gPiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVf Y29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gPiArCWVudW0gcGlwZSBwaXBlID0gdG9faW50 ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKS0+cGlwZTsKPiA+ICsJdTE2IGRzY19tYXhf b3V0cHV0X2JwcCA9IDA7Cj4gPiArCXU4IGRzY19kcF9zbGljZV9jb3VudCA9IDA7Cj4gPiArCj4g PiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTAgfHwKPiA+ICsJICAgICFkcm1fZHBfc2lu a19zdXBwb3J0c19kc2MoaW50ZWxfZHAtPmRzY19kcGNkKSkKPiA+ICsJCXJldHVybiBmYWxzZTsK PiA+ICsKPiA+ICsJLyogRFAgRFNDIG9ubHkgc3VwcG9ydGVkIG9uIFBpcGUgQiBhbmQgQyAqLwo+ ID4gKwlpZiAocGlwZSA9PSBQSVBFX0EgJiYgIWludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4g PiArCQlyZXR1cm4gZmFsc2U7Cj4gCj4gRG8gd2UgbWVhbiAndHJhbnNjb2RlciA9PSBFRFAgfHwg dHJhbnNjb2RlciA9PSBCIHx8IHRyYW5zY29kZXIgPT0gQycgPwo+IE9yIG1heWJlICd0cmFuc2Nv ZGVyICE9IEEnIGZvciBzaG9ydC4gSSBndWVzcyB0aGlzIHdpbGwgbmVlZCB0byBhZGp1c3RlZAo+ IGZvciB0aGUgbmV4dCBwbGF0Zm9ybSBhbnl3YXkgc28gbWFraW5nIHRoZSBhc3N1bXB0aW9uIHRo YXQgdHJhbnNjb2RlciBBCj4gaXMgdGhlIG9ubHkgb25lIHRoYXQgY2FuJ3QgZG8gRFNDIGlzIGZp bmUuCgpZZXMgdGhlIG1vZGUgSSBhbSB0cnlpbmcgdG8gcmVqZWN0IGlzIGluIGNhc2Ugb2YgYSBO VUMsIHdoZXJlIHRoZXJlIGlzIG5vIGVkcCwgdGhlIGZpcnN0CkRQIGNvbm5lY3Rpb24gd2lsbCB1 c2UgUGlwZSBBIGFuZCB0cmFuc2NvZGVyIEEgd2hpY2ggZG9lcyBub3Qgc3VwcG9ydCBEU0MuIFNv IHJlamVjdCBpdC4KU28geWVhIEkgZ3Vlc3MgSSBjb3VsZCBqdXN0IGNoZWNrIGZvciB0cmFuc2Nv ZGVyID09IEEgLCB0aGVuIHJlamVjdC4KCj4gCj4gVGhpcyB3aG9sZSB0aGluZyBzZWVtcyBsaWtl IGEgZ29vZCBoZWxwZXIgZnVuY3Rpb24uCj4gaW50ZWxfZHBfc291cmNlX3N1cHBvcnRzX2RzYygp IG9yIHNvbWV0aGluZyBsaWtlIHRoYXQuIEFuZCB0aGVuIHdlCj4gY291bGQgaGF2ZSBpbnRlbF9k cF9zdXBwb3J0c19kc2MoKSB3aGljaCBqdXN0IGNhbGxzIHRoYXQgKwo+IGRybV9kcF9zaW5rX3N1 cHBvcnRzX2RzYygpLgo+IAo+IGludGVsX2RwX2NvbXB1dGVfYnBwKCkgc2hvdWxkIHVzZSB0aGlz IGF0IGxlYXN0LCBhbmQgcHJvYmFibHkgYSBmZXcKPiBvdGhlciBwbGFjZXMgYXMgd2VsbC4KPiAK PiA+ICsKPiA+ICsJLyogRFNDIG5vdCBzdXBwb3J0ZWQgZm9yIERTQyBzaW5rIEJQQyA8IDggKi8K PiA+ICsJaWYgKGxpbWl0cy0+bWF4X2JwcCA8IDMgKiBEUF9EU0NfTUlOX1NVUFBPUlRFRF9CUEMp IHsKPiA+ICsJCURSTV9ERUJVR19LTVMoIk5vIERTQyBzdXBwb3J0IGZvciBsZXNzIHRoYW4gOGJw Y1xuIik7Cj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKGludGVs X2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKPiA+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNv bXByZXNzZWRfYnBwID0KPiA+ICsJCQlkcm1fZWRwX2RzY19zaW5rX291dHB1dF9icHAoaW50ZWxf ZHAtPmRzY19kcGNkKSA+PiA0Owo+ID4gKwkJcGlwZV9jb25maWctPmRzY19wYXJhbXMuc2xpY2Vf Y291bnQgPQo+ID4gKwkJCWRybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQoaW50ZWxfZHAt PmRzY19kcGNkLAo+ID4gKwkJCQkJCQl0cnVlKTsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCWRzY19t YXhfb3V0cHV0X2JwcCA9Cj4gPiArCQkJaW50ZWxfZHBfZHNjX2dldF9vdXRwdXRfYnBwKHBpcGVf Y29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gKwkJCQkJCSAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3Vu dCwKPiA+ICsJCQkJCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiA+ICsJCQkJCQkg ICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7Cj4gPiArCQlkc2NfZHBfc2xpY2VfY291 bnQgPQo+ID4gKwkJCWludGVsX2RwX2RzY19nZXRfc2xpY2VfY291bnQoaW50ZWxfZHAsCj4gPiAr CQkJCQkJICAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gKwkJCQkJCSAgICAgYWRq dXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheSk7Cj4gPiArCQlpZiAoIShkc2NfbWF4X291dHB1dF9i cHAgJiYgZHNjX2RwX3NsaWNlX2NvdW50KSkgewo+ID4gKwkJCURSTV9ERUJVR19LTVMoIkNvbXBy ZXNzZWQgQlBQL1NsaWNlIENvdW50IG5vdCBzdXBwb3J0ZWRcbiIpOwo+ID4gKwkJCXJldHVybiBm YWxzZTsKPiA+ICsJCX0KPiA+ICsJCXBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRf YnBwID0gZHNjX21heF9vdXRwdXRfYnBwID4+IDQ7Cj4gPiArCQlwaXBlX2NvbmZpZy0+ZHNjX3Bh cmFtcy5zbGljZV9jb3VudCA9IGRzY19kcF9zbGljZV9jb3VudDsKPiA+ICsJfQo+ID4gKwkvKgo+ ID4gKwkgKiBWRFNDIGVuZ2luZSBvcGVyYXRlcyBhdCAxIFBpeGVsIHBlciBjbG9jaywgc28gaWYg cGVhayBwaXhlbCByYXRlCj4gPiArCSAqIGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWF4aW11bSBDZGNs b2NrIGFuZCBpZiBzbGljZSBjb3VudCBpcyBldmVuCj4gPiArCSAqIHRoZW4gd2UgbmVlZCB0byB1 c2UgMiBWRFNDIGluc3RhbmNlcy4KPiA+ICsJICovCj4gPiArCXBpcGVfY29uZmlnLT5kc2NfcGFy YW1zLmRzY19zcGxpdCA9IGZhbHNlOwo+ID4gKwlpZiAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j ayA+IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSkgewo+ID4gKwkJaWYgKHBpcGVfY29uZmlnLT5k c2NfcGFyYW1zLnNsaWNlX2NvdW50ID4gMSkgewo+ID4gKwkJCXBpcGVfY29uZmlnLT5kc2NfcGFy YW1zLmRzY19zcGxpdCA9IHRydWU7Cj4gPiArCQl9IGVsc2Ugewo+ID4gKwkJCURSTV9ERUJVR19L TVMoIkNhbm5vdCBzcGxpdCBzdHJlYW0gdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXNcbiIpOwo+ID4g KwkJCXJldHVybiBmYWxzZTsKPiA+ICsJCX0KPiA+ICsJfQo+ID4gKwlwaXBlX2NvbmZpZy0+ZHNj X3BhcmFtcy5jb21wcmVzc2lvbl9lbmFibGUgPSB0cnVlOwo+ID4gKwlEUk1fREVCVUdfS01TKCJE UCBEU0MgY29tcHV0ZWQgd2l0aCBJbnB1dCBCcHAgPSAlZCAiCj4gPiArCQkgICAgICAiQ29tcHJl c3NlZCBCcHAgPSAlZCBTbGljZSBDb3VudCA9ICVkXG4iLAo+ID4gKwkJICAgICAgcGlwZV9jb25m aWctPnBpcGVfYnBwLAo+ID4gKwkJICAgICAgcGlwZV9jb25maWctPmRzY19wYXJhbXMuY29tcHJl c3NlZF9icHAsCj4gPiArCQkgICAgICBwaXBlX2NvbmZpZy0+ZHNjX3BhcmFtcy5zbGljZV9jb3Vu dCk7Cj4gPiArCj4gPiArCXJldHVybiB0cnVlOwo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgYm9v bAo+ID4gIGludGVsX2RwX2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gPiAgCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpCj4gPiAgewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFk anVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ICAJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7 Cj4gPiAgCXN0cnVjdCBsaW5rX2NvbmZpZ19saW1pdHMgbGltaXRzOwo+ID4gIAlpbnQgY29tbW9u X2xlbjsKPiA+ICsJYm9vbCByZXQgPSBmYWxzZTsKPiA+ICAKPiA+ICAJY29tbW9uX2xlbiA9IGlu dGVsX2RwX2NvbW1vbl9sZW5fcmF0ZV9saW1pdChpbnRlbF9kcCwKPiA+ICAJCQkJCQkgICAgaW50 ZWxfZHAtPm1heF9saW5rX3JhdGUpOwo+ID4gQEAgLTIwNTYsNyArMjEzNiw5IEBAIGludGVsX2Rw X2NvbXB1dGVfbGlua19jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAg CWxpbWl0cy5taW5fbGFuZV9jb3VudCA9IDE7Cj4gPiAgCWxpbWl0cy5tYXhfbGFuZV9jb3VudCA9 IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiA+ICAKPiA+IC0JbGltaXRzLm1p bl9icHAgPSA2ICogMzsKPiA+ICsJbGltaXRzLm1pbl9icHAgPSAoSU5URUxfR0VOKGRldl9wcml2 KSA+PSAxMCAmJgo+ID4gKwkJCSAgZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5k c2NfZHBjZCkpID8KPiA+ICsJCURQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyAqIDMgOiA2ICogMzsK PiA+ICAJbGltaXRzLm1heF9icHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcChpbnRlbF9kcCwgcGlw ZV9jb25maWcpOwo+IAo+IEhtbS4gVGhpcyBub3cgYXNzdW1lcyB0aGF0IHdlIHdpbGwgaW4gZmFj dCB1c2UgRFNDLiBJIGd1ZXNzIHdlIGNhbiBvbmx5Cj4gbWFrZSB0aGF0IGFzc3VtcHRpb24gd2hl biB3ZSd2ZSBkZXRlcm1pbmVkIHRoYXQgRFNDIGlzIHN1cHBvcnRlZCBhbmQgdGhlCj4gbWF4X2Jw cCBhbHNvIGFsbG93cyBEU0MuCgpCdXQgdGhlIGludGVsX2RwX2NvbXB1dGVfYnBwIGRvZXMgY2hl Y2sgZm9yIHN1cHBvcnRzX2RzYyBzbyB0aGF0CnNob3VsZCBiZSBmaW5lLiBCdXQgZm9yIG1pbl9i cHAgeWVzIEkgY291bGQgdXNlIHRoZSBiZWxvdyBsb2dpYy4KQW5kIG1heSBiZSBtb3ZlIHRoYXQg dG8gYSBoZWxwZXI/CgpNYW5hc2kKCgo+IAo+IFNvIHNvbWV0aGluZyBsaWtlOgo+IAo+IG1heF9i cHAgPSBpbnRlbF9kcF9jb21wdXRlX2JwcCgpOwo+IGlmIChzdXBwb3J0c19kc2MoKSAmJiBtYXhf YnBwID49IERQX0RTQ19NSU5fU1VQUE9SVEVEX0JQQyozKQo+IAltaW5fYnBwID0gRFBfRFNDX01J Tl9TVVBQT1JURURfQlBDICogMzsKPiBlbHNlCj4gCW1pbl9icHAgPSA2ICogMwo+IAo+ID4gIAo+ ID4gIAlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSAmJiBpbnRlbF9kcC0+ZWRwX2RwY2Rb MF0gPCBEUF9FRFBfMTQpIHsKPiA+IEBAIC0yMDgxLDcgKzIxNjMsNyBAQCBpbnRlbF9kcF9jb21w dXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAkJICAg ICAgaW50ZWxfZHAtPmNvbW1vbl9yYXRlc1tsaW1pdHMubWF4X2Nsb2NrXSwKPiA+ICAJCSAgICAg IGxpbWl0cy5tYXhfYnBwLCBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsKPiA+ICAKPiA+IC0J aWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpIHsKPiA+ICsJaWYgKGludGVsX2RwX2lzX2Vk cChpbnRlbF9kcCkpCj4gPiAgCQkvKgo+ID4gIAkJICogT3B0aW1pemUgZm9yIGZhc3QgYW5kIG5h cnJvdy4gZURQIDEuMyBzZWN0aW9uIDMuMyBhbmQgZURQIDEuNAo+ID4gIAkJICogc2VjdGlvbiBB LjE6ICJJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHRoZSBtaW5pbXVtIG51bWJlciBvZgo+ID4gQEAg LTIwOTEsMjYgKzIxNzMsNDggQEAgaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCSAqIE5vdGUgdGhhdCB3ZSB1c2UgdGhlIG1h eCBjbG9jayBhbmQgbGFuZSBjb3VudCBmb3IgZURQIDEuMyBhbmQKPiA+ICAJCSAqIGVhcmxpZXIs IGFuZCBmYXN0IHZzLiB3aWRlIGlzIGlycmVsZXZhbnQuCj4gPiAgCQkgKi8KPiA+IC0JCWlmICgh aW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KGludGVsX2RwLCBwaXBlX2NvbmZpZywK PiA+IC0JCQkJCQkgICAgICAgJmxpbWl0cykpCj4gPiAtCQkJcmV0dXJuIGZhbHNlOwo+ID4gLQl9 IGVsc2Ugewo+ID4gKwkJcmV0ID0gaW50ZWxfZHBfY29tcHV0ZV9saW5rX2NvbmZpZ19mYXN0KGlu dGVsX2RwLCBwaXBlX2NvbmZpZywKPiA+ICsJCQkJCQkJJmxpbWl0cyk7Cj4gPiArCWVsc2UKPiA+ ICAJCS8qIE9wdGltaXplIGZvciBzbG93IGFuZCB3aWRlLiAqLwo+ID4gLQkJaWYgKCFpbnRlbF9k cF9jb21wdXRlX2xpbmtfY29uZmlnX3dpZGUoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ID4gLQkJ CQkJCSAgICAgICAmbGltaXRzKSkKPiA+ICsJCXJldCA9IGludGVsX2RwX2NvbXB1dGVfbGlua19j b25maWdfd2lkZShpbnRlbF9kcCwgcGlwZV9jb25maWcsCj4gPiArCQkJCQkJCSZsaW1pdHMpOwo+ ID4gKwo+ID4gKwkvKiBlbmFibGUgY29tcHJlc3Npb24gaWYgdGhlIG1vZGUgZG9lc24ndCBmaXQg YXZhaWxhYmxlIEJXICovCj4gPiArCWlmICghcmV0KSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJE UCByZXF1aXJlZCBMaW5rIHJhdGUgJWkgZG9lcyBub3QgZml0IGF2YWlsYWJsZSAlaVxuIiwKPiA+ ICsJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNfY2xv Y2ssCj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ID4gKwkJCSAgICAg IGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiArCQkJ CQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4gKwo+ID4gKwkJaWYgKCFpbnRl bF9kcF9kc2NfY29tcHV0ZV9jb25maWcoaW50ZWxfZHAsIHBpcGVfY29uZmlnLAo+ID4gKwkJCQkJ CSAmbGltaXRzKSkKPiA+ICAJCQlyZXR1cm4gZmFsc2U7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JRFJN X0RFQlVHX0tNUygiRFAgbGFuZSBjb3VudCAlZCBjbG9jayAlZCBicHAgJWRcbiIsCj4gPiAtCQkg ICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4g PiAtCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ID4gKwlpZiAocGlwZV9jb25maWct PmRzY19wYXJhbXMuY29tcHJlc3Npb25fZW5hYmxlKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJE UCBsYW5lIGNvdW50ICVkIGNsb2NrICVkIElucHV0IGJwcCAlZCBDb21wcmVzc2VkIGJwcCAlZFxu IiwKPiA+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCwgcGlwZV9jb25maWctPnBv cnRfY2xvY2ssCj4gPiArCQkJICAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gKwkJCSAg ICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKTsKPiA+ICAKPiA+IC0J RFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwK PiA+IC0JCSAgICAgIGludGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jaywKPiA+IC0JCQkJCSAgICAgcGlwZV9jb25maWctPnBpcGVfYnBwKSwKPiA+IC0JCSAgICAg IGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiAtCQkJ CQkgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50KSk7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJE UCBsaW5rIHJhdGUgcmVxdWlyZWQgJWkgYXZhaWxhYmxlICVpXG4iLAo+ID4gKwkJCSAgICAgIGlu dGVsX2RwX2xpbmtfcmVxdWlyZWQoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKPiA+ICsJCQkJ CQkgICAgIHBpcGVfY29uZmlnLT5kc2NfcGFyYW1zLmNvbXByZXNzZWRfYnBwKSwKPiA+ICsJCQkg ICAgICBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4g KwkJCQkJCSAgICAgcGlwZV9jb25maWctPmxhbmVfY291bnQpKTsKPiA+ICsJfSBlbHNlIHsKPiA+ ICsJCURSTV9ERUJVR19LTVMoIkRQIGxhbmUgY291bnQgJWQgY2xvY2sgJWQgYnBwICVkXG4iLAo+ ID4gKwkJCSAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2NvdW50LCBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jaywKPiA+ICsJCQkgICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApOwo+ID4gIAo+ID4gKwkJ RFJNX0RFQlVHX0tNUygiRFAgbGluayByYXRlIHJlcXVpcmVkICVpIGF2YWlsYWJsZSAlaVxuIiwK PiA+ICsJCQkgICAgICBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGFkanVzdGVkX21vZGUtPmNydGNf Y2xvY2ssCj4gPiArCQkJCQkJICAgICBwaXBlX2NvbmZpZy0+cGlwZV9icHApLAo+ID4gKwkJCSAg ICAgIGludGVsX2RwX21heF9kYXRhX3JhdGUocGlwZV9jb25maWctPnBvcnRfY2xvY2ssCj4gPiAr CQkJCQkJICAgICBwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCkpOwo+ID4gKwl9Cj4gPiAgCXJldHVy biB0cnVlOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0yMTk0LDcgKzIyOTgsOSBAQCBpbnRlbF9kcF9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQlpbnRl bF9jb25uX3N0YXRlLT5icm9hZGNhc3RfcmdiID09IElOVEVMX0JST0FEQ0FTVF9SR0JfTElNSVRF RDsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpbnRlbF9saW5rX2NvbXB1dGVfbV9uKHBpcGVfY29uZmln LT5waXBlX2JwcCwgcGlwZV9jb25maWctPmxhbmVfY291bnQsCj4gPiArCWludGVsX2xpbmtfY29t cHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLAo+ID4gKwkJCSAgICAgICBwaXBlX2NvbmZp Zy0+ZHNjX3BhcmFtcy5jb21wcmVzc2VkX2JwcCwKPiA+ICsJCQkgICAgICAgcGlwZV9jb25maWct PmxhbmVfY291bnQsCj4gPiAgCQkJICAgICAgIGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCj4g PiAgCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4gIAkJCSAgICAgICAmcGlw ZV9jb25maWctPmRwX21fbiwKPiA+IEBAIC0yMjAzLDcgKzIzMDksNyBAQCBpbnRlbF9kcF9jb21w dXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJaWYgKGludGVs X2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21vZGUgIT0gTlVMTCAmJgo+ID4gIAkJZGV2X3By aXYtPmRycnMudHlwZSA9PSBTRUFNTEVTU19EUlJTX1NVUFBPUlQpIHsKPiA+ICAJCQlwaXBlX2Nv bmZpZy0+aGFzX2RycnMgPSB0cnVlOwo+ID4gLQkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlw ZV9jb25maWctPnBpcGVfYnBwLAo+ID4gKwkJCWludGVsX2xpbmtfY29tcHV0ZV9tX24ocGlwZV9j b25maWctPnBpcGVfYnBwLCAwLAo+ID4gIAkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5sYW5lX2Nv dW50LAo+ID4gIAkJCQkJICAgICAgIGludGVsX2Nvbm5lY3Rvci0+cGFuZWwuZG93bmNsb2NrX21v ZGUtPmNsb2NrLAo+ID4gIAkJCQkJICAgICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLAo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+IGluZGV4IDhiNzFkNjRlYmQ5ZC4uZTAy Y2FlZGQ0NDNjIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBf bXN0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiBA QCAtOTAsNyArOTAsNyBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kcF9tc3RfY29tcHV0ZV9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICAKPiA+ IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihicHAsIGxhbmVfY291bnQsCj4gPiArCWludGVsX2xp bmtfY29tcHV0ZV9tX24oYnBwLCAwLCBsYW5lX2NvdW50LAo+ID4gIAkJCSAgICAgICBhZGp1c3Rl ZF9tb2RlLT5jcnRjX2Nsb2NrLAo+ID4gIAkJCSAgICAgICBwaXBlX2NvbmZpZy0+cG9ydF9jbG9j aywKPiA+ICAJCQkgICAgICAgJnBpcGVfY29uZmlnLT5kcF9tX24sCj4gPiAtLSAKPiA+IDIuMTgu MAo+IAo+IC0tIAo+IFZpbGxlIFN5cmrDpGzDpAo+IEludGVsCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=