modpost: Make static exports fatal
diff mbox series

Message ID 20201124182420.2202514-1-qperret@google.com
State New, archived
Headers show
Series
  • modpost: Make static exports fatal
Related show

Commit Message

Quentin Perret Nov. 24, 2020, 6:24 p.m. UTC
Using EXPORT_SYMBOL*() on static functions is fundamentally wrong.
Modpost currently reports that as a warning, but clearly this is not a
pattern we should allow, and all in-tree occurences should have been
fixed by now. So, promote the warn() message to fatal() to make sure
this never happens again.

Signed-off-by: Quentin Perret <qperret@google.com>
---
 scripts/mod/modpost.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Greg KH Nov. 24, 2020, 7:55 p.m. UTC | #1
On Tue, Nov 24, 2020 at 06:24:09PM +0000, Quentin Perret wrote:
> Using EXPORT_SYMBOL*() on static functions is fundamentally wrong.
> Modpost currently reports that as a warning, but clearly this is not a
> pattern we should allow, and all in-tree occurences should have been
> fixed by now. So, promote the warn() message to fatal() to make sure
> this never happens again.
> 
> Signed-off-by: Quentin Perret <qperret@google.com>
> ---
>  scripts/mod/modpost.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index f882ce0d9327..70b0e825a139 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -2663,9 +2663,9 @@ int main(int argc, char **argv)
>  
>  		for (s = symbolhash[n]; s; s = s->next) {
>  			if (s->is_static)
> -				warn("\"%s\" [%s] is a static %s\n",
> -				     s->name, s->module->name,
> -				     export_str(s->export));
> +				fatal("\"%s\" [%s] is a static %s\n",
> +				      s->name, s->module->name,
> +				      export_str(s->export));
>  		}
>  	}
>  

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Matthias Maennich Nov. 25, 2020, 10:35 a.m. UTC | #2
On Tue, Nov 24, 2020 at 06:24:09PM +0000, Quentin Perret wrote:
>Using EXPORT_SYMBOL*() on static functions is fundamentally wrong.
>Modpost currently reports that as a warning, but clearly this is not a
>pattern we should allow, and all in-tree occurences should have been
>fixed by now. So, promote the warn() message to fatal() to make sure
>this never happens again.
>
>Signed-off-by: Quentin Perret <qperret@google.com>

Reviewed-by: Matthias Maennich <maennich@google.com>

Cheers,
Matthias

>---
> scripts/mod/modpost.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
>diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
>index f882ce0d9327..70b0e825a139 100644
>--- a/scripts/mod/modpost.c
>+++ b/scripts/mod/modpost.c
>@@ -2663,9 +2663,9 @@ int main(int argc, char **argv)
>
> 		for (s = symbolhash[n]; s; s = s->next) {
> 			if (s->is_static)
>-				warn("\"%s\" [%s] is a static %s\n",
>-				     s->name, s->module->name,
>-				     export_str(s->export));
>+				fatal("\"%s\" [%s] is a static %s\n",
>+				      s->name, s->module->name,
>+				      export_str(s->export));
> 		}
> 	}
>
>-- 
>2.29.2.454.gaff20da3a2-goog
>
Masahiro Yamada Dec. 1, 2020, 2 p.m. UTC | #3
On Wed, Nov 25, 2020 at 3:24 AM Quentin Perret <qperret@google.com> wrote:
>
> Using EXPORT_SYMBOL*() on static functions is fundamentally wrong.
> Modpost currently reports that as a warning, but clearly this is not a
> pattern we should allow, and all in-tree occurences should have been
> fixed by now. So, promote the warn() message to fatal() to make sure
> this never happens again.
>
> Signed-off-by: Quentin Perret <qperret@google.com>
> ---
>  scripts/mod/modpost.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index f882ce0d9327..70b0e825a139 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -2663,9 +2663,9 @@ int main(int argc, char **argv)
>
>                 for (s = symbolhash[n]; s; s = s->next) {
>                         if (s->is_static)
> -                               warn("\"%s\" [%s] is a static %s\n",
> -                                    s->name, s->module->name,
> -                                    export_str(s->export));
> +                               fatal("\"%s\" [%s] is a static %s\n",
> +                                     s->name, s->module->name,
> +                                     export_str(s->export));
>                 }
>         }
>
> --
> 2.29.2.454.gaff20da3a2-goog
>


I am not a big fan of (ab)using fatal() for this case.

Please consider using error() once
the following is queued up.

https://patchwork.kernel.org/project/linux-kbuild/patch/20201201103418.675850-2-masahiroy@kernel.org/
Quentin Perret Dec. 1, 2020, 2:13 p.m. UTC | #4
On Tuesday 01 Dec 2020 at 23:00:37 (+0900), Masahiro Yamada wrote:
> I am not a big fan of (ab)using fatal() for this case.
> 
> Please consider using error() once
> the following is queued up.
> 
> https://patchwork.kernel.org/project/linux-kbuild/patch/20201201103418.675850-2-masahiroy@kernel.org/

Yes, much nicer, thanks for that series.
I'll post a v2 shortly.

Thanks,
Quentin

Patch
diff mbox series

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index f882ce0d9327..70b0e825a139 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -2663,9 +2663,9 @@  int main(int argc, char **argv)
 
 		for (s = symbolhash[n]; s; s = s->next) {
 			if (s->is_static)
-				warn("\"%s\" [%s] is a static %s\n",
-				     s->name, s->module->name,
-				     export_str(s->export));
+				fatal("\"%s\" [%s] is a static %s\n",
+				      s->name, s->module->name,
+				      export_str(s->export));
 		}
 	}