| From 2a587a035214fa1b5ef598aea0b81848c5b72e5e Mon Sep 17 00:00:00 2001 |
| From: yuan linyu <yuanlinyu@hihonor.com> |
| Date: Fri, 15 Mar 2024 10:01:44 +0800 |
| Subject: usb: udc: remove warning when queue disabled ep |
| |
| From: yuan linyu <yuanlinyu@hihonor.com> |
| |
| commit 2a587a035214fa1b5ef598aea0b81848c5b72e5e upstream. |
| |
| It is possible trigger below warning message from mass storage function, |
| |
| WARNING: CPU: 6 PID: 3839 at drivers/usb/gadget/udc/core.c:294 usb_ep_queue+0x7c/0x104 |
| pc : usb_ep_queue+0x7c/0x104 |
| lr : fsg_main_thread+0x494/0x1b3c |
| |
| Root cause is mass storage function try to queue request from main thread, |
| but other thread may already disable ep when function disable. |
| |
| As there is no function failure in the driver, in order to avoid effort |
| to fix warning, change WARN_ON_ONCE() in usb_ep_queue() to pr_debug(). |
| |
| Suggested-by: Alan Stern <stern@rowland.harvard.edu> |
| Cc: stable@vger.kernel.org |
| Signed-off-by: yuan linyu <yuanlinyu@hihonor.com> |
| Reviewed-by: Alan Stern <stern@rowland.harvard.edu> |
| Link: https://lore.kernel.org/r/20240315020144.2715575-1-yuanlinyu@hihonor.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/gadget/udc/core.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/gadget/udc/core.c |
| +++ b/drivers/usb/gadget/udc/core.c |
| @@ -273,7 +273,9 @@ int usb_ep_queue(struct usb_ep *ep, |
| { |
| int ret = 0; |
| |
| - if (WARN_ON_ONCE(!ep->enabled && ep->address)) { |
| + if (!ep->enabled && ep->address) { |
| + pr_debug("USB gadget: queue request to disabled ep 0x%x (%s)\n", |
| + ep->address, ep->name); |
| ret = -ESHUTDOWN; |
| goto out; |
| } |