linux/drivers/scsi/pm8001
Mark Salyzyn b90b378ad5 [SCSI] pm8001: fix DEV_IS_GONE infinite retry
On the pm8001, when a device is in the process of going away (device
power off or hot plug), depending on the timing, the driver would return
SAS_PHY_DOWN as the return value to the queuecommand DEV_IS_GONE logic.
The net result is an near infinite retry (especially if SAS debugging is
enabled), the logs will fill with:

kernel: mpi_ssp_completion 2119:e21:SSP IO status 0x13 tag 0xcc1c0000
dlen=90 param=0xe
kernel: wwn=5000c50034069e86  cdb=12 00 00 00 5a 00 00 00 00 00 00 00 00
00 00 00
kernel: sas: lldd_execute_task returned: 138
kernel: sas: lldd_execute_task returned: 138
kernel: sas: lldd_execute_task returned: 138
kernel: sas: lldd_execute_task returned: 138
kernel: sas: lldd_execute_task returned: 138
kernel: sas: lldd_execute_task returned: 138
kernel: sas: lldd_execute_task returned: 138
. . .

This patch changes to leverage the port_attached logic to complete the
command with a status of PHY_DOWN so that the disposition can be handled
immediately and correctly.

Signed-off-by: Mark Salyzyn <mark_salyzyn@us.xyratex.com>
Acked-by: Jack Wang <jack_wang@usish.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2011-10-02 13:03:22 -05:00
..
Makefile
pm8001_chips.h
pm8001_ctl.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pm8001_ctl.h [SCSI] pm8001: enable read HBA SAS address from VPD 2009-12-10 10:09:23 -06:00
pm8001_defs.h
pm8001_hwi.c Fix common misspellings 2011-03-31 11:26:23 -03:00
pm8001_hwi.h Fix common misspellings 2011-03-31 11:26:23 -03:00
pm8001_init.c [SCSI] pm8001: remove pm8001_slave_{alloc|configure} 2011-10-02 12:40:43 -05:00
pm8001_sas.c [SCSI] pm8001: fix DEV_IS_GONE infinite retry 2011-10-02 13:03:22 -05:00
pm8001_sas.h [SCSI] pm8001: remove pm8001_slave_{alloc|configure} 2011-10-02 12:40:43 -05:00