]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/xe/display: Remove hpd cancel work sync from runtime pm path
authorRodrigo Vivi <rodrigo.vivi@intel.com>
Wed, 12 Feb 2025 19:24:47 +0000 (14:24 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:13:24 +0000 (11:13 +0200)
[ Upstream commit 1ed591582b7b894d2f7e7ab5cef2e9b0b6fef12b ]

This function will synchronously cancel and wait for many display
work queue items, which might try to take the runtime pm reference
causing a bad deadlock. So, remove it from the runtime_pm suspend patch.

Reported-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Imre Deak <imre.deak@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250212192447.402715-1-rodrigo.vivi@intel.com
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/xe/display/xe_display.c

index b3921dbc52ff677d3ea3fc230e28ad3f2cd0d2d2..b735e30953ceeb278c73b61183ecb60413e46855 100644 (file)
@@ -346,7 +346,8 @@ static void __xe_display_pm_suspend(struct xe_device *xe, bool runtime)
 
        xe_display_flush_cleanup_work(xe);
 
-       intel_hpd_cancel_work(xe);
+       if (!runtime)
+               intel_hpd_cancel_work(xe);
 
        if (!runtime && has_display(xe)) {
                intel_display_driver_suspend_access(display);