Messages in this thread | | | Date | Sat, 23 Sep 2006 22:10:32 +0100 | From | Russell King <> | Subject | Re: [2/9] driver core fixes: device_register() retval check in platform.c |
| |
On Fri, Sep 22, 2006 at 11:36:55AM +0200, Cornelia Huck wrote: > From: Cornelia Huck <cornelia.huck@de.ibm.com> > > Check the return value of device_register() in platform_bus_init(). > > Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> > > --- > drivers/base/platform.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > --- linux-2.6-CH.orig/drivers/base/platform.c > +++ linux-2.6-CH/drivers/base/platform.c > @@ -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;
I don't think there's much value in patches such as this - if the platform bus type didn't register, what happens when we then try to register a platform device driver or a platform device? ISTR doing that before the bus type is registered leads to an OOPS.
So, presumably to do this properly, if the platform_bus_type failed to register, you need to force all platform device/platform device driver registrations to also fail.
At that point, is the added complexity really worth it?
-- Russell King Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 Serial core - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |