1
linux/drivers/scsi/libsas
Dan Williams 3dff5721e4 [SCSI] libsas: close error handling vs sas_ata_task_done() race
Since sas_ata does not implement ->freeze(), completions for scmds and
internal commands can still arrive concurrent with
ata_scsi_cmd_error_handler() and sas_ata_post_internal() respectively.
By the time either of those is called libata has committed to completing
the qc, and the ATA_PFLAG_FROZEN flag tells sas_ata_task_done() it has
lost the race.

In the sas_ata_post_internal() case we take on the additional
responsibility of freeing the sas_task to close the race with
sas_ata_task_done() freeing the the task while sas_ata_post_internal()
is in the process of invoking ->lldd_abort_task().

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-02-19 13:58:38 -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: close error handling vs sas_ata_task_done() race 2012-02-19 13:58:38 -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: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -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: close error handling vs sas_ata_task_done() race 2012-02-19 13:58:38 -06:00
sas_task.c scsi: Add export.h for EXPORT_SYMBOL/THIS_MODULE as required 2011-10-31 19:31:23 -04:00