⬢ DragonFlyBSD Kernel Audit
DF-3646 / fix.diff
← back to finding ↓ download raw
--- a/sys/dev/drm/radeon/ci_dpm.c
+++ b/sys/dev/drm/radeon/ci_dpm.c
@@ -3590,6 +3590,9 @@ static int ci_init_smc_table(struct radeon_device *rdev)
 	int ret;
 
 	radeon_boot_state = rdev->pm.dpm.boot_ps;
+	if (!radeon_boot_state) {
+		DRM_ERROR("no boot state in power table\n");
+		return -EINVAL;
+	}
 
 	ret = ci_setup_default_dpm_tables(rdev);
 	if (ret)
--- a/sys/dev/drm/radeon/ci_dpm.c
+++ b/sys/dev/drm/radeon/ci_dpm.c
@@ -5197,6 +5200,10 @@ int ci_dpm_enable(struct radeon_device *rdev)
 	struct radeon_ps *boot_ps = rdev->pm.dpm.boot_ps;
 	int ret;
 
+	if (!boot_ps) {
+		DRM_ERROR("no boot state in power table\n");
+		return -EINVAL;
+	}
+
 	if (ci_is_smc_running(rdev))
 		return -EINVAL;