Messages in this thread Patch in this message | | | From | Ricardo Ribalda <> | Date | Wed, 27 Mar 2024 08:24:46 +0000 | Subject | [PATCH v4 3/4] 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.
uvc_status_suspend() flushes the async controls and stops the urb in a correct manner.
Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> --- drivers/media/usb/uvc/uvc_status.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/usb/uvc/uvc_status.c b/drivers/media/usb/uvc/uvc_status.c index 375a95dd30110..8fd8250110e2f 100644 --- a/drivers/media/usb/uvc/uvc_status.c +++ b/drivers/media/usb/uvc/uvc_status.c @@ -294,7 +294,7 @@ int uvc_status_init(struct uvc_device *dev) void uvc_status_unregister(struct uvc_device *dev) { - usb_kill_urb(dev->int_urb); + uvc_status_suspend(dev); uvc_input_unregister(dev); } -- 2.44.0.396.g6e790dbe36-goog
| |