On Wed, Aug 19, 2015 at 08:33:49AM +0200, Markus Pargmann wrote: > Hi, > > On Tue, Aug 18, 2015 at 10:46:21PM +0300, Dan Carpenter wrote: > > Hello Markus Pargmann, > > > > The patch 30d53d9c11b6: "nbd: Add debugfs entries" from Aug 17, 2015, > > leads to the following static checker warning: > > > > drivers/block/nbd.c:883 nbd_dev_dbg_init() > > warn: passing zero to 'PTR_ERR' > > > > drivers/block/nbd.c > > 875 static int nbd_dev_dbg_init(struct nbd_device *nbd) > > 876 { > > 877 struct dentry *dir; > > 878 struct dentry *f; > > 879 > > 880 dir = debugfs_create_dir(nbd_name(nbd), nbd_dbg_dir); > > 881 if (IS_ERR_OR_NULL(dir)) { > > 882 dev_err(nbd_to_dev(nbd), "Failed to create debugfs dir for '%s' (%ld)\n", > > 883 nbd_name(nbd), PTR_ERR(dir)); > > 884 return PTR_ERR(dir); > > > > The static checker warning is that if "dir" is NULL then we return > > success. I just tried to produce the same warnings with smatch, sparse and coccicheck but none of them gave me this warning. What are you using? Best regards, Markus > > > > Debugfs is designed so that we don't need to check for errors. If > > debugfs_create_dir() returns an error pointer that means it isn't > > configured in. The other debugfs functions will be stubbed out so > > passing an error pointer to them is harmless. With this code we print a > > lot of warning messages for people who don't enable debugfs in their > > .config. If debugfs is configured but debugfs_create_dir() fails, it > > returns NULL. The other debugfs functions are designed to not care, if > > the dir is NULL then they just put the files in the base directory > > instead. > > > > My suggestion is that you use debugfs as designed (no error handling) > > but the other option would be to fix these error messages and return > > values so even though it doesn't work as designed, it at least works. > > Thanks for spotting this, seems I forgot to run the static checker :-/. > > It works at the moment. If debugfs is disabled empty functions are used. > > I will probably fix it by checking the dir create for NULL. It wouldn't > be nice to have the files everywhere in debugfs in case of an error. But > I can remove the rest of the error handling here which then should > remove these warnings. > > Thanks, > > Markus > > > > > 885 } > > 886 nbd->dbg_dir = dir; > > > > drivers/block/nbd.c:884 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:891 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:892 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:898 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:899 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:905 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:906 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:912 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:913 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:919 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > drivers/block/nbd.c:920 nbd_dev_dbg_init() warn: passing zero to 'PTR_ERR' > > > > regards, > > dan carpenter > > > > -- > Pengutronix e.K. | | > Industrial Linux Solutions | http://www.pengutronix.de/ | > Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | > ------------------------------------------------------------------------------ > _______________________________________________ > Nbd-general mailing list > Nbd-general@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/nbd-general -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Attachment:
signature.asc
Description: Digital signature