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
					
				| @ -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 New Issue
	
	Block a user