lkml.org 
[lkml]   [2017]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v4 20/24] openrisc: entry: Fix delay slot detection
From
Date
On 02/24/2017 05:32 AM, Stafford Horne wrote:
> Use execption SR stored in pt_regs for detection, the current SR is not
> correct as the handler is running after return from exception.
>
> Also, The code that checks for a delay slot uses a flag bitmask and then
> wants to check if the result is not zero. The test it implemented was
> wrong.
>
> Correct it by changing the test to check result against non zero.

This wants to be two patches as you are changing two different things.

/Joans

>
> Signed-off-by: Stafford Horne <shorne@gmail.com>
> ---
> arch/openrisc/kernel/entry.S | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/openrisc/kernel/entry.S b/arch/openrisc/kernel/entry.S
> index daae2a4..bc65008 100644
> --- a/arch/openrisc/kernel/entry.S
> +++ b/arch/openrisc/kernel/entry.S
> @@ -258,9 +258,9 @@ EXCEPTION_ENTRY(_data_page_fault_handler)
>
> #else
>
> - l.mfspr r6,r0,SPR_SR // SR
> + l.lwz r6,PT_SR(r3) // SR
> l.andi r6,r6,SPR_SR_DSX // check for delay slot exception
> - l.sfeqi r6,0x1 // exception happened in delay slot
> + l.sfne r6,r0 // exception happened in delay slot
> l.bnf 7f
> l.lwz r6,PT_PC(r3) // address of an offending insn
>


\
 
 \ /
  Last update: 2017-02-24 10:53    [W:0.310 / U:0.492 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site