From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E7666EB3E for ; Thu, 3 Jan 2019 14:37:11 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Thu, 3 Jan 2019 06:36:41 -0800 Message-Id: <20190103143641.20200-9-jose.souza@intel.com> In-Reply-To: <20190103143641.20200-1-jose.souza@intel.com> References: <20190103143641.20200-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 9/9] test: Add PSR2 selective update tests 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 Cc: Dhinakaran Pandiyan , Rodrigo Vivi List-ID: VGhpcyB0ZXN0cyBjaGVja3MgaWYgaGFyZHdhcmUgaXMgYWJsZSB0byBkbyBzZWxlY3RpdmUgdXBk YXRlIHdoZW4Kc2NyZWVuIGNoYW5nZXMuClBTUjIgZG9uJ3QgdHJpZ2dlciBpbnRlcnJ1cHRpb25z IGFuZCB0aGUgJ1BTUjIgU1Ugc3RhdHVzJyByZWdpc3RlcgppcyBub3Qga2VwdCBsb2FkZWQgYWxs IHRoZSB0aW1lcywgc28gaXQgaXMgbmVjZXNzYXJ5IGtlZXAgcG9sbGluZwpQU1Igc3RhdHVzIGRl YnVnZnMgdW50aWwgdGhvc2UgdmFsdWVzIGFyZSBsb2FkZWQuCldoZW4gbG9hZGVkIGl0IGlzIGNv bXBhcmVkIHdpdGggdGhlIGV4cGVjdGVkIHZhbHVlLCBpZiBtYXRjaGVzCnRoZSBwb2xsaW5nIGlz IHN0b3BwZWQgYW5kIHRoZSB0ZXN0IHBhc3NlZCBvdGhlcndpc2UgaXQgd2lsbAp3YWl0IHVudGls IGZhaWxfdGltZXJmZCB0byBleHBpcmUgdG8gZmFpbCB0aGUgdGVzdC4KCnYyOiBVc2luZyBuZXcg U1UgYmxvY2tzIGRlYnVnZnMgb3V0cHV0CgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlA aW50ZWwuY29tPgpDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291 emFAaW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfcHNyLmMgICAgICAgICAgfCAgMjMgKysrCiBsaWIv aWd0X3Bzci5oICAgICAgICAgIHwgICAxICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEg KwogdGVzdHMva21zX3BzcjJfc3UuYyAgICB8IDM2MiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogdGVzdHMvbWVzb24uYnVpbGQgICAgICB8ICAgMSArCiA1IGZpbGVz IGNoYW5nZWQsIDM4OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21z X3BzcjJfc3UuYwoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcHNyLmMgYi9saWIvaWd0X3Bzci5jCmlu ZGV4IDBmNGIyZTIzLi5hOGI5ZTRjZSAxMDA2NDQKLS0tIGEvbGliL2lndF9wc3IuYworKysgYi9s aWIvaWd0X3Bzci5jCkBAIC0yMzQsMyArMjM0LDI2IEBAIGJvb2wgcHNyMl93YWl0X3VwZGF0ZShp bnQgZGVidWdmc19mZCkKIHsKIAlyZXR1cm4gaWd0X3dhaXQocHNyMl9zdGF0dXNfdXBkYXRlKGRl YnVnZnNfZmQpLCA0MCwgMTApOwogfQorCisjZGVmaW5lIFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tV UCAiUFNSMiBTVSBibG9ja3M6XG4wXHQiCisKK2Jvb2wgcHNyMl9yZWFkX2xhc3RfbnVtX3N1X2Js b2Nrc192YWwoaW50IGRlYnVnZnNfZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKQoreworCWNo YXIgYnVmW1BTUl9TVEFUVVNfTUFYX0xFTl07CisJY2hhciAqc3RyOworCWludCByZXQ7CisKKwly ZXQgPSBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkZWJ1Z2ZzX2ZkLCAiaTkxNV9lZHBfcHNyX3N0 YXR1cyIsIGJ1ZiwKKwkJCQkgICAgICBzaXplb2YoYnVmKSk7CisJaWYgKHJldCA8IDApCisJCXJl dHVybiBmYWxzZTsKKworCXN0ciA9IHN0cnN0cihidWYsIFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tV UCk7CisJaWYgKCFzdHIpCisJCXJldHVybiBmYWxzZTsKKworCXN0ciA9ICZzdHJbc3RybGVuKFBT UjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCldOworCSpudW1fc3VfYmxvY2tzID0gKHVpbnQxNl90KXN0 cnRvbChzdHIsIE5VTEwsIDEwKTsKKworCXJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvbGli L2lndF9wc3IuaCBiL2xpYi9pZ3RfcHNyLmgKaW5kZXggMmI4ZDFhOTAuLjM0OWViMGMyIDEwMDY0 NAotLS0gYS9saWIvaWd0X3Bzci5oCisrKyBiL2xpYi9pZ3RfcHNyLmgKQEAgLTQxLDUgKzQxLDYg QEAgYm9vbCBwc3IyX3dhaXRfdXBkYXRlKGludCBkZWJ1Z2ZzX2ZkKTsKIGJvb2wgcHNyMl9lbmFi bGUoaW50IGRlYnVnZnNfZmQpOwogYm9vbCBwc3IyX2Rpc2FibGUoaW50IGRlYnVnZnNfZmQpOwog Ym9vbCBwc3IyX3Npbmtfc3VwcG9ydChpbnQgZGVidWdmc19mZCk7Citib29sIHBzcjJfcmVhZF9s YXN0X251bV9zdV9ibG9ja3NfdmFsKGludCBkZWJ1Z2ZzX2ZkLCB1aW50MTZfdCAqbnVtX3N1X2Js b2Nrcyk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rl c3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggZWVkZGUxZTguLjNjNzllZWMwIDEwMDY0NAotLS0g YS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKQEAg LTc4LDYgKzc4LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCiAJa21zX3BsYW5lX3NjYWxpbmcgXAogCWtt c19wcm9wZXJ0aWVzIFwKIAlrbXNfcHNyIFwKKwlrbXNfcHNyMl9zdSBcCiAJa21zX3B3cml0ZV9j cmMgXAogCWttc19ybWZiIFwKIAlrbXNfcm90YXRpb25fY3JjIFwKZGlmZiAtLWdpdCBhL3Rlc3Rz L2ttc19wc3IyX3N1LmMgYi90ZXN0cy9rbXNfcHNyMl9zdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwLi42N2MwMmYyNQotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19w c3IyX3N1LmMKQEAgLTAsMCArMSwzNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRl bCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBo KSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25z IG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJ RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklH SFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICog TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FS RS4KKyAqCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF9zeXNmcy5oIgor I2luY2x1ZGUgImlndF9wc3IuaCIKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHBvbGwu aD4KKyNpbmNsdWRlIDxwdGhyZWFkLmg+CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUg PHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c3lzL3RpbWVyZmQuaD4K KyNpbmNsdWRlICJpbnRlbF9idWZtZ3IuaCIKKworSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3Qg UFNSMiBzZWxlY3RpdmUgdXBkYXRlIik7CisKKyNkZWZpbmUgU1FVQVJFX1NJWkUgMTAwCisKK2Vu dW0gb3BlcmF0aW9ucyB7CisJUEFHRV9GTElQLAorCUZST05UQlVGRkVSLAorCUxBU1QKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICpvcF9zdHIoZW51bSBvcGVyYXRpb25zIG9wKQoreworCXN0YXRp YyBjb25zdCBjaGFyICogY29uc3QgbmFtZVtdID0geworCQlbUEFHRV9GTElQXSA9ICJwYWdlX2Zs aXAiLAorCQlbRlJPTlRCVUZGRVJdID0gImZyb250YnVmZmVyIgorCX07CisKKwlyZXR1cm4gbmFt ZVtvcF07Cit9CisKK3R5cGVkZWYgc3RydWN0IHsKKwlzdHJ1Y3QgaWd0X2ZiIGZiWzJdOworCXN0 cnVjdCBwb2xsZmQgcG9sbGZkc1syXTsKKwlwdGhyZWFkX3QgdGhyZWFkX2lkOworCWludCBkcm1f ZmQ7CisJaW50IGRlYnVnZnNfZmQ7CisJaW50IGZsaXBfdGltZXJmZDsKKwlpbnQgZmFpbF90aW1l cmZkOworCXVpbnQzMl90IGNoYW5nZXM7CisJdm9sYXRpbGUgYm9vbCBydW47CisJdm9sYXRpbGUg Ym9vbCBzdWNlc3M7CisKKwllbnVtIG9wZXJhdGlvbnMgb3A7CisJdWludDMyX3QgZGV2aWQ7CisJ dWludDMyX3QgY3J0Y19pZDsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7CisJZHJtX2ludGVsX2J1 Zm1nciAqYnVmbWdyOworCWludCBtb2Rfc2l6ZTsKKwlpbnQgbW9kX3N0cmlkZTsKKwlkcm1Nb2Rl TW9kZUluZm8gKm1vZGU7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7Cit9IGRhdGFfdDsKKworc3Rh dGljIHZvaWQgc2V0dXBfb3V0cHV0KGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV90ICpk aXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJZW51bSBw aXBlIHBpcGU7CisKKwlmb3JfZWFjaF9waXBlX3dpdGhfdmFsaWRfb3V0cHV0KGRpc3BsYXksIHBp cGUsIG91dHB1dCkgeworCQlkcm1Nb2RlQ29ubmVjdG9yUHRyIGMgPSBvdXRwdXQtPmNvbmZpZy5j b25uZWN0b3I7CisKKwkJaWYgKGMtPmNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RP Ul9lRFApCisJCQljb250aW51ZTsKKworCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlw ZSk7CisJCWRhdGEtPmNydGNfaWQgPSBvdXRwdXQtPmNvbmZpZy5jcnRjLT5jcnRjX2lkOworCQlk YXRhLT5vdXRwdXQgPSBvdXRwdXQ7CisJCWRhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2Rl KG91dHB1dCk7CisKKwkJcmV0dXJuOworCX0KK30KKworc3RhdGljIHZvaWQgZGlzcGxheV9pbml0 KGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLT5kaXNwbGF5LCBk YXRhLT5kcm1fZmQpOworCXNldHVwX291dHB1dChkYXRhKTsKK30KKworc3RhdGljIHZvaWQgZGlz cGxheV9maW5pKGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLT5kaXNw bGF5KTsKK30KKworc3RhdGljIHZvaWQgKmRlYnVnZnNfdGhyZWFkKHZvaWQgKnB0cikKK3sKKwlk YXRhX3QgKmRhdGEgPSBwdHI7CisJdWludDE2X3QgZXhwZWN0ZWRfbnVtX3N1X2Jsb2NrczsKKwor CS8qIGVhY2ggc2VsZWN0aXZlIHVwZGF0ZSBibG9jayBpcyA0IGxpbmVzIHRhbGwgKi8KKwlleHBl Y3RlZF9udW1fc3VfYmxvY2tzID0gU1FVQVJFX1NJWkUgLyA0OworCWV4cGVjdGVkX251bV9zdV9i bG9ja3MgKz0gU1FVQVJFX1NJWkUgJSA0ID8gMSA6IDA7CisKKwl3aGlsZSAoZGF0YS0+cnVuKSB7 CisJCXVpbnQxNl90IG51bV9zdV9ibG9ja3M7CisJCWJvb2wgcjsKKworCQlyID0gcHNyMl9yZWFk X2xhc3RfbnVtX3N1X2Jsb2Nrc192YWwoZGF0YS0+ZGVidWdmc19mZCwKKwkJCQkJCSAgICAgJm51 bV9zdV9ibG9ja3MpOworCQlpZiAociAmJiBudW1fc3VfYmxvY2tzID09IGV4cGVjdGVkX251bV9z dV9ibG9ja3MpIHsKKwkJCWRhdGEtPnJ1biA9IGZhbHNlOworCQkJZGF0YS0+c3VjZXNzID0gdHJ1 ZTsKKwkJCWJyZWFrOworCQl9CisKKwkJdXNsZWVwKDEpOworCX0KKworCXJldHVybiBOVUxMOwor fQorCitzdGF0aWMgdm9pZCBwcmVwYXJlKGRhdGFfdCAqZGF0YSkKK3sKKwlzdHJ1Y3QgaXRpbWVy c3BlYyBpbnRlcnZhbDsKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKwlpbnQgcjsKKworCS8qIGFs bCBncmVlbiBmcmFtZSAqLworCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLAorCQkJ ICAgIGRhdGEtPm1vZGUtPmhkaXNwbGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxheSwKKwkJCSAgICBE Uk1fRk9STUFUX1hSR0I4ODg4LAorCQkJICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCisJ CQkgICAgMC4wLCAxLjAsIDAuMCwKKwkJCSAgICAmZGF0YS0+ZmJbMF0pOworCisJaWYgKGRhdGEt Pm9wID09IFBBR0VfRkxJUCkgeworCQljYWlyb190ICpjcjsKKworCQlpZ3RfY3JlYXRlX2NvbG9y X2ZiKGRhdGEtPmRybV9mZCwKKwkJCQkgICAgZGF0YS0+bW9kZS0+aGRpc3BsYXksIGRhdGEtPm1v ZGUtPnZkaXNwbGF5LAorCQkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAorCQkJCSAgICBMT0NB TF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJCSAgICAwLjAsIDEuMCwgMC4wLAorCQkJCSAgICAm ZGF0YS0+ZmJbMV0pOworCisJCWNyID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAm ZGF0YS0+ZmJbMV0pOworCQkvKiBhIHdoaXRlIHNxdWFyZSAqLworCQlpZ3RfcGFpbnRfY29sb3Jf YWxwaGEoY3IsIDAsIDAsIFNRVUFSRV9TSVpFLCBTUVVBUkVfU0laRSwKKwkJCQkgICAgICAxLjAs IDEuMCwgMS4wLCAxLjApOworCQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICAmZGF0 YS0+ZmJbMV0sIGNyKTsKKwl9CisKKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlw ZShkYXRhLT5vdXRwdXQsCisJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwlpZ3Rf cGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCisJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRh LT5kaXNwbGF5KTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYlswXSk7CisJ aWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKworCWlndF9hc3NlcnQocHNyMl93 YWl0X2RlZXBfc2xlZXAoZGF0YS0+ZGVidWdmc19mZCkpOworCisJZGF0YS0+cnVuID0gdHJ1ZTsK KwlkYXRhLT5zdWNlc3MgPSBmYWxzZTsKKwlkYXRhLT5jaGFuZ2VzID0gMDsKKworCXIgPSBwdGhy ZWFkX2NyZWF0ZSgmZGF0YS0+dGhyZWFkX2lkLCBOVUxMLCBkZWJ1Z2ZzX3RocmVhZCwgZGF0YSk7 CisJaWYgKHIpCisJCWlndF93YXJuKCJFcnJvciBzdGFydGluZyB0aHJlYWQ6ICVpXG4iLCByKTsK KworCWludGVydmFsLml0X3ZhbHVlLnR2X25zZWMgPSAwOworCWludGVydmFsLml0X3ZhbHVlLnR2 X3NlYyA9IDM7CisJaW50ZXJ2YWwuaXRfaW50ZXJ2YWwudHZfbnNlYyA9IGludGVydmFsLml0X3Zh bHVlLnR2X25zZWM7CisJaW50ZXJ2YWwuaXRfaW50ZXJ2YWwudHZfc2VjID0gaW50ZXJ2YWwuaXRf dmFsdWUudHZfc2VjOworCXIgPSB0aW1lcmZkX3NldHRpbWUoZGF0YS0+ZmFpbF90aW1lcmZkLCAw LCAmaW50ZXJ2YWwsIE5VTEwpOworCWlndF9yZXF1aXJlX2YociAhPSAtMSwgIkVycm9yIHNldHRp bmcgdGltZXJmZFxuIik7Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZV9zY3JlZW4oZGF0YV90ICpk YXRhKQoreworCWRhdGEtPmNoYW5nZXMrKzsKKworCXN3aXRjaCAoZGF0YS0+b3ApIHsKKwljYXNl IFBBR0VfRkxJUDogeworCQlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKworCQlwcmltYXJ5ID0gaWd0 X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCQkgICAgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSk7CisKKwkJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJb ZGF0YS0+Y2hhbmdlcyAmIDFdKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5 KTsKKwkJYnJlYWs7CisJfQorCWNhc2UgRlJPTlRCVUZGRVI6IHsKKwkJZHJtTW9kZUNsaXAgY2xp cDsKKwkJY2Fpcm9fdCAqY3I7CisJCWludCByOworCisJCWNsaXAueDEgPSBjbGlwLnkxID0gMDsK KwkJY2xpcC54MiA9IGNsaXAueTIgPSBTUVVBUkVfU0laRTsKKworCQljciA9IGlndF9nZXRfY2Fp cm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzBdKTsKKworCQlpZiAoZGF0YS0+Y2hhbmdl cyAmIDEpIHsKKwkJCS8qIGdvIGJhY2sgdG8gYWxsIGdyZWVuIGZyYW1lIHdpdGggd2l0aCBzcXVh cmUgKi8KKwkJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUsCisJ CQkJCSAgICAgIFNRVUFSRV9TSVpFLCAxLjAsIDEuMCwgMS4wLCAxLjApOworCQl9IGVsc2Ugewor CQkJLyogZ28gYmFjayB0byBhbGwgZ3JlZW4gZnJhbWUgKi8KKwkJCWlndF9wYWludF9jb2xvcl9h bHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUsCisJCQkJCSAgICAgIFNRVUFSRV9TSVpFLCAwLCAx LjAsIDAsIDEuMCk7CisJCX0KKworCQlyID0gZHJtTW9kZURpcnR5RkIoZGF0YS0+ZHJtX2ZkLCBk YXRhLT5mYlswXS5mYl9pZCwgJmNsaXAsIDEpOworCQlpZ3RfYXNzZXJ0KHIgPT0gMCB8fCByID09 IC1FTk9TWVMpOworCQlicmVhazsKKwl9CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2VydF9mKGRhdGEt Pm9wLCAiT3BlcmF0aW9uIG5vdCBoYW5kbGVkXG4iKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHJ1 bihkYXRhX3QgKmRhdGEpCit7CisJd2hpbGUgKGRhdGEtPnJ1bikgeworCQl1aW50NjRfdCBleHA7 CisJCWludCByOworCisJCXIgPSBwb2xsKGRhdGEtPnBvbGxmZHMsCisJCQkgc2l6ZW9mKGRhdGEt PnBvbGxmZHMpIC8gc2l6ZW9mKGRhdGEtPnBvbGxmZHNbMF0pLCAtMSk7CisJCWlmIChyIDwgMCkK KwkJCWJyZWFrOworCisJCS8qIGZsaXBfdGltZXJmZCB0aW1lb3V0ICovCisJCWlmIChkYXRhLT5w b2xsZmRzWzBdLnJldmVudHMgJiBQT0xMSU4pIHsKKwkJCXIgPSByZWFkKGRhdGEtPnBvbGxmZHNb MF0uZmQsICZleHAsIHNpemVvZihleHApKTsKKworCQkJaWYgKHIgIT0gc2l6ZW9mKHVpbnQ2NF90 KSkgeworCQkJCWlndF93YXJuKCJyZWFkIGEgbm90IGV4cGVjdGVkIG51bWJlciBvZiBieXRlcyBm cm9tIGZsaXBfdGltZXJmZDogJWlcbiIsIHIpOworCQkJfSBlbHNlIGlmIChleHApCisJCQkJdXBk YXRlX3NjcmVlbihkYXRhKTsKKwkJfQorCisJCS8qIGZhaWxfdGltZXJmZCB0aW1lb3V0ICovCisJ CWlmIChkYXRhLT5wb2xsZmRzWzFdLnJldmVudHMgJiBQT0xMSU4pIHsKKwkJCXIgPSByZWFkKGRh dGEtPnBvbGxmZHNbMV0uZmQsICZleHAsIHNpemVvZihleHApKTsKKworCQkJaWYgKHIgIT0gc2l6 ZW9mKHVpbnQ2NF90KSkgeworCQkJCWlndF93YXJuKCJyZWFkIGEgbm90IGV4cGVjdGVkIG51bWJl ciBvZiBieXRlcyBmcm9tIGZhaWxfdGltZXJmZDogJWlcbiIsIHIpOworCQkJfSBlbHNlIGlmIChl eHApCisJCQkJYnJlYWs7CisJCX0KKwl9CisKKwlkYXRhLT5ydW4gPSBmYWxzZTsKKwlwdGhyZWFk X2pvaW4oZGF0YS0+dGhyZWFkX2lkLCBOVUxMKTsKKworCWlndF9kZWJ1ZygiQ2hhbmdlczogJXVc biIsIGRhdGEtPmNoYW5nZXMpOworCWlndF9hc3NlcnQoZGF0YS0+c3VjZXNzKTsKK30KKworc3Rh dGljIHZvaWQgY2xlYW51cChkYXRhX3QgKmRhdGEpCit7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7 CisKKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJ CQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1h cnksIE5VTEwpOworCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisKKwlpZ3Rf cmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzBdKTsKKwlpZiAoZGF0YS0+b3AgPT0g UEFHRV9GTElQKQorCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsK K30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlkYXRhX3QgZGF0YSA9 IHt9OworCWVudW0gb3BlcmF0aW9ucyBvcDsKKworCWlndF9zdWJ0ZXN0X2luaXRfcGFyc2Vfb3B0 cygmYXJnYywgYXJndiwgIiIsIE5VTEwsCisJCQkJICAgIE5VTEwsIE5VTEwsIE5VTEwpOworCWln dF9za2lwX29uX3NpbXVsYXRpb24oKTsKKworCWlndF9maXh0dXJlIHsKKwkJc3RydWN0IGl0aW1l cnNwZWMgaW50ZXJ2YWw7CisJCWludCByOworCisJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJp dmVyX21hc3RlcihEUklWRVJfSU5URUwpOworCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdm c19kaXIoZGF0YS5kcm1fZmQpOworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisJ CWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKKworCQlpZ3Rf cmVxdWlyZV9mKHBzcjJfc2lua19zdXBwb3J0KGRhdGEuZGVidWdmc19mZCksCisJCQkgICAgICAi U2luayBkb2VzIG5vdCBzdXBwb3J0IFBTUjJcbiIpOworCisJCWRhdGEuYnVmbWdyID0gZHJtX2lu dGVsX2J1Zm1ncl9nZW1faW5pdChkYXRhLmRybV9mZCwgNDA5Nik7CisJCWlndF9hc3NlcnQoZGF0 YS5idWZtZ3IpOworCQlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoZGF0YS5idWZt Z3IpOworCisJCWRpc3BsYXlfaW5pdCgmZGF0YSk7CisKKwkJaWd0X3JlcXVpcmUocHNyMl9lbmFi bGUoZGF0YS5kZWJ1Z2ZzX2ZkKSk7CisJCWlndF9yZXF1aXJlKHBzcjJfd2FpdF9kZWVwX3NsZWVw KGRhdGEuZGVidWdmc19mZCkpOworCisJCWRhdGEuZmxpcF90aW1lcmZkID0gdGltZXJmZF9jcmVh dGUoQ0xPQ0tfTU9OT1RPTklDLAorCQkJCQkJICAgVEZEX05PTkJMT0NLKTsKKwkJaWd0X3JlcXVp cmUoZGF0YS5mbGlwX3RpbWVyZmQgIT0gLTEpOworCQlpbnRlcnZhbC5pdF92YWx1ZS50dl9uc2Vj ID0gTlNFQ19QRVJfU0VDIC8gMTU7CisJCWludGVydmFsLml0X3ZhbHVlLnR2X3NlYyA9IDA7CisJ CWludGVydmFsLml0X2ludGVydmFsLnR2X25zZWMgPSBpbnRlcnZhbC5pdF92YWx1ZS50dl9uc2Vj OworCQlpbnRlcnZhbC5pdF9pbnRlcnZhbC50dl9zZWMgPSBpbnRlcnZhbC5pdF92YWx1ZS50dl9z ZWM7CisJCXIgPSB0aW1lcmZkX3NldHRpbWUoZGF0YS5mbGlwX3RpbWVyZmQsIDAsICZpbnRlcnZh bCwgTlVMTCk7CisJCWlndF9yZXF1aXJlX2YociAhPSAtMSwgIkVycm9yIHNldHRpbmcgdGltZXJm ZFxuIik7CisKKwkJZGF0YS5mYWlsX3RpbWVyZmQgPSB0aW1lcmZkX2NyZWF0ZShDTE9DS19NT05P VE9OSUMsCisJCQkJCQkgICBURkRfTk9OQkxPQ0spOworCQlpZ3RfcmVxdWlyZShkYXRhLmZhaWxf dGltZXJmZCAhPSAtMSk7CisKKwkJZGF0YS5wb2xsZmRzWzBdLmZkID0gZGF0YS5mbGlwX3RpbWVy ZmQ7CisJCWRhdGEucG9sbGZkc1swXS5ldmVudHMgPSBQT0xMSU47CisJCWRhdGEucG9sbGZkc1sw XS5yZXZlbnRzID0gMDsKKworCQlkYXRhLnBvbGxmZHNbMV0uZmQgPSBkYXRhLmZhaWxfdGltZXJm ZDsKKwkJZGF0YS5wb2xsZmRzWzFdLmV2ZW50cyA9IFBPTExJTjsKKwkJZGF0YS5wb2xsZmRzWzFd LnJldmVudHMgPSAwOworCX0KKworCWZvciAob3AgPSBQQUdFX0ZMSVA7IG9wIDwgTEFTVDsgb3Ar KykgeworCQlpZ3Rfc3VidGVzdF9mKCIlcyIsIG9wX3N0cihvcCkpIHsKKwkJCWRhdGEub3AgPSBv cDsKKwkJCXByZXBhcmUoJmRhdGEpOworCQkJcnVuKCZkYXRhKTsKKwkJCWNsZWFudXAoJmRhdGEp OworCQl9CisJfQorCisJaWd0X2ZpeHR1cmUgeworCQljbG9zZShkYXRhLmRlYnVnZnNfZmQpOwor CQlkcm1faW50ZWxfYnVmbWdyX2Rlc3Ryb3koZGF0YS5idWZtZ3IpOworCQlkaXNwbGF5X2Zpbmko JmRhdGEpOworCX0KKworCWlndF9leGl0KCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5i dWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IGI4YTZlNjFiLi5jNTU3MzMzYyAxMDA2NDQK LS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKQEAgLTQ5LDYg KzQ5LDcgQEAgdGVzdF9wcm9ncyA9IFsKIAkna21zX3BsYW5lX3NjYWxpbmcnLAogCSdrbXNfcHJv cGVydGllcycsCiAJJ2ttc19wc3InLAorCSdrbXNfcHNyMl9zdScsCiAJJ2ttc19wd3JpdGVfY3Jj JywKIAkna21zX3JtZmInLAogCSdrbXNfcm90YXRpb25fY3JjJywKLS0gCjIuMjAuMAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5n IGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==