psmouse_disconnect lockdep splat

From: Borislav Petkov
Date: Sun Aug 28 2016 - 05:30:39 EST


Hi,

just saw this while booting rc3+tip/master. Thought I should report it
in case it hasn't been caught and fixed yet.

---

...
[ 6.257924] snd_hda_codec_realtek hdaudioC0D0: Internal Mic=0x12
[ 6.280232] iTCO_vendor_support: vendor-support=0
[ 6.282063] snd_hda_intel 0000:00:1b.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops)
[ 6.285810] psmouse serio2: Failed to deactivate mouse on synaptics-pt/serio0
[ 6.286331] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
[ 6.286392] iTCO_wdt: Found a Panther Point TCO device (Version=2, TCOBASE=0x0460)
[ 6.290473] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[ 6.293635] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[ 6.298520] input: HDA Intel PCH Dock Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
[ 6.300605] iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
[ 6.303861] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input13
[ 6.307117] input: HDA Intel PCH Dock Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input14
[ 6.310045] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input15
[ 6.311645] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input16
[ 6.312865] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input17
[ 6.346990] usb 1-1: New USB device found, idVendor=8087, idProduct=0024
[ 6.348316] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 6.350870] hub 1-1:1.0: USB hub found
[ 6.352530] hub 1-1:1.0: 6 ports detected
[ 6.390558] usb 2-1: New USB device found, idVendor=8087, idProduct=0024
[ 6.391706] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 6.393209] hub 2-1:1.0: USB hub found
[ 6.394534] hub 2-1:1.0: 8 ports detected
[ 6.415139] random: crng init done
[ 6.590812] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 6.749939] psmouse serio2: Failed to enable mouse on synaptics-pt/serio0

