aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradam radford <aradford@gmail.com>2009-05-05 11:45:37 -0700
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-05-15 12:23:32 -0400
commit8454e9888cb0316dd296fd5d47c612248ed5e1d1 (patch)
tree51ce1112e7a0ddf385b88c501cd12ee498b90c24
parent5e43754fd949193252ecb470d7fb08b547a1e310 (diff)
[SCSI] 3w-9xxx: scsi_dma_unmap fix
This patch fixes the following regression the occurred during the scsi_dma_map()/unmap() changes: 3w-9xxx 0001:45:00.0: DMA-API: device driver tries to free DMA memory it has not allocated [device address=0x0000000000000000] [size=36 bytes] Signed-off-by: Adam Radford <aradford@gmail.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/scsi/3w-9xxx.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/3w-9xxx.c b/drivers/scsi/3w-9xxx.c
index 8b7983aba8f..36c21b19e5d 100644
--- a/drivers/scsi/3w-9xxx.c
+++ b/drivers/scsi/3w-9xxx.c
@@ -1978,7 +1978,8 @@ static void twa_unmap_scsi_data(TW_Device_Extension *tw_dev, int request_id)
{
struct scsi_cmnd *cmd = tw_dev->srb[request_id];
- scsi_dma_unmap(cmd);
+ if (cmd->SCp.phase == TW_PHASE_SGLIST)
+ scsi_dma_unmap(cmd);
} /* End twa_unmap_scsi_data() */
/* scsi_host_template initializer */