--- 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;