[v3,1/3] media: uapi: v4l: Change V4L2_TYPE_IS_CAPTURE condition

Message ID 20240604051120.9441-1-nas.chung@chipsnmedia.com (mailing list archive)
State New
Headers
Series [v3,1/3] media: uapi: v4l: Change V4L2_TYPE_IS_CAPTURE condition |

Commit Message

Nas Chung June 4, 2024, 5:11 a.m. UTC
  Explicitly compare a buffer type only with valid buffer types,
to avoid matching a buffer type outside of the valid buffer type set.

Signed-off-by: Nas Chung <nas.chung@chipsnmedia.com>
Reviewed-by: Michael Tretter <m.tretter@pengutronix.de>
---
v3
- Address Han's feedback

v2
- Improve commit message
- Add V4L2_TYPE_IS_VALID(type) macro

 include/uapi/linux/videodev2.h | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
  

Comments

Nas Chung June 24, 2024, 9:45 a.m. UTC | #1
Hi, Hans.

Gentle ping on this patch series.

To recap, the previous feedback included
- Adding a comment after "V4L2_BUF_TYPE_META_OUTPUT	   = 14,"
- Fixing a build warning in the venus/vdec.c code
- Removing V4L2_BUF_TYPE_VIDEO_OVERLAY in V4L2_TYPE_IS_OUTPUT()

I have addressed these points in the latest version of the patch series.

Thanks.
Nas.

>-----Original Message-----
>From: Nas Chung <nas.chung@chipsnmedia.com>
>Sent: Tuesday, June 4, 2024 2:11 PM
>To: mchehab@kernel.org; hverkuil@xs4all.nl; bryan.odonoghue@linaro.org;
>linux-media@vger.kernel.org
>Cc: linux-kernel@vger.kernel.org; Nas Chung <nas.chung@chipsnmedia.com>;
>Michael Tretter <m.tretter@pengutronix.de>
>Subject: [PATCH v3 1/3] media: uapi: v4l: Change V4L2_TYPE_IS_CAPTURE
>condition
>
>Explicitly compare a buffer type only with valid buffer types,
>to avoid matching a buffer type outside of the valid buffer type set.
>
>Signed-off-by: Nas Chung <nas.chung@chipsnmedia.com>
>Reviewed-by: Michael Tretter <m.tretter@pengutronix.de>
>---
>v3
>- Address Han's feedback
>
>v2
>- Improve commit message
>- Add V4L2_TYPE_IS_VALID(type) macro
>
> include/uapi/linux/videodev2.h | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
>diff --git a/include/uapi/linux/videodev2.h
>b/include/uapi/linux/videodev2.h
>index fe6b67e83751..51da63173a98 100644
>--- a/include/uapi/linux/videodev2.h
>+++ b/include/uapi/linux/videodev2.h
>@@ -153,10 +153,17 @@ enum v4l2_buf_type {
> 	V4L2_BUF_TYPE_SDR_OUTPUT           = 12,
> 	V4L2_BUF_TYPE_META_CAPTURE         = 13,
> 	V4L2_BUF_TYPE_META_OUTPUT	   = 14,
>+	/*  V4L2_TYPE_IS_VALID and V4L2_TYPE_IS_OUTPUT must
>+	 *  be updated if a new type is added.
>+	 */
> 	/* Deprecated, do not use */
> 	V4L2_BUF_TYPE_PRIVATE              = 0x80,
> };
>
>+#define V4L2_TYPE_IS_VALID(type)		\
>+	((type) >= V4L2_BUF_TYPE_VIDEO_CAPTURE	\
>+	 && (type) <= V4L2_BUF_TYPE_META_OUTPUT)
>+
> #define V4L2_TYPE_IS_MULTIPLANAR(type)			\
> 	((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE	\
> 	 || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
>@@ -171,7 +178,8 @@ enum v4l2_buf_type {
> 	 || (type) == V4L2_BUF_TYPE_SDR_OUTPUT			\
> 	 || (type) == V4L2_BUF_TYPE_META_OUTPUT)
>
>-#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
>+#define V4L2_TYPE_IS_CAPTURE(type)	\
>+	(V4L2_TYPE_IS_VALID(type) && !V4L2_TYPE_IS_OUTPUT(type))
>
> enum v4l2_tuner_type {
> 	V4L2_TUNER_RADIO	     = 1,
>--
>2.25.1
  

Patch

diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index fe6b67e83751..51da63173a98 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -153,10 +153,17 @@  enum v4l2_buf_type {
 	V4L2_BUF_TYPE_SDR_OUTPUT           = 12,
 	V4L2_BUF_TYPE_META_CAPTURE         = 13,
 	V4L2_BUF_TYPE_META_OUTPUT	   = 14,
+	/*  V4L2_TYPE_IS_VALID and V4L2_TYPE_IS_OUTPUT must
+	 *  be updated if a new type is added.
+	 */
 	/* Deprecated, do not use */
 	V4L2_BUF_TYPE_PRIVATE              = 0x80,
 };
 
+#define V4L2_TYPE_IS_VALID(type)		\
+	((type) >= V4L2_BUF_TYPE_VIDEO_CAPTURE	\
+	 && (type) <= V4L2_BUF_TYPE_META_OUTPUT)
+
 #define V4L2_TYPE_IS_MULTIPLANAR(type)			\
 	((type) == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE	\
 	 || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE)
@@ -171,7 +178,8 @@  enum v4l2_buf_type {
 	 || (type) == V4L2_BUF_TYPE_SDR_OUTPUT			\
 	 || (type) == V4L2_BUF_TYPE_META_OUTPUT)
 
-#define V4L2_TYPE_IS_CAPTURE(type) (!V4L2_TYPE_IS_OUTPUT(type))
+#define V4L2_TYPE_IS_CAPTURE(type)	\
+	(V4L2_TYPE_IS_VALID(type) && !V4L2_TYPE_IS_OUTPUT(type))
 
 enum v4l2_tuner_type {
 	V4L2_TUNER_RADIO	     = 1,