summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTiezhu Yang <yangtiezhu@loongson.cn>2023-09-27 16:19:13 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-10-06 14:57:01 +0200
commit7bc8585aa0719dd1996be804dd4fba601d48f3d6 (patch)
treef2a61e4ad07d9a2a786bdc93bd3c66675a0aa4e9
parentf04ded9ae26876de7948485e1e7c8e0ef754e462 (diff)
downloadlinux-stable-7bc8585aa0719dd1996be804dd4fba601d48f3d6.tar.gz
linux-stable-7bc8585aa0719dd1996be804dd4fba601d48f3d6.tar.bz2
linux-stable-7bc8585aa0719dd1996be804dd4fba601d48f3d6.zip
LoongArch: Define relocation types for ABI v2.10
commit 2761498876adebff77a43574639005b29e912c43 upstream. The relocation types from 101 to 109 are used by GNU binutils >= 2.41, add their definitions to use them in later patches. Link: https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=include/elf/loongarch.h#l230 Cc: <stable@vger.kernel.org> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--arch/loongarch/include/asm/elf.h9
-rw-r--r--arch/loongarch/kernel/module.c2
2 files changed, 10 insertions, 1 deletions
diff --git a/arch/loongarch/include/asm/elf.h b/arch/loongarch/include/asm/elf.h
index 7af0cebf28d7..b9a4ab54285c 100644
--- a/arch/loongarch/include/asm/elf.h
+++ b/arch/loongarch/include/asm/elf.h
@@ -111,6 +111,15 @@
#define R_LARCH_TLS_GD_HI20 98
#define R_LARCH_32_PCREL 99
#define R_LARCH_RELAX 100
+#define R_LARCH_DELETE 101
+#define R_LARCH_ALIGN 102
+#define R_LARCH_PCREL20_S2 103
+#define R_LARCH_CFA 104
+#define R_LARCH_ADD6 105
+#define R_LARCH_SUB6 106
+#define R_LARCH_ADD_ULEB128 107
+#define R_LARCH_SUB_ULEB128 108
+#define R_LARCH_64_PCREL 109
#ifndef ELF_ARCH
diff --git a/arch/loongarch/kernel/module.c b/arch/loongarch/kernel/module.c
index 097595b2fc14..4f1e6e55dc02 100644
--- a/arch/loongarch/kernel/module.c
+++ b/arch/loongarch/kernel/module.c
@@ -376,7 +376,7 @@ typedef int (*reloc_rela_handler)(struct module *mod, u32 *location, Elf_Addr v,
/* The handlers for known reloc types */
static reloc_rela_handler reloc_rela_handlers[] = {
- [R_LARCH_NONE ... R_LARCH_RELAX] = apply_r_larch_error,
+ [R_LARCH_NONE ... R_LARCH_64_PCREL] = apply_r_larch_error,
[R_LARCH_NONE] = apply_r_larch_none,
[R_LARCH_32] = apply_r_larch_32,