diff --git a/[refs] b/[refs] index 561637c214f1..ca120f01b7d4 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f8407f26b4c9a36aab74fcdbd6e14ffe4f8d9476 +refs/heads/master: fba99fa38b023224680308a482e12a0eca87e4e1 diff --git a/trunk/lib/swiotlb.c b/trunk/lib/swiotlb.c index c47bbe11b804..93ca08b8a451 100644 --- a/trunk/lib/swiotlb.c +++ b/trunk/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; }