Module Name: src Committed By: maxv Date: Thu Jan 11 11:15:35 UTC 2018
Modified Files: src/sys/arch/x86/x86: vm_machdep.c Log Message: The uarea must always be page-aligned. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/sys/arch/x86/x86/vm_machdep.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x86/x86/vm_machdep.c diff -u src/sys/arch/x86/x86/vm_machdep.c:1.30 src/sys/arch/x86/x86/vm_machdep.c:1.31 --- src/sys/arch/x86/x86/vm_machdep.c:1.30 Sun Dec 31 08:29:38 2017 +++ src/sys/arch/x86/x86/vm_machdep.c Thu Jan 11 11:15:34 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: vm_machdep.c,v 1.30 2017/12/31 08:29:38 maxv Exp $ */ +/* $NetBSD: vm_machdep.c,v 1.31 2018/01/11 11:15:34 maxv Exp $ */ /*- * Copyright (c) 1982, 1986 The Regents of the University of California. @@ -80,7 +80,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.30 2017/12/31 08:29:38 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.31 2018/01/11 11:15:34 maxv Exp $"); #include "opt_mtrr.h" @@ -178,9 +178,10 @@ cpu_lwp_fork(struct lwp *l1, struct lwp * returns normally. */ uv = uvm_lwp_getuarea(l2); + KASSERT(uv % PAGE_SIZE == 0); #ifdef __x86_64__ - pcb2->pcb_rsp0 = (uv + USPACE - 16) & ~0xf; + pcb2->pcb_rsp0 = (uv + USPACE - 16); tf = (struct trapframe *)pcb2->pcb_rsp0 - 1; #else pcb2->pcb_esp0 = (uv + USPACE - 16);