Opened on 06/21/21 at 08:49:53
Closed on 12/02/21 at 15:21:48
#4459 closed defect (fixed)
Handling of unexpected traps is unreliable on SPARC
Reported by: | Sebastian Huber | Owned by: | Sebastian Huber |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | arch/sparc | Version: | 6 |
Severity: | normal | Keywords: | qualification |
Cc: | Blocked By: | ||
Blocking: |
Description
Currently, all traps without special functions are handled by _ISR_Handler(). For traps which occur for example due to
- instruction access exception
- illegal instruction
- privileged instruction
- fp disabled
- memory address not aligned
- fp exception
- data access exception
errors the trap handling is unreliable since
- the stack pointer of the context which caused the trap is used, and
- writeable data structures are used (for example _ISR_Vector_table).
The trap table is initialized to "ta 0" which ends up in a system error mode. In this mode, the RTEMS fatal error handling is by passed and the initial fatal error handlers are not called.
The trap handling should be changed to invoke a statically initialized bad trap handler which performs the RTEMS fatal error procedure and uses a CPU-specific stack with minimum dependencies on the context which caused the trap.
Change History (4)
comment:1 Changed on 06/24/21 at 10:30:30 by Sebastian Huber <sebastian.huber@…>
comment:3 Changed on 12/02/21 at 15:21:46 by Sebastian Huber <sebastian.huber@…>
comment:4 Changed on 12/02/21 at 15:21:48 by Sebastian Huber <sebastian.huber@…>
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
In 955c045b/rtems: