Module Name: src
Committed By: cliff
Date: Thu Jun 10 00:37:58 UTC 2010
Modified Files:
src/sys/arch/mips/mips [matt-nb5-mips64]: pmap.c
Log Message:
in pmap_bootstrap:
- increase Sysmapsize to allow mapping all memory (e.g. for big tmpfs)
- when calculating mips_virtual_end, cast Sysmapsize to vaddr_t
before multiplying by NBPG to avoid overflow
To generate a diff of this commit:
cvs rdiff -u -r1.179.16.24 -r1.179.16.25 src/sys/arch/mips/mips/pmap.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/mips/mips/pmap.c
diff -u src/sys/arch/mips/mips/pmap.c:1.179.16.24 src/sys/arch/mips/mips/pmap.c:1.179.16.25
--- src/sys/arch/mips/mips/pmap.c:1.179.16.24 Tue May 4 17:15:36 2010
+++ src/sys/arch/mips/mips/pmap.c Thu Jun 10 00:37:58 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.179.16.24 2010/05/04 17:15:36 matt Exp $ */
+/* $NetBSD: pmap.c,v 1.179.16.25 2010/06/10 00:37:58 cliff Exp $ */
/*-
* Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@@ -67,7 +67,7 @@
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.179.16.24 2010/05/04 17:15:36 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.179.16.25 2010/06/10 00:37:58 cliff Exp $");
/*
* Manages physical address maps.
@@ -518,7 +518,11 @@
Sysmapsize += poolpage.size;
#endif
/* XXX: else runs out of space on 256MB sbmips!! */
+#ifdef _LP64
+ Sysmapsize += physmem;
+#else
Sysmapsize += 20000;
+#endif
/*
* Initialize `FYI' variables. Note we're relying on
@@ -528,7 +532,7 @@
*/
mips_avail_start = vm_physmem[0].start << PGSHIFT;
mips_avail_end = vm_physmem[vm_nphysseg - 1].end << PGSHIFT;
- mips_virtual_end = VM_MIN_KERNEL_ADDRESS + Sysmapsize * NBPG;
+ mips_virtual_end = VM_MIN_KERNEL_ADDRESS + (vaddr_t)Sysmapsize * NBPG;
#ifndef _LP64
if (mips_virtual_end > VM_MAX_KERNEL_ADDRESS) {
mips_virtual_end = VM_MAX_KERNEL_ADDRESS;