]> Git Repo - linux.git/commitdiff
[SCSI] 3w-xxxx: scsi_dma_unmap fix
authoradam radford <[email protected]>
Mon, 11 May 2009 21:55:55 +0000 (14:55 -0700)
committerJames Bottomley <[email protected]>
Fri, 15 May 2009 16:24:59 +0000 (12:24 -0400)
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 <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
drivers/scsi/3w-xxxx.c
drivers/scsi/3w-xxxx.h

index c03f1d2c9e2ec1f08e1f37d1ab389bc68d517fc6..faa0fcfed71e3e2ddd258c87feb9a7283365b86c 100644 (file)
@@ -6,7 +6,7 @@
                     Arnaldo Carvalho de Melo <[email protected]>
                      Brad Strand <[email protected]>
 
-   Copyright (C) 1999-2007 3ware Inc.
+   Copyright (C) 1999-2009 3ware Inc.
 
    Kernel compatiblity By:     Andre Hedrick <[email protected]>
    Non-Copyright (C) 2000      Andre Hedrick <[email protected]>
@@ -1294,7 +1294,8 @@ static void tw_unmap_scsi_data(struct pci_dev *pdev, struct scsi_cmnd *cmd)
 {
        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 */
index 8e71e5e122b37c4b0d60263976abe27acf19a6d2..a5a2ba2561d954a041b3dd960c0bbb362c5108a4 100644 (file)
@@ -6,7 +6,7 @@
                     Arnaldo Carvalho de Melo <[email protected]>
                      Brad Strand <[email protected]>
 
-   Copyright (C) 1999-2007 3ware Inc.
+   Copyright (C) 1999-2009 3ware Inc.
 
    Kernel compatiblity By:     Andre Hedrick <[email protected]>
    Non-Copyright (C) 2000      Andre Hedrick <[email protected]>
This page took 0.058249 seconds and 4 git commands to generate.