Thanks for the detailed report.
smu7_powergate_uvd+0x23
pp_set_powergating_by_smu+0x15a
amdgpu_dpm_enable_uvd+0xc1
taskq_thread
POLARIS10 has UVD 6.3
If driver init fails the task gets removed by:
cancel_delayed_work_sync(&adev->uvd.idle_work);
uvd_v6_0_hw_fini
amdgpu_device_ip_fini_early
amdgpu_device_fini_hw
amdgpu_driver_unload_kms
amdgpu_driver_load_kms
amdgpu_attachhook
but your trace must occur before that gets cleaned up
smu7_powergate_uvd+0x23 is
/sys/dev/pci/drm/amd/pm/powerplay/hwmgr/smu7_clockpowergating.c:118
114 void smu7_powergate_uvd(struct pp_hwmgr *hwmgr, bool bgate)
115 {
116 struct smu7_hwmgr *data = (struct smu7_hwmgr *)(hwmgr->backend);
117
118 data->uvd_power_gated = bgate;
Try the following revert of
'drm/amd/pm/smu7: fix a memleak in smu7_hwmgr_backend_init'
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-6.6.y&id=ae7cbf935b9a1b41f65fe6443e7cd0c401500b20
The matching OpenBSD commit was rev 1.9
date: 2024/01/29 01:51:19; author: jsg; state: Exp; lines: +5 -1; commitid:
cUHNbtd9MymExldJ;
Index: sys/dev/pci/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c,v
diff -u -p -r1.10 smu7_hwmgr.c
--- sys/dev/pci/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c 6 Feb 2024 03:55:02
-0000 1.10
+++ sys/dev/pci/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c 7 Mar 2024 02:43:27
-0000
@@ -2974,8 +2974,6 @@ static int smu7_hwmgr_backend_init(struc
result = smu7_get_evv_voltages(hwmgr);
if (result) {
pr_info("Get EVV Voltage Failed. Abort Driver
loading!\n");
- kfree(hwmgr->backend);
- hwmgr->backend = NULL;
return -EINVAL;
}
} else {
@@ -3021,10 +3019,8 @@ static int smu7_hwmgr_backend_init(struc
}
result = smu7_update_edc_leakage_table(hwmgr);
- if (result) {
- smu7_hwmgr_backend_fini(hwmgr);
+ if (result)
return result;
- }
return 0;
}