global_dbcr0 has two parts, 4 bytes to save/restore the
value of SPRN_DBCR0, and 4 bytes that are incremented/decremented
everytime something is saving/loading the above value.

This counter is only incremented/decremented, its value is never
used and never read.

Remove the counter and devide the size of global_dbcr0 by 2.

Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
---
v5: New
---
 arch/powerpc/kernel/entry_32.S   | 12 +++---------
 arch/powerpc/kernel/head_32.h    |  3 ---
 arch/powerpc/kernel/head_booke.h |  5 +----
 3 files changed, 4 insertions(+), 16 deletions(-)

diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
index 7c824e8928d0..a574201b0eb6 100644
--- a/arch/powerpc/kernel/entry_32.S
+++ b/arch/powerpc/kernel/entry_32.S
@@ -175,14 +175,11 @@ transfer_to_handler:
        addi    r11,r11,global_dbcr0@l
 #ifdef CONFIG_SMP
        lwz     r9,TASK_CPU(r2)
-       slwi    r9,r9,3
+       slwi    r9,r9,2
        add     r11,r11,r9
 #endif
        lwz     r12,0(r11)
        mtspr   SPRN_DBCR0,r12
-       lwz     r12,4(r11)
-       addi    r12,r12,-1
-       stw     r12,4(r11)
 #endif
 
        b       3f
@@ -980,14 +977,11 @@ load_dbcr0:
        addi    r11,r11,global_dbcr0@l
 #ifdef CONFIG_SMP
        lwz     r9,TASK_CPU(r2)
-       slwi    r9,r9,3
+       slwi    r9,r9,2
        add     r11,r11,r9
 #endif
        stw     r10,0(r11)
        mtspr   SPRN_DBCR0,r0
-       lwz     r10,4(r11)
-       addi    r10,r10,1
-       stw     r10,4(r11)
        li      r11,-1
        mtspr   SPRN_DBSR,r11   /* clear all pending debug events */
        blr
@@ -996,7 +990,7 @@ load_dbcr0:
        .align  4
        .global global_dbcr0
 global_dbcr0:
-       .space  8*NR_CPUS
+       .space  4*NR_CPUS
        .previous
 #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */
 
diff --git a/arch/powerpc/kernel/head_32.h b/arch/powerpc/kernel/head_32.h
index 282d8fd443a9..5001c6ecc3ec 100644
--- a/arch/powerpc/kernel/head_32.h
+++ b/arch/powerpc/kernel/head_32.h
@@ -166,9 +166,6 @@
        addi    r11,r11,global_dbcr0@l
        lwz     r12,0(r11)
        mtspr   SPRN_DBCR0,r12
-       lwz     r12,4(r11)
-       addi    r12,r12,-1
-       stw     r12,4(r11)
 3:
 #endif
        b       transfer_to_syscall             /* jump to handler */
diff --git a/arch/powerpc/kernel/head_booke.h b/arch/powerpc/kernel/head_booke.h
index bfbd240cc8a2..5f565232b99d 100644
--- a/arch/powerpc/kernel/head_booke.h
+++ b/arch/powerpc/kernel/head_booke.h
@@ -142,14 +142,11 @@ ALT_FTR_SECTION_END_IFSET(CPU_FTR_EMB_HV)
        addi    r11,r11,global_dbcr0@l
 #ifdef CONFIG_SMP
        lwz     r10, TASK_CPU(r2)
-       slwi    r10, r10, 3
+       slwi    r10, r10, 2
        add     r11, r11, r10
 #endif
        lwz     r12,0(r11)
        mtspr   SPRN_DBCR0,r12
-       lwz     r12,4(r11)
-       addi    r12,r12,-1
-       stw     r12,4(r11)
 
 3:
        b       transfer_to_syscall     /* jump to handler */
-- 
2.25.0

Reply via email to