Sysfs node disable query error count during gpu reset. Signed-off-by: YiPeng Chai <YiPeng.Chai@xxxxxxx> --- drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index ac7ded01dad0..a65b5197b0fc 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -619,6 +619,7 @@ static const struct file_operations amdgpu_ras_debugfs_eeprom_ops = { static ssize_t amdgpu_ras_sysfs_read(struct device *dev, struct device_attribute *attr, char *buf) { + int ret; struct ras_manager *obj = container_of(attr, struct ras_manager, sysfs_attr); struct ras_query_if info = { .head = obj->head, @@ -627,7 +628,10 @@ static ssize_t amdgpu_ras_sysfs_read(struct device *dev, if (!amdgpu_ras_get_error_query_ready(obj->adev)) return sysfs_emit(buf, "Query currently inaccessible\n"); - if (amdgpu_ras_query_error_status(obj->adev, &info)) + ret = amdgpu_ras_query_error_status(obj->adev, &info); + if (ret == -EIO) /* gpu reset is ongoing */ + return sysfs_emit(buf, "Query currently inaccessible\n"); + else if (ret) return -EINVAL; if (amdgpu_ip_version(obj->adev, MP0_HWIP, 0) != IP_VERSION(11, 0, 2) && @@ -1290,12 +1294,19 @@ static int amdgpu_aca_log_ras_error_data(struct amdgpu_device *adev, enum amdgpu ssize_t amdgpu_ras_aca_sysfs_read(struct device *dev, struct device_attribute *attr, struct aca_handle *handle, char *buf, void *data) { + int ret; struct ras_manager *obj = container_of(handle, struct ras_manager, aca_handle); struct ras_query_if info = { .head = obj->head, }; - if (amdgpu_ras_query_error_status(obj->adev, &info)) + if (!amdgpu_ras_get_error_query_ready(obj->adev)) + return sysfs_emit(buf, "Query currently inaccessible\n"); + + ret = amdgpu_ras_query_error_status(obj->adev, &info); + if (ret == -EIO) /* gpu reset is ongoing */ + return sysfs_emit(buf, "Query currently inaccessible\n"); + else if (ret) return -EINVAL; return sysfs_emit(buf, "%s: %lu\n%s: %lu\n%s: %lu\n", "ue", info.ue_count, -- 2.34.1