mei: no need to check return value of debugfs_create functions
Subsystems (4)
Greg Kroah-Hartman
maintainerPATCH 1/1 mei: no need to check return value of debugfs_create functions
When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this.
--- drivers/misc/genwqe/card_base.c | 5 - drivers/misc/genwqe/card_base.h | 2 +- drivers/misc/genwqe/card_debugfs.c | 165 +++++---------------------- drivers/misc/genwqe/card_dev.c | 6 +- drivers/misc/mei/debugfs.c | 47 ++------ drivers/misc/mei/main.c | 8 +- drivers/misc/mei/mei_dev.h | 7 +- drivers/misc/mic/card/mic_debugfs.c | 18 +-- drivers/misc/mic/cosm/cosm_debugfs.c | 4 - drivers/misc/mic/host/mic_debugfs.c | 4 - drivers/misc/mic/scif/scif_debugfs.c | 5 - drivers/misc/mic/vop/vop_debugfs.c | 4 - drivers/misc/ti-st/st_kim.c | 4 - drivers/misc/vmw_balloon.c | 19 +-- 14 files changed, 51 insertions(+), 247 deletions(-)
drivers/misc/genwqe/card_base.c +0 -5
@@ -1377,10 +1377,6 @@ static int __init genwqe_init_module(void) class_genwqe->devnode = genwqe_devnode; debugfs_genwqe =debugfs_create_dir (GENWQE_DEVNAME ,NULL ); -if (!debugfs_genwqe) { - rc = -ENOMEM ; - goto err_out; - } rc =pci_register_driver (&genwqe_driver);if (rc !=0 ) {
@@ -1392,7 +1388,6 @@ static int __init genwqe_init_module(void) err_out0:debugfs_remove (debugfs_genwqe); - err_out:class_destroy (class_genwqe);return rc; }
drivers/misc/genwqe/card_base.h +1 -1
@@ -445,7 +445,7 @@ int genwqe_device_create(struct genwqe_dev *cd);int genwqe_device_remove (struct genwqe_dev *cd);/* debugfs */ -int genwqe_init_debugfs (struct genwqe_dev *cd); +void genwqe_init_debugfs (struct genwqe_dev *cd);void genqwe_exit_debugfs (struct genwqe_dev *cd);int genwqe_read_softreset (struct genwqe_dev *cd);
drivers/misc/genwqe/card_debugfs.c +30 -135
194 lines not on this page · raw message
drivers/misc/genwqe/card_dev.c +1 -5
@@ -1307,14 +1307,10 @@ int genwqe_device_create(struct genwqe_dev *cd) goto err_cdev; } - rc =genwqe_init_debugfs (cd); -if (rc !=0 ) - goto err_debugfs; +genwqe_init_debugfs (cd);return 0 ; - err_debugfs: -device_destroy (cd->class_genwqe, cd->devnum_genwqe); err_cdev:cdev_del (&cd->cdev_genwqe); err_add:
drivers/misc/mei/debugfs.c +11 -36
58 lines not on this page · raw message
drivers/misc/mei/main.c +1 -7
@@ -984,16 +984,10 @@ int mei_register(struct mei_device *dev, struct device *parent) goto err_dev_create; } - ret =mei_dbgfs_register (dev,dev_name (clsdev)); -if (ret) { -dev_err (clsdev,"cannot register debugfs ret = %d\n" , ret); - goto err_dev_dbgfs; - } +mei_dbgfs_register (dev,dev_name (clsdev));return 0 ; -err_dev_dbgfs: -device_destroy (mei_class, devno); err_dev_create:cdev_del (&dev->cdev); err_dev_add:
drivers/misc/mei/mei_dev.h +2 -5
@@ -718,13 +718,10 @@ bool mei_hbuf_acquire(struct mei_device *dev);bool mei_write_is_idle (struct mei_device *dev);#if IS_ENABLED (CONFIG_DEBUG_FS ) -int mei_dbgfs_register (struct mei_device *dev,const char *name); +void mei_dbgfs_register (struct mei_device *dev,const char *name);void mei_dbgfs_deregister (struct mei_device *dev);#else -static inline int mei_dbgfs_register (struct mei_device *dev,const char *name) -{ -return 0 ; -} +static inline void mei_dbgfs_register (struct mei_device *dev,const char *name) {}static inline void mei_dbgfs_deregister (struct mei_device *dev) {}#endif /* CONFIG_DEBUG_FS */
drivers/misc/mic/card/mic_debugfs.c +2 -16
@@ -63,25 +63,13 @@ DEFINE_SHOW_ATTRIBUTE(mic_intr);*/ void __init mic_create_card_debug_dir (struct mic_driver *mdrv) { -struct dentry *d; -if (!mic_dbg)return ; mdrv->dbg_dir =debugfs_create_dir (mdrv->name, mic_dbg); -if (!mdrv->dbg_dir) { -dev_err (mdrv->dev,"Cant create dbg_dir %s\n" , mdrv->name); -return ; - } - - d =debugfs_create_file ("intr_test" ,0444 , mdrv->dbg_dir, - mdrv, &mic_intr_fops); -if (!d) { -dev_err (mdrv->dev, -"Cant create dbg intr_test %s\n" , mdrv->name); -return ; - } +debugfs_create_file ("intr_test" ,0444 , mdrv->dbg_dir, mdrv, + &mic_intr_fops); }/**
@@ -101,8 +89,6 @@ void mic_delete_card_debug_dir(struct mic_driver *mdrv)void __init mic_init_card_debugfs (void ) { mic_dbg =debugfs_create_dir (KBUILD_MODNAME ,NULL ); -if (!mic_dbg) -pr_err ("can't create debugfs dir\n" ); }/**
drivers/misc/mic/cosm/cosm_debugfs.c +0 -4
@@ -105,8 +105,6 @@ void cosm_create_debug_dir(struct cosm_device *cdev)scnprintf (name,sizeof (name),"mic%d" , cdev->index); cdev->dbg_dir =debugfs_create_dir (name, cosm_dbg); -if (!cdev->dbg_dir) -return ;debugfs_create_file ("log_buf" ,0444 , cdev->dbg_dir, cdev, &log_buf_fops);
@@ -125,8 +123,6 @@ void cosm_delete_debug_dir(struct cosm_device *cdev)void cosm_init_debugfs (void ) { cosm_dbg =debugfs_create_dir (KBUILD_MODNAME ,NULL ); -if (!cosm_dbg) -pr_err ("can't create debugfs dir\n" ); }void cosm_exit_debugfs (void )
drivers/misc/mic/host/mic_debugfs.c +0 -4
@@ -125,8 +125,6 @@ void mic_create_debug_dir(struct mic_device *mdev)scnprintf (name,sizeof (name),"mic%d" , mdev->id); mdev->dbg_dir =debugfs_create_dir (name, mic_dbg); -if (!mdev->dbg_dir) -return ;debugfs_create_file ("smpt" ,0444 , mdev->dbg_dir, mdev, &mic_smpt_fops);
@@ -155,8 +153,6 @@ void mic_delete_debug_dir(struct mic_device *mdev)void __init mic_init_debugfs (void ) { mic_dbg =debugfs_create_dir (KBUILD_MODNAME ,NULL ); -if (!mic_dbg) -pr_err ("can't create debugfs dir\n" ); }/**
drivers/misc/mic/scif/scif_debugfs.c +0 -5
@@ -103,11 +103,6 @@ DEFINE_SHOW_ATTRIBUTE(scif_rma);void __init scif_init_debugfs (void ) { scif_dbg =debugfs_create_dir (KBUILD_MODNAME ,NULL ); -if (!scif_dbg) { -dev_err (scif_info.mdev.this_device, -"can't create debugfs dir scif\n" ); -return ; - }debugfs_create_file ("scif_dev" ,0444 , scif_dbg,NULL , &scif_dev_fops);debugfs_create_file ("scif_rma" ,0444 , scif_dbg,NULL , &scif_rma_fops);
drivers/misc/mic/vop/vop_debugfs.c +0 -4
@@ -186,10 +186,6 @@ void vop_init_debugfs(struct vop_info *vi)snprintf (name,sizeof (name),"%s%d" ,KBUILD_MODNAME , vi->vpdev->dnode); vi->dbg =debugfs_create_dir (name,NULL ); -if (!vi->dbg) { -pr_err ("can't create debugfs dir vop\n" ); -return ; - }debugfs_create_file ("dp" ,0444 , vi->dbg, vi, &vop_dp_fops);debugfs_create_file ("vdev_info" ,0444 , vi->dbg, vi, &vop_vdev_info_fops); }
drivers/misc/ti-st/st_kim.c +0 -4
@@ -761,10 +761,6 @@ static int kim_probe(struct platform_device *pdev)pr_info ("sysfs entries created\n" ); kim_debugfs_dir =debugfs_create_dir ("ti-st" ,NULL ); -if (!kim_debugfs_dir) { -pr_err (" debugfs entries creation failed " ); -return 0 ; - }debugfs_create_file ("version" ,S_IRUGO , kim_debugfs_dir, kim_gdata, &version_fops);
drivers/misc/vmw_balloon.c +3 -16
@@ -1516,19 +1516,10 @@ static int vmballoon_debug_show(struct seq_file *f, void *offset)DEFINE_SHOW_ATTRIBUTE (vmballoon_debug); -static int __init vmballoon_debugfs_init (struct vmballoon *b) +static void __init vmballoon_debugfs_init (struct vmballoon *b) { -int error; - b->dbg_entry =debugfs_create_file ("vmmemctl" ,S_IRUGO ,NULL , b, &vmballoon_debug_fops); -if (IS_ERR (b->dbg_entry)) { - error =PTR_ERR (b->dbg_entry); -pr_err ("failed to create debugfs entry, error: %d\n" , error); -return error; - } - -return 0 ; } static void __exit vmballoon_debugfs_exit(struct vmballoon *b)
@@ -1541,9 +1532,8 @@ static void __exit vmballoon_debugfs_exit(struct vmballoon *b)#else -static inline int vmballoon_debugfs_init (struct vmballoon *b) +static inline void vmballoon_debugfs_init (struct vmballoon *b) { -return 0 ; }static inline void vmballoon_debugfs_exit (struct vmballoon *b)
@@ -1555,7 +1545,6 @@ static inline void vmballoon_debugfs_exit(struct vmballoon *b)static int __init vmballoon_init (void ) {enum vmballoon_page_size_type page_size; -int error;/* * Check if we are running on VMware's hypervisor and bail out
@@ -1571,9 +1560,7 @@ static int __init vmballoon_init(void)INIT_DELAYED_WORK (&balloon.dwork, vmballoon_work); - error =vmballoon_debugfs_init (&balloon); -if (error) -return error; +vmballoon_debugfs_init (&balloon);spin_lock_init (&balloon.comm_lock);init_rwsem (&balloon.conf_sem);
Signature · 1 line
2.22.0
Greg Kroah-Hartman
maintainerQuoted 8 lines · Greg Kroah-Hartman
When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this.
Cc Tomas Winkler <[email protected]>Cc Arnd Bergmann <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>
Quoted 16 lines
--- drivers/misc/genwqe/card_base.c | 5 - drivers/misc/genwqe/card_base.h | 2 +- drivers/misc/genwqe/card_debugfs.c | 165 +++++---------------------- drivers/misc/genwqe/card_dev.c | 6 +- drivers/misc/mei/debugfs.c | 47 ++------ drivers/misc/mei/main.c | 8 +- drivers/misc/mei/mei_dev.h | 7 +- drivers/misc/mic/card/mic_debugfs.c | 18 +-- drivers/misc/mic/cosm/cosm_debugfs.c | 4 - drivers/misc/mic/host/mic_debugfs.c | 4 - drivers/misc/mic/scif/scif_debugfs.c | 5 - drivers/misc/mic/vop/vop_debugfs.c | 4 - drivers/misc/ti-st/st_kim.c | 4 - drivers/misc/vmw_balloon.c | 19 +-- 14 files changed, 51 insertions(+), 247 deletions(-)
Ugh, nope, wrong patch, need to break this one up, sorry...
greg k-h
Greg Kroah-Hartman
maintainerPATCH v2 1/1 mei: no need to check return value of debugfs_create functions
In reply to Greg Kroah-HartmanWhen calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this.
---
v2: break the patch up properly
drivers/misc/mei/debugfs.c | 47 +++++++++----------------------------- drivers/misc/mei/main.c | 8 +------ drivers/misc/mei/mei_dev.h | 7 ++---- 3 files changed, 14 insertions(+), 48 deletions(-)
drivers/misc/mei/debugfs.c +11 -36
@@ -233,47 +233,22 @@ void mei_dbgfs_deregister(struct mei_device *dev)* * @dev: the mei device structure * @name: the mei device name -* -* Return: 0 on success, <0 on failure. */ -int mei_dbgfs_register (struct mei_device *dev,const char *name) +void mei_dbgfs_register (struct mei_device *dev,const char *name) { -struct dentry *dir, *f; +struct dentry *dir; dir =debugfs_create_dir (name,NULL ); -if (!dir) -return -ENOMEM ; - dev->dbgfs_dir = dir; - f =debugfs_create_file ("meclients" ,S_IRUSR , dir, - dev, &mei_dbgfs_fops_meclients); -if (!f) { -dev_err (dev->dev,"meclients: registration failed\n" ); - goto err; - } - f =debugfs_create_file ("active" ,S_IRUSR , dir, - dev, &mei_dbgfs_fops_active); -if (!f) { -dev_err (dev->dev,"active: registration failed\n" ); - goto err; - } - f =debugfs_create_file ("devstate" ,S_IRUSR , dir, - dev, &mei_dbgfs_fops_devstate); -if (!f) { -dev_err (dev->dev,"devstate: registration failed\n" ); - goto err; - } - f =debugfs_create_file ("allow_fixed_address" ,S_IRUSR |S_IWUSR , dir, - &dev->allow_fixed_address, - &mei_dbgfs_fops_allow_fa); -if (!f) { -dev_err (dev->dev,"allow_fixed_address: registration failed\n" ); - goto err; - } -return 0 ; -err: -mei_dbgfs_deregister (dev); -return -ENODEV ; +debugfs_create_file ("meclients" ,S_IRUSR , dir, dev, + &mei_dbgfs_fops_meclients); +debugfs_create_file ("active" ,S_IRUSR , dir, dev, + &mei_dbgfs_fops_active); +debugfs_create_file ("devstate" ,S_IRUSR , dir, dev, + &mei_dbgfs_fops_devstate); +debugfs_create_file ("allow_fixed_address" ,S_IRUSR |S_IWUSR , dir, + &dev->allow_fixed_address, + &mei_dbgfs_fops_allow_fa); }
drivers/misc/mei/main.c +1 -7
@@ -984,16 +984,10 @@ int mei_register(struct mei_device *dev, struct device *parent) goto err_dev_create; } - ret =mei_dbgfs_register (dev,dev_name (clsdev)); -if (ret) { -dev_err (clsdev,"cannot register debugfs ret = %d\n" , ret); - goto err_dev_dbgfs; - } +mei_dbgfs_register (dev,dev_name (clsdev));return 0 ; -err_dev_dbgfs: -device_destroy (mei_class, devno); err_dev_create:cdev_del (&dev->cdev); err_dev_add:
drivers/misc/mei/mei_dev.h +2 -5
@@ -718,13 +718,10 @@ bool mei_hbuf_acquire(struct mei_device *dev);bool mei_write_is_idle (struct mei_device *dev);#if IS_ENABLED (CONFIG_DEBUG_FS ) -int mei_dbgfs_register (struct mei_device *dev,const char *name); +void mei_dbgfs_register (struct mei_device *dev,const char *name);void mei_dbgfs_deregister (struct mei_device *dev);#else -static inline int mei_dbgfs_register (struct mei_device *dev,const char *name) -{ -return 0 ; -} +static inline void mei_dbgfs_register (struct mei_device *dev,const char *name) {}static inline void mei_dbgfs_deregister (struct mei_device *dev) {}#endif /* CONFIG_DEBUG_FS */
Signature · 1 line
2.22.0
Quoted 4 lines
When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this.
Maybe need to mention that API has changed in patch ' ff9fb72bc07705c00795ca48631f7fffe24d2c6b' in 5.0 and create_dir() doesn't return NULL but ERR_PTR() and proper checking is done inside the debugfs functions. Not sure how critical is that but, but this should go probably to stable 5.0+ as well.
Ack otherwise.
Quoted 122 lines
Cc Tomas Winkler <[email protected]>Cc Arnd Bergmann <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>---
v2: break the patch up properlydrivers/misc/mei/debugfs.c | 47 +++++++++----------------------------- drivers/misc/mei/main.c | 8 +------ drivers/misc/mei/mei_dev.h | 7 ++---- 3 files changed, 14 insertions(+), 48 deletions(-)drivers/misc/mei/debugfs.c index renamed from drivers/misc/mei/debugfs.c +0
-0
0970142bcace..df6bf8b81936100644drivers/misc/mei/debugfs.c +11
-36@@ -233,47 +233,22 @@ void mei_dbgfs_deregister(struct mei_device *dev)* * @dev: the mei device structure * @name: the mei device name -* -* Return: 0 on success, <0 on failure. */ -int mei_dbgfs_register (struct mei_device *dev,const char *name) +void mei_dbgfs_register (struct mei_device *dev,const char *name) { -struct dentry *dir, *f; +struct dentry *dir; dir =debugfs_create_dir (name,NULL ); -if (!dir) -return -ENOMEM ; - dev->dbgfs_dir = dir; - f =debugfs_create_file ("meclients" ,S_IRUSR , dir, - dev, &mei_dbgfs_fops_meclients); -if (!f) { -dev_err (dev->dev,"meclients: registration failed\n" ); - goto err; - } - f =debugfs_create_file ("active" ,S_IRUSR , dir, - dev, &mei_dbgfs_fops_active); -if (!f) { -dev_err (dev->dev,"active: registration failed\n" ); - goto err; - } - f =debugfs_create_file ("devstate" ,S_IRUSR , dir, - dev, &mei_dbgfs_fops_devstate); -if (!f) { -dev_err (dev->dev,"devstate: registration failed\n" ); - goto err; - } - f =debugfs_create_file ("allow_fixed_address" ,S_IRUSR |S_IWUSR , dir, - &dev->allow_fixed_address, - &mei_dbgfs_fops_allow_fa); -if (!f) { -dev_err (dev->dev,"allow_fixed_address: registration failed\n"); - goto err; - } -return 0 ; -err: -mei_dbgfs_deregister (dev); -return -ENODEV ; + debugfs_create_file("meclients" ,S_IRUSR , dir, dev, + &mei_dbgfs_fops_meclients); +debugfs_create_file ("active" ,S_IRUSR , dir, dev, + &mei_dbgfs_fops_active); +debugfs_create_file ("devstate" ,S_IRUSR , dir, dev, + &mei_dbgfs_fops_devstate); +debugfs_create_file ("allow_fixed_address" ,S_IRUSR |S_IWUSR , dir, + &dev->allow_fixed_address, + &mei_dbgfs_fops_allow_fa);}
drivers/misc/mei/main.c index renamed from drivers/misc/mei/main.c +0
-0
ad02097d7fee..f894d1f8a53e100644drivers/misc/mei/main.c +1
-7@@ -984,16 +984,10 @@ int mei_register(struct mei_device *dev, struct device *parent) goto err_dev_create; } - ret =mei_dbgfs_register (dev,dev_name (clsdev)); -if (ret) { -dev_err (clsdev,"cannot register debugfs ret = %d\n" , ret); - goto err_dev_dbgfs; - } +mei_dbgfs_register (dev,dev_name (clsdev));return 0 ; -err_dev_dbgfs: -device_destroy (mei_class, devno); err_dev_create:cdev_del (&dev->cdev);
err_dev_add:drivers/misc/mei/mei_dev.h index renamed from drivers/misc/mei/mei_dev.h +0
-0
fca832fcac57..f71a023aed3c100644drivers/misc/mei/mei_dev.h +3
-3@@ -718,13 +718,10 @@ bool mei_hbuf_acquire(struct mei_device *dev);bool mei_write_is_idle (struct mei_device *dev);#if IS_ENABLED (CONFIG_DEBUG_FS ) -int mei_dbgfs_register (struct mei_device *dev,const char *name); +void mei_dbgfs_register (struct mei_device *dev,const char *name); void mei_dbgfs_deregister(struct mei_device *dev); #else -static inline int mei_dbgfs_register(struct mei_device *dev, const char *name) -{ -return 0 ; -} +static inline void mei_dbgfs_register (struct mei_device *dev,const +char *name) {}static inline void mei_dbgfs_deregister (struct mei_device *dev) {}#endif /*
CONFIG_DEBUG_FS*/--
2.22.0
Greg Kroah-Hartman
maintainerQuoted 8 lines · Tomas
Quoted 4 lines
When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this.
Maybe need to mention that API has changed in patch '
ff9fb72bc07705c00795ca48631f7fffe24d2c6b' in 5.0 andcreate_dir()doesn't return NULL butERR_PTR()and proper checking is done inside the debugfs functions. Not sure how critical is that but, but this should go probably to stable 5.0+ as well.
It's not critical at all, the odds of an error ever returning, or NULL, from debugfs before is just as rare as it is today :)
Quoted 1 line
Ack otherwise.
great, thanks for reviewing it.
greg k-h