From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 835CA6E512 for ; Fri, 2 Nov 2018 13:27:02 +0000 (UTC) From: Petri Latvala Date: Fri, 2 Nov 2018 15:26:58 +0200 Message-Id: <20181102132658.30579-1-petri.latvala@intel.com> In-Reply-To: <20181102125317.30288-1-petri.latvala@intel.com> References: <20181102125317.30288-1-petri.latvala@intel.com> Subject: [igt-dev] [PATCH i-g-t v3 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 ZyAoQ2hyaXMpCiAtIFVzZSBnZXRsaW5lIGluc3RlYWQgb2YgZmdldHMgKENocmlzKQp2MzoKIC0g Rml4IGJyYWluZmFydCB3aXRoIGxvY2tkZXAKClNpZ25lZC1vZmYtYnk6IFBldHJpIExhdHZhbGEg PHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgpDYzogQXJrYWRpdXN6IEhpbGVyIDxhcmthZGl1c3ou aGlsZXJAaW50ZWwuY29tPgpDYzogVG9taSBTYXJ2ZWxhIDx0b21pLnAuc2FydmVsYUBpbnRlbC5j b20+CkNjOiBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BsaW51eC5pbnRlbC5jb20+CkNjOiBE YW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogcnVubmVyL2V4ZWN1dG9yLmMgICAgIHwgMTAz ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogcnVubmVyL3J1bm5l cl90ZXN0cy5jIHwgIDQ5ICsrKysrKysrKysrKysrKysrKy0tCiBydW5uZXIvc2V0dGluZ3MuYyAg ICAgfCAgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBydW5uZXIvc2V0dGluZ3Mu aCAgICAgfCAgIDggKysrLQogNCBmaWxlcyBjaGFuZ2VkLCAyMTcgaW5zZXJ0aW9ucygrKSwgMTgg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvcnVubmVyL2V4ZWN1dG9yLmMgYi9ydW5uZXIvZXhl Y3V0b3IuYwppbmRleCBmYzc5Zjc3Mi4uNTdlOTRiMjYgMTAwNjQ0Ci0tLSBhL3J1bm5lci9leGVj dXRvci5jCisrKyBiL3J1bm5lci9leGVjdXRvci5jCkBAIC0xMDgsNiArMTA4LDkwIEBAIHN0YXRp YyB2b2lkIHBpbmdfd2F0Y2hkb2dzKHZvaWQpCiAJfQogfQogCitzdGF0aWMgYm9vbCBoYW5kbGVf bG9ja2RlcChzdHJ1Y3Qgc2V0dGluZ3MgKnNldHRpbmdzKQoreworCUZJTEUgKmYgPSBmb3Blbigi L3Byb2MvbG9ja2RlcF9zdGF0cyIsICJyIik7CisJY29uc3QgY2hhciAqZGVidWdfbG9ja3NfbGlu ZSA9ICIgZGVidWdfbG9ja3M6IjsKKwljaGFyICpidWYgPSBOVUxMOworCXNpemVfdCBidWZzaXpl ID0gMDsKKwlpbnQgdmFsOworCWJvb2wgcmV0ID0gZmFsc2U7CisKKwlpZiAoIWYpCisJCXJldHVy biBmYWxzZTsKKworCXdoaWxlIChnZXRsaW5lKCZidWYsICZidWZzaXplLCBmKSA+IDApIHsKKwkJ aWYgKCFzdHJuY21wKGJ1ZiwgZGVidWdfbG9ja3NfbGluZSwgc3RybGVuKGRlYnVnX2xvY2tzX2xp bmUpKSkgeworCQkJY2hhciAqcCA9IGJ1ZiArIHN0cmxlbihkZWJ1Z19sb2Nrc19saW5lKTsKKwkJ CWlmIChzc2NhbmYocCwgIiVkIiwgJnZhbCkgPT0gMSAmJgorCQkJICAgIHZhbCAhPSAxKSB7CisJ CQkJaWYgKHNldHRpbmdzLT5sb2dfbGV2ZWwgPj0gTE9HX0xFVkVMX05PUk1BTCkgeworCQkJCQlm cHJpbnRmKHN0ZGVyciwgIkxvY2tkZXAgdHJpZ2dlcmVkLCBhYm9ydGluZ1xuIik7CisJCQkJfQor CQkJCXJldCA9IHRydWU7CisJCQl9CisKKwkJCWJyZWFrOworCQl9CisJfQorCisJZmNsb3NlKGYp OworCWZyZWUoYnVmKTsKKwlyZXR1cm4gcmV0OworfQorCitzdGF0aWMgYm9vbCBoYW5kbGVfdGFp bnQoc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncykKK3sKKwlGSUxFICpmID0gZm9wZW4oIi9wcm9j L3N5cy9rZXJuZWwvdGFpbnRlZCIsICJyIik7CisJaW50IHM7CisJdW5zaWduZWQgbG9uZyB0YWlu dDsKKwl1bnNpZ25lZCBsb25nIGJhZF90YWludHMgPQorCQkweDIwICB8IC8qIFRBSU5UX1BBR0Ug Ki8KKwkJMHg4MCAgfCAvKiBUQUlOVF9ESUUgKi8KKwkJMHgyMDA7IC8qIFRBSU5UX09PUFMgKi8K KworCWlmICghZikKKwkJcmV0dXJuIGZhbHNlOworCisJcyA9IGZzY2FuZihmLCAiJWx1IiwgJnRh aW50KTsKKwlmY2xvc2UoZik7CisKKwlpZiAocyAhPSAxKQorCQlyZXR1cm4gZmFsc2U7CisKKwlp ZiAodGFpbnQgJiBiYWRfdGFpbnRzKSB7CisJCWlmIChzZXR0aW5ncy0+bG9nX2xldmVsID49IExP R19MRVZFTF9OT1JNQUwpIHsKKwkJCWZwcmludGYoc3RkZXJyLCAiS2VybmVsIHRhaW50ZWQgKDB4 JWx4KSwgYWJvcnRpbmdcbiIsIHRhaW50KTsKKwkJfQorCisJCXJldHVybiB0cnVlOworCX0KKwor CXJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHN0cnVjdCB7CisJaW50IGNvbmRpdGlvbjsKKwli b29sICgqaGFuZGxlcikoc3RydWN0IHNldHRpbmdzKik7Cit9IGFib3J0X2hhbmRsZXJzW10gPSB7 CisJeyBBQk9SVF9MT0NLREVQLCBoYW5kbGVfbG9ja2RlcCB9LAorCXsgQUJPUlRfVEFJTlQsIGhh bmRsZV90YWludCB9LAorCXsgMCwgMCB9LAorfTsKKworc3RhdGljIGJvb2wgbmVlZF90b19hYm9y dChzdHJ1Y3Qgc2V0dGluZ3MqIHNldHRpbmdzKQoreworCXR5cGVvZigqYWJvcnRfaGFuZGxlcnMp ICppdDsKKworCWZvciAoaXQgPSBhYm9ydF9oYW5kbGVyczsgaXQtPmNvbmRpdGlvbjsgaXQrKykg eworCQlpZiAoc2V0dGluZ3MtPmFib3J0X21hc2sgJiBpdC0+Y29uZGl0aW9uICYmCisJCSAgICBp dC0+aGFuZGxlcihzZXR0aW5ncykpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFs c2U7Cit9CisKIHN0YXRpYyB2b2lkIHBydW5lX3N1YnRlc3Qoc3RydWN0IGpvYl9saXN0X2VudHJ5 ICplbnRyeSwgY2hhciAqc3VidGVzdCkKIHsKIAljaGFyICpleGNsOwpAQCAtMTEwMiwxMiArMTE4 NiwxOSBAQCBib29sIGV4ZWN1dGUoc3RydWN0IGV4ZWN1dGVfc3RhdGUgKnN0YXRlLAogCiAJZm9y ICg7IHN0YXRlLT5uZXh0IDwgam9iX2xpc3QtPnNpemU7CiAJICAgICBzdGF0ZS0+bmV4dCsrKSB7 Ci0JCWludCByZXN1bHQgPSBleGVjdXRlX25leHRfZW50cnkoc3RhdGUsCi0JCQkJCQlqb2JfbGlz dC0+c2l6ZSwKLQkJCQkJCSZ0aW1lX3NwZW50LAotCQkJCQkJc2V0dGluZ3MsCi0JCQkJCQkmam9i X2xpc3QtPmVudHJpZXNbc3RhdGUtPm5leHRdLAotCQkJCQkJdGVzdGRpcmZkLCByZXNkaXJmZCk7 CisJCWludCByZXN1bHQ7CisKKwkJaWYgKG5lZWRfdG9fYWJvcnQoc2V0dGluZ3MpKSB7CisJCQlz dGF0dXMgPSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisKKwkJcmVzdWx0ID0gZXhlY3V0ZV9uZXh0 X2VudHJ5KHN0YXRlLAorCQkJCQkgICAgam9iX2xpc3QtPnNpemUsCisJCQkJCSAgICAmdGltZV9z cGVudCwKKwkJCQkJICAgIHNldHRpbmdzLAorCQkJCQkgICAgJmpvYl9saXN0LT5lbnRyaWVzW3N0 YXRlLT5uZXh0XSwKKwkJCQkJICAgIHRlc3RkaXJmZCwgcmVzZGlyZmQpOwogCiAJCWlmIChyZXN1 bHQgPCAwKSB7CiAJCQlzdGF0dXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3J1bm5lci9ydW5uZXJf dGVzdHMuYyBiL3J1bm5lci9ydW5uZXJfdGVzdHMuYwppbmRleCA5YzBmOWViMC4uODI5YzYwYzMg MTAwNjQ0Ci0tLSBhL3J1bm5lci9ydW5uZXJfdGVzdHMuYworKysgYi9ydW5uZXIvcnVubmVyX3Rl c3RzLmMKQEAgLTE0Miw3ICsxNDIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfc2V0dGluZ3NfZXF1 YWwoc3RydWN0IHNldHRpbmdzICpvbmUsIHN0cnVjdCBzZXR0aW5ncyAqdHdvKQogCSAqIFJlZ2V4 IGxpc3RzIGFyZSBub3Qgc2VyaWFsaXplZCwgYW5kIHRodXMgd29uJ3QgYmUgY29tcGFyZWQKIAkg KiBoZXJlLgogCSAqLwotCWlndF9hc3NlcnRfZXEob25lLT5hYm9ydF9vbl9lcnJvciwgdHdvLT5h Ym9ydF9vbl9lcnJvcik7CisJaWd0X2Fzc2VydF9lcShvbmUtPmFib3J0X21hc2ssIHR3by0+YWJv cnRfbWFzayk7CiAJaWd0X2Fzc2VydF9lcXN0cihvbmUtPnRlc3RfbGlzdCwgdHdvLT50ZXN0X2xp c3QpOwogCWlndF9hc3NlcnRfZXFzdHIob25lLT5uYW1lLCB0d28tPm5hbWUpOwogCWlndF9hc3Nl cnRfZXEob25lLT5kcnlfcnVuLCB0d28tPmRyeV9ydW4pOwpAQCAtMjA4LDcgKzIwOCw3IEBAIGln dF9tYWluCiAKIAkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFy Z3YsICZzZXR0aW5ncykpOwogCi0JCWlndF9hc3NlcnQoIXNldHRpbmdzLmFib3J0X29uX2Vycm9y KTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCAwKTsKIAkJaWd0X2Fzc2Vy dCghc2V0dGluZ3MudGVzdF9saXN0KTsKIAkJaWd0X2Fzc2VydF9lcXN0cihzZXR0aW5ncy5uYW1l LCAicGF0aC10by1yZXN1bHRzIik7CiAJCWlndF9hc3NlcnQoIXNldHRpbmdzLmRyeV9ydW4pOwpA QCAtMzIzLDcgKzMyMyw3IEBAIGlndF9tYWluCiAJCXNldGVudigiSUdUX1RFU1RfUk9PVCIsIHRl c3RkYXRhZGlyLCAxKTsKIAkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJn diksIGFyZ3YsICZzZXR0aW5ncykpOwogCi0JCWlndF9hc3NlcnQoIXNldHRpbmdzLmFib3J0X29u X2Vycm9yKTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCAwKTsKIAkJaWd0 X2Fzc2VydCghc2V0dGluZ3MudGVzdF9saXN0KTsKIAkJaWd0X2Fzc2VydF9lcXN0cihzZXR0aW5n cy5uYW1lLCAicGF0aC10by1yZXN1bHRzIik7CiAJCWlndF9hc3NlcnQoIXNldHRpbmdzLmRyeV9y dW4pOwpAQCAtMzQ4LDcgKzM0OCw3IEBAIGlndF9tYWluCiAJaWd0X3N1YnRlc3QoInBhcnNlLWFs bC1zZXR0aW5ncyIpIHsKIAkJY2hhciAqYXJndltdID0geyAicnVubmVyIiwKIAkJCQkgIi1uIiwg ImZvbyIsCi0JCQkJICItLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvciIsCisJCQkJICItLWFib3J0 LW9uLW1vbml0b3JlZC1lcnJvcj10YWludCxsb2NrZGVwIiwKIAkJCQkgIi0tdGVzdC1saXN0Iiwg InBhdGgtdG8tdGVzdC1saXN0IiwKIAkJCQkgIi0taWdub3JlLW1pc3NpbmciLAogCQkJCSAiLS1k cnktcnVuIiwKQEAgLTM3MCw3ICszNzAsNyBAQCBpZ3RfbWFpbgogCiAJCWlndF9hc3NlcnQocGFy c2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKIAotCQlpZ3Rf YXNzZXJ0KHNldHRpbmdzLmFib3J0X29uX2Vycm9yKTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5n cy5hYm9ydF9tYXNrLCBBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApOwogCQlpZ3RfYXNzZXJ0 KHN0cnN0cihzZXR0aW5ncy50ZXN0X2xpc3QsICJwYXRoLXRvLXRlc3QtbGlzdCIpICE9IE5VTEwp OwogCQlpZ3RfYXNzZXJ0X2Vxc3RyKHNldHRpbmdzLm5hbWUsICJmb28iKTsKIAkJaWd0X2Fzc2Vy dChzZXR0aW5ncy5kcnlfcnVuKTsKQEAgLTQyOCw2ICs0MjgsNDUgQEAgaWd0X21haW4KIAkJaWd0 X2Fzc2VydF9lcShzZXR0aW5ncy5sb2dfbGV2ZWwsIExPR19MRVZFTF9WRVJCT1NFKTsKIAl9CiAK KwlpZ3Rfc3VidGVzdCgiYWJvcnQtY29uZGl0aW9ucyIpIHsKKwkJY2hhciAqYXJndltdID0geyAi cnVubmVyIiwKKwkJCQkgIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPXRhaW50IiwKKwkJCQkg InRlc3Qtcm9vdC1kaXIiLAorCQkJCSAicmVzdWx0cy1wYXRoIiwKKwkJfTsKKworCQlpZ3RfYXNz ZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7CisJ CWlndF9hc3NlcnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywgQUJPUlRfVEFJTlQpOworCisJCWFy Z3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3I9bG9ja2RlcCI7CisJCWlndF9hc3Nl cnQocGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKKwkJ aWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCBBQk9SVF9MT0NLREVQKTsKKworCQlh cmd2WzFdID0gIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPXRhaW50IjsKKwkJaWd0X2Fzc2Vy dChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOworCQlp Z3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFib3J0X21hc2ssIEFCT1JUX1RBSU5UKTsKKworCQlhcmd2 WzFdID0gIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPWxvY2tkZXAsdGFpbnQiOworCQlpZ3Rf YXNzZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7 CisJCWlndF9hc3NlcnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywgQUJPUlRfVEFJTlQgfCBBQk9S VF9MT0NLREVQKTsKKworCQlhcmd2WzFdID0gIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPXRh aW50LGxvY2tkZXAiOworCQlpZ3RfYXNzZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2 KSwgYXJndiwgJnNldHRpbmdzKSk7CisJCWlndF9hc3NlcnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFz aywgQUJPUlRfVEFJTlQgfCBBQk9SVF9MT0NLREVQKTsKKworCQlhcmd2WzFdID0gIi0tYWJvcnQt b24tbW9uaXRvcmVkLWVycm9yPWFsbCI7CisJCWlndF9hc3NlcnQocGFyc2Vfb3B0aW9ucyhBUlJB WV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5n cy5hYm9ydF9tYXNrLCBBQk9SVF9BTEwpOworCisJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25p dG9yZWQtZXJyb3I9IjsKKwkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJn diksIGFyZ3YsICZzZXR0aW5ncykpOworCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFib3J0X21h c2ssIDApOworCisJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3I9ZG9lc25v dGV4aXN0IjsKKwkJaWd0X2Fzc2VydCghcGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBh cmd2LCAmc2V0dGluZ3MpKTsKKworCX0KKwogCWlndF9zdWJ0ZXN0KCJwYXJzZS1jbGVhcnMtb2xk LWRhdGEiKSB7CiAJCWNoYXIgKmFyZ3ZbXSA9IHsgInJ1bm5lciIsCiAJCQkJICItbiIsICJmb28i LApkaWZmIC0tZ2l0IGEvcnVubmVyL3NldHRpbmdzLmMgYi9ydW5uZXIvc2V0dGluZ3MuYwppbmRl eCBlMjQwMTQ1NS4uZTA1NjQ5M2EgMTAwNjQ0Ci0tLSBhL3J1bm5lci9zZXR0aW5ncy5jCisrKyBi L3J1bm5lci9zZXR0aW5ncy5jCkBAIC00MSw2ICs0MSwxNiBAQCBzdGF0aWMgc3RydWN0IHsKIAl7 IDAsIDAgfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgeworCWludCB2YWx1ZTsKKwljb25zdCBjaGFy ICpuYW1lOworfSBhYm9ydF9jb25kaXRpb25zW10gPSB7CisJeyBBQk9SVF9UQUlOVCwgInRhaW50 IiB9LAorCXsgQUJPUlRfTE9DS0RFUCwgImxvY2tkZXAiIH0sCisJeyBBQk9SVF9BTEwsICJhbGwi IH0sCisJeyAwLCAwIH0sCit9OworCiBzdGF0aWMgYm9vbCBzZXRfbG9nX2xldmVsKHN0cnVjdCBz ZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IGNoYXIgKmxldmVsKQogewogCXR5cGVvZigqbG9nX2xl dmVscykgKml0OwpAQCAtNTUsNiArNjUsNTIgQEAgc3RhdGljIGJvb2wgc2V0X2xvZ19sZXZlbChz dHJ1Y3Qgc2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBjaGFyICpsZXZlbCkKIAlyZXR1cm4gZmFs c2U7CiB9CiAKK3N0YXRpYyBib29sIHNldF9hYm9ydF9jb25kaXRpb24oc3RydWN0IHNldHRpbmdz KiBzZXR0aW5ncywgY29uc3QgY2hhciAqY29uZCkKK3sKKwl0eXBlb2YoKmFib3J0X2NvbmRpdGlv bnMpICppdDsKKworCWlmICghY29uZCkgeworCQlzZXR0aW5ncy0+YWJvcnRfbWFzayA9IEFCT1JU X0FMTDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYgKHN0cmxlbihjb25kKSA9PSAwKSB7CisJ CXNldHRpbmdzLT5hYm9ydF9tYXNrID0gMDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJZm9yIChp dCA9IGFib3J0X2NvbmRpdGlvbnM7IGl0LT5uYW1lOyBpdCsrKSB7CisJCWlmICghc3RyY21wKGNv bmQsIGl0LT5uYW1lKSkgeworCQkJc2V0dGluZ3MtPmFib3J0X21hc2sgfD0gaXQtPnZhbHVlOwor CQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBi b29sIHBhcnNlX2Fib3J0X2NvbmRpdGlvbnMoc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncywgY29u c3QgY2hhciAqb3B0YXJnKQoreworCWNoYXIgKmR1cCwgKnA7CisJaWYgKCFvcHRhcmcpCisJCXJl dHVybiBzZXRfYWJvcnRfY29uZGl0aW9uKHNldHRpbmdzLCBOVUxMKTsKKworCWR1cCA9IHN0cmR1 cChvcHRhcmcpOworCXdoaWxlIChkdXApIHsKKwkJaWYgKChwID0gc3RyY2hyKGR1cCwgJywnKSkg IT0gTlVMTCkgeworCQkJKnAgPSAnXDAnOworCQkJcCsrOworCQl9CisKKwkJaWYgKCFzZXRfYWJv cnRfY29uZGl0aW9uKHNldHRpbmdzLCBkdXApKQorCQkJcmV0dXJuIGZhbHNlOworCisJCWR1cCA9 IHA7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyICp1c2FnZV9z dHIgPQogCSJ1c2FnZTogcnVubmVyIFtvcHRpb25zXSBbdGVzdF9yb290XSByZXN1bHRzLXBhdGhc blxuIgogCSJPcHRpb25zOlxuIgpAQCAtNjcsOSArMTIzLDE1IEBAIHN0YXRpYyBjb25zdCBjaGFy ICp1c2FnZV9zdHIgPQogCSIgICAgICAgICAgICAgICAgICAgICAgICBSdW4gb25seSBtYXRjaGlu ZyB0ZXN0cyAoY2FuIGJlIHVzZWQgbW9yZSB0aGFuIG9uY2UpXG4iCiAJIiAgLXggPHJlZ2V4Piwg LS1leGNsdWRlLXRlc3RzIDxyZWdleD5cbiIKIAkiICAgICAgICAgICAgICAgICAgICAgICAgRXhj bHVkZSBtYXRjaGluZyB0ZXN0cyAoY2FuIGJlIHVzZWQgbW9yZSB0aGFuIG9uY2UpXG4iCi0JIiAg LS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3JcbiIKKwkiICAtLWFib3J0LW9uLW1vbml0b3JlZC1l cnJvcls9bGlzdF1cbiIKIAkiICAgICAgICAgICAgICAgICAgICAgICAgQWJvcnQgZXhlY3V0aW9u IHdoZW4gYSBmYXRhbCBjb25kaXRpb24gaXMgZGV0ZWN0ZWQuXG4iCi0JIiAgICAgICAgICAgICAg ICAgICAgICAgIDxUT0RPPlxuIgorCSIgICAgICAgICAgICAgICAgICAgICAgICBBIGNvbW1hLXNl cGFyYXRlZCBsaXN0IG9mIGNvbmRpdGlvbnMgdG8gY2hlY2sgY2FuIGJlXG4iCisJIiAgICAgICAg ICAgICAgICAgICAgICAgIGdpdmVuLiBJZiBub3QgZ2l2ZW4sIGFsbCBjb25kaXRpb25zIGFyZSBj aGVja2VkLiBBblxuIgorCSIgICAgICAgICAgICAgICAgICAgICAgICBlbXB0eSBzdHJpbmcgYXMg YSBjb25kaXRpb24gZGlzYWJsZXMgYWJvcnRpbmdcbiIKKwkiICAgICAgICAgICAgICAgICAgICAg ICAgUG9zc2libGUgY29uZGl0aW9uczpcbiIKKwkiICAgICAgICAgICAgICAgICAgICAgICAgIGxv Y2tkZXAgLSBhYm9ydCB3aGVuIGtlcm5lbCBsb2NrZGVwIGhhcyBiZWVuIGFuZ2VyZWQuXG4iCisJ IiAgICAgICAgICAgICAgICAgICAgICAgICB0YWludCAgIC0gYWJvcnQgd2hlbiBrZXJuZWwgYmVj b21lcyBmYXRhbGx5IHRhaW50ZWQuXG4iCisJIiAgICAgICAgICAgICAgICAgICAgICAgICBhbGwg ICAgIC0gYWJvcnQgZm9yIGFsbCBvZiB0aGUgYWJvdmUuXG4iCiAJIiAgLXMsIC0tc3luYyAgICAg ICAgICAgIFN5bmMgcmVzdWx0cyB0byBkaXNrIGFmdGVyIGV2ZXJ5IHRlc3RcbiIKIAkiICAtbCB7 cXVpZXQsdmVyYm9zZSxkdW1teX0sIC0tbG9nLWxldmVsIHtxdWlldCx2ZXJib3NlLGR1bW15fVxu IgogCSIgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGxvZ2dlciB2ZXJib3NpdHkgbGV2 ZWxcbiIKQEAgLTE5Myw3ICsyNTUsNyBAQCBib29sIHBhcnNlX29wdGlvbnMoaW50IGFyZ2MsIGNo YXIgKiphcmd2LAogCQl7ImRyeS1ydW4iLCBub19hcmd1bWVudCwgTlVMTCwgT1BUX0RSWV9SVU59 LAogCQl7ImluY2x1ZGUtdGVzdHMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0lOQ0xV REV9LAogCQl7ImV4Y2x1ZGUtdGVzdHMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0VY Q0xVREV9LAotCQl7ImFib3J0LW9uLW1vbml0b3JlZC1lcnJvciIsIG5vX2FyZ3VtZW50LCBOVUxM LCBPUFRfQUJPUlRfT05fRVJST1J9LAorCQl7ImFib3J0LW9uLW1vbml0b3JlZC1lcnJvciIsIG9w dGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRfQUJPUlRfT05fRVJST1J9LAogCQl7InN5bmMiLCBu b19hcmd1bWVudCwgTlVMTCwgT1BUX1NZTkN9LAogCQl7ImxvZy1sZXZlbCIsIHJlcXVpcmVkX2Fy Z3VtZW50LCBOVUxMLCBPUFRfTE9HX0xFVkVMfSwKIAkJeyJ0ZXN0LWxpc3QiLCByZXF1aXJlZF9h cmd1bWVudCwgTlVMTCwgT1BUX1RFU1RfTElTVH0sCkBAIC0yMzEsNyArMjkzLDggQEAgYm9vbCBw YXJzZV9vcHRpb25zKGludCBhcmdjLCBjaGFyICoqYXJndiwKIAkJCQlnb3RvIGVycm9yOwogCQkJ YnJlYWs7CiAJCWNhc2UgT1BUX0FCT1JUX09OX0VSUk9SOgotCQkJc2V0dGluZ3MtPmFib3J0X29u X2Vycm9yID0gdHJ1ZTsKKwkJCWlmICghcGFyc2VfYWJvcnRfY29uZGl0aW9ucyhzZXR0aW5ncywg b3B0YXJnKSkKKwkJCQlnb3RvIGVycm9yOwogCQkJYnJlYWs7CiAJCWNhc2UgT1BUX1NZTkM6CiAJ CQlzZXR0aW5ncy0+c3luYyA9IHRydWU7CkBAIC00NDQsNyArNTA3LDcgQEAgYm9vbCBzZXJpYWxp emVfc2V0dGluZ3Moc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncykKIAkJcmV0dXJuIGZhbHNlOwog CX0KIAotCVNFUklBTElaRV9MSU5FKGYsIHNldHRpbmdzLCBhYm9ydF9vbl9lcnJvciwgIiVkIik7 CisJU0VSSUFMSVpFX0xJTkUoZiwgc2V0dGluZ3MsIGFib3J0X21hc2ssICIlZCIpOwogCWlmIChz ZXR0aW5ncy0+dGVzdF9saXN0KQogCQlTRVJJQUxJWkVfTElORShmLCBzZXR0aW5ncywgdGVzdF9s aXN0LCAiJXMiKTsKIAlpZiAoc2V0dGluZ3MtPm5hbWUpCkBAIC01MDEsNyArNTY0LDcgQEAgYm9v bCByZWFkX3NldHRpbmdzKHN0cnVjdCBzZXR0aW5ncyAqc2V0dGluZ3MsIGludCBkaXJmZCkKIAog CXdoaWxlIChmc2NhbmYoZiwgIiVtcyA6ICVtcyIsICZuYW1lLCAmdmFsKSA9PSAyKSB7CiAJCWlu dCBudW12YWwgPSBhdG9pKHZhbCk7Ci0JCVBBUlNFX0xJTkUoc2V0dGluZ3MsIG5hbWUsIHZhbCwg YWJvcnRfb25fZXJyb3IsIG51bXZhbCk7CisJCVBBUlNFX0xJTkUoc2V0dGluZ3MsIG5hbWUsIHZh bCwgYWJvcnRfbWFzaywgbnVtdmFsKTsKIAkJUEFSU0VfTElORShzZXR0aW5ncywgbmFtZSwgdmFs LCB0ZXN0X2xpc3QsIHZhbCA/IHN0cmR1cCh2YWwpIDogTlVMTCk7CiAJCVBBUlNFX0xJTkUoc2V0 dGluZ3MsIG5hbWUsIHZhbCwgbmFtZSwgdmFsID8gc3RyZHVwKHZhbCkgOiBOVUxMKTsKIAkJUEFS U0VfTElORShzZXR0aW5ncywgbmFtZSwgdmFsLCBkcnlfcnVuLCBudW12YWwpOwpkaWZmIC0tZ2l0 IGEvcnVubmVyL3NldHRpbmdzLmggYi9ydW5uZXIvc2V0dGluZ3MuaAppbmRleCBiNDg5YWJjNS4u MjY3ZDcyY2YgMTAwNjQ0Ci0tLSBhL3J1bm5lci9zZXR0aW5ncy5oCisrKyBiL3J1bm5lci9zZXR0 aW5ncy5oCkBAIC0xMiw2ICsxMiwxMiBAQCBlbnVtIHsKIAlMT0dfTEVWRUxfVkVSQk9TRSA9IDEs CiB9OwogCisjZGVmaW5lIEFCT1JUX1RBSU5UICAgKDEgPDwgMCkKKyNkZWZpbmUgQUJPUlRfTE9D S0RFUCAoMSA8PCAxKQorI2RlZmluZSBBQk9SVF9BTEwgICAgIChBQk9SVF9UQUlOVCB8IEFCT1JU X0xPQ0tERVApCisKK19TdGF0aWNfYXNzZXJ0KEFCT1JUX0FMTCA9PSAoQUJPUlRfVEFJTlQgfCBB Qk9SVF9MT0NLREVQKSwgIkFCT1JUX0FMTCBtdXN0IGJlIGFsbCBjb25kaXRpb25zIGJpdHdpc2Ug b3InZCIpOworCiBzdHJ1Y3QgcmVnZXhfbGlzdCB7CiAJY2hhciAqKnJlZ2V4X3N0cmluZ3M7CiAJ cmVnZXhfdCoqIHJlZ2V4ZXM7CkBAIC0xOSw3ICsyNSw3IEBAIHN0cnVjdCByZWdleF9saXN0IHsK IH07CiAKIHN0cnVjdCBzZXR0aW5ncyB7Ci0JYm9vbCBhYm9ydF9vbl9lcnJvcjsKKwlpbnQgYWJv cnRfbWFzazsKIAljaGFyICp0ZXN0X2xpc3Q7CiAJY2hhciAqbmFtZTsKIAlib29sIGRyeV9ydW47 Ci0tIAoyLjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=