diff options
author | Dan Williams <dan.j.williams@intel.com> | 2011-12-07 02:24:42 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2012-02-19 15:04:52 -0500 |
commit | a3a142524aa4b1539a64a55087bf12ffa4b1f94e (patch) | |
tree | 2440c6438979cf410ca9231ab77d5115a140eca5 /include/scsi | |
parent | 3dff5721e4f67e6231dfc419d30aaa7563bfffd4 (diff) |
[SCSI] libsas: prevent double completion of scmds from eh
We invoke task->task_done() to free the task in the eh case, but at this
point we are prepared for scsi_eh_flush_done_q() to finish off the scmd.
Introduce sas_end_task() to capture the final response status from the
lldd and free the task.
Also take the opportunity to kill this warning.
drivers/scsi/libsas/sas_scsi_host.c: In function ‘sas_end_task’:
drivers/scsi/libsas/sas_scsi_host.c:102:3: warning: case value ‘2’ not in enumerated type ‘enum exec_status’ [-Wswitch]
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/libsas.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index 10eb2ea74431..071041b290d6 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h | |||
@@ -452,7 +452,10 @@ enum service_response { | |||
452 | }; | 452 | }; |
453 | 453 | ||
454 | enum exec_status { | 454 | enum exec_status { |
455 | /* The SAM_STAT_.. codes fit in the lower 6 bits */ | 455 | /* The SAM_STAT_.. codes fit in the lower 6 bits, alias some of |
456 | * them here to silence 'case value not in enumerated type' warnings | ||
457 | */ | ||
458 | __SAM_STAT_CHECK_CONDITION = SAM_STAT_CHECK_CONDITION, | ||
456 | 459 | ||
457 | SAS_DEV_NO_RESPONSE = 0x80, | 460 | SAS_DEV_NO_RESPONSE = 0x80, |
458 | SAS_DATA_UNDERRUN, | 461 | SAS_DATA_UNDERRUN, |