On Wed, Apr 03, 2024 at 12:27:40PM +0200, Hans Verkuil wrote: > On 03.04.2024 12:15, Tomi Valkeinen wrote: > > 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.valkeinen@xxxxxxxxxxxxxxxx> > > Reviewed-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > > --- > > utils/v4l2-compliance/v4l2-compliance.cpp | 4 ++-- > > utils/v4l2-compliance/v4l2-test-subdevs.cpp | 2 +- > > 2 files changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/utils/v4l2-compliance/v4l2-compliance.cpp b/utils/v4l2-compliance/v4l2-compliance.cpp > > index 2cf97909..fd7e7d76 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 ebca1b94..560efb70 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)); > > -- Regards, Laurent Pinchart