Excerpts from Michael Ellerman's message of April 3, 2021 12:28 pm:
> 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.

Good thinking.

Thanks,
Nick

> 
> 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