summaryrefslogtreecommitdiff
path: root/arch/alpha/kernel
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2003-03-24 06:23:16 -0800
committerRichard Henderson <rth@are.twiddle.net>2003-03-24 06:23:16 -0800
commit010abedb32384881b4e7ed020fa895a6cb79978c (patch)
treeeecf809c3ecef4577073621afcf17176737e1a33 /arch/alpha/kernel
parent95a41bc4c831fb58af624bde9b96303bd14f2392 (diff)
[PATCH] alpha: handle unaligned REFQUADs produced by BUG() macro
Diffstat (limited to 'arch/alpha/kernel')
-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;