Author: andrew
Date: Sun Mar 10 02:38:35 2013
New Revision: 248123
URL: http://svnweb.freebsd.org/changeset/base/248123

Log:
  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.

Modified:
  head/sys/arm/arm/exception.S

Modified: head/sys/arm/arm/exception.S
==============================================================================
--- head/sys/arm/arm/exception.S        Sun Mar 10 00:47:19 2013        
(r248122)
+++ head/sys/arm/arm/exception.S        Sun Mar 10 02:38:35 2013        
(r248123)
@@ -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:
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to