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

Colin Ian King colin.king at canonical.com
Fri Feb 13 17:12:24 UTC 2009


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.

-- 
Colin King   <colin.king at canonical.com>
"Me transmitte sursum, caledoni" 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-UBUNTU-SAUCE-Bluetooth-USB-fix-kernel-panic-durin.patch
Type: text/x-patch
Size: 1523 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20090213/41679bbf/attachment.bin>


More information about the kernel-team mailing list