summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian König <ckoenig.leichtzumerken@gmail.com>2023-08-29 13:01:12 +0200
committerChristian König <christian.koenig@amd.com>2023-08-31 17:00:37 +0200
commit7a0f217899a1005c8788c768a766dd435ce1c413 (patch)
tree0506b9f545eb7cf5ded33cf4c3bf00528b0de6e1
parente76e7ec8f16259ff9167ab665eaee0d0fe20f805 (diff)
drm/debugfs: disallow debugfs access when device isn't registered
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
-rw-r--r--drivers/gpu/drm/drm_debugfs.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_debugfs.c b/drivers/gpu/drm/drm_debugfs.c
index d90d0827bfad..8a4c90fd9f02 100644
--- a/drivers/gpu/drm/drm_debugfs.c
+++ b/drivers/gpu/drm/drm_debugfs.c
@@ -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);
}