public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@hp.com>
To: Mike Miller <Mike.Miller@hp.com>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH] fix cciss DMA unmap brokenness
Date: Wed, 17 Aug 2005 13:16:24 -0600	[thread overview]
Message-ID: <1124306185.6049.10.camel@tdi> (raw)


   The CCISS driver seems to loose track of DMA mappings created by it's
fill_cmd() routine.  Neither callers of this routine are extracting the
DMA address created in order to do the unmap.  Instead, they simply try
to unmap 0x0.  It's easy to see this problem on an x86_64 system when
using the "swiotlb=force" boot option.  In this case, the driver is
leaking resources of the swiotlb and not causing a sync of the bounce
buffer.  Thanks

Signed-off-by: Alex Williamson <alex.williamson@hp.com>

diff -r b9c8e9fdd6b2 drivers/block/cciss.c
--- a/drivers/block/cciss.c	Wed Aug 17 04:06:25 2005
+++ b/drivers/block/cciss.c	Wed Aug 17 12:53:40 2005
@@ -1420,8 +1420,10 @@
 		}
 	}	
 	/* unlock the buffers from DMA */
+	buff_dma_handle.val32.lower = c->SG[0].Addr.lower;
+	buff_dma_handle.val32.upper = c->SG[0].Addr.upper;
 	pci_unmap_single( h->pdev, (dma_addr_t) buff_dma_handle.val,
-			size, PCI_DMA_BIDIRECTIONAL);
+			c->SG[0].Len, PCI_DMA_BIDIRECTIONAL);
 	cmd_free(h, c, 0);
         return(return_status);
 
@@ -1860,8 +1862,10 @@
 		
 cleanup1:	
 	/* unlock the data buffer from DMA */
+	buff_dma_handle.val32.lower = c->SG[0].Addr.lower;
+	buff_dma_handle.val32.upper = c->SG[0].Addr.upper;
 	pci_unmap_single(info_p->pdev, (dma_addr_t) buff_dma_handle.val,
-				size, PCI_DMA_BIDIRECTIONAL);
+				c->SG[0].Len, PCI_DMA_BIDIRECTIONAL);
 	cmd_free(info_p, c, 1);
 	return (status);
 } 



             reply	other threads:[~2005-08-17 19:16 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-08-17 19:16 Alex Williamson [this message]
  -- strict thread matches above, loose matches on Subject: below --
2005-08-17 20:56 [PATCH] fix cciss DMA unmap brokenness Miller, Mike (OS Dev)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1124306185.6049.10.camel@tdi \
    --to=alex.williamson@hp.com \
    --cc=Mike.Miller@hp.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox