diff options
author | Rex Zhu <Rex.Zhu@amd.com> | 2018-03-20 04:32:07 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2018-03-21 00:44:50 -0400 |
commit | eb4900aa4c49e978041405ab2eeeb8538c7f736a (patch) | |
tree | 0fa0638f45a1001b426d757faf1160da6db11ac7 | |
parent | 81ce8bea035befed2ae7670bf9f9404fa3f46f71 (diff) |
drm/amdgpu: Fix kernel NULL pointer dereference in dpm functions
caused by
'commit 83e3c4615872 ("drm/amdgpu: Remove wrapper layer of smu ip functions")'
BUG: unable to handle kernel NULL pointer dereference at 00000000000005d8
[ 313.241459] IP: ci_dpm_read_sensor+0x37/0xf0 [amdgpu]
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/ci_dpm.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/kv_dpm.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/si_dpm.c | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c index 98d1dd253596..47ef3e6e7178 100644 --- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c | |||
@@ -6244,6 +6244,7 @@ static int ci_dpm_early_init(void *handle) | |||
6244 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 6244 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
6245 | 6245 | ||
6246 | adev->powerplay.pp_funcs = &ci_dpm_funcs; | 6246 | adev->powerplay.pp_funcs = &ci_dpm_funcs; |
6247 | adev->powerplay.pp_handle = adev; | ||
6247 | ci_dpm_set_irq_funcs(adev); | 6248 | ci_dpm_set_irq_funcs(adev); |
6248 | 6249 | ||
6249 | return 0; | 6250 | return 0; |
diff --git a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c index 81babe026529..26ba984ab2b7 100644 --- a/drivers/gpu/drm/amd/amdgpu/kv_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/kv_dpm.c | |||
@@ -2963,6 +2963,7 @@ static int kv_dpm_early_init(void *handle) | |||
2963 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 2963 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
2964 | 2964 | ||
2965 | adev->powerplay.pp_funcs = &kv_dpm_funcs; | 2965 | adev->powerplay.pp_funcs = &kv_dpm_funcs; |
2966 | adev->powerplay.pp_handle = adev; | ||
2966 | kv_dpm_set_irq_funcs(adev); | 2967 | kv_dpm_set_irq_funcs(adev); |
2967 | 2968 | ||
2968 | return 0; | 2969 | return 0; |
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c index 3bfcf0d257ab..672eaffac0a5 100644 --- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c | |||
@@ -7917,6 +7917,7 @@ static int si_dpm_early_init(void *handle) | |||
7917 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; | 7917 | struct amdgpu_device *adev = (struct amdgpu_device *)handle; |
7918 | 7918 | ||
7919 | adev->powerplay.pp_funcs = &si_dpm_funcs; | 7919 | adev->powerplay.pp_funcs = &si_dpm_funcs; |
7920 | adev->powerplay.pp_handle = adev; | ||
7920 | si_dpm_set_irq_funcs(adev); | 7921 | si_dpm_set_irq_funcs(adev); |
7921 | return 0; | 7922 | return 0; |
7922 | } | 7923 | } |