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.