Module Name: src Committed By: maxv Date: Tue Dec 20 12:48:30 UTC 2016
Modified Files: src/sys/arch/x86/x86: x86_machdep.c Log Message: Depend on KERNTEXTOFF - KERNBASE, not IOM_END, both are equal but the text address may change in the future. To generate a diff of this commit: cvs rdiff -u -r1.77 -r1.78 src/sys/arch/x86/x86/x86_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/x86_machdep.c diff -u src/sys/arch/x86/x86/x86_machdep.c:1.77 src/sys/arch/x86/x86/x86_machdep.c:1.78 --- src/sys/arch/x86/x86/x86_machdep.c:1.77 Fri Nov 25 11:57:36 2016 +++ src/sys/arch/x86/x86/x86_machdep.c Tue Dec 20 12:48:30 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: x86_machdep.c,v 1.77 2016/11/25 11:57:36 maxv Exp $ */ +/* $NetBSD: x86_machdep.c,v 1.78 2016/12/20 12:48:30 maxv Exp $ */ /*- * Copyright (c) 2002, 2006, 2007 YAMAMOTO Takashi, @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.77 2016/11/25 11:57:36 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: x86_machdep.c,v 1.78 2016/12/20 12:48:30 maxv Exp $"); #include "opt_modular.h" #include "opt_physmem.h" @@ -834,11 +834,12 @@ init_x86_clusters(void) /* * init_x86_vm: initialize the VM system on x86. We basically internalize as * many physical pages as we can, starting at avail_start, but we don't - * internalize the kernel physical pages (from IOM_END to pa_kend). + * internalize the kernel physical pages (from pa_kstart to pa_kend). */ int init_x86_vm(paddr_t pa_kend) { + paddr_t pa_kstart = (KERNTEXTOFF - KERNBASE); uint64_t seg_start, seg_end; uint64_t seg_start1, seg_end1; int x; @@ -853,8 +854,7 @@ init_x86_vm(paddr_t pa_kend) * Now, load the memory clusters (which have already been rounded and * truncated) into the VM system. * - * NOTE: we assume that memory starts at 0 and that the kernel is - * loaded at IOM_END (1MB). + * NOTE: we assume that memory starts at 0. */ for (x = 0; x < mem_cluster_cnt; x++) { const phys_ram_seg_t *cluster = &mem_clusters[x]; @@ -878,10 +878,10 @@ init_x86_vm(paddr_t pa_kend) * If this segment contains the kernel, split it in two, around * the kernel. */ - if (seg_start <= IOM_END && pa_kend <= seg_end) { + if (seg_start <= pa_kstart && pa_kend <= seg_end) { seg_start1 = pa_kend; seg_end1 = seg_end; - seg_end = IOM_END; + seg_end = pa_kstart; KASSERT(seg_end < seg_end1); }