Nicholas Piggin <npig...@gmail.com> writes:
> diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
> index ccf913cedd29..b466b3e1bb3f 100644
> --- a/arch/powerpc/kernel/entry_64.S
> +++ b/arch/powerpc/kernel/entry_64.S
> @@ -64,6 +64,30 @@ exception_marker:
>       .section        ".text"
>       .align 7
>  
> +.macro DEBUG_SRR_VALID srr
> +#ifdef CONFIG_PPC_RFI_SRR_DEBUG
> +     .ifc \srr,srr
> +     mfspr   r11,SPRN_SRR0
> +     ld      r12,_NIP(r1)
> +100: tdne    r11,r12
> +     EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)

This always points at *this* line, not the caller. Works better with the
patch below.

cheers


diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index b466b3e1bb3f..ada76b1279f9 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -64,26 +64,26 @@
        .section        ".text"
        .align 7
 
-.macro DEBUG_SRR_VALID srr
+.macro DEBUG_SRR_VALID srr line
 #ifdef CONFIG_PPC_RFI_SRR_DEBUG
        .ifc \srr,srr
        mfspr   r11,SPRN_SRR0
        ld      r12,_NIP(r1)
 100:   tdne    r11,r12
-       EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+       EMIT_BUG_ENTRY 100b,__FILE__,\line,(BUGFLAG_WARNING | BUGFLAG_ONCE)
        mfspr   r11,SPRN_SRR1
        ld      r12,_MSR(r1)
 100:   tdne    r11,r12
-       EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+       EMIT_BUG_ENTRY 100b,__FILE__,\line,(BUGFLAG_WARNING | BUGFLAG_ONCE)
        .else
        mfspr   r11,SPRN_HSRR0
        ld      r12,_NIP(r1)
 100:   tdne    r11,r12
-       EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+       EMIT_BUG_ENTRY 100b,__FILE__,\line,(BUGFLAG_WARNING | BUGFLAG_ONCE)
        mfspr   r11,SPRN_HSRR1
        ld      r12,_MSR(r1)
 100:   tdne    r11,r12
-       EMIT_BUG_ENTRY 100b,__FILE__,__LINE__,(BUGFLAG_WARNING | BUGFLAG_ONCE)
+       EMIT_BUG_ENTRY 100b,__FILE__,\line,(BUGFLAG_WARNING | BUGFLAG_ONCE)
        .endif
 #endif
 .endm
@@ -358,7 +358,7 @@ END_BTB_FLUSH_SECTION
        mtspr   SPRN_SRR0,r4
        mtspr   SPRN_SRR1,r5
 1:
-       DEBUG_SRR_VALID srr
+       DEBUG_SRR_VALID srr __LINE__
 
 BEGIN_FTR_SECTION
        stdcx.  r0,0,r1                 /* to clear the reservation */
@@ -753,7 +753,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
        stb     r4,PACAHSRR_VALID(r13)
 #endif
        .endif
-       DEBUG_SRR_VALID \srr
+       DEBUG_SRR_VALID \srr __LINE__
 
 BEGIN_FTR_SECTION
        stdcx.  r0,0,r1         /* to clear the reservation */
@@ -825,7 +825,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_STCX_CHECKS_ADDRESS)
        stb     r4,PACAHSRR_VALID(r13)
 #endif
        .endif
-       DEBUG_SRR_VALID \srr
+       DEBUG_SRR_VALID \srr __LINE__
 
 BEGIN_FTR_SECTION
        stdcx.  r0,0,r1         /* to clear the reservation */

Reply via email to