
Hi Seung-Woo,
After the commit 6aae84769a0b ("gadget: f_thor: Fix memory leaks of usb request and its buffer"), there is hang-up with ctrl-c in some udc. It is because req of out_ep is freed before out_ep is disabled. Fix hang-up with ctrl-c by disabling ep before free req of the ep.
Signed-off-by: Seung-Woo Kim sw0312.kim@samsung.com
drivers/usb/gadget/f_thor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/gadget/f_thor.c b/drivers/usb/gadget/f_thor.c index 1aa6be4..8b3b19f 100644 --- a/drivers/usb/gadget/f_thor.c +++ b/drivers/usb/gadget/f_thor.c @@ -877,14 +877,14 @@ static void thor_func_disable(struct usb_function *f) /* Avoid freeing memory when ep is still claimed */ if (dev->in_ep->driver_data) {
usb_ep_disable(dev->in_ep);free_ep_req(dev->in_ep, dev->in_req);
free_ep_req(dev->in_ep, dev->in_req);
dev->in_ep->driver_data = NULL; }
if (dev->out_ep->driver_data) {
usb_ep_disable(dev->out_ep);usb_ep_free_request(dev->out_ep, dev->out_req);
dev->out_ep->driver_data = NULL; }usb_ep_free_request(dev->out_ep, dev->out_req);
Applied to u-boot-dfu tree.
Thanks for this fix.
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de