From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 915BE6F074 for ; Wed, 23 Jan 2019 23:56:38 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Wed, 23 Jan 2019 15:56:35 -0800 Message-Id: <20190123235636.8720-3-jose.souza@intel.com> In-Reply-To: <20190123235636.8720-1-jose.souza@intel.com> References: <20190123235636.8720-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4 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 LCB1c2luZyBibG9ja2luZyB0aW1lcmZkIGluc3RlYWQKCkNjOiBSb2RyaWdvIFZpdmkgPHJvZHJp Z28udml2aUBpbnRlbC5jb20+CkNjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBh bmRpeWFuQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8 am9zZS5zb3V6YUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9wc3IuYyAgICAgICAgICB8ICAyOSAr KysrCiBsaWIvaWd0X3Bzci5oICAgICAgICAgIHwgICAxICsKIHRlc3RzL01ha2VmaWxlLnNvdXJj ZXMgfCAgIDEgKwogdGVzdHMva21zX3BzcjJfc3UuYyAgICB8IDI5MiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogdGVzdHMvbWVzb24uYnVpbGQgICAgICB8ICAgMSAr CiA1IGZpbGVzIGNoYW5nZWQsIDMyNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMva21zX3BzcjJfc3UuYwoKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfcHNyLmMgYi9saWIvaWd0 X3Bzci5jCmluZGV4IGQ3MjZmYWQ1Li44YzBmMDVlOCAxMDA2NDQKLS0tIGEvbGliL2lndF9wc3Iu YworKysgYi9saWIvaWd0X3Bzci5jCkBAIC0xNzgsMyArMTc4LDMyIEBAIGJvb2wgcHNyX3Npbmtf c3VwcG9ydChpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSBtb2RlKQogCQkgKi8KIAkJcmV0 dXJuIHN0cnN0cihidWYsICJTaW5rIHN1cHBvcnQ6IHllcyBbMHgwM10iKTsKIH0KKworI2RlZmlu ZSBQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVAgIlBTUjIgU1UgYmxvY2tzOlxuMFx0IgorCitzdGF0 aWMgYm9vbAorcHNyMl9yZWFkX2xhc3RfbnVtX3N1X2Jsb2Nrc192YWwoaW50IGRlYnVnZnNfZmQs IHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKQoreworCWNoYXIgYnVmW1BTUl9TVEFUVVNfTUFYX0xF Tl07CisJY2hhciAqc3RyOworCWludCByZXQ7CisKKwlyZXQgPSBpZ3RfZGVidWdmc19zaW1wbGVf cmVhZChkZWJ1Z2ZzX2ZkLCAiaTkxNV9lZHBfcHNyX3N0YXR1cyIsIGJ1ZiwKKwkJCQkgICAgICBz aXplb2YoYnVmKSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiBmYWxzZTsKKworCXN0ciA9IHN0 cnN0cihidWYsIFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCk7CisJaWYgKCFzdHIpCisJCXJldHVy biBmYWxzZTsKKworCXN0ciA9ICZzdHJbc3RybGVuKFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCld OworCSpudW1fc3VfYmxvY2tzID0gKHVpbnQxNl90KXN0cnRvbChzdHIsIE5VTEwsIDEwKTsKKwor CXJldHVybiB0cnVlOworfQorCitib29sIHBzcjJfd2FpdF9zdShpbnQgZGVidWdmc19mZCwgdWlu dDE2X3QgKm51bV9zdV9ibG9ja3MpCit7CisJcmV0dXJuIGlndF93YWl0KHBzcjJfcmVhZF9sYXN0 X251bV9zdV9ibG9ja3NfdmFsKGRlYnVnZnNfZmQsIG51bV9zdV9ibG9ja3MpLCA0MCwgMSk7Cit9 CmRpZmYgLS1naXQgYS9saWIvaWd0X3Bzci5oIGIvbGliL2lndF9wc3IuaAppbmRleCA3ZTcwMTdi Zi4uNDk1OTljZjggMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfcHNyLmgKKysrIGIvbGliL2lndF9wc3Iu aApAQCAtNDAsNSArNDAsNiBAQCBib29sIHBzcl93YWl0X3VwZGF0ZShpbnQgZGVidWdmc19mZCwg ZW51bSBwc3JfbW9kZSBtb2RlKTsKIGJvb2wgcHNyX2VuYWJsZShpbnQgZGVidWdmc19mZCwgZW51 bSBwc3JfbW9kZSk7CiBib29sIHBzcl9kaXNhYmxlKGludCBkZWJ1Z2ZzX2ZkKTsKIGJvb2wgcHNy X3Npbmtfc3VwcG9ydChpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSk7Citib29sIHBzcjJf d2FpdF9zdShpbnQgZGVidWdmc19mZCwgdWludDE2X3QgKm51bV9zdV9ibG9ja3MpOwogCiAjZW5k aWYKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5z b3VyY2VzCmluZGV4IDUxOWVhYzc5Li45MTc0YWVjYyAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZp bGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC04MCw2ICs4MCw3IEBA IFRFU1RTX3Byb2dzID0gXAogCWttc19wbGFuZV9zY2FsaW5nIFwKIAlrbXNfcHJvcGVydGllcyBc CiAJa21zX3BzciBcCisJa21zX3BzcjJfc3UgXAogCWttc19wd3JpdGVfY3JjIFwKIAlrbXNfcm1m YiBcCiAJa21zX3JvdGF0aW9uX2NyYyBcCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcHNyMl9zdS5j IGIvdGVzdHMva21zX3BzcjJfc3UuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MC4uMzQ0ZGRmZmUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfcHNyMl9zdS5jCkBAIC0w LDAgKzEsMjkyIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24K KyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5j bHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUg TElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hF VEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5H CisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBU SEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisK KyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKKyNpbmNsdWRlICJpZ3Rf cHNyLmgiCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVk ZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzeXMvdGltZXJmZC5o PgorI2luY2x1ZGUgImludGVsX2J1Zm1nci5oIgorCitJR1RfVEVTVF9ERVNDUklQVElPTigiVGVz dCBQU1IyIHNlbGVjdGl2ZSB1cGRhdGUiKTsKKworI2RlZmluZSBTUVVBUkVfU0laRSAxMDAKKy8q IGVhY2ggc2VsZWN0aXZlIHVwZGF0ZSBibG9jayBpcyA0IGxpbmVzIHRhbGwgKi8KKyNkZWZpbmUg RVhQRUNURURfTlVNX1NVX0JMT0NLUyAoKFNRVUFSRV9TSVpFIC8gNCkgKyAoU1FVQVJFX1NJWkUg JSA0ID8gMSA6IDApKQorCisvKgorICogTWluaW11bSBpcyAxNSBhcyB0aGUgbnVtYmVyIG9mIGZy YW1lcyB0byBhY3RpdmUgUFNSMiBjb3VsZCBiZSBjb25maWd1cmVkCisgKiB0byAxNSBmcmFtZXMg cGx1cyBhIGZldyBtb3JlIGluIGNhc2Ugd2UgbWlzcyBhIHNlbGVjdGl2ZSB1cGRhdGUgYmV0d2Vl bgorICogZGVidWdmcyByZWFkcy4KKyAqLworI2RlZmluZSBNQVhfU0NSRUVOX0NIQU5HRVMgMjAK KworZW51bSBvcGVyYXRpb25zIHsKKwlQQUdFX0ZMSVAsCisJRlJPTlRCVUZGRVIsCisJTEFTVAor fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKm9wX3N0cihlbnVtIG9wZXJhdGlvbnMgb3ApCit7CisJ c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBuYW1lW10gPSB7CisJCVtQQUdFX0ZMSVBdID0gInBh Z2VfZmxpcCIsCisJCVtGUk9OVEJVRkZFUl0gPSAiZnJvbnRidWZmZXIiCisJfTsKKworCXJldHVy biBuYW1lW29wXTsKK30KKwordHlwZWRlZiBzdHJ1Y3QgeworCWludCBkcm1fZmQ7CisJaW50IGRl YnVnZnNfZmQ7CisJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5OworCWRybV9pbnRlbF9idWZtZ3IgKmJ1 Zm1ncjsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJ c3RydWN0IGlndF9mYiBmYlsyXTsKKwllbnVtIG9wZXJhdGlvbnMgb3A7CisJY2Fpcm9fdCAqY3I7 CisJaW50IGNoYW5nZV9zY3JlZW5fdGltZXJmZDsKKwl1aW50MzJfdCBzY3JlZW5fY2hhbmdlczsK K30gZGF0YV90OworCitzdGF0aWMgdm9pZCBzZXR1cF9vdXRwdXQoZGF0YV90ICpkYXRhKQorewor CWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlpZ3Rfb3V0cHV0X3Qg Km91dHB1dDsKKwllbnVtIHBpcGUgcGlwZTsKKworCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9v dXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7CisJCWRybU1vZGVDb25uZWN0b3JQdHIgYyA9 IG91dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsKKworCQlpZiAoYy0+Y29ubmVjdG9yX3R5cGUgIT0g RFJNX01PREVfQ09OTkVDVE9SX2VEUCkKKwkJCWNvbnRpbnVlOworCisJCWlndF9vdXRwdXRfc2V0 X3BpcGUob3V0cHV0LCBwaXBlKTsKKwkJZGF0YS0+b3V0cHV0ID0gb3V0cHV0OworCQlkYXRhLT5t b2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOworCisJCXJldHVybjsKKwl9Cit9CisK K3N0YXRpYyB2b2lkIGRpc3BsYXlfaW5pdChkYXRhX3QgKmRhdGEpCit7CisJaWd0X2Rpc3BsYXlf cmVxdWlyZSgmZGF0YS0+ZGlzcGxheSwgZGF0YS0+ZHJtX2ZkKTsKKwlzZXR1cF9vdXRwdXQoZGF0 YSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpc3BsYXlfZmluaShkYXRhX3QgKmRhdGEpCit7CisJaWd0 X2Rpc3BsYXlfZmluaSgmZGF0YS0+ZGlzcGxheSk7Cit9CisKK3N0YXRpYyB2b2lkIHByZXBhcmUo ZGF0YV90ICpkYXRhKQoreworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCisJLyogYWxsIGdyZWVu IGZyYW1lICovCisJaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsCisJCQkgICAgZGF0 YS0+bW9kZS0+aGRpc3BsYXksIGRhdGEtPm1vZGUtPnZkaXNwbGF5LAorCQkJICAgIERSTV9GT1JN QVRfWFJHQjg4ODgsCisJCQkgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKKwkJCSAgICAw LjAsIDEuMCwgMC4wLAorCQkJICAgICZkYXRhLT5mYlswXSk7CisKKwlpZiAoZGF0YS0+b3AgPT0g UEFHRV9GTElQKSB7CisJCWNhaXJvX3QgKmNyOworCisJCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0 YS0+ZHJtX2ZkLAorCQkJCSAgICBkYXRhLT5tb2RlLT5oZGlzcGxheSwgZGF0YS0+bW9kZS0+dmRp c3BsYXksCisJCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQkJICAgIExPQ0FMX0RSTV9G T1JNQVRfTU9EX05PTkUsCisJCQkJICAgIDAuMCwgMS4wLCAwLjAsCisJCQkJICAgICZkYXRhLT5m YlsxXSk7CisKKwkJY3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5m YlsxXSk7CisJCS8qIHBhaW50IGEgd2hpdGUgc3F1YXJlICovCisJCWlndF9wYWludF9jb2xvcl9h bHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUsIFNRVUFSRV9TSVpFLAorCQkJCSAgICAgIDEuMCwg MS4wLCAxLjAsIDEuMCk7CisJCWlndF9wdXRfY2Fpcm9fY3R4KGRhdGEtPmRybV9mZCwgICZkYXRh LT5mYlsxXSwgY3IpOworCX0gZWxzZSBpZiAoZGF0YS0+b3AgPT0gRlJPTlRCVUZGRVIpIHsKKwkJ ZGF0YS0+Y3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSk7 CisJfQorCisJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0 LAorCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJaWd0X3BsYW5lX3NldF9mYihw cmltYXJ5LCBOVUxMKTsKKworCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisJ aWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJbMF0pOworCWlndF9kaXNwbGF5X2Nv bW1pdCgmZGF0YS0+ZGlzcGxheSk7CisKKwlpZ3RfYXNzZXJ0KHBzcl93YWl0X2VudHJ5KGRhdGEt PmRlYnVnZnNfZmQsIFBTUl9NT0RFXzIpKTsKKworCWRhdGEtPnNjcmVlbl9jaGFuZ2VzID0gMDsK K30KKworc3RhdGljIGJvb2wgdXBkYXRlX3NjcmVlbl9hbmRfdGVzdChkYXRhX3QgKmRhdGEpCit7 CisJdWludDE2X3Qgc3VfYmxvY2tzOworCWJvb2wgcmV0ID0gZmFsc2U7CisKKwlkYXRhLT5zY3Jl ZW5fY2hhbmdlcysrOworCisJc3dpdGNoIChkYXRhLT5vcCkgeworCWNhc2UgUEFHRV9GTElQOiB7 CisJCWlndF9wbGFuZV90ICpwcmltYXJ5OworCisJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9w bGFuZV90eXBlKGRhdGEtPm91dHB1dCwKKwkJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZ KTsKKworCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYltkYXRhLT5zY3JlZW5f Y2hhbmdlcyAmIDFdKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKwkJ YnJlYWs7CisJfQorCWNhc2UgRlJPTlRCVUZGRVI6IHsKKwkJZHJtTW9kZUNsaXAgY2xpcDsKKwkJ aW50IHI7CisKKwkJY2xpcC54MSA9IGNsaXAueTEgPSAwOworCQljbGlwLngyID0gY2xpcC55MiA9 IFNRVUFSRV9TSVpFOworCisJCWlmIChkYXRhLT5zY3JlZW5fY2hhbmdlcyAmIDEpIHsKKwkJCS8q IGdvIGJhY2sgdG8gYWxsIGdyZWVuIGZyYW1lIHdpdGggd2l0aCBzcXVhcmUgKi8KKwkJCWlndF9w YWludF9jb2xvcl9hbHBoYShkYXRhLT5jciwgMCwgMCwgU1FVQVJFX1NJWkUsCisJCQkJCSAgICAg IFNRVUFSRV9TSVpFLCAxLjAsIDEuMCwgMS4wLCAxLjApOworCQl9IGVsc2UgeworCQkJLyogZ28g YmFjayB0byBhbGwgZ3JlZW4gZnJhbWUgKi8KKwkJCWlndF9wYWludF9jb2xvcl9hbHBoYShkYXRh LT5jciwgMCwgMCwgU1FVQVJFX1NJWkUsCisJCQkJCSAgICAgIFNRVUFSRV9TSVpFLCAwLCAxLjAs IDAsIDEuMCk7CisJCX0KKworCQlyID0gZHJtTW9kZURpcnR5RkIoZGF0YS0+ZHJtX2ZkLCBkYXRh LT5mYlswXS5mYl9pZCwgJmNsaXAsIDEpOworCQlpZ3RfYXNzZXJ0KHIgPT0gMCB8fCByID09IC1F Tk9TWVMpOworCQlicmVhazsKKwl9CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2VydF9mKGRhdGEtPm9w LCAiT3BlcmF0aW9uIG5vdCBoYW5kbGVkXG4iKTsKKwl9CisKKwlpZiAocHNyMl93YWl0X3N1KGRh dGEtPmRlYnVnZnNfZmQsICZzdV9ibG9ja3MpKQorCQlyZXQgPSBzdV9ibG9ja3MgPT0gRVhQRUNU RURfTlVNX1NVX0JMT0NLUzsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bihk YXRhX3QgKmRhdGEpCit7CisJYm9vbCByZXN1bHQgPSBmYWxzZTsKKworCXdoaWxlIChkYXRhLT5z Y3JlZW5fY2hhbmdlcyA8IE1BWF9TQ1JFRU5fQ0hBTkdFUyAmJiAhcmVzdWx0KSB7CisJCXVpbnQ2 NF90IGV4cDsKKwkJaW50IHI7CisKKwkJciA9IHJlYWQoZGF0YS0+Y2hhbmdlX3NjcmVlbl90aW1l cmZkLCAmZXhwLCBzaXplb2YoZXhwKSk7CisJCWlmIChyID09IHNpemVvZih1aW50NjRfdCkgJiYg ZXhwKQorCQkJcmVzdWx0ID0gdXBkYXRlX3NjcmVlbl9hbmRfdGVzdChkYXRhKTsKKwl9CisKKwlp Z3RfZGVidWcoIlNjcmVlbiBjaGFuZ2VzOiAldVxuIiwgZGF0YS0+c2NyZWVuX2NoYW5nZXMpOwor CWlndF9hc3NlcnRfZihyZXN1bHQsCisJCSAgICAgIk5vIG1hdGNoaW5nIHNlbGVjdGl2ZSB1cGRh dGUgYmxvY2tzIHJlYWQgZnJvbSBkZWJ1Z2ZzXG4iKTsKK30KKworc3RhdGljIHZvaWQgY2xlYW51 cChkYXRhX3QgKmRhdGEpCit7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisKKwlwcmltYXJ5ID0g aWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCSAgICBEUk1fUExB TkVfVFlQRV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5VTEwpOworCWln dF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisKKwlpZiAoZGF0YS0+b3AgPT0gUEFH RV9GTElQKQorCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsKKwll bHNlIGlmIChkYXRhLT5vcCA9PSBGUk9OVEJVRkZFUikKKwkJaWd0X3B1dF9jYWlyb19jdHgoZGF0 YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMF0sIGRhdGEtPmNyKTsKKworCWlndF9yZW1vdmVfZmIoZGF0 YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMF0pOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQoreworCWRhdGFfdCBkYXRhID0ge307CisKKwlpZ3Rfc3VidGVzdF9pbml0X3BhcnNl X29wdHMoJmFyZ2MsIGFyZ3YsICIiLCBOVUxMLAorCQkJCSAgICBOVUxMLCBOVUxMLCBOVUxMKTsK KwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlpZ3RfZml4dHVyZSB7CisJCXN0cnVjdCBp dGltZXJzcGVjIGludGVydmFsOworCQlpbnQgcjsKKworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVu X2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0X2Rl YnVnZnNfZGlyKGRhdGEuZHJtX2ZkKTsKKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9kZSgp OworCisJCWlndF9yZXF1aXJlX2YocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRlYnVnZnNfZmQsIFBT Ul9NT0RFXzIpLAorCQkJICAgICAgIlNpbmsgZG9lcyBub3Qgc3VwcG9ydCBQU1IyXG4iKTsKKwor CQlkYXRhLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0YS5kcm1fZmQsIDQw OTYpOworCQlpZ3RfYXNzZXJ0KGRhdGEuYnVmbWdyKTsKKwkJZHJtX2ludGVsX2J1Zm1ncl9nZW1f ZW5hYmxlX3JldXNlKGRhdGEuYnVmbWdyKTsKKworCQlkaXNwbGF5X2luaXQoJmRhdGEpOworCisJ CWlndF9yZXF1aXJlKHBzcl9lbmFibGUoZGF0YS5kZWJ1Z2ZzX2ZkLCBQU1JfTU9ERV8yKSk7CisJ CWlndF9yZXF1aXJlKHBzcl93YWl0X2VudHJ5KGRhdGEuZGVidWdmc19mZCwgUFNSX01PREVfMikp OworCisJCS8qIGJsb2NraW5nIHRpbWVyZmQgKi8KKwkJZGF0YS5jaGFuZ2Vfc2NyZWVuX3RpbWVy ZmQgPSB0aW1lcmZkX2NyZWF0ZShDTE9DS19NT05PVE9OSUMsIDApOworCQlpZ3RfcmVxdWlyZShk YXRhLmNoYW5nZV9zY3JlZW5fdGltZXJmZCAhPSAtMSk7CisJCS8qIENoYW5naW5nIHNjcmVlbiBh dCAzMGh6IHRvIHN1cHBvcnQgMzBoeiBwYW5lbHMgKi8KKwkJaW50ZXJ2YWwuaXRfdmFsdWUudHZf bnNlYyA9IE5TRUNfUEVSX1NFQyAvIDMwOworCQlpbnRlcnZhbC5pdF92YWx1ZS50dl9zZWMgPSAw OworCQlpbnRlcnZhbC5pdF9pbnRlcnZhbC50dl9uc2VjID0gaW50ZXJ2YWwuaXRfdmFsdWUudHZf bnNlYzsKKwkJaW50ZXJ2YWwuaXRfaW50ZXJ2YWwudHZfc2VjID0gaW50ZXJ2YWwuaXRfdmFsdWUu dHZfc2VjOworCQlyID0gdGltZXJmZF9zZXR0aW1lKGRhdGEuY2hhbmdlX3NjcmVlbl90aW1lcmZk LCAwLCAmaW50ZXJ2YWwsIE5VTEwpOworCQlpZ3RfcmVxdWlyZV9mKHIgIT0gLTEsICJFcnJvciBz ZXR0aW5nIHRpbWVyZmRcbiIpOworCX0KKworCWZvciAoZGF0YS5vcCA9IFBBR0VfRkxJUDsgZGF0 YS5vcCA8IExBU1Q7IGRhdGEub3ArKykgeworCQlpZ3Rfc3VidGVzdF9mKCIlcyIsIG9wX3N0cihk YXRhLm9wKSkgeworCQkJcHJlcGFyZSgmZGF0YSk7CisJCQlydW4oJmRhdGEpOworCQkJY2xlYW51 cCgmZGF0YSk7CisJCX0KKwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCWNsb3NlKGRhdGEuZGVidWdm c19mZCk7CisJCWRybV9pbnRlbF9idWZtZ3JfZGVzdHJveShkYXRhLmJ1Zm1ncik7CisJCWRpc3Bs YXlfZmluaSgmZGF0YSk7CisJfQorCisJaWd0X2V4aXQoKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3Rz L21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggZTE0YWIyYjQuLjY4MmNhOTM5 IDEwMDY0NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5idWlsZApA QCAtNTAsNiArNTAsNyBAQCB0ZXN0X3Byb2dzID0gWwogCSdrbXNfcGxhbmVfc2NhbGluZycsCiAJ J2ttc19wcm9wZXJ0aWVzJywKIAkna21zX3BzcicsCisJJ2ttc19wc3IyX3N1JywKIAkna21zX3B3 cml0ZV9jcmMnLAogCSdrbXNfcm1mYicsCiAJJ2ttc19yb3RhdGlvbl9jcmMnLAotLSAKMi4yMC4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2 IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK