powerpc: modules: use r12 for stub jump address.
authorRusty Russell <rusty@rustcorp.com.au>
Tue, 18 Mar 2014 09:42:59 +0000 (20:12 +1030)
committerAnton Blanchard <anton@samba.org>
Wed, 23 Apr 2014 00:05:31 +0000 (10:05 +1000)
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>
arch/powerpc/kernel/module_64.c

index 8bfcf1b..f8b6d28 100644 (file)
@@ -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 */
 } };