drm/nouveau: Do not fail module init on debugfs errors
Subsystems (4)
PATCH 1/1 drm/nouveau: Do not fail module init on debugfs errors
From: Aaron Thompson <[email protected]>
If CONFIG_DEBUG_FS is enabled, nouveau_drm_init() returns an error if it fails to create the "nouveau" directory in debugfs. One case where that will happen is when debugfs access is restricted by CONFIG_DEBUG_FS_ALLOW_NONE or by the boot parameter debugfs=off, which cause the debugfs APIs to return -EPERM.
So just ignore errors from debugfs. Note that nouveau_debugfs_root may be an error now, but that is a standard pattern for debugfs. From include/linux/debugfs.h:
"NOTE: it's expected that most callers should _ignore_ the errors returned by this function. Other debugfs functions handle the fact that the "dentry" passed to them could be an error and they don't crash in that case. Drivers should generally work fine even if debugfs fails to init anyway."
--- drivers/gpu/drm/nouveau/nouveau_debugfs.c | 6 +----- drivers/gpu/drm/nouveau/nouveau_debugfs.h | 5 ++--- drivers/gpu/drm/nouveau/nouveau_drm.c | 4 +--- 3 files changed, 4 insertions(+), 11 deletions(-)
drivers/gpu/drm/nouveau/nouveau_debugfs.c +1 -5
@@ -314,14 +314,10 @@ nouveau_debugfs_fini(struct nouveau_drm *drm) drm->debugfs =NULL ; } -int +void nouveau_module_debugfs_init (void ) { nouveau_debugfs_root =debugfs_create_dir ("nouveau" ,NULL ); -if (IS_ERR (nouveau_debugfs_root)) -return PTR_ERR (nouveau_debugfs_root); - -return 0 ; }void
drivers/gpu/drm/nouveau/nouveau_debugfs.h +2 -3
@@ -24,7 +24,7 @@ extern void nouveau_debugfs_fini(struct nouveau_drm *);extern struct dentry *nouveau_debugfs_root; -int nouveau_module_debugfs_init (void ); +void nouveau_module_debugfs_init (void );void nouveau_module_debugfs_fini (void );#else static inline void
@@ -42,10 +42,9 @@ nouveau_debugfs_fini(struct nouveau_drm *drm) { } -static inline int +static inline void nouveau_module_debugfs_init (void ) { -return 0 ; } static inline void
drivers/gpu/drm/nouveau/nouveau_drm.c +1 -3
@@ -1461,9 +1461,7 @@ nouveau_drm_init(void)if (!nouveau_modeset)return 0 ; - ret =nouveau_module_debugfs_init (); -if (ret) -return ret; +nouveau_module_debugfs_init ();#ifdef CONFIG_NOUVEAU_PLATFORM_DRIVER platform_driver_register (&nouveau_platform_driver);
base-commit: d0b3b7b22dfa1f4b515fd3a295b3fd958f9e81af
Signature · 1 line
2.39.5
Quoted 12 lines · Aaron Thompson
From: Aaron Thompson <[email protected]>
If
CONFIG_DEBUG_FSis enabled,nouveau_drm_init()returns an error if it fails to create the "nouveau" directory in debugfs. One case where that will happen is when debugfs access is restricted byCONFIG_DEBUG_FS_ALLOW_NONEor by the boot parameter debugfs=off, which cause the debugfs APIs to return-EPERM.So just ignore errors from debugfs. Note that
nouveau_debugfs_rootmay be an error now, but that is a standard pattern for debugfs. Frominclude/linux/debugfs.h:
Quoted 7 lines
"NOTE: it's expected that most callers should _ignore_ the errors returned by this function. Other debugfs functions handle the fact that the "dentry" passed to them could be an error and they don't crash in that case. Drivers should generally work fine even if debugfs fails to init anyway."
Fixes 97118a1816d2 ("drm/nouveau: create module debugfs root")
Oof, sorry about that. I should have noticed this behavior when I reviewed this patch.
Quoted 18 lines · Aaron Thompson
From: Aaron Thompson <[email protected]>
If
CONFIG_DEBUG_FSis enabled,nouveau_drm_init()returns an error if it fails to create the "nouveau" directory in debugfs. One case where that will happen is when debugfs access is restricted byCONFIG_DEBUG_FS_ALLOW_NONEor by the boot parameter debugfs=off, which cause the debugfs APIs to return-EPERM.So just ignore errors from debugfs. Note that
nouveau_debugfs_rootmay be an error now, but that is a standard pattern for debugfs. Frominclude/linux/debugfs.h:"NOTE: it's expected that most callers should _ignore_ the errors returned by this function. Other debugfs functions handle the fact that the "dentry" passed to them could be an error and they don't crash in that case. Drivers should generally work fine even if debugfs fails to init anyway."
Quoted 3 lines
Fixes 97118a1816d2 ("drm/nouveau: create module debugfs root")Signed-off-by Aaron Thompson <[email protected]>
Applied to drm-misc-fixes, thanks!