From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brendan Higgins Subject: [PATCH v11 09/18] kunit: test: add support for test abort Date: Tue, 16 Jul 2019 18:55:34 -0700 Message-ID: <20190717015543.152251-10-brendanhiggins@google.com> References: <20190717015543.152251-1-brendanhiggins@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190717015543.152251-1-brendanhiggins@google.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: frowand.list@gmail.com, gregkh@linuxfoundation.org, jpoimboe@redhat.com, keescook@google.com, kieran.bingham@ideasonboard.com, mcgrof@kernel.org, peterz@infradead.org, robh@kernel.org, sboyd@kernel.org, shuah@kernel.org, tytso@mit.edu, yamada.masahiro@socionext.com Cc: pmladek@suse.com, linux-doc@vger.kernel.org, amir73il@gmail.com, Brendan Higgins , dri-devel@lists.freedesktop.org, Alexander.Levin@microsoft.com, linux-kselftest@vger.kernel.org, linux-nvdimm@lists.01.org, khilman@baylibre.com, knut.omang@oracle.com, wfg@linux.intel.com, joel@jms.id.au, rientjes@google.com, jdike@addtoit.com, dan.carpenter@oracle.com, devicetree@vger.kernel.org, linux-kbuild@vger.kernel.org, Tim.Bird@sony.com, linux-um@lists.infradead.org, rostedt@goodmis.org, julia.lawall@lip6.fr, kunit-dev@googlegroups.com, richard@nod.at, rdunlap@infradead.org, linux-kernel@vger.kernel.org, mpe@ellerman.id.au, linux-fsdevel@vger.kernel.org, logang@deltatee.com List-Id: devicetree@vger.kernel.org QWRkIHN1cHBvcnQgZm9yIGFib3J0aW5nL2JhaWxpbmcgb3V0IG9mIHRlc3QgY2FzZXMsIHdoaWNo IGlzIG5lZWRlZCBmb3IKaW1wbGVtZW50aW5nIGFzc2VydGlvbnMuCgpBbiBhc3NlcnRpb24gaXMg bGlrZSBhbiBleHBlY3RhdGlvbiwgYnV0IGJhaWxzIG91dCBvZiB0aGUgdGVzdCBjYXNlCmVhcmx5 IGlmIHRoZSBhc3NlcnRpb24gaXMgbm90IG1ldC4gVGhlIGlkZWEgd2l0aCBhc3NlcnRpb25zIGlz IHRoYXQgeW91CnVzZSB0aGVtIHRvIHN0YXRlIGFsbCB0aGUgcHJlY29uZGl0aW9ucyBmb3IgeW91 ciB0ZXN0LiBMb2dpY2FsbHkKc3BlYWtpbmcsIHRoZXNlIGFyZSB0aGUgcHJlbWlzZXMgb2YgdGhl IHRlc3QgY2FzZSwgc28gaWYgYSBwcmVtaXNlIGlzbid0CnRydWUsIHRoZXJlIGlzIG5vIHBvaW50 IGluIGNvbnRpbnVpbmcgdGhlIHRlc3QgY2FzZSBiZWNhdXNlIHRoZXJlIGFyZSBubwpjb25jbHVz aW9ucyB0aGF0IGNhbiBiZSBkcmF3biB3aXRob3V0IHRoZSBwcmVtaXNlcy4gV2hlcmVhcywgdGhl CmV4cGVjdGF0aW9uIGlzIHRoZSB0aGluZyB5b3UgYXJlIHRyeWluZyB0byBwcm92ZS4KClNpZ25l ZC1vZmYtYnk6IEJyZW5kYW4gSGlnZ2lucyA8YnJlbmRhbmhpZ2dpbnNAZ29vZ2xlLmNvbT4KUmV2 aWV3ZWQtYnk6IEdyZWcgS3JvYWgtSGFydG1hbiA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+ ClJldmlld2VkLWJ5OiBMb2dhbiBHdW50aG9ycGUgPGxvZ2FuZ0BkZWx0YXRlZS5jb20+Ci0tLQog aW5jbHVkZS9rdW5pdC90ZXN0LmggICAgICB8ICAxNiArKysrCiBpbmNsdWRlL2t1bml0L3RyeS1j YXRjaC5oIHwgIDY5ICsrKysrKysrKysrKysrKwoga3VuaXQvTWFrZWZpbGUgICAgICAgICAgICB8 ICAgMyArLQoga3VuaXQvdGVzdC5jICAgICAgICAgICAgICB8IDE3NiArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLQoga3VuaXQvdHJ5LWNhdGNoLmMgICAgICAgICB8ICA5NSAr KysrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAzNDMgaW5zZXJ0aW9ucygrKSwg MTYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9rdW5pdC90cnktY2F0 Y2guaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGt1bml0L3RyeS1jYXRjaC5jCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9rdW5pdC90ZXN0LmggYi9pbmNsdWRlL2t1bml0L3Rlc3QuaAppbmRleCA2YWU1ODU0 Nzg3MzBhLi4xZGFhNDUxMGJiOTYwIDEwMDY0NAotLS0gYS9pbmNsdWRlL2t1bml0L3Rlc3QuaAor KysgYi9pbmNsdWRlL2t1bml0L3Rlc3QuaApAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgPGxp bnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPgogI2luY2x1ZGUgPGt1bml0L2t1 bml0LXN0cmVhbS5oPgorI2luY2x1ZGUgPGt1bml0L3RyeS1jYXRjaC5oPgogCiBzdHJ1Y3Qga3Vu aXRfcmVzb3VyY2U7CiAKQEAgLTE2Nyw2ICsxNjgsNyBAQCBzdHJ1Y3Qga3VuaXQgewogCiAJLyog cHJpdmF0ZTogaW50ZXJuYWwgdXNlIG9ubHkuICovCiAJY29uc3QgY2hhciAqbmFtZTsgLyogUmVh ZCBvbmx5IGFmdGVyIGluaXRpYWxpemF0aW9uISAqLworCXN0cnVjdCBrdW5pdF90cnlfY2F0Y2gg dHJ5X2NhdGNoOwogCS8qCiAJICogc3VjY2VzcyBzdGFydHMgYXMgdHJ1ZSwgYW5kIG1heSBvbmx5 IGJlIHNldCB0byBmYWxzZSBkdXJpbmcgYSB0ZXN0CiAJICogY2FzZTsgdGh1cywgaXQgaXMgc2Fm ZSB0byB1cGRhdGUgdGhpcyBhY3Jvc3MgbXVsdGlwbGUgdGhyZWFkcyB1c2luZwpAQCAtMTc2LDYg KzE3OCwxMSBAQCBzdHJ1Y3Qga3VuaXQgewogCSAqLwogCWJvb2wgc3VjY2VzczsgLyogUmVhZCBv bmx5IGFmdGVyIHRlc3RfY2FzZSBmaW5pc2hlcyEgKi8KIAlzcGlubG9ja190IGxvY2s7IC8qIEdh dXJkcyBhbGwgbXV0YWJsZSB0ZXN0IHN0YXRlLiAqLworCS8qCisJICogZGVhdGhfdGVzdCBtYXkg YmUgYm90aCBzZXQgYW5kIHVuc2V0IGZyb20gbXVsdGlwbGUgdGhyZWFkcyBpbiBhIHRlc3QKKwkg KiBjYXNlLgorCSAqLworCWJvb2wgZGVhdGhfdGVzdDsgLyogUHJvdGVjdGVkIGJ5IGxvY2suICov CiAJLyoKIAkgKiBCZWNhdXNlIHJlc291cmNlcyBpcyBhIGxpc3QgdGhhdCBtYXkgYmUgdXBkYXRl ZCBtdWx0aXBsZSB0aW1lcyAod2l0aAogCSAqIG5ldyByZXNvdXJjZXMpIGZyb20gYW55IHRocmVh ZCBhc3NvY2lhdGVkIHdpdGggYSB0ZXN0IGNhc2UsIHdlIG11c3QKQEAgLTE4NCwxMCArMTkxLDE5 IEBAIHN0cnVjdCBrdW5pdCB7CiAJc3RydWN0IGxpc3RfaGVhZCByZXNvdXJjZXM7IC8qIFByb3Rl Y3RlZCBieSBsb2NrLiAqLwogfTsKIAorc3RhdGljIGlubGluZSB2b2lkIGt1bml0X3NldF9kZWF0 aF90ZXN0KHN0cnVjdCBrdW5pdCAqdGVzdCwgYm9vbCBkZWF0aF90ZXN0KQoreworCXNwaW5fbG9j aygmdGVzdC0+bG9jayk7CisJdGVzdC0+ZGVhdGhfdGVzdCA9IGRlYXRoX3Rlc3Q7CisJc3Bpbl91 bmxvY2soJnRlc3QtPmxvY2spOworfQorCiB2b2lkIGt1bml0X2luaXRfdGVzdChzdHJ1Y3Qga3Vu aXQgKnRlc3QsIGNvbnN0IGNoYXIgKm5hbWUpOwogCiB2b2lkIGt1bml0X2ZhaWwoc3RydWN0IGt1 bml0ICp0ZXN0LCBzdHJ1Y3Qga3VuaXRfc3RyZWFtICpzdHJlYW0pOwogCit2b2lkIGt1bml0X2Fi b3J0KHN0cnVjdCBrdW5pdCAqdGVzdCk7CisKIGludCBrdW5pdF9ydW5fdGVzdHMoc3RydWN0IGt1 bml0X3N1aXRlICpzdWl0ZSk7CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9rdW5pdC90cnkt Y2F0Y2guaCBiL2luY2x1ZGUva3VuaXQvdHJ5LWNhdGNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMC4uOGE0MTRhOWFmMGI2NAotLS0gL2Rldi9udWxsCisrKyBiL2lu Y2x1ZGUva3VuaXQvdHJ5LWNhdGNoLmgKQEAgLTAsMCArMSw2OSBAQAorLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAgKi8KKy8qCisgKiBBbiBBUEkgdG8gYWxsb3cgYSBmdW5jdGlv biwgdGhhdCBtYXkgZmFpbCwgdG8gYmUgZXhlY3V0ZWQsIGFuZCByZWNvdmVyIGluIGEKKyAqIGNv bnRyb2xsZWQgbWFubmVyLgorICoKKyAqIENvcHlyaWdodCAoQykgMjAxOSwgR29vZ2xlIExMQy4K KyAqIEF1dGhvcjogQnJlbmRhbiBIaWdnaW5zIDxicmVuZGFuaGlnZ2luc0Bnb29nbGUuY29tPgor ICovCisKKyNpZm5kZWYgX0tVTklUX1RSWV9DQVRDSF9ICisjZGVmaW5lIF9LVU5JVF9UUllfQ0FU Q0hfSAorCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKwordHlwZWRlZiB2b2lkICgqa3VuaXRf dHJ5X2NhdGNoX2Z1bmNfdCkodm9pZCAqKTsKKworc3RydWN0IGt1bml0OworCisvKgorICogc3Ry dWN0IGt1bml0X3RyeV9jYXRjaCAtIHByb3ZpZGVzIGEgZ2VuZXJpYyB3YXkgdG8gcnVuIGNvZGUg d2hpY2ggbWlnaHQgZmFpbC4KKyAqIEBjb250ZXh0OiB1c2VkIHRvIHBhc3MgdXNlciBkYXRhIHRv IHRoZSB0cnkgYW5kIGNhdGNoIGZ1bmN0aW9ucy4KKyAqCisgKiBrdW5pdF90cnlfY2F0Y2ggcHJv dmlkZXMgYSBnZW5lcmljLCBhcmNoaXRlY3R1cmUgaW5kZXBlbmRlbnQgd2F5IHRvIGV4ZWN1dGUK KyAqIGFuIGFyYml0cmFyeSBmdW5jdGlvbiBvZiB0eXBlIGt1bml0X3RyeV9jYXRjaF9mdW5jX3Qg d2hpY2ggbWF5IGJhaWwgb3V0IGJ5CisgKiBjYWxsaW5nIGt1bml0X3RyeV9jYXRjaF90aHJvdygp LiBJZiBrdW5pdF90cnlfY2F0Y2hfdGhyb3coKSBpcyBjYWxsZWQsIEB0cnkKKyAqIGlzIHN0b3Bw ZWQgYXQgdGhlIHNpdGUgb2YgaW52b2NhdGlvbiBhbmQgQGNhdGNoIGlzIGNhdGNoIGlzIGNhbGxl ZC4KKyAqCisgKiBzdHJ1Y3Qga3VuaXRfdHJ5X2NhdGNoIHByb3ZpZGVzIGEgZ2VuZXJpYyBpbnRl cmZhY2UgZm9yIHRoZSBmdW5jdGlvbmFsaXR5CisgKiBuZWVkZWQgdG8gaW1wbGVtZW50IGt1bml0 LT5hYm9ydCgpIHdoaWNoIGluIHR1cm4gaXMgbmVlZGVkIGZvciBpbXBsZW1lbnRpbmcKKyAqIGFz c2VydGlvbnMuIEFzc2VydGlvbnMgYWxsb3cgc3RhdGluZyBhIHByZWNvbmRpdGlvbiBmb3IgYSB0 ZXN0IHNpbXBsaWZ5aW5nCisgKiBob3cgdGVzdCBjYXNlcyBhcmUgd3JpdHRlbiBhbmQgcHJlc2Vu dGVkLgorICoKKyAqIEFzc2VydGlvbnMgYXJlIGxpa2UgZXhwZWN0YXRpb25zLCBleGNlcHQgdGhl eSBhYm9ydCAoY2FsbAorICoga3VuaXRfdHJ5X2NhdGNoX3Rocm93KCkpIHdoZW4gdGhlIHNwZWNp ZmllZCBjb25kaXRpb24gaXMgbm90IG1ldC4gVGhpcyBpcworICogdXNlZnVsIHdoZW4geW91IGxv b2sgYXQgYSB0ZXN0IGNhc2UgYXMgYSBsb2dpY2FsIHN0YXRlbWVudCBhYm91dCBzb21lIHBpZWNl CisgKiBvZiBjb2RlLCB3aGVyZSBhc3NlcnRpb25zIGFyZSB0aGUgcHJlbWlzZXMgZm9yIHRoZSB0 ZXN0IGNhc2UsIGFuZCB0aGUKKyAqIGNvbmNsdXNpb24gaXMgYSBzZXQgb2YgcHJlZGljYXRlcywg cmF0aGVyIGV4cGVjdGF0aW9ucywgdGhhdCBtdXN0IGFsbCBiZQorICogdHJ1ZS4gSWYgeW91ciBw cmVtaXNlcyBhcmUgdmlvbGF0ZWQsIGl0IGRvZXMgbm90IG1ha2VzIHNlbnNlIHRvIGNvbnRpbnVl LgorICovCitzdHJ1Y3Qga3VuaXRfdHJ5X2NhdGNoIHsKKwkvKiBwcml2YXRlOiBpbnRlcm5hbCB1 c2Ugb25seS4gKi8KKwlzdHJ1Y3Qga3VuaXQgKnRlc3Q7CisJc3RydWN0IGNvbXBsZXRpb24gKnRy eV9jb21wbGV0aW9uOworCWludCB0cnlfcmVzdWx0OworCWt1bml0X3RyeV9jYXRjaF9mdW5jX3Qg dHJ5OworCWt1bml0X3RyeV9jYXRjaF9mdW5jX3QgY2F0Y2g7CisJdm9pZCAqY29udGV4dDsKK307 CisKK3ZvaWQga3VuaXRfdHJ5X2NhdGNoX2luaXQoc3RydWN0IGt1bml0X3RyeV9jYXRjaCAqdHJ5 X2NhdGNoLAorCQkJICBzdHJ1Y3Qga3VuaXQgKnRlc3QsCisJCQkgIGt1bml0X3RyeV9jYXRjaF9m dW5jX3QgdHJ5LAorCQkJICBrdW5pdF90cnlfY2F0Y2hfZnVuY190IGNhdGNoKTsKKwordm9pZCBr dW5pdF90cnlfY2F0Y2hfcnVuKHN0cnVjdCBrdW5pdF90cnlfY2F0Y2ggKnRyeV9jYXRjaCwgdm9p ZCAqY29udGV4dCk7CisKK3ZvaWQgX19ub3JldHVybiBrdW5pdF90cnlfY2F0Y2hfdGhyb3coc3Ry dWN0IGt1bml0X3RyeV9jYXRjaCAqdHJ5X2NhdGNoKTsKKworc3RhdGljIGlubGluZSBpbnQga3Vu aXRfdHJ5X2NhdGNoX2dldF9yZXN1bHQoc3RydWN0IGt1bml0X3RyeV9jYXRjaCAqdHJ5X2NhdGNo KQoreworCXJldHVybiB0cnlfY2F0Y2gtPnRyeV9yZXN1bHQ7Cit9CisKKy8qCisgKiBFeHBvc2Vk IGZvciB0ZXN0aW5nIG9ubHkuCisgKi8KK3ZvaWQga3VuaXRfZ2VuZXJpY190cnlfY2F0Y2hfaW5p dChzdHJ1Y3Qga3VuaXRfdHJ5X2NhdGNoICp0cnlfY2F0Y2gpOworCisjZW5kaWYgLyogX0tVTklU X1RSWV9DQVRDSF9IICovCmRpZmYgLS1naXQgYS9rdW5pdC9NYWtlZmlsZSBiL2t1bml0L01ha2Vm aWxlCmluZGV4IDYwYTllYTZjYjQ2OTcuLjFmNzY4MGNmYTExYWQgMTAwNjQ0Ci0tLSBhL2t1bml0 L01ha2VmaWxlCisrKyBiL2t1bml0L01ha2VmaWxlCkBAIC0xLDYgKzEsNyBAQAogb2JqLSQoQ09O RklHX0tVTklUKSArPQkJCXRlc3QubyBcCiAJCQkJCXN0cmluZy1zdHJlYW0ubyBcCi0JCQkJCWt1 bml0LXN0cmVhbS5vCisJCQkJCWt1bml0LXN0cmVhbS5vIFwKKwkJCQkJdHJ5LWNhdGNoLm8KIAog b2JqLSQoQ09ORklHX0tVTklUX1RFU1QpICs9CQlzdHJpbmctc3RyZWFtLXRlc3QubwogCmRpZmYg LS1naXQgYS9rdW5pdC90ZXN0LmMgYi9rdW5pdC90ZXN0LmMKaW5kZXggMWY5NGE5MjI0YjAzZS4u MTJkYjUwYjIyMTc4MSAxMDA2NDQKLS0tIGEva3VuaXQvdGVzdC5jCisrKyBiL2t1bml0L3Rlc3Qu YwpAQCAtNywxMyArNywyNiBAQAogICovCiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNp bmNsdWRlIDxsaW51eC9zY2hlZC9kZWJ1Zy5oPgogI2luY2x1ZGUgPGt1bml0L3Rlc3QuaD4KKyNp bmNsdWRlIDxrdW5pdC90cnktY2F0Y2guaD4KIAogc3RhdGljIHZvaWQga3VuaXRfc2V0X2ZhaWx1 cmUoc3RydWN0IGt1bml0ICp0ZXN0KQogewogCVdSSVRFX09OQ0UodGVzdC0+c3VjY2VzcywgZmFs c2UpOwogfQogCitzdGF0aWMgYm9vbCBrdW5pdF9nZXRfZGVhdGhfdGVzdChzdHJ1Y3Qga3VuaXQg KnRlc3QpCit7CisJYm9vbCBkZWF0aF90ZXN0OworCisJc3Bpbl9sb2NrKCZ0ZXN0LT5sb2NrKTsK KwlkZWF0aF90ZXN0ID0gdGVzdC0+ZGVhdGhfdGVzdDsKKwlzcGluX3VubG9jaygmdGVzdC0+bG9j ayk7CisKKwlyZXR1cm4gZGVhdGhfdGVzdDsKK30KKwogc3RhdGljIGludCBrdW5pdF92cHJpbnRr X2VtaXQoaW50IGxldmVsLCBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJncykKIHsKIAlyZXR1 cm4gdnByaW50a19lbWl0KDAsIGxldmVsLCBOVUxMLCAwLCBmbXQsIGFyZ3MpOwpAQCAtMTI2LDQy ICsxMzksMTc1IEBAIHZvaWQga3VuaXRfZmFpbChzdHJ1Y3Qga3VuaXQgKnRlc3QsIHN0cnVjdCBr dW5pdF9zdHJlYW0gKnN0cmVhbSkKIAlrdW5pdF9zdHJlYW1fY29tbWl0KHN0cmVhbSk7CiB9CiAK K3ZvaWQgX19ub3JldHVybiBrdW5pdF9hYm9ydChzdHJ1Y3Qga3VuaXQgKnRlc3QpCit7CisJa3Vu aXRfc2V0X2RlYXRoX3Rlc3QodGVzdCwgdHJ1ZSk7CisKKwlrdW5pdF90cnlfY2F0Y2hfdGhyb3co JnRlc3QtPnRyeV9jYXRjaCk7CisKKwkvKgorCSAqIFRocm93IGNvdWxkIG5vdCBhYm9ydCBmcm9t IHRlc3QuCisJICoKKwkgKiBYWFg6IHdlIHNob3VsZCBuZXZlciByZWFjaCB0aGlzIGxpbmUhIEFz IGt1bml0X3RyeV9jYXRjaF90aHJvdyBpcworCSAqIG1hcmtlZCBfX25vcmV0dXJuLgorCSAqLwor CVdBUk5fT05DRSh0cnVlLCAiVGhyb3cgY291bGQgbm90IGFib3J0IGZyb20gdGVzdCFcbiIpOwor fQorCiB2b2lkIGt1bml0X2luaXRfdGVzdChzdHJ1Y3Qga3VuaXQgKnRlc3QsIGNvbnN0IGNoYXIg Km5hbWUpCiB7CiAJc3Bpbl9sb2NrX2luaXQoJnRlc3QtPmxvY2spOwogCUlOSVRfTElTVF9IRUFE KCZ0ZXN0LT5yZXNvdXJjZXMpOwogCXRlc3QtPm5hbWUgPSBuYW1lOwogCXRlc3QtPnN1Y2Nlc3Mg PSB0cnVlOworCXRlc3QtPmRlYXRoX3Rlc3QgPSBmYWxzZTsKIH0KIAogLyoKLSAqIFBlcmZvcm1z IGFsbCBsb2dpYyB0byBydW4gYSB0ZXN0IGNhc2UuCisgKiBJbml0aWFsaXplcyBhbmQgcnVucyB0 ZXN0IGNhc2UuIERvZXMgbm90IGNsZWFuIHVwIG9yIGRvIHBvc3QgdmFsaWRhdGlvbnMuCiAgKi8K LXN0YXRpYyB2b2lkIGt1bml0X3J1bl9jYXNlKHN0cnVjdCBrdW5pdF9zdWl0ZSAqc3VpdGUsCi0J CQkgICBzdHJ1Y3Qga3VuaXRfY2FzZSAqdGVzdF9jYXNlKQorc3RhdGljIHZvaWQga3VuaXRfcnVu X2Nhc2VfaW50ZXJuYWwoc3RydWN0IGt1bml0ICp0ZXN0LAorCQkJCSAgICBzdHJ1Y3Qga3VuaXRf c3VpdGUgKnN1aXRlLAorCQkJCSAgICBzdHJ1Y3Qga3VuaXRfY2FzZSAqdGVzdF9jYXNlKQogewot CXN0cnVjdCBrdW5pdCB0ZXN0OwotCi0Ja3VuaXRfaW5pdF90ZXN0KCZ0ZXN0LCB0ZXN0X2Nhc2Ut Pm5hbWUpOwotCiAJaWYgKHN1aXRlLT5pbml0KSB7CiAJCWludCByZXQ7CiAKLQkJcmV0ID0gc3Vp dGUtPmluaXQoJnRlc3QpOworCQlyZXQgPSBzdWl0ZS0+aW5pdCh0ZXN0KTsKIAkJaWYgKHJldCkg ewotCQkJa3VuaXRfZXJyKCZ0ZXN0LCAiZmFpbGVkIHRvIGluaXRpYWxpemU6ICVkXG4iLCByZXQp OwotCQkJa3VuaXRfc2V0X2ZhaWx1cmUoJnRlc3QpOwotCQkJdGVzdF9jYXNlLT5zdWNjZXNzID0g dGVzdC5zdWNjZXNzOworCQkJa3VuaXRfZXJyKHRlc3QsICJmYWlsZWQgdG8gaW5pdGlhbGl6ZTog JWRcbiIsIHJldCk7CisJCQlrdW5pdF9zZXRfZmFpbHVyZSh0ZXN0KTsKIAkJCXJldHVybjsKIAkJ fQogCX0KIAotCXRlc3RfY2FzZS0+cnVuX2Nhc2UoJnRlc3QpOworCXRlc3RfY2FzZS0+cnVuX2Nh c2UodGVzdCk7Cit9CisKK3N0YXRpYyB2b2lkIGt1bml0X2Nhc2VfaW50ZXJuYWxfY2xlYW51cChz dHJ1Y3Qga3VuaXQgKnRlc3QpCit7CisJa3VuaXRfY2xlYW51cCh0ZXN0KTsKK30KIAorLyoKKyAq IFBlcmZvcm1zIHBvc3QgdmFsaWRhdGlvbnMgYW5kIGNsZWFudXAgYWZ0ZXIgYSB0ZXN0IGNhc2Ug d2FzIHJ1bi4KKyAqIFhYWDogU2hvdWxkIE9OTFkgQkUgQ0FMTEVEIEFGVEVSIGt1bml0X3J1bl9j YXNlX2ludGVybmFsIQorICovCitzdGF0aWMgdm9pZCBrdW5pdF9ydW5fY2FzZV9jbGVhbnVwKHN0 cnVjdCBrdW5pdCAqdGVzdCwKKwkJCQkgICBzdHJ1Y3Qga3VuaXRfc3VpdGUgKnN1aXRlKQorewog CWlmIChzdWl0ZS0+ZXhpdCkKLQkJc3VpdGUtPmV4aXQoJnRlc3QpOworCQlzdWl0ZS0+ZXhpdCh0 ZXN0KTsKKworCWt1bml0X2Nhc2VfaW50ZXJuYWxfY2xlYW51cCh0ZXN0KTsKK30KKworLyoKKyAq IEhhbmRsZXMgYW4gdW5leHBlY3RlZCBjcmFzaCBpbiBhIHRlc3QgY2FzZS4KKyAqLworc3RhdGlj IHZvaWQga3VuaXRfaGFuZGxlX3Rlc3RfY3Jhc2goc3RydWN0IGt1bml0ICp0ZXN0LAorCQkJCSAg IHN0cnVjdCBrdW5pdF9zdWl0ZSAqc3VpdGUsCisJCQkJICAgc3RydWN0IGt1bml0X2Nhc2UgKnRl c3RfY2FzZSkKK3sKKwlrdW5pdF9lcnIodGVzdCwgImt1bml0IHRlc3QgY2FzZSBjcmFzaGVkISIp OworCS8qCisJICogVE9ETyhicmVuZGFuaGlnZ2luc0Bnb29nbGUuY29tKTogVGhpcyBwcmludHMg dGhlIHN0YWNrIHRyYWNlIHVwCisJICogdGhyb3VnaCB0aGlzIGZyYW1lLCBub3QgdXAgdG8gdGhl IGZyYW1lIHRoYXQgY2F1c2VkIHRoZSBjcmFzaC4KKwkgKi8KKwlzaG93X3N0YWNrKE5VTEwsIE5V TEwpOworCisJa3VuaXRfY2FzZV9pbnRlcm5hbF9jbGVhbnVwKHRlc3QpOworfQorCitzdHJ1Y3Qg a3VuaXRfdHJ5X2NhdGNoX2NvbnRleHQgeworCXN0cnVjdCBrdW5pdCAqdGVzdDsKKwlzdHJ1Y3Qg a3VuaXRfc3VpdGUgKnN1aXRlOworCXN0cnVjdCBrdW5pdF9jYXNlICp0ZXN0X2Nhc2U7Cit9Owor CitzdGF0aWMgdm9pZCBrdW5pdF90cnlfcnVuX2Nhc2Uodm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3Qg a3VuaXRfdHJ5X2NhdGNoX2NvbnRleHQgKmN0eCA9IGRhdGE7CisJc3RydWN0IGt1bml0ICp0ZXN0 ID0gY3R4LT50ZXN0OworCXN0cnVjdCBrdW5pdF9zdWl0ZSAqc3VpdGUgPSBjdHgtPnN1aXRlOwor CXN0cnVjdCBrdW5pdF9jYXNlICp0ZXN0X2Nhc2UgPSBjdHgtPnRlc3RfY2FzZTsKKworCS8qCisJ ICoga3VuaXRfcnVuX2Nhc2VfaW50ZXJuYWwgbWF5IGVuY291bnRlciBhIGZhdGFsIGVycm9yOyBp ZiBpdCBkb2VzLAorCSAqIGFib3J0IHdpbGwgYmUgY2FsbGVkLCB0aGlzIHRocmVhZCB3aWxsIGV4 aXQsIGFuZCBmaW5hbGx5IHRoZSBwYXJlbnQKKwkgKiB0aHJlYWQgd2lsbCByZXN1bWUgY29udHJv bCBhbmQgaGFuZGxlIGFueSBuZWNlc3NhcnkgY2xlYW4gdXAuCisJICovCisJa3VuaXRfcnVuX2Nh c2VfaW50ZXJuYWwodGVzdCwgc3VpdGUsIHRlc3RfY2FzZSk7CisJLyogVGhpcyBsaW5lIG1heSBu ZXZlciBiZSByZWFjaGVkLiAqLworCWt1bml0X3J1bl9jYXNlX2NsZWFudXAodGVzdCwgc3VpdGUp OworfQorCitzdGF0aWMgdm9pZCBrdW5pdF9jYXRjaF9ydW5fY2FzZSh2b2lkICpkYXRhKQorewor CXN0cnVjdCBrdW5pdF90cnlfY2F0Y2hfY29udGV4dCAqY3R4ID0gZGF0YTsKKwlzdHJ1Y3Qga3Vu aXQgKnRlc3QgPSBjdHgtPnRlc3Q7CisJc3RydWN0IGt1bml0X3N1aXRlICpzdWl0ZSA9IGN0eC0+ c3VpdGU7CisJc3RydWN0IGt1bml0X2Nhc2UgKnRlc3RfY2FzZSA9IGN0eC0+dGVzdF9jYXNlOwor CWludCB0cnlfZXhpdF9jb2RlID0ga3VuaXRfdHJ5X2NhdGNoX2dldF9yZXN1bHQoJnRlc3QtPnRy eV9jYXRjaCk7CisKKwlpZiAodHJ5X2V4aXRfY29kZSkgeworCQlrdW5pdF9zZXRfZmFpbHVyZSh0 ZXN0KTsKKwkJLyoKKwkJICogVGVzdCBjYXNlIGNvdWxkIG5vdCBmaW5pc2gsIHdlIGhhdmUgbm8g aWRlYSB3aGF0IHN0YXRlIGl0IGlzCisJCSAqIGluLCBzbyBkb24ndCBkbyBjbGVhbiB1cC4KKwkJ ICovCisJCWlmICh0cnlfZXhpdF9jb2RlID09IC1FVElNRURPVVQpCisJCQlrdW5pdF9lcnIodGVz dCwgInRlc3QgY2FzZSB0aW1lZCBvdXRcbiIpOworCQkvKgorCQkgKiBVbmtub3duIGludGVybmFs IGVycm9yIG9jY3VycmVkIHByZXZlbnRpbmcgdGVzdCBjYXNlIGZyb20KKwkJICogcnVubmluZywg c28gdGhlcmUgaXMgbm90aGluZyB0byBjbGVhbiB1cC4KKwkJICovCisJCWVsc2UKKwkJCWt1bml0 X2Vycih0ZXN0LCAiaW50ZXJuYWwgZXJyb3Igb2NjdXJyZWQgcHJldmVudGluZyB0ZXN0IGNhc2Ug ZnJvbSBydW5uaW5nOiAlZFxuIiwKKwkJCQkgIHRyeV9leGl0X2NvZGUpOworCQlyZXR1cm47CisJ fQorCisJaWYgKGt1bml0X2dldF9kZWF0aF90ZXN0KHRlc3QpKSB7CisJCS8qCisJCSAqIEVYUEVD VEVEIERFQVRIOiBrdW5pdF9ydW5fY2FzZV9pbnRlcm5hbCBlbmNvdW50ZXJlZAorCQkgKiBhbnRp Y2lwYXRlZCBmYXRhbCBlcnJvci4gRXZlcnl0aGluZyBzaG91bGQgYmUgaW4gYSBzYWZlCisJCSAq IHN0YXRlLgorCQkgKi8KKwkJa3VuaXRfcnVuX2Nhc2VfY2xlYW51cCh0ZXN0LCBzdWl0ZSk7CisJ fSBlbHNlIHsKKwkJLyoKKwkJICogVU5FWFBFQ1RFRCBERUFUSDoga3VuaXRfcnVuX2Nhc2VfaW50 ZXJuYWwgZW5jb3VudGVyZWQgYW4KKwkJICogdW5hbnRpY2lwYXRlZCBmYXRhbCBlcnJvci4gV2Ug aGF2ZSBubyBpZGVhIHdoYXQgdGhlIHN0YXRlIG9mCisJCSAqIHRoZSB0ZXN0IGNhc2UgaXMgaW4u CisJCSAqLworCQlrdW5pdF9oYW5kbGVfdGVzdF9jcmFzaCh0ZXN0LCBzdWl0ZSwgdGVzdF9jYXNl KTsKKwkJa3VuaXRfc2V0X2ZhaWx1cmUodGVzdCk7CisJfQorfQorCisvKgorICogUGVyZm9ybXMg YWxsIGxvZ2ljIHRvIHJ1biBhIHRlc3QgY2FzZS4gSXQgYWxzbyBjYXRjaGVzIG1vc3QgZXJyb3Jz IHRoYXQKKyAqIG9jY3VycyBpbiBhIHRlc3QgY2FzZSBhbmQgcmVwb3J0cyB0aGVtIGFzIGZhaWx1 cmVzLgorICovCitzdGF0aWMgdm9pZCBrdW5pdF9ydW5fY2FzZV9jYXRjaF9lcnJvcnMoc3RydWN0 IGt1bml0X3N1aXRlICpzdWl0ZSwKKwkJCQkJc3RydWN0IGt1bml0X2Nhc2UgKnRlc3RfY2FzZSkK K3sKKwlzdHJ1Y3Qga3VuaXRfdHJ5X2NhdGNoX2NvbnRleHQgY29udGV4dDsKKwlzdHJ1Y3Qga3Vu aXRfdHJ5X2NhdGNoICp0cnlfY2F0Y2g7CisJc3RydWN0IGt1bml0IHRlc3Q7CisKKwlrdW5pdF9p bml0X3Rlc3QoJnRlc3QsIHRlc3RfY2FzZS0+bmFtZSk7CisJdHJ5X2NhdGNoID0gJnRlc3QudHJ5 X2NhdGNoOwogCi0Ja3VuaXRfY2xlYW51cCgmdGVzdCk7CisJa3VuaXRfdHJ5X2NhdGNoX2luaXQo dHJ5X2NhdGNoLAorCQkJICAgICAmdGVzdCwKKwkJCSAgICAga3VuaXRfdHJ5X3J1bl9jYXNlLAor CQkJICAgICBrdW5pdF9jYXRjaF9ydW5fY2FzZSk7CisJY29udGV4dC50ZXN0ID0gJnRlc3Q7CisJ Y29udGV4dC5zdWl0ZSA9IHN1aXRlOworCWNvbnRleHQudGVzdF9jYXNlID0gdGVzdF9jYXNlOwor CWt1bml0X3RyeV9jYXRjaF9ydW4odHJ5X2NhdGNoLCAmY29udGV4dCk7CiAKIAl0ZXN0X2Nhc2Ut PnN1Y2Nlc3MgPSB0ZXN0LnN1Y2Nlc3M7CiB9CkBAIC0xNzQsNyArMzIwLDcgQEAgaW50IGt1bml0 X3J1bl90ZXN0cyhzdHJ1Y3Qga3VuaXRfc3VpdGUgKnN1aXRlKQogCWt1bml0X3ByaW50X3N1YnRl c3Rfc3RhcnQoc3VpdGUpOwogCiAJZm9yICh0ZXN0X2Nhc2UgPSBzdWl0ZS0+dGVzdF9jYXNlczsg dGVzdF9jYXNlLT5ydW5fY2FzZTsgdGVzdF9jYXNlKyspIHsKLQkJa3VuaXRfcnVuX2Nhc2Uoc3Vp dGUsIHRlc3RfY2FzZSk7CisJCWt1bml0X3J1bl9jYXNlX2NhdGNoX2Vycm9ycyhzdWl0ZSwgdGVz dF9jYXNlKTsKIAkJa3VuaXRfcHJpbnRfdGVzdF9jYXNlX29rX25vdF9vayh0ZXN0X2Nhc2UsIHRl c3RfY2FzZV9jb3VudCsrKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2t1bml0L3RyeS1jYXRjaC5jIGIv a3VuaXQvdHJ5LWNhdGNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MC4uZGU1ODBmMDc0Mzg3YgotLS0gL2Rldi9udWxsCisrKyBiL2t1bml0L3RyeS1jYXRjaC5jCkBA IC0wLDAgKzEsOTUgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgor ICogQW4gQVBJIHRvIGFsbG93IGEgZnVuY3Rpb24sIHRoYXQgbWF5IGZhaWwsIHRvIGJlIGV4ZWN1 dGVkLCBhbmQgcmVjb3ZlciBpbiBhCisgKiBjb250cm9sbGVkIG1hbm5lci4KKyAqCisgKiBDb3B5 cmlnaHQgKEMpIDIwMTksIEdvb2dsZSBMTEMuCisgKiBBdXRob3I6IEJyZW5kYW4gSGlnZ2lucyA8 YnJlbmRhbmhpZ2dpbnNAZ29vZ2xlLmNvbT4KKyAqLworCisjaW5jbHVkZSA8a3VuaXQvdHJ5LWNh dGNoLmg+CisjaW5jbHVkZSA8a3VuaXQvdGVzdC5oPgorI2luY2x1ZGUgPGxpbnV4L2NvbXBsZXRp b24uaD4KKyNpbmNsdWRlIDxsaW51eC9rdGhyZWFkLmg+CisKK3ZvaWQgX19ub3JldHVybiBrdW5p dF90cnlfY2F0Y2hfdGhyb3coc3RydWN0IGt1bml0X3RyeV9jYXRjaCAqdHJ5X2NhdGNoKQorewor CXRyeV9jYXRjaC0+dHJ5X3Jlc3VsdCA9IC1FRkFVTFQ7CisJY29tcGxldGVfYW5kX2V4aXQodHJ5 X2NhdGNoLT50cnlfY29tcGxldGlvbiwgLUVGQVVMVCk7Cit9CisKK3N0YXRpYyBpbnQga3VuaXRf Z2VuZXJpY19ydW5fdGhyZWFkZm5fYWRhcHRlcih2b2lkICpkYXRhKQoreworCXN0cnVjdCBrdW5p dF90cnlfY2F0Y2ggKnRyeV9jYXRjaCA9IGRhdGE7CisKKwl0cnlfY2F0Y2gtPnRyeSh0cnlfY2F0 Y2gtPmNvbnRleHQpOworCisJY29tcGxldGVfYW5kX2V4aXQodHJ5X2NhdGNoLT50cnlfY29tcGxl dGlvbiwgMCk7Cit9CisKK3ZvaWQga3VuaXRfdHJ5X2NhdGNoX3J1bihzdHJ1Y3Qga3VuaXRfdHJ5 X2NhdGNoICp0cnlfY2F0Y2gsIHZvaWQgKmNvbnRleHQpCit7CisJREVDTEFSRV9DT01QTEVUSU9O X09OU1RBQ0sodHJ5X2NvbXBsZXRpb24pOworCXN0cnVjdCBrdW5pdCAqdGVzdCA9IHRyeV9jYXRj aC0+dGVzdDsKKwlzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRhc2tfc3RydWN0OworCWludCBleGl0X2Nv ZGUsIHN0YXR1czsKKworCXRyeV9jYXRjaC0+Y29udGV4dCA9IGNvbnRleHQ7CisJdHJ5X2NhdGNo LT50cnlfY29tcGxldGlvbiA9ICZ0cnlfY29tcGxldGlvbjsKKwl0cnlfY2F0Y2gtPnRyeV9yZXN1 bHQgPSAwOworCXRhc2tfc3RydWN0ID0ga3RocmVhZF9ydW4oa3VuaXRfZ2VuZXJpY19ydW5fdGhy ZWFkZm5fYWRhcHRlciwKKwkJCQkgIHRyeV9jYXRjaCwKKwkJCQkgICJrdW5pdF90cnlfY2F0Y2hf dGhyZWFkIik7CisJaWYgKElTX0VSUih0YXNrX3N0cnVjdCkpIHsKKwkJdHJ5X2NhdGNoLT5jYXRj aCh0cnlfY2F0Y2gtPmNvbnRleHQpOworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBUT0RPKGJy ZW5kYW5oaWdnaW5zQGdvb2dsZS5jb20pOiBXZSBzaG91bGQgcHJvYmFibHkgaGF2ZSBzb21lIHR5 cGUgb2YKKwkgKiB2YXJpYWJsZSB0aW1lb3V0IGhlcmUuIFRoZSBvbmx5IHF1ZXN0aW9uIGlzIHdo YXQgdGhhdCB0aW1lb3V0IHZhbHVlCisJICogc2hvdWxkIGJlLgorCSAqCisJICogVGhlIGludGVu dGlvbiBoYXMgYWx3YXlzIGJlZW4sIGF0IHNvbWUgcG9pbnQsIHRvIGJlIGFibGUgdG8gbGFiZWwK KwkgKiB0ZXN0cyB3aXRoIHNvbWUgdHlwZSBvZiBzaXplIGJ1Y2tldCAodW5pdC9zbWFsbCwgaW50 ZWdyYXRpb24vbWVkaXVtLAorCSAqIGxhcmdlL3N5c3RlbS9lbmQtdG8tZW5kLCBldGMpLCB3aGVy ZSBlYWNoIHNpemUgYnVja2V0IHdvdWxkIGdldCBhCisJICogZGVmYXVsdCB0aW1lb3V0IHZhbHVl IGtpbmQgb2YgbGlrZSB3aGF0IEJhemVsIGRvZXM6CisJICogaHR0cHM6Ly9kb2NzLmJhemVsLmJ1 aWxkL3ZlcnNpb25zL21hc3Rlci9iZS9jb21tb24tZGVmaW5pdGlvbnMuaHRtbCN0ZXN0LnNpemUK KwkgKiBUaGVyZSBpcyBzdGlsbCBzb21lIGRlYmF0ZSB0byBiZSBoYWQgb24gZXhhY3RseSBob3cg d2UgZG8gdGhpcy4gKEZvcgorCSAqIG9uZSwgd2UgcHJvYmFibHkgd2FudCB0byBoYXZlIHNvbWUg c29ydCBvZiB0ZXN0IHJ1bm5lciBsZXZlbAorCSAqIHRpbWVvdXQuKQorCSAqCisJICogRm9yIG1v cmUgYmFja2dyb3VuZCBvbiB0aGlzIHRvcGljLCBzZWU6CisJICogaHR0cHM6Ly9taWtlLWJsYW5k LmNvbS8yMDExLzExLzAxL3NtYWxsLW1lZGl1bS1sYXJnZS5odG1sCisJICovCisJc3RhdHVzID0g d2FpdF9mb3JfY29tcGxldGlvbl90aW1lb3V0KCZ0cnlfY29tcGxldGlvbiwKKwkJCQkJICAgICAz MDAgKiBNU0VDX1BFUl9TRUMpOyAvKiA1IG1pbiAqLworCWlmIChzdGF0dXMgPCAwKSB7CisJCWt1 bml0X2Vycih0ZXN0LCAidHJ5IHRpbWVkIG91dFxuIik7CisJCXRyeV9jYXRjaC0+dHJ5X3Jlc3Vs dCA9IC1FVElNRURPVVQ7CisJfQorCisJZXhpdF9jb2RlID0gdHJ5X2NhdGNoLT50cnlfcmVzdWx0 OworCisJaWYgKCFleGl0X2NvZGUpCisJCXJldHVybjsKKworCWlmIChleGl0X2NvZGUgPT0gLUVG QVVMVCkKKwkJdHJ5X2NhdGNoLT50cnlfcmVzdWx0ID0gMDsKKwllbHNlIGlmIChleGl0X2NvZGUg PT0gLUVJTlRSKQorCQlrdW5pdF9lcnIodGVzdCwgIndha2VfdXBfcHJvY2VzcygpIHdhcyBuZXZl ciBjYWxsZWRcbiIpOworCWVsc2UgaWYgKGV4aXRfY29kZSkKKwkJa3VuaXRfZXJyKHRlc3QsICJV bmtub3duIGVycm9yOiAlZFxuIiwgZXhpdF9jb2RlKTsKKworCXRyeV9jYXRjaC0+Y2F0Y2godHJ5 X2NhdGNoLT5jb250ZXh0KTsKK30KKwordm9pZCBrdW5pdF90cnlfY2F0Y2hfaW5pdChzdHJ1Y3Qg a3VuaXRfdHJ5X2NhdGNoICp0cnlfY2F0Y2gsCisJCQkgIHN0cnVjdCBrdW5pdCAqdGVzdCwKKwkJ CSAga3VuaXRfdHJ5X2NhdGNoX2Z1bmNfdCB0cnksCisJCQkgIGt1bml0X3RyeV9jYXRjaF9mdW5j X3QgY2F0Y2gpCit7CisJdHJ5X2NhdGNoLT50ZXN0ID0gdGVzdDsKKwl0cnlfY2F0Y2gtPnRyeSA9 IHRyeTsKKwl0cnlfY2F0Y2gtPmNhdGNoID0gY2F0Y2g7Cit9Ci0tIAoyLjIyLjAuNTEwLmcyNjRm MmM4MTdhLWdvb2cKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZl bA==