android_kernel_google_msm/drivers/scsi
Dan Williams 87c8331fcf [SCSI] libsas: prevent domain rediscovery competing with ata error handling
libata error handling provides for a timeout for link recovery.  libsas
must not rescan for previously known devices in this interval otherwise
it may remove a device that is simply waiting for its link to recover.
Let libata-eh make the determination of when the link is stable and
prevent libsas (host workqueue) from taking action while this
determination is pending.

Using a mutex (ha->disco_mutex) to flush and disable revalidation while
eh is running requires any discovery action that may block on eh be
moved to its own context outside the lock.  Probing ATA devices
explicitly waits on ata-eh and the cache-flush-io issued during device
removal may also pend awaiting eh completion.  Essentially any rphy
add/remove activity needs to run outside the lock.

This adds two new cleanup states for sas_unregister_domain_devices()
'allocated-but-not-probed', and 'flagged-for-destruction'.  In the
'allocated-but-not-probed' state  dev->rphy points to a rphy that is
known to have not been through a sas_rphy_add() event.  At domain
teardown check if this device is still pending probe and cleanup
accordingly.  Similarly if a device has already been queued for removal
then sas_unregister_domain_devices has nothing to do.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-02-19 13:52:34 -06:00
..
aacraid [SCSI] aacraid: Added Sync.mode to support series 7/8/9 controllers 2012-02-19 08:09:01 -06:00
aic7xxx
aic7xxx_old
aic94xx [SCSI] libsas: introduce sas_drain_work() 2012-02-19 13:48:51 -06:00
arcmsr
arm
be2iscsi
bfa [SCSI] bfa: don't leak mem in bfad_im_bsg_els_ct_request() 2012-02-19 08:09:01 -06:00
bnx2fc [SCSI] bnx2fc: Bumped version to 1.0.10 2012-02-19 08:08:59 -06:00
bnx2i [SCSI] bnx2i: Fixed the override of the error_mask module param 2012-02-19 08:09:01 -06:00
cxgbi [SCSI] libiscsi_tcp: fix max_r2t manipulation 2012-02-19 08:09:00 -06:00
device_handler
dpt
fcoe [SCSI] fcoe: Remove reference counting on 'stuct fcoe_interface' 2012-02-19 09:25:41 -06:00
fnic
ibmvscsi
isci [SCSI] libsas: remove ata_port.lock management duties from lldds 2012-02-19 13:50:12 -06:00
libfc [SCSI] libfc: Handle discovery failure during ctlr link down 2012-02-19 09:27:26 -06:00
libsas [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
lpfc [SCSI] lpfc 8.3.29: Update driver version to 8.3.29 2012-02-19 08:08:54 -06:00
megaraid [SCSI] megaraid_sas: Version and Changelog update 2012-01-16 11:28:33 +04:00
mpt2sas [SCSI] mpt2sas: spell "primitive" correctly in function prototype 2012-02-19 10:04:33 -06:00
mvsas [SCSI] libsas: remove ata_port.lock management duties from lldds 2012-02-19 13:50:12 -06:00
osd
pcmcia
pm8001 [SCSI] libsas: remove ata_port.lock management duties from lldds 2012-02-19 13:50:12 -06:00
qla2xxx [SCSI] qla2xxx: Avoid invalid request queue dereference for bad response packets. 2012-02-19 08:35:19 -06:00
qla4xxx [SCSI] qla4xxx: Update driver version to 5.02.00-k14 2012-02-19 09:36:01 -06:00
sym53c8xx_2
.gitignore
3w-9xxx.c
3w-9xxx.h
3w-sas.c
3w-sas.h
3w-xxxx.c
3w-xxxx.h
53c700.c
53c700.h
53c700.scr
53c700_d.h_shipped
a100u2w.c
a100u2w.h
a2091.c
a2091.h
a3000.c
a3000.h
a4000t.c
advansys.c
aha152x.c
aha152x.h
aha1542.c
aha1542.h
aha1740.c
aha1740.h
aic7xxx_old.c
atari_NCR5380.c
atari_scsi.c
atari_scsi.h
atp870u.c
atp870u.h
BusLogic.c
BusLogic.h
bvme6000_scsi.c
ch.c
constants.c
dc395x.c
dc395x.h
dmx3191d.c
dpt_i2o.c
dpti.h
dtc.c
dtc.h
eata.c
eata_generic.h
eata_pio.c
eata_pio.h
esp_scsi.c
esp_scsi.h
fd_mcs.c
fdomain.c
fdomain.h
FlashPoint.c
g_NCR5380.c
g_NCR5380.h
g_NCR5380_mmio.c
gdth.c
gdth.h
gdth_ioctl.h
gdth_proc.c
gdth_proc.h
gvp11.c
gvp11.h
hosts.c
hpsa.c [SCSI] hpsa: add some older controllers to the kdump blacklist 2012-02-19 09:40:51 -06:00
hpsa.h [SCSI] hpsa: factor out driver name 2012-02-19 08:08:55 -06:00
hpsa_cmd.h [SCSI] hpsa: eliminate 8 external target limitation 2012-02-19 08:08:56 -06:00
hptiop.c
hptiop.h
ibmmca.c
imm.c
imm.h
in2000.c
in2000.h
initio.c
initio.h
ipr.c [SCSI] ipr: fix eeh recovery for 64-bit adapters 2012-02-18 08:33:13 -06:00
ipr.h
ips.c
ips.h
iscsi_boot_sysfs.c
iscsi_tcp.c [SCSI] libiscsi_tcp: fix max_r2t manipulation 2012-02-19 08:09:00 -06:00
iscsi_tcp.h
jazz_esp.c
Kconfig [SCSI] virtio-scsi: SCSI driver for QEMU based virtual machines 2012-02-19 09:50:20 -06:00
lasi700.c
libiscsi.c [SCSI] libiscsi: fix cmd timeout/completion race 2012-02-19 08:09:00 -06:00
libiscsi_tcp.c [SCSI] libiscsi_tcp: fix max_r2t manipulation 2012-02-19 08:09:00 -06:00
libsrp.c
mac53c94.c
mac53c94.h
mac_esp.c mac_esp: rename irq 2012-01-22 14:50:03 +01:00
mac_scsi.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2012-01-26 12:43:57 -08:00
mac_scsi.h
Makefile [SCSI] virtio-scsi: SCSI driver for QEMU based virtual machines 2012-02-19 09:50:20 -06:00
megaraid.c [SCSI] megaraid: fix sparse warnings 2012-01-16 12:28:03 +04:00
megaraid.h
mesh.c
mesh.h
mvme16x_scsi.c
mvme147.c
mvme147.h
mvumi.c
mvumi.h
ncr53c8xx.c
ncr53c8xx.h
NCR53c406a.c
NCR5380.c
NCR5380.h
NCR_D700.c
NCR_D700.h
NCR_Q720.c
NCR_Q720.h
nsp32.c
nsp32.h
nsp32_debug.c
nsp32_io.h
osst.c
osst.h
osst_detect.h
osst_options.h
pas16.c
pas16.h
pmcraid.c
pmcraid.h
ppa.c
ppa.h
ps3rom.c
qla1280.c
qla1280.h
qlogicfas.c
qlogicfas408.c
qlogicfas408.h
qlogicpti.c
qlogicpti.h
raid_class.c
script_asm.pl
scsi.c [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
scsi.h
scsi_debug.c [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
scsi_devinfo.c
scsi_error.c [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
scsi_ioctl.c
scsi_lib.c [SCSI] Ensure discard failure gets treated as a target problem 2012-02-19 09:38:01 -06:00
scsi_lib_dma.c
scsi_logging.h
scsi_module.c
scsi_netlink.c Merge branch 'for-linus' of git://selinuxproject.org/~jmorris/linux-security 2012-01-14 18:36:33 -08:00
scsi_pm.c [SCSI] scsi_pm: Fix bug in the SCSI power management handler 2012-02-18 08:54:19 -06:00
scsi_priv.h [SCSI] scsi_pm: Fix bug in the SCSI power management handler 2012-02-18 08:54:19 -06:00
scsi_proc.c
scsi_sas_internal.h
scsi_scan.c [SCSI] scsi_scan: Fix 'Poison overwritten' warning caused by using freed 'shost' 2012-02-18 08:52:48 -06:00
scsi_sysctl.c
scsi_sysfs.c
scsi_tgt_if.c
scsi_tgt_lib.c
scsi_tgt_priv.h
scsi_trace.c
scsi_transport_api.h
scsi_transport_fc.c [SCSI] scsi_transport_fc: Add FDMI host attributes 2012-02-19 08:08:57 -06:00
scsi_transport_fc_internal.h
scsi_transport_iscsi.c [SCSI] iscsi_transport: Added Ping support 2012-02-19 09:34:50 -06:00
scsi_transport_sas.c [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
scsi_transport_spi.c
scsi_transport_srp.c
scsi_transport_srp_internal.h
scsi_typedefs.h
scsi_wait_scan.c
scsicam.c
sd.c [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
sd.h [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
sd_dif.c
ses.c
sg.c [SCSI] sg: convert to kstrtoul_from_user() 2012-01-16 12:17:29 +04:00
sgiwd93.c
sim710.c
sni_53c710.c
sr.c
sr.h
sr_ioctl.c
sr_vendor.c
st.c [SCSI] st: implement PM 2012-02-19 08:08:51 -06:00
st.h
st_options.h
stex.c
sun3_NCR5380.c
sun3_scsi.c
sun3_scsi.h
sun3_scsi_vme.c
sun3x_esp.c
sun_esp.c
sym53c416.c
sym53c416.h
t128.c
t128.h
tmscsim.c
tmscsim.h
u14-34f.c
ultrastor.c
ultrastor.h
virtio_scsi.c [SCSI] virtio-scsi: SCSI driver for QEMU based virtual machines 2012-02-19 09:50:20 -06:00
vmw_pvscsi.c
vmw_pvscsi.h
wd33c93.c
wd33c93.h
wd7000.c
zalon.c
zorro7xx.c