From mboxrd@z Thu Jan 1 00:00:00 1970 From: Abdiel Janulgue Subject: [i-g-t PATCH v8 4/5] igt/kms_flip: Use new igt_spin_batch Date: Mon, 21 Nov 2016 11:25:10 +0200 Message-ID: <1479720311-1840-5-git-send-email-abdiel.janulgue@linux.intel.com> References: <1479720311-1840-1-git-send-email-abdiel.janulgue@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 406B66E3C5 for ; Mon, 21 Nov 2016 09:24:54 +0000 (UTC) In-Reply-To: <1479720311-1840-1-git-send-email-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 dWVkIChDaHJpcyBXaWxzb24pCgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24u Y28udWs+CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpTaWduZWQt b2ZmLWJ5OiBBYmRpZWwgSmFudWxndWUgPGFiZGllbC5qYW51bGd1ZUBsaW51eC5pbnRlbC5jb20+ Ci0tLQogdGVzdHMva21zX2ZsaXAuYyB8IDIxMiArKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjYgaW5zZXJ0aW9u cygrKSwgMTg2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mbGlwLmMgYi90 ZXN0cy9rbXNfZmxpcC5jCmluZGV4IDJhOWZlMmUuLjQzN2M1NjQgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L2ttc19mbGlwLmMKKysrIGIvdGVzdHMva21zX2ZsaXAuYwpAQCAtODUsOSArODUsNiBAQAogI2Rl ZmluZSBEUk1fQ0FQX1RJTUVTVEFNUF9NT05PVE9OSUMgNgogI2VuZGlmCiAKLSNkZWZpbmUgVVNF Q19QRVJfU0VDIDEwMDAwMDBMCi0jZGVmaW5lIE5TRUNfUEVSX1NFQyAxMDAwMDAwMDAwTAotCiBk cm1Nb2RlUmVzICpyZXNvdXJjZXM7CiBpbnQgZHJtX2ZkOwogc3RhdGljIGRybV9pbnRlbF9idWZt Z3IgKmJ1Zm1ncjsKQEAgLTE5MSwxMDkgKzE4OCw2IEBAIHN0YXRpYyB1bnNpZ25lZCBsb25nIGdl dHRpbWVfdXModm9pZCkKIAlyZXR1cm4gdHMudHZfc2VjICogMTAwMDAwMCArIHRzLnR2X25zZWMg LyAxMDAwOwogfQogCi1zdGF0aWMgaW50IGNhbGlicmF0ZV9kdW1teV9sb2FkKHN0cnVjdCB0ZXN0 X291dHB1dCAqbywKLQkJCQljb25zdCBjaGFyICpyaW5nX25hbWUsCi0JCQkJaW50ICgqZW1pdCko c3RydWN0IHRlc3Rfb3V0cHV0ICpvLCBpbnQgbGltaXQsIGludCB0aW1lb3V0KSkKLXsKLQl1bnNp Z25lZCBsb25nIHN0YXJ0OwotCWludCBvcHMgPSAxOwotCi0Jc3RhcnQgPSBnZXR0aW1lX3VzKCk7 Ci0KLQlkbyB7Ci0JCXVuc2lnbmVkIGxvbmcgZGlmZjsKLQkJaW50IHJldDsKLQotCQlyZXQgPSBl bWl0KG8sIChvcHMrMSkvMiwgMTApOwotCQlkaWZmID0gZ2V0dGltZV91cygpIC0gc3RhcnQ7Ci0K LQkJaWYgKHJldCB8fCBkaWZmIC8gVVNFQ19QRVJfU0VDID49IDEpCi0JCQlicmVhazsKLQotCQlv cHMgKz0gb3BzOwotCX0gd2hpbGUgKG9wcyA8IDEwMDAwMCk7Ci0KLQlpZ3RfZGVidWcoIiVzIGR1 bW15IGxvYWQgY2FsaWJyYXRlZDogJWQgb3BlcmF0aW9ucyAvIHNlY29uZFxuIiwKLQkJICByaW5n X25hbWUsIG9wcyk7Ci0KLQlyZXR1cm4gb3BzOwotfQotCi1zdGF0aWMgdm9pZCBibGl0X2NvcHko ZHJtX2ludGVsX2JvICpkc3QsIGRybV9pbnRlbF9ibyAqc3JjLAotCQkgICAgICB1bnNpZ25lZCBp bnQgd2lkdGgsIHVuc2lnbmVkIGludCBoZWlnaHQsCi0JCSAgICAgIHVuc2lnbmVkIGludCBkc3Rf cGl0Y2gsIHVuc2lnbmVkIGludCBzcmNfcGl0Y2gpCi17Ci0JQkxJVF9DT1BZX0JBVENIX1NUQVJU KDApOwotCU9VVF9CQVRDSCgoMyA8PCAyNCkgfCAvKiAzMiBiaXRzICovCi0JCSAgKDB4Y2MgPDwg MTYpIHwgLyogY29weSBST1AgKi8KLQkJICBkc3RfcGl0Y2gpOwotCU9VVF9CQVRDSCgwIDw8IDE2 IHwgMCk7Ci0JT1VUX0JBVENIKGhlaWdodCA8PCAxNiB8IHdpZHRoKTsKLQlPVVRfUkVMT0NfRkVO Q0VEKGRzdCwgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiwgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiwg MCk7Ci0JT1VUX0JBVENIKDAgPDwgMTYgfCAwKTsKLQlPVVRfQkFUQ0goc3JjX3BpdGNoKTsKLQlP VVRfUkVMT0NfRkVOQ0VEKHNyYywgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiwgMCwgMCk7Ci0JQURW QU5DRV9CQVRDSCgpOwotCi0JaWYgKGJhdGNoLT5nZW4gPj0gNikgewotCQlCRUdJTl9CQVRDSCgz LCAwKTsKLQkJT1VUX0JBVENIKFhZX1NFVFVQX0NMSVBfQkxUX0NNRCk7Ci0JCU9VVF9CQVRDSCgw KTsKLQkJT1VUX0JBVENIKDApOwotCQlBRFZBTkNFX0JBVENIKCk7Ci0JfQotfQotCi1zdGF0aWMg aW50IF9lbWl0X2R1bW15X2xvYWRfX2JjcyhzdHJ1Y3QgdGVzdF9vdXRwdXQgKm8sIGludCBsaW1p dCwgaW50IHRpbWVvdXQpCi17Ci0JaW50IGksIHJldCA9IDA7Ci0JZHJtX2ludGVsX2JvICpzcmNf Ym8sICpkc3RfYm8sICpmYl9ibzsKLQlzdHJ1Y3QgaWd0X2ZiICpmYl9pbmZvID0gJm8tPmZiX2lu Zm9bby0+Y3VycmVudF9mYl9pZF07Ci0KLQlpZ3RfcmVxdWlyZShidWZtZ3IpOwotCi0Jc3JjX2Jv ID0gZHJtX2ludGVsX2JvX2FsbG9jKGJ1Zm1nciwgImR1bW15X2JvIiwgMjA0OCoyMDQ4KjQsIDQw OTYpOwotCWlndF9hc3NlcnQoc3JjX2JvKTsKLQotCWRzdF9ibyA9IGRybV9pbnRlbF9ib19hbGxv YyhidWZtZ3IsICJkdW1teV9ibyIsIDIwNDgqMjA0OCo0LCA0MDk2KTsKLQlpZ3RfYXNzZXJ0KGRz dF9ibyk7Ci0KLQlmYl9ibyA9IGdlbV9oYW5kbGVfdG9fbGliZHJtX2JvKGJ1Zm1nciwgZHJtX2Zk LCAiaW1wb3J0ZWQiLCBmYl9pbmZvLT5nZW1faGFuZGxlKTsKLQlpZ3RfYXNzZXJ0KGZiX2JvKTsK LQotCWZvciAoaSA9IDA7IGkgPCBsaW1pdDsgaSsrKSB7Ci0JCWJsaXRfY29weShkc3RfYm8sIHNy Y19ibywKLQkJCSAgMjA0OCwgMjA0OCwKLQkJCSAgMjA0OCo0LCAyMDQ4KjQpOwotCi0JCWlndF9z d2FwKHNyY19ibywgZHN0X2JvKTsKLQl9Ci0JYmxpdF9jb3B5KGZiX2JvLCBzcmNfYm8sCi0JCSAg bWluKG8tPmZiX3dpZHRoLCAyMDQ4KSwgbWluKG8tPmZiX2hlaWdodCwgMjA0OCksCi0JCSAgZmJf aW5mby0+c3RyaWRlLCAyMDQ4KjQpOwotCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoKGJhdGNoKTsK LQotCWlmICh0aW1lb3V0ID4gMCkKLQkJcmV0ID0gZHJtX2ludGVsX2dlbV9ib193YWl0KGZiX2Jv LCB0aW1lb3V0ICogTlNFQ19QRVJfU0VDKTsKLQotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShz cmNfYm8pOwotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShkc3RfYm8pOwotCWRybV9pbnRlbF9i b191bnJlZmVyZW5jZShmYl9ibyk7Ci0KLQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBl bWl0X2R1bW15X2xvYWRfX2JjcyhzdHJ1Y3QgdGVzdF9vdXRwdXQgKm8sIGludCBzZWNvbmRzKQot ewotCXN0YXRpYyBpbnQgb3BzX3Blcl9zZWM7Ci0KLQlpZiAob3BzX3Blcl9zZWMgPT0gMCkKLQkJ b3BzX3Blcl9zZWMgPSBjYWxpYnJhdGVfZHVtbXlfbG9hZChvLCAiYmNzIiwKLQkJCQkJCSAgIF9l bWl0X2R1bW15X2xvYWRfX2Jjcyk7Ci0KLQlfZW1pdF9kdW1teV9sb2FkX19iY3Mobywgc2Vjb25k cyAqIG9wc19wZXJfc2VjLCAwKTsKLX0KLQogc3RhdGljIHZvaWQgZW1pdF9mZW5jZV9zdHJlc3Mo c3RydWN0IHRlc3Rfb3V0cHV0ICpvKQogewogCWNvbnN0IGludCBudW1fZmVuY2VzID0gZ2VtX2F2 YWlsYWJsZV9mZW5jZXMoZHJtX2ZkKTsKQEAgLTMzOCw4MiArMjMyLDYgQEAgc3RhdGljIHZvaWQg ZW1pdF9mZW5jZV9zdHJlc3Moc3RydWN0IHRlc3Rfb3V0cHV0ICpvKQogCWZyZWUoZXhlYyk7CiB9 CiAKLXN0YXRpYyBpbnQgX2VtaXRfZHVtbXlfbG9hZF9fcmNzKHN0cnVjdCB0ZXN0X291dHB1dCAq bywgaW50IGxpbWl0LCBpbnQgdGltZW91dCkKLXsKLQljb25zdCBzdHJ1Y3QgaWd0X2ZiICpmYl9p bmZvID0gJm8tPmZiX2luZm9bby0+Y3VycmVudF9mYl9pZF07Ci0JaWd0X3JlbmRlcl9jb3B5ZnVu Y190IGNvcHlmdW5jOwotCXN0cnVjdCBpZ3RfYnVmIHNiWzNdLCAqc3JjLCAqZHN0LCAqZmI7Ci0J aW50IGksIHJldCA9IDA7Ci0KLQlpZ3RfcmVxdWlyZShidWZtZ3IpOwotCi0JY29weWZ1bmMgPSBp Z3RfZ2V0X3JlbmRlcl9jb3B5ZnVuYyhkZXZpZCk7Ci0JaWYgKGNvcHlmdW5jID09IE5VTEwpCi0J CXJldHVybiBfZW1pdF9kdW1teV9sb2FkX19iY3MobywgbGltaXQsIHRpbWVvdXQpOwotCi0Jc2Jb MF0uYm8gPSBkcm1faW50ZWxfYm9fYWxsb2MoYnVmbWdyLCAiZHVtbXlfYm8iLCAyMDQ4KjIwNDgq NCwgNDA5Nik7Ci0JaWd0X2Fzc2VydChzYlswXS5ibyk7Ci0Jc2JbMF0uc2l6ZSA9IHNiWzBdLmJv LT5zaXplOwotCXNiWzBdLnRpbGluZyA9IEk5MTVfVElMSU5HX05PTkU7Ci0Jc2JbMF0uZGF0YSA9 IE5VTEw7Ci0Jc2JbMF0ubnVtX3RpbGVzID0gc2JbMF0uYm8tPnNpemU7Ci0Jc2JbMF0uc3RyaWRl ID0gNCAqIDIwNDg7Ci0KLQlzYlsxXS5ibyA9IGRybV9pbnRlbF9ib19hbGxvYyhidWZtZ3IsICJk dW1teV9ibyIsIDIwNDgqMjA0OCo0LCA0MDk2KTsKLQlpZ3RfYXNzZXJ0KHNiWzFdLmJvKTsKLQlz YlsxXS5zaXplID0gc2JbMV0uYm8tPnNpemU7Ci0Jc2JbMV0udGlsaW5nID0gSTkxNV9USUxJTkdf Tk9ORTsKLQlzYlsxXS5kYXRhID0gTlVMTDsKLQlzYlsxXS5udW1fdGlsZXMgPSBzYlsxXS5iby0+ c2l6ZTsKLQlzYlsxXS5zdHJpZGUgPSA0ICogMjA0ODsKLQotCXNiWzJdLmJvID0gZ2VtX2hhbmRs ZV90b19saWJkcm1fYm8oYnVmbWdyLCBkcm1fZmQsICJpbXBvcnRlZCIsIGZiX2luZm8tPmdlbV9o YW5kbGUpOwotCWlndF9hc3NlcnQoc2JbMl0uYm8pOwotCXNiWzJdLnNpemUgPSBzYlsyXS5iby0+ c2l6ZTsKLQlzYlsyXS50aWxpbmcgPSBpZ3RfZmJfbW9kX3RvX3RpbGluZyhmYl9pbmZvLT50aWxp bmcpOwotCXNiWzJdLmRhdGEgPSBOVUxMOwotCXNiWzJdLm51bV90aWxlcyA9IHNiWzJdLmJvLT5z aXplOwotCXNiWzJdLnN0cmlkZSA9IGZiX2luZm8tPnN0cmlkZTsKLQotCXNyYyA9ICZzYlswXTsK LQlkc3QgPSAmc2JbMV07Ci0JZmIgPSAmc2JbMl07Ci0KLQlmb3IgKGkgPSAwOyBpIDwgbGltaXQ7 IGkrKykgewotCQljb3B5ZnVuYyhiYXRjaCwgTlVMTCwKLQkJCSBzcmMsIDAsIDAsCi0JCQkgMjA0 OCwgMjA0OCwKLQkJCSBkc3QsIDAsIDApOwotCi0JCWlndF9zd2FwKHNyYywgZHN0KTsKLQl9Ci0J Y29weWZ1bmMoYmF0Y2gsIE5VTEwsCi0JCSBzcmMsIDAsIDAsCi0JCSBtaW4oby0+ZmJfd2lkdGgs IDIwNDgpLCBtaW4oby0+ZmJfaGVpZ2h0LCAyMDQ4KSwKLQkJIGZiLCAwLCAwKTsKLQlpbnRlbF9i YXRjaGJ1ZmZlcl9mbHVzaChiYXRjaCk7Ci0KLQlpZiAodGltZW91dCA+IDApCi0JCXJldCA9IGRy bV9pbnRlbF9nZW1fYm9fd2FpdChmYi0+Ym8sIHRpbWVvdXQgKiBOU0VDX1BFUl9TRUMpOwotCi0J ZHJtX2ludGVsX2JvX3VucmVmZXJlbmNlKHNiWzBdLmJvKTsKLQlkcm1faW50ZWxfYm9fdW5yZWZl cmVuY2Uoc2JbMV0uYm8pOwotCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShzYlsyXS5ibyk7Ci0K LQlyZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgdm9pZCBlbWl0X2R1bW15X2xvYWRfX3JjcyhzdHJ1 Y3QgdGVzdF9vdXRwdXQgKm8sIGludCBzZWNvbmRzKQotewotCXN0YXRpYyBpbnQgb3BzX3Blcl9z ZWM7Ci0KLQlpZiAob3BzX3Blcl9zZWMgPT0gMCkKLQkJb3BzX3Blcl9zZWMgPSBjYWxpYnJhdGVf ZHVtbXlfbG9hZChvLCAicmNzIiwKLQkJCQkJCSAgIF9lbWl0X2R1bW15X2xvYWRfX3Jjcyk7Ci0K LQlfZW1pdF9kdW1teV9sb2FkX19iY3Mobywgc2Vjb25kcyAqIG9wc19wZXJfc2VjLCAwKTsKLX0K LQogc3RhdGljIHZvaWQgZHBtc19vZmZfb3RoZXJfb3V0cHV0cyhzdHJ1Y3QgdGVzdF9vdXRwdXQg Km8pCiB7CiAJaW50IGksIG47CkBAIC04NTIsNiArNjcwLDggQEAgc3RhdGljIHVuc2lnbmVkIGlu dCBydW5fdGVzdF9zdGVwKHN0cnVjdCB0ZXN0X291dHB1dCAqbykKIAlzdHJ1Y3QgdmJsYW5rX3Jl cGx5IHZibF9yZXBseTsKIAl1bnNpZ25lZCBpbnQgdGFyZ2V0X3NlcTsKIAlpZ3RfaGFuZ190IGhh bmc7CisJaWd0X3NwaW5fdCAqc3Bpbl9yY3MgPSAwOworCWlndF9zcGluX3QgKnNwaW5fYmNzID0g MDsKIAogCXRhcmdldF9zZXEgPSBvLT52Ymxhbmtfc3RhdGUuc2VxX3N0ZXA7CiAJLyogQWJzb2x1 dGUgd2FpdHMgb25seSB3b3JrcyBvbmNlIHdlIGhhdmUgYSBmcmFtZSBjb3VudGVyLiAqLwpAQCAt ODc0LDEwICs2OTQsMTIgQEAgc3RhdGljIHVuc2lnbmVkIGludCBydW5fdGVzdF9zdGVwKHN0cnVj dCB0ZXN0X291dHB1dCAqbykKIAkJby0+Y3VycmVudF9mYl9pZCA9ICFvLT5jdXJyZW50X2ZiX2lk OwogCiAJaWYgKG8tPmZsYWdzICYgVEVTVF9XSVRIX0RVTU1ZX0JDUykKLQkJZW1pdF9kdW1teV9s b2FkX19iY3MobywgMSk7CisJCXNwaW5fYmNzID0gaWd0X3NwaW5fYmF0Y2hfbmV3KGRybV9mZCwg LTEsIEk5MTVfRVhFQ19CTFQsCisJCQkJCSAgICAgIG8tPmZiX2luZm9bby0+Y3VycmVudF9mYl9p ZF0uZ2VtX2hhbmRsZSk7CiAKIAlpZiAoby0+ZmxhZ3MgJiBURVNUX1dJVEhfRFVNTVlfUkNTKQot CQllbWl0X2R1bW15X2xvYWRfX3JjcyhvLCAxKTsKKwkJc3Bpbl9yY3MgPSBpZ3Rfc3Bpbl9iYXRj aF9uZXcoZHJtX2ZkLCAtMSwgSTkxNV9FWEVDX1JFTkRFUiwKKwkJCQkJICAgICAgby0+ZmJfaW5m b1tvLT5jdXJyZW50X2ZiX2lkXS5nZW1faGFuZGxlKTsKIAogCWlmIChvLT5mbGFncyAmIFRFU1Rf RkJfUkVDUkVBVEUpCiAJCXJlY3JlYXRlX2ZiKG8pOwpAQCAtOTMzLDggKzc1NSwxMyBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IHJ1bl90ZXN0X3N0ZXAoc3RydWN0IHRlc3Rfb3V0cHV0ICpvKQogCWlm IChvLT5mbGFncyAmIFRFU1RfTU9ERVNFVCkKIAkJaWd0X2Fzc2VydChzZXRfbW9kZShvLCBvLT5m Yl9pZHNbby0+Y3VycmVudF9mYl9pZF0sIDAsIDApID09IDApOwogCi0JaWYgKG8tPmZsYWdzICYg VEVTVF9EUE1TKQorCWlmIChvLT5mbGFncyAmIFRFU1RfRFBNUykgeworCQlpZiAoc3Bpbl9yY3Mp CisJCQlpZ3Rfc3Bpbl9iYXRjaF9leGl0KHNwaW5fcmNzKTsKKwkJaWYgKHNwaW5fYmNzKQorCQkJ aWd0X3NwaW5fYmF0Y2hfZXhpdChzcGluX2Jjcyk7CiAJCXNldF9kcG1zKG8sIERSTV9NT0RFX0RQ TVNfT04pOworCX0KIAogCWlmIChvLT5mbGFncyAmIFRFU1RfVkJMQU5LX1JBQ0UpIHsKIAkJc3Ry dWN0IHZibGFua19yZXBseSByZXBseTsKQEAgLTk2Nyw4ICs3OTQsMTMgQEAgc3RhdGljIHVuc2ln bmVkIGludCBydW5fdGVzdF9zdGVwKHN0cnVjdCB0ZXN0X291dHB1dCAqbykKIAkJaWd0X2Fzc2Vy dChfX3dhaXRfZm9yX3ZibGFuayhURVNUX1ZCTEFOS19CTE9DSywgby0+cGlwZSwgMSwgMCwgJnJl cGx5KSA9PSAwKTsKIAl9CiAKLQlpZiAoZG9fZmxpcCkKKwlpZiAoZG9fZmxpcCkgewogCQlkb19v cl9kaWUoZG9fcGFnZV9mbGlwKG8sIG5ld19mYl9pZCwgIShvLT5mbGFncyAmIFRFU1RfTk9FVkVO VCkpKTsKKwkJaWYgKHNwaW5fcmNzKQorCQkJaWd0X3NwaW5fYmF0Y2hfZXhpdChzcGluX3Jjcyk7 CisJCWlmIChzcGluX2JjcykKKwkJCWlndF9zcGluX2JhdGNoX2V4aXQoc3Bpbl9iY3MpOworCX0K IAogCWlmIChvLT5mbGFncyAmIFRFU1RfRkVOQ0VfU1RSRVNTKQogCQllbWl0X2ZlbmNlX3N0cmVz cyhvKTsKQEAgLTk4Miw3ICs4MTQsMTUgQEAgc3RhdGljIHVuc2lnbmVkIGludCBydW5fdGVzdF9z dGVwKHN0cnVjdCB0ZXN0X291dHB1dCAqbykKIAkJCQkgICAgICB2YmxfcmVwbHkudHMudHZfdXNl Yyk7CiAJCQljb21wbGV0ZWRfZXZlbnRzID0gRVZFTlRfVkJMQU5LOwogCQl9CisJCWlmIChzcGlu X3JjcykKKwkJCWlndF9zcGluX2JhdGNoX2V4aXQoc3Bpbl9yY3MpOworCQlpZiAoc3Bpbl9iY3Mp CisJCQlpZ3Rfc3Bpbl9iYXRjaF9leGl0KHNwaW5fYmNzKTsKIAl9CisJaWYgKHNwaW5fcmNzKQor CQlpZ3Rfc3Bpbl9iYXRjaF9mcmVlKGRybV9mZCwgc3Bpbl9yY3MpOworCWlmIChzcGluX2JjcykK KwkJaWd0X3NwaW5fYmF0Y2hfZnJlZShkcm1fZmQsIHNwaW5fYmNzKTsKIAogCWlmIChkb19mbGlw ICYmIChvLT5mbGFncyAmIFRFU1RfRUJVU1kpKQogCQlpZ3RfYXNzZXJ0KGRvX3BhZ2VfZmxpcChv LCBuZXdfZmJfaWQsIHRydWUpID09IC1FQlVTWSk7Ci0tIAoyLjcuNAoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==