On Thu, Feb 29, 2024 at 10:24:19AM -0800, Kees Cook wrote: > On Thu, Feb 29, 2024 at 06:04:06PM +0100, Mickaël Salaün wrote: > > Previously, when a kernel test thread crashed (e.g. NULL pointer > > dereference, general protection fault), the KUnit test hanged for 30 > > seconds and exited with a timeout error. > > > > Fix this issue by waiting on task_struct->vfork_done instead of the > > custom kunit_try_catch.try_completion, and track the execution state by > > initially setting try_result with -EFAULT and only setting it to 0 if > > the test passed. > > > > Fix kunit_generic_run_threadfn_adapter() signature by returning 0 > > instead of calling kthread_complete_and_exit(). Because thread's exit > > code is never checked, always set it to 0 to make it clear. > > > > Fix the -EINTR error message, which couldn't be reached until now. > > > > This is tested with a following patch. > > > > Cc: Brendan Higgins <brendanhiggins@xxxxxxxxxx> > > Cc: David Gow <davidgow@xxxxxxxxxx> > > Cc: Rae Moar <rmoar@xxxxxxxxxx> > > Cc: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx> > > Signed-off-by: Mickaël Salaün <mic@xxxxxxxxxxx> > > I assume we can start checking for "intentional" faults now? Yes, but adding dedicated exception handling for such faults would probably be cleaner. At least we can now easily write tests as I did with the last patch. The only potential issue is that the kernel will still print the related warning in logs, but I think it's OK for tests (and maybe something we'd like to test too by the way). > > Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> > > -- > Kees Cook >