drm/amd/powerplay: add powerplay valid check to avoid null point.
authorRex Zhu <Rex.Zhu@amd.com>
Tue, 29 Dec 2015 05:56:03 +0000 (13:56 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 10 Feb 2016 21:21:12 +0000 (16:21 -0500)
In case CONFIG_DRM_AMD_POWERPLAY is defined and amdgpu.powerplay=0.
some functions in powrplay can also be called by DAL. and the input parameter is *adev.
if just check point not NULL was not enough and will lead to NULL point error.

Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/powerplay/amd_powerplay.c

index 9b7c2862c16e5a3f4a0b7a632c8f9e610bafcdba..2ee4190f8c898b9e426b9ec2c81cbf987bfbdfde 100644 (file)
@@ -786,7 +786,9 @@ int amd_powerplay_get_current_clocks(void *handle,
        struct amd_pp_simple_clock_info simple_clocks;
        struct pp_clock_info hw_clocks;
 
-       if (handle == NULL || clocks == NULL)
+       PP_CHECK((struct pp_instance *)handle);
+
+       if (clocks == NULL)
                return -EINVAL;
 
        hwmgr = ((struct pp_instance *)handle)->hwmgr;
@@ -828,7 +830,9 @@ int amd_powerplay_get_clock_by_type(void *handle, enum amd_pp_clock_type type, s
 
        struct pp_hwmgr *hwmgr;
 
-       if (handle == NULL || clocks == NULL)
+       PP_CHECK((struct pp_instance *)handle);
+
+       if (clocks == NULL)
                return -EINVAL;
 
        hwmgr = ((struct pp_instance *)handle)->hwmgr;
@@ -844,7 +848,9 @@ int amd_powerplay_get_display_mode_validation_clocks(void *handle,
        int result = -1;
        struct pp_hwmgr  *hwmgr;
 
-       if (handle == NULL || clocks == NULL)
+       PP_CHECK((struct pp_instance *)handle);
+
+       if (clocks == NULL)
                return -EINVAL;
 
        hwmgr = ((struct pp_instance *)handle)->hwmgr;