SRU: Fix an suspend panic when streaming audio to bluetooth headset
Colin Ian King wrote:
> SRU justification:
> Impact: Performing a suspend while streaming audio to a bluetooth
> headset trips a kernel panic in the bluetooth USB driver very late in
> the suspend process (after console messages are turned off).
> The panic occurs when hci_usb_tx_complete() calls _urb_unlink()
> on an _urb which has been previously been removed from a list.
> This happens because hci_usb_suspend() dequeues the _urb
> and then calls usb_kill_urb() which is the wrong way around.
> Fix: Put _urb on the killed list before calling usb_kill_urb() - this
> ensures that the _urb is on a list and hence won't cause a panic when
> removed using _urb_unlink().
> Testcase: Doing a suspend with audio streaming to a bluetooth headset
> using Elisa causes a panic. With the patch suspend/resume works
> Attached: The patch.
Tim Gardner email@example.com
kernel-team mailing list