From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH i-g-t v3 1/8] tests/kms_plane_scaling: Move the actual test to its own function. Date: Mon, 15 Jan 2018 15:28:27 +0100 Message-ID: <20180115142834.65798-2-maarten.lankhorst@linux.intel.com> References: <20180115142834.65798-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 [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 022EE6E0F4 for ; Mon, 15 Jan 2018 14:28:38 +0000 (UTC) In-Reply-To: <20180115142834.65798-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 bnV4LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRl bC5jb20+Ci0tLQogdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYyB8IDIyNiArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTE3IGlu c2VydGlvbnMoKyksIDEwOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxh bmVfc2NhbGluZy5jIGIvdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYwppbmRleCA0MDNkZjQ3ZTJk M2IuLjM3ZTA1MTU4Yjk2OCAxMDA2NDQKLS0tIGEvdGVzdHMva21zX3BsYW5lX3NjYWxpbmcuYwor KysgYi90ZXN0cy9rbXNfcGxhbmVfc2NhbGluZy5jCkBAIC0xNjMsMTQ0ICsxNjMsMTUxIEBAIHN0 YXRpYyB2b2lkIGl0ZXJhdGVfcGxhbmVfc2NhbGluZyhkYXRhX3QgKmQsIGRybU1vZGVNb2RlSW5m byAqbW9kZSkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIHRlc3RfcGxhbmVfc2NhbGluZyhkYXRhX3Qg KmQpCitzdGF0aWMgdm9pZAordGVzdF9wbGFuZV9zY2FsaW5nX29uX3BpcGUoZGF0YV90ICpkLCBl bnVtIHBpcGUgcGlwZSwgaWd0X291dHB1dF90ICpvdXRwdXQpCiB7CiAJaWd0X2Rpc3BsYXlfdCAq ZGlzcGxheSA9ICZkLT5kaXNwbGF5OwotCWlndF9vdXRwdXRfdCAqb3V0cHV0OwotCWVudW0gcGlw ZSBwaXBlOwotCWludCB2YWxpZF90ZXN0cyA9IDA7CisJZHJtTW9kZU1vZGVJbmZvICptb2RlOwog CWludCBwcmltYXJ5X3BsYW5lX3NjYWxpbmcgPSAwOyAvKiBGb3Igbm93ICovCiAKLQlpZ3RfcmVx dWlyZShkLT5udW1fc2NhbGVycyk7CisJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUp OworCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7CisKKwkvKiBhbGxvY2F0ZSBm YjIgd2l0aCBpbWFnZSBzaXplICovCisJZC0+ZmJfaWQyID0gaWd0X2NyZWF0ZV9pbWFnZV9mYihk LT5kcm1fZmQsIDAsIDAsCisJCQkJCURSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQkJCUxPQ0FMX0k5 MTVfRk9STUFUX01PRF9YX1RJTEVELCAvKiB0aWxlZCAqLworCQkJCQlGSUxFX05BTUUsICZkLT5m YjIpOworCWlndF9hc3NlcnQoZC0+ZmJfaWQyKTsKKworCWQtPmZiX2lkMyA9IGlndF9jcmVhdGVf cGF0dGVybl9mYihkLT5kcm1fZmQsCisJCQkJCSAgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNw bGF5LAorCQkJCQkgIERSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQkJCSAgTE9DQUxfSTkxNV9GT1JN QVRfTU9EX1hfVElMRUQsIC8qIHRpbGVkICovCisJCQkJCSAgJmQtPmZiMyk7CisJaWd0X2Fzc2Vy dChkLT5mYl9pZDMpOworCisJLyogU2V0IHVwIGRpc3BsYXkgd2l0aCBwbGFuZSAxICovCisJZC0+ cGxhbmUxID0gaWd0X291dHB1dF9nZXRfcGxhbmUob3V0cHV0LCAwKTsKKwlwcmVwYXJlX2NydGMo ZCwgb3V0cHV0LCBwaXBlLCBkLT5wbGFuZTEsIG1vZGUsIENPTU1JVF9VTklWRVJTQUwpOworCisJ aWYgKHByaW1hcnlfcGxhbmVfc2NhbGluZykgeworCQkvKiBQcmltYXJ5IHBsYW5lIHVwc2NhbGlu ZyAqLworCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMTAwLCAxMDAp OworCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMSwgZC0+cGxhbmUxLCA1MDAsIDUwMCk7CisJCWln dF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKKwkJaWd0X3BsYW5lX3NldF9z aXplKGQtPnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKKwkJaWd0X2Rp c3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKIAotCWZvcl9lYWNoX3Bp cGVfd2l0aF92YWxpZF9vdXRwdXQoZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7Ci0JCWRybU1vZGVN b2RlSW5mbyAqbW9kZTsKLQotCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Ci0K LQkJbW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKLQotCQkvKiBhbGxvY2F0ZSBm YjIgd2l0aCBpbWFnZSBzaXplICovCi0JCWQtPmZiX2lkMiA9IGlndF9jcmVhdGVfaW1hZ2VfZmIo ZC0+ZHJtX2ZkLCAwLCAwLAotCQkJCQkJRFJNX0ZPUk1BVF9YUkdCODg4OCwKLQkJCQkJCUxPQ0FM X0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCAvKiB0aWxlZCAqLwotCQkJCQkJRklMRV9OQU1FLCAm ZC0+ZmIyKTsKLQkJaWd0X2Fzc2VydChkLT5mYl9pZDIpOwotCi0JCWQtPmZiX2lkMyA9IGlndF9j cmVhdGVfcGF0dGVybl9mYihkLT5kcm1fZmQsCi0JCQkJCQkgIG1vZGUtPmhkaXNwbGF5LCBtb2Rl LT52ZGlzcGxheSwKLQkJCQkJCSAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKLQkJCQkJCSAgTE9DQUxf STkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIC8qIHRpbGVkICovCi0JCQkJCQkgICZkLT5mYjMpOwot CQlpZ3RfYXNzZXJ0KGQtPmZiX2lkMyk7Ci0KLQkJLyogU2V0IHVwIGRpc3BsYXkgd2l0aCBwbGFu ZSAxICovCi0JCWQtPnBsYW5lMSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwgMCk7Ci0J CXByZXBhcmVfY3J0YyhkLCBvdXRwdXQsIHBpcGUsIGQtPnBsYW5lMSwgbW9kZSwgQ09NTUlUX1VO SVZFUlNBTCk7Ci0KLQkJaWYgKHByaW1hcnlfcGxhbmVfc2NhbGluZykgewotCQkJLyogUHJpbWFy eSBwbGFuZSB1cHNjYWxpbmcgKi8KLQkJCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMSwgZC0+ cGxhbmUxLCAxMDAsIDEwMCk7Ci0JCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMSwgZC0+cGxhbmUx LCA1MDAsIDUwMCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMSwgMCwgMCk7 Ci0JCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUxLCBtb2RlLT5oZGlzcGxheSwgbW9kZS0+ dmRpc3BsYXkpOwotCQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVS U0FMKTsKKwkJLyogUHJpbWFyeSBwbGFuZSAxOjEgbm8gc2NhbGluZyAqLworCQlpZ3RfZmJfc2V0 X3Bvc2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMCwgMCk7CisJCWlndF9mYl9zZXRfc2l6ZSgm ZC0+ZmIxLCBkLT5wbGFuZTEsIGQtPmZiMS53aWR0aCwgZC0+ZmIxLmhlaWdodCk7CisJCWlndF9w bGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKKwkJaWd0X3BsYW5lX3NldF9zaXpl KGQtPnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKKwkJaWd0X2Rpc3Bs YXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwl9CiAKLQkJCS8qIFByaW1h cnkgcGxhbmUgMToxIG5vIHNjYWxpbmcgKi8KLQkJCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZi MSwgZC0+cGxhbmUxLCAwLCAwKTsKLQkJCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIxLCBkLT5wbGFu ZTEsIGQtPmZiMS53aWR0aCwgZC0+ZmIxLmhlaWdodCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0 aW9uKGQtPnBsYW5lMSwgMCwgMCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUxLCBt b2RlLT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwotCQkJaWd0X2Rpc3BsYXlfY29tbWl0Mihk aXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKLQkJfQorCS8qIFNldCB1cCBmYjItPnBsYW5lMiBt YXBwaW5nLiAqLworCWQtPnBsYW5lMiA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwgMSk7 CisJaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTIsICZkLT5mYjIpOwogCi0JCS8qIFNldCB1cCBm YjItPnBsYW5lMiBtYXBwaW5nLiAqLwotCQlkLT5wbGFuZTIgPSBpZ3Rfb3V0cHV0X2dldF9wbGFu ZShvdXRwdXQsIDEpOwotCQlpZ3RfcGxhbmVfc2V0X2ZiKGQtPnBsYW5lMiwgJmQtPmZiMik7CisJ LyogMm5kIHBsYW5lIHdpbmRvd2VkICovCisJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIyLCBk LT5wbGFuZTIsIDEwMCwgMTAwKTsKKwlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwgZC0+cGxhbmUy LCBkLT5mYjIud2lkdGgtMjAwLCBkLT5mYjIuaGVpZ2h0LTIwMCk7CisJaWd0X3BsYW5lX3NldF9w b3NpdGlvbihkLT5wbGFuZTIsIDEwMCwgMTAwKTsKKwlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxh bmUyLCBtb2RlLT5oZGlzcGxheS0yMDAsIG1vZGUtPnZkaXNwbGF5LTIwMCk7CisJaWd0X2Rpc3Bs YXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKIAotCQkvKiAybmQgcGxhbmUg d2luZG93ZWQgKi8KLQkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEw MCwgMTAwKTsKLQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndp ZHRoLTIwMCwgZC0+ZmIyLmhlaWdodC0yMDApOwotCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQt PnBsYW5lMiwgMTAwLCAxMDApOwotCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUyLCBtb2Rl LT5oZGlzcGxheS0yMDAsIG1vZGUtPnZkaXNwbGF5LTIwMCk7Ci0JCWlndF9kaXNwbGF5X2NvbW1p dDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CisJaXRlcmF0ZV9wbGFuZV9zY2FsaW5nKGQs IG1vZGUpOwogCi0JCWl0ZXJhdGVfcGxhbmVfc2NhbGluZyhkLCBtb2RlKTsKKwkvKiAybmQgcGxh bmUgdXAgc2NhbGluZyAqLworCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMiwgZC0+cGxhbmUy LCAxMDAsIDEwMCk7CisJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgNTAwLCA1 MDApOworCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMCwgMTApOworCWlndF9w bGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIG1vZGUtPmhkaXNwbGF5LTIwLCBtb2RlLT52ZGlzcGxh eS0yMCk7CisJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsK IAotCQkvKiAybmQgcGxhbmUgdXAgc2NhbGluZyAqLwotCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZk LT5mYjIsIGQtPnBsYW5lMiwgMTAwLCAxMDApOwotCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMiwg ZC0+cGxhbmUyLCA1MDAsIDUwMCk7Ci0JCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUy LCAxMCwgMTApOwotCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUyLCBtb2RlLT5oZGlzcGxh eS0yMCwgbW9kZS0+dmRpc3BsYXktMjApOwotCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXks IENPTU1JVF9VTklWRVJTQUwpOworCS8qIDJuZCBwbGFuZSBkb3duc2NhbGluZyAqLworCWlndF9m Yl9zZXRfcG9zaXRpb24oJmQtPmZiMiwgZC0+cGxhbmUyLCAwLCAwKTsKKwlpZ3RfZmJfc2V0X3Np emUoJmQtPmZiMiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgsIGQtPmZiMi5oZWlnaHQpOworCWln dF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMCwgMTApOworCWlndF9wbGFuZV9zZXRf c2l6ZShkLT5wbGFuZTIsIDUwMCwgNTAwICogZC0+ZmIyLmhlaWdodC9kLT5mYjIud2lkdGgpOwor CWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CiAKLQkJLyog Mm5kIHBsYW5lIGRvd25zY2FsaW5nICovCi0JCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMiwg ZC0+cGxhbmUyLCAwLCAwKTsKLQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwg ZC0+ZmIyLndpZHRoLCBkLT5mYjIuaGVpZ2h0KTsKLQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihk LT5wbGFuZTIsIDEwLCAxMCk7Ci0JCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIDUwMCwg NTAwICogZC0+ZmIyLmhlaWdodC9kLT5mYjIud2lkdGgpOworCWlmIChwcmltYXJ5X3BsYW5lX3Nj YWxpbmcpIHsKKwkJLyogUHJpbWFyeSBwbGFuZSB1cCBzY2FsaW5nICovCisJCWlndF9mYl9zZXRf cG9zaXRpb24oJmQtPmZiMSwgZC0+cGxhbmUxLCAxMDAsIDEwMCk7CisJCWlndF9mYl9zZXRfc2l6 ZSgmZC0+ZmIxLCBkLT5wbGFuZTEsIDUwMCwgNTAwKTsKKwkJaWd0X3BsYW5lX3NldF9wb3NpdGlv bihkLT5wbGFuZTEsIDAsIDApOworCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUxLCBtb2Rl LT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwogCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3Bs YXksIENPTU1JVF9VTklWRVJTQUwpOworCX0KIAotCQlpZiAocHJpbWFyeV9wbGFuZV9zY2FsaW5n KSB7Ci0JCQkvKiBQcmltYXJ5IHBsYW5lIHVwIHNjYWxpbmcgKi8KLQkJCWlndF9mYl9zZXRfcG9z aXRpb24oJmQtPmZiMSwgZC0+cGxhbmUxLCAxMDAsIDEwMCk7Ci0JCQlpZ3RfZmJfc2V0X3NpemUo JmQtPmZiMSwgZC0+cGxhbmUxLCA1MDAsIDUwMCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9u KGQtPnBsYW5lMSwgMCwgMCk7Ci0JCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUxLCBtb2Rl LT5oZGlzcGxheSwgbW9kZS0+dmRpc3BsYXkpOwotCQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNw bGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKLQkJfQorCS8qIFNldCB1cCBmYjMtPnBsYW5lMyBtYXBw aW5nLiAqLworCWQtPnBsYW5lMyA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91dHB1dCwgMik7CisJ aWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTMsICZkLT5mYjMpOworCisJLyogM3JkIHBsYW5lIHdp bmRvd2VkIC0gbm8gc2NhbGluZyAqLworCWlndF9mYl9zZXRfcG9zaXRpb24oJmQtPmZiMywgZC0+ cGxhbmUzLCAxMDAsIDEwMCk7CisJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjMsIGQtPnBsYW5lMywg ZC0+ZmIzLndpZHRoLTMwMCwgZC0+ZmIzLmhlaWdodC0zMDApOworCWlndF9wbGFuZV9zZXRfcG9z aXRpb24oZC0+cGxhbmUzLCAxMDAsIDEwMCk7CisJaWd0X3BsYW5lX3NldF9zaXplKGQtPnBsYW5l MywgbW9kZS0+aGRpc3BsYXktMzAwLCBtb2RlLT52ZGlzcGxheS0zMDApOworCWlndF9kaXNwbGF5 X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX1VOSVZFUlNBTCk7CiAKLQkJLyogU2V0IHVwIGZiMy0+ cGxhbmUzIG1hcHBpbmcuICovCi0JCWQtPnBsYW5lMyA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lKG91 dHB1dCwgMik7Ci0JCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUzLCAmZC0+ZmIzKTsKKwkvKiBT d2l0Y2ggc2NhbGVyIGZyb20gcGxhbmUgMiB0byBwbGFuZSAzICovCisJaWd0X2ZiX3NldF9wb3Np dGlvbigmZC0+ZmIyLCBkLT5wbGFuZTIsIDEwMCwgMTAwKTsKKwlpZ3RfZmJfc2V0X3NpemUoJmQt PmZiMiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtMjAwLCBkLT5mYjIuaGVpZ2h0LTIwMCk7CisJ aWd0X3BsYW5lX3NldF9wb3NpdGlvbihkLT5wbGFuZTIsIDEwMCwgMTAwKTsKKwlpZ3RfcGxhbmVf c2V0X3NpemUoZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtMjAwLCBkLT5mYjIuaGVpZ2h0LTIwMCk7 CiAKLQkJLyogM3JkIHBsYW5lIHdpbmRvd2VkIC0gbm8gc2NhbGluZyAqLwotCQlpZ3RfZmJfc2V0 X3Bvc2l0aW9uKCZkLT5mYjMsIGQtPnBsYW5lMywgMTAwLCAxMDApOwotCQlpZ3RfZmJfc2V0X3Np emUoJmQtPmZiMywgZC0+cGxhbmUzLCBkLT5mYjMud2lkdGgtMzAwLCBkLT5mYjMuaGVpZ2h0LTMw MCk7Ci0JCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUzLCAxMDAsIDEwMCk7Ci0JCWln dF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTMsIG1vZGUtPmhkaXNwbGF5LTMwMCwgbW9kZS0+dmRp c3BsYXktMzAwKTsKLQkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVS U0FMKTsKKwlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjMsIGQtPnBsYW5lMywgMTAwLCAxMDAp OworCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIzLCBkLT5wbGFuZTMsIGQtPmZiMy53aWR0aC00MDAs IGQtPmZiMy5oZWlnaHQtNDAwKTsKKwlpZ3RfcGxhbmVfc2V0X3Bvc2l0aW9uKGQtPnBsYW5lMywg MTAsIDEwKTsKKwlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUzLCBtb2RlLT5oZGlzcGxheS0z MDAsIG1vZGUtPnZkaXNwbGF5LTMwMCk7CisJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBD T01NSVRfVU5JVkVSU0FMKTsKKworCWlmIChwcmltYXJ5X3BsYW5lX3NjYWxpbmcpIHsKKwkJLyog U3dpdGNoIHNjYWxlciBmcm9tIHBsYW5lIDEgdG8gcGxhbmUgMiAqLworCQlpZ3RfZmJfc2V0X3Bv c2l0aW9uKCZkLT5mYjEsIGQtPnBsYW5lMSwgMCwgMCk7CisJCWlndF9mYl9zZXRfc2l6ZSgmZC0+ ZmIxLCBkLT5wbGFuZTEsIGQtPmZiMS53aWR0aCwgZC0+ZmIxLmhlaWdodCk7CisJCWlndF9wbGFu ZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUxLCAwLCAwKTsKKwkJaWd0X3BsYW5lX3NldF9zaXplKGQt PnBsYW5lMSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5KTsKIAotCQkvKiBTd2l0Y2gg c2NhbGVyIGZyb20gcGxhbmUgMiB0byBwbGFuZSAzICovCiAJCWlndF9mYl9zZXRfcG9zaXRpb24o JmQtPmZiMiwgZC0+cGxhbmUyLCAxMDAsIDEwMCk7Ci0JCWlndF9mYl9zZXRfc2l6ZSgmZC0+ZmIy LCBkLT5wbGFuZTIsIGQtPmZiMi53aWR0aC0yMDAsIGQtPmZiMi5oZWlnaHQtMjAwKTsKKwkJaWd0 X2ZiX3NldF9zaXplKCZkLT5mYjIsIGQtPnBsYW5lMiwgZC0+ZmIyLndpZHRoLTUwMCxkLT5mYjIu aGVpZ2h0LTUwMCk7CiAJCWlndF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMDAsIDEw MCk7Ci0JCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTIsIGQtPmZiMi53aWR0aC0yMDAsIGQt PmZiMi5oZWlnaHQtMjAwKTsKLQotCQlpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZkLT5mYjMsIGQtPnBs YW5lMywgMTAwLCAxMDApOwotCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZiMywgZC0+cGxhbmUzLCBk LT5mYjMud2lkdGgtNDAwLCBkLT5mYjMuaGVpZ2h0LTQwMCk7Ci0JCWlndF9wbGFuZV9zZXRfcG9z aXRpb24oZC0+cGxhbmUzLCAxMCwgMTApOwotCQlpZ3RfcGxhbmVfc2V0X3NpemUoZC0+cGxhbmUz LCBtb2RlLT5oZGlzcGxheS0zMDAsIG1vZGUtPnZkaXNwbGF5LTMwMCk7CisJCWlndF9wbGFuZV9z ZXRfc2l6ZShkLT5wbGFuZTIsIG1vZGUtPmhkaXNwbGF5LTIwMCwgbW9kZS0+dmRpc3BsYXktMjAw KTsKIAkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKKwl9 CiAKLQkJaWYgKHByaW1hcnlfcGxhbmVfc2NhbGluZykgewotCQkJLyogU3dpdGNoIHNjYWxlciBm cm9tIHBsYW5lIDEgdG8gcGxhbmUgMiAqLwotCQkJaWd0X2ZiX3NldF9wb3NpdGlvbigmZC0+ZmIx LCBkLT5wbGFuZTEsIDAsIDApOwotCQkJaWd0X2ZiX3NldF9zaXplKCZkLT5mYjEsIGQtPnBsYW5l MSwgZC0+ZmIxLndpZHRoLCBkLT5mYjEuaGVpZ2h0KTsKLQkJCWlndF9wbGFuZV9zZXRfcG9zaXRp b24oZC0+cGxhbmUxLCAwLCAwKTsKLQkJCWlndF9wbGFuZV9zZXRfc2l6ZShkLT5wbGFuZTEsIG1v ZGUtPmhkaXNwbGF5LCBtb2RlLT52ZGlzcGxheSk7Ci0KLQkJCWlndF9mYl9zZXRfcG9zaXRpb24o JmQtPmZiMiwgZC0+cGxhbmUyLCAxMDAsIDEwMCk7Ci0JCQlpZ3RfZmJfc2V0X3NpemUoJmQtPmZi MiwgZC0+cGxhbmUyLCBkLT5mYjIud2lkdGgtNTAwLGQtPmZiMi5oZWlnaHQtNTAwKTsKLQkJCWln dF9wbGFuZV9zZXRfcG9zaXRpb24oZC0+cGxhbmUyLCAxMDAsIDEwMCk7Ci0JCQlpZ3RfcGxhbmVf c2V0X3NpemUoZC0+cGxhbmUyLCBtb2RlLT5oZGlzcGxheS0yMDAsIG1vZGUtPnZkaXNwbGF5LTIw MCk7Ci0JCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOwot CQl9CisJLyogYmFjayB0byBzaW5nbGUgcGxhbmUgbW9kZSAqLworCWlndF9wbGFuZV9zZXRfZmIo ZC0+cGxhbmUyLCBOVUxMKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKGQtPnBsYW5lMywgTlVMTCk7CisJ aWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfVU5JVkVSU0FMKTsKIAotCQkvKiBi YWNrIHRvIHNpbmdsZSBwbGFuZSBtb2RlICovCi0JCWlndF9wbGFuZV9zZXRfZmIoZC0+cGxhbmUy LCBOVUxMKTsKLQkJaWd0X3BsYW5lX3NldF9mYihkLT5wbGFuZTMsIE5VTEwpOwotCQlpZ3RfZGlz cGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9VTklWRVJTQUwpOworCWNsZWFudXBfY3J0Yyhk LCBvdXRwdXQsIGQtPnBsYW5lMSk7Cit9CiAKK3N0YXRpYyB2b2lkIHRlc3RfcGxhbmVfc2NhbGlu ZyhkYXRhX3QgKmQsIGVudW0gcGlwZSBwaXBlKQoreworCWlndF9vdXRwdXRfdCAqb3V0cHV0Owor CWludCB2YWxpZF90ZXN0cyA9IDA7CisKKwlpZ3RfcmVxdWlyZShkLT5udW1fc2NhbGVycyk7CisK Kwlmb3JfZWFjaF92YWxpZF9vdXRwdXRfb25fcGlwZSgmZC0+ZGlzcGxheSwgcGlwZSwgb3V0cHV0 KSB7CisJCXRlc3RfcGxhbmVfc2NhbGluZ19vbl9waXBlKGQsIHBpcGUsIG91dHB1dCk7CisJCWln dF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7CiAJCXZhbGlkX3Rlc3RzKys7Ci0J CWNsZWFudXBfY3J0YyhkLCBvdXRwdXQsIGQtPnBsYW5lMSk7CiAJfQorCiAJaWd0X3JlcXVpcmVf Zih2YWxpZF90ZXN0cywgIm5vIHZhbGlkIGNydGMvY29ubmVjdG9yIGNvbWJpbmF0aW9ucyBmb3Vu ZFxuIik7CiB9CiAKIGlndF9zaW1wbGVfbWFpbgogewogCWRhdGFfdCBkYXRhID0ge307CisJZW51 bSBwaXBlIHBpcGU7CiAKIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CiAKQEAgLTMxMiw3ICsz MTksOCBAQCBpZ3Rfc2ltcGxlX21haW4KIAogCWRhdGEubnVtX3NjYWxlcnMgPSBpbnRlbF9nZW4o ZGF0YS5kZXZpZCkgPj0gOSA/IDIgOiAwOwogCi0JdGVzdF9wbGFuZV9zY2FsaW5nKCZkYXRhKTsK Kwlmb3JfZWFjaF9waXBlX3N0YXRpYyhwaXBlKQorCQl0ZXN0X3BsYW5lX3NjYWxpbmcoJmRhdGEs IHBpcGUpOwogCiAJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKIH0KLS0gCjIuMTUu MQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==