linux/drivers/scsi/aic94xx
Dan Williams f41a0c441c [SCSI] libsas: fix sas_find_local_phy(), take phy references
In the direct-attached case this routine returns the phy on which this
device was first discovered.  Which is broken if we want to support
wide-targets, as this phy reference can become stale even though the
port is still active.

In the expander-attached case this routine tries to lookup the phy by
scanning the attached sas addresses of the parent expander, and BUG_ONs
if it can't find it.  However since eh and the libsas workqueue run
independently we can still be attempting device recovery via eh after
libsas has recorded the device as detached.  This is even easier to hit
now that eh is blocked while device domain rediscovery takes place, and
that libata is fed more timed out commands increasing the chances that
it will try to recover the ata device.

Arrange for dev->phy to always point to a last known good phy, it may be
stale after the port is torn down, but it will catch up for wide port
reconfigurations, and never be NULL.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-02-29 13:01:06 -06:00
..
aic94xx_dev.c [SCSI] libsas: use ->set_dmamode to notify lldds of NCQ parameters 2012-02-19 13:55:42 -06:00
aic94xx_dump.c aix94xx: Use angle brackets for system includes 2011-09-15 14:02:57 +02:00
aic94xx_dump.h [SCSI] aic94xx: cleanups 2008-04-07 12:19:08 -05:00
aic94xx_hwi.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
aic94xx_hwi.h [SCSI] aic94xx: cleanups 2008-04-07 12:19:08 -05:00
aic94xx_init.c [SCSI] libsas: use ->set_dmamode to notify lldds of NCQ parameters 2012-02-19 13:55:42 -06:00
aic94xx_reg_def.h Fix common misspellings 2011-03-31 11:26:23 -03:00
aic94xx_reg.c [SCSI] aic94xx: cleanups 2008-04-07 12:19:08 -05:00
aic94xx_reg.h
aic94xx_sas.h [SCSI] aic94xx: fix ABORT_TASK define conflict 2008-02-11 13:36:31 -06:00
aic94xx_scb.c [SCSI] isci: export phy events via ->lldd_control_phy() 2011-10-02 13:24:26 -05:00
aic94xx_sds.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
aic94xx_sds.h aic94xx: treat firmware data as const 2008-07-10 14:26:15 +01:00
aic94xx_seq.c tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
aic94xx_seq.h [SCSI] aic94xx: cleanups 2008-04-07 12:19:08 -05:00
aic94xx_task.c [SCSI] Unify SAM_ and SAM_STAT_ macros 2010-07-28 09:07:49 -05:00
aic94xx_tmf.c [SCSI] libsas: fix sas_find_local_phy(), take phy references 2012-02-29 13:01:06 -06:00
aic94xx.h [SCSI] libsas: use ->set_dmamode to notify lldds of NCQ parameters 2012-02-19 13:55:42 -06:00
Kconfig
Makefile scsi: change to new flag variable 2011-03-17 14:05:35 +01:00