From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4F2B26E4B7 for ; Fri, 2 Nov 2018 12:08:54 +0000 (UTC) From: Petri Latvala Date: Fri, 2 Nov 2018 14:08:48 +0200 Message-Id: <20181102120848.28899-1-petri.latvala@intel.com> Subject: [igt-dev] [PATCH i-g-t 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: Tomi Sarvela , Petri Latvala , Martin Peres List-ID: RGV2aWF0aW5nIGEgYml0IGZyb20gdGhlIHBpZ2xpdCBjb21tYW5kIGxpbmUgZmxhZywgaWd0X3J1 bm5lciB0YWtlcyBhbgpvcHRpb25hbCBjb21tYS1zZXBhcmF0ZWQgbGlzdCBhcyBhbiBhcmd1bWVu dCB0bwotLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvciBmb3IgdGhlIGxpc3Qgb2YgY29uZGl0aW9u cyB0byBhYm9ydApvbi4gV2l0aG91dCBhIGxpc3QgYWxsIHBvc3NpYmxlIGNvbmRpdGlvbnMgd2ls bCBiZSBjaGVja2VkLgoKVHdvIGNvbmRpdGlvbnMgaW1wbGVtZW50ZWQ6CiAtICJ0YWludCIgY2hl Y2tzIHRoZSBrZXJuZWwgdGFpbnQgbGV2ZWwgZm9yIFRBSU5UX1BBR0UsIFRBSU5UX0RJRSBhbmQK IFRBSU5UX09PUFMKIC0gImxvY2tkZXAiIGNoZWNrcyB0aGUga2VybmVsIGxvY2tkZXAgc3RhdHVz CgpDaGVja2luZyBpcyBkb25lIGFmdGVyIGV2ZXJ5IHRlc3QgYmluYXJ5IGV4ZWN1dGlvbiwgYW5k IGlmIGFuIGFib3J0CmNvbmRpdGlvbiBpcyBtZXQsIHRoZSByZWFzb24gaXMgcHJpbnRlZCB0byBz dGRlcnIgKHVubGVzcyBsb2cgbGV2ZWwgaXMKcXVpZXQpIGFuZCB0aGUgcnVubmVyIGRvZXNuJ3Qg ZXhlY3V0ZSBhbnkgZnVydGhlciB0ZXN0cy4gQWJvcnRpbmcKYmV0d2VlbiBzdWJ0ZXN0cyAod2hl biBydW5uaW5nIGluIC0tbXVsdGlwbGUtbW9kZSkgaXMgbm90IGRvbmUuCgpBIFRPRE8gaXRlbSBm b3IgdGhlIGZ1dHVyZSBpcyBoYXZpbmcgYWJvcnRpbmcgYXBwZWFyIGluIHRoZSB0ZXN0CnJlc3Vs dHMuCgpTaWduZWQtb2ZmLWJ5OiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNv bT4KQ2M6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNvbT4KQ2M6IFRv bWkgU2FydmVsYSA8dG9taS5wLnNhcnZlbGFAaW50ZWwuY29tPgpDYzogTWFydGluIFBlcmVzIDxt YXJ0aW4ucGVyZXNAbGludXguaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KLS0tCgpJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCB0aGlzIGlzIGF1dG9t YXRpY2FsbHkgYWN0aXZlIGluIENJLCBmb3IgaXQKZ2l2ZXMgLS1hYm9ydC1vbi1tb25pdG9yZWQt ZXJyb3Igd2l0aG91dCBhIGxpc3QgdG8gaWd0X3J1bm5lciBhbHJlYWR5LgoKCiBydW5uZXIvZXhl Y3V0b3IuYyAgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tCiBydW5uZXIvcnVubmVyX3Rlc3RzLmMgfCA0OSArKysrKysrKysrKysrKysrKysrKy0tLQog cnVubmVyL3NldHRpbmdzLmMgICAgIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0KIHJ1bm5lci9zZXR0aW5ncy5oICAgICB8ICA4ICsrKy0KIDQgZmlsZXMgY2hhbmdlZCwg MjA2IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3J1bm5lci9l eGVjdXRvci5jIGIvcnVubmVyL2V4ZWN1dG9yLmMKaW5kZXggZmM3OWY3NzIuLjk4YzMxZjM2IDEw MDY0NAotLS0gYS9ydW5uZXIvZXhlY3V0b3IuYworKysgYi9ydW5uZXIvZXhlY3V0b3IuYwpAQCAt MTA4LDYgKzEwOCw3OSBAQCBzdGF0aWMgdm9pZCBwaW5nX3dhdGNoZG9ncyh2b2lkKQogCX0KIH0K IAorc3RhdGljIGJvb2wgaGFuZGxlX2xvY2tkZXAoc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncykK K3sKKwlGSUxFICpmID0gZm9wZW4oIi9wcm9jL2xvY2tkZXBfc3RhdHMiLCAiciIpOworCWNvbnN0 IGNoYXIgKmRlYnVnX2xvY2tzX2xpbmUgPSAiIGRlYnVnX2xvY2tzOiI7CisJY2hhciBidWZbNTEy XTsKKwlpbnQgdmFsOworCisJaWYgKCFmKQorCQlyZXR1cm4gZmFsc2U7CisKKwl3aGlsZSAoZmdl dHMoYnVmLCBzaXplb2YoYnVmKSwgZikgIT0gTlVMTCkgeworCQlpZiAoIXN0cm5jbXAoYnVmLCBk ZWJ1Z19sb2Nrc19saW5lLCBzdHJsZW4oZGVidWdfbG9ja3NfbGluZSkpKSB7CisJCQljaGFyICpw ID0gYnVmICsgc3RybGVuKGRlYnVnX2xvY2tzX2xpbmUpOworCQkJaWYgKHNzY2FuZihwLCAiJWQi LCAmdmFsKSA9PSAxICYmCisJCQkgICAgdmFsICE9IDApIHsKKwkJCQlpZiAoc2V0dGluZ3MtPmxv Z19sZXZlbCA+PSBMT0dfTEVWRUxfTk9STUFMKSB7CisJCQkJCWZwcmludGYoc3RkZXJyLCAiTG9j a2RlcCB0cmlnZ2VyZWQsIGFib3J0aW5nXG4iKTsKKwkJCQl9CisJCQkJcmV0dXJuIHRydWU7CisJ CQl9CisKKwkJCWJyZWFrOworCQl9CisJfQorCisJcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMg Ym9vbCBoYW5kbGVfdGFpbnQoc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncykKK3sKKwlGSUxFICpm ID0gZm9wZW4oIi9wcm9jL3N5cy9rZXJuZWwvdGFpbnRlZCIsICJyIik7CisJaW50IHRhaW50Owor CWludCBiYWRfdGFpbnRzID0KKwkJMHgyMCAgfCAvKiBUQUlOVF9QQUdFICovCisJCTB4ODAgIHwg LyogVEFJTlRfRElFICovCisJCTB4MjAwOyAvKiBUQUlOVF9PT1BTICovCisKKwlpZiAoIWYgfHwg ZnNjYW5mKGYsICIlZCIsICZ0YWludCkgIT0gMSkKKwkJcmV0dXJuIGZhbHNlOworCisJaWYgKHRh aW50ICYgYmFkX3RhaW50cykgeworCQlpZiAoc2V0dGluZ3MtPmxvZ19sZXZlbCA+PSBMT0dfTEVW RUxfTk9STUFMKSB7CisJCQlmcHJpbnRmKHN0ZGVyciwgIktlcm5lbCB0YWludGVkICgweCV4KSwg YWJvcnRpbmdcbiIsIHRhaW50KTsKKwkJfQorCisJCXJldHVybiB0cnVlOworCX0KKworCXJldHVy biBmYWxzZTsKK30KKworc3RhdGljIHN0cnVjdCB7CisJaW50IGNvbmRpdGlvbjsKKwlib29sICgq aGFuZGxlcikoc3RydWN0IHNldHRpbmdzKik7Cit9IGFib3J0X2hhbmRsZXJzW10gPSB7CisJeyBB Qk9SVF9MT0NLREVQLCBoYW5kbGVfbG9ja2RlcCB9LAorCXsgQUJPUlRfVEFJTlQsIGhhbmRsZV90 YWludCB9LAorCXsgMCwgMCB9LAorfTsKKworc3RhdGljIGJvb2wgbmVlZF90b19hYm9ydChzdHJ1 Y3Qgc2V0dGluZ3MqIHNldHRpbmdzKQoreworCXR5cGVvZigqYWJvcnRfaGFuZGxlcnMpICppdDsK KworCWZvciAoaXQgPSBhYm9ydF9oYW5kbGVyczsgaXQtPmNvbmRpdGlvbjsgaXQrKykgeworCQlp ZiAoc2V0dGluZ3MtPmFib3J0X21hc2sgJiBpdC0+Y29uZGl0aW9uICYmCisJCSAgICBpdC0+aGFu ZGxlcihzZXR0aW5ncykpCisJCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9 CisKIHN0YXRpYyB2b2lkIHBydW5lX3N1YnRlc3Qoc3RydWN0IGpvYl9saXN0X2VudHJ5ICplbnRy eSwgY2hhciAqc3VidGVzdCkKIHsKIAljaGFyICpleGNsOwpAQCAtMTEwMiwxMiArMTE3NSwxOSBA QCBib29sIGV4ZWN1dGUoc3RydWN0IGV4ZWN1dGVfc3RhdGUgKnN0YXRlLAogCiAJZm9yICg7IHN0 YXRlLT5uZXh0IDwgam9iX2xpc3QtPnNpemU7CiAJICAgICBzdGF0ZS0+bmV4dCsrKSB7Ci0JCWlu dCByZXN1bHQgPSBleGVjdXRlX25leHRfZW50cnkoc3RhdGUsCi0JCQkJCQlqb2JfbGlzdC0+c2l6 ZSwKLQkJCQkJCSZ0aW1lX3NwZW50LAotCQkJCQkJc2V0dGluZ3MsCi0JCQkJCQkmam9iX2xpc3Qt PmVudHJpZXNbc3RhdGUtPm5leHRdLAotCQkJCQkJdGVzdGRpcmZkLCByZXNkaXJmZCk7CisJCWlu dCByZXN1bHQ7CisKKwkJaWYgKG5lZWRfdG9fYWJvcnQoc2V0dGluZ3MpKSB7CisJCQlzdGF0dXMg PSBmYWxzZTsKKwkJCWJyZWFrOworCQl9CisKKwkJcmVzdWx0ID0gZXhlY3V0ZV9uZXh0X2VudHJ5 KHN0YXRlLAorCQkJCQkgICAgam9iX2xpc3QtPnNpemUsCisJCQkJCSAgICAmdGltZV9zcGVudCwK KwkJCQkJICAgIHNldHRpbmdzLAorCQkJCQkgICAgJmpvYl9saXN0LT5lbnRyaWVzW3N0YXRlLT5u ZXh0XSwKKwkJCQkJICAgIHRlc3RkaXJmZCwgcmVzZGlyZmQpOwogCiAJCWlmIChyZXN1bHQgPCAw KSB7CiAJCQlzdGF0dXMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL3J1bm5lci9ydW5uZXJfdGVzdHMu YyBiL3J1bm5lci9ydW5uZXJfdGVzdHMuYwppbmRleCA5YzBmOWViMC4uODI5YzYwYzMgMTAwNjQ0 Ci0tLSBhL3J1bm5lci9ydW5uZXJfdGVzdHMuYworKysgYi9ydW5uZXIvcnVubmVyX3Rlc3RzLmMK QEAgLTE0Miw3ICsxNDIsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfc2V0dGluZ3NfZXF1YWwoc3Ry dWN0IHNldHRpbmdzICpvbmUsIHN0cnVjdCBzZXR0aW5ncyAqdHdvKQogCSAqIFJlZ2V4IGxpc3Rz IGFyZSBub3Qgc2VyaWFsaXplZCwgYW5kIHRodXMgd29uJ3QgYmUgY29tcGFyZWQKIAkgKiBoZXJl LgogCSAqLwotCWlndF9hc3NlcnRfZXEob25lLT5hYm9ydF9vbl9lcnJvciwgdHdvLT5hYm9ydF9v bl9lcnJvcik7CisJaWd0X2Fzc2VydF9lcShvbmUtPmFib3J0X21hc2ssIHR3by0+YWJvcnRfbWFz ayk7CiAJaWd0X2Fzc2VydF9lcXN0cihvbmUtPnRlc3RfbGlzdCwgdHdvLT50ZXN0X2xpc3QpOwog CWlndF9hc3NlcnRfZXFzdHIob25lLT5uYW1lLCB0d28tPm5hbWUpOwogCWlndF9hc3NlcnRfZXEo b25lLT5kcnlfcnVuLCB0d28tPmRyeV9ydW4pOwpAQCAtMjA4LDcgKzIwOCw3IEBAIGlndF9tYWlu CiAKIAkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZz ZXR0aW5ncykpOwogCi0JCWlndF9hc3NlcnQoIXNldHRpbmdzLmFib3J0X29uX2Vycm9yKTsKKwkJ aWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCAwKTsKIAkJaWd0X2Fzc2VydCghc2V0 dGluZ3MudGVzdF9saXN0KTsKIAkJaWd0X2Fzc2VydF9lcXN0cihzZXR0aW5ncy5uYW1lLCAicGF0 aC10by1yZXN1bHRzIik7CiAJCWlndF9hc3NlcnQoIXNldHRpbmdzLmRyeV9ydW4pOwpAQCAtMzIz LDcgKzMyMyw3IEBAIGlndF9tYWluCiAJCXNldGVudigiSUdUX1RFU1RfUk9PVCIsIHRlc3RkYXRh ZGlyLCAxKTsKIAkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFy Z3YsICZzZXR0aW5ncykpOwogCi0JCWlndF9hc3NlcnQoIXNldHRpbmdzLmFib3J0X29uX2Vycm9y KTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCAwKTsKIAkJaWd0X2Fzc2Vy dCghc2V0dGluZ3MudGVzdF9saXN0KTsKIAkJaWd0X2Fzc2VydF9lcXN0cihzZXR0aW5ncy5uYW1l LCAicGF0aC10by1yZXN1bHRzIik7CiAJCWlndF9hc3NlcnQoIXNldHRpbmdzLmRyeV9ydW4pOwpA QCAtMzQ4LDcgKzM0OCw3IEBAIGlndF9tYWluCiAJaWd0X3N1YnRlc3QoInBhcnNlLWFsbC1zZXR0 aW5ncyIpIHsKIAkJY2hhciAqYXJndltdID0geyAicnVubmVyIiwKIAkJCQkgIi1uIiwgImZvbyIs Ci0JCQkJICItLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvciIsCisJCQkJICItLWFib3J0LW9uLW1v bml0b3JlZC1lcnJvcj10YWludCxsb2NrZGVwIiwKIAkJCQkgIi0tdGVzdC1saXN0IiwgInBhdGgt dG8tdGVzdC1saXN0IiwKIAkJCQkgIi0taWdub3JlLW1pc3NpbmciLAogCQkJCSAiLS1kcnktcnVu IiwKQEAgLTM3MCw3ICszNzAsNyBAQCBpZ3RfbWFpbgogCiAJCWlndF9hc3NlcnQocGFyc2Vfb3B0 aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKIAotCQlpZ3RfYXNzZXJ0 KHNldHRpbmdzLmFib3J0X29uX2Vycm9yKTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9y dF9tYXNrLCBBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tERVApOwogCQlpZ3RfYXNzZXJ0KHN0cnN0 cihzZXR0aW5ncy50ZXN0X2xpc3QsICJwYXRoLXRvLXRlc3QtbGlzdCIpICE9IE5VTEwpOwogCQlp Z3RfYXNzZXJ0X2Vxc3RyKHNldHRpbmdzLm5hbWUsICJmb28iKTsKIAkJaWd0X2Fzc2VydChzZXR0 aW5ncy5kcnlfcnVuKTsKQEAgLTQyOCw2ICs0MjgsNDUgQEAgaWd0X21haW4KIAkJaWd0X2Fzc2Vy dF9lcShzZXR0aW5ncy5sb2dfbGV2ZWwsIExPR19MRVZFTF9WRVJCT1NFKTsKIAl9CiAKKwlpZ3Rf c3VidGVzdCgiYWJvcnQtY29uZGl0aW9ucyIpIHsKKwkJY2hhciAqYXJndltdID0geyAicnVubmVy IiwKKwkJCQkgIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPXRhaW50IiwKKwkJCQkgInRlc3Qt cm9vdC1kaXIiLAorCQkJCSAicmVzdWx0cy1wYXRoIiwKKwkJfTsKKworCQlpZ3RfYXNzZXJ0KHBh cnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7CisJCWlndF9h c3NlcnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywgQUJPUlRfVEFJTlQpOworCisJCWFyZ3ZbMV0g PSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3I9bG9ja2RlcCI7CisJCWlndF9hc3NlcnQocGFy c2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKKwkJaWd0X2Fz c2VydF9lcShzZXR0aW5ncy5hYm9ydF9tYXNrLCBBQk9SVF9MT0NLREVQKTsKKworCQlhcmd2WzFd ID0gIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPXRhaW50IjsKKwkJaWd0X2Fzc2VydChwYXJz ZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFyZ3YsICZzZXR0aW5ncykpOworCQlpZ3RfYXNz ZXJ0X2VxKHNldHRpbmdzLmFib3J0X21hc2ssIEFCT1JUX1RBSU5UKTsKKworCQlhcmd2WzFdID0g Ii0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPWxvY2tkZXAsdGFpbnQiOworCQlpZ3RfYXNzZXJ0 KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJndiwgJnNldHRpbmdzKSk7CisJCWln dF9hc3NlcnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywgQUJPUlRfVEFJTlQgfCBBQk9SVF9MT0NL REVQKTsKKworCQlhcmd2WzFdID0gIi0tYWJvcnQtb24tbW9uaXRvcmVkLWVycm9yPXRhaW50LGxv Y2tkZXAiOworCQlpZ3RfYXNzZXJ0KHBhcnNlX29wdGlvbnMoQVJSQVlfU0laRShhcmd2KSwgYXJn diwgJnNldHRpbmdzKSk7CisJCWlndF9hc3NlcnRfZXEoc2V0dGluZ3MuYWJvcnRfbWFzaywgQUJP UlRfVEFJTlQgfCBBQk9SVF9MT0NLREVQKTsKKworCQlhcmd2WzFdID0gIi0tYWJvcnQtb24tbW9u aXRvcmVkLWVycm9yPWFsbCI7CisJCWlndF9hc3NlcnQocGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpF KGFyZ3YpLCBhcmd2LCAmc2V0dGluZ3MpKTsKKwkJaWd0X2Fzc2VydF9lcShzZXR0aW5ncy5hYm9y dF9tYXNrLCBBQk9SVF9BTEwpOworCisJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25pdG9yZWQt ZXJyb3I9IjsKKwkJaWd0X2Fzc2VydChwYXJzZV9vcHRpb25zKEFSUkFZX1NJWkUoYXJndiksIGFy Z3YsICZzZXR0aW5ncykpOworCQlpZ3RfYXNzZXJ0X2VxKHNldHRpbmdzLmFib3J0X21hc2ssIDAp OworCisJCWFyZ3ZbMV0gPSAiLS1hYm9ydC1vbi1tb25pdG9yZWQtZXJyb3I9ZG9lc25vdGV4aXN0 IjsKKwkJaWd0X2Fzc2VydCghcGFyc2Vfb3B0aW9ucyhBUlJBWV9TSVpFKGFyZ3YpLCBhcmd2LCAm c2V0dGluZ3MpKTsKKworCX0KKwogCWlndF9zdWJ0ZXN0KCJwYXJzZS1jbGVhcnMtb2xkLWRhdGEi KSB7CiAJCWNoYXIgKmFyZ3ZbXSA9IHsgInJ1bm5lciIsCiAJCQkJICItbiIsICJmb28iLApkaWZm IC0tZ2l0IGEvcnVubmVyL3NldHRpbmdzLmMgYi9ydW5uZXIvc2V0dGluZ3MuYwppbmRleCBlMjQw MTQ1NS4uZTA1NjQ5M2EgMTAwNjQ0Ci0tLSBhL3J1bm5lci9zZXR0aW5ncy5jCisrKyBiL3J1bm5l ci9zZXR0aW5ncy5jCkBAIC00MSw2ICs0MSwxNiBAQCBzdGF0aWMgc3RydWN0IHsKIAl7IDAsIDAg fSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgeworCWludCB2YWx1ZTsKKwljb25zdCBjaGFyICpuYW1l OworfSBhYm9ydF9jb25kaXRpb25zW10gPSB7CisJeyBBQk9SVF9UQUlOVCwgInRhaW50IiB9LAor CXsgQUJPUlRfTE9DS0RFUCwgImxvY2tkZXAiIH0sCisJeyBBQk9SVF9BTEwsICJhbGwiIH0sCisJ eyAwLCAwIH0sCit9OworCiBzdGF0aWMgYm9vbCBzZXRfbG9nX2xldmVsKHN0cnVjdCBzZXR0aW5n cyogc2V0dGluZ3MsIGNvbnN0IGNoYXIgKmxldmVsKQogewogCXR5cGVvZigqbG9nX2xldmVscykg Kml0OwpAQCAtNTUsNiArNjUsNTIgQEAgc3RhdGljIGJvb2wgc2V0X2xvZ19sZXZlbChzdHJ1Y3Qg c2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBjaGFyICpsZXZlbCkKIAlyZXR1cm4gZmFsc2U7CiB9 CiAKK3N0YXRpYyBib29sIHNldF9hYm9ydF9jb25kaXRpb24oc3RydWN0IHNldHRpbmdzKiBzZXR0 aW5ncywgY29uc3QgY2hhciAqY29uZCkKK3sKKwl0eXBlb2YoKmFib3J0X2NvbmRpdGlvbnMpICpp dDsKKworCWlmICghY29uZCkgeworCQlzZXR0aW5ncy0+YWJvcnRfbWFzayA9IEFCT1JUX0FMTDsK KwkJcmV0dXJuIHRydWU7CisJfQorCisJaWYgKHN0cmxlbihjb25kKSA9PSAwKSB7CisJCXNldHRp bmdzLT5hYm9ydF9tYXNrID0gMDsKKwkJcmV0dXJuIHRydWU7CisJfQorCisJZm9yIChpdCA9IGFi b3J0X2NvbmRpdGlvbnM7IGl0LT5uYW1lOyBpdCsrKSB7CisJCWlmICghc3RyY21wKGNvbmQsIGl0 LT5uYW1lKSkgeworCQkJc2V0dGluZ3MtPmFib3J0X21hc2sgfD0gaXQtPnZhbHVlOworCQkJcmV0 dXJuIHRydWU7CisJCX0KKwl9CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIHBh cnNlX2Fib3J0X2NvbmRpdGlvbnMoc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncywgY29uc3QgY2hh ciAqb3B0YXJnKQoreworCWNoYXIgKmR1cCwgKnA7CisJaWYgKCFvcHRhcmcpCisJCXJldHVybiBz ZXRfYWJvcnRfY29uZGl0aW9uKHNldHRpbmdzLCBOVUxMKTsKKworCWR1cCA9IHN0cmR1cChvcHRh cmcpOworCXdoaWxlIChkdXApIHsKKwkJaWYgKChwID0gc3RyY2hyKGR1cCwgJywnKSkgIT0gTlVM TCkgeworCQkJKnAgPSAnXDAnOworCQkJcCsrOworCQl9CisKKwkJaWYgKCFzZXRfYWJvcnRfY29u ZGl0aW9uKHNldHRpbmdzLCBkdXApKQorCQkJcmV0dXJuIGZhbHNlOworCisJCWR1cCA9IHA7CisJ fQorCisJcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyICp1c2FnZV9zdHIgPQog CSJ1c2FnZTogcnVubmVyIFtvcHRpb25zXSBbdGVzdF9yb290XSByZXN1bHRzLXBhdGhcblxuIgog CSJPcHRpb25zOlxuIgpAQCAtNjcsOSArMTIzLDE1IEBAIHN0YXRpYyBjb25zdCBjaGFyICp1c2Fn ZV9zdHIgPQogCSIgICAgICAgICAgICAgICAgICAgICAgICBSdW4gb25seSBtYXRjaGluZyB0ZXN0 cyAoY2FuIGJlIHVzZWQgbW9yZSB0aGFuIG9uY2UpXG4iCiAJIiAgLXggPHJlZ2V4PiwgLS1leGNs dWRlLXRlc3RzIDxyZWdleD5cbiIKIAkiICAgICAgICAgICAgICAgICAgICAgICAgRXhjbHVkZSBt YXRjaGluZyB0ZXN0cyAoY2FuIGJlIHVzZWQgbW9yZSB0aGFuIG9uY2UpXG4iCi0JIiAgLS1hYm9y dC1vbi1tb25pdG9yZWQtZXJyb3JcbiIKKwkiICAtLWFib3J0LW9uLW1vbml0b3JlZC1lcnJvcls9 bGlzdF1cbiIKIAkiICAgICAgICAgICAgICAgICAgICAgICAgQWJvcnQgZXhlY3V0aW9uIHdoZW4g YSBmYXRhbCBjb25kaXRpb24gaXMgZGV0ZWN0ZWQuXG4iCi0JIiAgICAgICAgICAgICAgICAgICAg ICAgIDxUT0RPPlxuIgorCSIgICAgICAgICAgICAgICAgICAgICAgICBBIGNvbW1hLXNlcGFyYXRl ZCBsaXN0IG9mIGNvbmRpdGlvbnMgdG8gY2hlY2sgY2FuIGJlXG4iCisJIiAgICAgICAgICAgICAg ICAgICAgICAgIGdpdmVuLiBJZiBub3QgZ2l2ZW4sIGFsbCBjb25kaXRpb25zIGFyZSBjaGVja2Vk LiBBblxuIgorCSIgICAgICAgICAgICAgICAgICAgICAgICBlbXB0eSBzdHJpbmcgYXMgYSBjb25k aXRpb24gZGlzYWJsZXMgYWJvcnRpbmdcbiIKKwkiICAgICAgICAgICAgICAgICAgICAgICAgUG9z c2libGUgY29uZGl0aW9uczpcbiIKKwkiICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tkZXAg LSBhYm9ydCB3aGVuIGtlcm5lbCBsb2NrZGVwIGhhcyBiZWVuIGFuZ2VyZWQuXG4iCisJIiAgICAg ICAgICAgICAgICAgICAgICAgICB0YWludCAgIC0gYWJvcnQgd2hlbiBrZXJuZWwgYmVjb21lcyBm YXRhbGx5IHRhaW50ZWQuXG4iCisJIiAgICAgICAgICAgICAgICAgICAgICAgICBhbGwgICAgIC0g YWJvcnQgZm9yIGFsbCBvZiB0aGUgYWJvdmUuXG4iCiAJIiAgLXMsIC0tc3luYyAgICAgICAgICAg IFN5bmMgcmVzdWx0cyB0byBkaXNrIGFmdGVyIGV2ZXJ5IHRlc3RcbiIKIAkiICAtbCB7cXVpZXQs dmVyYm9zZSxkdW1teX0sIC0tbG9nLWxldmVsIHtxdWlldCx2ZXJib3NlLGR1bW15fVxuIgogCSIg ICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGxvZ2dlciB2ZXJib3NpdHkgbGV2ZWxcbiIK QEAgLTE5Myw3ICsyNTUsNyBAQCBib29sIHBhcnNlX29wdGlvbnMoaW50IGFyZ2MsIGNoYXIgKiph cmd2LAogCQl7ImRyeS1ydW4iLCBub19hcmd1bWVudCwgTlVMTCwgT1BUX0RSWV9SVU59LAogCQl7 ImluY2x1ZGUtdGVzdHMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0lOQ0xVREV9LAog CQl7ImV4Y2x1ZGUtdGVzdHMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgT1BUX0VYQ0xVREV9 LAotCQl7ImFib3J0LW9uLW1vbml0b3JlZC1lcnJvciIsIG5vX2FyZ3VtZW50LCBOVUxMLCBPUFRf QUJPUlRfT05fRVJST1J9LAorCQl7ImFib3J0LW9uLW1vbml0b3JlZC1lcnJvciIsIG9wdGlvbmFs X2FyZ3VtZW50LCBOVUxMLCBPUFRfQUJPUlRfT05fRVJST1J9LAogCQl7InN5bmMiLCBub19hcmd1 bWVudCwgTlVMTCwgT1BUX1NZTkN9LAogCQl7ImxvZy1sZXZlbCIsIHJlcXVpcmVkX2FyZ3VtZW50 LCBOVUxMLCBPUFRfTE9HX0xFVkVMfSwKIAkJeyJ0ZXN0LWxpc3QiLCByZXF1aXJlZF9hcmd1bWVu dCwgTlVMTCwgT1BUX1RFU1RfTElTVH0sCkBAIC0yMzEsNyArMjkzLDggQEAgYm9vbCBwYXJzZV9v cHRpb25zKGludCBhcmdjLCBjaGFyICoqYXJndiwKIAkJCQlnb3RvIGVycm9yOwogCQkJYnJlYWs7 CiAJCWNhc2UgT1BUX0FCT1JUX09OX0VSUk9SOgotCQkJc2V0dGluZ3MtPmFib3J0X29uX2Vycm9y ID0gdHJ1ZTsKKwkJCWlmICghcGFyc2VfYWJvcnRfY29uZGl0aW9ucyhzZXR0aW5ncywgb3B0YXJn KSkKKwkJCQlnb3RvIGVycm9yOwogCQkJYnJlYWs7CiAJCWNhc2UgT1BUX1NZTkM6CiAJCQlzZXR0 aW5ncy0+c3luYyA9IHRydWU7CkBAIC00NDQsNyArNTA3LDcgQEAgYm9vbCBzZXJpYWxpemVfc2V0 dGluZ3Moc3RydWN0IHNldHRpbmdzICpzZXR0aW5ncykKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAot CVNFUklBTElaRV9MSU5FKGYsIHNldHRpbmdzLCBhYm9ydF9vbl9lcnJvciwgIiVkIik7CisJU0VS SUFMSVpFX0xJTkUoZiwgc2V0dGluZ3MsIGFib3J0X21hc2ssICIlZCIpOwogCWlmIChzZXR0aW5n cy0+dGVzdF9saXN0KQogCQlTRVJJQUxJWkVfTElORShmLCBzZXR0aW5ncywgdGVzdF9saXN0LCAi JXMiKTsKIAlpZiAoc2V0dGluZ3MtPm5hbWUpCkBAIC01MDEsNyArNTY0LDcgQEAgYm9vbCByZWFk X3NldHRpbmdzKHN0cnVjdCBzZXR0aW5ncyAqc2V0dGluZ3MsIGludCBkaXJmZCkKIAogCXdoaWxl IChmc2NhbmYoZiwgIiVtcyA6ICVtcyIsICZuYW1lLCAmdmFsKSA9PSAyKSB7CiAJCWludCBudW12 YWwgPSBhdG9pKHZhbCk7Ci0JCVBBUlNFX0xJTkUoc2V0dGluZ3MsIG5hbWUsIHZhbCwgYWJvcnRf b25fZXJyb3IsIG51bXZhbCk7CisJCVBBUlNFX0xJTkUoc2V0dGluZ3MsIG5hbWUsIHZhbCwgYWJv cnRfbWFzaywgbnVtdmFsKTsKIAkJUEFSU0VfTElORShzZXR0aW5ncywgbmFtZSwgdmFsLCB0ZXN0 X2xpc3QsIHZhbCA/IHN0cmR1cCh2YWwpIDogTlVMTCk7CiAJCVBBUlNFX0xJTkUoc2V0dGluZ3Ms IG5hbWUsIHZhbCwgbmFtZSwgdmFsID8gc3RyZHVwKHZhbCkgOiBOVUxMKTsKIAkJUEFSU0VfTElO RShzZXR0aW5ncywgbmFtZSwgdmFsLCBkcnlfcnVuLCBudW12YWwpOwpkaWZmIC0tZ2l0IGEvcnVu bmVyL3NldHRpbmdzLmggYi9ydW5uZXIvc2V0dGluZ3MuaAppbmRleCBiNDg5YWJjNS4uMjY3ZDcy Y2YgMTAwNjQ0Ci0tLSBhL3J1bm5lci9zZXR0aW5ncy5oCisrKyBiL3J1bm5lci9zZXR0aW5ncy5o CkBAIC0xMiw2ICsxMiwxMiBAQCBlbnVtIHsKIAlMT0dfTEVWRUxfVkVSQk9TRSA9IDEsCiB9Owog CisjZGVmaW5lIEFCT1JUX1RBSU5UICAgKDEgPDwgMCkKKyNkZWZpbmUgQUJPUlRfTE9DS0RFUCAo MSA8PCAxKQorI2RlZmluZSBBQk9SVF9BTEwgICAgIChBQk9SVF9UQUlOVCB8IEFCT1JUX0xPQ0tE RVApCisKK19TdGF0aWNfYXNzZXJ0KEFCT1JUX0FMTCA9PSAoQUJPUlRfVEFJTlQgfCBBQk9SVF9M T0NLREVQKSwgIkFCT1JUX0FMTCBtdXN0IGJlIGFsbCBjb25kaXRpb25zIGJpdHdpc2Ugb3InZCIp OworCiBzdHJ1Y3QgcmVnZXhfbGlzdCB7CiAJY2hhciAqKnJlZ2V4X3N0cmluZ3M7CiAJcmVnZXhf dCoqIHJlZ2V4ZXM7CkBAIC0xOSw3ICsyNSw3IEBAIHN0cnVjdCByZWdleF9saXN0IHsKIH07CiAK IHN0cnVjdCBzZXR0aW5ncyB7Ci0JYm9vbCBhYm9ydF9vbl9lcnJvcjsKKwlpbnQgYWJvcnRfbWFz azsKIAljaGFyICp0ZXN0X2xpc3Q7CiAJY2hhciAqbmFtZTsKIAlib29sIGRyeV9ydW47Ci0tIAoy LjE4LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmln dC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=