Re: [PATCH] drm/radeon: Prevent multiple error lines on suspend

From: Woody Suwalski
Date: Sun Dec 10 2023 - 13:50:35 EST


Hello, it has been now over 2 weeks and I have not seen any response to this patch.
Has it been lost in the cracks of the wide internet ? :-(

Thanks, Woody


Woody Suwalski wrote:
# Fix to avoid multiple error lines printed on every suspend by Radeon driver's debugfs.
#
# radeon_debugfs_init() calls debugfs_create_file() for every ring.
#
# This results in printing multiple error lines to the screen and dmesg similar to this:
# debugfs: File 'radeon_ring_vce2' in directory '0000:00:01.0' already present!
#
# The fix is to run lookup for the file before trying to (re)create that debug file.

# Signed-off-by: Woody Suwalski <terraluna977@xxxxxxxxx>

diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c
index e6534fa9f1fb..72b1d2d31295 100644
--- a/drivers/gpu/drm/radeon/radeon_ring.c
+++ b/drivers/gpu/drm/radeon/radeon_ring.c
@@ -549,10 +549,15 @@ static void radeon_debugfs_ring_init(struct radeon_device *rdev, struct radeon_r
 #if defined(CONFIG_DEBUG_FS)
     const char *ring_name = radeon_debugfs_ring_idx_to_name(ring->idx);
     struct dentry *root = rdev->ddev->primary->debugfs_root;
-
-    if (ring_name)
-        debugfs_create_file(ring_name, 0444, root, ring,
-                    &radeon_debugfs_ring_info_fops);
+    struct dentry *lookup;
+
+    if (ring_name) {
+        if ((lookup = debugfs_lookup(ring_name, root)) == NULL)
+            debugfs_create_file(ring_name, 0444, root, ring,
+                        &radeon_debugfs_ring_info_fops);
+        else
+            dput(lookup);
+    }

 #endif
 }