• Eric W. Biederman's avatar
    sched: Update task_tick_numa to ignore tasks without an mm · b3f9916d
    Eric W. Biederman authored
    Qian Cai <quic_qiancai@quicinc.com> wrote:
    > Reverting the last 3 commits of the series fixed a boot crash.
    >
    > 1b2552cb fork: Stop allowing kthreads to call execve
    > 753550eb fork: Explicitly set PF_KTHREAD
    > 68d85f0a init: Deal with the init process being a user mode process
    >
    >  BUG: KASAN: null-ptr-deref in task_nr_scan_windows.isra.0
    >  arch_atomic_long_read at ./include/linux/atomic/atomic-long.h:29
    >  (inlined by) atomic_long_read at ./include/linux/atomic/atomic-instrumented.h:1266
    >  (inlined by) get_mm_counter at ./include/linux/mm.h:1996
    >  (inlined by) get_mm_rss at ./include/linux/mm.h:2049
    >  (inlined by) task_nr_scan_windows at kernel/sched/fair.c:1123
    >  Read of size 8 at addr 00000000000003d0 by task swapper/0/1
    
    With the change to init and the user mode helper processes to not have
    PF_KTHREAD set before they call kernel_execve the PF_KTHREAD test in
    task_tick_numa became insufficient to detect all tasks that have
    "->mm == NULL".  Correct that by testing for "->mm == NULL" directly.
    Reported-by: default avatarQian Cai <quic_qiancai@quicinc.com>
    Tested-by: default avatarQian Cai <quic_qiancai@quicinc.com>
    Fixes: 1b2552cb ("fork: Stop allowing kthreads to call execve")
    Link: https://lkml.kernel.org/r/87r150ug1l.fsf_-_@email.froward.int.ebiederm.orgSigned-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
    b3f9916d
fair.c 312 KB