Author: kib
Date: Mon Jun 25 11:29:04 2018
New Revision: 335635
URL: https://svnweb.freebsd.org/changeset/base/335635

Log:
  Do not leave stray qword on top of stack for interrupts and exceptions
  without error code.  Doing so it mis-aligned the stack.
  
  Since the only consumer of the SSE instructions with the alignment
  requirements is AES-NI module, and since the FPU context cannot be
  accessed in interrupts, the only situation where the alignment matter
  are the compat32 syscalls, as reported in the PR.
  
  PR:   229222
  Reported and tested by:        dewa...@heuristicsystems.com.au
  Sponsored by: The FreeBSD Foundation
  MFC after:    1 week

Modified:
  head/sys/amd64/include/asmacros.h

Modified: head/sys/amd64/include/asmacros.h
==============================================================================
--- head/sys/amd64/include/asmacros.h   Mon Jun 25 11:24:26 2018        
(r335634)
+++ head/sys/amd64/include/asmacros.h   Mon Jun 25 11:29:04 2018        
(r335635)
@@ -187,7 +187,7 @@
        movq    PCPU(KCR3),%rax
        movq    %rax,%cr3
        movq    PCPU(RSP0),%rax
-       subq    $PTI_SIZE,%rax
+       subq    $PTI_SIZE - 8 * (1 - \has_err),%rax
        MOVE_STACKS     ((PTI_SIZE / 8) - 1 + \has_err)
        movq    %rax,%rsp
        popq    %rdx
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to