xhci: Return canceled URBs immediately when host is halted.
commitc6cc27c782e3a64cced0fcf1d6f492c8d8881c76
authorSarah Sharp <sarah.a.sharp@linux.intel.com>
Fri, 11 Mar 2011 18:20:58 +0000 (11 10:20 -0800)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Mon, 14 Mar 2011 01:23:48 +0000 (13 18:23 -0700)
treeb671f8101eb7513343f8bb02a7e00712798aa0ed
parentb320937972d456db2a46fdcbc6bebc4dcdc9daa4
xhci: Return canceled URBs immediately when host is halted.

When the xHCI host controller is halted, it won't respond to commands
placed on the command ring.  So if an URB is cancelled after the first
roothub is deallocated, it will try to place a stop endpoint command on
the command ring, which will fail.  The command watchdog timer will fire
after five seconds, and the host controller will be marked as dying, and
all URBs will be completed.

Add a flag to the xHCI's internal state variable for when the host
controller is halted.  Immediately return the canceled URB if the host
controller is halted.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
drivers/usb/host/xhci.c
drivers/usb/host/xhci.h