diff --git a/sys/dev/drm/amd/amdgpu/si_dpm.c b/sys/dev/drm/amd/amdgpu/si_dpm.c --- a/sys/dev/drm/amd/amdgpu/si_dpm.c +++ b/sys/dev/drm/amd/amdgpu/si_dpm.c @@ -6785,6 +6785,11 @@ static int si_dpm_enable(struct amdgpu_device *adev) if (amdgpu_si_is_smc_running(adev)) return -EINVAL; + + /* DF-3586: a VBIOS power table without an ATOM_PPLIB_CLASSIFICATION_BOOT + * state leaves boot_ps NULL; every populate path dereferences it. */ + if (boot_ps == NULL) + return -EINVAL; if (pi->voltage_control || si_pi->voltage_control_svi2) si_enable_voltage_control(adev, true); if (pi->mvdd_control)