Tell the unwinder we can't unwind swi_entry. This fixes an infinite loop

when the kernel attempts to unwind through this function.

The .fnstart and .fnend in this function should be moved to macros but we
are currently missing an END macro on ARM.
This commit is contained in:
Andrew Turner 2013-03-10 02:38:35 +00:00
parent 67727fbfce
commit 536daf817a

View File

@ -77,6 +77,9 @@ Lreset_panicmsg:
* Handler for the Software Interrupt exception.
*/
ASENTRY_NP(swi_entry)
.fnstart
.cantunwind /* Don't unwind past here */
PUSHFRAME
mov r0, sp /* Pass the frame to any function */
@ -88,6 +91,7 @@ ASENTRY_NP(swi_entry)
DO_AST
PULLFRAME
movs pc, lr /* Exit */
.fnend
/*
* prefetch_abort_entry: