Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Jan 2013 15:22:03 +0000 (UTC)
From:      "Cherry G. Mathew" <cherry@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r245165 - projects/amd64_xen_pv/sys/amd64/amd64
Message-ID:  <201301081522.r08FM3Fs006924@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cherry
Date: Tue Jan  8 15:22:03 2013
New Revision: 245165
URL: http://svnweb.freebsd.org/changeset/base/245165

Log:
  pcb->pcb_cr3 should contain the PA of the pml4 table

Modified:
  projects/amd64_xen_pv/sys/amd64/amd64/vm_machdep.c

Modified: projects/amd64_xen_pv/sys/amd64/amd64/vm_machdep.c
==============================================================================
--- projects/amd64_xen_pv/sys/amd64/amd64/vm_machdep.c	Tue Jan  8 12:21:50 2013	(r245164)
+++ projects/amd64_xen_pv/sys/amd64/amd64/vm_machdep.c	Tue Jan  8 15:22:03 2013	(r245165)
@@ -219,7 +219,12 @@ cpu_fork(td1, p2, td2, flags)
 	 * return address on stack.  These are the kernel mode register values.
 	 */
 	pmap2 = vmspace_pmap(p2->p_vmspace);
+#ifdef XEN
+	pcb2->pcb_cr3 = pmap_kextract((vm_offset_t)pmap2->pm_pml4);
+#else
 	pcb2->pcb_cr3 = DMAP_TO_PHYS((vm_offset_t)pmap2->pm_pml4);
+#endif
+
 	pcb2->pcb_r12 = (register_t)fork_return;	/* fork_trampoline argument */
 	pcb2->pcb_rbp = 0;
 	pcb2->pcb_rsp = (register_t)td2->td_frame - sizeof(void *);



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