[PATCH] drm/amdgpu: Fix incorrect return value in sysfs for pp_od_clk_voltage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The changes in edad8312cbbf9a33c86873fc4093664f150dd5c1 introduced an
issue with the sysfs interface for pp_od_clk_voltage. It overwrites the
return value to 0 when it calls another function, then returns 0. The
intended behavior is that a positive return value indicates the number
of bytes from the buffer that you processed in that call.

With the 0 return value, clients would submit the same value to be
written over and over again, resulting in an infinite loop.

This is resolved by returning the count of bytes read (in this case the
whole message), when the desired return is 0 (success).

Fixes: edad8312cbbf ("drm/amdgpu: fix system hang issue during GPU")
Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1245
Signed-off-by: Matt Coffin <mcoffin13@xxxxxxxxx>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index 1705e328c6fc..f00c7ed361d4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -937,7 +937,11 @@ static ssize_t amdgpu_set_pp_od_clk_voltage(struct device *dev,
 
 pro_end:
 	up_read(&adev->reset_sem);
-	return ret;
+	if (ret) {
+		return ret;
+	} else {
+		return count;
+	}
 }
 
 static ssize_t amdgpu_get_pp_od_clk_voltage(struct device *dev,
-- 
2.28.0

_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux