[PATCH] drm/amd/powerplay: fix the null pointer issue on switching power profile
Huang Rui
ray.huang at amd.com
Mon Jan 13 02:34:30 UTC 2020
Fix the wrong input parameter of powerplay callback
amdgpu_dpm_switch_power_profile which is encountered by kfd test.
[ 176.758381] BUG: kernel NULL pointer dereference, address: 0000000000000220
[ 176.758409] #PF: supervisor read access in kernel mode
[ 176.758424] #PF: error_code(0x0000) - not-present page
[ 176.758440] PGD 80000003f6eea067 P4D 80000003f6eea067 PUD 3ce06c067 PMD 0
[ 176.758461] Oops: 0000 [#1] SMP PTI
[ 176.758473] CPU: 5 PID: 2621 Comm: kfdtest Tainted: G OE
5.4.0-rc7-custom #1
[ 176.758496] Hardware name: System manufacturer System Product Name/TUF
Z370-PLUS GAMING, BIOS 0612 03/01/2018
[ 176.758593] RIP: 0010:pp_dpm_switch_power_profile+0x46/0x1ee [amdgpu]
[ 176.758613] Code: 00 48 89 45 d8 31 c0 48 85 ff 0f 84 9f 01 00 00 48 89 fb 41
89 f4 41 89 d5 80 7f 15 00 0f 84 96 01 00 00 48 8b 87 78 02 00 00 <48> 83 b8 20
02 00 00 00 0f 84 ba 00 00 00 83 fe 05 0f 87 82 01 00
[ 176.758663] RSP: 0018:ffffa530c12ebb50 EFLAGS: 00010282
[ 176.758678] RAX: 0000000000000000 RBX: ffff9797c0b00000 RCX: 0000000000000000
[ 176.758698] RDX: 0000000000000001 RSI: 0000000000000005 RDI: ffff9797c0b00000
[ 176.758718] RBP: ffffa530c12ebb80 R08: ffff9797ce221548 R09: 000000000000036c
[ 176.758739] R10: ffffffff94006a80 R11: 00000000ffffffff R12: 0000000000000005
[ 176.758759] R13: 0000000000000001 R14: ffff9797fff4dda8 R15: ffff9797ce221548
[ 176.758779] FS: 00007efe09cc3780(0000) GS:ffff979826940000(0000)
knlGS:0000000000000000
[ 176.758802] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 176.758819] CR2: 0000000000000220 CR3: 00000003cdc70003 CR4: 00000000003606e0
[ 176.758839] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 176.758859] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 176.758879] Call Trace:
[ 176.758932] amdgpu_dpm_switch_power_profile+0x4c/0x6f [amdgpu]
[ 176.758995] amdgpu_amdkfd_set_compute_idle+0x1a/0x1c [amdgpu]
[ 176.759056] kfd_inc_compute_active+0x29/0x2b [amdgpu]
[ 176.759117] register_process+0x11c/0x14f [amdgpu]
[ 176.759177] pqm_create_queue+0x20b/0x527 [amdgpu]
[ 176.759234] kfd_ioctl_create_queue+0x4aa/0x5e5 [amdgpu]
[ 176.759294] kfd_ioctl+0x235/0x366 [amdgpu]
Signed-off-by: Huang Rui <ray.huang at amd.com>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
index f7c0ae6..d3962e2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c
@@ -1123,7 +1123,8 @@ int amdgpu_dpm_switch_power_profile(struct amdgpu_device *adev,
ret = smu_switch_power_profile(&adev->smu, type, en);
else if (adev->powerplay.pp_funcs &&
adev->powerplay.pp_funcs->switch_power_profile)
- ret = adev->powerplay.pp_funcs->switch_power_profile(adev, type, en);
+ ret = adev->powerplay.pp_funcs->switch_power_profile(adev->powerplay.pp_handle,
+ type, en);
return ret;
}
--
2.7.4
More information about the amd-gfx
mailing list