mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-22 12:28:23 +00:00
c7634180fc
Refreshed all patches. Remove upstreamed: - 023-0013-crypto-crypto4xx-fix-AES-CTR-blocksize-value.patch - 023-0014-crypto-crypto4xx-fix-blocksize-for-cfb-and-ofb.patch - 023-0015-crypto-crypto4xx-block-ciphers-should-only-accept-co.patch - 950-0252-staging-bcm2835_camera-Ensure-all-buffers-are-return.patch - 950-0253-staging-bcm2835-camera-Remove-check-of-the-number-of.patch - 950-0254-staging-bcm2835-camera-Handle-empty-EOS-buffers-whil.patch - 950-0489-staging-mmal-vchiq-Replace-spinlock-protecting-conte.patch - 0021-ARM-dts-gemini-Fix-up-DNS-313-compatible-string.patch - 049-v4.20-mips-remove-superfluous-check-for-linux.patch - 100-MIPS-fix-build-on-non-linux-hosts.patch - 303-MIPS-Fix-bounds-check-virt_addr_valid.patch - 0002-usb-dwc2-use-a-longer-AHB-idle-timeout-in-dwc2_core_.patch Altered patches: - 950-0267-staging-vc04_services-Split-vchiq-mmal-into-a-module.patch - 700-net-add-qualcomm-mdio-and-phy.patch Fixes: - CVE-2019-3846 New symbol: - AX88796B_PHY Compile-tested on: cns3xxx, imx6 Runtime-tested on: cns3xxx, imx6 Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
84 lines
2.9 KiB
Diff
84 lines
2.9 KiB
Diff
From 2fada970d893db4a8800bae31d6ed8c01b4c4173 Mon Sep 17 00:00:00 2001
|
|
From: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
Date: Mon, 29 Oct 2018 17:57:45 +0000
|
|
Subject: [PATCH 278/703] media: videobuf2: Allow exporting of a struct dmabuf
|
|
|
|
videobuf2 only allowed exporting a dmabuf as a file descriptor,
|
|
but there are instances where having the struct dma_buf is
|
|
useful within the kernel.
|
|
|
|
Split the current implementation into two, one step which
|
|
exports a struct dma_buf, and the second which converts that
|
|
into an fd.
|
|
|
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.org>
|
|
---
|
|
.../media/common/videobuf2/videobuf2-core.c | 21 ++++++++++++++++---
|
|
include/media/videobuf2-core.h | 15 +++++++++++++
|
|
2 files changed, 33 insertions(+), 3 deletions(-)
|
|
|
|
--- a/drivers/media/common/videobuf2/videobuf2-core.c
|
|
+++ b/drivers/media/common/videobuf2/videobuf2-core.c
|
|
@@ -1851,12 +1851,12 @@ static int __find_plane_by_offset(struct
|
|
return -EINVAL;
|
|
}
|
|
|
|
-int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type,
|
|
- unsigned int index, unsigned int plane, unsigned int flags)
|
|
+int vb2_core_expbuf_dmabuf(struct vb2_queue *q, unsigned int type,
|
|
+ unsigned int index, unsigned int plane,
|
|
+ unsigned int flags, struct dma_buf **dmabuf)
|
|
{
|
|
struct vb2_buffer *vb = NULL;
|
|
struct vb2_plane *vb_plane;
|
|
- int ret;
|
|
struct dma_buf *dbuf;
|
|
|
|
if (q->memory != VB2_MEMORY_MMAP) {
|
|
@@ -1906,6 +1906,21 @@ int vb2_core_expbuf(struct vb2_queue *q,
|
|
return -EINVAL;
|
|
}
|
|
|
|
+ *dmabuf = dbuf;
|
|
+ return 0;
|
|
+}
|
|
+EXPORT_SYMBOL_GPL(vb2_core_expbuf_dmabuf);
|
|
+
|
|
+int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type,
|
|
+ unsigned int index, unsigned int plane, unsigned int flags)
|
|
+{
|
|
+ struct dma_buf *dbuf;
|
|
+ int ret;
|
|
+
|
|
+ ret = vb2_core_expbuf_dmabuf(q, type, index, plane, flags, &dbuf);
|
|
+ if (ret)
|
|
+ return ret;
|
|
+
|
|
ret = dma_buf_fd(dbuf, flags & ~O_ACCMODE);
|
|
if (ret < 0) {
|
|
dprintk(3, "buffer %d, plane %d failed to export (%d)\n",
|
|
--- a/include/media/videobuf2-core.h
|
|
+++ b/include/media/videobuf2-core.h
|
|
@@ -825,6 +825,21 @@ int vb2_core_streamon(struct vb2_queue *
|
|
int vb2_core_streamoff(struct vb2_queue *q, unsigned int type);
|
|
|
|
/**
|
|
+ * vb2_core_expbuf_dmabuf() - Export a buffer as a dma_buf structure
|
|
+ * @q: videobuf2 queue
|
|
+ * @type: buffer type
|
|
+ * @index: id number of the buffer
|
|
+ * @plane: index of the plane to be exported, 0 for single plane queues
|
|
+ * @flags: flags for newly created file, currently only O_CLOEXEC is
|
|
+ * supported, refer to manual of open syscall for more details
|
|
+ * @dmabuf: Returns the dmabuf pointer
|
|
+ *
|
|
+ */
|
|
+int vb2_core_expbuf_dmabuf(struct vb2_queue *q, unsigned int type,
|
|
+ unsigned int index, unsigned int plane,
|
|
+ unsigned int flags, struct dma_buf **dmabuf);
|
|
+
|
|
+/**
|
|
* vb2_core_expbuf() - Export a buffer as a file descriptor.
|
|
* @q: pointer to &struct vb2_queue with videobuf2 queue.
|
|
* @fd: pointer to the file descriptor associated with DMABUF
|