James Bottomley [EMAIL PROTECTED] wrote: > > Recently I have not been spending the proper time looking at this, but > > last look it appeared that we needed to add a release / put method call > > to the gendisk disk_release routine. The release function or object to do > > the put on would need to be set prior to the call to add_disk. > > Actually, I can't believe this problem to be local entirely to SCSI. > So, a simpler mechanism (and more globally useful) might be to have a > two phase driver release in sysfs:
I would agree this should be more general than SCSI, but if kobjects are being passed during the registration / setup in other subsystem interfaces than this could already be handled. > > - the current ->remove would stay where it is (as a notify on > device_del). On receving this the driver begins clean up enough to drop > any internal references to the device it is holding. > - then introduce a ->release which is called as part of dropping the > last device reference where the driver cleans up any resources the > driver was keeping to service the removed but not released device. > > Then, we'd obviously not call unregister_cdrom and kfree the scsi_cd > structure until ->release time. Maybe some clarification here as I am unsure if we both think there needs to be a notification (a put call) from outside SCSI. We have release functions available on most objects in SCSI now. The issue is that when we register (add_disk, dev_set_drvdata, etc.) or pass a handle to another subsystem we need a reference count agreement to know when the other subsystem is done with the the object. Something like the put_device(parent) used in scsi_host_dev_release. -andmike -- Michael Anderson [EMAIL PROTECTED] ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel