FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 02-13-2009, 04:12 PM
Colin Ian King
 
Default SRU: Fix an suspend panic when streaming audio to bluetooth headset

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@canonical.com>
"Me transmitte sursum, caledoni"
 
Old 02-13-2009, 05:19 PM
Colin Ian King
 
Default SRU: Fix an suspend panic when streaming audio to bluetooth headset

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@canonical.com>
"Me transmitte sursum, caledoni"


--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 04:02 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org