From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id B4D176E667 for ; Sat, 26 Jan 2019 01:32:58 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Fri, 25 Jan 2019 17:32:55 -0800 Message-Id: <20190126013256.19255-3-jose.souza@intel.com> In-Reply-To: <20190126013256.19255-1-jose.souza@intel.com> References: <20190126013256.19255-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v5 3/4] 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 YnVnZnMgdW50aWwgdGhvc2UgdmFsdWVzIGFyZSBsb2FkZWQuCgpBbHNvIGZyb20gREVFUF9TTEVF UCBzdGF0ZSBIVyB3aWxsIG5vdCBkbyBhIHNlbGV0aXZlIHVwZGF0ZSwgYXMKbW9zdCBvZiB0aGUg bWVtb3J5L2NvbnRleHQgaXMgbG9zdCBpbiBkZWVwIHNsZWVwIHN0YXRlIGhhcmR3YXJlIHdpbGwK bmVlZCB0byBleGl0IFBTUiBtb2RlIHRoZW4gd2FpdCBhIGNvbmZpZ3VyZWQgbnVtYmVyIG9mIGZy YW1lcyB0bwphY3RpdmF0ZSBQU1IgYWdhaW4gdG8gdGhlbiBzdGFydCBkb2luZyBzZWxldGl2ZSB1 cGRhdGVzLCB0aGF0IGlzIHdoeQpqdXN0IG9uZSBzY3JlZW4gY2hhbmdlIGlzIG5vdCBlbm91Z2gg dG8gcGFzcyB0aGlzIHRlc3RzLgoKV2hlbiBhIHNlbGVjdGl2ZSB1cGRhdGUgaGFwcGVucyBhbmQg dGhlIHZhbHVlcyBhcmUgbG9hZGVkIGFuZCByZWFkCmZyb20gZGVidWdmcyBpdCBpcyBjb21wYXJl ZCB3aXRoIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiBzZWxldGl2ZQp1cGRhdGUgYmxvY2tzLCBpZiBt YXRjaGVzIHRoZSBwb2xsaW5nIGlzIHN0b3BwZWQgYW5kIHRoZSB0ZXN0IHBhc3NlZApvdGhlcndp c2UgaXQgd2lsbCB3YWl0IHVudGlsIGl0IHJlYWNocyBhIG1heGltdW0gbnVtYmVyIG8gc2NyZWVu CmNoYW5nZXMgdG8gZmFpbCB0aGUgdGVzdC4KCnYyOiBVc2luZyBuZXcgU1UgYmxvY2tzIGRlYnVn ZnMgb3V0cHV0Cgp2MzoKLSByZW1vdmVkIHRoZSB0aW1lcmZkIHRvIGZhaWwgdGhlIHRlc3QsIG5v dyBmYWlsaW5nIGJhc2VkIGluIGEKbWF4aW11bSBudW1iZXIgb2Ygc2NyZWVuIGNoYW5nZXMKLSBy ZW1vdmluZyB0aHJlYWQgdG8gcmVhZCBkZWJ1Z2ZzLCByZWFkIGZyb20gbWFpbiB0aHJlYWQgaXMg ZW5vdWdoCi0gaW1wcm92ZWQgY29tbWl0IG1lc3NhZ2UKCnY0OgotIGdldHRpbmcgY2Fpcm8gY29u dGV4dCBmb3IgZnJvbnRidWZmZXIgdGVzdCBpbiBwcmVwYXJlKCkKLSBkcm9wcG9pbmcgcG9sbCgp LCB1c2luZyBibG9ja2luZyB0aW1lcmZkIGluc3RlYWQKCnY1OgotIERvaW5nIGEgbW9kZXNldCBi ZWZvcmUgdHJ5aW5nIHRvIGVuYWJsZSBQU1IyCgpDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZp dmlAaW50ZWwuY29tPgpDYzogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlh bkBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uu c291emFAaW50ZWwuY29tPgotLS0KIGxpYi9pZ3RfcHNyLmMgICAgICAgICAgfCAgMjkgKysrKwog bGliL2lndF9wc3IuaCAgICAgICAgICB8ICAgMSArCiB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwg ICAxICsKIHRlc3RzL2ttc19wc3IyX3N1LmMgICAgfCAyOTggKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwogNSBm aWxlcyBjaGFuZ2VkLCAzMzAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3Rz L2ttc19wc3IyX3N1LmMKCmRpZmYgLS1naXQgYS9saWIvaWd0X3Bzci5jIGIvbGliL2lndF9wc3Iu YwppbmRleCA1OTFiMjAxMy4uMDE1Y2I0YTQgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfcHNyLmMKKysr IGIvbGliL2lndF9wc3IuYwpAQCAtMjA4LDMgKzIwOCwzMiBAQCBib29sIHBzcl9kaXNhYmxlZF9y ZWFzb25fZ2V0KGludCBkZWJ1Z2ZzX2ZkLCBjaGFyICpyZWFzb24sIGludCBsZW4pCiAKIAlyZXR1 cm4gdHJ1ZTsKIH0KKworI2RlZmluZSBQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVAgIlBTUjIgU1Ug YmxvY2tzOlxuMFx0IgorCitzdGF0aWMgYm9vbAorcHNyMl9yZWFkX2xhc3RfbnVtX3N1X2Jsb2Nr c192YWwoaW50IGRlYnVnZnNfZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKQoreworCWNoYXIg YnVmW1BTUl9TVEFUVVNfTUFYX0xFTl07CisJY2hhciAqc3RyOworCWludCByZXQ7CisKKwlyZXQg PSBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkZWJ1Z2ZzX2ZkLCAiaTkxNV9lZHBfcHNyX3N0YXR1 cyIsIGJ1ZiwKKwkJCQkgICAgICBzaXplb2YoYnVmKSk7CisJaWYgKHJldCA8IDApCisJCXJldHVy biBmYWxzZTsKKworCXN0ciA9IHN0cnN0cihidWYsIFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCk7 CisJaWYgKCFzdHIpCisJCXJldHVybiBmYWxzZTsKKworCXN0ciA9ICZzdHJbc3RybGVuKFBTUjJf U1VfQkxPQ0tfU1RSX0xPT0tVUCldOworCSpudW1fc3VfYmxvY2tzID0gKHVpbnQxNl90KXN0cnRv bChzdHIsIE5VTEwsIDEwKTsKKworCXJldHVybiB0cnVlOworfQorCitib29sIHBzcjJfd2FpdF9z dShpbnQgZGVidWdmc19mZCwgdWludDE2X3QgKm51bV9zdV9ibG9ja3MpCit7CisJcmV0dXJuIGln dF93YWl0KHBzcjJfcmVhZF9sYXN0X251bV9zdV9ibG9ja3NfdmFsKGRlYnVnZnNfZmQsIG51bV9z dV9ibG9ja3MpLCA0MCwgMSk7Cit9CmRpZmYgLS1naXQgYS9saWIvaWd0X3Bzci5oIGIvbGliL2ln dF9wc3IuaAppbmRleCA0NjU4MzlkMi4uYjFlODRlMzkgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfcHNy LmgKKysrIGIvbGliL2lndF9wc3IuaApAQCAtNDEsNSArNDEsNiBAQCBib29sIHBzcl9lbmFibGUo aW50IGRlYnVnZnNfZmQsIGVudW0gcHNyX21vZGUpOwogYm9vbCBwc3JfZGlzYWJsZShpbnQgZGVi dWdmc19mZCk7CiBib29sIHBzcl9zaW5rX3N1cHBvcnQoaW50IGRlYnVnZnNfZmQsIGVudW0gcHNy X21vZGUpOwogYm9vbCBwc3JfZGlzYWJsZWRfcmVhc29uX2dldChpbnQgZGVidWdmc19mZCwgY2hh ciAqcmVhc29uLCBpbnQgbGVuKTsKK2Jvb2wgcHNyMl93YWl0X3N1KGludCBkZWJ1Z2ZzX2ZkLCB1 aW50MTZfdCAqbnVtX3N1X2Jsb2Nrcyk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvdGVzdHMvTWFr ZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKaW5kZXggNTE5ZWFjNzkuLjkx NzRhZWNjIDEwMDY0NAotLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCisrKyBiL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKQEAgLTgwLDYgKzgwLDcgQEAgVEVTVFNfcHJvZ3MgPSBcCiAJa21zX3Bs YW5lX3NjYWxpbmcgXAogCWttc19wcm9wZXJ0aWVzIFwKIAlrbXNfcHNyIFwKKwlrbXNfcHNyMl9z dSBcCiAJa21zX3B3cml0ZV9jcmMgXAogCWttc19ybWZiIFwKIAlrbXNfcm90YXRpb25fY3JjIFwK ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19wc3IyX3N1LmMgYi90ZXN0cy9rbXNfcHNyMl9zdS5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5iMGFiYjA0OAotLS0gL2Rldi9udWxs CisrKyBiL3Rlc3RzL2ttc19wc3IyX3N1LmMKQEAgLTAsMCArMSwyOTggQEAKKy8qCisgKiBDb3B5 cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisg KiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxl cyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCBy ZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0 byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vu c2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywg c3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1 YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICogVEhFIFNPRlRX QVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVY UFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdB UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCisgKiBUSEUg QVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFN QUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBD T05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MK KyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2luY2x1ZGUgImlndC5oIgorI2luY2x1 ZGUgImlndF9zeXNmcy5oIgorI2luY2x1ZGUgImlndF9wc3IuaCIKKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0 cmluZy5oPgorI2luY2x1ZGUgPHN5cy90aW1lcmZkLmg+CisjaW5jbHVkZSAiaW50ZWxfYnVmbWdy LmgiCisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IFBTUjIgc2VsZWN0aXZlIHVwZGF0ZSIp OworCisjZGVmaW5lIFNRVUFSRV9TSVpFIDEwMAorLyogZWFjaCBzZWxlY3RpdmUgdXBkYXRlIGJs b2NrIGlzIDQgbGluZXMgdGFsbCAqLworI2RlZmluZSBFWFBFQ1RFRF9OVU1fU1VfQkxPQ0tTICgo U1FVQVJFX1NJWkUgLyA0KSArIChTUVVBUkVfU0laRSAlIDQgPyAxIDogMCkpCisKKy8qCisgKiBN aW5pbXVtIGlzIDE1IGFzIHRoZSBudW1iZXIgb2YgZnJhbWVzIHRvIGFjdGl2ZSBQU1IyIGNvdWxk IGJlIGNvbmZpZ3VyZWQKKyAqIHRvIDE1IGZyYW1lcyBwbHVzIGEgZmV3IG1vcmUgaW4gY2FzZSB3 ZSBtaXNzIGEgc2VsZWN0aXZlIHVwZGF0ZSBiZXR3ZWVuCisgKiBkZWJ1Z2ZzIHJlYWRzLgorICov CisjZGVmaW5lIE1BWF9TQ1JFRU5fQ0hBTkdFUyAyMAorCitlbnVtIG9wZXJhdGlvbnMgeworCVBB R0VfRkxJUCwKKwlGUk9OVEJVRkZFUiwKKwlMQVNUCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq b3Bfc3RyKGVudW0gb3BlcmF0aW9ucyBvcCkKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IG5hbWVbXSA9IHsKKwkJW1BBR0VfRkxJUF0gPSAicGFnZV9mbGlwIiwKKwkJW0ZST05UQlVGRkVS XSA9ICJmcm9udGJ1ZmZlciIKKwl9OworCisJcmV0dXJuIG5hbWVbb3BdOworfQorCit0eXBlZGVm IHN0cnVjdCB7CisJaW50IGRybV9mZDsKKwlpbnQgZGVidWdmc19mZDsKKwlpZ3RfZGlzcGxheV90 IGRpc3BsYXk7CisJZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyOworCWRybU1vZGVNb2RlSW5mbyAq bW9kZTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlzdHJ1Y3QgaWd0X2ZiIGZiWzJdOworCWVu dW0gb3BlcmF0aW9ucyBvcDsKKwljYWlyb190ICpjcjsKKwlpbnQgY2hhbmdlX3NjcmVlbl90aW1l cmZkOworCXVpbnQzMl90IHNjcmVlbl9jaGFuZ2VzOworfSBkYXRhX3Q7CisKK3N0YXRpYyB2b2lk IHNldHVwX291dHB1dChkYXRhX3QgKmRhdGEpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9 ICZkYXRhLT5kaXNwbGF5OworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWVudW0gcGlwZSBwaXBl OworCisJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRw dXQpIHsKKwkJZHJtTW9kZUNvbm5lY3RvclB0ciBjID0gb3V0cHV0LT5jb25maWcuY29ubmVjdG9y OworCisJCWlmIChjLT5jb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQor CQkJY29udGludWU7CisKKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOworCQlk YXRhLT5vdXRwdXQgPSBvdXRwdXQ7CisJCWRhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2Rl KG91dHB1dCk7CisKKwkJcmV0dXJuOworCX0KK30KKworc3RhdGljIHZvaWQgZGlzcGxheV9pbml0 KGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV9yZXF1aXJlKCZkYXRhLT5kaXNwbGF5LCBk YXRhLT5kcm1fZmQpOworCXNldHVwX291dHB1dChkYXRhKTsKK30KKworc3RhdGljIHZvaWQgZGlz cGxheV9maW5pKGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLT5kaXNw bGF5KTsKK30KKworc3RhdGljIHZvaWQgcHJlcGFyZShkYXRhX3QgKmRhdGEpCit7CisJaWd0X3Bs YW5lX3QgKnByaW1hcnk7CisKKwkvKiBhbGwgZ3JlZW4gZnJhbWUgKi8KKwlpZ3RfY3JlYXRlX2Nv bG9yX2ZiKGRhdGEtPmRybV9mZCwKKwkJCSAgICBkYXRhLT5tb2RlLT5oZGlzcGxheSwgZGF0YS0+ bW9kZS0+dmRpc3BsYXksCisJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJCSAgICBMT0NB TF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJICAgIDAuMCwgMS4wLCAwLjAsCisJCQkgICAgJmRh dGEtPmZiWzBdKTsKKworCWlmIChkYXRhLT5vcCA9PSBQQUdFX0ZMSVApIHsKKwkJY2Fpcm9fdCAq Y3I7CisKKwkJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsCisJCQkJICAgIGRhdGEt Pm1vZGUtPmhkaXNwbGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxheSwKKwkJCQkgICAgRFJNX0ZPUk1B VF9YUkdCODg4OCwKKwkJCQkgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKKwkJCQkgICAg MC4wLCAxLjAsIDAuMCwKKwkJCQkgICAgJmRhdGEtPmZiWzFdKTsKKworCQljciA9IGlndF9nZXRf Y2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsKKwkJLyogcGFpbnQgYSB3aGl0 ZSBzcXVhcmUgKi8KKwkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGNyLCAwLCAwLCBTUVVBUkVfU0la RSwgU1FVQVJFX1NJWkUsCisJCQkJICAgICAgMS4wLCAxLjAsIDEuMCwgMS4wKTsKKwkJaWd0X3B1 dF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAgJmRhdGEtPmZiWzFdLCBjcik7CisJfSBlbHNlIGlm IChkYXRhLT5vcCA9PSBGUk9OVEJVRkZFUikgeworCQlkYXRhLT5jciA9IGlndF9nZXRfY2Fpcm9f Y3R4KGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzBdKTsKKwl9CisKKwlwcmltYXJ5ID0gaWd0X291 dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCSAgICBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCisJaWd0X2Rp c3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnks ICZkYXRhLT5mYlswXSk7CisJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKwor CWlndF9hc3NlcnQocHNyX3dhaXRfZW50cnkoZGF0YS0+ZGVidWdmc19mZCwgUFNSX01PREVfMikp OworCisJZGF0YS0+c2NyZWVuX2NoYW5nZXMgPSAwOworfQorCitzdGF0aWMgYm9vbCB1cGRhdGVf c2NyZWVuX2FuZF90ZXN0KGRhdGFfdCAqZGF0YSkKK3sKKwl1aW50MTZfdCBzdV9ibG9ja3M7CisJ Ym9vbCByZXQgPSBmYWxzZTsKKworCWRhdGEtPnNjcmVlbl9jaGFuZ2VzKys7CisKKwlzd2l0Y2gg KGRhdGEtPm9wKSB7CisJY2FzZSBQQUdFX0ZMSVA6IHsKKwkJaWd0X3BsYW5lX3QgKnByaW1hcnk7 CisKKwkJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAor CQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOworCisJCWlndF9wbGFuZV9zZXRfZmIo cHJpbWFyeSwgJmRhdGEtPmZiW2RhdGEtPnNjcmVlbl9jaGFuZ2VzICYgMV0pOworCQlpZ3RfZGlz cGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOworCQlicmVhazsKKwl9CisJY2FzZSBGUk9OVEJV RkZFUjogeworCQlkcm1Nb2RlQ2xpcCBjbGlwOworCQlpbnQgcjsKKworCQljbGlwLngxID0gY2xp cC55MSA9IDA7CisJCWNsaXAueDIgPSBjbGlwLnkyID0gU1FVQVJFX1NJWkU7CisKKwkJaWYgKGRh dGEtPnNjcmVlbl9jaGFuZ2VzICYgMSkgeworCQkJLyogZ28gYmFjayB0byBhbGwgZ3JlZW4gZnJh bWUgd2l0aCB3aXRoIHNxdWFyZSAqLworCQkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGRhdGEtPmNy LCAwLCAwLCBTUVVBUkVfU0laRSwKKwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDEuMCwgMS4wLCAx LjAsIDEuMCk7CisJCX0gZWxzZSB7CisJCQkvKiBnbyBiYWNrIHRvIGFsbCBncmVlbiBmcmFtZSAq LworCQkJaWd0X3BhaW50X2NvbG9yX2FscGhhKGRhdGEtPmNyLCAwLCAwLCBTUVVBUkVfU0laRSwK KwkJCQkJICAgICAgU1FVQVJFX1NJWkUsIDAsIDEuMCwgMCwgMS4wKTsKKwkJfQorCisJCXIgPSBk cm1Nb2RlRGlydHlGQihkYXRhLT5kcm1fZmQsIGRhdGEtPmZiWzBdLmZiX2lkLCAmY2xpcCwgMSk7 CisJCWlndF9hc3NlcnQociA9PSAwIHx8IHIgPT0gLUVOT1NZUyk7CisJCWJyZWFrOworCX0KKwlk ZWZhdWx0OgorCQlpZ3RfYXNzZXJ0X2YoZGF0YS0+b3AsICJPcGVyYXRpb24gbm90IGhhbmRsZWRc biIpOworCX0KKworCWlmIChwc3IyX3dhaXRfc3UoZGF0YS0+ZGVidWdmc19mZCwgJnN1X2Jsb2Nr cykpCisJCXJldCA9IHN1X2Jsb2NrcyA9PSBFWFBFQ1RFRF9OVU1fU1VfQkxPQ0tTOworCisJcmV0 dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgcnVuKGRhdGFfdCAqZGF0YSkKK3sKKwlib29sIHJl c3VsdCA9IGZhbHNlOworCisJd2hpbGUgKGRhdGEtPnNjcmVlbl9jaGFuZ2VzIDwgTUFYX1NDUkVF Tl9DSEFOR0VTICYmICFyZXN1bHQpIHsKKwkJdWludDY0X3QgZXhwOworCQlpbnQgcjsKKworCQly ID0gcmVhZChkYXRhLT5jaGFuZ2Vfc2NyZWVuX3RpbWVyZmQsICZleHAsIHNpemVvZihleHApKTsK KwkJaWYgKHIgPT0gc2l6ZW9mKHVpbnQ2NF90KSAmJiBleHApCisJCQlyZXN1bHQgPSB1cGRhdGVf c2NyZWVuX2FuZF90ZXN0KGRhdGEpOworCX0KKworCWlndF9kZWJ1ZygiU2NyZWVuIGNoYW5nZXM6 ICV1XG4iLCBkYXRhLT5zY3JlZW5fY2hhbmdlcyk7CisJaWd0X2Fzc2VydF9mKHJlc3VsdCwKKwkJ ICAgICAiTm8gbWF0Y2hpbmcgc2VsZWN0aXZlIHVwZGF0ZSBibG9ja3MgcmVhZCBmcm9tIGRlYnVn ZnNcbiIpOworfQorCitzdGF0aWMgdm9pZCBjbGVhbnVwKGRhdGFfdCAqZGF0YSkKK3sKKwlpZ3Rf cGxhbmVfdCAqcHJpbWFyeTsKKworCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBl KGRhdGEtPm91dHB1dCwKKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOworCWlndF9w bGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7CisJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5k aXNwbGF5KTsKKworCWlmIChkYXRhLT5vcCA9PSBQQUdFX0ZMSVApCisJCWlndF9yZW1vdmVfZmIo ZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMV0pOworCWVsc2UgaWYgKGRhdGEtPm9wID09IEZST05U QlVGRkVSKQorCQlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSwg ZGF0YS0+Y3IpOworCisJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSk7 Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJZGF0YV90IGRhdGEg PSB7fTsKKworCWlndF9zdWJ0ZXN0X2luaXRfcGFyc2Vfb3B0cygmYXJnYywgYXJndiwgIiIsIE5V TEwsCisJCQkJICAgIE5VTEwsIE5VTEwsIE5VTEwpOworCWlndF9za2lwX29uX3NpbXVsYXRpb24o KTsKKworCWlndF9maXh0dXJlIHsKKwkJc3RydWN0IGl0aW1lcnNwZWMgaW50ZXJ2YWw7CisJCWlu dCByOworCisJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5U RUwpOworCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwor CQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisKKwkJaWd0X3JlcXVpcmVfZihwc3Jf c2lua19zdXBwb3J0KGRhdGEuZGVidWdmc19mZCwgUFNSX01PREVfMiksCisJCQkgICAgICAiU2lu ayBkb2VzIG5vdCBzdXBwb3J0IFBTUjJcbiIpOworCisJCWRhdGEuYnVmbWdyID0gZHJtX2ludGVs X2J1Zm1ncl9nZW1faW5pdChkYXRhLmRybV9mZCwgNDA5Nik7CisJCWlndF9hc3NlcnQoZGF0YS5i dWZtZ3IpOworCQlkcm1faW50ZWxfYnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoZGF0YS5idWZtZ3Ip OworCisJCWRpc3BsYXlfaW5pdCgmZGF0YSk7CisKKwkJLyogVGVzdCBpZiBQU1IyIGNhbiBiZSBl bmFibGVkICovCisJCWlndF9yZXF1aXJlX2YocHNyX2VuYWJsZShkYXRhLmRlYnVnZnNfZmQsIFBT Ul9NT0RFXzIpLAorCQkJICAgICAgIlNpbmsgZG8gbm90IHN1cHBvcnQgUFNSMlxuIik7CisJCWRh dGEub3AgPSBGUk9OVEJVRkZFUjsKKwkJcHJlcGFyZSgmZGF0YSk7CisJCXIgPSBwc3Jfd2FpdF9l bnRyeShkYXRhLmRlYnVnZnNfZmQsIFBTUl9NT0RFXzIpOworCQljbGVhbnVwKCZkYXRhKTsKKwkJ aWd0X3JlcXVpcmVfZihyLCAiUFNSMiBjYW4gbm90IGJlIGVuYWJsZWRcbiIpOworCisJCS8qIGJs b2NraW5nIHRpbWVyZmQgKi8KKwkJZGF0YS5jaGFuZ2Vfc2NyZWVuX3RpbWVyZmQgPSB0aW1lcmZk X2NyZWF0ZShDTE9DS19NT05PVE9OSUMsIDApOworCQlpZ3RfcmVxdWlyZShkYXRhLmNoYW5nZV9z Y3JlZW5fdGltZXJmZCAhPSAtMSk7CisJCS8qIENoYW5naW5nIHNjcmVlbiBhdCAzMGh6IHRvIHN1 cHBvcnQgMzBoeiBwYW5lbHMgKi8KKwkJaW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYyA9IE5TRUNf UEVSX1NFQyAvIDMwOworCQlpbnRlcnZhbC5pdF92YWx1ZS50dl9zZWMgPSAwOworCQlpbnRlcnZh bC5pdF9pbnRlcnZhbC50dl9uc2VjID0gaW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYzsKKwkJaW50 ZXJ2YWwuaXRfaW50ZXJ2YWwudHZfc2VjID0gaW50ZXJ2YWwuaXRfdmFsdWUudHZfc2VjOworCQly ID0gdGltZXJmZF9zZXR0aW1lKGRhdGEuY2hhbmdlX3NjcmVlbl90aW1lcmZkLCAwLCAmaW50ZXJ2 YWwsIE5VTEwpOworCQlpZ3RfcmVxdWlyZV9mKHIgIT0gLTEsICJFcnJvciBzZXR0aW5nIHRpbWVy ZmRcbiIpOworCX0KKworCWZvciAoZGF0YS5vcCA9IFBBR0VfRkxJUDsgZGF0YS5vcCA8IExBU1Q7 IGRhdGEub3ArKykgeworCQlpZ3Rfc3VidGVzdF9mKCIlcyIsIG9wX3N0cihkYXRhLm9wKSkgewor CQkJcHJlcGFyZSgmZGF0YSk7CisJCQlydW4oJmRhdGEpOworCQkJY2xlYW51cCgmZGF0YSk7CisJ CX0KKwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCWNsb3NlKGRhdGEuZGVidWdmc19mZCk7CisJCWRy bV9pbnRlbF9idWZtZ3JfZGVzdHJveShkYXRhLmJ1Zm1ncik7CisJCWRpc3BsYXlfZmluaSgmZGF0 YSk7CisJfQorCisJaWd0X2V4aXQoKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxk IGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggZTE0YWIyYjQuLjY4MmNhOTM5IDEwMDY0NAotLS0g YS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5idWlsZApAQCAtNTAsNiArNTAs NyBAQCB0ZXN0X3Byb2dzID0gWwogCSdrbXNfcGxhbmVfc2NhbGluZycsCiAJJ2ttc19wcm9wZXJ0 aWVzJywKIAkna21zX3BzcicsCisJJ2ttc19wc3IyX3N1JywKIAkna21zX3B3cml0ZV9jcmMnLAog CSdrbXNfcm1mYicsCiAJJ2ttc19yb3RhdGlvbl9jcmMnLAotLSAKMi4yMC4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlz dAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK