From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan de Oliveira Subject: [PATCH 02/15] drm/i915: Don't pass *DP around to link training functions Date: Mon, 5 Oct 2015 10:01:14 +0300 Message-ID: <1444028487-6501-3-git-send-email-ander.conselvan.de.oliveira@intel.com> References: <1444028487-6501-1-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 22D7F6E136 for ; Mon, 5 Oct 2015 00:01:54 -0700 (PDT) In-Reply-To: <1444028487-6501-1-git-send-email-ander.conselvan.de.oliveira@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: Ander Conselvan de Oliveira List-Id: intel-gfx@lists.freedesktop.org SXQganVzdCBtYWtlcyB0aGUgY29kZSBtb3JlIGNvbmZ1c2luZywgc28ganVzdCByZWZlcmVuY2Ug aW50ZWxfZHBfPkRQCmRpcmVjdGx5LiBUaGUgb2xkIGJlaGF2aW9yIG9mIG5vdCB1cGRhdGluZyB0 aGUgdmFsdWUgaW4gaW50ZWxfZHAgaWYgbGluawp0cmFpbmluZyBmYWlsIGlzIHByZXNlcnZlZCBi eSBzYXZpbmcgdGhlIHByZXZpb3VzIHZhbHVlIG9mIERQIGluIHRoZQpzdGFjayBhbmQgcmVzdG9y aW5nIHRoZSBvbGQgdmFsdWUgaW4gY2FzZSBvZiBmYWlsdXJlLgoKU2lnbmVkLW9mZi1ieTogQW5k ZXIgQ29uc2VsdmFuIGRlIE9saXZlaXJhIDxhbmRlci5jb25zZWx2YW4uZGUub2xpdmVpcmFAaW50 ZWwuY29tPgotLQoKSSdtIG5vdCBzdXJlIHRoZSBvbGQgYmVoYXZpb3IgaXMgY29ycmVjdCwgYnV0 IHRvIGVyciBpbiB0aGUgc2lkZSBvZgpjYXV0aW9uIEkgdHJpZWQgbm90IHRvIGNoYW5nZSBpdC4K Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDY2ICsrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9u cygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKaW5kZXggYzQyMGVk Zi4uMzkxYTM2NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCkBAIC0zNjAxLDcgKzM2MDEsNiBA QCBpbnRlbF9kcF9zZXRfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1 aW50MzJfdCAqRFApCiAKIHN0YXRpYyBib29sCiBpbnRlbF9kcF9zZXRfbGlua190cmFpbihzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAotCQkJdWludDMyX3QgKkRQLAogCQkJdWludDhfdCBkcF90 cmFpbl9wYXQpCiB7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7CkBAIC0zNjEwLDkgKzM2MDksOSBAQCBpbnRlbF9k cF9zZXRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAogCXVpbnQ4X3QgYnVm W3NpemVvZihpbnRlbF9kcC0+dHJhaW5fc2V0KSArIDFdOwogCWludCByZXQsIGxlbjsKIAotCV9p bnRlbF9kcF9zZXRfbGlua190cmFpbihpbnRlbF9kcCwgRFAsIGRwX3RyYWluX3BhdCk7CisJX2lu dGVsX2RwX3NldF9saW5rX3RyYWluKGludGVsX2RwLCAmaW50ZWxfZHAtPkRQLCBkcF90cmFpbl9w YXQpOwogCi0JSTkxNV9XUklURShpbnRlbF9kcC0+b3V0cHV0X3JlZywgKkRQKTsKKwlJOTE1X1dS SVRFKGludGVsX2RwLT5vdXRwdXRfcmVnLCBpbnRlbF9kcC0+RFApOwogCVBPU1RJTkdfUkVBRChp bnRlbF9kcC0+b3V0cHV0X3JlZyk7CiAKIAlidWZbMF0gPSBkcF90cmFpbl9wYXQ7CkBAIC0zNjMz LDE3ICszNjMyLDE3IEBAIGludGVsX2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAsCiB9CiAKIHN0YXRpYyBib29sCi1pbnRlbF9kcF9yZXNldF9saW5rX3RyYWluKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQzMl90ICpEUCwKK2ludGVsX2RwX3Jlc2V0X2xp bmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAkJCXVpbnQ4X3QgZHBfdHJhaW5f cGF0KQogewogCWlmICghaW50ZWxfZHAtPnRyYWluX3NldF92YWxpZCkKIAkJbWVtc2V0KGludGVs X2RwLT50cmFpbl9zZXQsIDAsIHNpemVvZihpbnRlbF9kcC0+dHJhaW5fc2V0KSk7Ci0JaW50ZWxf ZHBfc2V0X3NpZ25hbF9sZXZlbHMoaW50ZWxfZHAsIERQKTsKLQlyZXR1cm4gaW50ZWxfZHBfc2V0 X2xpbmtfdHJhaW4oaW50ZWxfZHAsIERQLCBkcF90cmFpbl9wYXQpOworCWludGVsX2RwX3NldF9z aWduYWxfbGV2ZWxzKGludGVsX2RwLCAmaW50ZWxfZHAtPkRQKTsKKwlyZXR1cm4gaW50ZWxfZHBf c2V0X2xpbmtfdHJhaW4oaW50ZWxfZHAsIGRwX3RyYWluX3BhdCk7CiB9CiAKIHN0YXRpYyBib29s Ci1pbnRlbF9kcF91cGRhdGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCB1 aW50MzJfdCAqRFAsCitpbnRlbF9kcF91cGRhdGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwLAogCQkJICAgY29uc3QgdWludDhfdCBsaW5rX3N0YXR1c1tEUF9MSU5LX1NUQVRV U19TSVpFXSkKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9 IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKQEAgLTM2NTIsOSArMzY1MSw5IEBAIGludGVsX2Rw X3VwZGF0ZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQzMl90ICpE UCwKIAlpbnQgcmV0OwogCiAJaW50ZWxfZ2V0X2FkanVzdF90cmFpbihpbnRlbF9kcCwgbGlua19z dGF0dXMpOwotCWludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKGludGVsX2RwLCBEUCk7CisJaW50 ZWxfZHBfc2V0X3NpZ25hbF9sZXZlbHMoaW50ZWxfZHAsICZpbnRlbF9kcC0+RFApOwogCi0JSTkx NV9XUklURShpbnRlbF9kcC0+b3V0cHV0X3JlZywgKkRQKTsKKwlJOTE1X1dSSVRFKGludGVsX2Rw LT5vdXRwdXRfcmVnLCBpbnRlbF9kcC0+RFApOwogCVBPU1RJTkdfUkVBRChpbnRlbF9kcC0+b3V0 cHV0X3JlZyk7CiAKIAlyZXQgPSBkcm1fZHBfZHBjZF93cml0ZSgmaW50ZWxfZHAtPmF1eCwgRFBf VFJBSU5JTkdfTEFORTBfU0VULApAQCAtMzY5NSw3ICszNjk0LDcgQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHBfc2V0X2lkbGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogfQog CiAvKiBFbmFibGUgY29ycmVzcG9uZGluZyBwb3J0IGFuZCBzdGFydCB0cmFpbmluZyBwYXR0ZXJu IDEgKi8KLXN0YXRpYyB2b2lkCitzdGF0aWMgYm9vbAogaW50ZWxfZHBfbGlua190cmFpbmluZ19j bG9ja19yZWNvdmVyeShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewogCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciA9ICZkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2UuYmFzZTsK QEAgLTM3MDMsOSArMzcwMiw5IEBAIGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tfcmVjb3Zl cnkoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlpbnQgaTsKIAl1aW50OF90IHZvbHRhZ2U7 CiAJaW50IHZvbHRhZ2VfdHJpZXMsIGxvb3BfdHJpZXM7Ci0JdWludDMyX3QgRFAgPSBpbnRlbF9k cC0+RFA7CiAJdWludDhfdCBsaW5rX2NvbmZpZ1syXTsKIAl1aW50OF90IGxpbmtfYncsIHJhdGVf c2VsZWN0OworCXVpbnQ4X3QgbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV07CiAKIAlp ZiAoSEFTX0RESShkZXYpKQogCQlpbnRlbF9kZGlfcHJlcGFyZV9saW5rX3JldHJhaW4oZW5jb2Rl cik7CkBAIC0zNzI3LDIyICszNzI2LDIwIEBAIGludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tf cmVjb3Zlcnkoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAlsaW5rX2NvbmZpZ1sxXSA9IERQ X1NFVF9BTlNJXzhCMTBCOwogCWRybV9kcF9kcGNkX3dyaXRlKCZpbnRlbF9kcC0+YXV4LCBEUF9E T1dOU1BSRUFEX0NUUkwsIGxpbmtfY29uZmlnLCAyKTsKIAotCURQIHw9IERQX1BPUlRfRU47CisJ aW50ZWxfZHAtPkRQIHw9IERQX1BPUlRfRU47CiAKIAkvKiBjbG9jayByZWNvdmVyeSAqLwotCWlm ICghaW50ZWxfZHBfcmVzZXRfbGlua190cmFpbihpbnRlbF9kcCwgJkRQLAorCWlmICghaW50ZWxf ZHBfcmVzZXRfbGlua190cmFpbihpbnRlbF9kcCwKIAkJCQkgICAgICAgRFBfVFJBSU5JTkdfUEFU VEVSTl8xIHwKIAkJCQkgICAgICAgRFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUpKSB7CiAJCURS TV9FUlJPUigiZmFpbGVkIHRvIGVuYWJsZSBsaW5rIHRyYWluaW5nXG4iKTsKLQkJcmV0dXJuOwor CQlyZXR1cm4gZmFsc2U7CiAJfQogCiAJdm9sdGFnZSA9IDB4ZmY7CiAJdm9sdGFnZV90cmllcyA9 IDA7CiAJbG9vcF90cmllcyA9IDA7CiAJZm9yICg7OykgewotCQl1aW50OF90IGxpbmtfc3RhdHVz W0RQX0xJTktfU1RBVFVTX1NJWkVdOwotCiAJCWRybV9kcF9saW5rX3RyYWluX2Nsb2NrX3JlY292 ZXJ5X2RlbGF5KGludGVsX2RwLT5kcGNkKTsKIAkJaWYgKCFpbnRlbF9kcF9nZXRfbGlua19zdGF0 dXMoaW50ZWxfZHAsIGxpbmtfc3RhdHVzKSkgewogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gZ2V0 IGxpbmsgc3RhdHVzXG4iKTsKQEAgLTM3NjIsMTEgKzM3NTksMTEgQEAgaW50ZWxfZHBfbGlua190 cmFpbmluZ19jbG9ja19yZWNvdmVyeShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCQkJRFJN X0RFQlVHX0tNUygiY2xvY2sgcmVjb3Zlcnkgbm90IG9rLCByZXNldCIpOwogCQkJLyogY2xlYXIg dGhlIGZsYWcgYXMgd2UgYXJlIG5vdCByZXVzaW5nIHRyYWluIHNldCAqLwogCQkJaW50ZWxfZHAt PnRyYWluX3NldF92YWxpZCA9IGZhbHNlOwotCQkJaWYgKCFpbnRlbF9kcF9yZXNldF9saW5rX3Ry YWluKGludGVsX2RwLCAmRFAsCisJCQlpZiAoIWludGVsX2RwX3Jlc2V0X2xpbmtfdHJhaW4oaW50 ZWxfZHAsCiAJCQkJCQkgICAgICAgRFBfVFJBSU5JTkdfUEFUVEVSTl8xIHwKIAkJCQkJCSAgICAg ICBEUF9MSU5LX1NDUkFNQkxJTkdfRElTQUJMRSkpIHsKIAkJCQlEUk1fRVJST1IoImZhaWxlZCB0 byBlbmFibGUgbGluayB0cmFpbmluZ1xuIik7Ci0JCQkJcmV0dXJuOworCQkJCXJldHVybiBmYWxz ZTsKIAkJCX0KIAkJCWNvbnRpbnVlOwogCQl9CkBAIC0zNzgxLDcgKzM3NzgsNyBAQCBpbnRlbF9k cF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp CiAJCQkJRFJNX0VSUk9SKCJ0b28gbWFueSBmdWxsIHJldHJpZXMsIGdpdmUgdXBcbiIpOwogCQkJ CWJyZWFrOwogCQkJfQotCQkJaW50ZWxfZHBfcmVzZXRfbGlua190cmFpbihpbnRlbF9kcCwgJkRQ LAorCQkJaW50ZWxfZHBfcmVzZXRfbGlua190cmFpbihpbnRlbF9kcCwKIAkJCQkJCSAgRFBfVFJB SU5JTkdfUEFUVEVSTl8xIHwKIAkJCQkJCSAgRFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUpOwog CQkJdm9sdGFnZV90cmllcyA9IDA7CkBAIC0zODAwLDIzICszNzk3LDIyIEBAIGludGVsX2RwX2xp bmtfdHJhaW5pbmdfY2xvY2tfcmVjb3Zlcnkoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIAkJ dm9sdGFnZSA9IGludGVsX2RwLT50cmFpbl9zZXRbMF0gJiBEUF9UUkFJTl9WT0xUQUdFX1NXSU5H X01BU0s7CiAKIAkJLyogVXBkYXRlIHRyYWluaW5nIHNldCBhcyByZXF1ZXN0ZWQgYnkgdGFyZ2V0 ICovCi0JCWlmICghaW50ZWxfZHBfdXBkYXRlX2xpbmtfdHJhaW4oaW50ZWxfZHAsICZEUCwgbGlu a19zdGF0dXMpKSB7CisJCWlmICghaW50ZWxfZHBfdXBkYXRlX2xpbmtfdHJhaW4oaW50ZWxfZHAs IGxpbmtfc3RhdHVzKSkgewogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gdXBkYXRlIGxpbmsgdHJh aW5pbmdcbiIpOwogCQkJYnJlYWs7CiAJCX0KIAl9CiAKLQlpbnRlbF9kcC0+RFAgPSBEUDsKKwly ZXR1cm4gZHJtX2RwX2Nsb2NrX3JlY292ZXJ5X29rKGxpbmtfc3RhdHVzLCBpbnRlbF9kcC0+bGFu ZV9jb3VudCk7CiB9CiAKLXN0YXRpYyB2b2lkCitzdGF0aWMgYm9vbAogaW50ZWxfZHBfbGlua190 cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQog ewogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOwogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkaWdfcG9ydC0+YmFzZS5iYXNl LmRldjsKIAlib29sIGNoYW5uZWxfZXEgPSBmYWxzZTsKIAlpbnQgdHJpZXMsIGNyX3RyaWVzOwot CXVpbnQzMl90IERQID0gaW50ZWxfZHAtPkRQOwogCXVpbnQzMl90IHRyYWluaW5nX3BhdHRlcm4g PSBEUF9UUkFJTklOR19QQVRURVJOXzI7CiAKIAkvKgpAQCAtMzgzNSwxMSArMzgzMSwxMSBAQCBp bnRlbF9kcF9saW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKHN0cnVjdCBpbnRlbF9k cCAqaW50ZWxfZHApCiAJCURSTV9FUlJPUigiNS40IEdicHMgbGluayByYXRlIHdpdGhvdXQgSEJS Mi9UUFMzIHN1cHBvcnRcbiIpOwogCiAJLyogY2hhbm5lbCBlcXVhbGl6YXRpb24gKi8KLQlpZiAo IWludGVsX2RwX3NldF9saW5rX3RyYWluKGludGVsX2RwLCAmRFAsCisJaWYgKCFpbnRlbF9kcF9z ZXRfbGlua190cmFpbihpbnRlbF9kcCwKIAkJCQkgICAgIHRyYWluaW5nX3BhdHRlcm4gfAogCQkJ CSAgICAgRFBfTElOS19TQ1JBTUJMSU5HX0RJU0FCTEUpKSB7CiAJCURSTV9FUlJPUigiZmFpbGVk IHRvIHN0YXJ0IGNoYW5uZWwgZXF1YWxpemF0aW9uXG4iKTsKLQkJcmV0dXJuOworCQlyZXR1cm4g ZmFsc2U7CiAJfQogCiAJdHJpZXMgPSAwOwpAQCAtMzg2NCw3ICszODYwLDcgQEAgaW50ZWxfZHBf bGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQogCQkJCQkgICAgICBpbnRlbF9kcC0+bGFuZV9jb3VudCkpIHsKIAkJCWludGVsX2RwLT50 cmFpbl9zZXRfdmFsaWQgPSBmYWxzZTsKIAkJCWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2xvY2tf cmVjb3ZlcnkoaW50ZWxfZHApOwotCQkJaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oaW50ZWxfZHAs ICZEUCwKKwkJCWludGVsX2RwX3NldF9saW5rX3RyYWluKGludGVsX2RwLAogCQkJCQkJdHJhaW5p bmdfcGF0dGVybiB8CiAJCQkJCQlEUF9MSU5LX1NDUkFNQkxJTkdfRElTQUJMRSk7CiAJCQljcl90 cmllcysrOwpAQCAtMzg4MSw3ICszODc3LDcgQEAgaW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFu bmVsX2VxdWFsaXphdGlvbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogCQlpZiAodHJpZXMg PiA1KSB7CiAJCQlpbnRlbF9kcC0+dHJhaW5fc2V0X3ZhbGlkID0gZmFsc2U7CiAJCQlpbnRlbF9k cF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsKLQkJCWludGVsX2RwX3Nl dF9saW5rX3RyYWluKGludGVsX2RwLCAmRFAsCisJCQlpbnRlbF9kcF9zZXRfbGlua190cmFpbihp bnRlbF9kcCwKIAkJCQkJCXRyYWluaW5nX3BhdHRlcm4gfAogCQkJCQkJRFBfTElOS19TQ1JBTUJM SU5HX0RJU0FCTEUpOwogCQkJdHJpZXMgPSAwOwpAQCAtMzg5MCw3ICszODg2LDcgQEAgaW50ZWxf ZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQogCQl9CiAKIAkJLyogVXBkYXRlIHRyYWluaW5nIHNldCBhcyByZXF1ZXN0ZWQgYnkg dGFyZ2V0ICovCi0JCWlmICghaW50ZWxfZHBfdXBkYXRlX2xpbmtfdHJhaW4oaW50ZWxfZHAsICZE UCwgbGlua19zdGF0dXMpKSB7CisJCWlmICghaW50ZWxfZHBfdXBkYXRlX2xpbmtfdHJhaW4oaW50 ZWxfZHAsIGxpbmtfc3RhdHVzKSkgewogCQkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gdXBkYXRlIGxp bmsgdHJhaW5pbmdcbiIpOwogCQkJYnJlYWs7CiAJCX0KQEAgLTM4OTksMjUgKzM4OTUsMjkgQEAg aW50ZWxfZHBfbGlua190cmFpbmluZ19jaGFubmVsX2VxdWFsaXphdGlvbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQogCiAJaW50ZWxfZHBfc2V0X2lkbGVfbGlua190cmFpbihpbnRlbF9kcCk7 CiAKLQlpbnRlbF9kcC0+RFAgPSBEUDsKLQogCWlmIChjaGFubmVsX2VxKSB7CiAJCWludGVsX2Rw LT50cmFpbl9zZXRfdmFsaWQgPSB0cnVlOwogCQlEUk1fREVCVUdfS01TKCJDaGFubmVsIEVRIGRv bmUuIERQIFRyYWluaW5nIHN1Y2Nlc3NmdWxcbiIpOworCQlyZXR1cm4gdHJ1ZTsKKwl9IGVsc2Ug eworCQlyZXR1cm4gZmFsc2U7CiAJfQogfQogCiB2b2lkIGludGVsX2RwX3N0b3BfbGlua190cmFp bihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQogewotCWludGVsX2RwX3NldF9saW5rX3RyYWlu KGludGVsX2RwLCAmaW50ZWxfZHAtPkRQLAorCWludGVsX2RwX3NldF9saW5rX3RyYWluKGludGVs X2RwLAogCQkJCURQX1RSQUlOSU5HX1BBVFRFUk5fRElTQUJMRSk7CiB9CiAKIHZvaWQKIGludGVs X2RwX3N0YXJ0X2xpbmtfdHJhaW4oc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKIHsKLQlpbnRl bF9kcF9saW5rX3RyYWluaW5nX2Nsb2NrX3JlY292ZXJ5KGludGVsX2RwKTsKLQlpbnRlbF9kcF9s aW5rX3RyYWluaW5nX2NoYW5uZWxfZXF1YWxpemF0aW9uKGludGVsX2RwKTsKKwl1aW50MzJfdCBE UCA9IGludGVsX2RwLT5EUDsKKworCWlmICghaW50ZWxfZHBfbGlua190cmFpbmluZ19jbG9ja19y ZWNvdmVyeShpbnRlbF9kcCkgfHwKKwkgICAgIWludGVsX2RwX2xpbmtfdHJhaW5pbmdfY2hhbm5l bF9lcXVhbGl6YXRpb24oaW50ZWxfZHApKQorCQlpbnRlbF9kcC0+RFAgPSBEUDsKIH0KIAogc3Rh dGljIHZvaWQKLS0gCjIuNC4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=