Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/xe/debugfs: fixed the return value of wedged_mode_set
@ 2025-02-13 22:36 Xin Wang
  2025-02-13 23:13 ` Rodrigo Vivi
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Xin Wang @ 2025-02-13 22:36 UTC (permalink / raw)
  To: intel-xe; +Cc: Xin Wang, Rodrigo Vivi, Fei Yang, Shuicheng Lin

It is generally expected that the write() function should return a
positive value indicating the number of bytes written or a negative
error code if an error occurs. Returning 0 is unusual and can lead
to unexpected behavior.

When the user program writes the same value to wedged_mode twice in
a row, a lockup will occur, because the value expected to be
returned by the write() function inside the program should be equal
to the actual written value instead of 0.

To reproduce the issue:
echo 1 > /sys/kernel/debug/dri/0/wedged_mode
echo 1 > /sys/kernel/debug/dri/0/wedged_mode   <- lockup here

Signed-off-by: Xin Wang <x.wang@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: Fei Yang <fei.yang@intel.com>
Cc: Shuicheng Lin <shuicheng.lin@intel.com>
---
 drivers/gpu/drm/xe/xe_debugfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_debugfs.c b/drivers/gpu/drm/xe/xe_debugfs.c
index 56cb3788e752..b46075edf60a 100644
--- a/drivers/gpu/drm/xe/xe_debugfs.c
+++ b/drivers/gpu/drm/xe/xe_debugfs.c
@@ -167,7 +167,7 @@ static ssize_t wedged_mode_set(struct file *f, const char __user *ubuf,
 		return -EINVAL;
 
 	if (xe->wedged.mode == wedged_mode)
-		return 0;
+		return size;
 
 	xe->wedged.mode = wedged_mode;
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-02-14 21:33 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-13 22:36 [PATCH] drm/xe/debugfs: fixed the return value of wedged_mode_set Xin Wang
2025-02-13 23:13 ` Rodrigo Vivi
2025-02-14 15:11   ` Rodrigo Vivi
2025-02-14  0:24 ` ✓ CI.Patch_applied: success for " Patchwork
2025-02-14  0:24 ` ✓ CI.checkpatch: " Patchwork
2025-02-14  0:25 ` ✓ CI.KUnit: " Patchwork
2025-02-14  0:47 ` ✓ CI.Build: " Patchwork
2025-02-14  0:50 ` ✓ CI.Hooks: " Patchwork
2025-02-14  0:52 ` ✓ CI.checksparse: " Patchwork
2025-02-14  1:12 ` ✓ Xe.CI.BAT: " Patchwork
2025-02-14 21:33 ` ✗ Xe.CI.Full: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox