aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/kernel/module.c')
-rw-r--r--arch/sparc/kernel/module.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/arch/sparc/kernel/module.c b/arch/sparc/kernel/module.c
index 15e0a1693976..bae6ab600b7f 100644
--- a/arch/sparc/kernel/module.c
+++ b/arch/sparc/kernel/module.c
@@ -116,6 +116,10 @@ int apply_relocate_add(Elf_Shdr *sechdrs,
116 v = sym->st_value + rel[i].r_addend; 116 v = sym->st_value + rel[i].r_addend;
117 117
118 switch (ELF_R_TYPE(rel[i].r_info) & 0xff) { 118 switch (ELF_R_TYPE(rel[i].r_info) & 0xff) {
119 case R_SPARC_DISP32:
120 v -= (Elf_Addr) location;
121 *loc32 = v;
122 break;
119#ifdef CONFIG_SPARC64 123#ifdef CONFIG_SPARC64
120 case R_SPARC_64: 124 case R_SPARC_64:
121 location[0] = v >> 56; 125 location[0] = v >> 56;
@@ -128,11 +132,6 @@ int apply_relocate_add(Elf_Shdr *sechdrs,
128 location[7] = v >> 0; 132 location[7] = v >> 0;
129 break; 133 break;
130 134
131 case R_SPARC_DISP32:
132 v -= (Elf_Addr) location;
133 *loc32 = v;
134 break;
135
136 case R_SPARC_WDISP19: 135 case R_SPARC_WDISP19:
137 v -= (Elf_Addr) location; 136 v -= (Elf_Addr) location;
138 *loc32 = (*loc32 & ~0x7ffff) | 137 *loc32 = (*loc32 & ~0x7ffff) |