svn commit: r197891 - projects/ppc64/sys/powerpc/aim64
Nathan Whitehorn
nwhitehorn at FreeBSD.org
Fri Oct 9 03:02:31 UTC 2009
Author: nwhitehorn
Date: Fri Oct 9 03:02:30 2009
New Revision: 197891
URL: http://svn.freebsd.org/changeset/base/197891
Log:
Do not map the trap vectors into the kernel's address space. They are
only used in real mode (with the exception of the reset vector, which
does not work anyway in conjunction with 64-bit systems, even in bridge
mode) and keeping them mapped only serves to make NULL a valid address.
This results in silent NULL pointer deferences.
Suggested by: Patrick Kerharo
Modified:
projects/ppc64/sys/powerpc/aim64/mmu_oea64.c
Modified: projects/ppc64/sys/powerpc/aim64/mmu_oea64.c
==============================================================================
--- projects/ppc64/sys/powerpc/aim64/mmu_oea64.c Fri Oct 9 02:00:32 2009 (r197890)
+++ projects/ppc64/sys/powerpc/aim64/mmu_oea64.c Fri Oct 9 03:02:30 2009 (r197891)
@@ -947,15 +947,17 @@ moea64_bridge_bootstrap(mmu_t mmup, vm_o
ENABLE_TRANS(msr);
/*
- * Map certain important things, like ourselves and the exception
- * vectors
+ * Map certain important things, like ourselves.
+ *
+ * NOTE: We do not map the exception vector space. That code is
+ * used only in real mode, and leaving it unmapped allows us to
+ * catch NULL pointer deferences, instead of making NULL a valid
+ * address.
*/
DISABLE_TRANS(msr);
for (pa = kernelstart & ~PAGE_MASK; pa < kernelend; pa += PAGE_SIZE)
moea64_kenter(mmup, pa, pa);
- for (pa = EXC_RSVD; pa < EXC_LAST; pa += PAGE_SIZE)
- moea64_kenter(mmup, pa, pa);
ENABLE_TRANS(msr);
More information about the svn-src-projects
mailing list