[Hardy] SRU: Fix an suspend panic when streaming audio to bluetooth headset

Colin Ian King colin.king at canonical.com
Fri Feb 13 18:19:57 UTC 2009


Hi Stefan,
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   <colin.king at canonical.com>
"Me transmitte sursum, caledoni" 





More information about the kernel-team mailing list