xhci: delete endpoints from bandwidth list before freeing whole device
authorMathias Nyman <mathias.nyman@linux.intel.com>
Wed, 28 May 2014 20:51:13 +0000 (23:51 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Jun 2014 19:04:12 +0000 (12:04 -0700)
commita0a3c6603ccd5840452c7d88d7df213f573867d9
tree2a679293596f418d5e0b77e68cf4804019c44b73
parent0b78a4287b8cc7c0817b7bc4894d8c9c177bb751
xhci: delete endpoints from bandwidth list before freeing whole device

commit 5dc2808c4729bf080487e61b80ee04e0fdb12a37 upstream.

Lists of endpoints are stored for bandwidth calculation for roothub ports.
Make sure we remove all endpoints from the list before the whole device,
containing its endpoints list_head stuctures, is freed.

This used to be done in the wrong order in xhci_mem_cleanup(),
and triggered an oops in resume from S4 (hibernate).

Tested-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-mem.c