From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 44FB489EFF for ; Fri, 5 Apr 2019 23:31:31 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Fri, 5 Apr 2019 16:31:17 -0700 Message-Id: <20190405233118.23045-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/2] HAX: tests/kms_atomic_transition: Don't test more planes than memory bandwidth can support 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: Stanislav Lisovskiy List-ID: Q2M6IFN0YW5pc2xhdiBMaXNvdnNraXkgPHN0YW5pc2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNv bT4KLS0tCiB0ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRpb24uYyB8IDIxNyArKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKyks IDg3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlv bi5jIGIvdGVzdHMva21zX2F0b21pY190cmFuc2l0aW9uLmMKaW5kZXggMThmNzMzMTcuLjk5ODhm MzAzIDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfYXRvbWljX3RyYW5zaXRpb24uYworKysgYi90ZXN0 cy9rbXNfYXRvbWljX3RyYW5zaXRpb24uYwpAQCAtNDAsOSArNDAsMTggQEAKICNkZWZpbmUgRFJN X0NBUF9DVVJTT1JfSEVJR0hUIDB4OQogI2VuZGlmCiAKK2VudW0gZ3JvdXBfdHlwZSB7CisJR1JP VVBfVFlQRV9OT05FID0gMCwKKwlHUk9VUF9UWVBFX1BSSU1BUlkgPSAxIDw8IDAsCisJR1JPVVBf VFlQRV9DVVJTT1IgPSAxIDw8IDEsCisJR1JPVVBfVFlQRV9PVkVSTEFZID0gMSA8PCAyLAorCUdS T1VQX1RZUEVfT1ZFUkxBWTIgPSAxIDw8IDMKK307CisKIHN0cnVjdCBwbGFuZV9wYXJtcyB7CiAJ c3RydWN0IGlndF9mYiAqZmI7Ci0JdWludDMyX3Qgd2lkdGgsIGhlaWdodCwgbWFzazsKKwl1aW50 MzJfdCB3aWR0aCwgaGVpZ2h0OworCWVudW0gZ3JvdXBfdHlwZSBtYXNrOwogfTsKIAogLyogZ2xv YmFscyBmb3IgZmVuY2Ugc3VwcG9ydCAqLwpAQCAtMjAzLDEyICsyMTIsMTEgQEAgc3RhdGljIHZv aWQgc2V0dXBfcGFybXMoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgZW51bSBwaXBlIHBpcGUsCiAJ CQl1bnNpZ25lZCAqaXRlcl9tYXgpCiB7CiAJdWludDY0X3QgY3Vyc29yX3dpZHRoLCBjdXJzb3Jf aGVpZ2h0OwotCXVuc2lnbmVkIHNwcml0ZV93aWR0aCwgc3ByaXRlX2hlaWdodCwgcHJldl93LCBw cmV2X2g7Ci0JYm9vbCBtYXhfc3ByaXRlX3dpZHRoLCBtYXhfc3ByaXRlX2hlaWdodCwgYWxwaGEg PSB0cnVlOwotCXVpbnQzMl90IG5fcGxhbmVzID0gZGlzcGxheS0+cGlwZXNbcGlwZV0ubl9wbGFu ZXM7Ci0JdWludDMyX3Qgbl9vdmVybGF5cyA9IDAsIG92ZXJsYXlzW25fcGxhbmVzXTsKKwl1aW50 MzJfdCBzcHJpdGVfd2lkdGgsIHNwcml0ZV9oZWlnaHQsIHByZXZfdywgcHJldl9oOwogCWlndF9w bGFuZV90ICpwbGFuZTsKLQl1aW50MzJfdCBpdGVyX21hc2sgPSAzOworCXVpbnQzMl90IGl0ZXJf bWFzayA9IDAsIG1heF9vdmVybGF5cywgbl9vdmVybGF5cyA9IDA7CisJYm9vbCBhbHBoYSA9IHRy dWU7CisJaW50IHJldDsKIAogCWRvX29yX2RpZShkcm1HZXRDYXAoZGlzcGxheS0+ZHJtX2ZkLCBE Uk1fQ0FQX0NVUlNPUl9XSURUSCwgJmN1cnNvcl93aWR0aCkpOwogCWlmIChjdXJzb3Jfd2lkdGgg Pj0gbW9kZS0+aGRpc3BsYXkpCkBAIC0yMjUsMTIzICsyMzMsMTU2IEBAIHN0YXRpYyB2b2lkIHNl dHVwX3Bhcm1zKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLAogCQkJcGFy bXNbaV0uZmIgPSBwcmltYXJ5X2ZiOwogCQkJcGFybXNbaV0ud2lkdGggPSBtb2RlLT5oZGlzcGxh eTsKIAkJCXBhcm1zW2ldLmhlaWdodCA9IG1vZGUtPnZkaXNwbGF5OwotCQkJcGFybXNbaV0ubWFz ayA9IDEgPDwgMDsKKwkJCXBhcm1zW2ldLm1hc2sgPSBHUk9VUF9UWVBFX1BSSU1BUlk7CisJCQlp dGVyX21hc2sgfD0gR1JPVVBfVFlQRV9QUklNQVJZOwogCQl9IGVsc2UgaWYgKHBsYW5lLT50eXBl ID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikgewogCQkJcGFybXNbaV0uZmIgPSBhcmdiX2ZiOwog CQkJcGFybXNbaV0ud2lkdGggPSBjdXJzb3Jfd2lkdGg7CiAJCQlwYXJtc1tpXS5oZWlnaHQgPSBj dXJzb3JfaGVpZ2h0OwotCQkJcGFybXNbaV0ubWFzayA9IDEgPDwgMTsKKwkJCXBhcm1zW2ldLm1h c2sgPSBHUk9VUF9UWVBFX0NVUlNPUjsKKwkJCWl0ZXJfbWFzayB8PSBHUk9VUF9UWVBFX0NVUlNP UjsKIAkJfSBlbHNlIHsKIAkJCXBhcm1zW2ldLmZiID0gc3ByaXRlX2ZiOwotCQkJcGFybXNbaV0u bWFzayA9IDEgPDwgMjsKLQotCQkJaXRlcl9tYXNrIHw9IDEgPDwgMjsKLQotCQkJb3ZlcmxheXNb bl9vdmVybGF5cysrXSA9IGk7CisJCQlwYXJtc1tpXS5tYXNrID0gR1JPVVBfVFlQRV9PVkVSTEFZ OworCQkJaXRlcl9tYXNrIHw9IEdST1VQX1RZUEVfT1ZFUkxBWTsKKwkJCW5fb3ZlcmxheXMrKzsK KwkJCWlmIChhbHBoYSkKKwkJCQlhbHBoYSA9IGlndF9wbGFuZV9oYXNfZm9ybWF0X21vZChwbGFu ZSwKKwkJCQkJCQkJIERSTV9GT1JNQVRfQVJHQjg4ODgsCisJCQkJCQkJCSBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FKTsKIAkJfQogCX0KIAotCWlmIChuX292ZXJsYXlzID49IDIpIHsKLQkJdWlu dDMyX3QgaTsKKwlwcmV2X3cgPSBzcHJpdGVfd2lkdGggPSBjdXJzb3Jfd2lkdGg7CisJcHJldl9o ID0gc3ByaXRlX2hlaWdodCA9IGN1cnNvcl9oZWlnaHQ7CisKKwlpZ3RfY3JlYXRlX2ZiKGRpc3Bs YXktPmRybV9mZCwgY3Vyc29yX3dpZHRoLCBjdXJzb3JfaGVpZ2h0LAorCQkgICAgICBEUk1fRk9S TUFUX0FSR0I4ODg4LCBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLCBhcmdiX2ZiKTsKKworCWln dF9jcmVhdGVfZmIoZGlzcGxheS0+ZHJtX2ZkLCBzcHJpdGVfd2lkdGgsIHNwcml0ZV9oZWlnaHQs CisJCSAgICAgIGFscGhhID8gRFJNX0ZPUk1BVF9BUkdCODg4OCA6IERSTV9GT1JNQVRfWFJHQjg4 ODgsCisJCSAgICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsIHNwcml0ZV9mYik7CisKKwlt YXhfb3ZlcmxheXMgPSBuX292ZXJsYXlzOworcmV0cnlfYnc6CisJLyogTGltaXQgdGhlIG51bWJl ciBvZiBwbGFuZXMgKi8KKwl3aGlsZSAobWF4X292ZXJsYXlzIDwgbl9vdmVybGF5cykgeworCQlp bnQgaSA9IGhhcnNfcGV0cnVza2FfZjU0XzFfcmFuZG9tX3Vuc2FmZV9tYXgoZGlzcGxheS0+cGlw ZXNbcGlwZV0ubl9wbGFuZXMpOwogCiAJCS8qCi0JCSAqIENyZWF0ZSAyIGdyb3VwcyBmb3Igb3Zl cmxheXMsIG1ha2Ugc3VyZSAxIHBsYW5lIGlzIHB1dAotCQkgKiBpbiBlYWNoIHRoZW4gc3ByZWFk IHRoZSByZXN0IG91dC4KKwkJICogQWx3YXlzIGtlZXAgcHJpbWFyeSBhbmQgY3Vyc29yIGFuZCBk aXNjYXJkIGFscmVhZHkKKwkJICogcmVtb3ZlZCBwbGFuZXMKIAkJICovCi0JCWl0ZXJfbWFzayB8 PSAxIDw8IDM7Ci0JCXBhcm1zW292ZXJsYXlzW25fb3ZlcmxheXMgLSAxXV0ubWFzayA9IDEgPDwg MzsKKwkJaWYgKHBhcm1zW2ldLm1hc2sgIT0gR1JPVVBfVFlQRV9PVkVSTEFZKQorCQkJY29udGlu dWU7CiAKLQkJZm9yIChpID0gMTsgaSA8IG5fb3ZlcmxheXMgLSAxOyBpKyspIHsKLQkJCWludCB2 YWwgPSBoYXJzX3BldHJ1c2thX2Y1NF8xX3JhbmRvbV91bnNhZmVfbWF4KDIpOworCQlwYXJtc1tp XS5tYXNrID0gR1JPVVBfVFlQRV9OT05FOworCQluX292ZXJsYXlzLS07CisJfQogCi0JCQlwYXJt c1tvdmVybGF5c1tpXV0ubWFzayA9IDEgPDwgKDIgKyB2YWwpOwotCQl9CisJLyoKKwkgKiBDaGVj ayBpZiB0aGVyZSBpcyBlbm91Z2ggYmFuZHdpZHRoIGZvciB0aGUgY3VycmVudCBudW1iZXIgb2Yg cGxhbmVzLgorCSAqIEFzIHRoZSBwbGFuZSBzaXplIGFuZCBwb3NpdGlvbiBpcyBub3QgdGFrZW4g aW50byBhY2NvdW50IHdlIGNhbiBkbworCSAqIHRoaXMgZWFybGllci4KKwkgKi8KKwlzZXRfc3By aXRlX3doKGRpc3BsYXksIHBpcGUsIHBhcm1zLCBzcHJpdGVfZmIsIGFscGhhLCBzcHJpdGVfd2lk dGgsCisJCSAgICAgIHNwcml0ZV9oZWlnaHQpOworCXdtX3NldHVwX3BsYW5lKGRpc3BsYXksIHBp cGUsIGl0ZXJfbWFzaywgcGFybXMsIGZhbHNlKTsKKworCS8qIEl0IHNob3VsZCBiZSBhYmxlIHRv IGhhbmRsZSBhdCBsZWFzdCBwcmltYXJ5IGFuZCBjdXJzb3IgKi8KKwlpZiAoIW1heF9vdmVybGF5 cykgeworCQlpdGVyX21hc2sgJj0gfkdST1VQX1RZUEVfT1ZFUkxBWTsKKwkJKml0ZXJfbWF4ID0g aXRlcl9tYXNrICsgMTsKKwkJcmV0dXJuOwogCX0KIAotCWlndF9jcmVhdGVfZmIoZGlzcGxheS0+ ZHJtX2ZkLCBjdXJzb3Jfd2lkdGgsIGN1cnNvcl9oZWlnaHQsCi0JCSAgICAgIERSTV9GT1JNQVRf QVJHQjg4ODgsIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsIGFyZ2JfZmIpOworCXJldCA9IGln dF9kaXNwbGF5X3RyeV9jb21taXRfYXRvbWljKGRpc3BsYXksIERSTV9NT0RFX0FUT01JQ19URVNU X09OTFkgfAorCQkJCQkgICAgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQsCisJCQkJCSAg ICBOVUxMKTsKKwkvKgorCSAqIENvdWxkIG1lYW4gb3RoZXIgZXJyb3JzIGJ1dCB0aGlzIGlzIGFs c28gdGhlIGVycm9yIHJldHVybmVkIHdoZW4KKwkgKiB0aGVyZSBpcyBub3QgZW5vdWdoIGJhbmR3 aWR0aCBmb3IgYWxsIHRoZSBwbGFuZXMKKwkgKi8KKwlpZiAocmV0ID09IC1FSU5WQUwpIHsKKwkJ bWF4X292ZXJsYXlzLS07CisJCWdvdG8gcmV0cnlfYnc7CisJfQogCi0JaWd0X2NyZWF0ZV9mYihk aXNwbGF5LT5kcm1fZmQsIGN1cnNvcl93aWR0aCwgY3Vyc29yX2hlaWdodCwKLQkJICAgICAgRFJN X0ZPUk1BVF9BUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgc3ByaXRlX2ZiKTsK KwlpZ3RfYXNzZXJ0X2YoIXJldCwgIkVycm9yICVpIG5vdCBleHBlY3RlZCBieSB0cnlfY29tbWl0 KClcbiIsIHJldCk7CiAKLQkqaXRlcl9tYXggPSBpdGVyX21hc2sgKyAxOwotCWlmICghbl9vdmVy bGF5cykKLQkJcmV0dXJuOworCS8qIFNvIGl0IGhhdmUgZW5vdWdoIGJhbmR3aWR0aCBmb3Igbl9v dmVybGF5cyBwbGFuZXMgKi8KIAogCS8qCi0JICogUHJlIGdlbjkgbm90IGFsbCBzaXplcyBhcmUg c3VwcG9ydGVkLCBmaW5kIHRoZSBiaWdnZXN0IHBvc3NpYmxlCi0JICogc2l6ZSB0aGF0IGNhbiBi ZSBlbmFibGVkIG9uIGFsbCBzcHJpdGUgcGxhbmVzLgorCSAqIENyZWF0ZSAyIGdyb3VwcyBmb3Ig b3ZlcmxheXMsIG1ha2Ugc3VyZSAxIHBsYW5lIGlzIHB1dCBpbiBlYWNoIHRoZW4KKwkgKiBzcHJl YWQgdGhlIHJlc3Qgb3V0LgogCSAqLwotcmV0cnk6Ci0JcHJldl93ID0gc3ByaXRlX3dpZHRoID0g Y3Vyc29yX3dpZHRoOwotCXByZXZfaCA9IHNwcml0ZV9oZWlnaHQgPSBjdXJzb3JfaGVpZ2h0Owor CWl0ZXJfbWFzayAmPSB+R1JPVVBfVFlQRV9PVkVSTEFZOworCWZvcl9lYWNoX3BsYW5lX29uX3Bp cGUoZGlzcGxheSwgcGlwZSwgcGxhbmUpIHsKKwkJaW50IGkgPSBwbGFuZS0+aW5kZXg7CiAKLQlt YXhfc3ByaXRlX3dpZHRoID0gKHNwcml0ZV93aWR0aCA9PSBtb2RlLT5oZGlzcGxheSk7Ci0JbWF4 X3Nwcml0ZV9oZWlnaHQgPSAoc3ByaXRlX2hlaWdodCA9PSBtb2RlLT52ZGlzcGxheSk7CisJCWlm IChwYXJtc1tpXS5tYXNrICE9IEdST1VQX1RZUEVfT1ZFUkxBWSkKKwkJCWNvbnRpbnVlOwogCi0J d2hpbGUgKDEpIHsKLQkJaW50IHJldDsKKwkJLyogRmlyc3Qgb3ZlcmxheSBwbGFuZSB3aWxsIGJl IG92ZXJsYXkgZ3JvdXAgMSAqLworCQlpZiAoIShpdGVyX21hc2sgJiBHUk9VUF9UWVBFX09WRVJM QVkpKSB7CisJCQlpdGVyX21hc2sgfD0gR1JPVVBfVFlQRV9PVkVSTEFZOworCQkJY29udGludWU7 CisJCX0KIAotCQlzZXRfc3ByaXRlX3doKGRpc3BsYXksIHBpcGUsIHBhcm1zLCBzcHJpdGVfZmIs Ci0JCQkgICAgICBhbHBoYSwgc3ByaXRlX3dpZHRoLCBzcHJpdGVfaGVpZ2h0KTsKKwkJLyogU2Vj b25kIG92ZXJsYXkgcGxhbmUgd2lsbCBiZSBvdmVybGF5IGdyb3VwIDEgKi8KKwkJaWYgKCEoaXRl cl9tYXNrICYgR1JPVVBfVFlQRV9PVkVSTEFZMikpIHsKKwkJCWl0ZXJfbWFzayB8PSBHUk9VUF9U WVBFX09WRVJMQVkyOworCQkJcGFybXNbaV0ubWFzayA9IEdST1VQX1RZUEVfT1ZFUkxBWTI7CisJ CQljb250aW51ZTsKKwkJfQogCi0JCXdtX3NldHVwX3BsYW5lKGRpc3BsYXksIHBpcGUsICgxIDw8 IG5fcGxhbmVzKSAtIDEsIHBhcm1zLCBmYWxzZSk7Ci0JCXJldCA9IGlndF9kaXNwbGF5X3RyeV9j b21taXRfYXRvbWljKGRpc3BsYXksIERSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgfCBEUk1fTU9E RV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwgTlVMTCk7Ci0JCWlndF9hc3NlcnQoIWlzX2F0b21pY19j aGVja19mYWlsdXJlX2Vycm5vKHJldCkpOworCQkvKiBTb3J0IHRoZSBncm91cCBvZiB0aGUgcmVz dCBvZiBvdmVybGF5IHBsYW5lcyAqLworCQlpZiAoaGFyc19wZXRydXNrYV9mNTRfMV9yYW5kb21f dW5zYWZlX21heCgyKSkKKwkJCXBhcm1zW2ldLm1hc2sgPSBHUk9VUF9UWVBFX09WRVJMQVkyOwor CX0KIAotCQlpZiAoaXNfYXRvbWljX2NoZWNrX3BsYW5lX3NpemVfZXJybm8ocmV0KSkgewotCQkJ aWYgKGN1cnNvcl93aWR0aCA9PSBzcHJpdGVfd2lkdGggJiYKLQkJCSAgICBjdXJzb3JfaGVpZ2h0 ID09IHNwcml0ZV9oZWlnaHQpIHsKLQkJCQlpZ3RfYXNzZXJ0X2YoYWxwaGEsCi0JCQkJCSAgICAg ICJDYW5ub3QgY29uZmlndXJlIHRoZSB0ZXN0IHdpdGggYWxsIHNwcml0ZSBwbGFuZXMgZW5hYmxl ZFxuIik7Ci0KLQkJCQkvKiByZXRyeSBvbmNlIHdpdGggWFJHQiBmb3JtYXQuICovCi0JCQkJYWxw aGEgPSBmYWxzZTsKLQkJCQlnb3RvIHJldHJ5OwotCQkJfQorCSppdGVyX21heCA9IGl0ZXJfbWFz ayArIDE7CiAKKwkvKgorCSAqIFByZSBnZW45IG5vdCBhbGwgc2l6ZXMgYXJlIHN1cHBvcnRlZCwg ZmluZCB0aGUgYmlnZ2VzdCBwb3NzaWJsZQorCSAqIHNpemUgdGhhdCBjYW4gYmUgZW5hYmxlZCBv biBhbGwgc3ByaXRlIHBsYW5lcy4KKwkgKi8KKwl3aGlsZSAoMSkgeworCQkvKiBTaXplIGxpbWl0 IHJlYWNoZWQgKi8KKwkJaWYgKGlzX2F0b21pY19jaGVja19wbGFuZV9zaXplX2Vycm5vKHJldCkp IHsKIAkJCXNwcml0ZV93aWR0aCA9IHByZXZfdzsKIAkJCXNwcml0ZV9oZWlnaHQgPSBwcmV2X2g7 Ci0KLQkJCWlmIChtYXhfc3ByaXRlX3dpZHRoICYmIG1heF9zcHJpdGVfaGVpZ2h0KSB7Ci0JCQkJ c2V0X3Nwcml0ZV93aChkaXNwbGF5LCBwaXBlLCBwYXJtcywgc3ByaXRlX2ZiLAotCQkJCQkgICAg ICBhbHBoYSwgc3ByaXRlX3dpZHRoLCBzcHJpdGVfaGVpZ2h0KTsKLQkJCQlicmVhazsKLQkJCX0K LQotCQkJaWYgKCFtYXhfc3ByaXRlX3dpZHRoKQotCQkJCW1heF9zcHJpdGVfd2lkdGggPSB0cnVl OwotCQkJZWxzZQotCQkJCW1heF9zcHJpdGVfaGVpZ2h0ID0gdHJ1ZTsKLQkJfSBlbHNlIHsKLQkJ CXByZXZfdyA9IHNwcml0ZV93aWR0aDsKLQkJCXByZXZfaCA9IHNwcml0ZV9oZWlnaHQ7CisJCQli cmVhazsKIAkJfQogCi0JCWlmICghbWF4X3Nwcml0ZV93aWR0aCkgewotCQkJc3ByaXRlX3dpZHRo ICo9IDI7CisJCS8qIENvbW1pdCBpcyB2YWxpZCBhbmQgaXQgcmVhY2hlZCBtYXggc2l6ZSwgdXNl IHRoaXMgc2l6ZSAqLworCQlpZiAoc3ByaXRlX3dpZHRoID09IG1vZGUtPmhkaXNwbGF5IHx8CisJ CSAgICBzcHJpdGVfaGVpZ2h0ID09IG1vZGUtPnZkaXNwbGF5KQorCQkJYnJlYWs7CiAKLQkJCWlm IChzcHJpdGVfd2lkdGggPj0gbW9kZS0+aGRpc3BsYXkpIHsKLQkJCQltYXhfc3ByaXRlX3dpZHRo ID0gdHJ1ZTsKKwkJcHJldl93ID0gc3ByaXRlX3dpZHRoOworCQlwcmV2X2ggPSBzcHJpdGVfaGVp Z2h0OwogCi0JCQkJc3ByaXRlX3dpZHRoID0gbW9kZS0+aGRpc3BsYXk7Ci0JCQl9Ci0JCX0gZWxz ZSBpZiAoIW1heF9zcHJpdGVfaGVpZ2h0KSB7Ci0JCQlzcHJpdGVfaGVpZ2h0ICo9IDI7CisJCXNw cml0ZV93aWR0aCAqPSAyOworCQlpZiAoc3ByaXRlX3dpZHRoID49IG1vZGUtPmhkaXNwbGF5KQor CQkJc3ByaXRlX3dpZHRoID0gbW9kZS0+aGRpc3BsYXk7CiAKLQkJCWlmIChzcHJpdGVfaGVpZ2h0 ID49IG1vZGUtPnZkaXNwbGF5KSB7Ci0JCQkJbWF4X3Nwcml0ZV9oZWlnaHQgPSB0cnVlOworCQlz cHJpdGVfaGVpZ2h0ICo9IDI7CisJCWlmIChzcHJpdGVfaGVpZ2h0ID49IG1vZGUtPnZkaXNwbGF5 KQorCQkJc3ByaXRlX2hlaWdodCA9IG1vZGUtPnZkaXNwbGF5OwogCi0JCQkJc3ByaXRlX2hlaWdo dCA9IG1vZGUtPnZkaXNwbGF5OwotCQkJfQotCQl9IGVsc2UKLQkJCS8qIE1heCBzaXplZCBzcHJp dGVzIGZvciBhbGwhICovCi0JCQlicmVhazsKKwkJc2V0X3Nwcml0ZV93aChkaXNwbGF5LCBwaXBl LCBwYXJtcywgc3ByaXRlX2ZiLCBzcHJpdGVfd2lkdGgsCisJCQkgICAgICBzcHJpdGVfaGVpZ2h0 LCBhbHBoYSk7CisJCXdtX3NldHVwX3BsYW5lKGRpc3BsYXksIHBpcGUsIGl0ZXJfbWFzaywgcGFy bXMsIGZhbHNlKTsKKwkJcmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMoZGlzcGxh eSwKKwkJCQkJCSAgICBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZIHwKKwkJCQkJCSAgICBEUk1f TU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwKKwkJCQkJCSAgICBOVUxMKTsKIAl9CiAKLQlpZ3Rf aW5mbygiUnVubmluZyB0ZXN0IG9uIHBpcGUgJXMgd2l0aCByZXNvbHV0aW9uICVkeCVkIGFuZCBz cHJpdGUgc2l6ZSAlZHglZCBhbHBoYSAlaVxuIiwKKwlpZ3RfaW5mbygiUnVubmluZyB0ZXN0IG9u IHBpcGUgJXMgd2l0aCByZXNvbHV0aW9uICVkeCVkLCBzcHJpdGUgc2l6ZSAlZHglZCwgYWxwaGEg JWkgYW5kICVpIG92ZXJsYXkgcGxhbmVzXG4iLAogCQkga21zdGVzdF9waXBlX25hbWUocGlwZSks IG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSwKLQkJIHNwcml0ZV93aWR0aCwgc3ByaXRl X2hlaWdodCwgYWxwaGEpOworCQkgc3ByaXRlX3dpZHRoLCBzcHJpdGVfaGVpZ2h0LCBhbHBoYSwg bl9vdmVybGF5cyk7CiB9CiAKIHN0YXRpYyB2b2lkIHByZXBhcmVfZmVuY2luZyhpZ3RfZGlzcGxh eV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSkKQEAgLTUxOSw4ICs1NjAsMTAgQEAgcnVuX3Ry YW5zaXRpb25fdGVzdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwgaWd0 X291dHB1dF90ICpvdXRwdXQKIAkJfQogCiAJCS8qIGZvcmNlIHBsYW5lcyB0byBiZSBwYXJ0IG9m IGNvbW1pdCAqLwotCQlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKGRpc3BsYXksIHBpcGUsIHBsYW5l KQotCQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgMCwgMCk7CisJCWZvcl9lYWNoX3Bs YW5lX29uX3BpcGUoZGlzcGxheSwgcGlwZSwgcGxhbmUpIHsKKwkJCWlmIChwYXJtc1twbGFuZS0+ aW5kZXhdLm1hc2sgIT0gR1JPVVBfVFlQRV9OT05FKQorCQkJCWlndF9wbGFuZV9zZXRfcG9zaXRp b24ocGxhbmUsIDAsIDApOworCQl9CiAKIAkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfQVRPTUlDKTsKIAotLSAKMi4yMS4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXY=