svn commit: r246036 - projects/amd64_xen_pv/sys/amd64/xen
Cherry G. Mathew
cherry at FreeBSD.org
Mon Jan 28 17:25:54 UTC 2013
Author: cherry
Date: Mon Jan 28 17:25:53 2013
New Revision: 246036
URL: http://svnweb.freebsd.org/changeset/base/246036
Log:
Exception handling stack bugs:
i) Stop overwriting the previous stackframe
ii) Restore stack frame *after* restoring registers after alignment check
Approved by: gibbs (implicit)
Modified:
projects/amd64_xen_pv/sys/amd64/xen/exception.S
Modified: projects/amd64_xen_pv/sys/amd64/xen/exception.S
==============================================================================
--- projects/amd64_xen_pv/sys/amd64/xen/exception.S Mon Jan 28 15:48:31 2013 (r246035)
+++ projects/amd64_xen_pv/sys/amd64/xen/exception.S Mon Jan 28 17:25:53 2013 (r246036)
@@ -131,10 +131,10 @@
subq $TF_ERR, %rsp
#define TRAP_FRAME_EXIT_NOERR \
- addq $TF_RIP + 8, %rsp
+ addq $TF_RIP, %rsp
#define TRAP_FRAME_EXIT_ERR \
- addq $TF_ERR + 8, %rsp
+ addq $TF_ERR, %rsp
#define TRAP_PROLOGUE(a) \
movl $(a), TF_TRAPNO(%rsp) ; \
@@ -434,9 +434,9 @@ IDTVEC(ac) /* Alignment-Check */
DO_STI_MAYBE ;
CALLTRAP ;
DO_AST_MAYBE ;
- TRAP_FRAME_EXIT_ERR ;
RESTORE_GENERAL_REGS ;
RESTORE_SEGMENT_REGS ;
+ TRAP_FRAME_EXIT_ERR ;
INTR_EXIT ;
IDTVEC(mc) /* Machine-Check */
More information about the svn-src-projects
mailing list