lkml.org 
[lkml]   [2021]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 10/41] powerpc/32: Handle bookE debugging in C in exception entry
    Date
    The handling of SPRN_DBCR0 and other registers can easily
    be done in C instead of ASM.

    Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
    ---
    arch/powerpc/include/asm/interrupt.h | 2 ++
    arch/powerpc/kernel/entry_32.S | 23 -----------------------
    2 files changed, 2 insertions(+), 23 deletions(-)

    diff --git a/arch/powerpc/include/asm/interrupt.h b/arch/powerpc/include/asm/interrupt.h
    index c35368adbe71..861e6eadc98c 100644
    --- a/arch/powerpc/include/asm/interrupt.h
    +++ b/arch/powerpc/include/asm/interrupt.h
    @@ -65,6 +65,8 @@ static inline void interrupt_enter_prepare(struct pt_regs *regs, struct interrup
    if (user_mode(regs))
    account_cpu_user_entry();
    #endif
    +
    + booke_restore_dbcr0();
    }

    /*
    diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S
    index 0f3f1bdd909e..4ffbcf3df72e 100644
    --- a/arch/powerpc/kernel/entry_32.S
    +++ b/arch/powerpc/kernel/entry_32.S
    @@ -146,32 +146,9 @@ transfer_to_handler:
    addi r2, r12, -THREAD
    addi r11,r1,STACK_FRAME_OVERHEAD
    stw r11,PT_REGS(r12)
    -#if defined(CONFIG_40x) || defined(CONFIG_BOOKE)
    - /* Check to see if the dbcr0 register is set up to debug. Use the
    - internal debug mode bit to do this. */
    - lwz r12,THREAD_DBCR0(r12)
    - andis. r12,r12,DBCR0_IDM@h
    -#endif
    #ifdef CONFIG_PPC_BOOK3S_32
    kuep_lock 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 */
    - mtspr SPRN_DBSR,r12
    - lis r11,global_dbcr0@ha
    - tophys_novmstack r11,r11
    - addi r11,r11,global_dbcr0@l
    -#ifdef CONFIG_SMP
    - lwz r9,TASK_CPU(r2)
    - slwi r9,r9,2
    - add r11,r11,r9
    -#endif
    - lwz r12,0(r11)
    - mtspr SPRN_DBCR0,r12
    -#endif
    -
    b 3f

    2: /* if from kernel, check interrupted DOZE/NAP mode and
    --
    2.25.0
    \
     
     \ /
      Last update: 2021-03-12 14:09    [W:4.531 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site