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) break; if (stream->dev->quirks & UVC_QUIRK_PROBE_MINMAX) { -- 2.25.1