From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 85CE36E367 for ; Wed, 17 Oct 2018 11:55:46 +0000 (UTC) From: Ramalingam C Date: Wed, 17 Oct 2018 17:23:25 +0530 Message-Id: <1539777205-9995-1-git-send-email-ramalingam.c@intel.com> In-Reply-To: <1539352929-30790-1-git-send-email-ramalingam.c@intel.com> References: <1539352929-30790-1-git-send-email-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v3] 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.vetter@ffwll.ch List-ID: UHJldHR5IHNpbXBsZSB0ZXN0OgotIHBpY2tzIHRoZSBoZGNwIGNhcGFibGUgb3V0cHV0IHdpdGgg c3VpdGFibGUgcGlwZSBhbmQgYXBwbHkgbW9kZXNldC4KLSBjaGVja3MgdGhlIGNvbm5lY3RlZCBz aW5rJ3MgaGRjcCBjYXBhYmlsaXR5IHRocm91Z2ggZGVidWdmcwotIGFwcGx5IGEgRkIgYW5kIHdh aXQgZm9yIHRoZSBmbGlwIGNvbXBsZXRpb24uCi0gY2xlYXJzIHRoZSBjb250ZW50IHByb3RlY3Rp b24gcHJvcGVydHkKLSB2ZXJpZmllcyB0aGF0IGl0IGNsZWFycwotIHNldHMgdGhlIGNvbnRlbnQg cHJvdGVjdGlvbiBwcm9wZXJ0eSB0byBkZXNpcmVkCi0gdmVyaWZpZXMgdGhhdCBpdCB0cmFuc2l0 aW9ucyB0byBlbmFibGVkCi0gaW5jYXNlIG9mIHRpbWVvdXQgdGhyZWUgcmVhdHRlbXB0cyBhcmUg aW1wbGVtZW50ZWQKLSBjbGVhciB0aGUgY29udGVudCBwcm90ZWN0aW9uIHByb3BlcnR5IGFuZCBt b2Rlc2V0IG9uIHRoZSBjcnRjCgpBYm92ZSBzdGVwcyBhcmUgcmVwZWF0ZWQgb24gYWxsIEhEQ1Ag Y2FwYWJsZSBjb25uZWN0b3JzIGZvciBib3RoCmxlZ2FjeSBhbmQgYXRvbWljIHN1YnRlc3RzLgoK djI6CiAgZHluYW1pYyBzdWJ0ZXN0cyBhcmUgZHJvcHBlZCBbRGFuaWVsXQp2MzoKICBkZWJ1Z2Zz IGlzIHVzZWQgdG8gZGV0ZWN0IHRoZSBzaW5rJ3MgaGRjcCBjYXBhYmlsaXR5IFtEYW5pZWxdCiAg ZGF0YSBzdHJ1Y3R1cmUgaXMgbWFkZSBhcyBnbG9iYWwgdmFyaWFibGUuCgpTaWduZWQtb2ZmLWJ5 OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KU2lnbmVkLW9mZi1ieTogUmFtYWxp bmdhbSBDIDxyYW1hbGluZ2FtLmNAaW50ZWwuY29tPgotLS0KIGxpYi9pZ3Rfa21zLmMgICAgICAg ICAgICAgICAgICB8ICAgMSArCiBsaWIvaWd0X2ttcy5oICAgICAgICAgICAgICAgICAgfCAgIDEg KwogdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgICAgICAgIHwgICAxICsKIHRlc3RzL2ttc19jb250 ZW50X3Byb3RlY3Rpb24uYyB8IDMyMyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogdGVzdHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIDUgZmlsZXMg Y2hhbmdlZCwgMzI3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9rbXNf Y29udGVudF9wcm90ZWN0aW9uLmMKCmRpZmYgLS1naXQgYS9saWIvaWd0X2ttcy5jIGIvbGliL2ln dF9rbXMuYwppbmRleCA2MmQ4NDY4NDE1YzYuLjQyMzE5OTZjNjVjYSAxMDA2NDQKLS0tIGEvbGli L2lndF9rbXMuYworKysgYi9saWIvaWd0X2ttcy5jCkBAIC0xOTQsNiArMTk0LDcgQEAgY29uc3Qg Y2hhciAqIGNvbnN0IGlndF9jb25uZWN0b3JfcHJvcF9uYW1lc1tJR1RfTlVNX0NPTk5FQ1RPUl9Q Uk9QU10gPSB7CiAJW0lHVF9DT05ORUNUT1JfQ1JUQ19JRF0gPSAiQ1JUQ19JRCIsCiAJW0lHVF9D T05ORUNUT1JfRFBNU10gPSAiRFBNUyIsCiAJW0lHVF9DT05ORUNUT1JfQlJPQURDQVNUX1JHQl0g PSAiQnJvYWRjYXN0IFJHQiIsCisJW0lHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OXSA9 ICJDb250ZW50IFByb3RlY3Rpb24iLAogfTsKIAogLyoKZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21z LmggYi9saWIvaWd0X2ttcy5oCmluZGV4IDNhMTJmMjc4MmVlZC4uYWEwNjhlNThlNjA3IDEwMDY0 NAotLS0gYS9saWIvaWd0X2ttcy5oCisrKyBiL2xpYi9pZ3Rfa21zLmgKQEAgLTEyMCw2ICsxMjAs NyBAQCBlbnVtIGlndF9hdG9taWNfY29ubmVjdG9yX3Byb3BlcnRpZXMgewogICAgICAgIElHVF9D T05ORUNUT1JfQ1JUQ19JRCwKICAgICAgICBJR1RfQ09OTkVDVE9SX0RQTVMsCiAgICAgICAgSUdU X0NPTk5FQ1RPUl9CUk9BRENBU1RfUkdCLAorICAgICAgIElHVF9DT05ORUNUT1JfQ09OVEVOVF9Q Uk9URUNUSU9OLAogICAgICAgIElHVF9OVU1fQ09OTkVDVE9SX1BST1BTCiB9OwogCmRpZmYgLS1n aXQgYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRl eCBjODQ5MzNmMWQ5NzEuLjVhZjY4YTYxZGY1MSAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUu c291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC0xNzQsNiArMTc0LDcgQEAg VEVTVFNfcHJvZ3MgPSBcCiAJa21zX2Nodl9jdXJzb3JfZmFpbCBcCiAJa21zX2NvbG9yIFwKIAlr bXNfY29uY3VycmVudCBcCisJa21zX2NvbnRlbnRfcHJvdGVjdGlvblwKIAlrbXNfY3J0Y19iYWNr Z3JvdW5kX2NvbG9yIFwKIAlrbXNfY3Vyc29yX2NyYyBcCiAJa21zX2N1cnNvcl9sZWdhY3kgXApk aWZmIC0tZ2l0IGEvdGVzdHMva21zX2NvbnRlbnRfcHJvdGVjdGlvbi5jIGIvdGVzdHMva21zX2Nv bnRlbnRfcHJvdGVjdGlvbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uZmMyMGNiYTg5OTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMva21zX2NvbnRlbnRfcHJv dGVjdGlvbi5jCkBAIC0wLDAgKzEsMzIzIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTggSW50 ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVl IG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNv ZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUi KSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1 ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2Rp ZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNl bGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20g dGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZv bGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFu ZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFw aCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9u cyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAi QVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJ R0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAq IExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI RVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdB UkUuCisgKgorICovCisKKyNpbmNsdWRlIDxwb2xsLmg+CisjaW5jbHVkZSAiaWd0LmgiCisjaW5j bHVkZSAiaWd0X3N5c2ZzLmgiCisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IGNvbnRlbnQg cHJvdGVjdGlvbiAoSERDUCkiKTsKKworc3RydWN0IGRhdGEgeworCWludCBkcm1fZmQ7CisJaW50 IGRlYnVnZnM7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworfSBkYXRhOworCisKK3N0YXRpYyB2 b2lkIGZsaXBfaGFuZGxlcihpbnQgZmQsIHVuc2lnbmVkIGludCBzZXF1ZW5jZSwgdW5zaWduZWQg aW50IHR2X3NlYywKKwkJCSB1bnNpZ25lZCBpbnQgdHZfdXNlYywgdm9pZCAqX2RhdGEpCit7CisJ aWd0X2RlYnVnKCJGbGlwIGV2ZW50IHJlY2VpdmVkLlxuIik7Cit9CisKK3N0YXRpYyBpbnQgd2Fp dF9mbGlwX2V2ZW50KHZvaWQpCit7CisJaW50IHJjOworCWRybUV2ZW50Q29udGV4dCBldmN0eDsK KwlzdHJ1Y3QgcG9sbGZkIHBmZDsKKworCWV2Y3R4LnZlcnNpb24gPSAyOworCWV2Y3R4LnZibGFu a19oYW5kbGVyID0gTlVMTDsKKwlldmN0eC5wYWdlX2ZsaXBfaGFuZGxlciA9IGZsaXBfaGFuZGxl cjsKKworCXBmZC5mZCA9IGRhdGEuZHJtX2ZkOworCXBmZC5ldmVudHMgPSBQT0xMSU47CisJcGZk LnJldmVudHMgPSAwOworCisJcmMgPSBwb2xsKCZwZmQsIDEsIDEwMDApOworCXN3aXRjaCAocmMp IHsKKwljYXNlIDA6CisJCWlndF9pbmZvKCJQb2xsIHRpbWVvdXQuIDFTZWMuXG4iKTsKKwkJcmMg PSAtRVRJTUVET1VUOworCQlicmVhazsKKwljYXNlIDE6CisJCXJjID0gZHJtSGFuZGxlRXZlbnQo ZGF0YS5kcm1fZmQsICZldmN0eCk7CisJCWlndF9hc3NlcnRfZXEocmMsIDApOworCQlyYyA9IDA7 CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWlndF9pbmZvKCJVbmV4cGVjdGVkIHBvbGwgcmMgJWRc biIsIHJjKTsKKwkJcmMgPSAtMTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJjOworfQorCitz dGF0aWMgYm9vbAord2FpdF9mb3JfcHJvcF92YWx1ZShpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgdWlu dDY0X3QgZXhwZWN0ZWQsCisJCSAgICB1aW50MzJfdCB0aW1lb3V0X21TZWMpCit7CisJdWludDY0 X3QgdmFsOworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IHRpbWVvdXRfbVNlYzsgaSsrKSB7 CisJCXZhbCA9IGlndF9vdXRwdXRfZ2V0X3Byb3Aob3V0cHV0LAorCQkJCQkgIElHVF9DT05ORUNU T1JfQ09OVEVOVF9QUk9URUNUSU9OKTsKKwkJaWYgKHZhbCA9PSBleHBlY3RlZCkKKwkJCXJldHVy biB0cnVlOworCQl1c2xlZXAoMTAwMCk7CisJfQorCWlndF9pbmZvKCJwcm9wX3ZhbHVlIG1pc21h dGNoICVsZCAhPSAlbGRcbiIsIHZhbCwgZXhwZWN0ZWQpOworCisJcmV0dXJuIGZhbHNlOworfQor CitzdGF0aWMgdm9pZAorY29tbWl0X2Rpc3BsYXlfYW5kX3dhaXRfZm9yX2ZsaXAoZW51bSBpZ3Rf Y29tbWl0X3N0eWxlIHMpCit7CisJaW50IHJldDsKKwl1aW50MzJfdCBmbGFnOworCisJaWYgKHMg PT0gQ09NTUlUX0FUT01JQykgeworCQlmbGFnID0gRFJNX01PREVfUEFHRV9GTElQX0VWRU5UIHwg RFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQ7CisJCWlndF9kaXNwbGF5X2NvbW1pdF9hdG9t aWMoJmRhdGEuZGlzcGxheSwgZmxhZywgTlVMTCk7CisKKwkJcmV0ID0gd2FpdF9mbGlwX2V2ZW50 KCk7CisJCWlndF9hc3NlcnRfZighcmV0LCAid2FpdF9mbGlwX2V2ZW50IGZhaWxlZC4gJWRcbiIs IHJldCk7CisJfSBlbHNlIHsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS5kaXNwbGF5LCBz KTsKKworCQkvKiBXYWl0IGZvciA1MG1TZWMgKi8KKwkJdXNsZWVwKDUwICogMTAwMCk7CisJfQor fQorCitzdGF0aWMgdm9pZAordGVzdF9jcF9lbmFibGVfZGlzYWJsZShjb25zdCBlbnVtIHBpcGUg cGlwZSwgaWd0X291dHB1dF90ICpvdXRwdXQsCisJCSAgICAgICBlbnVtIGlndF9jb21taXRfc3R5 bGUgcykKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEuZGlzcGxheTsKKwlkcm1N b2RlTW9kZUluZm8gbW9kZTsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKwlzdHJ1Y3QgaWd0X2Zi IHJlZCwgZ3JlZW47CisJYm9vbCByZXQ7CisJaW50IHJldHJ5ID0gMzsKKworCWlndF9hc3NlcnQo a21zdGVzdF9nZXRfY29ubmVjdG9yX2RlZmF1bHRfbW9kZSgKKwkJCWRpc3BsYXktPmRybV9mZCwg b3V0cHV0LT5jb25maWcuY29ubmVjdG9yLCAmbW9kZSkpOworCisJaWd0X291dHB1dF9vdmVycmlk ZV9tb2RlKG91dHB1dCwgJm1vZGUpOworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBl KTsKKworCWlndF9jcmVhdGVfY29sb3JfZmIoZGlzcGxheS0+ZHJtX2ZkLCBtb2RlLmhkaXNwbGF5 LCBtb2RlLnZkaXNwbGF5LAorCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsIExPQ0FMX0RSTV9G T1JNQVRfTU9EX05PTkUsCisJCQkgICAgMS5mLCAwLmYsIDAuZiwgJnJlZCk7CisJaWd0X2NyZWF0 ZV9jb2xvcl9mYihkaXNwbGF5LT5kcm1fZmQsIG1vZGUuaGRpc3BsYXksIG1vZGUudmRpc3BsYXks CisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwK KwkJCSAgICAwLmYsIDEuZiwgMC5mLCAmZ3JlZW4pOworCisJcHJpbWFyeSA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwlpZ3RfZGlz cGxheV9jb21taXQyKGRpc3BsYXksIHMpOworCisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAm cmVkKTsKKworCS8qIFdhaXQgZm9yIEZsaXAgY29tcGxldGlvbiBiZWZvcmUgc3RhcnRpbmcgdGhl IEhEQ1AgYXV0aGVudGljYXRpb24gKi8KKwljb21taXRfZGlzcGxheV9hbmRfd2FpdF9mb3JfZmxp cChzKTsKKworCWRvIHsKKwkJaWd0X291dHB1dF9zZXRfcHJvcF92YWx1ZShvdXRwdXQsCisJCQkJ CSAgSUdUX0NPTk5FQ1RPUl9DT05URU5UX1BST1RFQ1RJT04sIDApOworCQlpZ3RfZGlzcGxheV9j b21taXQyKGRpc3BsYXksIHMpOworCisJCS8qIFdhaXQgZm9yIEhEQ1AgdG8gYmUgZGlzYWJsZWQg Zm9yIGZyZXNoIHN0YXJ0LiAqLworCQlyZXQgPSB3YWl0X2Zvcl9wcm9wX3ZhbHVlKG91dHB1dCwg MCwgMTAwMCk7CisJCWlndF9hc3NlcnRfZihyZXQsICJDb250ZW50IFByb3RlY3Rpb24gbm90IGNs ZWFyZWRcbiIpOworCisJCWlndF9vdXRwdXRfc2V0X3Byb3BfdmFsdWUob3V0cHV0LAorCQkJCQkg IElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OLCAxKTsKKwkJaWd0X2Rpc3BsYXlfY29t bWl0MihkaXNwbGF5LCBzKTsKKworCQkvKiBXYWl0IGZvciAxODAwMG1TZWMgKDMgYXV0aGVudGlj YXRpb24gKiA2U2VjKSAqLworCQlyZXQgPSB3YWl0X2Zvcl9wcm9wX3ZhbHVlKG91dHB1dCwgMiwg MTgwMDApOworCQlpZiAocmV0KSB7CisJCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZncmVl bik7CisJCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIHMpOworCQl9CisKKwkJaWYgKCFy ZXQgJiYgLS1yZXRyeSkKKwkJCWlndF9kZWJ1ZygiUmV0cnkgKCVkLzIpIC4uLlxuIiwgMyAtIHJl dHJ5KTsKKwl9IHdoaWxlIChyZXRyeSAmJiAhcmV0KTsKKworCWlndF9hc3NlcnRfZihyZXQsICJD b250ZW50IFByb3RlY3Rpb24gbm90IGVuYWJsZWRcbiIpOworCisJaWd0X291dHB1dF9zZXRfcHJv cF92YWx1ZShvdXRwdXQsIElHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OLCAwKTsKKwlp Z3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZyZWQpOworCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlz cGxheSwgcyk7CisKKwkvKiBXYWl0IGZvciBIRENQIHRvIGJlIGRpc2FibGVkLCBiZWZvcmUgY3J0 YyBvZmYgKi8KKwl3YWl0X2Zvcl9wcm9wX3ZhbHVlKG91dHB1dCwgMCwgMTAwMCk7CisKKwlpZ3Rf cGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0 LCBQSVBFX05PTkUpOworfQorCitzdGF0aWMgYm9vbCBpZ3RfcGlwZV9pc19mcmVlKGlndF9kaXNw bGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlKQoreworCWludCBpOworCisJZm9yIChpID0g MDsgaSA8IGRpc3BsYXktPm5fb3V0cHV0czsgaSsrKQorCQlpZiAoZGlzcGxheS0+b3V0cHV0c1tp XS5wZW5kaW5nX3BpcGUgPT0gcGlwZSkKKwkJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVl OworfQorCitzdGF0aWMgdm9pZAordGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KGln dF9vdXRwdXRfdCAqb3V0cHV0LAorCQkJCSAgZW51bSBpZ3RfY29tbWl0X3N0eWxlIHMpCit7CisJ aWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLmRpc3BsYXk7CisJZW51bSBwaXBlIHBpcGU7 CisKKwlmb3JfZWFjaF9waXBlKGRpc3BsYXksIHBpcGUpIHsKKwkJaWYgKCFpZ3RfcGlwZV9jb25u ZWN0b3JfdmFsaWQocGlwZSwgb3V0cHV0KSkKKwkJCWNvbnRpbnVlOworCisJCS8qCisJCSAqIElm IHByZXZpb3VzIHN1YnRlc3Qgb2YgY29ubmVjdG9yIGZhaWxlZCwgcGlwZQorCQkgKiBhdHRhY2hl ZCB0byB0aGF0IGNvbm5lY3RvciBpcyBub3QgcmVsZWFzZWQuCisJCSAqIEJlY2F1c2Ugb2YgdGhh dCB3ZSBoYXZlIHRvIGNob29zZSB0aGUgbm9uCisJCSAqIGF0dGFjaGVkIHBpcGUgZm9yIHRoaXMg c3VidGVzdC4KKwkJICovCisJCWlmICghaWd0X3BpcGVfaXNfZnJlZShkaXNwbGF5LCBwaXBlKSkK KwkJCWNvbnRpbnVlOworCisJCS8qIFRvIGluZGljYXRlIHRoZSBjb25uZWN0b3IgYW5kIHBpcGUg dW5kZXIgdGVzdCAqLworCQlpZ3RfaW5mbygiQ1AgVGVzdCBleGVjdXRpb24gb24gJXM6UElQRS0l c1xuIiwgb3V0cHV0LT5uYW1lLAorCQkJIGttc3Rlc3RfcGlwZV9uYW1lKHBpcGUpKTsKKworCQl0 ZXN0X2NwX2VuYWJsZV9kaXNhYmxlKHBpcGUsIG91dHB1dCwgcyk7CisKKwkJLyoKKwkJICogVGVz dGluZyBhIG91dHB1dCB3aXRoIGEgcGlwZSBpcyBlbm91Z2ggZm9yIEhEQ1AKKwkJICogdGVzdGlu Zy4gTm8gUk9JIGluIHRlc3RpbmcgdGhlIGNvbm5lY3RvciB3aXRoIG90aGVyCisJCSAqIHBpcGVz LiBTbyBCcmVhayB0aGUgbG9vcCBvbiBwaXBlLgorCQkgKi8KKwkJYnJlYWs7CisJfQorCit9CisK K3N0YXRpYyB2b2lkIF9fZGVidWdmc19yZWFkKGNvbnN0IGNoYXIgKnBhcmFtLCBjaGFyICpidWYs IGludCBsZW4pCit7CisJbGVuID0gaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGF0YS5kZWJ1Z2Zz LCBwYXJhbSwgYnVmLCBsZW4pOworCWlmIChsZW4gPCAwKQorCQlpZ3RfYXNzZXJ0X2VxKGxlbiwg LUVOT0RFVik7Cit9CisKKyNkZWZpbmUgZGVidWdmc19yZWFkKHAsIGFycikgX19kZWJ1Z2ZzX3Jl YWQocCwgYXJyLCBzaXplb2YoYXJyKSkKKworI2RlZmluZSBNQVhfU0lOS19IRENQX0NBUF9CVUZf TEVOCTEwMDAKK3N0YXRpYyBib29sIHNpbmtfaGRjcF9jYXBhYmxlKGlndF9vdXRwdXRfdCAqb3V0 cHV0KQoreworCWNoYXIgYnVmW01BWF9TSU5LX0hEQ1BfQ0FQX0JVRl9MRU5dOworCWNoYXIgbmFt ZVsxMDBdLCBzaW5rX2NhcFsxMDBdOworCWNoYXIgKnB0ciwgKnB0cjI7CisKKwlzcHJpbnRmKG5h bWUsICIlcyIsIG91dHB1dC0+bmFtZSk7CisJZGVidWdmc19yZWFkKCJpOTE1X3NpbmtzX2hkY3Bf Y2FwYWJpbGl0aWVzIiwgYnVmKTsKKworCS8qIExvY2F0aW5nIHRoZSBzdHJpbmcgZm9yIG91dHB1 dCAqLworCXB0ciA9IHN0cnN0cihidWYsIG5hbWUpOworCWlmICghcHRyKQorCQlyZXR1cm4gZmFs c2U7CisKKwkvKiBFeHRyYWN0aW5nIHRoZSBjYXAgb2YgdGhlIHNpbmsgb24gb3V0cHV0IGFsb25l ICovCisJcHRyMiA9IHN0cmNocihwdHIsICdcbicpOworCWlmIChwdHIyKQorCQlzdHJuY3B5KHNp bmtfY2FwLCBwdHIsIHN0cmxlbihwdHIpLXN0cmxlbihwdHIyKSk7CisJZWxzZQorCQlzdHJjcHko c2lua19jYXAsIHB0cik7CisKKwlpZ3RfZGVidWcoIlNpbmsgSERDUCBjYXBhYmlsaXR5OiAlc1xu Iiwgc2lua19jYXApOworCisJcmV0dXJuIHN0cnN0cihzaW5rX2NhcCwgIkhEQ1AxLjQiKTsKK30K KworCitzdGF0aWMgdm9pZAordGVzdF9jb250ZW50X3Byb3RlY3Rpb24oZW51bSBpZ3RfY29tbWl0 X3N0eWxlIHMpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLmRpc3BsYXk7CisJ aWd0X291dHB1dF90ICpvdXRwdXQ7CisJaW50IHZhbGlkX3Rlc3RzID0gMDsKKworCWZvcl9lYWNo X2Nvbm5lY3RlZF9vdXRwdXQoZGlzcGxheSwgb3V0cHV0KSB7CisKKwkJaWYgKCFvdXRwdXQtPnBy b3BzW0lHVF9DT05ORUNUT1JfQ09OVEVOVF9QUk9URUNUSU9OXSkKKwkJCWNvbnRpbnVlOworCisJ CWlmICghc2lua19oZGNwX2NhcGFibGUob3V0cHV0KSkKKwkJCWNvbnRpbnVlOworCQkvKgorCQkg KiBUT0RPOiBTa2lwIHRoZSBjb25uZWN0b3IgaWYgdGhlIGNvbm5lY3RlZCBzaW5rIGlzCisJCSAq IG5vdCBjYXBhYmxlIG9mIEhEQ1AsIHRvIGF2b2lkIGZhbHNlIGFsYXJtIG9mIGhkY3AKKwkJICog ZmFpbHVyZSBvbiB0aGlzIGNvbm5lY3Rvci4KKwkJICogUG9zc2libHkgZG8gYSBhdXggb3IgSTJD IFRyYW5zZmVyIHRvIGRldGVjdCB0aGUKKwkJICogc2luaydzIEhEQ1AgY2FwYWJpbGl0eS4gT3Ro ZXIgcG9zc2liaWxpdHkgaXMgcnVuIHRoZQorCQkgKiBrbXNfY29udGVudF9wcm90ZWN0aW9uIG9u IHRoZSBjb25uZWN0b3JzIHdoZXJlIGtub3duCisJCSAqIEhEQ1Agc2lua3MgYXJlIGNvbm5lY3Rl ZC4KKwkJICovCisKKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb25fb25fb3V0cHV0KG91dHB1dCwg cyk7CisJCXZhbGlkX3Rlc3RzKys7CisJfQorCisJaWd0X3JlcXVpcmVfZih2YWxpZF90ZXN0cywg Ik5vIGNvbm5lY3RvciBmb3VuZCB3aXRoIEhEQ1AgY2FwYWJpbGl0eVxuIik7Cit9CisKK2lndF9t YWluCit7CisJaWd0X2ZpeHR1cmUgeworCQlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwkJ ZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0FOWSk7CisKKwkJaWd0X2Rpc3Bs YXlfaW5pdCgmZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7CisKKwkJZGF0YS5kZWJ1Z2ZzID0g aWd0X2RlYnVnZnNfZGlyKGRhdGEuZHJtX2ZkKTsKKwl9CisKKwlpZ3Rfc3VidGVzdCgibGVnYWN5 IikKKwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0xFR0FDWSk7CisKKwlpZ3Rfc3Vi dGVzdCgiYXRvbWljIikgeworCQlpZ3RfcmVxdWlyZShkYXRhLmRpc3BsYXkuaXNfYXRvbWljKTsK KwkJdGVzdF9jb250ZW50X3Byb3RlY3Rpb24oQ09NTUlUX0FUT01JQyk7CisJfQorCisJaWd0X2Zp eHR1cmUKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKK30KZGlmZiAtLWdpdCBh L3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggMTdkZWI5NDVlYzk1 Li5hNzRkZTRmZjBlY2UgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3Rz L21lc29uLmJ1aWxkCkBAIC0xNDksNiArMTQ5LDcgQEAgdGVzdF9wcm9ncyA9IFsKIAkna21zX2No dl9jdXJzb3JfZmFpbCcsCiAJJ2ttc19jb2xvcicsCiAJJ2ttc19jb25jdXJyZW50JywKKwkna21z X2NvbnRlbnRfcHJvdGVjdGlvbicsCiAJJ2ttc19jcnRjX2JhY2tncm91bmRfY29sb3InLAogCSdr bXNfY3Vyc29yX2NyYycsCiAJJ2ttc19jdXJzb3JfbGVnYWN5JywKLS0gCjIuNy40CgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcg bGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK