[meta-xilinx] [PATCH v2] kernel-module-mali: add patch to check dma_map_page error

Jean-Francois Dagenais jeff.dagenais at gmail.com
Tue Mar 12 11:16:51 PDT 2019


This fixes an error when using the module in a kernel configured with
the CONFIG_DMA_API_DEBUG flag.

utgard fd4b0000.gpu: DMA-API: device driver failed to check map
error[device address=0x00000000325b0000] [size=4096 bytes] [mapped as
page]
...
 [<ffffff80082f72bc>] check_unmap+0x44c/0x7e8
 [<ffffff80082f76b8>] debug_dma_unmap_page+0x60/0x68
 [<ffffff8000622e60>] mali_mem_os_alloc_pages+0x230/0x498 [mali]
...

Acked-by: Hyun Kwon <hyun.kwon at xilinx.com>
Signed-off-by: Jean-Francois Dagenais <jeff.dagenais at gmail.com>
---
 .../recipes-graphics/mali/kernel-module-mali.bb         |  1 +
 .../0007-fix-driver-failed-to-check-map-error.patch     | 17 +++++++++++++++++
 2 files changed, 18 insertions(+)
 create mode 100644 meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-fix-driver-failed-to-check-map-error.patch

diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
index 0f44d25..5833239 100644
--- a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
+++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali.bb
@@ -16,6 +16,7 @@ SRC_URI = " \
 	file://0004-staging-mali-r8p0-01rel0-Don-t-include-mali_read_phy.patch \
 	file://0005-linux-mali_kernel_linux.c-Handle-clock-when-probed-a.patch \
 	file://0006-arm.c-global-variable-dma_ops-is-removed-from-the-ke.patch \
+	file://0007-fix-driver-failed-to-check-map-error.patch \
 	file://0010-common-mali_pm.c-Add-PM-runtime-barrier-after-removi.patch \
 	file://0011-linux-mali_kernel_linux.c-Enable-disable-clock-for-r.patch\
 	"
diff --git a/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-fix-driver-failed-to-check-map-error.patch b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-fix-driver-failed-to-check-map-error.patch
new file mode 100644
index 0000000..5363c37
--- /dev/null
+++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-fix-driver-failed-to-check-map-error.patch
@@ -0,0 +1,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);
+ 
-- 
2.11.0



More information about the meta-xilinx mailing list