diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2014-05-12 03:45:02 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2014-05-19 20:56:01 -0400 |
commit | 872aa779bcdd26bbe2d538c36e2c2072b3f03c8c (patch) | |
tree | 30418ac92b369e47e40b42464e8af2fd5b2ecaf5 /arch/powerpc/kernel/module_64.c | |
parent | bd0c30e310d43c49debe380e344307b677e182a6 (diff) |
powerpc/module: Fix stubs for BE
A simple patch which was supposed to swap r12 and r11 also
inexplicably changed the offset by two bytes. This instruction
(to load r2) isn't used in LE, so it wasn't noticed.
Fixes: b1ce369e82 ("powerpc: modules: use r12 for stub jump address.)
Reported-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Tested-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/module_64.c')
-rw-r--r-- | arch/powerpc/kernel/module_64.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c index ef349d077129..077d2ce6c5a7 100644 --- a/arch/powerpc/kernel/module_64.c +++ b/arch/powerpc/kernel/module_64.c | |||
@@ -134,7 +134,7 @@ static u32 ppc64_stub_insns[] = { | |||
134 | 0xe98b0020, /* ld r12,32(r11) */ | 134 | 0xe98b0020, /* ld r12,32(r11) */ |
135 | #if !defined(_CALL_ELF) || _CALL_ELF != 2 | 135 | #if !defined(_CALL_ELF) || _CALL_ELF != 2 |
136 | /* Set up new r2 from function descriptor */ | 136 | /* Set up new r2 from function descriptor */ |
137 | 0xe84b0026, /* ld r2,40(r11) */ | 137 | 0xe84b0028, /* ld r2,40(r11) */ |
138 | #endif | 138 | #endif |
139 | 0x7d8903a6, /* mtctr r12 */ | 139 | 0x7d8903a6, /* mtctr r12 */ |
140 | 0x4e800420 /* bctr */ | 140 | 0x4e800420 /* bctr */ |