mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 03:24:45 +01:00
KUnit's try-catch infrastructure now uses vfork_done, which is always
set to a valid completion when a kthread is created, but which is set to
NULL once the thread terminates. This creates a race condition, where
the kthread exits before we can wait on it.
Keep a copy of vfork_done, which is taken before we wake_up_process()
and so valid, and wait on that instead.
Fixes: 93533996100c ("kunit: Handle test faults")
Reported-by: Linux Kernel Functional Testing <lkft@linaro.org>
Closes: https://lore.kernel.org/lkml/20240410102710.35911-1-naresh.kamboju@linaro.org/
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
Acked-by: Mickaël Salaün <mic@digikod.net>
Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Rae Moar <rmoar@google.com>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
|
||
|---|---|---|
| .. | ||
| .kunitconfig | ||
| assert.c | ||
| attributes.c | ||
| debugfs.c | ||
| debugfs.h | ||
| device-impl.h | ||
| device.c | ||
| executor.c | ||
| executor_test.c | ||
| hooks-impl.h | ||
| hooks.c | ||
| Kconfig | ||
| kunit-example-test.c | ||
| kunit-test.c | ||
| Makefile | ||
| resource.c | ||
| static_stub.c | ||
| string-stream-test.c | ||
| string-stream.c | ||
| string-stream.h | ||
| test.c | ||
| try-catch-impl.h | ||
| try-catch.c | ||