Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751491AbWJPKgx (ORCPT ); Mon, 16 Oct 2006 06:36:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751490AbWJPKgx (ORCPT ); Mon, 16 Oct 2006 06:36:53 -0400 Received: from cantor.suse.de ([195.135.220.2]:41688 "EHLO mx1.suse.de") by vger.kernel.org with ESMTP id S1751491AbWJPKgv (ORCPT ); Mon, 16 Oct 2006 06:36:51 -0400 From: Andi Kleen To: Jiri Kosina Subject: dwarf2 stuck Re: lockdep warning in i2c_transfer() with dibx000 DVB - input tree merge plans? Date: Mon, 16 Oct 2006 12:31:30 +0200 User-Agent: KMail/1.9.3 Cc: Andrew Morton , Dmitry Torokhov , Peter Zijlstra , khali@linux-fr.org, i2c@lm-sensors.org, v4l-dvb-maintainer@linuxtv.org, linux-kernel@vger.kernel.org, Ingo Molnar , jbeulich@novell.com References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200610161231.30705.ak@suse.de> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3829 Lines: 101 On Thursday 12 October 2006 15:33, Jiri Kosina wrote: > Hi, > > (Andi on CC because of the DWARF2 unwinder stuck message) > > when hotplugging AverTV DVB-T tuner, I get: > > ============================================= > [ INFO: possible recursive locking detected ] > 2.6.19-rc1-mm1 #4 > --------------------------------------------- > khubd/451 is trying to acquire lock: > (&adap->bus_lock){--..}, at: [] i2c_transfer+0x23/0x40 > [i2c_core] > > but task is already holding lock: > (&adap->bus_lock){--..}, at: [] i2c_transfer+0x23/0x40 > [i2c_core] > > other info that might help us debug this: > 1 lock held by khubd/451: > #0: (&adap->bus_lock){--..}, at: [] i2c_transfer+0x23/0x40 > [i2c_core] > > stack backtrace: > [] dump_trace+0x65/0x1a2 > [] show_trace_log_lvl+0x10/0x20 > [] show_trace+0xa/0xc > [] dump_stack+0x13/0x15 > [] __lock_acquire+0x7bd/0xa05 > [] lock_acquire+0x5c/0x7b > [] __mutex_lock_slowpath+0xab/0x1de > [] i2c_transfer+0x23/0x40 [i2c_core] > [] dibx000_i2c_gated_tuner_xfer+0x166/0x185 [dibx000_common] > [] i2c_transfer+0x2f/0x40 [i2c_core] > [] mt2060_readreg+0x4b/0x69 [mt2060] > [] mt2060_attach+0x40/0x1ea [mt2060] > [] dibusb_dib3000mc_tuner_attach+0x126/0x16c > [dvb_usb_dibusb_common] > [] 0xd10ea000 > DWARF2 unwinder stuck at 0xd10ea000 Hmm, no assembly code or anything. Jan, do you have any ideas? This looks just like a simple callback that goes over a module boundary. -Andi > Leftover inexact backtrace: > [] dvb_usb_adapter_frontend_init+0xb9/0xd7 [dvb_usb] > [] dvb_usb_device_init+0x383/0x46e [dvb_usb] > [] a800_probe+0x11/0x13 [dvb_usb_a800] > [] usb_probe_interface+0x5c/0x7e > [] really_probe+0x5e/0xbd > [] __device_attach+0x0/0x5 > [] bus_for_each_drv+0x35/0x5d > [] device_attach+0x60/0x74 > [] __device_attach+0x0/0x5 > [] bus_attach_device+0x1e/0x41 > [] device_add+0x347/0x4f1 > [] kfree+0xb5/0xbc > [] usb_set_configuration+0x30d/0x35e > [] generic_probe+0x154/0x188 > [] usb_probe_device+0x32/0x37 > [] really_probe+0x5e/0xbd > [] __device_attach+0x0/0x5 > [] bus_for_each_drv+0x35/0x5d > [] device_attach+0x60/0x74 > [] __device_attach+0x0/0x5 > [] bus_attach_device+0x1e/0x41 > [] device_add+0x347/0x4f1 > [] __usb_new_device+0x118/0x14a > [] hub_thread+0x636/0x974 > [] autoremove_wake_function+0x0/0x2d > [] hub_thread+0x0/0x974 > [] kthread+0xc1/0xee > [] kthread+0x0/0xee > [] kernel_thread_helper+0x7/0x10 > ======================= > > This could be easily solved, as this is recursive locking situation with > child-parent hierarchy. > > I would like to use the same approach we used with Peter Zijlstra to fix > lockdep warnings in drivers/input/serio.c - i.e. taking advantage of newly > introduced lockdep_set_subclass(), to do it in a clean way. > > However the patch introducing lockdep_set_subclass() is currently only in > Dmitry's input tree (commit 4dfbb9d8c6cbfc32faa5c71145bd2a43e1f8237c) - > but the fix for DVB/I2C hardly belongs to input tree, so I am quite stuck. > > What are the merge plans of input tree? Is it going in some short time > into mainline or into -mm? > > Thanks, > - 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/