drm/amd/powerplay: fix various dereferences of a pointer before it is null checked
[sfrench/cifs-2.6.git] / drivers / gpu / drm / amd / powerplay / hwmgr / hwmgr.c
index e2b82c9029489af5f9950258c182965d30422e72..f48fdc7f0382ea99b897d6a885e0a41b62e17749 100644 (file)
@@ -282,10 +282,7 @@ err:
 
 int hwmgr_hw_fini(struct pp_hwmgr *hwmgr)
 {
-       if (!hwmgr->not_vf)
-               return 0;
-
-       if (!hwmgr || !hwmgr->pm_en)
+       if (!hwmgr || !hwmgr->pm_en || !hwmgr->not_vf)
                return 0;
 
        phm_stop_thermal_controller(hwmgr);
@@ -305,10 +302,7 @@ int hwmgr_suspend(struct pp_hwmgr *hwmgr)
 {
        int ret = 0;
 
-       if (!hwmgr->not_vf)
-               return 0;
-
-       if (!hwmgr || !hwmgr->pm_en)
+       if (!hwmgr || !hwmgr->pm_en || !hwmgr->not_vf)
                return 0;
 
        phm_disable_smc_firmware_ctf(hwmgr);
@@ -327,13 +321,10 @@ int hwmgr_resume(struct pp_hwmgr *hwmgr)
 {
        int ret = 0;
 
-       if (!hwmgr->not_vf)
-               return 0;
-
        if (!hwmgr)
                return -EINVAL;
 
-       if (!hwmgr->pm_en)
+       if (!hwmgr->not_vf || !hwmgr->pm_en)
                return 0;
 
        ret = phm_setup_asic(hwmgr);