| From ad6adcc42275a5990d85dd62616eaa94ff220c2d Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 25 Jul 2025 14:01:18 +0800 |
| Subject: usb: xhci: print xhci->xhc_state when queue_command failed |
| |
| From: Su Hui <suhui@nfschina.com> |
| |
| [ Upstream commit 7919407eca2ef562fa6c98c41cfdf6f6cdd69d92 ] |
| |
| When encounters some errors like these: |
| xhci_hcd 0000:4a:00.2: xHCI dying or halted, can't queue_command |
| xhci_hcd 0000:4a:00.2: FIXME: allocate a command ring segment |
| usb usb5-port6: couldn't allocate usb_device |
| |
| It's hard to know whether xhc_state is dying or halted. So it's better |
| to print xhc_state's value which can help locate the resaon of the bug. |
| |
| Signed-off-by: Su Hui <suhui@nfschina.com> |
| Link: https://lore.kernel.org/r/20250725060117.1773770-1-suhui@nfschina.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/usb/host/xhci-ring.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c |
| index 0862fdd3e568..c4880b22f359 100644 |
| --- a/drivers/usb/host/xhci-ring.c |
| +++ b/drivers/usb/host/xhci-ring.c |
| @@ -4421,7 +4421,8 @@ static int queue_command(struct xhci_hcd *xhci, struct xhci_command *cmd, |
| |
| if ((xhci->xhc_state & XHCI_STATE_DYING) || |
| (xhci->xhc_state & XHCI_STATE_HALTED)) { |
| - xhci_dbg(xhci, "xHCI dying or halted, can't queue_command\n"); |
| + xhci_dbg(xhci, "xHCI dying or halted, can't queue_command. state: 0x%x\n", |
| + xhci->xhc_state); |
| return -ESHUTDOWN; |
| } |
| |
| -- |
| 2.39.5 |
| |