diff options
author | Michael Cree <mcree@orcon.net.nz> | 2017-06-24 13:37:02 +1200 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2017-08-29 12:01:52 -0700 |
commit | 4f61e0781b701f5eb4f0e186d361c4104659001e (patch) | |
tree | b5853021e64b291a156c8599aa54ffb6c0796118 /arch | |
parent | 4606f68faff1b16734f9379937fc49ae289d4c6e (diff) |
alpha: support R_ALPHA_REFLONG relocations for module loading
Since commit 71810db27c1c853b33 (modversions: treat symbol CRCs
as 32 bit quantities) R_ALPHA_REFLONG relocations can be required
to load modules. This implements it.
Tested-by: Bob Tracy <rct@gherkin.frus.com>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Michael Cree <mcree@orcon.net.nz>
Signed-off-by: Matt Turner <mattst88@gmail.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/alpha/kernel/module.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c index 936bc8f89a67..47632fa8c24e 100644 --- a/arch/alpha/kernel/module.c +++ b/arch/alpha/kernel/module.c @@ -181,6 +181,9 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab, switch (r_type) { case R_ALPHA_NONE: break; + case R_ALPHA_REFLONG: + *(u32 *)location = value; + break; case R_ALPHA_REFQUAD: /* BUG() can produce misaligned relocations. */ ((u32 *)location)[0] = value; |