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>