Please cc David H on memhotplug stuff. On Mon, 18 Apr 2022 22:12:50 +0800 Miaohe Lin <linmiaohe@xxxxxxxxxx> wrote: > It's possible that kcompactd_run could fail to run kcompactd for a hot > added node and leave pgdat->kcompactd as NULL. So pgdat->kcompactd should > be checked here to avoid possible NULL pointer dereference. > > .. > > --- a/mm/compaction.c > +++ b/mm/compaction.c > @@ -3052,7 +3052,8 @@ static int kcompactd_cpu_online(unsigned int cpu) > > if (cpumask_any_and(cpu_online_mask, mask) < nr_cpu_ids) > /* One of our CPUs online: restore mask */ > - set_cpus_allowed_ptr(pgdat->kcompactd, mask); > + if (pgdat->kcompactd) > + set_cpus_allowed_ptr(pgdat->kcompactd, mask); > } > return 0; > } Why not fail to bring the node online if kcompactd_run() failed? Also, should we panic the system if kcompactd_run() failed in kcompactd_init()?