From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [i-g-t PATCH v10 4/5] igt/kms_flip: Use new igt_spin_batch Date: Wed, 23 Nov 2016 12:59:42 +0200 Message-ID: <20161123105943.5157-5-abdiel.janulgue@linux.intel.com> References: <20161123105943.5157-1-abdiel.janulgue@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 85F216E7EF for ; Wed, 23 Nov 2016 10:59:56 +0000 (UTC) In-Reply-To: <20161123105943.5157-1-abdiel.janulgue@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 Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org djc6IFJldXNlIE5TRUNfUEVSX1NFQyBkZWZpbmVzCnY4OiBEb24ndCB3YWl0IG9uIHRoZSBmYiwg aXQgbXVzdCBiZSBidXN5LiBFeGl0IHRoZSBzcGluIGJhdGNoCiAgICB3aGVuIGZsaXAgaXMgcXVl dWVkIChDaHJpcyBXaWxzb24pCnYxMDogQWRhcHQgdG8gYXBpIHJlbmFtZQoKQ2M6IENocmlzIFdp bHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KUmV2aWV3ZWQtYnk6IFRvbWV1IFZpem9zbyA8dG9tZXUudml6b3Nv QGNvbGxhYm9yYS5jb20+ClNpZ25lZC1vZmYtYnk6IEFiZGllbCBKYW51bGd1ZSA8YWJkaWVsLmph bnVsZ3VlQGxpbnV4LmludGVsLmNvbT4KLS0tCiB0ZXN0cy9rbXNfZmxpcC5jIHwgMjEyICsrKysr KystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxODYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvdGVzdHMva21zX2ZsaXAuYyBiL3Rlc3RzL2ttc19mbGlwLmMKaW5kZXggMmE5ZmUyZS4uMjg5 MzM1YSAxMDA2NDQKLS0tIGEvdGVzdHMva21zX2ZsaXAuYworKysgYi90ZXN0cy9rbXNfZmxpcC5j CkBAIC04NSw5ICs4NSw2IEBACiAjZGVmaW5lIERSTV9DQVBfVElNRVNUQU1QX01PTk9UT05JQyA2 CiAjZW5kaWYKIAotI2RlZmluZSBVU0VDX1BFUl9TRUMgMTAwMDAwMEwKLSNkZWZpbmUgTlNFQ19Q RVJfU0VDIDEwMDAwMDAwMDBMCi0KIGRybU1vZGVSZXMgKnJlc291cmNlczsKIGludCBkcm1fZmQ7 CiBzdGF0aWMgZHJtX2ludGVsX2J1Zm1nciAqYnVmbWdyOwpAQCAtMTkxLDEwOSArMTg4LDYgQEAg c3RhdGljIHVuc2lnbmVkIGxvbmcgZ2V0dGltZV91cyh2b2lkKQogCXJldHVybiB0cy50dl9zZWMg KiAxMDAwMDAwICsgdHMudHZfbnNlYyAvIDEwMDA7CiB9CiAKLXN0YXRpYyBpbnQgY2FsaWJyYXRl X2R1bW15X2xvYWQoc3RydWN0IHRlc3Rfb3V0cHV0ICpvLAotCQkJCWNvbnN0IGNoYXIgKnJpbmdf bmFtZSwKLQkJCQlpbnQgKCplbWl0KShzdHJ1Y3QgdGVzdF9vdXRwdXQgKm8sIGludCBsaW1pdCwg aW50IHRpbWVvdXQpKQotewotCXVuc2lnbmVkIGxvbmcgc3RhcnQ7Ci0JaW50IG9wcyA9IDE7Ci0K LQlzdGFydCA9IGdldHRpbWVfdXMoKTsKLQotCWRvIHsKLQkJdW5zaWduZWQgbG9uZyBkaWZmOwot CQlpbnQgcmV0OwotCi0JCXJldCA9IGVtaXQobywgKG9wcysxKS8yLCAxMCk7Ci0JCWRpZmYgPSBn ZXR0aW1lX3VzKCkgLSBzdGFydDsKLQotCQlpZiAocmV0IHx8IGRpZmYgLyBVU0VDX1BFUl9TRUMg Pj0gMSkKLQkJCWJyZWFrOwotCi0JCW9wcyArPSBvcHM7Ci0JfSB3aGlsZSAob3BzIDwgMTAwMDAw KTsKLQotCWlndF9kZWJ1ZygiJXMgZHVtbXkgbG9hZCBjYWxpYnJhdGVkOiAlZCBvcGVyYXRpb25z IC8gc2Vjb25kXG4iLAotCQkgIHJpbmdfbmFtZSwgb3BzKTsKLQotCXJldHVybiBvcHM7Ci19Ci0K LXN0YXRpYyB2b2lkIGJsaXRfY29weShkcm1faW50ZWxfYm8gKmRzdCwgZHJtX2ludGVsX2JvICpz cmMsCi0JCSAgICAgIHVuc2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWdodCwKLQkJ ICAgICAgdW5zaWduZWQgaW50IGRzdF9waXRjaCwgdW5zaWduZWQgaW50IHNyY19waXRjaCkKLXsK LQlCTElUX0NPUFlfQkFUQ0hfU1RBUlQoMCk7Ci0JT1VUX0JBVENIKCgzIDw8IDI0KSB8IC8qIDMy IGJpdHMgKi8KLQkJICAoMHhjYyA8PCAxNikgfCAvKiBjb3B5IFJPUCAqLwotCQkgIGRzdF9waXRj aCk7Ci0JT1VUX0JBVENIKDAgPDwgMTYgfCAwKTsKLQlPVVRfQkFUQ0goaGVpZ2h0IDw8IDE2IHwg d2lkdGgpOwotCU9VVF9SRUxPQ19GRU5DRUQoZHN0LCBJOTE1X0dFTV9ET01BSU5fUkVOREVSLCBJ OTE1X0dFTV9ET01BSU5fUkVOREVSLCAwKTsKLQlPVVRfQkFUQ0goMCA8PCAxNiB8IDApOwotCU9V VF9CQVRDSChzcmNfcGl0Y2gpOwotCU9VVF9SRUxPQ19GRU5DRUQoc3JjLCBJOTE1X0dFTV9ET01B SU5fUkVOREVSLCAwLCAwKTsKLQlBRFZBTkNFX0JBVENIKCk7Ci0KLQlpZiAoYmF0Y2gtPmdlbiA+ PSA2KSB7Ci0JCUJFR0lOX0JBVENIKDMsIDApOwotCQlPVVRfQkFUQ0goWFlfU0VUVVBfQ0xJUF9C TFRfQ01EKTsKLQkJT1VUX0JBVENIKDApOwotCQlPVVRfQkFUQ0goMCk7Ci0JCUFEVkFOQ0VfQkFU Q0goKTsKLQl9Ci19Ci0KLXN0YXRpYyBpbnQgX2VtaXRfZHVtbXlfbG9hZF9fYmNzKHN0cnVjdCB0 ZXN0X291dHB1dCAqbywgaW50IGxpbWl0LCBpbnQgdGltZW91dCkKLXsKLQlpbnQgaSwgcmV0ID0g MDsKLQlkcm1faW50ZWxfYm8gKnNyY19ibywgKmRzdF9ibywgKmZiX2JvOwotCXN0cnVjdCBpZ3Rf ZmIgKmZiX2luZm8gPSAmby0+ZmJfaW5mb1tvLT5jdXJyZW50X2ZiX2lkXTsKLQotCWlndF9yZXF1 aXJlKGJ1Zm1ncik7Ci0KLQlzcmNfYm8gPSBkcm1faW50ZWxfYm9fYWxsb2MoYnVmbWdyLCAiZHVt bXlfYm8iLCAyMDQ4KjIwNDgqNCwgNDA5Nik7Ci0JaWd0X2Fzc2VydChzcmNfYm8pOwotCi0JZHN0 X2JvID0gZHJtX2ludGVsX2JvX2FsbG9jKGJ1Zm1nciwgImR1bW15X2JvIiwgMjA0OCoyMDQ4KjQs IDQwOTYpOwotCWlndF9hc3NlcnQoZHN0X2JvKTsKLQotCWZiX2JvID0gZ2VtX2hhbmRsZV90b19s aWJkcm1fYm8oYnVmbWdyLCBkcm1fZmQsICJpbXBvcnRlZCIsIGZiX2luZm8tPmdlbV9oYW5kbGUp OwotCWlndF9hc3NlcnQoZmJfYm8pOwotCi0JZm9yIChpID0gMDsgaSA8IGxpbWl0OyBpKyspIHsK LQkJYmxpdF9jb3B5KGRzdF9ibywgc3JjX2JvLAotCQkJICAyMDQ4LCAyMDQ4LAotCQkJICAyMDQ4 KjQsIDIwNDgqNCk7Ci0KLQkJaWd0X3N3YXAoc3JjX2JvLCBkc3RfYm8pOwotCX0KLQlibGl0X2Nv cHkoZmJfYm8sIHNyY19ibywKLQkJICBtaW4oby0+ZmJfd2lkdGgsIDIwNDgpLCBtaW4oby0+ZmJf aGVpZ2h0LCAyMDQ4KSwKLQkJICBmYl9pbmZvLT5zdHJpZGUsIDIwNDgqNCk7Ci0JaW50ZWxfYmF0 Y2hidWZmZXJfZmx1c2goYmF0Y2gpOwotCi0JaWYgKHRpbWVvdXQgPiAwKQotCQlyZXQgPSBkcm1f aW50ZWxfZ2VtX2JvX3dhaXQoZmJfYm8sIHRpbWVvdXQgKiBOU0VDX1BFUl9TRUMpOwotCi0JZHJt X2ludGVsX2JvX3VucmVmZXJlbmNlKHNyY19ibyk7Ci0JZHJtX2ludGVsX2JvX3VucmVmZXJlbmNl KGRzdF9ibyk7Ci0JZHJtX2ludGVsX2JvX3VucmVmZXJlbmNlKGZiX2JvKTsKLQotCXJldHVybiBy ZXQ7Ci19Ci0KLXN0YXRpYyB2b2lkIGVtaXRfZHVtbXlfbG9hZF9fYmNzKHN0cnVjdCB0ZXN0X291 dHB1dCAqbywgaW50IHNlY29uZHMpCi17Ci0Jc3RhdGljIGludCBvcHNfcGVyX3NlYzsKLQotCWlm IChvcHNfcGVyX3NlYyA9PSAwKQotCQlvcHNfcGVyX3NlYyA9IGNhbGlicmF0ZV9kdW1teV9sb2Fk KG8sICJiY3MiLAotCQkJCQkJICAgX2VtaXRfZHVtbXlfbG9hZF9fYmNzKTsKLQotCV9lbWl0X2R1 bW15X2xvYWRfX2JjcyhvLCBzZWNvbmRzICogb3BzX3Blcl9zZWMsIDApOwotfQotCiBzdGF0aWMg dm9pZCBlbWl0X2ZlbmNlX3N0cmVzcyhzdHJ1Y3QgdGVzdF9vdXRwdXQgKm8pCiB7CiAJY29uc3Qg aW50IG51bV9mZW5jZXMgPSBnZW1fYXZhaWxhYmxlX2ZlbmNlcyhkcm1fZmQpOwpAQCAtMzM4LDgy ICsyMzIsNiBAQCBzdGF0aWMgdm9pZCBlbWl0X2ZlbmNlX3N0cmVzcyhzdHJ1Y3QgdGVzdF9vdXRw dXQgKm8pCiAJZnJlZShleGVjKTsKIH0KIAotc3RhdGljIGludCBfZW1pdF9kdW1teV9sb2FkX19y Y3Moc3RydWN0IHRlc3Rfb3V0cHV0ICpvLCBpbnQgbGltaXQsIGludCB0aW1lb3V0KQotewotCWNv bnN0IHN0cnVjdCBpZ3RfZmIgKmZiX2luZm8gPSAmby0+ZmJfaW5mb1tvLT5jdXJyZW50X2ZiX2lk XTsKLQlpZ3RfcmVuZGVyX2NvcHlmdW5jX3QgY29weWZ1bmM7Ci0Jc3RydWN0IGlndF9idWYgc2Jb M10sICpzcmMsICpkc3QsICpmYjsKLQlpbnQgaSwgcmV0ID0gMDsKLQotCWlndF9yZXF1aXJlKGJ1 Zm1ncik7Ci0KLQljb3B5ZnVuYyA9IGlndF9nZXRfcmVuZGVyX2NvcHlmdW5jKGRldmlkKTsKLQlp ZiAoY29weWZ1bmMgPT0gTlVMTCkKLQkJcmV0dXJuIF9lbWl0X2R1bW15X2xvYWRfX2JjcyhvLCBs aW1pdCwgdGltZW91dCk7Ci0KLQlzYlswXS5ibyA9IGRybV9pbnRlbF9ib19hbGxvYyhidWZtZ3Is ICJkdW1teV9ibyIsIDIwNDgqMjA0OCo0LCA0MDk2KTsKLQlpZ3RfYXNzZXJ0KHNiWzBdLmJvKTsK LQlzYlswXS5zaXplID0gc2JbMF0uYm8tPnNpemU7Ci0Jc2JbMF0udGlsaW5nID0gSTkxNV9USUxJ TkdfTk9ORTsKLQlzYlswXS5kYXRhID0gTlVMTDsKLQlzYlswXS5udW1fdGlsZXMgPSBzYlswXS5i by0+c2l6ZTsKLQlzYlswXS5zdHJpZGUgPSA0ICogMjA0ODsKLQotCXNiWzFdLmJvID0gZHJtX2lu dGVsX2JvX2FsbG9jKGJ1Zm1nciwgImR1bW15X2JvIiwgMjA0OCoyMDQ4KjQsIDQwOTYpOwotCWln dF9hc3NlcnQoc2JbMV0uYm8pOwotCXNiWzFdLnNpemUgPSBzYlsxXS5iby0+c2l6ZTsKLQlzYlsx XS50aWxpbmcgPSBJOTE1X1RJTElOR19OT05FOwotCXNiWzFdLmRhdGEgPSBOVUxMOwotCXNiWzFd Lm51bV90aWxlcyA9IHNiWzFdLmJvLT5zaXplOwotCXNiWzFdLnN0cmlkZSA9IDQgKiAyMDQ4Owot Ci0Jc2JbMl0uYm8gPSBnZW1faGFuZGxlX3RvX2xpYmRybV9ibyhidWZtZ3IsIGRybV9mZCwgImlt cG9ydGVkIiwgZmJfaW5mby0+Z2VtX2hhbmRsZSk7Ci0JaWd0X2Fzc2VydChzYlsyXS5ibyk7Ci0J c2JbMl0uc2l6ZSA9IHNiWzJdLmJvLT5zaXplOwotCXNiWzJdLnRpbGluZyA9IGlndF9mYl9tb2Rf dG9fdGlsaW5nKGZiX2luZm8tPnRpbGluZyk7Ci0Jc2JbMl0uZGF0YSA9IE5VTEw7Ci0Jc2JbMl0u bnVtX3RpbGVzID0gc2JbMl0uYm8tPnNpemU7Ci0Jc2JbMl0uc3RyaWRlID0gZmJfaW5mby0+c3Ry aWRlOwotCi0Jc3JjID0gJnNiWzBdOwotCWRzdCA9ICZzYlsxXTsKLQlmYiA9ICZzYlsyXTsKLQot CWZvciAoaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7Ci0JCWNvcHlmdW5jKGJhdGNoLCBOVUxMLAot CQkJIHNyYywgMCwgMCwKLQkJCSAyMDQ4LCAyMDQ4LAotCQkJIGRzdCwgMCwgMCk7Ci0KLQkJaWd0 X3N3YXAoc3JjLCBkc3QpOwotCX0KLQljb3B5ZnVuYyhiYXRjaCwgTlVMTCwKLQkJIHNyYywgMCwg MCwKLQkJIG1pbihvLT5mYl93aWR0aCwgMjA0OCksIG1pbihvLT5mYl9oZWlnaHQsIDIwNDgpLAot CQkgZmIsIDAsIDApOwotCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoKGJhdGNoKTsKLQotCWlmICh0 aW1lb3V0ID4gMCkKLQkJcmV0ID0gZHJtX2ludGVsX2dlbV9ib193YWl0KGZiLT5ibywgdGltZW91 dCAqIE5TRUNfUEVSX1NFQyk7Ci0KLQlkcm1faW50ZWxfYm9fdW5yZWZlcmVuY2Uoc2JbMF0uYm8p OwotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShzYlsxXS5ibyk7Ci0JZHJtX2ludGVsX2JvX3Vu cmVmZXJlbmNlKHNiWzJdLmJvKTsKLQotCXJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyB2b2lkIGVt aXRfZHVtbXlfbG9hZF9fcmNzKHN0cnVjdCB0ZXN0X291dHB1dCAqbywgaW50IHNlY29uZHMpCi17 Ci0Jc3RhdGljIGludCBvcHNfcGVyX3NlYzsKLQotCWlmIChvcHNfcGVyX3NlYyA9PSAwKQotCQlv cHNfcGVyX3NlYyA9IGNhbGlicmF0ZV9kdW1teV9sb2FkKG8sICJyY3MiLAotCQkJCQkJICAgX2Vt aXRfZHVtbXlfbG9hZF9fcmNzKTsKLQotCV9lbWl0X2R1bW15X2xvYWRfX2JjcyhvLCBzZWNvbmRz ICogb3BzX3Blcl9zZWMsIDApOwotfQotCiBzdGF0aWMgdm9pZCBkcG1zX29mZl9vdGhlcl9vdXRw dXRzKHN0cnVjdCB0ZXN0X291dHB1dCAqbykKIHsKIAlpbnQgaSwgbjsKQEAgLTg1Miw2ICs2NzAs OCBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHJ1bl90ZXN0X3N0ZXAoc3RydWN0IHRlc3Rfb3V0cHV0 ICpvKQogCXN0cnVjdCB2YmxhbmtfcmVwbHkgdmJsX3JlcGx5OwogCXVuc2lnbmVkIGludCB0YXJn ZXRfc2VxOwogCWlndF9oYW5nX3QgaGFuZzsKKwlpZ3Rfc3Bpbl90ICpzcGluX3JjcyA9IDA7CisJ aWd0X3NwaW5fdCAqc3Bpbl9iY3MgPSAwOwogCiAJdGFyZ2V0X3NlcSA9IG8tPnZibGFua19zdGF0 ZS5zZXFfc3RlcDsKIAkvKiBBYnNvbHV0ZSB3YWl0cyBvbmx5IHdvcmtzIG9uY2Ugd2UgaGF2ZSBh IGZyYW1lIGNvdW50ZXIuICovCkBAIC04NzQsMTAgKzY5NCwxMiBAQCBzdGF0aWMgdW5zaWduZWQg aW50IHJ1bl90ZXN0X3N0ZXAoc3RydWN0IHRlc3Rfb3V0cHV0ICpvKQogCQlvLT5jdXJyZW50X2Zi X2lkID0gIW8tPmN1cnJlbnRfZmJfaWQ7CiAKIAlpZiAoby0+ZmxhZ3MgJiBURVNUX1dJVEhfRFVN TVlfQkNTKQotCQllbWl0X2R1bW15X2xvYWRfX2JjcyhvLCAxKTsKKwkJc3Bpbl9iY3MgPSBpZ3Rf c3Bpbl9iYXRjaF9uZXcoZHJtX2ZkLCBJOTE1X0VYRUNfQkxULAorCQkJCQkgICAgICBvLT5mYl9p bmZvW28tPmN1cnJlbnRfZmJfaWRdLmdlbV9oYW5kbGUpOwogCiAJaWYgKG8tPmZsYWdzICYgVEVT VF9XSVRIX0RVTU1ZX1JDUykKLQkJZW1pdF9kdW1teV9sb2FkX19yY3MobywgMSk7CisJCXNwaW5f cmNzID0gaWd0X3NwaW5fYmF0Y2hfbmV3KGRybV9mZCwgSTkxNV9FWEVDX1JFTkRFUiwKKwkJCQkJ ICAgICAgby0+ZmJfaW5mb1tvLT5jdXJyZW50X2ZiX2lkXS5nZW1faGFuZGxlKTsKIAogCWlmIChv LT5mbGFncyAmIFRFU1RfRkJfUkVDUkVBVEUpCiAJCXJlY3JlYXRlX2ZiKG8pOwpAQCAtOTMzLDgg Kzc1NSwxMyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHJ1bl90ZXN0X3N0ZXAoc3RydWN0IHRlc3Rf b3V0cHV0ICpvKQogCWlmIChvLT5mbGFncyAmIFRFU1RfTU9ERVNFVCkKIAkJaWd0X2Fzc2VydChz ZXRfbW9kZShvLCBvLT5mYl9pZHNbby0+Y3VycmVudF9mYl9pZF0sIDAsIDApID09IDApOwogCi0J aWYgKG8tPmZsYWdzICYgVEVTVF9EUE1TKQorCWlmIChvLT5mbGFncyAmIFRFU1RfRFBNUykgewor CQlpZiAoc3Bpbl9yY3MpCisJCQlpZ3Rfc3Bpbl9iYXRjaF9lbmQoc3Bpbl9yY3MpOworCQlpZiAo c3Bpbl9iY3MpCisJCQlpZ3Rfc3Bpbl9iYXRjaF9lbmQoc3Bpbl9iY3MpOwogCQlzZXRfZHBtcyhv LCBEUk1fTU9ERV9EUE1TX09OKTsKKwl9CiAKIAlpZiAoby0+ZmxhZ3MgJiBURVNUX1ZCTEFOS19S QUNFKSB7CiAJCXN0cnVjdCB2YmxhbmtfcmVwbHkgcmVwbHk7CkBAIC05NjcsOCArNzk0LDEzIEBA IHN0YXRpYyB1bnNpZ25lZCBpbnQgcnVuX3Rlc3Rfc3RlcChzdHJ1Y3QgdGVzdF9vdXRwdXQgKm8p CiAJCWlndF9hc3NlcnQoX193YWl0X2Zvcl92YmxhbmsoVEVTVF9WQkxBTktfQkxPQ0ssIG8tPnBp cGUsIDEsIDAsICZyZXBseSkgPT0gMCk7CiAJfQogCi0JaWYgKGRvX2ZsaXApCisJaWYgKGRvX2Zs aXApIHsKIAkJZG9fb3JfZGllKGRvX3BhZ2VfZmxpcChvLCBuZXdfZmJfaWQsICEoby0+ZmxhZ3Mg JiBURVNUX05PRVZFTlQpKSk7CisJCWlmIChzcGluX3JjcykKKwkJCWlndF9zcGluX2JhdGNoX2Vu ZChzcGluX3Jjcyk7CisJCWlmIChzcGluX2JjcykKKwkJCWlndF9zcGluX2JhdGNoX2VuZChzcGlu X2Jjcyk7CisJfQogCiAJaWYgKG8tPmZsYWdzICYgVEVTVF9GRU5DRV9TVFJFU1MpCiAJCWVtaXRf ZmVuY2Vfc3RyZXNzKG8pOwpAQCAtOTgyLDcgKzgxNCwxNSBAQCBzdGF0aWMgdW5zaWduZWQgaW50 IHJ1bl90ZXN0X3N0ZXAoc3RydWN0IHRlc3Rfb3V0cHV0ICpvKQogCQkJCSAgICAgIHZibF9yZXBs eS50cy50dl91c2VjKTsKIAkJCWNvbXBsZXRlZF9ldmVudHMgPSBFVkVOVF9WQkxBTks7CiAJCX0K KwkJaWYgKHNwaW5fcmNzKQorCQkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW5fcmNzKTsKKwkJaWYg KHNwaW5fYmNzKQorCQkJaWd0X3NwaW5fYmF0Y2hfZW5kKHNwaW5fYmNzKTsKIAl9CisJaWYgKHNw aW5fcmNzKQorCQlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGRybV9mZCwgc3Bpbl9yY3MpOworCWlmIChz cGluX2JjcykKKwkJaWd0X3NwaW5fYmF0Y2hfZnJlZShkcm1fZmQsIHNwaW5fYmNzKTsKIAogCWlm IChkb19mbGlwICYmIChvLT5mbGFncyAmIFRFU1RfRUJVU1kpKQogCQlpZ3RfYXNzZXJ0KGRvX3Bh Z2VfZmxpcChvLCBuZXdfZmJfaWQsIHRydWUpID09IC1FQlVTWSk7Ci0tIAoyLjkuMwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==