diff --git a/arch/arm64/kernel/module.c b/arch/arm64/kernel/module.c
index dd23655fda3a..490e56070a7e 100644
--- a/arch/arm64/kernel/module.c
+++ b/arch/arm64/kernel/module.c
@@ -461,5 +461,15 @@ int module_finalize(const Elf_Ehdr *hdr,
#endif
}
+#ifdef CONFIG_LIVEPATCH
+ /*
+ * For livepatching, switch to the saved section header info for .plt
+ * stored in mod->klp_info. This is needed so that livepatch is able to
+ * call apply_relocate_add() after patch module load.
+ */
+ if (is_livepatch_module(me))
+ me->arch.core.plt = me->klp_info->sechdrs + me->arch.core.plt_shndx;
+#endif
I missed it before, but the hunk should be under "#ifdef
CONFIG_ARM64_MODULE_PLTS" protection similarly to ftrace_trampoline just
above. me->arch.core.plt may not exist otherwise.