From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH 5/5] drm/i915: Link Rate fallback on Link training failure Date: Tue, 25 Oct 2016 06:23:39 +0000 Message-ID: <1477377599.31308.143.camel@dk-H97M-D3H> 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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 883106E658 for ; Tue, 25 Oct 2016 06:23:40 +0000 (UTC) In-Reply-To: <1477093543-11622-6-git-send-email-manasi.d.navare@intel.com> Content-Language: en-US Content-ID: <04A5FF442FADEF42B27B0FC35D5ED18C@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Navare, Manasi D" Cc: "Vetter, Daniel" , "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDE2LTEwLTIxIGF0IDE2OjQ1IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0K PiBJZiBsaW5rIHRyYWluaW5nIGF0IGEgbGluayByYXRlIG9wdGltYWwgZm9yIGEgcGFydGljdWxh cg0KPiBtb2RlIGZhaWxzIGR1cmluZyBtb2Rlc2V0J3MgYXRvbWljIGNvbW1pdCBwaGFzZSwgdGhl biB3ZQ0KPiBsZXQgdGhlIG1vZGVzZXQgY29tcGxldGUgYW5kIHRoZW4gcmV0cnkuIFdlIHNhdmUg dGhlIGxpbmsgcmF0ZQ0KPiB2YWx1ZSBhdCB3aGljaCBsaW5rIHRyYWluaW5nIGZhaWxlZCBhbmQg dXNlIGEgbG93ZXIgbGluayByYXRlDQo+IHRvIHBydW5lIHRoZSBtb2Rlcy4gSXQgd2lsbCByZWRv IHRoZSBtb2Rlc2V0IG9uIHRoZSBjdXJyZW50IG1vZGUNCj4gYXQgbG93ZXIgbGluayByYXRlIG9y IGlmIHRoZSBjdXJyZW50IG1vZGUgZ2V0cyBwcnVuZWQgZHVlIHRvIGxvd2VyDQo+IGxpbmsgY29u c3RyYWludHMgdGhlbiwgaXQgd2lsbCBzZW5kIGEgaG90cGx1ZyB1ZXZlbnQgZm9yIHVzZXJzcGFj ZQ0KPiB0byBoYW5kbGUgaXQuDQo+IA0KPiBUaGlzIGlzIGFsc28gcmVxdWlyZWQgdG8gcGFzcyBE UCBDVFMgdGVzdHMgNC4zLjEuMywgNC4zLjEuNCwNCj4gNC4zLjEuNi4NCj4gDQo+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAbGludXguaW50ZWwuY29tPg0KPiBDYzogRGFuaWVsIFZldHRl ciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+DQo+IENjOiBWaWxsZSBTeXJqYWxhIDx2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8 bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kZGkuYyAgICAgICAgICAgICAgfCAxNSArKysrKy0NCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwLmMgICAgICAgICAgICAgICB8IDY5ICsrKysrKysrKysrKysrKysrKysr KysrKysrLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5j IHwgMTIgKysrLS0NCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAg ICAgICB8ICA2ICsrLQ0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA5NSBpbnNlcnRpb25zKCspLCA3IGRl bGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMNCj4gaW5kZXggZmIxOGQ2 OS4uNDUxNDMzYiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRp LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMNCj4gQEAgLTE3MTIs NiArMTcxMiw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLA0KPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSBl bmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOw0KPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOw0KPiAgCWVudW0gcG9y dCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7DQo+ICsJc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHAtPmF0dGFjaGVkX2Nv bm5lY3RvcjsNCj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmludGVsX2Nv bm5lY3Rvci0+YmFzZTsNCj4gIA0KPiAgCWludGVsX2RwX3NldF9saW5rX3BhcmFtcyhpbnRlbF9k cCwgbGlua19yYXRlLCBsYW5lX2NvdW50LA0KPiAgCQkJCSBsaW5rX21zdCk7DQo+IEBAIC0xNzIy LDcgKzE3MjQsMTggQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsDQo+ICAJaW50ZWxfcHJlcGFyZV9kcF9kZGlfYnVmZmVy cyhlbmNvZGVyKTsNCj4gIAlpbnRlbF9kZGlfaW5pdF9kcF9idWZfcmVnKGVuY29kZXIpOw0KPiAg CWludGVsX2RwX3NpbmtfZHBtcyhpbnRlbF9kcCwgRFJNX01PREVfRFBNU19PTik7DQo+IC0JaW50 ZWxfZHBfc3RhcnRfbGlua190cmFpbihpbnRlbF9kcCk7DQo+ICsJaWYgKCFpbnRlbF9kcF9zdGFy dF9saW5rX3RyYWluKGludGVsX2RwKSkgew0KPiArCQlEUk1fRVJST1IoIkxpbmsgVHJhaW5pbmcg ZmFpbGVkIGF0IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50ID0gJWRcbiIsDQo+ICsJCQkgIGxp bmtfcmF0ZSwgbGFuZV9jb3VudCk7DQo+ICsJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZCA9 IHRydWU7DQo+ICsJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUgPSBsaW5r X3JhdGU7DQo+ICsJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9sYW5lX2NvdW50ID0gbGFu ZV9jb3VudDsNCj4gKwkJLyogU2NoZWR1bGUgYSBIb3RwbHVnIFVldmVudCB0byB1c2Vyc3BhY2Ug dG8gc3RhcnQgbW9kZXNldCAqLw0KPiArCQlzY2hlZHVsZV93b3JrKCZjb25uZWN0b3ItPmk5MTVf bW9kZXNldF9yZXRyeV93b3JrKTsNCj4gKwl9IGVsc2Ugew0KPiArCQlpbnRlbF9kcC0+bGlua190 cmFpbl9mYWlsZWQgPSBmYWxzZTsNCj4gKwl9DQo+ICsNCj4gIAlpZiAocG9ydCAhPSBQT1JUX0Eg fHwgSU5URUxfR0VOKGRldl9wcml2KSA+PSA5KQ0KPiAgCQlpbnRlbF9kcF9zdG9wX2xpbmtfdHJh aW4oaW50ZWxfZHApOw0KPiAgfQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMNCj4gaW5kZXggYzE5 MmUxOC4uNWQ1ZjRhNyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jDQo+IEBAIC0zMTMs NiArMzEzLDcgQEAgc3RhdGljIGludCBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXgoc3RydWN0IGlu dGVsX2RwICppbnRlbF9kcCwNCj4gIAlpbnQgdGFyZ2V0X2Nsb2NrID0gbW9kZS0+Y2xvY2s7DQo+ ICAJaW50IG1heF9yYXRlLCBtb2RlX3JhdGUsIG1heF9sYW5lcywgbWF4X2xpbmtfY2xvY2s7DQo+ ICAJaW50IG1heF9kb3RjbGs7DQo+ICsJaW50IGNvbW1vbl9yYXRlc1tEUF9NQVhfU1VQUE9SVEVE X1JBVEVTXSA9IHt9Ow0KPiAgDQo+ICAJbWF4X2RvdGNsayA9IGludGVsX2RwX2Rvd25zdHJlYW1f bWF4X2RvdGNsb2NrKGludGVsX2RwKTsNCj4gIA0KPiBAQCAtMzI2LDggKzMyNywyNyBAQCBzdGF0 aWMgaW50IGludGVsX2RwX2xpbmtfcmF0ZV9pbmRleChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw LA0KPiAgCQl0YXJnZXRfY2xvY2sgPSBmaXhlZF9tb2RlLT5jbG9jazsNCj4gIAl9DQo+ICANCj4g LQltYXhfbGlua19jbG9jayA9IGludGVsX2RwX21heF9saW5rX3JhdGUoaW50ZWxfZHApOw0KPiAt CW1heF9sYW5lcyA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsNCj4gKwkvKiBQ cnVuZSB0aGUgbW9kZXMgYmFzZWQgb24gdGhlIGxpbmsgcmF0ZSB0aGF0IGZhaWxlZCAqLw0KPiAr CWlmIChpbnRlbF9kcC0+bGlua190cmFpbl9mYWlsZWRfbGlua19yYXRlKSB7DQoNClNob3VsZG4n dCB0aGUgYm9vbCBsaW5rX3RyYWluX2ZhaWxlZCB0aGF0IHlvdSBhcmUgYWRkaW5nIGJlIHVzZWQg aGVyZT8NClRoZSBuYW1pbmcgaW5kaWNhdGVzIGEgY2hlY2sgbGlrZSB0aGlzIHNob3VsZCB1c2Ug dGhhdC4NCg0KDQo+ICsJCWludGVsX2RwLT5saW5rX3JhdGVfaW5kZXggPSBpbnRlbF9kcF9saW5r X3JhdGVfaW5kZXgoaW50ZWxfZHAsDQo+ICsJCQkJCQkJCSAgICAgY29tbW9uX3JhdGVzLA0KPiAr CQkJCQkJCQkgICAgIGludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUpOw0KPiAr CQlpZiAoaW50ZWxfZHAtPmxpbmtfcmF0ZV9pbmRleCA+IDApIHsNCj4gKwkJCW1heF9saW5rX2Ns b2NrID0gY29tbW9uX3JhdGVzW2ludGVsX2RwLT5saW5rX3JhdGVfaW5kZXggLSAxXTsNCj4gKwkJ CW1heF9sYW5lcyA9IGludGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsNCj4gKwkJfSBl bHNlIHsNCj4gKwkJCS8qIEhlcmUgd2UgY2FuIGxvd2VyIHRoZSBsYW5lIGNvdW50LCBidXQgdGhh dCB3aWxsIGJlDQo+ICsJCQkgKiBhZGRlZCBmb3IgRFAgU3BlYyAxLjMNCj4gKwkJCSAqLw0KPiAr CQkJRFJNX0VSUk9SKCJObyBWYWxpZCBNb2RlIFN1cHBvcnRlZCBmb3IgdGhpcyBMaW5rXG4iKTsN Cj4gKwkJCWludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZF9saW5rX3JhdGUgPSAwOw0KPiArCQkJ aW50ZWxfZHAtPmxpbmtfcmF0ZV9pbmRleCA9IC0xOw0KPiArCQkJaW50ZWxfZHAtPmxpbmtfdHJh aW5fZmFpbGVkID0gZmFsc2U7DQoNCjEuIFlvdSBhcmUgbm90IHNldHRpbmcgbWF4X2xpbmtfY2xv Y2sgYW5kIG1heF9sYW5lcyBoZXJlLiBXb24ndCB0aGlzIGVuZA0KdXAgY29tcHV0aW5nIHRoZSBt YXhfcmF0ZSBiYXNlZCBvbiB1bmluaXRpYWxpemVkIGxvY2Fscz8NCg0KMi4gQWxzbywgd2hhdCBp cyB0aGUgY29ycmVjdCByZXR1cm4gdmFsdWUgaW4gdGhpcyBjYXNlPw0KDQozLiBZb3UgYXJlIHJl c2V0dGluZyBhbGwgdmFsdWVzIHdoZW4gYSBsaW5rIHJhdGUgY2Fubm90IGJlIGZvdW5kLCB3aGF0 DQpsaW5rIHJhdGUgaXMgdGhlIHN1YnNlcXVlbnQgbW9kZXNldCBleHBlY3RlZCB0byBzdGFydCBm cm9tPyANCg0KDQotREsNCj4gKwkJfQ0KPiArCX0gZWxzZSB7DQo+ICsJCW1heF9saW5rX2Nsb2Nr ID0gaW50ZWxfZHBfbWF4X2xpbmtfcmF0ZShpbnRlbF9kcCk7DQo+ICsJCW1heF9sYW5lcyA9IGlu dGVsX2RwX21heF9sYW5lX2NvdW50KGludGVsX2RwKTsNCj4gKwl9DQo+ICANCj4gIAltYXhfcmF0 ZSA9IGludGVsX2RwX21heF9kYXRhX3JhdGUobWF4X2xpbmtfY2xvY2ssIG1heF9sYW5lcyk7DQo+ ICAJbW9kZV9yYXRlID0gaW50ZWxfZHBfbGlua19yZXF1aXJlZCh0YXJnZXRfY2xvY2ssIDE4KTsN Cj4gQEAgLTE2MTksNiArMTYzOSwxNCBAQCBzdGF0aWMgaW50IGludGVsX2RwX2NvbXB1dGVfYnBw KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ICAJaWYgKGFkanVzdGVkX21vZGUtPmZsYWdz ICYgRFJNX01PREVfRkxBR19EQkxDTEspDQo+ICAJCXJldHVybiBmYWxzZTsNCj4gIA0KPiArCS8q IEZhbGwgYmFjayB0byBsb3dlciBsaW5rIHJhdGUgaW4gY2FzZSBvZiBmYWlsdXJlIGluIHByZXZp b3VzIG1vZGVzZXQgKi8NCj4gKwlpZiAoaW50ZWxfZHAtPmxpbmtfdHJhaW5fZmFpbGVkX2xpbmtf cmF0ZSkgew0KPiArCQltaW5fbGFuZV9jb3VudCA9IG1heF9sYW5lX2NvdW50Ow0KPiArCQltaW5f Y2xvY2sgPSBtYXhfY2xvY2sgPSBpbnRlbF9kcC0+bGlua19yYXRlX2luZGV4IC0gMTsNCg0KMS4g V2h5IGlzIG1pbl9jbG9jayBzYW1lIGFzIG1heF9jbG9jaz8gVGhpcyBmb3JjZXMgdGhlIGNsb2Nr IHRvIGEgdmFsdWUNCmluc3RlYWQgb2YgaXRlcmF0aW5nIGl0IGJhc2VkIG9uIHRoZSBtb2RlIHJh dGUuDQoNCjIuIFdoeSBpcyBtaW5fbGFuZV9jb3VudCBzZXQgdG8gbWF4X2xhbmVfY291bnQ/IElz IHRoaXMgZG9uZSB0byBiZSBTcGVjDQpjb21wbGlhbnQ/IA0KDQozLiBXaGF0IGFib3V0IGJwcD8g TG9va3MgbGlrZSB0aGUgd2Ugd2lsbCBzdGlsbCBiZSBpdGVyYXRpbmcgb3ZlciBicHAgdG8NCmZp bmQgdGhlIGxpbmsgcmF0ZS4gDQoNCi1ESw0KPiArCQlpbnRlbF9kcC0+bGlua190cmFpbl9mYWls ZWRfbGlua19yYXRlID0gMDsNCj4gKwkJaW50ZWxfZHAtPmxpbmtfcmF0ZV9pbmRleCA9IC0xOw0K PiArCX0NCj4gKw0KPiAgCURSTV9ERUJVR19LTVMoIkRQIGxpbmsgY29tcHV0YXRpb24gd2l0aCBt YXggbGFuZSBjb3VudCAlaSAiDQo+ICAJCSAgICAgICJtYXggYncgJWQgcGl4ZWwgY2xvY2sgJWlL SHpcbiIsDQo+ICAJCSAgICAgIG1heF9sYW5lX2NvdW50LCBjb21tb25fcmF0ZXNbbWF4X2Nsb2Nr XSwNCj4gQEAgLTU2ODksNiArNTcxNywzOSBAQCBzdGF0aWMgYm9vbCBpbnRlbF9lZHBfaW5pdF9j b25uZWN0b3Ioc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwNCj4gIAlyZXR1cm4gZmFsc2U7DQo+ ICB9DQo+ICANCj4gK3N0YXRpYyB2b2lkIGludGVsX2RwX21vZGVzZXRfcmV0cnlfd29ya19mbihz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICt7DQo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvcjsNCj4gKwlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOw0KPiArCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlOw0KPiArCWJvb2wgdmVyYm9zZV9wcnVuZSA9IHRydWU7DQo+ ICsJYm9vbCByZXByb2JlID0gZmFsc2U7DQo+ICsNCj4gKwljb25uZWN0b3IgPSBjb250YWluZXJf b2Yod29yaywgdHlwZW9mKCpjb25uZWN0b3IpLA0KPiArCQkJCSBpOTE1X21vZGVzZXRfcmV0cnlf d29yayk7DQo+ICsJaW50ZWxfZHAgPSBpbnRlbF9hdHRhY2hlZF9kcChjb25uZWN0b3IpOw0KPiAr DQo+ICsJLyogR3JhYiB0aGUgbG9ja3MgYmVmb3JlIGNoYW5naW5nIGNvbm5lY3RvciBwcm9wZXJ0 eSovDQo+ICsJbXV0ZXhfbG9jaygmY29ubmVjdG9yLT5kZXYtPm1vZGVfY29uZmlnLm11dGV4KTsN Cj4gKwlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwgY29ubmVjdG9yLT5iYXNl LmlkLA0KPiArCQkgICAgICBjb25uZWN0b3ItPm5hbWUpOw0KPiArCWxpc3RfZm9yX2VhY2hfZW50 cnkobW9kZSwgJmNvbm5lY3Rvci0+bW9kZXMsIGhlYWQpIHsNCj4gKwkJbW9kZS0+c3RhdHVzID0g aW50ZWxfZHBfbW9kZV92YWxpZChjb25uZWN0b3IsDQo+ICsJCQkJCQkgICBtb2RlKTsNCj4gKwkJ aWYgKG1vZGUtPnN0YXR1cyAhPSBNT0RFX09LKQ0KPiArCQkJcmVwcm9iZSA9IHRydWU7DQo+ICsJ fQ0KPiArCWRybV9tb2RlX3BydW5lX2ludmFsaWQoY29ubmVjdG9yLT5kZXYsICZjb25uZWN0b3It Pm1vZGVzLA0KPiArCQkJICAgICAgIHZlcmJvc2VfcHJ1bmUpOw0KPiArCW11dGV4X3VubG9jaygm Y29ubmVjdG9yLT5kZXYtPm1vZGVfY29uZmlnLm11dGV4KTsNCj4gKwlpZiAocmVwcm9iZSkgew0K PiArCQkvKiBTZW5kIEhvdHBsdWcgdWV2ZW50IHNvIHVzZXJzcGFjZSBjYW4gcmVwcm9iZSAqLw0K PiArCQlkcm1fa21zX2hlbHBlcl9ob3RwbHVnX2V2ZW50KGNvbm5lY3Rvci0+ZGV2KTsNCj4gKwl9 DQo+ICsJaWYgKGludGVsX2RwLT5saW5rX3RyYWluX2ZhaWxlZCkNCj4gKwkJZHJtX2F0b21pY19o ZWxwZXJfY29ubmVjdG9yX21vZGVzZXQoY29ubmVjdG9yKTsNCj4gK30NCj4gKw0KPiAgYm9vbA0K PiAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50 ZWxfZGlnX3BvcnQsDQo+ICAJCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0 b3IpDQo+IEBAIC01NzAxLDYgKzU3NjIsMTAgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRf Y29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ICAJZW51bSBwb3J0IHBvcnQg PSBpbnRlbF9kaWdfcG9ydC0+cG9ydDsNCj4gIAlpbnQgdHlwZTsNCj4gIA0KPiArCS8qIEluaXRp YWxpemUgdGhlIHdvcmsgZm9yIG1vZGVzZXQgaW4gY2FzZSBvZiBsaW5rIHRyYWluIGZhaWx1cmUg Ki8NCj4gKwlJTklUX1dPUksoJmNvbm5lY3Rvci0+aTkxNV9tb2Rlc2V0X3JldHJ5X3dvcmssDQo+ ICsJCSAgaW50ZWxfZHBfbW9kZXNldF9yZXRyeV93b3JrX2ZuKTsNCj4gKw0KPiAgCWlmIChXQVJO KGludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPCAxLA0KPiAgCQkgIk5vdCBlbm91Z2ggbGFuZXMg KCVkKSBmb3IgRFAgb24gcG9ydCAlY1xuIiwNCj4gIAkJIGludGVsX2RpZ19wb3J0LT5tYXhfbGFu ZXMsIHBvcnRfbmFtZShwb3J0KSkpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cF9saW5rX3RyYWluaW5nLmMNCj4gaW5kZXggMDA0OGI1Mi4uMTBmODFhYiAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jDQo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYw0KPiBAQCAtMzEw LDkgKzMxMCwxNSBAQCB2b2lkIGludGVsX2RwX3N0b3BfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQ0KPiAgCQkJCURQX1RSQUlOSU5HX1BBVFRFUk5fRElTQUJMRSk7DQo+ICB9 DQo+ICANCj4gLXZvaWQNCj4gK2Jvb2wNCj4gIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkNCj4gIHsNCj4gLQlpbnRlbF9kcF9saW5rX3RyYWluaW5n X2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsNCj4gLQlpbnRlbF9kcF9saW5rX3RyYWluaW5nX2No YW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsNCj4gKwlib29sIHJldDsNCj4gKw0KPiArCWlm IChpbnRlbF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKSkgew0KPiAr CQlyZXQgPSBpbnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVs X2RwKTsNCj4gKwkJaWYgKHJldCkNCj4gKwkJCXJldHVybiB0cnVlOw0KPiArCX0NCj4gKwlyZXR1 cm4gZmFsc2U7DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+IGluZGV4IDRlOTBi MDcuLmQzZmNmZmMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oDQo+IEBAIC04OTAs NiArODkwLDEwIEBAIHN0cnVjdCBpbnRlbF9kcCB7DQo+ICAJdWludDMyX3QgRFA7DQo+ICAJaW50 IGxpbmtfcmF0ZTsNCj4gIAl1aW50OF90IGxhbmVfY291bnQ7DQo+ICsJaW50IGxpbmtfdHJhaW5f ZmFpbGVkX2xpbmtfcmF0ZTsNCj4gKwl1aW50OF90IGxpbmtfdHJhaW5fZmFpbGVkX2xhbmVfY291 bnQ7DQo+ICsJaW50IGxpbmtfcmF0ZV9pbmRleDsNCj4gKwlib29sIGxpbmtfdHJhaW5fZmFpbGVk Ow0KPiAgCXVpbnQ4X3Qgc2lua19jb3VudDsNCj4gIAlib29sIGxpbmtfbXN0Ow0KPiAgCWJvb2wg aGFzX2F1ZGlvOw0KPiBAQCAtMTM5NCw3ICsxMzk4LDcgQEAgYm9vbCBpbnRlbF9kcF9pbml0X2Nv bm5lY3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwNCj4gIHZv aWQgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsDQo+ ICAJCQkgICAgICBpbnQgbGlua19yYXRlLCB1aW50OF90IGxhbmVfY291bnQsDQo+ICAJCQkgICAg ICBib29sIGxpbmtfbXN0KTsNCj4gLXZvaWQgaW50ZWxfZHBfc3RhcnRfbGlua190cmFpbihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsNCj4gK2Jvb2wgaW50ZWxfZHBfc3RhcnRfbGlua190cmFp bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsNCj4gIHZvaWQgaW50ZWxfZHBfc3RvcF9saW5r X3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApOw0KPiAgdm9pZCBpbnRlbF9kcF9zaW5r X2RwbXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwgaW50IG1vZGUpOw0KPiAgdm9pZCBpbnRl bF9kcF9lbmNvZGVyX3Jlc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7DQoNCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=