Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1573208
| From | Stafford Horne <shorne@gmail.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH v2 21/23] openrisc: entry: Fix delay slot detection |
| Date | 2017-02-03 17:00 +0100 |
| Message-ID | <t6Org-3Ei-37@gated-at.bofh.it> (permalink) |
| References | <t6Ohz-3Ax-5@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
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. 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 -- 2.9.3
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH v2 00/23] OpenRISC patches from backlog for 4.11 Stafford Horne <shorne@gmail.com> - 2017-02-03 16:50 +0100 [PATCH v2 07/23] openrisc: add atomic bitops Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 06/23] openrisc: add l.lwa/l.swa emulation Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 09/23] openrisc: add optimized atomic operations Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 12/23] openrisc: remove unnecessary stddef.h include Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 23/23] arch/openrisc/lib/memcpy.c: use correct OR1200 option Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 10/23] openrisc: add spinlock implementation Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 21/23] openrisc: entry: Fix delay slot detection Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 17/23] openrisc: Add .gitignore Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 04/23] openrisc: head: use THREAD_SIZE instead of magic constant Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 15/23] openrisc: Add optimized memset Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 20/23] openrisc: entry: Whitespace and comment cleanups Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 22/23] openrisc: head: Move init strings to rodata section Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 05/23] openrisc: head: refactor out tlb flush into it's own function Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 03/23] openrisc: tlb miss handler optimizations Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 11/23] openrisc: add futex_atomic_* implementations Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 14/23] openrisc: Initial support for the idle state Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100 [PATCH v2 19/23] scripts/checkstack.pl: Add openrisc support Stafford Horne <shorne@gmail.com> - 2017-02-03 17:00 +0100
csiph-web