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 BA8056E4F0 for ; Fri, 2 Nov 2018 12:53:23 +0000 (UTC) From: Petri Latvala Date: Fri, 2 Nov 2018 14:53:17 +0200 Message-Id: <20181102125317.30288-1-petri.latvala@intel.com> In-Reply-To: <20181102120848.28899-1-petri.latvala@intel.com> References: <20181102120848.28899-1-petri.latvala@intel.com> Subject: [igt-dev] [PATCH i-g-t v2 1/1] runner: Implement --abort-on-monitored-error 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: igt-dev@lists.freedesktop.org Cc: Petri Latvala , Martin Peres , Tomi Sarvela List-ID: RGV2aWF0aW5nIGEgYml0IGZyb20gdGhlIHBpZ2xpdCBjb21tYW5kIGxpbmUgZmxhZywgaWd0X3J1 bm5lciB0YWtlcyBhbgpvcHRpb25hbCBjb21tYS1zZXBhcmF0ZWQgbGlzdCBhcyBhbiBhcmd1bWVu dCB0bwotLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvciBmb3IgdGhlIGxpc3Qgb2YgY29uZGl0aW9u cyB0byBhYm9ydApvbi4gV2l0aG91dCBhIGxpc3QgYWxsIHBvc3NpYmxlIGNvbmRpdGlvbnMgd2ls bCBiZSBjaGVja2VkLgoKVHdvIGNvbmRpdGlvbnMgaW1wbGVtZW50ZWQ6CiAtICJ0YWludCIgY2hl Y2tzIHRoZSBrZXJuZWwgdGFpbnQgbGV2ZWwgZm9yIFRBSU5UX1BBR0UsIFRBSU5UX0RJRSBhbmQK IFRBSU5UX09PUFMKIC0gImxvY2tkZXAiIGNoZWNrcyB0aGUga2VybmVsIGxvY2tkZXAgc3RhdHVz CgpDaGVja2luZyBpcyBkb25lIGFmdGVyIGV2ZXJ5IHRlc3QgYmluYXJ5IGV4ZWN1dGlvbiwgYW5k IGlmIGFuIGFib3J0CmNvbmRpdGlvbiBpcyBtZXQsIHRoZSByZWFzb24gaXMgcHJpbnRlZCB0byBz dGRlcnIgKHVubGVzcyBsb2cgbGV2ZWwgaXMKcXVpZXQpIGFuZCB0aGUgcnVubmVyIGRvZXNuJ3Qg ZXhlY3V0ZSBhbnkgZnVydGhlciB0ZXN0cy4gQWJvcnRpbmcKYmV0d2VlbiBzdWJ0ZXN0cyAod2hl biBydW5uaW5nIGluIC0tbXVsdGlwbGUtbW9kZSkgaXMgbm90IGRvbmUuCgpBIFRPRE8gaXRlbSBm b3IgdGhlIGZ1dHVyZSBpcyBoYXZpbmcgYWJvcnRpbmcgYXBwZWFyIGluIHRoZSB0ZXN0CnJlc3Vs dHMuCgp2MjoKIC0gUmVtZW1iZXIgdG8gZmNsb3NlCiAtIFRhaW50cyBhcmUgdW5zaWduZWQgbG9u ZyAoQ2hyaXMpCiAtIFVzZSBnZXRsaW5lIGluc3RlYWQgb2YgZmdldHMgKENocmlzKQoKU2lnbmVk LW9mZi1ieTogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+CkNjOiBBcmth ZGl1c3ogSGlsZXIgPGFya2FkaXVzei5oaWxlckBpbnRlbC5jb20+CkNjOiBUb21pIFNhcnZlbGEg PHRvbWkucC5zYXJ2ZWxhQGludGVsLmNvbT4KQ2M6IE1hcnRpbiBQZXJlcyA8bWFydGluLnBlcmVz QGxpbnV4LmludGVsLmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwu Y2g+CkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KLS0tCiBydW5u ZXIvZXhlY3V0b3IuYyAgICAgfCAxMDMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tCiBydW5uZXIvcnVubmVyX3Rlc3RzLmMgfCAgNDkgKysrKysrKysrKysrKysrKysr LS0KIHJ1bm5lci9zZXR0aW5ncy5jICAgICB8ICA3NSArKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KIHJ1bm5lci9zZXR0aW5ncy5oICAgICB8ICAgOCArKystCiA0IGZpbGVzIGNoYW5nZWQs IDIxNyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9ydW5uZXIv ZXhlY3V0b3IuYyBiL3J1bm5lci9leGVjdXRvci5jCmluZGV4IGZjNzlmNzcyLi5kZmY2YmE5ZiAx MDA2NDQKLS0tIGEvcnVubmVyL2V4ZWN1dG9yLmMKKysrIGIvcnVubmVyL2V4ZWN1dG9yLmMKQEAg LTEwOCw2ICsxMDgsOTAgQEAgc3RhdGljIHZvaWQgcGluZ193YXRjaGRvZ3Modm9pZCkKIAl9CiB9 CiAKK3N0YXRpYyBib29sIGhhbmRsZV9sb2NrZGVwKHN0cnVjdCBzZXR0aW5ncyAqc2V0dGluZ3Mp Cit7CisJRklMRSAqZiA9IGZvcGVuKCIvcHJvYy9sb2NrZGVwX3N0YXRzIiwgInIiKTsKKwljb25z dCBjaGFyICpkZWJ1Z19sb2Nrc19saW5lID0gIiBkZWJ1Z19sb2NrczoiOworCWNoYXIgKmJ1ZiA9 IE5VTEw7CisJc2l6ZV90IGJ1ZnNpemUgPSAwOworCWludCB2YWw7CisJYm9vbCByZXQgPSBmYWxz ZTsKKworCWlmICghZikKKwkJcmV0dXJuIGZhbHNlOworCisJd2hpbGUgKGdldGxpbmUoJmJ1Ziwg JmJ1ZnNpemUsIGYpID4gMCkgeworCQlpZiAoIXN0cm5jbXAoYnVmLCBkZWJ1Z19sb2Nrc19saW5l LCBzdHJsZW4oZGVidWdfbG9ja3NfbGluZSkpKSB7CisJCQljaGFyICpwID0gYnVmICsgc3RybGVu KGRlYnVnX2xvY2tzX2xpbmUpOworCQkJaWYgKHNzY2FuZihwLCAiJWQiLCAmdmFsKSA9PSAxICYm CisJCQkgICAgdmFsICE9IDApIHsKKwkJCQlpZiAoc2V0dGluZ3MtPmxvZ19sZXZlbCA+PSBMT0df TEVWRUxfTk9STUFMKSB7CisJCQkJCWZwcmludGYoc3RkZXJyLCAiTG9ja2RlcCB0cmlnZ2VyZWQs IGFib3J0aW5nXG4iKTsKKwkJCQl9CisJCQkJcmV0ID0gdHJ1ZTsKKwkJCX0KKworCQkJYnJlYWs7 CisJCX0KKwl9CisKKwlmY2xvc2UoZik7CisJZnJlZShidWYpOworCXJldHVybiByZXQ7Cit9CisK K3N0YXRpYyBib29sIGhhbmRsZV90YWludChzdHJ1Y3Qgc2V0dGluZ3MgKnNldHRpbmdzKQorewor CUZJTEUgKmYgPSBmb3BlbigiL3Byb2Mvc3lzL2tlcm5lbC90YWludGVkIiwgInIiKTsKKwlpbnQg czsKKwl1bnNpZ25lZCBsb25nIHRhaW50OworCXVuc2lnbmVkIGxvbmcgYmFkX3RhaW50cyA9CisJ CTB4MjAgIHwgLyogVEFJTlRfUEFHRSAqLworCQkweDgwICB8IC8qIFRBSU5UX0RJRSAqLworCQkw eDIwMDsgLyogVEFJTlRfT09QUyAqLworCisJaWYgKCFmKQorCQlyZXR1cm4gZmFsc2U7CisKKwlz ID0gZnNjYW5mKGYsICIlbHUiLCAmdGFpbnQpOworCWZjbG9zZShmKTsKKworCWlmIChzICE9IDEp CisJCXJldHVybiBmYWxzZTsKKworCWlmICh0YWludCAmIGJhZF90YWludHMpIHsKKwkJaWYgKHNl dHRpbmdzLT5sb2dfbGV2ZWwgPj0gTE9HX0xFVkVMX05PUk1BTCkgeworCQkJZnByaW50ZihzdGRl cnIsICJLZXJuZWwgdGFpbnRlZCAoMHglbHgpLCBhYm9ydGluZ1xuIiwgdGFpbnQpOworCQl9CisK KwkJcmV0dXJuIHRydWU7CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgc3RydWN0 IHsKKwlpbnQgY29uZGl0aW9uOworCWJvb2wgKCpoYW5kbGVyKShzdHJ1Y3Qgc2V0dGluZ3MqKTsK K30gYWJvcnRfaGFuZGxlcnNbXSA9IHsKKwl7IEFCT1JUX0xPQ0tERVAsIGhhbmRsZV9sb2NrZGVw IH0sCisJeyBBQk9SVF9UQUlOVCwgaGFuZGxlX3RhaW50IH0sCisJeyAwLCAwIH0sCit9OworCitz dGF0aWMgYm9vbCBuZWVkX3RvX2Fib3J0KHN0cnVjdCBzZXR0aW5ncyogc2V0dGluZ3MpCit7CisJ dHlwZW9mKCphYm9ydF9oYW5kbGVycykgKml0OworCisJZm9yIChpdCA9IGFib3J0X2hhbmRsZXJz OyBpdC0+Y29uZGl0aW9uOyBpdCsrKSB7CisJCWlmIChzZXR0aW5ncy0+YWJvcnRfbWFzayAmIGl0 LT5jb25kaXRpb24gJiYKKwkJICAgIGl0LT5oYW5kbGVyKHNldHRpbmdzKSkKKwkJCXJldHVybiB0 cnVlOworCX0KKworCXJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIHZvaWQgcHJ1bmVfc3VidGVz dChzdHJ1Y3Qgam9iX2xpc3RfZW50cnkgKmVudHJ5LCBjaGFyICpzdWJ0ZXN0KQogewogCWNoYXIg KmV4Y2w7CkBAIC0xMTAyLDEyICsxMTg2LDE5IEBAIGJvb2wgZXhlY3V0ZShzdHJ1Y3QgZXhlY3V0 ZV9zdGF0ZSAqc3RhdGUsCiAKIAlmb3IgKDsgc3RhdGUtPm5leHQgPCBqb2JfbGlzdC0+c2l6ZTsK IAkgICAgIHN0YXRlLT5uZXh0KyspIHsKLQkJaW50IHJlc3VsdCA9IGV4ZWN1dGVfbmV4dF9lbnRy eShzdGF0ZSwKLQkJCQkJCWpvYl9saXN0LT5zaXplLAotCQkJCQkJJnRpbWVfc3BlbnQsCi0JCQkJ CQlzZXR0aW5ncywKLQkJCQkJCSZqb2JfbGlzdC0+ZW50cmllc1tzdGF0ZS0+bmV4dF0sCi0JCQkJ CQl0ZXN0ZGlyZmQsIHJlc2RpcmZkKTsKKwkJaW50IHJlc3VsdDsKKworCQlpZiAobmVlZF90b19h Ym9ydChzZXR0aW5ncykpIHsKKwkJCXN0YXR1cyA9IGZhbHNlOworCQkJYnJlYWs7CisJCX0KKwor CQlyZXN1bHQgPSBleGVjdXRlX25leHRfZW50cnkoc3RhdGUsCisJCQkJCSAgICBqb2JfbGlzdC0+ c2l6ZSwKKwkJCQkJICAgICZ0aW1lX3NwZW50LAorCQkJCQkgICAgc2V0dGluZ3MsCisJCQkJCSAg ICAmam9iX2xpc3QtPmVudHJpZXNbc3RhdGUtPm5leHRdLAorCQkJCQkgICAgdGVzdGRpcmZkLCBy ZXNkaXJmZCk7CiAKIAkJaWYgKHJlc3VsdCA8IDApIHsKIAkJCXN0YXR1cyA9IGZhbHNlOwpkaWZm IC0tZ2l0IGEvcnVubmVyL3J1bm5lcl90ZXN0cy5jIGIvcnVubmVyL3J1bm5lcl90ZXN0cy5jCmlu ZGV4IDljMGY5ZWIwLi44MjljNjBjMyAxMDA2NDQKLS0tIGEvcnVubmVyL3J1bm5lcl90ZXN0cy5j CisrKyBiL3J1bm5lci9ydW5uZXJfdGVzdHMuYwpAQCAtMTQyLDcgKzE0Miw3IEBAIHN0YXRpYyB2 b2lkIGFzc2VydF9zZXR0aW5nc19lcXVhbChzdHJ1Y3Qgc2V0dGluZ3MgKm9uZSwgc3RydWN0IHNl dHRpbmdzICp0d28pCiAJICogUmVnZXggbGlzdHMgYXJlIG5vdCBzZXJpYWxpemVkLCBhbmQgdGh1 cyB3b24ndCBiZSBjb21wYXJlZAogCSAqIGhlcmUuCiAJICovCi0JaWd0X2Fzc2VydF9lcShvbmUt PmFib3J0X29uX2Vycm9yLCB0d28tPmFib3J0X29uX2Vycm9yKTsKKwlpZ3RfYXNzZXJ0X2VxKG9u ZS0+YWJvcnRfbWFzaywgdHdvLT5hYm9ydF9tYXNrKTsKIAlpZ3RfYXNzZXJ0X2Vxc3RyKG9uZS0+ dGVzdF9saXN0LCB0d28tPnRlc3RfbGlzdCk7CiAJaWd0X2Fzc2VydF9lcXN0cihvbmUtPm5hbWUs IHR3by0+bmFtZSk7CiAJaWd0X2Fzc2VydF9lcShvbmUtPmRyeV9ydW4sIHR3by0+ZHJ5X3J1bik7 CkBAIC0yMDgsNyArMjA4LDcgQEAgaWd0X21haW4KIAogCQlpZ3RfYXNzZXJ0KHBhcnNlX29wdGlv bnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7CiAKLQkJaWd0X2Fzc2VydCgh c2V0dGluZ3MuYWJvcnRfb25fZXJyb3IpOworCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFib3J0 X21hc2ssIDApOwogCQlpZ3RfYXNzZXJ0KCFzZXR0aW5ncy50ZXN0X2xpc3QpOwogCQlpZ3RfYXNz ZXJ0X2Vxc3RyKHNldHRpbmdzLm5hbWUsICJwYXRoLXRvLXJlc3VsdHMiKTsKIAkJaWd0X2Fzc2Vy dCghc2V0dGluZ3MuZHJ5X3J1bik7CkBAIC0zMjMsNyArMzIzLDcgQEAgaWd0X21haW4KIAkJc2V0 ZW52KCJJR1RfVEVTVF9ST09UIiwgdGVzdGRhdGFkaXIsIDEpOwogCQlpZ3RfYXNzZXJ0KHBhcnNl X29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7CiAKLQkJaWd0X2Fz c2VydCghc2V0dGluZ3MuYWJvcnRfb25fZXJyb3IpOworCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdz LmFib3J0X21hc2ssIDApOwogCQlpZ3RfYXNzZXJ0KCFzZXR0aW5ncy50ZXN0X2xpc3QpOwogCQlp Z3RfYXNzZXJ0X2Vxc3RyKHNldHRpbmdzLm5hbWUsICJwYXRoLXRvLXJlc3VsdHMiKTsKIAkJaWd0 X2Fzc2VydCghc2V0dGluZ3MuZHJ5X3J1bik7CkBAIC0zNDgsNyArMzQ4LDcgQEAgaWd0X21haW4K IAlpZ3Rfc3VidGVzdCgicGFyc2UtYWxsLXNldHRpbmdzIikgewogCQljaGFyICphcmd2W10gPSB7 ICJydW5uZXIiLAogCQkJCSAiLW4iLCAiZm9vIiwKLQkJCQkgIi0tYWJvcnQtb24tbW9uaXRvcmVk LWVycm9yIiwKKwkJCQkgIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPXRhaW50LGxvY2tkZXAi LAogCQkJCSAiLS10ZXN0LWxpc3QiLCAicGF0aC10by10ZXN0LWxpc3QiLAogCQkJCSAiLS1pZ25v cmUtbWlzc2luZyIsCiAJCQkJICItLWRyeS1ydW4iLApAQCAtMzcwLDcgKzM3MCw3IEBAIGlndF9t YWluCiAKIAkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3Ys ICZzZXR0aW5ncykpOwogCi0JCWlndF9hc3NlcnQoc2V0dGluZ3MuYWJvcnRfb25fZXJyb3IpOwor CQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFib3J0X21hc2ssIEFCT1JUX1RBSU5UIHwgQUJPUlRf TE9DS0RFUCk7CiAJCWlndF9hc3NlcnQoc3Ryc3RyKHNldHRpbmdzLnRlc3RfbGlzdCwgInBhdGgt dG8tdGVzdC1saXN0IikgIT0gTlVMTCk7CiAJCWlndF9hc3NlcnRfZXFzdHIoc2V0dGluZ3MubmFt ZSwgImZvbyIpOwogCQlpZ3RfYXNzZXJ0KHNldHRpbmdzLmRyeV9ydW4pOwpAQCAtNDI4LDYgKzQy OCw0NSBAQCBpZ3RfbWFpbgogCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmxvZ19sZXZlbCwgTE9H X0xFVkVMX1ZFUkJPU0UpOwogCX0KIAorCWlndF9zdWJ0ZXN0KCJhYm9ydC1jb25kaXRpb25zIikg eworCQljaGFyICphcmd2W10gPSB7ICJydW5uZXIiLAorCQkJCSAiLS1hYm9ydC1vbi1tb25pdG9y ZWQtZXJyb3I9dGFpbnQiLAorCQkJCSAidGVzdC1yb290LWRpciIsCisJCQkJICJyZXN1bHRzLXBh dGgiLAorCQl9OworCisJCWlndF9hc3NlcnQocGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3Yp LCBhcmd2LCAmc2V0dGluZ3MpKTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNr LCBBQk9SVF9UQUlOVCk7CisKKwkJYXJndlsxXSA9ICItLWFib3J0LW9uLW1vbml0b3JlZC1lcnJv cj1sb2NrZGVwIjsKKwkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiks IGFyZ3YsICZzZXR0aW5ncykpOworCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFib3J0X21hc2ss IEFCT1JUX0xPQ0tERVApOworCisJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJy b3I9dGFpbnQiOworCQlpZ3RfYXNzZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwg YXJndiwgJnNldHRpbmdzKSk7CisJCWlndF9hc3NlcnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywg QUJPUlRfVEFJTlQpOworCisJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3I9 bG9ja2RlcCx0YWludCI7CisJCWlndF9hc3NlcnQocGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFy Z3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9t YXNrLCBBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApOworCisJCWFyZ3ZbMV0gPSAiLS1hYm9y dC1vbi1tb25pdG9yZWQtZXJyb3I9dGFpbnQsbG9ja2RlcCI7CisJCWlndF9hc3NlcnQocGFyc2Vf b3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKKwkJaWd0X2Fzc2Vy dF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCBBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApOwor CisJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3I9YWxsIjsKKwkJaWd0X2Fz c2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOwor CQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFib3J0X21hc2ssIEFCT1JUX0FMTCk7CisKKwkJYXJn dlsxXSA9ICItLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvcj0iOworCQlpZ3RfYXNzZXJ0KHBhcnNl X29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7CisJCWlndF9hc3Nl cnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywgMCk7CisKKwkJYXJndlsxXSA9ICItLWFib3J0LW9u LW1vbml0b3JlZC1lcnJvcj1kb2Vzbm90ZXhpc3QiOworCQlpZ3RfYXNzZXJ0KCFwYXJzZV9vcHRp b25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOworCisJfQorCiAJaWd0X3N1 YnRlc3QoInBhcnNlLWNsZWFycy1vbGQtZGF0YSIpIHsKIAkJY2hhciAqYXJndltdID0geyAicnVu bmVyIiwKIAkJCQkgIi1uIiwgImZvbyIsCmRpZmYgLS1naXQgYS9ydW5uZXIvc2V0dGluZ3MuYyBi L3J1bm5lci9zZXR0aW5ncy5jCmluZGV4IGUyNDAxNDU1Li5lMDU2NDkzYSAxMDA2NDQKLS0tIGEv cnVubmVyL3NldHRpbmdzLmMKKysrIGIvcnVubmVyL3NldHRpbmdzLmMKQEAgLTQxLDYgKzQxLDE2 IEBAIHN0YXRpYyBzdHJ1Y3QgewogCXsgMCwgMCB9LAogfTsKIAorc3RhdGljIHN0cnVjdCB7CisJ aW50IHZhbHVlOworCWNvbnN0IGNoYXIgKm5hbWU7Cit9IGFib3J0X2NvbmRpdGlvbnNbXSA9IHsK Kwl7IEFCT1JUX1RBSU5ULCAidGFpbnQiIH0sCisJeyBBQk9SVF9MT0NLREVQLCAibG9ja2RlcCIg fSwKKwl7IEFCT1JUX0FMTCwgImFsbCIgfSwKKwl7IDAsIDAgfSwKK307CisKIHN0YXRpYyBib29s IHNldF9sb2dfbGV2ZWwoc3RydWN0IHNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgY2hhciAqbGV2 ZWwpCiB7CiAJdHlwZW9mKCpsb2dfbGV2ZWxzKSAqaXQ7CkBAIC01NSw2ICs2NSw1MiBAQCBzdGF0 aWMgYm9vbCBzZXRfbG9nX2xldmVsKHN0cnVjdCBzZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IGNo YXIgKmxldmVsKQogCXJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgc2V0X2Fib3J0X2Nv bmRpdGlvbihzdHJ1Y3Qgc2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBjaGFyICpjb25kKQorewor CXR5cGVvZigqYWJvcnRfY29uZGl0aW9ucykgKml0OworCisJaWYgKCFjb25kKSB7CisJCXNldHRp bmdzLT5hYm9ydF9tYXNrID0gQUJPUlRfQUxMOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpZiAo c3RybGVuKGNvbmQpID09IDApIHsKKwkJc2V0dGluZ3MtPmFib3J0X21hc2sgPSAwOworCQlyZXR1 cm4gdHJ1ZTsKKwl9CisKKwlmb3IgKGl0ID0gYWJvcnRfY29uZGl0aW9uczsgaXQtPm5hbWU7IGl0 KyspIHsKKwkJaWYgKCFzdHJjbXAoY29uZCwgaXQtPm5hbWUpKSB7CisJCQlzZXR0aW5ncy0+YWJv cnRfbWFzayB8PSBpdC0+dmFsdWU7CisJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0KKworCXJldHVy biBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgcGFyc2VfYWJvcnRfY29uZGl0aW9ucyhzdHJ1Y3Qg c2V0dGluZ3MgKnNldHRpbmdzLCBjb25zdCBjaGFyICpvcHRhcmcpCit7CisJY2hhciAqZHVwLCAq cDsKKwlpZiAoIW9wdGFyZykKKwkJcmV0dXJuIHNldF9hYm9ydF9jb25kaXRpb24oc2V0dGluZ3Ms IE5VTEwpOworCisJZHVwID0gc3RyZHVwKG9wdGFyZyk7CisJd2hpbGUgKGR1cCkgeworCQlpZiAo KHAgPSBzdHJjaHIoZHVwLCAnLCcpKSAhPSBOVUxMKSB7CisJCQkqcCA9ICdcMCc7CisJCQlwKys7 CisJCX0KKworCQlpZiAoIXNldF9hYm9ydF9jb25kaXRpb24oc2V0dGluZ3MsIGR1cCkpCisJCQly ZXR1cm4gZmFsc2U7CisKKwkJZHVwID0gcDsKKwl9CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwogc3Rh dGljIGNvbnN0IGNoYXIgKnVzYWdlX3N0ciA9CiAJInVzYWdlOiBydW5uZXIgW29wdGlvbnNdIFt0 ZXN0X3Jvb3RdIHJlc3VsdHMtcGF0aFxuXG4iCiAJIk9wdGlvbnM6XG4iCkBAIC02Nyw5ICsxMjMs MTUgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnVzYWdlX3N0ciA9CiAJIiAgICAgICAgICAgICAgICAg ICAgICAgIFJ1biBvbmx5IG1hdGNoaW5nIHRlc3RzIChjYW4gYmUgdXNlZCBtb3JlIHRoYW4gb25j ZSlcbiIKIAkiICAteCA8cmVnZXg+LCAtLWV4Y2x1ZGUtdGVzdHMgPHJlZ2V4PlxuIgogCSIgICAg ICAgICAgICAgICAgICAgICAgICBFeGNsdWRlIG1hdGNoaW5nIHRlc3RzIChjYW4gYmUgdXNlZCBt b3JlIHRoYW4gb25jZSlcbiIKLQkiICAtLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvclxuIgorCSIg IC0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yWz1saXN0XVxuIgogCSIgICAgICAgICAgICAgICAg ICAgICAgICBBYm9ydCBleGVjdXRpb24gd2hlbiBhIGZhdGFsIGNvbmRpdGlvbiBpcyBkZXRlY3Rl ZC5cbiIKLQkiICAgICAgICAgICAgICAgICAgICAgICAgPFRPRE8+XG4iCisJIiAgICAgICAgICAg ICAgICAgICAgICAgIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgY29uZGl0aW9ucyB0byBjaGVj ayBjYW4gYmVcbiIKKwkiICAgICAgICAgICAgICAgICAgICAgICAgZ2l2ZW4uIElmIG5vdCBnaXZl biwgYWxsIGNvbmRpdGlvbnMgYXJlIGNoZWNrZWQuIEFuXG4iCisJIiAgICAgICAgICAgICAgICAg ICAgICAgIGVtcHR5IHN0cmluZyBhcyBhIGNvbmRpdGlvbiBkaXNhYmxlcyBhYm9ydGluZ1xuIgor CSIgICAgICAgICAgICAgICAgICAgICAgICBQb3NzaWJsZSBjb25kaXRpb25zOlxuIgorCSIgICAg ICAgICAgICAgICAgICAgICAgICAgbG9ja2RlcCAtIGFib3J0IHdoZW4ga2VybmVsIGxvY2tkZXAg aGFzIGJlZW4gYW5nZXJlZC5cbiIKKwkiICAgICAgICAgICAgICAgICAgICAgICAgIHRhaW50ICAg LSBhYm9ydCB3aGVuIGtlcm5lbCBiZWNvbWVzIGZhdGFsbHkgdGFpbnRlZC5cbiIKKwkiICAgICAg ICAgICAgICAgICAgICAgICAgIGFsbCAgICAgLSBhYm9ydCBmb3IgYWxsIG9mIHRoZSBhYm92ZS5c biIKIAkiICAtcywgLS1zeW5jICAgICAgICAgICAgU3luYyByZXN1bHRzIHRvIGRpc2sgYWZ0ZXIg ZXZlcnkgdGVzdFxuIgogCSIgIC1sIHtxdWlldCx2ZXJib3NlLGR1bW15fSwgLS1sb2ctbGV2ZWwg e3F1aWV0LHZlcmJvc2UsZHVtbXl9XG4iCiAJIiAgICAgICAgICAgICAgICAgICAgICAgIFNldCB0 aGUgbG9nZ2VyIHZlcmJvc2l0eSBsZXZlbFxuIgpAQCAtMTkzLDcgKzI1NSw3IEBAIGJvb2wgcGFy c2Vfb3B0aW9ucyhpbnQgYXJnYywgY2hhciAqKmFyZ3YsCiAJCXsiZHJ5LXJ1biIsIG5vX2FyZ3Vt ZW50LCBOVUxMLCBPUFRfRFJZX1JVTn0sCiAJCXsiaW5jbHVkZS10ZXN0cyIsIHJlcXVpcmVkX2Fy Z3VtZW50LCBOVUxMLCBPUFRfSU5DTFVERX0sCiAJCXsiZXhjbHVkZS10ZXN0cyIsIHJlcXVpcmVk X2FyZ3VtZW50LCBOVUxMLCBPUFRfRVhDTFVERX0sCi0JCXsiYWJvcnQtb24tbW9uaXRvcmVkLWVy cm9yIiwgbm9fYXJndW1lbnQsIE5VTEwsIE9QVF9BQk9SVF9PTl9FUlJPUn0sCisJCXsiYWJvcnQt b24tbW9uaXRvcmVkLWVycm9yIiwgb3B0aW9uYWxfYXJndW1lbnQsIE5VTEwsIE9QVF9BQk9SVF9P Tl9FUlJPUn0sCiAJCXsic3luYyIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRfU1lOQ30sCiAJCXsi bG9nLWxldmVsIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIE9QVF9MT0dfTEVWRUx9LAogCQl7 InRlc3QtbGlzdCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBPUFRfVEVTVF9MSVNUfSwKQEAg LTIzMSw3ICsyOTMsOCBAQCBib29sIHBhcnNlX29wdGlvbnMoaW50IGFyZ2MsIGNoYXIgKiphcmd2 LAogCQkJCWdvdG8gZXJyb3I7CiAJCQlicmVhazsKIAkJY2FzZSBPUFRfQUJPUlRfT05fRVJST1I6 Ci0JCQlzZXR0aW5ncy0+YWJvcnRfb25fZXJyb3IgPSB0cnVlOworCQkJaWYgKCFwYXJzZV9hYm9y dF9jb25kaXRpb25zKHNldHRpbmdzLCBvcHRhcmcpKQorCQkJCWdvdG8gZXJyb3I7CiAJCQlicmVh azsKIAkJY2FzZSBPUFRfU1lOQzoKIAkJCXNldHRpbmdzLT5zeW5jID0gdHJ1ZTsKQEAgLTQ0NCw3 ICs1MDcsNyBAQCBib29sIHNlcmlhbGl6ZV9zZXR0aW5ncyhzdHJ1Y3Qgc2V0dGluZ3MgKnNldHRp bmdzKQogCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JU0VSSUFMSVpFX0xJTkUoZiwgc2V0dGluZ3Ms IGFib3J0X29uX2Vycm9yLCAiJWQiKTsKKwlTRVJJQUxJWkVfTElORShmLCBzZXR0aW5ncywgYWJv cnRfbWFzaywgIiVkIik7CiAJaWYgKHNldHRpbmdzLT50ZXN0X2xpc3QpCiAJCVNFUklBTElaRV9M SU5FKGYsIHNldHRpbmdzLCB0ZXN0X2xpc3QsICIlcyIpOwogCWlmIChzZXR0aW5ncy0+bmFtZSkK QEAgLTUwMSw3ICs1NjQsNyBAQCBib29sIHJlYWRfc2V0dGluZ3Moc3RydWN0IHNldHRpbmdzICpz ZXR0aW5ncywgaW50IGRpcmZkKQogCiAJd2hpbGUgKGZzY2FuZihmLCAiJW1zIDogJW1zIiwgJm5h bWUsICZ2YWwpID09IDIpIHsKIAkJaW50IG51bXZhbCA9IGF0b2kodmFsKTsKLQkJUEFSU0VfTElO RShzZXR0aW5ncywgbmFtZSwgdmFsLCBhYm9ydF9vbl9lcnJvciwgbnVtdmFsKTsKKwkJUEFSU0Vf TElORShzZXR0aW5ncywgbmFtZSwgdmFsLCBhYm9ydF9tYXNrLCBudW12YWwpOwogCQlQQVJTRV9M SU5FKHNldHRpbmdzLCBuYW1lLCB2YWwsIHRlc3RfbGlzdCwgdmFsID8gc3RyZHVwKHZhbCkgOiBO VUxMKTsKIAkJUEFSU0VfTElORShzZXR0aW5ncywgbmFtZSwgdmFsLCBuYW1lLCB2YWwgPyBzdHJk dXAodmFsKSA6IE5VTEwpOwogCQlQQVJTRV9MSU5FKHNldHRpbmdzLCBuYW1lLCB2YWwsIGRyeV9y dW4sIG51bXZhbCk7CmRpZmYgLS1naXQgYS9ydW5uZXIvc2V0dGluZ3MuaCBiL3J1bm5lci9zZXR0 aW5ncy5oCmluZGV4IGI0ODlhYmM1Li4yNjdkNzJjZiAxMDA2NDQKLS0tIGEvcnVubmVyL3NldHRp bmdzLmgKKysrIGIvcnVubmVyL3NldHRpbmdzLmgKQEAgLTEyLDYgKzEyLDEyIEBAIGVudW0gewog CUxPR19MRVZFTF9WRVJCT1NFID0gMSwKIH07CiAKKyNkZWZpbmUgQUJPUlRfVEFJTlQgICAoMSA8 PCAwKQorI2RlZmluZSBBQk9SVF9MT0NLREVQICgxIDw8IDEpCisjZGVmaW5lIEFCT1JUX0FMTCAg ICAgKEFCT1JUX1RBSU5UIHwgQUJPUlRfTE9DS0RFUCkKKworX1N0YXRpY19hc3NlcnQoQUJPUlRf QUxMID09IChBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApLCAiQUJPUlRfQUxMIG11c3QgYmUg YWxsIGNvbmRpdGlvbnMgYml0d2lzZSBvcidkIik7CisKIHN0cnVjdCByZWdleF9saXN0IHsKIAlj aGFyICoqcmVnZXhfc3RyaW5nczsKIAlyZWdleF90KiogcmVnZXhlczsKQEAgLTE5LDcgKzI1LDcg QEAgc3RydWN0IHJlZ2V4X2xpc3QgewogfTsKIAogc3RydWN0IHNldHRpbmdzIHsKLQlib29sIGFi b3J0X29uX2Vycm9yOworCWludCBhYm9ydF9tYXNrOwogCWNoYXIgKnRlc3RfbGlzdDsKIAljaGFy ICpuYW1lOwogCWJvb2wgZHJ5X3J1bjsKLS0gCjIuMTguMAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pZ3QtZGV2Cg==