OSDN Git Service

powerpc/32: Fix CONFIG_VIRT_CPU_ACCOUNTING_NATIVE for 40x/booke
authorChristophe Leroy <christophe.leroy@c-s.fr>
Thu, 31 Jan 2019 10:10:31 +0000 (10:10 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 21 Feb 2019 13:10:16 +0000 (00:10 +1100)
40x/booke have another path to reach 3f from transfer_to_handler,
make sure it also calls ACCOUNT_CPU_USER_ENTRY() when
CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is selected.

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

index 6c671ce..0c69773 100644 (file)
@@ -166,6 +166,13 @@ transfer_to_handler:
           internal debug mode bit to do this. */
        lwz     r12,THREAD_DBCR0(r12)
        andis.  r12,r12,DBCR0_IDM@h
+#endif
+#ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
+       CURRENT_THREAD_INFO(r9, r1)
+       tophys(r9, r9)
+       ACCOUNT_CPU_USER_ENTRY(r9, r11, r12)
+#endif
+#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
        beq+    3f
        /* From user and task is ptraced - load up global dbcr0 */
        li      r12,-1                  /* clear all pending debug events */
@@ -185,11 +192,6 @@ transfer_to_handler:
        addi    r12,r12,-1
        stw     r12,4(r11)
 #endif
-#ifdef CONFIG_VIRT_CPU_ACCOUNTING_NATIVE
-       CURRENT_THREAD_INFO(r9, r1)
-       tophys(r9, r9)
-       ACCOUNT_CPU_USER_ENTRY(r9, r11, r12)
-#endif
 
        b       3f