linux/drivers/media/usb
Ricardo Ribalda c5fe3ed618 media: uvcvideo: Avoid race condition during unregister
The control events are handled asynchronously by the driver. Once the
control event are handled, the urb is re-submitted.

If we simply kill the urb, there is a chance that a control event is
waiting to be processed, which will re-submit the urb after the device is
disconnected.

Fix this by calling uvc_status_suspend(), which flushes the async
controls and kills the URB in a race-free manner.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org>
Link: https://lore.kernel.org/r/20240926-guenter-mini-v7-2-690441953d4a@chromium.org
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
2024-10-08 16:04:45 +02:00
..
airspy media: usb: airspy: Stop direct calls to queue num_buffers field 2023-11-23 12:35:58 +01:00
as102 media: as102: avoid GFP_ATOMIC 2024-04-29 12:07:00 +01:00
au0828 media: au0828: Use umin macro 2024-05-03 11:13:02 +01:00
b2c2 media: b2c2: flexcop-usb: fix flexcop_usb_memory_req 2024-06-24 11:05:07 +02:00
cx231xx media: cx231xx: Constify struct vb2_ops 2024-06-21 08:57:09 +02:00
dvb-usb media: Revert "media: dvb-usb: Fix unexpected infinite loop in dvb_usb_read_remote_control()" 2024-08-08 21:40:34 +02:00
dvb-usb-v2 media: IR remote control for AVerMedia TD310 2024-04-29 14:53:50 +01:00
em28xx media: em28xx: Set GPIOs for non-audio boards when switching input 2024-06-29 12:20:05 +02:00
go7007 media: Drop explicit initialization of struct i2c_device_id::driver_data to 0 2024-08-09 07:56:37 +02:00
gspca media: gspca: cpia1: Use min macro 2024-05-03 11:13:45 +01:00
hackrf media: usb: hackrf: Stop direct calls to queue num_buffers field 2023-11-23 12:36:42 +01:00
hdpvr media: hdpvr: fix error value returns in hdpvr_read 2022-06-27 09:02:50 +01:00
msi2500 media: usb/msi2500: Follow renaming of SPI "master" to "controller" 2024-02-08 11:54:41 +00:00
pvrusb2 media: pvrusb2: remove unused struct 'debugifc_mask_item' 2024-05-31 13:51:16 +02:00
pwc media: usb: pwc-uncompress: Use flex array destination for memcpy() 2022-12-07 17:58:46 +01:00
s2255 media: s2255: Use refcount_t instead of atomic_t for num_channels 2024-05-03 11:10:58 +01:00
siano media: usb: siano: Fix allocation of urbs 2024-04-16 00:02:53 +02:00
stk1160 media: stk1160: Use min macro 2024-05-03 11:14:15 +01:00
ttusb-budget media: dvb-ttusb-budget: cleanup printk logic 2020-09-03 11:15:47 +02:00
ttusb-dec media: Convert from tasklet to BH workqueue 2024-06-21 08:57:09 +02:00
usbtv media: usbtv: Remove useless locks in usbtv_video_free() 2024-03-04 12:58:38 +01:00
uvc media: uvcvideo: Avoid race condition during unregister 2024-10-08 16:04:45 +02:00
Kconfig media: tm6000: deprecate this driver 2022-08-29 16:43:00 +02:00
Makefile media: tm6000: deprecate this driver 2022-08-29 16:43:00 +02:00