From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 5/5] drm/i915: Link Rate fallback on Link training failure Date: Tue, 25 Oct 2016 11:32:25 -0700 Message-ID: <20161025183225.GA5184@intel.com> References: <1477093543-11622-1-git-send-email-manasi.d.navare@intel.com> <1477093543-11622-6-git-send-email-manasi.d.navare@intel.com> <1477377599.31308.143.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 650256E15B for ; Tue, 25 Oct 2016 18:31:02 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1477377599.31308.143.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBPY3QgMjQsIDIwMTYgYXQgMTE6MjM6MzlQTSAtMDcwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gT24gRnJpLCAyMDE2LTEwLTIxIGF0IDE2OjQ1IC0wNzAwLCBNYW5hc2kg TmF2YXJlIHdyb3RlOgo+ID4gSWYgbGluayB0cmFpbmluZyBhdCBhIGxpbmsgcmF0ZSBvcHRpbWFs IGZvciBhIHBhcnRpY3VsYXIKPiA+IG1vZGUgZmFpbHMgZHVyaW5nIG1vZGVzZXQncyBhdG9taWMg Y29tbWl0IHBoYXNlLCB0aGVuIHdlCj4gPiBsZXQgdGhlIG1vZGVzZXQgY29tcGxldGUgYW5kIHRo ZW4gcmV0cnkuIFdlIHNhdmUgdGhlIGxpbmsgcmF0ZQo+ID4gdmFsdWUgYXQgd2hpY2ggbGluayB0 cmFpbmluZyBmYWlsZWQgYW5kIHVzZSBhIGxvd2VyIGxpbmsgcmF0ZQo+ID4gdG8gcHJ1bmUgdGhl IG1vZGVzLiBJdCB3aWxsIHJlZG8gdGhlIG1vZGVzZXQgb24gdGhlIGN1cnJlbnQgbW9kZQo+ID4g YXQgbG93ZXIgbGluayByYXRlIG9yIGlmIHRoZSBjdXJyZW50IG1vZGUgZ2V0cyBwcnVuZWQgZHVl IHRvIGxvd2VyCj4gPiBsaW5rIGNvbnN0cmFpbnRzIHRoZW4sIGl0IHdpbGwgc2VuZCBhIGhvdHBs dWcgdWV2ZW50IGZvciB1c2Vyc3BhY2UKPiA+IHRvIGhhbmRsZSBpdC4KPiA+IAo+ID4gVGhpcyBp cyBhbHNvIHJlcXVpcmVkIHRvIHBhc3MgRFAgQ1RTIHRlc3RzIDQuMy4xLjMsIDQuMy4xLjQsCj4g PiA0LjMuMS42Lgo+ID4gCj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4K PiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgICAgICAg ICAgfCAxNSArKysrKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAg ICAgICAgICAgfCA2OSArKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgfCAxMiArKystLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgICB8ICA2ICsrLQo+ID4gIDQg ZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKPiA+IAo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IGluZGV4IGZiMThkNjkuLjQ1MTQzM2IgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IEBAIC0xNzEyLDYgKzE3MTIsOCBAQCBz dGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9k cCgmZW5jb2Rlci0+YmFzZSk7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGlu dGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGVuY29kZXIpOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+ YmFzZTsKPiA+ICAKPiA+ICAJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBsaW5r X3JhdGUsIGxhbmVfY291bnQsCj4gPiAgCQkJCSBsaW5rX21zdCk7Cj4gPiBAQCAtMTcyMiw3ICsx NzI0LDE4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAlpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVu Y29kZXIpOwo+ID4gIAlpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVnKGVuY29kZXIpOwo+ID4gIAlp bnRlbF9kcF9zaW5rX2RwbXMoaW50ZWxfZHAsIERSTV9NT0RFX0RQTVNfT04pOwo+ID4gLQlpbnRl bF9kcF9zdGFydF9saW5rX3RyYWluKGludGVsX2RwKTsKPiA+ICsJaWYgKCFpbnRlbF9kcF9zdGFy dF9saW5rX3RyYWluKGludGVsX2RwKSkgewo+ID4gKwkJRFJNX0VSUk9SKCJMaW5rIFRyYWluaW5n IGZhaWxlZCBhdCBsaW5rIHJhdGUgPSAlZCwgbGFuZSBjb3VudCA9ICVkXG4iLAo+ID4gKwkJCSAg bGlua19yYXRlLCBsYW5lX2NvdW50KTsKPiA+ICsJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxl ZCA9IHRydWU7Cj4gPiArCQlpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWRfbGlua19yYXRlID0g bGlua19yYXRlOwo+ID4gKwkJaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkX2xhbmVfY291bnQg PSBsYW5lX2NvdW50Owo+ID4gKwkJLyogU2NoZWR1bGUgYSBIb3RwbHVnIFVldmVudCB0byB1c2Vy c3BhY2UgdG8gc3RhcnQgbW9kZXNldCAqLwo+ID4gKwkJc2NoZWR1bGVfd29yaygmY29ubmVjdG9y LT5pOTE1X21vZGVzZXRfcmV0cnlfd29yayk7Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQlpbnRlbF9k cC0+bGlua190cmFpbl9mYWlsZWQgPSBmYWxzZTsKPiA+ICsJfQo+ID4gKwo+ID4gIAlpZiAocG9y dCAhPSBQT1JUX0EgfHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQo+ID4gIAkJaW50ZWxfZHBf c3RvcF9saW5rX3RyYWluKGludGVsX2RwKTsKPiA+ICB9Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMKPiA+IGluZGV4IGMxOTJlMTguLjVkNWY0YTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jCj4gPiBAQCAtMzEzLDYgKzMxMyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfbGlua19y YXRlX2luZGV4KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCWludCB0YXJnZXRfY2xv Y2sgPSBtb2RlLT5jbG9jazsKPiA+ICAJaW50IG1heF9yYXRlLCBtb2RlX3JhdGUsIG1heF9sYW5l cywgbWF4X2xpbmtfY2xvY2s7Cj4gPiAgCWludCBtYXhfZG90Y2xrOwo+ID4gKwlpbnQgY29tbW9u X3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4gPiAgCj4gPiAgCW1heF9kb3Rj bGsgPSBpbnRlbF9kcF9kb3duc3RyZWFtX21heF9kb3RjbG9jayhpbnRlbF9kcCk7Cj4gPiAgCj4g PiBAQCAtMzI2LDggKzMyNywyNyBAQCBzdGF0aWMgaW50IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRl eChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJdGFyZ2V0X2Nsb2NrID0gZml4ZWRf bW9kZS0+Y2xvY2s7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JbWF4X2xpbmtfY2xvY2sgPSBpbnRlbF9k cF9tYXhfbGlua19yYXRlKGludGVsX2RwKTsKPiA+IC0JbWF4X2xhbmVzID0gaW50ZWxfZHBfbWF4 X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4gKwkvKiBQcnVuZSB0aGUgbW9kZXMgYmFzZWQgb24g dGhlIGxpbmsgcmF0ZSB0aGF0IGZhaWxlZCAqLwo+ID4gKwlpZiAoaW50ZWxfZHAtPmxpbmtfdHJh aW5fZmFpbGVkX2xpbmtfcmF0ZSkgewo+IAo+IFNob3VsZG4ndCB0aGUgYm9vbCBsaW5rX3RyYWlu X2ZhaWxlZCB0aGF0IHlvdSBhcmUgYWRkaW5nIGJlIHVzZWQgaGVyZT8KPiBUaGUgbmFtaW5nIGlu ZGljYXRlcyBhIGNoZWNrIGxpa2UgdGhpcyBzaG91bGQgdXNlIHRoYXQuCgpFaXRoZXIgdGhhdCBv ciB0aGUgbGlua190cmFpbl9mYWlsZWRfbGlua19yYXRlIGNhbiBiZSB1c2VkLCBib3RoIGdldApp bml0aWFsaXplZCBhbmQgcmVzZXQgdGhlIHNhbWUgdGltZS4gQnV0IHVzaW5nIGxpbmtfdHJhaW5f ZmFpbGVkIHdvdWxkIGJlIG1vcmUKYXBwcm9wcmlhdGUgSSBndWVzcywgSSB3aWxsIGxvb2sgYXQg Y2hhbmdpbmcgdGhhdC4KCk1hbmFzaQo+IAo+IAo+ID4gKwkJaW50ZWxfZHAtPmxpbmtfcmF0ZV9p bmRleCA9IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwKPiA+ICsJCQkJCQkJCSAg ICAgY29tbW9uX3JhdGVzLAo+ID4gKwkJCQkJCQkJICAgICBpbnRlbF9kcC0+bGlua190cmFpbl9m YWlsZWRfbGlua19yYXRlKTsKPiA+ICsJCWlmIChpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4ID4g MCkgewo+ID4gKwkJCW1heF9saW5rX2Nsb2NrID0gY29tbW9uX3JhdGVzW2ludGVsX2RwLT5saW5r X3JhdGVfaW5kZXggLSAxXTsKPiA+ICsJCQltYXhfbGFuZXMgPSBpbnRlbF9kcF9tYXhfbGFuZV9j b3VudChpbnRlbF9kcCk7Cj4gPiArCQl9IGVsc2Ugewo+ID4gKwkJCS8qIEhlcmUgd2UgY2FuIGxv d2VyIHRoZSBsYW5lIGNvdW50LCBidXQgdGhhdCB3aWxsIGJlCj4gPiArCQkJICogYWRkZWQgZm9y IERQIFNwZWMgMS4zCj4gPiArCQkJICovCj4gPiArCQkJRFJNX0VSUk9SKCJObyBWYWxpZCBNb2Rl IFN1cHBvcnRlZCBmb3IgdGhpcyBMaW5rXG4iKTsKPiA+ICsJCQlpbnRlbF9kcC0+bGlua190cmFp bl9mYWlsZWRfbGlua19yYXRlID0gMDsKPiA+ICsJCQlpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4 ID0gLTE7Cj4gPiArCQkJaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkID0gZmFsc2U7Cj4gCj4g MS4gWW91IGFyZSBub3Qgc2V0dGluZyBtYXhfbGlua19jbG9jayBhbmQgbWF4X2xhbmVzIGhlcmUu IFdvbid0IHRoaXMgZW5kCj4gdXAgY29tcHV0aW5nIHRoZSBtYXhfcmF0ZSBiYXNlZCBvbiB1bmlu aXRpYWxpemVkIGxvY2Fscz8KPiAKPiAyLiBBbHNvLCB3aGF0IGlzIHRoZSBjb3JyZWN0IHJldHVy biB2YWx1ZSBpbiB0aGlzIGNhc2U/Cj4gCj4gMy4gWW91IGFyZSByZXNldHRpbmcgYWxsIHZhbHVl cyB3aGVuIGEgbGluayByYXRlIGNhbm5vdCBiZSBmb3VuZCwgd2hhdAo+IGxpbmsgcmF0ZSBpcyB0 aGUgc3Vic2VxdWVudCBtb2Rlc2V0IGV4cGVjdGVkIHRvIHN0YXJ0IGZyb20/IAo+IAo+IAo+IC1E SwoKVGhlIGlkZWEgaXMgdG8ganVzdCBmYWlsIHRoZSBsaW5rIHRyYWluaW5nIGluIHRoaXMgY2Fz ZSBzaW5jZSB3ZSBjYW5ub3QKZnVydGhlciByZWR1Y2UgdGhlIGxpbmsgcmF0ZS9sYW5lIGNvdW50 IHNvIGl0IHNob3VkbCBqdXN0IGZhaWwKdGhlIG1vZGVzZXQgYW5kIHNlbmQgYSB1ZXZlbnQgdG8g dXNlcnNwYWNlLiBJIHRoaW5rIHRoaXMgbG9naWMgd2lsbApuZWVkIGZ1cnRoZXIgdHVuaW5nLgoK Cj4gPiArCQl9Cj4gPiArCX0gZWxzZSB7Cj4gPiArCQltYXhfbGlua19jbG9jayA9IGludGVsX2Rw X21heF9saW5rX3JhdGUoaW50ZWxfZHApOwo+ID4gKwkJbWF4X2xhbmVzID0gaW50ZWxfZHBfbWF4 X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4gKwl9Cj4gPiAgCj4gPiAgCW1heF9yYXRlID0gaW50 ZWxfZHBfbWF4X2RhdGFfcmF0ZShtYXhfbGlua19jbG9jaywgbWF4X2xhbmVzKTsKPiA+ICAJbW9k ZV9yYXRlID0gaW50ZWxfZHBfbGlua19yZXF1aXJlZCh0YXJnZXRfY2xvY2ssIDE4KTsKPiA+IEBA IC0xNjE5LDYgKzE2MzksMTQgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0RCTENMSykKPiA+ICAJCXJldHVybiBmYWxzZTsKPiA+ICAKPiA+ICsJLyog RmFsbCBiYWNrIHRvIGxvd2VyIGxpbmsgcmF0ZSBpbiBjYXNlIG9mIGZhaWx1cmUgaW4gcHJldmlv dXMgbW9kZXNldCAqLwo+ID4gKwlpZiAoaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkX2xpbmtf cmF0ZSkgewo+ID4gKwkJbWluX2xhbmVfY291bnQgPSBtYXhfbGFuZV9jb3VudDsKPiA+ICsJCW1p bl9jbG9jayA9IG1heF9jbG9jayA9IGludGVsX2RwLT5saW5rX3JhdGVfaW5kZXggLSAxOwo+IAo+ IDEuIFdoeSBpcyBtaW5fY2xvY2sgc2FtZSBhcyBtYXhfY2xvY2s/IFRoaXMgZm9yY2VzIHRoZSBj bG9jayB0byBhIHZhbHVlCj4gaW5zdGVhZCBvZiBpdGVyYXRpbmcgaXQgYmFzZWQgb24gdGhlIG1v ZGUgcmF0ZS4KPiAKPiAyLiBXaHkgaXMgbWluX2xhbmVfY291bnQgc2V0IHRvIG1heF9sYW5lX2Nv dW50PyBJcyB0aGlzIGRvbmUgdG8gYmUgU3BlYwo+IGNvbXBsaWFudD8gCj4gCj4gMy4gV2hhdCBh Ym91dCBicHA/IExvb2tzIGxpa2UgdGhlIHdlIHdpbGwgc3RpbGwgYmUgaXRlcmF0aW5nIG92ZXIg YnBwIHRvCj4gZmluZCB0aGUgbGluayByYXRlLiAKPiAKPiAtREsKPiA+ICsJCWludGVsX2RwLT5s aW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUgPSAwOwo+ID4gKwkJaW50ZWxfZHAtPmxpbmtfcmF0 ZV9pbmRleCA9IC0xOwo+ID4gKwl9Cj4gPiArCj4gPiAgCURSTV9ERUJVR19LTVMoIkRQIGxpbmsg Y29tcHV0YXRpb24gd2l0aCBtYXggbGFuZSBjb3VudCAlaSAiCj4gPiAgCQkgICAgICAibWF4IGJ3 ICVkIHBpeGVsIGNsb2NrICVpS0h6XG4iLAo+ID4gIAkJICAgICAgbWF4X2xhbmVfY291bnQsIGNv bW1vbl9yYXRlc1ttYXhfY2xvY2tdLAo+ID4gQEAgLTU2ODksNiArNTcxNywzOSBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9lZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwK PiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9k cF9tb2Rlc2V0X3JldHJ5X3dvcmtfZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ID4gK3sK PiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICsJc3RydWN0IGludGVs X2RwICppbnRlbF9kcDsKPiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gPiAr CWJvb2wgdmVyYm9zZV9wcnVuZSA9IHRydWU7Cj4gPiArCWJvb2wgcmVwcm9iZSA9IGZhbHNlOwo+ ID4gKwo+ID4gKwljb25uZWN0b3IgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCpjb25uZWN0 b3IpLAo+ID4gKwkJCQkgaTkxNV9tb2Rlc2V0X3JldHJ5X3dvcmspOwo+ID4gKwlpbnRlbF9kcCA9 IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7Cj4gPiArCj4gPiArCS8qIEdyYWIgdGhlIGxv Y2tzIGJlZm9yZSBjaGFuZ2luZyBjb25uZWN0b3IgcHJvcGVydHkqLwo+ID4gKwltdXRleF9sb2Nr KCZjb25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+ID4gKwlEUk1fREVCVUdfS01T KCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwgY29ubmVjdG9yLT5iYXNlLmlkLAo+ID4gKwkJICAgICAg Y29ubmVjdG9yLT5uYW1lKTsKPiA+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeShtb2RlLCAmY29ubmVj dG9yLT5tb2RlcywgaGVhZCkgewo+ID4gKwkJbW9kZS0+c3RhdHVzID0gaW50ZWxfZHBfbW9kZV92 YWxpZChjb25uZWN0b3IsCj4gPiArCQkJCQkJICAgbW9kZSk7Cj4gPiArCQlpZiAobW9kZS0+c3Rh dHVzICE9IE1PREVfT0spCj4gPiArCQkJcmVwcm9iZSA9IHRydWU7Cj4gPiArCX0KPiA+ICsJZHJt X21vZGVfcHJ1bmVfaW52YWxpZChjb25uZWN0b3ItPmRldiwgJmNvbm5lY3Rvci0+bW9kZXMsCj4g PiArCQkJICAgICAgIHZlcmJvc2VfcHJ1bmUpOwo+ID4gKwltdXRleF91bmxvY2soJmNvbm5lY3Rv ci0+ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gPiArCWlmIChyZXByb2JlKSB7Cj4gPiArCQkv KiBTZW5kIEhvdHBsdWcgdWV2ZW50IHNvIHVzZXJzcGFjZSBjYW4gcmVwcm9iZSAqLwo+ID4gKwkJ ZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChjb25uZWN0b3ItPmRldik7Cj4gPiArCX0KPiA+ ICsJaWYgKGludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZCkKPiA+ICsJCWRybV9hdG9taWNfaGVs cGVyX2Nvbm5lY3Rvcl9tb2Rlc2V0KGNvbm5lY3Rvcik7Cj4gPiArfQo+ID4gKwo+ID4gIGJvb2wK PiA+ICBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpp bnRlbF9kaWdfcG9ydCwKPiA+ICAJCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25u ZWN0b3IpCj4gPiBAQCAtNTcwMSw2ICs1NzYyLDEwIEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9p bml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAllbnVtIHBvcnQg cG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4gIAlpbnQgdHlwZTsKPiA+ICAKPiA+ICsJ LyogSW5pdGlhbGl6ZSB0aGUgd29yayBmb3IgbW9kZXNldCBpbiBjYXNlIG9mIGxpbmsgdHJhaW4g ZmFpbHVyZSAqLwo+ID4gKwlJTklUX1dPUksoJmNvbm5lY3Rvci0+aTkxNV9tb2Rlc2V0X3JldHJ5 X3dvcmssCj4gPiArCQkgIGludGVsX2RwX21vZGVzZXRfcmV0cnlfd29ya19mbik7Cj4gPiArCj4g PiAgCWlmIChXQVJOKGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPCAxLAo+ID4gIAkJICJOb3Qg ZW5vdWdoIGxhbmVzICglZCkgZm9yIERQIG9uIHBvcnQgJWNcbiIsCj4gPiAgCQkgaW50ZWxfZGln X3BvcnQtPm1heF9sYW5lcywgcG9ydF9uYW1lKHBvcnQpKSkKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiA+IGluZGV4IDAwNDhiNTIuLjEwZjgx YWIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3Ry YWluaW5nLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJh aW5pbmcuYwo+ID4gQEAgLTMxMCw5ICszMTAsMTUgQEAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtf dHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAJCQkJRFBfVFJBSU5JTkdfUEFU VEVSTl9ESVNBQkxFKTsKPiA+ICB9Cj4gPiAgCj4gPiAtdm9pZAo+ID4gK2Jvb2wKPiA+ICBpbnRl bF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ ID4gLQlpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsKPiA+ IC0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7 Cj4gPiArCWJvb2wgcmV0Owo+ID4gKwo+ID4gKwlpZiAoaW50ZWxfZHBfbGlua190cmFpbmluZ19j bG9ja19yZWNvdmVyeShpbnRlbF9kcCkpIHsKPiA+ICsJCXJldCA9IGludGVsX2RwX2xpbmtfdHJh aW5pbmdfY2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApOwo+ID4gKwkJaWYgKHJldCkKPiA+ ICsJCQlyZXR1cm4gdHJ1ZTsKPiA+ICsJfQo+ID4gKwlyZXR1cm4gZmFsc2U7Cj4gPiAgfQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IDRlOTBiMDcuLmQzZmNmZmMgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC04OTAsNiArODkwLDEwIEBAIHN0 cnVjdCBpbnRlbF9kcCB7Cj4gPiAgCXVpbnQzMl90IERQOwo+ID4gIAlpbnQgbGlua19yYXRlOwo+ ID4gIAl1aW50OF90IGxhbmVfY291bnQ7Cj4gPiArCWludCBsaW5rX3RyYWluX2ZhaWxlZF9saW5r X3JhdGU7Cj4gPiArCXVpbnQ4X3QgbGlua190cmFpbl9mYWlsZWRfbGFuZV9jb3VudDsKPiA+ICsJ aW50IGxpbmtfcmF0ZV9pbmRleDsKPiA+ICsJYm9vbCBsaW5rX3RyYWluX2ZhaWxlZDsKPiA+ICAJ dWludDhfdCBzaW5rX2NvdW50Owo+ID4gIAlib29sIGxpbmtfbXN0Owo+ID4gIAlib29sIGhhc19h dWRpbzsKPiA+IEBAIC0xMzk0LDcgKzEzOTgsNyBAQCBib29sIGludGVsX2RwX2luaXRfY29ubmVj dG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ID4gIHZvaWQg aW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAg CQkJICAgICAgaW50IGxpbmtfcmF0ZSwgdWludDhfdCBsYW5lX2NvdW50LAo+ID4gIAkJCSAgICAg IGJvb2wgbGlua19tc3QpOwo+ID4gLXZvaWQgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ICtib29sIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJh aW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiAgdm9pZCBpbnRlbF9kcF9zdG9wX2xp bmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiAgdm9pZCBpbnRlbF9kcF9z aW5rX2RwbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1vZGUpOwo+ID4gIHZvaWQg aW50ZWxfZHBfZW5jb2Rlcl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+IApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK