From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v6 05/35] drm/i915: wrapping all hdcp var into intel_hdcp Date: Sat, 14 Jul 2018 08:44:47 +0530 Message-ID: <1531538117-1606-6-git-send-email-ramalingam.c@intel.com> References: <1531538117-1606-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: <1531538117-1606-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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, daniel@ffwll.ch, seanpaul@chromium.org, tomas.winkler@intel.com, alexander.usyskin@intel.com, uma.shankar@intel.com List-Id: dri-devel@lists.freedesktop.org Q29uc2lkZXJpbmcgc2lnbmlmaWNhbnQgbnVtYmVyIG9mIEhEQ1Agc3BlY2lmaWMgdmFyaWFibGVz LCBpdCB3aWxsCmJlIGNsZWFuIHRvIGhhdmUgc2VwYXJhdGUgc3RydWN0IGZvciBIRENQLgoKTmV3 IHN0cnVjdHVyZSBjYWxsZWQgaW50ZWxfaGRjcCBpcyBhZGRlZCB3aXRoaW4gaW50ZWxfY29ubmVj dG9yLgoKdjI6CiAgc3RydWN0IGhkY3Agc3RhdGljYWxseSBhbGxvY2F0ZWQuIFtTZWFuIFBhdWxd CiAgZW5hYmxlIGFuZCBkaXNhYmxlIGZ1bmN0aW9uIHBhcmFtZXRlcnMgYXJlIHJldGFpbmVkLltT ZWFuIFBhdWxdCnYzOgogIE5vIENoYW5nZXMuCnY0OgogIENvbW1pdCBtc2cgaXMgcmVwaHJhc2Vk IFtVbWFdCnY1OgogIENvbW1lbnQgZm9yIG11dGV4IGRlZmluaXRpb24uCnY2OgogIGhkY3BfIHBy ZWZpeCBmcm9tIGFsbCBpbnRlbF9oZGNwIG1lbWJlcnMgYXJlIHJlbW92ZWQgW1NlYW4gUGF1bF0K ICBpbmxpbmUgZnVuY3Rpb24gaW50ZWxfaGRjcF90b19jb25uZWN0b3IgaXMgZGVmaW5lZCBbU2Vh biBQYXVsXQoKU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwu Y29tPgpSZXZpZXdlZC1ieTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgICA2ICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMTUgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkY3AuYyAgICB8IDEwNyArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA1NiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggOGYzMTk5YjA2ZDFmLi5iODEw NmYwZmQ2NGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE1ODc4LDkg KzE1ODc4LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfaHBkX3BvbGxfZmluaShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCWZvcl9lYWNoX2ludGVsX2Nvbm5lY3Rvcl9pdGVyKGNvbm5lY3RvciwgJmNv bm5faXRlcikgewogCQlpZiAoY29ubmVjdG9yLT5tb2Rlc2V0X3JldHJ5X3dvcmsuZnVuYykKIAkJ CWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rvci0+bW9kZXNldF9yZXRyeV93b3JrKTsKLQkJaWYg KGNvbm5lY3Rvci0+aGRjcF9zaGltKSB7Ci0JCQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmNv bm5lY3Rvci0+aGRjcF9jaGVja193b3JrKTsKLQkJCWNhbmNlbF93b3JrX3N5bmMoJmNvbm5lY3Rv ci0+aGRjcF9wcm9wX3dvcmspOworCQlpZiAoY29ubmVjdG9yLT5oZGNwLnNoaW0pIHsKKwkJCWNh bmNlbF9kZWxheWVkX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwLmNoZWNrX3dvcmspOworCQkJ Y2FuY2VsX3dvcmtfc3luYygmY29ubmVjdG9yLT5oZGNwLnByb3Bfd29yayk7CiAJCX0KIAl9CiAJ ZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25uX2l0ZXIpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaAppbmRleCA2MWU3MTVkZGQwZDUuLmMzMjY2NTEzNmQ1ZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKQEAgLTM3OCw2ICszNzgsMTUgQEAgc3RydWN0IGludGVsX2hkY3Bfc2hpbSB7 CiAJCQkgICAgYm9vbCAqaGRjcF9jYXBhYmxlKTsKIH07CiAKK3N0cnVjdCBpbnRlbF9oZGNwIHsK Kwljb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpzaGltOworCS8qIE11dGV4IGZvciBoZGNw IHN0YXRlIG9mIHRoZSBjb25uZWN0b3IgKi8KKwlzdHJ1Y3QgbXV0ZXggbXV0ZXg7CisJdWludDY0 X3QgdmFsdWU7CisJc3RydWN0IGRlbGF5ZWRfd29yayBjaGVja193b3JrOworCXN0cnVjdCB3b3Jr X3N0cnVjdCBwcm9wX3dvcms7Cit9OworCiBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKIAlzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciBiYXNlOwogCS8qCkBAIC00MTAsMTEgKzQxOSw3IEBAIHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgewogCS8qIFdvcmsgc3RydWN0IHRvIHNjaGVkdWxlIGEgdWV2ZW50IG9u IGxpbmsgdHJhaW4gZmFpbHVyZSAqLwogCXN0cnVjdCB3b3JrX3N0cnVjdCBtb2Rlc2V0X3JldHJ5 X3dvcms7CiAKLQljb25zdCBzdHJ1Y3QgaW50ZWxfaGRjcF9zaGltICpoZGNwX3NoaW07Ci0Jc3Ry dWN0IG11dGV4IGhkY3BfbXV0ZXg7Ci0JdWludDY0X3QgaGRjcF92YWx1ZTsgLyogcHJvdGVjdGVk IGJ5IGhkY3BfbXV0ZXggKi8KLQlzdHJ1Y3QgZGVsYXllZF93b3JrIGhkY3BfY2hlY2tfd29yazsK LQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgaGRjcF9wcm9wX3dvcms7CisJc3RydWN0IGludGVsX2hkY3Ag aGRjcDsKIH07CiAKIHN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZGNwLmMKaW5kZXggMGNjNmE4NjFiY2Y4Li41NWJjNGQ0MjMxODcgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKQEAgLTYyNiw2ICs2MjYsNyBAQCBzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpjb25uX3RvX2RpZ19wb3J0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3Ig KmNvbm5lY3RvcikKIAogc3RhdGljIGludCBfaW50ZWxfaGRjcF9kaXNhYmxlKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIHsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZj b25uZWN0b3ItPmhkY3A7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY29u bmVjdG9yLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19wb3J0KGNvbm5lY3Rvcik7CiAJZW51bSBw b3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0OwpAQCAtNjQxLDcgKzY0Miw3IEBA IHN0YXRpYyBpbnQgX2ludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IpCiAJCXJldHVybiAtRVRJTUVET1VUOwogCX0KIAotCXJldCA9IGNvbm5lY3Rvci0+ aGRjcF9zaGltLT50b2dnbGVfc2lnbmFsbGluZyhpbnRlbF9kaWdfcG9ydCwgZmFsc2UpOworCXJl dCA9IGhkY3AtPnNoaW0tPnRvZ2dsZV9zaWduYWxsaW5nKGludGVsX2RpZ19wb3J0LCBmYWxzZSk7 CiAJaWYgKHJldCkgewogCQlEUk1fRVJST1IoIkZhaWxlZCB0byBkaXNhYmxlIEhEQ1Agc2lnbmFs bGluZ1xuIik7CiAJCXJldHVybiByZXQ7CkBAIC02NTMsNiArNjU0LDcgQEAgc3RhdGljIGludCBf aW50ZWxfaGRjcF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAog c3RhdGljIGludCBfaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQogeworCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2 LT5kZXZfcHJpdmF0ZTsKIAlpbnQgaSwgcmV0LCB0cmllcyA9IDM7CiAKQEAgLTY3Nyw4ICs2Nzks NyBAQCBzdGF0aWMgaW50IF9pbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCiAKIAkvKiBJbmNhc2Ugb2YgYXV0aGVudGljYXRpb24gZmFpbHVyZXMsIEhE Q1Agc3BlYyBleHBlY3RzIHJlYXV0aC4gKi8KIAlmb3IgKGkgPSAwOyBpIDwgdHJpZXM7IGkrKykg ewotCQlyZXQgPSBpbnRlbF9oZGNwX2F1dGgoY29ubl90b19kaWdfcG9ydChjb25uZWN0b3IpLAot CQkJCSAgICAgIGNvbm5lY3Rvci0+aGRjcF9zaGltKTsKKwkJcmV0ID0gaW50ZWxfaGRjcF9hdXRo KGNvbm5fdG9fZGlnX3BvcnQoY29ubmVjdG9yKSwgaGRjcC0+c2hpbSk7CiAJCWlmICghcmV0KQog CQkJcmV0dXJuIDA7CiAKQEAgLTY5MiwzOCArNjkzLDQ2IEBAIHN0YXRpYyBpbnQgX2ludGVsX2hk Y3BfZW5hYmxlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAlyZXR1cm4gcmV0 OwogfQogCitzdGF0aWMgaW5saW5lCitzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9oZGNw X3RvX2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCkKK3sKKwlyZXR1cm4gY29udGFp bmVyX29mKGhkY3AsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsIGhkY3ApOworfQorCiBzdGF0aWMg dm9pZCBpbnRlbF9oZGNwX2NoZWNrX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogewot CXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9IGNvbnRhaW5lcl9vZih0b19kZWxh eWVkX3dvcmsod29yayksCi0JCQkJCQkJIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsCi0JCQkJCQkJ IGhkY3BfY2hlY2tfd29yayk7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSBjb250YWluZXJf b2YodG9fZGVsYXllZF93b3JrKHdvcmspLAorCQkJCQkgICAgICAgc3RydWN0IGludGVsX2hkY3As CisJCQkJCSAgICAgICBjaGVja193b3JrKTsKKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IgPSBpbnRlbF9oZGNwX3RvX2Nvbm5lY3RvcihoZGNwKTsKKwogCWlmICghaW50ZWxfaGRj cF9jaGVja19saW5rKGNvbm5lY3RvcikpCi0JCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmY29ubmVj dG9yLT5oZGNwX2NoZWNrX3dvcmssCisJCXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaGRjcC0+Y2hl Y2tfd29yaywKIAkJCQkgICAgICBEUk1fSERDUF9DSEVDS19QRVJJT0RfTVMpOwogfQogCiBzdGF0 aWMgdm9pZCBpbnRlbF9oZGNwX3Byb3Bfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7 Ci0Jc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gY29udGFpbmVyX29mKHdvcmss Ci0JCQkJCQkJIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IsCi0JCQkJCQkJIGhkY3BfcHJvcF93b3Jr KTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3Qg aW50ZWxfaGRjcCwKKwkJCQkJICAgICAgIHByb3Bfd29yayk7CisJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yID0gaW50ZWxfaGRjcF90b19jb25uZWN0b3IoaGRjcCk7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKnN0YXRlOwogCiAJZHJtX21vZGVzZXRfbG9jaygmZGV2LT5tb2RlX2NvbmZp Zy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKLQltdXRleF9sb2NrKCZjb25uZWN0b3ItPmhkY3Bf bXV0ZXgpOworCW11dGV4X2xvY2soJmhkY3AtPm11dGV4KTsKIAogCS8qCiAJICogVGhpcyB3b3Jr ZXIgaXMgb25seSB1c2VkIHRvIGZsaXAgYmV0d2VlbiBFTkFCTEVEL0RFU0lSRUQuIEVpdGhlciBv ZgotCSAqIHRob3NlIHRvIFVOREVTSVJFRCBpcyBoYW5kbGVkIGJ5IGNvcmUuIElmIGhkY3BfdmFs dWUgPT0gVU5ERVNJUkVELAorCSAqIHRob3NlIHRvIFVOREVTSVJFRCBpcyBoYW5kbGVkIGJ5IGNv cmUuIElmIHZhbHVlID09IFVOREVTSVJFRCwKIAkgKiB3ZSdyZSBydW5uaW5nIGp1c3QgYWZ0ZXIg aGRjcCBoYXMgYmVlbiBkaXNhYmxlZCwgc28ganVzdCBleGl0CiAJICovCi0JaWYgKGNvbm5lY3Rv ci0+aGRjcF92YWx1ZSAhPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKSB7 CisJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lS RUQpIHsKIAkJc3RhdGUgPSBjb25uZWN0b3ItPmJhc2Uuc3RhdGU7Ci0JCXN0YXRlLT5jb250ZW50 X3Byb3RlY3Rpb24gPSBjb25uZWN0b3ItPmhkY3BfdmFsdWU7CisJCXN0YXRlLT5jb250ZW50X3By b3RlY3Rpb24gPSBoZGNwLT52YWx1ZTsKIAl9CiAKLQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+ aGRjcF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJZHJtX21vZGVzZXRf dW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgpOwogfQogCkBAIC03MzUs OCArNzQ0LDkgQEAgYm9vbCBpc19oZGNwX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogfQogCiBpbnQgaW50ZWxfaGRjcF9pbml0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKLQkJICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9oZGNwX3NoaW0gKmhkY3Bfc2hpbSkKKwkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9oZGNwX3No aW0gKnNoaW0pCiB7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNw OwogCWludCByZXQ7CiAKIAlyZXQgPSBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3Rl Y3Rpb25fcHJvcGVydHkoCkBAIC03NDQsNTEgKzc1NCw1MyBAQCBpbnQgaW50ZWxfaGRjcF9pbml0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKIAlpZiAocmV0KQogCQlyZXR1cm4g cmV0OwogCi0JY29ubmVjdG9yLT5oZGNwX3NoaW0gPSBoZGNwX3NoaW07Ci0JbXV0ZXhfaW5pdCgm Y29ubmVjdG9yLT5oZGNwX211dGV4KTsKLQlJTklUX0RFTEFZRURfV09SSygmY29ubmVjdG9yLT5o ZGNwX2NoZWNrX3dvcmssIGludGVsX2hkY3BfY2hlY2tfd29yayk7Ci0JSU5JVF9XT1JLKCZjb25u ZWN0b3ItPmhkY3BfcHJvcF93b3JrLCBpbnRlbF9oZGNwX3Byb3Bfd29yayk7CisJaGRjcC0+c2hp bSA9IHNoaW07CisJbXV0ZXhfaW5pdCgmaGRjcC0+bXV0ZXgpOworCUlOSVRfREVMQVlFRF9XT1JL KCZoZGNwLT5jaGVja193b3JrLCBpbnRlbF9oZGNwX2NoZWNrX3dvcmspOworCUlOSVRfV09SSygm aGRjcC0+cHJvcF93b3JrLCBpbnRlbF9oZGNwX3Byb3Bfd29yayk7CiAJcmV0dXJuIDA7CiB9CiAK IGludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip CiB7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCWludCBy ZXQ7CiAKLQlpZiAoIWNvbm5lY3Rvci0+aGRjcF9zaGltKQorCWlmICghaGRjcC0+c2hpbSkKIAkJ cmV0dXJuIC1FTk9FTlQ7CiAKLQltdXRleF9sb2NrKCZjb25uZWN0b3ItPmhkY3BfbXV0ZXgpOwor CW11dGV4X2xvY2soJmhkY3AtPm11dGV4KTsKIAogCXJldCA9IF9pbnRlbF9oZGNwX2VuYWJsZShj b25uZWN0b3IpOwogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0JY29ubmVjdG9yLT5oZGNwX3Zh bHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7Ci0Jc2NoZWR1bGVfd29y aygmY29ubmVjdG9yLT5oZGNwX3Byb3Bfd29yayk7Ci0Jc2NoZWR1bGVfZGVsYXllZF93b3JrKCZj b25uZWN0b3ItPmhkY3BfY2hlY2tfd29yaywKKwloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRF TlRfUFJPVEVDVElPTl9FTkFCTEVEOworCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7 CisJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZoZGNwLT5jaGVja193b3JrLAogCQkJICAgICAgRFJN X0hEQ1BfQ0hFQ0tfUEVSSU9EX01TKTsKIG91dDoKLQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+ aGRjcF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJcmV0dXJuIHJldDsK IH0KIAogaW50IGludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCiB7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwog CWludCByZXQgPSAwOwogCi0JaWYgKCFjb25uZWN0b3ItPmhkY3Bfc2hpbSkKKwlpZiAoIWhkY3At PnNoaW0pCiAJCXJldHVybiAtRU5PRU5UOwogCi0JbXV0ZXhfbG9jaygmY29ubmVjdG9yLT5oZGNw X211dGV4KTsKKwltdXRleF9sb2NrKCZoZGNwLT5tdXRleCk7CiAKLQlpZiAoY29ubmVjdG9yLT5o ZGNwX3ZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpIHsKLQkJ Y29ubmVjdG9yLT5oZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVT SVJFRDsKKwlpZiAoaGRjcC0+dmFsdWUgIT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VO REVTSVJFRCkgeworCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9V TkRFU0lSRUQ7CiAJCXJldCA9IF9pbnRlbF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKIAl9CiAK LQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7Ci0JY2FuY2VsX2RlbGF5ZWRf d29ya19zeW5jKCZjb25uZWN0b3ItPmhkY3BfY2hlY2tfd29yayk7CisJbXV0ZXhfdW5sb2NrKCZo ZGNwLT5tdXRleCk7CisJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZoZGNwLT5jaGVja193b3Jr KTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC04MjgsMTcgKzg0MCwxOCBAQCB2b2lkIGludGVsX2hk Y3BfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAvKiBJbXBs ZW1lbnRzIFBhcnQgMyBvZiB0aGUgSERDUCBhdXRob3JpemF0aW9uIHByb2NlZHVyZSAqLwogaW50 IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip CiB7CisJc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldl9w cml2YXRlOwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29u bl90b19kaWdfcG9ydChjb25uZWN0b3IpOwogCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UucG9ydDsKIAlpbnQgcmV0ID0gMDsKIAotCWlmICghY29ubmVjdG9yLT5oZGNwX3No aW0pCisJaWYgKCFoZGNwLT5zaGltKQogCQlyZXR1cm4gLUVOT0VOVDsKIAotCW11dGV4X2xvY2so JmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7CisJbXV0ZXhfbG9jaygmaGRjcC0+bXV0ZXgpOwogCi0J aWYgKGNvbm5lY3Rvci0+aGRjcF92YWx1ZSA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05f VU5ERVNJUkVEKQorCWlmIChoZGNwLT52YWx1ZSA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJ T05fVU5ERVNJUkVEKQogCQlnb3RvIG91dDsKIAogCWlmICghKEk5MTVfUkVBRChQT1JUX0hEQ1Bf U1RBVFVTKHBvcnQpKSAmIEhEQ1BfU1RBVFVTX0VOQykpIHsKQEAgLTg0NiwxNyArODU5LDE1IEBA IGludCBpbnRlbF9oZGNwX2NoZWNrX2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQogCQkJICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQs CiAJCQkgIEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSk7CiAJCXJldCA9IC1FTlhJ TzsKLQkJY29ubmVjdG9yLT5oZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9O X0RFU0lSRUQ7Ci0JCXNjaGVkdWxlX3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9wcm9wX3dvcmspOwor CQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9ERVNJUkVEOworCQlz Y2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwogCQlnb3RvIG91dDsKIAl9CiAKLQlpZiAo Y29ubmVjdG9yLT5oZGNwX3NoaW0tPmNoZWNrX2xpbmsoaW50ZWxfZGlnX3BvcnQpKSB7Ci0JCWlm IChjb25uZWN0b3ItPmhkY3BfdmFsdWUgIT0KLQkJICAgIERSTV9NT0RFX0NPTlRFTlRfUFJPVEVD VElPTl9VTkRFU0lSRUQpIHsKLQkJCWNvbm5lY3Rvci0+aGRjcF92YWx1ZSA9Ci0JCQkJRFJNX01P REVfQ09OVEVOVF9QUk9URUNUSU9OX0VOQUJMRUQ7Ci0JCQlzY2hlZHVsZV93b3JrKCZjb25uZWN0 b3ItPmhkY3BfcHJvcF93b3JrKTsKKwlpZiAoaGRjcC0+c2hpbS0+Y2hlY2tfbGluayhpbnRlbF9k aWdfcG9ydCkpIHsKKwkJaWYgKGhkY3AtPnZhbHVlICE9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVD VElPTl9VTkRFU0lSRUQpIHsKKwkJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9U RUNUSU9OX0VOQUJMRUQ7CisJCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwogCQl9 CiAJCWdvdG8gb3V0OwogCX0KQEAgLTg2NywyMCArODc4LDIwIEBAIGludCBpbnRlbF9oZGNwX2No ZWNrX2xpbmsoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogCXJldCA9IF9pbnRl bF9oZGNwX2Rpc2FibGUoY29ubmVjdG9yKTsKIAlpZiAocmV0KSB7CiAJCURSTV9FUlJPUigiRmFp bGVkIHRvIGRpc2FibGUgaGRjcCAoJWQpXG4iLCByZXQpOwotCQljb25uZWN0b3ItPmhkY3BfdmFs dWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKLQkJc2NoZWR1bGVfd29y aygmY29ubmVjdG9yLT5oZGNwX3Byb3Bfd29yayk7CisJCWhkY3AtPnZhbHVlID0gRFJNX01PREVf Q09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bf d29yayk7CiAJCWdvdG8gb3V0OwogCX0KIAogCXJldCA9IF9pbnRlbF9oZGNwX2VuYWJsZShjb25u ZWN0b3IpOwogCWlmIChyZXQpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIGhkY3Ag KCVkKVxuIiwgcmV0KTsKLQkJY29ubmVjdG9yLT5oZGNwX3ZhbHVlID0gRFJNX01PREVfQ09OVEVO VF9QUk9URUNUSU9OX0RFU0lSRUQ7Ci0JCXNjaGVkdWxlX3dvcmsoJmNvbm5lY3Rvci0+aGRjcF9w cm9wX3dvcmspOworCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9E RVNJUkVEOworCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwogCQlnb3RvIG91dDsK IAl9CiAKIG91dDoKLQltdXRleF91bmxvY2soJmNvbm5lY3Rvci0+aGRjcF9tdXRleCk7CisJbXV0 ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CiAJcmV0dXJuIHJldDsKIH0KLS0gCjIuNy40CgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK