diff options
author | Christian König <ckoenig.leichtzumerken@gmail.com> | 2023-08-29 13:01:12 +0200 |
---|---|---|
committer | Christian König <christian.koenig@amd.com> | 2023-08-31 17:00:37 +0200 |
commit | 7a0f217899a1005c8788c768a766dd435ce1c413 (patch) | |
tree | 0506b9f545eb7cf5ded33cf4c3bf00528b0de6e1 | |
parent | e76e7ec8f16259ff9167ab665eaee0d0fe20f805 (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.c | 7 |
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); } |