From: Fabricio Akio via B4 Relay <devnull+fabricioakio.gmail.com@kernel.org>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
Fabricio Akio <fabricioakio@gmail.com>
Subject: [PATCH] usb: gadget: u_serial: Dequeue the console request only when queued
Date: Mon, 28 Sep 2026 15:18:18 -0300 [thread overview]
Message-ID: <20260928-u-serial-console-dequeue-v1-1-b44d68585632@gmail.com> (raw)
From: Fabricio Akio <fabricioakio@gmail.com>
gs_console_disconnect() dequeues the console request even when it is
idle, which dwc3 reports as "request ... was not queued" on every
disconnect. Dequeue it only while req->length marks it as queued.
Signed-off-by: Fabricio Akio <fabricioakio@gmail.com>
---
Tested on a Motorola Moto X4 (XT1900-6, SDM630) with the sdm660-mainline
7.2.3 tree and the gadget serial console in use: "request ... was not
queued to ep3in" is logged on every system suspend without this patch,
and not over three consecutive cycles with it. The path where the
request is still queued at disconnect was not exercised. Applies
unchanged to next-20260928.
---
drivers/usb/gadget/function/u_serial.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
index cdd1dfc666c4..53a56ddec08a 100644
--- a/drivers/usb/gadget/function/u_serial.c
+++ b/drivers/usb/gadget/function/u_serial.c
@@ -1055,6 +1055,7 @@ static void gs_console_disconnect(struct gs_port *port)
struct gs_console *cons = port->console;
struct usb_request *req;
struct usb_ep *ep;
+ bool was_queued;
if (!cons)
return;
@@ -1063,6 +1064,8 @@ static void gs_console_disconnect(struct gs_port *port)
req = cons->req;
ep = cons->console.data;
+ /* A non-zero length marks the request as queued. */
+ was_queued = req && req->length;
cons->req = NULL;
spin_unlock(&cons->lock);
@@ -1070,7 +1073,8 @@ static void gs_console_disconnect(struct gs_port *port)
if (!req)
return;
- usb_ep_dequeue(ep, req);
+ if (was_queued)
+ usb_ep_dequeue(ep, req);
gs_free_req(ep, req);
}
---
base-commit: 6375e61c01e93e35ee7acd336a689ac1fae4b509
change-id: 20260928-u-serial-console-dequeue-f9790a8e87c6
Best regards,
--
Fabricio Akio <fabricioakio@gmail.com>
reply other threads:[~2026-09-28 18:18 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260928-u-serial-console-dequeue-v1-1-b44d68585632@gmail.com \
--to=devnull+fabricioakio.gmail.com@kernel.org \
--cc=fabricioakio@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®