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] ... Signed-off-by: Jean-Francois Dagenais <[email protected]> --- .../recipes-graphics/mali/kernel-module-mali.bb | 1 + .../0007-fix-driver-failed-to-check-map-error.patch | 16 ++++++++++++++++ 2 files changed, 17 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..f553e58 --- /dev/null +++ b/meta-xilinx-bsp/recipes-graphics/mali/kernel-module-mali/0007-fix-driver-failed-to-check-map-error.patch @@ -0,0 +1,16 @@ +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,9 @@ 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); ++ if (!dma_mapping_error(&mali_platform_device->dev, dma_addr)) ++ 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 -- _______________________________________________ meta-xilinx mailing list [email protected] https://lists.yoctoproject.org/listinfo/meta-xilinx
