On 06.06.23 19:11, Laurent Pinchart wrote: > When commit 716c330433e3 ("media: uvcvideo: Use standard names for > menus") reworked the handling of menu controls, it inadvertently > replaced a GENMASK(n - 1, 0) with a BIT_MASK(n). The latter isn't > equivalent to the former, which broke adding XU mappings from userspace. > Fix it. > > Reported-by: Poncho <poncho@xxxxxxxxx> > Link: https://lore.kernel.org/linux-media/468a36ec-c3ac-cb47-e12f-5906239ae3cd@xxxxxxxxx/ > Fixes: 716c330433e3 ("media: uvcvideo: Use standard names for menus") Many thx for looking into this. Please consider adding Cc: stable@xxxxxxxxxxxxxxx to get this fixed in 6.3.y, as a fixes tag alone is not enough to guarantee a backport attempt by the stable team. Ciao, Thorsten > Signed-off-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > This is untested. Poncho, would you be able to test this patch to see if > it fixes your issue ? > --- > drivers/media/usb/uvc/uvc_v4l2.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c > index 5ac2a424b13d..f4988f03640a 100644 > --- a/drivers/media/usb/uvc/uvc_v4l2.c > +++ b/drivers/media/usb/uvc/uvc_v4l2.c > @@ -45,7 +45,7 @@ static int uvc_control_add_xu_mapping(struct uvc_video_chain *chain, > map->menu_names = NULL; > map->menu_mapping = NULL; > > - map->menu_mask = BIT_MASK(xmap->menu_count); > + map->menu_mask = GENMASK(xmap->menu_count - 1, 0); > > size = xmap->menu_count * sizeof(*map->menu_mapping); > map->menu_mapping = kzalloc(size, GFP_KERNEL);