SRU: Fix an suspend panic when streaming audio to bluetooth headset
Colin Ian King wrote:
> 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
>>> 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
Maybe the allmighty upstream tip as well? Might grant a bit of a reward after
all the debug pain? ;-)
When all other means of communication fail, try words!
kernel-team mailing list