From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH 5/5] drm/i915: Implement Link Rate fallback on Link training failure Date: Thu, 17 Nov 2016 23:29:48 -0800 Message-ID: <1479454189-28345-1-git-send-email-manasi.d.navare@intel.com> References: <1479453200-27705-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: In-Reply-To: <1479453200-27705-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: dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org SWYgbGluayB0cmFpbmluZyBhdCBhIGxpbmsgcmF0ZSBvcHRpbWFsIGZvciBhIHBhcnRpY3VsYXIK bW9kZSBmYWlscyBkdXJpbmcgbW9kZXNldCdzIGF0b21pYyBjb21taXQgcGhhc2UsIHRoZW4gd2UK bGV0IHRoZSBtb2Rlc2V0IGNvbXBsZXRlIGFuZCB0aGVuIHJldHJ5LiBXZSBzYXZlIHRoZSBsaW5r IHJhdGUKdmFsdWUgYXQgd2hpY2ggbGluayB0cmFpbmluZyBmYWlsZWQsIHVwZGF0ZSB0aGUgbGlu ayBzdGF0dXMgcHJvcGVydHkKdG8gIkJBRCIgYW5kIHVzZSBhIGxvd2VyIGxpbmsgcmF0ZSB0byBw cnVuZSB0aGUgbW9kZXMuIEl0IHdpbGwgcmVkbwp0aGUgbW9kZXNldCBvbiB0aGUgY3VycmVudCBt b2RlIGF0IGxvd2VyIGxpbmsgcmF0ZSBvciBpZiB0aGUgY3VycmVudAptb2RlIGdldHMgcHJ1bmVk IGR1ZSB0byBsb3dlciBsaW5rIGNvbnN0cmFpbnRzIHRoZW4sIGl0IHdpbGwgc2VuZCBhCmhvdHBs dWcgdWV2ZW50IGZvciB1c2Vyc3BhY2UgdG8gaGFuZGxlIGl0LgoKVGhpcyBpcyBhbHNvIHJlcXVp cmVkIHRvIHBhc3MgRFAgQ1RTIHRlc3RzIDQuMy4xLjMsIDQuMy4xLjQsCjQuMy4xLjYuCgp2NzoK UmVtb3ZlIHRoZSByZWR1bmRhbnQgdmFyaWFibGUgaW4gcHJldmlvdXMgcGF0Y2ggaXRzZWxmCnY2 OgoqIE9idGFpbiBsaW5rIHJhdGUgaW5kZXggZnJvbSBmYWxsYmFja19saW5rX3JhdGUgdXNpbmcK dGhlIGhlbHBlciBpbnRlbF9kcF9saW5rX3JhdGVfaW5kZXggKEphbmkgTmlrdWxhKQoqIEluY2x1 ZGUgZmFsbGJhY2sgd2l0aGluIGludGVsX2RwX3N0YXJ0X2xpbmtfdHJhaW4gKEphbmkgTmlrdWxh KQp2NToKKiBNb3ZlIHNldCBsaW5rIHN0YXR1cyB0byBkcm0gY29yZSAoRGFuaWVsIFZldHRlciwg SmFuaSBOaWt1bGEpCnY0OgoqIEFkZCBmYWxsYmFjayBzdXBwb3J0IGZvciBub24gRERJIHBsYXRm b3JtcyB0b28KKiBTZXQgY29ubmVjdG9yLT5saW5rIHN0YXR1cyBpbnNpZGUgc2V0X2xpbmtfc3Rh dHVzIGZ1bmN0aW9uCihKYW5pIE5pa3VsYSkKdjM6CiogU2V0IGxpbmsgc3RhdHVzIHByb3BlcnR5 IHRvIEJBZCB1bmNvbmRpdGlvbmFsbHkgKEphbmkgTmlrdWxhKQoqIERvbnQgdXNlIHR3byBzZXBh cmF0ZSB2YXJpYWJsZXMgbGlua190cmFpbl9mYWlsZWQgYW5kIGxpbmtfc3RhdHVzCnRvIGluZGlj YXRlIHNhbWUgdGhpbmcgKEphbmkgTmlrdWxhKQp2MjoKKiBTcXVhc2hlZCBhIGZldyBwYXRjaGVz IChKYW5pIE5pa3VsYSkKCkFja2VkLWJ5OiBUb255IENoZW5nIDx0b255LmNoZW5nQGFtZC5jb20+ CkFja2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8SGFycnkud2VudGxhbmRAYW1kLmNvbT4KQ2M6IEph bmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+CkNjOiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmph bGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2ku ZC5uYXZhcmVAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMg ICAgICAgICAgICAgICB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jIHwgMjggKysrKysrKysrKystCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAgMyArKwogMyBm aWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jCmluZGV4IDRmYjg5ZTEuLmE1NmEzNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwpAQCAtMzUxLDggKzM1MSwxNCBAQCBpbnQgaW50ZWxfZHBfZ2V0X2xpbmtfdHJhaW5fZmFs bGJhY2tfdmFsdWVzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJCXRhcmdldF9jbG9jayA9 IGZpeGVkX21vZGUtPmNsb2NrOwogCX0KIAotCW1heF9saW5rX2Nsb2NrID0gaW50ZWxfZHBfbWF4 X2xpbmtfcmF0ZShpbnRlbF9kcCk7Ci0JbWF4X2xhbmVzID0gaW50ZWxfZHBfbWF4X2xhbmVfY291 bnQoaW50ZWxfZHApOworCS8qIFBydW5lIHRoZSBtb2RlcyB1c2luZyB0aGUgZmFsbGJhY2sgbGlu ayByYXRlL2xhbmUgY291bnQgKi8KKwlpZiAoY29ubmVjdG9yLT5saW5rX3N0YXR1cyA9PSBEUk1f TU9ERV9MSU5LX1NUQVRVU19CQUQpIHsKKwkJbWF4X2xpbmtfY2xvY2sgPSBpbnRlbF9kcC0+ZmFs bGJhY2tfbGlua19yYXRlOworCQltYXhfbGFuZXMgPSBpbnRlbF9kcC0+ZmFsbGJhY2tfbGFuZV9j b3VudDsKKwl9IGVsc2UgeworCQltYXhfbGlua19jbG9jayA9IGludGVsX2RwX21heF9saW5rX3Jh dGUoaW50ZWxfZHApOworCQltYXhfbGFuZXMgPSBpbnRlbF9kcF9tYXhfbGFuZV9jb3VudChpbnRl bF9kcCk7CisJfQogCiAJbWF4X3JhdGUgPSBpbnRlbF9kcF9tYXhfZGF0YV9yYXRlKG1heF9saW5r X2Nsb2NrLCBtYXhfbGFuZXMpOwogCW1vZGVfcmF0ZSA9IGludGVsX2RwX2xpbmtfcmVxdWlyZWQo dGFyZ2V0X2Nsb2NrLCAxOCk7CkBAIC0xNTg4LDYgKzE1OTQsNyBAQCBzdGF0aWMgaW50IGludGVs X2RwX2NvbXB1dGVfYnBwKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJZW51bSBwb3J0IHBv cnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPnBvcnQ7CiAJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwogCXN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciA9IGludGVsX2RwLT5hdHRhY2hl ZF9jb25uZWN0b3I7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9j b25uZWN0b3ItPmJhc2U7CiAJaW50IGxhbmVfY291bnQsIGNsb2NrOwogCWludCBtaW5fbGFuZV9j b3VudCA9IDE7CiAJaW50IG1heF9sYW5lX2NvdW50ID0gaW50ZWxfZHBfbWF4X2xhbmVfY291bnQo aW50ZWxfZHApOwpAQCAtMTYzNSw2ICsxNjQyLDE0IEBAIHN0YXRpYyBpbnQgaW50ZWxfZHBfY29t cHV0ZV9icHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlpZiAoYWRqdXN0ZWRfbW9kZS0+ ZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0RCTENMSykKIAkJcmV0dXJuIGZhbHNlOwogCisJLyogRmFs bCBiYWNrIHRvIGxvd2VyIGxpbmsgcmF0ZSBpbiBjYXNlIG9mIGZhaWx1cmUgaW4gcHJldmlvdXMg bW9kZXNldCAqLworCWlmIChjb25uZWN0b3ItPmxpbmtfc3RhdHVzID09IERSTV9NT0RFX0xJTktf U1RBVFVTX0JBRCkgeworCQltaW5fbGFuZV9jb3VudCA9IG1heF9sYW5lX2NvdW50ID0gaW50ZWxf ZHAtPmZhbGxiYWNrX2xhbmVfY291bnQ7CisJCW1pbl9jbG9jayA9IG1heF9jbG9jayA9IGludGVs X2RwX2xpbmtfcmF0ZV9pbmRleChpbnRlbF9kcCwKKwkJCQkJCQkJIGNvbW1vbl9yYXRlcywKKwkJ CQkJCQkJIGludGVsX2RwLT5mYWxsYmFja19saW5rX3JhdGUpOworCX0KKwogCURSTV9ERUJVR19L TVMoIkRQIGxpbmsgY29tcHV0YXRpb24gd2l0aCBtYXggbGFuZSBjb3VudCAlaSAiCiAJCSAgICAg ICJtYXggYncgJWQgcGl4ZWwgY2xvY2sgJWlLSHpcbiIsCiAJCSAgICAgIG1heF9sYW5lX2NvdW50 LCBjb21tb25fcmF0ZXNbbWF4X2Nsb2NrXSwKQEAgLTQ0MTUsNiArNDQzMCwxMCBAQCBzdGF0aWMg Ym9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkJaW50ZWxfZHAtPmNvbXBsaWFuY2VfdGVzdF9hY3RpdmUgPSAwOwogCQlp bnRlbF9kcC0+Y29tcGxpYW5jZV90ZXN0X3R5cGUgPSAwOwogCQlpbnRlbF9kcC0+Y29tcGxpYW5j ZV90ZXN0X2RhdGEgPSAwOworCQlpbnRlbF9kcC0+ZmFsbGJhY2tfbGlua19yYXRlID0gMDsKKwkJ aW50ZWxfZHAtPmZhbGxiYWNrX2xhbmVfY291bnQgPSAwOworCQlkcm1fbW9kZV9jb25uZWN0b3Jf c2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KGNvbm5lY3RvciwKKwkJCQkJCQkgICAgRFJNX01PREVf TElOS19TVEFUVVNfR09PRCk7CiAKIAkJaWYgKGludGVsX2RwLT5pc19tc3QpIHsKIAkJCURSTV9E RUJVR19LTVMoIk1TVCBkZXZpY2UgbWF5IGhhdmUgZGlzYXBwZWFyZWQgJWQgdnMgJWRcbiIsCkBA IC00NTA2LDYgKzQ1MjUsMTEgQEAgc3RhdGljIGJvb2wgaW50ZWxfZGlnaXRhbF9wb3J0X2Nvbm5l Y3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJRFJNX0RFQlVHX0tNUygi W0NPTk5FQ1RPUjolZDolc11cbiIsCiAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVj dG9yLT5uYW1lKTsKIAorCS8qIElmIHRoaXMgaXMgYSByZXRyeSBkdWUgdG8gbGluayB0cmlhbmlu ZyBmYWlsdXJlICovCisJaWYgKHN0YXR1cyA9PSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCAm JgorCSAgICBjb25uZWN0b3ItPmxpbmtfc3RhdHVzID09IERSTV9NT0RFX0xJTktfU1RBVFVTX0JB RCkKKwkJcmV0dXJuIHN0YXR1czsKKwogCS8qIElmIGZ1bGwgZGV0ZWN0IGlzIG5vdCBwZXJmb3Jt ZWQgeWV0LCBkbyBhIGZ1bGwgZGV0ZWN0ICovCiAJaWYgKCFpbnRlbF9kcC0+ZGV0ZWN0X2RvbmUp CiAJCXN0YXR1cyA9IGludGVsX2RwX2xvbmdfcHVsc2UoaW50ZWxfZHAtPmF0dGFjaGVkX2Nvbm5l Y3Rvcik7CkBAIC01NjcxLDYgKzU2OTUsMzcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZWRwX2luaXRf Y29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCiAJcmV0dXJuIGZhbHNlOwogfQog CitzdGF0aWMgdm9pZCBpbnRlbF9kcF9tb2Rlc2V0X3JldHJ5X3dvcmtfZm4oc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQoreworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rv cjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOworCXN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlOworCWJvb2wgdmVyYm9zZV9wcnVuZSA9IHRydWU7CisKKwlpbnRlbF9jb25u ZWN0b3IgPSBjb250YWluZXJfb2Yod29yaywgdHlwZW9mKCppbnRlbF9jb25uZWN0b3IpLAorCQkJ CSAgICAgICBtb2Rlc2V0X3JldHJ5X3dvcmspOworCWNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0 b3ItPmJhc2U7CisKKwkvKiBHcmFiIHRoZSBsb2NrcyBiZWZvcmUgY2hhbmdpbmcgY29ubmVjdG9y IHByb3BlcnR5Ki8KKwltdXRleF9sb2NrKCZjb25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcubXV0 ZXgpOworCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLCBjb25uZWN0b3ItPmJh c2UuaWQsCisJCSAgICAgIGNvbm5lY3Rvci0+bmFtZSk7CisJbGlzdF9mb3JfZWFjaF9lbnRyeSht b2RlLCAmY29ubmVjdG9yLT5tb2RlcywgaGVhZCkgeworCQltb2RlLT5zdGF0dXMgPSBpbnRlbF9k cF9tb2RlX3ZhbGlkKGNvbm5lY3RvciwKKwkJCQkJCSAgIG1vZGUpOworCX0KKwlkcm1fbW9kZV9w cnVuZV9pbnZhbGlkKGNvbm5lY3Rvci0+ZGV2LCAmY29ubmVjdG9yLT5tb2RlcywKKwkJCSAgICAg ICB2ZXJib3NlX3BydW5lKTsKKwkvKiBTZXQgY29ubmVjdG9yIGxpbmsgc3RhdHVzIHRvIEJBRCBh bmQgc2VuZCBhIFVldmVudCB0byBub3RpZnkKKwkgKiB1c2Vyc3BhY2UgdG8gZG8gYSBtb2Rlc2V0 LgorCSAqLworCWRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkoY29u bmVjdG9yLAorCQkJCQkJICAgIERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCk7CisJbXV0ZXhfdW5s b2NrKCZjb25uZWN0b3ItPmRldi0+bW9kZV9jb25maWcubXV0ZXgpOworCS8qIFNlbmQgSG90cGx1 ZyB1ZXZlbnQgc28gdXNlcnNwYWNlIGNhbiByZXByb2JlICovCisJZHJtX2ttc19oZWxwZXJfaG90 cGx1Z19ldmVudChjb25uZWN0b3ItPmRldik7Cit9CisKIGJvb2wKIGludGVsX2RwX2luaXRfY29u bmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCQkJc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQpAQCAtNTY4Myw2ICs1NzM4LDEw IEBAIHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPnBvcnQ7CiAJaW50 IHR5cGU7CiAKKwkvKiBJbml0aWFsaXplIHRoZSB3b3JrIGZvciBtb2Rlc2V0IGluIGNhc2Ugb2Yg bGluayB0cmFpbiBmYWlsdXJlICovCisJSU5JVF9XT1JLKCZpbnRlbF9jb25uZWN0b3ItPm1vZGVz ZXRfcmV0cnlfd29yaywKKwkJICBpbnRlbF9kcF9tb2Rlc2V0X3JldHJ5X3dvcmtfZm4pOworCiAJ aWYgKFdBUk4oaW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcyA8IDEsCiAJCSAiTm90IGVub3VnaCBs YW5lcyAoJWQpIGZvciBEUCBvbiBwb3J0ICVjXG4iLAogCQkgaW50ZWxfZGlnX3BvcnQtPm1heF9s YW5lcywgcG9ydF9uYW1lKHBvcnQpKSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX2xpbmtfdHJhaW5pbmcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw X2xpbmtfdHJhaW5pbmcuYwppbmRleCAwMDQ4YjUyLi5jYzI0M2RiIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9saW5rX3RyYWluaW5nLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBfbGlua190cmFpbmluZy5jCkBAIC0zMTMsNiArMzEzLDMwIEBA IHZvaWQgaW50ZWxfZHBfc3RvcF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp CiB2b2lkCiBpbnRlbF9kcF9zdGFydF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHApCiB7Ci0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19yZWNvdmVyeShpbnRlbF9kcCk7 Ci0JaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihpbnRlbF9kcCk7 CisJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0gaW50ZWxfZHAtPmF0 dGFjaGVkX2Nvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJmlu dGVsX2Nvbm5lY3Rvci0+YmFzZTsKKworCWlmICghaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9j a19yZWNvdmVyeShpbnRlbF9kcCkpCisJCWdvdG8gZmFpbHVyZV9oYW5kbGluZzsKKwlpZiAoIWlu dGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5lbF9lcXVhbGl6YXRpb24oaW50ZWxfZHApKQorCQln b3RvIGZhaWx1cmVfaGFuZGxpbmc7CisKKwkvKiBSZXNldCB0aGUgTGluayBUcmFpbiBWYWx1ZXMg Ki8KKwlEUk1fREVCVUdfS01TKCJMaW5rIFRyYWluaW5nIFBhc3NlZCBhdCBMaW5rIFJhdGUgPSAl ZCwgTGFuZSBjb3VudCA9ICVkIiwKKwkJICAgICAgaW50ZWxfZHAtPmxpbmtfcmF0ZSwgaW50ZWxf ZHAtPmxhbmVfY291bnQpOworCWludGVsX2RwLT5mYWxsYmFja19saW5rX3JhdGUgPSAwOworCWlu dGVsX2RwLT5mYWxsYmFja19sYW5lX2NvdW50ID0gMDsKKwlkcm1fbW9kZV9jb25uZWN0b3Jfc2V0 X2xpbmtfc3RhdHVzX3Byb3BlcnR5KGNvbm5lY3RvciwKKwkJCQkJCSAgICBEUk1fTU9ERV9MSU5L X1NUQVRVU19HT09EKTsKKwlyZXR1cm47CisKKyBmYWlsdXJlX2hhbmRsaW5nOgorCURSTV9ERUJV R19LTVMoIkxpbmsgVHJhaW5pbmcgZmFpbGVkIGF0IGxpbmsgcmF0ZSA9ICVkLCBsYW5lIGNvdW50 ID0gJWQiLAorCQkgICAgICBpbnRlbF9kcC0+bGlua19yYXRlLCBpbnRlbF9kcC0+bGFuZV9jb3Vu dCk7CisJaWYgKCFpbnRlbF9kcF9nZXRfbGlua190cmFpbl9mYWxsYmFja192YWx1ZXMoaW50ZWxf ZHAsCisJCQkJCQkgICAgIGludGVsX2RwLT5saW5rX3JhdGUsCisJCQkJCQkgICAgIGludGVsX2Rw LT5sYW5lX2NvdW50KSkKKwkJLyogU2NoZWR1bGUgYSBIb3RwbHVnIFVldmVudCB0byB1c2Vyc3Bh Y2UgdG8gc3RhcnQgbW9kZXNldCAqLworCQlzY2hlZHVsZV93b3JrKCZpbnRlbF9jb25uZWN0b3It Pm1vZGVzZXRfcmV0cnlfd29yayk7CisJcmV0dXJuOwogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAppbmRleCBlMWM0M2E5Li4zM2JlNjZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAt MzE1LDYgKzMxNSw5IEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgewogCXZvaWQgKnBvcnQ7IC8q IHN0b3JlIHRoaXMgb3BhcXVlIGFzIGl0cyBpbGxlZ2FsIHRvIGRlcmVmZXJlbmNlIGl0ICovCiAK IAlzdHJ1Y3QgaW50ZWxfZHAgKm1zdF9wb3J0OworCisJLyogV29yayBzdHJ1Y3QgdG8gc2NoZWR1 bGUgYSB1ZXZlbnQgb24gbGluayB0cmFpbiBmYWlsdXJlICovCisJc3RydWN0IHdvcmtfc3RydWN0 IG1vZGVzZXRfcmV0cnlfd29yazsKIH07CiAKIHN0cnVjdCBkcGxsIHsKLS0gCjEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK