Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: fix disable ras feature failed when unload drvier v2

v2:
still need call ras_disable_all_featrures to handle
ras initilization failure case.

Function amdgpu_device_fini_hw is called before amdgpu_device_fini_sw,
so ras ta will unload before send ras disable command, ras dsiable operation
must before hw fini.

Signed-off-by: Stanley.Yang <Stanley.Yang@amd.com>
Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Stanley.Yang and committed by
Alex Deucher
232d1d43 85c1b9bd

+3 -3
+3 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
··· 2733 2733 if (amdgpu_sriov_vf(adev) && adev->virt.ras_init_done) 2734 2734 amdgpu_virt_release_ras_err_handler_data(adev); 2735 2735 2736 - amdgpu_ras_pre_fini(adev); 2737 - 2738 2736 if (adev->gmc.xgmi.num_physical_nodes > 1) 2739 2737 amdgpu_xgmi_remove_device(adev); 2740 2738 ··· 3841 3843 if (adev->ucode_sysfs_en) 3842 3844 amdgpu_ucode_sysfs_fini(adev); 3843 3845 sysfs_remove_files(&adev->dev->kobj, amdgpu_dev_attributes); 3846 + 3847 + /* disable ras feature must before hw fini */ 3848 + amdgpu_ras_pre_fini(adev); 3844 3849 3845 3850 amdgpu_device_ip_fini_early(adev); 3846 3851
-1
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
··· 2503 2503 amdgpu_ras_sysfs_remove(adev, ras_block); 2504 2504 if (ih_info->cb) 2505 2505 amdgpu_ras_interrupt_remove_handler(adev, ih_info); 2506 - amdgpu_ras_feature_enable(adev, ras_block, 0); 2507 2506 } 2508 2507 2509 2508 /* do some init work after IP late init as dependence.