Commit 1d3034ae authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

powerpc/32: make the 6xx/8xx EXC_XFER_TEMPLATE() similar to the 40x/booke one

6xx/8xx EXC_XFER_TEMPLATE() macro adds a i##n symbol which is
unused and can be removed.
40x and booke EXC_XFER_TEMPLATE() macros takes msr from the caller
while the 6xx/8xx version uses only MSR_KERNEL as msr value.

This patch modifies the 6xx/8xx version to make it similar to the
40x and booke versions.
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 37737a2a
...@@ -99,13 +99,12 @@ ...@@ -99,13 +99,12 @@
addi r3,r1,STACK_FRAME_OVERHEAD; \ addi r3,r1,STACK_FRAME_OVERHEAD; \
xfer(n, hdlr) xfer(n, hdlr)
#define EXC_XFER_TEMPLATE(n, hdlr, trap, copyee, tfer, ret) \ #define EXC_XFER_TEMPLATE(hdlr, trap, msr, copyee, tfer, ret) \
li r10,trap; \ li r10,trap; \
stw r10,_TRAP(r11); \ stw r10,_TRAP(r11); \
LOAD_MSR_KERNEL(r10, MSR_KERNEL); \ LOAD_MSR_KERNEL(r10, msr); \
copyee(r10, r9); \ copyee(r10, r9); \
bl tfer; \ bl tfer; \
i##n: \
.long hdlr; \ .long hdlr; \
.long ret .long ret
...@@ -113,19 +112,19 @@ i##n: \ ...@@ -113,19 +112,19 @@ i##n: \
#define NOCOPY(d, s) #define NOCOPY(d, s)
#define EXC_XFER_STD(n, hdlr) \ #define EXC_XFER_STD(n, hdlr) \
EXC_XFER_TEMPLATE(n, hdlr, n, NOCOPY, transfer_to_handler_full, \ EXC_XFER_TEMPLATE(hdlr, n, MSR_KERNEL, NOCOPY, transfer_to_handler_full, \
ret_from_except_full) ret_from_except_full)
#define EXC_XFER_LITE(n, hdlr) \ #define EXC_XFER_LITE(n, hdlr) \
EXC_XFER_TEMPLATE(n, hdlr, n+1, NOCOPY, transfer_to_handler, \ EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL, NOCOPY, transfer_to_handler, \
ret_from_except) ret_from_except)
#define EXC_XFER_EE(n, hdlr) \ #define EXC_XFER_EE(n, hdlr) \
EXC_XFER_TEMPLATE(n, hdlr, n, COPY_EE, transfer_to_handler_full, \ EXC_XFER_TEMPLATE(hdlr, n, MSR_KERNEL, COPY_EE, transfer_to_handler_full, \
ret_from_except_full) ret_from_except_full)
#define EXC_XFER_EE_LITE(n, hdlr) \ #define EXC_XFER_EE_LITE(n, hdlr) \
EXC_XFER_TEMPLATE(n, hdlr, n+1, COPY_EE, transfer_to_handler, \ EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL, COPY_EE, transfer_to_handler, \
ret_from_except) ret_from_except)
#endif /* __HEAD_32_H__ */ #endif /* __HEAD_32_H__ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment