From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Mika Kuoppala Date: Wed, 13 Nov 2019 17:49:09 +0200 Message-Id: <20191113154913.8787-3-mika.kuoppala@linux.intel.com> In-Reply-To: <20191113154913.8787-1-mika.kuoppala@linux.intel.com> References: <20191113154913.8787-1-mika.kuoppala@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t 3/7] lib/i915: Add query to detect if engine accepts only ro batches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org, Kuoppala@rosetta.fi.intel.com List-ID: RnJvbTogIkt1b3BwYWxhLCBNaWthIiA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+CgpJZiBjbWQg cGFyc2VyIGlzIG1hbmRhdG9yeSwgYmF0Y2ggY2FuJ3QgYmUgbW9kaWZpZWQgcG9zdCBleGVjYnVm LgpTb21lIHRlc3RzIHJlbHkgb24gbW9kaWZ5aW5nIGJhdGNoIHBvc3QgZXhlY2J1Zi4gR2l2ZSB0 aG9zZQp0ZXN0cyBhIG1ldGhvZCB0byBxdWVyeSBpZiB0aG9zZSBtb2RpZmljYXRpb25zIGV2ZXIg cmVhY2gKdGhlIGFjdHVhbCBlbmdpbmUgY29tbWFuZCBzdHJlYW0uCgp2MjogcHVsbCBpbiB0aGUg dGVzdCBjaGFuZ2VzLCBkb2gKdjM6IGNsYXNzIGJhc2VkIHF1ZXJ5CnY0OiByZWJhc2UKClNpZ25l ZC1vZmYtYnk6IEt1b3BwYWxhLCBNaWthIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KLS0tCiBs aWIvaTkxNS9nZW1fc3VibWlzc2lvbi5jICAgICAgfCA2MiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiBsaWIvaTkxNS9nZW1fc3VibWlzc2lvbi5oICAgICAgfCAgMiArKwogdGVz dHMvaTkxNS9nZW1fYnVzeS5jICAgICAgICAgIHwgIDcgKysrLQogdGVzdHMvaTkxNS9nZW1fZXhl Y19hc3luYy5jICAgIHwgIDMgKysKIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfYXdhaXQuYyAgICB8ICA3 ICsrKy0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfZmVuY2UuYyAgICB8ICA4ICsrKysrCiB0ZXN0cy9p OTE1L2dlbV9leGVjX2xhdGVuY3kuYyAgfCAgNyArKysrCiB0ZXN0cy9pOTE1L2dlbV9leGVjX25v cC5jICAgICAgfCAgNCArKy0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYyB8ICA2ICsr Ky0KIHRlc3RzL2k5MTUvZ2VtX2V4ZWNfd2hpc3Blci5jICB8ICA0ICsrLQogdGVzdHMvcHJpbWVf YnVzeS5jICAgICAgICAgICAgIHwgIDMgKysKIHRlc3RzL3ByaW1lX3ZnZW0uYyAgICAgICAgICAg ICB8ICA2ICsrKysKIDEyIGZpbGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9zdWJtaXNzaW9uLmMgYi9saWIvaTkx NS9nZW1fc3VibWlzc2lvbi5jCmluZGV4IDRmOTQ2NDkzLi45YmRmMjhiYyAxMDA2NDQKLS0tIGEv bGliL2k5MTUvZ2VtX3N1Ym1pc3Npb24uYworKysgYi9saWIvaTkxNS9nZW1fc3VibWlzc2lvbi5j CkBAIC02NCw2ICs2NCwyMiBAQCBzdGF0aWMgYm9vbCBoYXNfc2VtYXBob3JlcyhpbnQgZmQsIGlu dCBkaXIpCiAJcmV0dXJuIHZhbDsKIH0KIAorc3RhdGljIGludCBjbWRfcGFyc2VyX3ZlcnNpb24o aW50IGZkKQoreworCWludCB2YWwgPSAwOworCXN0cnVjdCBkcm1faTkxNV9nZXRwYXJhbSBncCA9 IHsKKwkJZ3AucGFyYW0gPSBJOTE1X1BBUkFNX0NNRF9QQVJTRVJfVkVSU0lPTiwKKwkJZ3AudmFs dWUgPSAmdmFsLAorCX07CisKKwlpZiAoaW9jdGwoZmQsIERSTV9JT0NUTF9JOTE1X0dFVFBBUkFN LCAmZ3ApIDwgMCkgeworCQl2YWwgPSAtZXJybm87CisJCWlndF9hc3NlcnQodmFsIDwgMCk7CisJ fQorCisJcmV0dXJuIHZhbDsKK30KKwogLyoqCiAgKiBnZW1fc3VibWlzc2lvbl9tZXRob2Q6CiAg KiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9yCkBAIC0yNTMsMyArMjY5LDQ5IEBA IHZvaWQgZ2VtX3JlcXVpcmVfYmxpdHRlcihpbnQgaTkxNSkKIHsKIAlpZ3RfcmVxdWlyZShnZW1f aGFzX2JsaXR0ZXIoaTkxNSkpOwogfQorCitzdGF0aWMgYm9vbCBnZW1fZW5naW5lX2hhc19pbW11 dGFibGVfc3VibWlzc2lvbihpbnQgaTkxNSwgaW50IGNsYXNzKQoreworCWNvbnN0IGludCBnZW4g PSBpbnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChpOTE1KSk7CisgICAgICAgIGludCBwYXJz ZXJfdmVyc2lvbjsKKworCXBhcnNlcl92ZXJzaW9uID0gY21kX3BhcnNlcl92ZXJzaW9uKGk5MTUp OworCisJaWYgKHBhcnNlcl92ZXJzaW9uIDwgMCkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKGdl biA9PSA5ICYmIGNsYXNzID09IEk5MTVfRU5HSU5FX0NMQVNTX0NPUFkgJiYgcGFyc2VyX3ZlcnNp b24gPiA5KQorCQlyZXR1cm4gdHJ1ZTsKKworCXJldHVybiBmYWxzZTsKK30KKworCisvKioKKyAq IGdlbV9jbGFzc19oYXNfbXV0YWJsZV9zdWJtaXNzaW9uOgorICogQGk5MTU6IG9wZW4gaTkxNSBk cm0gZmlsZSBkZXNjcmlwdG9yCisgKiBAY2xhc3M6IGVuZ2luZSBjbGFzcworICoKKyAqIFJldHVy bnMgYm9vbGVhbiB2YWx1ZSBpZiB0aGUgZW5naW5lIGNsYXNzIGFsbG93cyBiYXRjaCBtb2RpZmlj YXRpb25zCisgKiBwb3N0IGV4ZWNidWYuCisgKi8KKworYm9vbAorZ2VtX2NsYXNzX2hhc19tdXRh YmxlX3N1Ym1pc3Npb24oaW50IGZkLCBpbnQgY2xhc3MpCit7CisJcmV0dXJuICFnZW1fZW5naW5l X2hhc19pbW11dGFibGVfc3VibWlzc2lvbihmZCwgY2xhc3MpOworfQorCisvKioKKyAqIGdlbV9l bmdpbmVfaGFzX211dGFibGVfc3VibWlzc2lvbjoKKyAqIEBpOTE1OiBvcGVuIGk5MTUgZHJtIGZp bGUgZGVzY3JpcHRvcgorICogQGVuZ2luZTogdGhlIGVuZ2luZSAoSTkxNV9FWEVDX1JJTkcgaWQp IG9mIHRhcmdldAorICoKKyAqIFJldHVybnMgYm9vbGVhbiB2YWx1ZSBpZiB0aGUgZW5naW5lIGFs bG93cyBiYXRjaCBtb2RpZmljYXRpb25zCisgKiBwb3N0IGV4ZWNidWYuCisgKi8KK2Jvb2wgZ2Vt X2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGludCBpOTE1LCB1bnNpZ25lZCBpbnQgZW5n aW5lKQoreworCXJldHVybiBnZW1fY2xhc3NfaGFzX211dGFibGVfc3VibWlzc2lvbihpOTE1LAor CQkJCQkJZ2VtX2V4ZWNidWZfZmxhZ3NfdG9fZW5naW5lX2NsYXNzKGVuZ2luZSkpOworfQpkaWZm IC0tZ2l0IGEvbGliL2k5MTUvZ2VtX3N1Ym1pc3Npb24uaCBiL2xpYi9pOTE1L2dlbV9zdWJtaXNz aW9uLmgKaW5kZXggNmRlYjdlMmQuLmFjZDI0YmNiIDEwMDY0NAotLS0gYS9saWIvaTkxNS9nZW1f c3VibWlzc2lvbi5oCisrKyBiL2xpYi9pOTE1L2dlbV9zdWJtaXNzaW9uLmgKQEAgLTM0LDYgKzM0 LDggQEAgdm9pZCBnZW1fc3VibWlzc2lvbl9wcmludF9tZXRob2QoaW50IGZkKTsKIGJvb2wgZ2Vt X2hhc19zZW1hcGhvcmVzKGludCBmZCk7CiBib29sIGdlbV9oYXNfZXhlY2xpc3RzKGludCBmZCk7 CiBib29sIGdlbV9oYXNfZ3VjX3N1Ym1pc3Npb24oaW50IGZkKTsKK2Jvb2wgZ2VtX2VuZ2luZV9o YXNfbXV0YWJsZV9zdWJtaXNzaW9uKGludCBmZCwgdW5zaWduZWQgaW50IGVuZ2luZSk7Citib29s IGdlbV9jbGFzc19oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGludCBmZCwgaW50IGNsYXNzKTsKIAog aW50IGdlbV9jbWRwYXJzZXJfdmVyc2lvbihpbnQgaTkxNSwgdWludDMyX3QgZW5naW5lKTsKIHN0 YXRpYyBpbmxpbmUgYm9vbCBnZW1faGFzX2NtZHBhcnNlcihpbnQgaTkxNSwgdWludDMyX3QgZW5n aW5lKQpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fYnVzeS5jIGIvdGVzdHMvaTkxNS9nZW1f YnVzeS5jCmluZGV4IGE4Mzg4MTQ5Li5iODRlMmJkMSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9n ZW1fYnVzeS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2J1c3kuYwpAQCAtMjQzLDYgKzI0MywxMCBA QCBzdGF0aWMgdm9pZCBvbmUoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2Vu Z2luZTIgKmUsIHVuc2lnbmVkIHRlc3RfZgogCWkrKzsKIAogCWlndF9hc3NlcnQoaSA8IHNpemUv c2l6ZW9mKCpiYXRjaCkpOworCisJaWYgKCh0ZXN0X2ZsYWdzICYgSEFORykgPT0gMCkKKwkJaWd0 X3JlcXVpcmUoZ2VtX2NsYXNzX2hhc19tdXRhYmxlX3N1Ym1pc3Npb24oZmQsIGUtPmNsYXNzKSk7 CisKIAlpZ3RfcmVxdWlyZShfX2dlbV9leGVjYnVmKGZkLCAmZXhlY2J1ZikgPT0gMCk7CiAKIAlf X2dlbV9idXN5KGZkLCBvYmpbU0NSQVRDSF0uaGFuZGxlLCAmcmVhZFtTQ1JBVENIXSwgJndyaXRl W1NDUkFUQ0hdKTsKQEAgLTI1Niw3ICsyNjAsOCBAQCBzdGF0aWMgdm9pZCBvbmUoaW50IGZkLCBj b25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIHVuc2lnbmVkIHRlc3RfZgog CQkJICAgIGUyLT5pbnN0YW5jZSA9PSBlLT5pbnN0YW5jZSkKIAkJCQljb250aW51ZTsKIAotCQkJ aWYgKCFnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlMi0+Y2xhc3MpKQorCQkJaWYgKCFn ZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlMi0+Y2xhc3MpIHx8CisJCQkgICAgIWdlbV9j bGFzc19oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGZkLCBlMi0+Y2xhc3MpKQogCQkJCWNvbnRpbnVl OwogCiAJCQlpZ3RfZGVidWcoIlRlc3RpbmcgJXMgaW4gcGFyYWxsZWxcbiIsIGUyLT5uYW1lKTsK ZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYXN5bmMuYyBiL3Rlc3RzL2k5MTUvZ2Vt X2V4ZWNfYXN5bmMuYwppbmRleCBkODNlOWY2ZC4uYjk4NTlmZmEgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L2k5MTUvZ2VtX2V4ZWNfYXN5bmMuYworKysgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2FzeW5jLmMK QEAgLTEzOCw2ICsxMzgsOSBAQCBzdGF0aWMgdm9pZCBvbmUoaW50IGZkLCB1bnNpZ25lZCByaW5n LCB1aW50MzJfdCBmbGFncykKIAlleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVy KG9iaik7CiAJZXhlY2J1Zi5idWZmZXJfY291bnQgPSAyOwogCWV4ZWNidWYuZmxhZ3MgPSByaW5n IHwgZmxhZ3M7CisKKwlpZ3RfcmVxdWlyZShnZW1fZW5naW5lX2hhc19tdXRhYmxlX3N1Ym1pc3Np b24oZmQsIHJpbmcpKTsKKwogCWlndF9yZXF1aXJlKF9fZ2VtX2V4ZWNidWYoZmQsICZleGVjYnVm KSA9PSAwKTsKIAlnZW1fY2xvc2UoZmQsIG9ialtCQVRDSF0uaGFuZGxlKTsKIApkaWZmIC0tZ2l0 IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19hd2FpdC5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19hd2Fp dC5jCmluZGV4IDMzZTJlZTQ1Li43ODE3YjQ4MyAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1f ZXhlY19hd2FpdC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfYXdhaXQuYwpAQCAtNzgsOCAr NzgsMTMgQEAgc3RhdGljIHZvaWQgd2lkZShpbnQgZmQsIGludCByaW5nX3NpemUsIGludCB0aW1l b3V0LCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAJZG91YmxlIHRpbWU7CiAKIAluZW5naW5lID0gMDsK LQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZSwgZmQpCisJZm9yX2VhY2hfcGh5c2ljYWxfZW5n aW5lKGUsIGZkKSB7CisJCWlmICghZ2VtX2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGZk LCBlYl9yaW5nKGUpKSkKKwkJCWNvbnRpbnVlOworCiAJCWVuZ2luZXNbbmVuZ2luZSsrXSA9IGVi X3JpbmcoZSk7CisJfQorCiAJaWd0X3JlcXVpcmUobmVuZ2luZSk7CiAKIAlleGVjID0gY2FsbG9j KG5lbmdpbmUsIHNpemVvZigqZXhlYykpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhl Y19mZW5jZS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19mZW5jZS5jCmluZGV4IDAwMjEyMGJmLi5m YmIxMWFiMiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19mZW5jZS5jCisrKyBiL3Rl c3RzL2k5MTUvZ2VtX2V4ZWNfZmVuY2UuYwpAQCAtMTI5LDYgKzEyOSw5IEBAIHN0YXRpYyB2b2lk IHRlc3RfZmVuY2VfYnVzeShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQog CXVpbnQzMl90ICpiYXRjaDsKIAlpbnQgZmVuY2UsIGksIHRpbWVvdXQ7CiAKKwlpZiAoKGZsYWdz ICYgSEFORykgPT0gMCkKKwkJaWd0X3JlcXVpcmUoZ2VtX2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJt aXNzaW9uKGZkLCByaW5nKSk7CisKIAlnZW1fcXVpZXNjZW50X2dwdShmZCk7CiAKIAltZW1zZXQo JmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7CkBAIC0yNjUsNiArMjY4LDggQEAgc3RhdGlj IHZvaWQgdGVzdF9mZW5jZV9idXN5X2FsbChpbnQgZmQsIHVuc2lnbmVkIGZsYWdzKQogCWZvcl9l YWNoX2VuZ2luZShlLCBmZCkgewogCQlpbnQgZmVuY2UsIG5ldzsKIAorCQlpZiAoKGZsYWdzICYg SEFORykgPT0gMCkKKwkJCWlndF9yZXF1aXJlKGdlbV9lbmdpbmVfaGFzX211dGFibGVfc3VibWlz c2lvbihmZCwgZWJfcmluZyhlKSkpOwogCQlleGVjYnVmLmZsYWdzID0gZWJfcmluZyhlKSB8IExP Q0FMX0VYRUNfRkVOQ0VfT1VUOwogCQlleGVjYnVmLnJzdmQyID0gLTE7CiAJCWdlbV9leGVjYnVm X3dyKGZkLCAmZXhlY2J1Zik7CkBAIC0zMjEsNiArMzI2LDkgQEAgc3RhdGljIHZvaWQgdGVzdF9m ZW5jZV9hd2FpdChpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQogCXVpbnQz Ml90ICpvdXQ7CiAJaW50IGk7CiAKKwlpZiAoKGZsYWdzICYgSEFORykgPT0gMCkKKwkJaWd0X3Jl cXVpcmUoZ2VtX2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGZkLCByaW5nKSk7CisKIAlp Z3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCAwKSk7CiAKIAlvdXQgPSBnZW1fbW1h cF9fd2MoZmQsIHNjcmF0Y2gsIDAsIDQwOTYsIFBST1RfV1JJVEUpOwpkaWZmIC0tZ2l0IGEvdGVz dHMvaTkxNS9nZW1fZXhlY19sYXRlbmN5LmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3ku YwppbmRleCAzZDk5MTgyYS4uZTRjMGM4NjIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2V4 ZWNfbGF0ZW5jeS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jCkBAIC0xMjgs NiArMTI4LDggQEAgc3RhdGljIHZvaWQgbGF0ZW5jeV9vbl9yaW5nKGludCBmZCwKIAlkb3VibGUg Z3B1X2xhdGVuY3k7CiAJaW50IGksIGo7CiAKKwlpZ3RfcmVxdWlyZShnZW1fZW5naW5lX2hhc19t dXRhYmxlX3N1Ym1pc3Npb24oZmQsIHJpbmcpKTsKKwogCXJlZyA9ICh2b2xhdGlsZSB1aW50MzJf dCAqKSgodm9sYXRpbGUgY2hhciAqKWlndF9nbG9iYWxfbW1pbyArIFJDU19USU1FU1RBTVApOwog CiAJbWVtc2V0KCZleGVjYnVmLCAwLCBzaXplb2YoZXhlY2J1ZikpOwpAQCAtMjcxLDYgKzI3Myw4 IEBAIHN0YXRpYyB2b2lkIGxhdGVuY3lfZnJvbV9yaW5nKGludCBmZCwKIAl1aW50MzJfdCBjdHhb Ml0gPSB7fTsKIAlpbnQgaSwgajsKIAorCWlndF9yZXF1aXJlKGdlbV9lbmdpbmVfaGFzX211dGFi bGVfc3VibWlzc2lvbihmZCwgcmluZykpOworCiAJaWYgKGZsYWdzICYgUFJFRU1QVCkgewogCQlj dHhbMF0gPSBnZW1fY29udGV4dF9jcmVhdGUoZmQpOwogCQlnZW1fY29udGV4dF9zZXRfcHJpb3Jp dHkoZmQsIGN0eFswXSwgLTEwMjMpOwpAQCAtMzE2LDYgKzMyMCw5IEBAIHN0YXRpYyB2b2lkIGxh dGVuY3lfZnJvbV9yaW5nKGludCBmZCwKIAkJaWd0X3NwaW5fdCAqc3BpbiA9IE5VTEw7CiAJCUlH VF9DT1JLX0hBTkRMRShjKTsKIAorCQlpZiAoIWdlbV9lbmdpbmVfaGFzX211dGFibGVfc3VibWlz c2lvbihmZCwgZWJfcmluZyhlKSkpCisJCQljb250aW51ZTsKKwogCQlnZW1fc2V0X2RvbWFpbihm ZCwgb2JqWzJdLmhhbmRsZSwKIAkJCSAgICAgICBJOTE1X0dFTV9ET01BSU5fR1RULAogCQkJICAg ICAgIEk5MTVfR0VNX0RPTUFJTl9HVFQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhl Y19ub3AuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbm9wLmMKaW5kZXggMmFkOGFlZWEuLmRiZWRi MzU2IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX25vcC5jCisrKyBiL3Rlc3RzL2k5 MTUvZ2VtX2V4ZWNfbm9wLmMKQEAgLTEyMyw2ICsxMjMsNyBAQCBzdGF0aWMgdm9pZCBwb2xsX3Jp bmcoaW50IGZkLCB1bnNpZ25lZCBlbmdpbmUsIGNvbnN0IGNoYXIgKm5hbWUsIGludCB0aW1lb3V0 KQogCiAJZ2VtX3JlcXVpcmVfcmluZyhmZCwgZW5naW5lKTsKIAlpZ3RfcmVxdWlyZShnZW1fY2Fu X3N0b3JlX2R3b3JkKGZkLCBlbmdpbmUpKTsKKwlpZ3RfcmVxdWlyZShnZW1fZW5naW5lX2hhc19t dXRhYmxlX3N1Ym1pc3Npb24oZmQsIGVuZ2luZSkpOwogCiAJbWVtc2V0KCZvYmosIDAsIHNpemVv ZihvYmopKTsKIAlvYmouaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CkBAIC0yMzQsNyAr MjM1LDggQEAgc3RhdGljIHZvaWQgcG9sbF9zZXF1ZW50aWFsKGludCBmZCwgY29uc3QgY2hhciAq bmFtZSwgaW50IHRpbWVvdXQpCiAKIAluZW5naW5lID0gMDsKIAlmb3JfZWFjaF9waHlzaWNhbF9l bmdpbmUoZSwgZmQpIHsKLQkJaWYgKCFnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlYl9yaW5nKGUp KSkKKwkJaWYgKCFnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlYl9yaW5nKGUpKSB8fAorCQkgICAg IWdlbV9lbmdpbmVfaGFzX211dGFibGVfc3VibWlzc2lvbihmZCwgZWJfcmluZyhlKSkpCiAJCQlj b250aW51ZTsKIAogCQllbmdpbmVzW25lbmdpbmUrK10gPSBlYl9yaW5nKGUpOwpkaWZmIC0tZ2l0 IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19zY2hlZHVsZS5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19z Y2hlZHVsZS5jCmluZGV4IDVjMTVmMTc3Li5jYTZiZWY2YSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkx NS9nZW1fZXhlY19zY2hlZHVsZS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUu YwpAQCAtNjUyLDcgKzY1Miw4IEBAIHN0YXRpYyB2b2lkIHNlbWFwaG9yZV9ub3NraXAoaW50IGk5 MTUpCiAJCWlndF9zcGluX3QgKmNoYWluLCAqc3BpbjsKIAogCQlpZiAoZWJfcmluZyhpbm5lcikg PT0gZWJfcmluZyhvdXRlcikgfHwKLQkJICAgICFnZW1fY2FuX3N0b3JlX2R3b3JkKGk5MTUsIGVi X3JpbmcoaW5uZXIpKSkKKwkJICAgICFnZW1fY2FuX3N0b3JlX2R3b3JkKGk5MTUsIGViX3Jpbmco aW5uZXIpKSB8fAorCQkgICAgIWdlbV9lbmdpbmVfaGFzX211dGFibGVfc3VibWlzc2lvbihpOTE1 LCBlYl9yaW5nKGlubmVyKSkpCiAJCQljb250aW51ZTsKIAogCQljaGFpbiA9IF9faWd0X3NwaW5f bmV3KGk5MTUsIC5lbmdpbmUgPSBlYl9yaW5nKG91dGVyKSk7CkBAIC0xMTU3LDYgKzExNTgsOSBA QCBzdGF0aWMgdm9pZCBkZWVwKGludCBmZCwgdW5zaWduZWQgcmluZykKIAlpbnQgZGVwX25yZXE7 CiAJaW50IG47CiAKKwlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCByaW5nKSk7 CisJaWd0X3JlcXVpcmUoZ2VtX2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGZkLCByaW5n KSk7CisKIAljdHggPSBtYWxsb2Moc2l6ZW9mKCpjdHgpICogTUFYX0NPTlRFWFRTKTsKIAlmb3Ig KG4gPSAwOyBuIDwgTUFYX0NPTlRFWFRTOyBuKyspIHsKIAkJY3R4W25dID0gZ2VtX2NvbnRleHRf Y3JlYXRlKGZkKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfd2hpc3Blci5jIGIv dGVzdHMvaTkxNS9nZW1fZXhlY193aGlzcGVyLmMKaW5kZXggYTMzODQ3NjAuLjQ1Y2MxNDM3IDEw MDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX3doaXNwZXIuYworKysgYi90ZXN0cy9pOTE1 L2dlbV9leGVjX3doaXNwZXIuYwpAQCAtMjA0LDEzICsyMDQsMTUgQEAgc3RhdGljIHZvaWQgd2hp c3BlcihpbnQgZmQsIHVuc2lnbmVkIGVuZ2luZSwgdW5zaWduZWQgZmxhZ3MpCiAJbmVuZ2luZSA9 IDA7CiAJaWYgKGVuZ2luZSA9PSBBTExfRU5HSU5FUykgewogCQlmb3JfZWFjaF9waHlzaWNhbF9l bmdpbmUoZSwgZmQpIHsKLQkJCWlmIChnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlYl9yaW5nKGUp KSkKKwkJCWlmIChnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlYl9yaW5nKGUpKSAmJgorCQkJICAg IGdlbV9lbmdpbmVfaGFzX211dGFibGVfc3VibWlzc2lvbihmZCwgZWJfcmluZyhlKSkpCiAJCQkJ ZW5naW5lc1tuZW5naW5lKytdID0gZWJfcmluZyhlKTsKIAkJfQogCX0gZWxzZSB7CiAJCWlndF9h c3NlcnQoIShmbGFncyAmIEFMTCkpOwogCQlpZ3RfcmVxdWlyZShnZW1faGFzX3JpbmcoZmQsIGVu Z2luZSkpOwogCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlbmdpbmUpKTsK KwkJaWd0X3JlcXVpcmUoZ2VtX2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGZkLCBlbmdp bmUpKTsKIAkJZW5naW5lc1tuZW5naW5lKytdID0gZW5naW5lOwogCX0KIAlpZ3RfcmVxdWlyZShu ZW5naW5lKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL3ByaW1lX2J1c3kuYyBiL3Rlc3RzL3ByaW1lX2J1 c3kuYwppbmRleCA4ZWUyM2JiMy4uYmIyOTIxNmUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3ByaW1lX2J1 c3kuYworKysgYi90ZXN0cy9wcmltZV9idXN5LmMKQEAgLTUzLDYgKzUzLDkgQEAgc3RhdGljIHZv aWQgYnVzeShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQogCXVpbnQzMl90 ICpiYXRjaCwgKmJiZTsKIAlpbnQgaSwgY291bnQsIHRpbWVvdXQ7CiAKKwlpZiAoKGZsYWdzICYg SEFORykgPT0gMCkKKwkJaWd0X3JlcXVpcmUoZ2VtX2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJtaXNz aW9uKGZkLCByaW5nKSk7CisKIAlnZW1fcXVpZXNjZW50X2dwdShmZCk7CiAKIAltZW1zZXQoJmV4 ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7CmRpZmYgLS1naXQgYS90ZXN0cy9wcmltZV92Z2Vt LmMgYi90ZXN0cy9wcmltZV92Z2VtLmMKaW5kZXggMmIyMWZmNDEuLjA0Y2M5MTNkIDEwMDY0NAot LS0gYS90ZXN0cy9wcmltZV92Z2VtLmMKKysrIGIvdGVzdHMvcHJpbWVfdmdlbS5jCkBAIC0zNDIs NiArMzQyLDggQEAgc3RhdGljIHZvaWQgd29yayhpbnQgaTkxNSwgaW50IGRtYWJ1ZiwgdW5zaWdu ZWQgcmluZywgdWludDMyX3QgZmxhZ3MpCiAJdWludDMyX3QgKmJhdGNoLCAqYmJlOwogCWludCBp LCBjb3VudDsKIAorCWlndF9yZXF1aXJlKGdlbV9lbmdpbmVfaGFzX211dGFibGVfc3VibWlzc2lv bihpOTE1LCByaW5nKSk7CisKIAltZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7 CiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9ICh1aW50cHRyX3Qpb2JqOwogCWV4ZWNidWYuYnVmZmVy X2NvdW50ID0gMjsKQEAgLTg1MCw2ICs4NTIsNyBAQCBpZ3RfbWFpbgogCQkJICAgICAgZS0+bmFt ZSkgewogCQkJZ2VtX3JlcXVpcmVfcmluZyhpOTE1LCBlYl9yaW5nKGUpKTsKIAkJCWlndF9yZXF1 aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQoaTkxNSwgZWJfcmluZyhlKSkpOworCQkJaWd0X3JlcXVp cmUoZ2VtX2VuZ2luZV9oYXNfbXV0YWJsZV9zdWJtaXNzaW9uKGk5MTUsIGViX3JpbmcoZSkpKTsK IAogCQkJZ2VtX3F1aWVzY2VudF9ncHUoaTkxNSk7CiAJCQl0ZXN0X3N5bmMoaTkxNSwgdmdlbSwg ZS0+ZXhlY19pZCwgZS0+ZmxhZ3MpOwpAQCAtODYyLDYgKzg2NSw3IEBAIGlndF9tYWluCiAJCQkg ICAgICBlLT5uYW1lKSB7CiAJCQlnZW1fcmVxdWlyZV9yaW5nKGk5MTUsIGViX3JpbmcoZSkpOwog CQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChpOTE1LCBlYl9yaW5nKGUpKSk7CisJ CQlpZ3RfcmVxdWlyZShnZW1fZW5naW5lX2hhc19tdXRhYmxlX3N1Ym1pc3Npb24oaTkxNSwgZWJf cmluZyhlKSkpOwogCiAJCQlnZW1fcXVpZXNjZW50X2dwdShpOTE1KTsKIAkJCXRlc3RfYnVzeShp OTE1LCB2Z2VtLCBlLT5leGVjX2lkLCBlLT5mbGFncyk7CkBAIC04NzQsNiArODc4LDcgQEAgaWd0 X21haW4KIAkJCSAgICAgIGUtPm5hbWUpIHsKIAkJCWdlbV9yZXF1aXJlX3JpbmcoaTkxNSwgZWJf cmluZyhlKSk7CiAJCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGk5MTUsIGViX3Jp bmcoZSkpKTsKKwkJCWlndF9yZXF1aXJlKGdlbV9lbmdpbmVfaGFzX211dGFibGVfc3VibWlzc2lv bihpOTE1LCBlYl9yaW5nKGUpKSk7CiAKIAkJCWdlbV9xdWllc2NlbnRfZ3B1KGk5MTUpOwogCQkJ dGVzdF93YWl0KGk5MTUsIHZnZW0sIGUtPmV4ZWNfaWQsIGUtPmZsYWdzKTsKQEAgLTg5Nyw2ICs5 MDIsNyBAQCBpZ3RfbWFpbgogCQkJCQllLT5uYW1lKSB7CiAJCQkJZ2VtX3JlcXVpcmVfcmluZyhp OTE1LCBlYl9yaW5nKGUpKTsKIAkJCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGk5 MTUsIGViX3JpbmcoZSkpKTsKKwkJCQlpZ3RfcmVxdWlyZShnZW1fZW5naW5lX2hhc19tdXRhYmxl X3N1Ym1pc3Npb24oaTkxNSwgZWJfcmluZyhlKSkpOwogCiAJCQkJZ2VtX3F1aWVzY2VudF9ncHUo aTkxNSk7CiAJCQkJdGVzdF9mZW5jZV93YWl0KGk5MTUsIHZnZW0sIGUtPmV4ZWNfaWQsIGUtPmZs YWdzKTsKLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2