FAILED: patch "[PATCH] powerpc64/module elfv1: Set opd addresses after module" failed to apply to 4.18-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.18-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
59fe7eaf3598a89cbcd72e645b1d08afd76f7b29Mon Sep 17 00:00:00 2001
From: "Naveen N. Rao" <[email protected]>
Date: Tue, 29 May 2018 12:21:00 +0530
Subject: [PATCH] powerpc64/module elfv1: Set opd addresses after module
relocation
module_frob_arch_sections() is called before the module is moved to its final location. The function descriptor section addresses we are setting here are thus invalid. Fix this by processing opd section during module_finalize()
arch/powerpc/kernel/module.c +8 -0
@@ -74,6 +74,14 @@ int module_finalize(const Elf_Ehdr *hdr, (void *)sect->sh_addr + sect->sh_size);#endif /* CONFIG_PPC64 */ +#ifdef PPC64_ELF_ABI_v1 + sect =find_section (hdr, sechdrs,".opd" ); +if (sect !=NULL ) { + me->arch.start_opd = sect->sh_addr; + me->arch.end_opd = sect->sh_addr + sect->sh_size; + } +#endif /* PPC64_ELF_ABI_v1 */ +#ifdef CONFIG_PPC_BARRIER_NOSPEC sect =find_section (hdr, sechdrs,"__spec_barrier_fixup" );if (sect !=NULL )
arch/powerpc/kernel/module_64.c +0 -5
@@ -360,11 +360,6 @@ int module_frob_arch_sections(Elf64_Ehdr *hdr,else if (strcmp (secstrings+sechdrs[i].sh_name,"__versions" )==0 )dedotify_versions ((void *)hdr + sechdrs[i].sh_offset, sechdrs[i].sh_size); -else if (!strcmp (secstrings + sechdrs[i].sh_name,".opd" )) { - me->arch.start_opd = sechdrs[i].sh_addr; - me->arch.end_opd = sechdrs[i].sh_addr + - sechdrs[i].sh_size; - }/* We don't handle .init for the moment: rename to _init */ while ((p =strstr (secstrings + sechdrs[i].sh_name,".init" )))