RE: [PATCH/RFC] usb: gadget: function: printer: avoid wrong list handling in printer_write()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux