Hi Bin,

On Tue, 2018-11-13 at 00:22 -0800, Bin Meng wrote:
> Use a variable 'code' to store the exception code to simplify the
> codes in handle_trap().
> 
> Signed-off-by: Bin Meng <bmeng...@gmail.com>
> ---
> 
>  arch/riscv/lib/interrupts.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
> 

Reviewed-by: Lukas Auer <lukas.a...@aisec.fraunhofer.de>

> diff --git a/arch/riscv/lib/interrupts.c
> b/arch/riscv/lib/interrupts.c
> index 5e09196..0c13588 100644
> --- a/arch/riscv/lib/interrupts.c
> +++ b/arch/riscv/lib/interrupts.c
> @@ -66,14 +66,18 @@ int disable_interrupts(void)
>  ulong handle_trap(ulong mcause, ulong epc, struct pt_regs *regs)
>  {
>       ulong is_int;
> +     ulong code;
>  
>       is_int = (mcause & MCAUSE_INT);
> -     if ((is_int) && ((mcause & MCAUSE_CAUSE)  == IRQ_M_EXT))
> -             external_interrupt(0);  /* handle_m_ext_interrupt */
> -     else if ((is_int) && ((mcause & MCAUSE_CAUSE)  == IRQ_M_TIMER))
> -             timer_interrupt(0);     /* handle_m_timer_interrupt
> */
> -     else
> -             _exit_trap(mcause & MCAUSE_CAUSE, epc, regs);
> +     code = mcause & MCAUSE_CAUSE;
> +     if (is_int) {
> +             if (code == IRQ_M_EXT)
> +                     external_interrupt(0);  /*
> handle_m_ext_interrupt */
> +             else if (code == IRQ_M_TIMER)
> +                     timer_interrupt(0);     /*
> handle_m_timer_interrupt */
> +     } else {
> +             _exit_trap(code, epc, regs);\

This should use mcause instead of code (see my comments on your
previous patch).

Thanks,
Lukas

> +     }
>  
>       return epc;
>  }
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to