SRU: Fix an suspend panic when streaming audio to bluetooth headset
On Fri, 2009-02-13 at 18:42 +0100, Stefan Bader wrote:
> 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
> > correctly.
> > Attached: The patch.
> ACK, Colin might this still be applicable to later kernels or has bt changed
> too much in the meantime?
Should apply also to Intrepid + Jaunty too by the look of it
Colin King <email@example.com>
"Me transmitte sursum, caledoni"
kernel-team mailing list