From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH v8 04/35] drm/i915: Initialize HDCP2.2 Date: Tue, 27 Nov 2018 16:13:02 +0530 Message-ID: <1543315413-24302-5-git-send-email-ramalingam.c@intel.com> References: <1543315413-24302-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: <1543315413-24302-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.vetter@ffwll.ch, tomas.winkler@intel.com List-Id: dri-devel@lists.freedesktop.org QWRkIHRoZSBIRENQMi4yIGluaXRpYWxpemF0aW9uIHRvIHRoZSBleGlzdGluZyBIRENQMS40IHN0 YWNrLgoKdjI6CiAgbWVpIGludGVyZmFjZSBoYW5kbGUgaXMgcHJvdGVjdGVkIHdpdGggbXV0ZXgu IFtDaHJpcyBXaWxzb25dCnYzOgogIE5vdGlmaWVycyBhcmUgdXNlZCBmb3IgdGhlIG1laSBpbnRl cmZhY2Ugc3RhdGUuCnY0OgogIFBvbGwgZm9yIG1laSBjbGllbnQgZGV2aWNlIHN0YXRlCiAgRXJy b3IgbXNnIGZvciBvdXQgb2YgbWVtIFtVbWFdCiAgSW5saW5lIHJlcSBmb3IgaW5pdCBmdW5jdGlv biByZW1vdmVkIFtVbWFdCnY1OgogIFJlYmFzZSBhcyBQYXJ0IG9mIHJlb3JkZXJpbmcuCiAgQ29t cG9uZW50IGlzIHVzZWQgZm9yIHRoZSBJOTE1IGFuZCBNRUlfSERDUCBpbnRlcmZhY2UgW0Rhbmll bF0KdjY6CiAgSERDUDIuMiB1c2VzIHRoZSBJOTE1IGNvbXBvbmVudCBtYXN0ZXIgdG8gY29tbXVu aWNhdGUgd2l0aCBtZWlfaGRjcAoJLSBbRGFuaWVsXQogIFJlcXVpcmVkIEhEQ1AyLjIgdmFyaWFi bGVzIGRlZmluZWQgW1NlYW4gUGF1bF0Kdjc6CiAgaW50ZWxfaGRjcDIuMl9pbml0IHJldHVybnMg dm9pZCBbVW1hXQogIFJlYWxpZ25pbmcgdGhlIGNvZGVzLgp2ODoKICBBdm9pZCB1c2luZyBib29s IHN0cnVjdHVyZSBtZW1iZXJzLgogIE1FSSBpbnRlcmZhY2UgcmVsYXRlZCBjaGFuZ2VzIGFyZSBt b3ZlZCBpbnRvIHNlcGFyYXRlIHBhdGNoLgogIENvbW1pdCBtc2cgaXMgdXBkYXRlZCBhY2NvcmRp bmdseS4KICBpbnRlbF9oZGNwX2V4aXQgaXMgZGVmaW5lZCBhbmQgdXNlZCBmcm9tIGk5MTVfdW5s b2FkCgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgIHwgICAyICsKIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggIHwgIDE2ICsrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3Au YyB8IDE3MiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIHwgICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDEzMCBp bnNlcnRpb25zKCspLCA2NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRl eCBiMWQyM2M3M2MxNDcuLmZiZWRkNTAyNGFmZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBA IC0xNzU1LDYgKzE3NTUsOCBAQCB2b2lkIGk5MTVfZHJpdmVyX3VubG9hZChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQogCiAJZGlzYWJsZV9ycG1fd2FrZXJlZl9hc3NlcnRzKGRldl9wcml2KTsKIAor CWludGVsX2hkY3BfZXhpdChkZXZfcHJpdik7CisKIAlpOTE1X2RyaXZlcl91bnJlZ2lzdGVyKGRl dl9wcml2KTsKIAogCWlmIChpOTE1X2dlbV9zdXNwZW5kKGRldl9wcml2KSkKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCmluZGV4IDE4ZTNhNWEzZDg3My4uYWM2MmFmMDczNjg4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKQEAgLTY2NzUsNyArNjY3NSw4IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9y KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCWludGVsX2RwX2Fk ZF9wcm9wZXJ0aWVzKGludGVsX2RwLCBjb25uZWN0b3IpOwogCiAJaWYgKGlzX2hkY3Bfc3VwcG9y dGVkKGRldl9wcml2LCBwb3J0KSAmJiAhaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkgewotCQlp bnQgcmV0ID0gaW50ZWxfaGRjcF9pbml0KGludGVsX2Nvbm5lY3RvciwgJmludGVsX2RwX2hkY3Bf c2hpbSk7CisJCWludCByZXQgPSBpbnRlbF9oZGNwX2luaXQoaW50ZWxfY29ubmVjdG9yLCAmaW50 ZWxfZHBfaGRjcF9zaGltLAorCQkJCQkgIGZhbHNlKTsKIAkJaWYgKHJldCkKIAkJCURSTV9ERUJV R19LTVMoIkhEQ1AgaW5pdCBmYWlsZWQsIHNraXBwaW5nLlxuIik7CiAJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAppbmRleCBhNjJkNzdiNzYyOTEuLjg1YTUyNjU5ODA5NiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKQEAgLTM4OCw2ICszODgsMTcgQEAgc3RydWN0IGludGVsX2hkY3Agewog CXU2NCB2YWx1ZTsKIAlzdHJ1Y3QgZGVsYXllZF93b3JrIGNoZWNrX3dvcms7CiAJc3RydWN0IHdv cmtfc3RydWN0IHByb3Bfd29yazsKKworCS8qIEhEQ1AyLjIgcmVsYXRlZCBkZWZpbml0aW9ucyAq LworCS8qIEZsYWcgaW5kaWNhdGVzIHdoZXRoZXIgdGhpcyBjb25uZWN0b3Igc3VwcG9ydHMgSERD UDIuMiBvciBub3QuICovCisJdTggaGRjcDJfc3VwcG9ydGVkOworCisJLyoKKwkgKiBDb250ZW50 IFN0cmVhbSBUeXBlIGRlZmluZWQgYnkgY29udGVudCBvd25lci4gVFlQRTAoMHgwKSBjb250ZW50 IGNhbgorCSAqIGZsb3cgaW4gdGhlIGxpbmsgcHJvdGVjdGVkIGJ5IEhEQ1AyLjIgb3IgSERDUDEu NCwgd2hlcmUgYXMgVFlQRTEoMHgxKQorCSAqIGNvbnRlbnQgY2FuIGZsb3cgb25seSB0aHJvdWdo IGEgbGluayBwcm90ZWN0ZWQgYnkgSERDUDIuMi4KKwkgKi8KKwl1OCBjb250ZW50X3R5cGU7CiB9 OwogCiBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yIHsKQEAgLTIwMTYsMTIgKzIwMjcsMTUgQEAgdm9p ZCBpbnRlbF9oZGNwX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LAogCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX3N0YXRlLAogCQkJICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X3N0YXRlKTsKIGludCBpbnRlbF9oZGNw X2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAotCQkgICAgY29uc3Qgc3Ry dWN0IGludGVsX2hkY3Bfc2hpbSAqaGRjcF9zaGltKTsKKwkJICAgIGNvbnN0IHN0cnVjdCBpbnRl bF9oZGNwX3NoaW0gKmhkY3Bfc2hpbSwKKwkJICAgIGJvb2wgaGRjcDJfc3VwcG9ydGVkKTsKIGlu dCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwog aW50IGludGVsX2hkY3BfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip OwogaW50IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpOwogYm9vbCBpc19oZGNwX3N1cHBvcnRlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKIGJvb2wgaW50ZWxfaGRjcF9jYXBhYmxlKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Citib29sIGlzX2hkY3AyX3N1cHBvcnRlZChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwordm9pZCBpbnRlbF9oZGNwX2V4aXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIAogLyogaW50ZWxfcHNyLmMgKi8K ICNkZWZpbmUgQ0FOX1BTUihkZXZfcHJpdikgKEhBU19QU1IoZGV2X3ByaXYpICYmIGRldl9wcml2 LT5wc3Iuc2lua19zdXBwb3J0KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCmluZGV4IDA0YmE2 YzEzZTcxNS4uOTlkZGRiNTQwOTU4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZGNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jCkBAIC03 MzAsNiArNzMwLDY1IEBAIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2hkY3BfdG9fY29u bmVjdG9yKHN0cnVjdCBpbnRlbF9oZGNwICpoZGNwKQogCXJldHVybiBjb250YWluZXJfb2YoaGRj cCwgc3RydWN0IGludGVsX2Nvbm5lY3RvciwgaGRjcCk7CiB9CiAKKy8qIEltcGxlbWVudHMgUGFy dCAzIG9mIHRoZSBIRENQIGF1dGhvcml6YXRpb24gcHJvY2VkdXJlICovCitpbnQgaW50ZWxfaGRj cF9jaGVja19saW5rKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1 Y3QgaW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CisJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gY29ubmVjdG9yLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7CisJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBjb25uX3RvX2RpZ19w b3J0KGNvbm5lY3Rvcik7CisJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5w b3J0OworCWludCByZXQgPSAwOworCisJaWYgKCFoZGNwLT5zaGltKQorCQlyZXR1cm4gLUVOT0VO VDsKKworCW11dGV4X2xvY2soJmhkY3AtPm11dGV4KTsKKworCWlmIChoZGNwLT52YWx1ZSA9PSBE Uk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVEKQorCQlnb3RvIG91dDsKKworCWlm ICghKEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSAmIEhEQ1BfU1RBVFVTX0VOQykp IHsKKwkJRFJNX0VSUk9SKCIlczolZCBIRENQIGNoZWNrIGZhaWxlZDogbGluayBpcyBub3QgZW5j cnlwdGVkLCV4XG4iLAorCQkJICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVjdG9yLT5iYXNl LmJhc2UuaWQsCisJCQkgIEk5MTVfUkVBRChQT1JUX0hEQ1BfU1RBVFVTKHBvcnQpKSk7CisJCXJl dCA9IC1FTlhJTzsKKwkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05f REVTSVJFRDsKKwkJc2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKKwkJZ290byBvdXQ7 CisJfQorCisJaWYgKGhkY3AtPnNoaW0tPmNoZWNrX2xpbmsoaW50ZWxfZGlnX3BvcnQpKSB7CisJ CWlmIChoZGNwLT52YWx1ZSAhPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fVU5ERVNJUkVE KSB7CisJCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9FTkFCTEVE OworCQkJc2NoZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKKwkJfQorCQlnb3RvIG91dDsK Kwl9CisKKwlEUk1fREVCVUdfS01TKCJbJXM6JWRdIEhEQ1AgbGluayBmYWlsZWQsIHJldHJ5aW5n IGF1dGhlbnRpY2F0aW9uXG4iLAorCQkgICAgICBjb25uZWN0b3ItPmJhc2UubmFtZSwgY29ubmVj dG9yLT5iYXNlLmJhc2UuaWQpOworCisJcmV0ID0gX2ludGVsX2hkY3BfZGlzYWJsZShjb25uZWN0 b3IpOworCWlmIChyZXQpIHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZGlzYWJsZSBoZGNwICgl ZClcbiIsIHJldCk7CisJCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9O X0RFU0lSRUQ7CisJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7CisJCWdvdG8gb3V0 OworCX0KKworCXJldCA9IF9pbnRlbF9oZGNwX2VuYWJsZShjb25uZWN0b3IpOworCWlmIChyZXQp IHsKKwkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gZW5hYmxlIGhkY3AgKCVkKVxuIiwgcmV0KTsKKwkJ aGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKKwkJc2No ZWR1bGVfd29yaygmaGRjcC0+cHJvcF93b3JrKTsKKwkJZ290byBvdXQ7CisJfQorCitvdXQ6CisJ bXV0ZXhfdW5sb2NrKCZoZGNwLT5tdXRleCk7CisJcmV0dXJuIHJldDsKK30KKwogc3RhdGljIHZv aWQgaW50ZWxfaGRjcF9jaGVja193b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIHsKIAlz dHJ1Y3QgaW50ZWxfaGRjcCAqaGRjcCA9IGNvbnRhaW5lcl9vZih0b19kZWxheWVkX3dvcmsod29y ayksCkBAIC03NzQsMTQgKzgzMywzNCBAQCBib29sIGlzX2hkY3Bfc3VwcG9ydGVkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCiAJCSFJU19DSEVSUllW SUVXKGRldl9wcml2KSAmJiBwb3J0IDwgUE9SVF9FKTsKIH0KIAorYm9vbCBpc19oZGNwMl9zdXBw b3J0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQoreworCXJldHVybiAoKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTAgfHwgSVNfR0VNSU5JTEFLRShkZXZfcHJpdikgfHwKKwkJ IElTX0tBQllMQUtFKGRldl9wcml2KSkgJiYgSVNfRU5BQkxFRChDT05GSUdfSU5URUxfTUVJX0hE Q1ApKTsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfaGRjcDJfaW5pdChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfaGRjcCAqaGRj cCA9ICZjb25uZWN0b3ItPmhkY3A7CisKKwlXQVJOX09OKCFpc19oZGNwMl9zdXBwb3J0ZWQoZGV2 X3ByaXYpKTsKKworCS8qIFRPRE86IE1FSSBpbnRlcmZhY2UgbmVlZHMgdG8gYmUgaW5pdGlhbGl6 ZWQgaGVyZSAqLworCWhkY3AtPmhkY3AyX3N1cHBvcnRlZCA9IDE7Cit9CisKIGludCBpbnRlbF9o ZGNwX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAotCQkgICAgY29uc3Qg c3RydWN0IGludGVsX2hkY3Bfc2hpbSAqc2hpbSkKKwkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9o ZGNwX3NoaW0gKnNoaW0sCisJCSAgICBib29sIGhkY3AyX3N1cHBvcnRlZCkKIHsKIAlzdHJ1Y3Qg aW50ZWxfaGRjcCAqaGRjcCA9ICZjb25uZWN0b3ItPmhkY3A7CiAJaW50IHJldDsKIAotCXJldCA9 IGRybV9jb25uZWN0b3JfYXR0YWNoX2NvbnRlbnRfcHJvdGVjdGlvbl9wcm9wZXJ0eSgKLQkJCSZj b25uZWN0b3ItPmJhc2UpOworCWlmICghc2hpbSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXQg PSBkcm1fY29ubmVjdG9yX2F0dGFjaF9jb250ZW50X3Byb3RlY3Rpb25fcHJvcGVydHkoJmNvbm5l Y3Rvci0+YmFzZSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtNzg5LDkgKzg2OCwz NyBAQCBpbnQgaW50ZWxfaGRjcF9pbml0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKIAltdXRleF9pbml0KCZoZGNwLT5tdXRleCk7CiAJSU5JVF9ERUxBWUVEX1dPUksoJmhkY3At PmNoZWNrX3dvcmssIGludGVsX2hkY3BfY2hlY2tfd29yayk7CiAJSU5JVF9XT1JLKCZoZGNwLT5w cm9wX3dvcmssIGludGVsX2hkY3BfcHJvcF93b3JrKTsKKworCWlmIChoZGNwMl9zdXBwb3J0ZWQp CisJCWludGVsX2hkY3AyX2luaXQoY29ubmVjdG9yKTsKKwogCXJldHVybiAwOwogfQogCit2b2lk IGludGVsX2hkY3BfZXhpdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJ c3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZfcHJpdi0+ZHJtOworCXN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX2xpc3RfaXRlciBjb25uX2l0ZXI7CisKKwlkcm1f Y29ubmVjdG9yX2xpc3RfaXRlcl9iZWdpbihkZXYsICZjb25uX2l0ZXIpOworCWRybV9mb3JfZWFj aF9jb25uZWN0b3JfaXRlcihjb25uZWN0b3IsICZjb25uX2l0ZXIpIHsKKwkJaW50ZWxfY29ubmVj dG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7CisKKwkJaWYgKCFpbnRlbF9jb25u ZWN0b3ItPmhkY3Auc2hpbSkKKwkJCWNvbnRpbnVlOworCisJCWludGVsX2hkY3BfZGlzYWJsZShp bnRlbF9jb25uZWN0b3IpOworCisJCW11dGV4X2xvY2soJmludGVsX2Nvbm5lY3Rvci0+aGRjcC5t dXRleCk7CisJCWludGVsX2Nvbm5lY3Rvci0+aGRjcC5oZGNwMl9zdXBwb3J0ZWQgPSAwOworCQlp bnRlbF9jb25uZWN0b3ItPmhkY3Auc2hpbSA9IE5VTEw7CisJCW11dGV4X3VubG9jaygmaW50ZWxf Y29ubmVjdG9yLT5oZGNwLm11dGV4KTsKKwl9CisJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5k KCZjb25uX2l0ZXIpOworfQorCiBpbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqY29ubmVjdG9yKQogewogCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5l Y3Rvci0+aGRjcDsKQEAgLTg2Nyw2MiArOTc0LDMgQEAgdm9pZCBpbnRlbF9oZGNwX2F0b21pY19j aGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCQkJICAgbmV3X3N0YXRl LT5jcnRjKTsKIAljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwogfQotCi0vKiBJbXBs ZW1lbnRzIFBhcnQgMyBvZiB0aGUgSERDUCBhdXRob3JpemF0aW9uIHByb2NlZHVyZSAqLwotaW50 IGludGVsX2hkY3BfY2hlY2tfbGluayhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3Ip Ci17Ci0Jc3RydWN0IGludGVsX2hkY3AgKmhkY3AgPSAmY29ubmVjdG9yLT5oZGNwOwotCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNvbm5lY3Rvci0+YmFzZS5kZXYtPmRldl9w cml2YXRlOwotCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gY29u bl90b19kaWdfcG9ydChjb25uZWN0b3IpOwotCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPmJhc2UucG9ydDsKLQlpbnQgcmV0ID0gMDsKLQotCWlmICghaGRjcC0+c2hpbSkKLQkJcmV0 dXJuIC1FTk9FTlQ7Ci0KLQltdXRleF9sb2NrKCZoZGNwLT5tdXRleCk7Ci0KLQlpZiAoaGRjcC0+ dmFsdWUgPT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9OX1VOREVTSVJFRCkKLQkJZ290byBv dXQ7Ci0KLQlpZiAoIShJOTE1X1JFQUQoUE9SVF9IRENQX1NUQVRVUyhwb3J0KSkgJiBIRENQX1NU QVRVU19FTkMpKSB7Ci0JCURSTV9FUlJPUigiJXM6JWQgSERDUCBjaGVjayBmYWlsZWQ6IGxpbmsg aXMgbm90IGVuY3J5cHRlZCwleFxuIiwKLQkJCSAgY29ubmVjdG9yLT5iYXNlLm5hbWUsIGNvbm5l Y3Rvci0+YmFzZS5iYXNlLmlkLAotCQkJICBJOTE1X1JFQUQoUE9SVF9IRENQX1NUQVRVUyhwb3J0 KSkpOwotCQlyZXQgPSAtRU5YSU87Ci0JCWhkY3AtPnZhbHVlID0gRFJNX01PREVfQ09OVEVOVF9Q Uk9URUNUSU9OX0RFU0lSRUQ7Ci0JCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7Ci0J CWdvdG8gb3V0OwotCX0KLQotCWlmIChoZGNwLT5zaGltLT5jaGVja19saW5rKGludGVsX2RpZ19w b3J0KSkgewotCQlpZiAoaGRjcC0+dmFsdWUgIT0gRFJNX01PREVfQ09OVEVOVF9QUk9URUNUSU9O X1VOREVTSVJFRCkgewotCQkJaGRjcC0+dmFsdWUgPSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJ T05fRU5BQkxFRDsKLQkJCXNjaGVkdWxlX3dvcmsoJmhkY3AtPnByb3Bfd29yayk7Ci0JCX0KLQkJ Z290byBvdXQ7Ci0JfQotCi0JRFJNX0RFQlVHX0tNUygiWyVzOiVkXSBIRENQIGxpbmsgZmFpbGVk LCByZXRyeWluZyBhdXRoZW50aWNhdGlvblxuIiwKLQkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5h bWUsIGNvbm5lY3Rvci0+YmFzZS5iYXNlLmlkKTsKLQotCXJldCA9IF9pbnRlbF9oZGNwX2Rpc2Fi bGUoY29ubmVjdG9yKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2Fi bGUgaGRjcCAoJWQpXG4iLCByZXQpOwotCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRf UFJPVEVDVElPTl9ERVNJUkVEOwotCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwot CQlnb3RvIG91dDsKLQl9Ci0KLQlyZXQgPSBfaW50ZWxfaGRjcF9lbmFibGUoY29ubmVjdG9yKTsK LQlpZiAocmV0KSB7Ci0JCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBlbmFibGUgaGRjcCAoJWQp XG4iLCByZXQpOwotCQloZGNwLT52YWx1ZSA9IERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9E RVNJUkVEOwotCQlzY2hlZHVsZV93b3JrKCZoZGNwLT5wcm9wX3dvcmspOwotCQlnb3RvIG91dDsK LQl9Ci0KLW91dDoKLQltdXRleF91bmxvY2soJmhkY3AtPm11dGV4KTsKLQlyZXR1cm4gcmV0Owot fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCmluZGV4IGUyYzZhMmIzZThmMi4uZTc1NWEzMzcw YmNhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCkBAIC0yNDE3LDcgKzI0MTcsNyBAQCB2 b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq aW50ZWxfZGlnX3BvcnQsCiAKIAlpZiAoaXNfaGRjcF9zdXBwb3J0ZWQoZGV2X3ByaXYsIHBvcnQp KSB7CiAJCWludCByZXQgPSBpbnRlbF9oZGNwX2luaXQoaW50ZWxfY29ubmVjdG9yLAotCQkJCQkg ICZpbnRlbF9oZG1pX2hkY3Bfc2hpbSk7CisJCQkJCSAgJmludGVsX2hkbWlfaGRjcF9zaGltLCBm YWxzZSk7CiAJCWlmIChyZXQpCiAJCQlEUk1fREVCVUdfS01TKCJIRENQIGluaXQgZmFpbGVkLCBz a2lwcGluZy5cbiIpOwogCX0KLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK