From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id D50E76E3BF for ; Fri, 21 Jun 2019 10:01:32 +0000 (UTC) From: Ramalingam C Date: Fri, 21 Jun 2019 15:33:21 +0530 Message-Id: <20190621100345.20019-20-ramalingam.c@intel.com> In-Reply-To: <20190621100345.20019-1-ramalingam.c@intel.com> References: <20190621100345.20019-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC v2 19/43] tests/i915/gem_exec_fence: use the gem_engine_topology library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org, tvrtko.ursulin@linux.intel.com, andi@etezian.org List-ID: UmVwbGFjZSB0aGUgbGVnYWN5IGZvcl9lYWNoX2VuZ2luZSogZGVmaW5lcyB3aXRoIHRoZSBvbmVz CmltcGxlbWVudGVkIGluIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkuCgpTaWduZWQt b2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogdGVzdHMv aTkxNS9nZW1fZXhlY19mZW5jZS5jIHwgMTEyICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDU0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfZmVuY2UuYyBiL3Rlc3RzL2k5MTUv Z2VtX2V4ZWNfZmVuY2UuYwppbmRleCAwYmVmYjU0ZjhkMDIuLjFmNGYzYmQ5MTE0MiAxMDA2NDQK LS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19mZW5jZS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2V4 ZWNfZmVuY2UuYwpAQCAtNTcsNyArNTcsOCBAQCBzdHJ1Y3Qgc3luY19tZXJnZV9kYXRhIHsKICNk ZWZpbmUgU1lOQ19JT0NfTUVSR0UgX0lPV1IoU1lOQ19JT0NfTUFHSUMsIDMsIHN0cnVjdCBzeW5j X21lcmdlX2RhdGEpCiAjZW5kaWYKIAotc3RhdGljIHZvaWQgc3RvcmUoaW50IGZkLCB1bnNpZ25l ZCByaW5nLCBpbnQgZmVuY2UsIHVpbnQzMl90IHRhcmdldCwgdW5zaWduZWQgb2Zmc2V0X3ZhbHVl KQorc3RhdGljIHZvaWQgc3RvcmUoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9u X2VuZ2luZTIgKmUsIGludCBmZW5jZSwKKwkJICB1aW50MzJfdCB0YXJnZXQsIHVuc2lnbmVkIG9m ZnNldF92YWx1ZSkKIHsKIAljb25zdCBpbnQgU0NSQVRDSCA9IDA7CiAJY29uc3QgaW50IEJBVENI ID0gMTsKQEAgLTcxLDcgKzcyLDcgQEAgc3RhdGljIHZvaWQgc3RvcmUoaW50IGZkLCB1bnNpZ25l ZCByaW5nLCBpbnQgZmVuY2UsIHVpbnQzMl90IHRhcmdldCwgdW5zaWduZWQgb2YKIAltZW1zZXQo JmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7CiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRv X3VzZXJfcG9pbnRlcihvYmopOwogCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMjsKLQlleGVjYnVm LmZsYWdzID0gcmluZyB8IExPQ0FMX0VYRUNfRkVOQ0VfSU47CisJZXhlY2J1Zi5mbGFncyA9IGUt PmZsYWdzIHwgTE9DQUxfRVhFQ19GRU5DRV9JTjsKIAlleGVjYnVmLnJzdmQyID0gZmVuY2U7CiAJ aWYgKGdlbiA8IDYpCiAJCWV4ZWNidWYuZmxhZ3MgfD0gSTkxNV9FWEVDX1NFQ1VSRTsKQEAgLTEx OSw3ICsxMjAsOCBAQCBzdGF0aWMgYm9vbCBmZW5jZV9idXN5KGludCBmZW5jZSkKICNkZWZpbmUg Tk9OQkxPQ0sgMHgyCiAjZGVmaW5lIFdBSVQgMHg0CiAKLXN0YXRpYyB2b2lkIHRlc3RfZmVuY2Vf YnVzeShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2lnbmVkIGZsYWdzKQorc3RhdGljIHZvaWQg dGVzdF9mZW5jZV9idXN5KGludCBmZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdp bmUyICplLAorCQkJICAgIHVuc2lnbmVkIGZsYWdzKQogewogCWNvbnN0IGludCBnZW4gPSBpbnRl bF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhl Y19vYmplY3QyIG9iajsKQEAgLTEzNCw3ICsxMzYsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2ZlbmNl X2J1c3koaW50IGZkLCB1bnNpZ25lZCByaW5nLCB1bnNpZ25lZCBmbGFncykKIAltZW1zZXQoJmV4 ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7CiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3Vz ZXJfcG9pbnRlcigmb2JqKTsKIAlleGVjYnVmLmJ1ZmZlcl9jb3VudCA9IDE7Ci0JZXhlY2J1Zi5m bGFncyA9IHJpbmcgfCBMT0NBTF9FWEVDX0ZFTkNFX09VVDsKKwlleGVjYnVmLmZsYWdzID0gZS0+ ZmxhZ3MgfCBMT0NBTF9FWEVDX0ZFTkNFX09VVDsKIAogCW1lbXNldCgmb2JqLCAwLCBzaXplb2Yo b2JqKSk7CiAJb2JqLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwpAQCAtMjE2LDcgKzIx OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfZmVuY2VfYnVzeV9hbGwoaW50IGZkLCB1bnNpZ25lZCBm bGFncykKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7CiAJc3RydWN0 IHRpbWVzcGVjIHR2OwogCXVpbnQzMl90ICpiYXRjaDsKLQl1bnNpZ25lZCBpbnQgZW5naW5lOwor CWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsKIAlpbnQgYWxsLCBpLCB0 aW1lb3V0OwogCiAJZ2VtX3F1aWVzY2VudF9ncHUoZmQpOwpAQCAtMjYzLDEwICsyNjUsMTAgQEAg c3RhdGljIHZvaWQgdGVzdF9mZW5jZV9idXN5X2FsbChpbnQgZmQsIHVuc2lnbmVkIGZsYWdzKQog CWkrKzsKIAogCWFsbCA9IC0xOwotCWZvcl9lYWNoX2VuZ2luZShmZCwgZW5naW5lKSB7CisJX19m b3JfZWFjaF9zdGF0aWNfZW5naW5lKGUpIHsKIAkJaW50IGZlbmNlLCBuZXc7CiAKLQkJZXhlY2J1 Zi5mbGFncyA9IGVuZ2luZSB8IExPQ0FMX0VYRUNfRkVOQ0VfT1VUOworCQlleGVjYnVmLmZsYWdz ID0gZS0+ZmxhZ3MgfCBMT0NBTF9FWEVDX0ZFTkNFX09VVDsKIAkJZXhlY2J1Zi5yc3ZkMiA9IC0x OwogCQlnZW1fZXhlY2J1Zl93cihmZCwgJmV4ZWNidWYpOwogCQlmZW5jZSA9IGV4ZWNidWYucnN2 ZDIgPj4gMzI7CkBAIC0zMTUsMTEgKzMxNywxMiBAQCBzdGF0aWMgdm9pZCB0ZXN0X2ZlbmNlX2J1 c3lfYWxsKGludCBmZCwgdW5zaWduZWQgZmxhZ3MpCiAJZ2VtX3F1aWVzY2VudF9ncHUoZmQpOwog fQogCi1zdGF0aWMgdm9pZCB0ZXN0X2ZlbmNlX2F3YWl0KGludCBmZCwgdW5zaWduZWQgcmluZywg dW5zaWduZWQgZmxhZ3MpCitzdGF0aWMgdm9pZCB0ZXN0X2ZlbmNlX2F3YWl0KGludCBmZCwgY29u c3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLAorCQkJICAgICB1bnNpZ25lZCBm bGFncykKIHsKIAl1aW50MzJfdCBzY3JhdGNoID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CiAJaWd0 X3NwaW5fdCAqc3BpbjsKLQl1bnNpZ25lZCBlbmdpbmU7CisJY29uc3Qgc3RydWN0IGludGVsX2V4 ZWN1dGlvbl9lbmdpbmUyICpvdGhlcjsKIAl1aW50MzJfdCAqb3V0OwogCWludCBpOwogCkBAIC0z MzAsMjAgKzMzMywyMCBAQCBzdGF0aWMgdm9pZCB0ZXN0X2ZlbmNlX2F3YWl0KGludCBmZCwgdW5z aWduZWQgcmluZywgdW5zaWduZWQgZmxhZ3MpCiAJCQlJOTE1X0dFTV9ET01BSU5fR1RULCBJOTE1 X0dFTV9ET01BSU5fR1RUKTsKIAogCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsCi0JCQkgICAgLmVu Z2luZSA9IHJpbmcsCisJCQkgICAgLmVuZ2luZSA9IGUtPmZsYWdzLAogCQkJICAgIC5mbGFncyA9 IElHVF9TUElOX0ZFTkNFX09VVCk7CiAJaWd0X2Fzc2VydChzcGluLT5vdXRfZmVuY2UgIT0gLTEp OwogCiAJaSA9IDA7Ci0JZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlbmdpbmUpIHsKLQkJ aWYgKCFnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBlbmdpbmUpKQorCV9fZm9yX2VhY2hfcGh5c2lj YWxfZW5naW5lKGZkLCBvdGhlcikgeworCQlpZiAoIWdlbV9jbGFzc19jYW5fc3RvcmVfZHdvcmQo ZmQsIG90aGVyLT5jbGFzcykpCiAJCQljb250aW51ZTsKIAogCQlpZiAoZmxhZ3MgJiBOT05CTE9D SykgewotCQkJc3RvcmUoZmQsIGVuZ2luZSwgc3Bpbi0+b3V0X2ZlbmNlLCBzY3JhdGNoLCBpKTsK KwkJCXN0b3JlKGZkLCBvdGhlciwgc3Bpbi0+b3V0X2ZlbmNlLCBzY3JhdGNoLCBpKTsKIAkJfSBl bHNlIHsKIAkJCWlndF9mb3JrKGNoaWxkLCAxKQotCQkJCXN0b3JlKGZkLCBlbmdpbmUsIHNwaW4t Pm91dF9mZW5jZSwgc2NyYXRjaCwgaSk7CisJCQkJc3RvcmUoZmQsIG90aGVyLCBzcGluLT5vdXRf ZmVuY2UsIHNjcmF0Y2gsIGkpOwogCQl9CiAKIAkJaSsrOwpAQCAtMzcwLDEzICszNzMsMTQgQEAg c3RhdGljIHZvaWQgdGVzdF9mZW5jZV9hd2FpdChpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIHVuc2ln bmVkIGZsYWdzKQogCWdlbV9jbG9zZShmZCwgc2NyYXRjaCk7CiB9CiAKLXN0YXRpYyB2b2lkIHJl c3VibWl0KGludCBmZCwgdWludDMyX3QgaGFuZGxlLCB1bnNpZ25lZCBpbnQgcmluZywgaW50IGNv dW50KQorc3RhdGljIHZvaWQgcmVzdWJtaXQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsCisJCSAg ICAgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLCBpbnQgY291bnQpCiB7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqID0geyAuaGFuZGxlID0gaGFu ZGxlIH07CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVmZmVyMiBleGVjYnVmID0gewogCQku YnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJm9iaiksCiAJCS5idWZmZXJfY291bnQgPSAx LAotCQkuZmxhZ3MgPSByaW5nLAorCQkuZmxhZ3MgPSBlLT5mbGFncywKIAl9OwogCXdoaWxlIChj b3VudC0tKQogCQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwpAQCAtMzk4LDcgKzQwMiw3IEBA IHN0YXRpYyBpbnQgX19leGVjYnVmKGludCBmZCwgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjYnVm ZmVyMiAqZXhlY2J1ZikKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCB0ZXN0X3BhcmFs bGVsKGludCBmZCwgdW5zaWduZWQgaW50IG1hc3RlcikKK3N0YXRpYyB2b2lkIHRlc3RfcGFyYWxs ZWwoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUpCiB7CiAJ Y29uc3QgaW50IFNDUkFUQ0ggPSAwOwogCWNvbnN0IGludCBCQVRDSCA9IDE7CkBAIC00MTEsNyAr NDE1LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9wYXJhbGxlbChpbnQgZmQsIHVuc2lnbmVkIGludCBt YXN0ZXIpCiAJdWludDMyX3QgaGFuZGxlWzE2XTsKIAl1aW50MzJfdCBiYXRjaFsxNl07CiAJaWd0 X3NwaW5fdCAqc3BpbjsKLQl1bnNpZ25lZCBlbmdpbmU7CisJY29uc3Qgc3RydWN0IGludGVsX2V4 ZWN1dGlvbl9lbmdpbmUyICpvdGhlcjsKIAlJR1RfQ09SS19IQU5ETEUoYyk7CiAJdWludDMyX3Qg cGx1ZzsKIAlpbnQgaSwgeCA9IDA7CkBAIC00MjEsMTQgKzQyNSwxNCBAQCBzdGF0aWMgdm9pZCB0 ZXN0X3BhcmFsbGVsKGludCBmZCwgdW5zaWduZWQgaW50IG1hc3RlcikKIAkvKiBGaWxsIHRoZSBx dWV1ZSB3aXRoIG1hbnkgcmVxdWVzdHMgc28gdGhhdCB0aGUgbmV4dCBvbmUgaGFzIHRvCiAJICog d2FpdCBiZWZvcmUgaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IHRoZSBoYXJkd2FyZS4KIAkgKi8KLQlz cGluID0gaWd0X3NwaW5fbmV3KGZkLCAuZW5naW5lID0gbWFzdGVyLCAuZGVwZW5kZW5jeSA9IHBs dWcpOwotCXJlc3VibWl0KGZkLCBzcGluLT5oYW5kbGUsIG1hc3RlciwgMTYpOworCXNwaW4gPSBp Z3Rfc3Bpbl9uZXcoZmQsIC5lbmdpbmUgPSBlLT5mbGFncywgLmRlcGVuZGVuY3kgPSBwbHVnKTsK KwlyZXN1Ym1pdChmZCwgc3Bpbi0+aGFuZGxlLCBlLCAxNik7CiAKIAkvKiBOb3cgcXVldWUgdGhl IG1hc3RlciByZXF1ZXN0IGFuZCBpdHMgc2Vjb25kYXJpZXMgKi8KIAltZW1zZXQoJmV4ZWNidWYs IDAsIHNpemVvZihleGVjYnVmKSk7CiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9p bnRlcihvYmopOwogCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMjsKLQlleGVjYnVmLmZsYWdzID0g bWFzdGVyIHwgTE9DQUxfRVhFQ19GRU5DRV9PVVQ7CisJZXhlY2J1Zi5mbGFncyA9IGUtPmZsYWdz IHwgTE9DQUxfRVhFQ19GRU5DRV9PVVQ7CiAJaWYgKGdlbiA8IDYpCiAJCWV4ZWNidWYuZmxhZ3Mg fD0gSTkxNV9FWEVDX1NFQ1VSRTsKIApAQCAtNDk3LDExICs1MDEsMTEgQEAgc3RhdGljIHZvaWQg dGVzdF9wYXJhbGxlbChpbnQgZmQsIHVuc2lnbmVkIGludCBtYXN0ZXIpCiAJb2JqW0JBVENIXS5y ZWxvY2F0aW9uX2NvdW50ID0gMTsKIAogCS8qIFF1ZXVlIGFsbCBzZWNvbmRhcmllcyAqLwotCWZv cl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZW5naW5lKSB7Ci0JCWlmIChlbmdpbmUgPT0gbWFz dGVyKQorCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBvdGhlcikgeworCQlpZiAob3Ro ZXIgPT0gZSkKIAkJCWNvbnRpbnVlOwogCi0JCWV4ZWNidWYuZmxhZ3MgPSBlbmdpbmUgfCBMT0NB TF9FWEVDX0ZFTkNFX1NVQk1JVDsKKwkJZXhlY2J1Zi5mbGFncyA9IG90aGVyLT5mbGFncyB8IExP Q0FMX0VYRUNfRkVOQ0VfU1VCTUlUOwogCQlpZiAoZ2VuIDwgNikKIAkJCWV4ZWNidWYuZmxhZ3Mg fD0gSTkxNV9FWEVDX1NFQ1VSRTsKIApAQCAtNTg4LDcgKzU5Miw4IEBAIHN0YXRpYyBpbmxpbmUg dWludDMyX3QgdXBwZXJfMzJfYml0cyh1aW50NjRfdCB4KQogCXJldHVybiB4ID4+IDMyOwogfQog Ci1zdGF0aWMgdm9pZCB0ZXN0X2tlZXBfaW5fZmVuY2UoaW50IGZkLCB1bnNpZ25lZCBpbnQgZW5n aW5lLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCitzdGF0aWMgdm9pZCB0ZXN0X2tlZXBfaW5fZmVuY2Uo aW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsCisJCQkgICAg ICAgdW5zaWduZWQgaW50IGZsYWdzKQogewogCXN0cnVjdCBzaWdhY3Rpb24gc2EgPSB7IC5zYV9o YW5kbGVyID0gYWxhcm1faGFuZGxlciB9OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmpl Y3QyIG9iaiA9IHsKQEAgLTU5NywxNCArNjAyLDE0IEBAIHN0YXRpYyB2b2lkIHRlc3Rfa2VlcF9p bl9mZW5jZShpbnQgZmQsIHVuc2lnbmVkIGludCBlbmdpbmUsIHVuc2lnbmVkIGludCBmbGFncykK IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWYgPSB7CiAJCS5idWZmZXJz X3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmb2JqKSwKIAkJLmJ1ZmZlcl9jb3VudCA9IDEsCi0JCS5m bGFncyA9IGVuZ2luZSB8IExPQ0FMX0VYRUNfRkVOQ0VfT1VULAorCQkuZmxhZ3MgPSBlLT5mbGFn cyB8IExPQ0FMX0VYRUNfRkVOQ0VfT1VULAogCX07CiAJdW5zaWduZWQgbG9uZyBjb3VudCwgbGFz dDsKIAlzdHJ1Y3QgaXRpbWVydmFsIGl0djsKIAlpZ3Rfc3Bpbl90ICpzcGluOwogCWludCBmZW5j ZTsKIAotCXNwaW4gPSBpZ3Rfc3Bpbl9uZXcoZmQsIC5lbmdpbmUgPSBlbmdpbmUpOworCXNwaW4g PSBpZ3Rfc3Bpbl9uZXcoZmQsIC5lbmdpbmUgPSBlLT5mbGFncyk7CiAKIAlnZW1fZXhlY2J1Zl93 cihmZCwgJmV4ZWNidWYpOwogCWZlbmNlID0gdXBwZXJfMzJfYml0cyhleGVjYnVmLnJzdmQyKTsK QEAgLTY2Miw3ICs2NjcsOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X2xvbmdfaGlzdG9yeShpbnQgZmQs IGxvbmcgcmluZ19zaXplLCB1bnNpZ25lZCBmbGFncykKIAljb25zdCB1aW50MzJfdCBiYmUgPSBN SV9CQVRDSF9CVUZGRVJfRU5EOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9i alsyXTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7Ci0JdW5zaWdu ZWQgaW50IGVuZ2luZXNbMTZdLCBlbmdpbmU7CisJdW5zaWduZWQgaW50IGVuZ2luZXNbMTZdOwor CWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsKIAl1bnNpZ25lZCBpbnQg bmVuZ2luZSwgbiwgczsKIAl1bnNpZ25lZCBsb25nIGxpbWl0OwogCWludCBhbGxfZmVuY2VzOwpA QCAtNjczLDggKzY3OSw4IEBAIHN0YXRpYyB2b2lkIHRlc3RfbG9uZ19oaXN0b3J5KGludCBmZCwg bG9uZyByaW5nX3NpemUsIHVuc2lnbmVkIGZsYWdzKQogCQlsaW1pdCA9IHJpbmdfc2l6ZSAvIDM7 CiAKIAluZW5naW5lID0gMDsKLQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGVuZ2luZSkK LQkJZW5naW5lc1tuZW5naW5lKytdID0gZW5naW5lOworCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5n aW5lKGZkLCBlKQorCQllbmdpbmVzW25lbmdpbmUrK10gPSBlLT5mbGFnczsKIAlpZ3RfcmVxdWly ZShuZW5naW5lKTsKIAogCWdlbV9xdWllc2NlbnRfZ3B1KGZkKTsKQEAgLTExNTUsNyArMTE2MSw3 IEBAIHN0YXRpYyB2b2lkIHRlc3Rfc3luY29ial93YWl0KGludCBmZCkKIAkJLmhhbmRsZSA9IHN5 bmNvYmpfY3JlYXRlKGZkKSwKIAl9OwogCWlndF9zcGluX3QgKnNwaW47Ci0JdW5zaWduZWQgZW5n aW5lOworCWNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5naW5lMiAqZTsKIAl1bnNpZ25l ZCBoYW5kbGVbMTZdOwogCWludCBuOwogCkBAIC0xMTg4LDEzICsxMTk0LDEzIEBAIHN0YXRpYyB2 b2lkIHRlc3Rfc3luY29ial93YWl0KGludCBmZCkKIAlnZW1fd3JpdGUoZmQsIG9iai5oYW5kbGUs IDAsICZiYmUsIHNpemVvZihiYmUpKTsKIAogCW4gPSAwOwotCWZvcl9lYWNoX2VuZ2luZShmZCwg ZW5naW5lKSB7CisJX19mb3JfZWFjaF9zdGF0aWNfZW5naW5lKGUpIHsKIAkJb2JqLmhhbmRsZSA9 IGdlbV9jcmVhdGUoZmQsIDQwOTYpOwogCQlnZW1fd3JpdGUoZmQsIG9iai5oYW5kbGUsIDAsICZi YmUsIHNpemVvZihiYmUpKTsKIAogCQkvKiBObyBpbnRlci1lbmdpbmUgc3luY2hyb25pc2F0aW9u LCB3aWxsIGNvbXBsZXRlICovCi0JCWlmIChlbmdpbmUgPT0gSTkxNV9FWEVDX0JMVCkgewotCQkJ ZXhlY2J1Zi5mbGFncyA9IGVuZ2luZTsKKwkJaWYgKGUtPmNsYXNzID09IEk5MTVfRU5HSU5FX0NM QVNTX0NPUFkpIHsKKwkJCWV4ZWNidWYuZmxhZ3MgPSBlLT5mbGFnczsKIAkJCWV4ZWNidWYuY2xp cHJlY3RzX3B0ciA9IDA7CiAJCQlleGVjYnVmLm51bV9jbGlwcmVjdHMgPSAwOwogCQkJZ2VtX2V4 ZWNidWYoZmQsICZleGVjYnVmKTsKQEAgLTEyMDQsNyArMTIxMCw3IEBAIHN0YXRpYyB2b2lkIHRl c3Rfc3luY29ial93YWl0KGludCBmZCkKIAkJaWd0X2Fzc2VydChnZW1fYm9fYnVzeShmZCwgc3Bp bi0+aGFuZGxlKSk7CiAKIAkJLyogTm93IHdhaXQgdXBvbiB0aGUgYmxvY2tlZCBlbmdpbmUgKi8K LQkJZXhlY2J1Zi5mbGFncyA9IExPQ0FMX0VYRUNfRkVOQ0VfQVJSQVkgfCBlbmdpbmU7CisJCWV4 ZWNidWYuZmxhZ3MgPSBMT0NBTF9FWEVDX0ZFTkNFX0FSUkFZIHwgZS0+ZmxhZ3M7CiAJCWV4ZWNi dWYuY2xpcHJlY3RzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmZmVuY2UpOwogCQlleGVjYnVmLm51 bV9jbGlwcmVjdHMgPSAxOwogCQlmZW5jZS5mbGFncyA9IExPQ0FMX0VYRUNfRkVOQ0VfV0FJVDsK QEAgLTE1MTMsNyArMTUxOSw3IEBAIHN0YXRpYyB2b2lkIHRlc3Rfc3luY29ial9jaGFubmVsKGlu dCBmZCkKIAogaWd0X21haW4KIHsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2lu ZSAqZTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmU7CiAJaW50IGk5 MTUgPSAtMTsKIAogCWlndF9maXh0dXJlIHsKQEAgLTE1NDUsMTEgKzE1NTEsMTAgQEAgaWd0X21h aW4KIAkJCXRlc3RfZmVuY2VfYnVzeV9hbGwoaTkxNSwgV0FJVCB8IEhBTkcpOwogCX0KIAotCWZv ciAoZSA9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzOyBlLT5uYW1lOyBlKyspIHsKKwlfX2Zvcl9l YWNoX3BoeXNpY2FsX2VuZ2luZShpOTE1LCBlKSB7CiAJCWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJ CWlndF9maXh0dXJlIHsKLQkJCQlpZ3RfcmVxdWlyZShnZW1faGFzX3JpbmcoaTkxNSwgZS0+ZXhl Y19pZCB8IGUtPmZsYWdzKSk7Ci0JCQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChp OTE1LCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKKwkJCQlpZ3RfcmVxdWlyZShnZW1fY2xhc3Nf Y2FuX3N0b3JlX2R3b3JkKGk5MTUsIGUtPmNsYXNzKSk7CiAJCQl9CiAKIAkJCWlndF9zdWJ0ZXN0 X2dyb3VwIHsKQEAgLTE1NTgsMjkgKzE1NjMsMjggQEAgaWd0X21haW4KIAkJCQl9CiAKIAkJCQlp Z3Rfc3VidGVzdF9mKCIlc2J1c3ktJXMiLAotCQkJCQkJZS0+ZXhlY19pZCA9PSAwID8gImJhc2lj LSIgOiAiIiwKKwkJCQkJCWUtPmNsYXNzID09IEk5MTVfRU5HSU5FX0NMQVNTX1JFTkRFUiA/ICJi YXNpYy0iIDogIiIsCiAJCQkJCQllLT5uYW1lKQotCQkJCQl0ZXN0X2ZlbmNlX2J1c3koaTkxNSwg ZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCAwKTsKKwkJCQkJdGVzdF9mZW5jZV9idXN5KGk5MTUsIGUs IDApOwogCQkJCWlndF9zdWJ0ZXN0X2YoIiVzd2FpdC0lcyIsCi0JCQkJCQllLT5leGVjX2lkID09 IDAgPyAiYmFzaWMtIiA6ICIiLAorCQkJCQkJZS0+Y2xhc3MgPT0gSTkxNV9FTkdJTkVfQ0xBU1Nf UkVOREVSID8gImJhc2ljLSIgOiAiIiwKIAkJCQkJCWUtPm5hbWUpCi0JCQkJCXRlc3RfZmVuY2Vf YnVzeShpOTE1LCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIFdBSVQpOworCQkJCQl0ZXN0X2ZlbmNl X2J1c3koaTkxNSwgZSwgV0FJVCk7CiAJCQkJaWd0X3N1YnRlc3RfZigiJXNhd2FpdC0lcyIsCi0J CQkJCQllLT5leGVjX2lkID09IDAgPyAiYmFzaWMtIiA6ICIiLAorCQkJCQkJZS0+Y2xhc3MgPT0g STkxNV9FTkdJTkVfQ0xBU1NfUkVOREVSID8gImJhc2ljLSIgOiAiIiwKIAkJCQkJCWUtPm5hbWUp Ci0JCQkJCXRlc3RfZmVuY2VfYXdhaXQoaTkxNSwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCAwKTsK KwkJCQkJdGVzdF9mZW5jZV9hd2FpdChpOTE1LCBlLCAwKTsKIAkJCQlpZ3Rfc3VidGVzdF9mKCJu Yi1hd2FpdC0lcyIsIGUtPm5hbWUpCi0JCQkJCXRlc3RfZmVuY2VfYXdhaXQoaTkxNSwgZS0+ZXhl Y19pZCB8IGUtPmZsYWdzLCBOT05CTE9DSyk7CisJCQkJCXRlc3RfZmVuY2VfYXdhaXQoaTkxNSwg ZSwgTk9OQkxPQ0spOwogCiAJCQkJaWd0X3N1YnRlc3RfZigia2VlcC1pbi1mZW5jZS0lcyIsIGUt Pm5hbWUpCi0JCQkJCXRlc3Rfa2VlcF9pbl9mZW5jZShpOTE1LCBlLT5leGVjX2lkIHwgZS0+Zmxh Z3MsIDApOworCQkJCQl0ZXN0X2tlZXBfaW5fZmVuY2UoaTkxNSwgZSwgMCk7CiAKLQkJCQlpZiAo ZS0+ZXhlY19pZCAmJgotCQkJCSAgICAhKGUtPmV4ZWNfaWQgPT0gSTkxNV9FWEVDX0JTRCAmJiAh ZS0+ZmxhZ3MpKSB7CisJCQkJaWYgKCEoZS0+Y2xhc3MgPT0gSTkxNV9FTkdJTkVfQ0xBU1NfVklE RU8gJiYgIWUtPmZsYWdzKSkgewogCQkJCQlpZ3Rfc3VidGVzdF9mKCJwYXJhbGxlbC0lcyIsIGUt Pm5hbWUpIHsKIAkJCQkJCWlndF9yZXF1aXJlKGhhc19zdWJtaXRfZmVuY2UoaTkxNSkpOwogCQkJ CQkJaWd0X3VudGlsX3RpbWVvdXQoMikKLQkJCQkJCQl0ZXN0X3BhcmFsbGVsKGk5MTUsIGUtPmV4 ZWNfaWQgfCBlLT5mbGFncyk7CisJCQkJCQkJdGVzdF9wYXJhbGxlbChpOTE1LCBlKTsKIAkJCQkJ fQogCQkJCX0KIApAQCAtMTU5OSwxMyArMTYwMywxMyBAQCBpZ3RfbWFpbgogCQkJCX0KIAogCQkJ CWlndF9zdWJ0ZXN0X2YoImJ1c3ktaGFuZy0lcyIsIGUtPm5hbWUpCi0JCQkJCXRlc3RfZmVuY2Vf YnVzeShpOTE1LCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIEhBTkcpOworCQkJCQl0ZXN0X2ZlbmNl X2J1c3koaTkxNSwgZSwgSEFORyk7CiAJCQkJaWd0X3N1YnRlc3RfZigid2FpdC1oYW5nLSVzIiwg ZS0+bmFtZSkKLQkJCQkJdGVzdF9mZW5jZV9idXN5KGk5MTUsIGUtPmV4ZWNfaWQgfCBlLT5mbGFn cywgSEFORyB8IFdBSVQpOworCQkJCQl0ZXN0X2ZlbmNlX2J1c3koaTkxNSwgZSwgSEFORyB8IFdB SVQpOwogCQkJCWlndF9zdWJ0ZXN0X2YoImF3YWl0LWhhbmctJXMiLCBlLT5uYW1lKQotCQkJCQl0 ZXN0X2ZlbmNlX2F3YWl0KGk5MTUsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgSEFORyk7CisJCQkJ CXRlc3RfZmVuY2VfYXdhaXQoaTkxNSwgZSwgSEFORyk7CiAJCQkJaWd0X3N1YnRlc3RfZigibmIt YXdhaXQtaGFuZy0lcyIsIGUtPm5hbWUpCi0JCQkJCXRlc3RfZmVuY2VfYXdhaXQoaTkxNSwgZS0+ ZXhlY19pZCB8IGUtPmZsYWdzLCBOT05CTE9DSyB8IEhBTkcpOworCQkJCQl0ZXN0X2ZlbmNlX2F3 YWl0KGk5MTUsIGUsIE5PTkJMT0NLIHwgSEFORyk7CiAJCQkJaWd0X2ZpeHR1cmUgewogCQkJCQlp Z3RfZGlzYWxsb3dfaGFuZyhpOTE1LCBoYW5nKTsKIAkJCQl9Ci0tIAoyLjE5LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBs aXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==