summary refs log tree commit diff
path: root/drivers/base
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2006-11-27 10:35:08 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2007-02-07 10:37:12 -0800
commitfbfb14455391b89edcf37327526988dea7849532 (patch)
tree3a55ca3576ffbccefaee67336c633d96b498745f /drivers/base
parentcb360bbf6352712310a7528137919c626a782744 (diff)
downloadlinux-fbfb14455391b89edcf37327526988dea7849532.tar.gz
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>

Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/platform.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index f9c903ba9fcd..30480f6f2af2 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -611,8 +611,15 @@ EXPORT_SYMBOL_GPL(platform_bus_type);
 
 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