From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Tvrtko Ursulin Date: Thu, 27 Jun 2019 11:53:43 +0100 Message-Id: <20190627105343.9325-1-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20190627102019.9019-1-tvrtko.ursulin@linux.intel.com> References: <20190627102019.9019-1-tvrtko.ursulin@linux.intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v2] tests/i915/gem_ctx_switch: Update with engine discovery 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 Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCkkgY29udmVy dGVkIHRoaXMgb25lIGFzIGFuIGV4YW1wbGUsIG9yIGF0IGxlYXN0IHRvIGRyaXZlIHRoZSBkaXNj dXNzaW9uLApob3cgbW9yZSBjb21wbGV4IHRlc3RzIGNhbiBiZSBjb252ZXJ0ZWQuCgpJIGhhdmUg a2VwdCB0aGUgbGVnYWN5IGV4ZWNidWYgYWJpIHRlc3RpbmcgcHJlZml4ZWQgd2l0aCAibGVnYWN5 LSIuCgpOZXcgdGVzdHMgd2VyZSBhZGRlZCB0byBleGVyY2lzZSBwaHlzaWNhbCBlbmdpbmVzIHZp YSBlbmdpbmUgZGlzY292ZXJ5IGFuZAphbHNvICJhbGwiIHRlc3RzIGhhdmUgYmVlbiB1cGRhdGVk IGluIHRoZSBzYW1lIHdheS4KClRvIGtlZXAgdGhpbmdzIHNpbXBsZXIgYW5kIGF2b2lkIGhhdmlu ZyB0byBjcmVhdGUgc2VwYXJhdGUgY29udGV4dHMgbGVnYWN5CnRlc3RzIGhhdmUgdG8gYmUgZmly c3Qgc2luY2UgdGhlIF9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lIGl0ZXJhdG9yIHdvdWxkCm90 aGVyd2lzZSBjb25maWd1cmUgdGhlIGRlZmF1bHQgY29udGV4dCBhbmQgY29uZnVzZSB0aGUgdGVz dC4KClNvIGxlZ2FjeSB0ZXN0cyBydW4gb24gdGhlIHVuY29uZmlndXJlZCAod2l0aCBlbmdpbmUg bWFwKSBjb250ZXh0IGFuZCB1c2UKYSBuZXcgaGVscGVyIGdlbV9lYl9mbGFnc190b19lbmdpbmUg dG8gbG9vayB1cCB0aGUgZW5naW5lIGZyb20gdGhlCmludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMiBz dGF0aWMgbGlzdC4gVGhpcyBpcyBvbmx5IHRvIGVuYWJsZSB0aGUgY29yZSB0ZXN0CmNvZGUgdG8g YmUgc2hhcmVkLgoKUGxhY2VzIHdoZXJlIG5ldyBjb250ZXh0cyBhcmUgY3JlYXRlZCBoYWQgdG8g YmUgdXBkYXRlZCB0byBlaXRoZXIgZXF1YWxseQpjb25maWd1cmUgdGhlIGNvbnRleHRzIG9yIG5v dC4gQW5vdGhlciBuZXcgaGVscGVyLApnZW1fY29udGV4dF9oYXNfZW5naW5lX21hcCB3YXMgYWRk ZWQgdG8gZW5hYmxlIHRoaXMuCgpBbHNvIGJld2FyZSBvZiBkcml2ZS1ieSBmb3JtYXR0aW5nIGNo YW5nZXMuCgp2MjoKICogRml4IGh5cGhlbiBtZXNzIGluIHN1YnRlc3QgbmFtZXMuCgpTaWduZWQt b2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpDYzogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBSYW1hbGluZ2FtIEMgPHJh bWFsaW5nYW0uY0BpbnRlbC5jb20+CkNjOiBBbmRpIFNoeXRpIDxhbmRpLnNoeXRpQGludGVsLmNv bT4KLS0tCiBsaWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMgICAgICAgIHwgIDI3ICsrKysr KwogbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oICAgICAgICB8ICAgNSArCiB0ZXN0cy9p OTE1L2dlbV9jdHhfc3dpdGNoLmMgICAgICAgICAgIHwgMTI3ICsrKysrKysrKysrKysrKysrLS0t LS0tLS0tCiB0ZXN0cy9pbnRlbC1jaS9ibGFja2xpc3QudHh0ICAgICAgICAgIHwgICAyICstCiB0 ZXN0cy9pbnRlbC1jaS9mYXN0LWZlZWRiYWNrLnRlc3RsaXN0IHwgICAzICstCiA1IGZpbGVzIGNo YW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9s aWIvaTkxNS9nZW1fZW5naW5lX3RvcG9sb2d5LmMgYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9s b2d5LmMKaW5kZXggZmRkMWI5NTE2NzJiLi42Y2ZlMzQ2OGUzZDggMTAwNjQ0Ci0tLSBhL2xpYi9p OTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuYworKysgYi9saWIvaTkxNS9nZW1fZW5naW5lX3RvcG9s b2d5LmMKQEAgLTI4OSwzICsyODksMzAgQEAgYm9vbCBnZW1faGFzX2VuZ2luZV90b3BvbG9neShp bnQgZmQpCiAKIAlyZXR1cm4gIV9fZ2VtX2NvbnRleHRfZ2V0X3BhcmFtKGZkLCAmcGFyYW0pOwog fQorCitjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKgorZ2VtX2ViX2ZsYWdz X3RvX2VuZ2luZSh1bnNpZ25lZCBpbnQgZmxhZ3MpCit7CisJY29uc3Qgc3RydWN0IGludGVsX2V4 ZWN1dGlvbl9lbmdpbmUyICplMjsKKworCV9fZm9yX2VhY2hfc3RhdGljX2VuZ2luZShlMikgewor CQlpZiAoZTItPmZsYWdzID09IGZsYWdzKQorCQkJcmV0dXJuIGUyOworCX0KKworCXJldHVybiBO VUxMOworfQorCitib29sIGdlbV9jb250ZXh0X2hhc19lbmdpbmVfbWFwKGludCBmZCwgdWludDMy X3QgY3R4KQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBwYXJhbSA9IHsK KwkJLnBhcmFtID0gSTkxNV9DT05URVhUX1BBUkFNX0VOR0lORVMsCisJCS5jdHhfaWQgPSBjdHgK Kwl9OworCWludCByZXQ7CisKKwlyZXQgPSBfX2dlbV9jb250ZXh0X2dldF9wYXJhbShmZCwgJnBh cmFtKTsKKwlpZ3RfYXNzZXJ0X2VxKHJldCwgMCk7CisKKwlyZXR1cm4gcGFyYW0uc2l6ZTsKK30K ZGlmZiAtLWdpdCBhL2xpYi9pOTE1L2dlbV9lbmdpbmVfdG9wb2xvZ3kuaCBiL2xpYi9pOTE1L2dl bV9lbmdpbmVfdG9wb2xvZ3kuaAppbmRleCAyNDE1ZmQxZTM3OWIuLmIxNzU0ODNmYWMxYyAxMDA2 NDQKLS0tIGEvbGliL2k5MTUvZ2VtX2VuZ2luZV90b3BvbG9neS5oCisrKyBiL2xpYi9pOTE1L2dl bV9lbmdpbmVfdG9wb2xvZ3kuaApAQCAtNTMsNiArNTMsMTEgQEAgaW50IGdlbV9jb250ZXh0X2xv b2t1cF9lbmdpbmUoaW50IGZkLCB1aW50NjRfdCBlbmdpbmUsIHVpbnQzMl90IGN0eF9pZCwKIAog dm9pZCBnZW1fY29udGV4dF9zZXRfYWxsX2VuZ2luZXMoaW50IGZkLCB1aW50MzJfdCBjdHgpOwog Citib29sIGdlbV9jb250ZXh0X2hhc19lbmdpbmVfbWFwKGludCBmZCwgdWludDMyX3QgY3R4KTsK KworY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICoKK2dlbV9lYl9mbGFnc190 b19lbmdpbmUodW5zaWduZWQgaW50IGZsYWdzKTsKKwogI2RlZmluZSBfX2Zvcl9lYWNoX3N0YXRp Y19lbmdpbmUoZV9fKSBcCiAJZm9yICgoZV9fKSA9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzMjsg KGVfXyktPm5hbWU7IChlX18pKyspCiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9z d2l0Y2guYyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9zd2l0Y2guYwppbmRleCA2NDc5MTFkNGM0MmUu LjQwNzkwNWRlMmQzNCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fY3R4X3N3aXRjaC5jCisr KyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9zd2l0Y2guYwpAQCAtNTUsNyArNTUsNyBAQCBzdGF0aWMg ZG91YmxlIGVsYXBzZWQoY29uc3Qgc3RydWN0IHRpbWVzcGVjICpzdGFydCwgY29uc3Qgc3RydWN0 IHRpbWVzcGVjICplbmQpCiAKIHN0YXRpYyBpbnQgbWVhc3VyZV9xbGVuKGludCBmZCwKIAkJCXN0 cnVjdCBkcm1faTkxNV9nZW1fZXhlY2J1ZmZlcjIgKmV4ZWNidWYsCi0JCQl1bnNpZ25lZCBpbnQg KmVuZ2luZSwgdW5zaWduZWQgaW50IG5lbmdpbmUsCisJCQljb25zdCBzdHJ1Y3QgaW50ZWxfZW5n aW5lX2RhdGEgKmVuZ2luZXMsCiAJCQlpbnQgdGltZW91dCkKIHsKIAljb25zdCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqIGNvbnN0IG9iaiA9CkBAIC02MywxNSArNjMsMTcgQEAg c3RhdGljIGludCBtZWFzdXJlX3FsZW4oaW50IGZkLAogCXVpbnQzMl90IGN0eFs2NF07CiAJaW50 IG1pbiA9IElOVF9NQVgsIG1heCA9IDA7CiAKLQlmb3IgKGludCBpID0gMDsgaSA8IEFSUkFZX1NJ WkUoY3R4KTsgaSsrKQorCWZvciAoaW50IGkgPSAwOyBpIDwgQVJSQVlfU0laRShjdHgpOyBpKysp IHsKIAkJY3R4W2ldID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKKwkJZ2VtX2NvbnRleHRfc2V0 X2FsbF9lbmdpbmVzKGZkLCBjdHhbaV0pOworCX0KIAotCWZvciAodW5zaWduZWQgaW50IG4gPSAw OyBuIDwgbmVuZ2luZTsgbisrKSB7CisJZm9yICh1bnNpZ25lZCBpbnQgbiA9IDA7IG4gPCBlbmdp bmVzLT5uZW5naW5lczsgbisrKSB7CiAJCXVpbnQ2NF90IHNhdmVkID0gZXhlY2J1Zi0+ZmxhZ3M7 CiAJCXN0cnVjdCB0aW1lc3BlYyB0diA9IHt9OwogCQlpbnQgcTsKIAotCQlleGVjYnVmLT5mbGFn cyB8PSBlbmdpbmVbbl07CisJCWV4ZWNidWYtPmZsYWdzIHw9IGVuZ2luZXMtPmVuZ2luZXNbbl0u ZmxhZ3M7CiAKIAkJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGN0eCk7IGkrKykgewog CQkJZXhlY2J1Zi0+cnN2ZDEgPSBjdHhbaV07CkBAIC05MCw3ICs5Miw4IEBAIHN0YXRpYyBpbnQg bWVhc3VyZV9xbGVuKGludCBmZCwKIAkJICogQmUgY29uc2VydmF0aXZlIGFuZCBhaW0gbm90IHRv IG92ZXJzaG9vdCB0aW1lb3V0LCBzbyBzY2FsZQogCQkgKiBkb3duIGJ5IDggZm9yIGhvcGVmdWxs eSBhIG1heCBvZiAxMi41JSBlcnJvci4KIAkJICovCi0JCXEgPSBBUlJBWV9TSVpFKGN0eCkgKiB0 aW1lb3V0ICogMWU5IC8gaWd0X25zZWNfZWxhcHNlZCgmdHYpIC8gOCArIDE7CisJCXEgPSBBUlJB WV9TSVpFKGN0eCkgKiB0aW1lb3V0ICogMWU5IC8gaWd0X25zZWNfZWxhcHNlZCgmdHYpIC8KKwkJ ICAgIDggKyAxOwogCQlpZiAocSA8IG1pbikKIAkJCW1pbiA9IHE7CiAJCWlmIChxID4gbWF4KQpA QCAtMTA3LDcgKzExMCw3IEBAIHN0YXRpYyBpbnQgbWVhc3VyZV9xbGVuKGludCBmZCwKIH0KIAog c3RhdGljIHZvaWQgc2luZ2xlKGludCBmZCwgdWludDMyX3QgaGFuZGxlLAotCQkgICBjb25zdCBz dHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZSAqZSwKKwkJICAgY29uc3Qgc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyICplMiwKIAkJICAgdW5zaWduZWQgZmxhZ3MsCiAJCSAgIGNvbnN0 IGludCBuY3B1cywKIAkJICAgaW50IHRpbWVvdXQpCkBAIC0xMjUsMTMgKzEyOCwxNCBAQCBzdGF0 aWMgdm9pZCBzaW5nbGUoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsCiAJc2hhcmVkID0gbW1hcChO VUxMLCA0MDk2LCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVEIHwgTUFQX0FOT04sIC0xLCAwKTsKIAlp Z3RfYXNzZXJ0KHNoYXJlZCAhPSBNQVBfRkFJTEVEKTsKIAotCWdlbV9yZXF1aXJlX3JpbmcoZmQs IGUtPmV4ZWNfaWQgfCBlLT5mbGFncyk7Ci0KIAlmb3IgKG4gPSAwOyBuIDwgNjQ7IG4rKykgewog CQlpZiAoZmxhZ3MgJiBRVUVVRSkKIAkJCWNvbnRleHRzW25dID0gZ2VtX3F1ZXVlX2NyZWF0ZShm ZCk7CiAJCWVsc2UKIAkJCWNvbnRleHRzW25dID0gZ2VtX2NvbnRleHRfY3JlYXRlKGZkKTsKKwor CQlpZiAoZ2VtX2NvbnRleHRfaGFzX2VuZ2luZV9tYXAoZmQsIDApKQorCQkJZ2VtX2NvbnRleHRf c2V0X2FsbF9lbmdpbmVzKGZkLCBjb250ZXh0c1tuXSk7CiAJfQogCiAJbWVtc2V0KCZvYmosIDAs IHNpemVvZihvYmopKTsKQEAgLTE1MiwxMiArMTU2LDEyIEBAIHN0YXRpYyB2b2lkIHNpbmdsZShp bnQgZmQsIHVpbnQzMl90IGhhbmRsZSwKIAlleGVjYnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9w b2ludGVyKCZvYmopOwogCWV4ZWNidWYuYnVmZmVyX2NvdW50ID0gMTsKIAlleGVjYnVmLnJzdmQx ID0gY29udGV4dHNbMF07Ci0JZXhlY2J1Zi5mbGFncyA9IGUtPmV4ZWNfaWQgfCBlLT5mbGFnczsK KwlleGVjYnVmLmZsYWdzID0gZTItPmZsYWdzOwogCWV4ZWNidWYuZmxhZ3MgfD0gTE9DQUxfSTkx NV9FWEVDX0hBTkRMRV9MVVQ7CiAJZXhlY2J1Zi5mbGFncyB8PSBMT0NBTF9JOTE1X0VYRUNfTk9f UkVMT0M7CiAJaWd0X3JlcXVpcmUoX19nZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpID09IDApOwog CWlmIChfX2dlbV9leGVjYnVmKGZkLCAmZXhlY2J1ZikpIHsKLQkJZXhlY2J1Zi5mbGFncyA9IGUt PmV4ZWNfaWQgfCBlLT5mbGFnczsKKwkJZXhlY2J1Zi5mbGFncyA9IGUyLT5mbGFnczsKIAkJcmVs b2MudGFyZ2V0X2hhbmRsZSA9IG9iai5oYW5kbGU7CiAJCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1 Zik7CiAJfQpAQCAtMTkwLDcgKzE5NCw4IEBAIHN0YXRpYyB2b2lkIHNpbmdsZShpbnQgZmQsIHVp bnQzMl90IGhhbmRsZSwKIAkJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZub3cpOwog CiAJCWlndF9pbmZvKCJbJWRdICVzOiAlJ3UgY3ljbGVzOiAlLjNmdXMlc1xuIiwKLQkJCSBjaGls ZCwgZS0+bmFtZSwgY291bnQsIGVsYXBzZWQoJnN0YXJ0LCAmbm93KSoxZTYgLyBjb3VudCwKKwkJ CSBjaGlsZCwgZTItPm5hbWUsIGNvdW50LAorCQkJIGVsYXBzZWQoJnN0YXJ0LCAmbm93KSAqIDFl NiAvIGNvdW50LAogCQkJIGZsYWdzICYgSU5URVJSVVBUSUJMRSA/ICIgKGludGVycnVwdGlibGUp IiA6ICIiKTsKIAogCQlzaGFyZWRbY2hpbGRdLmVsYXBzZWQgPSBlbGFwc2VkKCZzdGFydCwgJm5v dyk7CkBAIC0yMDksNyArMjE0LDcgQEAgc3RhdGljIHZvaWQgc2luZ2xlKGludCBmZCwgdWludDMy X3QgaGFuZGxlLAogCQl9CiAKIAkJaWd0X2luZm8oIlRvdGFsICVzOiAlJ2x1IGN5Y2xlczogJS4z ZnVzJXNcbiIsCi0JCQkgZS0+bmFtZSwgdG90YWwsIG1heCoxZTYgLyB0b3RhbCwKKwkJCSBlMi0+ bmFtZSwgdG90YWwsIG1heCoxZTYgLyB0b3RhbCwKIAkJCSBmbGFncyAmIElOVEVSUlVQVElCTEUg PyAiIChpbnRlcnJ1cHRpYmxlKSIgOiAiIik7CiAJfQogCkBAIC0yMjMsMjUgKzIyOCwyMCBAQCBz dGF0aWMgdm9pZCBhbGwoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVuc2lnbmVkIGZsYWdzLCBp bnQgdGltZW91dCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWY7 CiAJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgb2JqWzJdOwotCXVuc2lnbmVkIGlu dCBlbmdpbmVbMTZdLCBlOwotCWNvbnN0IGNoYXIgKm5hbWVbMTZdOworCXN0cnVjdCBpbnRlbF9l bmdpbmVfZGF0YSBlbmdpbmVzID0geyB9OwogCXVpbnQzMl90IGNvbnRleHRzWzY1XTsKLQl1bnNp Z25lZCBpbnQgbmVuZ2luZTsKIAlpbnQgbiwgcWxlbjsKIAotCW5lbmdpbmUgPSAwOwotCWZvcl9l YWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewotCQllbmdpbmVbbmVuZ2luZV0gPSBlOwotCQlu YW1lW25lbmdpbmVdID0gZV9fLT5uYW1lOwotCQluZW5naW5lKys7Ci0JfQotCWlndF9yZXF1aXJl KG5lbmdpbmUpOworCWVuZ2luZXMgPSBpbnRlbF9pbml0X2VuZ2luZV9saXN0KGZkLCAwKTsKKwlp Z3RfcmVxdWlyZShlbmdpbmVzLm5lbmdpbmVzKTsKIAogCWZvciAobiA9IDA7IG4gPCBBUlJBWV9T SVpFKGNvbnRleHRzKTsgbisrKSB7CiAJCWlmIChmbGFncyAmIFFVRVVFKQogCQkJY29udGV4dHNb bl0gPSBnZW1fcXVldWVfY3JlYXRlKGZkKTsKIAkJZWxzZQogCQkJY29udGV4dHNbbl0gPSBnZW1f Y29udGV4dF9jcmVhdGUoZmQpOworCisJCWdlbV9jb250ZXh0X3NldF9hbGxfZW5naW5lcyhmZCwg Y29udGV4dHNbbl0pOwogCX0KIAogCW1lbXNldChvYmosIDAsIHNpemVvZihvYmopKTsKQEAgLTI1 Niw3ICsyNTYsNyBAQCBzdGF0aWMgdm9pZCBhbGwoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVu c2lnbmVkIGZsYWdzLCBpbnQgdGltZW91dCkKIAlpZ3RfcmVxdWlyZShfX2dlbV9leGVjYnVmKGZk LCAmZXhlY2J1ZikgPT0gMCk7CiAJZ2VtX3N5bmMoZmQsIGhhbmRsZSk7CiAKLQlxbGVuID0gbWVh c3VyZV9xbGVuKGZkLCAmZXhlY2J1ZiwgZW5naW5lLCBuZW5naW5lLCB0aW1lb3V0KTsKKwlxbGVu ID0gbWVhc3VyZV9xbGVuKGZkLCAmZXhlY2J1ZiwgJmVuZ2luZXMsIHRpbWVvdXQpOwogCWlndF9p bmZvKCJVc2luZyB0aW1pbmcgZGVwdGggb2YgJWQgYmF0Y2hlc1xuIiwgcWxlbik7CiAKIAlleGVj YnVmLmJ1ZmZlcnNfcHRyID0gdG9fdXNlcl9wb2ludGVyKG9iaik7CkBAIC0yNjQsMTMgKzI2NCwx NSBAQCBzdGF0aWMgdm9pZCBhbGwoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVuc2lnbmVkIGZs YWdzLCBpbnQgdGltZW91dCkKIAogCWZvciAoaW50IHBvdCA9IDI7IHBvdCA8PSA2NDsgcG90ICo9 IDIpIHsKIAkJZm9yIChpbnQgbmN0eCA9IHBvdCAtIDE7IG5jdHggPD0gcG90ICsgMTsgbmN0eCsr KSB7Ci0JCQlpZ3RfZm9yayhjaGlsZCwgbmVuZ2luZSkgeworCQkJaWd0X2ZvcmsoY2hpbGQsIGVu Z2luZXMubmVuZ2luZXMpIHsKIAkJCQlzdHJ1Y3QgdGltZXNwZWMgc3RhcnQsIG5vdzsKIAkJCQl1 bnNpZ25lZCBpbnQgY291bnQgPSAwOwogCiAJCQkJb2JqWzBdLmhhbmRsZSA9IGdlbV9jcmVhdGUo ZmQsIDQwOTYpOwotCQkJCWV4ZWNidWYuZmxhZ3MgfD0gZW5naW5lW2NoaWxkXTsKLQkJCQlmb3Ig KGludCBsb29wID0gMDsgbG9vcCA8IEFSUkFZX1NJWkUoY29udGV4dHMpOyBsb29wKyspIHsKKwkJ CQlleGVjYnVmLmZsYWdzIHw9IGVuZ2luZXMuZW5naW5lc1tjaGlsZF0uZmxhZ3M7CisJCQkJZm9y IChpbnQgbG9vcCA9IDA7CisJCQkJICAgICBsb29wIDwgQVJSQVlfU0laRShjb250ZXh0cyk7CisJ CQkJICAgICBsb29wKyspIHsKIAkJCQkJZXhlY2J1Zi5yc3ZkMSA9IGNvbnRleHRzW2xvb3BdOwog CQkJCQlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwogCQkJCX0KQEAgLTI3OSw3ICsyODEsOCBA QCBzdGF0aWMgdm9pZCBhbGwoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVuc2lnbmVkIGZsYWdz LCBpbnQgdGltZW91dCkKIAkJCQljbG9ja19nZXR0aW1lKENMT0NLX01PTk9UT05JQywgJnN0YXJ0 KTsKIAkJCQlkbyB7CiAJCQkJCWZvciAoaW50IGxvb3AgPSAwOyBsb29wIDwgcWxlbjsgbG9vcCsr KSB7Ci0JCQkJCQlleGVjYnVmLnJzdmQxID0gY29udGV4dHNbbG9vcCAlIG5jdHhdOworCQkJCQkJ ZXhlY2J1Zi5yc3ZkMSA9CisJCQkJCQkJY29udGV4dHNbbG9vcCAlIG5jdHhdOwogCQkJCQkJZ2Vt X2V4ZWNidWYoZmQsICZleGVjYnVmKTsKIAkJCQkJfQogCQkJCQljb3VudCArPSBxbGVuOwpAQCAt MjkxLDggKzI5NCwxMSBAQCBzdGF0aWMgdm9pZCBhbGwoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUs IHVuc2lnbmVkIGZsYWdzLCBpbnQgdGltZW91dCkKIAkJCQlnZW1fY2xvc2UoZmQsIG9ialswXS5o YW5kbGUpOwogCiAJCQkJaWd0X2luZm8oIlslZDolZF0gJXM6ICUndSBjeWNsZXM6ICUuM2Z1cyVz IChlbGFwc2VkOiAlLjNmcylcbiIsCi0JCQkJCSBuY3R4LCBjaGlsZCwgbmFtZVtjaGlsZF0sIGNv dW50LCBlbGFwc2VkKCZzdGFydCwgJm5vdykqMWU2IC8gY291bnQsCi0JCQkJCSBmbGFncyAmIElO VEVSUlVQVElCTEUgPyAiIChpbnRlcnJ1cHRpYmxlKSIgOiAiIiwKKwkJCQkJIG5jdHgsIGNoaWxk LAorCQkJCQkgZW5naW5lcy5lbmdpbmVzW2NoaWxkXS5uYW1lLCBjb3VudCwKKwkJCQkJIGVsYXBz ZWQoJnN0YXJ0LCAmbm93KSAqIDFlNiAvIGNvdW50LAorCQkJCQkgZmxhZ3MgJiBJTlRFUlJVUFRJ QkxFID8KKwkJCQkJICIgKGludGVycnVwdGlibGUpIiA6ICIiLAogCQkJCQkgZWxhcHNlZCgmc3Rh cnQsICZub3cpKTsKIAkJCX0KIAkJCWlndF93YWl0Y2hpbGRyZW4oKTsKQEAgLTMwNiw2ICszMTIs NyBAQCBzdGF0aWMgdm9pZCBhbGwoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIHVuc2lnbmVkIGZs YWdzLCBpbnQgdGltZW91dCkKIGlndF9tYWluCiB7CiAJY29uc3QgaW50IG5jcHVzID0gc3lzY29u ZihfU0NfTlBST0NFU1NPUlNfT05MTik7CisJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9l bmdpbmUyICplMjsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZSAqZTsKIAlz dGF0aWMgY29uc3Qgc3RydWN0IHsKIAkJY29uc3QgY2hhciAqbmFtZTsKQEAgLTMzOCw3ICszNDUs NDIgQEAgaWd0X21haW4KIAkJaWd0X2ZvcmtfaGFuZ19kZXRlY3RvcihmZCk7CiAJfQogCisJLyog TGVnYWN5IHRlc3RpbmcgbXVzdCBiZSBmaXJzdC4gKi8KIAlmb3IgKGUgPSBpbnRlbF9leGVjdXRp b25fZW5naW5lczsgZS0+bmFtZTsgZSsrKSB7CisJCWUyID0gZ2VtX2ViX2ZsYWdzX3RvX2VuZ2lu ZShlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOworCQlpZiAoIWUyKQorCQkJY29udGludWU7IC8qIEk5 MTVfRVhFQ19CU0Qgd2l0aCBubyByaW5nIHNlbGVjdG9ycyAqLworCisJCWZvciAodHlwZW9mKCpw aGFzZXMpICpwID0gcGhhc2VzOyBwLT5uYW1lOyBwKyspIHsKKwkJCWlndF9zdWJ0ZXN0X2dyb3Vw IHsKKwkJCQlpZ3RfZml4dHVyZSB7CisJCQkJCWdlbV9yZXF1aXJlX3JpbmcoZmQsIGUyLT5mbGFn cyk7CisJCQkJCWlmIChwLT5yZXF1aXJlKQorCQkJCQkJaWd0X3JlcXVpcmUocC0+cmVxdWlyZShm ZCkpOworCQkJCX0KKworCQkJCWlndF9zdWJ0ZXN0X2YoImxlZ2FjeS0lcyVzIiwgZS0+bmFtZSwg cC0+bmFtZSkKKwkJCQkJc2luZ2xlKGZkLCBsaWdodCwgZTIsIHAtPmZsYWdzLCAxLCA1KTsKKwor CQkJCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKKworCQkJCWlndF9zdWJ0ZXN0X2YoImxlZ2Fj eS0lcy1oZWF2eSVzIiwKKwkJCQkJICAgICAgZS0+bmFtZSwgcC0+bmFtZSkKKwkJCQkJc2luZ2xl KGZkLCBoZWF2eSwgZTIsIHAtPmZsYWdzLCAxLCA1KTsKKwkJCQlpZ3Rfc3VidGVzdF9mKCJsZWdh Y3ktJXMtZm9ya2VkJXMiLAorCQkJCQkgICAgICBlLT5uYW1lLCBwLT5uYW1lKQorCQkJCQlzaW5n bGUoZmQsIGxpZ2h0LCBlMiwgcC0+ZmxhZ3MsIG5jcHVzLAorCQkJCQkgICAgICAgMTUwKTsKKwkJ CQlpZ3Rfc3VidGVzdF9mKCJsZWdhY3ktJXMtZm9ya2VkLWhlYXZ5JXMiLAorCQkJCQkgICAgICBl LT5uYW1lLCBwLT5uYW1lKQorCQkJCQlzaW5nbGUoZmQsIGhlYXZ5LCBlMiwgcC0+ZmxhZ3MsIG5j cHVzLAorCQkJCQkgICAgICAgMTUwKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIE11c3QgY29tZSBh ZnRlciBsZWdhY3kgc3VidGVzdHMuICovCisJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQs IGUyKSB7CiAJCWZvciAodHlwZW9mKCpwaGFzZXMpICpwID0gcGhhc2VzOyBwLT5uYW1lOyBwKysp IHsKIAkJCWlndF9zdWJ0ZXN0X2dyb3VwIHsKIAkJCQlpZ3RfZml4dHVyZSB7CkBAIC0zNDYsMzMg KzM4OCwzNiBAQCBpZ3RfbWFpbgogCQkJCQkJaWd0X3JlcXVpcmUocC0+cmVxdWlyZShmZCkpOwog CQkJCX0KIAotCQkJCWlndF9zdWJ0ZXN0X2YoIiVzJXMlcyIsIGUtPmV4ZWNfaWQgPT0gMCA/ICJi YXNpYy0iIDogIiIsIGUtPm5hbWUsIHAtPm5hbWUpCi0JCQkJCXNpbmdsZShmZCwgbGlnaHQsIGUs IHAtPmZsYWdzLCAxLCA1KTsKKwkJCQlpZ3Rfc3VidGVzdF9mKCIlcyVzIiwgZTItPm5hbWUsIHAt Pm5hbWUpCisJCQkJCXNpbmdsZShmZCwgbGlnaHQsIGUyLCBwLT5mbGFncywgMSwgNSk7CiAKIAkJ CQlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CiAKLQkJCQlpZ3Rfc3VidGVzdF9mKCIlcyVzLWhl YXZ5JXMiLCBlLT5leGVjX2lkID09IDAgPyAiYmFzaWMtIiA6ICIiLCBlLT5uYW1lLCBwLT5uYW1l KQotCQkJCQlzaW5nbGUoZmQsIGhlYXZ5LCBlLCBwLT5mbGFncywgMSwgNSk7Ci0JCQkJaWd0X3N1 YnRlc3RfZigiZm9ya2VkLSVzJXMiLCBlLT5uYW1lLCBwLT5uYW1lKQotCQkJCQlzaW5nbGUoZmQs IGxpZ2h0LCBlLCBwLT5mbGFncywgbmNwdXMsIDE1MCk7Ci0JCQkJaWd0X3N1YnRlc3RfZigiZm9y a2VkLSVzLWhlYXZ5JXMiLCBlLT5uYW1lLCBwLT5uYW1lKQotCQkJCQlzaW5nbGUoZmQsIGhlYXZ5 LCBlLCBwLT5mbGFncywgbmNwdXMsIDE1MCk7CisJCQkJaWd0X3N1YnRlc3RfZigiJXMtaGVhdnkl cyIsIGUyLT5uYW1lLCBwLT5uYW1lKQorCQkJCQlzaW5nbGUoZmQsIGhlYXZ5LCBlMiwgcC0+Zmxh Z3MsIDEsIDUpOworCQkJCWlndF9zdWJ0ZXN0X2YoIiVzLWZvcmtlZCVzIiwgZTItPm5hbWUsIHAt Pm5hbWUpCisJCQkJCXNpbmdsZShmZCwgbGlnaHQsIGUyLCBwLT5mbGFncywgbmNwdXMsCisJCQkJ CSAgICAgICAxNTApOworCQkJCWlndF9zdWJ0ZXN0X2YoIiVzLWZvcmtlZC1oZWF2eSVzIiwKKwkJ CQkJICAgICAgZTItPm5hbWUsIHAtPm5hbWUpCisJCQkJCXNpbmdsZShmZCwgaGVhdnksIGUyLCBw LT5mbGFncywgbmNwdXMsCisJCQkJCSAgICAgICAxNTApOwogCQkJfQogCQl9CiAJfQogCi0JaWd0 X3N1YnRlc3QoImJhc2ljLWFsbC1saWdodCIpCisJaWd0X3N1YnRlc3QoImFsbC1saWdodCIpCiAJ CWFsbChmZCwgbGlnaHQsIDAsIDUpOwotCWlndF9zdWJ0ZXN0KCJiYXNpYy1hbGwtaGVhdnkiKQor CWlndF9zdWJ0ZXN0KCJhbGwtaGVhdnkiKQogCQlhbGwoZmQsIGhlYXZ5LCAwLCA1KTsKIAogCWln dF9zdWJ0ZXN0X2dyb3VwIHsKIAkJaWd0X2ZpeHR1cmUgewogCQkJaWd0X3JlcXVpcmUoZ2VtX2hh c19xdWV1ZXMoZmQpKTsKIAkJfQotCQlpZ3Rfc3VidGVzdCgiYmFzaWMtcXVldWUtbGlnaHQiKQor CQlpZ3Rfc3VidGVzdCgicXVldWUtbGlnaHQiKQogCQkJYWxsKGZkLCBsaWdodCwgUVVFVUUsIDUp OwotCQlpZ3Rfc3VidGVzdCgiYmFzaWMtcXVldWUtaGVhdnkiKQorCQlpZ3Rfc3VidGVzdCgicXVl dWUtaGVhdnkiKQogCQkJYWxsKGZkLCBoZWF2eSwgUVVFVUUsIDUpOwogCX0KIApkaWZmIC0tZ2l0 IGEvdGVzdHMvaW50ZWwtY2kvYmxhY2tsaXN0LnR4dCBiL3Rlc3RzL2ludGVsLWNpL2JsYWNrbGlz dC50eHQKaW5kZXggMmE1ODkzY2UxYjM3Li44ZTNkYWZhOTgzNmIgMTAwNjQ0Ci0tLSBhL3Rlc3Rz L2ludGVsLWNpL2JsYWNrbGlzdC50eHQKKysrIGIvdGVzdHMvaW50ZWwtY2kvYmxhY2tsaXN0LnR4 dApAQCAtMjUsNyArMjUsNyBAQCBpZ3RAZ2VtX2NzX3ByZWZldGNoKEAuKik/CiBpZ3RAZ2VtX2N0 eF9jcmVhdGVAKD8hLipiYXNpYykuKgogaWd0QGdlbV9jdHhfZXhlY0AoPyEuKmJhc2ljKS4qCiBp Z3RAZ2VtX2N0eF9zaGFyZWRAKmV4aGF1c3QqCi1pZ3RAZ2VtX2N0eF9zd2l0Y2hAKD8hLipiYXNp YykuKgoraWd0QGdlbV9jdHhfc3dpdGNoQC4qKGZvcmtlZHxpbnRlcnJ1cHRpYmxlKS4qCiBpZ3RA Z2VtX2N0eF90aHJhc2goQC4qKT8KIGlndEBnZW1fZXZpY3RfYWxpZ25tZW50KEAuKik/CiBpZ3RA Z2VtX2V2aWN0X2V2ZXJ5dGhpbmcoQC4qKT8KZGlmZiAtLWdpdCBhL3Rlc3RzL2ludGVsLWNpL2Zh c3QtZmVlZGJhY2sudGVzdGxpc3QgYi90ZXN0cy9pbnRlbC1jaS9mYXN0LWZlZWRiYWNrLnRlc3Rs aXN0CmluZGV4IDU4ZTZiNWM1Zjg4Mi4uY2ZlNjEwMmEzOWY3IDEwMDY0NAotLS0gYS90ZXN0cy9p bnRlbC1jaS9mYXN0LWZlZWRiYWNrLnRlc3RsaXN0CisrKyBiL3Rlc3RzL2ludGVsLWNpL2Zhc3Qt ZmVlZGJhY2sudGVzdGxpc3QKQEAgLTE0LDcgKzE0LDggQEAgaWd0QGdlbV9jdHhfY3JlYXRlQGJh c2ljLWZpbGVzCiBpZ3RAZ2VtX2N0eF9leGVjQGJhc2ljCiBpZ3RAZ2VtX2N0eF9wYXJhbUBiYXNp YwogaWd0QGdlbV9jdHhfcGFyYW1AYmFzaWMtZGVmYXVsdAotaWd0QGdlbV9jdHhfc3dpdGNoQGJh c2ljLWRlZmF1bHQKK2lndEBnZW1fY3R4X3N3aXRjaEBsZWdhY3ktcmVuZGVyCitpZ3RAZ2VtX2N0 eF9zd2l0Y2hAcmNzMAogaWd0QGdlbV9leGVjX2Jhc2ljQGJhc2ljLWFsbAogaWd0QGdlbV9leGVj X2NyZWF0ZUBiYXNpYwogaWd0QGdlbV9leGVjX2ZlbmNlQGJhc2ljLWJ1c3ktZGVmYXVsdAotLSAK Mi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpp Z3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=