Module Name: src Committed By: maxv Date: Mon Dec 17 07:10:07 UTC 2018
Modified Files: src/sys/arch/x86/x86: pmap.c Log Message: Remove dead checks, they were already pointless when I fixed them a few years ago, and now they are wrong because the PTE space is randomized. To generate a diff of this commit: cvs rdiff -u -r1.314 -r1.315 src/sys/arch/x86/x86/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/x86/x86/pmap.c diff -u src/sys/arch/x86/x86/pmap.c:1.314 src/sys/arch/x86/x86/pmap.c:1.315 --- src/sys/arch/x86/x86/pmap.c:1.314 Mon Dec 17 06:58:54 2018 +++ src/sys/arch/x86/x86/pmap.c Mon Dec 17 07:10:07 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.314 2018/12/17 06:58:54 maxv Exp $ */ +/* $NetBSD: pmap.c,v 1.315 2018/12/17 07:10:07 maxv Exp $ */ /* * Copyright (c) 2008, 2010, 2016, 2017 The NetBSD Foundation, Inc. @@ -130,7 +130,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.314 2018/12/17 06:58:54 maxv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.315 2018/12/17 07:10:07 maxv Exp $"); #include "opt_user_ldt.h" #include "opt_lockdebug.h" @@ -3484,7 +3484,6 @@ pmap_remove(struct pmap *pmap, vaddr_t s pd_entry_t * const *pdes; struct pv_entry *pv_tofree = NULL; bool result; - int i; paddr_t ptppa; vaddr_t blkendva, va = sva; struct vm_page *ptp; @@ -3537,20 +3536,6 @@ pmap_remove(struct pmap *pmap, vaddr_t s if (blkendva > eva) blkendva = eva; - /* - * Our PTE mappings should never be removed with pmap_remove. - * - * XXXmaxv: still needed? - * - * A long term solution is to move the PTEs out of user address - * space, and into kernel address space. Then we can set - * VM_MAXUSER_ADDRESS to be VM_MAX_ADDRESS. - */ - for (i = 0; i < PDP_SIZE; i++) { - if (pl_i(va, PTP_LEVELS) == PDIR_SLOT_PTE+i) - panic("PTE space accessed"); - } - lvl = pmap_pdes_invalid(va, pdes, &pde); if (lvl != 0) { /* Skip a range corresponding to an invalid pde. */ @@ -3983,26 +3968,11 @@ pmap_write_protect(struct pmap *pmap, va for (va = sva ; va < eva; va = blockend) { pt_entry_t *spte, *epte; - int i; blockend = x86_round_pdr(va + 1); if (blockend > eva) blockend = eva; - /* - * Our PTE mappings should never be write-protected. - * - * XXXmaxv: still needed? - * - * A long term solution is to move the PTEs out of user address - * space, and into kernel address space. Then we can set - * VM_MAXUSER_ADDRESS to be VM_MAX_ADDRESS. - */ - for (i = 0; i < PDP_SIZE; i++) { - if (pl_i(va, PTP_LEVELS) == PDIR_SLOT_PTE+i) - panic("PTE space accessed"); - } - /* Is it a valid block? */ if (!pmap_pdes_valid(va, pdes, NULL)) { continue; @@ -4142,8 +4112,6 @@ pmap_enter_ma(struct pmap *pmap, vaddr_t npte |= PG_W; if (va < VM_MAXUSER_ADDRESS) npte |= PG_u; - else if (va < VM_MAX_ADDRESS) - panic("PTE space accessed"); /* XXXmaxv: no longer needed? */ if (pmap == pmap_kernel()) npte |= pmap_pg_g;