diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 17 | 
1 files changed, 15 insertions, 2 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c index 1d41c2c00623..7077f21f0021 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -31,6 +31,8 @@  #include <linux/dma-buf.h>  #include "amdgpu_xgmi.h"  #include <uapi/linux/kfd_ioctl.h> +#include "amdgpu_ras.h" +#include "amdgpu_umc.h"  /* Total memory size in system memory and all GPU VRAM. Used to   * estimate worst case amount of memory to reserve for page tables @@ -70,8 +72,7 @@ void amdgpu_amdkfd_device_probe(struct amdgpu_device *adev)  	if (!kfd_initialized)  		return; -	adev->kfd.dev = kgd2kfd_probe((struct kgd_dev *)adev, -				      adev->pdev, adev->asic_type, vf); +	adev->kfd.dev = kgd2kfd_probe((struct kgd_dev *)adev, vf);  	if (adev->kfd.dev)  		amdgpu_amdkfd_total_mem_size += adev->gmc.real_vram_size; @@ -780,3 +781,15 @@ bool amdgpu_amdkfd_have_atomics_support(struct kgd_dev *kgd)  	return adev->have_atomics_support;  } + +void amdgpu_amdkfd_ras_poison_consumption_handler(struct kgd_dev *kgd) +{ +	struct amdgpu_device *adev = (struct amdgpu_device *)kgd; +	struct ras_err_data err_data = {0, 0, 0, NULL}; + +	/* CPU MCA will handle page retirement if connected_to_cpu is 1 */ +	if (!adev->gmc.xgmi.connected_to_cpu) +		amdgpu_umc_process_ras_data_cb(adev, &err_data, NULL); +	else +		amdgpu_amdkfd_gpu_reset(kgd); +} |