lkml.org 
[lkml]   [2009]   [Nov]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: GPF in run_workqueue()/list_del_init(cwq->worklist.next) on resume (was: Re: Help needed: Resume problems in 2.6.32-rc, perhaps related to preempt_count leakage in keventd)


On Wed, 11 Nov 2009, Rafael J. Wysocki wrote:
>
> I applied the patch and this is the result of 'dmesg | grep ERR' after 10-or-so
> consecutive suspend-resume and hibernate-resume cycles:
>
> [ 129.008689] ERR!! btusb_waker+0x0/0x27 [btusb]
> [ 166.477373] ERR!! btusb_waker+0x0/0x27 [btusb]
> [ 203.983665] ERR!! btusb_waker+0x0/0x27 [btusb]
> [ 241.636547] ERR!! btusb_waker+0x0/0x27 [btusb]
>
> which kind of confirms my previous observation that the problem was not
> reproducible without Bluetooth.

.. and that btusb thing matches my observation that only a few BT drivers
seem to use workqueues, and btusb_disconnect() isn't doing any work
cancel.

> I'm going to test the appended patch, then.

Hmm. the USB disconnect doesn't call hci_dev_put(), it calls
hci_free_dev() and doesn't seem to call the ->destruct thing.

Although again, maybe that gets called indirectly.

So I'd put the cancel work in the actual disconnect routine. But maybe
thar's just me.

Linus


\
 
 \ /
  Last update: 2009-11-18 23:46    [W:0.740 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site