[PATCH] modpost: fix section mismatch check for exported init/exit sections

Masahiro Yamada posted 1 patch 3 years, 11 months ago
scripts/mod/modpost.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] modpost: fix section mismatch check for exported init/exit sections
Posted by Masahiro Yamada 3 years, 11 months ago
Since commit f02e8a6596b7 ("module: Sort exported symbols"),
EXPORT_SYMBOL is placed in the individual section ___ksymtab(_gpl)+<sym>
(3 leading underscores, not 2).

Since then, modpost cannot detect the bad combination of EXPORT_SYMBOL
and __init/__exit.

Fix the .fromsec to ___ksymtab*.

Fixes: f02e8a6596b7 ("module: Sort exported symbols")
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 scripts/mod/modpost.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 29d5a841e215..620dc8c4c814 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -980,7 +980,7 @@ static const struct sectioncheck sectioncheck[] = {
 },
 /* Do not export init/exit functions or data */
 {
-	.fromsec = { "__ksymtab*", NULL },
+	.fromsec = { "___ksymtab*", NULL },
 	.bad_tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL },
 	.mismatch = EXPORT_TO_INIT_EXIT,
 	.symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },
-- 
2.32.0
Re: [PATCH] modpost: fix section mismatch check for exported init/exit sections
Posted by Nick Desaulniers 3 years, 10 months ago
On Mon, May 30, 2022 at 5:55 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> Since commit f02e8a6596b7 ("module: Sort exported symbols"),
> EXPORT_SYMBOL is placed in the individual section ___ksymtab(_gpl)+<sym>
> (3 leading underscores, not 2).
>
> Since then, modpost cannot detect the bad combination of EXPORT_SYMBOL
> and __init/__exit.
>
> Fix the .fromsec to ___ksymtab*.
>
> Fixes: f02e8a6596b7 ("module: Sort exported symbols")
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

Thanks for the patch!
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

> ---
>
>  scripts/mod/modpost.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
> index 29d5a841e215..620dc8c4c814 100644
> --- a/scripts/mod/modpost.c
> +++ b/scripts/mod/modpost.c
> @@ -980,7 +980,7 @@ static const struct sectioncheck sectioncheck[] = {
>  },
>  /* Do not export init/exit functions or data */
>  {
> -       .fromsec = { "__ksymtab*", NULL },
> +       .fromsec = { "___ksymtab*", NULL },
>         .bad_tosec = { INIT_SECTIONS, EXIT_SECTIONS, NULL },
>         .mismatch = EXPORT_TO_INIT_EXIT,
>         .symbol_white_list = { DEFAULT_SYMBOL_WHITE_LIST, NULL },
> --
> 2.32.0
>


-- 
Thanks,
~Nick Desaulniers