DragonFlyBSD Kernel Audit
DF-1593 / fix.diff
← back to finding ↓ download raw
diff --git a/sys/dev/drm/radeon/rv515.c b/sys/dev/drm/radeon/rv515.c
--- a/sys/dev/drm/radeon/rv515.c
+++ b/sys/dev/drm/radeon/rv515.c
@@ -254,9 +254,16 @@
 	struct radeon_device *rdev = dev->dev_private;
 	uint32_t tmp;
 
+	/*
+	 * DF-1593: this debugfs entry is world-readable (S_IRUGO) and an
+	 * unprivileged reader can trigger a full GPU reset that aborts CP
+	 * rings, drops in-flight DMA, blanks displays and crashes X/Wayland.
+	 * Drop the asic_reset() between the two register reads; sibling
+	 * ASIC debugfs ga_info handlers do not reset.  If a reset is
+	 * genuinely needed, expose it via a root-only knob.
+	 */
 	tmp = RREG32(0x2140);
 	seq_printf(m, "VAP_CNTL_STATUS 0x%08x\n", tmp);
-	radeon_asic_reset(rdev);
 	tmp = RREG32(0x425C);
 	seq_printf(m, "GA_IDLE 0x%08x\n", tmp);
 	return 0;