powerpc/32: get rid of COPY_EE in exception entry
authorChristophe Leroy <christophe.leroy@c-s.fr>
Tue, 30 Apr 2019 12:39:00 +0000 (12:39 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 2 May 2019 15:20:27 +0000 (01:20 +1000)
EXC_XFER_TEMPLATE() is not called with COPY_EE anymore so
we can get rid of copyee parameters and related COPY_EE and NOCOPY
macros.

Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[splited out from benh RFC patch]

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/head_32.h
arch/powerpc/kernel/head_40x.S
arch/powerpc/kernel/head_booke.h

index 8881b6887841f012dcbce100ae0fb7ccd552e5c9..14cb0af2f4946d4a2f06f8a6562e875b9821e97e 100644 (file)
@@ -103,28 +103,24 @@ label:
        addi    r3,r1,STACK_FRAME_OVERHEAD;     \
        xfer(n, hdlr)
 
-#define EXC_XFER_TEMPLATE(hdlr, trap, msr, copyee, tfer, ret)  \
+#define EXC_XFER_TEMPLATE(hdlr, trap, msr, tfer, ret)          \
        li      r10,trap;                                       \
        stw     r10,_TRAP(r11);                                 \
        LOAD_MSR_KERNEL(r10, msr);                              \
-       copyee(r10, r9);                                        \
        bl      tfer;                                           \
        .long   hdlr;                                           \
        .long   ret
 
-#define COPY_EE(d, s)          rlwimi d,s,0,MSR_EE
-#define NOCOPY(d, s)
-
 #define EXC_XFER_STD(n, hdlr)          \
-       EXC_XFER_TEMPLATE(hdlr, n, MSR_KERNEL, NOCOPY, transfer_to_handler_full,        \
+       EXC_XFER_TEMPLATE(hdlr, n, MSR_KERNEL, transfer_to_handler_full,        \
                          ret_from_except_full)
 
 #define EXC_XFER_LITE(n, hdlr)         \
-       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL, NOCOPY, transfer_to_handler, \
+       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL, transfer_to_handler, \
                          ret_from_except)
 
 #define EXC_XFER_SYS(n, hdlr)          \
-       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL | MSR_EE, NOCOPY, transfer_to_handler, \
+       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL | MSR_EE, transfer_to_handler, \
                          ret_from_except)
 
 #endif /* __HEAD_32_H__ */
index 0463f56fc7ab837194ee2587a729b89eb0f9f7de..fc332d33112e5ade7beabb6708140ccae061c883 100644 (file)
@@ -166,8 +166,7 @@ _ENTRY(saved_ksp_limit)
        CRITICAL_EXCEPTION_PROLOG;                              \
        addi    r3,r1,STACK_FRAME_OVERHEAD;                     \
        EXC_XFER_TEMPLATE(hdlr, n+2, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), \
-                         NOCOPY, crit_transfer_to_handler,     \
-                         ret_from_crit_exc)
+                         crit_transfer_to_handler, ret_from_crit_exc)
 
 /*
  * 0x0100 - Critical Interrupt Exception
@@ -651,7 +650,7 @@ _ENTRY(saved_ksp_limit)
        addi    r3,r1,STACK_FRAME_OVERHEAD
        EXC_XFER_TEMPLATE(DebugException, 0x2002, \
                (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), \
-               NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
+               crit_transfer_to_handler, ret_from_crit_exc)
 
        /* Programmable Interval Timer (PIT) Exception. (from 0x1000) */
 Decrementer:
@@ -673,8 +672,7 @@ WDTException:
        addi    r3,r1,STACK_FRAME_OVERHEAD;
        EXC_XFER_TEMPLATE(WatchdogException, 0x1020+2,
                          (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)),
-                         NOCOPY, crit_transfer_to_handler,
-                         ret_from_crit_exc)
+                         crit_transfer_to_handler, ret_from_crit_exc)
 
 /*
  * The other Data TLB exceptions bail out to this point
index 264976c43f344eeec3355972aca233d15df5da7a..56dd1341eb3df3ee5d92e27f0a0c5f6a15d65c9e 100644 (file)
@@ -217,8 +217,7 @@ label:
        CRITICAL_EXCEPTION_PROLOG(intno);                               \
        addi    r3,r1,STACK_FRAME_OVERHEAD;                             \
        EXC_XFER_TEMPLATE(hdlr, n+2, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), \
-                         NOCOPY, crit_transfer_to_handler, \
-                         ret_from_crit_exc)
+                         crit_transfer_to_handler, ret_from_crit_exc)
 
 #define MCHECK_EXCEPTION(n, label, hdlr)                       \
        START_EXCEPTION(label);                                 \
@@ -227,32 +226,27 @@ label:
        stw     r5,_ESR(r11);                                   \
        addi    r3,r1,STACK_FRAME_OVERHEAD;                     \
        EXC_XFER_TEMPLATE(hdlr, n+4, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), \
-                         NOCOPY, mcheck_transfer_to_handler,   \
-                         ret_from_mcheck_exc)
+                         mcheck_transfer_to_handler, ret_from_mcheck_exc)
 
-#define EXC_XFER_TEMPLATE(hdlr, trap, msr, copyee, tfer, ret)  \
+#define EXC_XFER_TEMPLATE(hdlr, trap, msr, tfer, ret)  \
        li      r10,trap;                                       \
        stw     r10,_TRAP(r11);                                 \
        lis     r10,msr@h;                                      \
        ori     r10,r10,msr@l;                                  \
-       copyee(r10, r9);                                        \
        bl      tfer;                                           \
        .long   hdlr;                                           \
        .long   ret
 
-#define COPY_EE(d, s)          rlwimi d,s,0,16,16
-#define NOCOPY(d, s)
-
 #define EXC_XFER_STD(n, hdlr)          \
-       EXC_XFER_TEMPLATE(hdlr, n, MSR_KERNEL, NOCOPY, transfer_to_handler_full, \
+       EXC_XFER_TEMPLATE(hdlr, n, MSR_KERNEL, transfer_to_handler_full, \
                          ret_from_except_full)
 
 #define EXC_XFER_LITE(n, hdlr)         \
-       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL, NOCOPY, transfer_to_handler, \
+       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL, transfer_to_handler, \
                          ret_from_except)
 
 #define EXC_XFER_SYS(n, hdlr)                                          \
-       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL | MSR_EE, NOCOPY, transfer_to_handler, \
+       EXC_XFER_TEMPLATE(hdlr, n+1, MSR_KERNEL | MSR_EE, transfer_to_handler, \
                          ret_from_except)
 
 /* Check for a single step debug exception while in an exception
@@ -319,7 +313,7 @@ label:
        /* continue normal handling for a debug exception... */               \
 2:     mfspr   r4,SPRN_DBSR;                                                 \
        addi    r3,r1,STACK_FRAME_OVERHEAD;                                   \
-       EXC_XFER_TEMPLATE(DebugException, 0x2008, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc)
+       EXC_XFER_TEMPLATE(DebugException, 0x2008, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), debug_transfer_to_handler, ret_from_debug_exc)
 
 #define DEBUG_CRIT_EXCEPTION                                                 \
        START_EXCEPTION(DebugCrit);                                           \
@@ -372,7 +366,7 @@ label:
        /* continue normal handling for a critical exception... */            \
 2:     mfspr   r4,SPRN_DBSR;                                                 \
        addi    r3,r1,STACK_FRAME_OVERHEAD;                                   \
-       EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
+       EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), crit_transfer_to_handler, ret_from_crit_exc)
 
 #define DATA_STORAGE_EXCEPTION                                               \
        START_EXCEPTION(DataStorage)                                          \