Hi Hangyu, Thank you for the patch. On Thu, Mar 24, 2022 at 05:13:08PM +0800, Hangyu Hua wrote: > probe->dwMaxPayloadTransferSize is a 32bit value, but bandwidth is 16bit. This > may lead to a bit overflow. > > Signed-off-by: Hangyu Hua <hbh25y@xxxxxxxxx> > --- > drivers/media/usb/uvc/uvc_video.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/usb/uvc/uvc_video.c b/drivers/media/usb/uvc/uvc_video.c > index 1b4cc934109e..cc4878373aa7 100644 > --- a/drivers/media/usb/uvc/uvc_video.c > +++ b/drivers/media/usb/uvc/uvc_video.c > @@ -383,7 +383,7 @@ int uvc_probe_video(struct uvc_streaming *stream, > struct uvc_streaming_control *probe) > { > struct uvc_streaming_control probe_min, probe_max; > - u16 bandwidth; > + u32 bandwidth; > unsigned int i; > int ret; > > @@ -422,7 +422,7 @@ int uvc_probe_video(struct uvc_streaming *stream, > break; > > bandwidth = probe->dwMaxPayloadTransferSize; > - if (bandwidth <= stream->maxpsize) > + if (bandwidth <= (u32)stream->maxpsize) The cast to u32 isn't needed, it's implicit. This could actually be written if (probe->dwMaxPayloadTransferSize <= stream->maxpsize) The bandwidth local variable can be dropped. Could you submit a v2 with this change ? > break; > > if (stream->dev->quirks & UVC_QUIRK_PROBE_MINMAX) { -- Regards, Laurent Pinchart