Patchwork b44 driver causes panic when using swiotlb

login
register
mail settings
Submitter FUJITA Tomonori
Date Feb. 1, 2011, 1:54 p.m.
Message ID <20110201225443U.fujita.tomonori@lab.ntt.co.jp>
Download mbox | patch
Permalink /patch/522971/
State New, archived
Headers show

Comments

Patch

diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index c47bbe1..93ca08b 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -686,8 +686,10 @@  dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
 	/*
 	 * Ensure that the address returned is DMA'ble
 	 */
-	if (!dma_capable(dev, dev_addr, size))
-		panic("map_single: bounce buffer is not DMA'ble");
+	if (!dma_capable(dev, dev_addr, size)) {
+		swiotlb_tbl_unmap_single(dev, map, size, dir);
+		dev_addr = swiotlb_virt_to_bus(dev, io_tlb_overflow_buffer);
+	}
 
 	return dev_addr;
 }