Any callers to read_sensor() may get the wrong data if the RAS interrupt has been triggered and no actual sensor read occurred.
Adjust the return code for this condition to be -EBUSY. Suggested-by: Lijo Lazar <lijo.la...@amd.com> Signed-off-by: Mario Limonciello <mario.limoncie...@amd.com> --- drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 2 +- drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c | 2 +- drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c index 4cd43bbec910..1fa4c14326ac 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c @@ -1059,7 +1059,7 @@ static int arcturus_read_sensor(struct smu_context *smu, int ret = 0; if (amdgpu_ras_intr_triggered()) - return 0; + return -EBUSY; if (!data || !size) return -EINVAL; diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c index f1440869d1ce..e1c561ece319 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c @@ -1091,7 +1091,7 @@ static int aldebaran_read_sensor(struct smu_context *smu, int ret = 0; if (amdgpu_ras_intr_triggered()) - return 0; + return -EBUSY; if (!data || !size) return -EINVAL; diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c index 3998c9b31d07..ac7982132951 100644 --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_6_ppt.c @@ -1296,7 +1296,7 @@ static int smu_v13_0_6_read_sensor(struct smu_context *smu, int ret = 0; if (amdgpu_ras_intr_triggered()) - return 0; + return -EBUSY; if (!data || !size) return -EINVAL; -- 2.34.1