The check is only there to stop root fork bombs. BUG: KCSAN: data-race in copy_process / copy_process
write to 0xffffffff86f87d20 of 4 bytes by task 7121 on cpu 5: copy_process+0x2e1a/0x3af0 kernel/fork.c:2285 _do_fork+0xf7/0x790 kernel/fork.c:2430 __do_sys_clone+0xf9/0x130 kernel/fork.c:2585 __se_sys_clone kernel/fork.c:2566 [inline] __x64_sys_clone+0x6c/0x80 kernel/fork.c:2566 do_syscall_64+0xc7/0x3b0 arch/x86/entry/common.c:295 entry_SYSCALL_64_after_hwframe+0x44/0xa9 read to 0xffffffff86f87d20 of 4 bytes by task 7125 on cpu 3: copy_process+0x9eb/0x3af0 kernel/fork.c:1967 _do_fork+0xf7/0x790 kernel/fork.c:2430 __do_sys_clone+0xf9/0x130 kernel/fork.c:2585 __se_sys_clone kernel/fork.c:2566 [inline] __x64_sys_clone+0x6c/0x80 kernel/fork.c:2566 do_syscall_64+0xc7/0x3b0 arch/x86/entry/common.c:295 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Signed-off-by: Weilong Chen <chenweil...@huawei.com> --- kernel/fork.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/fork.c b/kernel/fork.c index 142b23645d82..efc5493203ae 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1977,7 +1977,7 @@ static __latent_entropy struct task_struct *copy_process( * to stop root fork bombs. */ retval = -EAGAIN; - if (nr_threads >= max_threads) + if (data_race(nr_threads >= max_threads)) goto bad_fork_cleanup_count; delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ -- 2.17.1