2017-06-24 02:13:33

by Michael Cree

[permalink] [raw]
Subject: [PATCH] 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 <[email protected]>
Signed-off-by: Michael Cree <[email protected]>
---
arch/alpha/kernel/module.c | 3 +++
1 file changed, 3 insertions(+)

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;
--
2.11.0


2017-06-24 15:09:28

by Richard Henderson

[permalink] [raw]
Subject: Re: [PATCH] alpha: support R_ALPHA_REFLONG relocations for module loading

On 06/23/2017 06:37 PM, Michael Cree wrote:
> 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<[email protected]>
> Signed-off-by: Michael Cree<[email protected]>
> ---
> arch/alpha/kernel/module.c | 3 +++
> 1 file changed, 3 insertions(+)

Reviewed-by: Richard Henderson <[email protected]>


r~