# 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 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  }