X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch;fp=target%2Flinux%2Fbrcm2708%2Fpatches-4.19%2F950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch;h=0000000000000000000000000000000000000000;hb=c2308a7e4adbb2acc8ff149f91d1ca46801c135e;hp=8161bb2659eef2be283fd7c2a789e475211c220c;hpb=67dcc43f3a22dc3a7ac07a7065971b426feeb043;p=openwrt%2Fstaging%2Fchunkeey.git diff --git a/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch b/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch deleted file mode 100644 index 8161bb2659..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0629-Revert-media-vb2-Allow-reqbufs-0-with-in-use-MMAP-bu.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 768ab361410487b05561de854a994a2888cd430a Mon Sep 17 00:00:00 2001 -From: Dave Stevenson -Date: Fri, 28 Jun 2019 11:30:49 +0100 -Subject: [PATCH] Revert "media: vb2: Allow reqbufs(0) with "in use" - MMAP buffers" - -This reverts commit a2c73e18c1f657de6d654f51effa0a94863abbd8. -An alternative version was accepted upstream. Revert this patch to -apply that one. - -Signed-off-by: Dave Stevenson ---- - .../media/common/videobuf2/videobuf2-core.c | 23 +++++++++++++++++++ - 1 file changed, 23 insertions(+) - ---- a/drivers/media/common/videobuf2/videobuf2-core.c -+++ b/drivers/media/common/videobuf2/videobuf2-core.c -@@ -554,6 +554,20 @@ bool vb2_buffer_in_use(struct vb2_queue - } - EXPORT_SYMBOL(vb2_buffer_in_use); - -+/* -+ * __buffers_in_use() - return true if any buffers on the queue are in use and -+ * the queue cannot be freed (by the means of REQBUFS(0)) call -+ */ -+static bool __buffers_in_use(struct vb2_queue *q) -+{ -+ unsigned int buffer; -+ for (buffer = 0; buffer < q->num_buffers; ++buffer) { -+ if (vb2_buffer_in_use(q, q->bufs[buffer])) -+ return true; -+ } -+ return false; -+} -+ - void vb2_core_querybuf(struct vb2_queue *q, unsigned int index, void *pb) - { - call_void_bufop(q, fill_user_buffer, q->bufs[index], pb); -@@ -665,7 +679,16 @@ int vb2_core_reqbufs(struct vb2_queue *q - - if (*count == 0 || q->num_buffers != 0 || - (q->memory != VB2_MEMORY_UNKNOWN && q->memory != memory)) { -+ /* -+ * We already have buffers allocated, so first check if they -+ * are not in use and can be freed. -+ */ - mutex_lock(&q->mmap_lock); -+ if (q->memory == VB2_MEMORY_MMAP && __buffers_in_use(q)) { -+ mutex_unlock(&q->mmap_lock); -+ dprintk(1, "memory in use, cannot free\n"); -+ return -EBUSY; -+ } - - /* - * Call queue_cancel to clean up any buffers in the PREPARED or