[patch 2.6.13 (take #2)] swiotlb: BUG() for DMA_NONE in sync_single

From: John W. Linville
Date: Mon Sep 12 2005 - 18:46:32 EST


Call BUG() if DMA_NONE is passed-in as direction for sync_single.
Also remove unnecessary checks for DMA_NONE in callers of sync_single.

Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
---
This patch replaces the previous patch with (almost) the same subject.

lib/swiotlb.c | 11 ++---------
1 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/lib/swiotlb.c b/lib/swiotlb.c
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -315,13 +315,13 @@ sync_single(struct device *hwdev, char *
case SYNC_FOR_CPU:
if (likely(dir == DMA_FROM_DEVICE || dma == DMA_BIDIRECTIONAL))
memcpy(buffer, dma_addr, size);
- else if (dir != DMA_TO_DEVICE && dir != DMA_NONE)
+ else if (dir != DMA_TO_DEVICE)
BUG();
break;
case SYNC_FOR_DEVICE:
if (likely(dir == DMA_TO_DEVICE || dma == DMA_BIDIRECTIONAL))
memcpy(dma_addr, buffer, size);
- else if (dir != DMA_FROM_DEVICE && dir != DMA_NONE)
+ else if (dir != DMA_FROM_DEVICE)
BUG();
break;
default:
@@ -515,8 +515,6 @@ swiotlb_sync_single(struct device *hwdev
{
char *dma_addr = phys_to_virt(dev_addr);

- if (dir == DMA_NONE)
- BUG();
if (dma_addr >= io_tlb_start && dma_addr < io_tlb_end)
sync_single(hwdev, dma_addr, size, dir, target);
else if (dir == DMA_FROM_DEVICE)
@@ -547,8 +545,6 @@ swiotlb_sync_single_range(struct device
{
char *dma_addr = phys_to_virt(dev_addr) + offset;

- if (dir == DMA_NONE)
- BUG();
if (dma_addr >= io_tlb_start && dma_addr < io_tlb_end)
sync_single(hwdev, dma_addr, size, dir, target);
else if (dir == DMA_FROM_DEVICE)
@@ -651,9 +647,6 @@ swiotlb_sync_sg(struct device *hwdev, st
{
int i;

- if (dir == DMA_NONE)
- BUG();
-
for (i = 0; i < nelems; i++, sg++)
if (sg->dma_address != SG_ENT_PHYS_ADDRESS(sg))
sync_single(hwdev, (void *) sg->dma_address,
--
John W. Linville
linville@xxxxxxxxxxxxx
-
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/