[PATCH 0/3] ARM/arm64: Fix loading of modules with an exit section

James Morse james.morse at arm.com
Tue Aug 1 07:54:06 PDT 2023


Adam reports that Yocto can't load modules on arm64. This turns out to be due
to the arch code disagreeing with the core code when it comes to the layout
of the modules exit text, resulting in a shortage of PLTs and a bunch of
warnings.

arm and arm64 are unusual here as they are counting the PLTs based on the
section name. This series exposes the helper that core code uses to decide
the layout.

I've been unable to reproduce the behaviour on 32bit - but it looks like
its possible to reach the BUG_ON() in get_module_plt(). To test this, disable
CONFIG_MODULE_UNLOAD, and try to load modules with relocations in their exit
text.

This series is based on v6.5-rc4, and can be retrieved from:
https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git arm64/modules/exit_sections/v1

Thanks,

James Morse (3):
  module: Expose module_init_layout_section()
  arm64: module: Use module_init_layout_section() to spot init sections
  ARM: module: Use module_init_layout_section() to spot init sections

 arch/arm/kernel/module-plts.c   | 2 +-
 arch/arm64/kernel/module-plts.c | 2 +-
 include/linux/moduleloader.h    | 5 +++++
 kernel/module/main.c            | 2 +-
 4 files changed, 8 insertions(+), 3 deletions(-)

-- 
2.39.2




More information about the linux-arm-kernel mailing list