1
linux/drivers/scsi
Mark Haverkamp 03d4433721 [SCSI] aacraid: Improved error handling
Received from Mark Salyzyn,

This set of fixes improve error handling stability of the driver. A popular
manifestation of the problems is an NULL pointer reference in the interrupt
handler when referencing portions of the scsi command context, or in the
scsi_done handling when an offlined device is referenced.

The aacraid driver currently does not get notification of orphaned command
completions due to devices going offline. The driver also fails to handle the
commands that are finished by the error handler, and thus can complete again
later at the hands of the adapter causing situations of completion of an
invalid scsi command context. Test Unit Ready calls abort assuming that the
abort was successful, but are not, and thus when the interrupt from the adapter
occurs, they reference invalid command contexts. We add in a TIMED_OUT flag to
inform the aacraid FIB context that the interrupt service should merely release
the driver resources and not complete the command up. We take advantage of this
with the abort handler as well for select abortable commands. And we detect and
react if a command that can not be aborted is currently still outstanding to
the controller when reissued by the retry mechanism.

Signed-off-by: Mark Haverkamp <markh@linux-foundation.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
2007-03-20 10:56:03 -05:00
..
aacraid [SCSI] aacraid: Improved error handling 2007-03-20 10:56:03 -05:00
aic7xxx
aic7xxx_old
aic94xx
arcmsr
arm
dpt
ibmvscsi [SCSI] tgt: fix sesnse buffer problems 2007-03-11 11:39:27 -05:00
libsas
lpfc
megaraid
pcmcia
qla2xxx [SCSI] qla2xxx: Update version number to 8.01.07-k6. 2007-03-20 10:51:36 -05:00
qla4xxx
sym53c8xx_2
.gitignore
3w-9xxx.c
3w-9xxx.h
3w-xxxx.c
3w-xxxx.h
53c7xx_d.h_shipped
53c7xx_u.h_shipped
53c7xx.c
53c7xx.h
53c7xx.scr
53c700_d.h_shipped
53c700.c
53c700.h
53c700.scr
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
advansys.c
advansys.h
aha152x.c
aha152x.h
aha1542.c
aha1542.h
aha1740.c
aha1740.h
aic7xxx_old.c
amiga7xx.c
amiga7xx.h
atari_dma_emul.c
atari_NCR5380.c
atari_scsi.c
atari_scsi.h
atp870u.c
atp870u.h
blz1230.c
blz2060.c
BusLogic.c
BusLogic.h
bvme6000.c
bvme6000.h
ch.c
constants.c [SCSI] constants.c: Update ASC list and make it const 2007-03-11 11:21:25 -05:00
cyberstorm.c
cyberstormII.c
dc395x.c
dc395x.h
dec_esp.c
dmx3191d.c
dpt_i2o.c
dpti.h
dtc.c
dtc.h
eata_generic.h
eata_pio.c
eata_pio.h
eata.c
esp.c
esp.h
fastlane.c
fcal.c
fcal.h
fd_mcs.c
fdomain.c
fdomain.h
FlashPoint.c
g_NCR5380_mmio.c
g_NCR5380.c
g_NCR5380.h
gdth_ioctl.h
gdth_kcompat.h
gdth_proc.c
gdth_proc.h
gdth.c
gdth.h
gvp11.c
gvp11.h
hosts.c
hptiop.c
hptiop.h
ibmmca.c
ibmmca.h
ide-scsi.c
imm.c
imm.h
in2000.c
in2000.h
initio.c
initio.h
ipr.c
ipr.h
ips.c
ips.h
iscsi_tcp.c [SCSI] iscsi_tcp: print useful error message when iscsi crc23c allocation fails 2007-03-11 11:30:11 -05:00
iscsi_tcp.h
jazz_esp.c
Kconfig [SCSI] make scsi_wait_scan always modular 2007-03-20 10:48:23 -05:00
lasi700.c
libiscsi.c [SCSI] libiscsi: use get_unaligned 2007-03-11 11:28:09 -05:00
libsrp.c
mac53c94.c
mac53c94.h
mac_esp.c
mac_scsi.c
mac_scsi.h
Makefile [SCSI] make scsi_wait_scan always modular 2007-03-20 10:48:23 -05:00
mca_53c9x.c
megaraid.c
megaraid.h
mesh.c
mesh.h
mvme16x.c
mvme16x.h
mvme147.c
mvme147.h
ncr53c8xx.c
ncr53c8xx.h
NCR53c406a.c
NCR53C9x.c
NCR53C9x.h
NCR5380.c
NCR5380.h
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
nsp32_debug.c
nsp32_io.h
nsp32.c
nsp32.h
oktagon_esp.c
oktagon_io.S
osst_detect.h
osst_options.h
osst.c
osst.h
pas16.c
pas16.h
pluto.c
pluto.h
ppa.c
ppa.h
psi240i.c
psi240i.h
psi_chip.h
ql1040_fw.h
ql1280_fw.h
ql12160_fw.h
qla1280.c
qla1280.h
qlogicfas408.c
qlogicfas408.h
qlogicfas.c
qlogicpti_asm.c
qlogicpti.c
qlogicpti.h
raid_class.c
script_asm.pl
scsi_debug.c
scsi_debug.h
scsi_devinfo.c
scsi_error.c
scsi_ioctl.c
scsi_lib.c [SCSI] set resid in scsi_io_completion() even for check condition 2007-03-20 10:53:51 -05:00
scsi_logging.h
scsi_module.c
scsi_netlink.c
scsi_priv.h
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c
scsi_sysctl.c
scsi_sysfs.c
scsi_tgt_if.c [SCSI] tgt: fix sesnse buffer problems 2007-03-11 11:39:27 -05:00
scsi_tgt_lib.c [SCSI] tgt: remove the code to build sense 2007-03-20 10:52:59 -05:00
scsi_tgt_priv.h [SCSI] tgt: fix sesnse buffer problems 2007-03-11 11:39:27 -05:00
scsi_transport_api.h
scsi_transport_fc.c [SCSI] fc_transport: update potential link speeds 2007-03-20 10:52:04 -05:00
scsi_transport_iscsi.c [SCSI] iscsi transport: use atomic for session_nr allocations 2007-03-11 11:27:28 -05:00
scsi_transport_sas.c
scsi_transport_spi.c
scsi_typedefs.h
scsi_wait_scan.c
scsi.c [SCSI] Make error printing more verbose 2007-03-11 11:17:49 -05:00
scsi.h
scsicam.c
sd.c [SCSI] sd: typo fix: sdkp_printk should be sd_printk 2007-03-11 12:25:33 -05:00
seagate.c
sg.c
sgiwd93.c
sim710.c
sni_53c710.c
sr_ioctl.c
sr_vendor.c
sr.c
sr.h
st_options.h
st.c
st.h
stex.c
sun3_NCR5380.c
sun3_scsi_vme.c
sun3_scsi.c
sun3_scsi.h
sun3x_esp.c
sym53c416.c
sym53c416.h
t128.c
t128.h
tmscsim.c
tmscsim.h
u14-34f.c
ultrastor.c
ultrastor.h
wd33c93.c
wd33c93.h
wd7000.c
zalon.c