Messages in this thread | | | Date | Tue, 17 Jul 2007 01:18:22 +0900 | From | "Akinobu Mita" <> | Subject | Re: [PATCH 2/10] sysdev: add error check in sysdev_register() |
| |
2007/7/17, Cornelia Huck <cornelia.huck@de.ibm.com>: > On Mon, 16 Jul 2007 22:51:38 +0900, > Akinobu Mita <akinobu.mita@gmail.com> wrote: > > > This patch enables to catch the errors returned by add() procedure of > > sysdev driver in sysdev_register. > > > @@ -253,23 +254,50 @@ int sysdev_register(struct sys_device * > > > > /* Notify global drivers */ > > list_for_each_entry(drv, &sysdev_drivers, entry) { > > - if (drv->add) > > - drv->add(sysdev); > > + if (drv->add) { > > + error = drv->add(sysdev); > > + if (error) > > + goto error_sysdev; > > + } > > + added_sysdev++; > > } > > This looks asymmetric to me. Imagine we have a device/driver > combination for which drv->add will return -ESOMEERROR. Now, it depends > on the order: > > 1. The device is registered when the driver is already registered: > registration of the device will fail. > > 2. The driver is registered when the device is already registered: > driver registration will succeed, and the device will stay registered. > > I'm not sure if that is what we really want.
Thanks, I didn't realize the asymmetry. I think we need to add same check to sysdev_driver_register(). But I need to check every sysdev driver's add() functions before making this change. So this patch dropped from this series of patches for now. - 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/
| |