Commit 1ed511fb authored by Xiang Liu's avatar Xiang Liu Committed by Alex Deucher
Browse files

drm/amdgpu: Check VF critical region before RAS poison injection



Check VF critical region before RAS poison injection to ensure that the
poison injection will not hit the VF critical region.

Signed-off-by: default avatarXiang Liu <xiang.liu@amd.com>
Reviewed-by: default avatarShravan Kumar Gande <Shravankumar.Gande@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4bfa8609
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -219,10 +219,17 @@ static int amdgpu_check_address_validity(struct amdgpu_device *adev,
	struct amdgpu_vram_block_info blk_info;
	uint64_t page_pfns[32] = {0};
	int i, ret, count;
	bool hit = false;

	if (amdgpu_ip_version(adev, UMC_HWIP, 0) < IP_VERSION(12, 0, 0))
		return 0;

	if (amdgpu_sriov_vf(adev)) {
		if (amdgpu_virt_check_vf_critical_region(adev, address, &hit))
			return -EPERM;
		return hit ? -EACCES : 0;
	}

	if ((address >= adev->gmc.mc_vram_size) ||
	    (address >= RAS_UMC_INJECT_ADDR_LIMIT))
		return -EFAULT;