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 7:19 PM
> 
> Hi,
> 
> Yoshihiro Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx> writes:
> > 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?
> 
> you can send it with your authorship, it's totally fine :-)

I got it :)

> You can also add my:
> 
> Acked-by: Felipe Balbi <felipe.balbi@xxxxxxxxxxxxxxx>

Thank you for your Acked-by! I'll submit v2 patch soon.

Best regards,
Yoshihiro Shimoda

> thanks
> 
> --
> 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