svn commit: r248123 - head/sys/arm/arm

Andrew Turner andrew at FreeBSD.org
Sun Mar 10 02:38:36 UTC 2013


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:


More information about the svn-src-all mailing list