You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
From 52f881e3afa89bb1ca9e8b037f7600bcc97626e8 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] 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);
|