From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t v4] kms_rotation_crc: 90 degree flip test is not a stress test Date: Mon, 11 Sep 2017 18:14:57 +0100 Message-ID: <20170911171457.7660-1-tvrtko.ursulin@linux.intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x242.google.com (mail-wr0-x242.google.com [IPv6:2a00:1450:400c:c0c::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A3A16E1B6 for ; Mon, 11 Sep 2017 17:15:05 +0000 (UTC) Received: by mail-wr0-x242.google.com with SMTP id k20so4709653wre.1 for ; Mon, 11 Sep 2017 10:15:05 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRvIHRoZSBi ZXN0IG9mIG15IHJlY29sbGVjdGlvbiB0aGUgcGFnZSBmbGlwcGluZyB0ZXN0IHdhcyBhZGRlZApz aW1wbHkgdG8gc3RhcnQgZXhlcmNpc2luZyBwYWdlIGZsaXBzIHdpdGggOTAvMjcwIHJvdGF0aW9u LgoKVGhlcmUgaXMgbm8gbmVlZCB0byBkbyA2MCBmbGlwcyB3aGljaCBjYW4gdGFrZSBxdWl0ZSBz b21lIHRpbWUsCmJlY2F1c2Ugd2UgZG8gNjAgZmxpcHMgYWdhaW5zdCBlYWNoIHBpcGUgYW5kIGVh Y2ggZmIgZ2VvbWV0cnkuCgpBbHNvLCBjYWxsaW5nIHRoaXMgYSBzdHJlc3MgdGVzdCBpcyBhbHNv IG5vdCBtYXRjaGluZyB0aGUKb3JpZ2luYWwgaWRlYSBvZiB0aGUgdGVzdC4KCnYyOgoKU2V2ZXJh bCBjaGFuZ2VzOgoKMS4gUmVtb3ZlIHRoZSBzdHJlc3MgZnJvbSB0aGUgbmFtZSBhbmQgcmVkdWNl IHRoZSBudW1iZXIgb2YKZmxpcHMgdG8gb25lIG9ubHkuCgoyLiBNb3ZlIHRoZSBwYWdlIGZsaXAg YmVmb3JlIENSQyBjb2xsZWN0aW9uIGZvciBhIG1vcmUgdXNlZnVsCnRlc3QuCgozLiBBZGQgbW9y ZSBmbGlwcGluZyB0ZXN0cywgZm9yIGRpZmZlcmVudCByb3RhdGlvbiBhbmQgc3ByaXRlCnBsYW5l cy4KCjQuIENvbnZlcnQgdG8gdGFibGUgZHJpdmVuIHN1YnRlc3QgZ2VuZXJhdGlvbi4KCnYzOiBS ZW1vdmUgZXh0ZW5kZWQudGVzdGxpc3QgZnJvbSB0aGUgcGF0Y2guCgp2NDoKCkNvbGxlY3QgYSBm bGlwIGZiIGNyYyBhbmQgY2hlY2sgaXQgYWZ0ZXIgZmxpcC4gVGhpcyB3YXkgd2UgdGVzdApub3Qg b25seSB0aGUgZmxpcCBzdWNjZWVkZWQgYnV0IHRoZSByaWdodCBpbWFnZSBpcyBkaXNwbGF5ZWQu CgpTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29t PgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogS2F0YXJ6eW5hIERlYyA8a2F0YXJ6 eW5hLmRlY0BpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4gKHYzKQotLS0KIHRlc3RzL2ttc19yb3RhdGlvbl9jcmMuYyB8IDE5NCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDEyMiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90 ZXN0cy9rbXNfcm90YXRpb25fY3JjLmMgYi90ZXN0cy9rbXNfcm90YXRpb25fY3JjLmMKaW5kZXgg ODNlMzdmMTI2ZjQwLi4yMWUyNjRhZGRjMDkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19yb3RhdGlv bl9jcmMuYworKysgYi90ZXN0cy9rbXNfcm90YXRpb25fY3JjLmMKQEAgLTM1LDEzICszNSwxNCBA QCB0eXBlZGVmIHN0cnVjdCB7CiAJc3RydWN0IGlndF9mYiBmYl9tb2Rlc2V0OwogCXN0cnVjdCBp Z3RfZmIgZmJfZmxpcDsKIAlpZ3RfY3JjX3QgcmVmX2NyYzsKKwlpZ3RfY3JjX3QgZmxpcF9jcmM7 CiAJaWd0X3BpcGVfY3JjX3QgKnBpcGVfY3JjOwogCWlndF9yb3RhdGlvbl90IHJvdGF0aW9uOwog CWludCBwb3NfeDsKIAlpbnQgcG9zX3k7CiAJdWludDMyX3Qgb3ZlcnJpZGVfZm10OwogCXVpbnQ2 NF90IG92ZXJyaWRlX3RpbGluZzsKLQl1bnNpZ25lZCBpbnQgZmxpcF9zdHJlc3M7CisJYm9vbCBm bGlwczsKIH0gZGF0YV90OwogCiBzdGF0aWMgdm9pZApAQCAtMTYzLDYgKzE2NCw3IEBAIHN0YXRp YyB2b2lkIHByZXBhcmVfZmJzKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsCiAJ dW5zaWduZWQgaW50IHcsIGgsIHJlZl93LCByZWZfaCwgbWluX3csIG1pbl9oOwogCXVpbnQ2NF90 IHRpbGluZyA9IGRhdGEtPm92ZXJyaWRlX3RpbGluZyA/OiBMT0NBTF9EUk1fRk9STUFUX01PRF9O T05FOwogCXVpbnQzMl90IHBpeGVsX2Zvcm1hdCA9IGRhdGEtPm92ZXJyaWRlX2ZtdCA/OiBEUk1f Rk9STUFUX1hSR0I4ODg4OworCWNvbnN0IGZsb2F0IGZsaXBfb3BhY2l0eSA9IDAuNzU7CiAKIAlp ZiAoZGF0YS0+ZmIuZmJfaWQpIHsKIAkJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgTlVMTCk7CkBA IC0yMTksMTIgKzIyMSwyOCBAQCBzdGF0aWMgdm9pZCBwcmVwYXJlX2ZicyhkYXRhX3QgKmRhdGEs IGlndF9vdXRwdXRfdCAqb3V0cHV0LAogCiAJaWd0X2NyZWF0ZV9mYihkYXRhLT5nZnhfZmQsIHcs IGgsIHBpeGVsX2Zvcm1hdCwgdGlsaW5nLCAmZGF0YS0+ZmIpOwogCi0JaWYgKGRhdGEtPmZsaXBf c3RyZXNzKSB7Ci0JCWlndF9jcmVhdGVfZmIoZGF0YS0+Z2Z4X2ZkLCB3LCBoLCBwaXhlbF9mb3Jt YXQsIHRpbGluZywgJmRhdGEtPmZiX2ZsaXApOwotCQlwYWludF9zcXVhcmVzKGRhdGEsIElHVF9S T1RBVElPTl8wLCAmZGF0YS0+ZmJfZmxpcCwgMC45Mik7CisJaWd0X3BsYW5lX3NldF9yb3RhdGlv bihwbGFuZSwgSUdUX1JPVEFUSU9OXzApOworCisJLyoKKwkgKiBDcmVhdGUgYSByZWZlcmVuY2Ug c29mdHdhcmUgcm90YXRlZCBmbGlwIGZyYW1lYnVmZmVyLgorCSAqLworCWlmIChkYXRhLT5mbGlw cykgeworCQlpZ3RfY3JlYXRlX2ZiKGRhdGEtPmdmeF9mZCwgcmVmX3csIHJlZl9oLCBwaXhlbF9m b3JtYXQsIHRpbGluZywKKwkJCSAgICAgICZkYXRhLT5mYl9mbGlwKTsKKwkJcGFpbnRfc3F1YXJl cyhkYXRhLCBkYXRhLT5yb3RhdGlvbiwgJmRhdGEtPmZiX2ZsaXAsCisJCQkgICAgICBmbGlwX29w YWNpdHkpOworCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZGF0YS0+ZmJfZmxpcCk7CisJCWlm IChwbGFuZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCisJCQlpZ3RfcGxhbmVfc2V0 X3Bvc2l0aW9uKHBsYW5lLCBkYXRhLT5wb3NfeCwgZGF0YS0+cG9zX3kpOworCQlpZ3RfZGlzcGxh eV9jb21taXQyKGRpc3BsYXksCisJCQkJICAgIGRpc3BsYXktPmlzX2F0b21pYyA/CisJCQkJICAg IENPTU1JVF9BVE9NSUMgOiBDT01NSVRfVU5JVkVSU0FMKTsKKwkJaWd0X3BpcGVfY3JjX2NvbGxl Y3RfY3JjKGRhdGEtPnBpcGVfY3JjLCAmZGF0YS0+ZmxpcF9jcmMpOwogCX0KIAotCS8qIFN0ZXAg MTogY3JlYXRlIGEgcmVmZXJlbmNlIENSQyBmb3IgYSBzb2Z0d2FyZS1yb3RhdGVkIGZiICovCisJ LyoKKwkgKiBDcmVhdGUgYSByZWZlcmVuY2UgQ1JDIGZvciBhIHNvZnR3YXJlLXJvdGF0ZWQgZmIu CisJICovCiAJaWd0X2NyZWF0ZV9mYihkYXRhLT5nZnhfZmQsIHJlZl93LCByZWZfaCwgcGl4ZWxf Zm9ybWF0LAogCQkgICAgICBkYXRhLT5vdmVycmlkZV90aWxpbmcgPzogTE9DQUxfRFJNX0ZPUk1B VF9NT0RfTk9ORSwgJmRhdGEtPmZiX3JlZmVyZW5jZSk7CiAJcGFpbnRfc3F1YXJlcyhkYXRhLCBk YXRhLT5yb3RhdGlvbiwgJmRhdGEtPmZiX3JlZmVyZW5jZSwgMS4wKTsKQEAgLTIzMiwyMCArMjUw LDMwIEBAIHN0YXRpYyB2b2lkIHByZXBhcmVfZmJzKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90 ICpvdXRwdXQsCiAJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmRhdGEtPmZiX3JlZmVyZW5jZSk7 CiAJaWYgKHBsYW5lLT50eXBlICE9IERSTV9QTEFORV9UWVBFX0NVUlNPUikKIAkJaWd0X3BsYW5l X3NldF9wb3NpdGlvbihwbGFuZSwgZGF0YS0+cG9zX3gsIGRhdGEtPnBvc195KTsKLQlpZ3RfcGxh bmVfc2V0X3JvdGF0aW9uKHBsYW5lLCBJR1RfUk9UQVRJT05fMCk7CiAJaWd0X2Rpc3BsYXlfY29t bWl0MihkaXNwbGF5LCBkaXNwbGF5LT5pc19hdG9taWMgPyBDT01NSVRfQVRPTUlDIDogQ09NTUlU X1VOSVZFUlNBTCk7CiAKIAlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMoZGF0YS0+cGlwZV9jcmMs ICZkYXRhLT5yZWZfY3JjKTsKIAogCS8qCi0JICogU3RlcCAyOiBwcmVwYXJlIHRoZSBwbGFuZSB3 aXRoIGFuIG5vbi1yb3RhdGVkIGZiIGxldCB0aGUgaHcKLQkgKiByb3RhdGUgaXQuCisJICogUHJl cGFyZSB0aGUgcGxhbmUgd2l0aCBhbiBub24tcm90YXRlZCBmYiBsZXQgdGhlIGh3IHJvdGF0ZSBp dC4KIAkgKi8KIAlwYWludF9zcXVhcmVzKGRhdGEsIElHVF9ST1RBVElPTl8wLCAmZGF0YS0+ZmIs IDEuMCk7CiAJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmRhdGEtPmZiKTsKIAogCWlmIChwbGFu ZS0+dHlwZSAhPSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCiAJCWlndF9wbGFuZV9zZXRfcG9zaXRp b24ocGxhbmUsIGRhdGEtPnBvc194LCBkYXRhLT5wb3NfeSk7CisKKwkvKgorCSAqIFByZXBhcmUg dGhlIG5vbi1yb3RhdGVkIGZsaXAgZmIuCisJICovCisJaWYgKGRhdGEtPmZsaXBzKSB7CisJCWln dF9yZW1vdmVfZmIoZGF0YS0+Z2Z4X2ZkLCAmZGF0YS0+ZmJfZmxpcCk7CisJCWlndF9jcmVhdGVf ZmIoZGF0YS0+Z2Z4X2ZkLCB3LCBoLCBwaXhlbF9mb3JtYXQsIHRpbGluZywKKwkJCSAgICAgICZk YXRhLT5mYl9mbGlwKTsKKwkJcGFpbnRfc3F1YXJlcyhkYXRhLCBJR1RfUk9UQVRJT05fMCwgJmRh dGEtPmZiX2ZsaXAsCisJCQkgICAgICBmbGlwX29wYWNpdHkpOworCX0KKwogfQogCiBzdGF0aWMg dm9pZCBjbGVhbnVwX2NydGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0 X3BsYW5lX3QgKnBsYW5lKQpAQCAtMzAwLDkgKzMyOCw4IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxh bmVfcm90YXRpb24oZGF0YV90ICpkYXRhLCBpbnQgcGxhbmVfdHlwZSkKIAlpZ3Rfb3V0cHV0X3Qg Km91dHB1dDsKIAllbnVtIHBpcGUgcGlwZTsKIAlpbnQgdmFsaWRfdGVzdHMgPSAwOwotCWlndF9j cmNfdCBjcmNfb3V0cHV0LCBjcmNfdW5yb3RhdGVkOworCWlndF9jcmNfdCBjcmNfb3V0cHV0Owog CWVudW0gaWd0X2NvbW1pdF9zdHlsZSBjb21taXQgPSBDT01NSVRfTEVHQUNZOwotCXVuc2lnbmVk IGludCBmbGlwX2NvdW50OwogCWludCByZXQ7CiAKIAlpZiAocGxhbmVfdHlwZSA9PSBEUk1fUExB TkVfVFlQRV9QUklNQVJZIHx8IHBsYW5lX3R5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQpA QCAtMzQxLDkgKzM2OCw2IEBAIHN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfcm90YXRpb24oZGF0YV90 ICpkYXRhLCBpbnQgcGxhbmVfdHlwZSkKIAogCQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5 LCBjb21taXQpOwogCi0JCQkvKiBjb2xsZWN0IHVucm90YXRlZCBDUkMgKi8KLQkJCWlndF9waXBl X2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywgJmNyY191bnJvdGF0ZWQpOwotCiAJCQlp Z3RfcGxhbmVfc2V0X3JvdGF0aW9uKHBsYW5lLCBkYXRhLT5yb3RhdGlvbik7CiAJCQlpZiAoZGF0 YS0+cm90YXRpb24gPT0gSUdUX1JPVEFUSU9OXzkwIHx8IGRhdGEtPnJvdGF0aW9uID09IElHVF9S T1RBVElPTl8yNzApCiAJCQkJaWd0X3BsYW5lX3NldF9zaXplKHBsYW5lLCBkYXRhLT5mYi5oZWln aHQsIGRhdGEtPmZiLndpZHRoKTsKQEAgLTM1MSwxNiArMzc1LDIxIEBAIHN0YXRpYyB2b2lkIHRl c3RfcGxhbmVfcm90YXRpb24oZGF0YV90ICpkYXRhLCBpbnQgcGxhbmVfdHlwZSkKIAkJCXJldCA9 IGlndF9kaXNwbGF5X3RyeV9jb21taXQyKGRpc3BsYXksIGNvbW1pdCk7CiAJCQlpZiAoZGF0YS0+ b3ZlcnJpZGVfZm10IHx8IGRhdGEtPm92ZXJyaWRlX3RpbGluZykgewogCQkJCWlndF9hc3NlcnRf ZXEocmV0LCAtRUlOVkFMKTsKLQkJCX0gZWxzZSB7Ci0JCQkJaWd0X2Fzc2VydF9lcShyZXQsIDAp OwotCQkJCWlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywKLQkJCQkJCQkg ICZjcmNfb3V0cHV0KTsKLQkJCQlpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmZGF0YS0+cmVmX2NyYywK LQkJCQkJCSAgICAgICZjcmNfb3V0cHV0KTsKKwkJCQljb250aW51ZTsKIAkJCX0KIAotCQkJZmxp cF9jb3VudCA9IGRhdGEtPmZsaXBfc3RyZXNzOwotCQkJd2hpbGUgKGZsaXBfY291bnQtLSkgewor CQkJLyogVmVyaWZ5IGNvbW1pdCB3YXMgb2suICovCisJCQlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7 CisKKwkJCS8qIENoZWNrIENSQyAqLworCQkJaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKGRhdGEt PnBpcGVfY3JjLCAmY3JjX291dHB1dCk7CisJCQlpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmZGF0YS0+ cmVmX2NyYywgJmNyY19vdXRwdXQpOworCisJCQkvKgorCQkJICogSWYgZmxpcHMgYXJlIHJlcXVl c3RlZCBmbGlwIHRvIGEgZGlmZmVyZW50IGZiIGFuZAorCQkJICogY2hlY2sgQ1JDIGFnYWluc3Qg dGhhdCBvbmUgYXMgd2VsbC4KKwkJCSAqLworCQkJaWYgKGRhdGEtPmZsaXBzKSB7CiAJCQkJcmV0 ID0gZHJtTW9kZVBhZ2VGbGlwKGRhdGEtPmdmeF9mZCwKIAkJCQkJCSAgICAgIG91dHB1dC0+Y29u ZmlnLmNydGMtPmNydGNfaWQsCiAJCQkJCQkgICAgICBkYXRhLT5mYl9mbGlwLmZiX2lkLApAQCAt MzY4LDEzICszOTcsMTAgQEAgc3RhdGljIHZvaWQgdGVzdF9wbGFuZV9yb3RhdGlvbihkYXRhX3Qg KmRhdGEsIGludCBwbGFuZV90eXBlKQogCQkJCQkJICAgICAgTlVMTCk7CiAJCQkJaWd0X2Fzc2Vy dF9lcShyZXQsIDApOwogCQkJCXdhaXRfZm9yX3BhZ2VmbGlwKGRhdGEtPmdmeF9mZCk7Ci0JCQkJ cmV0ID0gZHJtTW9kZVBhZ2VGbGlwKGRhdGEtPmdmeF9mZCwKLQkJCQkJCSAgICAgIG91dHB1dC0+ Y29uZmlnLmNydGMtPmNydGNfaWQsCi0JCQkJCQkgICAgICBkYXRhLT5mYi5mYl9pZCwKLQkJCQkJ CSAgICAgIERSTV9NT0RFX1BBR0VfRkxJUF9FVkVOVCwKLQkJCQkJCSAgICAgIE5VTEwpOwotCQkJ CWlndF9hc3NlcnRfZXEocmV0LCAwKTsKLQkJCQl3YWl0X2Zvcl9wYWdlZmxpcChkYXRhLT5nZnhf ZmQpOworCQkJCWlndF9waXBlX2NyY19jb2xsZWN0X2NyYyhkYXRhLT5waXBlX2NyYywKKwkJCQkJ CQkgJmNyY19vdXRwdXQpOworCQkJCWlndF9hc3NlcnRfY3JjX2VxdWFsKCZkYXRhLT5mbGlwX2Ny YywKKwkJCQkJCSAgICAgJmNyY19vdXRwdXQpOwogCQkJfQogCQl9CiAKQEAgLTU2OSw4ICs1OTUs NjQgQEAgZXJyX2NvbW1pdDoKIAlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7CiB9CiAKK3N0YXRpYyBj b25zdCBjaGFyICpwbGFuZV90ZXN0X3N0cih1bnNpZ25lZCBwbGFuZSkKK3sKKwlzd2l0Y2ggKHBs YW5lKSB7CisJY2FzZSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOgorCQlyZXR1cm4gInByaW1hcnki OworCWNhc2UgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWToKKwkJcmV0dXJuICJzcHJpdGUiOworCWNh c2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgorCQlyZXR1cm4gImN1cnNvciI7CisJZGVmYXVsdDoK KwkJaWd0X2Fzc2VydCgwKTsKKwl9Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpyb3RfdGVzdF9z dHIoaWd0X3JvdGF0aW9uX3Qgcm90KQoreworCXN3aXRjaCAocm90KSB7CisJY2FzZSBJR1RfUk9U QVRJT05fOTA6CisJCXJldHVybiAiOTAiOworCWNhc2UgSUdUX1JPVEFUSU9OXzE4MDoKKwkJcmV0 dXJuICIxODAiOworCWNhc2UgSUdUX1JPVEFUSU9OXzI3MDoKKwkJcmV0dXJuICIyNzAiOworCWRl ZmF1bHQ6CisJCWlndF9hc3NlcnQoMCk7CisJfQorfQorCitzdGF0aWMgY29uc3QgY2hhciAqZmxp cF90ZXN0X3N0cih1bnNpZ25lZCBmbGlwcykKK3sKKwlpZiAoZmxpcHMpCisJCXJldHVybiAiLWZs aXAiOworCWVsc2UKKwkJcmV0dXJuICIiOworfQorCiBpZ3RfbWFpbgogeworCXN0cnVjdCByb3Rf c3VidGVzdCB7CisJCXVuc2lnbmVkIHBsYW5lOworCQlpZ3Rfcm90YXRpb25fdCByb3Q7CisJCXVu c2lnbmVkIGZsaXBzOworCX0gKnN1YnRlc3QsIHN1YnRlc3RzW10gPSB7CisJCXsgRFJNX1BMQU5F X1RZUEVfUFJJTUFSWSwgSUdUX1JPVEFUSU9OXzkwLCAwIH0sCisJCXsgRFJNX1BMQU5FX1RZUEVf UFJJTUFSWSwgSUdUX1JPVEFUSU9OXzE4MCwgMCB9LAorCQl7IERSTV9QTEFORV9UWVBFX1BSSU1B UlksIElHVF9ST1RBVElPTl8yNzAsIDAgfSwKKwkJeyBEUk1fUExBTkVfVFlQRV9QUklNQVJZLCBJ R1RfUk9UQVRJT05fOTAsIDEgfSwKKwkJeyBEUk1fUExBTkVfVFlQRV9QUklNQVJZLCBJR1RfUk9U QVRJT05fMTgwLCAxIH0sCisJCXsgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwgSUdUX1JPVEFUSU9O XzI3MCwgMSB9LAorCQl7IERSTV9QTEFORV9UWVBFX09WRVJMQVksIElHVF9ST1RBVElPTl85MCwg MCB9LAorCQl7IERSTV9QTEFORV9UWVBFX09WRVJMQVksIElHVF9ST1RBVElPTl8xODAsIDAgfSwK KwkJeyBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLCBJR1RfUk9UQVRJT05fMjcwLCAwIH0sCisJCXsg RFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSwgSUdUX1JPVEFUSU9OXzkwLCAxIH0sCisJCXsgRFJNX1BM QU5FX1RZUEVfT1ZFUkxBWSwgSUdUX1JPVEFUSU9OXzE4MCwgMSB9LAorCQl7IERSTV9QTEFORV9U WVBFX09WRVJMQVksIElHVF9ST1RBVElPTl8yNzAsIDEgfSwKKwkJeyBEUk1fUExBTkVfVFlQRV9D VVJTT1IsIElHVF9ST1RBVElPTl8xODAsIDAgfSwKKwkJeyAwLCAwLCAwfQorCX07CiAJZGF0YV90 IGRhdGEgPSB7fTsKIAlpbnQgZ2VuID0gMDsKIApAQCAtNTg2LDQzICs2NjgsMTkgQEAgaWd0X21h aW4KIAogCQlpZ3RfZGlzcGxheV9pbml0KCZkYXRhLmRpc3BsYXksIGRhdGEuZ2Z4X2ZkKTsKIAl9 Ci0JaWd0X3N1YnRlc3RfZigicHJpbWFyeS1yb3RhdGlvbi0xODAiKSB7Ci0JCWRhdGEucm90YXRp b24gPSBJR1RfUk9UQVRJT05fMTgwOwotCQl0ZXN0X3BsYW5lX3JvdGF0aW9uKCZkYXRhLCBEUk1f UExBTkVfVFlQRV9QUklNQVJZKTsKLQl9Ci0KLQlpZ3Rfc3VidGVzdF9mKCJzcHJpdGUtcm90YXRp b24tMTgwIikgewotCQlkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFUSU9OXzE4MDsKLQkJdGVzdF9w bGFuZV9yb3RhdGlvbigmZGF0YSwgRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSk7Ci0JfQotCi0JaWd0 X3N1YnRlc3RfZigiY3Vyc29yLXJvdGF0aW9uLTE4MCIpIHsKLQkJZGF0YS5yb3RhdGlvbiA9IElH VF9ST1RBVElPTl8xODA7Ci0JCXRlc3RfcGxhbmVfcm90YXRpb24oJmRhdGEsIERSTV9QTEFORV9U WVBFX0NVUlNPUik7Ci0JfQotCi0JaWd0X3N1YnRlc3RfZigicHJpbWFyeS1yb3RhdGlvbi05MCIp IHsKLQkJaWd0X3JlcXVpcmUoZ2VuID49IDkpOwotCQlkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFU SU9OXzkwOwotCQl0ZXN0X3BsYW5lX3JvdGF0aW9uKCZkYXRhLCBEUk1fUExBTkVfVFlQRV9QUklN QVJZKTsKLQl9CiAKLQlpZ3Rfc3VidGVzdF9mKCJwcmltYXJ5LXJvdGF0aW9uLTI3MCIpIHsKLQkJ aWd0X3JlcXVpcmUoZ2VuID49IDkpOwotCQlkYXRhLnJvdGF0aW9uID0gSUdUX1JPVEFUSU9OXzI3 MDsKLQkJdGVzdF9wbGFuZV9yb3RhdGlvbigmZGF0YSwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7 Ci0JfQotCi0JaWd0X3N1YnRlc3RfZigic3ByaXRlLXJvdGF0aW9uLTkwIikgewotCQlpZ3RfcmVx dWlyZShnZW4gPj0gOSk7Ci0JCWRhdGEucm90YXRpb24gPSBJR1RfUk9UQVRJT05fOTA7Ci0JCXRl c3RfcGxhbmVfcm90YXRpb24oJmRhdGEsIERSTV9QTEFORV9UWVBFX09WRVJMQVkpOwotCX0KLQot CWlndF9zdWJ0ZXN0X2YoInNwcml0ZS1yb3RhdGlvbi0yNzAiKSB7Ci0JCWlndF9yZXF1aXJlKGdl biA+PSA5KTsKLQkJZGF0YS5yb3RhdGlvbiA9IElHVF9ST1RBVElPTl8yNzA7Ci0JCXRlc3RfcGxh bmVfcm90YXRpb24oJmRhdGEsIERSTV9QTEFORV9UWVBFX09WRVJMQVkpOworCWZvciAoc3VidGVz dCA9IHN1YnRlc3RzOyBzdWJ0ZXN0LT5yb3Q7IHN1YnRlc3QrKykgeworCQlpZ3Rfc3VidGVzdF9m KCIlcy1yb3RhdGlvbi0lcyVzIiwKKwkJCSAgICAgIHBsYW5lX3Rlc3Rfc3RyKHN1YnRlc3QtPnBs YW5lKSwKKwkJCSAgICAgIHJvdF90ZXN0X3N0cihzdWJ0ZXN0LT5yb3QpLAorCQkJICAgICAgZmxp cF90ZXN0X3N0cihzdWJ0ZXN0LT5mbGlwcykpIHsKKwkJCWlndF9yZXF1aXJlKCEoc3VidGVzdC0+ cm90ICYKKwkJCQkgICAgKElHVF9ST1RBVElPTl85MCB8IElHVF9ST1RBVElPTl8yNzApKSB8fAor CQkJCSAgICBnZW4gPj0gOSk7CisJCQlkYXRhLnJvdGF0aW9uID0gc3VidGVzdC0+cm90OworCQkJ ZGF0YS5mbGlwcyA9IHN1YnRlc3QtPmZsaXBzOworCQkJdGVzdF9wbGFuZV9yb3RhdGlvbigmZGF0 YSwgc3VidGVzdC0+cGxhbmUpOworCQl9CiAJfQogCiAJaWd0X3N1YnRlc3RfZigic3ByaXRlLXJv dGF0aW9uLTkwLXBvcy0xMDAtMCIpIHsKQEAgLTY1MCwxNCArNzA4LDYgQEAgaWd0X21haW4KIAkJ dGVzdF9wbGFuZV9yb3RhdGlvbigmZGF0YSwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CiAJfQog Ci0JaWd0X3N1YnRlc3RfZigicHJpbWFyeS1yb3RhdGlvbi05MC1mbGlwLXN0cmVzcyIpIHsKLQkJ aWd0X3JlcXVpcmUoZ2VuID49IDkpOwotCQlkYXRhLm92ZXJyaWRlX3RpbGluZyA9IDA7Ci0JCWRh dGEuZmxpcF9zdHJlc3MgPSA2MDsKLQkJZGF0YS5yb3RhdGlvbiA9IElHVF9ST1RBVElPTl85MDsK LQkJdGVzdF9wbGFuZV9yb3RhdGlvbigmZGF0YSwgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7Ci0J fQotCiAJaWd0X3N1YnRlc3RfZigicHJpbWFyeS1yb3RhdGlvbi05MC1ZLXRpbGVkIikgewogCQll bnVtIHBpcGUgcGlwZTsKIAkJaWd0X291dHB1dF90ICpvdXRwdXQ7Ci0tIAoyLjkuNQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==