diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0629-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0629-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0629-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch b/target/linux/brcm2708/patches-4.19/950-0629-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch new file mode 100644 index 0000000000..bbe4ba0b8a --- /dev/null +++ b/target/linux/brcm2708/patches-4.19/950-0629-staging-vcsm-cma-Fixup-the-alloc-code-handling-of-ke.patch @@ -0,0 +1,35 @@ +From 266f641df12e1ac22e8ec39dd4bc3be43b78ee03 Mon Sep 17 00:00:00 2001 +From: Dave Stevenson <dave.stevenson@raspberrypi.org> +Date: Wed, 22 May 2019 15:40:37 +0100 +Subject: [PATCH 629/782] staging: vcsm-cma: Fixup the alloc code handling of + kernel_id + +The allocation code had been copied in from an old branch prior +to having added the IDR for 64bit support. It was therefore pushing +a pointer into the kernel_id field instead of an IDR handle, the +lookup therefore failed, and we never released the buffer. + +Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org> +--- + drivers/staging/vc04_services/vc-sm-cma/vc_sm.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c ++++ b/drivers/staging/vc04_services/vc-sm-cma/vc_sm.c +@@ -1206,7 +1206,7 @@ int vc_sm_cma_ioctl_alloc(struct vc_sm_p + + import.addr = (uint32_t)sg_dma_address(buffer->sg_table->sgl); + import.size = aligned_size; +- import.kernel_id = (uint32_t)buffer; ++ import.kernel_id = get_kernel_id(buffer); + + /* Wrap it into a videocore buffer. */ + status = vc_sm_cma_vchi_import(sm_state->sm_handle, &import, &result, +@@ -1231,6 +1231,7 @@ int vc_sm_cma_ioctl_alloc(struct vc_sm_p + buffer->size = import.size; + buffer->dma_addr = import.addr; + buffer->vpu_state = VPU_MAPPED; ++ buffer->kernel_id = import.kernel_id; + //buffer->res_cached = ioparam->cached; + + fd = dma_buf_fd(dmabuf, O_CLOEXEC); |