Re: [PATCH RESEND] xhci: Keep interrupt disabled in initialization until host is running.

From: Prashanth K
Date: Tue Oct 10 2023 - 05:05:29 EST




On 09-10-23 06:22 pm, Greg Kroah-Hartman wrote:
On Mon, Oct 09, 2023 at 04:09:26PM +0530, Prashanth K wrote:
From: Hongyu Xie <xy521521@xxxxxxxxx>

[ Upstream commit a808925075fb750804a60ff0710614466c396db4 ]

irq is disabled in xhci_quiesce(called by xhci_halt, with bit:2 cleared
in USBCMD register), but xhci_run(called by usb_add_hcd) re-enable it.
It's possible that you will receive thousands of interrupt requests
after initialization for 2.0 roothub. And you will get a lot of
warning like, "xHCI dying, ignoring interrupt. Shouldn't IRQs be
disabled?". This amount of interrupt requests will cause the entire
system to freeze.
This problem was first found on a device with ASM2142 host controller
on it.

[tidy up old code while moving it, reword header -Mathias]

Cc: stable@xxxxxxxxxx
Signed-off-by: Hongyu Xie <xiehongyu1@xxxxxxxxxx>
Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
Link: https://lore.kernel.org/r/20220623111945.1557702-2-mathias.nyman@xxxxxxxxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 5.15
Signed-off-by: Prashanth K <quic_prashk@xxxxxxxxxxx>
---

Any specific reason you missed adding the extra blank line in this
version of the backport that the original added? That is going to cause
problems in the future if other patches are added on top of this that
would be expecting it because it is that way in Linus's tree.


Thanks for pointing out, i removed it while resolving some merge conflicts. Will add it back in next version.

And why is this only relevant for 5.15.y?

I'm not really sure why this was only ported from 5.19 onwards and not present in older kernels (could be because of dependencies/conflicts).

But anyways im backporting it to 5.15 since an irq storm was seen on a qcom SOC working on 5.15, and this patch is helping solve it.

Should I change the CC to just stable kernel (without mentioning kernel version) ?
something like this -- Cc: <stable@xxxxxxxxxxxxxxx>

Regards.
Prashanth K