From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v3 4/4] drm/i915: Implement Link Rate fallback on Link training failure Date: Wed, 09 Nov 2016 15:04:05 +0200 Message-ID: <87mvh8g5yy.fsf@intel.com> References: <1477703245-27375-5-git-send-email-manasi.d.navare@intel.com> <1478120139-10763-1-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 mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id D75F36E697 for ; Wed, 9 Nov 2016 13:04:08 +0000 (UTC) In-Reply-To: <1478120139-10763-1-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 , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAwMiBOb3YgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVs LmNvbT4gd3JvdGU6Cj4gSWYgbGluayB0cmFpbmluZyBhdCBhIGxpbmsgcmF0ZSBvcHRpbWFsIGZv ciBhIHBhcnRpY3VsYXIKPiBtb2RlIGZhaWxzIGR1cmluZyBtb2Rlc2V0J3MgYXRvbWljIGNvbW1p dCBwaGFzZSwgdGhlbiB3ZQo+IGxldCB0aGUgbW9kZXNldCBjb21wbGV0ZSBhbmQgdGhlbiByZXRy eS4gV2Ugc2F2ZSB0aGUgbGluayByYXRlCj4gdmFsdWUgYXQgd2hpY2ggbGluayB0cmFpbmluZyBm YWlsZWQsIHVwZGF0ZSB0aGUgbGluayBzdGF0dXMgcHJvcGVydHkKPiB0byAiQkFEIiBhbmQgdXNl IGEgbG93ZXIgbGluayByYXRlIHRvIHBydW5lIHRoZSBtb2Rlcy4gSXQgd2lsbCByZWRvCj4gdGhl IG1vZGVzZXQgb24gdGhlIGN1cnJlbnQgbW9kZSBhdCBsb3dlciBsaW5rIHJhdGUgb3IgaWYgdGhl IGN1cnJlbnQKPiBtb2RlIGdldHMgcHJ1bmVkIGR1ZSB0byBsb3dlciBsaW5rIGNvbnN0cmFpbnRz IHRoZW4sIGl0IHdpbGwgc2VuZCBhCj4gaG90cGx1ZyB1ZXZlbnQgZm9yIHVzZXJzcGFjZSB0byBo YW5kbGUgaXQuCj4KPiBUaGlzIGlzIGFsc28gcmVxdWlyZWQgdG8gcGFzcyBEUCBDVFMgdGVzdHMg NC4zLjEuMywgNC4zLjEuNCwKPiA0LjMuMS42Lgo+Cj4gdjM6Cj4gKiBTZXQgbGluayBzdGF0dXMg cHJvcGVydHkgdG8gQkFkIHVuY29uZGl0aW9uYWxseSAoSmFuaSBOaWt1bGEpCj4gKiBEb250IHVz ZSB0d28gc2VwYXJhdGUgdmFyaWFibGVzIGxpbmtfdHJhaW5fZmFpbGVkIGFuZCBsaW5rX3N0YXR1 cwo+IHRvIGluZGljYXRlIHNhbWUgdGhpbmcgKEphbmkgTmlrdWxhKQo+IHYyOgo+ICogU3F1YXNo ZWQgYSBmZXcgcGF0Y2hlcyAoSmFuaSBOaWt1bGEpCj4KPiBDYzogSmFuaSBOaWt1bGEgPGphbmku bmlrdWxhQGxpbnV4LmludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBpbnRlbC5jb20+Cj4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBp bnRlbC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jICAg ICAgICAgICB8ICA3ICsrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgICAg ICAgICAgICAgfCAyMiArKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu YyAgICAgICAgICAgICAgIHwgNzAgKysrKysrKysrKysrKysrKysrKysrKysrLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYyB8IDEyICsrKy0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICAgICB8ICA2ICsrLQo+ICA1 IGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXggNzVhZDAxZC4uOTRiMGIzYSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gQEAgLTUxOSw2ICs1MTksMTMgQEAg c3RhdGljIGludCBoYW5kbGVfY29uZmxpY3RpbmdfZW5jb2RlcnMoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlLAo+ICAJCQkJCSAgICAgICBjb25uZWN0b3Jfc3RhdGUpOwo+ICAJCWlmIChy ZXQpCj4gIAkJCXJldHVybiByZXQ7Cj4gKwo+ICsJCWlmIChjb25uZWN0b3ItPnN0YXRlLT5jcnRj KSB7Cj4gKwkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRl KHN0YXRlLAo+ICsJCQkJCQkJCQljb25uZWN0b3ItPnN0YXRlLT5jcnRjKTsKPiArCQkJaWYgKGNv bm5lY3Rvci0+bGlua19zdGF0dXMgPT0gRFJNX01PREVfTElOS19TVEFUVVNfQkFEKQo+ICsJCQkJ Y3J0Y19zdGF0ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0gdHJ1ZTsKPiArCQl9Cj4gIAl9CgpDb3Vs ZCB0aGlzIGJlIGEgc2VwYXJhdGUgcGF0Y2g/IEFueXdheSBuZWVkcyB0byBiZSBwb3N0ZWQgb24g ZHJpLWRldmVsLgoKPiAgCj4gIAkvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gaW5kZXgg OTM4YWM0ZC4uYTU5ZjhkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTE2 ODQsNiArMTY4NCw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9 IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCWVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29u bmVjdG9yOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25u ZWN0b3ItPmJhc2U7Cj4gIAo+ICAJaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKGludGVsX2RwLCBs aW5rX3JhdGUsIGxhbmVfY291bnQsCj4gIAkJCQkgbGlua19tc3QpOwo+IEBAIC0xNjk0LDcgKzE2 OTYsMjUgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAlpbnRlbF9wcmVwYXJlX2RwX2RkaV9idWZmZXJzKGVuY29k ZXIpOwo+ICAJaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhlbmNvZGVyKTsKPiAgCWludGVsX2Rw X3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PTik7Cj4gLQlpbnRlbF9kcF9zdGFy dF9saW5rX3RyYWluKGludGVsX2RwKTsKPiArCWlmICghaW50ZWxfZHBfc3RhcnRfbGlua190cmFp bihpbnRlbF9kcCkpIHsKPiArCQlEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIGZhaWxlZCBh dCBsaW5rIHJhdGUgPSAlZCwgbGFuZSBjb3VudCA9ICVkIiwKPiArCQkJICAgICAgbGlua19yYXRl LCBsYW5lX2NvdW50KTsKPiArCQljb25uZWN0b3ItPmxpbmtfc3RhdHVzID0gRFJNX01PREVfTElO S19TVEFUVVNfQkFEOwoKV2h5IGRvZXMgdGhpcyBub3QgdXNlIGludGVsX2RwX3NldF9saW5rX3N0 YXR1c19wcm9wZXJ0eSgpPwoKPiArCQlpbnRlbF9kcF9nZXRfbGlua190cmFpbl9mYWxsYmFja192 YWx1ZXMoaW50ZWxfZHAsIGxpbmtfcmF0ZSwKPiArCQkJCQkJCWxhbmVfY291bnQpOwo+ICsJCS8q IFNjaGVkdWxlIGEgSG90cGx1ZyBVZXZlbnQgdG8gdXNlcnNwYWNlIHRvIHN0YXJ0IG1vZGVzZXQg Ki8KPiArCQlzY2hlZHVsZV93b3JrKCZpbnRlbF9jb25uZWN0b3ItPm1vZGVzZXRfcmV0cnlfd29y ayk7Cj4gKwl9IGVsc2Ugewo+ICsJCURSTV9ERUJVR19LTVMoIkxpbmsgVHJhaW5pbmcgUGFzc2Vk IGF0IExpbmsgUmF0ZSA9ICVkLCBMYW5lIGNvdW50ID0gJWQiLAo+ICsJCQkgICAgICBsaW5rX3Jh dGUsIGxhbmVfY291bnQpOwo+ICsJCWludGVsX2RwLT5mYWxsYmFja19saW5rX3JhdGVfaW5kZXgg PSAtMTsKPiArCQlpbnRlbF9kcC0+ZmFsbGJhY2tfbGlua19yYXRlID0gMDsKPiArCQlpbnRlbF9k cC0+ZmFsbGJhY2tfbGFuZV9jb3VudCA9IDA7Cj4gKwkJY29ubmVjdG9yLT5saW5rX3N0YXR1cyA9 IERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0Q7Cj4gKwkJaW50ZWxfZHBfc2V0X2xpbmtfc3RhdHVz X3Byb3BlcnR5KGNvbm5lY3RvciwKPiArCQkJCQkJICBEUk1fTU9ERV9MSU5LX1NUQVRVU19HT09E KTsKPiArCX0KPiArCj4gIAlpZiAocG9ydCAhPSBQT1JUX0EgfHwgSU5URUxfR0VOKGRldl9wcml2 KSA+PSA5KQo+ICAJCWludGVsX2RwX3N0b3BfbGlua190cmFpbihpbnRlbF9kcCk7Cj4gIH0KPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiBpbmRleCBmYjRmY2RkLi42NTliMTdmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gQEAgLTMxMCw5ICszMTAsNiBAQCB2b2lkIGludGVsX2RwX2dl dF9saW5rX3RyYWluX2ZhbGxiYWNrX3ZhbHVlcyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ ICAJaW50IGNvbW1vbl9sZW47Cj4gIAlpbnQgbGlua19yYXRlX2luZGV4ID0gLTE7Cj4gIAo+IC0J aWYgKCFpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWQpCj4gLQkJcmV0dXJuOwo+IC0KCllvdSBh ZGQgdGhpcyBpbiBhbiBlYXJsaWVyIHBhdGNoIGFuZCBub3cgcmVtb3ZlIGl0PwoKPiAgCWNvbW1v bl9sZW4gPSBpbnRlbF9kcF9jb21tb25fcmF0ZXMoaW50ZWxfZHAsIGNvbW1vbl9yYXRlcyk7Cj4g IAlsaW5rX3JhdGVfaW5kZXggPSBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoaW50ZWxfZHAsCj4g IAkJCQkJCSAgIGNvbW1vbl9yYXRlcywKPiBAQCAtMzI3LDcgKzMyNCw2IEBAIHZvaWQgaW50ZWxf ZHBfZ2V0X2xpbmtfdHJhaW5fZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsCj4gIAkJaW50ZWxfZHAtPmZhbGxiYWNrX2xhbmVfY291bnQgPSBsYW5lX2NvdW50ID4+IDE7 Cj4gIAl9IGVsc2Ugewo+ICAJCURSTV9FUlJPUigiTGluayBUcmFpbmluZyBVbnN1Y2Nlc3NmdWxc biIpOwo+IC0JCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZCA9IGZhbHNlOwo+ICAJfQo+ICB9 Cj4gIAo+IEBAIC0zNTQsOCArMzUwLDE0IEBAIHZvaWQgaW50ZWxfZHBfZ2V0X2xpbmtfdHJhaW5f ZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAkJdGFyZ2V0X2Ns b2NrID0gZml4ZWRfbW9kZS0+Y2xvY2s7Cj4gIAl9Cj4gIAo+IC0JbWF4X2xpbmtfY2xvY2sgPSBp bnRlbF9kcF9tYXhfbGlua19yYXRlKGludGVsX2RwKTsKPiAtCW1heF9sYW5lcyA9IGludGVsX2Rw X21heF9sYW5lX2NvdW50KGludGVsX2RwKTsKPiArCS8qIFBydW5lIHRoZSBtb2RlcyB1c2luZyB0 aGUgZmFsbGJhY2sgbGluayByYXRlL2xhbmUgY291bnQgKi8KPiArCWlmIChjb25uZWN0b3ItPmxp bmtfc3RhdHVzID09IERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCkgewo+ICsJCW1heF9saW5rX2Ns b2NrID0gaW50ZWxfZHAtPmZhbGxiYWNrX2xpbmtfcmF0ZTsKPiArCQltYXhfbGFuZXMgPSBpbnRl bF9kcC0+ZmFsbGJhY2tfbGFuZV9jb3VudDsKPiArCX0gZWxzZSB7Cj4gKwkJbWF4X2xpbmtfY2xv Y2sgPSBpbnRlbF9kcF9tYXhfbGlua19yYXRlKGludGVsX2RwKTsKPiArCQltYXhfbGFuZXMgPSBp bnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gKwl9Cj4gIAo+ICAJbWF4X3JhdGUg PSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKG1heF9saW5rX2Nsb2NrLCBtYXhfbGFuZXMpOwo+ICAJ bW9kZV9yYXRlID0gaW50ZWxfZHBfbGlua19yZXF1aXJlZCh0YXJnZXRfY2xvY2ssIDE4KTsKPiBA QCAtMTU5Myw2ICsxNTk1LDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRlX2JwcChzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9y dChpbnRlbF9kcCktPnBvcnQ7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMocGlwZV9jb25maWctPmJhc2UuY3J0Yyk7Cj4gIAlzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IgPSBpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJh c2U7Cj4gIAlpbnQgbGFuZV9jb3VudCwgY2xvY2s7Cj4gIAlpbnQgbWluX2xhbmVfY291bnQgPSAx Owo+ICAJaW50IG1heF9sYW5lX2NvdW50ID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQoaW50ZWxf ZHApOwo+IEBAIC0xNjQwLDYgKzE2NDMsMTIgQEAgc3RhdGljIGludCBpbnRlbF9kcF9jb21wdXRl X2JwcChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ICAJaWYgKGFkanVzdGVkX21vZGUtPmZs YWdzICYgRFJNX01PREVfRkxBR19EQkxDTEspCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAKPiArCS8q IEZhbGwgYmFjayB0byBsb3dlciBsaW5rIHJhdGUgaW4gY2FzZSBvZiBmYWlsdXJlIGluIHByZXZp b3VzIG1vZGVzZXQgKi8KPiArCWlmIChjb25uZWN0b3ItPmxpbmtfc3RhdHVzID09IERSTV9NT0RF X0xJTktfU1RBVFVTX0JBRCkgewo+ICsJCW1pbl9sYW5lX2NvdW50ID0gbWF4X2xhbmVfY291bnQg PSBpbnRlbF9kcC0+ZmFsbGJhY2tfbGFuZV9jb3VudDsKPiArCQltaW5fY2xvY2sgPSBtYXhfY2xv Y2sgPSBpbnRlbF9kcC0+ZmFsbGJhY2tfbGlua19yYXRlX2luZGV4Owo+ICsJfQo+ICsKPiAgCURS TV9ERUJVR19LTVMoIkRQIGxpbmsgY29tcHV0YXRpb24gd2l0aCBtYXggbGFuZSBjb3VudCAlaSAi Cj4gIAkJICAgICAgIm1heCBidyAlZCBwaXhlbCBjbG9jayAlaUtIelxuIiwKPiAgCQkgICAgICBt YXhfbGFuZV9jb3VudCwgY29tbW9uX3JhdGVzW21heF9jbG9ja10sCj4gQEAgLTQ0MjMsNiArNDQz MiwxMiBAQCBzdGF0aWMgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0 X2FjdGl2ZSA9IDA7Cj4gIAkJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF90eXBlID0gMDsKPiAg CQlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X2RhdGEgPSAwOwo+ICsJCWludGVsX2RwLT5mYWxs YmFja19saW5rX3JhdGVfaW5kZXggPSAtMTsKPiArCQlpbnRlbF9kcC0+ZmFsbGJhY2tfbGlua19y YXRlID0gMDsKPiArCQlpbnRlbF9kcC0+ZmFsbGJhY2tfbGFuZV9jb3VudCA9IDA7Cj4gKwkJY29u bmVjdG9yLT5saW5rX3N0YXR1cyA9IERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0Q7Cj4gKwkJaW50 ZWxfZHBfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KGNvbm5lY3RvciwKPiArCQkJCQkJICBEUk1f TU9ERV9MSU5LX1NUQVRVU19HT09EKTsKClNlZW1zIGxpa2UgaXQgd291bGQgYmUgYSBnb29kIGlk ZWEgdG8gaGF2ZSB0aGlzCmludGVsX2RwX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eSgpIGhlbHBl ciBzZXQgY29ubmVjdG9yLT5saW5rX3N0YXR1cwp0b28uCgo+ICAKPiAgCQlpZiAoaW50ZWxfZHAt PmlzX21zdCkgewo+ICAJCQlEUk1fREVCVUdfS01TKCJNU1QgZGV2aWNlIG1heSBoYXZlIGRpc2Fw cGVhcmVkICVkIHZzICVkXG4iLAo+IEBAIC00NTE0LDYgKzQ1MjksMTEgQEAgc3RhdGljIGJvb2wg aW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKPiAgCQkgICAg ICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gIAo+ICsJLyogSWYgdGhp cyBpcyBhIHJldHJ5IGR1ZSB0byBsaW5rIHRyaWFuaW5nIGZhaWx1cmUgKi8KPiArCWlmIChzdGF0 dXMgPT0gY29ubmVjdG9yX3N0YXR1c19jb25uZWN0ZWQgJiYKPiArCSAgICBjb25uZWN0b3ItPmxp bmtfc3RhdHVzID09IERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCkKPiArCQlyZXR1cm4gc3RhdHVz Owo+ICsKPiAgCS8qIElmIGZ1bGwgZGV0ZWN0IGlzIG5vdCBwZXJmb3JtZWQgeWV0LCBkbyBhIGZ1 bGwgZGV0ZWN0ICovCj4gIAlpZiAoIWludGVsX2RwLT5kZXRlY3RfZG9uZSkKPiAgCQlzdGF0dXMg PSBpbnRlbF9kcF9sb25nX3B1bHNlKGludGVsX2RwLT5hdHRhY2hlZF9jb25uZWN0b3IpOwo+IEBA IC01NjkyLDYgKzU3MTIsNDAgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRfY29ubmVjdG9y KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gIAlyZXR1cm4gZmFsc2U7Cj4gIH0KPiAgCj4g K3N0YXRpYyB2b2lkIGludGVsX2RwX21vZGVzZXRfcmV0cnlfd29ya19mbihzdHJ1Y3Qgd29ya19z dHJ1Y3QgKndvcmspCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5l Y3RvcjsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZTsKPiArCWJvb2wgdmVyYm9zZV9wcnVuZSA9IHRydWU7Cj4gKwo+ ICsJaW50ZWxfY29ubmVjdG9yID0gY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqaW50ZWxfY29u bmVjdG9yKSwKPiArCQkJCSAgICAgICBtb2Rlc2V0X3JldHJ5X3dvcmspOwo+ICsJY29ubmVjdG9y ID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPiArCj4gKwkvKiBHcmFiIHRoZSBsb2NrcyBiZWZv cmUgY2hhbmdpbmcgY29ubmVjdG9yIHByb3BlcnR5Ki8KPiArCW11dGV4X2xvY2soJmNvbm5lY3Rv ci0+ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gKwlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9S OiVkOiVzXVxuIiwgY29ubmVjdG9yLT5iYXNlLmlkLAo+ICsJCSAgICAgIGNvbm5lY3Rvci0+bmFt ZSk7Cj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPm1vZGVzLCBoZWFk KSB7Cj4gKwkJbW9kZS0+c3RhdHVzID0gaW50ZWxfZHBfbW9kZV92YWxpZChjb25uZWN0b3IsCj4g KwkJCQkJCSAgIG1vZGUpOwo+ICsJfQo+ICsJZHJtX21vZGVfcHJ1bmVfaW52YWxpZChjb25uZWN0 b3ItPmRldiwgJmNvbm5lY3Rvci0+bW9kZXMsCj4gKwkJCSAgICAgICB2ZXJib3NlX3BydW5lKTsK PiArCj4gKwkvKiBTZXQgY29ubmVjdG9yIGxpbmsgc3RhdHVzIHRvIEJBRCBhbmQgc2VuZCBhIFVl dmVudCB0byBub3RpZnkKPiArCSAqIHVzZXJzcGFjZSB0byBkbyBhIG1vZGVzZXQuCj4gKwkgKi8K PiArCWNvbm5lY3Rvci0+bGlua19zdGF0dXMgPSBEUk1fTU9ERV9MSU5LX1NUQVRVU19CQUQ7Cj4g KwlpbnRlbF9kcF9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkoY29ubmVjdG9yLAo+ICsJCQkJCSAg RFJNX01PREVfTElOS19TVEFUVVNfQkFEKTsKPiArCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5k ZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiArCj4gKwkvKiBTZW5kIEhvdHBsdWcgdWV2ZW50IHNv IHVzZXJzcGFjZSBjYW4gcmVwcm9iZSAqLwo+ICsJZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVu dChjb25uZWN0b3ItPmRldik7Cj4gK30KPiArCj4gIGJvb2wKPiAgaW50ZWxfZHBfaW5pdF9jb25u ZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAkJCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiBAQCAtNTcwNCw2ICs1NzU4 LDEwIEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwLAo+ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsK PiAgCWludCB0eXBlOwo+ICAKPiArCS8qIEluaXRpYWxpemUgdGhlIHdvcmsgZm9yIG1vZGVzZXQg aW4gY2FzZSBvZiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KPiArCUlOSVRfV09SSygmaW50ZWxfY29u bmVjdG9yLT5tb2Rlc2V0X3JldHJ5X3dvcmssCj4gKwkJICBpbnRlbF9kcF9tb2Rlc2V0X3JldHJ5 X3dvcmtfZm4pOwo+ICsKPiAgCWlmIChXQVJOKGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPCAx LAo+ICAJCSAiTm90IGVub3VnaCBsYW5lcyAoJWQpIGZvciBEUCBvbiBwb3J0ICVjXG4iLAo+ICAJ CSBpbnRlbF9kaWdfcG9ydC0+bWF4X2xhbmVzLCBwb3J0X25hbWUocG9ydCkpKQo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiBpbmRleCAwMDQ4YjUy Li4xMGY4MWFiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xp bmtfdHJhaW5pbmcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtf dHJhaW5pbmcuYwo+IEBAIC0zMTAsOSArMzEwLDE1IEBAIHZvaWQgaW50ZWxfZHBfc3RvcF9saW5r X3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAkJCQlEUF9UUkFJTklOR19QQVRU RVJOX0RJU0FCTEUpOwo+ICB9Cj4gIAo+IC12b2lkCj4gK2Jvb2wKPiAgaW50ZWxfZHBfc3RhcnRf bGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICB7Cj4gLQlpbnRlbF9kcF9s aW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsKPiAtCWludGVsX2RwX2xpbmtf dHJhaW5pbmdfY2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApOwo+ICsJYm9vbCByZXQ7Cj4g Kwo+ICsJaWYgKGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3ZlcnkoaW50ZWxfZHAp KSB7Cj4gKwkJcmV0ID0gaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlv bihpbnRlbF9kcCk7Cj4gKwkJaWYgKHJldCkKPiArCQkJcmV0dXJuIHRydWU7Cj4gKwl9Cj4gKwly ZXR1cm4gZmFsc2U7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IGJjMjVi MmIuLmMwMzc4YTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IEBAIC0zMTIsNiAr MzEyLDkgQEAgc3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4gIAl2b2lkICpwb3J0OyAvKiBzdG9y ZSB0aGlzIG9wYXF1ZSBhcyBpdHMgaWxsZWdhbCB0byBkZXJlZmVyZW5jZSBpdCAqLwo+ICAKPiAg CXN0cnVjdCBpbnRlbF9kcCAqbXN0X3BvcnQ7Cj4gKwo+ICsJLyogV29yayBzdHJ1Y3QgdG8gc2No ZWR1bGUgYSB1ZXZlbnQgb24gbGluayB0cmFpbiBmYWlsdXJlICovCj4gKwlzdHJ1Y3Qgd29ya19z dHJ1Y3QgbW9kZXNldF9yZXRyeV93b3JrOwo+ICB9Owo+ICAKPiAgc3RydWN0IGRwbGwgewo+IEBA IC05MDAsNyArOTAzLDYgQEAgc3RydWN0IGludGVsX2RwIHsKPiAgCWludCBmYWxsYmFja19saW5r X3JhdGU7Cj4gIAl1aW50OF90IGZhbGxiYWNrX2xhbmVfY291bnQ7Cj4gIAlpbnQgZmFsbGJhY2tf bGlua19yYXRlX2luZGV4Owo+IC0JYm9vbCBsaW5rX3RyYWluX2ZhaWxlZDsKPiAgCXVpbnQ4X3Qg c2lua19jb3VudDsKPiAgCWJvb2wgbGlua19tc3Q7Cj4gIAlib29sIGhhc19hdWRpbzsKPiBAQCAt MTQwMiw3ICsxNDA0LDcgQEAgdm9pZCBpbnRlbF9kcF9zZXRfbGlua19wYXJhbXMoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwKPiAgCQkJICAgICAgYm9vbCBsaW5rX21zdCk7Cj4gIHZvaWQgaW50 ZWxfZHBfZ2V0X2xpbmtfdHJhaW5fZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsCj4gIAkJCQkJICAgICBpbnQgbGlua19yYXRlLCB1aW50OF90IGxhbmVfY291bnQpOwo+ IC12b2lkIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9k cCk7Cj4gK2Jvb2wgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKTsKPiAgdm9pZCBpbnRlbF9kcF9zdG9wX2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCk7Cj4gIHZvaWQgaW50ZWxfZHBfc2lua19kcG1zKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsIGludCBtb2RlKTsKPiAgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7CgotLSAKSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291 cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=