diff options
| author | Joonas Lahtinen | 2023-04-11 15:43:45 +0300 |
|---|---|---|
| committer | Joonas Lahtinen | 2023-04-11 15:43:45 +0300 |
| commit | ea68a3e9d14e9e0bf017d178fb4bd53b6deb1482 (patch) | |
| tree | 4ca0e37218ecc0844d330cb37b956d5219bb1d32 /include/linux/moduleloader.h | |
| parent | 16fc9c08f0ec7b1c95f1ea4a16097acdb3fc943d (diff) | |
| parent | 55bf14961db9da61220e6f04bc9919c94b1a6585 (diff) | |
Merge drm/drm-next into drm-intel-gt-next
Need to pull in commit from drm-next (earlier in drm-intel-next):
1eca0778f4b3 ("drm/i915: add struct i915_dsm to wrap dsm members together")
In order to merge following patch to drm-intel-gt-next:
https://patchwork.freedesktop.org/patch/530942/?series=114925&rev=6
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Diffstat (limited to 'include/linux/moduleloader.h')
| -rw-r--r-- | include/linux/moduleloader.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h index 7b4587a19189..03be088fb439 100644 --- a/include/linux/moduleloader.h +++ b/include/linux/moduleloader.h @@ -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, |
