Hi,
> From: Felipe Balbi, Sent: Monday, May 21, 2018 5:05 PM
<snip>
> seems like it would be better to just move this like before
> usb_ep_queue():
>
> modified drivers/usb/gadget/function/f_printer.c
> @@ -631,19 +631,19 @@ printer_write(struct file *fd, const char __user *buf,
> size_t len, loff_t *ptr)
> return -EAGAIN;
> }
>
> + list_add(&req->list, &dev->tx_reqs_active);
> +
> /* here, we unlock, and only unlock, to avoid deadlock. */
> spin_unlock(&dev->lock);
> value = usb_ep_queue(dev->in_ep, req, GFP_ATOMIC);
> spin_lock(&dev->lock);
> if (value) {
> + list_del(&req->list);
> list_add(&req->list, &dev->tx_reqs);
> spin_unlock_irqrestore(&dev->lock, flags);
> mutex_unlock(&dev->lock_printer_io);
> return -EAGAIN;
> }
> -
> - list_add(&req->list, &dev->tx_reqs_active);
> -
> }
>
> spin_unlock_irqrestore(&dev->lock, flags);
>
> --
Thank you very much for your patch! This could resolve the issue.
So, should I submit this your patch as your author?
Best regards,
Yoshihiro Shimoda
> balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html