summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arch/alpha/kernel/module.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c
index 159a1bb65764..f444a94eb965 100644
--- a/arch/alpha/kernel/module.c
+++ b/arch/alpha/kernel/module.c
@@ -199,7 +199,9 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab,
case R_ALPHA_NONE:
break;
case R_ALPHA_REFQUAD:
- *(u64 *)location = value;
+ /* BUG() can produce misaligned relocations. */
+ ((u32 *)location)[0] = value;
+ ((u32 *)location)[1] = value >> 32;
break;
case R_ALPHA_GPREL32:
value -= gp;