From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH 5/5] drm/i915: Link Rate fallback on Link training failure Date: Mon, 24 Oct 2016 10:53:47 -0700 Message-ID: <20161024175347.GA27654@shiv> References: <1477093543-11622-1-git-send-email-manasi.d.navare@intel.com> <1477093543-11622-6-git-send-email-manasi.d.navare@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 581706E0D4 for ; Mon, 24 Oct 2016 17:54:59 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1477093543-11622-6-git-send-email-manasi.d.navare@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: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMjEsIDIwMTYgYXQgMDQ6NDU6NDNQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBJZiBsaW5rIHRyYWluaW5nIGF0IGEgbGluayByYXRlIG9wdGltYWwgZm9yIGEgcGFy dGljdWxhcgo+IG1vZGUgZmFpbHMgZHVyaW5nIG1vZGVzZXQncyBhdG9taWMgY29tbWl0IHBoYXNl LCB0aGVuIHdlCj4gbGV0IHRoZSBtb2Rlc2V0IGNvbXBsZXRlIGFuZCB0aGVuIHJldHJ5LiBXZSBz YXZlIHRoZSBsaW5rIHJhdGUKPiB2YWx1ZSBhdCB3aGljaCBsaW5rIHRyYWluaW5nIGZhaWxlZCBh bmQgdXNlIGEgbG93ZXIgbGluayByYXRlCj4gdG8gcHJ1bmUgdGhlIG1vZGVzLiBJdCB3aWxsIHJl ZG8gdGhlIG1vZGVzZXQgb24gdGhlIGN1cnJlbnQgbW9kZQo+IGF0IGxvd2VyIGxpbmsgcmF0ZSBv ciBpZiB0aGUgY3VycmVudCBtb2RlIGdldHMgcHJ1bmVkIGR1ZSB0byBsb3dlcgo+IGxpbmsgY29u c3RyYWludHMgdGhlbiwgaXQgd2lsbCBzZW5kIGEgaG90cGx1ZyB1ZXZlbnQgZm9yIHVzZXJzcGFj ZQo+IHRvIGhhbmRsZSBpdC4KPiAKPiBUaGlzIGlzIGFsc28gcmVxdWlyZWQgdG8gcGFzcyBEUCBD VFMgdGVzdHMgNC4zLjEuMywgNC4zLjEuNCwKPiA0LjMuMS42Lgo+IAo+IENjOiBKYW5pIE5pa3Vs YSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5p ZWwudmV0dGVyQGludGVsLmNvbT4KPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQu bmF2YXJlQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMgICAgICAgICAgICAgIHwgMTUgKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMgICAgICAgICAgICAgICB8IDY5ICsrKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgfCAxMiArKystLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAgNiArKy0K PiAgNCBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQo+IAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXggZmIxOGQ2OS4uNDUxNDMzYiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTE3MTIsNiArMTcxMiw4IEBAIHN0YXRpYyB2 b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rl ci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGRpX2dldF9l bmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7Cj4gIAo+ICAJaW50 ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBsaW5rX3JhdGUsIGxhbmVfY291bnQsCj4g IAkJCQkgbGlua19tc3QpOwo+IEBAIC0xNzIyLDcgKzE3MjQsMTggQEAgc3RhdGljIHZvaWQgaW50 ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlp bnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVuY29kZXIpOwo+ICAJaW50ZWxfZGRpX2luaXRf ZHBfYnVmX3JlZyhlbmNvZGVyKTsKPiAgCWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJN X01PREVfRFBNU19PTik7Cj4gLQlpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKGludGVsX2RwKTsK PiArCWlmICghaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihpbnRlbF9kcCkpIHsKPiArCQlEUk1f RVJST1IoIkxpbmsgVHJhaW5pbmcgZmFpbGVkIGF0IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50 ID0gJWRcbiIsCj4gKwkJCSAgbGlua19yYXRlLCBsYW5lX2NvdW50KTsKCkkgZG9uJ3QgdGhpbmsg dGhpcyBzaG91bGQgYmUgYSBEUk1fRVJST1IsIHNpbmNlIGl0J3MgYSBwYXJ0IG9mIHRoZSBub3Jt YWwKZmFsbGJhY2sgbWVjaGFuaXNtLgoKPiArCQlpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWQg PSB0cnVlOwo+ICsJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUgPSBsaW5r X3JhdGU7Cj4gKwkJaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkX2xhbmVfY291bnQgPSBsYW5l X2NvdW50Owo+ICsJCS8qIFNjaGVkdWxlIGEgSG90cGx1ZyBVZXZlbnQgdG8gdXNlcnNwYWNlIHRv IHN0YXJ0IG1vZGVzZXQgKi8KCk1pbm9yIG5pdCwgbm8gY2FwcyBuZWVkZWQgZm9yICJIb3RwbHVn IiBvciAiVWV2ZW50LiIKCkppbQoKPiArCQlzY2hlZHVsZV93b3JrKCZjb25uZWN0b3ItPmk5MTVf bW9kZXNldF9yZXRyeV93b3JrKTsKPiArCX0gZWxzZSB7Cj4gKwkJaW50ZWxfZHAtPmxpbmtfdHJh aW5fZmFpbGVkID0gZmFsc2U7Cj4gKwl9Cj4gKwo+ICAJaWYgKHBvcnQgIT0gUE9SVF9BIHx8IElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkKPiAgCQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oaW50 ZWxfZHApOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggYzE5MmUxOC4uNWQ1 ZjRhNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+IEBAIC0zMTMsNiArMzEzLDcgQEAg c3RhdGljIGludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCwKPiAgCWludCB0YXJnZXRfY2xvY2sgPSBtb2RlLT5jbG9jazsKPiAgCWludCBtYXhfcmF0 ZSwgbW9kZV9yYXRlLCBtYXhfbGFuZXMsIG1heF9saW5rX2Nsb2NrOwo+ICAJaW50IG1heF9kb3Rj bGs7Cj4gKwlpbnQgY29tbW9uX3JhdGVzW0RQX01BWF9TVVBQT1JURURfUkFURVNdID0ge307Cj4g IAo+ICAJbWF4X2RvdGNsayA9IGludGVsX2RwX2Rvd25zdHJlYW1fbWF4X2RvdGNsb2NrKGludGVs X2RwKTsKPiAgCj4gQEAgLTMyNiw4ICszMjcsMjcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9saW5r X3JhdGVfaW5kZXgoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQl0YXJnZXRfY2xvY2sg PSBmaXhlZF9tb2RlLT5jbG9jazsKPiAgCX0KPiAgCj4gLQltYXhfbGlua19jbG9jayA9IGludGVs X2RwX21heF9saW5rX3JhdGUoaW50ZWxfZHApOwo+IC0JbWF4X2xhbmVzID0gaW50ZWxfZHBfbWF4 X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ICsJLyogUHJ1bmUgdGhlIG1vZGVzIGJhc2VkIG9uIHRo ZSBsaW5rIHJhdGUgdGhhdCBmYWlsZWQgKi8KPiArCWlmIChpbnRlbF9kcC0+bGlua190cmFpbl9m YWlsZWRfbGlua19yYXRlKSB7Cj4gKwkJaW50ZWxfZHAtPmxpbmtfcmF0ZV9pbmRleCA9IGludGVs X2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwKPiArCQkJCQkJCQkgICAgIGNvbW1vbl9yYXRl cywKPiArCQkJCQkJCQkgICAgIGludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUp Owo+ICsJCWlmIChpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4ID4gMCkgewo+ICsJCQltYXhfbGlu a19jbG9jayA9IGNvbW1vbl9yYXRlc1tpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4IC0gMV07Cj4g KwkJCW1heF9sYW5lcyA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiArCQl9 IGVsc2Ugewo+ICsJCQkvKiBIZXJlIHdlIGNhbiBsb3dlciB0aGUgbGFuZSBjb3VudCwgYnV0IHRo YXQgd2lsbCBiZQo+ICsJCQkgKiBhZGRlZCBmb3IgRFAgU3BlYyAxLjMKPiArCQkJICovCj4gKwkJ CURSTV9FUlJPUigiTm8gVmFsaWQgTW9kZSBTdXBwb3J0ZWQgZm9yIHRoaXMgTGlua1xuIik7Cj4g KwkJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUgPSAwOwo+ICsJCQlpbnRl bF9kcC0+bGlua19yYXRlX2luZGV4ID0gLTE7Cj4gKwkJCWludGVsX2RwLT5saW5rX3RyYWluX2Zh aWxlZCA9IGZhbHNlOwo+ICsJCX0KPiArCX0gZWxzZSB7Cj4gKwkJbWF4X2xpbmtfY2xvY2sgPSBp bnRlbF9kcF9tYXhfbGlua19yYXRlKGludGVsX2RwKTsKPiArCQltYXhfbGFuZXMgPSBpbnRlbF9k cF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gKwl9Cj4gIAo+ICAJbWF4X3JhdGUgPSBpbnRl bF9kcF9tYXhfZGF0YV9yYXRlKG1heF9saW5rX2Nsb2NrLCBtYXhfbGFuZXMpOwo+ICAJbW9kZV9y YXRlID0gaW50ZWxfZHBfbGlua19yZXF1aXJlZCh0YXJnZXRfY2xvY2ssIDE4KTsKPiBAQCAtMTYx OSw2ICsxNjM5LDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0ZV9icHAoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKPiAgCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RF X0ZMQUdfREJMQ0xLKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gKwkvKiBGYWxsIGJhY2sgdG8g bG93ZXIgbGluayByYXRlIGluIGNhc2Ugb2YgZmFpbHVyZSBpbiBwcmV2aW91cyBtb2Rlc2V0ICov Cj4gKwlpZiAoaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkX2xpbmtfcmF0ZSkgewo+ICsJCW1p bl9sYW5lX2NvdW50ID0gbWF4X2xhbmVfY291bnQ7Cj4gKwkJbWluX2Nsb2NrID0gbWF4X2Nsb2Nr ID0gaW50ZWxfZHAtPmxpbmtfcmF0ZV9pbmRleCAtIDE7Cj4gKwkJaW50ZWxfZHAtPmxpbmtfdHJh aW5fZmFpbGVkX2xpbmtfcmF0ZSA9IDA7Cj4gKwkJaW50ZWxfZHAtPmxpbmtfcmF0ZV9pbmRleCA9 IC0xOwo+ICsJfQo+ICsKPiAgCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgY29tcHV0YXRpb24gd2l0 aCBtYXggbGFuZSBjb3VudCAlaSAiCj4gIAkJICAgICAgIm1heCBidyAlZCBwaXhlbCBjbG9jayAl aUtIelxuIiwKPiAgCQkgICAgICBtYXhfbGFuZV9jb3VudCwgY29tbW9uX3JhdGVzW21heF9jbG9j a10sCj4gQEAgLTU2ODksNiArNTcxNywzOSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9j b25uZWN0b3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCXJldHVybiBmYWxzZTsKPiAg fQo+ICAKPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfbW9kZXNldF9yZXRyeV93b3JrX2ZuKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKPiArewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcjsKPiArCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHA7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqbW9kZTsKPiArCWJvb2wgdmVyYm9zZV9wcnVuZSA9IHRydWU7Cj4gKwlib29sIHJl cHJvYmUgPSBmYWxzZTsKPiArCj4gKwljb25uZWN0b3IgPSBjb250YWluZXJfb2Yod29yaywgdHlw ZW9mKCpjb25uZWN0b3IpLAo+ICsJCQkJIGk5MTVfbW9kZXNldF9yZXRyeV93b3JrKTsKPiArCWlu dGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKPiArCj4gKwkvKiBHcmFiIHRo ZSBsb2NrcyBiZWZvcmUgY2hhbmdpbmcgY29ubmVjdG9yIHByb3BlcnR5Ki8KPiArCW11dGV4X2xv Y2soJmNvbm5lY3Rvci0+ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gKwlEUk1fREVCVUdfS01T KCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwgY29ubmVjdG9yLT5iYXNlLmlkLAo+ICsJCSAgICAgIGNv bm5lY3Rvci0+bmFtZSk7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3It Pm1vZGVzLCBoZWFkKSB7Cj4gKwkJbW9kZS0+c3RhdHVzID0gaW50ZWxfZHBfbW9kZV92YWxpZChj b25uZWN0b3IsCj4gKwkJCQkJCSAgIG1vZGUpOwo+ICsJCWlmIChtb2RlLT5zdGF0dXMgIT0gTU9E RV9PSykKPiArCQkJcmVwcm9iZSA9IHRydWU7Cj4gKwl9Cj4gKwlkcm1fbW9kZV9wcnVuZV9pbnZh bGlkKGNvbm5lY3Rvci0+ZGV2LCAmY29ubmVjdG9yLT5tb2RlcywKPiArCQkJICAgICAgIHZlcmJv c2VfcHJ1bmUpOwo+ICsJbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcu bXV0ZXgpOwo+ICsJaWYgKHJlcHJvYmUpIHsKPiArCQkvKiBTZW5kIEhvdHBsdWcgdWV2ZW50IHNv IHVzZXJzcGFjZSBjYW4gcmVwcm9iZSAqLwo+ICsJCWRybV9rbXNfaGVscGVyX2hvdHBsdWdfZXZl bnQoY29ubmVjdG9yLT5kZXYpOwo+ICsJfQo+ICsJaWYgKGludGVsX2RwLT5saW5rX3RyYWluX2Zh aWxlZCkKPiArCQlkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfbW9kZXNldChjb25uZWN0b3Ip Owo+ICt9Cj4gKwo+ICBib29sCj4gIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAJCQlzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICppbnRlbF9jb25uZWN0b3IpCj4gQEAgLTU3MDEsNiArNTc2MiwxMCBAQCBzdGF0aWMgYm9v bCBpbnRlbF9lZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAg CWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gIAlpbnQgdHlwZTsKPiAg Cj4gKwkvKiBJbml0aWFsaXplIHRoZSB3b3JrIGZvciBtb2Rlc2V0IGluIGNhc2Ugb2YgbGluayB0 cmFpbiBmYWlsdXJlICovCj4gKwlJTklUX1dPUksoJmNvbm5lY3Rvci0+aTkxNV9tb2Rlc2V0X3Jl dHJ5X3dvcmssCj4gKwkJICBpbnRlbF9kcF9tb2Rlc2V0X3JldHJ5X3dvcmtfZm4pOwo+ICsKPiAg CWlmIChXQVJOKGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPCAxLAo+ICAJCSAiTm90IGVub3Vn aCBsYW5lcyAoJWQpIGZvciBEUCBvbiBwb3J0ICVjXG4iLAo+ICAJCSBpbnRlbF9kaWdfcG9ydC0+ bWF4X2xhbmVzLCBwb3J0X25hbWUocG9ydCkpKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiBpbmRleCAwMDQ4YjUyLi4xMGY4MWFiIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+IEBAIC0z MTAsOSArMzEwLDE1IEBAIHZvaWQgaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gIAkJCQlEUF9UUkFJTklOR19QQVRURVJOX0RJU0FCTEUpOwo+ICB9 Cj4gIAo+IC12b2lkCj4gK2Jvb2wKPiAgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2Nr X3JlY292ZXJ5KGludGVsX2RwKTsKPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5lbF9l cXVhbGl6YXRpb24oaW50ZWxfZHApOwo+ICsJYm9vbCByZXQ7Cj4gKwo+ICsJaWYgKGludGVsX2Rw X2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApKSB7Cj4gKwkJcmV0ID0gaW50 ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7Cj4gKwkJ aWYgKHJldCkKPiArCQkJcmV0dXJuIHRydWU7Cj4gKwl9Cj4gKwlyZXR1cm4gZmFsc2U7Cj4gIH0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDRlOTBiMDcuLmQzZmNmZmMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC04OTAsNiArODkwLDEwIEBAIHN0cnVjdCBp bnRlbF9kcCB7Cj4gIAl1aW50MzJfdCBEUDsKPiAgCWludCBsaW5rX3JhdGU7Cj4gIAl1aW50OF90 IGxhbmVfY291bnQ7Cj4gKwlpbnQgbGlua190cmFpbl9mYWlsZWRfbGlua19yYXRlOwo+ICsJdWlu dDhfdCBsaW5rX3RyYWluX2ZhaWxlZF9sYW5lX2NvdW50Owo+ICsJaW50IGxpbmtfcmF0ZV9pbmRl eDsKPiArCWJvb2wgbGlua190cmFpbl9mYWlsZWQ7Cj4gIAl1aW50OF90IHNpbmtfY291bnQ7Cj4g IAlib29sIGxpbmtfbXN0Owo+ICAJYm9vbCBoYXNfYXVkaW87Cj4gQEAgLTEzOTQsNyArMTM5OCw3 IEBAIGJvb2wgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQsCj4gIHZvaWQgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJCSAgICAgIGludCBsaW5rX3JhdGUsIHVpbnQ4X3Qg bGFuZV9jb3VudCwKPiAgCQkJICAgICAgYm9vbCBsaW5rX21zdCk7Cj4gLXZvaWQgaW50ZWxfZHBf c3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiArYm9vbCBpbnRl bF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOwo+ICB2b2lk IGludGVsX2RwX3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiAg dm9pZCBpbnRlbF9kcF9zaW5rX2RwbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1v ZGUpOwo+ICB2b2lkIGludGVsX2RwX2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyKTsKPiAtLSAKPiAxLjkuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK