mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 06:01:53 +02:00
drm/amdgpu: Skip err_count sysfs creation on VF unsupported RAS blocks
VFs are not able to query error counts for all RAS blocks. Rather than returning error for queries on these blocks, skip sysfs the creation all together. Signed-off-by: Victor Skvortsov <victor.skvortsov@amd.com> Reviewed-by: Hawking Zhang <Hawking.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
16b85a0942
commit
0489339776
|
|
@ -1864,6 +1864,9 @@ int amdgpu_ras_sysfs_create(struct amdgpu_device *adev,
|
|||
if (!obj || obj->attr_inuse)
|
||||
return -EINVAL;
|
||||
|
||||
if (amdgpu_sriov_vf(adev) && !amdgpu_virt_ras_telemetry_block_en(adev, head->block))
|
||||
return 0;
|
||||
|
||||
get_obj(obj);
|
||||
|
||||
snprintf(obj->fs_data.sysfs_name, sizeof(obj->fs_data.sysfs_name),
|
||||
|
|
|
|||
|
|
@ -1246,7 +1246,8 @@ amdgpu_ras_block_to_sriov(struct amdgpu_device *adev, enum amdgpu_ras_block bloc
|
|||
case AMDGPU_RAS_BLOCK__MPIO:
|
||||
return RAS_TELEMETRY_GPU_BLOCK_MPIO;
|
||||
default:
|
||||
dev_err(adev->dev, "Unsupported SRIOV RAS telemetry block 0x%x\n", block);
|
||||
DRM_WARN_ONCE("Unsupported SRIOV RAS telemetry block 0x%x\n",
|
||||
block);
|
||||
return RAS_TELEMETRY_GPU_BLOCK_COUNT;
|
||||
}
|
||||
}
|
||||
|
|
@ -1331,3 +1332,17 @@ int amdgpu_virt_ras_telemetry_post_reset(struct amdgpu_device *adev)
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool amdgpu_virt_ras_telemetry_block_en(struct amdgpu_device *adev,
|
||||
enum amdgpu_ras_block block)
|
||||
{
|
||||
enum amd_sriov_ras_telemetry_gpu_block sriov_block;
|
||||
|
||||
sriov_block = amdgpu_ras_block_to_sriov(adev, block);
|
||||
|
||||
if (sriov_block >= RAS_TELEMETRY_GPU_BLOCK_COUNT ||
|
||||
!amdgpu_sriov_ras_telemetry_block_en(adev, sriov_block))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -406,4 +406,6 @@ bool amdgpu_virt_get_ras_capability(struct amdgpu_device *adev);
|
|||
int amdgpu_virt_req_ras_err_count(struct amdgpu_device *adev, enum amdgpu_ras_block block,
|
||||
struct ras_err_data *err_data);
|
||||
int amdgpu_virt_ras_telemetry_post_reset(struct amdgpu_device *adev);
|
||||
bool amdgpu_virt_ras_telemetry_block_en(struct amdgpu_device *adev,
|
||||
enum amdgpu_ras_block block);
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user