Re: git: 599a4d6beff0 - main - uvideo: use size_t for sc_mmap_count and loop index in reqbufs

From: Charlie Li <vishwin_at_freebsd.org>
Date: Wed, 22 Jul 2026 15:52:08 UTC
Baptiste Daroussin wrote:
> The branch main has been updated by bapt:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=599a4d6beff07f93f019e0aff9105a8e642a600f
> 
> commit 599a4d6beff07f93f019e0aff9105a8e642a600f
> Author:     Baptiste Daroussin <bapt@FreeBSD.org>
> AuthorDate: 2026-07-22 11:53:34 +0000
> Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
> CommitDate: 2026-07-22 15:10:58 +0000
> 
>      uvideo: use size_t for sc_mmap_count and loop index in reqbufs
> ---
>   sys/dev/usb/video/uvideo.c | 11 +++++------
>   1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/sys/dev/usb/video/uvideo.c b/sys/dev/usb/video/uvideo.c
> index 57d31d2b5286..b31b3fe294cd 100644
> --- a/sys/dev/usb/video/uvideo.c
> +++ b/sys/dev/usb/video/uvideo.c
> @@ -246,7 +246,7 @@ struct uvideo_softc {
>   	vm_offset_t		sc_mmap_kva;
>   	int			sc_mmap_buffer_idx;
>   	q_mmap			sc_mmap_q;
> -	int			sc_mmap_count;
> +	size_t			sc_mmap_count;
>   	int			sc_mmap_flag;
>   	vm_object_t			sc_mmap_object;
>   
> @@ -3609,7 +3609,7 @@ uvideo_g_input(struct uvideo_softc *sc, int *input)
>   static int
>   uvideo_reqbufs(struct uvideo_softc *sc, struct v4l2_requestbuffers *rb)
>   {
> -	int i;
> +	size_t i;
>   	uint32_t buf_size;
>   	size_t buf_size_total;
>   	vm_object_t obj;
> @@ -3637,7 +3637,7 @@ uvideo_reqbufs(struct uvideo_softc *sc, struct v4l2_requestbuffers *rb)
>   		return (EINVAL);
>   	if (SIZE_MAX / sc->sc_mmap_count < buf_size)
>   		return (EINVAL);
> -	buf_size_total = (size_t)sc->sc_mmap_count * buf_size;
> +	buf_size_total = sc->sc_mmap_count * buf_size;
>   	buf_size_total = round_page(buf_size_total);
>   
>   	/*
> @@ -3684,11 +3684,10 @@ uvideo_reqbufs(struct uvideo_softc *sc, struct v4l2_requestbuffers *rb)
>   	    buf_size_total, (uintmax_t)kva);
>   
>   	for (i = 0; i < sc->sc_mmap_count; i++) {
> -		sc->sc_mmap[i].buf = sc->sc_mmap_buffer +
> -		    ((size_t)i * buf_size);
> +		sc->sc_mmap[i].buf = sc->sc_mmap_buffer + (i * buf_size);
>   
>   		sc->sc_mmap[i].v4l2_buf.index = i;
> -		sc->sc_mmap[i].v4l2_buf.m.offset = (size_t)i * buf_size;
> +		sc->sc_mmap[i].v4l2_buf.m.offset = i * buf_size;
>   		sc->sc_mmap[i].v4l2_buf.length = buf_size;
>   		sc->sc_mmap[i].v4l2_buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
>   		sc->sc_mmap[i].v4l2_buf.sequence = 0;
> 
> 
/usr/src/sys/dev/usb/video/uvideo.c:3710:6: error: format specifies type 
'int' but the argument has type 'size_t' (aka 'unsigned long') 
[-Werror,-Wformat]
  3709 |         DPRINTFN(1, "allocated %d bytes mmap buffer at kva %#jx\n",
       |                                ~~
       |                                %zu
  3710 |             buf_size_total, (uintmax_t)kva);
       |             ^~~~~~~~~~~~~~
/usr/src/sys/dev/usb/usb_debug.h:42:21: note: expanded from macro 'DPRINTFN'
    41 |     printf("%s: " fmt,                          \
       |                   ~~~
    42 |            __FUNCTION__ ,##__VA_ARGS__);        \
       |                            ^~~~~~~~~~~
1 error generated.
*** [uvideo.o] Error code 1

-- 
Charlie Li
...nope, still don't have an exit line.