linux/drivers/scsi/libsas
Dan Williams 9095a64a9a [SCSI] libsas: fix timeout vs completion race
Until we have told the lldd to forget a task a timed out operation can
return from the hardware at any time.  Since completion frees the task
we need to make sure that no tasks run their normal completion handler
once eh has decided to manage the task.  Similar to
ata_scsi_cmd_error_handler() freeze completions to let eh judge the
outcome of the race.

Task collector mode is problematic because it presents a situation where
a task can be timed out and aborted before the lldd has even seen it.
For this case we need to guarantee that a task that an lldd has been
told to forget does not get queued after the lldd says "never seen it".
With sas_scsi_timed_out we achieve this with the ->task_queue_flush
mutex, rather than adding more time.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-02-19 14:06:08 -06:00
..
Kconfig [SCSI] libsas: convert to standard kernel debugging 2011-01-24 12:05:38 -06:00
Makefile Merge branch 'trivial' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6 2011-03-20 18:14:55 -07:00
sas_ata.c [SCSI] libsas: fix timeout vs completion race 2012-02-19 14:06:08 -06:00
sas_discover.c [SCSI] libsas: use ->set_dmamode to notify lldds of NCQ parameters 2012-02-19 13:55:42 -06:00
sas_dump.c [SCSI] libsas: convert to standard kernel debugging 2011-01-24 12:05:38 -06:00
sas_dump.h [SCSI] libsas: convert to standard kernel debugging 2011-01-24 12:05:38 -06:00
sas_event.c [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
sas_expander.c [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
sas_host_smp.c scsi: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:31:23 -04:00
sas_init.c [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
sas_internal.h [SCSI] libsas: fix timeout vs completion race 2012-02-19 14:06:08 -06:00
sas_phy.c [SCSI] libsas: replace event locks with atomic bitops 2012-02-19 13:41:04 -06:00
sas_port.c [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
sas_scsi_host.c [SCSI] libsas: fix timeout vs completion race 2012-02-19 14:06:08 -06:00
sas_task.c scsi: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:31:23 -04:00