diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2025-06-10 18:33:28 +0200 |
---|---|---|
committer | Daniel Gomez <da.gomez@samsung.com> | 2025-07-08 20:52:30 +0200 |
commit | 570db4b39f535a8bb722adb8be0280d09e34ca99 (patch) | |
tree | 67412e8605e19f9f70267f7e71d093f06638ebeb /scripts/patch-kernel | |
parent | eb0994a954978f0edd3efb38d0cbe6744df8b83d (diff) |
module: Make sure relocations are applied to the per-CPU section
The per-CPU data section is handled differently than the other sections.
The memory allocations requires a special __percpu pointer and then the
section is copied into the view of each CPU. Therefore the SHF_ALLOC
flag is removed to ensure move_module() skips it.
Later, relocations are applied and apply_relocations() skips sections
without SHF_ALLOC because they have not been copied. This also skips the
per-CPU data section.
The missing relocations result in a NULL pointer on x86-64 and very
small values on x86-32. This results in a crash because it is not
skipped like NULL pointer would and can't be dereferenced.
Such an assignment happens during static per-CPU lock initialisation
with lockdep enabled.
Allow relocation processing for the per-CPU section even if SHF_ALLOC is
missing.
Reported-by: kernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202506041623.e45e4f7d-lkp@intel.com
Fixes: 1a6100caae425 ("Don't relocate non-allocated regions in modules.") #v2.6.1-rc3
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
Link: https://lore.kernel.org/r/20250610163328.URcsSUC1@linutronix.de
Signed-off-by: Daniel Gomez <da.gomez@samsung.com>
Message-ID: <20250610163328.URcsSUC1@linutronix.de>
Diffstat (limited to 'scripts/patch-kernel')
0 files changed, 0 insertions, 0 deletions