summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/module_64.c
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2014-03-18 10:42:59 +0100
committerAnton Blanchard <anton@samba.org>2014-04-23 02:05:31 +0200
commitb1ce369e820aaca3d91e9d9bbaaf860794d9ab01 (patch)
treef37463a7cdac3c2413286785631cda47426fff58 /arch/powerpc/kernel/module_64.c
parentpowerpc: modules: change r2 save/restore offset for ELFv2 ABI. (diff)
downloadlinux-b1ce369e820aaca3d91e9d9bbaaf860794d9ab01.tar.xz
linux-b1ce369e820aaca3d91e9d9bbaaf860794d9ab01.zip
powerpc: modules: use r12 for stub jump address.
In ELFv2, r12 is supposed to equal to PC on entry to a function. Our stubs use r11, so change swap that with r12. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch/powerpc/kernel/module_64.c')
-rw-r--r--arch/powerpc/kernel/module_64.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c
index 8bfcf1b8b6d4..f8b6d28784ef 100644
--- a/arch/powerpc/kernel/module_64.c
+++ b/arch/powerpc/kernel/module_64.c
@@ -67,13 +67,13 @@ struct ppc64_stub_entry
r2) into the stub. */
static struct ppc64_stub_entry ppc64_stub =
{ .jump = {
- 0x3d820000, /* addis r12,r2, <high> */
- 0x398c0000, /* addi r12,r12, <low> */
+ 0x3d620000, /* addis r11,r2, <high> */
+ 0x396b0000, /* addi r11,r11, <low> */
/* Save current r2 value in magic place on the stack. */
0xf8410000|R2_STACK_OFFSET, /* std r2,R2_STACK_OFFSET(r1) */
- 0xe96c0020, /* ld r11,32(r12) */
- 0xe84c0028, /* ld r2,40(r12) */
- 0x7d6903a6, /* mtctr r11 */
+ 0xe98b0020, /* ld r12,32(r11) */
+ 0xe84b0026, /* ld r2,40(r11) */
+ 0x7d8903a6, /* mtctr r12 */
0x4e800420 /* bctr */
} };