RE: [PATCH] usb: gadget: composite: dequeue cdev->req before free it in composite_dev_cleanup

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

 



> From: Alan Stern [mailto:stern@xxxxxxxxxxxxxxxxxxx]
> Sent: Thursday, August 21, 2014 12:16 PM
> 
> On Thu, 21 Aug 2014, Paul Zimmerman wrote:
> 
> > AFAIK, it has always been a requirement that usb_ep_dequeue() release
> > the data buffer and call the urb's completion routine before it returns.
> 
> Hmmm.  I don't know if that really has been a requirement, but it does
> seem to be true in the UDC drivers I'm familiar with.
> 
> > Quite a few of the function drivers depend on that, after the call to
> > usb_ep_dequeue() they immediately free the data buffer. So if it's not
> > explicitly documented like that, it should be.
> 
> Okay, would you like to write a documentation patch?

Something like this? I didn't find any references to usp_ep_dequeue()
under Documentation/, so I guess the only place is the kerneldoc in the
header. I also fixed up some strange capitalization in the existing
text while I was there. If this looks OK to you I will send a proper
patch submission to Felipe.

[PATCH] usb: gadget: document a usb_ep_dequeue() requirement

Document the requirement that the request be dequeued and its
completion routine called before usb_ep_dequeue() returns.

diff --git a/include/linux/usb/gadget.h b/include/linux/usb/gadget.h
index c3a6185..c540557 100644
--- a/include/linux/usb/gadget.h
+++ b/include/linux/usb/gadget.h
@@ -345,12 +345,13 @@ static inline int usb_ep_queue(struct usb_ep *ep,
  * @ep:the endpoint associated with the request
  * @req:the request being canceled
  *
- * if the request is still active on the endpoint, it is dequeued and its
+ * If the request is still active on the endpoint, it is dequeued and its
  * completion routine is called (with status -ECONNRESET); else a negative
- * error code is returned.
+ * error code is returned. This is guaranteed to happen before the call to
+ * usb_ep_dequeue() returns.
  *
- * note that some hardware can't clear out write fifos (to unlink the request
- * at the head of the queue) except as part of disconnecting from usb.  such
+ * Note that some hardware can't clear out write fifos (to unlink the request
+ * at the head of the queue) except as part of disconnecting from usb. Such
  * restrictions prevent drivers from supporting configuration changes,
  * even to configuration zero (a "chapter 9" requirement).
  */

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