This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/cgit.cgi/v4l-utils.git tree:

Subject: v4l2-compliance: Fix use of routing on 32-bit platforms
Author:  Tomi Valkeinen <tomi.valkei...@ideasonboard.com>
Date:    Wed Apr 3 13:15:44 2024 +0300

At the moment we do:

routing.routes = (__u64)&routes;

On 32-bit platforms the 32-bit address will be sign-extended, possibly
resulting setting the address to, e.g., 0xff000000 -> 0xffffffffff000000.

Fix this by converting the address to uintptr_t.

Signed-off-by: Tomi Valkeinen <tomi.valkei...@ideasonboard.com>
Reviewed-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>

 utils/v4l2-compliance/v4l2-compliance.cpp   | 4 ++--
 utils/v4l2-compliance/v4l2-test-subdevs.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

---

http://git.linuxtv.org/cgit.cgi/v4l-utils.git/commit/?id=87ea8a7d9f0b7f837473fe693c9e8597a83c8f97
diff --git a/utils/v4l2-compliance/v4l2-compliance.cpp 
b/utils/v4l2-compliance/v4l2-compliance.cpp
index 2cf979096bd0..fd7e7d76e214 100644
--- a/utils/v4l2-compliance/v4l2-compliance.cpp
+++ b/utils/v4l2-compliance/v4l2-compliance.cpp
@@ -1274,7 +1274,7 @@ void testNode(struct node &node, struct node 
&node_m2m_cap, struct node &expbuf_
                                which <= V4L2_SUBDEV_FORMAT_ACTIVE; which++) {
 
                                sd_routing[which].which = which;
-                               sd_routing[which].routes = 
(__u64)sd_routes[which];
+                               sd_routing[which].routes = 
(uintptr_t)sd_routes[which];
                                sd_routing[which].num_routes = NUM_ROUTES_MAX;
 
                                ret = doioctl(&node, VIDIOC_SUBDEV_G_ROUTING, 
&sd_routing[which]);
@@ -1305,7 +1305,7 @@ void testNode(struct node &node, struct node 
&node_m2m_cap, struct node &expbuf_
                                        routes = sd_routes[which];
                                } else {
                                        dummy_routing.num_routes = 1;
-                                       dummy_routing.routes = 
(__u64)&dummy_routes;
+                                       dummy_routing.routes = 
(uintptr_t)&dummy_routes;
                                        dummy_routes[0].source_pad = pad;
                                        dummy_routes[0].source_stream = 0;
                                        dummy_routes[0].sink_pad = pad;
diff --git a/utils/v4l2-compliance/v4l2-test-subdevs.cpp 
b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
index ebca1b94f5c0..560efb704c8c 100644
--- a/utils/v4l2-compliance/v4l2-test-subdevs.cpp
+++ b/utils/v4l2-compliance/v4l2-test-subdevs.cpp
@@ -586,7 +586,7 @@ int testSubDevRouting(struct node *node, unsigned which)
        int ret;
 
        routing.which = which;
-       routing.routes = (__u64)&routes;
+       routing.routes = (uintptr_t)&routes;
        routing.num_routes = 0;
        memset(routing.reserved, 0xff, sizeof(routing.reserved));
 

Reply via email to