diff --git a/drivers/usb/gadget/function/f_qdss.c b/drivers/usb/gadget/function/f_qdss.c index 5bc1bfa8feb6..5fea4e4f45c8 100644 --- a/drivers/usb/gadget/function/f_qdss.c +++ b/drivers/usb/gadget/function/f_qdss.c @@ -591,8 +591,8 @@ static void usb_qdss_connect_work(struct work_struct *work) qdss = container_of(work, struct f_qdss, connect_w); - /* If cable is already removed, discard connect_work */ - if (qdss->usb_connected == 0) { + /* If qdss is closed or cable is removed, discard connect_work */ + if (qdss->qdss_close || qdss->usb_connected == 0) { cancel_work_sync(&qdss->disconnect_w); return; }