Loading drivers/hwtracing/coresight/coresight-tmc-etr.c +2 −0 Original line number Diff line number Diff line Loading @@ -2201,7 +2201,9 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev, spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_etr_bam_disable(drvdata); mutex_unlock(&drvdata->mem_lock); usb_qdss_close(drvdata->usbch); mutex_lock(&drvdata->mem_lock); drvdata->usbch = NULL; goto out; } else { Loading drivers/usb/gadget/function/f_qdss.c +4 −2 Original line number Diff line number Diff line Loading @@ -591,8 +591,8 @@ static void usb_qdss_connect_work(struct work_struct *work) qdss = container_of(work, struct f_qdss, connect_w); /* If qdss is closed or cable is removed, discard connect_work */ if (qdss->qdss_close || qdss->usb_connected == 0) { /* If cable is removed, discard connect_work */ if (qdss->usb_connected == 0) { cancel_work_sync(&qdss->disconnect_w); return; } Loading Loading @@ -927,6 +927,8 @@ void usb_qdss_close(struct usb_qdss_ch *ch) if (qdss->endless_req) { spin_unlock_irqrestore(&channel_lock, flags); /* Flush connect work before proceeding with de-queue */ flush_work(&qdss->connect_w); usb_ep_dequeue(qdss->port.data, qdss->endless_req); spin_lock_irqsave(&channel_lock, flags); } Loading Loading
drivers/hwtracing/coresight/coresight-tmc-etr.c +2 −0 Original line number Diff line number Diff line Loading @@ -2201,7 +2201,9 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev, spin_unlock_irqrestore(&drvdata->spinlock, flags); tmc_etr_bam_disable(drvdata); mutex_unlock(&drvdata->mem_lock); usb_qdss_close(drvdata->usbch); mutex_lock(&drvdata->mem_lock); drvdata->usbch = NULL; goto out; } else { Loading
drivers/usb/gadget/function/f_qdss.c +4 −2 Original line number Diff line number Diff line Loading @@ -591,8 +591,8 @@ static void usb_qdss_connect_work(struct work_struct *work) qdss = container_of(work, struct f_qdss, connect_w); /* If qdss is closed or cable is removed, discard connect_work */ if (qdss->qdss_close || qdss->usb_connected == 0) { /* If cable is removed, discard connect_work */ if (qdss->usb_connected == 0) { cancel_work_sync(&qdss->disconnect_w); return; } Loading Loading @@ -927,6 +927,8 @@ void usb_qdss_close(struct usb_qdss_ch *ch) if (qdss->endless_req) { spin_unlock_irqrestore(&channel_lock, flags); /* Flush connect work before proceeding with de-queue */ flush_work(&qdss->connect_w); usb_ep_dequeue(qdss->port.data, qdss->endless_req); spin_lock_irqsave(&channel_lock, flags); } Loading