From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Chen-Yu Tsai <wenst@chromium.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org,
Alan Stern <stern@rowland.harvard.edu>
Subject: Re: [PATCH v3] usb: hub: Set proper message when usb_hub_create_port_device() fails
Date: Thu, 1 Oct 2026 13:23:09 +0200 [thread overview]
Message-ID: <2026100144-defraud-subarctic-b726@gregkh> (raw)
In-Reply-To: <20261001110630.1476797-1-wenst@chromium.org>
On Thu, Oct 01, 2026 at 07:06:30PM +0800, Chen-Yu Tsai wrote:
> Right now when usb_hub_create_port_device() fails, it prints a separate
> error message to say which port failed, but otherwise leaves 'message'
> set to the default "out of memory", which is somewhat misleading.
>
> Use a small buffer on the stack to put the custom formatted error message
> in and use it as the error message.
>
> Assisted-by: LLM # local reviews
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
> ---
> Changes since v2:
> - Simplify to just using a small buffer on the stack (Alan)
>
> Changes since v1:
> - Explicitly track and free the allocated custom error message instead
> of using devm_kasprintf()
> - Link to v1:
> https://lore.kernel.org/all/20260728100005.413868-1-wenst@chromium.org/
>
> Sorry Andy, I ended up not using your __free(kfree_const) patch. My LLM
> was telling me that it won't work correctly if CONFIG_USB=m.
> ---
> drivers/usb/core/hub.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
> index 0e929a4c9fa1..d7f39e86b24c 100644
> --- a/drivers/usb/core/hub.c
> +++ b/drivers/usb/core/hub.c
> @@ -1480,6 +1480,7 @@ static int hub_configure(struct usb_hub *hub,
> unsigned int pipe;
> int maxp, ret, i;
> char *message = "out of memory";
> + char msg_buf[32] = {};
Why are you initializing this?
> unsigned unit_load;
> unsigned full_load;
> unsigned maxchild;
> @@ -1756,8 +1757,8 @@ static int hub_configure(struct usb_hub *hub,
> for (i = 0; i < maxchild; i++) {
> ret = usb_hub_create_port_device(hub, i + 1);
> if (ret < 0) {
> - dev_err(hub->intfdev,
> - "couldn't create port%d device.\n", i + 1);
> + snprintf(msg_buf, sizeof(msg_buf), "couldn't create port%d device", i + 1);
> + message = msg_buf;
Please just do what the other errors do, set message to something else
and leave the dev_err() here. That way no extra stack space is needed.
And how did you hit this?
thanks,
greg k-h
next prev parent reply other threads:[~2026-10-01 11:23 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-01 11:06 [PATCH v3] usb: hub: Set proper message when usb_hub_create_port_device() fails Chen-Yu Tsai
2026-10-01 11:23 ` Greg Kroah-Hartman [this message]
2026-10-02 5:30 ` Chen-Yu Tsai
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=2026100144-defraud-subarctic-b726@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=stern@rowland.harvard.edu \
--cc=wenst@chromium.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 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.