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 E59CC6E25C for ; Tue, 4 Dec 2018 23:09:50 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Tue, 4 Dec 2018 15:09:44 -0800 Message-Id: <20181204230944.7753-8-jose.souza@intel.com> In-Reply-To: <20181204230944.7753-1-jose.souza@intel.com> References: <20181204230944.7753-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 8/8] 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 IGZhaWxfdGltZXJmZCB0byBleHBpcmUgdG8gZmFpbCB0aGUgdGVzdC4KCkNjOiBSb2RyaWdvIFZp dmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+CkNjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGlu YWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBk ZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9wc3IuYyAgICAgICAg ICB8ICAyMiArKysKIGxpYi9pZ3RfcHNyLmggICAgICAgICAgfCAgIDEgKwogdGVzdHMvTWFrZWZp bGUuc291cmNlcyB8ICAgMSArCiB0ZXN0cy9rbXNfcHNyMl9zdS5jICAgIHwgMzYzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAg IHwgICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgMzg4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0cy9rbXNfcHNyMl9zdS5jCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9wc3IuYyBi L2xpYi9pZ3RfcHNyLmMKaW5kZXggNjIzMmE3N2YuLjdlZDIxNTljIDEwMDY0NAotLS0gYS9saWIv aWd0X3Bzci5jCisrKyBiL2xpYi9pZ3RfcHNyLmMKQEAgLTI3LDYgKzI3LDggQEAKIAogI2RlZmlu ZSBQU1JfU1RBVFVTX01BWF9MRU4gMTAyNAogCisjZGVmaW5lIEVEUF9QU1IyX1NVX1NUQVRVU19O VU1fU1VfQkxPQ0tTX0lOX0ZSQU1FX01BU0soaSkgKDB4M0ZGIDw8ICgoaSkgKiAxMCkpCisKIHN0 YXRpYyBib29sIHBzcl9hY3RpdmUoaW50IGRlYnVnZnNfZmQsIGJvb2wgY2hlY2tfYWN0aXZlKQog ewogCWJvb2wgYWN0aXZlOwpAQCAtMjQzLDMgKzI0NSwyMyBAQCBib29sIHBzcjJfd2FpdF91cGRh dGUoaW50IGRlYnVnZnNfZmQpCiB7CiAJcmV0dXJuIGlndF93YWl0KHBzcjJfc3RhdHVzX3VwZGF0 ZShkZWJ1Z2ZzX2ZkKSwgNDAsIDEwKTsKIH0KKworYm9vbCBwc3IyX3JlYWRfbGFzdF9udW1fc3Vf YmxvY2tzX3ZhbChpbnQgZGVidWdmc19mZCwgdWludDE2X3QgKm51bV9zdV9ibG9ja3MpCit7CisJ Y2hhciBidWZbUFNSX1NUQVRVU19NQVhfTEVOXTsKKwljaGFyICpzdHI7CisJdWludDMyX3QgdmFs OworCisJaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGVidWdmc19mZCwgImk5MTVfZWRwX3Bzcl9z dGF0dXMiLCBidWYsCisJCQkgICAgICAgIHNpemVvZihidWYpKTsKKwlzdHIgPSBzdHJzdHIoYnVm LCAiUFNSMiBTVSBzdGF0dXM6IDB4Iik7CisJaWYgKCFzdHIpCisJCXJldHVybiBmYWxzZTsKKwor CXN0ciA9ICZzdHJbc3RybGVuKCJQU1IyIFNVIHN0YXR1czogMHgiKV07CisJc3RyWzhdID0gMDsK Kwl2YWwgPSAodWludDMyX3Qpc3RydG9sKHN0ciwgTlVMTCwgMTYpOworCSpudW1fc3VfYmxvY2tz ID0gdmFsICYgRURQX1BTUjJfU1VfU1RBVFVTX05VTV9TVV9CTE9DS1NfSU5fRlJBTUVfTUFTSygw KTsKKworCXJldHVybiB0cnVlOworfQpkaWZmIC0tZ2l0IGEvbGliL2lndF9wc3IuaCBiL2xpYi9p Z3RfcHNyLmgKaW5kZXggY2FiZTg2ODcuLjYwYjYzNWRlIDEwMDY0NAotLS0gYS9saWIvaWd0X3Bz ci5oCisrKyBiL2xpYi9pZ3RfcHNyLmgKQEAgLTQwLDUgKzQwLDYgQEAgYm9vbCBwc3IyX3dhaXRf ZGlzYWJsZShpbnQgZGVidWdmc19mZCk7CiBib29sIHBzcjJfZW5hYmxlKGludCBkZWJ1Z2ZzX2Zk KTsKIGJvb2wgcHNyMl9kaXNhYmxlKGludCBkZWJ1Z2ZzX2ZkKTsKIGJvb2wgcHNyMl9zdXBwb3J0 ZWQoaW50IGRlYnVnZnNfZmQpOworYm9vbCBwc3IyX3JlYWRfbGFzdF9udW1fc3VfYmxvY2tzX3Zh bChpbnQgZGVidWdmc19mZCwgdWludDE2X3QgKm51bV9zdV9ibG9ja3MpOwogCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz CmluZGV4IGVlZGRlMWU4Li4zYzc5ZWVjMCAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291 cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC03OCw2ICs3OCw3IEBAIFRFU1RT X3Byb2dzID0gXAogCWttc19wbGFuZV9zY2FsaW5nIFwKIAlrbXNfcHJvcGVydGllcyBcCiAJa21z X3BzciBcCisJa21zX3BzcjJfc3UgXAogCWttc19wd3JpdGVfY3JjIFwKIAlrbXNfcm1mYiBcCiAJ a21zX3JvdGF0aW9uX2NyYyBcCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcHNyMl9zdS5jIGIvdGVz dHMva21zX3BzcjJfc3UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMGUw OGIyOGUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfcHNyMl9zdS5jCkBAIC0wLDAgKzEs MzYzIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqCisg KiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBl cnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhl IFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRp b24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBk aXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0 d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgor ICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90 aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQg aW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJl LgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5P VCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBF VkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpbmNs dWRlICJpZ3QuaCIKKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKKyNpbmNsdWRlICJpZ3RfcHNyLmgi CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxwb2xsLmg+CisjaW5jbHVkZSA8cHRocmVh ZC5oPgorI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUg PHN0cmluZy5oPgorI2luY2x1ZGUgPHN5cy90aW1lcmZkLmg+CisjaW5jbHVkZSAiaW50ZWxfYnVm bWdyLmgiCisKK0lHVF9URVNUX0RFU0NSSVBUSU9OKCJUZXN0IFBTUjIgc2VsZWN0aXZlIHVwZGF0 ZSIpOworCisjZGVmaW5lIFNRVUFSRV9TSVpFIDEwMAorCitlbnVtIG9wZXJhdGlvbnMgeworCVBB R0VfRkxJUCwKKwlGUk9OVEJVRkZFUiwKKwlMQVNUCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq b3Bfc3RyKGVudW0gb3BlcmF0aW9ucyBvcCkKK3sKKwlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IG5hbWVbXSA9IHsKKwkJW1BBR0VfRkxJUF0gPSAicGFnZV9mbGlwIiwKKwkJW0ZST05UQlVGRkVS XSA9ICJmcm9udGJ1ZmZlciIKKwl9OworCisJcmV0dXJuIG5hbWVbb3BdOworfQorCit0eXBlZGVm IHN0cnVjdCB7CisJc3RydWN0IGlndF9mYiBmYlsyXTsKKwlzdHJ1Y3QgcG9sbGZkIHBvbGxmZHNb Ml07CisJcHRocmVhZF90IHRocmVhZF9pZDsKKwlpbnQgZHJtX2ZkOworCWludCBkZWJ1Z2ZzX2Zk OworCWludCBmbGlwX3RpbWVyZmQ7CisJaW50IGZhaWxfdGltZXJmZDsKKwl1aW50MzJfdCBjaGFu Z2VzOworCXZvbGF0aWxlIGJvb2wgcnVuOworCXZvbGF0aWxlIGJvb2wgc3VjZXNzOworCisJZW51 bSBvcGVyYXRpb25zIG9wOworCXVpbnQzMl90IGRldmlkOworCXVpbnQzMl90IGNydGNfaWQ7CisJ aWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsKKwlpbnQg bW9kX3NpemU7CisJaW50IG1vZF9zdHJpZGU7CisJZHJtTW9kZU1vZGVJbmZvICptb2RlOworCWln dF9vdXRwdXRfdCAqb3V0cHV0OworfSBkYXRhX3Q7CisKK3N0YXRpYyB2b2lkIHNldHVwX291dHB1 dChkYXRhX3QgKmRhdGEpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNw bGF5OworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWVudW0gcGlwZSBwaXBlOworCisJZm9yX2Vh Y2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKKwkJZHJt TW9kZUNvbm5lY3RvclB0ciBjID0gb3V0cHV0LT5jb25maWcuY29ubmVjdG9yOworCisJCWlmIChj LT5jb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKQorCQkJY29udGludWU7 CisKKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOworCQlkYXRhLT5jcnRjX2lk ID0gb3V0cHV0LT5jb25maWcuY3J0Yy0+Y3J0Y19pZDsKKwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0 OworCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJCXJldHVy bjsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGRpc3BsYXlfaW5pdChkYXRhX3QgKmRhdGEpCit7CisJ aWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS0+ZGlzcGxheSwgZGF0YS0+ZHJtX2ZkKTsKKwlzZXR1 cF9vdXRwdXQoZGF0YSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpc3BsYXlfZmluaShkYXRhX3QgKmRh dGEpCit7CisJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS0+ZGlzcGxheSk7Cit9CisKK3N0YXRpYyB2 b2lkICpkZWJ1Z2ZzX3RocmVhZCh2b2lkICpwdHIpCit7CisJZGF0YV90ICpkYXRhID0gcHRyOwor CXVpbnQxNl90IGV4cGVjdGVkX251bV9zdV9ibG9ja3M7CisKKwkvKiBlYWNoIHNlbGVjdGl2ZSB1 cGRhdGUgYmxvY2sgaXMgNCBsaW5lIHRhbGwgKi8KKwlleHBlY3RlZF9udW1fc3VfYmxvY2tzID0g U1FVQVJFX1NJWkUgLyA0OworCWV4cGVjdGVkX251bV9zdV9ibG9ja3MgKz0gU1FVQVJFX1NJWkUg JSA0ID8gMSA6IDA7CisKKwl3aGlsZSAoZGF0YS0+cnVuKSB7CisJCXVpbnQxNl90IG51bV9zdV9i bG9ja3M7CisJCWJvb2wgcjsKKworCQlyID0gcHNyMl9yZWFkX2xhc3RfbnVtX3N1X2Jsb2Nrc192 YWwoZGF0YS0+ZGVidWdmc19mZCwKKwkJCQkJCSAgICAgJm51bV9zdV9ibG9ja3MpOworCQlpZiAo ciAmJiBudW1fc3VfYmxvY2tzID09IGV4cGVjdGVkX251bV9zdV9ibG9ja3MpIHsKKwkJCWRhdGEt PnJ1biA9IGZhbHNlOworCQkJZGF0YS0+c3VjZXNzID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisK KwkJdXNsZWVwKDEpOworCX0KKworCXJldHVybiBOVUxMOworfQorCitzdGF0aWMgdm9pZCBwcmVw YXJlKGRhdGFfdCAqZGF0YSkKK3sKKwlzdHJ1Y3QgaXRpbWVyc3BlYyBpbnRlcnZhbDsKKwlpZ3Rf cGxhbmVfdCAqcHJpbWFyeTsKKwlpbnQgcjsKKworCS8qIGFsbCBncmVlbiBmcmFtZSAqLworCWln dF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLAorCQkJICAgIGRhdGEtPm1vZGUtPmhkaXNw bGF5LCBkYXRhLT5tb2RlLT52ZGlzcGxheSwKKwkJCSAgICBEUk1fRk9STUFUX1hSR0I4ODg4LAor CQkJICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCisJCQkgICAgMC4wLCAxLjAsIDAuMCwK KwkJCSAgICAmZGF0YS0+ZmJbMF0pOworCisJaWYgKGRhdGEtPm9wID09IFBBR0VfRkxJUCkgewor CQljYWlyb190ICpjcjsKKworCQlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwKKwkJ CQkgICAgZGF0YS0+bW9kZS0+aGRpc3BsYXksIGRhdGEtPm1vZGUtPnZkaXNwbGF5LAorCQkJCSAg ICBEUk1fRk9STUFUX1hSR0I4ODg4LAorCQkJCSAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05F LAorCQkJCSAgICAwLjAsIDEuMCwgMC4wLAorCQkJCSAgICAmZGF0YS0+ZmJbMV0pOworCisJCWNy ID0gaWd0X2dldF9jYWlyb19jdHgoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMV0pOworCQkvKiBh IHdoaXRlIHNxdWFyZSAqLworCQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIFNRVUFS RV9TSVpFLCBTUVVBUkVfU0laRSwKKwkJCQkgICAgICAxLjAsIDEuMCwgMS4wLCAxLjApOworCQlp Z3RfcHV0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICAmZGF0YS0+ZmJbMV0sIGNyKTsKKwl9CisK KwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJ CSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnks IE5VTEwpOworCisJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKwlpZ3RfcGxh bmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYlswXSk7CisJaWd0X2Rpc3BsYXlfY29tbWl0KCZk YXRhLT5kaXNwbGF5KTsKKworCWlndF9hc3NlcnQocHNyMl93YWl0X2RlZXBfc2xlZXAoZGF0YS0+ ZGVidWdmc19mZCkpOworCisJZGF0YS0+cnVuID0gdHJ1ZTsKKwlkYXRhLT5zdWNlc3MgPSBmYWxz ZTsKKwlkYXRhLT5jaGFuZ2VzID0gMDsKKworCXIgPSBwdGhyZWFkX2NyZWF0ZSgmZGF0YS0+dGhy ZWFkX2lkLCBOVUxMLCBkZWJ1Z2ZzX3RocmVhZCwgZGF0YSk7CisJaWYgKHIpCisJCWlndF93YXJu KCJFcnJvciBzdGFydGluZyB0aHJlYWQ6ICVpXG4iLCByKTsKKworCWludGVydmFsLml0X3ZhbHVl LnR2X25zZWMgPSAwOworCWludGVydmFsLml0X3ZhbHVlLnR2X3NlYyA9IDM7CisJaW50ZXJ2YWwu aXRfaW50ZXJ2YWwudHZfbnNlYyA9IGludGVydmFsLml0X3ZhbHVlLnR2X25zZWM7CisJaW50ZXJ2 YWwuaXRfaW50ZXJ2YWwudHZfc2VjID0gaW50ZXJ2YWwuaXRfdmFsdWUudHZfc2VjOworCXIgPSB0 aW1lcmZkX3NldHRpbWUoZGF0YS0+ZmFpbF90aW1lcmZkLCAwLCAmaW50ZXJ2YWwsIE5VTEwpOwor CWlndF9yZXF1aXJlX2YociAhPSAtMSwgIkVycm9yIHNldHRpbmcgdGltZXJmZFxuIik7Cit9CisK K3N0YXRpYyB2b2lkIHVwZGF0ZV9zY3JlZW4oZGF0YV90ICpkYXRhKQoreworCWRhdGEtPmNoYW5n ZXMrKzsKKworCXN3aXRjaCAoZGF0YS0+b3ApIHsKKwljYXNlIFBBR0VfRkxJUDogeworCQlpZ3Rf cGxhbmVfdCAqcHJpbWFyeTsKKworCQlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlw ZShkYXRhLT5vdXRwdXQsCisJCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisKKwkJ aWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJbZGF0YS0+Y2hhbmdlcyAmIDFdKTsK KwkJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKwkJYnJlYWs7CisJfQorCWNh c2UgRlJPTlRCVUZGRVI6IHsKKwkJZHJtTW9kZUNsaXAgY2xpcDsKKwkJY2Fpcm9fdCAqY3I7CisJ CWludCByOworCisJCWNsaXAueDEgPSBjbGlwLnkxID0gMDsKKwkJY2xpcC54MiA9IGNsaXAueTIg PSBTUVVBUkVfU0laRTsKKworCQljciA9IGlndF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwg JmRhdGEtPmZiWzBdKTsKKworCQlpZiAoZGF0YS0+Y2hhbmdlcyAmIDEpIHsKKwkJCS8qIGdvIGJh Y2sgdG8gYWxsIGdyZWVuIGZyYW1lIHdpdGggd2l0aCBzcXVhcmUgKi8KKwkJCWlndF9wYWludF9j b2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUsCisJCQkJCSAgICAgIFNRVUFSRV9TSVpF LCAxLjAsIDEuMCwgMS4wLCAxLjApOworCQl9IGVsc2UgeworCQkJLyogZ28gYmFjayB0byBhbGwg Z3JlZW4gZnJhbWUgKi8KKwkJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJF X1NJWkUsCisJCQkJCSAgICAgIFNRVUFSRV9TSVpFLCAwLCAxLjAsIDAsIDEuMCk7CisJCX0KKwor CQlyID0gZHJtTW9kZURpcnR5RkIoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5mYlswXS5mYl9pZCwgJmNs aXAsIDEpOworCQlpZ3RfYXNzZXJ0KHIgPT0gMCB8fCByID09IC1FTk9TWVMpOworCQlicmVhazsK Kwl9CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2VydF9mKGRhdGEtPm9wLCAiT3BlcmF0aW9uIG5vdCBo YW5kbGVkXG4iKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHJ1bihkYXRhX3QgKmRhdGEpCit7CisJ d2hpbGUgKGRhdGEtPnJ1bikgeworCQl1aW50NjRfdCBleHA7CisJCWludCByOworCisJCXIgPSBw b2xsKGRhdGEtPnBvbGxmZHMsCisJCQkgc2l6ZW9mKGRhdGEtPnBvbGxmZHMpIC8gc2l6ZW9mKGRh dGEtPnBvbGxmZHNbMF0pLCAtMSk7CisJCWlmIChyIDwgMCkKKwkJCWJyZWFrOworCisJCS8qIGZs aXBfdGltZXJmZCB0aW1lb3V0ICovCisJCWlmIChkYXRhLT5wb2xsZmRzWzBdLnJldmVudHMgJiBQ T0xMSU4pIHsKKwkJCXIgPSByZWFkKGRhdGEtPnBvbGxmZHNbMF0uZmQsICZleHAsIHNpemVvZihl eHApKTsKKworCQkJaWYgKHIgIT0gc2l6ZW9mKHVpbnQ2NF90KSkgeworCQkJCWlndF93YXJuKCJy ZWFkIGEgbm90IGV4cGVjdGVkIG51bWJlciBvZiBieXRlcyBmcm9tIGZsaXBfdGltZXJmZDogJWlc biIsIHIpOworCQkJfSBlbHNlIGlmIChleHApCisJCQkJdXBkYXRlX3NjcmVlbihkYXRhKTsKKwkJ fQorCisJCS8qIGZhaWxfdGltZXJmZCB0aW1lb3V0ICovCisJCWlmIChkYXRhLT5wb2xsZmRzWzFd LnJldmVudHMgJiBQT0xMSU4pIHsKKwkJCXIgPSByZWFkKGRhdGEtPnBvbGxmZHNbMV0uZmQsICZl eHAsIHNpemVvZihleHApKTsKKworCQkJaWYgKHIgIT0gc2l6ZW9mKHVpbnQ2NF90KSkgeworCQkJ CWlndF93YXJuKCJyZWFkIGEgbm90IGV4cGVjdGVkIG51bWJlciBvZiBieXRlcyBmcm9tIGZhaWxf dGltZXJmZDogJWlcbiIsIHIpOworCQkJfSBlbHNlIGlmIChleHApCisJCQkJYnJlYWs7CisJCX0K Kwl9CisKKwlkYXRhLT5ydW4gPSBmYWxzZTsKKwlwdGhyZWFkX2pvaW4oZGF0YS0+dGhyZWFkX2lk LCBOVUxMKTsKKworCWlndF9kZWJ1ZygiQ2hhbmdlczogJXVcbiIsIGRhdGEtPmNoYW5nZXMpOwor CWlndF9hc3NlcnQoZGF0YS0+c3VjZXNzKTsKK30KKworc3RhdGljIHZvaWQgY2xlYW51cChkYXRh X3QgKmRhdGEpCit7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisKKwlwcmltYXJ5ID0gaWd0X291 dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCSAgICBEUk1fUExBTkVfVFlQ RV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCWlndF9kaXNw bGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisKKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9m ZCwgJmRhdGEtPmZiWzBdKTsKKwlpZiAoZGF0YS0+b3AgPT0gUEFHRV9GTElQKQorCQlpZ3RfcmVt b3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsKK30KKworaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKmFyZ3ZbXSkKK3sKKwlkYXRhX3QgZGF0YSA9IHt9OworCWVudW0gb3BlcmF0aW9u cyBvcDsKKworCWlndF9zdWJ0ZXN0X2luaXRfcGFyc2Vfb3B0cygmYXJnYywgYXJndiwgIiIsIE5V TEwsCisJCQkJICAgIE5VTEwsIE5VTEwsIE5VTEwpOworCWlndF9za2lwX29uX3NpbXVsYXRpb24o KTsKKworCWlndF9maXh0dXJlIHsKKwkJc3RydWN0IGl0aW1lcnNwZWMgaW50ZXJ2YWw7CisJCWlu dCByOworCisJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5U RUwpOworCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwor CQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisJCWRhdGEuZGV2aWQgPSBpbnRlbF9n ZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKKworCQlpZ3RfcmVxdWlyZV9mKHBzcjJfc3VwcG9y dGVkKGRhdGEuZGVidWdmc19mZCksCisJCQkgICAgICAiU2luayBkb2VzIG5vdCBzdXBwb3J0IFBT UjJcbiIpOworCisJCWRhdGEuYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChkYXRh LmRybV9mZCwgNDA5Nik7CisJCWlndF9hc3NlcnQoZGF0YS5idWZtZ3IpOworCQlkcm1faW50ZWxf YnVmbWdyX2dlbV9lbmFibGVfcmV1c2UoZGF0YS5idWZtZ3IpOworCisJCWRpc3BsYXlfaW5pdCgm ZGF0YSk7CisKKwkJaWd0X3JlcXVpcmUocHNyMl9zdXBwb3J0ZWQoZGF0YS5kZWJ1Z2ZzX2ZkKSk7 CisJCWlndF9yZXF1aXJlKHBzcjJfZW5hYmxlKGRhdGEuZGVidWdmc19mZCkpOworCQlpZ3RfcmVx dWlyZShwc3IyX3dhaXRfZGVlcF9zbGVlcChkYXRhLmRlYnVnZnNfZmQpKTsKKworCQlkYXRhLmZs aXBfdGltZXJmZCA9IHRpbWVyZmRfY3JlYXRlKENMT0NLX01PTk9UT05JQywKKwkJCQkJCSAgIFRG RF9OT05CTE9DSyk7CisJCWlndF9yZXF1aXJlKGRhdGEuZmxpcF90aW1lcmZkICE9IC0xKTsKKwkJ aW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYyA9IE5TRUNfUEVSX1NFQyAvIDE1OworCQlpbnRlcnZh bC5pdF92YWx1ZS50dl9zZWMgPSAwOworCQlpbnRlcnZhbC5pdF9pbnRlcnZhbC50dl9uc2VjID0g aW50ZXJ2YWwuaXRfdmFsdWUudHZfbnNlYzsKKwkJaW50ZXJ2YWwuaXRfaW50ZXJ2YWwudHZfc2Vj ID0gaW50ZXJ2YWwuaXRfdmFsdWUudHZfc2VjOworCQlyID0gdGltZXJmZF9zZXR0aW1lKGRhdGEu ZmxpcF90aW1lcmZkLCAwLCAmaW50ZXJ2YWwsIE5VTEwpOworCQlpZ3RfcmVxdWlyZV9mKHIgIT0g LTEsICJFcnJvciBzZXR0aW5nIHRpbWVyZmRcbiIpOworCisJCWRhdGEuZmFpbF90aW1lcmZkID0g dGltZXJmZF9jcmVhdGUoQ0xPQ0tfTU9OT1RPTklDLAorCQkJCQkJICAgVEZEX05PTkJMT0NLKTsK KwkJaWd0X3JlcXVpcmUoZGF0YS5mYWlsX3RpbWVyZmQgIT0gLTEpOworCisJCWRhdGEucG9sbGZk c1swXS5mZCA9IGRhdGEuZmxpcF90aW1lcmZkOworCQlkYXRhLnBvbGxmZHNbMF0uZXZlbnRzID0g UE9MTElOOworCQlkYXRhLnBvbGxmZHNbMF0ucmV2ZW50cyA9IDA7CisKKwkJZGF0YS5wb2xsZmRz WzFdLmZkID0gZGF0YS5mYWlsX3RpbWVyZmQ7CisJCWRhdGEucG9sbGZkc1sxXS5ldmVudHMgPSBQ T0xMSU47CisJCWRhdGEucG9sbGZkc1sxXS5yZXZlbnRzID0gMDsKKwl9CisKKwlmb3IgKG9wID0g UEFHRV9GTElQOyBvcCA8IExBU1Q7IG9wKyspIHsKKwkJaWd0X3N1YnRlc3RfZigiJXMiLCBvcF9z dHIob3ApKSB7CisJCQlkYXRhLm9wID0gb3A7CisJCQlwcmVwYXJlKCZkYXRhKTsKKwkJCXJ1bigm ZGF0YSk7CisJCQljbGVhbnVwKCZkYXRhKTsKKwkJfQorCX0KKworCWlndF9maXh0dXJlIHsKKwkJ Y2xvc2UoZGF0YS5kZWJ1Z2ZzX2ZkKTsKKwkJZHJtX2ludGVsX2J1Zm1ncl9kZXN0cm95KGRhdGEu YnVmbWdyKTsKKwkJZGlzcGxheV9maW5pKCZkYXRhKTsKKwl9CisKKwlpZ3RfZXhpdCgpOworfQpk aWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCBi OGE2ZTYxYi4uYzU1NzMzM2MgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rl c3RzL21lc29uLmJ1aWxkCkBAIC00OSw2ICs0OSw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ2ttc19w bGFuZV9zY2FsaW5nJywKIAkna21zX3Byb3BlcnRpZXMnLAogCSdrbXNfcHNyJywKKwkna21zX3Bz cjJfc3UnLAogCSdrbXNfcHdyaXRlX2NyYycsCiAJJ2ttc19ybWZiJywKIAkna21zX3JvdGF0aW9u X2NyYycsCi0tIAoyLjE5LjIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRl dgo=