Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751402AbWJLNe1 (ORCPT ); Thu, 12 Oct 2006 09:34:27 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751404AbWJLNe1 (ORCPT ); Thu, 12 Oct 2006 09:34:27 -0400 Received: from twin.jikos.cz ([213.151.79.26]:39148 "EHLO twin.jikos.cz") by vger.kernel.org with ESMTP id S1751402AbWJLNe0 (ORCPT ); Thu, 12 Oct 2006 09:34:26 -0400 Date: Thu, 12 Oct 2006 15:33:11 +0200 (CEST) From: Jiri Kosina To: Andrew Morton , Dmitry Torokhov , Peter Zijlstra , khali@linux-fr.org, i2c@lm-sensors.org, v4l-dvb-maintainer@linuxtv.org cc: linux-kernel@vger.kernel.org, Andi Kleen , Ingo Molnar Subject: lockdep warning in i2c_transfer() with dibx000 DVB - input tree merge plans? Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3470 Lines: 95 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 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, -- Jiri Kosina - 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/