diff --git a/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c --- a/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +++ b/sys/dev/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c @@ -240,6 +240,12 @@ (aconnector->edid->extensions + 1) * EDID_LENGTH, &init_params); + /* dc_link_add_remote_sink may return NULL when allocation fails + * or the EDID extension count is too large; dereferencing it + * without a check panics the kernel. */ + if (dc_sink == NULL) + return 0; + dc_sink->priv = aconnector; aconnector->dc_sink = dc_sink;