From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 71CD3890AF for ; Mon, 8 Apr 2019 19:59:54 +0000 (UTC) From: =?UTF-8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Mon, 8 Apr 2019 12:59:51 -0700 Message-Id: <20190408195952.17061-1-jose.souza@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2 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 List-ID: djI6IEZpeCB3cm9uZyBwYXJhbWV0ZXJzIG90aGVyIHdoZW4gY2FsbGluZyBzZXRfc3ByaXRlX3do KCksIGNhdXNpbmcKaGVpZ2h0ID0gYWxwaGEKClNpZ25lZC1vZmYtYnk6IEpvc8OpIFJvYmVydG8g ZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgotLS0KIHRlc3RzL2ttc19hdG9taWNfdHJh bnNpdGlvbi5jIHwgMjE3ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKSwgODcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvdGVzdHMva21zX2F0b21pY190cmFuc2l0aW9uLmMgYi90ZXN0cy9rbXNfYXRvbWljX3RyYW5z aXRpb24uYwppbmRleCAxOGY3MzMxNy4uYzUxMjdhZDcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19h dG9taWNfdHJhbnNpdGlvbi5jCisrKyBiL3Rlc3RzL2ttc19hdG9taWNfdHJhbnNpdGlvbi5jCkBA IC00MCw5ICs0MCwxOCBAQAogI2RlZmluZSBEUk1fQ0FQX0NVUlNPUl9IRUlHSFQgMHg5CiAjZW5k aWYKIAorZW51bSBncm91cF90eXBlIHsKKwlHUk9VUF9UWVBFX05PTkUgPSAwLAorCUdST1VQX1RZ UEVfUFJJTUFSWSA9IDEgPDwgMCwKKwlHUk9VUF9UWVBFX0NVUlNPUiA9IDEgPDwgMSwKKwlHUk9V UF9UWVBFX09WRVJMQVkgPSAxIDw8IDIsCisJR1JPVVBfVFlQRV9PVkVSTEFZMiA9IDEgPDwgMwor fTsKKwogc3RydWN0IHBsYW5lX3Bhcm1zIHsKIAlzdHJ1Y3QgaWd0X2ZiICpmYjsKLQl1aW50MzJf dCB3aWR0aCwgaGVpZ2h0LCBtYXNrOworCXVpbnQzMl90IHdpZHRoLCBoZWlnaHQ7CisJZW51bSBn cm91cF90eXBlIG1hc2s7CiB9OwogCiAvKiBnbG9iYWxzIGZvciBmZW5jZSBzdXBwb3J0ICovCkBA IC0yMDMsMTIgKzIxMiwxMSBAQCBzdGF0aWMgdm9pZCBzZXR1cF9wYXJtcyhpZ3RfZGlzcGxheV90 ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwKIAkJCXVuc2lnbmVkICppdGVyX21heCkKIHsKIAl1 aW50NjRfdCBjdXJzb3Jfd2lkdGgsIGN1cnNvcl9oZWlnaHQ7Ci0JdW5zaWduZWQgc3ByaXRlX3dp ZHRoLCBzcHJpdGVfaGVpZ2h0LCBwcmV2X3csIHByZXZfaDsKLQlib29sIG1heF9zcHJpdGVfd2lk dGgsIG1heF9zcHJpdGVfaGVpZ2h0LCBhbHBoYSA9IHRydWU7Ci0JdWludDMyX3Qgbl9wbGFuZXMg PSBkaXNwbGF5LT5waXBlc1twaXBlXS5uX3BsYW5lczsKLQl1aW50MzJfdCBuX292ZXJsYXlzID0g MCwgb3ZlcmxheXNbbl9wbGFuZXNdOworCXVpbnQzMl90IHNwcml0ZV93aWR0aCwgc3ByaXRlX2hl aWdodCwgcHJldl93LCBwcmV2X2g7CiAJaWd0X3BsYW5lX3QgKnBsYW5lOwotCXVpbnQzMl90IGl0 ZXJfbWFzayA9IDM7CisJdWludDMyX3QgaXRlcl9tYXNrID0gMCwgbWF4X292ZXJsYXlzLCBuX292 ZXJsYXlzID0gMDsKKwlib29sIGFscGhhID0gdHJ1ZTsKKwlpbnQgcmV0OwogCiAJZG9fb3JfZGll KGRybUdldENhcChkaXNwbGF5LT5kcm1fZmQsIERSTV9DQVBfQ1VSU09SX1dJRFRILCAmY3Vyc29y X3dpZHRoKSk7CiAJaWYgKGN1cnNvcl93aWR0aCA+PSBtb2RlLT5oZGlzcGxheSkKQEAgLTIyNSwx MjMgKzIzMywxNTYgQEAgc3RhdGljIHZvaWQgc2V0dXBfcGFybXMoaWd0X2Rpc3BsYXlfdCAqZGlz cGxheSwgZW51bSBwaXBlIHBpcGUsCiAJCQlwYXJtc1tpXS5mYiA9IHByaW1hcnlfZmI7CiAJCQlw YXJtc1tpXS53aWR0aCA9IG1vZGUtPmhkaXNwbGF5OwogCQkJcGFybXNbaV0uaGVpZ2h0ID0gbW9k ZS0+dmRpc3BsYXk7Ci0JCQlwYXJtc1tpXS5tYXNrID0gMSA8PCAwOworCQkJcGFybXNbaV0ubWFz ayA9IEdST1VQX1RZUEVfUFJJTUFSWTsKKwkJCWl0ZXJfbWFzayB8PSBHUk9VUF9UWVBFX1BSSU1B Ulk7CiAJCX0gZWxzZSBpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKSB7 CiAJCQlwYXJtc1tpXS5mYiA9IGFyZ2JfZmI7CiAJCQlwYXJtc1tpXS53aWR0aCA9IGN1cnNvcl93 aWR0aDsKIAkJCXBhcm1zW2ldLmhlaWdodCA9IGN1cnNvcl9oZWlnaHQ7Ci0JCQlwYXJtc1tpXS5t YXNrID0gMSA8PCAxOworCQkJcGFybXNbaV0ubWFzayA9IEdST1VQX1RZUEVfQ1VSU09SOworCQkJ aXRlcl9tYXNrIHw9IEdST1VQX1RZUEVfQ1VSU09SOwogCQl9IGVsc2UgewogCQkJcGFybXNbaV0u ZmIgPSBzcHJpdGVfZmI7Ci0JCQlwYXJtc1tpXS5tYXNrID0gMSA8PCAyOwotCi0JCQlpdGVyX21h c2sgfD0gMSA8PCAyOwotCi0JCQlvdmVybGF5c1tuX292ZXJsYXlzKytdID0gaTsKKwkJCXBhcm1z W2ldLm1hc2sgPSBHUk9VUF9UWVBFX09WRVJMQVk7CisJCQlpdGVyX21hc2sgfD0gR1JPVVBfVFlQ RV9PVkVSTEFZOworCQkJbl9vdmVybGF5cysrOworCQkJaWYgKGFscGhhKQorCQkJCWFscGhhID0g aWd0X3BsYW5lX2hhc19mb3JtYXRfbW9kKHBsYW5lLAorCQkJCQkJCQkgRFJNX0ZPUk1BVF9BUkdC ODg4OCwKKwkJCQkJCQkJIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUpOwogCQl9CiAJfQogCi0J aWYgKG5fb3ZlcmxheXMgPj0gMikgewotCQl1aW50MzJfdCBpOworCXByZXZfdyA9IHNwcml0ZV93 aWR0aCA9IGN1cnNvcl93aWR0aDsKKwlwcmV2X2ggPSBzcHJpdGVfaGVpZ2h0ID0gY3Vyc29yX2hl aWdodDsKKworCWlndF9jcmVhdGVfZmIoZGlzcGxheS0+ZHJtX2ZkLCBjdXJzb3Jfd2lkdGgsIGN1 cnNvcl9oZWlnaHQsCisJCSAgICAgIERSTV9GT1JNQVRfQVJHQjg4ODgsIExPQ0FMX0RSTV9GT1JN QVRfTU9EX05PTkUsIGFyZ2JfZmIpOworCisJaWd0X2NyZWF0ZV9mYihkaXNwbGF5LT5kcm1fZmQs IHNwcml0ZV93aWR0aCwgc3ByaXRlX2hlaWdodCwKKwkJICAgICAgYWxwaGEgPyBEUk1fRk9STUFU X0FSR0I4ODg4IDogRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJICAgICAgTE9DQUxfRFJNX0ZPUk1B VF9NT0RfTk9ORSwgc3ByaXRlX2ZiKTsKKworCW1heF9vdmVybGF5cyA9IG5fb3ZlcmxheXM7City ZXRyeV9idzoKKwkvKiBMaW1pdCB0aGUgbnVtYmVyIG9mIHBsYW5lcyAqLworCXdoaWxlIChtYXhf b3ZlcmxheXMgPCBuX292ZXJsYXlzKSB7CisJCWludCBpID0gaGFyc19wZXRydXNrYV9mNTRfMV9y YW5kb21fdW5zYWZlX21heChkaXNwbGF5LT5waXBlc1twaXBlXS5uX3BsYW5lcyk7CiAKIAkJLyoK LQkJICogQ3JlYXRlIDIgZ3JvdXBzIGZvciBvdmVybGF5cywgbWFrZSBzdXJlIDEgcGxhbmUgaXMg cHV0Ci0JCSAqIGluIGVhY2ggdGhlbiBzcHJlYWQgdGhlIHJlc3Qgb3V0LgorCQkgKiBBbHdheXMg a2VlcCBwcmltYXJ5IGFuZCBjdXJzb3IgYW5kIGRpc2NhcmQgYWxyZWFkeQorCQkgKiByZW1vdmVk IHBsYW5lcwogCQkgKi8KLQkJaXRlcl9tYXNrIHw9IDEgPDwgMzsKLQkJcGFybXNbb3ZlcmxheXNb bl9vdmVybGF5cyAtIDFdXS5tYXNrID0gMSA8PCAzOworCQlpZiAocGFybXNbaV0ubWFzayAhPSBH Uk9VUF9UWVBFX09WRVJMQVkpCisJCQljb250aW51ZTsKIAotCQlmb3IgKGkgPSAxOyBpIDwgbl9v dmVybGF5cyAtIDE7IGkrKykgewotCQkJaW50IHZhbCA9IGhhcnNfcGV0cnVza2FfZjU0XzFfcmFu ZG9tX3Vuc2FmZV9tYXgoMik7CisJCXBhcm1zW2ldLm1hc2sgPSBHUk9VUF9UWVBFX05PTkU7CisJ CW5fb3ZlcmxheXMtLTsKKwl9CiAKLQkJCXBhcm1zW292ZXJsYXlzW2ldXS5tYXNrID0gMSA8PCAo MiArIHZhbCk7Ci0JCX0KKwkvKgorCSAqIENoZWNrIGlmIHRoZXJlIGlzIGVub3VnaCBiYW5kd2lk dGggZm9yIHRoZSBjdXJyZW50IG51bWJlciBvZiBwbGFuZXMuCisJICogQXMgdGhlIHBsYW5lIHNp emUgYW5kIHBvc2l0aW9uIGlzIG5vdCB0YWtlbiBpbnRvIGFjY291bnQgd2UgY2FuIGRvCisJICog dGhpcyBlYXJsaWVyLgorCSAqLworCXNldF9zcHJpdGVfd2goZGlzcGxheSwgcGlwZSwgcGFybXMs IHNwcml0ZV9mYiwgYWxwaGEsIHNwcml0ZV93aWR0aCwKKwkJICAgICAgc3ByaXRlX2hlaWdodCk7 CisJd21fc2V0dXBfcGxhbmUoZGlzcGxheSwgcGlwZSwgaXRlcl9tYXNrLCBwYXJtcywgZmFsc2Up OworCisJLyogSXQgc2hvdWxkIGJlIGFibGUgdG8gaGFuZGxlIGF0IGxlYXN0IHByaW1hcnkgYW5k IGN1cnNvciAqLworCWlmICghbWF4X292ZXJsYXlzKSB7CisJCWl0ZXJfbWFzayAmPSB+R1JPVVBf VFlQRV9PVkVSTEFZOworCQkqaXRlcl9tYXggPSBpdGVyX21hc2sgKyAxOworCQlyZXR1cm47CiAJ fQogCi0JaWd0X2NyZWF0ZV9mYihkaXNwbGF5LT5kcm1fZmQsIGN1cnNvcl93aWR0aCwgY3Vyc29y X2hlaWdodCwKLQkJICAgICAgRFJNX0ZPUk1BVF9BUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9N T0RfTk9ORSwgYXJnYl9mYik7CisJcmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMo ZGlzcGxheSwgRFJNX01PREVfQVRPTUlDX1RFU1RfT05MWSB8CisJCQkJCSAgICBEUk1fTU9ERV9B VE9NSUNfQUxMT1dfTU9ERVNFVCwKKwkJCQkJICAgIE5VTEwpOworCS8qCisJICogQ291bGQgbWVh biBvdGhlciBlcnJvcnMgYnV0IHRoaXMgaXMgYWxzbyB0aGUgZXJyb3IgcmV0dXJuZWQgd2hlbgor CSAqIHRoZXJlIGlzIG5vdCBlbm91Z2ggYmFuZHdpZHRoIGZvciBhbGwgdGhlIHBsYW5lcworCSAq LworCWlmIChyZXQgPT0gLUVJTlZBTCkgeworCQltYXhfb3ZlcmxheXMtLTsKKwkJZ290byByZXRy eV9idzsKKwl9CiAKLQlpZ3RfY3JlYXRlX2ZiKGRpc3BsYXktPmRybV9mZCwgY3Vyc29yX3dpZHRo LCBjdXJzb3JfaGVpZ2h0LAotCQkgICAgICBEUk1fRk9STUFUX0FSR0I4ODg4LCBMT0NBTF9EUk1f Rk9STUFUX01PRF9OT05FLCBzcHJpdGVfZmIpOworCWlndF9hc3NlcnRfZighcmV0LCAiRXJyb3Ig JWkgbm90IGV4cGVjdGVkIGJ5IHRyeV9jb21taXQoKVxuIiwgcmV0KTsKIAotCSppdGVyX21heCA9 IGl0ZXJfbWFzayArIDE7Ci0JaWYgKCFuX292ZXJsYXlzKQotCQlyZXR1cm47CisJLyogU28gaXQg aGF2ZSBlbm91Z2ggYmFuZHdpZHRoIGZvciBuX292ZXJsYXlzIHBsYW5lcyAqLwogCiAJLyoKLQkg KiBQcmUgZ2VuOSBub3QgYWxsIHNpemVzIGFyZSBzdXBwb3J0ZWQsIGZpbmQgdGhlIGJpZ2dlc3Qg cG9zc2libGUKLQkgKiBzaXplIHRoYXQgY2FuIGJlIGVuYWJsZWQgb24gYWxsIHNwcml0ZSBwbGFu ZXMuCisJICogQ3JlYXRlIDIgZ3JvdXBzIGZvciBvdmVybGF5cywgbWFrZSBzdXJlIDEgcGxhbmUg aXMgcHV0IGluIGVhY2ggdGhlbgorCSAqIHNwcmVhZCB0aGUgcmVzdCBvdXQuCiAJICovCi1yZXRy eToKLQlwcmV2X3cgPSBzcHJpdGVfd2lkdGggPSBjdXJzb3Jfd2lkdGg7Ci0JcHJldl9oID0gc3By aXRlX2hlaWdodCA9IGN1cnNvcl9oZWlnaHQ7CisJaXRlcl9tYXNrICY9IH5HUk9VUF9UWVBFX09W RVJMQVk7CisJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBlLCBwbGFuZSkgewor CQlpbnQgaSA9IHBsYW5lLT5pbmRleDsKIAotCW1heF9zcHJpdGVfd2lkdGggPSAoc3ByaXRlX3dp ZHRoID09IG1vZGUtPmhkaXNwbGF5KTsKLQltYXhfc3ByaXRlX2hlaWdodCA9IChzcHJpdGVfaGVp Z2h0ID09IG1vZGUtPnZkaXNwbGF5KTsKKwkJaWYgKHBhcm1zW2ldLm1hc2sgIT0gR1JPVVBfVFlQ RV9PVkVSTEFZKQorCQkJY29udGludWU7CiAKLQl3aGlsZSAoMSkgewotCQlpbnQgcmV0OworCQkv KiBGaXJzdCBvdmVybGF5IHBsYW5lIHdpbGwgYmUgb3ZlcmxheSBncm91cCAxICovCisJCWlmICgh KGl0ZXJfbWFzayAmIEdST1VQX1RZUEVfT1ZFUkxBWSkpIHsKKwkJCWl0ZXJfbWFzayB8PSBHUk9V UF9UWVBFX09WRVJMQVk7CisJCQljb250aW51ZTsKKwkJfQogCi0JCXNldF9zcHJpdGVfd2goZGlz cGxheSwgcGlwZSwgcGFybXMsIHNwcml0ZV9mYiwKLQkJCSAgICAgIGFscGhhLCBzcHJpdGVfd2lk dGgsIHNwcml0ZV9oZWlnaHQpOworCQkvKiBTZWNvbmQgb3ZlcmxheSBwbGFuZSB3aWxsIGJlIG92 ZXJsYXkgZ3JvdXAgMSAqLworCQlpZiAoIShpdGVyX21hc2sgJiBHUk9VUF9UWVBFX09WRVJMQVky KSkgeworCQkJaXRlcl9tYXNrIHw9IEdST1VQX1RZUEVfT1ZFUkxBWTI7CisJCQlwYXJtc1tpXS5t YXNrID0gR1JPVVBfVFlQRV9PVkVSTEFZMjsKKwkJCWNvbnRpbnVlOworCQl9CiAKLQkJd21fc2V0 dXBfcGxhbmUoZGlzcGxheSwgcGlwZSwgKDEgPDwgbl9wbGFuZXMpIC0gMSwgcGFybXMsIGZhbHNl KTsKLQkJcmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9taWMoZGlzcGxheSwgRFJNX01P REVfQVRPTUlDX1RFU1RfT05MWSB8IERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULCBOVUxM KTsKLQkJaWd0X2Fzc2VydCghaXNfYXRvbWljX2NoZWNrX2ZhaWx1cmVfZXJybm8ocmV0KSk7CisJ CS8qIFNvcnQgdGhlIGdyb3VwIG9mIHRoZSByZXN0IG9mIG92ZXJsYXkgcGxhbmVzICovCisJCWlm IChoYXJzX3BldHJ1c2thX2Y1NF8xX3JhbmRvbV91bnNhZmVfbWF4KDIpKQorCQkJcGFybXNbaV0u bWFzayA9IEdST1VQX1RZUEVfT1ZFUkxBWTI7CisJfQogCi0JCWlmIChpc19hdG9taWNfY2hlY2tf cGxhbmVfc2l6ZV9lcnJubyhyZXQpKSB7Ci0JCQlpZiAoY3Vyc29yX3dpZHRoID09IHNwcml0ZV93 aWR0aCAmJgotCQkJICAgIGN1cnNvcl9oZWlnaHQgPT0gc3ByaXRlX2hlaWdodCkgewotCQkJCWln dF9hc3NlcnRfZihhbHBoYSwKLQkJCQkJICAgICAgIkNhbm5vdCBjb25maWd1cmUgdGhlIHRlc3Qg d2l0aCBhbGwgc3ByaXRlIHBsYW5lcyBlbmFibGVkXG4iKTsKLQotCQkJCS8qIHJldHJ5IG9uY2Ug d2l0aCBYUkdCIGZvcm1hdC4gKi8KLQkJCQlhbHBoYSA9IGZhbHNlOwotCQkJCWdvdG8gcmV0cnk7 Ci0JCQl9CisJKml0ZXJfbWF4ID0gaXRlcl9tYXNrICsgMTsKIAorCS8qCisJICogUHJlIGdlbjkg bm90IGFsbCBzaXplcyBhcmUgc3VwcG9ydGVkLCBmaW5kIHRoZSBiaWdnZXN0IHBvc3NpYmxlCisJ ICogc2l6ZSB0aGF0IGNhbiBiZSBlbmFibGVkIG9uIGFsbCBzcHJpdGUgcGxhbmVzLgorCSAqLwor CXdoaWxlICgxKSB7CisJCS8qIFNpemUgbGltaXQgcmVhY2hlZCAqLworCQlpZiAoaXNfYXRvbWlj X2NoZWNrX3BsYW5lX3NpemVfZXJybm8ocmV0KSkgewogCQkJc3ByaXRlX3dpZHRoID0gcHJldl93 OwogCQkJc3ByaXRlX2hlaWdodCA9IHByZXZfaDsKLQotCQkJaWYgKG1heF9zcHJpdGVfd2lkdGgg JiYgbWF4X3Nwcml0ZV9oZWlnaHQpIHsKLQkJCQlzZXRfc3ByaXRlX3doKGRpc3BsYXksIHBpcGUs IHBhcm1zLCBzcHJpdGVfZmIsCi0JCQkJCSAgICAgIGFscGhhLCBzcHJpdGVfd2lkdGgsIHNwcml0 ZV9oZWlnaHQpOwotCQkJCWJyZWFrOwotCQkJfQotCi0JCQlpZiAoIW1heF9zcHJpdGVfd2lkdGgp Ci0JCQkJbWF4X3Nwcml0ZV93aWR0aCA9IHRydWU7Ci0JCQllbHNlCi0JCQkJbWF4X3Nwcml0ZV9o ZWlnaHQgPSB0cnVlOwotCQl9IGVsc2UgewotCQkJcHJldl93ID0gc3ByaXRlX3dpZHRoOwotCQkJ cHJldl9oID0gc3ByaXRlX2hlaWdodDsKKwkJCWJyZWFrOwogCQl9CiAKLQkJaWYgKCFtYXhfc3By aXRlX3dpZHRoKSB7Ci0JCQlzcHJpdGVfd2lkdGggKj0gMjsKKwkJLyogQ29tbWl0IGlzIHZhbGlk IGFuZCBpdCByZWFjaGVkIG1heCBzaXplLCB1c2UgdGhpcyBzaXplICovCisJCWlmIChzcHJpdGVf d2lkdGggPT0gbW9kZS0+aGRpc3BsYXkgfHwKKwkJICAgIHNwcml0ZV9oZWlnaHQgPT0gbW9kZS0+ dmRpc3BsYXkpCisJCQlicmVhazsKIAotCQkJaWYgKHNwcml0ZV93aWR0aCA+PSBtb2RlLT5oZGlz cGxheSkgewotCQkJCW1heF9zcHJpdGVfd2lkdGggPSB0cnVlOworCQlwcmV2X3cgPSBzcHJpdGVf d2lkdGg7CisJCXByZXZfaCA9IHNwcml0ZV9oZWlnaHQ7CiAKLQkJCQlzcHJpdGVfd2lkdGggPSBt b2RlLT5oZGlzcGxheTsKLQkJCX0KLQkJfSBlbHNlIGlmICghbWF4X3Nwcml0ZV9oZWlnaHQpIHsK LQkJCXNwcml0ZV9oZWlnaHQgKj0gMjsKKwkJc3ByaXRlX3dpZHRoICo9IDI7CisJCWlmIChzcHJp dGVfd2lkdGggPj0gbW9kZS0+aGRpc3BsYXkpCisJCQlzcHJpdGVfd2lkdGggPSBtb2RlLT5oZGlz cGxheTsKIAotCQkJaWYgKHNwcml0ZV9oZWlnaHQgPj0gbW9kZS0+dmRpc3BsYXkpIHsKLQkJCQlt YXhfc3ByaXRlX2hlaWdodCA9IHRydWU7CisJCXNwcml0ZV9oZWlnaHQgKj0gMjsKKwkJaWYgKHNw cml0ZV9oZWlnaHQgPj0gbW9kZS0+dmRpc3BsYXkpCisJCQlzcHJpdGVfaGVpZ2h0ID0gbW9kZS0+ dmRpc3BsYXk7CiAKLQkJCQlzcHJpdGVfaGVpZ2h0ID0gbW9kZS0+dmRpc3BsYXk7Ci0JCQl9Ci0J CX0gZWxzZQotCQkJLyogTWF4IHNpemVkIHNwcml0ZXMgZm9yIGFsbCEgKi8KLQkJCWJyZWFrOwor CQlzZXRfc3ByaXRlX3doKGRpc3BsYXksIHBpcGUsIHBhcm1zLCBzcHJpdGVfZmIsIGFscGhhLAor CQkJICAgICAgc3ByaXRlX3dpZHRoLCBzcHJpdGVfaGVpZ2h0KTsKKwkJd21fc2V0dXBfcGxhbmUo ZGlzcGxheSwgcGlwZSwgaXRlcl9tYXNrLCBwYXJtcywgZmFsc2UpOworCQlyZXQgPSBpZ3RfZGlz cGxheV90cnlfY29tbWl0X2F0b21pYyhkaXNwbGF5LAorCQkJCQkJICAgIERSTV9NT0RFX0FUT01J Q19URVNUX09OTFkgfAorCQkJCQkJICAgIERSTV9NT0RFX0FUT01JQ19BTExPV19NT0RFU0VULAor CQkJCQkJICAgIE5VTEwpOwogCX0KIAotCWlndF9pbmZvKCJSdW5uaW5nIHRlc3Qgb24gcGlwZSAl cyB3aXRoIHJlc29sdXRpb24gJWR4JWQgYW5kIHNwcml0ZSBzaXplICVkeCVkIGFscGhhICVpXG4i LAorCWlndF9pbmZvKCJSdW5uaW5nIHRlc3Qgb24gcGlwZSAlcyB3aXRoIHJlc29sdXRpb24gJWR4 JWQsIHNwcml0ZSBzaXplICVkeCVkLCBhbHBoYSAlaSBhbmQgJWkgb3ZlcmxheSBwbGFuZXNcbiIs CiAJCSBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNw bGF5LAotCQkgc3ByaXRlX3dpZHRoLCBzcHJpdGVfaGVpZ2h0LCBhbHBoYSk7CisJCSBzcHJpdGVf d2lkdGgsIHNwcml0ZV9oZWlnaHQsIGFscGhhLCBuX292ZXJsYXlzKTsKIH0KIAogc3RhdGljIHZv aWQgcHJlcGFyZV9mZW5jaW5nKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGVudW0gcGlwZSBwaXBl KQpAQCAtNTE5LDggKzU2MCwxMCBAQCBydW5fdHJhbnNpdGlvbl90ZXN0KGlndF9kaXNwbGF5X3Qg KmRpc3BsYXksIGVudW0gcGlwZSBwaXBlLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dAogCQl9CiAKIAkJ LyogZm9yY2UgcGxhbmVzIHRvIGJlIHBhcnQgb2YgY29tbWl0ICovCi0JCWZvcl9lYWNoX3BsYW5l X29uX3BpcGUoZGlzcGxheSwgcGlwZSwgcGxhbmUpCi0JCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9u KHBsYW5lLCAwLCAwKTsKKwkJZm9yX2VhY2hfcGxhbmVfb25fcGlwZShkaXNwbGF5LCBwaXBlLCBw bGFuZSkgeworCQkJaWYgKHBhcm1zW3BsYW5lLT5pbmRleF0ubWFzayAhPSBHUk9VUF9UWVBFX05P TkUpCisJCQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgMCwgMCk7CisJCX0KIAogCQlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwogCi0tIAoyLjIxLjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYg bWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==