From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 5/5] drm/i915: Implement Link Rate fallback on Link training failure Date: Fri, 18 Nov 2016 07:29:51 -0800 Message-ID: <20161118152951.GB28799@intel.com> References: <1479453200-27705-6-git-send-email-manasi.d.navare@intel.com> <1479454189-28345-1-git-send-email-manasi.d.navare@intel.com> <87shqoykvv.fsf@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: <87shqoykvv.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBOb3YgMTgsIDIwMTYgYXQgMDM6MzE6NDhQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gRnJpLCAxOCBOb3YgMjAxNiwgTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJl QGludGVsLmNvbT4gd3JvdGU6Cj4gPiBJZiBsaW5rIHRyYWluaW5nIGF0IGEgbGluayByYXRlIG9w dGltYWwgZm9yIGEgcGFydGljdWxhcgo+ID4gbW9kZSBmYWlscyBkdXJpbmcgbW9kZXNldCdzIGF0 b21pYyBjb21taXQgcGhhc2UsIHRoZW4gd2UKPiA+IGxldCB0aGUgbW9kZXNldCBjb21wbGV0ZSBh bmQgdGhlbiByZXRyeS4gV2Ugc2F2ZSB0aGUgbGluayByYXRlCj4gPiB2YWx1ZSBhdCB3aGljaCBs aW5rIHRyYWluaW5nIGZhaWxlZCwgdXBkYXRlIHRoZSBsaW5rIHN0YXR1cyBwcm9wZXJ0eQo+ID4g dG8gIkJBRCIgYW5kIHVzZSBhIGxvd2VyIGxpbmsgcmF0ZSB0byBwcnVuZSB0aGUgbW9kZXMuIEl0 IHdpbGwgcmVkbwo+ID4gdGhlIG1vZGVzZXQgb24gdGhlIGN1cnJlbnQgbW9kZSBhdCBsb3dlciBs aW5rIHJhdGUgb3IgaWYgdGhlIGN1cnJlbnQKPiA+IG1vZGUgZ2V0cyBwcnVuZWQgZHVlIHRvIGxv d2VyIGxpbmsgY29uc3RyYWludHMgdGhlbiwgaXQgd2lsbCBzZW5kIGEKPiA+IGhvdHBsdWcgdWV2 ZW50IGZvciB1c2Vyc3BhY2UgdG8gaGFuZGxlIGl0Lgo+ID4KPiA+IFRoaXMgaXMgYWxzbyByZXF1 aXJlZCB0byBwYXNzIERQIENUUyB0ZXN0cyA0LjMuMS4zLCA0LjMuMS40LAo+ID4gNC4zLjEuNi4K PiA+Cj4gPiB2NzoKPiA+IFJlbW92ZSB0aGUgcmVkdW5kYW50IHZhcmlhYmxlIGluIHByZXZpb3Vz IHBhdGNoIGl0c2VsZgo+ID4gdjY6Cj4gPiAqIE9idGFpbiBsaW5rIHJhdGUgaW5kZXggZnJvbSBm YWxsYmFja19saW5rX3JhdGUgdXNpbmcKPiA+IHRoZSBoZWxwZXIgaW50ZWxfZHBfbGlua19yYXRl X2luZGV4IChKYW5pIE5pa3VsYSkKPiA+ICogSW5jbHVkZSBmYWxsYmFjayB3aXRoaW4gaW50ZWxf ZHBfc3RhcnRfbGlua190cmFpbiAoSmFuaSBOaWt1bGEpCj4gPiB2NToKPiA+ICogTW92ZSBzZXQg bGluayBzdGF0dXMgdG8gZHJtIGNvcmUgKERhbmllbCBWZXR0ZXIsIEphbmkgTmlrdWxhKQo+ID4g djQ6Cj4gPiAqIEFkZCBmYWxsYmFjayBzdXBwb3J0IGZvciBub24gRERJIHBsYXRmb3JtcyB0b28K PiA+ICogU2V0IGNvbm5lY3Rvci0+bGluayBzdGF0dXMgaW5zaWRlIHNldF9saW5rX3N0YXR1cyBm dW5jdGlvbgo+ID4gKEphbmkgTmlrdWxhKQo+ID4gdjM6Cj4gPiAqIFNldCBsaW5rIHN0YXR1cyBw cm9wZXJ0eSB0byBCQWQgdW5jb25kaXRpb25hbGx5IChKYW5pIE5pa3VsYSkKPiA+ICogRG9udCB1 c2UgdHdvIHNlcGFyYXRlIHZhcmlhYmxlcyBsaW5rX3RyYWluX2ZhaWxlZCBhbmQgbGlua19zdGF0 dXMKPiA+IHRvIGluZGljYXRlIHNhbWUgdGhpbmcgKEphbmkgTmlrdWxhKQo+ID4gdjI6Cj4gPiAq IFNxdWFzaGVkIGEgZmV3IHBhdGNoZXMgKEphbmkgTmlrdWxhKQo+ID4KPiA+IEFja2VkLWJ5OiBU b255IENoZW5nIDx0b255LmNoZW5nQGFtZC5jb20+Cj4gPiBBY2tlZC1ieTogSGFycnkgV2VudGxh bmQgPEhhcnJ5LndlbnRsYW5kQGFtZC5jb20+Cj4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlr dWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVy QGludGVsLmNvbT4KPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFy ZUBpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5j ICAgICAgICAgICAgICAgfCA2MyArKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgfCAyOCArKysrKysrKysr Ky0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAg MyArKwo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMo LSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IGluZGV4IDRmYjg5ZTEuLmE1NmEz NGQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBAQCAtMzUxLDggKzM1MSwx NCBAQCBpbnQgaW50ZWxfZHBfZ2V0X2xpbmtfdHJhaW5fZmFsbGJhY2tfdmFsdWVzKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCQl0YXJnZXRfY2xvY2sgPSBmaXhlZF9tb2RlLT5jbG9j azsKPiA+ICAJfQo+ID4gIAo+ID4gLQltYXhfbGlua19jbG9jayA9IGludGVsX2RwX21heF9saW5r X3JhdGUoaW50ZWxfZHApOwo+ID4gLQltYXhfbGFuZXMgPSBpbnRlbF9kcF9tYXhfbGFuZV9jb3Vu dChpbnRlbF9kcCk7Cj4gPiArCS8qIFBydW5lIHRoZSBtb2RlcyB1c2luZyB0aGUgZmFsbGJhY2sg bGluayByYXRlL2xhbmUgY291bnQgKi8KPiA+ICsJaWYgKGNvbm5lY3Rvci0+bGlua19zdGF0dXMg PT0gRFJNX01PREVfTElOS19TVEFUVVNfQkFEKSB7Cj4gPiArCQltYXhfbGlua19jbG9jayA9IGlu dGVsX2RwLT5mYWxsYmFja19saW5rX3JhdGU7Cj4gPiArCQltYXhfbGFuZXMgPSBpbnRlbF9kcC0+ ZmFsbGJhY2tfbGFuZV9jb3VudDsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCW1heF9saW5rX2Nsb2Nr ID0gaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShpbnRlbF9kcCk7Cj4gPiArCQltYXhfbGFuZXMgPSBp bnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRlbF9kcCk7Cj4gPiArCX0KPiA+ICAKPiA+ICAJbWF4 X3JhdGUgPSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKG1heF9saW5rX2Nsb2NrLCBtYXhfbGFuZXMp Owo+ID4gIAltb2RlX3JhdGUgPSBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKHRhcmdldF9jbG9jaywg MTgpOwo+ID4gQEAgLTE1ODgsNiArMTU5NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29tcHV0 ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBk cF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKPiA+ICAJ c3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHAtPmF0dGFj aGVkX2Nvbm5lY3RvcjsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZp bnRlbF9jb25uZWN0b3ItPmJhc2U7Cj4gPiAgCWludCBsYW5lX2NvdW50LCBjbG9jazsKPiA+ICAJ aW50IG1pbl9sYW5lX2NvdW50ID0gMTsKPiA+ICAJaW50IG1heF9sYW5lX2NvdW50ID0gaW50ZWxf ZHBfbWF4X2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4gQEAgLTE2MzUsNiArMTY0MiwxNCBAQCBz dGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAs Cj4gPiAgCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMQ0xLKQo+ ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gIAo+ID4gKwkvKiBGYWxsIGJhY2sgdG8gbG93ZXIgbGlu ayByYXRlIGluIGNhc2Ugb2YgZmFpbHVyZSBpbiBwcmV2aW91cyBtb2Rlc2V0ICovCj4gPiArCWlm IChjb25uZWN0b3ItPmxpbmtfc3RhdHVzID09IERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCkgewo+ ID4gKwkJbWluX2xhbmVfY291bnQgPSBtYXhfbGFuZV9jb3VudCA9IGludGVsX2RwLT5mYWxsYmFj a19sYW5lX2NvdW50Owo+ID4gKwkJbWluX2Nsb2NrID0gbWF4X2Nsb2NrID0gaW50ZWxfZHBfbGlu a19yYXRlX2luZGV4KGludGVsX2RwLAo+ID4gKwkJCQkJCQkJIGNvbW1vbl9yYXRlcywKPiA+ICsJ CQkJCQkJCSBpbnRlbF9kcC0+ZmFsbGJhY2tfbGlua19yYXRlKTsKPiA+ICsJfQo+ID4gKwo+ID4g IAlEUk1fREVCVUdfS01TKCJEUCBsaW5rIGNvbXB1dGF0aW9uIHdpdGggbWF4IGxhbmUgY291bnQg JWkgIgo+ID4gIAkJICAgICAgIm1heCBidyAlZCBwaXhlbCBjbG9jayAlaUtIelxuIiwKPiA+ICAJ CSAgICAgIG1heF9sYW5lX2NvdW50LCBjb21tb25fcmF0ZXNbbWF4X2Nsb2NrXSwKPiA+IEBAIC00 NDE1LDYgKzQ0MzAsMTAgQEAgc3RhdGljIGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5lY3Rl ZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCQlpbnRlbF9kcC0+Y29t cGxpYW5jZV90ZXN0X2FjdGl2ZSA9IDA7Cj4gPiAgCQlpbnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0 X3R5cGUgPSAwOwo+ID4gIAkJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9kYXRhID0gMDsKPiA+ ICsJCWludGVsX2RwLT5mYWxsYmFja19saW5rX3JhdGUgPSAwOwo+ID4gKwkJaW50ZWxfZHAtPmZh bGxiYWNrX2xhbmVfY291bnQgPSAwOwo+ID4gKwkJZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5r X3N0YXR1c19wcm9wZXJ0eShjb25uZWN0b3IsCj4gPiArCQkJCQkJCSAgICBEUk1fTU9ERV9MSU5L X1NUQVRVU19HT09EKTsKPiA+ICAKPiA+ICAJCWlmIChpbnRlbF9kcC0+aXNfbXN0KSB7Cj4gPiAg CQkJRFJNX0RFQlVHX0tNUygiTVNUIGRldmljZSBtYXkgaGF2ZSBkaXNhcHBlYXJlZCAlZCB2cyAl ZFxuIiwKPiA+IEBAIC00NTA2LDYgKzQ1MjUsMTEgQEAgc3RhdGljIGJvb2wgaW50ZWxfZGlnaXRh bF9wb3J0X2Nvbm5lY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAg CURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLAo+ID4gIAkJICAgICAgY29ubmVj dG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOwo+ID4gIAo+ID4gKwkvKiBJZiB0aGlzIGlz IGEgcmV0cnkgZHVlIHRvIGxpbmsgdHJpYW5pbmcgZmFpbHVyZSAqLwo+ID4gKwlpZiAoc3RhdHVz ID09IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkICYmCj4gPiArCSAgICBjb25uZWN0b3ItPmxp bmtfc3RhdHVzID09IERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCkKPiA+ICsJCXJldHVybiBzdGF0 dXM7Cj4gPiArCj4gPiAgCS8qIElmIGZ1bGwgZGV0ZWN0IGlzIG5vdCBwZXJmb3JtZWQgeWV0LCBk byBhIGZ1bGwgZGV0ZWN0ICovCj4gPiAgCWlmICghaW50ZWxfZHAtPmRldGVjdF9kb25lKQo+ID4g IAkJc3RhdHVzID0gaW50ZWxfZHBfbG9uZ19wdWxzZShpbnRlbF9kcC0+YXR0YWNoZWRfY29ubmVj dG9yKTsKPiA+IEBAIC01NjcxLDYgKzU2OTUsMzcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2lu aXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAgCXJldHVybiBmYWxz ZTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIHZvaWQgaW50ZWxfZHBfbW9kZXNldF9yZXRyeV93 b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ICt7Cj4gPiArCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcjsKPiA+ICsJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcjsKPiA+ICsJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGU7Cj4gPiArCWJv b2wgdmVyYm9zZV9wcnVuZSA9IHRydWU7Cj4gCj4gTml0cGljaywgdG90YWxseSB1bm5lY2Vzc2Fy eSB0ZW1wb3JhcnkgdmFyaWFibGUuCj4KCk9rLCB0aGVuIGRpcmVjdGx5IHVzZSB0cnVlIHdoaWxl IGNhbGxpbmcgdGhlIGRybV9wcnVuZV9pbnZhbGlkIGZ1bmN0aW9uPwoKIAo+ID4gKwo+ID4gKwlp bnRlbF9jb25uZWN0b3IgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCppbnRlbF9jb25uZWN0 b3IpLAo+ID4gKwkJCQkgICAgICAgbW9kZXNldF9yZXRyeV93b3JrKTsKPiA+ICsJY29ubmVjdG9y ID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPiA+ICsKPiA+ICsJLyogR3JhYiB0aGUgbG9ja3Mg YmVmb3JlIGNoYW5naW5nIGNvbm5lY3RvciBwcm9wZXJ0eSovCj4gPiArCW11dGV4X2xvY2soJmNv bm5lY3Rvci0+ZGV2LT5tb2RlX2NvbmZpZy5tdXRleCk7Cj4gPiArCURSTV9ERUJVR19LTVMoIltD T05ORUNUT1I6JWQ6JXNdXG4iLCBjb25uZWN0b3ItPmJhc2UuaWQsCj4gPiArCQkgICAgICBjb25u ZWN0b3ItPm5hbWUpOwo+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3It Pm1vZGVzLCBoZWFkKSB7Cj4gPiArCQltb2RlLT5zdGF0dXMgPSBpbnRlbF9kcF9tb2RlX3ZhbGlk KGNvbm5lY3RvciwKPiA+ICsJCQkJCQkgICBtb2RlKTsKPiA+ICsJfQo+IAo+IFRoZSBmaXJzdCB0 aW1lIHdlIGVuZCB1cCBoZXJlLCB3ZSdsbCBzdGlsbCBoYXZlICJnb29kIiBsaW5rIHN0YXR1cywg YW5kCj4gdGhlIGZhbGxiYWNrIHZhbHVlcyB3b24ndCBiZSB0YWtlbiBpbnRvIGFjY291bnQgaW4K PiBpbnRlbF9kcF9tb2RlX3ZhbGlkKCkuIElmIHRoZXJlIGFyZSBtb2RlcyB0aGF0IG5vIGxvbmdl ciBmaXQgaW50byB0aGUKPiBmYWxsYmFjayB2YWx1ZXMsIGNvbXB1dGUgY29uZmlnIHdpbGwgZmFp bCBvZmYgdGhlIGJhdCB0aGUgbmV4dCB0aW1lCj4gYXJvdW5kLiBTbyBJIHRoaW5rIHlvdSBzaG91 bGQgc2V0IGxpbmsgc3RhdHVzIHRvIGJhZCBmaXJzdC4KPiAKPiBCUiwKPiBKYW5pLgo+CgpZZXMs IEkgdG90YWxseSBhZ3JlZSwgdGhpcyBwcm9wZXJ0eSBuZWVkIHN0byBiZSBzZXQgZmlyc3QgYW5k IHRoZW4gY2FsbCBtb2RlIHZhbGlkLgoKTWFuYXNpIAo+ID4gKwlkcm1fbW9kZV9wcnVuZV9pbnZh bGlkKGNvbm5lY3Rvci0+ZGV2LCAmY29ubmVjdG9yLT5tb2RlcywKPiA+ICsJCQkgICAgICAgdmVy Ym9zZV9wcnVuZSk7Cj4gPiArCS8qIFNldCBjb25uZWN0b3IgbGluayBzdGF0dXMgdG8gQkFEIGFu ZCBzZW5kIGEgVWV2ZW50IHRvIG5vdGlmeQo+ID4gKwkgKiB1c2Vyc3BhY2UgdG8gZG8gYSBtb2Rl c2V0Lgo+ID4gKwkgKi8KPiA+ICsJZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19w cm9wZXJ0eShjb25uZWN0b3IsCj4gPiArCQkJCQkJICAgIERSTV9NT0RFX0xJTktfU1RBVFVTX0JB RCk7Cj4gPiArCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5kZXYtPm1vZGVfY29uZmlnLm11dGV4 KTsKPiA+ICsJLyogU2VuZCBIb3RwbHVnIHVldmVudCBzbyB1c2Vyc3BhY2UgY2FuIHJlcHJvYmUg Ki8KPiA+ICsJZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudChjb25uZWN0b3ItPmRldik7Cj4g PiArfQo+ID4gKwo+ID4gIGJvb2wKPiA+ICBpbnRlbF9kcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiA+ICAJCQlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gPiBAQCAtNTY4Myw2ICs1NzM4LDEwIEBAIHN0 YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwLAo+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ID4gIAlp bnQgdHlwZTsKPiA+ICAKPiA+ICsJLyogSW5pdGlhbGl6ZSB0aGUgd29yayBmb3IgbW9kZXNldCBp biBjYXNlIG9mIGxpbmsgdHJhaW4gZmFpbHVyZSAqLwo+ID4gKwlJTklUX1dPUksoJmludGVsX2Nv bm5lY3Rvci0+bW9kZXNldF9yZXRyeV93b3JrLAo+ID4gKwkJICBpbnRlbF9kcF9tb2Rlc2V0X3Jl dHJ5X3dvcmtfZm4pOwo+ID4gKwo+ID4gIAlpZiAoV0FSTihpbnRlbF9kaWdfcG9ydC0+bWF4X2xh bmVzIDwgMSwKPiA+ICAJCSAiTm90IGVub3VnaCBsYW5lcyAoJWQpIGZvciBEUCBvbiBwb3J0ICVj XG4iLAo+ID4gIAkJIGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMsIHBvcnRfbmFtZShwb3J0KSkp Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFp bmluZy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4g PiBpbmRleCAwMDQ4YjUyLi5jYzI0M2RiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKPiA+IEBAIC0zMTMsNiArMzEzLDMwIEBAIHZv aWQgaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g PiAgdm9pZAo+ID4gIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICpp bnRlbF9kcCkKPiA+ICB7Cj4gPiAtCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3Zl cnkoaW50ZWxfZHApOwo+ID4gLQlpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxp emF0aW9uKGludGVsX2RwKTsKPiA+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29u bmVjdG9yID0gaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3RvcjsKPiA+ICsJc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7Cj4gPiArCj4gPiAr CWlmICghaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCkpCj4g PiArCQlnb3RvIGZhaWx1cmVfaGFuZGxpbmc7Cj4gPiArCWlmICghaW50ZWxfZHBfbGlua190cmFp bmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCkpCj4gPiArCQlnb3RvIGZhaWx1cmVf aGFuZGxpbmc7Cj4gPiArCj4gPiArCS8qIFJlc2V0IHRoZSBMaW5rIFRyYWluIFZhbHVlcyAqLwo+ ID4gKwlEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIFBhc3NlZCBhdCBMaW5rIFJhdGUgPSAl ZCwgTGFuZSBjb3VudCA9ICVkIiwKPiA+ICsJCSAgICAgIGludGVsX2RwLT5saW5rX3JhdGUsIGlu dGVsX2RwLT5sYW5lX2NvdW50KTsKPiA+ICsJaW50ZWxfZHAtPmZhbGxiYWNrX2xpbmtfcmF0ZSA9 IDA7Cj4gPiArCWludGVsX2RwLT5mYWxsYmFja19sYW5lX2NvdW50ID0gMDsKPiA+ICsJZHJtX21v ZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eShjb25uZWN0b3IsCj4gPiArCQkJ CQkJICAgIERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0QpOwo+ID4gKwlyZXR1cm47Cj4gPiArCj4g PiArIGZhaWx1cmVfaGFuZGxpbmc6Cj4gPiArCURSTV9ERUJVR19LTVMoIkxpbmsgVHJhaW5pbmcg ZmFpbGVkIGF0IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50ID0gJWQiLAo+ID4gKwkJICAgICAg aW50ZWxfZHAtPmxpbmtfcmF0ZSwgaW50ZWxfZHAtPmxhbmVfY291bnQpOwo+ID4gKwlpZiAoIWlu dGVsX2RwX2dldF9saW5rX3RyYWluX2ZhbGxiYWNrX3ZhbHVlcyhpbnRlbF9kcCwKPiA+ICsJCQkJ CQkgICAgIGludGVsX2RwLT5saW5rX3JhdGUsCj4gPiArCQkJCQkJICAgICBpbnRlbF9kcC0+bGFu ZV9jb3VudCkpCj4gPiArCQkvKiBTY2hlZHVsZSBhIEhvdHBsdWcgVWV2ZW50IHRvIHVzZXJzcGFj ZSB0byBzdGFydCBtb2Rlc2V0ICovCj4gPiArCQlzY2hlZHVsZV93b3JrKCZpbnRlbF9jb25uZWN0 b3ItPm1vZGVzZXRfcmV0cnlfd29yayk7Cj4gPiArCXJldHVybjsKPiA+ICB9Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggZTFjNDNhOS4uMzNiZTY2ZiAxMDA2NDQKPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTMxNSw2ICszMTUsOSBAQCBzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yIHsKPiA+ICAJdm9pZCAqcG9ydDsgLyogc3RvcmUgdGhpcyBvcGFxdWUgYXMg aXRzIGlsbGVnYWwgdG8gZGVyZWZlcmVuY2UgaXQgKi8KPiA+ICAKPiA+ICAJc3RydWN0IGludGVs X2RwICptc3RfcG9ydDsKPiA+ICsKPiA+ICsJLyogV29yayBzdHJ1Y3QgdG8gc2NoZWR1bGUgYSB1 ZXZlbnQgb24gbGluayB0cmFpbiBmYWlsdXJlICovCj4gPiArCXN0cnVjdCB3b3JrX3N0cnVjdCBt b2Rlc2V0X3JldHJ5X3dvcms7Cj4gPiAgfTsKPiA+ICAKPiA+ICBzdHJ1Y3QgZHBsbCB7Cj4gCj4g LS0gCj4gSmFuaSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=