From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id DA5886ED54 for ; Fri, 8 Feb 2019 00:53:07 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Thu, 7 Feb 2019 16:53:02 -0800 Message-Id: <20190208005305.6599-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v6 1/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 ZWZvcmUgdHJ5aW5nIHRvIGVuYWJsZSBQU1IyCgp2NjoKLSBkb2luZyBhdG9taWMgY29tbWl0cyB0 byBmaXgobGVnYWN5IGNvbW1pdCBpcyB0YWtpbmcgbW9yZSB0aW1lIGluCnJlY2VudCBrZXJuZWxz IGNhdXNpbmcgdXMgdG8gbWlzcyB0aGUgU1Ugd2hlbiByZWFkaW5nIGRlYnVnZnMpIGFuZApzcGVl ZHVwIHRlc3QKLSBmaXhlZCBjb2RlIHRvIHNraXAgdGVzdCB3aGVuIFBTUjIgaXMgbm90IHBvc3Np bGUKCkNjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+CkNjOiBEaGluYWth cmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KU2lnbmVkLW9mZi1i eTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Ci0tLQogbGli L2lndF9wc3IuYyAgICAgICAgICB8ICAyOSArKysrCiBsaWIvaWd0X3Bzci5oICAgICAgICAgIHwg ICAxICsKIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEgKwogdGVzdHMva21zX3BzcjJfc3Uu YyAgICB8IDI5NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogdGVz dHMvbWVzb24uYnVpbGQgICAgICB8ICAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDMyNiBpbnNlcnRp b25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX3BzcjJfc3UuYwoKZGlmZiAtLWdp dCBhL2xpYi9pZ3RfcHNyLmMgYi9saWIvaWd0X3Bzci5jCmluZGV4IDZhZDJjNTIyLi5iNTg0N2Jm ZCAxMDA2NDQKLS0tIGEvbGliL2lndF9wc3IuYworKysgYi9saWIvaWd0X3Bzci5jCkBAIC0xNzgs MyArMTc4LDMyIEBAIGJvb2wgcHNyX3Npbmtfc3VwcG9ydChpbnQgZGVidWdmc19mZCwgZW51bSBw c3JfbW9kZSBtb2RlKQogCQkgKi8KIAkJcmV0dXJuIHN0cnN0cihidWYsICJTaW5rIHN1cHBvcnQ6 IHllcyBbMHgwM10iKTsKIH0KKworI2RlZmluZSBQU1IyX1NVX0JMT0NLX1NUUl9MT09LVVAgIlBT UjIgU1UgYmxvY2tzOlxuMFx0IgorCitzdGF0aWMgYm9vbAorcHNyMl9yZWFkX2xhc3RfbnVtX3N1 X2Jsb2Nrc192YWwoaW50IGRlYnVnZnNfZmQsIHVpbnQxNl90ICpudW1fc3VfYmxvY2tzKQorewor CWNoYXIgYnVmW1BTUl9TVEFUVVNfTUFYX0xFTl07CisJY2hhciAqc3RyOworCWludCByZXQ7CisK KwlyZXQgPSBpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkZWJ1Z2ZzX2ZkLCAiaTkxNV9lZHBfcHNy X3N0YXR1cyIsIGJ1ZiwKKwkJCQkgICAgICBzaXplb2YoYnVmKSk7CisJaWYgKHJldCA8IDApCisJ CXJldHVybiBmYWxzZTsKKworCXN0ciA9IHN0cnN0cihidWYsIFBTUjJfU1VfQkxPQ0tfU1RSX0xP T0tVUCk7CisJaWYgKCFzdHIpCisJCXJldHVybiBmYWxzZTsKKworCXN0ciA9ICZzdHJbc3RybGVu KFBTUjJfU1VfQkxPQ0tfU1RSX0xPT0tVUCldOworCSpudW1fc3VfYmxvY2tzID0gKHVpbnQxNl90 KXN0cnRvbChzdHIsIE5VTEwsIDEwKTsKKworCXJldHVybiB0cnVlOworfQorCitib29sIHBzcjJf d2FpdF9zdShpbnQgZGVidWdmc19mZCwgdWludDE2X3QgKm51bV9zdV9ibG9ja3MpCit7CisJcmV0 dXJuIGlndF93YWl0KHBzcjJfcmVhZF9sYXN0X251bV9zdV9ibG9ja3NfdmFsKGRlYnVnZnNfZmQs IG51bV9zdV9ibG9ja3MpLCA0MCwgMSk7Cit9CmRpZmYgLS1naXQgYS9saWIvaWd0X3Bzci5oIGIv bGliL2lndF9wc3IuaAppbmRleCA3ZTcwMTdiZi4uNDk1OTljZjggMTAwNjQ0Ci0tLSBhL2xpYi9p Z3RfcHNyLmgKKysrIGIvbGliL2lndF9wc3IuaApAQCAtNDAsNSArNDAsNiBAQCBib29sIHBzcl93 YWl0X3VwZGF0ZShpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSBtb2RlKTsKIGJvb2wgcHNy X2VuYWJsZShpbnQgZGVidWdmc19mZCwgZW51bSBwc3JfbW9kZSk7CiBib29sIHBzcl9kaXNhYmxl KGludCBkZWJ1Z2ZzX2ZkKTsKIGJvb2wgcHNyX3Npbmtfc3VwcG9ydChpbnQgZGVidWdmc19mZCwg ZW51bSBwc3JfbW9kZSk7Citib29sIHBzcjJfd2FpdF9zdShpbnQgZGVidWdmc19mZCwgdWludDE2 X3QgKm51bV9zdV9ibG9ja3MpOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxl LnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IGEyMzRmYTVkLi5kMmM0Zjlm ZSAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmls ZS5zb3VyY2VzCkBAIC02Miw2ICs2Miw3IEBAIFRFU1RTX3Byb2dzID0gXAogCWttc19wbGFuZV9z Y2FsaW5nIFwKIAlrbXNfcHJvcGVydGllcyBcCiAJa21zX3BzciBcCisJa21zX3BzcjJfc3UgXAog CWttc19wd3JpdGVfY3JjIFwKIAlrbXNfcm1mYiBcCiAJa21zX3JvdGF0aW9uX2NyYyBcCmRpZmYg LS1naXQgYS90ZXN0cy9rbXNfcHNyMl9zdS5jIGIvdGVzdHMva21zX3BzcjJfc3UuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMmM3NWI4NWIKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0cy9rbXNfcHNyMl9zdS5jCkBAIC0wLDAgKzEsMjk0IEBACisvKgorICogQ29weXJpZ2h0 IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBn cmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29w eSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRo ZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJp Y3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAor ICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJz b25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1Ympl Y3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmln aHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQK KyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFu dGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJ UyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNT IE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhP UlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMg T1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1Qs IFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVD VElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJ TiBUSEUgU09GVFdBUkUuCisgKgorICovCisKKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJp Z3Rfc3lzZnMuaCIKKyNpbmNsdWRlICJpZ3RfcHNyLmgiCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNp bmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcu aD4KKyNpbmNsdWRlIDxzeXMvdGltZXJmZC5oPgorI2luY2x1ZGUgImludGVsX2J1Zm1nci5oIgor CitJR1RfVEVTVF9ERVNDUklQVElPTigiVGVzdCBQU1IyIHNlbGVjdGl2ZSB1cGRhdGUiKTsKKwor I2RlZmluZSBTUVVBUkVfU0laRSAxMDAKKy8qIGVhY2ggc2VsZWN0aXZlIHVwZGF0ZSBibG9jayBp cyA0IGxpbmVzIHRhbGwgKi8KKyNkZWZpbmUgRVhQRUNURURfTlVNX1NVX0JMT0NLUyAoKFNRVUFS RV9TSVpFIC8gNCkgKyAoU1FVQVJFX1NJWkUgJSA0ID8gMSA6IDApKQorCisvKgorICogTWluaW11 bSBpcyAxNSBhcyB0aGUgbnVtYmVyIG9mIGZyYW1lcyB0byBhY3RpdmUgUFNSMiBjb3VsZCBiZSBj b25maWd1cmVkCisgKiB0byAxNSBmcmFtZXMgcGx1cyBhIGZldyBtb3JlIGluIGNhc2Ugd2UgbWlz cyBhIHNlbGVjdGl2ZSB1cGRhdGUgYmV0d2VlbgorICogZGVidWdmcyByZWFkcy4KKyAqLworI2Rl ZmluZSBNQVhfU0NSRUVOX0NIQU5HRVMgMjAKKworZW51bSBvcGVyYXRpb25zIHsKKwlQQUdFX0ZM SVAsCisJRlJPTlRCVUZGRVIsCisJTEFTVAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKm9wX3N0 cihlbnVtIG9wZXJhdGlvbnMgb3ApCit7CisJc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBuYW1l W10gPSB7CisJCVtQQUdFX0ZMSVBdID0gInBhZ2VfZmxpcCIsCisJCVtGUk9OVEJVRkZFUl0gPSAi ZnJvbnRidWZmZXIiCisJfTsKKworCXJldHVybiBuYW1lW29wXTsKK30KKwordHlwZWRlZiBzdHJ1 Y3QgeworCWludCBkcm1fZmQ7CisJaW50IGRlYnVnZnNfZmQ7CisJaWd0X2Rpc3BsYXlfdCBkaXNw bGF5OworCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsKKwlkcm1Nb2RlTW9kZUluZm8gKm1vZGU7 CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJc3RydWN0IGlndF9mYiBmYlsyXTsKKwllbnVtIG9w ZXJhdGlvbnMgb3A7CisJY2Fpcm9fdCAqY3I7CisJaW50IGNoYW5nZV9zY3JlZW5fdGltZXJmZDsK Kwl1aW50MzJfdCBzY3JlZW5fY2hhbmdlczsKK30gZGF0YV90OworCitzdGF0aWMgdm9pZCBzZXR1 cF9vdXRwdXQoZGF0YV90ICpkYXRhKQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0 YS0+ZGlzcGxheTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwllbnVtIHBpcGUgcGlwZTsKKwor CWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7 CisJCWRybU1vZGVDb25uZWN0b3JQdHIgYyA9IG91dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsKKwor CQlpZiAoYy0+Y29ubmVjdG9yX3R5cGUgIT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCkKKwkJCWNv bnRpbnVlOworCisJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKKwkJZGF0YS0+ b3V0cHV0ID0gb3V0cHV0OworCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRw dXQpOworCisJCXJldHVybjsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGRpc3BsYXlfaW5pdChkYXRh X3QgKmRhdGEpCit7CisJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS0+ZGlzcGxheSwgZGF0YS0+ ZHJtX2ZkKTsKKwlzZXR1cF9vdXRwdXQoZGF0YSk7Cit9CisKK3N0YXRpYyB2b2lkIGRpc3BsYXlf ZmluaShkYXRhX3QgKmRhdGEpCit7CisJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS0+ZGlzcGxheSk7 Cit9CisKK3N0YXRpYyB2b2lkIHByZXBhcmUoZGF0YV90ICpkYXRhKQoreworCWlndF9wbGFuZV90 ICpwcmltYXJ5OworCisJLyogYWxsIGdyZWVuIGZyYW1lICovCisJaWd0X2NyZWF0ZV9jb2xvcl9m YihkYXRhLT5kcm1fZmQsCisJCQkgICAgZGF0YS0+bW9kZS0+aGRpc3BsYXksIGRhdGEtPm1vZGUt PnZkaXNwbGF5LAorCQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQkgICAgTE9DQUxfRFJN X0ZPUk1BVF9NT0RfTk9ORSwKKwkJCSAgICAwLjAsIDEuMCwgMC4wLAorCQkJICAgICZkYXRhLT5m YlswXSk7CisKKwlpZiAoZGF0YS0+b3AgPT0gUEFHRV9GTElQKSB7CisJCWNhaXJvX3QgKmNyOwor CisJCWlndF9jcmVhdGVfY29sb3JfZmIoZGF0YS0+ZHJtX2ZkLAorCQkJCSAgICBkYXRhLT5tb2Rl LT5oZGlzcGxheSwgZGF0YS0+bW9kZS0+dmRpc3BsYXksCisJCQkJICAgIERSTV9GT1JNQVRfWFJH Qjg4ODgsCisJCQkJICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsCisJCQkJICAgIDAuMCwg MS4wLCAwLjAsCisJCQkJICAgICZkYXRhLT5mYlsxXSk7CisKKwkJY3IgPSBpZ3RfZ2V0X2NhaXJv X2N0eChkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlsxXSk7CisJCS8qIHBhaW50IGEgd2hpdGUgc3F1 YXJlICovCisJCWlndF9wYWludF9jb2xvcl9hbHBoYShjciwgMCwgMCwgU1FVQVJFX1NJWkUsIFNR VUFSRV9TSVpFLAorCQkJCSAgICAgIDEuMCwgMS4wLCAxLjAsIDEuMCk7CisJCWlndF9wdXRfY2Fp cm9fY3R4KGRhdGEtPmRybV9mZCwgICZkYXRhLT5mYlsxXSwgY3IpOworCX0gZWxzZSBpZiAoZGF0 YS0+b3AgPT0gRlJPTlRCVUZGRVIpIHsKKwkJZGF0YS0+Y3IgPSBpZ3RfZ2V0X2NhaXJvX2N0eChk YXRhLT5kcm1fZmQsICZkYXRhLT5mYlswXSk7CisJfQorCisJcHJpbWFyeSA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAorCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJ TUFSWSk7CisKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYlswXSk7CisJaWd0 X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CisKKwlkYXRh LT5zY3JlZW5fY2hhbmdlcyA9IDA7Cit9CisKK3N0YXRpYyBib29sIHVwZGF0ZV9zY3JlZW5fYW5k X3Rlc3QoZGF0YV90ICpkYXRhKQoreworCXVpbnQxNl90IHN1X2Jsb2NrczsKKwlib29sIHJldCA9 IGZhbHNlOworCisJZGF0YS0+c2NyZWVuX2NoYW5nZXMrKzsKKworCXN3aXRjaCAoZGF0YS0+b3Ap IHsKKwljYXNlIFBBR0VfRkxJUDogeworCQlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKworCQlwcmlt YXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCQkgICAg RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisKKwkJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAm ZGF0YS0+ZmJbZGF0YS0+c2NyZWVuX2NoYW5nZXMgJiAxXSk7CisJCWlndF9kaXNwbGF5X2NvbW1p dDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCQlicmVhazsKKwl9CisJY2FzZSBG Uk9OVEJVRkZFUjogeworCQlkcm1Nb2RlQ2xpcCBjbGlwOworCisJCWNsaXAueDEgPSBjbGlwLnkx ID0gMDsKKwkJY2xpcC54MiA9IGNsaXAueTIgPSBTUVVBUkVfU0laRTsKKworCQlpZiAoZGF0YS0+ c2NyZWVuX2NoYW5nZXMgJiAxKSB7CisJCQkvKiBnbyBiYWNrIHRvIGFsbCBncmVlbiBmcmFtZSB3 aXRoIGEgc3F1YXJlICovCisJCQlpZ3RfcGFpbnRfY29sb3JfYWxwaGEoZGF0YS0+Y3IsIDAsIDAs IFNRVUFSRV9TSVpFLAorCQkJCQkgICAgICBTUVVBUkVfU0laRSwgMS4wLCAxLjAsIDEuMCwgMS4w KTsKKwkJfSBlbHNlIHsKKwkJCS8qIGdvIGJhY2sgdG8gYWxsIGdyZWVuIGZyYW1lICovCisJCQlp Z3RfcGFpbnRfY29sb3JfYWxwaGEoZGF0YS0+Y3IsIDAsIDAsIFNRVUFSRV9TSVpFLAorCQkJCQkg ICAgICBTUVVBUkVfU0laRSwgMCwgMS4wLCAwLCAxLjApOworCQl9CisKKwkJZHJtTW9kZURpcnR5 RkIoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5mYlswXS5mYl9pZCwgJmNsaXAsIDEpOworCQlicmVhazsK Kwl9CisJZGVmYXVsdDoKKwkJaWd0X2Fzc2VydF9mKGRhdGEtPm9wLCAiT3BlcmF0aW9uIG5vdCBo YW5kbGVkXG4iKTsKKwl9CisKKwlpZiAocHNyMl93YWl0X3N1KGRhdGEtPmRlYnVnZnNfZmQsICZz dV9ibG9ja3MpKQorCQlyZXQgPSBzdV9ibG9ja3MgPT0gRVhQRUNURURfTlVNX1NVX0JMT0NLUzsK KworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bihkYXRhX3QgKmRhdGEpCit7CisJ Ym9vbCByZXN1bHQgPSBmYWxzZTsKKworCWlndF9hc3NlcnQocHNyX3dhaXRfZW50cnkoZGF0YS0+ ZGVidWdmc19mZCwgUFNSX01PREVfMikpOworCisJd2hpbGUgKGRhdGEtPnNjcmVlbl9jaGFuZ2Vz IDwgTUFYX1NDUkVFTl9DSEFOR0VTICYmICFyZXN1bHQpIHsKKwkJdWludDY0X3QgZXhwOworCQlp bnQgcjsKKworCQlyID0gcmVhZChkYXRhLT5jaGFuZ2Vfc2NyZWVuX3RpbWVyZmQsICZleHAsIHNp emVvZihleHApKTsKKwkJaWYgKHIgPT0gc2l6ZW9mKHVpbnQ2NF90KSAmJiBleHApCisJCQlyZXN1 bHQgPSB1cGRhdGVfc2NyZWVuX2FuZF90ZXN0KGRhdGEpOworCX0KKworCWlndF9kZWJ1ZygiU2Ny ZWVuIGNoYW5nZXM6ICV1XG4iLCBkYXRhLT5zY3JlZW5fY2hhbmdlcyk7CisJaWd0X2Fzc2VydF9m KHJlc3VsdCwKKwkJICAgICAiTm8gbWF0Y2hpbmcgc2VsZWN0aXZlIHVwZGF0ZSBibG9ja3MgcmVh ZCBmcm9tIGRlYnVnZnNcbiIpOworfQorCitzdGF0aWMgdm9pZCBjbGVhbnVwKGRhdGFfdCAqZGF0 YSkKK3sKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKworCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dl dF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKKwkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1B UlkpOworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7CisJaWd0X2Rpc3BsYXlfY29t bWl0MigmZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CisKKwlpZiAoZGF0YS0+b3AgPT0g UEFHRV9GTElQKQorCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsK KwllbHNlIGlmIChkYXRhLT5vcCA9PSBGUk9OVEJVRkZFUikKKwkJaWd0X3B1dF9jYWlyb19jdHgo ZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMF0sIGRhdGEtPmNyKTsKKworCWlndF9yZW1vdmVfZmIo ZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMF0pOworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQoreworCWRhdGFfdCBkYXRhID0ge307CisKKwlpZ3Rfc3VidGVzdF9pbml0X3Bh cnNlX29wdHMoJmFyZ2MsIGFyZ3YsICIiLCBOVUxMLAorCQkJCSAgICBOVUxMLCBOVUxMLCBOVUxM KTsKKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CisKKwlpZ3RfZml4dHVyZSB7CisJCXN0cnVj dCBpdGltZXJzcGVjIGludGVydmFsOworCQlpbnQgcjsKKworCQlkYXRhLmRybV9mZCA9IGRybV9v cGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0 X2RlYnVnZnNfZGlyKGRhdGEuZHJtX2ZkKTsKKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3NfbW9k ZSgpOworCisJCWlndF9yZXF1aXJlX2YocHNyX3Npbmtfc3VwcG9ydChkYXRhLmRlYnVnZnNfZmQs IFBTUl9NT0RFXzIpLAorCQkJICAgICAgIlNpbmsgZG9lcyBub3Qgc3VwcG9ydCBQU1IyXG4iKTsK KworCQlkYXRhLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0YS5kcm1fZmQs IDQwOTYpOworCQlpZ3RfYXNzZXJ0KGRhdGEuYnVmbWdyKTsKKwkJZHJtX2ludGVsX2J1Zm1ncl9n ZW1fZW5hYmxlX3JldXNlKGRhdGEuYnVmbWdyKTsKKworCQlkaXNwbGF5X2luaXQoJmRhdGEpOwor CisJCS8qIFRlc3QgaWYgUFNSMiBjYW4gYmUgZW5hYmxlZCAqLworCQlpZ3RfcmVxdWlyZV9mKHBz cl9lbmFibGUoZGF0YS5kZWJ1Z2ZzX2ZkLCBQU1JfTU9ERV8yKSwKKwkJCSAgICAgICJFcnJvciBl bmFibGluZyBQU1IyXG4iKTsKKwkJZGF0YS5vcCA9IEZST05UQlVGRkVSOworCQlwcmVwYXJlKCZk YXRhKTsKKwkJciA9IHBzcl93YWl0X2VudHJ5KGRhdGEuZGVidWdmc19mZCwgUFNSX01PREVfMik7 CisJCWNsZWFudXAoJmRhdGEpOworCQlpZ3RfcmVxdWlyZV9mKHIsICJQU1IyIGNhbiBub3QgYmUg ZW5hYmxlZFxuIik7CisKKwkJLyogYmxvY2tpbmcgdGltZXJmZCAqLworCQlkYXRhLmNoYW5nZV9z Y3JlZW5fdGltZXJmZCA9IHRpbWVyZmRfY3JlYXRlKENMT0NLX01PTk9UT05JQywgMCk7CisJCWln dF9yZXF1aXJlKGRhdGEuY2hhbmdlX3NjcmVlbl90aW1lcmZkICE9IC0xKTsKKwkJLyogQ2hhbmdp bmcgc2NyZWVuIGF0IDMwaHogdG8gc3VwcG9ydCAzMGh6IHBhbmVscyAqLworCQlpbnRlcnZhbC5p dF92YWx1ZS50dl9uc2VjID0gTlNFQ19QRVJfU0VDIC8gMzA7CisJCWludGVydmFsLml0X3ZhbHVl LnR2X3NlYyA9IDA7CisJCWludGVydmFsLml0X2ludGVydmFsLnR2X25zZWMgPSBpbnRlcnZhbC5p dF92YWx1ZS50dl9uc2VjOworCQlpbnRlcnZhbC5pdF9pbnRlcnZhbC50dl9zZWMgPSBpbnRlcnZh bC5pdF92YWx1ZS50dl9zZWM7CisJCXIgPSB0aW1lcmZkX3NldHRpbWUoZGF0YS5jaGFuZ2Vfc2Ny ZWVuX3RpbWVyZmQsIDAsICZpbnRlcnZhbCwgTlVMTCk7CisJCWlndF9yZXF1aXJlX2YociAhPSAt MSwgIkVycm9yIHNldHRpbmcgdGltZXJmZFxuIik7CisJfQorCisJZm9yIChkYXRhLm9wID0gUEFH RV9GTElQOyBkYXRhLm9wIDwgTEFTVDsgZGF0YS5vcCsrKSB7CisJCWlndF9zdWJ0ZXN0X2YoIiVz Iiwgb3Bfc3RyKGRhdGEub3ApKSB7CisJCQlwcmVwYXJlKCZkYXRhKTsKKwkJCXJ1bigmZGF0YSk7 CisJCQljbGVhbnVwKCZkYXRhKTsKKwkJfQorCX0KKworCWlndF9maXh0dXJlIHsKKwkJY2xvc2Uo ZGF0YS5kZWJ1Z2ZzX2ZkKTsKKwkJZHJtX2ludGVsX2J1Zm1ncl9kZXN0cm95KGRhdGEuYnVmbWdy KTsKKwkJZGlzcGxheV9maW5pKCZkYXRhKTsKKwl9CisKKwlpZ3RfZXhpdCgpOworfQpkaWZmIC0t Z2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCAwZjEyZGYy Ni4uZWM5ODA2NTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL21l c29uLmJ1aWxkCkBAIC00OSw2ICs0OSw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ2ttc19wbGFuZV9z Y2FsaW5nJywKIAkna21zX3Byb3BlcnRpZXMnLAogCSdrbXNfcHNyJywKKwkna21zX3BzcjJfc3Un LAogCSdrbXNfcHdyaXRlX2NyYycsCiAJJ2ttc19ybWZiJywKIAkna21zX3JvdGF0aW9uX2NyYycs Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=