Skip to content

Commit

Permalink
powerpc/tm: Fix GOT save offset for ABIv2
Browse files Browse the repository at this point in the history
The r2 TOC/GOT save offset is 40 on ABIv1 and 24 on ABIv2.

Signed-off-by: Anton Blanchard <[email protected]>
  • Loading branch information
antonblanchard committed Apr 23, 2014
1 parent c2e31bd commit 6403105
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
2 changes: 2 additions & 0 deletions arch/powerpc/include/asm/ppc_asm.h
Original file line number Diff line number Diff line change
Expand Up @@ -190,8 +190,10 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR)
#define STK_REG(i) __STK_REG(__REG_##i)

#if defined(_CALL_ELF) && _CALL_ELF == 2
#define STK_GOT 24
#define __STK_PARAM(i) (32 + ((i)-3)*8)
#else
#define STK_GOT 40
#define __STK_PARAM(i) (48 + ((i)-3)*8)
#endif
#define STK_PARAM(i) __STK_PARAM(__REG_##i)
Expand Down
8 changes: 4 additions & 4 deletions arch/powerpc/kernel/tm.S
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ _GLOBAL(tm_reclaim)
mflr r0
stw r6, 8(r1)
std r0, 16(r1)
std r2, 40(r1)
std r2, STK_GOT(r1)
stdu r1, -TM_FRAME_SIZE(r1)

/* We've a struct pt_regs at [r1+STACK_FRAME_OVERHEAD]. */
Expand Down Expand Up @@ -288,7 +288,7 @@ dont_backup_fp:
ld r0, 16(r1)
mtcr r4
mtlr r0
ld r2, 40(r1)
ld r2, STK_GOT(r1)

/* Load system default DSCR */
ld r4, DSCR_DEFAULT@toc(r2)
Expand All @@ -311,7 +311,7 @@ _GLOBAL(__tm_recheckpoint)
mflr r0
stw r5, 8(r1)
std r0, 16(r1)
std r2, 40(r1)
std r2, STK_GOT(r1)
stdu r1, -TM_FRAME_SIZE(r1)

/* We've a struct pt_regs at [r1+STACK_FRAME_OVERHEAD].
Expand Down Expand Up @@ -447,7 +447,7 @@ restore_gprs:
ld r0, 16(r1)
mtcr r4
mtlr r0
ld r2, 40(r1)
ld r2, STK_GOT(r1)

/* Load system default DSCR */
ld r4, DSCR_DEFAULT@toc(r2)
Expand Down

0 comments on commit 6403105

Please sign in to comment.