On 16/12/2007, Paul Mundt <lethal@xxxxxxxxxxxx> wrote: > > Also, __devinit/__devexit annotations? > Is there any difference between __init and __devint? I am using __init/__exit already > > +static struct platform_driver gdrom_driver = { > > + .probe = probe_gdrom, > > + .remove = remove_gdrom, > > __devexit_p()? > > > +static void __exit exit_gdrom(void) > > +{ > > + blk_cleanup_queue(gd.gdrom_rq); > > + free_irq(HW_EVENT_GDROM_CMD, &gd); > > + free_irq(HW_EVENT_GDROM_DMA, &gd); > > + del_gendisk(gd.disk); > > + if (gdrom_major) > > + unregister_blkdev(gdrom_major, GDROM_DEV_NAME); > > + platform_device_unregister(pd); > > + platform_driver_unregister(&gdrom_driver); > > + if (gd.toc) > > + kfree(gd.toc); > > +} > > + > Ah, here's where you do the rest of the cleanup. This is non-intuitive, > remove should balance the work done by probe and exit the work done by > init. > - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html