OSDN Git Service

powerpc/64: Add module check for ELF ABI version
authorNicholas Piggin <npiggin@gmail.com>
Mon, 28 Nov 2022 04:15:37 +0000 (14:15 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 2 Dec 2022 06:54:07 +0000 (17:54 +1100)
Override the generic module ELF check to provide a check for the ELF ABI
version. This becomes important if we allow big-endian ELF ABI V2 builds
but it doesn't hurt to check now.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221128041539.1742489-3-npiggin@gmail.com
arch/powerpc/kernel/module_64.c

index 7e45dc9..ff04564 100644 (file)
    this, and makes other things simpler.  Anton?
    --RR.  */
 
+bool module_elf_check_arch(Elf_Ehdr *hdr)
+{
+       unsigned long abi_level = hdr->e_flags & 0x3;
+
+       if (IS_ENABLED(CONFIG_PPC64_ELF_ABI_V2))
+               return abi_level == 2;
+       else
+               return abi_level < 2;
+}
+
 #ifdef CONFIG_PPC64_ELF_ABI_V2
 
 static func_desc_t func_desc(unsigned long addr)