Re: INFO: possible recursive locking detected ps2_command

From: Dmitry Torokhov
Date: Thu Jul 31 2008 - 23:05:00 EST


On Thu, Jul 31, 2008 at 02:57:39PM -0700, Andrew Morton wrote:
>
> (cc linux-input)
>
> On Thu, 31 Jul 2008 11:41:25 +0200
> "Zdenek Kabelac" <zdenek.kabelac@xxxxxxxxx> wrote:
>
> > Hi
> >
> > During mouse unplugging from psaux connector from the laptops' docking
> > station I've got attached INFO trace.
> > (laptops still has synaptics device)
> >

Dell?

> > Also for unknown reason to me psaux mouse & synaptic device do not
> > work somehow together - is it hw limitation
> > of /dev/input/mice interface?
> > (USB mouse and synaptics do work quite well together)
> >
> > [ INFO: possible recursive locking detected ]
> > 2.6.27-rc1 #48
>
> (it's 2.6.27-rc1)
>

Peter, here is the trace we talked about long time ago. For some reason
lockdep annotation only works once. If reconnect is forced or psmouse
module is reloaded lockdep starts complaining about passthrough port.

> > ---------------------------------------------
> > kseriod/166 is trying to acquire lock:
> > (&ps2dev->cmd_mutex){--..}, at: [<ffffffff8126e9ae>] ps2_command+0x5e/0x460
> >
> > but task is already holding lock:
> > (&ps2dev->cmd_mutex){--..}, at: [<ffffffff8126e9ae>] ps2_command+0x5e/0x460
> >
> > other info that might help us debug this:
> > 4 locks held by kseriod/166:
> > #0: (serio_mutex){--..}, at: [<ffffffff8126cc1e>] serio_thread+0x3e/0x410
> > #1: (&serio->drv_mutex){--..}, at: [<ffffffff8126bf8b>]
> > serio_connect_driver+0x2b/0x50
> > #2: (psmouse_mutex){--..}, at: [<ffffffffa009aa00>]
> > psmouse_connect+0x30/0x2c0 [psmouse]
> > #3: (&ps2dev->cmd_mutex){--..}, at: [<ffffffff8126e9ae>]
> > ps2_command+0x5e/0x460
> >
> > stack backtrace:
> > Pid: 166, comm: kseriod Not tainted 2.6.27-rc1 #48
> >
> > Call Trace:
> > [<ffffffff81068bda>] __lock_acquire+0xcea/0x13b0
> > [<ffffffff81066401>] ? trace_hardirqs_off_caller+0x21/0xc0
> > [<ffffffff810664ad>] ? trace_hardirqs_off+0xd/0x10
> > [<ffffffff8126e9ae>] ? ps2_command+0x5e/0x460
> > [<ffffffff81069336>] lock_acquire+0x96/0xe0
> > [<ffffffff8126e9ae>] ? ps2_command+0x5e/0x460
> > [<ffffffff81313861>] mutex_lock_nested+0xc1/0x340
> > [<ffffffff8126e9ae>] ? ps2_command+0x5e/0x460
> > [<ffffffff810135a0>] ? native_sched_clock+0x90/0xb0
> > [<ffffffff8126e9ae>] ps2_command+0x5e/0x460
> > [<ffffffff81066401>] ? trace_hardirqs_off_caller+0x21/0xc0
> > [<ffffffff81065834>] ? get_lock_stats+0x34/0x70
> > [<ffffffffa009977d>] psmouse_sliced_command+0x2d/0x90 [psmouse]
> > [<ffffffff8126e838>] ? ps2_sendbyte+0x48/0x130
> > [<ffffffffa009b8f7>] synaptics_pt_write+0x27/0x60 [psmouse]
> > [<ffffffff81315acd>] ? _spin_unlock_irq+0x3d/0x80
> > [<ffffffff8126e84d>] ps2_sendbyte+0x5d/0x130
> > [<ffffffff81319840>] ? sub_preempt_count+0x80/0x120
> > [<ffffffff8126ea4d>] ps2_command+0xfd/0x460
> > [<ffffffff81319840>] ? sub_preempt_count+0x80/0x120
> > [<ffffffff81315acd>] ? _spin_unlock_irq+0x3d/0x80
> > [<ffffffffa0099917>] psmouse_probe+0x27/0xa0 [psmouse]
> > [<ffffffff8126c1e1>] ? serio_open+0x11/0x50
> > [<ffffffffa009ab48>] psmouse_connect+0x178/0x2c0 [psmouse]
> > [<ffffffff8126bf96>] serio_connect_driver+0x36/0x50
> > [<ffffffff8126bfcb>] serio_driver_probe+0x1b/0x20
> > [<ffffffff81221112>] driver_probe_device+0xa2/0x1e0
> > [<ffffffff812212e0>] ? __device_attach+0x0/0x10
> > [<ffffffff812212e9>] __device_attach+0x9/0x10
> > [<ffffffff8122050b>] bus_for_each_drv+0x6b/0xa0
> > [<ffffffff812213b8>] device_attach+0x88/0x90
> > [<ffffffff812202d5>] bus_attach_device+0x55/0x80
> > [<ffffffff8121ee99>] device_add+0x4f9/0x610
> > [<ffffffff81319840>] ? sub_preempt_count+0x80/0x120
> > [<ffffffff8126ce1c>] serio_thread+0x23c/0x410
> > [<ffffffff810571a0>] ? autoremove_wake_function+0x0/0x40
> > [<ffffffff8126cbe0>] ? serio_thread+0x0/0x410
> > [<ffffffff81056de9>] kthread+0x49/0x90
> > [<ffffffff8100d669>] child_rip+0xa/0x11
> > [<ffffffff8103b757>] ? finish_task_switch+0x57/0x110
> > [<ffffffff81315acd>] ? _spin_unlock_irq+0x3d/0x80
> > [<ffffffff8100cc73>] ? restore_args+0x0/0x30
> > [<ffffffff810664ad>] ? trace_hardirqs_off+0xd/0x10
> > [<ffffffff81056da0>] ? kthread+0x0/0x90
> > [<ffffffff8100d65f>] ? child_rip+0x0/0x11
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html

--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/