cciss: Fix pci_driver.shutdown while device is still active
authorGerald Britton <gbritton@alum.mit.edu>
Mon, 14 May 2007 17:53:01 +0000 (13:53 -0400)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Sat, 19 May 2007 04:03:49 +0000 (21:03 -0700)
commite9ca75b53576ddf82ea2d803f87c59dffac7bc42
tree4f4763a1960572dcf144de622729098ade4e8ea7
parentdec04cff500d4e543c55ab1beb0af85d8ed7e6bd
cciss: Fix pci_driver.shutdown while device is still active

Fix an Oops in the cciss driver caused by system shutdown while a filesystem
on a cciss device is still active.  The cciss_remove_one function only
properly removes the device if the device has been cleanly released by its
users, which is not the case when the pci_driver.shutdown method is called.

This patch adds a new cciss_shutdown function to better match the pattern
used by various SCSI drivers: deactivate device interrupts and flush caches.
It also alters the cciss_remove_one function to match and readds the
__devexit annotation that was removed when cciss_remove_one was serving as
the pci_driver.shutdown method.

Signed-off-by: Gerald Britton <gbritton@alum.mit.edu>
Acked-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/block/cciss.c