sh: declared coherent memory fixes
PATCH 1/1 sh: declared coherent memory fixes
sh: declared coherent memory fixes
Two minor fixes for the recently added declared coherent memory implementation:
- move the WARN_ON() to avoid triggering with usb storage and bounce buffer
- add a BUG_ON() to make sure DMA_MEMORY_EXCLUSIVE isn't set
These may be of interest for x86 as well.
Signed-off-by Magnus Damm <[email protected]>
---
arch/sh/mm/consistent.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
arch/sh/mm/consistent.c +4 -2
@@ -64,13 +64,15 @@ void dma_free_coherent(struct device *destruct dma_coherent_mem *mem = dev ? dev->dma_mem :NULL ;int order =get_order (size); -WARN_ON (irqs_disabled ());/* for portability */ if (mem && vaddr >= mem->virt_base && vaddr < (mem->virt_base + (mem->size <<PAGE_SHIFT ))) {int page = (vaddr - mem->virt_base) >>PAGE_SHIFT ;bitmap_release_region (mem->bitmap, page, order); - }else + }else { +WARN_ON (irqs_disabled ());/* for portability */ +BUG_ON (mem && mem->flags &DMA_MEMORY_EXCLUSIVE );free_pages ((unsigned long )vaddr, order); + } }EXPORT_SYMBOL (dma_free_coherent);