[patch 55/87] [SCSI] 3w-xxxx: scsi_dma_unmap fix

From: Greg KH
Date: Tue Jun 09 2009 - 06:30:40 EST


2.6.29-stable review patch. If anyone has any objections, please let us know.

------------------

From: adam radford <aradford@xxxxxxxxx>

commit 7b14f58ad65f9d74e4273fb45360cfea824495aa upstream.

This patch fixes the following regression that occurred during the
scsi_dma_map()/unmap()
changes when compiling with CONFIG_DMA_API_DEBUG=y :

WARNING: at lib/dma-debug.c:496 check_unmap+0x142/0x542()
Hardware name:
3w-xxxx 0000:02:02.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@xxxxxxxxx>
Signed-off-by: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>

---
drivers/scsi/3w-xxxx.c | 5 +++--
drivers/scsi/3w-xxxx.h | 2 +-
2 files changed, 4 insertions(+), 3 deletions(-)

--- a/drivers/scsi/3w-xxxx.c
+++ b/drivers/scsi/3w-xxxx.c
@@ -6,7 +6,7 @@
Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx>
Brad Strand <linux@xxxxxxxxx>

- Copyright (C) 1999-2007 3ware Inc.
+ Copyright (C) 1999-2009 3ware Inc.

Kernel compatiblity By: Andre Hedrick <andre@xxxxxxxx>
Non-Copyright (C) 2000 Andre Hedrick <andre@xxxxxxxx>
@@ -1294,7 +1294,8 @@ static void tw_unmap_scsi_data(struct pc
{
dprintk(KERN_WARNING "3w-xxxx: tw_unmap_scsi_data()\n");

- scsi_dma_unmap(cmd);
+ if (cmd->SCp.phase == TW_PHASE_SGLIST)
+ scsi_dma_unmap(cmd);
} /* End tw_unmap_scsi_data() */

/* This function will reset a device extension */
--- a/drivers/scsi/3w-xxxx.h
+++ b/drivers/scsi/3w-xxxx.h
@@ -6,7 +6,7 @@
Arnaldo Carvalho de Melo <acme@xxxxxxxxxxxxxxxx>
Brad Strand <linux@xxxxxxxxx>

- Copyright (C) 1999-2007 3ware Inc.
+ Copyright (C) 1999-2009 3ware Inc.

Kernel compatiblity By: Andre Hedrick <andre@xxxxxxxx>
Non-Copyright (C) 2000 Andre Hedrick <andre@xxxxxxxx>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/