1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
Index: mali/linux/mali_memory_os_alloc.c
===================================================================
--- mali.orig/linux/mali_memory_os_alloc.c
+++ mali/linux/mali_memory_os_alloc.c
@@ -239,8 +239,10 @@ int mali_mem_os_alloc_pages(mali_mem_os_
/* Ensure page is flushed from CPU caches. */
dma_addr = dma_map_page(&mali_platform_device->dev, new_page,
0, _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
- dma_unmap_page(&mali_platform_device->dev, dma_addr,
- _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
+ err = dma_mapping_error(&mali_platform_device->dev, dma_addr);
+ if (likely(!err))
+ dma_unmap_page(&mali_platform_device->dev, dma_addr,
+ _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
dma_addr = dma_map_page(&mali_platform_device->dev, new_page,
0, _MALI_OSK_MALI_PAGE_SIZE, DMA_BIDIRECTIONAL);
|