hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/media/rc/imon.c
....@@ -646,15 +646,14 @@
646646 pr_err_ratelimited("error submitting urb(%d)\n", retval);
647647 } else {
648648 /* Wait for transmission to complete (or abort) */
649
- mutex_unlock(&ictx->lock);
650649 retval = wait_for_completion_interruptible(
651650 &ictx->tx.finished);
652651 if (retval) {
653652 usb_kill_urb(ictx->tx_urb);
654653 pr_err_ratelimited("task interrupted\n");
655654 }
656
- mutex_lock(&ictx->lock);
657655
656
+ ictx->tx.busy = false;
658657 retval = ictx->tx.status;
659658 if (retval)
660659 pr_err_ratelimited("packet tx failed (%d)\n", retval);
....@@ -958,7 +957,8 @@
958957 if (ictx->disconnected)
959958 return -ENODEV;
960959
961
- mutex_lock(&ictx->lock);
960
+ if (mutex_lock_interruptible(&ictx->lock))
961
+ return -ERESTARTSYS;
962962
963963 if (!ictx->dev_present_intf0) {
964964 pr_err_ratelimited("no iMON device present\n");