Patch "drm/nouveau: Handle fbcon suspend/resume in seperate worker" has been added to the 4.9-stable tree
Subsystems (4)
This is a note to let you know that I've just added the patch titled
drm/nouveau: Handle fbcon suspend/resume in seperate worker
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-nouveau-handle-fbcon-suspend-resume-in-seperate-worker.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Thu Jun 15 14:56:50 CEST 2017
From: Lyude Paul <[email protected]>
Date: Wed, 11 Jan 2017 21:25:24 -0500
Subject: drm/nouveau: Handle fbcon suspend/resume in seperate worker
From: Lyude Paul <[email protected]>
[ Upstream commit 15266ae38fe09dae07bd8812cb7a7717b1e1d992 ]
Resuming from RPM can happen while already holding dev->mode_config.mutex. This means we can't actually handle fbcon in any RPM resume workers, since restoring fbcon requires grabbing dev->mode_config.mutex again. So move the fbcon suspend/resume code into it's own worker, and rely on that instead to avoid deadlocking.
This fixes more deadlocks for runtime suspending the GPU on the ThinkPad W541. Reproduction recipe:
- Get a machine with both optimus and a nvidia card with connectors attached to it
- Wait for the nvidia GPU to suspend
- Attempt to manually reprobe any of the connectors on the nvidia GPU using sysfs
- *deadlock*
[airlied: use READ_ONCE to address Hans's comment]
--- drivers/gpu/drm/nouveau/nouveau_drv.h | 2 + drivers/gpu/drm/nouveau/nouveau_fbcon.c | 43 +++++++++++++++++++++++++------- 2 files changed, 36 insertions(+), 9 deletions(-)
drivers/gpu/drm/nouveau/nouveau_drv.h +2 -0
@@ -164,6 +164,8 @@ struct nouveau_drm {struct nouveau_display *display;struct backlight_device *backlight;struct work_struct hpd_work; +struct work_struct fbcon_work; +int fbcon_new_state;#ifdef CONFIG_ACPI struct notifier_block acpi_nb;#endif
drivers/gpu/drm/nouveau/nouveau_fbcon.c +34 -9
59 lines not on this page · raw message
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/drm-nouveau-handle-fbcon-suspend-resume-in-seperate-worker.patch