[PATCH 3/3] drm/amd/display: Don't queue FRL status polling on a NULL workqueue
From: Eren Özen via B4 Relay
Date: Mon Nov 09 2026 - 23:34:09 EST
From: Eren Özen <erenozen@xxxxxxxxxxxxxx>
If create_singlethread_workqueue() fails in amdgpu_dm_init(), the
driver only logs an error and continues with
hdmi_frl_status_polling_wq set to NULL. The next atomic commit that
enables an HDMI FRL stream then passes that NULL pointer to
queue_delayed_work() and crashes.
Skip the polling when the workqueue is missing, the same way
amdgpu_dm_atomic_commit_tail() already checks vblank_control_workqueue
before using it. FRL link status is then not polled, but the display
keeps working.
Fixes: 5c9b8b27a883 ("drm/amd/display: Tie FRL support into amdgpu_dm")
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Eren Özen <erenozen@xxxxxxxxxxxxxx>
---
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index fed1893d2f..798e4401fe 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -4769,7 +4769,7 @@ static void amdgpu_dm_commit_streams(struct drm_atomic_commit *state,
break;
}
}
- if (frl_stream_found) {
+ if (frl_stream_found && dm->hdmi_frl_status_polling_wq) {
if (queue_delayed_work(dm->hdmi_frl_status_polling_wq,
&dm->hdmi_frl_status_polling_work,
msecs_to_jiffies(dm->hdmi_frl_status_polling_delay_ms)))
--
2.56.0