Skip to content

Commit e014f27

Browse files
npigginsmb49
authored andcommitted
powerpc: simplify ppc_save_regs
BugLink: https://bugs.launchpad.net/bugs/2032689 [ Upstream commit 37195b8 ] Adjust the pt_regs pointer so the interrupt frame offsets can be used to save registers. Signed-off-by: Nicholas Piggin <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Stable-dep-of: b684c09 ("powerpc: update ppc_save_regs to save current r1 in pt_regs") Signed-off-by: Sasha Levin <[email protected]> Signed-off-by: Kamal Mostafa <[email protected]> Signed-off-by: Stefan Bader <[email protected]>
1 parent 852ee00 commit e014f27

File tree

1 file changed

+15
-42
lines changed

1 file changed

+15
-42
lines changed

arch/powerpc/kernel/ppc_save_regs.S

Lines changed: 15 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -21,60 +21,33 @@
2121
* different ABIs, though).
2222
*/
2323
_GLOBAL(ppc_save_regs)
24-
PPC_STL r0,0*SZL(r3)
24+
/* This allows stack frame accessor macros and offsets to be used */
25+
subi r3,r3,STACK_FRAME_OVERHEAD
26+
PPC_STL r0,GPR0(r3)
2527
#ifdef CONFIG_PPC32
26-
stmw r2, 2*SZL(r3)
28+
stmw r2,GPR2(r3)
2729
#else
28-
PPC_STL r2,2*SZL(r3)
29-
PPC_STL r3,3*SZL(r3)
30-
PPC_STL r4,4*SZL(r3)
31-
PPC_STL r5,5*SZL(r3)
32-
PPC_STL r6,6*SZL(r3)
33-
PPC_STL r7,7*SZL(r3)
34-
PPC_STL r8,8*SZL(r3)
35-
PPC_STL r9,9*SZL(r3)
36-
PPC_STL r10,10*SZL(r3)
37-
PPC_STL r11,11*SZL(r3)
38-
PPC_STL r12,12*SZL(r3)
39-
PPC_STL r13,13*SZL(r3)
40-
PPC_STL r14,14*SZL(r3)
41-
PPC_STL r15,15*SZL(r3)
42-
PPC_STL r16,16*SZL(r3)
43-
PPC_STL r17,17*SZL(r3)
44-
PPC_STL r18,18*SZL(r3)
45-
PPC_STL r19,19*SZL(r3)
46-
PPC_STL r20,20*SZL(r3)
47-
PPC_STL r21,21*SZL(r3)
48-
PPC_STL r22,22*SZL(r3)
49-
PPC_STL r23,23*SZL(r3)
50-
PPC_STL r24,24*SZL(r3)
51-
PPC_STL r25,25*SZL(r3)
52-
PPC_STL r26,26*SZL(r3)
53-
PPC_STL r27,27*SZL(r3)
54-
PPC_STL r28,28*SZL(r3)
55-
PPC_STL r29,29*SZL(r3)
56-
PPC_STL r30,30*SZL(r3)
57-
PPC_STL r31,31*SZL(r3)
30+
SAVE_GPRS(2, 31, r3)
5831
lbz r0,PACAIRQSOFTMASK(r13)
59-
PPC_STL r0,SOFTE-STACK_FRAME_OVERHEAD(r3)
32+
PPC_STL r0,SOFTE(r3)
6033
#endif
6134
/* go up one stack frame for SP */
6235
PPC_LL r4,0(r1)
63-
PPC_STL r4,1*SZL(r3)
36+
PPC_STL r4,GPR1(r3)
6437
/* get caller's LR */
6538
PPC_LL r0,LRSAVE(r4)
66-
PPC_STL r0,_LINK-STACK_FRAME_OVERHEAD(r3)
39+
PPC_STL r0,_LINK(r3)
6740
mflr r0
68-
PPC_STL r0,_NIP-STACK_FRAME_OVERHEAD(r3)
41+
PPC_STL r0,_NIP(r3)
6942
mfmsr r0
70-
PPC_STL r0,_MSR-STACK_FRAME_OVERHEAD(r3)
43+
PPC_STL r0,_MSR(r3)
7144
mfctr r0
72-
PPC_STL r0,_CTR-STACK_FRAME_OVERHEAD(r3)
45+
PPC_STL r0,_CTR(r3)
7346
mfxer r0
74-
PPC_STL r0,_XER-STACK_FRAME_OVERHEAD(r3)
47+
PPC_STL r0,_XER(r3)
7548
mfcr r0
76-
PPC_STL r0,_CCR-STACK_FRAME_OVERHEAD(r3)
49+
PPC_STL r0,_CCR(r3)
7750
li r0,0
78-
PPC_STL r0,_TRAP-STACK_FRAME_OVERHEAD(r3)
79-
PPC_STL r0,ORIG_GPR3-STACK_FRAME_OVERHEAD(r3)
51+
PPC_STL r0,_TRAP(r3)
52+
PPC_STL r0,ORIG_GPR3(r3)
8053
blr

0 commit comments

Comments
 (0)