Re: [PATCH 5.4 57/60] modpost: fix section mismatch check for exported init/exit sections

From: Florian Fainelli
Date: Tue Jun 28 2022 - 16:33:04 EST


On 6/28/22 12:11, Nick Desaulniers wrote:
On Mon, Jun 27, 2022 at 10:03 AM Florian Fainelli <f.fainelli@xxxxxxxxx> wrote:

On 6/27/22 04:22, Greg Kroah-Hartman wrote:
From: Masahiro Yamada <masahiroy@xxxxxxxxxx>

commit 28438794aba47a27e922857d27b31b74e8559143 upstream.

Since commit f02e8a6596b7 ("module: Sort exported symbols"),
EXPORT_SYMBOL* is placed in the individual section ___ksymtab(_gpl)+<sym>
(3 leading underscores instead of 2).

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

Fix the .fromsec field.

Fixes: f02e8a6596b7 ("module: Sort exported symbols")
Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

This commit causes the following warning to show up on my kernel builds
used for testing 5.4 stable candidates:

WARNING: vmlinux.o(___ksymtab+drm_fb_helper_modinit+0x0): Section
mismatch in reference from the variable __ksymtab_drm_fb_helper_modinit
to the function .init.text:drm_fb_helper_modinit()
The symbol drm_fb_helper_modinit is exported and annotated __init
Fix this by removing the __init annotation of drm_fb_helper_modinit or
drop the export.

Thanks for the report. Looks like the patch is "working as intended."

It looks like drm_fb_helper_modinit was deleted outright in
commit bf22c9ec39da ("drm: remove drm_fb_helper_modinit")
in v5.12-rc1.

Florian, can you test if that cherry-picks cleanly and resolves the
issue for you?

It does and it does, thanks!


Maybe let's check with Christoph if it's ok to backport bf22c9ec39da
to stable 5.10 and 5.4?


The kernel configuration to reproduce this is located here (this is 5.10
but works in 5.4 as well):

https://gist.github.com/2c3e8edd5ceb089c8040db724073d941

Same applies to the 5.10, 5.15 and 5.18 stable queues FWIW.
--
Florian





--
Florian