--- y/drivers/media/rc/imon.c +++ i/drivers/media/rc/imon.c @@ -598,6 +598,8 @@ static int send_packet(struct imon_conte int retval = 0; struct usb_ctrlrequest *control_req = NULL; + if (ictx->tx.busy == true) + return -EBUSY; /* Check if we need to use control or interrupt urb */ if (!ictx->tx_control) { pipe = usb_sndintpipe(ictx->usbdev_intf0, @@ -654,6 +656,7 @@ static int send_packet(struct imon_conte pr_err_ratelimited("task interrupted\n"); } mutex_lock(&ictx->lock); + ictx->tx.busy = false; retval = ictx->tx.status; if (retval)