]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
media: uvcvideo: Pass allocation size directly to uvc_alloc_urb_buffer
authorRicardo Ribalda <ribalda@chromium.org>
Wed, 14 Jan 2026 10:32:14 +0000 (10:32 +0000)
committerHans Verkuil <hverkuil+cisco@kernel.org>
Thu, 22 Jan 2026 07:18:51 +0000 (08:18 +0100)
commitc824345288d11e269ce41b36c105715bc2286050
treece34f36c807200071be8dfc83c9b6097def68642
parent40d3ac25c11310bfaa50ed7614846ef75cb69a1e
media: uvcvideo: Pass allocation size directly to uvc_alloc_urb_buffer

The uvc_alloc_urb_buffer() function implicitly depended on the
stream->urb_size field, which was set by its caller,
uvc_alloc_urb_buffers(). This implicit data flow makes the code harder
to follow.

More importantly, stream->urb_size was updated within the allocation
loop before the allocation was confirmed to be successful. If the
allocation failed, the stream object would be left with a urb_size that
doesn't correspond to valid, allocated URB buffers.

Refactor uvc_alloc_urb_buffer() to accept the buffer size as an explicit
argument. This makes the function's dependencies clear and improves the
robustness of the error handling path. The stream->urb_size is now set only
after a complete and successful allocation.

This is a pure refactoring and introduces no functional changes.

Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Itay Chamiel <itay.chamiel@q.ai>
Link: https://patch.msgid.link/20260114-uvc-alloc-urb-v1-2-cedf3fb66711@chromium.org
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
drivers/media/usb/uvc/uvc_video.c