> From: David Miller [mailto:da...@davemloft.net] > > From: Prashant Bhole <bhole_prashant...@lab.ntt.co.jp> > Date: Fri, 8 Dec 2017 09:52:50 +0900 > > > Return value is now checked with IS_ERROR_OR_NULL because > > debugfs_create_dir doesn't return error value. It either returns NULL > > or a valid pointer. > > > > Signed-off-by: Prashant Bhole <bhole_prashant...@lab.ntt.co.jp> > > --- > > drivers/net/netdevsim/netdev.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/net/netdevsim/netdev.c > > b/drivers/net/netdevsim/netdev.c index eb8c679fca9f..88d8ee2c89da > > 100644 > > --- a/drivers/net/netdevsim/netdev.c > > +++ b/drivers/net/netdevsim/netdev.c > > @@ -469,7 +469,7 @@ static int __init nsim_module_init(void) > > int err; > > > > nsim_ddir = debugfs_create_dir(DRV_NAME, NULL); > > - if (IS_ERR(nsim_ddir)) > > + if (IS_ERR_OR_NULL(nsim_ddir)) > > return PTR_ERR(nsim_ddir); > > debugfs_create_dir() should really be fixed, either it uses error pointers > consistently and therefore always provides a suitable error code to return or it > always uses NULL. > > This in-between behavior makes using it as an interface painful because no clear > meaning is given to NULL. > > So please do the work necessary to make debugfs_create_dir()'s return > semantics clearer and more useful. > > Thank you.
Dave, Thanks for comments. I will try to fix error handling in netdevsim first. Jakub, Let's decide with an example. The typical directory structure for netdevsim interface is as below: /sys/kernel/debug/netdevsim/sim0/bpf_bound_progs/ Please let me know if you are ok with following: 1) If debugfs_create_dir() fails in module_init, let's keep it fatal error with corrected condition: + if (IS_ERR_OR_NULL(nsim_ddir)) + return -ENOMEM; 2) In case sim0 or bpf_bound_progs are fail to create, we need to add checks before creating any file in them. -Prashant