This is an automatic generated email to let you know that the following patch 
were queued:

Subject: media: v4l2-subdev: Fix a 64bit bug
Author:  Dan Carpenter <dan.carpen...@linaro.org>
Date:    Fri Nov 3 10:39:24 2023 +0300

The problem is this line here from subdev_do_ioctl().

        client_cap->capabilities &= ~V4L2_SUBDEV_CLIENT_CAP_STREAMS;

The "client_cap->capabilities" variable is a u64.  The AND operation
is supposed to clear out the V4L2_SUBDEV_CLIENT_CAP_STREAMS flag.  But
because it's a 32 bit variable it accidentally clears out the high 32
bits as well.

Currently we only use the first bit and none of the upper bits so this
doesn't affect runtime behavior.

Fixes: f57fa2959244 ("media: v4l2-subdev: Add new ioctl for client 
capabilities")
Signed-off-by: Dan Carpenter <dan.carpen...@linaro.org>
Reviewed-by: Tomi Valkeinen <tomi.valkei...@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>

 include/uapi/linux/v4l2-subdev.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

---

diff --git a/include/uapi/linux/v4l2-subdev.h b/include/uapi/linux/v4l2-subdev.h
index 4a195b68f28f..b383c2fe0cf3 100644
--- a/include/uapi/linux/v4l2-subdev.h
+++ b/include/uapi/linux/v4l2-subdev.h
@@ -239,7 +239,7 @@ struct v4l2_subdev_routing {
  * set (which is the default), the 'stream' fields will be forced to 0 by the
  * kernel.
  */
- #define V4L2_SUBDEV_CLIENT_CAP_STREAMS                (1U << 0)
+ #define V4L2_SUBDEV_CLIENT_CAP_STREAMS                (1ULL << 0)
 
 /**
  * struct v4l2_subdev_client_capability - Capabilities of the client accessing

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
https://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to