⬢ DragonFlyBSD Kernel Audit
DF-3586 / fix.diff
← back to finding ↓ download raw
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)