Make sure that all the async work is finished when we stop the status urb. To: Yunke Cao <yunkec@xxxxxxxxxxxx> To: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> To: Max Staudt <mstaudt@xxxxxxxxxx> To: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> To: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> Cc: linux-media@xxxxxxxxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx Signed-off-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx> --- Changes in v2: - Add a patch for not kalloc dev->status - Redo the logic mechanism, so it also works with suspend (Thanks Yunke!) - Link to v1: https://lore.kernel.org/r/20221212-uvc-race-v1-0-c52e1783c31d@xxxxxxxxxxxx --- Ricardo Ribalda (2): media: uvcvideo: Fix race condition with usb_kill_urb media: uvcvideo: Do not alloc dev->status drivers/media/usb/uvc/uvc_ctrl.c | 3 +++ drivers/media/usb/uvc/uvc_status.c | 15 +++++++-------- drivers/media/usb/uvc/uvcvideo.h | 3 ++- 3 files changed, 12 insertions(+), 9 deletions(-) --- base-commit: 0ec5a38bf8499f403f81cb81a0e3a60887d1993c change-id: 20221212-uvc-race-09276ea68bf8 Best regards, -- Ricardo Ribalda <ribalda@xxxxxxxxxxxx>