Reviewed-by: Edward O'Callaghan <funfunctor at folklore1984.net> On 10/10/2016 06:23 AM, Grazvydas Ignotas wrote: > Currently the driver crashes if smu7_enable_dpm_tasks() returns early, > which it does if DPM is already active. It seems to be better just to > continue anyway, at least I haven't noticed any ill effects. It's also > unclear at what state the hardware was left by the previous driver, so > IMO it's better to always fully initialize. > > Way to reproduce: > $ modprobe amdgpu > $ rmmod amdgpu > $ modprobe amdgpu > ... > DPM is already running right now, no need to enable DPM! > ... > failed to send message 18b ret is 0 > BUG: unable to handle kernel paging request at ffffed01fc9ab21f > Call Trace: > smu7_set_power_state_tasks+0x499/0x1940 [amdgpu] > phm_set_power_state+0xcb/0x120 [amdgpu] > psm_adjust_power_state_dynamic+0x11e/0x1b0 [amdgpu] > pem_task_adjust_power_state+0xb9/0xd0 [amdgpu] > pem_excute_event_chain+0x7d/0xe0 [amdgpu] > pem_handle_event_unlocked+0x49/0x60 [amdgpu] > pem_handle_event+0xe/0x10 [amdgpu] > pp_dpm_dispatch_tasks+0xe0/0x190 [amdgpu] > amdgpu_pm_compute_clocks+0x10c/0xc60 [amdgpu] > dce_v11_0_crtc_dpms+0x7d/0x150 [amdgpu] > dce_v11_0_crtc_disable+0x90/0x4a0 [amdgpu] > drm_helper_disable_unused_functions+0x67/0x80 [drm_kms_helper] > amdgpu_fbdev_init+0x13e/0x170 [amdgpu] > amdgpu_device_init+0x1aeb/0x2490 [amdgpu] > > Signed-off-by: Grazvydas Ignotas <notasas at gmail.com> > --- > drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c > index f6afa6a..327030b 100644 > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c > @@ -1166,8 +1166,8 @@ static int smu7_enable_dpm_tasks(struct pp_hwmgr *hwmgr) > > tmp_result = (!smum_is_dpm_running(hwmgr)) ? 0 : -1; > PP_ASSERT_WITH_CODE(tmp_result == 0, > - "DPM is already running right now, no need to enable DPM!", > - return 0); > + "DPM is already running", > + ); > > if (smu7_voltage_control(hwmgr)) { > tmp_result = smu7_enable_voltage_control(hwmgr); > -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 819 bytes Desc: OpenPGP digital signature URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20161010/0af7d6a6/attachment-0001.sig>