3.19rc6 lockdep warning from drm_fb

Dave Jones
2015-01-29T14:26:21Z

The irony here of the hung task detector triggering a locking disaster.
The laptop hung completely after spewing this partial trace.

[11881.000016] ======================================================
[11881.000016] [ INFO: possible circular locking dependency detected ]
[11881.000016] 3.19.0-rc6+ #2 Not tainted
[11881.000016] -------------------------------------------------------
[11881.000016] khungtaskd/20 is trying to acquire lock:
[11881.000016] ((fb_notifier_list).rwsem){.+.+.+}, at: [<ffffffff9b06e279>] __blocking_notifier_call_chain+0x39/0x70
[11881.000016]
[11881.000016] but task is already holding lock:
[11881.000016] (crtc_ww_class_mutex){+.+.+.}, at: [<ffffffff9b459bd8>] drm_modeset_lock+0x98/0x110
[11881.000016]
[11881.000016] which lock already depends on the new lock.
[11881.000016]
[11881.000016]
[11881.000016] the existing dependency chain (in reverse order) is:
[11881.000016]
-> #2 (crtc_ww_class_mutex){+.+.+.}:
[11881.000016] [<ffffffff9b08df60>] lock_acquire+0xc0/0x270
[11881.000016] [<ffffffff9b813a78>] mutex_lock_nested+0x78/0x3d0
[11881.000016] [<ffffffff9b459bf7>] drm_modeset_lock+0xb7/0x110
[11881.000016] [<ffffffff9b44da4a>] drm_mode_getconnector+0x19a/0x4b0
[11881.000016] [<ffffffff9b43ef8f>] drm_ioctl+0x1df/0x690
[11881.000016] [<ffffffff9b46939c>] radeon_drm_ioctl+0x4c/0x80
[11881.000016] [<ffffffff9b1c3208>] do_vfs_ioctl+0x308/0x560
[11881.000016] [<ffffffff9b1c34e1>] SyS_ioctl+0x81/0xa0
[11881.000016] [<ffffffff9b818a10>] system_call_fastpath+0x12/0x17
[11881.000016]
-> #1 (&dev->mode_config.mutex){+.+.+.}:
[11881.000016] [<ffffffff9b08df60>] lock_acquire+0xc0/0x270
[11881.000016] [<ffffffff9b813a78>] mutex_lock_nested+0x78/0x3d0
[11881.000016] [<ffffffff9b45a240>] __drm_modeset_lock_all+0x90/0x120
[11881.000016] [<ffffffff9b45a2e0>] drm_modeset_lock_all+0x10/0x40
[11881.000016] [<ffffffff9b438991>] drm_fb_helper_restore_fbdev_mode_unlocked+0x21/0x80
[11881.000016] [<ffffffff9b438a12>] drm_fb_helper_set_par+0x22/0x50
[11881.000016] [<ffffffff9b49f96a>] radeon_fb_helper_set_par+0x1a/0x80
[11881.000016] [<ffffffff9b386b38>] fbcon_init+0x588/0x610
[11881.000016] [<ffffffff9b408a3c>] visual_init+0xbc/0x120
[11881.000016] [<ffffffff9b40b0ee>] do_bind_con_driver+0x17e/0x3b0
[11881.000016] [<ffffffff9b40b8c4>] do_take_over_console+0xb4/0x1e0
[11881.000016] [<ffffffff9b381bf3>] do_fbcon_takeover+0x63/0xd0
[11881.000016] [<ffffffff9b38768d>] fbcon_event_notify+0x6dd/0x7e0
[11881.000016] [<ffffffff9b06dfe2>] notifier_call_chain+0x62/0x100
[11881.000016] [<ffffffff9b06e291>] __blocking_notifier_call_chain+0x51/0x70