Re: [v4, 1/3] kernel/modules: Add REL24 relocation support of livepatch symbols
From: Michael Ellerman <hidden>
Date: 2017-12-12 11:39:38
Also in:
lkml
On Tue, 2017-11-14 at 09:29:08 UTC, Kamalesh Babulal wrote:
Livepatch re-uses module loader function apply_relocate_add() to write relocations, instead of managing them by arch-dependent klp_write_module_reloc() function. apply_relocate_add() doesn't understand livepatch symbols (marked with SHN_LIVEPATCH symbol section index) and assumes them to be local symbols by default for R_PPC64_REL24 relocation type. It fails with an error, when trying to calculate offset with local_entry_offset(): module_64: kpatch_meminfo: REL24 -1152921504897399800 out of range! Whereas livepatch symbols are essentially SHN_UNDEF, should be called via stub used for global calls. This issue can be fixed by teaching apply_relocate_add() to handle both SHN_UNDEF/SHN_LIVEPATCH symbols via the same stub. This patch extends SHN_UNDEF code to handle livepatch symbols too. Signed-off-by: Kamalesh Babulal <redacted> CC: Balbir Singh <bsingharora@gmail.com> Cc: Naveen N. Rao <redacted> Cc: Josh Poimboeuf <redacted> Cc: Jessica Yu <jeyu@kernel.org> Cc: Ananth N Mavinakayanahalli <redacted> Cc: Aravinda Prasad <redacted> Cc: Torsten Duwe <redacted>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/a443bf6e8a7674b86221f4922cae82 cheers