mirror of https://gitee.com/openkylin/linux.git
drm/amd/powerplay: fix various dereferences of a pointer before it is null checked
There are several occurrances of the pointer hwmgr being dereferenced
before it is null checked. Fix these by performing the dereference
of hwmgr after it has been null checked.
Addresses-Coverity: ("Dereference before null check")
Fixes: c9ffa427db
("drm/amd/powerplay: enable pp one vf mode for vega10")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
b3eca59d99
commit
63408972e4
|
@ -275,12 +275,12 @@ static int pp_dpm_load_fw(void *handle)
|
|||
{
|
||||
struct pp_hwmgr *hwmgr = handle;
|
||||
|
||||
if (!hwmgr->not_vf)
|
||||
return 0;
|
||||
|
||||
if (!hwmgr || !hwmgr->smumgr_funcs || !hwmgr->smumgr_funcs->start_smu)
|
||||
return -EINVAL;
|
||||
|
||||
if (!hwmgr->not_vf)
|
||||
return 0;
|
||||
|
||||
if (hwmgr->smumgr_funcs->start_smu(hwmgr)) {
|
||||
pr_err("fw load failed\n");
|
||||
return -EINVAL;
|
||||
|
|
|
@ -282,10 +282,7 @@ int hwmgr_hw_init(struct pp_hwmgr *hwmgr)
|
|||
|
||||
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);
|
||||
|
|
Loading…
Reference in New Issue