linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / lib / swiotlb.c
index 1062578..0af497b 100644 (file)
@@ -296,7 +296,8 @@ map_single(struct device *hwdev, char *buffer, size_t size, int dir)
        else
                stride = 1;
 
-       BUG_ON(!nslots);
+       if (!nslots)
+               BUG();
 
        /*
         * Find suitable number of IO TLB entries size that will fit this
@@ -415,14 +416,14 @@ sync_single(struct device *hwdev, char *dma_addr, size_t size,
        case SYNC_FOR_CPU:
                if (likely(dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL))
                        memcpy(buffer, dma_addr, size);
-               else
-                       BUG_ON(dir != DMA_TO_DEVICE);
+               else if (dir != DMA_TO_DEVICE)
+                       BUG();
                break;
        case SYNC_FOR_DEVICE:
                if (likely(dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL))
                        memcpy(dma_addr, buffer, size);
-               else
-                       BUG_ON(dir != DMA_FROM_DEVICE);
+               else if (dir != DMA_FROM_DEVICE)
+                       BUG();
                break;
        default:
                BUG();
@@ -528,7 +529,8 @@ swiotlb_map_single(struct device *hwdev, void *ptr, size_t size, int dir)
        unsigned long dev_addr = virt_to_phys(ptr);
        void *map;
 
-       BUG_ON(dir == DMA_NONE);
+       if (dir == DMA_NONE)
+               BUG();
        /*
         * If the pointer passed in happens to be in the device's DMA window,
         * we can safely return the device addr and not worry about bounce
@@ -590,7 +592,8 @@ swiotlb_unmap_single(struct device *hwdev, dma_addr_t dev_addr, size_t size,
 {
        char *dma_addr = phys_to_virt(dev_addr);
 
-       BUG_ON(dir == DMA_NONE);
+       if (dir == DMA_NONE)
+               BUG();
        if (dma_addr >= io_tlb_start && dma_addr < io_tlb_end)
                unmap_single(hwdev, dma_addr, size, dir);
        else if (dir == DMA_FROM_DEVICE)
@@ -613,7 +616,8 @@ swiotlb_sync_single(struct device *hwdev, dma_addr_t dev_addr,
 {
        char *dma_addr = phys_to_virt(dev_addr);
 
-       BUG_ON(dir == DMA_NONE);
+       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)
@@ -644,7 +648,8 @@ swiotlb_sync_single_range(struct device *hwdev, dma_addr_t dev_addr,
 {
        char *dma_addr = phys_to_virt(dev_addr) + offset;
 
-       BUG_ON(dir == DMA_NONE);
+       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)
@@ -691,7 +696,8 @@ swiotlb_map_sg(struct device *hwdev, struct scatterlist *sg, int nelems,
        unsigned long dev_addr;
        int i;
 
-       BUG_ON(dir == DMA_NONE);
+       if (dir == DMA_NONE)
+               BUG();
 
        for (i = 0; i < nelems; i++, sg++) {
                addr = SG_ENT_VIRT_ADDRESS(sg);
@@ -724,7 +730,8 @@ swiotlb_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nelems,
 {
        int i;
 
-       BUG_ON(dir == DMA_NONE);
+       if (dir == DMA_NONE)
+               BUG();
 
        for (i = 0; i < nelems; i++, sg++)
                if (sg->dma_address != SG_ENT_PHYS_ADDRESS(sg))
@@ -746,7 +753,8 @@ swiotlb_sync_sg(struct device *hwdev, struct scatterlist *sg,
 {
        int i;
 
-       BUG_ON(dir == DMA_NONE);
+       if (dir == DMA_NONE)
+               BUG();
 
        for (i = 0; i < nelems; i++, sg++)
                if (sg->dma_address != SG_ENT_PHYS_ADDRESS(sg))