linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH modules v2 0/2] Fix handling of exit unwinding sections (on ARM)
@ 2019-06-07 10:49 Matthias Schiffer
  2019-06-07 10:49 ` [PATCH modules v2 1/2] module: allow arch overrides for .exit section names Matthias Schiffer
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Matthias Schiffer @ 2019-06-07 10:49 UTC (permalink / raw)
  To: Russell King, Jessica Yu
  Cc: Matthias Schiffer, linux-ia64, linux-kernel, linux-arm-kernel

For some time (050d18d1c651 "ARM: 8650/1: module: handle negative
R_ARM_PREL31 addends correctly", v4.11+), building a kernel without
CONFIG_MODULE_UNLOAD would lead to module loads failing on ARM systems with
certain memory layouts, with messages like:

  imx_sdma: section 16 reloc 0 sym '': relocation 42 out of range
  (0x7f015260 -> 0xc0f5a5e8)

(0x7f015260 is in the module load area, 0xc0f5a5e8 a regular vmalloc
address; relocation 42 is R_ARM_PREL31)

This is caused by relocatiosn in the .ARM.extab.exit.text and
.ARM.exidx.exit.text sections referencing the .exit.text section. As the
module loader will omit loading .exit.text without CONFIG_MODULE_UNLOAD,
there will be relocations from loaded to unloaded sections; the resulting
huge offsets trigger the sanity checks added in 050d18d1c651.

IA64 might be affected by a similar issue - sections with names like
.IA_64.unwind.exit.text and .IA_64.unwind_info.exit.text appear in the ld
script - but I don't know much about that arch.

Also, I'm not sure if this is stable-worthy - just enabling
CONFIG_MODULE_UNLOAD should be a viable workaround on affected kernels.

v2: Use __weak function as suggested by Jessica


Matthias Schiffer (2):
  module: allow arch overrides for .exit section names
  ARM: module: recognize unwind exit sections

 arch/arm/kernel/module.c     | 7 +++++++
 include/linux/moduleloader.h | 5 +++++
 kernel/module.c              | 7 ++++++-
 3 files changed, 18 insertions(+), 1 deletion(-)

-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-06-24 12:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-07 10:49 [PATCH modules v2 0/2] Fix handling of exit unwinding sections (on ARM) Matthias Schiffer
2019-06-07 10:49 ` [PATCH modules v2 1/2] module: allow arch overrides for .exit section names Matthias Schiffer
2019-06-07 10:49 ` [PATCH modules v2 2/2] ARM: module: recognize unwind exit sections Matthias Schiffer
2019-06-21 12:35 ` [PATCH modules v2 0/2] Fix handling of exit unwinding sections (on ARM) Matthias Schiffer
2019-06-24 12:32   ` Jessica Yu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).