[ 7.000430] ======================================================
[ 7.001447] [ INFO: possible circular locking dependency detected ]
[ 7.002453] 4.8.0-rc3+ #1 Not tainted
[ 7.003420] -------------------------------------------------------
[ 7.004366] kworker/0:1/45 is trying to acquire lock:
[ 7.005291] (s_active#41){++++.+}, at: [<ffffffff812675e5>] kernfs_remove_by_name_ns+0x45/0xa0
[ 7.006243]
but task is already holding lock:
[ 7.008074] (psmouse_mutex){+.+.+.}, at: [<ffffffff815dedfc>] psmouse_disconnect+0x6c/0x150
[ 7.009011]
which lock already depends on the new lock.

[ 7.011753]
the existing dependency chain (in reverse order) is:
[ 7.013576]
-> #1 (psmouse_mutex){+.+.+.}:
[ 7.015456] [<ffffffff810bbf42>] lock_acquire+0xb2/0x200
[ 7.016400] [<ffffffff8174a4c4>] mutex_lock_interruptible_nested+0x64/0x440
[ 7.017340] [<ffffffff815debb1>] psmouse_attr_set_helper+0x31/0x110
[ 7.018292] [<ffffffff8152e038>] dev_attr_store+0x18/0x30
[ 7.019214] [<ffffffff81268f25>] sysfs_kf_write+0x45/0x60
[ 7.020125] [<ffffffff812681d5>] kernfs_fop_write+0x135/0x1c0
[ 7.021023] [<ffffffff811e8358>] __vfs_write+0x28/0x120
[ 7.021917] [<ffffffff811e9498>] vfs_write+0xb8/0x1b0
[ 7.022793] [<ffffffff811ea7e9>] SyS_write+0x49/0xa0
[ 7.023650] [<ffffffff8174e9e9>] entry_SYSCALL_64_fastpath+0x1c/0xac
[ 7.024500]
-> #0 (s_active#41){++++.+}:
[ 7.026151] [<ffffffff810bb8f9>] __lock_acquire+0x1249/0x1480
[ 7.026995] [<ffffffff810bbf42>] lock_acquire+0xb2/0x200
[ 7.027845] [<ffffffff81266795>] __kernfs_remove+0x225/0x2f0
[ 7.028681] [<ffffffff812675e5>] kernfs_remove_by_name_ns+0x45/0xa0
[ 7.029517] [<ffffffff81269f16>] remove_files.isra.1+0x36/0x70
[ 7.030349] [<ffffffff8126a2e4>] sysfs_remove_group+0x44/0x90
[ 7.031185] [<ffffffff815eae04>] trackpoint_disconnect+0x24/0x40
[ 7.032014] [<ffffffff815dee2a>] psmouse_disconnect+0x9a/0x150
[ 7.032843] [<ffffffff815cca52>] serio_disconnect_driver+0x32/0x40
[ 7.033664] [<ffffffff815cca75>] serio_driver_remove+0x15/0x20
[ 7.034490] [<ffffffff81532cf1>] __device_release_driver+0xa1/0x160
[ 7.035316] [<ffffffff81532dd5>] device_release_driver+0x25/0x40
[ 7.036139] [<ffffffff815ccdfa>] serio_disconnect_port+0x7a/0xb0
[ 7.036955] [<ffffffff815cd8d1>] serio_reconnect_subtree+0x51/0xb0
[ 7.037762] [<ffffffff815cdac2>] serio_handle_event+0x192/0x210
[ 7.038568] [<ffffffff810836d8>] process_one_work+0x1e8/0x740
[ 7.039350] [<ffffffff81083c78>] worker_thread+0x48/0x4e0
[ 7.040111] [<ffffffff8108a323>] kthread+0xf3/0x110
[ 7.040863] [<ffffffff8174ec2f>] ret_from_fork+0x1f/0x40
[ 7.041610]
other info that might help us debug this:

[ 7.043777] Possible unsafe locking scenario:

[ 7.045191] CPU0 CPU1
[ 7.045883] ---- ----
[ 7.046549] lock(psmouse_mutex);
[ 7.047216] lock(s_active#41);
[ 7.047881] lock(psmouse_mutex);
[ 7.048526] lock(s_active#41);
[ 7.049165]
*** DEADLOCK ***

[ 7.051023] 6 locks held by kworker/0:1/45:
[ 7.051638] #0: ("events_long"){.+.+.+}, at: [<ffffffff81083659>] process_one_work+0x169/0x740
[ 7.052298] #1: (serio_event_work){+.+.+.}, at: [<ffffffff81083659>] process_one_work+0x169/0x740
[ 7.052964] #2: (serio_mutex){+.+.+.}, at: [<ffffffff815cd950>] serio_handle_event+0x20/0x210
[ 7.053633] #3: (&dev->mutex){......}, at: [<ffffffff81532dcd>] device_release_driver+0x1d/0x40
[ 7.054312] #4: (&serio->drv_mutex){+.+.+.}, at: [<ffffffff815cca40>] serio_disconnect_driver+0x20/0x40
[ 7.055002] #5: (psmouse_mutex){+.+.+.}, at: [<ffffffff815dedfc>] psmouse_disconnect+0x6c/0x150
[ 7.055702]
stack backtrace:
[ 7.057050] CPU: 0 PID: 45 Comm: kworker/0:1 Not tainted 4.8.0-rc3+ #1
[ 7.057745] Hardware name: LENOVO 2320CTO/2320CTO, BIOS G2ET86WW (2.06 ) 11/13/2012
[ 7.058462] Workqueue: events_long serio_handle_event
[ 7.059179] 0000000000000000 ffff880213537a20 ffffffff81336955 ffffffff825e1190
[ 7.059917] ffffffff825e1190 ffff880213537a60 ffffffff810b8dd3 ffff880213537aa0
[ 7.060657] ffff880213540828 ffff880213540850 0000000000000006 ffff880213540760
[ 7.061390] Call Trace:
[ 7.062113] [<ffffffff81336955>] dump_stack+0x67/0x92
[ 7.062843] [<ffffffff810b8dd3>] print_circular_bug+0x1e3/0x250
[ 7.063576] [<ffffffff810bb8f9>] __lock_acquire+0x1249/0x1480
[ 7.064305] [<ffffffff810ba20f>] ? mark_held_locks+0x6f/0xa0
[ 7.065033] [<ffffffff8174b7a8>] ? __mutex_unlock_slowpath+0xf8/0x1a0
[ 7.065764] [<ffffffff810bbf42>] lock_acquire+0xb2/0x200
[ 7.066495] [<ffffffff812675e5>] ? kernfs_remove_by_name_ns+0x45/0xa0
[ 7.067229] [<ffffffff81266795>] __kernfs_remove+0x225/0x2f0
[ 7.067959] [<ffffffff812675e5>] ? kernfs_remove_by_name_ns+0x45/0xa0
[ 7.068691] [<ffffffff812662c4>] ? kernfs_find_ns+0x94/0x140
[ 7.069416] [<ffffffff812675e5>] kernfs_remove_by_name_ns+0x45/0xa0
[ 7.070148] [<ffffffff81269f16>] remove_files.isra.1+0x36/0x70
[ 7.070876] [<ffffffff8126a2e4>] sysfs_remove_group+0x44/0x90
[ 7.071605] [<ffffffff815eae04>] trackpoint_disconnect+0x24/0x40
[ 7.072334] [<ffffffff815dee2a>] psmouse_disconnect+0x9a/0x150
[ 7.073063] [<ffffffff815cca52>] serio_disconnect_driver+0x32/0x40
[ 7.073795] [<ffffffff815cca75>] serio_driver_remove+0x15/0x20
[ 7.074528] [<ffffffff81532cf1>] __device_release_driver+0xa1/0x160
[ 7.075260] [<ffffffff81532dd5>] device_release_driver+0x25/0x40
[ 7.075991] [<ffffffff815ccdfa>] serio_disconnect_port+0x7a/0xb0
[ 7.076721] [<ffffffff815cd8d1>] serio_reconnect_subtree+0x51/0xb0
[ 7.077451] [<ffffffff815cdac2>] serio_handle_event+0x192/0x210
[ 7.078183] [<ffffffff810836d8>] process_one_work+0x1e8/0x740
[ 7.078919] [<ffffffff81083659>] ? process_one_work+0x169/0x740
[ 7.079663] [<ffffffff81083c78>] worker_thread+0x48/0x4e0
[ 7.080407] [<ffffffff81748119>] ? schedule+0x49/0xa0
[ 7.081148] [<ffffffff81091201>] ? preempt_count_sub+0xa1/0x110
[ 7.081901] [<ffffffff81083c30>] ? process_one_work+0x740/0x740
[ 7.082649] [<ffffffff8108a323>] kthread+0xf3/0x110
[ 7.083397] [<ffffffff8174ec2f>] ret_from_fork+0x1f/0x40
[ 7.084152] [<ffffffff8108a230>] ? kthread_create_on_node+0x230/0x230
[ 7.391560] device-mapper: ioctl: 4.35.0-ioctl (2016-06-23) initialised: dm-devel@xxxxxxxxxx
[ 7.412104] loop: module loaded
[ 7.771919] psmouse serio2: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3
[ 7.961843] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/serio2/input/input18
[ 8.474792] input: ACPI Virtual Keyboard Device as /devices/virtual/input/input19

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--