torture: Wake up kthreads after storing task_struct pointer
authorPaul E. McKenney <paulmck@kernel.org>
Mon, 3 Jan 2022 14:07:09 +0000 (06:07 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 2 Feb 2022 01:24:39 +0000 (17:24 -0800)
commit6b8646a9d37c6324cf994dbefb75f3eb20b109ab
tree73ec2997a3895b304525f44f0f593ddcdef0d367
parent89440d2dad0cc2a781290470cb90402ebba481fc
torture: Wake up kthreads after storing task_struct pointer

Currently, _torture_create_kthread() uses kthread_run() to create
torture-test kthreads, which means that the resulting task_struct
pointer is stored after the newly created kthread has been marked
runnable.  This in turn can cause spurious failure of checks for
code being run by a particular kthread.  This commit therefore changes
_torture_create_kthread() to use kthread_create(), then to do an explicit
wake_up_process() after the task_struct pointer has been stored.

Reported-by: Frederic Weisbecker <frederic@kernel.org>
Reviewed-by: Neeraj Upadhyay <quic_neeraju@quicinc.com>
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
kernel/torture.c