From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 865066EE7B for ; Fri, 11 Jun 2021 11:59:58 +0000 (UTC) From: venkata.sai.patnana@intel.com Date: Fri, 11 Jun 2021 17:19:39 +0530 Message-Id: <20210611114939.11009-2-venkata.sai.patnana@intel.com> In-Reply-To: <20210611095916.7158-2-venkata.sai.patnana@intel.com> References: <20210611095916.7158-2-venkata.sai.patnana@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 17/17] tests/kms_cdclk : Add test to validate cdclk crawling 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 List-ID: RnJvbTogU3dhdGkgU2hhcm1hIDxzd2F0aTIuc2hhcm1hQGludGVsLmNvbT4KCkFkZGVkIHRlc3Qg dG8gdmFsaWRhdGUgY2RjbGsgY3Jhd2xpbmcKCiogY3JlYXRlZCBuZXcgSUdUCiogYWRkZWQgMyB0 ZXN0IHNjZW5hcmlvcyAoYmFzaWMsIHNjYWxhciBhbmQgbW9kZS10cmFuc2l0aW9uKQoqIHVzZWQg ZXhpc3RpbmcgaTkxNV9mcmVxX2luZm8gZGVidWdmcyBBUEkgdG8gdmFsaWRhdGUgY2hhbmdlIGlu IGNkY2xrCgpDYzogTWlrYSBLYWhvbGEgPG1pa2Eua2Fob2xhQGludGVsLmNvbT4KQ2M6IE1hdHQg Um9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogU3RhbmlzbGF2IExpc292c2tpeSA8c3Rh bmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFN3YXRpIFNoYXJtYSA8 c3dhdGkyLnNoYXJtYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEp1aGEtUGVra2EgSGVpa2tp bMOkIDxqdWhhLXBla2thLmhlaWtraWxhQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWlrYSBL YWhvbGEgPG1pa2Eua2Fob2xhQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9rbXNfY2RjbGsuYyB8IDMw NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9t ZXNvbi5idWlsZCB8ICAgMSArCiAyIGZpbGVzIGNoYW5nZWQsIDMwOCBpbnNlcnRpb25zKCspCiBj cmVhdGUgbW9kZSAxMDA2NDQgdGVzdHMva21zX2NkY2xrLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9r bXNfY2RjbGsuYyBiL3Rlc3RzL2ttc19jZGNsay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLmQwMDJiZTgzODEKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfY2Rj bGsuYwpAQCAtMCwwICsxLDMwNyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENv cnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBj aGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2Fy ZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisg KiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcg d2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBt ZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNv cGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQor ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhp cyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNo YWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElT IiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwg SU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC SUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBI T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFC SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT RSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09G VFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgor ICoKKyAqIEF1dGhvcjoKKyAqICBTd2F0aSBTaGFybWEgPHN3YXRpMi5zaGFybWFAaW50ZWwuY29t PgorICovCisKKyNpbmNsdWRlICJpZ3QuaCIKKworSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3Qg Y2RjbGsgZmVhdHVyZXMgOiBjcmF3bGluZyIpOworCisvKiBUZXN0IGZsYWdzICovCitlbnVtIHsK KwlURVNUX0JBU0lDID0gMSA8PCAwLAorCVRFU1RfUExBTkVTQ0FMSU5HID0gMSA8PCAxLAorCVRF U1RfTU9ERVRSQU5TSVRJT04gPSAxIDw8IDIsCit9OworCit0eXBlZGVmIHN0cnVjdCB7CisJaW50 IGRybV9mZDsKKwlpbnQgZGVidWdmc19mZDsKKwl1aW50MzJfdCBkZXZpZDsKKwlpZ3RfZGlzcGxh eV90IGRpc3BsYXk7Cit9IGRhdGFfdDsKKworc3RhdGljIGJvb2wgaGFyZHdhcmVfc3VwcG9ydGVk KGRhdGFfdCAqZGF0YSkKK3sKKyAgICAgICAgaWYgKGludGVsX2Rpc3BsYXlfdmVyKGRhdGEtPmRl dmlkKSA+PSAxMykKKwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRp YyBpbnQgZ2V0X2N1cnJlbnRfY2RjbGtfZnJlcShpbnQgZGVidWdmc19mZCkKK3sKKwlpbnQgY2Rj bGtfZnJlcV9jdXJyZW50OworCWNoYXIgYnVmWzEwMjRdOworCWNoYXIgKnN0YXJ0X2xvYzsKKwlp bnQgcmVzOworCisJcmVzID0gaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGVidWdmc19mZCwgImk5 MTVfZnJlcXVlbmN5X2luZm8iLAorCQkJCSAgICAgIGJ1Ziwgc2l6ZW9mKGJ1ZikpOworCWlndF9y ZXF1aXJlKHJlcyA+IDApOworCisJaWd0X2Fzc2VydChzdGFydF9sb2MgPSBzdHJzdHIoYnVmLCAi Q3VycmVudCBDRCBjbG9jayBmcmVxdWVuY3k6ICIpKTsKKwlpZ3RfYXNzZXJ0X2VxKHNzY2FuZihz dGFydF9sb2MsICJDdXJyZW50IENEIGNsb2NrIGZyZXF1ZW5jeTogJWQiLCAmY2RjbGtfZnJlcV9j dXJyZW50KSwgMSk7CisJaWd0X2luZm8oIkN1cnJlbnQgQ0QgY2xvY2sgZnJlcXVlbmN5OiAlZFxu IiwgY2RjbGtfZnJlcV9jdXJyZW50KTsKKworCXJldHVybiBjZGNsa19mcmVxX2N1cnJlbnQ7Cit9 CisKK3N0YXRpYyBfX3U2NCBnZXRfbW9kZV9kYXRhX3JhdGUoZHJtTW9kZU1vZGVJbmZvICptb2Rl KQoreworCV9fdTY0IGRhdGFfcmF0ZSA9IChfX3U2NCltb2RlLT5oZGlzcGxheSAqIChfX3U2NClt b2RlLT52ZGlzcGxheSAqIChfX3U2NCltb2RlLT52cmVmcmVzaDsKKwlyZXR1cm4gZGF0YV9yYXRl OworfQorCitzdGF0aWMgZHJtTW9kZU1vZGVJbmZvICpnZXRfaGlnaHJlc19tb2RlKGlndF9vdXRw dXRfdCAqb3V0cHV0KQoreworCWRybU1vZGVNb2RlSW5mbyAqaGlnaGVzdF9tb2RlID0gTlVMTDsK Kwlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IgPSBvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3I7 CisJaW50IGo7CisKKwlmb3IgKGogPSAwOyBqIDwgY29ubmVjdG9yLT5jb3VudF9tb2Rlczsgaisr KSB7CisJCWlmICghaGlnaGVzdF9tb2RlKSB7CisJCQloaWdoZXN0X21vZGUgPSAmY29ubmVjdG9y LT5tb2Rlc1tqXTsKKwkJfSBlbHNlIGlmIChjb25uZWN0b3ItPm1vZGVzW2pdLnZkaXNwbGF5ICYm IGNvbm5lY3Rvci0+bW9kZXNbal0uaGRpc3BsYXkpIHsKKwkJCV9fdTY0IGhpZ2hlc3RfZGF0YV9y YXRlID0gZ2V0X21vZGVfZGF0YV9yYXRlKGhpZ2hlc3RfbW9kZSk7CisJCQlfX3U2NCBkYXRhX3Jh dGUgPSBnZXRfbW9kZV9kYXRhX3JhdGUoJmNvbm5lY3Rvci0+bW9kZXNbal0pOworCisJCQlpZiAo aGlnaGVzdF9kYXRhX3JhdGUgPCBkYXRhX3JhdGUpCisJCQkJaGlnaGVzdF9tb2RlID0gJmNvbm5l Y3Rvci0+bW9kZXNbal07CisJCX0KKwl9CisKKwlyZXR1cm4gaGlnaGVzdF9tb2RlOworfQorCitz dGF0aWMgZHJtTW9kZU1vZGVJbmZvICpnZXRfbG93cmVzX21vZGUoaWd0X291dHB1dF90ICpvdXRw dXQpCit7CisJZHJtTW9kZU1vZGVJbmZvICpsb3dlc3RfbW9kZSA9IE5VTEw7CisJZHJtTW9kZUNv bm5lY3RvciAqY29ubmVjdG9yID0gb3V0cHV0LT5jb25maWcuY29ubmVjdG9yOworCWludCBqOwor CisJZm9yIChqID0gMDsgaiA8IGNvbm5lY3Rvci0+Y291bnRfbW9kZXM7IGorKykgeworCQlpZiAo IWxvd2VzdF9tb2RlKSB7CisJCQlsb3dlc3RfbW9kZSA9ICZjb25uZWN0b3ItPm1vZGVzW2pdOwor CQl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+bW9kZXNbal0udmRpc3BsYXkgJiYgY29ubmVjdG9yLT5t b2Rlc1tqXS5oZGlzcGxheSkgeworCQkJX191NjQgbG93ZXN0X2RhdGFfcmF0ZSA9IGdldF9tb2Rl X2RhdGFfcmF0ZShsb3dlc3RfbW9kZSk7CisJCQlfX3U2NCBkYXRhX3JhdGUgPSBnZXRfbW9kZV9k YXRhX3JhdGUoJm91dHB1dC0+Y29uZmlnLmNvbm5lY3Rvci0+bW9kZXNbal0pOworCisJCQlpZiAo bG93ZXN0X2RhdGFfcmF0ZSA+IGRhdGFfcmF0ZSkKKwkJCQlsb3dlc3RfbW9kZSA9ICZjb25uZWN0 b3ItPm1vZGVzW2pdOworCQl9CisJfQorCisJcmV0dXJuIGxvd2VzdF9tb2RlOworfQorCitzdGF0 aWMgdm9pZCBkb19jbGVhbnVwX2Rpc3BsYXkoaWd0X2Rpc3BsYXlfdCAqZHB5KQoreworCWVudW0g cGlwZSBwaXBlOworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWlndF9wbGFuZV90ICpwbGFuZTsK KworCWZvcl9lYWNoX3BpcGUoZHB5LCBwaXBlKQorCQlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKGRw eSwgcGlwZSwgcGxhbmUpCisJCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBOVUxMKTsKKworCWZv cl9lYWNoX2Nvbm5lY3RlZF9vdXRwdXQoZHB5LCBvdXRwdXQpCisJCWlndF9vdXRwdXRfc2V0X3Bp cGUob3V0cHV0LCBQSVBFX05PTkUpOworCisJaWd0X2Rpc3BsYXlfY29tbWl0MihkcHksIGRweS0+ aXNfYXRvbWljID8gQ09NTUlUX0FUT01JQyA6IENPTU1JVF9MRUdBQ1kpOworfQorCitzdGF0aWMg dm9pZCB0ZXN0X2Jhc2ljKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRf dCAqb3V0cHV0KQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsK KwlpbnQgZGVidWdmc19mZCA9IGRhdGEtPmRlYnVnZnNfZmQ7CisJaW50IGNkY2xrX3JlZiwgY2Rj bGtfbmV3OworCXN0cnVjdCBpZ3RfZmIgZmI7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisJZHJt TW9kZU1vZGVJbmZvICptb2RlOworCisJZG9fY2xlYW51cF9kaXNwbGF5KGRpc3BsYXkpOworCWln dF9kaXNwbGF5X3Jlc2V0KGRpc3BsYXkpOworCisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQs IHBpcGUpOworCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7CisJcHJpbWFyeSA9 IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZ KTsKKworCWlndF9jcmVhdGVfY29sb3JfcGF0dGVybl9mYihkaXNwbGF5LT5kcm1fZmQsCisJCQkJ ICAgIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKKwkJCQkgICAgRFJNX0ZPUk1BVF9Y UkdCODg4OCwKKwkJCQkgICAgSTkxNV9USUxJTkdfTk9ORSwKKwkJCQkgICAgMC4wLCAwLjAsIDAu MCwgJmZiKTsKKworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmZiKTsKKwljZGNsa19yZWYg PSBnZXRfY3VycmVudF9jZGNsa19mcmVxKGRlYnVnZnNfZmQpOworCWlndF9kaXNwbGF5X2NvbW1p dF9hdG9taWMoZGlzcGxheSwgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQsIE5VTEwpOwor CWNkY2xrX25ldyA9IGdldF9jdXJyZW50X2NkY2xrX2ZyZXEoZGVidWdmc19mZCk7CisKKwkvKiBj ZGNsayBzaG91bGQgYnVtcCAqLworCWlndF9hc3NlcnRfbHQoY2RjbGtfcmVmLCBjZGNsa19uZXcp OworCisJLyogY2xlYW51cCAqLworCWRvX2NsZWFudXBfZGlzcGxheShkaXNwbGF5KTsKKwlpZ3Rf cmVtb3ZlX2ZiKGRpc3BsYXktPmRybV9mZCwgJmZiKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9w bGFuZV9zY2FsaW5nKGRhdGFfdCAqZGF0YSwgZW51bSBwaXBlIHBpcGUsIGlndF9vdXRwdXRfdCAq b3V0cHV0KQoreworCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKKwlp bnQgZGVidWdmc19mZCA9IGRhdGEtPmRlYnVnZnNfZmQ7CisJaW50IGNkY2xrX3JlZiwgY2RjbGtf bmV3OworCXN0cnVjdCBpZ3RfZmIgZmI7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisJZHJtTW9k ZU1vZGVJbmZvICptb2RlOworCWludCBzY2FsaW5nID0gNjA7CisKKwlkb19jbGVhbnVwX2Rpc3Bs YXkoZGlzcGxheSk7CisJaWd0X2Rpc3BsYXlfcmVzZXQoZGlzcGxheSk7CisKKwlpZ3Rfb3V0cHV0 X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0 cHV0KTsKKworCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKG91dHB1dCwgRFJN X1BMQU5FX1RZUEVfUFJJTUFSWSk7CisKKwlpZ3RfY3JlYXRlX2NvbG9yX3BhdHRlcm5fZmIoZGlz cGxheS0+ZHJtX2ZkLAorCQkJCSAgICBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksCisJ CQkJICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQkJICAgIEk5MTVfVElMSU5HX05PTkUsCisJ CQkJICAgIDAuMCwgMC4wLCAwLjAsICZmYik7CisJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCAm ZmIpOworCisJLyogZG93bnNjYWxpbmcgKi8KKwlpZ3RfcGxhbmVfc2V0X3NpemUocHJpbWFyeSwg KChmYi53aWR0aCAqIHNjYWxpbmcpIC8gMTAwKSwgKChmYi5oZWlnaHQgKiBzY2FsaW5nKSAvIDEw MCkpOworCWNkY2xrX3JlZiA9IGdldF9jdXJyZW50X2NkY2xrX2ZyZXEoZGVidWdmc19mZCk7CisJ aWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYyhkaXNwbGF5LCBEUk1fTU9ERV9BVE9NSUNfQUxMT1df TU9ERVNFVCwgTlVMTCk7CisJY2RjbGtfbmV3ID0gZ2V0X2N1cnJlbnRfY2RjbGtfZnJlcShkZWJ1 Z2ZzX2ZkKTsKKworCS8qIGNkY2xrIHNob3VsZCBidW1wICovCisJaWd0X2Fzc2VydF9sdChjZGNs a19yZWYsIGNkY2xrX25ldyk7CisKKwkvKiBjbGVhbnVwICovCisJZG9fY2xlYW51cF9kaXNwbGF5 KGRpc3BsYXkpOworCWlndF9yZW1vdmVfZmIoZGlzcGxheS0+ZHJtX2ZkLCAmZmIpOworfQorCitz dGF0aWMgdm9pZCB0ZXN0X21vZGVfdHJhbnNpdGlvbihkYXRhX3QgKmRhdGEsIGVudW0gcGlwZSBw aXBlLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKK3sKKwlpZ3RfZGlzcGxheV90ICpkaXNwbGF5ID0g JmRhdGEtPmRpc3BsYXk7CisJaW50IGRlYnVnZnNfZmQgPSBkYXRhLT5kZWJ1Z2ZzX2ZkOworCWlu dCBjZGNsa19yZWYsIGNkY2xrX25ldzsKKwlzdHJ1Y3QgaWd0X2ZiIGZiOworCWlndF9wbGFuZV90 ICpwcmltYXJ5OworCWRybU1vZGVNb2RlSW5mbyAqbW9kZV9oaSwgKm1vZGVfbG8sICptb2RlOwor CisJZG9fY2xlYW51cF9kaXNwbGF5KGRpc3BsYXkpOworCWlndF9kaXNwbGF5X3Jlc2V0KGRpc3Bs YXkpOworCisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOworCW1vZGUgPSBpZ3Rf b3V0cHV0X2dldF9tb2RlKG91dHB1dCk7CisJbW9kZV9sbyA9IGdldF9sb3dyZXNfbW9kZShvdXRw dXQpOworCW1vZGVfaGkgPSBnZXRfaGlnaHJlc19tb2RlKG91dHB1dCk7CisKKwlpZiAobW9kZV9o aS0+aGRpc3BsYXkgPT0gbW9kZV9sby0+aGRpc3BsYXkgJiYKKwkgICAgbW9kZV9oaS0+dmRpc3Bs YXkgPT0gbW9kZV9sby0+dmRpc3BsYXkpCisJCWlndF9za2lwKCJIaWdoZXN0IGFuZCBsb3dlc3Qg bW9kZSByZXNvbHV0aW9ucyBhcmUgc2FtZTsgbm8gdHJhbnNpdGlvblxuIik7CisKKwlwcmltYXJ5 ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1B UlkpOworCisJaWd0X2NyZWF0ZV9jb2xvcl9wYXR0ZXJuX2ZiKGRpc3BsYXktPmRybV9mZCwKKwkJ CQkgICAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAorCQkJCSAgICBEUk1fRk9STUFU X1hSR0I4ODg4LAorCQkJCSAgICBJOTE1X1RJTElOR19OT05FLAorCQkJCSAgICAwLjAsIDAuMCwg MC4wLCAmZmIpOworCisJLyogc3dpdGNoIHRvIGxvd2VyIHJlc29sdXRpb24gKi8KKwlpZ3Rfb3V0 cHV0X292ZXJyaWRlX21vZGUob3V0cHV0LCBtb2RlX2xvKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBy aW1hcnksICZmYik7CisJaWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYyhkaXNwbGF5LCBEUk1fTU9E RV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwgTlVMTCk7CisJY2RjbGtfcmVmID0gZ2V0X2N1cnJlbnRf Y2RjbGtfZnJlcShkZWJ1Z2ZzX2ZkKTsKKworCS8qIHN3aXRjaCB0byBoaWdoZXIgcmVzb2x1dGlv biAqLworCWlndF9vdXRwdXRfb3ZlcnJpZGVfbW9kZShvdXRwdXQsIG1vZGVfaGkpOworCWlndF9w bGFuZV9zZXRfZmIocHJpbWFyeSwgJmZiKTsKKwlpZ3RfZGlzcGxheV9jb21taXRfYXRvbWljKGRp c3BsYXksIERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULCBOVUxMKTsKKwljZGNsa19uZXcg PSBnZXRfY3VycmVudF9jZGNsa19mcmVxKGRlYnVnZnNfZmQpOworCisJLyogY2RjbGsgc2hvdWxk IGJ1bXAgKi8KKwlpZ3RfYXNzZXJ0X2x0KGNkY2xrX3JlZiwgY2RjbGtfbmV3KTsKKworCS8qIGNs ZWFudXAgKi8KKwlkb19jbGVhbnVwX2Rpc3BsYXkoZGlzcGxheSk7CisJaWd0X3JlbW92ZV9mYihk aXNwbGF5LT5kcm1fZmQsICZmYik7Cit9CisKK3N0YXRpYyB2b2lkIHJ1bl9jZGNsa190ZXN0KGRh dGFfdCAqZGF0YSwgdWludDMyX3QgZmxhZ3MpCit7CisJaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9 ICZkYXRhLT5kaXNwbGF5OworCWlndF9vdXRwdXRfdCAqb3V0cHV0OworCWVudW0gcGlwZSBwaXBl OworCisJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRw dXQpIHsKKwkJaWd0X2R5bmFtaWNfZigiJXMtcGlwZS0lcyIsIG91dHB1dC0+bmFtZSwga21zdGVz dF9waXBlX25hbWUocGlwZSkpCisJCQlpZiAoaWd0X3BpcGVfY29ubmVjdG9yX3ZhbGlkKHBpcGUs IG91dHB1dCkpIHsKKwkJCQlpZiAoZmxhZ3MgJiBURVNUX0JBU0lDKQorCQkJCQl0ZXN0X2Jhc2lj KGRhdGEsIHBpcGUsIG91dHB1dCk7CisJCQkJaWYgKGZsYWdzICYgVEVTVF9QTEFORVNDQUxJTkcp CisJCQkJCXRlc3RfcGxhbmVfc2NhbGluZyhkYXRhLCBwaXBlLCBvdXRwdXQpOworCQkJCWlmIChm bGFncyAmIFRFU1RfTU9ERVRSQU5TSVRJT04pCisJCQkJCXRlc3RfbW9kZV90cmFuc2l0aW9uKGRh dGEsIHBpcGUsIG91dHB1dCk7CisJCQl9CisJfQorfQorCitpZ3RfbWFpbgoreworCWRhdGFfdCBk YXRhID0ge307CisKKwlpZ3RfZml4dHVyZSB7CisJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJp dmVyX21hc3RlcihEUklWRVJfSU5URUwpOworCQlpZ3RfcmVxdWlyZShkYXRhLmRybV9mZCA+PSAw KTsKKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0X2RlYnVnZnNfZGlyKGRhdGEuZHJtX2ZkKTsKKwkJ aWd0X3JlcXVpcmUoZGF0YS5kZWJ1Z2ZzX2ZkKTsKKwkJa21zdGVzdF9zZXRfdnRfZ3JhcGhpY3Nf bW9kZSgpOworCQlkYXRhLmRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChkYXRhLmRybV9mZCk7 CisJCWlndF9yZXF1aXJlX2YoaGFyZHdhcmVfc3VwcG9ydGVkKCZkYXRhKSwKKwkJCSAgICAgICJI YXJkd2FyZSBkb2Vzbid0IHN1cHBvcnQgY3Jhd2xpbmcuXG4iKTsKKwkJaWd0X2Rpc3BsYXlfcmVx dWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7CisJCWlndF9kaXNwbGF5X3JlcXVpcmVf b3V0cHV0KCZkYXRhLmRpc3BsYXkpOworCX0KKworCWlndF9kZXNjcmliZSgiQmFzaWMgdGVzdCB0 byB2YWxpZGF0ZSBjZGNsayBmcmVxdWVuY3kgY2hhbmdlIik7CisJaWd0X3N1YnRlc3Rfd2l0aF9k eW5hbWljKCJiYXNpYyIpCisJCXJ1bl9jZGNsa190ZXN0KCZkYXRhLCBURVNUX0JBU0lDKTsKKwlp Z3RfZGVzY3JpYmUoIlBsYW5lIHNjYWxpbmcgdGVzdCB0byB2YWxpZGF0ZSBjZGNsayBmcmVxdWVu Y3kgY2hhbmdlIik7CisJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJwbGFuZS1zY2FsaW5nIikK KwkJcnVuX2NkY2xrX3Rlc3QoJmRhdGEsIFRFU1RfUExBTkVTQ0FMSU5HKTsKKwlpZ3RfZGVzY3Jp YmUoIk1vZGUgdHJhbnNpdGlvbiAobG93IHRvIGhpZ2gpIHRlc3QgdG8gdmFsaWRhdGUgY2RjbGsg ZnJlcXVlbmN5Iik7CisJaWd0X3N1YnRlc3Rfd2l0aF9keW5hbWljKCJtb2RlLXRyYW5zaXRpb24i KQorCQlydW5fY2RjbGtfdGVzdCgmZGF0YSwgVEVTVF9NT0RFVFJBTlNJVElPTik7CisKKwlpZ3Rf Zml4dHVyZSB7CisJCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlzcGxheSk7CisJfQorfQpkaWZm IC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCBlNTk1 NGUyODMyLi5kM2RlNDBiZTA3IDEwMDY0NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90 ZXN0cy9tZXNvbi5idWlsZApAQCAtMjMsNiArMjMsNyBAQCB0ZXN0X3Byb2dzID0gWwogCSdrbXNf YmlnX2pvaW5lcicgLAogCSdrbXNfYnVzeScsCiAJJ2ttc19jY3MnLAorCSdrbXNfY2RjbGsnLAog CSdrbXNfY29uY3VycmVudCcsCiAJJ2ttc19jb250ZW50X3Byb3RlY3Rpb24nLAogCSdrbXNfY3Vy c29yX2NyYycsCi0tIAoyLjI1LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0 LWRldgo=