From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 12CB76E037 for ; Fri, 5 Apr 2019 08:24:49 +0000 (UTC) From: Maarten Lankhorst Date: Fri, 5 Apr 2019 10:24:41 +0200 Message-Id: <20190405082441.6454-1-maarten.lankhorst@linux.intel.com> In-Reply-To: References: MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] tests/kms_chamelium: Fix *-cmp-random and *-crc-random tests, v2. 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: VGhlIHJhbmRvbSB0ZXN0cyBhbGxvd2VkIHBvdGVudGlhbGx5IGludmFsaWQgdGhpbmdzOgotIDF4 MSBmYidzIHRvIGJlIGNyZWF0ZWQuIEZvcmNlIGEgbWluaW11bSBvZiAzMiBvbiBpOTE1IHNvIGEg c2NhbGVkCiAgcGxhbmUgd2lsbCBiZSBhdCBsZWFzdCAxNngxNi4gVGhpcyB3aWxsIGZpeCBzY2Fs ZWQvcGxhbmFyIGZvcm1hdAogIHN1cHBvcnQgaW4gaTkxNSBhbmQgYXZvaWQgYSBkaXYgYnkgemVy byB3aGVuIGNhbGN1bGF0aW5nIGEgdmFsdWUKICBtb2R1bG8gaC8yIGFuZCB3LzIuCi0gRG93bnNj YWxpbmcgdG8gYW55IGFtb3VudCwgcmVzdHJpY3QgaXQgdG8gMnggdG8gbWFrZSB0aGUgdGVzdCBw YXNzLgotIFNvbWUgaHcgbWF5IG5vdCBhbGxvdyBzY2FsaW5nLCBpbiB0aG9zZSBjYXNlcyB3ZSBz aG91bGQgZmFsbGJhY2sKICB0byBubyBzY2FsaW5nIGF0IGFsbC4KLSBBdHRlbXB0aW5nIHRvIGNv bmZpZ3VyZSBhIG1pbmltdW0gb2YgNCBwbGFuZXMsIGluc3RlYWQgb2YgYSBtYXhpbXVtLgogIFRo aXMgZmFpbHMgd2l0aCBhIG51bGwgcG9pbnRlciBkZXJlZiBpZiB0aGUgaHcgZG9lc24ndCBoYXZl IDQKICBjb25maWd1cmFibGUgb3ZlcmxheSBwbGFuZXMuCgpDaGFuZ2VzIHNpbmNlIHYxOgotIEVu Zm9yY2UgYSBtaW5pbXVtIGRpc3BsYXllZCBzaXplIG9mIDE2eDE2IGZvciBpbnRlbCBvbmx5LAog IG90aGVyd2lzZSBpdCdzIDF4MS4KLSBGaXggY29tbWVudHMuCgpDYzogUGF1bCBLb2NpYWxrb3dz a2kgPHBhdWwua29jaWFsa293c2tpQGJvb3RsaW4uY29tPgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIHRlc3Rz L2ttc19jaGFtZWxpdW0uYyB8IDE5OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2NoYW1lbGl1bS5jIGIvdGVzdHMva21zX2NoYW1l bGl1bS5jCmluZGV4IDJkYzEwNDlkMmRkYS4uMDNkODc0YzVhMTgzIDEwMDY0NAotLS0gYS90ZXN0 cy9rbXNfY2hhbWVsaXVtLmMKKysrIGIvdGVzdHMva21zX2NoYW1lbGl1bS5jCkBAIC03OTEsMjcg Kzc5MSw1NiBAQCBzdGF0aWMgdm9pZCByYW5kb21pemVfcGxhbmVfZm9ybWF0X3N0cmlkZShpZ3Rf cGxhbmVfdCAqcGxhbmUsCiAJCSptb2RpZmllciA9IERSTV9GT1JNQVRfTU9EX0xJTkVBUjsKIH0K IAotc3RhdGljIHZvaWQgcmFuZG9taXplX3BsYW5lX2RpbWVuc2lvbnMoZHJtTW9kZU1vZGVJbmZv ICptb2RlLAotCQkJCSAgICAgICB1aW50MzJfdCAqd2lkdGgsIHVpbnQzMl90ICpoZWlnaHQsCi0J CQkJICAgICAgIHVpbnQzMl90ICpzcmNfdywgdWludDMyX3QgKnNyY19oLAotCQkJCSAgICAgICB1 aW50MzJfdCAqc3JjX3gsIHVpbnQzMl90ICpzcmNfeSwKLQkJCQkgICAgICAgdWludDMyX3QgKmNy dGNfdywgdWludDMyX3QgKmNydGNfaCwKLQkJCQkgICAgICAgaW50MzJfdCAqY3J0Y194LCBpbnQz Ml90ICpjcnRjX3ksCi0JCQkJICAgICAgIGJvb2wgYWxsb3dfc2NhbGluZykKK3N0YXRpYyB2b2lk IHJhbmRvbWl6ZV9wbGFuZV9kaW1lbnNpb25zKGRhdGFfdCAqZGF0YSwgZHJtTW9kZU1vZGVJbmZv ICptb2RlLAorCQkJCSAgICAgICB1aW50MzJfdCAqd2lkdGgsIHVpbnQzMl90ICpoZWlnaHQpCiB7 Ci0JZG91YmxlIHJhdGlvOworCWludCBtaW5fZGltID0gaXNfaTkxNV9kZXZpY2UoZGF0YS0+ZHJt X2ZkKSA/IDE2IDogMTsKKworCS8qCisJICogUmFuZG9taXplIHdpZHRoIGFuZCBoZWlnaHQgaW4g dGhlIG1vZGUgZGltZW5zaW9ucyByYW5nZS4KKwkgKgorCSAqIFJlc3RyaWN0IHRvIGEgbWluIG9m IDIgKiBtaW5fZGltLCB0aGlzIHdheSBzcmNfdy9oIGFyZSBhbHdheXMgYXQKKwkgKiBsZWFzdCBt aW5fZGltLCBiZWNhdXNlIHNyY193ID0gd2lkdGggLSAocmFuZCAlIHcgLyAyKS4KKwkgKi8KKwkq d2lkdGggPSBtYXgoKHJhbmQoKSAlIG1vZGUtPmhkaXNwbGF5KSArIDEsIDIgKiBtaW5fZGltKTsK KwkqaGVpZ2h0ID0gbWF4KChyYW5kKCkgJSBtb2RlLT52ZGlzcGxheSkgKyAxLCAyICogbWluX2Rp bSk7Cit9CisKK3N0YXRpYyB2b2lkIGNvbmZpZ3VyZV9wbGFuZShpZ3RfcGxhbmVfdCAqcGxhbmUs IHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKKwkJCSAgICB1aW50MzJfdCBzcmNfeCwg dWludDMyX3Qgc3JjX3ksIHVpbnQzMl90IGNydGNfdywKKwkJCSAgICB1aW50MzJfdCBjcnRjX2gs IGludDMyX3QgY3J0Y194LCBpbnQzMl90IGNydGNfeSwKKwkJCSAgICBzdHJ1Y3QgaWd0X2ZiICpm YikKK3sKKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBmYik7CisKKwlpZ3RfcGxhbmVfc2V0X3Bv c2l0aW9uKHBsYW5lLCBjcnRjX3gsIGNydGNfeSk7CisJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5l LCBjcnRjX3csIGNydGNfaCk7CisKKwlpZ3RfZmJfc2V0X3Bvc2l0aW9uKGZiLCBwbGFuZSwgc3Jj X3gsIHNyY195KTsKKwlpZ3RfZmJfc2V0X3NpemUoZmIsIHBsYW5lLCBzcmNfdywgc3JjX2gpOwor fQogCi0JLyogUmFuZG9taXplIHdpZHRoIGFuZCBoZWlnaHQgaW4gdGhlIG1vZGUgZGltZW5zaW9u cyByYW5nZS4gKi8KLQkqd2lkdGggPSAocmFuZCgpICUgbW9kZS0+aGRpc3BsYXkpICsgMTsKLQkq aGVpZ2h0ID0gKHJhbmQoKSAlIG1vZGUtPnZkaXNwbGF5KSArIDE7CitzdGF0aWMgdm9pZCByYW5k b21pemVfcGxhbmVfY29vcmRpbmF0ZXMoZGF0YV90ICpkYXRhLCBpZ3RfcGxhbmVfdCAqcGxhbmUs CisJCQkJCWRybU1vZGVNb2RlSW5mbyAqbW9kZSwKKwkJCQkJc3RydWN0IGlndF9mYiAqZmIsCisJ CQkJCXVpbnQzMl90ICpzcmNfdywgdWludDMyX3QgKnNyY19oLAorCQkJCQl1aW50MzJfdCAqc3Jj X3gsIHVpbnQzMl90ICpzcmNfeSwKKwkJCQkJdWludDMyX3QgKmNydGNfdywgdWludDMyX3QgKmNy dGNfaCwKKwkJCQkJaW50MzJfdCAqY3J0Y194LCBpbnQzMl90ICpjcnRjX3ksCisJCQkJCWJvb2wg YWxsb3dfc2NhbGluZykKK3sKKwlib29sIGlzX3l1diA9IGlndF9mb3JtYXRfaXNfeXV2KGZiLT5k cm1fZm9ybWF0KTsKKwl1aW50MzJfdCB3aWR0aCA9IGZiLT53aWR0aCwgaGVpZ2h0ID0gZmItPmhl aWdodDsKKwlkb3VibGUgcmF0aW87CisJaW50IHJldDsKIAogCS8qIFJhbmRvbWl6ZSBzb3VyY2Ug b2Zmc2V0IGluIHRoZSBmaXJzdCBoYWxmIG9mIHRoZSBvcmlnaW5hbCBzaXplLiAqLwotCSpzcmNf eCA9IHJhbmQoKSAlICgqd2lkdGggLyAyKTsKLQkqc3JjX3kgPSByYW5kKCkgJSAoKmhlaWdodCAv IDIpOworCSpzcmNfeCA9IHJhbmQoKSAlICh3aWR0aCAvIDIpOworCSpzcmNfeSA9IHJhbmQoKSAl IChoZWlnaHQgLyAyKTsKIAogCS8qIFRoZSBzb3VyY2Ugc2l6ZSBvbmx5IGluY2x1ZGVzIHRoZSBh Y3RpdmUgc291cmNlIGFyZWEuICovCi0JKnNyY193ID0gKndpZHRoIC0gKnNyY194OwotCSpzcmNf aCA9ICpoZWlnaHQgLSAqc3JjX3k7CisJKnNyY193ID0gd2lkdGggLSAqc3JjX3g7CisJKnNyY19o ID0gaGVpZ2h0IC0gKnNyY195OwogCiAJaWYgKGFsbG93X3NjYWxpbmcpIHsKIAkJKmNydGNfdyA9 IChyYW5kKCkgJSBtb2RlLT5oZGlzcGxheSkgKyAxOwpAQCAtODIxLDE3ICs4NTAsMjIgQEAgc3Rh dGljIHZvaWQgcmFuZG9taXplX3BsYW5lX2RpbWVuc2lvbnMoZHJtTW9kZU1vZGVJbmZvICptb2Rl LAogCQkgKiBEb24ndCBib3RoZXIgd2l0aCBzY2FsaW5nIGlmIGRpbWVuc2lvbnMgYXJlIHF1aXRl IGNsb3NlIGluCiAJCSAqIG9yZGVyIHRvIGdldCBub24tc2NhbGluZyBjYXNlcyBtb3JlIGZyZXF1 ZW50bHkuIEFsc28gbGltaXQKIAkJICogc2NhbGluZyB0byAzeCB0byBhdm9pZCBhZ3Jlc3NpdmUg ZmlsdGVyaW5nIHRoYXQgbWFrZXMKLQkJICogY29tcGFyaXNvbiBsZXNzIHJlbGlhYmxlLgorCQkg KiBjb21wYXJpc29uIGxlc3MgcmVsaWFibGUsIGFuZCBkb24ndCBnbyBhYm92ZSAyeCBkb3duc2Ft cGxpbmcKKwkJICogdG8gYXZvaWQgcG9zc2libGUgaHcgbGltaXRhdGlvbnMuCiAJCSAqLwogCiAJ CXJhdGlvID0gKChkb3VibGUpICpjcnRjX3cgLyAqc3JjX3cpOwotCQlpZiAocmF0aW8gPiAwLjgg JiYgcmF0aW8gPCAxLjIpCisJCWlmIChyYXRpbyA8IDAuNSkKKwkJCSpzcmNfdyA9ICpjcnRjX3cg KiAyOworCQllbHNlIGlmIChyYXRpbyA+IDAuOCAmJiByYXRpbyA8IDEuMikKIAkJCSpjcnRjX3cg PSAqc3JjX3c7CiAJCWVsc2UgaWYgKHJhdGlvID4gMy4wKQogCQkJKmNydGNfdyA9ICpzcmNfdyAq IDM7CiAKIAkJcmF0aW8gPSAoKGRvdWJsZSkgKmNydGNfaCAvICpzcmNfaCk7Ci0JCWlmIChyYXRp byA+IDAuOCAmJiByYXRpbyA8IDEuMikKKwkJaWYgKHJhdGlvIDwgMC41KQorCQkJKnNyY19oID0g KmNydGNfaCAqIDI7CisJCWVsc2UgaWYgKHJhdGlvID4gMC44ICYmIHJhdGlvIDwgMS4yKQogCQkJ KmNydGNfaCA9ICpzcmNfaDsKIAkJZWxzZSBpZiAocmF0aW8gPiAzLjApCiAJCQkqY3J0Y19oID0g KnNyY19oICogMzsKQEAgLTg0Niw4ICs4ODAsMTUgQEAgc3RhdGljIHZvaWQgcmFuZG9taXplX3Bs YW5lX2RpbWVuc2lvbnMoZHJtTW9kZU1vZGVJbmZvICptb2RlLAogCQkgKiBzY2FsZWQgY2xpcHBp bmcgbWF5IHJlc3VsdCBpbiBkZWNpbWFsIGRpbWVuc2lvbnMsIHRoYXQgbW9zdAogCQkgKiBkcml2 ZXJzIGRvbid0IHN1cHBvcnQuCiAJCSAqLwotCQkqY3J0Y194ID0gcmFuZCgpICUgKG1vZGUtPmhk aXNwbGF5IC0gKmNydGNfdyk7Ci0JCSpjcnRjX3kgPSByYW5kKCkgJSAobW9kZS0+dmRpc3BsYXkg LSAqY3J0Y19oKTsKKwkJaWYgKCpjcnRjX3cgPCBtb2RlLT5oZGlzcGxheSkKKwkJCSpjcnRjX3gg PSByYW5kKCkgJSAobW9kZS0+aGRpc3BsYXkgLSAqY3J0Y193KTsKKwkJZWxzZQorCQkJKmNydGNf eCA9IDA7CisKKwkJaWYgKCpjcnRjX2ggPCBtb2RlLT52ZGlzcGxheSkKKwkJCSpjcnRjX3kgPSBy YW5kKCkgJSAobW9kZS0+dmRpc3BsYXkgLSAqY3J0Y19oKTsKKwkJZWxzZQorCQkJKmNydGNfeSA9 IDA7CiAJfSBlbHNlIHsKIAkJLyoKIAkJICogUmFuZG9taXplIHRoZSBvbi1jcnRjIHBvc2l0aW9u IGFuZCBhbGxvdyB0aGUgcGxhbmUgdG8gZ28KQEAgLTg1Niw2ICs4OTcsNTAgQEAgc3RhdGljIHZv aWQgcmFuZG9taXplX3BsYW5lX2RpbWVuc2lvbnMoZHJtTW9kZU1vZGVJbmZvICptb2RlLAogCQkq Y3J0Y194ID0gKHJhbmQoKSAlIG1vZGUtPmhkaXNwbGF5KSAtICpjcnRjX3cgLyAyOwogCQkqY3J0 Y195ID0gKHJhbmQoKSAlIG1vZGUtPnZkaXNwbGF5KSAtICpjcnRjX2ggLyAyOwogCX0KKworCWNv bmZpZ3VyZV9wbGFuZShwbGFuZSwgKnNyY193LCAqc3JjX2gsICpzcmNfeCwgKnNyY195LAorCQkJ KmNydGNfdywgKmNydGNfaCwgKmNydGNfeCwgKmNydGNfeSwgZmIpOworCXJldCA9IGlndF9kaXNw bGF5X3RyeV9jb21taXRfYXRvbWljKCZkYXRhLT5kaXNwbGF5LAorCQkJCQkgICAgRFJNX01PREVf QVRPTUlDX1RFU1RfT05MWSB8CisJCQkJCSAgICBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNF VCwKKwkJCQkJICAgIE5VTEwpOworCWlmICghcmV0KQorCQlyZXR1cm47CisKKwkvKiBDb29yZGlu YXRlcyBhcmUgbG9nZ2VkIGluIHRoZSBkdW1wZWQgZGVidWcgbG9nLCBzbyBvbmx5IHJlcG9ydCB3 L2ggb24gZmFpbHVyZSBoZXJlICovCisJaWd0X2Fzc2VydF9mKHJldCAhPSAtRU5PU1BDLCAiRmFp bHVyZSBpbiB0ZXN0Y2FzZSwgaW52YWxpZCBjb29yZGluYXRlcyBvbiBhICV1eCV1IGZiXG4iLCB3 aWR0aCwgaGVpZ2h0KTsKKworCS8qIE1ha2UgWVVWIGNvb3JkaW5hdGVzIGEgbXVsdGlwbGUgb2Yg MiBhbmQgcmV0cnkgdGhlIG1hdGguICovCisJaWYgKGlzX3l1dikgeworCQkqc3JjX3ggJj0gfjE7 CisJCSpzcmNfeSAmPSB+MTsKKwkJKnNyY193ICY9IH4xOworCQkqc3JjX2ggJj0gfjE7CisJCS8q IFRvIGhhbmRsZSAxOjEgc2NhbGluZywgY2xlYXIgY3J0Y193L2ggdG9vLiAqLworCQkqY3J0Y193 ICY9IH4xOworCQkqY3J0Y19oICY9IH4xOworCQljb25maWd1cmVfcGxhbmUocGxhbmUsICpzcmNf dywgKnNyY19oLCAqc3JjX3gsICpzcmNfeSwgKmNydGNfdywKKwkJCQkqY3J0Y19oLCAqY3J0Y194 LCAqY3J0Y195LCBmYik7CisJCXJldCA9IGlndF9kaXNwbGF5X3RyeV9jb21taXRfYXRvbWljKCZk YXRhLT5kaXNwbGF5LAorCQkJCQkJRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSB8CisJCQkJCQlE Uk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwKKwkJCQkJCU5VTEwpOworCQlpZiAoIXJldCkK KwkJCXJldHVybjsKKwl9CisKKwlpZ3RfYXNzZXJ0KCFyZXQgfHwgYWxsb3dfc2NhbGluZyk7CisJ aWd0X2luZm8oIlNjYWxpbmcgcmF0aW8gJWcgLyAlZyBmYWlsZWQsIHRyeWluZyB3aXRob3V0IHNj YWxpbmcuXG4iLAorCQkgICgoZG91YmxlKSAqY3J0Y193IC8gKnNyY193KSwgKChkb3VibGUpICpj cnRjX2ggLyAqc3JjX2gpKTsKKworCSpjcnRjX3cgPSAqc3JjX3c7CisJKmNydGNfaCA9ICpzcmNf aDsKKworCWNvbmZpZ3VyZV9wbGFuZShwbGFuZSwgKnNyY193LCAqc3JjX2gsICpzcmNfeCwgKnNy Y195LCAqY3J0Y193LAorCQkJKmNydGNfaCwgKmNydGNfeCwgKmNydGNfeSwgZmIpOworCWlndF9k aXNwbGF5X2NvbW1pdF9hdG9taWMoJmRhdGEtPmRpc3BsYXksCisJCQkJICBEUk1fTU9ERV9BVE9N SUNfVEVTVF9PTkxZIHwKKwkJCQkgIERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULCBOVUxM KTsKIH0KIAogc3RhdGljIHZvaWQgYmxpdF9wbGFuZV9jYWlybyhkYXRhX3QgKmRhdGEsIGNhaXJv X3N1cmZhY2VfdCAqcmVzdWx0LApAQCAtOTE0LDIwICs5OTksNiBAQCBzdGF0aWMgdm9pZCBibGl0 X3BsYW5lX2NhaXJvKGRhdGFfdCAqZGF0YSwgY2Fpcm9fc3VyZmFjZV90ICpyZXN1bHQsCiAJY2Fp cm9fZGVzdHJveShjcik7CiB9CiAKLXN0YXRpYyB2b2lkIGNvbmZpZ3VyZV9wbGFuZShpZ3RfcGxh bmVfdCAqcGxhbmUsIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCwKLQkJCSAgICB1aW50 MzJfdCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksIHVpbnQzMl90IGNydGNfdywKLQkJCSAgICB1aW50 MzJfdCBjcnRjX2gsIGludDMyX3QgY3J0Y194LCBpbnQzMl90IGNydGNfeSwKLQkJCSAgICBzdHJ1 Y3QgaWd0X2ZiICpmYikKLXsKLQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBmYik7Ci0KLQlpZ3Rf cGxhbmVfc2V0X3Bvc2l0aW9uKHBsYW5lLCBjcnRjX3gsIGNydGNfeSk7Ci0JaWd0X3BsYW5lX3Nl dF9zaXplKHBsYW5lLCBjcnRjX3csIGNydGNfaCk7Ci0KLQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKGZi LCBwbGFuZSwgc3JjX3gsIHNyY195KTsKLQlpZ3RfZmJfc2V0X3NpemUoZmIsIHBsYW5lLCBzcmNf dywgc3JjX2gpOwotfQotCiBzdGF0aWMgdm9pZCBwcmVwYXJlX3JhbmRvbWl6ZWRfcGxhbmUoZGF0 YV90ICpkYXRhLAogCQkJCSAgICAgZHJtTW9kZU1vZGVJbmZvICptb2RlLAogCQkJCSAgICAgaWd0 X3BsYW5lX3QgKnBsYW5lLApAQCAtOTQ3LDI0ICsxMDE4LDEyIEBAIHN0YXRpYyB2b2lkIHByZXBh cmVfcmFuZG9taXplZF9wbGFuZShkYXRhX3QgKmRhdGEsCiAJc2l6ZV90IHN0cmlkZTsKIAlib29s IHRpbGVkOwogCWludCBmYl9pZDsKKwl1aW50MzJfdCB0aWxlX3csIHRpbGVfaDsKIAotCXJhbmRv bWl6ZV9wbGFuZV9kaW1lbnNpb25zKG1vZGUsICZvdmVybGF5X2ZiX3csICZvdmVybGF5X2ZiX2gs Ci0JCQkJICAgJm92ZXJsYXlfc3JjX3csICZvdmVybGF5X3NyY19oLAotCQkJCSAgICZvdmVybGF5 X3NyY194LCAmb3ZlcmxheV9zcmNfeSwKLQkJCQkgICAmb3ZlcmxheV9jcnRjX3csICZvdmVybGF5 X2NydGNfaCwKLQkJCQkgICAmb3ZlcmxheV9jcnRjX3gsICZvdmVybGF5X2NydGNfeSwKLQkJCQkg ICBhbGxvd19zY2FsaW5nKTsKKwlyYW5kb21pemVfcGxhbmVfZGltZW5zaW9ucyhkYXRhLCBtb2Rl LCAmb3ZlcmxheV9mYl93LCAmb3ZlcmxheV9mYl9oKTsKIAogCWlndF9kZWJ1ZygiUGxhbmUgJWQ6 IGZyYW1lYnVmZmVyIHNpemUgJWR4JWRcbiIsIGluZGV4LAogCQkgIG92ZXJsYXlfZmJfdywgb3Zl cmxheV9mYl9oKTsKLQlpZ3RfZGVidWcoIlBsYW5lICVkOiBvbi1jcnRjIHNpemUgJWR4JWRcbiIs IGluZGV4LAotCQkgIG92ZXJsYXlfY3J0Y193LCBvdmVybGF5X2NydGNfaCk7Ci0JaWd0X2RlYnVn KCJQbGFuZSAlZDogb24tY3J0YyBwb3NpdGlvbiAlZHglZFxuIiwgaW5kZXgsCi0JCSAgb3Zlcmxh eV9jcnRjX3gsIG92ZXJsYXlfY3J0Y195KTsKLQlpZ3RfZGVidWcoIlBsYW5lICVkOiBpbi1mcmFt ZWJ1ZmZlciBzaXplICVkeCVkXG4iLCBpbmRleCwKLQkJICBvdmVybGF5X3NyY193LCBvdmVybGF5 X3NyY19oKTsKLQlpZ3RfZGVidWcoIlBsYW5lICVkOiBpbi1mcmFtZWJ1ZmZlciBwb3NpdGlvbiAl ZHglZFxuIiwgaW5kZXgsCi0JCSAgb3ZlcmxheV9zcmNfeCwgb3ZlcmxheV9zcmNfeSk7CiAKIAkv KiBHZXQgYSBwYXR0ZXJuIGZyYW1lYnVmZmVyIGZvciB0aGUgb3ZlcmxheSBwbGFuZS4gKi8KIAlm Yl9pZCA9IGNoYW1lbGl1bV9nZXRfcGF0dGVybl9mYihkYXRhLCBvdmVybGF5X2ZiX3csIG92ZXJs YXlfZmJfaCwKQEAgLTk3NiwyMyArMTAzNSw0MiBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlX3JhbmRv bWl6ZWRfcGxhbmUoZGF0YV90ICpkYXRhLAogCiAJdGlsZWQgPSAobW9kaWZpZXIgIT0gTE9DQUxf RFJNX0ZPUk1BVF9NT0RfTk9ORSk7CiAKKwlpZ3RfZ2V0X2ZiX3RpbGVfc2l6ZShkYXRhLT5kaXNw bGF5LmRybV9mZCwgbW9kaWZpZXIsCisJCQkgICAgIGlndF9kcm1fZm9ybWF0X3RvX2JwcChmb3Jt YXQpLAorCQkJICAgICAmdGlsZV93LCAmdGlsZV9oKTsKKworCS8qIE1ha2Ugc3VyZSBzdHJpZGUg aXMgYSBtdWx0aXBsZSBvZiB0aWxlIHNpemUgKi8KKwlzdHJpZGUgPSBESVZfUk9VTkRfVVAoc3Ry aWRlLCB0aWxlX3cpICogdGlsZV93OworCiAJaWd0X2RlYnVnKCJQbGFuZSAlZDogJXMgZm9ybWF0 ICglcykgd2l0aCBzdHJpZGUgJWxkXG4iLCBpbmRleCwKIAkJICBpZ3RfZm9ybWF0X3N0cihmb3Jt YXQpLCB0aWxlZCA/ICJ0aWxlZCIgOiAibGluZWFyIiwgc3RyaWRlKTsKIAorCiAJZmJfaWQgPSBp Z3RfZmJfY29udmVydF93aXRoX3N0cmlkZShvdmVybGF5X2ZiLCAmcGF0dGVybl9mYiwgZm9ybWF0 LAogCQkJCQkgICBtb2RpZmllciwgc3RyaWRlKTsKIAlpZ3RfYXNzZXJ0KGZiX2lkID4gMCk7CiAK KwlyYW5kb21pemVfcGxhbmVfY29vcmRpbmF0ZXMoZGF0YSwgcGxhbmUsIG1vZGUsIG92ZXJsYXlf ZmIsCisJCQkJICAgICZvdmVybGF5X3NyY193LCAmb3ZlcmxheV9zcmNfaCwKKwkJCQkgICAgJm92 ZXJsYXlfc3JjX3gsICZvdmVybGF5X3NyY195LAorCQkJCSAgICAmb3ZlcmxheV9jcnRjX3csICZv dmVybGF5X2NydGNfaCwKKwkJCQkgICAgJm92ZXJsYXlfY3J0Y194LCAmb3ZlcmxheV9jcnRjX3ks CisJCQkJICAgIGFsbG93X3NjYWxpbmcpOworCisJaWd0X2RlYnVnKCJQbGFuZSAlZDogaW4tZnJh bWVidWZmZXIgc2l6ZSAlZHglZFxuIiwgaW5kZXgsCisJCSAgb3ZlcmxheV9zcmNfdywgb3Zlcmxh eV9zcmNfaCk7CisJaWd0X2RlYnVnKCJQbGFuZSAlZDogaW4tZnJhbWVidWZmZXIgcG9zaXRpb24g JWR4JWRcbiIsIGluZGV4LAorCQkgIG92ZXJsYXlfc3JjX3gsIG92ZXJsYXlfc3JjX3kpOworCWln dF9kZWJ1ZygiUGxhbmUgJWQ6IG9uLWNydGMgc2l6ZSAlZHglZFxuIiwgaW5kZXgsCisJCSAgb3Zl cmxheV9jcnRjX3csIG92ZXJsYXlfY3J0Y19oKTsKKwlpZ3RfZGVidWcoIlBsYW5lICVkOiBvbi1j cnRjIHBvc2l0aW9uICVkeCVkXG4iLCBpbmRleCwKKwkJICBvdmVybGF5X2NydGNfeCwgb3Zlcmxh eV9jcnRjX3kpOworCiAJYmxpdF9wbGFuZV9jYWlybyhkYXRhLCByZXN1bHRfc3VyZmFjZSwgb3Zl cmxheV9zcmNfdywgb3ZlcmxheV9zcmNfaCwKIAkJCSBvdmVybGF5X3NyY194LCBvdmVybGF5X3Ny Y195LAogCQkJIG92ZXJsYXlfY3J0Y193LCBvdmVybGF5X2NydGNfaCwKIAkJCSBvdmVybGF5X2Ny dGNfeCwgb3ZlcmxheV9jcnRjX3ksICZwYXR0ZXJuX2ZiKTsKIAotCWNvbmZpZ3VyZV9wbGFuZShw bGFuZSwgb3ZlcmxheV9zcmNfdywgb3ZlcmxheV9zcmNfaCwKLQkJCW92ZXJsYXlfc3JjX3gsIG92 ZXJsYXlfc3JjX3ksCi0JCQlvdmVybGF5X2NydGNfdywgb3ZlcmxheV9jcnRjX2gsCi0JCQlvdmVy bGF5X2NydGNfeCwgb3ZlcmxheV9jcnRjX3ksIG92ZXJsYXlfZmIpOwotCiAJLyogUmVtb3ZlIHRo ZSBvcmlnaW5hbCBwYXR0ZXJuIGZyYW1lYnVmZmVyLiAqLwogCWlndF9yZW1vdmVfZmIoZGF0YS0+ ZHJtX2ZkLCAmcGF0dGVybl9mYik7CiB9CkBAIC0xMDY4LDcgKzExNDYsNyBAQCBzdGF0aWMgdm9p ZCB0ZXN0X2Rpc3BsYXlfcGxhbmVzX3JhbmRvbShkYXRhX3QgKmRhdGEsCiAJCWlndF9vdXRwdXRf Y291bnRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX09WRVJMQVkpOwogCiAJLyog TGltaXQgdGhlIG51bWJlciBvZiBwbGFuZXMgdG8gYSByZWFzb25hYmxlIHNjZW5lLiAqLwotCW92 ZXJsYXlfcGxhbmVzX21heCA9IG1heChvdmVybGF5X3BsYW5lc19tYXgsIDQpOworCW92ZXJsYXlf cGxhbmVzX21heCA9IG1pbihvdmVybGF5X3BsYW5lc19tYXgsIDQpOwogCiAJb3ZlcmxheV9wbGFu ZXNfY291bnQgPSAocmFuZCgpICUgb3ZlcmxheV9wbGFuZXNfbWF4KSArIDE7CiAJaWd0X2RlYnVn KCJVc2luZyAlZCBvdmVybGF5IHBsYW5lc1xuIiwgb3ZlcmxheV9wbGFuZXNfY291bnQpOwpAQCAt MTEyMSwxNyArMTE5OSw4IEBAIHN0YXRpYyB2b2lkIHRlc3RfZGlzcGxheV9wbGFuZXNfcmFuZG9t KGRhdGFfdCAqZGF0YSwKIAkJY2hhbWVsaXVtX2Rlc3Ryb3lfZnJhbWVfZHVtcChkdW1wKTsKIAl9 CiAKLQlmb3IgKGkgPSAwOyBpIDwgb3ZlcmxheV9wbGFuZXNfY291bnQ7IGkrKykgewotCQlzdHJ1 Y3QgaWd0X2ZiICpvdmVybGF5X2ZiID0gJm92ZXJsYXlfZmJzW2ldOwotCQlpZ3RfcGxhbmVfdCAq cGxhbmU7Ci0KLQkJcGxhbmUgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlX2luZGV4KG91dHB1 dCwKLQkJCQkJCQlEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAotCQkJCQkJCWkpOwotCQlpZ3RfYXNz ZXJ0KHBsYW5lKTsKLQotCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgb3ZlcmxheV9mYik7 Ci0JfQorCWZvciAoaSA9IDA7IGkgPCBvdmVybGF5X3BsYW5lc19jb3VudDsgaSsrKQorCQlpZ3Rf cmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJm92ZXJsYXlfZmJzW2ldKTsKIAogCWZyZWUob3Zlcmxh eV9mYnMpOwogCi0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0 LWRldg==