]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/debugfs: disallow debugfs access when device isn't registered
authorChristian König <ckoenig.leichtzumerken@gmail.com>
Tue, 29 Aug 2023 11:01:12 +0000 (13:01 +0200)
committerChristian König <christian.koenig@amd.com>
Thu, 31 Aug 2023 15:00:37 +0000 (17:00 +0200)
During device bringup it might be that we can't access the debugfs files.
Return -ENODEV until the registration is completed on access.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230829110115.3442-3-christian.koenig@amd.com
drivers/gpu/drm/drm_debugfs.c

index d90d0827bfad98251d38a22b2e10163523335392..8a4c90fd9f0293d74794bd70b078c636267ac49b 100644 (file)
@@ -150,6 +150,9 @@ static int drm_debugfs_open(struct inode *inode, struct file *file)
 {
        struct drm_info_node *node = inode->i_private;
 
+       if (!device_is_registered(node->minor->kdev))
+               return -ENODEV;
+
        return single_open(file, node->info_ent->show, node);
 }
 
@@ -157,6 +160,10 @@ static int drm_debugfs_entry_open(struct inode *inode, struct file *file)
 {
        struct drm_debugfs_entry *entry = inode->i_private;
        struct drm_debugfs_info *node = &entry->file;
+       struct drm_minor *minor = entry->dev->primary ?: entry->dev->accel;
+
+       if (!device_is_registered(minor->kdev))
+               return -ENODEV;
 
        return single_open(file, node->show, entry);
 }