From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: [PATCH 06/10] drm/i915: SRM parsing and revocation check for HDCP2 Date: Tue, 26 Feb 2019 13:06:05 +0530 Message-ID: <1551166569-19683-7-git-send-email-ramalingam.c@intel.com> References: <1551166569-19683-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: <1551166569-19683-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, uma.shankar@intel.com List-Id: dri-devel@lists.freedesktop.org U1JNIGJsb2Igd2l0aCBoZGNwMiBpZCBpcyBwYXJzZWQgYW5kIHBhcnNlZCBsaXN0IG9mIHJldm9r ZWQgaWRzIGlzCnVzZWQgaW4gdGhlIGF1dGhlbnRpY2F0aW9uIHByb2Nlc3MgdG8gaWRlbnRpZnkg dGhlIGNvbXByb21pc2VkIEhEQ1AKc2lua3MuCgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2FtIEMg PHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf aGRjcC5jIHwgODYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBpbmNs dWRlL2RybS9kcm1faGRjcC5oICAgICAgICAgICAgfCAyMCArKysrKysrKysKIDIgZmlsZXMgY2hh bmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfaGRjcC5jCmluZGV4IDdkMDA3ZGU5ODRkNy4uYjkyZmMwMzgzNzg4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZGNwLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfaGRjcC5jCkBAIC0xMjQ0LDYgKzEyNDQsMTIgQEAgc3RhdGljIGludCBoZGNwMl9h dXRoZW50aWNhdGlvbl9rZXlfZXhjaGFuZ2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQogCiAJaGRjcC0+aXNfcmVwZWF0ZXIgPSBIRENQXzJfMl9SWF9SRVBFQVRFUihtc2dzLnNl bmRfY2VydC5yeF9jYXBzWzJdKTsKIAorCWlmIChpbnRlbF9oZGNwX2tzdnNfcmV2b2NhdGVkKGhk Y3AsCisJCQkJICAgICAgbXNncy5zZW5kX2NlcnQuY2VydF9yeC5yZWNlaXZlcl9pZCwgMSkpIHsK KwkJRFJNX0VSUk9SKCJSZWNlaXZlciBJRCBpcyByZXZvY2F0ZWRcbiIpOworCQlyZXR1cm4gLUVQ RVJNOworCX0KKwogCS8qCiAJICogSGVyZSBtc2dzLm5vX3N0b3JlZF9rbSB3aWxsIGhvbGQgbXNn cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBrbQogCSAqIHN0b3JlZCBhbHNvLgpAQCAtMTQwMiw3ICsx NDA4LDcgQEAgaW50IGhkY3AyX2F1dGhlbnRpY2F0ZV9yZXBlYXRlcl90b3BvbG9neShzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCiAJfSBtc2dzOwogCWNvbnN0IHN0cnVjdCBpbnRl bF9oZGNwX3NoaW0gKnNoaW0gPSBoZGNwLT5zaGltOwogCXU4ICpyeF9pbmZvOwotCXUzMiBzZXFf bnVtX3Y7CisJdTMyIHNlcV9udW1fdiwgZGV2aWNlX2NudDsKIAlpbnQgcmV0OwogCiAJcmV0ID0g c2hpbS0+cmVhZF8yXzJfbXNnKGludGVsX2RpZ19wb3J0LCBIRENQXzJfMl9SRVBfU0VORF9SRUNW SURfTElTVCwKQEAgLTE0MjcsNiArMTQzMywxNCBAQCBpbnQgaGRjcDJfYXV0aGVudGljYXRlX3Jl cGVhdGVyX3RvcG9sb2d5KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKIAkJcmV0 dXJuIC1FSU5WQUw7CiAJfQogCisJZGV2aWNlX2NudCA9IEhEQ1BfMl8yX0RFVl9DT1VOVF9ISShy eF9pbmZvWzBdKSA8PCA0IHx8CisJCQlIRENQXzJfMl9ERVZfQ09VTlRfTE8ocnhfaW5mb1sxXSk7 CisJaWYgKGludGVsX2hkY3Bfa3N2c19yZXZvY2F0ZWQoaGRjcCwgbXNncy5yZWN2aWRfbGlzdC5y ZWNlaXZlcl9pZHMsCisJCQkJICAgICAgZGV2aWNlX2NudCkpIHsKKwkJRFJNX0VSUk9SKCJSZXZv a2VkIHJlY2VpdmVyIElEKHMpIGlzIGluIGxpc3RcbiIpOworCQlyZXR1cm4gLUVQRVJNOworCX0K KwogCXJldCA9IGhkY3AyX3ZlcmlmeV9yZXBfdG9wb2xvZ3lfcHJlcGFyZV9hY2soY29ubmVjdG9y LAogCQkJCQkJICAgICZtc2dzLnJlY3ZpZF9saXN0LAogCQkJCQkJICAgICZtc2dzLnJlcF9hY2sp OwpAQCAtMTk4MiwxMiArMTk5Niw3MiBAQCBzdGF0aWMgaW50IGludGVsX2hkY3BfcGFyc2Vfc3Jt KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRp YyBpbnQgaW50ZWxfaGRjcDJfcGFyc2Vfc3JtKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCisJCQkJIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikKK3sKKwlzdHJ1Y3QgaW50 ZWxfaGRjcCAqaGRjcCA9ICYodG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3RvciktPmhkY3ApOwor CXN0cnVjdCBoZGNwMl9zcm1faGVhZGVyICpoZWFkZXI7CisJdTMyIHZybF9sZW5ndGgsIGtzdl9j b3VudCwga3N2X3N6OworCXU4ICpidWY7CisKKwlpZiAoYmxvYi0+bGVuZ3RoIDwgKHNpemVvZihz dHJ1Y3QgaGRjcDJfc3JtX2hlYWRlcikgKworCSAgICBEUk1fSERDUF8yX1ZSTF9MRU5HVEhfU0la RSArIERSTV9IRENQXzJfRENQX1NJR19TSVpFKSkgeworCQlEUk1fRVJST1IoIkludmFsaWQgYmxv YiBsZW5ndGhcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CisKKwloZWFkZXIgPSAoc3RydWN0 IGhkY3AyX3NybV9oZWFkZXIgKilibG9iLT5kYXRhOworCURSTV9ERUJVR19LTVMoIlNSTSBJRDog MHgleCwgU1JNIFZlcjogMHgleCwgU1JNIEdlbiBObzogMHgleFxuIiwKKwkJICAgICAgaGVhZGVy LT5zcGVjX2luZGljYXRvci5zcm1faWQsCisJCSAgICAgIF9fc3dhYjE2KGhlYWRlci0+c3JtX3Zl cnNpb24pLCBoZWFkZXItPnNybV9nZW5fbm8pOworCVdBUk5fT04oaGVhZGVyLT5zcGVjX2luZGlj YXRvci5yZXNlcnZlZCk7CisJYnVmID0gYmxvYi0+ZGF0YSArIHNpemVvZigqaGVhZGVyKTsKKwor CXZybF9sZW5ndGggPSAoKmJ1ZiA8PCAxNiB8ICooYnVmICsgMSkgPDwgOCB8ICooYnVmICsgMikp OworCWlmIChibG9iLT5sZW5ndGggPCAoc2l6ZW9mKHN0cnVjdCBoZGNwMl9zcm1faGVhZGVyKSAr IHZybF9sZW5ndGgpIHx8CisJICAgIHZybF9sZW5ndGggPCAoRFJNX0hEQ1BfMl9WUkxfTEVOR1RI X1NJWkUgKworCQkJICBEUk1fSERDUF8yX0RDUF9TSUdfU0laRSkpIHsKKwkJRFJNX0VSUk9SKCJJ bnZhbGlkIGJsb2IgbGVuZ3RoIG9yIHZybCBsZW5ndGhcbiIpOworCQlyZXR1cm4gLUVJTlZBTDsK Kwl9CisKKwkvKiBMZW5ndGggb2YgdGhlIGFsbCB2cmxzIGNvbWJpbmVkICovCisJdnJsX2xlbmd0 aCAtPSAoRFJNX0hEQ1BfMl9WUkxfTEVOR1RIX1NJWkUgKyBEUk1fSERDUF8yX0RDUF9TSUdfU0la RSk7CisJaWYgKCF2cmxfbGVuZ3RoKSB7CisJCURSTV9FUlJPUigiTm8gdnJsIGZvdW5kXG4iKTsK KwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJYnVmICs9IERSTV9IRENQXzJfVlJMX0xFTkdUSF9T SVpFOworCWtzdl9jb3VudCA9ICgqYnVmIDw8IDIpIHwgRFJNX0hEQ1BfMl9LU1ZfQ09VTlRfMl9M U0JJVFMoKihidWYgKyAxKSk7CisJaWYgKCFrc3ZfY291bnQpCisJCXJldHVybiAwOworCisJa2Zy ZWUoaGRjcC0+cmV2b2NhdGVkX2tzdl9saXN0KTsKKwloZGNwLT5yZXZvY2F0ZWRfa3N2X2xpc3Qg PSBremFsbG9jKGtzdl9jb3VudCAqIERSTV9IRENQX0tTVl9MRU4sCisJCQkJCSAgIEdGUF9LRVJO RUwpOworCWlmICghaGRjcC0+cmV2b2NhdGVkX2tzdl9saXN0KSB7CisJCURSTV9FUlJPUigiT3V0 IG9mIE1lbW9yeVxuIik7CisJCXJldHVybiAtRU5PTUVNOworCX0KKworCWtzdl9zeiA9IGtzdl9j b3VudCAqIERSTV9IRENQX0tTVl9MRU47CisJYnVmICs9IERSTV9IRENQXzJfTk9fT0ZfREVWX1BM VVNfUkVTRVJWRURfU1o7CisKKwlEUk1fREVCVUdfS01TKCJSZXZva2VkIEtTVnM6ICVkXG4iLCBr c3ZfY291bnQpOworCW1lbWNweShoZGNwLT5yZXZvY2F0ZWRfa3N2X2xpc3QsIGJ1Ziwga3N2X3N6 KTsKKwloZGNwLT5yZXZvY2F0ZWRfa3N2X2NudCA9IGtzdl9jb3VudDsKKworCXJldHVybiAwOwor fQorCiBzdGF0aWMgdm9pZCBpbnRlbF9oZGNwX3VwZGF0ZV9zcm0oc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubmVjdG9yLAogCQkJCSAgdTMyIHNybV9ibG9iX2lkKQogewogCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxfY29ubmVjdG9yLT5iYXNlOwogCXN0 cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmludGVsX2Nvbm5lY3Rvci0+aGRjcDsKIAlzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2I7CisJdTggc3JtX2lkOwogCiAJRFJNX0RFQlVHX0tNUygi c3JtX2Jsb2JfaWQgJXVcbiIsIHNybV9ibG9iX2lkKTsKIApAQCAtMjAwMiw4ICsyMDc2LDE0IEBA IHN0YXRpYyB2b2lkIGludGVsX2hkY3BfdXBkYXRlX3NybShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICppbnRlbF9jb25uZWN0b3IsCiAJaWYgKCFibG9iIHx8ICFibG9iLT5kYXRhKQogCQlyZXR1cm47 CiAKLQlpZiAoIWludGVsX2hkY3BfcGFyc2Vfc3JtKGNvbm5lY3RvciwgYmxvYikpCi0JCWhkY3At PnNybV9ibG9iX2lkID0gc3JtX2Jsb2JfaWQ7CisJc3JtX2lkID0gKigodTggKilibG9iLT5kYXRh KTsKKwlpZiAoc3JtX2lkID09IERSTV9IRENQX1NSTV9JRCkgeworCQlpZiAoIWludGVsX2hkY3Bf cGFyc2Vfc3JtKGNvbm5lY3RvciwgYmxvYikpCisJCQloZGNwLT5zcm1fYmxvYl9pZCA9IHNybV9i bG9iX2lkOworCX0gZWxzZSBpZiAoc3JtX2lkID09IERSTV9IRENQMl9TUk1fSUQpIHsKKwkJaWYg KCFpbnRlbF9oZGNwMl9wYXJzZV9zcm0oY29ubmVjdG9yLCBibG9iKSkKKwkJCWhkY3AtPnNybV9i bG9iX2lkID0gc3JtX2Jsb2JfaWQ7CisJfQogCiAJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGJsb2Ip OwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaCBiL2luY2x1ZGUvZHJtL2Ry bV9oZGNwLmgKaW5kZXggMWNjYWU0N2ZjZmY1Li4xZTYzMGE1OTNiNzMgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvZHJtL2RybV9oZGNwLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2hkY3AuaApAQCAtMjc5 LDQgKzI3OSwyNCBAQCBzdHJ1Y3QgaGRjcF9zcm1faGVhZGVyIHsKIAl1OCBzcm1fZ2VuX25vOwog fSBfX3BhY2tlZDsKIAorI2RlZmluZSBEUk1fSERDUF8yX1NSTV9JRAkJCTB4OQorI2RlZmluZSBE Uk1fSERDUF8yX0lORElDQVRPUgkJCTB4MQorI2RlZmluZSBEUk1fSERDUF8yX1ZSTF9MRU5HVEhf U0laRQkJMworI2RlZmluZSBEUk1fSERDUF8yX0RDUF9TSUdfU0laRQkJCTM4NAorI2RlZmluZSBE Uk1fSERDUF8yX05PX09GX0RFVl9QTFVTX1JFU0VSVkVEX1NaCTQKKworI2RlZmluZSBEUk1fSERD UF8yX0tTVl9DT1VOVF8yX0xTQklUUyhieXRlKQkoKChieXRlKSAmIDB4QykgPj4gNikKKyNkZWZp bmUgRFJNX0hEQ1BfU1JNX0lECQkJCTB4ODAKKyNkZWZpbmUgRFJNX0hEQ1AyX1NSTV9JRAkJCTB4 OTEKKworc3RydWN0IGhkY3AyX3NybV9oZWFkZXIgeworCXN0cnVjdCB7CisJCXU4IGhkY3AyX2lu ZGljYXRvcjo0OworCQl1OCBzcm1faWQ6NDsKKwkJdTggcmVzZXJ2ZWQ7CisJfSBzcGVjX2luZGlj YXRvcjsKKwl1MTYgc3JtX3ZlcnNpb247CisJdTggc3JtX2dlbl9ubzsKK30gX19wYWNrZWQ7CisK ICNlbmRpZgotLSAKMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==