forked from mirrors/linux
		
	numa: fix NULL pointer access and memory leak in unregister_one_node()
When doing socket hot remove, "node_devices[nid]" is set to NULL; acpi_processor_remove() try_offline_node() unregister_one_node() Then hot add a socket, but do not echo 1 > /sys/devices/system/cpu/cpuXX/online, so register_one_node() will not be called, and "node_devices[nid]" is still NULL. If doing socket hot remove again, NULL pointer access will be happen. unregister_one_node() unregister_node() Another, we should free the memory used by "node_devices[nid]" in unregister_one_node(). Signed-off-by: Xishi Qiu <qiuxishi@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									aa0689b36b
								
							
						
					
					
						commit
						92d585ef06
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		|  | @ -599,7 +599,11 @@ int register_one_node(int nid) | |||
| 
 | ||||
| void unregister_one_node(int nid) | ||||
| { | ||||
| 	if (!node_devices[nid]) | ||||
| 		return; | ||||
| 
 | ||||
| 	unregister_node(node_devices[nid]); | ||||
| 	kfree(node_devices[nid]); | ||||
| 	node_devices[nid] = NULL; | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Xishi Qiu
						Xishi Qiu