diff options
author | Anil Ravindranath <anil_ravindranath@pmc-sierra.com> | 2009-12-17 23:51:53 +0100 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-30 18:53:22 +0100 |
commit | a70757ba9a3719f99760713c3b72134b21016c6e (patch) | |
tree | 51d8d3b0bc0376d4b74dc4ef3b83952286d05f00 /drivers/scsi/pmcraid.c | |
parent | [SCSI] qla2xxx: Update version number to 8.03.01-k9. (diff) | |
download | linux-a70757ba9a3719f99760713c3b72134b21016c6e.tar.xz linux-a70757ba9a3719f99760713c3b72134b21016c6e.zip |
[SCSI] pmcraid: fix to avoid twice scsi_dma_unmap for a command
For a particular driver error condition, driver was doing double
scsi_dma_unmaps. Driver was calling scsi_dma_unmap in
pmcraid_error_handler and return 0. This pmcraid_error_handler is called
by pmcraid_io_done which will do scsi_dma_unmap again when it has
return 0 from pmcraid_error_handler.
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/pmcraid.c')
-rw-r--r-- | drivers/scsi/pmcraid.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index e7d2688fbeba..b6f1ef954af1 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c @@ -2483,14 +2483,12 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd) sense_copied = 1; } - if (RES_IS_GSCSI(res->cfg_entry)) { + if (RES_IS_GSCSI(res->cfg_entry)) pmcraid_cancel_all(cmd, sense_copied); - } else if (sense_copied) { + else if (sense_copied) pmcraid_erp_done(cmd); - return 0; - } else { + else pmcraid_request_sense(cmd); - } return 1; |