From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH i-g-t v2 2/9] tests/kms_plane_scaling: Move the actual test to its own function. Date: Fri, 12 Jan 2018 11:21:09 +0100 Message-ID: <20180112102116.4670-3-maarten.lankhorst@linux.intel.com> References: <20180112102116.4670-1-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id DBFA66E724 for ; Fri, 12 Jan 2018 12:48:46 +0000 (UTC) In-Reply-To: <20180112102116.4670-1-maarten.lankhorst@linux.intel.com> 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 List-Id: intel-gfx@lists.freedesktop.org V2Ugd2lsbCBhZGQgbW9yZSBzdWJ0ZXN0cyBpbiB0aGUgZnV0dXJlLCBpdCdzIG1vcmUgY2xlYXIg aWYgd2Ugc3BsaXQKb3V0IHRoZSBhY3R1YWwgdGVzdCB0byBpdHMgb3duIGZ1bmN0aW9uIGZpcnN0 LgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KLS0tCiB0ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jIHwgMjI2ICsrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCAxMTcgaW5zZXJ0aW9ucygrKSwgMTA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3Rz L2ttc19wbGFuZV9zY2FsaW5nLmMgYi90ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jCmluZGV4IDQw M2RmNDdlMmQzYi4uMzdlMDUxNThiOTY4IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfcGxhbmVfc2Nh bGluZy5jCisrKyBiL3Rlc3RzL2ttc19wbGFuZV9zY2FsaW5nLmMKQEAgLTE2MywxNDQgKzE2Mywx NTEgQEAgc3RhdGljIHZvaWQgaXRlcmF0ZV9wbGFuZV9zY2FsaW5nKGRhdGFfdCAqZCwgZHJtTW9k ZU1vZGVJbmZvICptb2RlKQogCX0KIH0KIAotc3RhdGljIHZvaWQgdGVzdF9wbGFuZV9zY2FsaW5n KGRhdGFfdCAqZCkKK3N0YXRpYyB2b2lkCit0ZXN0X3BsYW5lX3NjYWxpbmdfb25fcGlwZShkYXRh X3QgKmQsIGVudW0gcGlwZSBwaXBlLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCkKIHsKIAlpZ3RfZGlz cGxheV90ICpkaXNwbGF5ID0gJmQtPmRpc3BsYXk7Ci0JaWd0X291dHB1dF90ICpvdXRwdXQ7Ci0J ZW51bSBwaXBlIHBpcGU7Ci0JaW50IHZhbGlkX3Rlc3RzID0gMDsKKwlkcm1Nb2RlTW9kZUluZm8g Km1vZGU7CiAJaW50IHByaW1hcnlfcGxhbmVfc2NhbGluZyA9IDA7IC8qIEZvciBub3cgKi8KIAot CWlndF9yZXF1aXJlKGQtPm51bV9zY2FsZXJzKTsKKwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1 dCwgcGlwZSk7CisJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKKworCS8qIGFs bG9jYXRlIGZiMiB3aXRoIGltYWdlIHNpemUgKi8KKwlkLT5mYl9pZDIgPSBpZ3RfY3JlYXRlX2lt YWdlX2ZiKGQtPmRybV9mZCwgMCwgMCwKKwkJCQkJRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJCQkJ TE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIC8qIHRpbGVkICovCisJCQkJCUZJTEVfTkFN RSwgJmQtPmZiMik7CisJaWd0X2Fzc2VydChkLT5mYl9pZDIpOworCisJZC0+ZmJfaWQzID0gaWd0 X2NyZWF0ZV9wYXR0ZXJuX2ZiKGQtPmRybV9mZCwKKwkJCQkJICBtb2RlLT5oZGlzcGxheSwgbW9k ZS0+dmRpc3BsYXksCisJCQkJCSAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJCQkJICBMT0NBTF9J OTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgLyogdGlsZWQgKi8KKwkJCQkJICAmZC0+ZmIzKTsKKwlp Z3RfYXNzZXJ0KGQtPmZiX2lkMyk7CisKKwkvKiBTZXQgdXAgZGlzcGxheSB3aXRoIHBsYW5lIDEg Ki8KKwlkLT5wbGFuZTEgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZShvdXRwdXQsIDApOworCXByZXBh cmVfY3J0YyhkLCBvdXRwdXQsIHBpcGUsIGQtPnBsYW5lMSwgbW9kZSwgQ09NTUlUX1VOSVZFUlNB TCk7CisKKwlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5nKSB7CisJCS8qIFByaW1hcnkgcGxhbmUg dXBzY2FsaW5nICovCisJCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMSwgZC0+cGxhbmUxLCAx MDAsIDEwMCk7CisJCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIxLCBkLT5wbGFuZTEsIDUwMCwgNTAw KTsKKwkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOworCQlpZ3RfcGxh bmVfc2V0X3NpemUoZC0+cGxhbmUxLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwor CQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwogCi0JZm9y X2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKLQkJ ZHJtTW9kZU1vZGVJbmZvICptb2RlOwotCi0JCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBw aXBlKTsKLQotCQltb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOwotCi0JCS8qIGFs bG9jYXRlIGZiMiB3aXRoIGltYWdlIHNpemUgKi8KLQkJZC0+ZmJfaWQyID0gaWd0X2NyZWF0ZV9p bWFnZV9mYihkLT5kcm1fZmQsIDAsIDAsCi0JCQkJCQlEUk1fRk9STUFUX1hSR0I4ODg4LAotCQkJ CQkJTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIC8qIHRpbGVkICovCi0JCQkJCQlGSUxF X05BTUUsICZkLT5mYjIpOwotCQlpZ3RfYXNzZXJ0KGQtPmZiX2lkMik7Ci0KLQkJZC0+ZmJfaWQz ID0gaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGQtPmRybV9mZCwKLQkJCQkJCSAgbW9kZS0+aGRpc3Bs YXksIG1vZGUtPnZkaXNwbGF5LAotCQkJCQkJICBEUk1fRk9STUFUX1hSR0I4ODg4LAotCQkJCQkJ ICBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgLyogdGlsZWQgKi8KLQkJCQkJCSAgJmQt PmZiMyk7Ci0JCWlndF9hc3NlcnQoZC0+ZmJfaWQzKTsKLQotCQkvKiBTZXQgdXAgZGlzcGxheSB3 aXRoIHBsYW5lIDEgKi8KLQkJZC0+cGxhbmUxID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0 LCAwKTsKLQkJcHJlcGFyZV9jcnRjKGQsIG91dHB1dCwgcGlwZSwgZC0+cGxhbmUxLCBtb2RlLCBD T01NSVRfVU5JVkVSU0FMKTsKLQotCQlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5nKSB7Ci0JCQkv KiBQcmltYXJ5IHBsYW5lIHVwc2NhbGluZyAqLwotCQkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ ZmIxLCBkLT5wbGFuZTEsIDEwMCwgMTAwKTsKLQkJCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIxLCBk LT5wbGFuZTEsIDUwMCwgNTAwKTsKLQkJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUx LCAwLCAwKTsKLQkJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTEsIG1vZGUtPmhkaXNwbGF5 LCBtb2RlLT52ZGlzcGxheSk7Ci0JCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1J VF9VTklWRVJTQUwpOworCQkvKiBQcmltYXJ5IHBsYW5lIDE6MSBubyBzY2FsaW5nICovCisJCWln dF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMSwgZC0+cGxhbmUxLCAwLCAwKTsKKwkJaWd0X2ZiX3Nl dF9zaXplKCZkLT5mYjEsIGQtPnBsYW5lMSwgZC0+ZmIxLndpZHRoLCBkLT5mYjEuaGVpZ2h0KTsK KwkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOworCQlpZ3RfcGxhbmVf c2V0X3NpemUoZC0+cGxhbmUxLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOworCQlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCX0KIAotCQkJ LyogUHJpbWFyeSBwbGFuZSAxOjEgbm8gc2NhbGluZyAqLwotCQkJaWd0X2ZiX3NldF9wb3NpdGlv bigmZC0+ZmIxLCBkLT5wbGFuZTEsIDAsIDApOwotCQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjEs IGQtPnBsYW5lMSwgZC0+ZmIxLndpZHRoLCBkLT5mYjEuaGVpZ2h0KTsKLQkJCWlndF9wbGFuZV9z ZXRfcG9zaXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKLQkJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5w bGFuZTEsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7Ci0JCQlpZ3RfZGlzcGxheV9j b21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwotCQl9CisJLyogU2V0IHVwIGZiMi0+ cGxhbmUyIG1hcHBpbmcuICovCisJZC0+cGxhbmUyID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0 cHV0LCAxKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKGQtPnBsYW5lMiwgJmQtPmZiMik7CiAKLQkJLyog U2V0IHVwIGZiMi0+cGxhbmUyIG1hcHBpbmcuICovCi0JCWQtPnBsYW5lMiA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lKG91dHB1dCwgMSk7Ci0JCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUyLCAmZC0+ ZmIyKTsKKwkvKiAybmQgcGxhbmUgd2luZG93ZWQgKi8KKwlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZk LT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOworCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIyLCBk LT5wbGFuZTIsIGQtPmZiMi53aWR0aC0yMDAsIGQtPmZiMi5oZWlnaHQtMjAwKTsKKwlpZ3RfcGxh bmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAwLCAxMDApOworCWlndF9wbGFuZV9zZXRfc2l6 ZShkLT5wbGFuZTIsIG1vZGUtPmhkaXNwbGF5LTIwMCwgbW9kZS0+dmRpc3BsYXktMjAwKTsKKwlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwogCi0JCS8qIDJu ZCBwbGFuZSB3aW5kb3dlZCAqLwotCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjIsIGQtPnBs YW5lMiwgMTAwLCAxMDApOwotCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwgZC0+cGxhbmUyLCBk LT5mYjIud2lkdGgtMjAwLCBkLT5mYjIuaGVpZ2h0LTIwMCk7Ci0JCWlndF9wbGFuZV9zZXRfcG9z aXRpb24oZC0+cGxhbmUyLCAxMDAsIDEwMCk7Ci0JCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFu ZTIsIG1vZGUtPmhkaXNwbGF5LTIwMCwgbW9kZS0+dmRpc3BsYXktMjAwKTsKLQkJaWd0X2Rpc3Bs YXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwlpdGVyYXRlX3BsYW5lX3Nj YWxpbmcoZCwgbW9kZSk7CiAKLQkJaXRlcmF0ZV9wbGFuZV9zY2FsaW5nKGQsIG1vZGUpOworCS8q IDJuZCBwbGFuZSB1cCBzY2FsaW5nICovCisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIyLCBk LT5wbGFuZTIsIDEwMCwgMTAwKTsKKwlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwgZC0+cGxhbmUy LCA1MDAsIDUwMCk7CisJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIsIDEwLCAxMCk7 CisJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMiwgbW9kZS0+aGRpc3BsYXktMjAsIG1vZGUt PnZkaXNwbGF5LTIwKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklW RVJTQUwpOwogCi0JCS8qIDJuZCBwbGFuZSB1cCBzY2FsaW5nICovCi0JCWlndF9mYl9zZXRfcG9z aXRpb24oJmQtPmZiMiwgZC0+cGxhbmUyLCAxMDAsIDEwMCk7Ci0JCWlndF9mYl9zZXRfc2l6ZSgm ZC0+ZmIyLCBkLT5wbGFuZTIsIDUwMCwgNTAwKTsKLQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihk LT5wbGFuZTIsIDEwLCAxMCk7Ci0JCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIG1vZGUt PmhkaXNwbGF5LTIwLCBtb2RlLT52ZGlzcGxheS0yMCk7Ci0JCWlndF9kaXNwbGF5X2NvbW1pdDIo ZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJLyogMm5kIHBsYW5lIGRvd25zY2FsaW5nICov CisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDAsIDApOworCWlndF9m Yl9zZXRfc2l6ZSgmZC0+ZmIyLCBkLT5wbGFuZTIsIGQtPmZiMi53aWR0aCwgZC0+ZmIyLmhlaWdo dCk7CisJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIsIDEwLCAxMCk7CisJaWd0X3Bs YW5lX3NldF9zaXplKGQtPnBsYW5lMiwgNTAwLCA1MDAgKiBkLT5mYjIuaGVpZ2h0L2QtPmZiMi53 aWR0aCk7CisJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsK IAotCQkvKiAybmQgcGxhbmUgZG93bnNjYWxpbmcgKi8KLQkJaWd0X2ZiX3NldF9wb3NpdGlvbigm ZC0+ZmIyLCBkLT5wbGFuZTIsIDAsIDApOwotCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwgZC0+ cGxhbmUyLCBkLT5mYjIud2lkdGgsIGQtPmZiMi5oZWlnaHQpOwotCQlpZ3RfcGxhbmVfc2V0X3Bv c2l0aW9uKGQtPnBsYW5lMiwgMTAsIDEwKTsKLQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5l MiwgNTAwLCA1MDAgKiBkLT5mYjIuaGVpZ2h0L2QtPmZiMi53aWR0aCk7CisJaWYgKHByaW1hcnlf cGxhbmVfc2NhbGluZykgeworCQkvKiBQcmltYXJ5IHBsYW5lIHVwIHNjYWxpbmcgKi8KKwkJaWd0 X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIxLCBkLT5wbGFuZTEsIDEwMCwgMTAwKTsKKwkJaWd0X2Zi X3NldF9zaXplKCZkLT5mYjEsIGQtPnBsYW5lMSwgNTAwLCA1MDApOworCQlpZ3RfcGxhbmVfc2V0 X3Bvc2l0aW9uKGQtPnBsYW5lMSwgMCwgMCk7CisJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFu ZTEsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7CiAJCWlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJfQogCi0JCWlmIChwcmltYXJ5X3BsYW5l X3NjYWxpbmcpIHsKLQkJCS8qIFByaW1hcnkgcGxhbmUgdXAgc2NhbGluZyAqLwotCQkJaWd0X2Zi X3NldF9wb3NpdGlvbigmZC0+ZmIxLCBkLT5wbGFuZTEsIDEwMCwgMTAwKTsKLQkJCWlndF9mYl9z ZXRfc2l6ZSgmZC0+ZmIxLCBkLT5wbGFuZTEsIDUwMCwgNTAwKTsKLQkJCWlndF9wbGFuZV9zZXRf cG9zaXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKLQkJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFu ZTEsIG1vZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7Ci0JCQlpZ3RfZGlzcGxheV9jb21t aXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwotCQl9CisJLyogU2V0IHVwIGZiMy0+cGxh bmUzIG1hcHBpbmcuICovCisJZC0+cGxhbmUzID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0 LCAyKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKGQtPnBsYW5lMywgJmQtPmZiMyk7CisKKwkvKiAzcmQg cGxhbmUgd2luZG93ZWQgLSBubyBzY2FsaW5nICovCisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ ZmIzLCBkLT5wbGFuZTMsIDEwMCwgMTAwKTsKKwlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMywgZC0+ cGxhbmUzLCBkLT5mYjMud2lkdGgtMzAwLCBkLT5mYjMuaGVpZ2h0LTMwMCk7CisJaWd0X3BsYW5l X3NldF9wb3NpdGlvbihkLT5wbGFuZTMsIDEwMCwgMTAwKTsKKwlpZ3RfcGxhbmVfc2V0X3NpemUo ZC0+cGxhbmUzLCBtb2RlLT5oZGlzcGxheS0zMDAsIG1vZGUtPnZkaXNwbGF5LTMwMCk7CisJaWd0 X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKIAotCQkvKiBTZXQg dXAgZmIzLT5wbGFuZTMgbWFwcGluZy4gKi8KLQkJZC0+cGxhbmUzID0gaWd0X291dHB1dF9nZXRf cGxhbmUob3V0cHV0LCAyKTsKLQkJaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTMsICZkLT5mYjMp OworCS8qIFN3aXRjaCBzY2FsZXIgZnJvbSBwbGFuZSAyIHRvIHBsYW5lIDMgKi8KKwlpZ3RfZmJf c2V0X3Bvc2l0aW9uKCZkLT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOworCWlndF9mYl9zZXRf c2l6ZSgmZC0+ZmIyLCBkLT5wbGFuZTIsIGQtPmZiMi53aWR0aC0yMDAsIGQtPmZiMi5oZWlnaHQt MjAwKTsKKwlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMiwgMTAwLCAxMDApOworCWln dF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIGQtPmZiMi53aWR0aC0yMDAsIGQtPmZiMi5oZWln aHQtMjAwKTsKIAotCQkvKiAzcmQgcGxhbmUgd2luZG93ZWQgLSBubyBzY2FsaW5nICovCi0JCWln dF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMywgZC0+cGxhbmUzLCAxMDAsIDEwMCk7Ci0JCWlndF9m Yl9zZXRfc2l6ZSgmZC0+ZmIzLCBkLT5wbGFuZTMsIGQtPmZiMy53aWR0aC0zMDAsIGQtPmZiMy5o ZWlnaHQtMzAwKTsKLQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTMsIDEwMCwgMTAw KTsKLQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMywgbW9kZS0+aGRpc3BsYXktMzAwLCBt b2RlLT52ZGlzcGxheS0zMDApOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1J VF9VTklWRVJTQUwpOworCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMywgZC0+cGxhbmUzLCAx MDAsIDEwMCk7CisJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjMsIGQtPnBsYW5lMywgZC0+ZmIzLndp ZHRoLTQwMCwgZC0+ZmIzLmhlaWdodC00MDApOworCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+ cGxhbmUzLCAxMCwgMTApOworCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTMsIG1vZGUtPmhk aXNwbGF5LTMwMCwgbW9kZS0+dmRpc3BsYXktMzAwKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRp c3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCisJaWYgKHByaW1hcnlfcGxhbmVfc2NhbGluZykg eworCQkvKiBTd2l0Y2ggc2NhbGVyIGZyb20gcGxhbmUgMSB0byBwbGFuZSAyICovCisJCWlndF9m Yl9zZXRfcG9zaXRpb24oJmQtPmZiMSwgZC0+cGxhbmUxLCAwLCAwKTsKKwkJaWd0X2ZiX3NldF9z aXplKCZkLT5mYjEsIGQtPnBsYW5lMSwgZC0+ZmIxLndpZHRoLCBkLT5mYjEuaGVpZ2h0KTsKKwkJ aWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOworCQlpZ3RfcGxhbmVfc2V0 X3NpemUoZC0+cGxhbmUxLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwogCi0JCS8q IFN3aXRjaCBzY2FsZXIgZnJvbSBwbGFuZSAyIHRvIHBsYW5lIDMgKi8KIAkJaWd0X2ZiX3NldF9w b3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEwMCwgMTAwKTsKLQkJaWd0X2ZiX3NldF9zaXpl KCZkLT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTIwMCwgZC0+ZmIyLmhlaWdodC0yMDAp OworCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtNTAw LGQtPmZiMi5oZWlnaHQtNTAwKTsKIAkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIs IDEwMCwgMTAwKTsKLQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRo LTIwMCwgZC0+ZmIyLmhlaWdodC0yMDApOwotCi0JCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZi MywgZC0+cGxhbmUzLCAxMDAsIDEwMCk7Ci0JCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIzLCBkLT5w bGFuZTMsIGQtPmZiMy53aWR0aC00MDAsIGQtPmZiMy5oZWlnaHQtNDAwKTsKLQkJaWd0X3BsYW5l X3NldF9wb3NpdGlvbihkLT5wbGFuZTMsIDEwLCAxMCk7Ci0JCWlndF9wbGFuZV9zZXRfc2l6ZShk LT5wbGFuZTMsIG1vZGUtPmhkaXNwbGF5LTMwMCwgbW9kZS0+dmRpc3BsYXktMzAwKTsKKwkJaWd0 X3BsYW5lX3NldF9zaXplKGQtPnBsYW5lMiwgbW9kZS0+aGRpc3BsYXktMjAwLCBtb2RlLT52ZGlz cGxheS0yMDApOwogCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJT QUwpOworCX0KIAotCQlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5nKSB7Ci0JCQkvKiBTd2l0Y2gg c2NhbGVyIGZyb20gcGxhbmUgMSB0byBwbGFuZSAyICovCi0JCQlpZ3RfZmJfc2V0X3Bvc2l0aW9u KCZkLT5mYjEsIGQtPnBsYW5lMSwgMCwgMCk7Ci0JCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMSwg ZC0+cGxhbmUxLCBkLT5mYjEud2lkdGgsIGQtPmZiMS5oZWlnaHQpOwotCQkJaWd0X3BsYW5lX3Nl dF9wb3NpdGlvbihkLT5wbGFuZTEsIDAsIDApOwotCQkJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBs YW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKLQotCQkJaWd0X2ZiX3NldF9w b3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEwMCwgMTAwKTsKLQkJCWlndF9mYl9zZXRfc2l6 ZSgmZC0+ZmIyLCBkLT5wbGFuZTIsIGQtPmZiMi53aWR0aC01MDAsZC0+ZmIyLmhlaWdodC01MDAp OwotCQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIsIDEwMCwgMTAwKTsKLQkJCWln dF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIG1vZGUtPmhkaXNwbGF5LTIwMCwgbW9kZS0+dmRp c3BsYXktMjAwKTsKLQkJCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZF UlNBTCk7Ci0JCX0KKwkvKiBiYWNrIHRvIHNpbmdsZSBwbGFuZSBtb2RlICovCisJaWd0X3BsYW5l X3NldF9mYihkLT5wbGFuZTIsIE5VTEwpOworCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUzLCBO VUxMKTsKKwlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwog Ci0JCS8qIGJhY2sgdG8gc2luZ2xlIHBsYW5lIG1vZGUgKi8KLQkJaWd0X3BsYW5lX3NldF9mYihk LT5wbGFuZTIsIE5VTEwpOwotCQlpZ3RfcGxhbmVfc2V0X2ZiKGQtPnBsYW5lMywgTlVMTCk7Ci0J CWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJY2xlYW51 cF9jcnRjKGQsIG91dHB1dCwgZC0+cGxhbmUxKTsKK30KIAorc3RhdGljIHZvaWQgdGVzdF9wbGFu ZV9zY2FsaW5nKGRhdGFfdCAqZCwgZW51bSBwaXBlIHBpcGUpCit7CisJaWd0X291dHB1dF90ICpv dXRwdXQ7CisJaW50IHZhbGlkX3Rlc3RzID0gMDsKKworCWlndF9yZXF1aXJlKGQtPm51bV9zY2Fs ZXJzKTsKKworCWZvcl9lYWNoX3ZhbGlkX291dHB1dF9vbl9waXBlKCZkLT5kaXNwbGF5LCBwaXBl LCBvdXRwdXQpIHsKKwkJdGVzdF9wbGFuZV9zY2FsaW5nX29uX3BpcGUoZCwgcGlwZSwgb3V0cHV0 KTsKKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIFBJUEVfQU5ZKTsKIAkJdmFsaWRfdGVz dHMrKzsKLQkJY2xlYW51cF9jcnRjKGQsIG91dHB1dCwgZC0+cGxhbmUxKTsKIAl9CisKIAlpZ3Rf cmVxdWlyZV9mKHZhbGlkX3Rlc3RzLCAibm8gdmFsaWQgY3J0Yy9jb25uZWN0b3IgY29tYmluYXRp b25zIGZvdW5kXG4iKTsKIH0KIAogaWd0X3NpbXBsZV9tYWluCiB7CiAJZGF0YV90IGRhdGEgPSB7 fTsKKwllbnVtIHBpcGUgcGlwZTsKIAogCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKIApAQCAt MzEyLDcgKzMxOSw4IEBAIGlndF9zaW1wbGVfbWFpbgogCiAJZGF0YS5udW1fc2NhbGVycyA9IGlu dGVsX2dlbihkYXRhLmRldmlkKSA+PSA5ID8gMiA6IDA7CiAKLQl0ZXN0X3BsYW5lX3NjYWxpbmco JmRhdGEpOworCWZvcl9lYWNoX3BpcGVfc3RhdGljKHBpcGUpCisJCXRlc3RfcGxhbmVfc2NhbGlu ZygmZGF0YSwgcGlwZSk7CiAKIAlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOwogfQot LSAKMi4xNS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK