All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: gadget: composite: req->complete not set, using wrong callback for complete
@ 2021-09-19 19:41 Florian Faber
  2021-09-20  4:58 ` Greg KH
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Florian Faber @ 2021-09-19 19:41 UTC (permalink / raw)
  To: gregkh; +Cc: linux-usb

In usb_composite_setup_continue, req->complete is not set, leaving the 
previous value untouched. After completion of the ep0 transaction, the 
UDC would then call whatever complete callback is set with the composite 
cdev as context, leading to all sorts of havoc.

Signed-off-by: Florian Faber <faber@faberman.de>

---
  drivers/usb/gadget/composite.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/composite.c b/drivers/usb/gadget/composite.c
index 504c1cbc255d..8d497be4be32 100644
--- a/drivers/usb/gadget/composite.c
+++ b/drivers/usb/gadget/composite.c
@@ -2518,6 +2518,7 @@ void usb_composite_setup_continue(struct 
usb_composite_dev *cdev)
  		DBG(cdev, "%s: Completing delayed status\n", __func__);
  		req->length = 0;
  		req->context = cdev;
+		req->complete = composite_setup_complete;
  		value = composite_ep0_queue(cdev, req, GFP_ATOMIC);
  		if (value < 0) {
  			DBG(cdev, "ep_queue --> %d\n", value);
-- 

^ permalink raw reply related	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-12-01 14:12 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-19 19:41 [PATCH] usb: gadget: composite: req->complete not set, using wrong callback for complete Florian Faber
2021-09-20  4:58 ` Greg KH
2021-09-20  5:46   ` Florian Faber
2021-09-20  6:24     ` Greg KH
2021-10-13  8:41 ` [PATCH v2] " Florian Faber
2021-10-13  8:48   ` Greg KH
2021-10-13  8:54 ` [PATCH v3] " Florian Faber
2021-10-13 12:05   ` Greg KH
2021-10-13 14:15 ` [PATCH v4] " Florian Faber
2021-11-17 14:01   ` Greg KH
2021-11-17 14:06     ` Florian Faber
2021-11-17 14:51       ` Greg KH
2021-11-27  5:20   ` Peter Chen
2021-12-01 11:04     ` Florian Faber
2021-12-01 14:12       ` Peter Chen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.