2020-11-24 18:27:29

by Quentin Perret

[permalink] [raw]
Subject: [PATCH] modpost: Make static exports fatal

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 <[email protected]>
---
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


2020-11-24 23:56:15

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] modpost: Make static exports fatal

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 <[email protected]>
> ---
> 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 <[email protected]>

2020-11-25 10:37:28

by Matthias Maennich

[permalink] [raw]
Subject: Re: [PATCH] modpost: Make static exports fatal

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 <[email protected]>

Reviewed-by: Matthias Maennich <[email protected]>

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
>

2020-12-01 14:06:26

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] modpost: Make static exports fatal

On Wed, Nov 25, 2020 at 3:24 AM Quentin Perret <[email protected]> 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 <[email protected]>
> ---
> 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/[email protected]/




--
Best Regards
Masahiro Yamada

2020-12-01 14:16:47

by Quentin Perret

[permalink] [raw]
Subject: Re: [PATCH] modpost: Make static exports fatal

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/[email protected]/

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

Thanks,
Quentin