2014-12-30 19:42:30

by Serguey Parkhomovsky

[permalink] [raw]
Subject: [PATCH] staging: lustre: linux-prim.c: fix sparse warnings about static declaration

Fixes the following sparse warnings:

drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c:198:1: warning: symbol 'libcfs_arch_init' was not declared. Should it be static?
drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c:204:1: warning: symbol 'libcfs_arch_cleanup' was not declared. Should it be static?

Signed-off-by: Serguey Parkhomovsky <[email protected]>
---
drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c
index 19f405e..4fee73f 100644
--- a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c
+++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c
@@ -194,14 +194,12 @@ cfs_clear_sigpending(void)
spin_unlock_irqrestore(&current->sighand->siglock, flags);
}

-int
-libcfs_arch_init(void)
+static int libcfs_arch_init(void)
{
return 0;
}

-void
-libcfs_arch_cleanup(void)
+static void libcfs_arch_cleanup(void)
{
return;
}
--
1.9.3


2014-12-30 22:35:23

by Jeremiah Mahler

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: linux-prim.c: fix sparse warnings about static declaration

Serguey,

On Mon, Dec 29, 2014 at 03:10:32AM -0800, Serguey Parkhomovsky wrote:
> Fixes the following sparse warnings:
>
> drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c:198:1: warning: symbol 'libcfs_arch_init' was not declared. Should it be static?
> drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c:204:1: warning: symbol 'libcfs_arch_cleanup' was not declared. Should it be static?
>
> Signed-off-by: Serguey Parkhomovsky <[email protected]>
> ---
> drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c
> index 19f405e..4fee73f 100644
> --- a/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c
> +++ b/drivers/staging/lustre/lustre/libcfs/linux/linux-prim.c
> @@ -194,14 +194,12 @@ cfs_clear_sigpending(void)
> spin_unlock_irqrestore(&current->sighand->siglock, flags);
> }
>
> -int
> -libcfs_arch_init(void)
> +static int libcfs_arch_init(void)
> {
> return 0;
> }
>
> -void
> -libcfs_arch_cleanup(void)
> +static void libcfs_arch_cleanup(void)
> {
> return;
> }

If you look at the source code just below these functions you will find:

EXPORT_SYMBOL(libcfs_arch_init);
EXPORT_SYMBOL(libcfs_arch_cleanup);

So making these static is incorrect because they are being used outside
of this file.

> --
> 1.9.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
- Jeremiah Mahler

2014-12-31 03:04:38

by Serguey Parkhomovsky

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: linux-prim.c: fix sparse warnings about static declaration

On Tue, Dec 30, 2014 at 02:35:18PM -0800, Jeremiah Mahler wrote:
>
> If you look at the source code just below these functions you will find:
>
> EXPORT_SYMBOL(libcfs_arch_init);
> EXPORT_SYMBOL(libcfs_arch_cleanup);
>
> So making these static is incorrect because they are being used outside
> of this file.
>

Thanks for the review, and sorry about the noise; I'll be more careful next time.

Serguey

2014-12-31 05:21:07

by Sudip Mukherjee

[permalink] [raw]
Subject: Re: [PATCH] staging: lustre: linux-prim.c: fix sparse warnings about static declaration

On Tue, Dec 30, 2014 at 07:04:35PM -0800, Serguey Parkhomovsky wrote:
> On Tue, Dec 30, 2014 at 02:35:18PM -0800, Jeremiah Mahler wrote:
> >
> > If you look at the source code just below these functions you will find:
> >
> > EXPORT_SYMBOL(libcfs_arch_init);
> > EXPORT_SYMBOL(libcfs_arch_cleanup);
> >
> > So making these static is incorrect because they are being used outside
> > of this file.
> >
>
> Thanks for the review, and sorry about the noise; I'll be more careful next time.

these tools are there to help you find the problems in the code.but after that we need to use our own judgement to decide.
in this case the solution is to declare them in libcfs.h

and please atleast buildtest your patch before sending. If you would have compiled this patch then you could have seen 2 new warnings:
"WARNING: "libcfs_arch_init" [drivers/staging/lustre/lustre/libcfs/libcfs.ko] undefined!"
"WARNING: "libcfs_arch_cleanup" [drivers/staging/lustre/lustre/libcfs/libcfs.ko] undefined!"

thanks
sudip

>
> Serguey
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/