Re: [REGRESSION] Re: i915 driver crashes on T540p if docking station attached

Theodore Ts'o
2015-07-30T15:50:36Z

On Thu, Jul 30, 2015 at 04:40:02PM +0200, Daniel Vetter wrote:
> I have 4 patches in git://people.freedesktop.org/~danvet/drm fixes-stuff
> but I couldn't test them yet since no dp mst here and I didn't find
> anything that would ship faster than 1-2 weeks yet. I'll try to get some
> other people here to test it meanwhile too.

I've tried pulling in your patches from fixes-stuff, onto Linus's tree
(without Linus's fix), and the good news is that I'm no longer
crashing on boot.

The *bad* news is that (a) it breaks the external monitor attached to
the docking station completely (this was working with Linus's patch),
and (b) it's triggering a LOCKDEP failure.

So even though Linus's patch wasn't supposed to work, I think I'm
going to back to it....

- Ted

Jul 30 11:46:49 closure kernel: [ 4.221951]
Jul 30 11:46:49 closure kernel: [ 4.221954] ======================================================
Jul 30 11:46:49 closure kernel: [ 4.221957] [ INFO: possible circular locking dependency detected ]
Jul 30 11:46:49 closure kernel: [ 4.221960] 4.2.0-rc4-13906-g5f1b75cd #16 Not tainted
Jul 30 11:46:49 closure kernel: [ 4.221963] -------------------------------------------------------
Jul 30 11:46:49 closure kernel: [ 4.221966] modprobe/503 is trying to acquire lock:
Jul 30 11:46:49 closure kernel: [ 4.221968] (init_mutex){+.+.+.}, at: [<ffffffff8138b380>] acpi_video_get_backlight_type+0x17/0x164
Jul 30 11:46:49 closure kernel: [ 4.221977]
Jul 30 11:46:49 closure kernel: [ 4.221977] but task is already holding lock:
Jul 30 11:46:49 closure kernel: [ 4.221979] (&(&backlight_notifier)->rwsem){++++..}, at: [<ffffffff8109a7c9>] __blocking_notifier_call_chain+0x37/0x69
Jul 30 11:46:49 closure kernel: [ 4.221987]
Jul 30 11:46:49 closure kernel: [ 4.221987] which lock already depends on the new lock.
Jul 30 11:46:49 closure kernel: [ 4.221987]
Jul 30 11:46:49 closure kernel: [ 4.221990]
Jul 30 11:46:49 closure kernel: [ 4.221990] the existing dependency chain (in reverse order) is:
Jul 30 11:46:49 closure kernel: [ 4.221995]
Jul 30 11:46:49 closure kernel: [ 4.221995] -> #1 (&(&backlight_notifier)->rwsem){++++..}:
Jul 30 11:46:49 closure kernel: [ 4.222001] [<ffffffff810bbe08>] lock_acquire+0x104/0x18b
Jul 30 11:46:49 closure kernel: [ 4.222007] [<ffffffff8161f1db>] down_write+0x46/0x8a
Jul 30 11:46:49 closure kernel: [ 4.222012] [<ffffffff8109a6c0>] blocking_notifier_chain_register+0x36/0x57
Jul 30 11:46:49 closure kernel: [ 4.222017] [<ffffffff8134eb4e>] backlight_register_notifier+0x18/0x1a
Jul 30 11:46:49 closure kernel: [ 4.222022] [<ffffffff8138b463>] acpi_video_get_backlight_type+0xfa/0x164
Jul 30 11:46:49 closure kernel: [ 4.222028] [<ffffffffc03a1e45>] 0xffffffffc03a1e45
Jul 30 11:46:49 closure audispd: No plugins found, exiting
Jul 30 11:46:49 closure kernel: [ 4.222032] [<ffffffffc03a28a8>] 0xffffffffc03a28a8
Jul 30 11:46:49 closure kernel: [ 4.222036] [<ffffffff810003c7>] do_one_initcall+0x19a/0x1af
Jul 30 11:46:49 closure kernel: [ 4.222042] [<ffffffff81619985>] do_init_module+0x60/0x1e3
Jul 30 11:46:49 closure kernel: [ 4.222047] [<ffffffff810f0a5b>] load_module+0x1c42/0x2059
Jul 30 11:46:49 closure kernel: [ 4.222052] [<ffffffff810f1046>] SyS_finit_module+0x85/0x92
Jul 30 11:46:49 closure kernel: [ 4.222056] [<ffffffff8162109b>] entry_SYSCALL_64_fastpath+0x16/0x73
Jul 30 11:46:49 closure kernel: [ 4.222060]
Jul 30 11:46:49 closure kernel: [ 4.222060] -> #0 (init_mutex){+.+.+.}:
Jul 30 11:46:49 closure kernel: [ 4.222065] [<ffffffff810bb77a>] __lock_acquire+0xc55/0xf54
Jul 30 11:46:49 closure kernel: [ 4.222070] [<ffffffff810bbe08>] lock_acquire+0x104/0x18b
Jul 30 11:46:49 closure kernel: [ 4.222074] [<ffffffff8161d83a>] mutex_lock_nested+0x70/0x391
Jul 30 11:46:49 closure kernel: [ 4.222078] [<ffffffff8138b380>] acpi_video_get_backlight_type+0x17/0x164
Jul 30 11:46:49 closure kernel: [ 4.222083] [<ffffffff8138b505>] acpi_video_backlight_notify+0x19/0x2f
Jul 30 11:46:49 closure kernel: [ 4.222088] [<ffffffff8109a442>] notifier_call_chain+0x4c/0x71
Jul 30 11:46:49 closure kernel: [ 4.222092] [<ffffffff8109a7e2>] __blocking_notifier_call_chain+0x50/0x69
Jul 30 11:46:49 closure kernel: [ 4.222098] [<ffffffff8109a80f>] blocking_notifier_call_chain+0x14/0x16
Jul 30 11:46:49 closure kernel: [ 4.222103] [<ffffffff8134f023>] backlight_device_register+0x1df/0x1f1
Jul 30 11:46:49 closure kernel: [ 4.222108] [<ffffffffc07b3061>] intel_backlight_register+0xf0/0x157 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222146] [<ffffffffc078c843>] intel_modeset_gem_init+0x158/0x164 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222176] [<ffffffffc07b997c>] i915_driver_load+0xf1c/0x1139 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222205] [<ffffffffc053af19>] drm_dev_register+0x84/0xfd [drm]
Jul 30 11:46:49 closure kernel: [ 4.222217] [<ffffffffc053d77e>] drm_get_pci_dev+0x102/0x1bc [drm]
Jul 30 11:46:49 closure kernel: [ 4.222228] [<ffffffffc07291e2>] i915_pci_probe+0x4f/0x51 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222247] [<ffffffff81333ad3>] pci_device_probe+0x74/0xd6
Jul 30 11:46:49 closure kernel: [ 4.222253] [<ffffffff813d4806>] driver_probe_device+0x15f/0x387
Jul 30 11:46:49 closure kernel: [ 4.222257] [<ffffffff813d4a81>] __driver_attach+0x53/0x74
Jul 30 11:46:49 closure kernel: [ 4.222262] [<ffffffff813d2aa0>] bus_for_each_dev+0x6f/0x89
Jul 30 11:46:49 closure kernel: [ 4.222266] [<ffffffff813d41f0>] driver_attach+0x1e/0x20
Jul 30 11:46:49 closure kernel: [ 4.222269] [<ffffffff813d3e33>] bus_add_driver+0x140/0x238
Jul 30 11:46:49 closure kernel: [ 4.222273] [<ffffffff813d53d8>] driver_register+0x8f/0xcc
Jul 30 11:46:49 closure kernel: [ 4.222278] [<ffffffff81332be1>] __pci_register_driver+0x5e/0x62
Jul 30 11:46:49 closure kernel: [ 4.222282] [<ffffffffc053d890>] drm_pci_init+0x58/0xda [drm]
Jul 30 11:46:49 closure kernel: [ 4.222293] [<ffffffffc081f0a0>] i915_init+0xa0/0xa8 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222312] [<ffffffff810003c7>] do_one_initcall+0x19a/0x1af
Jul 30 11:46:49 closure kernel: [ 4.222317] [<ffffffff81619985>] do_init_module+0x60/0x1e3
Jul 30 11:46:49 closure kernel: [ 4.222321] [<ffffffff810f0a5b>] load_module+0x1c42/0x2059
Jul 30 11:46:49 closure kernel: [ 4.222325] [<ffffffff810f1046>] SyS_finit_module+0x85/0x92
Jul 30 11:46:49 closure kernel: [ 4.222329] [<ffffffff8162109b>] entry_SYSCALL_64_fastpath+0x16/0x73
Jul 30 11:46:49 closure kernel: [ 4.222334]
Jul 30 11:46:49 closure kernel: [ 4.222334] other info that might help us debug this:
Jul 30 11:46:49 closure kernel: [ 4.222334]
Jul 30 11:46:49 closure kernel: [ 4.222340] Possible unsafe locking scenario:
Jul 30 11:46:49 closure kernel: [ 4.222340]
Jul 30 11:46:49 closure kernel: [ 4.222344] CPU0 CPU1
Jul 30 11:46:49 closure kernel: [ 4.222347] ---- ----
Jul 30 11:46:49 closure kernel: [ 4.222350] lock(&(&backlight_notifier)->rwsem);
Jul 30 11:46:49 closure kernel: [ 4.222353] lock(init_mutex);
Jul 30 11:46:49 closure kernel: [ 4.222357] lock(&(&backlight_notifier)->rwsem);
Jul 30 11:46:49 closure kernel: [ 4.222363] lock(init_mutex);
Jul 30 11:46:49 closure kernel: [ 4.222366]
Jul 30 11:46:49 closure kernel: [ 4.222366] *** DEADLOCK ***
Jul 30 11:46:49 closure kernel: [ 4.222366]
Jul 30 11:46:49 closure kernel: [ 4.222371] 4 locks held by modprobe/503:
Jul 30 11:46:49 closure kernel: [ 4.222374] #0: (&dev->mutex){......}, at: [<ffffffff813d3ff1>] device_lock+0xf/0x11
Jul 30 11:46:49 closure kernel: [ 4.222381] #1: (&dev->mutex){......}, at: [<ffffffff813d3ff1>] device_lock+0xf/0x11
Jul 30 11:46:49 closure kernel: [ 4.222388] #2: (drm_global_mutex){+.+.+.}, at: [<ffffffffc053aeb9>] drm_dev_register+0x24/0xfd [drm]
Jul 30 11:46:49 closure kernel: [ 4.222402] #3: (&(&backlight_notifier)->rwsem){++++..}, at: [<ffffffff8109a7c9>] __blocking_notifier_call_chain+0x37/0x69
Jul 30 11:46:49 closure kernel: [ 4.222410]
Jul 30 11:46:49 closure kernel: [ 4.222410] stack backtrace:
Jul 30 11:46:49 closure kernel: [ 4.222416] CPU: 7 PID: 503 Comm: modprobe Not tainted 4.2.0-rc4-13906-g5f1b75cd #16
Jul 30 11:46:49 closure kernel: [ 4.222420] Hardware name: LENOVO 20BECTO1WW/20BECTO1WW, BIOS GMET59WW (2.07 ) 02/12/2014
Jul 30 11:46:49 closure kernel: [ 4.222425] ffffffff8280a230 ffff8800c992b5d8 ffffffff8161a71e 0000000000000006
Jul 30 11:46:49 closure kernel: [ 4.222431] ffffffff8280a230 ffff8800c992b628 ffffffff810b9adf ffffffff82265780
Jul 30 11:46:49 closure kernel: [ 4.222437] ffff880405588000 0000000000000004 ffff880405588880 0000000000000004
Jul 30 11:46:49 closure kernel: [ 4.222443] Call Trace:
Jul 30 11:46:49 closure kernel: [ 4.222447] [<ffffffff8161a71e>] dump_stack+0x4c/0x65
Jul 30 11:46:49 closure kernel: [ 4.222451] [<ffffffff810b9adf>] print_circular_bug+0x1f8/0x209
Jul 30 11:46:49 closure kernel: [ 4.222455] [<ffffffff810bb77a>] __lock_acquire+0xc55/0xf54
Jul 30 11:46:49 closure kernel: [ 4.222460] [<ffffffff810bbe08>] lock_acquire+0x104/0x18b
Jul 30 11:46:49 closure kernel: [ 4.222464] [<ffffffff8138b380>] ? acpi_video_get_backlight_type+0x17/0x164
Jul 30 11:46:49 closure kernel: [ 4.222469] [<ffffffff8161d83a>] mutex_lock_nested+0x70/0x391
Jul 30 11:46:49 closure kernel: [ 4.222472] [<ffffffff8138b380>] ? acpi_video_get_backlight_type+0x17/0x164
Jul 30 11:46:49 closure kernel: [ 4.222476] [<ffffffff8138b380>] ? acpi_video_get_backlight_type+0x17/0x164
Jul 30 11:46:49 closure kernel: [ 4.222480] [<ffffffff8138b380>] acpi_video_get_backlight_type+0x17/0x164
Jul 30 11:46:49 closure kernel: [ 4.222484] [<ffffffff8138b505>] acpi_video_backlight_notify+0x19/0x2f
Jul 30 11:46:49 closure kernel: [ 4.222488] [<ffffffff8109a442>] notifier_call_chain+0x4c/0x71
Jul 30 11:46:49 closure kernel: [ 4.222492] [<ffffffff8109a7e2>] __blocking_notifier_call_chain+0x50/0x69
Jul 30 11:46:49 closure kernel: [ 4.222496] [<ffffffff8109a80f>] blocking_notifier_call_chain+0x14/0x16
Jul 30 11:46:49 closure kernel: [ 4.222500] [<ffffffff8134f023>] backlight_device_register+0x1df/0x1f1
Jul 30 11:46:49 closure kernel: [ 4.222530] [<ffffffffc07b3061>] intel_backlight_register+0xf0/0x157 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222556] [<ffffffffc078c843>] intel_modeset_gem_init+0x158/0x164 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222584] [<ffffffffc07b997c>] i915_driver_load+0xf1c/0x1139 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222589] [<ffffffff810ba715>] ? mark_held_locks+0x56/0x6c
Jul 30 11:46:49 closure kernel: [ 4.222593] [<ffffffff81620836>] ? _raw_spin_unlock_irqrestore+0x3f/0x4d
Jul 30 11:46:49 closure kernel: [ 4.222597] [<ffffffff810ba89c>] ? trace_hardirqs_on_caller+0x171/0x18d
Jul 30 11:46:49 closure kernel: [ 4.222607] [<ffffffffc053af19>] drm_dev_register+0x84/0xfd [drm]
Jul 30 11:46:49 closure kernel: [ 4.222618] [<ffffffffc053d77e>] drm_get_pci_dev+0x102/0x1bc [drm]
Jul 30 11:46:49 closure kernel: [ 4.222636] [<ffffffffc07291e2>] i915_pci_probe+0x4f/0x51 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222640] [<ffffffff81333ad3>] pci_device_probe+0x74/0xd6
Jul 30 11:46:49 closure kernel: [ 4.222644] [<ffffffff813d4a2e>] ? driver_probe_device+0x387/0x387
Jul 30 11:46:49 closure kernel: [ 4.222648] [<ffffffff813d4806>] driver_probe_device+0x15f/0x387
Jul 30 11:46:49 closure kernel: [ 4.222652] [<ffffffff813d4a2e>] ? driver_probe_device+0x387/0x387
Jul 30 11:46:49 closure kernel: [ 4.222655] [<ffffffff813d4a81>] __driver_attach+0x53/0x74
Jul 30 11:46:49 closure kernel: [ 4.222659] [<ffffffff813d2aa0>] bus_for_each_dev+0x6f/0x89
Jul 30 11:46:49 closure kernel: [ 4.222662] [<ffffffff813d41f0>] driver_attach+0x1e/0x20
Jul 30 11:46:49 closure kernel: [ 4.222666] [<ffffffff813d3e33>] bus_add_driver+0x140/0x238
Jul 30 11:46:49 closure kernel: [ 4.222670] [<ffffffff813d53d8>] driver_register+0x8f/0xcc
Jul 30 11:46:49 closure kernel: [ 4.222674] [<ffffffff81332be1>] __pci_register_driver+0x5e/0x62
Jul 30 11:46:49 closure kernel: [ 4.222677] [<ffffffffc081f000>] ? 0xffffffffc081f000
Jul 30 11:46:49 closure kernel: [ 4.222687] [<ffffffffc053d890>] drm_pci_init+0x58/0xda [drm]
Jul 30 11:46:49 closure kernel: [ 4.222690] [<ffffffffc081f000>] ? 0xffffffffc081f000
Jul 30 11:46:49 closure kernel: [ 4.222708] [<ffffffffc081f0a0>] i915_init+0xa0/0xa8 [i915]
Jul 30 11:46:49 closure kernel: [ 4.222712] [<ffffffffc081f000>] ? 0xffffffffc081f000
Jul 30 11:46:49 closure kernel: [ 4.222716] [<ffffffff810003c7>] do_one_initcall+0x19a/0x1af
Jul 30 11:46:49 closure kernel: [ 4.222719] [<ffffffff8161994d>] ? do_init_module+0x28/0x1e3
Jul 30 11:46:49 closure kernel: [ 4.222723] [<ffffffff81199350>] ? kmem_cache_alloc_trace+0xba/0xcc
Jul 30 11:46:49 closure kernel: [ 4.222727] [<ffffffff81619985>] do_init_module+0x60/0x1e3
Jul 30 11:46:49 closure kernel: [ 4.222731] [<ffffffff810f0a5b>] load_module+0x1c42/0x2059
Jul 30 11:46:49 closure kernel: [ 4.222736] [<ffffffff810f1046>] SyS_finit_module+0x85/0x92
Jul 30 11:46:49 closure kernel: [ 4.222739] [<ffffffff8162109b>] entry_SYSCALL_64_fastpath+0x16/0x73