We have been seeing two main stability issues that uvc gadget driver runs into when stopping streams: 1. Attempting to queue usb_requests to a disabled usb_ep 2. use-after-free issue for inflight usb_requests The four patches below fix the two issues above. Patch 1/4 fixes the first issue, and Patch 2/4 and 4/4 fix the second issue. Patch 3/4 is only there to make the diff in 4/4 cleaner. Avichal Rakesh (4): usb: gadget: uvc: prevent use of disabled endpoint usb: gadget: uvc: Allocate uvc_requests one at a time usb: gadget: uvc: move video disable logic to its own function usb: gadget: uvc: Fix use-after-free for inflight usb_requests drivers/usb/gadget/function/f_uvc.c | 11 +- drivers/usb/gadget/function/f_uvc.h | 2 +- drivers/usb/gadget/function/uvc.h | 6 +- drivers/usb/gadget/function/uvc_v4l2.c | 12 +- drivers/usb/gadget/function/uvc_video.c | 231 +++++++++++++++++------- 5 files changed, 189 insertions(+), 73 deletions(-) -- 2.42.0.758.gaed0368e0e-goog