On Wed, Dec 07, 2005 at 05:59:24PM -0500, Dmitry Torokhov wrote:
> On 12/7/05, Greg KH <[email protected]> wrote:
> > On Wed, Dec 07, 2005 at 05:18:40PM -0500, Dmitry Torokhov wrote:
> > > On 12/7/05, Russell King <[email protected]> wrote:
> > >
> > > > Unregistering is just a matter of calling platform_device_unregister().
> > > > An unregister call is a del + put in exactly the same way as it is
> > > > throughout the rest of the driver model.
> > > >
> > >
> > > Yes, and it works just fine everywhere except in initialization code
> > > when you need to jump in the middle of _del + _put sequence.
> >
> > So, if you had _del, would it work easier for you? I just objected to
> > it if it wasn't necessary. I didn't want to add functions that aren't
> > used by anyone, but if is needed, I don't see a problem with it.
> >
>
> Yes, the I can just write:
>
> ...
> err = platform_driver_register(&i8042_driver);
> if (err)
> goto err_controller_cleanup;
>
> i8042_platform_device = platform_device_alloc("i8042", -1);
> if (!i8042_platform_device) {
> err = -ENOMEM;
> goto err_unregister_driver;
> }
>
> err = platform_device_add(i8042_platform_device);
> if (err)
> goto err_free_device;
> ...
>
> if (!have_ports) {
> err = -ENODEV;
> goto err_delete_device;
> }
>
> mod_timer(&i8042_timer, jiffies + I8042_POLL_PERIOD);
> return 0;
>
> err_delete_device:
> platform_device_del(i8042_platform_device);
> err_free_device:
> platform_device_put(i8042_platform_device);
> err_unregister_driver:
> platform_driver_unregister(&i8042_driver);
> ....
>
> As you can see - single cleanup path..
Ok, that's fine with me. Russell, any objections?
thanks,
greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]