From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x22c.google.com (mail-lj1-x22c.google.com [IPv6:2a00:1450:4864:20::22c]) by gabe.freedesktop.org (Postfix) with ESMTPS id E2832894DC for ; Sun, 24 Feb 2019 20:37:25 +0000 (UTC) Received: by mail-lj1-x22c.google.com with SMTP id z25so5631759ljk.8 for ; Sun, 24 Feb 2019 12:37:25 -0800 (PST) From: Juha-Pekka Heikkila Date: Sun, 24 Feb 2019 22:37:17 +0200 Message-Id: <1551040637-26151-1-git-send-email-juhapekka.heikkila@gmail.com> Subject: [igt-dev] [PATCH i-g-t] tests/kms_available_modes_crc limit tested fb formats List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 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: VGhpcyB0ZXN0IGlzIGNhdXNpbmcgdG9vIG11Y2ggdXNlbGVzcyBub2lzZS4gTGltaXQgdGVzdGVk CmZiIGZvcm1hdHMgdG8gRFJNX0ZPUk1BVF9DOCBhbmQgRFJNX0ZPUk1BVF9YQkdSMjEwMTAxMCBm b3Igbm93LgpUaGVzZSB0d28gZm9ybWF0cyBhcmUgY3VycmVudGx5IG5vdCB0ZXN0ZWQgb3RoZXJ3 aXNlIHRodXMKdGhleSdyZSBsZWZ0IGhlcmUgZm9yIG5vdy4gRFJNX0ZPUk1BVF9YQkdSMjEwMTAx MCBuZWVkIHRvIGJlCmluY2x1ZGVkIGludG8gSUdUIHN1cHBvcnRlZCBmb3JtYXRzIGFuZCBEUk1f Rk9STUFUX0M4IHRlc3QgbmVlZAp0byBiZSBtb3ZlZCBlbHNld2hlcmUsIG1heWJlIGludG8ga21z X3BsYW5lLgoKU2lnbmVkLW9mZi1ieTogSnVoYS1QZWtrYSBIZWlra2lsYSA8anVoYXBla2thLmhl aWtraWxhQGdtYWlsLmNvbT4KLS0tCiB0ZXN0cy9rbXNfYXZhaWxhYmxlX21vZGVzX2NyYy5jIHwg MjQ2ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCA5OCBpbnNlcnRpb25zKCspLCAxNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdGVz dHMva21zX2F2YWlsYWJsZV9tb2Rlc19jcmMuYyBiL3Rlc3RzL2ttc19hdmFpbGFibGVfbW9kZXNf Y3JjLmMKaW5kZXggN2ZmMzg1Zi4uOWJiNmY3MiAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2F2YWls YWJsZV9tb2Rlc19jcmMuYworKysgYi90ZXN0cy9rbXNfYXZhaWxhYmxlX21vZGVzX2NyYy5jCkBA IC01NywxNSArNTcsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgewogfSBkYXRhX3Q7CiAKIAotc3RhdGlj IGludCBkb193cml0ZShpbnQgZmQsIGludCBoYW5kbGUsIHZvaWQgKmJ1ZiwgaW50IHNpemUpCi17 Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9wd3JpdGUgd3JpdGU7Ci0JbWVtc2V0KCZ3cml0ZSwgMHgw MCwgc2l6ZW9mKHdyaXRlKSk7Ci0Jd3JpdGUuaGFuZGxlID0gaGFuZGxlOwotCXdyaXRlLmRhdGFf cHRyID0gKHVpbnRwdHJfdClidWY7Ci0Jd3JpdGUuc2l6ZSA9IHNpemU7Ci0Jd3JpdGUub2Zmc2V0 ID0gMDsKLQlyZXR1cm4gaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fUFdSSVRFLCAm d3JpdGUpOworc3RhdGljIHZvaWQgZG9fd3JpdGUoaW50IGZkLCBpbnQgaGFuZGxlLCB2b2lkICpi dWYsIGludCBzaXplKQorewl2b2lkICpzY3JlZW5idWY7CisKKwlnZW1fc2V0X2RvbWFpbihmZCwg aGFuZGxlLCBJOTE1X0dFTV9ET01BSU5fQ1BVLCBJOTE1X0dFTV9ET01BSU5fQ1BVKTsKKwlzY3Jl ZW5idWYgPSBnZW1fbW1hcF9fZ3R0KGZkLCBoYW5kbGUsIHNpemUsIFBST1RfV1JJVEUpOworCW1l bWNweShzY3JlZW5idWYsIGJ1Ziwgc2l6ZSk7CisJZ2VtX211bm1hcChzY3JlZW5idWYsIHNpemUp OworCWdlbV9zeW5jKGZkLCBoYW5kbGUpOwogfQogCiAKQEAgLTk2LDc0ICs5NSwzOSBAQCBzdGF0 aWMgdm9pZCBnZW5lcmF0ZV9jb21wYXJpc29uX2NyY19saXN0KGRhdGFfdCAqZGF0YSwgaWd0X291 dHB1dF90ICpvdXRwdXQpCiAJCQkgICAgMC4wLCAwLjAsIDAuMCk7CiAJaWd0X3BhaW50X2NvbG9y KGNyLCAwLCAwLCB3LCBoLCAxLjAsIDEuMCwgMS4wKTsKIAlpZ3RfYXNzZXJ0KGNhaXJvX3N0YXR1 cyhjcikgPT0gMCk7CisJaWd0X3B1dF9jYWlyb19jdHgoZGF0YS0+Z2Z4X2ZkLCAmZGF0YS0+cHJp bWFyeV9mYiwgY3IpOwogCiAJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUob3V0 cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKIAlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnks ICZkYXRhLT5wcmltYXJ5X2ZiKTsKIAlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5 LCBkYXRhLT5jb21taXQpOwogCisJaWd0X3BpcGVfY3JjX2RyYWluKGRhdGEtPnBpcGVfY3JjKTsK IAlpZ3RfcGlwZV9jcmNfZ2V0X2N1cnJlbnQoZGF0YS0+Z2Z4X2ZkLCBkYXRhLT5waXBlX2NyYywg JmRhdGEtPmN1cnNvcl9jcmMpOwogCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7CiAJ aWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0KTsKIAotCWlu dGVsX2dlbihpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEtPmdmeF9mZCkpIDwgOSA/Ci0JCSAgaWd0 X3BhaW50X2NvbG9yKGNyLCAwLCAwLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXksIDEu MCwgMS4wLCAxLjApIDoKLQkJICBpZ3RfcGFpbnRfY29sb3JfYWxwaGEoY3IsIDAsIDAsIG1vZGUt PmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwgMS4wLCAxLjAsIDEuMCwgMS4wKTsKKwljciA9IGln dF9nZXRfY2Fpcm9fY3R4KGRhdGEtPmdmeF9mZCwgJmRhdGEtPnByaW1hcnlfZmIpOworCWlndF9w YWludF9jb2xvcihjciwgMCwgMCwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LCAxLjAs IDEuMCwgMS4wKTsKKwlpZ3RfcHV0X2NhaXJvX2N0eChkYXRhLT5nZnhfZmQsICZkYXRhLT5wcmlt YXJ5X2ZiLCBjcik7CiAKIAlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5wcmltYXJ5 X2ZiKTsKIAlpZ3RfZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQp OwogCisJaWd0X3BpcGVfY3JjX2RyYWluKGRhdGEtPnBpcGVfY3JjKTsKIAlpZ3RfcGlwZV9jcmNf Z2V0X2N1cnJlbnQoZGF0YS0+Z2Z4X2ZkLCBkYXRhLT5waXBlX2NyYywgJmRhdGEtPmZ1bGxzY3Jl ZW5fY3JjKTsKIAotCWNhaXJvX2Rlc3Ryb3koY3IpOwogCWlndF9yZW1vdmVfZmIoZGF0YS0+Z2Z4 X2ZkLCAmZGF0YS0+cHJpbWFyeV9mYik7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgewogCXVp bnQzMl90CWZvdXJjYzsKIAljaGFyCQl6ZXJvcGFkZGluZzsKLQllbnVtCQl7IEJZVEVTX1BQXzE9 MSwKLQkJCQlCWVRFU19QUF8yPTIsCi0JCQkJQllURVNfUFBfND00LAotCQkJCU5WMTIsCi0JCQkJ UDAxMCwKLQkJCQlTS0lQNCB9IGJwcDsKKwllbnVtCQl7IEJZVEVTX1BQXzEgPSAxLAorCQkJCUJZ VEVTX1BQXzQgPSA0fSBicHA7CiAJdWludDMyX3QJdmFsdWU7CiB9IGZpbGxlcnNbXSA9IHsKIAl7 IERSTV9GT1JNQVRfQzgsIDAsIEJZVEVTX1BQXzEsIDB4ZmZ9LAotCXsgRFJNX0ZPUk1BVF9SR0I1 NjUsIDAsIEJZVEVTX1BQXzIsIDB4ZmZmZn0sCi0JeyBEUk1fRk9STUFUX1hSR0I4ODg4LCAwLCBC WVRFU19QUF80LCAweGZmZmZmZmZmfSwKLQl7IERSTV9GT1JNQVRfWEJHUjg4ODgsIDAsIEJZVEVT X1BQXzQsIDB4ZmZmZmZmZmZ9LAotCi0JLyoKLQkgKiBmb2xsb3dpbmcgdHdvIGFyZSBza2lwcGVk IGJlY2F1c2UgYmxlbmRpbmcgc2VlbXMgdG8gd29yawotCSAqIGluY29ycmVjdGx5IHdpdGggZXhj ZXB0aW9uIG9mIEFSMjQgb24gY3Vyc29yIHBsYW5lLgotCSAqIFRlc3Qgc3RpbGwgY3JlYXRlcyB0 aGUgcGxhbmVzLCBqdXN0IGZpbGxpbmcgcGxhbmUKLQkgKiBhbmQgZ2V0dGluZyBjcmMgaXMgc2tp cHBlZC4KLQkgKi8KLQl7IERSTV9GT1JNQVRfQVJHQjg4ODgsIDAsIFNLSVA0LCAweGZmZmZmZmZm fSwKLQl7IERSTV9GT1JNQVRfQUJHUjg4ODgsIDAsIFNLSVA0LCAweDAwZmZmZmZmfSwKLQotCXsg RFJNX0ZPUk1BVF9YUkdCMjEwMTAxMCwgMCwgQllURVNfUFBfNCwgMHhmZmZmZmZmZn0sCiAJeyBE Uk1fRk9STUFUX1hCR1IyMTAxMDEwLCAwLCBCWVRFU19QUF80LCAweGZmZmZmZmZmfSwKLQotCXsg RFJNX0ZPUk1BVF9ZVVlWLCAwLCBCWVRFU19QUF80LCAweDgwZWI4MGVifSwKLQl7IERSTV9GT1JN QVRfWVZZVSwgMCwgQllURVNfUFBfNCwgMHg4MGViODBlYn0sCi0JeyBEUk1fRk9STUFUX1ZZVVks IDAsIEJZVEVTX1BQXzQsIDB4ZWI4MGViODB9LAotCXsgRFJNX0ZPUk1BVF9VWVZZLCAwLCBCWVRF U19QUF80LCAweGViODBlYjgwfSwKLQotCS8qCi0JICogKHNlbWktKXBsYW5hciBmb3JtYXRzCi0J ICovCi0JeyBEUk1fRk9STUFUX05WMTIsIDAsIE5WMTIsIDB4ODBlYn0sCi0jaWZkZWYgRFJNX0ZP Uk1BVF9QMDEwCi0JeyBEUk1fRk9STUFUX1AwMTAsIDAsIFAwMTAsIDB4ODAwMGViMDB9LAotI2Vu ZGlmCi0jaWZkZWYgRFJNX0ZPUk1BVF9QMDEyCi0JeyBEUk1fRk9STUFUX1AwMTIsIDAsIFAwMTAs IDB4ODAwMGViMDB9LAotI2VuZGlmCi0jaWZkZWYgRFJNX0ZPUk1BVF9QMDE2Ci0JeyBEUk1fRk9S TUFUX1AwMTYsIDAsIFAwMTAsIDB4ODAwMGViMDB9LAotI2VuZGlmCiAJeyAwLCAwLCAwLCAwIH0K IH07CiAKQEAgLTE3NSwxMSArMTM5LDEwIEBAIHN0YXRpYyBib29sIGZpbGxfaW5fZmIoZGF0YV90 ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAogCQkgICAg ICAgdWludDMyX3QgZm9ybWF0KQogewogCXNpZ25lZCBpLCBjLCB3cml0ZXNpemU7Ci0JdW5zaWdu ZWQgc2hvcnQqIHB0ZW1wXzE2X2J1ZjsKIAl1bnNpZ25lZCBpbnQqIHB0ZW1wXzMyX2J1ZjsKIAot CWZvciggaSA9IDA7IGZpbGxlcnNbaV0uZm91cmNjICE9IDA7IGkrKyApIHsKLQkJaWYoIGZpbGxl cnNbaV0uZm91cmNjID09IGZvcm1hdCApCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmls bGVycyktMTsgaSsrKSB7CisJCWlmIChmaWxsZXJzW2ldLmZvdXJjYyA9PSBmb3JtYXQpCiAJCQli cmVhazsKIAl9CiAKQEAgLTE5MCw1NyArMTUzLDEyIEBAIHN0YXRpYyBib29sIGZpbGxfaW5fZmIo ZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgaWd0X3BsYW5lX3QgKnBsYW5lLAog CQkJcHRlbXBfMzJfYnVmW2NdID0gZmlsbGVyc1tpXS52YWx1ZTsKIAkJd3JpdGVzaXplID0gZGF0 YS0+c2l6ZTsKIAkJYnJlYWs7Ci0JY2FzZSBCWVRFU19QUF8yOgotCQlwdGVtcF8xNl9idWYgPSAo dW5zaWduZWQgc2hvcnQqKWRhdGEtPmJ1ZjsKLQkJZm9yIChjID0gMDsgYyA8IGRhdGEtPnNpemUv MjsgYysrKQotCQkJcHRlbXBfMTZfYnVmW2NdID0gKHVuc2lnbmVkIHNob3J0KWZpbGxlcnNbaV0u dmFsdWU7Ci0JCXdyaXRlc2l6ZSA9IGRhdGEtPnNpemU7Ci0JCWJyZWFrOwogCWNhc2UgQllURVNf UFBfMToKIAkJbWVtc2V0KCh2b2lkICopZGF0YS0+YnVmLCBmaWxsZXJzW2ldLnZhbHVlLCBkYXRh LT5zaXplKTsKIAkJd3JpdGVzaXplID0gZGF0YS0+c2l6ZTsKIAkJYnJlYWs7Ci0JY2FzZSBOVjEy OgotCQltZW1zZXQoKHZvaWQgKilkYXRhLT5idWYsIGZpbGxlcnNbaV0udmFsdWUmMHhmZiwKLQkJ ICAgICAgIGRhdGEtPmZiLm9mZnNldHNbMV0pOwotCi0JCW1lbXNldCgodm9pZCAqKShkYXRhLT5i dWYrZGF0YS0+ZmIub2Zmc2V0c1sxXSksCi0JCSAgICAgICAoZmlsbGVyc1tpXS52YWx1ZT4+OCkm MHhmZiwKLQkJICAgICAgIGRhdGEtPnNpemUgLSBkYXRhLT5mYi5vZmZzZXRzWzFdKTsKLQotCQl3 cml0ZXNpemUgPSBkYXRhLT5zaXplOwotCQlicmVhazsKLQljYXNlIFAwMTA6Ci0JCXB0ZW1wXzE2 X2J1ZiA9ICh1bnNpZ25lZCBzaG9ydCopZGF0YS0+YnVmOwotCQlmb3IgKGMgPSAwOyBjIDwgZGF0 YS0+c2l6ZS8yOyBjKyspCi0JCQlwdGVtcF8xNl9idWZbY10gPSAodW5zaWduZWQgc2hvcnQpZmls bGVyc1tpXS52YWx1ZSYweGZmZmY7Ci0KLQkJcHRlbXBfMTZfYnVmID0gKHVuc2lnbmVkIHNob3J0 KikoZGF0YS0+YnVmK2RhdGEtPnNpemUpOwotCQlmb3IgKGMgPSAwOyBjIDwgZGF0YS0+c2l6ZS8y OyBjKyspCi0JCQlwdGVtcF8xNl9idWZbY10gPSAodW5zaWduZWQgc2hvcnQpKGZpbGxlcnNbaV0u dmFsdWU+PjE2KSYweGZmZmY7Ci0KLQkJd3JpdGVzaXplID0gZGF0YS0+c2l6ZStkYXRhLT5zaXpl LzI7Ci0JCWJyZWFrOwotCWNhc2UgU0tJUDQ6Ci0JCWlmIChmaWxsZXJzW2ldLmZvdXJjYyA9PSBE Uk1fRk9STUFUX0FSR0I4ODg4ICYmCi0JCSAgICBwbGFuZS0+dHlwZSA9PSBEUk1fUExBTkVfVFlQ RV9DVVJTT1IpIHsKLQkJLyoKLQkJICogc3BlY2lhbCBmb3IgY3Vyc29yIHBsYW5lIHdoZXJlIGJs ZW5kaW5nIHdvcmtzIGNvcnJlY3RseS4KLQkJICovCi0JCQlwdGVtcF8zMl9idWYgPSAodW5zaWdu ZWQgaW50KilkYXRhLT5idWY7Ci0JCQlmb3IgKGMgPSAwOyBjIDwgZGF0YS0+c2l6ZS80OyBjKysp Ci0JCQkJcHRlbXBfMzJfYnVmW2NdID0gZmlsbGVyc1tpXS52YWx1ZTsKLQkJCXdyaXRlc2l6ZSA9 IGRhdGEtPnNpemU7Ci0JCQlicmVhazsKLQkJfQotCQlpZ3RfaW5mbygiRm9ybWF0ICVzIENSQyBj b21wYXJpc29uIHNraXBwZWQgYnkgZGVzaWduLlxuIiwKLQkJCSAoY2hhciopJmZpbGxlcnNbaV0u Zm91cmNjKTsKLQotCQlyZXR1cm4gZmFsc2U7CiAJZGVmYXVsdDoKLQkJaWd0X2luZm8oIlVuc3Vw cG9ydGVkIG1vZGUgZm9yIHRlc3QgJXNcbiIsCi0JCQkgKGNoYXIqKSZmaWxsZXJzW2ldLmZvdXJj Yyk7Ci0JCXJldHVybiBmYWxzZTsKKwkJaWd0X2Fzc2VydF9mKDAsICJ1bmtub3duIGJwcCIpOwog CX0KIAogCWRvX3dyaXRlKGRhdGEtPmdmeF9mZCwgZGF0YS0+Z2VtX2hhbmRsZSwgKHZvaWQqKWRh dGEtPmJ1Ziwgd3JpdGVzaXplKTsKQEAgLTI3MSwyNiArMTg5LDIwIEBAIHN0YXRpYyBib29sIHNl dHVwX2ZiKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsIGlndF9wbGFuZV90ICpw bGFuZSwKIAkJdGlsaW5nID0gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORTsKIAl9CiAKLQlmb3Ig KGkgPSAwOyBmaWxsZXJzW2ldLmZvdXJjYyAhPSAwOyBpKyspIHsKKwlmb3IgKGkgPSAwOyBpIDwg QVJSQVlfU0laRShmaWxsZXJzKS0xOyBpKyspIHsKIAkJaWYgKGZpbGxlcnNbaV0uZm91cmNjID09 IGZvcm1hdCkKIAkJCWJyZWFrOwogCX0KIAogCXN3aXRjaCAoZmlsbGVyc1tpXS5icHApIHsKLQlj YXNlIE5WMTI6CiAJY2FzZSBCWVRFU19QUF8xOgogCQlicHAgPSA4OwogCQlicmVhazsKLQotCWNh c2UgUDAxMDoKLQljYXNlIEJZVEVTX1BQXzI6Ci0JCWJwcCA9IDE2OwotCQlicmVhazsKLQotCWNh c2UgU0tJUDQ6CiAJY2FzZSBCWVRFU19QUF80OgogCQlicHAgPSAzMjsKIAkJYnJlYWs7CisJZGVm YXVsdDoKKwkJaWd0X2Fzc2VydF9mKDAsICJ1bmtub3duIGJwcCIpOwogCX0KIAogCWlndF9nZXRf ZmJfdGlsZV9zaXplKGRhdGEtPmdmeF9mZCwgdGlsaW5nLCBicHAsCkBAIC0yOTksMTcgKzIxMSw2 IEBAIHN0YXRpYyBib29sIHNldHVwX2ZiKGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRw dXQsIGlndF9wbGFuZV90ICpwbGFuZSwKIAlkYXRhLT5mYi5zdHJpZGVzWzBdID0gQUxJR04odyAq IGJwcCAvIDgsIHRpbGVfd2lkdGgpOwogCWdlbXNpemUgPSBkYXRhLT5zaXplID0gZGF0YS0+ZmIu c3RyaWRlc1swXSAqIEFMSUdOKGgsIHRpbGVfaGVpZ2h0KTsKIAotCWlmIChmaWxsZXJzW2ldLmJw cCA9PSBQMDEwIHx8IGZpbGxlcnNbaV0uYnBwID09IE5WMTIpIHsKLQkJZGF0YS0+ZmIub2Zmc2V0 c1sxXSA9IGRhdGEtPnNpemU7Ci0JCWRhdGEtPmZiLnN0cmlkZXNbMV0gPSBkYXRhLT5mYi5zdHJp ZGVzWzBdOwotCQlnZW1zaXplID0gZGF0YS0+c2l6ZSAqIDI7Ci0KLQkJaWYgKGZpbGxlcnNbaV0u YnBwID09IE5WMTIpCi0JCQlkYXRhLT5zaXplICs9IGRhdGEtPmZiLnN0cmlkZXNbMV0gKiBBTElH TihoLzIsIHRpbGVfaGVpZ2h0KTsKLQotCQludW1fcGxhbmVzID0gMjsKLQl9Ci0KIAlkYXRhLT5n ZW1faGFuZGxlID0gZ2VtX2NyZWF0ZShkYXRhLT5nZnhfZmQsIGdlbXNpemUpOwogCXJldCA9IF9f Z2VtX3NldF90aWxpbmcoZGF0YS0+Z2Z4X2ZkLCBkYXRhLT5nZW1faGFuZGxlLAogCQkJICAgICAg IGlndF9mYl9tb2RfdG9fdGlsaW5nKHRpbGluZyksCkBAIC0zODYsMTIgKzI4NywyMyBAQCBzdGF0 aWMgYm9vbCBwcmVwYXJlX2NydGMoZGF0YV90ICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwK IAogc3RhdGljIGludAogdGVzdF9vbmVfbW9kZShkYXRhX3QqIGRhdGEsIGlndF9vdXRwdXRfdCAq b3V0cHV0LCBpZ3RfcGxhbmVfdCogcGxhbmUsCi0JICAgICAgaW50IG1vZGUpCisJICAgICAgaW50 IG1vZGUsIGVudW0gcGlwZSBwaXBlKQogewogCWlndF9jcmNfdCBjdXJyZW50X2NyYzsKIAlzaWdu ZWQgclZhbCA9IDA7CiAJYm9vbCBkb19jcmM7Ci0JY2hhciogY3JjY29tcGFyZVsyXTsKKwlpbnQg aTsKKworCS8qCisJICogTGltaXQgdGVzdHMgb25seSB0byB0aG9zZSBmYiBmb3JtYXRzIGxpc3Rl ZCBpbiBmaWxsZXJzIHRhYmxlCisJICovCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZmls bGVycyktMTsgaSsrKSB7CisJCWlmIChmaWxsZXJzW2ldLmZvdXJjYyA9PSBtb2RlKQorCQkJYnJl YWs7CisJfQorCisJaWYgKGZpbGxlcnNbaV0uYnBwID09IDApCisJCXJldHVybiBmYWxzZTsKIAog CWlmIChwcmVwYXJlX2NydGMoZGF0YSwgb3V0cHV0LCBwbGFuZSwgbW9kZSkpewogCQkvKgpAQCAt NDA3LDM0ICszMTksMzcgQEAgdGVzdF9vbmVfbW9kZShkYXRhX3QqIGRhdGEsIGlndF9vdXRwdXRf dCAqb3V0cHV0LCBpZ3RfcGxhbmVfdCogcGxhbmUsCiAJCWlndF9kaXNwbGF5X2NvbW1pdDIoJmRh dGEtPmRpc3BsYXksIGRhdGEtPmNvbW1pdCk7CiAKIAkJaWYgKGRvX2NyYykgeworCQkJaWd0X3dh aXRfZm9yX3ZibGFuayhkYXRhLT5nZnhfZmQsIHBpcGUpOworCQkJaWd0X3BpcGVfY3JjX2RyYWlu KGRhdGEtPnBpcGVfY3JjKTsKIAkJCWlndF9waXBlX2NyY19nZXRfY3VycmVudChkYXRhLT5nZnhf ZmQsIGRhdGEtPnBpcGVfY3JjLCAmY3VycmVudF9jcmMpOwogCiAJCQlpZiAocGxhbmUtPnR5cGUg IT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7CiAJCQkJaWYgKCFpZ3RfY2hlY2tfY3JjX2VxdWFs KCZjdXJyZW50X2NyYywKIAkJCQkJJmRhdGEtPmZ1bGxzY3JlZW5fY3JjKSkgewotCQkJCQljcmNj b21wYXJlWzBdID0gaWd0X2NyY190b19zdHJpbmcoJmN1cnJlbnRfY3JjKTsKLQkJCQkJY3JjY29t cGFyZVsxXSA9IGlndF9jcmNfdG9fc3RyaW5nKCZkYXRhLT5mdWxsc2NyZWVuX2NyYyk7Ci0JCQkJ CWlndF93YXJuKCJjcmMgbWlzbWF0Y2guIHRhcmdldCAlLjhzLCByZXN1bHQgJS44cy5cbiIsIGNy Y2NvbXBhcmVbMF0sIGNyY2NvbXBhcmVbMV0pOwotCQkJCQlmcmVlKGNyY2NvbXBhcmVbMF0pOwot CQkJCQlmcmVlKGNyY2NvbXBhcmVbMV0pOworCQkJCQlpZ3Rfd2FybigiY3JjIG1pc21hdGNoLiBj b25uZWN0b3IgJXMgdXNpbmcgcGlwZSAlcyIgXAorCQkJCQkJIiBwbGFuZSBpbmRleCAlZCBtb2Rl ICUuNHNcbiIsCisJCQkJCQlpZ3Rfb3V0cHV0X25hbWUob3V0cHV0KSwKKwkJCQkJCWttc3Rlc3Rf cGlwZV9uYW1lKHBpcGUpLAorCQkJCQkJcGxhbmUtPmluZGV4LAorCQkJCQkJKGNoYXIgKikmbW9k ZSk7CiAJCQkJCXJWYWwrKzsKIAkJCQl9CiAJCQl9IGVsc2UgewogCQkJCWlmICghaWd0X2NoZWNr X2NyY19lcXVhbCgmY3VycmVudF9jcmMsCiAJCQkJCSZkYXRhLT5jdXJzb3JfY3JjKSkgewotCQkJ CQljcmNjb21wYXJlWzBdID0gaWd0X2NyY190b19zdHJpbmcoJmN1cnJlbnRfY3JjKTsKLQkJCQkJ Y3JjY29tcGFyZVsxXSA9IGlndF9jcmNfdG9fc3RyaW5nKCZkYXRhLT5jdXJzb3JfY3JjKTsKLQkJ CQkJaWd0X3dhcm4oImNyYyBtaXNtYXRjaC4gdGFyZ2V0ICUuOHMsIHJlc3VsdCAlLjhzLlxuIiwg Y3JjY29tcGFyZVswXSwgY3JjY29tcGFyZVsxXSk7Ci0JCQkJCWZyZWUoY3JjY29tcGFyZVswXSk7 Ci0JCQkJCWZyZWUoY3JjY29tcGFyZVsxXSk7CisJCQkJCWlndF93YXJuKCJjcmMgbWlzbWF0Y2gu IGNvbm5lY3RvciAlcyB1c2luZyBwaXBlICVzIiBcCisJCQkJCQkiIHBsYW5lIGluZGV4ICVkIG1v ZGUgJS40c1xuIiwKKwkJCQkJCWlndF9vdXRwdXRfbmFtZShvdXRwdXQpLAorCQkJCQkJa21zdGVz dF9waXBlX25hbWUocGlwZSksCisJCQkJCQlwbGFuZS0+aW5kZXgsCisJCQkJCQkoY2hhciAqKSZt b2RlKTsKIAkJCQkJclZhbCsrOwogCQkJCX0KIAkJCX0KIAkJfQotCQlyZW1vdmVfZmIoZGF0YSwg b3V0cHV0LCBwbGFuZSk7Ci0JCXJldHVybiByVmFsOwogCX0KLQlyZXR1cm4gMTsKKwlyZW1vdmVf ZmIoZGF0YSwgb3V0cHV0LCBwbGFuZSk7CisJcmV0dXJuIHJWYWw7CiB9CiAKIApAQCAtNDQ1LDE0 ICszNjAsNDQgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0YV90KiBkYXRhKQogCWlndF9wbGFu ZV90ICpwbGFuZTsKIAlpbnQgbW9kZWluZGV4OwogCWVudW0gcGlwZSBwaXBlOwotCWludCBpbnZh bGlkcyA9IDA7CisJaW50IGludmFsaWRzID0gMCwgaSwgbHV0X3NpemU7CiAJZHJtTW9kZVBsYW5l ICptb2RlUGxhbmU7Ci0JY2hhciBwbGFuZXR5cGVbM11bOF0gPSB7Ik9WRVJMQVlcMCIsICJQUklN QVJZXDAiLCAiQ1VSU09SXDAiIH07CisKKwlzdHJ1Y3QgeworCQl1aW50MTZfdCByZWQ7CisJCXVp bnQxNl90IGdyZWVuOworCQl1aW50MTZfdCBibHVlOworCQl1aW50MTZfdCByZXNlcnZlZDsKKwl9 ICpsdXQgPSBOVUxMOwogCiAJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dCgmZGF0YS0+ ZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7CiAJCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBw aXBlKTsKIAkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0 KTsKIAorCQlpZiAoaWd0X3BpcGVfb2JqX2hhc19wcm9wKCZkYXRhLT5kaXNwbGF5LnBpcGVzW3Bp cGVdLCBJR1RfQ1JUQ19HQU1NQV9MVVRfU0laRSkpIHsKKwkJCWx1dF9zaXplID0gaWd0X3BpcGVf Z2V0X3Byb3AoJmRhdGEtPmRpc3BsYXksIHBpcGUsCisJCQkJCQkgICAgIElHVF9DUlRDX0dBTU1B X0xVVF9TSVpFKTsKKworCQkJbHV0ID0gY2FsbG9jKHNpemVvZigqbHV0KSwgbHV0X3NpemUpOwor CisJCQlmb3IgKGkgPSAwOyBpIDwgbHV0X3NpemU7IGkrKykgeworCQkJCWx1dFtpXS5yZWQgPSAo aSAqIDB4ZmZmZiAvIChsdXRfc2l6ZSAtIDEpKSAmIDB4ZmMwMDsKKwkJCQlsdXRbaV0uZ3JlZW4g PSAoaSAqIDB4ZmZmZiAvIChsdXRfc2l6ZSAtIDEpKSAmIDB4ZmMwMDsKKwkJCQlsdXRbaV0uYmx1 ZSA9IChpICogMHhmZmZmIC8gKGx1dF9zaXplIC0gMSkpICYgMHhmYzAwOworCQkJfQorCisJCQlp Z3RfcGlwZV9yZXBsYWNlX3Byb3BfYmxvYigmZGF0YS0+ZGlzcGxheSwgcGlwZSwKKwkJCQkJCSAg IElHVF9DUlRDX0dBTU1BX0xVVCwKKwkJCQkJCSAgIGx1dCwgc2l6ZW9mKCpsdXQpICogbHV0X3Np emUpOworCQkJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0 KTsKKworCQkJZm9yIChpID0gMDsgaSA8IGx1dF9zaXplOyBpKyspIHsKKwkJCQlsdXRbaV0ucmVk ID0gaSAqIDB4ZmZmZiAvIChsdXRfc2l6ZSAtIDEpOworCQkJCWx1dFtpXS5ncmVlbiA9IGkgKiAw eGZmZmYgLyAobHV0X3NpemUgLSAxKTsKKwkJCQlsdXRbaV0uYmx1ZSA9IGkgKiAweGZmZmYgLyAo bHV0X3NpemUgLSAxKTsKKwkJCX0KKwkJfQorCiAJCWRhdGEtPnBpcGVfY3JjID0gaWd0X3BpcGVf Y3JjX25ldyhkYXRhLT5nZnhfZmQsIHBpcGUsCiAJCQkJCQkgIElOVEVMX1BJUEVfQ1JDX1NPVVJD RV9BVVRPKTsKIApAQCAtNDY3LDI5ICs0MTIsMzQgQEAgdGVzdF9hdmFpbGFibGVfbW9kZXMoZGF0 YV90KiBkYXRhKQogCQkJbW9kZVBsYW5lID0gZHJtTW9kZUdldFBsYW5lKGRhdGEtPmdmeF9mZCwK IAkJCQkJCSAgICBwbGFuZS0+ZHJtX3BsYW5lLT5wbGFuZV9pZCk7CiAKKwkJCWlmIChwbGFuZS0+ dHlwZSA9PSBEUk1fUExBTkVfVFlQRV9DVVJTT1IpCisJCQkJY29udGludWU7CisKIAkJCWZvciAo bW9kZWluZGV4ID0gMDsKIAkJCSAgICAgbW9kZWluZGV4IDwgbW9kZVBsYW5lLT5jb3VudF9mb3Jt YXRzOwogCQkJICAgICBtb2RlaW5kZXgrKykgewogCQkJCWRhdGEtPmZvcm1hdC5kd29yZCA9IG1v ZGVQbGFuZS0+Zm9ybWF0c1ttb2RlaW5kZXhdOwogCi0JCQkJaWd0X2luZm8oIlRlc3RpbmcgY29u bmVjdG9yICVzIHVzaW5nIHBpcGUgJXMiIFwKLQkJCQkJICIgcGxhbmUgaW5kZXggJWQgdHlwZSAl cyBtb2RlICVzXG4iLAotCQkJCQkgaWd0X291dHB1dF9uYW1lKG91dHB1dCksCi0JCQkJCSBrbXN0 ZXN0X3BpcGVfbmFtZShwaXBlKSwKLQkJCQkJIHBsYW5lLT5pbmRleCwKLQkJCQkJIHBsYW5ldHlw ZVtwbGFuZS0+dHlwZV0sCi0JCQkJCSAoY2hhciopJmRhdGEtPmZvcm1hdC5uYW1lKTsKLQogCQkJ CWludmFsaWRzICs9IHRlc3Rfb25lX21vZGUoZGF0YSwgb3V0cHV0LAogCQkJCQkJCSAgcGxhbmUs Ci0JCQkJCQkJICBtb2RlUGxhbmUtPmZvcm1hdHNbbW9kZWluZGV4XSk7CisJCQkJCQkJICBtb2Rl UGxhbmUtPmZvcm1hdHNbbW9kZWluZGV4XSwKKwkJCQkJCQkgIHBpcGUpOwogCQkJfQogCQkJZHJt TW9kZUZyZWVQbGFuZShtb2RlUGxhbmUpOwogCQl9CiAJCWlndF9waXBlX2NyY19zdG9wKGRhdGEt PnBpcGVfY3JjKTsKIAkJaWd0X3BpcGVfY3JjX2ZyZWUoZGF0YS0+cGlwZV9jcmMpOwotCQlpZ3Rf ZGlzcGxheV9jb21taXQyKCZkYXRhLT5kaXNwbGF5LCBkYXRhLT5jb21taXQpOworCisJCWlmIChs dXQgIT0gTlVMTCkgeworCQkJaWd0X3BpcGVfcmVwbGFjZV9wcm9wX2Jsb2IoJmRhdGEtPmRpc3Bs YXksIHBpcGUsCisJCQkJCQkgICBJR1RfQ1JUQ19HQU1NQV9MVVQsCisJCQkJCQkgICBsdXQsIHNp emVvZigqbHV0KSAqIGx1dF9zaXplKTsKKwkJCWZyZWUobHV0KTsKKwkJCWx1dCA9IE5VTEw7CisJ CX0KKwogCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgUElQRV9OT05FKTsKKwkJaWd0X2Rp c3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgZGF0YS0+Y29tbWl0KTsKIAl9CiAJaWd0X2Fz c2VydChpbnZhbGlkcyA9PSAwKTsKIH0KLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndC1kZXY=