BUG: SCSI SYNCHRONIZE_CACHE on driver unload
On module removal of a SCSI Low-Level Driver (LLD), the mid-layer tries to do a SYNCHRONIZE_CACHE command to each device on each host of that driver.
But the command is issued *after* setting SHOST_CANCEL, which means that scsi_dispatch_cmd() will *always* fail the command inline, without passing to the LLD.
This bug shows up only for hosts/drives which support a write-back caching scheme. For the more common write-thru scheme, the SYNCHRONIZE_CACHE command is never issued, so the bug never manifests.
Cheers
Signature · 2 lines
Mark Lord (hdparm keeper & the original "Linux IDE Guy")
On Thu, 05 Aug 2004 19:02:18 -0400 Mark Lord wrote:
| On module removal of a SCSI Low-Level Driver (LLD), | the mid-layer tries to do a SYNCHRONIZE_CACHE | command to each device on each host of that driver. | | But the command is issued *after* setting SHOST_CANCEL, | which means that scsi_dispatch_cmd() will *always* | fail the command inline, without passing to the LLD. | | This bug shows up only for hosts/drives which support | a write-back caching scheme. For the more common | write-thru scheme, the SYNCHRONIZE_CACHE command is | never issued, so the bug never manifests.
Like this, when I unmount a zip drive (?):
Synchronizing SCSI cache for disk sde: <4>FAILED
status = 0, message = 00, host = 1, driver = 00
--
~Randy
Yup. That's the exact bug.
Signature · 2 lines
Mark Lord (hdparm keeper & the original "Linux IDE Guy")