memory hotplug: reset pgdat->kswapd to NULL if creating kernel thread fails
If kthread_run() fails, pgdat->kswapd contains errno. When we stop this thread, we only check whether pgdat->kswapd is NULL and access it. If it contains errno, it will cause page fault. Reset pgdat->kswapd to NULL when creating kernel thread fails can avoid this problem. Signed-off-by: Wen Congyang <wency@cn.fujitsu.com> Reviewed-by: Minchan Kim <minchan@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6bf6104573
commit
18b48d5873
1 changed files with 1 additions and 0 deletions
|
@ -3102,6 +3102,7 @@ int kswapd_run(int nid)
|
|||
/* failure at boot is fatal */
|
||||
BUG_ON(system_state == SYSTEM_BOOTING);
|
||||
printk("Failed to start kswapd on node %d\n",nid);
|
||||
pgdat->kswapd = NULL;
|
||||
ret = -1;
|
||||
}
|
||||
return ret;
|
||||
|
|
Loading…
Reference in a new issue