From: Cornelia Huck <[email protected]>
Check the return value of device_register() in platform_bus_init().
Signed-off-by: Cornelia Huck <[email protected]>
platform.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
--- linux-2.6.18-rc6/drivers/base/platform.c 2006-09-12 14:12:10.000000000 +0200
+++ linux-2.6.18-rc6+CH/drivers/base/platform.c 2006-09-12 16:25:50.000000000 +0200
@@ -563,8 +563,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