On Tue, 21 Feb 2017 07:22:56 +0530
Mahesh J Salgaonkar <mah...@linux.vnet.ibm.com> wrote:

> From: Mahesh Salgaonkar <mah...@linux.vnet.ibm.com>
> 
> Delay it until we are done with machine_check_early() call. Turn on MSR[ME]
> once opal is done with processing MCE.

Why? This seems like quite a regression -- the MCE handler today
has about 60 instructions and 30 l/st with ME clear.


> 
> Signed-off-by: Mahesh Salgaonkar <mah...@linux.vnet.ibm.com>
> ---
>  arch/powerpc/kernel/exceptions-64s.S |   12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/exceptions-64s.S 
> b/arch/powerpc/kernel/exceptions-64s.S
> index d39d611..fa768a7 100644
> --- a/arch/powerpc/kernel/exceptions-64s.S
> +++ b/arch/powerpc/kernel/exceptions-64s.S
> @@ -238,6 +238,12 @@ BEGIN_FTR_SECTION
>       std     r9,_CCR(r1)             /* Save CR in stackframe */
>       /* Save r9 through r13 from EXMC save area to stack frame. */
>       EXCEPTION_PROLOG_COMMON_2(PACA_EXMC)
> +     std     r0,GPR0(r1)     /* Save r0 */
> +     EXCEPTION_PROLOG_COMMON_3(0x200)
> +     bl      save_nvgprs
> +     addi    r3,r1,STACK_FRAME_OVERHEAD
> +     bl      machine_check_early
> +     std     r3,RESULT(r1)   /* Save result */
>       mfmsr   r11                     /* get MSR value */
>       ori     r11,r11,MSR_ME          /* turn on ME bit */
>       ori     r11,r11,MSR_RI          /* turn on RI bit */
> @@ -345,12 +351,6 @@ EXC_COMMON_BEGIN(machine_check_common)
>        * ME=1, MMU (IR=0 and DR=0) off and using MC emergency stack.
>        */
>  EXC_COMMON_BEGIN(machine_check_handle_early)
> -     std     r0,GPR0(r1)     /* Save r0 */
> -     EXCEPTION_PROLOG_COMMON_3(0x200)
> -     bl      save_nvgprs
> -     addi    r3,r1,STACK_FRAME_OVERHEAD
> -     bl      machine_check_early
> -     std     r3,RESULT(r1)   /* Save result */
>       ld      r12,_MSR(r1)
>  #ifdef       CONFIG_PPC_P7_NAP
>       /*
> 

Reply via email to