From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v10] drm/i915: Implement Link Rate fallback on Link training failure Date: Thu, 30 Mar 2017 15:54:15 -0700 Message-ID: <20170330225415.GL31477@intel.com> References: <1489529511-7856-1-git-send-email-manasi.d.navare@intel.com> <20170322154436.GA17810@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 F101A6E076 for ; Thu, 30 Mar 2017 22:49:56 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20170322154436.GA17810@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: Jani Nikula , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org SGkgSmFuaSwKCkkgaGF2ZSByZXZpZXdlZCB5b3VyIHJlY2VudCBEUCBsaW5rIHJhdGUgLyBsYW5l IGNvdW50CnJlZmFjdG9yaW5nIHBhdGNoIHNlcmllcyBhbmQgSSBiZWxpZXZlIHRoYXQgaXQgd2ls bCBzb29uIGdldCBtZXJnZWQuCgpBcmUgeW91IHdhaXRpbmcgb24gbWVyZ2luZyB0aGlzIHBhdGNo IHNvIHRoYXQgeW91ciByZWZhY3RvcmluZwpzZXJpZXMgZ2V0cyBtZXJnZWQgZmlyc3Q/IE9yIGNh biB3ZSBtZXJnZSB0aGlzIHBhdGNoIHNpbmNlCml0IGFscmVhZHkgaGFzIEFDS3MgYW5kIFItYnMu CgpQbGVhc2UgYWR2aXNlIG9uIG5leHQgc3RlcHMgZm9yIHRoaXMgcGF0Y2gsIHNpbmNlIHNvbWUK b2YgdGhlIFBTUiByZWxhdGVkIHBhdGNoZXMgYXJlIHBlbmRpbmcgbWVyZ2UgYmVjYXVzZSBvZiB0 aGlzLgoKUmVnYXJkcwpNYW5hc2kKCgpPbiBXZWQsIE1hciAyMiwgMjAxNyBhdCAwODo0NDozNkFN IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+IEhpIEphbmkvVmlsbGUsCj4gCj4gSSBuZWVk IHRvIGFkZCBhbm90aGVyIHF1aWNrIGZpeCB3aGljaCB3b3VsZCBiZSByZXF1aXJlZCBmb3IgdGhl IGZhbGxiYWNrCj4gdG8gaGFwcGVuIGFzIGV4cGVjdGVkLiBTaG91bGQgSSByZXNwaW4gdGhpcyBw YXRjaCB0byBhZGQgdGhhdCBmaXggb3IKPiBzaG91bGQgSSB3YWl0IGZvciB0aGlzIHRvIGdldCBs YW5kZWQ/Cj4gCj4gSSBoYXZlIG1lbnRpb25lZCB0aGUgZml4IHN1Z2dlc3RlZCBiZWxvdywgcGxl YXNlIGxldCBtZSBrbm93IHlvdXIgdGhvdWdodHMgb24gdGhhdC4KPiAKPiAKPiBPbiBUdWUsIE1h ciAxNCwgMjAxNyBhdCAwMzoxMTo1MVBNIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4g SWYgbGluayB0cmFpbmluZyBhdCBhIGxpbmsgcmF0ZSBvcHRpbWFsIGZvciBhIHBhcnRpY3VsYXIK PiA+IG1vZGUgZmFpbHMgZHVyaW5nIG1vZGVzZXQncyBhdG9taWMgY29tbWl0IHBoYXNlLCB0aGVu IHdlCj4gPiBsZXQgdGhlIG1vZGVzZXQgY29tcGxldGUgYW5kIHRoZW4gcmV0cnkuIFdlIHNhdmUg dGhlIGxpbmsgcmF0ZQo+ID4gdmFsdWUgYXQgd2hpY2ggbGluayB0cmFpbmluZyBmYWlsZWQsIHVw ZGF0ZSB0aGUgbGluayBzdGF0dXMgcHJvcGVydHkKPiA+IHRvICJCQUQiIGFuZCB1c2UgYSBsb3dl ciBsaW5rIHJhdGUgdG8gcHJ1bmUgdGhlIG1vZGVzLiBJdCB3aWxsIHJlZG8KPiA+IHRoZSBtb2Rl c2V0IG9uIHRoZSBjdXJyZW50IG1vZGUgYXQgbG93ZXIgbGluayByYXRlIG9yIGlmIHRoZSBjdXJy ZW50Cj4gPiBtb2RlIGdldHMgcHJ1bmVkIGR1ZSB0byBsb3dlciBsaW5rIGNvbnN0cmFpbnRzIHRo ZW4sIGl0IHdpbGwgc2VuZCBhCj4gPiBob3RwbHVnIHVldmVudCBmb3IgdXNlcnNwYWNlIHRvIGhh bmRsZSBpdC4KPiA+IAo+ID4gVGhpcyBpcyBhbHNvIHJlcXVpcmVkIHRvIHBhc3MgRFAgQ1RTIHRl c3RzIDQuMy4xLjMsIDQuMy4xLjQsCj4gPiA0LjMuMS42Lgo+ID4gCj4gPiBUaGlzIHBhdGNoIGlz IGEgcmVzZW5kIG9mIHRoZSBvcmlnaW5hbCBjb21taXQgaWQgKDIzM2NlODgxZGQ5MWZiCj4gPiAi ZHJtL2k5MTU6IEltcGxlbWVudCBMaW5rIFJhdGUgZmFsbGJhY2sgb24gTGluayB0cmFpbmluZyBm YWlsdXJlIikKPiA+IHdoaWNoIGdvdCByZXZlcnRlZCBpbiB0aGlzIGNvbW1pdCBpZCAoYWZjMWVi ZjQ1NjJhMTQgUmV2ZXJ0Cj4gPiAiZHJtL2k5MTU6IEltcGxlbWVudCBMaW5rIFJhdGUgZmFsbGJh Y2sgb24gTGluayB0cmFpbmluZyBmYWlsdXJlIikKPiA+IGR1ZSB0byBDSSBmYWlsdXJlcy4KPiA+ IAo+ID4gQWZ0ZXIgaW52ZXN0aWdhdGluZyB0aGUgQ0kgZmFpbHVyZXMgaXQgd2FzIGZvdW5kIHRo YXQgdGhlc2UKPiA+IHdlcmUgZXNzZW50aWFsbHkgdGhlIGZhaWx1cmVzIHdoaWNoIHdlcmUgYWx3 YXlzIHRoZXJlIGJ1dCBoaWRkZW4gYmVjYXVzZQo+ID4gdGhleSB1c2VkIHRvIGJlIERSTV9ERUJV R19LTVMgbWVzc2FnZXMgZm9yIGxpbmsgZmFpbHVyZXMgc28gbmV2ZXIgZ290Cj4gPiBjYXVnaHQg YnkgQ0kuIEJ1dCBub3cgdGhpcyBwYXRjaCBhY3R1YWxseSB0aHJvd3MgRFJNX0VSUk9SIGlmIHRo ZSBsaW5rCj4gPiB0cmFpbmluZyBmYWlscyBhdCBSQlIgYW5kIDEgbGFuZS4gU28gaXQgY2F1Z2h0 IHRoZXNlIGxpbmsgdHJhaW4gZmFpbHVyZXMuCj4gPiAKPiA+IFRoZXJlIHdlcmUgdHdvIGZhaWx1 cmVzOgo+ID4gMS4gT24gU0tMIDY3MDBrIHRoaXMgd2FzIGJlY2F1c2UgdGhlIG1hY2hpbmUgaW4g Q0kgbGFiIGlzIGEgU0tMIGRlc2t0b3AKPiA+IHdpdGhvdXQgZURQIG9uIFBvcnQgQS4gQnV0IG91 ciBWQlQgaW5pdGlhbGl6YXRpb24gY29kZSBpbiB0aGUgZHJpdmVyIHdyaXRlcwo+ID4gVkJUIGRl ZmF1bHRzIGluIGEgd2F5IHRoYXQgaXQgYWx3YXlzIHNldHMgRFAgZmxhZyBvbiBQb3J0IEEgYW5k IHRoaXMgZG9lcwo+ID4gbm90IGdldCBjbGVhcmVkIGFmdGVyIHBhcnNpbmcgdGhlIFZCVCBvdXRw dXRzLiBUaGlzIGhhcyBiZWVuIGZpeGVkIGluCj4gPiBjb21taXQgaWQgKGJiMWQxMzI5MzVjMmY4 ICJkcm0vaTkxNS92YnQ6IHNwbGl0IG91dCBkZWZhdWx0cyB0aGF0IGFyZSBzZXQKPiA+IHdoZW4g dGhlcmUgaXMgbm8gVkJUKSBhbmQgKDY2NTc4ODU3MmM2NDEwYiAiZHJtL2k5MTUvdmJ0OiBkb24n dCBwcm9wYWdhdGUKPiA+IGVycm9ycyBmcm9tIGludGVsX2Jpb3NfaW5pdCgpKQo+ID4gCj4gPiAy LiBPbiBJTEstNjUwIGRlc2t0b3AgLSBUaGlzIHdhcyBoYXBwZW5pbmcgYmVjYXVzZSBvZiBhIGJh ZCBtb25pdG9yIGRlc2t0b3AKPiA+IGNvbWJpbmF0aW9uLiBJIHN3aXRjaGVkIHRoZSBtb25pdG9y IGluIHRoZSBDSSBsYWIgYW5kIHRoYXQgaGVscGVkIGdldCByaWQKPiA+IG9mIHRoZSBsaW5rIGZh aWx1cmVzIG9uIElMSyBzeXN0ZW0uCj4gPiAKPiA+IHYxMDoKPiA+ICogUmViYXNlIG9uIGRybS10 aXAgYW5kIHJlc2VuZCBhZnRlciByZXZlcnQKPiA+IHY5Ogo+ID4gKiBVc2UgdGhlIHRyaW1tZWQg bWF4IHZhbHVlcyBvZiBsaW5rIHJhdGUvbGFuZSBjb3VudCBiYXNlZCBvbgo+ID4gbGluayB0cmFp biBmYWxsYmFjayAoRGFuaWVsIFZldHRlcikKPiA+IHY4Ogo+ID4gKiBTZXQgbGlua19zdGF0dXMg dG8gQkFEIGZpcnN0IGFuZCB0aGVuIGNhbGwgbW9kZV92YWxpZCAoSmFuaSBOaWt1bGEpCj4gPiB2 NzoKPiA+IFJlbW92ZSB0aGUgcmVkdW5kYW50IHZhcmlhYmxlIGluIHByZXZpb3VzIHBhdGNoIGl0 c2VsZgo+ID4gdjY6Cj4gPiAqIE9idGFpbiBsaW5rIHJhdGUgaW5kZXggZnJvbSBmYWxsYmFja19s aW5rX3JhdGUgdXNpbmcKPiA+IHRoZSBoZWxwZXIgaW50ZWxfZHBfbGlua19yYXRlX2luZGV4IChK YW5pIE5pa3VsYSkKPiA+ICogSW5jbHVkZSBmYWxsYmFjayB3aXRoaW4gaW50ZWxfZHBfc3RhcnRf bGlua190cmFpbiAoSmFuaSBOaWt1bGEpCj4gPiB2NToKPiA+ICogTW92ZSBzZXQgbGluayBzdGF0 dXMgdG8gZHJtIGNvcmUgKERhbmllbCBWZXR0ZXIsIEphbmkgTmlrdWxhKQo+ID4gdjQ6Cj4gPiAq IEFkZCBmYWxsYmFjayBzdXBwb3J0IGZvciBub24gRERJIHBsYXRmb3JtcyB0b28KPiA+ICogU2V0 IGNvbm5lY3Rvci0+bGluayBzdGF0dXMgaW5zaWRlIHNldF9saW5rX3N0YXR1cyBmdW5jdGlvbgo+ ID4gKEphbmkgTmlrdWxhKQo+ID4gdjM6Cj4gPiAqIFNldCBsaW5rIHN0YXR1cyBwcm9wZXJ0eSB0 byBCQWQgdW5jb25kaXRpb25hbGx5IChKYW5pIE5pa3VsYSkKPiA+ICogRG9udCB1c2UgdHdvIHNl cGFyYXRlIHZhcmlhYmxlcyBsaW5rX3RyYWluX2ZhaWxlZCBhbmQgbGlua19zdGF0dXMKPiA+IHRv IGluZGljYXRlIHNhbWUgdGhpbmcgKEphbmkgTmlrdWxhKQo+ID4gdjI6Cj4gPiAqIFNxdWFzaGVk IGEgZmV3IHBhdGNoZXMgKEphbmkgTmlrdWxhKQo+ID4gCj4gPiBBY2tlZC1ieTogVG9ueSBDaGVu ZyA8dG9ueS5jaGVuZ0BhbWQuY29tPgo+ID4gQWNrZWQtYnk6IEhhcnJ5IFdlbnRsYW5kIDxIYXJy eS53ZW50bGFuZEBhbWQuY29tPgo+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51 eC5pbnRlbC5jb20+Cj4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5j b20+Cj4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwu Y29tPgo+ID4gUmV2aWV3ZWQtYnk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+ Cj4gPiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyAgICAgICAgICAgICAg IHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIHwgMjIgKysrKysrKysrKysrKysrKysrKystLQo+ ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgICB8ICAzICsr Kwo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkK PiA+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBmZDk2YTZjLi44OTVmOTM0 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTU5MjQsNiArNTkyNCwy OSBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3Rvcl9wb3J0X2luZm8oc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4gPiAgCX0KPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGlj IHZvaWQgaW50ZWxfZHBfbW9kZXNldF9yZXRyeV93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKPiA+ICt7Cj4gPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rv cjsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKPiA+ICsKPiA+ICsJaW50 ZWxfY29ubmVjdG9yID0gY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqaW50ZWxfY29ubmVjdG9y KSwKPiA+ICsJCQkJICAgICAgIG1vZGVzZXRfcmV0cnlfd29yayk7Cj4gPiArCWNvbm5lY3RvciA9 ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7Cj4gPiArCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6 JWQ6JXNdXG4iLCBjb25uZWN0b3ItPmJhc2UuaWQsCj4gPiArCQkgICAgICBjb25uZWN0b3ItPm5h bWUpOwo+ID4gKwo+ID4gKwkvKiBHcmFiIHRoZSBsb2NrcyBiZWZvcmUgY2hhbmdpbmcgY29ubmVj dG9yIHByb3BlcnR5Ki8KPiA+ICsJbXV0ZXhfbG9jaygmY29ubmVjdG9yLT5kZXYtPm1vZGVfY29u ZmlnLm11dGV4KTsKPiA+ICsJLyogU2V0IGNvbm5lY3RvciBsaW5rIHN0YXR1cyB0byBCQUQgYW5k IHNlbmQgYSBVZXZlbnQgdG8gbm90aWZ5Cj4gPiArCSAqIHVzZXJzcGFjZSB0byBkbyBhIG1vZGVz ZXQuCj4gPiArCSAqLwo+ID4gKwlkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVzX3By b3BlcnR5KGNvbm5lY3RvciwKPiA+ICsJCQkJCQkgICAgRFJNX01PREVfTElOS19TVEFUVVNfQkFE KTsKPiA+ICsJbXV0ZXhfdW5sb2NrKCZjb25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcubXV0ZXgp Owo+ID4gKwkvKiBTZW5kIEhvdHBsdWcgdWV2ZW50IHNvIHVzZXJzcGFjZSBjYW4gcmVwcm9iZSAq Lwo+ID4gKwlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGNvbm5lY3Rvci0+ZGV2KTsKPiA+ ICt9Cj4gPiArCj4gPiAgYm9vbAo+ID4gIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ID4gIAkJCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiA+IEBAIC01OTM2LDYgKzU5NTksMTAgQEAgaW50 ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQsCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7Cj4gPiAg CWludCB0eXBlOwo+ID4gIAo+ID4gKwkvKiBJbml0aWFsaXplIHRoZSB3b3JrIGZvciBtb2Rlc2V0 IGluIGNhc2Ugb2YgbGluayB0cmFpbiBmYWlsdXJlICovCj4gPiArCUlOSVRfV09SSygmaW50ZWxf Y29ubmVjdG9yLT5tb2Rlc2V0X3JldHJ5X3dvcmssCj4gPiArCQkgIGludGVsX2RwX21vZGVzZXRf cmV0cnlfd29ya19mbik7Cj4gPiArCj4gPiAgCWlmIChXQVJOKGludGVsX2RpZ19wb3J0LT5tYXhf bGFuZXMgPCAxLAo+ID4gIAkJICJOb3QgZW5vdWdoIGxhbmVzICglZCkgZm9yIERQIG9uIHBvcnQg JWNcbiIsCj4gPiAgCQkgaW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcywgcG9ydF9uYW1lKHBvcnQp KSkKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3Ry YWluaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMK PiA+IGluZGV4IDAwNDhiNTIuLjk1NWIyMzkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYwo+ID4gQEAgLTMxMyw2ICszMTMsMjQgQEAg dm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiA+ICB2b2lkCj4gPiAgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gIHsKPiA+IC0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNv dmVyeShpbnRlbF9kcCk7Cj4gPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5lbF9lcXVh bGl6YXRpb24oaW50ZWxfZHApOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ID4gKwo+ID4gKwlpZiAo IWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHApKQo+ID4gKwkJ Z290byBmYWlsdXJlX2hhbmRsaW5nOwo+ID4gKwlpZiAoIWludGVsX2RwX2xpbmtfdHJhaW5pbmdf Y2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApKQo+ID4gKwkJZ290byBmYWlsdXJlX2hhbmRs aW5nOwo+ID4gKwo+ID4gKwlEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIFBhc3NlZCBhdCBM aW5rIFJhdGUgPSAlZCwgTGFuZSBjb3VudCA9ICVkIiwKPiA+ICsJCSAgICAgIGludGVsX2RwLT5s aW5rX3JhdGUsIGludGVsX2RwLT5sYW5lX2NvdW50KTsKPiA+ICsJcmV0dXJuOwo+ID4gKwo+ID4g KyBmYWlsdXJlX2hhbmRsaW5nOgo+ID4gKwlEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIGZh aWxlZCBhdCBsaW5rIHJhdGUgPSAlZCwgbGFuZSBjb3VudCA9ICVkIiwKPiA+ICsJCSAgICAgIGlu dGVsX2RwLT5saW5rX3JhdGUsIGludGVsX2RwLT5sYW5lX2NvdW50KTsKPiA+ICsJaWYgKCFpbnRl bF9kcF9nZXRfbGlua190cmFpbl9mYWxsYmFja192YWx1ZXMoaW50ZWxfZHAsCj4gPiArCQkJCQkJ ICAgICBpbnRlbF9kcC0+bGlua19yYXRlLAo+ID4gKwkJCQkJCSAgICAgaW50ZWxfZHAtPmxhbmVf Y291bnQpKQo+ID4gKwkJLyogU2NoZWR1bGUgYSBIb3RwbHVnIFVldmVudCB0byB1c2Vyc3BhY2Ug dG8gc3RhcnQgbW9kZXNldCAqLwo+ID4gKwkJc2NoZWR1bGVfd29yaygmaW50ZWxfY29ubmVjdG9y LT5tb2Rlc2V0X3JldHJ5X3dvcmspOwo+IAo+IFRoaXMgaXMgd2hlcmUgdGhlIG5ldyBib29sZWFu IGludGVsX2RwLT50cmFpbl9zZXRfdmFsaWQgd2lsbCBoYXZlIHRvIGJlIHNldCB0byBmYWxzZSBv biBmYWlsdXJlLgo+IFRoaXMgZW5zdXJlcyB0aGF0IHdlIGRvbnQgZW5kIHVwIHJldHJhaW5pbmcg YXQgdGhlIHNhbWUgcGFyYW1ldGVycyBpbiBpbnRlbF9kcF9jaGVja19saW5rX3N0YXR1cygpCj4g Cj4gU28gaW4gaW50ZWxfZHBfY2hlY2stbGlua19zdGF0dXMgLCBqdXN0IGJlZm9yZSByZXRyYWlu aW5nIGl0IHdpbGwgYWRkIGEgY2hlY2ssIAo+IGlmICghaW50ZWxfZHAtPnRyYWluX3NldF92YWxp ZCkKPiByZXR1cm47Cj4gCj4gVmlsbGUvSmFuaSB3aGF0IGFyZSB5b3VyIHRob3VnaHRzIG9uIHRo aXM/Cj4gCj4gUmVnYXJkcwo+IE1hbmFzaQo+IAo+ID4gKwlyZXR1cm47Cj4gPiAgfQo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IDUxMjI4ZmUuLjBmZTFhYzggMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IEBAIC0zMjEsNiArMzIxLDkgQEAgc3RydWN0 IGludGVsX2Nvbm5lY3RvciB7Cj4gPiAgCXZvaWQgKnBvcnQ7IC8qIHN0b3JlIHRoaXMgb3BhcXVl IGFzIGl0cyBpbGxlZ2FsIHRvIGRlcmVmZXJlbmNlIGl0ICovCj4gPiAgCj4gPiAgCXN0cnVjdCBp bnRlbF9kcCAqbXN0X3BvcnQ7Cj4gPiArCj4gPiArCS8qIFdvcmsgc3RydWN0IHRvIHNjaGVkdWxl IGEgdWV2ZW50IG9uIGxpbmsgdHJhaW4gZmFpbHVyZSAqLwo+ID4gKwlzdHJ1Y3Qgd29ya19zdHJ1 Y3QgbW9kZXNldF9yZXRyeV93b3JrOwo+ID4gIH07Cj4gPiAgCj4gPiAgc3RydWN0IGRwbGwgewo+ ID4gLS0gCj4gPiAyLjEuNAo+ID4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=