From: Andi Kleen <ak@suse.de>
To: Jiri Kosina <jikos@jikos.cz>
Cc: Andrew Morton <akpm@osdl.org>,
Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
khali@linux-fr.org, i2c@lm-sensors.org,
v4l-dvb-maintainer@linuxtv.org, linux-kernel@vger.kernel.org,
Ingo Molnar <mingo@elte.hu>,
jbeulich@novell.com
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 [thread overview]
Message-ID: <200610161231.30705.ak@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0610121521390.29022@twin.jikos.cz>
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: [<f8902177>] i2c_transfer+0x23/0x40
> [i2c_core]
>
> but task is already holding lock:
> (&adap->bus_lock){--..}, at: [<f8902177>] 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: [<f8902177>] i2c_transfer+0x23/0x40
> [i2c_core]
>
> stack backtrace:
> [<c0103b69>] dump_trace+0x65/0x1a2
> [<c0103cb6>] show_trace_log_lvl+0x10/0x20
> [<c0103f84>] show_trace+0xa/0xc
> [<c0103f99>] dump_stack+0x13/0x15
> [<c0132ea4>] __lock_acquire+0x7bd/0xa05
> [<c01333c1>] lock_acquire+0x5c/0x7b
> [<c034b683>] __mutex_lock_slowpath+0xab/0x1de
> [<f8902177>] i2c_transfer+0x23/0x40 [i2c_core]
> [<f88fa1bf>] dibx000_i2c_gated_tuner_xfer+0x166/0x185 [dibx000_common]
> [<f8902183>] i2c_transfer+0x2f/0x40 [i2c_core]
> [<f891f04b>] mt2060_readreg+0x4b/0x69 [mt2060]
> [<f891f45e>] mt2060_attach+0x40/0x1ea [mt2060]
> [<f895f468>] dibusb_dib3000mc_tuner_attach+0x126/0x16c
> [dvb_usb_dibusb_common]
> [<d10ea000>] 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:
> [<f88f3f7f>] dvb_usb_adapter_frontend_init+0xb9/0xd7 [dvb_usb]
> [<f88f36e5>] dvb_usb_device_init+0x383/0x46e [dvb_usb]
> [<f895c08a>] a800_probe+0x11/0x13 [dvb_usb_a800]
> [<c02bde12>] usb_probe_interface+0x5c/0x7e
> [<c0257384>] really_probe+0x5e/0xbd
> [<c02576c7>] __device_attach+0x0/0x5
> [<c02569ba>] bus_for_each_drv+0x35/0x5d
> [<c0257453>] device_attach+0x60/0x74
> [<c02576c7>] __device_attach+0x0/0x5
> [<c0256a2f>] bus_attach_device+0x1e/0x41
> [<c0255d49>] device_add+0x347/0x4f1
> [<c015ed9d>] kfree+0xb5/0xbc
> [<c02bd07d>] usb_set_configuration+0x30d/0x35e
> [<c02c25ec>] generic_probe+0x154/0x188
> [<c02bd8cc>] usb_probe_device+0x32/0x37
> [<c0257384>] really_probe+0x5e/0xbd
> [<c02576c7>] __device_attach+0x0/0x5
> [<c02569ba>] bus_for_each_drv+0x35/0x5d
> [<c0257453>] device_attach+0x60/0x74
> [<c02576c7>] __device_attach+0x0/0x5
> [<c0256a2f>] bus_attach_device+0x1e/0x41
> [<c0255d49>] device_add+0x347/0x4f1
> [<c02b8236>] __usb_new_device+0x118/0x14a
> [<c02ba166>] hub_thread+0x636/0x974
> [<c012c656>] autoremove_wake_function+0x0/0x2d
> [<c02b9b30>] hub_thread+0x0/0x974
> [<c012c607>] kthread+0xc1/0xee
> [<c012c546>] kthread+0x0/0xee
> [<c01038a3>] 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,
>
next prev parent reply other threads:[~2006-10-16 10:36 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-12 13:33 lockdep warning in i2c_transfer() with dibx000 DVB - input tree merge plans? Jiri Kosina
2006-10-13 2:37 ` Dmitry Torokhov
2006-10-13 6:13 ` Ingo Molnar
2006-10-16 10:31 ` Andi Kleen [this message]
2006-10-16 12:37 ` dwarf2 stuck " Jan Beulich
2006-10-16 12:45 ` Jiri Kosina
2006-10-16 12:59 ` Jan Beulich
2006-10-16 13:08 ` Jiri Kosina
2006-10-16 13:30 ` Jan Beulich
2006-10-16 14:17 ` Andi Kleen
2006-10-16 14:24 ` Jan Beulich
2006-10-16 14:34 ` Andi Kleen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200610161231.30705.ak@suse.de \
--to=ak@suse.de \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@osdl.org \
--cc=dmitry.torokhov@gmail.com \
--cc=i2c@lm-sensors.org \
--cc=jbeulich@novell.com \
--cc=jikos@jikos.cz \
--cc=khali@linux-fr.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=v4l-dvb-maintainer@linuxtv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox