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.
31 lines
1.0 KiB
Diff
31 lines
1.0 KiB
Diff
4 years ago
|
From 0c941589b9bfb07cd31c792b445e630817e956d1 Mon Sep 17 00:00:00 2001
|
||
|
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||
|
Date: Mon, 7 Oct 2019 14:02:57 +0100
|
||
|
Subject: [PATCH] staging: bcm2835-codec: Fix imbalance in
|
||
|
dma_buf_get/dma_buf_put
|
||
|
|
||
|
When represented with a dmabuf buffer that had previously been
|
||
|
imported, there was a call to dma_buf_get without a matching
|
||
|
dma_buf_put. This left dmabufs in limbo after all users had
|
||
|
supposedly released them.
|
||
|
|
||
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
||
|
---
|
||
|
.../staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c | 5 +++++
|
||
|
1 file changed, 5 insertions(+)
|
||
|
|
||
|
--- a/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
|
||
|
+++ b/drivers/staging/vc04_services/bcm2835-codec/bcm2835-v4l2-codec.c
|
||
|
@@ -2112,6 +2112,11 @@ static int bcm2835_codec_buf_prepare(str
|
||
|
}
|
||
|
|
||
|
buf->mmal.dma_buf = dma_buf;
|
||
|
+ } else {
|
||
|
+ /* We already have a reference count on the dmabuf, so
|
||
|
+ * release the one we acquired above.
|
||
|
+ */
|
||
|
+ dma_buf_put(dma_buf);
|
||
|
}
|
||
|
ret = 0;
|
||
|
break;
|