mirror of
https://github.com/lkl/linux.git
synced 2025-12-19 16:13:19 +09:00
Merge tag 'livepatching-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
Pull livepatching updates from Petr Mladek: - Allow reloading a livepatched module by clearing livepatch-specific relocations in the livepatch module. Otherwise, the repeated load would fail on consistency checks. * tag 'livepatching-for-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching: livepatch,x86: Clear relocation targets on a module removal x86/module: remove unused code in __apply_relocate_add
This commit is contained in:
@@ -75,6 +75,23 @@ int apply_relocate_add(Elf_Shdr *sechdrs,
|
||||
unsigned int symindex,
|
||||
unsigned int relsec,
|
||||
struct module *mod);
|
||||
#ifdef CONFIG_LIVEPATCH
|
||||
/*
|
||||
* Some architectures (namely x86_64 and ppc64) perform sanity checks when
|
||||
* applying relocations. If a patched module gets unloaded and then later
|
||||
* reloaded (and re-patched), klp re-applies relocations to the replacement
|
||||
* function(s). Any leftover relocations from the previous loading of the
|
||||
* patched module might trigger the sanity checks.
|
||||
*
|
||||
* To prevent that, when unloading a patched module, clear out any relocations
|
||||
* that might trigger arch-specific sanity checks on a future module reload.
|
||||
*/
|
||||
void clear_relocate_add(Elf_Shdr *sechdrs,
|
||||
const char *strtab,
|
||||
unsigned int symindex,
|
||||
unsigned int relsec,
|
||||
struct module *me);
|
||||
#endif
|
||||
#else
|
||||
static inline int apply_relocate_add(Elf_Shdr *sechdrs,
|
||||
const char *strtab,
|
||||
|
||||
Reference in New Issue
Block a user