From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 101C16E49E for ; Fri, 12 Oct 2018 14:04:29 +0000 (UTC) From: Ramalingam C Date: Fri, 12 Oct 2018 19:32:09 +0530 Message-Id: <1539352929-30790-1-git-send-email-ramalingam.c@intel.com> In-Reply-To: <1539267515-3768-1-git-send-email-ramalingam.c@intel.com> References: <1539267515-3768-1-git-send-email-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2] kms_content_protection: Add Content Protection test List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org, daniel@ffwll.ch, thatslyude@gmail.com List-ID: UHJldHR5IHNpbXBsZSB0ZXN0OgotIHBpY2tzIHRoZSBoZGNwIGNhcGFibGUgb3V0cHV0IHdpdGgg c3VpdGFibGUgcGlwZSBhbmQgYXBwbHkgbW9kZXNldC4KLSBhcHBseSBhIEZCIGFuZCB3YWl0IGZv ciB0aGUgZmxpcCBjb21wbGV0aW9uLgotIGNsZWFycyB0aGUgY29udGVudCBwcm90ZWN0aW9uIHBy b3BlcnR5Ci0gdmVyaWZpZXMgdGhhdCBpdCBjbGVhcnMKLSBzZXRzIHRoZSBjb250ZW50IHByb3Rl Y3Rpb24gcHJvcGVydHkgdG8gZGVzaXJlZAotIHZlcmlmaWVzIHRoYXQgaXQgdHJhbnNpdGlvbnMg dG8gZW5hYmxlZAotIGluY2FzZSBvZiB0aW1lb3V0IHRocmVlIHJlYXR0ZW1wdHMgYXJlIGltcGxl bWVudGVkCi0gY2xlYXIgdGhlIGNvbnRlbnQgcHJvdGVjdGlvbiBwcm9wZXJ0eSBhbmQgbW9kZXNl dCBvbiB0aGUgY3J0YwoKdjI6CiAgZHluYW1pYyBzdWJ0ZXN0cyBhcmUgZHJvcHBlZCBbRGFuaWVs XQoKQWJvdmUgc3RlcHMgYXJlIHJlcGVhdGVkIG9uIGFsbCBIRENQIGNhcGFibGUgY29ubmVjdG9y cyBmb3IgYm90aApsZWdhY3kgYW5kIGF0b21pYyBzdWJ0ZXN0cy4KClNpZ25lZC1vZmYtYnk6IFNl YW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgpTaWduZWQtb2ZmLWJ5OiBSYW1hbGluZ2Ft IEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogbGliL2lndF9rbXMuYyAgICAgICAgICAg ICAgICAgIHwgICAxICsKIGxpYi9pZ3Rfa21zLmggICAgICAgICAgICAgICAgICB8ICAgMSArCiB0 ZXN0cy9NYWtlZmlsZS5zb3VyY2VzICAgICAgICAgfCAgIDEgKwogdGVzdHMva21zX2NvbnRlbnRf cHJvdGVjdGlvbi5jIHwgMjgyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogNSBmaWxlcyBjaGFu Z2VkLCAyODYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19jb250 ZW50X3Byb3RlY3Rpb24uYwoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmMgYi9saWIvaWd0X2tt cy5jCmluZGV4IDYyZDg0Njg0MTVjNi4uNDIzMTk5NmM2NWNhIDEwMDY0NAotLS0gYS9saWIvaWd0 X2ttcy5jCisrKyBiL2xpYi9pZ3Rfa21zLmMKQEAgLTE5NCw2ICsxOTQsNyBAQCBjb25zdCBjaGFy ICogY29uc3QgaWd0X2Nvbm5lY3Rvcl9wcm9wX25hbWVzW0lHVF9OVU1fQ09OTkVDVE9SX1BST1BT XSA9IHsKIAlbSUdUX0NPTk5FQ1RPUl9DUlRDX0lEXSA9ICJDUlRDX0lEIiwKIAlbSUdUX0NPTk5F Q1RPUl9EUE1TXSA9ICJEUE1TIiwKIAlbSUdUX0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCXSA9ICJC cm9hZGNhc3QgUkdCIiwKKwlbSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT05dID0gIkNv bnRlbnQgUHJvdGVjdGlvbiIsCiB9OwogCiAvKgpkaWZmIC0tZ2l0IGEvbGliL2lndF9rbXMuaCBi L2xpYi9pZ3Rfa21zLmgKaW5kZXggM2ExMmYyNzgyZWVkLi5hYTA2OGU1OGU2MDcgMTAwNjQ0Ci0t LSBhL2xpYi9pZ3Rfa21zLmgKKysrIGIvbGliL2lndF9rbXMuaApAQCAtMTIwLDYgKzEyMCw3IEBA IGVudW0gaWd0X2F0b21pY19jb25uZWN0b3JfcHJvcGVydGllcyB7CiAgICAgICAgSUdUX0NPTk5F Q1RPUl9DUlRDX0lELAogICAgICAgIElHVF9DT05ORUNUT1JfRFBNUywKICAgICAgICBJR1RfQ09O TkVDVE9SX0JST0FEQ0FTVF9SR0IsCisgICAgICAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RF Q1RJT04sCiAgICAgICAgSUdUX05VTV9DT05ORUNUT1JfUFJPUFMKIH07CiAKZGlmZiAtLWdpdCBh L3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IGM4 NDkzM2YxZDk3MS4uNWFmNjhhNjFkZjUxIDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzCisrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKQEAgLTE3NCw2ICsxNzQsNyBAQCBURVNU U19wcm9ncyA9IFwKIAlrbXNfY2h2X2N1cnNvcl9mYWlsIFwKIAlrbXNfY29sb3IgXAogCWttc19j b25jdXJyZW50IFwKKwlrbXNfY29udGVudF9wcm90ZWN0aW9uXAogCWttc19jcnRjX2JhY2tncm91 bmRfY29sb3IgXAogCWttc19jdXJzb3JfY3JjIFwKIAlrbXNfY3Vyc29yX2xlZ2FjeSBcCmRpZmYg LS1naXQgYS90ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0aW9uLmMgYi90ZXN0cy9rbXNfY29udGVu dF9wcm90ZWN0aW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42 YWZjNGUyNmJjYjIKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfY29udGVudF9wcm90ZWN0 aW9uLmMKQEAgLTAsMCArMSwyODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBD b3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2Yg Y2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdh cmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAor ICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5n IHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwg bWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBj b3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUK KyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRo aXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBz aGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9m IHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJ UyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJ TkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElB QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ U0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNP RlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4K KyAqCisgKi8KKworI2luY2x1ZGUgPHBvbGwuaD4KKyNpbmNsdWRlICJpZ3QuaCIKKworSUdUX1RF U1RfREVTQ1JJUFRJT04oIlRlc3QgY29udGVudCBwcm90ZWN0aW9uIChIRENQKSIpOworCit0eXBl ZGVmIHN0cnVjdCB7CisJaW50IGRybV9mZDsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7Cit9IGRh dGFfdDsKKworc3RhdGljIHZvaWQgZmxpcF9oYW5kbGVyKGludCBmZCwgdW5zaWduZWQgaW50IHNl cXVlbmNlLCB1bnNpZ25lZCBpbnQgdHZfc2VjLAorCQkJIHVuc2lnbmVkIGludCB0dl91c2VjLCB2 b2lkICpkYXRhKQoreworCWlndF9kZWJ1ZygiRmxpcCBldmVudCByZWNlaXZlZC5cbiIpOworfQor CitzdGF0aWMgaW50IHdhaXRfZmxpcF9ldmVudChkYXRhX3QgKmRhdGEpCit7CisJaW50IHJjOwor CWRybUV2ZW50Q29udGV4dCBldmN0eDsKKwlzdHJ1Y3QgcG9sbGZkIHBmZDsKKworCWV2Y3R4LnZl cnNpb24gPSAyOworCWV2Y3R4LnZibGFua19oYW5kbGVyID0gTlVMTDsKKwlldmN0eC5wYWdlX2Zs aXBfaGFuZGxlciA9IGZsaXBfaGFuZGxlcjsKKworCXBmZC5mZCA9IGRhdGEtPmRybV9mZDsKKwlw ZmQuZXZlbnRzID0gUE9MTElOOworCXBmZC5yZXZlbnRzID0gMDsKKworCXJjID0gcG9sbCgmcGZk LCAxLCAxMDAwKTsKKwlzd2l0Y2ggKHJjKSB7CisJY2FzZSAwOgorCQlpZ3RfaW5mbygiUG9sbCB0 aW1lb3V0LiAxU2VjLlxuIik7CisJCXJjID0gLUVUSU1FRE9VVDsKKwkJYnJlYWs7CisJY2FzZSAx OgorCQlyYyA9IGRybUhhbmRsZUV2ZW50KGRhdGEtPmRybV9mZCwgJmV2Y3R4KTsKKwkJaWd0X2Fz c2VydF9lcShyYywgMCk7CisJCXJjID0gMDsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJaWd0X2lu Zm8oIlVuZXhwZWN0ZWQgcG9sbCByYyAlZFxuIiwgcmMpOworCQlyYyA9IC0xOworCQlicmVhazsK Kwl9CisKKwlyZXR1cm4gcmM7Cit9CisKK3N0YXRpYyBib29sCit3YWl0X2Zvcl9wcm9wX3ZhbHVl KGlndF9vdXRwdXRfdCAqb3V0cHV0LCB1aW50NjRfdCBleHBlY3RlZCwKKwkJICAgIHVpbnQzMl90 IHRpbWVvdXRfbVNlYykKK3sKKwl1aW50NjRfdCB2YWw7CisJaW50IGk7CisKKwlmb3IgKGkgPSAw OyBpIDwgdGltZW91dF9tU2VjOyBpKyspIHsKKwkJdmFsID0gaWd0X291dHB1dF9nZXRfcHJvcChv dXRwdXQsCisJCQkJCSAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04pOworCQlpZiAo dmFsID09IGV4cGVjdGVkKQorCQkJcmV0dXJuIHRydWU7CisJCXVzbGVlcCgxMDAwKTsKKwl9CisJ aWd0X2luZm8oInByb3BfdmFsdWUgbWlzbWF0Y2ggJWxkICE9ICVsZFxuIiwgdmFsLCBleHBlY3Rl ZCk7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyB2b2lkCitjb21taXRfZGlzcGxheV9h bmRfd2FpdF9mb3JfZmxpcChkYXRhX3QgKmRhdGEsIGlndF9kaXNwbGF5X3QgKmRpc3BsYXksCisJ CQkJIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzKQoreworCWludCByZXQ7CisJdWludDMyX3QgZmxh ZzsKKworCWlmIChzID09IENPTU1JVF9BVE9NSUMpIHsKKwkJZmxhZyA9IERSTV9NT0RFX1BBR0Vf RkxJUF9FVkVOVCB8IERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VUOworCQlpZ3RfZGlzcGxh eV9jb21taXRfYXRvbWljKGRpc3BsYXksIGZsYWcsIE5VTEwpOworCisJCXJldCA9IHdhaXRfZmxp cF9ldmVudChkYXRhKTsKKwkJaWd0X2Fzc2VydF9mKCFyZXQsICJ3YWl0X2ZsaXBfZXZlbnQgZmFp bGVkLiAlZFxuIiwgcmV0KTsKKwl9IGVsc2UgeworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3Bs YXksIHMpOworCisJCS8qIFdhaXQgZm9yIDUwbVNlYyAqLworCQl1c2xlZXAoNTAgKiAxMDAwKTsK Kwl9Cit9CisKK3N0YXRpYyB2b2lkCit0ZXN0X3BpcGVfb3V0cHV0KGRhdGFfdCAqZGF0YSwgY29u c3QgZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRfdCAqb3V0cHV0LAorCQkgZW51bSBpZ3RfY29t bWl0X3N0eWxlIHMpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5 OworCWRybU1vZGVNb2RlSW5mbyBtb2RlOworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCXN0cnVj dCBpZ3RfZmIgcmVkLCBncmVlbjsKKwlib29sIHJldDsKKwlpbnQgcmV0cnkgPSAzOworCisJaWd0 X2Fzc2VydChrbXN0ZXN0X2dldF9jb25uZWN0b3JfZGVmYXVsdF9tb2RlKAorCQkJZGlzcGxheS0+ ZHJtX2ZkLCBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3IsICZtb2RlKSk7CisKKwlpZ3Rfb3V0cHV0 X292ZXJyaWRlX21vZGUob3V0cHV0LCAmbW9kZSk7CisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRw dXQsIHBpcGUpOworCisJaWd0X2NyZWF0ZV9jb2xvcl9mYihkaXNwbGF5LT5kcm1fZmQsIG1vZGUu aGRpc3BsYXksIG1vZGUudmRpc3BsYXksCisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9D QUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKKwkJCSAgICAxLmYsIDAuZiwgMC5mLCAmcmVkKTsKKwlp Z3RfY3JlYXRlX2NvbG9yX2ZiKGRpc3BsYXktPmRybV9mZCwgbW9kZS5oZGlzcGxheSwgbW9kZS52 ZGlzcGxheSwKKwkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4LCBMT0NBTF9EUk1fRk9STUFUX01P RF9OT05FLAorCQkJICAgIDAuZiwgMS5mLCAwLmYsICZncmVlbik7CisKKwlwcmltYXJ5ID0gaWd0 X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwor CWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgcyk7CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBy aW1hcnksICZyZWQpOworCisJLyogV2FpdCBmb3IgRmxpcCBjb21wbGV0aW9uIGJlZm9yZSBzdGFy dGluZyB0aGUgSERDUCBhdXRoZW50aWNhdGlvbiAqLworCWNvbW1pdF9kaXNwbGF5X2FuZF93YWl0 X2Zvcl9mbGlwKGRhdGEsIGRpc3BsYXksIHMpOworCisJZG8geworCQlpZ3Rfb3V0cHV0X3NldF9w cm9wX3ZhbHVlKG91dHB1dCwKKwkJCQkJICBJR1RfQ09OTkVDVE9SX0NPTlRFTlRfUFJPVEVDVElP TiwgMCk7CisJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgcyk7CisKKwkJLyogV2FpdCBm b3IgSERDUCB0byBiZSBkaXNhYmxlZCBmb3IgZnJlc2ggc3RhcnQuICovCisJCXJldCA9IHdhaXRf Zm9yX3Byb3BfdmFsdWUob3V0cHV0LCAwLCAxMDAwKTsKKwkJaWd0X2Fzc2VydF9mKHJldCwgIkNv bnRlbnQgUHJvdGVjdGlvbiBub3QgY2xlYXJlZFxuIik7CisKKwkJaWd0X291dHB1dF9zZXRfcHJv cF92YWx1ZShvdXRwdXQsCisJCQkJCSAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04s IDEpOworCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOworCisJCS8qIFdhaXQgZm9y IDE4MDAwbVNlYyAoMyBhdXRoZW50aWNhdGlvbiAqIDZTZWMpICovCisJCXJldCA9IHdhaXRfZm9y X3Byb3BfdmFsdWUob3V0cHV0LCAyLCAxODAwMCk7CisJCWlmIChyZXQpIHsKKwkJCWlndF9wbGFu ZV9zZXRfZmIocHJpbWFyeSwgJmdyZWVuKTsKKwkJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxh eSwgcyk7CisJCX0KKworCQlpZiAoIXJldCAmJiAtLXJldHJ5KQorCQkJaWd0X2RlYnVnKCJSZXRy eSAoJWQvMikgLi4uXG4iLCAzIC0gcmV0cnkpOworCX0gd2hpbGUgKHJldHJ5ICYmICFyZXQpOwor CisJaWd0X2Fzc2VydF9mKHJldCwgIkNvbnRlbnQgUHJvdGVjdGlvbiBub3QgZW5hYmxlZFxuIik7 CisKKwlpZ3Rfb3V0cHV0X3NldF9wcm9wX3ZhbHVlKG91dHB1dCwgSUdUX0NPTk5FQ1RPUl9DT05U RU5UX1BST1RFQ1RJT04sIDApOworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJnJlZCk7CisJ aWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBzKTsKKworCS8qIFdhaXQgZm9yIEhEQ1AgdG8g YmUgZGlzYWJsZWQsIGJlZm9yZSBjcnRjIG9mZiAqLworCXdhaXRfZm9yX3Byb3BfdmFsdWUob3V0 cHV0LCAwLCAxMDAwKTsKKworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7CisJaWd0 X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfTk9ORSk7Cit9CisKK3N0YXRpYyBib29sIGln dF9waXBlX2lzX2ZyZWUoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUpCit7 CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgZGlzcGxheS0+bl9vdXRwdXRzOyBpKyspCisJ CWlmIChkaXNwbGF5LT5vdXRwdXRzW2ldLnBlbmRpbmdfcGlwZSA9PSBwaXBlKQorCQkJcmV0dXJu IGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyB2b2lkCit0ZXN0X2NvbnRlbnRf cHJvdGVjdGlvbl9vbl9vdXRwdXQoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwK KwkJCQkgIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBzKQoreworCWlndF9kaXNwbGF5X3QgKmRpc3Bs YXkgPSAmZGF0YS0+ZGlzcGxheTsKKwllbnVtIHBpcGUgcGlwZTsKKworCWZvcl9lYWNoX3BpcGUo ZGlzcGxheSwgcGlwZSkgeworCQlpZiAoIWlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBv dXRwdXQpKQorCQkJY29udGludWU7CisKKwkJLyoKKwkJICogSWYgcHJldmlvdXMgc3VidGVzdCBv ZiBjb25uZWN0b3IgZmFpbGVkLCBwaXBlCisJCSAqIGF0dGFjaGVkIHRvIHRoYXQgY29ubmVjdG9y IGlzIG5vdCByZWxlYXNlZC4KKwkJICogQmVjYXVzZSBvZiB0aGF0IHdlIGhhdmUgdG8gY2hvb3Nl IHRoZSBub24KKwkJICogYXR0YWNoZWQgcGlwZSBmb3IgdGhpcyBzdWJ0ZXN0LgorCQkgKi8KKwkJ aWYgKCFpZ3RfcGlwZV9pc19mcmVlKGRpc3BsYXksIHBpcGUpKQorCQkJY29udGludWU7CisKKwkJ LyogVG8gaW5kaWNhdGUgdGhlIGNvbm5lY3RvciBhbmQgcGlwZSB1bmRlciB0ZXN0ICovCisJCWln dF9kZWJ1ZygiQ1AgVGVzdCBleGVjdXRpb24gb24gJXM6UElQRS0lc1xuIiwgb3V0cHV0LT5uYW1l LAorCQkJIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKTsKKworCQl0ZXN0X3BpcGVfb3V0cHV0KGRh dGEsIHBpcGUsIG91dHB1dCwgcyk7CisKKwkJLyoKKwkJICogVGVzdGluZyBhIG91dHB1dCB3aXRo IGEgcGlwZSBpcyBlbm91Z2ggZm9yIEhEQ1AKKwkJICogdGVzdGluZy4gTm8gUk9JIGluIHRlc3Rp bmcgdGhlIGNvbm5lY3RvciB3aXRoIG90aGVyCisJCSAqIHBpcGVzLiBTbyBCcmVhayB0aGUgbG9v cCBvbiBwaXBlLgorCQkgKi8KKwkJYnJlYWs7CisJfQorCit9CisKK3N0YXRpYyB2b2lkCit0ZXN0 X2NvbnRlbnRfcHJvdGVjdGlvbihkYXRhX3QgKmRhdGEsIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBz KQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlpZ3Rfb3V0 cHV0X3QgKm91dHB1dDsKKwlpbnQgdmFsaWRfdGVzdHMgPSAwOworCisJZm9yX2VhY2hfY29ubmVj dGVkX291dHB1dChkaXNwbGF5LCBvdXRwdXQpIHsKKworCQlpZiAoIW91dHB1dC0+cHJvcHNbSUdU X0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT05dKQorCQkJY29udGludWU7CisKKwkJLyoKKwkJ ICogVE9ETzogU2tpcCB0aGUgY29ubmVjdG9yIGlmIHRoZSBjb25uZWN0ZWQgc2luayBpcworCQkg KiBub3QgY2FwYWJsZSBvZiBIRENQLCB0byBhdm9pZCBmYWxzZSBhbGFybSBvZiBoZGNwCisJCSAq IGZhaWx1cmUgb24gdGhpcyBjb25uZWN0b3IuCisJCSAqIFBvc3NpYmx5IGRvIGEgYXV4IG9yIEky QyBUcmFuc2ZlciB0byBkZXRlY3QgdGhlCisJCSAqIHNpbmsncyBIRENQIGNhcGFiaWxpdHkuIE90 aGVyIHBvc3NpYmlsaXR5IGlzIHJ1biB0aGUKKwkJICoga21zX2NvbnRlbnRfcHJvdGVjdGlvbiBv biB0aGUgY29ubmVjdG9ycyB3aGVyZSBrbm93bgorCQkgKiBIRENQIHNpbmtzIGFyZSBjb25uZWN0 ZWQuCisJCSAqLworCisJCXRlc3RfY29udGVudF9wcm90ZWN0aW9uX29uX291dHB1dChkYXRhLCBv dXRwdXQsIHMpOworCQl2YWxpZF90ZXN0cysrOworCX0KKworCWlndF9yZXF1aXJlX2YodmFsaWRf dGVzdHMsICJObyBjb25uZWN0b3IgZm91bmQgd2l0aCBIRENQIGNhcGFiaWxpdHlcbiIpOworfQor CitpZ3RfbWFpbgoreworCWRhdGFfdCBkYXRhID0ge307CisKKwlpZ3RfZml4dHVyZSB7CisJCWln dF9za2lwX29uX3NpbXVsYXRpb24oKTsKKworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZl cihEUklWRVJfQU5ZKTsKKworCQlpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRpc3BsYXksIGRhdGEu ZHJtX2ZkKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgibGVnYWN5IikKKwkJdGVzdF9jb250ZW50X3By b3RlY3Rpb24oJmRhdGEsIENPTU1JVF9MRUdBQ1kpOworCisJaWd0X3N1YnRlc3QoImF0b21pYyIp IHsKKwkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21pYyk7CisJCXRlc3RfY29udGVu dF9wcm90ZWN0aW9uKCZkYXRhLCBDT01NSVRfQVRPTUlDKTsKKwl9CisKKwlpZ3RfZml4dHVyZQor CQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOworfQpkaWZmIC0tZ2l0IGEvdGVzdHMv bWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCAxN2RlYjk0NWVjOTUuLmE3NGRl NGZmMGVjZSAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvbWVzb24u YnVpbGQKQEAgLTE0OSw2ICsxNDksNyBAQCB0ZXN0X3Byb2dzID0gWwogCSdrbXNfY2h2X2N1cnNv cl9mYWlsJywKIAkna21zX2NvbG9yJywKIAkna21zX2NvbmN1cnJlbnQnLAorCSdrbXNfY29udGVu dF9wcm90ZWN0aW9uJywKIAkna21zX2NydGNfYmFja2dyb3VuZF9jb2xvcicsCiAJJ2ttc19jdXJz b3JfY3JjJywKIAkna21zX2N1cnNvcl9sZWdhY3knLAotLSAKMi43LjQKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=