Hello. On 04/20/2015 11:04 PM, Joe Lawrence wrote:
So -ESHUTDOWN = -108 (0xffffff94) provoked bad_action_ret into reporting a bogus return value and stack trace above.
As far as I know, -Eanything is never a valid return code for an IRQ handler. Shouldn't this always return either IRQ_NONE or IRQ_HANDLED?
Hi Alan -- I would think so, though the stack trace in the STS_FATAL case might interesting to somebody? (Not sure what info in such trace is useful since it's an irq handler.) Even then, it should probably be replaced with a WARN_ONCE or similar instead of inadvertently through the bogus irq return value.
How about the following one-liner?
-- Joe
-->8-- -->8-- -->8--
From f8030d1cabbab1e7e5b0a0ba67fa4cd0a944d416 Mon Sep 17 00:00:00 2001 From: Joe Lawrence <joe.lawrence@xxxxxxxxxxx> Date: Mon, 20 Apr 2015 15:40:47 -0400 Subject: [PATCH] xhci: gracefully handle xhci_irq dead device
If the xHCI host controller has died (ie, device removed) or suffered other serious fatal error (STS_FATAL), then xhci_irq should handle this condition with IRQ_HANDLED instead of -ESHUTDOWN.
These two are different cases I think, device removed case should return IRQ_NONE, and fatal error shuld return IRQ_HANDLED.
Signed-off-by: Joe Lawrence <joe.lawrence@xxxxxxxxxxx>
[...] WBR, Sergei -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html