summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/i386/i386/pmap.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index a2a5b0d12ca0..38cc84c19f00 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -493,9 +493,13 @@ pmap_bootstrap(vm_paddr_t firstaddr)
virtual_avail = va;
/*
- * Leave in place an identity mapping (virt == phys) for the low 1 MB
- * physical memory region that is used by the ACPI wakeup code. This
- * mapping must not have PG_G set.
+ * Finish removing the identity mapping (virt == phys) of low memory.
+ * It was only used for 2 instructions in locore. locore then
+ * unmapped the first PTD to get some null pointer checks. ACPI
+ * wakeup will map the first PTD transiently to use it for 1
+ * instruction. The double mapping for low memory is not usable in
+ * normal operation since it breaks trapping of null pointers and
+ * causes inconsistencies in page tables when combined with PG_G.
*/
for (i = 1; i < NKPT; i++)
PTD[i] = 0;