Re: [RFC/PATCH] usb/xhci: avoid kernel panic on xhci_suspend()

From: Mathias Nyman
Date: Fri Feb 21 2014 - 08:20:24 EST


On 01/08/2014 09:53 PM, David Cohen wrote:
On Wed, Jan 08, 2014 at 10:48:06AM -0500, Alan Stern wrote:
On Tue, 7 Jan 2014, Greg KH wrote:

On Tue, Jan 07, 2014 at 05:44:26PM -0800, David Cohen wrote:
From: jianqian <jianqiang.tang@xxxxxxxxx>

There is a possible kernel panic faced on xhci_suspend().
Due to kernel modified the hub autosupend_delay to 0s, after usb1 root
hub finishes initialization, it will trigger runtime_suspend and then
it will trigger xhci runtime suspend. But at that time, if
xhci->shared_hcd is still doing initialization, it is possible to face
null pointer kernel panic in xhci_suspend() function.

This patch checks if xhci->shared_hcd is null to avoid panic.

That sounds like this is a race that should be fixed properly, not just
papered over, right?

That was my reaction too. The best way to solve the problem is to
prevent the USB-2 root hub from suspending until after the USB-3 root
hub has been registered.

That makes sense. Thanks for the feedback.
I'll check for a new approach.


Could you check if this patch works for you?:

http://marc.info/?l=linux-usb&m=139298822514995&w=2

I'm not able to reproduce the original issue myself

-Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/