From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v6 13/28] drm/i915/dp: Compute DSC pipe config in atomic check Date: Tue, 30 Oct 2018 13:46:55 +0200 Message-ID: <20181030114655.GT9144@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-14-manasi.d.navare@intel.com> <20181029203039.GO9144@intel.com> <20181029203458.GP9144@intel.com> <20181029230843.GE27040@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: <20181029230843.GE27040@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Manasi Navare Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMjksIDIwMTggYXQgMDQ6MDg6NDNQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBNb24sIE9jdCAyOSwgMjAxOCBhdCAxMDozNDo1OFBNICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBNb24sIE9jdCAyOSwgMjAxOCBhdCAxMDozMDozOVBNICsw MjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+IE9uIFdlZCwgT2N0IDI0LCAyMDE4IGF0 IDAzOjI4OjI1UE0gLTA3MDAsIE1hbmFzaSBOYXZhcmUgd3JvdGU6Cj4gPiA+ID4gRFNDIHBhcmFt cyBsaWtlIHRoZSBlbmFibGUsIGNvbXByZXNzZWQgYnBwLCBzbGljZSBjb3VudCBhbmQKPiA+ID4g PiBkc2Nfc3BsaXQgYXJlIGFkZGVkIHRvIHRoZSBpbnRlbF9jcnRjX3N0YXRlLiBUaGVzZSBwYXJh bWV0ZXJzCj4gPiA+ID4gYXJlIHNldCBiYXNlZCBvbiB0aGUgcmVxdWVzdGVkIG1vZGUgYW5kIGF2 YWlsYWJsZSBsaW5rIHBhcmFtZXRlcnMKPiA+ID4gPiBkdXJpbmcgdGhlIHBpcGUgY29uZmlndXJh dGlvbiBpbiBhdG9taWMgY2hlY2sgcGhhc2UuCj4gPiA+ID4gVGhlc2UgdmFsdWVzIGFyZSB0aGVu IGxhdGVyIHVzZWQgdG8gcG9wdWxhdGUgdGhlIHJlbWFpbmluZyBEU0MKPiA+ID4gPiBhbmQgUkMg cGFyYW1ldGVycyBiZWZvcmUgZW5iYWxpbmcgRFNDIGluIGF0b21pYyBjb21taXQuCj4gPiA+ID4g Cj4gPiA+ID4gdjk6Cj4gPiA+ID4gKiBSZWJhc2Ugb24gdG9wIG9mIGRybS10aXAgdGhhdCBub3cg dXNlcyBmYXN0X25hcnJvdyBjb25maWcKPiA+ID4gPiBmb3IgZWRwIChNYW5hc2kpCj4gPiA+ID4g djg6Cj4gPiA+ID4gKiBDaGVjayBmb3IgRFNDIGJwYyBub3QgMCAobWFuYXNpKQo+ID4gPiA+IAo+ ID4gPiA+IHY3Ogo+ID4gPiA+ICogRml4IGluZGVudGF0aW9uIGluIGNvbXB1dGVfbV9uIChNYW5h c2kpCj4gPiA+ID4gCj4gPiA+ID4gdjYgKEZyb20gR2F1cmF2KToKPiA+ID4gPiAqIFJlbW92ZSBm dW5jdGlvbiBjYWxsIG9mIGludGVsX2RwX2NvbXB1dGVfZHNjX3BhcmFtcygpIGFuZAo+ID4gPiA+ IGludm9rZSBpbnRlbF9kcF9jb21wdXRlX2RzY19wYXJhbXMoKSBpbiB0aGUgcGF0Y2ggd2hlcmUK PiA+ID4gPiBpdCBpcyBkZWZpbmVkIHRvIGZpeCBjb21waWxhdGlvbiB3YXJuaW5nIChHYXVyYXYp Cj4gPiA+ID4gCj4gPiA+ID4gdjU6Cj4gPiA+ID4gQWRkIGRybV9kc2NfY2ZnIGluIGludGVsX2Ny dGNfc3RhdGUgKE1hbmFzaSkKPiA+ID4gPiAKPiA+ID4gPiB2NDoKPiA+ID4gPiAqIFJlYmFzZSBv biByZWZhY3RvcmluZyBvZiBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyBvbiB0aXAgKE1hbmFzaSkK PiA+ID4gPiAqIEFkZCBhIGNvbW1lbnQgd2h5IHdlIG5lZWQgdG8gY2hlY2sgUFNSIHdoaWxlIGVu YWJsaW5nIERTQyAoR2F1cmF2KQo+ID4gPiA+IAo+ID4gPiA+IHYzOgo+ID4gPiA+ICogQ2hlY2sg UFBSID4gbWF4X2NkY2xvY2sgdG8gdXNlIDIgVkRTQyBpbnN0YW5jZXMgKFZpbGxlKQo+ID4gPiA+ IAo+ID4gPiA+IHYyOgo+ID4gPiA+ICogQWRkIGlmLWVsc2UgZm9yIGVEUC9EUCAoR2F1cmF2KQo+ ID4gPiA+IAo+ID4gPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwu Y29tPgo+ID4gPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4KPiA+ID4gPiBDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwu Y29tPgo+ID4gPiA+IENjOiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29t Pgo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBp bnRlbC5jb20+Cj4gPiA+ID4gUmV2aWV3ZWQtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNy aXZhdHNhQGludGVsLmNvbT4KPiA+ID4gPiBBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDIwICsrKy0KPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5oIHwgICAzICstCj4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwLmMgICAgICB8IDE3MCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiA+ ID4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgIHwgICAyICstCj4gPiA+ ID4gIDQgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQo+ ID4gPiA+IAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiBp bmRleCBmZTA0NWFiYjY0NzIuLjE4NzM3YmQ4MmI2OCAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ID4gPiBAQCAtNjQzNCw3ICs2NDM0LDcgQEAg c3RhdGljIGludCBpcm9ubGFrZV9mZGlfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMsCj4gPiA+ID4gIAo+ID4gPiA+ICAJcGlwZV9jb25maWctPmZkaV9sYW5lcyA9 IGxhbmU7Cj4gPiA+ID4gIAo+ID4gPiA+IC0JaW50ZWxfbGlua19jb21wdXRlX21fbihwaXBlX2Nv bmZpZy0+cGlwZV9icHAsIGxhbmUsIGZkaV9kb3RjbG9jaywKPiA+ID4gPiArCWludGVsX2xpbmtf Y29tcHV0ZV9tX24ocGlwZV9jb25maWctPnBpcGVfYnBwLCAwLCBsYW5lLCBmZGlfZG90Y2xvY2ss Cj4gPiA+ID4gIAkJCSAgICAgICBsaW5rX2J3LCAmcGlwZV9jb25maWctPmZkaV9tX24sIGZhbHNl KTsKPiA+ID4gPiAgCj4gPiA+ID4gIAlyZXQgPSBpcm9ubGFrZV9jaGVja19mZGlfbGFuZXMoZGV2 LCBpbnRlbF9jcnRjLT5waXBlLCBwaXBlX2NvbmZpZyk7Cj4gPiA+ID4gQEAgLTY2NzEsMTcgKzY2 NzEsMjUgQEAgc3RhdGljIHZvaWQgY29tcHV0ZV9tX24odW5zaWduZWQgaW50IG0sIHVuc2lnbmVk IGludCBuLAo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICB2b2lkCj4gPiA+ID4gLWludGVs X2xpbmtfY29tcHV0ZV9tX24oaW50IGJpdHNfcGVyX3BpeGVsLCBpbnQgbmxhbmVzLAo+ID4gPiA+ ICtpbnRlbF9saW5rX2NvbXB1dGVfbV9uKGludCBiaXRzX3Blcl9waXhlbCwgdWludDE2X3QgY29t cHJlc3NlZF9icHAsCj4gPiA+ID4gKwkJICAgICAgIGludCBubGFuZXMsCj4gPiA+ID4gIAkJICAg ICAgIGludCBwaXhlbF9jbG9jaywgaW50IGxpbmtfY2xvY2ssCj4gPiA+ID4gIAkJICAgICAgIHN0 cnVjdCBpbnRlbF9saW5rX21fbiAqbV9uLAo+ID4gPiA+ICAJCSAgICAgICBib29sIGNvbnN0YW50 X24pCj4gPiA+ID4gIHsKPiA+ID4gPiAgCW1fbi0+dHUgPSA2NDsKPiA+ID4gPiAgCj4gPiA+ID4g LQljb21wdXRlX21fbihiaXRzX3Blcl9waXhlbCAqIHBpeGVsX2Nsb2NrLAo+ID4gPiA+IC0JCSAg ICBsaW5rX2Nsb2NrICogbmxhbmVzICogOCwKPiA+ID4gPiAtCQkgICAgJm1fbi0+Z21jaF9tLCAm bV9uLT5nbWNoX24sCj4gPiA+ID4gLQkJICAgIGNvbnN0YW50X24pOwo+ID4gPiA+ICsJLyogRm9y IERTQywgRGF0YSBNL04gY2FsY3VsYXRpb24gdXNlcyBjb21wcmVzc2VkIEJQUCAqLwo+ID4gPiA+ ICsJaWYgKGNvbXByZXNzZWRfYnBwKQo+ID4gPiA+ICsJCWNvbXB1dGVfbV9uKGNvbXByZXNzZWRf YnBwICogcGl4ZWxfY2xvY2ssCj4gPiA+ID4gKwkJCSAgICBsaW5rX2Nsb2NrICogbmxhbmVzICog OCwKPiA+ID4gPiArCQkJICAgICZtX24tPmdtY2hfbSwgJm1fbi0+Z21jaF9uLAo+ID4gPiA+ICsJ CQkgICAgY29uc3RhbnRfbik7Cj4gPiA+ID4gKwllbHNlCj4gPiA+ID4gKwkJY29tcHV0ZV9tX24o Yml0c19wZXJfcGl4ZWwgKiBwaXhlbF9jbG9jaywKPiA+ID4gPiArCQkJICAgIGxpbmtfY2xvY2sg KiBubGFuZXMgKiA4LAo+ID4gPiA+ICsJCQkgICAgJm1fbi0+Z21jaF9tLCAmbV9uLT5nbWNoX24s Cj4gPiA+ID4gKwkJCSAgICBjb25zdGFudF9uKTsKPiA+ID4gPiAgCj4gPiA+ID4gIAljb21wdXRl X21fbihwaXhlbF9jbG9jaywgbGlua19jbG9jaywKPiA+ID4gPiAgCQkgICAgJm1fbi0+bGlua19t LCAmbV9uLT5saW5rX24sCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ ID4gPiA+IGluZGV4IDVkNTBkZWNiY2JiNS4uYjBiMjNlMWU5MzkyIDEwMDY0NAo+ID4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuaAo+ID4gPiA+IEBAIC00MDcsNyArNDA3 LDggQEAgc3RydWN0IGludGVsX2xpbmtfbV9uIHsKPiA+ID4gPiAgCSAgICAgKF9faSkrKykgXAo+ ID4gPiA+ICAJCWZvcl9lYWNoX2lmKHBsYW5lKQo+ID4gPiA+ICAKPiA+ID4gPiAtdm9pZCBpbnRl bF9saW5rX2NvbXB1dGVfbV9uKGludCBicHAsIGludCBubGFuZXMsCj4gPiA+ID4gK3ZvaWQgaW50 ZWxfbGlua19jb21wdXRlX21fbihpbnQgYnBwLCB1aW50MTZfdCBjb21wcmVzc2VkX2JwcCwKPiA+ ID4gPiArCQkJICAgIGludCBubGFuZXMsCj4gPiA+ID4gIAkJCSAgICBpbnQgcGl4ZWxfY2xvY2ss IGludCBsaW5rX2Nsb2NrLAo+ID4gPiA+ICAJCQkgICAgc3RydWN0IGludGVsX2xpbmtfbV9uICpt X24sCj4gPiA+ID4gIAkJCSAgICBib29sIGNvbnN0YW50X24pOwo+ID4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+ID4gPiA+IGluZGV4IDZmNjZhMzhiYTBiMi4uYTg4ZjkzNzFkZDMyIDEwMDY0 NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ID4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ID4gQEAgLTQ3LDYgKzQ3 LDggQEAKPiA+ID4gPiAgCj4gPiA+ID4gIC8qIERQIERTQyBzbWFsbCBqb2luZXIgaGFzIDIgRklG T3MgZWFjaCBvZiA2NDAgeCA2IGJ5dGVzICovCj4gPiA+ID4gICNkZWZpbmUgRFBfRFNDX01BWF9T TUFMTF9KT0lORVJfUkFNX0JVRkZFUgk2MTQ0MAo+ID4gPiA+ICsjZGVmaW5lIERQX0RTQ19NSU5f U1VQUE9SVEVEX0JQQwkJOAo+ID4gPiA+ICsjZGVmaW5lIERQX0RTQ19NQVhfU1VQUE9SVEVEX0JQ QwkJMTAKPiA+ID4gPiAgCj4gPiA+ID4gIC8qIERQIERTQyB0aHJvdWdocHV0IHZhbHVlcyB1c2Vk IGZvciBzbGljZSBjb3VudCBjYWxjdWxhdGlvbnMgS1BpeGVscy9zICovCj4gPiA+ID4gICNkZWZp bmUgRFBfRFNDX1BFQUtfUElYRUxfUkFURQkJCTI3MjAwMDAKPiA+ID4gPiBAQCAtMTkyNCw2ICsx OTI2LDE2IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKPiA+ID4gPiAgCQl9Cj4gPiA+ID4gIAl9Cj4gPiA+ID4gIAo+ID4gPiA+ICsJ LyogSWYgRFNDIGlzIHN1cHBvcnRlZCwgdXNlIHRoZSBtYXggdmFsdWUgcmVwb3J0ZWQgYnkgcGFu ZWwgKi8KPiA+ID4gPiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEwICYmCj4gPiA+ID4g KwkgICAgZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKGludGVsX2RwLT5kc2NfZHBjZCkpIHsKPiA+ ID4gPiArCQlicGMgPSBtaW5fdCh1OCwKPiA+ID4gPiArCQkJICAgIGRybV9kcF9kc2Nfc2lua19t YXhfY29sb3JfZGVwdGgoaW50ZWxfZHAtPmRzY19kcGNkKSwKPiA+ID4gPiArCQkJICAgIERQX0RT Q19NQVhfU1VQUE9SVEVEX0JQQyk7Cj4gPiA+ID4gKwkJaWYgKGJwYykKPiA+ID4gPiArCQkJYnBw ID0gMyAqIGJwYzsKPiA+ID4gCj4gPiA+IFRoaXMgc2VlbXMgbGlrZSBpdCBzaG91bGQgYmUgJ2Jw cCA9IG1pbihicHAsIDMqYnBjKScuIAo+ID4gPiBPdGhlcndpc2Ugd2UgbWF5IGJ1bXAgdGhlIGJw cCBhYm92ZSBhIGxpbWl0IHdlIGFscmVhZHkgZXN0YWJsaXNoZWQgZWFybGllci4KPiA+ID4gCj4g PiA+ID4gKwl9Cj4gPiA+ID4gKwo+ID4gPiA+ICAJcmV0dXJuIGJwcDsKPiA+ID4gPiAgfQo+ID4g PiA+ICAKPiA+ID4gPiBAQCAtMTk4NCwxNCArMTk5NiwxMSBAQCBpbnRlbF9kcF9jb21wdXRlX2xp bmtfY29uZmlnX3dpZGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gPiAgCQkJCWxp bmtfY2xvY2sgPSBpbnRlbF9kcC0+Y29tbW9uX3JhdGVzW2Nsb2NrXTsKPiA+ID4gPiAgCQkJCWxp bmtfYXZhaWwgPSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKGxpbmtfY2xvY2ssCj4gPiA+ID4gIAkJ CQkJCQkJICAgIGxhbmVfY291bnQpOwo+ID4gPiA+IC0KPiA+ID4gPiAtCQkJCWlmIChtb2RlX3Jh dGUgPD0gbGlua19hdmFpbCkgewo+ID4gPiA+IC0JCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50 ID0gbGFuZV9jb3VudDsKPiA+ID4gPiAtCQkJCQlwaXBlX2NvbmZpZy0+cGlwZV9icHAgPSBicHA7 Cj4gPiA+ID4gLQkJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBsaW5rX2Nsb2NrOwo+ID4g PiA+IC0KPiA+ID4gPiArCQkJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0gbGFuZV9jb3VudDsK PiA+ID4gPiArCQkJCXBpcGVfY29uZmlnLT5waXBlX2JwcCA9IGJwcDsKPiA+ID4gPiArCQkJCXBp cGVfY29uZmlnLT5wb3J0X2Nsb2NrID0gbGlua19jbG9jazsKPiA+ID4gPiArCQkJCWlmIChtb2Rl X3JhdGUgPD0gbGlua19hdmFpbCkKPiA+ID4gPiAgCQkJCQlyZXR1cm4gdHJ1ZTsKPiA+ID4gCj4g PiA+IFdoeSBkbyB3ZSBuZWVkIHRvIGFzc2lnbiB0aGVzZSBpZiB3ZSBkb24ndCBhY2NlcHQgdGhl IGNvbmZpZ3VyYXRpb24/Cj4gPiA+IAo+ID4gPiA+IC0JCQkJfQo+ID4gPiA+ICAJCQl9Cj4gPiA+ ID4gIAkJfQo+ID4gPiA+ICAJfQo+ID4gPiA+IEBAIC0yMDIwLDE0ICsyMDI5LDExIEBAIGludGVs X2RwX2NvbXB1dGVfbGlua19jb25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ ID4gPiA+ICAJCQkJbGlua19jbG9jayA9IGludGVsX2RwLT5jb21tb25fcmF0ZXNbY2xvY2tdOwo+ ID4gPiA+ICAJCQkJbGlua19hdmFpbCA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobGlua19jbG9j aywKPiA+ID4gPiAgCQkJCQkJCQkgICAgbGFuZV9jb3VudCk7Cj4gPiA+ID4gLQo+ID4gPiA+IC0J CQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKSB7Cj4gPiA+ID4gLQkJCQkJcGlwZV9jb25m aWctPmxhbmVfY291bnQgPSBsYW5lX2NvdW50Owo+ID4gPiA+IC0JCQkJCXBpcGVfY29uZmlnLT5w aXBlX2JwcCA9IGJwcDsKPiA+ID4gPiAtCQkJCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IGxp bmtfY2xvY2s7Cj4gPiA+ID4gLQo+ID4gPiA+ICsJCQkJcGlwZV9jb25maWctPmxhbmVfY291bnQg PSBsYW5lX2NvdW50Owo+ID4gPiA+ICsJCQkJcGlwZV9jb25maWctPnBpcGVfYnBwID0gYnBwOwo+ ID4gPiA+ICsJCQkJcGlwZV9jb25maWctPnBvcnRfY2xvY2sgPSBsaW5rX2Nsb2NrOwo+ID4gPiA+ ICsJCQkJaWYgKG1vZGVfcmF0ZSA8PSBsaW5rX2F2YWlsKQo+ID4gPiA+ICAJCQkJCXJldHVybiB0 cnVlOwo+ID4gPiA+IC0JCQkJfQo+ID4gPiA+ICAJCQl9Cj4gPiA+ID4gIAkJfQo+ID4gPiA+ICAJ fQo+ID4gPiA+IEBAIC0yMDM1LDE0ICsyMDQxLDg4IEBAIGludGVsX2RwX2NvbXB1dGVfbGlua19j b25maWdfZmFzdChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gPiA+ICAJcmV0dXJuIGZh bHNlOwo+ID4gPiA+ICB9Cj4gPiA+ID4gIAo+ID4gPiA+ICtzdGF0aWMgYm9vbCBpbnRlbF9kcF9k c2NfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ID4gPiArCQkJ CQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCj4gPiA+ID4gKwkJCQkJc3Ry dWN0IGxpbmtfY29uZmlnX2xpbWl0cyAqbGltaXRzKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2Rw KTsKPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ID4gPiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKmFkanVzdGVkX21vZGUgPSAmcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiA+ ID4gPiArCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5j cnRjKS0+cGlwZTsKPiA+ID4gPiArCXUxNiBkc2NfbWF4X291dHB1dF9icHAgPSAwOwo+ID4gPiA+ ICsJdTggZHNjX2RwX3NsaWNlX2NvdW50ID0gMDsKPiA+ID4gPiArCj4gPiA+ID4gKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDEwIHx8Cj4gPiA+ID4gKwkgICAgIWRybV9kcF9zaW5rX3N1cHBv cnRzX2RzYyhpbnRlbF9kcC0+ZHNjX2RwY2QpKQo+ID4gPiA+ICsJCXJldHVybiBmYWxzZTsKPiA+ ID4gPiArCj4gPiA+ID4gKwkvKiBEUCBEU0Mgb25seSBzdXBwb3J0ZWQgb24gUGlwZSBCIGFuZCBD ICovCj4gPiA+ID4gKwlpZiAocGlwZSA9PSBQSVBFX0EgJiYgIWludGVsX2RwX2lzX2VkcChpbnRl bF9kcCkpCj4gPiA+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gPiAKPiA+ID4gRG8gd2UgbWVhbiAn dHJhbnNjb2RlciA9PSBFRFAgfHwgdHJhbnNjb2RlciA9PSBCIHx8IHRyYW5zY29kZXIgPT0gQycg Pwo+ID4gPiBPciBtYXliZSAndHJhbnNjb2RlciAhPSBBJyBmb3Igc2hvcnQuIEkgZ3Vlc3MgdGhp cyB3aWxsIG5lZWQgdG8gYWRqdXN0ZWQKPiA+ID4gZm9yIHRoZSBuZXh0IHBsYXRmb3JtIGFueXdh eSBzbyBtYWtpbmcgdGhlIGFzc3VtcHRpb24gdGhhdCB0cmFuc2NvZGVyIEEKPiA+ID4gaXMgdGhl IG9ubHkgb25lIHRoYXQgY2FuJ3QgZG8gRFNDIGlzIGZpbmUuCj4gPiA+IAo+ID4gPiBUaGlzIHdo b2xlIHRoaW5nIHNlZW1zIGxpa2UgYSBnb29kIGhlbHBlciBmdW5jdGlvbi4KPiA+ID4gaW50ZWxf ZHBfc291cmNlX3N1cHBvcnRzX2RzYygpIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQuIEFuZCB0aGVu IHdlCj4gPiA+IGNvdWxkIGhhdmUgaW50ZWxfZHBfc3VwcG9ydHNfZHNjKCkgd2hpY2gganVzdCBj YWxscyB0aGF0ICsKPiA+ID4gZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKCkuCj4gPgo+IAo+IFNv IGludGVsX2RwX3NvdXJjZV9zdXBwb3J0c19kc2Mgd2lsbCBoYXZlIHBsYXRmb3JtIGNoZWNrcywg YnV0IGZvciBpdCB0byBkbwo+IHRyYW5zY29kZXIgY2hlY2sgaXQgd291bGQgYWxzbyBuZWVkIGNy dGNfc3RhdGUgYXMgaW5wdXQuCgpJbmRlZWQuIERvIHdlIGhhdmUgdGhhdCBpbiBhbGwgdGhlIHBs YWNlcyB3ZSBuZWVkIHRoaXM/Cgo+IAo+IEFuZCB5ZXMgaW50ZWxfZHBfc3VwcG9ydHNfZHNjKCkg Y2FuIGNhbGwgdGhpcyBhbmQgZHJtX2RwX3Npbmtfc3VwcG9ydHNfZHNjKCkKPiAgCj4gPiBBbm90 aGVyIGNvbmZ1c2lvbiBhYm91dCB0aGVzZSBjaGVja3MgaXMgZ2xrLiBTb21lIG90aGVyIHBsYWNl cyBzZWVtCj4gPiB0byBpbmRpY2F0ZSB0aGF0IGdsayBoYXMgRFNDLCBidXQgdGhlbiBjb2RlIGxp a2UgdGhpcyBoZXJlIGRvZXNuJ3QgCj4gPiBhY2NlcHQgZ2xrLiBXaGF0J3MgdXAgd2l0aCB0aGF0 Pwo+IAo+IFRoaXMgaXMgYmVjYXVzZSBvbiBHTEssIFZEU0MgaXMgb25seSBzdXBwb3J0ZWQgb24g ZURQIGFuZCBub3Qgb24gZXh0ZXJuYWwgRFAKCkJ1dCB3ZSBkb24ndCBjb25zaWRlciBEU0Mgd2hl biBjb21wdXRpbmcgYW55IG9mIHRoZSBsaW5rIHBhcmFtcyBhbmQKd2hhdG5vdC4gSWYgdGhhdCdz IGludGVudGlvbmFsIHRoZW4gdGhlcmUgaXMgc29tZXRoaW5nIHJhdGhlcgpub24tb2J2aW91cyBh Ym91dCBob3cgYWxsIHRoaXMgaXMgbWVhbnQgdG8gd29yay4gSSBkb24ndCB0aGluayB0aGVyZQpy ZWFsbHkgc2hvdWxkIGJlIHRoYXQgbXVjaCBvZiBhIGRpZmZlcmVuY2UgYmV0d2VlbiBEUCBhbmQg ZURQIHdoZW4KaXQgY29tZXMgdG8gRFNDLgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK