Re: git: 599a4d6beff0 - main - uvideo: use size_t for sc_mmap_count and loop index in reqbufs
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.