From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH 23/43] drm/i915: wrapping all hdcp var into intel_hdcp Date: Wed, 14 Feb 2018 19:43:38 +0530 Message-ID: <1518617638-21684-24-git-send-email-ramalingam.c@intel.com> References: <1518617638-21684-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: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id C8D9B6E42B for ; Wed, 14 Feb 2018 14:20:40 +0000 (UTC) In-Reply-To: <1518617638-21684-1-git-send-email-ramalingam.c@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: seanpaul@chromium.org, intel-gfx@lists.freedesktop.org, rodrigo.vivi@intel.com, daniel.vetter@ffwll.ch Cc: tomas.winkler@intel.com List-Id: intel-gfx@lists.freedesktop.org Q29uc2lkZXJpbmcgdGhlIHVwY29taW5nIHNpZ25pZmljYW50IG5vIEhEQ1AyLjIgdmFyaWFibGVz LCBpdCB3aWxsCmJlIGNsZWFuIHRvIGhhdmUgc2VwYXJhdGUgc3RydWN0IGZvIEhEQ1AuCgpOZXcg c3RydWN0dXJlIGNhbGxlZCBpbnRlbF9oZGNwIGlzIGludHJvZHVjZWQuCgpTaWduZWQtb2ZmLWJ5 OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgICA5ICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYyAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aCAgICAgfCAgMjAgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYyAgICB8 IDE0MSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2Vk LCAxMDAgaW5zZXJ0aW9ucygrKSwgNzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCmluZGV4IDA0OGQ2MGI1MTQzYi4uMjIwOTczNDk1MjliIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xNTMxNCwxMCArMTUzMTQsMTEgQEAgc3RhdGlj IHZvaWQgaW50ZWxfaHBkX3BvbGxfZmluaShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWZvcl9l YWNoX2ludGVsX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNvbm5faXRlcikgewogCQlpZiAo Y29ubmVjdG9yLT5tb2Rlc2V0X3JldHJ5X3dvcmsuZnVuYykKIAkJCWNhbmNlbF93b3JrX3N5bmMo JmNvbm5lY3Rvci0+bW9kZXNldF9yZXRyeV93b3JrKTsKLQkJaWYgKGNvbm5lY3Rvci0+aGRjcF9z aGltKSB7Ci0JCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+aGRjcF9jaGVj a193b3JrKTsKLQkJCWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+aGRjcF9wcm9wX3dvcmsp OwotCQkJY2FuY2VsX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwX2VuYWJsZV93b3JrKTsKKwkJ aWYgKGNvbm5lY3Rvci0+aGRjcCAmJiBjb25uZWN0b3ItPmhkY3AtPmhkY3Bfc2hpbSkgeworCQkJ Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKAorCQkJCQkmY29ubmVjdG9yLT5oZGNwLT5oZGNwX2No ZWNrX3dvcmspOworCQkJY2FuY2VsX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwLT5oZGNwX3By b3Bfd29yayk7CisJCQljYW5jZWxfd29ya19zeW5jKCZjb25uZWN0b3ItPmhkY3AtPmhkY3BfZW5h YmxlX3dvcmspOwogCQl9CiAJfQogCWRybV9jb25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9p dGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCmluZGV4IGYyMGIyNWY5OGU1YS4uODA0NzY2ODk3 NTRmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKQEAgLTU0NDUsNyArNTQ0NSw5IEBAIGludGVs X2RwX2hwZF9wdWxzZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwg Ym9vbCBsb25nX2hwZCkKIAkJV0FSTihpcmV0LCAiQWNxdWlyaW5nIG1vZGVzZXQgbG9ja3MgZmFp bGVkIHdpdGggJWlcbiIsIGlyZXQpOwogCiAJCS8qIFNob3J0IHB1bHNlIGNhbiBzaWduaWZ5IGxv c3Mgb2YgaGRjcCBhdXRoZW50aWNhdGlvbiAqLwotCQlpbnRlbF9oZGNwX2NoZWNrX2xpbmsoaW50 ZWxfZHAtPmF0dGFjaGVkX2Nvbm5lY3Rvcik7CisJCWlmIChpbnRlbF9kcC0+YXR0YWNoZWRfY29u bmVjdG9yLT5oZGNwKQorCQkJaW50ZWxfaGRjcF9jaGVja19saW5rKAorCQkJCQlpbnRlbF9kcC0+ YXR0YWNoZWRfY29ubmVjdG9yLT5oZGNwKTsKIAogCQlpZiAoIWhhbmRsZWQpIHsKIAkJCWludGVs X2RwLT5kZXRlY3RfZG9uZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA3 YjllNWY3MDgyNmYuLjViMTcwZmY3ZWMxNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAg LTM3NSw2ICszNzUsMTcgQEAgc3RydWN0IGludGVsX2hkY3Bfc2hpbSB7CiAJCQkgICAgYm9vbCAq aGRjcF9jYXBhYmxlKTsKIH07CiAKK3N0cnVjdCBpbnRlbF9oZGNwIHsKKwlzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3I7CisKKwljb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpo ZGNwX3NoaW07CisJc3RydWN0IG11dGV4IGhkY3BfbXV0ZXg7CisJdWludDY0X3QgaGRjcF92YWx1 ZTsgLyogcHJvdGVjdGVkIGJ5IGhkY3BfbXV0ZXggKi8KKwlzdHJ1Y3QgZGVsYXllZF93b3JrIGhk Y3BfY2hlY2tfd29yazsKKwlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaGRjcF9wcm9wX3dvcms7CisJc3Ry dWN0IHdvcmtfc3RydWN0IGhkY3BfZW5hYmxlX3dvcms7Cit9OworCiBzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yIHsKIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciBiYXNlOwogCS8qCkBAIC00MDcsMTIgKzQx OCw3IEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgewogCS8qIFdvcmsgc3RydWN0IHRvIHNjaGVk dWxlIGEgdWV2ZW50IG9uIGxpbmsgdHJhaW4gZmFpbHVyZSAqLwogCXN0cnVjdCB3b3JrX3N0cnVj dCBtb2Rlc2V0X3JldHJ5X3dvcms7CiAKLQljb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpo ZGNwX3NoaW07Ci0Jc3RydWN0IG11dGV4IGhkY3BfbXV0ZXg7Ci0JdWludDY0X3QgaGRjcF92YWx1 ZTsgLyogcHJvdGVjdGVkIGJ5IGhkY3BfbXV0ZXggKi8KLQlzdHJ1Y3QgZGVsYXllZF93b3JrIGhk Y3BfY2hlY2tfd29yazsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaGRjcF9wcm9wX3dvcms7Ci0Jc3Ry dWN0IHdvcmtfc3RydWN0IGhkY3BfZW5hYmxlX3dvcms7CisJc3RydWN0IGludGVsX2hkY3AgKmhk Y3A7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgewpAQCAtMTg1 Myw3ICsxODU5LDcgQEAgaW50IGludGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsCiAJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3No aW0pOwogaW50IGludGVsX2hkY3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5l Y3Rvcik7CiBpbnQgaW50ZWxfaGRjcF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNv bm5lY3Rvcik7Ci1pbnQgaW50ZWxfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3Rvcik7CitpbnQgaW50ZWxfaGRjcF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9o ZGNwICpoZGNwKTsKIGJvb2wgaXNfaGRjcF9zdXBwb3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7CiAKIC8qIGludGVsX3Bzci5jICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZGNwLmMKaW5kZXggZTAzYmQzNzZkOTJjLi45MTQ3ZmIxN2E5ZmMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKQEAgLTU0NSw4ICs1NDUsOSBAQCBzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpjb25uX3RvX2RpZ19wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIAlyZXR1cm4gZW5jX3RvX2RpZ19wb3J0KCZpbnRlbF9hdHRhY2hlZF9lbmNv ZGVyKCZjb25uZWN0b3ItPmJhc2UpLT5iYXNlKTsKIH0KIAotc3RhdGljIGludCBfaW50ZWxfaGRj cF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3N0YXRpYyBpbnQg X2ludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCkKIHsKKwlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBoZGNwLT5jb25uZWN0b3I7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2X3ByaXZh dGU7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3Rv X2RpZ19wb3J0KGNvbm5lY3Rvcik7CiAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+ YmFzZS5wb3J0OwpAQCAtNTYyLDcgKzU2Myw3IEBAIHN0YXRpYyBpbnQgX2ludGVsX2hkY3BfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJCXJldHVybiAtRVRJTUVE T1VUOwogCX0KIAotCXJldCA9IGNvbm5lY3Rvci0+aGRjcF9zaGltLT50b2dnbGVfc2lnbmFsbGlu ZyhpbnRlbF9kaWdfcG9ydCwgZmFsc2UpOworCXJldCA9IGhkY3AtPmhkY3Bfc2hpbS0+dG9nZ2xl X3NpZ25hbGxpbmcoaW50ZWxfZGlnX3BvcnQsIGZhbHNlKTsKIAlpZiAocmV0KSB7CiAJCURSTV9F UlJPUigiRmFpbGVkIHRvIGRpc2FibGUgSERDUCBzaWduYWxsaW5nXG4iKTsKIAkJcmV0dXJuIHJl dDsKQEAgLTU3Miw4ICs1NzMsOSBAQCBzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2Rpc2FibGUoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMg aW50IF9pbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip CitzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCkK IHsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSBoZGNwLT5jb25uZWN0b3I7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRl di0+ZGV2X3ByaXZhdGU7CiAJaW50IGksIHJldCwgdHJpZXMgPSAzOwogCkBAIC01OTksMTIgKzYw MSwxMiBAQCBzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCiAJLyogSW5jYXNlIG9mIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmVzLCBI RENQIHNwZWMgZXhwZWN0cyByZWF1dGguICovCiAJZm9yIChpID0gMDsgaSA8IHRyaWVzOyBpKysp IHsKIAkJcmV0ID0gaW50ZWxfaGRjcF9hdXRoKGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKSwK LQkJCQkgICAgICBjb25uZWN0b3ItPmhkY3Bfc2hpbSk7CisJCQkJICAgICAgaGRjcC0+aGRjcF9z aGltKTsKIAkJaWYgKCFyZXQpIHsKLQkJCWNvbm5lY3Rvci0+aGRjcF92YWx1ZSA9CisJCQloZGNw LT5oZGNwX3ZhbHVlID0KIAkJCQkJRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7 Ci0JCQlzY2hlZHVsZV93b3JrKCZjb25uZWN0b3ItPmhkY3BfcHJvcF93b3JrKTsKLQkJCXNjaGVk dWxlX2RlbGF5ZWRfd29yaygmY29ubmVjdG9yLT5oZGNwX2NoZWNrX3dvcmssCisJCQlzY2hlZHVs ZV93b3JrKCZoZGNwLT5oZGNwX3Byb3Bfd29yayk7CisJCQlzY2hlZHVsZV9kZWxheWVkX3dvcmso JmhkY3AtPmhkY3BfY2hlY2tfd29yaywKIAkJCQkJICAgICAgRFJNX0hEQ1BfQ0hFQ0tfUEVSSU9E X01TKTsKIAkJCXJldHVybiAwOwogCQl9CkBAIC02MTIsNyArNjE0LDcgQEAgc3RhdGljIGludCBf aW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCQlE Uk1fREVCVUdfS01TKCJIRENQIEF1dGggZmFpbHVyZSAoJWQpXG4iLCByZXQpOwogCiAJCS8qIEVu c3VyaW5nIEhEQ1AgZW5jcnlwdGlvbiBhbmQgc2lnbmFsbGluZyBhcmUgc3RvcHBlZC4gKi8KLQkJ X2ludGVsX2hkY3BfZGlzYWJsZShjb25uZWN0b3IpOworCQlfaW50ZWxfaGRjcF9kaXNhYmxlKGhk Y3ApOwogCX0KIAogCURSTV9FUlJPUigiSERDUCBhdXRoZW50aWNhdGlvbiBmYWlsZWQgKCVkIHRy aWVzLyVkKVxuIiwgdHJpZXMsIHJldCk7CkBAIC02MjEsNDcgKzYyMyw0NSBAQCBzdGF0aWMgaW50 IF9pbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAK IHN0YXRpYyB2b2lkIGludGVsX2hkY3BfZW5hYmxlX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQogewotCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbnRhaW5lcl9v Zih3b3JrLAotCQkJCQkJCSBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLAotCQkJCQkJCSBoZGNwX2Vu YWJsZV93b3JrKTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9IGNvbnRhaW5lcl9vZih3b3Jr LCBzdHJ1Y3QgaW50ZWxfaGRjcCwKKwkJCQkJICAgICAgIGhkY3BfZW5hYmxlX3dvcmspOwogCi0J bXV0ZXhfbG9jaygmY29ubmVjdG9yLT5oZGNwX211dGV4KTsKLQlfaW50ZWxfaGRjcF9lbmFibGUo Y29ubmVjdG9yKTsKLQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7CisJbXV0 ZXhfbG9jaygmaGRjcC0+aGRjcF9tdXRleCk7CisJX2ludGVsX2hkY3BfZW5hYmxlKGhkY3ApOwor CW11dGV4X3VubG9jaygmaGRjcC0+aGRjcF9tdXRleCk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVs X2hkY3BfY2hlY2tfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7Ci0Jc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29udGFpbmVyX29mKHRvX2RlbGF5ZWRfd29yayh3 b3JrKSwKLQkJCQkJCQkgc3RydWN0IGludGVsX2Nvbm5lY3RvciwKLQkJCQkJCQkgaGRjcF9jaGVj a193b3JrKTsKLQlpZiAoIWludGVsX2hkY3BfY2hlY2tfbGluayhjb25uZWN0b3IpKQotCQlzY2hl ZHVsZV9kZWxheWVkX3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9jaGVja193b3JrLAorCXN0cnVjdCBp bnRlbF9oZGNwICpoZGNwID0gY29udGFpbmVyX29mKHRvX2RlbGF5ZWRfd29yayh3b3JrKSwKKwkJ CQkJICAgICAgIHN0cnVjdCBpbnRlbF9oZGNwLAorCQkJCQkgICAgICAgaGRjcF9jaGVja193b3Jr KTsKKwlpZiAoIWludGVsX2hkY3BfY2hlY2tfbGluayhoZGNwKSkKKwkJc2NoZWR1bGVfZGVsYXll ZF93b3JrKCZoZGNwLT5oZGNwX2NoZWNrX3dvcmssCiAJCQkJICAgICAgRFJNX0hEQ1BfQ0hFQ0tf UEVSSU9EX01TKTsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfaGRjcF9wcm9wX3dvcmsoc3RydWN0 IHdvcmtfc3RydWN0ICp3b3JrKQogewotCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciA9IGNvbnRhaW5lcl9vZih3b3JrLAotCQkJCQkJCSBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yLAot CQkJCQkJCSBoZGNwX3Byb3Bfd29yayk7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5l Y3Rvci0+YmFzZS5kZXY7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSBjb250YWluZXJfb2Yo d29yaywgc3RydWN0IGludGVsX2hkY3AsCisJCQkJCSAgICAgICBoZGNwX3Byb3Bfd29yayk7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGhkY3AtPmNvbm5lY3Rvci0+YmFzZS5kZXY7CiAJc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlOwogCiAJZHJtX21vZGVzZXRfbG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKLQltdXRleF9sb2NrKCZjb25u ZWN0b3ItPmhkY3BfbXV0ZXgpOworCW11dGV4X2xvY2soJmhkY3AtPmhkY3BfbXV0ZXgpOwogCiAJ LyoKIAkgKiBUaGlzIHdvcmtlciBpcyBvbmx5IHVzZWQgdG8gZmxpcCBiZXR3ZWVuIEVOQUJMRUQv REVTSVJFRC4gRWl0aGVyIG9mCiAJICogdGhvc2UgdG8gVU5ERVNJUkVEIGlzIGhhbmRsZWQgYnkg Y29yZS4gSWYgaGRjcF92YWx1ZSA9PSBVTkRFU0lSRUQsCiAJICogd2UncmUgcnVubmluZyBqdXN0 IGFmdGVyIGhkY3AgaGFzIGJlZW4gZGlzYWJsZWQsIHNvIGp1c3QgZXhpdAogCSAqLwotCWlmIChj b25uZWN0b3ItPmhkY3BfdmFsdWUgIT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVT SVJFRCkgewotCQlzdGF0ZSA9IGNvbm5lY3Rvci0+YmFzZS5zdGF0ZTsKLQkJc3RhdGUtPmNvbnRl bnRfcHJvdGVjdGlvbiA9IGNvbm5lY3Rvci0+aGRjcF92YWx1ZTsKKwlpZiAoaGRjcC0+aGRjcF92 YWx1ZSAhPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKSB7CisJCXN0YXRl ID0gaGRjcC0+Y29ubmVjdG9yLT5iYXNlLnN0YXRlOworCQlzdGF0ZS0+Y29udGVudF9wcm90ZWN0 aW9uID0gaGRjcC0+aGRjcF92YWx1ZTsKIAl9CiAKLQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+ aGRjcF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZoZGNwLT5oZGNwX211dGV4KTsKIAlkcm1fbW9k ZXNldF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCk7CiB9CiAKQEAg LTY3Niw0OCArNjc2LDY0IEBAIGludCBpbnRlbF9oZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAogCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hkY3Bfc2hpbSAqaGRj cF9zaGltKQogewogCWludCByZXQ7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3A7CisKKwloZGNw ID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGludGVsX2hkY3ApLCBHRlBfS0VSTkVMKTsKKwlpZiAo IWhkY3ApIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBlcnI7CisJfQogCiAJcmV0ID0gZHJt X2Nvbm5lY3Rvcl9hdHRhY2hfY29udGVudF9wcm90ZWN0aW9uX3Byb3BlcnR5KAogCQkJJmNvbm5l Y3Rvci0+YmFzZSk7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBlcnI7CisKKwlo ZGNwLT5oZGNwX3NoaW0gPSBoZGNwX3NoaW07CisJbXV0ZXhfaW5pdCgmaGRjcC0+aGRjcF9tdXRl eCk7CisJSU5JVF9ERUxBWUVEX1dPUksoJmhkY3AtPmhkY3BfY2hlY2tfd29yaywgaW50ZWxfaGRj cF9jaGVja193b3JrKTsKKwlJTklUX1dPUksoJmhkY3AtPmhkY3BfcHJvcF93b3JrLCBpbnRlbF9o ZGNwX3Byb3Bfd29yayk7CisJSU5JVF9XT1JLKCZoZGNwLT5oZGNwX2VuYWJsZV93b3JrLCBpbnRl bF9oZGNwX2VuYWJsZV93b3JrKTsKIAotCWNvbm5lY3Rvci0+aGRjcF9zaGltID0gaGRjcF9zaGlt OwotCW11dGV4X2luaXQoJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7Ci0JSU5JVF9ERUxBWUVEX1dP UksoJmNvbm5lY3Rvci0+aGRjcF9jaGVja193b3JrLCBpbnRlbF9oZGNwX2NoZWNrX3dvcmspOwot CUlOSVRfV09SSygmY29ubmVjdG9yLT5oZGNwX3Byb3Bfd29yaywgaW50ZWxfaGRjcF9wcm9wX3dv cmspOwotCUlOSVRfV09SSygmY29ubmVjdG9yLT5oZGNwX2VuYWJsZV93b3JrLCBpbnRlbF9oZGNw X2VuYWJsZV93b3JrKTsKKwljb25uZWN0b3ItPmhkY3AgPSBoZGNwOwogCXJldHVybiAwOworCitl cnI6CisJa2ZyZWUoaGRjcCk7CisJcmV0dXJuIHJldDsKIH0KIAogaW50IGludGVsX2hkY3BfZW5h YmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKLQlpZiAoIWNvbm5lY3Rv ci0+aGRjcF9zaGltKQorCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gY29ubmVjdG9yLT5oZGNw OworCisJaWYgKCFoZGNwIHx8ICFoZGNwLT5oZGNwX3NoaW0pCiAJCXJldHVybiAtRU5PRU5UOwog Ci0JbXV0ZXhfbG9jaygmY29ubmVjdG9yLT5oZGNwX211dGV4KTsKLQlzY2hlZHVsZV93b3JrKCZj b25uZWN0b3ItPmhkY3BfZW5hYmxlX3dvcmspOwotCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5o ZGNwX211dGV4KTsKKwltdXRleF9sb2NrKCZoZGNwLT5oZGNwX211dGV4KTsKKwlzY2hlZHVsZV93 b3JrKCZoZGNwLT5oZGNwX2VuYWJsZV93b3JrKTsKKwltdXRleF91bmxvY2soJmhkY3AtPmhkY3Bf bXV0ZXgpOwogCiAJcmV0dXJuIDA7CiB9CiAKIGludCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogeworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNw ID0gY29ubmVjdG9yLT5oZGNwOwogCWludCByZXQgPSAwOwogCi0JaWYgKCFjb25uZWN0b3ItPmhk Y3Bfc2hpbSkKKwlpZiAoIWhkY3AgfHwgIWhkY3AtPmhkY3Bfc2hpbSkKIAkJcmV0dXJuIC1FTk9F TlQ7CiAKLQltdXRleF9sb2NrKCZjb25uZWN0b3ItPmhkY3BfbXV0ZXgpOworCW11dGV4X2xvY2so JmhkY3AtPmhkY3BfbXV0ZXgpOwogCi0JaWYgKGNvbm5lY3Rvci0+aGRjcF92YWx1ZSAhPSBEUk1f TU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKSB7Ci0JCWNvbm5lY3Rvci0+aGRjcF92 YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQ7Ci0JCXJldCA9IF9p bnRlbF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKKwlpZiAoaGRjcC0+aGRjcF92YWx1ZSAhPSBE Uk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKSB7CisJCWhkY3AtPmhkY3BfdmFs dWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEOworCQlyZXQgPSBfaW50 ZWxfaGRjcF9kaXNhYmxlKGhkY3ApOwogCX0KIAotCW11dGV4X3VubG9jaygmY29ubmVjdG9yLT5o ZGNwX211dGV4KTsKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+aGRjcF9j aGVja193b3JrKTsKKwltdXRleF91bmxvY2soJmhkY3AtPmhkY3BfbXV0ZXgpOworCWNhbmNlbF9k ZWxheWVkX3dvcmtfc3luYygmaGRjcC0+aGRjcF9jaGVja193b3JrKTsKIAlyZXR1cm4gcmV0Owog fQogCkBAIC03NTUsMTkgKzc3MSwyMCBAQCB2b2lkIGludGVsX2hkY3BfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiB9CiAKIC8qIEltcGxlbWVudHMgUGFydCAz IG9mIHRoZSBIRENQIGF1dGhvcml6YXRpb24gcHJvY2VkdXJlICovCi1pbnQgaW50ZWxfaGRjcF9j aGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK2ludCBpbnRlbF9o ZGNwX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2hkY3AgKmhkY3ApCiB7CisJc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yID0gaGRjcC0+Y29ubmVjdG9yOwogCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwog CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29ubl90b19kaWdf cG9ydChjb25uZWN0b3IpOwogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2Uu cG9ydDsKIAlpbnQgcmV0ID0gMDsKIAotCWlmICghY29ubmVjdG9yLT5oZGNwX3NoaW0pCisJaWYg KCFoZGNwLT5oZGNwX3NoaW0pCiAJCXJldHVybiAtRU5PRU5UOwogCi0JbXV0ZXhfbG9jaygmY29u bmVjdG9yLT5oZGNwX211dGV4KTsKKwltdXRleF9sb2NrKCZoZGNwLT5oZGNwX211dGV4KTsKIAot CWlmIChjb25uZWN0b3ItPmhkY3BfdmFsdWUgPT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9O X1VOREVTSVJFRCkKKwlpZiAoaGRjcC0+aGRjcF92YWx1ZSA9PSBEUk1fTU9ERV9DT05URU5UX1BS T1RFQ1RJT05fVU5ERVNJUkVEKQogCQlnb3RvIG91dDsKIAogCWlmICghKEk5MTVfUkVBRChQT1JU X0hEQ1BfU1RBVFVTKHBvcnQpKSAmIEhEQ1BfU1RBVFVTX0VOQykpIHsKQEAgLTc3NSwxNyArNzky LDE3IEBAIGludCBpbnRlbF9oZGNwX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQogCQkJICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJh c2UuaWQsCiAJCQkgIEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSk7CiAJCXJldCA9 IC1FTlhJTzsKLQkJY29ubmVjdG9yLT5oZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9U RUNUSU9OX0RFU0lSRUQ7Ci0JCXNjaGVkdWxlX3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9wcm9wX3dv cmspOworCQloZGNwLT5oZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0RF U0lSRUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPmhkY3BfcHJvcF93b3JrKTsKIAkJZ290byBv dXQ7CiAJfQogCi0JaWYgKGNvbm5lY3Rvci0+aGRjcF9zaGltLT5jaGVja19saW5rKGludGVsX2Rp Z19wb3J0KSkgewotCQlpZiAoY29ubmVjdG9yLT5oZGNwX3ZhbHVlICE9CisJaWYgKGhkY3AtPmhk Y3Bfc2hpbS0+Y2hlY2tfbGluayhpbnRlbF9kaWdfcG9ydCkpIHsKKwkJaWYgKGhkY3AtPmhkY3Bf dmFsdWUgIT0KIAkJICAgIERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpIHsK LQkJCWNvbm5lY3Rvci0+aGRjcF92YWx1ZSA9CisJCQloZGNwLT5oZGNwX3ZhbHVlID0KIAkJCQlE Uk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fRU5BQkxFRDsKLQkJCXNjaGVkdWxlX3dvcmsoJmNv bm5lY3Rvci0+aGRjcF9wcm9wX3dvcmspOworCQkJc2NoZWR1bGVfd29yaygmaGRjcC0+aGRjcF9w cm9wX3dvcmspOwogCQl9CiAJCWdvdG8gb3V0OwogCX0KQEAgLTc5MywyMyArODEwLDIzIEBAIGlu dCBpbnRlbF9oZGNwX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQogCURSTV9ERUJVR19LTVMoIlslczolZF0gSERDUCBsaW5rIGZhaWxlZCwgcmV0cnlpbmcgYXV0 aGVudGljYXRpb25cbiIsCiAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5uYW1lLCBjb25uZWN0b3It PmJhc2UuYmFzZS5pZCk7CiAKLQlyZXQgPSBfaW50ZWxfaGRjcF9kaXNhYmxlKGNvbm5lY3Rvcik7 CisJcmV0ID0gX2ludGVsX2hkY3BfZGlzYWJsZShoZGNwKTsKIAlpZiAocmV0KSB7CiAJCURSTV9F UlJPUigiRmFpbGVkIHRvIGRpc2FibGUgaGRjcCAoJWQpXG4iLCByZXQpOwotCQljb25uZWN0b3It PmhkY3BfdmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKLQkJc2No ZWR1bGVfd29yaygmY29ubmVjdG9yLT5oZGNwX3Byb3Bfd29yayk7CisJCWhkY3AtPmhkY3BfdmFs dWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKKwkJc2NoZWR1bGVfd29y aygmaGRjcC0+aGRjcF9wcm9wX3dvcmspOwogCQlnb3RvIG91dDsKIAl9CiAKLQlyZXQgPSBfaW50 ZWxfaGRjcF9lbmFibGUoY29ubmVjdG9yKTsKKwlyZXQgPSBfaW50ZWxfaGRjcF9lbmFibGUoaGRj cCk7CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBlbmFibGUgaGRjcCAoJWQp XG4iLCByZXQpOwotCQljb25uZWN0b3ItPmhkY3BfdmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BS T1RFQ1RJT05fREVTSVJFRDsKLQkJc2NoZWR1bGVfd29yaygmY29ubmVjdG9yLT5oZGNwX3Byb3Bf d29yayk7CisJCWhkY3AtPmhkY3BfdmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05f REVTSVJFRDsKKwkJc2NoZWR1bGVfd29yaygmaGRjcC0+aGRjcF9wcm9wX3dvcmspOwogCQlnb3Rv IG91dDsKIAl9CiAKIG91dDoKLQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7 CisJbXV0ZXhfdW5sb2NrKCZoZGNwLT5oZGNwX211dGV4KTsKIAlyZXR1cm4gcmV0OwogfQotLSAK Mi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=