[PATCH] staging: wilc1000: fix undefined reference to `__this_module' compilation error
Greg KH
gregkh at linuxfoundation.org
Thu Aug 9 12:13:24 UTC 2018
On Thu, Aug 09, 2018 at 01:43:58PM +0300, Dan Carpenter wrote:
> On Thu, Aug 09, 2018 at 01:08:38PM +0300, Dan Carpenter wrote:
> > On Thu, Aug 09, 2018 at 12:13:06PM +0530, Ajay Singh wrote:
> > > wilc_dir = debugfs_create_dir("wilc_wifi", NULL);
> > > - for (i = 0; i < ARRAY_SIZE(debugfs_info); i++) {
> > > - info = &debugfs_info[i];
> > > - debugfs_create_file(info->name,
> > > - info->perm,
> > > - wilc_dir,
> > > - &info->data,
> > > - &info->fops);
> > > + if (IS_ERR_OR_NULL(wilc_dir)) {
> > > + pr_err("Error creating debugfs\n");
> > > + return -EFAULT;
> > > }
> >
> > Just check for NULL. If someone builds without debugfs enabled in their
> > .config, that's their choice. No need to print a warning.
> >
>
> Reading it again, I'm not sure my email was clear... Just do this:
>
> wilc_dir = debugfs_create_dir("wilc_wifi", NULL);
> if (!wilc_dir)) {
> pr_err("Error creating debugfs/wilc_wifi/\n");
> return;
> }
>
> If debugfs_create_dir() returns an error pointer it means all the other
> debugfs functions are also just no-op stub functions. Passing an error
> pointer to them is harmless.
No, please never care about the return value of a debugfs call, it
should never cause your code flow to do anything different. THis should
just be:
wilc_dir = debugfs_create_dir("wilc_wifi", NULL);
and then keep on going. You can always pass the return value of a
debugfs call to another one, no need to check anything.
I've done a large sweep of the kernel tree for most of this pattern for
4.18, and will keep doing it over time, as it keeps creeping back.
greg k-h
More information about the devel
mailing list