On Fri, Jan 15 2010, Stefan Richter wrote: > scameron@xxxxxxxxxxxxxxxxxx wrote: > > On Thu, Jan 14, 2010 at 01:24:59PM -0500, Douglas Gilbert wrote: > >> scameron@xxxxxxxxxxxxxxxxxx wrote: > >>> I'm seeing a problem which I think is a problem in the SCSI mid layer. > [...] > >>> Remove the device while something has it open: > [...] > >>> [root@slicer ~]# rmmod hpsa > >>> ERROR: Module hpsa is in use > > The sg driver's open method takes a reference to the underlying SCSI > device representation of the mid layer. Among else, this step increases > the module use count of the respective low-level driver (transport layer > driver) so that the SCSI mid layer can be sure that function pointers to > driver methods stay valid during the lifetime of the SCSI device > representation. > > This reference taking is of course being reversed when the sg driver > finishes its last uses of the underlying SCSI device. This may be at > the respective close() or even later. > > In short, it is normal, expected, and necessary what you are seeing. Hmm... Unless I'm reading Stephens email incorrectly, he's holding the device open, removing it, closing the device, and then attempting to remove the host driver. So at the point that he wants to rmmod the module, there is indeed no references to it anymore. It looks like a bug. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html