瀏覽代碼

driver core fixes: device_register() retval check in platform.c

Check the return value of device_register() in platform_bus_init().

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Cornelia Huck 19 年之前
父節點
當前提交
fbfb144553
共有 1 個文件被更改,包括 9 次插入2 次删除
  1. 9 2
      drivers/base/platform.c

+ 9 - 2
drivers/base/platform.c

@@ -611,8 +611,15 @@ EXPORT_SYMBOL_GPL(platform_bus_type);
 
 
 int __init platform_bus_init(void)
 int __init platform_bus_init(void)
 {
 {
-	device_register(&platform_bus);
-	return bus_register(&platform_bus_type);
+	int error;
+
+	error = device_register(&platform_bus);
+	if (error)
+		return error;
+	error =  bus_register(&platform_bus_type);
+	if (error)
+		device_unregister(&platform_bus);
+	return error;
 }
 }
 
 
 #ifndef ARCH_HAS_DMA_GET_REQUIRED_MASK
 #ifndef ARCH_HAS_DMA_GET_REQUIRED_MASK