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);