From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v2 21/42] drm/i915: wrapping all hdcp var into intel_hdcp Date: Thu, 8 Mar 2018 17:28:48 +0530 Message-ID: <1520510349-8385-22-git-send-email-ramalingam.c@intel.com> References: <1520510349-8385-1-git-send-email-ramalingam.c@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520510349-8385-1-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, seanpaul@chromium.org, chris@chris-wilson.co.uk, tomas.winkler@intel.com, jani.nikula@linux.intel.com Cc: uma.shankar@intel.com, rodrigo.vivi@intel.com List-Id: dri-devel@lists.freedesktop.org Q29uc2lkZXJpbmcgdGhlIHVwY29taW5nIHNpZ25pZmljYW50IG5vIEhEQ1AyLjIgdmFyaWFibGVz LCBpdCB3aWxsCmJlIGNsZWFuIHRvIGhhdmUgc2VwYXJhdGUgc3RydWN0IGZvIEhEQ1AuCgpOZXcg c3RydWN0dXJlIGNhbGxlZCBpbnRlbF9oZGNwIGlzIGludHJvZHVjZWQuCgp2MjoKICBzdHJ1Y3Qg aGRjcCBzdGF0aWNhbGx5IGFsbG9jYXRlZC4gW1NlYW4gUGF1bF0KICBlbmFibGUgYW5kIGRpc2Fi bGUgZnVuY3Rpb24gcGFyYW1ldGVycyBhcmUgcmV0YWluZWQuW1NlYW4gUGF1bF0KClNpZ25lZC1v ZmYtYnk6IFJhbWFsaW5nYW0gQyA8cmFtYWxpbmdhbS5jQGludGVsLmNvbT4KLS0tCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgNyArLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rydi5oICAgICB8IDE0ICsrKystLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jICAgIHwgOTQgKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2NWM4NDg3YmU3YzcuLjE5NzYzOWYzOTc2 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTUzOTYsOSArMTUzOTYs MTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfaHBkX3BvbGxfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRl cikgewogCQlpZiAoY29ubmVjdG9yLT5tb2Rlc2V0X3JldHJ5X3dvcmsuZnVuYykKIAkJCWNhbmNl bF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+bW9kZXNldF9yZXRyeV93b3JrKTsKLQkJaWYgKGNvbm5l Y3Rvci0+aGRjcF9zaGltKSB7Ci0JCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmNvbm5lY3Rv ci0+aGRjcF9jaGVja193b3JrKTsKLQkJCWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+aGRj cF9wcm9wX3dvcmspOworCQlpZiAoY29ubmVjdG9yLT5oZGNwLmhkY3Bfc2hpbSkgeworCQkJY2Fu Y2VsX2RlbGF5ZWRfd29ya19zeW5jKAorCQkJCQkmY29ubmVjdG9yLT5oZGNwLmhkY3BfY2hlY2tf d29yayk7CisJCQljYW5jZWxfd29ya19zeW5jKCZjb25uZWN0b3ItPmhkY3AuaGRjcF9wcm9wX3dv cmspOwogCQl9CiAJfQogCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9pdGVyKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggOGYzOGU1ODRkMzc1Li4xYjI1NjBlYzUyYWIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0zNzYsNiArMzc2LDE0IEBAIHN0cnVjdCBp bnRlbF9oZGNwX3NoaW0gewogCQkJICAgIGJvb2wgKmhkY3BfY2FwYWJsZSk7CiB9OwogCitzdHJ1 Y3QgaW50ZWxfaGRjcCB7CisJY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqaGRjcF9zaGlt OworCXN0cnVjdCBtdXRleCBoZGNwX211dGV4OworCXVpbnQ2NF90IGhkY3BfdmFsdWU7IC8qIHBy b3RlY3RlZCBieSBoZGNwX211dGV4ICovCisJc3RydWN0IGRlbGF5ZWRfd29yayBoZGNwX2NoZWNr X3dvcms7CisJc3RydWN0IHdvcmtfc3RydWN0IGhkY3BfcHJvcF93b3JrOworfTsKKwogc3RydWN0 IGludGVsX2Nvbm5lY3RvciB7CiAJc3RydWN0IGRybV9jb25uZWN0b3IgYmFzZTsKIAkvKgpAQCAt NDA4LDExICs0MTYsNyBAQCBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKIAkvKiBXb3JrIHN0cnVj dCB0byBzY2hlZHVsZSBhIHVldmVudCBvbiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KIAlzdHJ1Y3Qg d29ya19zdHJ1Y3QgbW9kZXNldF9yZXRyeV93b3JrOwogCi0JY29uc3Qgc3RydWN0IGludGVsX2hk Y3Bfc2hpbSAqaGRjcF9zaGltOwotCXN0cnVjdCBtdXRleCBoZGNwX211dGV4OwotCXVpbnQ2NF90 IGhkY3BfdmFsdWU7IC8qIHByb3RlY3RlZCBieSBoZGNwX211dGV4ICovCi0Jc3RydWN0IGRlbGF5 ZWRfd29yayBoZGNwX2NoZWNrX3dvcms7Ci0Jc3RydWN0IHdvcmtfc3RydWN0IGhkY3BfcHJvcF93 b3JrOworCXN0cnVjdCBpbnRlbF9oZGNwIGhkY3A7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9jb25uZWN0b3Jfc3RhdGUgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCmluZGV4IDE0Y2E1 ZDMwNTdhNy4uMWNjYTRmMzQ5MDY0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZGNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCkBAIC01 NDcsNiArNTQ3LDcgQEAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqY29ubl90b19kaWdfcG9y dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAKIHN0YXRpYyBpbnQgX2ludGVs X2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiB7CisJc3Ry dWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdf cG9ydChjb25uZWN0b3IpOwogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2Uu cG9ydDsKQEAgLTU2Miw3ICs1NjMsNyBAQCBzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2Rpc2FibGUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQlyZXR1cm4gLUVUSU1FRE9VVDsK IAl9CiAKLQlyZXQgPSBjb25uZWN0b3ItPmhkY3Bfc2hpbS0+dG9nZ2xlX3NpZ25hbGxpbmcoaW50 ZWxfZGlnX3BvcnQsIGZhbHNlKTsKKwlyZXQgPSBoZGNwLT5oZGNwX3NoaW0tPnRvZ2dsZV9zaWdu YWxsaW5nKGludGVsX2RpZ19wb3J0LCBmYWxzZSk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1Io IkZhaWxlZCB0byBkaXNhYmxlIEhEQ1Agc2lnbmFsbGluZ1xuIik7CiAJCXJldHVybiByZXQ7CkBA IC01NzQsNiArNTc1LDcgQEAgc3RhdGljIGludCBfaW50ZWxfaGRjcF9kaXNhYmxlKHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAogc3RhdGljIGludCBfaW50ZWxfaGRjcF9lbmFi bGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogeworCXN0cnVjdCBpbnRlbF9o ZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKIAlpbnQgaSwgcmV0 LCB0cmllcyA9IDM7CiAKQEAgLTU5OSw3ICs2MDEsNyBAQCBzdGF0aWMgaW50IF9pbnRlbF9oZGNw X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJLyogSW5jYXNlIG9m IGF1dGhlbnRpY2F0aW9uIGZhaWx1cmVzLCBIRENQIHNwZWMgZXhwZWN0cyByZWF1dGguICovCiAJ Zm9yIChpID0gMDsgaSA8IHRyaWVzOyBpKyspIHsKIAkJcmV0ID0gaW50ZWxfaGRjcF9hdXRoKGNv bm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKSwKLQkJCQkgICAgICBjb25uZWN0b3ItPmhkY3Bfc2hp bSk7CisJCQkJICAgICAgaGRjcC0+aGRjcF9zaGltKTsKIAkJaWYgKCFyZXQpCiAJCQlyZXR1cm4g MDsKIApAQCAtNjE1LDM2ICs2MTcsNDIgQEAgc3RhdGljIGludCBfaW50ZWxfaGRjcF9lbmFibGUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCiBzdGF0aWMgdm9pZCBpbnRlbF9o ZGNwX2NoZWNrX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewotCXN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbnRhaW5lcl9vZih0b19kZWxheWVkX3dvcmsod29y ayksCisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSBjb250YWluZXJfb2YodG9fZGVsYXllZF93 b3JrKHdvcmspLAorCQkJCQkgICAgICAgc3RydWN0IGludGVsX2hkY3AsCisJCQkJCSAgICAgICBo ZGNwX2NoZWNrX3dvcmspOworCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNv bnRhaW5lcl9vZihoZGNwLAogCQkJCQkJCSBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLAotCQkJCQkJ CSBoZGNwX2NoZWNrX3dvcmspOworCQkJCQkJCSBoZGNwKTsKKwogCWlmICghaW50ZWxfaGRjcF9j aGVja19saW5rKGNvbm5lY3RvcikpCi0JCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY29ubmVjdG9y LT5oZGNwX2NoZWNrX3dvcmssCisJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+aGRjcF9j aGVja193b3JrLAogCQkJCSAgICAgIERSTV9IRENQX0NIRUNLX1BFUklPRF9NUyk7CiB9CiAKIHN0 YXRpYyB2b2lkIGludGVsX2hkY3BfcHJvcF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykK IHsKLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb250YWluZXJfb2Yod29y aywKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3Qg aW50ZWxfaGRjcCwKKwkJCQkJICAgICAgIGhkY3BfcHJvcF93b3JrKTsKKwlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IgPSBjb250YWluZXJfb2YoaGRjcCwKIAkJCQkJCQkgc3RydWN0 IGludGVsX2Nvbm5lY3RvciwKLQkJCQkJCQkgaGRjcF9wcm9wX3dvcmspOworCQkJCQkJCSBoZGNw KTsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGU7CiAKIAlkcm1fbW9kZXNldF9sb2NrKCZkZXYt Pm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOwotCW11dGV4X2xvY2soJmNvbm5l Y3Rvci0+aGRjcF9tdXRleCk7CisJbXV0ZXhfbG9jaygmaGRjcC0+aGRjcF9tdXRleCk7CiAKIAkv KgogCSAqIFRoaXMgd29ya2VyIGlzIG9ubHkgdXNlZCB0byBmbGlwIGJldHdlZW4gRU5BQkxFRC9E RVNJUkVELiBFaXRoZXIgb2YKIAkgKiB0aG9zZSB0byBVTkRFU0lSRUQgaXMgaGFuZGxlZCBieSBj b3JlLiBJZiBoZGNwX3ZhbHVlID09IFVOREVTSVJFRCwKIAkgKiB3ZSdyZSBydW5uaW5nIGp1c3Qg YWZ0ZXIgaGRjcCBoYXMgYmVlbiBkaXNhYmxlZCwgc28ganVzdCBleGl0CiAJICovCi0JaWYgKGNv bm5lY3Rvci0+aGRjcF92YWx1ZSAhPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJ UkVEKSB7CisJaWYgKGhkY3AtPmhkY3BfdmFsdWUgIT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNU SU9OX1VOREVTSVJFRCkgewogCQlzdGF0ZSA9IGNvbm5lY3Rvci0+YmFzZS5zdGF0ZTsKLQkJc3Rh dGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9IGNvbm5lY3Rvci0+aGRjcF92YWx1ZTsKKwkJc3RhdGUt PmNvbnRlbnRfcHJvdGVjdGlvbiA9IGhkY3AtPmhkY3BfdmFsdWU7CiAJfQogCi0JbXV0ZXhfdW5s b2NrKCZjb25uZWN0b3ItPmhkY3BfbXV0ZXgpOworCW11dGV4X3VubG9jaygmaGRjcC0+aGRjcF9t dXRleCk7CiAJZHJtX21vZGVzZXRfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25f bXV0ZXgpOwogfQogCkBAIC02NTgsNiArNjY2LDcgQEAgYm9vbCBpc19oZGNwX3N1cHBvcnRlZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogaW50IGlu dGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCSAgICBj b25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3NoaW0pCiB7CisJc3RydWN0IGludGVs X2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCWludCByZXQ7CiAKIAlyZXQgPSBkcm1f Y29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHkoCkBAIC02NjUsNTEg KzY3NCw1MyBAQCBpbnQgaW50ZWxfaGRjcF9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3RvciwKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JY29ubmVjdG9yLT5oZGNwX3No aW0gPSBoZGNwX3NoaW07Ci0JbXV0ZXhfaW5pdCgmY29ubmVjdG9yLT5oZGNwX211dGV4KTsKLQlJ TklUX0RFTEFZRURfV09SSygmY29ubmVjdG9yLT5oZGNwX2NoZWNrX3dvcmssIGludGVsX2hkY3Bf Y2hlY2tfd29yayk7Ci0JSU5JVF9XT1JLKCZjb25uZWN0b3ItPmhkY3BfcHJvcF93b3JrLCBpbnRl bF9oZGNwX3Byb3Bfd29yayk7CisJaGRjcC0+aGRjcF9zaGltID0gaGRjcF9zaGltOworCW11dGV4 X2luaXQoJmhkY3AtPmhkY3BfbXV0ZXgpOworCUlOSVRfREVMQVlFRF9XT1JLKCZoZGNwLT5oZGNw X2NoZWNrX3dvcmssIGludGVsX2hkY3BfY2hlY2tfd29yayk7CisJSU5JVF9XT1JLKCZoZGNwLT5o ZGNwX3Byb3Bfd29yaywgaW50ZWxfaGRjcF9wcm9wX3dvcmspOwogCXJldHVybiAwOwogfQogCiBp bnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQog eworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKIAlpbnQgcmV0 OwogCi0JaWYgKCFjb25uZWN0b3ItPmhkY3Bfc2hpbSkKKwlpZiAoIWhkY3AtPmhkY3Bfc2hpbSkK IAkJcmV0dXJuIC1FTk9FTlQ7CiAKLQltdXRleF9sb2NrKCZjb25uZWN0b3ItPmhkY3BfbXV0ZXgp OworCW11dGV4X2xvY2soJmhkY3AtPmhkY3BfbXV0ZXgpOwogCiAJcmV0ID0gX2ludGVsX2hkY3Bf ZW5hYmxlKGNvbm5lY3Rvcik7CiAJaWYgKHJldCkKIAkJZ290byBvdXQ7CiAKLQljb25uZWN0b3It PmhkY3BfdmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRDsKLQlzY2hl ZHVsZV93b3JrKCZjb25uZWN0b3ItPmhkY3BfcHJvcF93b3JrKTsKLQlzY2hlZHVsZV9kZWxheWVk X3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9jaGVja193b3JrLAorCWhkY3AtPmhkY3BfdmFsdWUgPSBE Uk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRDsKKwlzY2hlZHVsZV93b3JrKCZoZGNw LT5oZGNwX3Byb3Bfd29yayk7CisJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZoZGNwLT5oZGNwX2No ZWNrX3dvcmssCiAJCQkgICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVMpOwogb3V0OgotCW11 dGV4X3VubG9jaygmY29ubmVjdG9yLT5oZGNwX211dGV4KTsKKwltdXRleF91bmxvY2soJmhkY3At PmhkY3BfbXV0ZXgpOwogCXJldHVybiByZXQ7CiB9CiAKIGludCBpbnRlbF9oZGNwX2Rpc2FibGUo c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogeworCXN0cnVjdCBpbnRlbF9oZGNw ICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKIAlpbnQgcmV0ID0gMDsKIAotCWlmICghY29ubmVj dG9yLT5oZGNwX3NoaW0pCisJaWYgKCFoZGNwLT5oZGNwX3NoaW0pCiAJCXJldHVybiAtRU5PRU5U OwogCi0JbXV0ZXhfbG9jaygmY29ubmVjdG9yLT5oZGNwX211dGV4KTsKKwltdXRleF9sb2NrKCZo ZGNwLT5oZGNwX211dGV4KTsKIAotCWlmIChjb25uZWN0b3ItPmhkY3BfdmFsdWUgIT0gRFJNX01P REVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCkgewotCQljb25uZWN0b3ItPmhkY3BfdmFs dWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEOworCWlmIChoZGNwLT5o ZGNwX3ZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpIHsKKwkJ aGRjcC0+aGRjcF92YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQ7 CiAJCXJldCA9IF9pbnRlbF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKIAl9CiAKLQltdXRleF91 bmxvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7Ci0JY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5j KCZjb25uZWN0b3ItPmhkY3BfY2hlY2tfd29yayk7CisJbXV0ZXhfdW5sb2NrKCZoZGNwLT5oZGNw X211dGV4KTsKKwljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmhkY3AtPmhkY3BfY2hlY2tfd29y ayk7CiAJcmV0dXJuIHJldDsKIH0KIApAQCAtNzQ5LDE3ICs3NjAsMTggQEAgdm9pZCBpbnRlbF9o ZGNwX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogLyogSW1w bGVtZW50cyBQYXJ0IDMgb2YgdGhlIEhEQ1AgYXV0aG9yaXphdGlvbiBwcm9jZWR1cmUgKi8KIGlu dCBpbnRlbF9oZGNwX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogeworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2LT5kZXZf cHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGNv bm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKTsKIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19w b3J0LT5iYXNlLnBvcnQ7CiAJaW50IHJldCA9IDA7CiAKLQlpZiAoIWNvbm5lY3Rvci0+aGRjcF9z aGltKQorCWlmICghaGRjcC0+aGRjcF9zaGltKQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCW11dGV4 X2xvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7CisJbXV0ZXhfbG9jaygmaGRjcC0+aGRjcF9t dXRleCk7CiAKLQlpZiAoY29ubmVjdG9yLT5oZGNwX3ZhbHVlID09IERSTV9NT0RFX0NPTlRFTlRf UFJPVEVDVElPTl9VTkRFU0lSRUQpCisJaWYgKGhkY3AtPmhkY3BfdmFsdWUgPT0gRFJNX01PREVf Q09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCkKIAkJZ290byBvdXQ7CiAKIAlpZiAoIShJOTE1 X1JFQUQoUE9SVF9IRENQX1NUQVRVUyhwb3J0KSkgJiBIRENQX1NUQVRVU19FTkMpKSB7CkBAIC03 NjcsMTcgKzc3OSwxNyBAQCBpbnQgaW50ZWxfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKIAkJCSAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5lY3Rv ci0+YmFzZS5iYXNlLmlkLAogCQkJICBJOTE1X1JFQUQoUE9SVF9IRENQX1NUQVRVUyhwb3J0KSkp OwogCQlyZXQgPSAtRU5YSU87Ci0JCWNvbm5lY3Rvci0+aGRjcF92YWx1ZSA9IERSTV9NT0RFX0NP TlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEOwotCQlzY2hlZHVsZV93b3JrKCZjb25uZWN0b3ItPmhk Y3BfcHJvcF93b3JrKTsKKwkJaGRjcC0+aGRjcF92YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJP VEVDVElPTl9ERVNJUkVEOworCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5oZGNwX3Byb3Bfd29yayk7 CiAJCWdvdG8gb3V0OwogCX0KIAotCWlmIChjb25uZWN0b3ItPmhkY3Bfc2hpbS0+Y2hlY2tfbGlu ayhpbnRlbF9kaWdfcG9ydCkpIHsKLQkJaWYgKGNvbm5lY3Rvci0+aGRjcF92YWx1ZSAhPQorCWlm IChoZGNwLT5oZGNwX3NoaW0tPmNoZWNrX2xpbmsoaW50ZWxfZGlnX3BvcnQpKSB7CisJCWlmICho ZGNwLT5oZGNwX3ZhbHVlICE9CiAJCSAgICBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5E RVNJUkVEKSB7Ci0JCQljb25uZWN0b3ItPmhkY3BfdmFsdWUgPQorCQkJaGRjcC0+aGRjcF92YWx1 ZSA9CiAJCQkJRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7Ci0JCQlzY2hlZHVs ZV93b3JrKCZjb25uZWN0b3ItPmhkY3BfcHJvcF93b3JrKTsKKwkJCXNjaGVkdWxlX3dvcmsoJmhk Y3AtPmhkY3BfcHJvcF93b3JrKTsKIAkJfQogCQlnb3RvIG91dDsKIAl9CkBAIC03ODgsMjAgKzgw MCwyMCBAQCBpbnQgaW50ZWxfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIAlyZXQgPSBfaW50ZWxfaGRjcF9kaXNhYmxlKGNvbm5lY3Rvcik7CiAJaWYg KHJldCkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBkaXNhYmxlIGhkY3AgKCVkKVxuIiwgcmV0 KTsKLQkJY29ubmVjdG9yLT5oZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9O X0RFU0lSRUQ7Ci0JCXNjaGVkdWxlX3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9wcm9wX3dvcmspOwor CQloZGNwLT5oZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7 CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPmhkY3BfcHJvcF93b3JrKTsKIAkJZ290byBvdXQ7CiAJ fQogCiAJcmV0ID0gX2ludGVsX2hkY3BfZW5hYmxlKGNvbm5lY3Rvcik7CiAJaWYgKHJldCkgewog CQlEUk1fRVJST1IoIkZhaWxlZCB0byBlbmFibGUgaGRjcCAoJWQpXG4iLCByZXQpOwotCQljb25u ZWN0b3ItPmhkY3BfdmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsK LQkJc2NoZWR1bGVfd29yaygmY29ubmVjdG9yLT5oZGNwX3Byb3Bfd29yayk7CisJCWhkY3AtPmhk Y3BfdmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKKwkJc2NoZWR1 bGVfd29yaygmaGRjcC0+aGRjcF9wcm9wX3dvcmspOwogCQlnb3RvIG91dDsKIAl9CiAKIG91dDoK LQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZo ZGNwLT5oZGNwX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQotLSAKMi43LjQKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxp c3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=