Bug 11662 - possible recursive locking in ps2_command
possible recursive locking in ps2_command
Status: RESOLVED DUPLICATE of bug 11215
Product: Drivers
Classification: Unclassified
Component: Input Devices
All Linux
: P1 normal
Assigned To: drivers_input-devices
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-09-27 13:09 UTC by Michael S. Tsirkin
Modified: 2009-09-05 03:56 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.27-rc7
Tree: Mainline
Regression: No


Attachments

Description Michael S. Tsirkin 2008-09-27 13:09:41 UTC
Latest working kernel version: N/A
Earliest failing kernel version: N/A
Distribution: ubuntu gutsy
Hardware Environment: T60p
Software Environment:
Problem Description:

I got the following warnings once on resume on my T60p, this might indicate
a potential deadlock I think. This did not reproduce for me since.

[33491.050660] psmouse.c: Failed to enable mouse on isa0060/serio1
[33491.054938] PM: Removing info for No Bus:mouse1
[33491.064134] PM: Removing info for No Bus:event8
[33491.080154] PM: Removing info for No Bus:input8
[33491.089117]
[33491.089120] =============================================
[33491.089128] [ INFO: possible recursive locking detected ]
[33491.089133] 2.6.27-rc7-mst #53
[33491.089137] ---------------------------------------------
[33491.089141] kseriod/147 is trying to acquire lock:
[33491.089146]  (&ps2dev->cmd_mutex){--..}, at: [<c028cdf3>] ps2_command+0x43/0x3a0
[33491.089162]
[33491.089163] but task is already holding lock:
[33491.089168]  (&ps2dev->cmd_mutex){--..}, at: [<c028cdf3>] ps2_command+0x43/0x3a0
[33491.089179]
[33491.089180] other info that might help us debug this:
[33491.089185] 4 locks held by kseriod/147:
[33491.089189]  #0:  (serio_mutex){--..}, at: [<c028b612>] serio_thread+0x22/0x340
[33491.089204]  #1:  (&serio->drv_mutex){--..}, at: [<c028aad4>] serio_connect_driver+0x24/0x50
[33491.089218]  #2:  (psmouse_mutex){--..}, at: [<f8a355ca>] psmouse_connect+0x1a/0x250 [psmouse]
[33491.089246]  #3:  (&ps2dev->cmd_mutex){--..}, at: [<c028cdf3>] ps2_command+0x43/0x3a0
[33491.089259]
[33491.089260] stack backtrace:
[33491.089266] Pid: 147, comm: kseriod Not tainted 2.6.27-rc7-mst #53
[33491.089272]  [<c014b924>] validate_chain+0xbd4/0xeb0
[33491.089282]  [<c014978a>] ? find_usage_backwards+0x1a/0x100
[33491.089293]  [<c014be39>] __lock_acquire+0x239/0x950
[33491.089301]  [<c014ae10>] ? validate_chain+0xc0/0xeb0
[33491.089311]  [<c014c5ae>] lock_acquire+0x5e/0x80
[33491.089319]  [<c028cdf3>] ? ps2_command+0x43/0x3a0
[33491.089327]  [<c033163f>] mutex_lock_nested+0x9f/0x270
[33491.089337]  [<c028cdf3>] ? ps2_command+0x43/0x3a0
[33491.089346]  [<c028cdf3>] ? ps2_command+0x43/0x3a0
[33491.089354]  [<c014be39>] ? __lock_acquire+0x239/0x950
[33491.089363]  [<c028cdf3>] ps2_command+0x43/0x3a0
[33491.089371]  [<c014a4cb>] ? mark_held_locks+0x6b/0x80
[33491.089389]  [<f8a34682>] psmouse_sliced_command+0x22/0x70 [psmouse]
[33491.089404]  [<c014a634>] ? trace_hardirqs_on_caller+0xc4/0x150
[33491.089418]  [<f8a36ffe>] synaptics_pt_write+0x1e/0x50 [psmouse]
[33491.089433]  [<c028cbcb>] ps2_sendbyte+0x3b/0x100
[33491.089440]  [<c014a634>] ? trace_hardirqs_on_caller+0xc4/0x150
[33491.089450]  [<c014a6cb>] ? trace_hardirqs_on+0xb/0x10
[33491.089459]  [<c028ce89>] ps2_command+0xd9/0x3a0
[33491.089467]  [<c014a6cb>] ? trace_hardirqs_on+0xb/0x10
[33491.089476]  [<c0332ed2>] ? _spin_unlock_irq+0x22/0x30
[33491.089492]  [<f8a347bd>] psmouse_probe+0x1d/0xa0 [psmouse]
[33491.089508]  [<f8a356ee>] psmouse_connect+0x13e/0x250 [psmouse]
[33491.089539]  [<c028aadb>] serio_connect_driver+0x2b/0x50
[33491.089557]  [<c028ab16>] serio_driver_probe+0x16/0x20
[33491.089565]  [<c0278c54>] driver_probe_device+0x84/0x180
[33491.089574]  [<c0332a2d>] ? _spin_unlock+0x1d/0x20
[33491.089584]  [<c0323013>] ? klist_next+0x63/0xa0
[33491.089593]  [<c0278dd8>] __device_attach+0x8/0x10
[33491.089602]  [<c0278047>] bus_for_each_drv+0x47/0x70
[33491.089610]  [<c0278e7e>] device_attach+0x6e/0x80
[33491.089618]  [<c0278dd0>] ? __device_attach+0x0/0x10
[33491.089628]  [<c028ab34>] serio_find_driver+0x14/0x50
[33491.089636]  [<c028ae36>] ? serio_disconnect_port+0x56/0x60
[33491.089646]  [<c028af02>] serio_reconnect_port+0x52/0x80
[33491.089654]  [<c028b89c>] serio_thread+0x2ac/0x340
[33491.089662]  [<c014a6cb>] ? trace_hardirqs_on+0xb/0x10
[33491.089672]  [<c013be80>] ? autoremove_wake_function+0x0/0x50
[33491.089681]  [<c028b5f0>] ? serio_thread+0x0/0x340
[33491.089691]  [<c013bb82>] kthread+0x42/0x70
[33491.089697]  [<c013bb40>] ? kthread+0x0/0x70
[33491.089705]  [<c010489b>] kernel_thread_helper+0x7/0x1c
[33491.089714]  =======================
Steps to reproduce:

I only saw this once on resume from suspend to ram.
Comment 1 Dmitry Torokhov 2009-09-05 03:56:01 UTC

*** This bug has been marked as a duplicate of bug 11215 ***

Note You need to log in before you can comment on or make changes to this bug.