Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Jan 2018 21:52:12 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r328096 - head/sys/amd64/amd64
Message-ID:  <201801172152.w0HLqD7A000508@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Wed Jan 17 21:52:12 2018
New Revision: 328096
URL: https://svnweb.freebsd.org/changeset/base/328096

Log:
  Annotate a couple of changes from r328083.
  
  Reviewed by:	kib
  X-MFC with:	r328083

Modified:
  head/sys/amd64/amd64/exception.S
  head/sys/amd64/amd64/machdep.c

Modified: head/sys/amd64/amd64/exception.S
==============================================================================
--- head/sys/amd64/amd64/exception.S	Wed Jan 17 20:43:30 2018	(r328095)
+++ head/sys/amd64/amd64/exception.S	Wed Jan 17 21:52:12 2018	(r328096)
@@ -325,7 +325,7 @@ page_cr2:
 	movq	PCPU(KCR3),%rax
 	movq	%rax,%cr3
 	movq	PCPU(RSP0),%rax
-	subq	$2*PTI_SIZE-3*8,%rax
+	subq	$2*PTI_SIZE-3*8,%rax /* no err, %rax, %rdx in faulted frame */
 	MOVE_STACKS	(PTI_SIZE / 4 - 3)
 	movq	%rax,%rsp
 	popq	%rdx

Modified: head/sys/amd64/amd64/machdep.c
==============================================================================
--- head/sys/amd64/amd64/machdep.c	Wed Jan 17 20:43:30 2018	(r328095)
+++ head/sys/amd64/amd64/machdep.c	Wed Jan 17 21:52:12 2018	(r328096)
@@ -115,6 +115,7 @@ __FBSDID("$FreeBSD$");
 #include <machine/clock.h>
 #include <machine/cpu.h>
 #include <machine/cputypes.h>
+#include <machine/frame.h>
 #include <machine/intr_machdep.h>
 #include <x86/mca.h>
 #include <machine/md_var.h>
@@ -146,6 +147,14 @@ __FBSDID("$FreeBSD$");
 
 /* Sanity check for __curthread() */
 CTASSERT(offsetof(struct pcpu, pc_curthread) == 0);
+
+/*
+ * The PTI trampoline stack needs enough space for a hardware trapframe and a
+ * couple of scratch registers, as well as the trapframe left behind after an
+ * iret fault.
+ */
+CTASSERT(PC_PTI_STACK_SZ * sizeof(register_t) >= 2 * sizeof(struct pti_frame) -
+    offsetof(struct pti_frame, pti_rip));
 
 extern u_int64_t hammer_time(u_int64_t, u_int64_t);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801172152.w0HLqD7A000508>