Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755110AbZKLXKA (ORCPT ); Thu, 12 Nov 2009 18:10:00 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754922AbZKLXJz (ORCPT ); Thu, 12 Nov 2009 18:09:55 -0500 Received: from www.tglx.de ([62.245.132.106]:54866 "EHLO www.tglx.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754886AbZKLXJy (ORCPT ); Thu, 12 Nov 2009 18:09:54 -0500 Date: Fri, 13 Nov 2009 00:08:32 +0100 (CET) From: Thomas Gleixner To: "Rafael J. Wysocki" cc: Oleg Nesterov , Linus Torvalds , Mike Galbraith , Ingo Molnar , LKML , pm list , Greg KH , Jesse Barnes , Tejun Heo Subject: Re: 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) In-Reply-To: <200911122355.11675.rjw@sisk.pl> Message-ID: References: <200911091250.31626.rjw@sisk.pl> <200911122153.12419.rjw@sisk.pl> <200911122355.11675.rjw@sisk.pl> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2187 Lines: 48 On Thu, 12 Nov 2009, Rafael J. Wysocki wrote: > > debugobjects should catch the attempt to free the memory which holds > > the work_struct, cancel it and print a backtrace where this happened. > > I got the appended trace, so I guess it works. Yup. I assume the box survived otherwise you wouldnt have retrieved the backtrace. > [ 93.028997] ODEBUG: free active object type: work_struct Active work_struct is freed > [ 93.039180] [] kfree+0x71/0x88 > [ 93.039282] [] btusb_destruct+0x10/0x12 [btusb] Here is the offending code and it's call chain. > [ 93.039282] [] btusb_disconnect+0x81/0x92 [btusb] > [ 93.039282] [] usb_unbind_interface+0x5e/0xe1 [usbcore] > [ 93.039282] [] __device_release_driver+0x70/0xbe > [ 93.039282] [] device_release_driver+0x1e/0x2b > [ 93.040317] [] bus_remove_device+0x83/0x92 > [ 93.040317] [] device_del+0x12e/0x170 > [ 93.040317] [] usb_disable_device+0x76/0xf5 [usbcore] > [ 93.040317] [] usb_disconnect+0x96/0xfa [usbcore] > [ 93.040317] [] hub_thread+0x493/0xe2c [usbcore] > [ 93.040317] [] ? autoremove_wake_function+0x0/0x38 > [ 93.040317] [] ? preempt_schedule+0x3b/0x41 > [ 93.040317] [] ? hub_thread+0x0/0xe2c [usbcore] > [ 93.040317] [] kthread+0x69/0x71 > [ 93.040317] [] child_rip+0xa/0x20 > [ 93.042128] [] ? kthread+0x0/0x71 > [ 93.042393] [] ? child_rip+0x0/0x20 > [ 93.042478] ---[ end trace 6915b286c29296ce ]--- That does not necessary tell you which of the work_structs in the bluetooth code it is, but it limits the search of culprits significantly. Thanks for testing and confirming. tglx -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/