Messages in this thread | | | Subject | Re: [BUGFIX 2/2] gdth: bugfix for the Timer at exit crash | From | James Bottomley <> | Date | Wed, 13 Feb 2008 11:33:55 -0600 |
| |
On Wed, 2008-02-13 at 19:18 +0200, Boaz Harrosh wrote: > On Wed, Feb 13 2008 at 19:03 +0200, James Bottomley <James.Bottomley@HansenPartnership.com> wrote: > > It needs to register a reboot notifier, which gdth does. > > > > However, the notifier is only called on reboot, so it also needs to > > clean up correctly on module exit as well. > > > > The alternative for GDTH would be to process the SCSI SYNCHRONIZE CACHE > > Why would we think that the controller does not support this command > is it not in the mandatory section of the standard?
Um, because the controller isn't a SCSI device. It's an emulated device which means the SCSI comands are processed in the driver. It does look like the driver<->HBA communication is some sort of translated dialect of SCSI.
> > command. That's done by a shutdown notifier from sd, so the correct > > thing would always get done; however it does mean the driver has to be > > in a condition to process the last sync cache command. > > Why would it not be ready? what do other drivers do? > The drivers is ready until the very last module's .exit. Is that good > enough?
shutdown is called as part of device removal and module unload ... usually from scsi_remove_host(). So you can't tear down command processing before that point.
> > > > For the quick fix, just keep the current infrastructure and put back the > > gdth_flush() command where it can be effective. > > > > Just did. But if needed I would prefer to emulate the SCSI SYNCHRONIZE CACHE > command and not that boot notifier thing. Please advise.
I think such a change, though desirable, would be too large to count as a bug fix.
James
| |