Module Name: src
Committed By: maxv
Date: Thu Mar 7 13:26:25 UTC 2019
Modified Files:
src/sys/arch/amd64/amd64: locore.S
src/sys/arch/amd64/include: pte.h
src/sys/arch/amd64/stand/prekern: locore.S mm.c
src/sys/arch/i386/i386: genassym.cf locore.S machdep.c
src/sys/arch/i386/include: pte.h
src/sys/arch/x86/x86: db_memrw.c pmap.c
src/sys/arch/xen/x86: x86_xpmap.c xen_pmap.c
Log Message:
Drop PG_RO, PG_KR and PG_PROT, they are useless and create confusion.
To generate a diff of this commit:
cvs rdiff -u -r1.178 -r1.179 src/sys/arch/amd64/amd64/locore.S
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/amd64/include/pte.h
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/amd64/stand/prekern/locore.S
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/amd64/stand/prekern/mm.c
cvs rdiff -u -r1.111 -r1.112 src/sys/arch/i386/i386/genassym.cf
cvs rdiff -u -r1.164 -r1.165 src/sys/arch/i386/i386/locore.S
cvs rdiff -u -r1.816 -r1.817 src/sys/arch/i386/i386/machdep.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/i386/include/pte.h
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/x86/x86/db_memrw.c
cvs rdiff -u -r1.327 -r1.328 src/sys/arch/x86/x86/pmap.c
cvs rdiff -u -r1.82 -r1.83 src/sys/arch/xen/x86/x86_xpmap.c
cvs rdiff -u -r1.28 -r1.29 src/sys/arch/xen/x86/xen_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/amd64/amd64/locore.S
diff -u src/sys/arch/amd64/amd64/locore.S:1.178 src/sys/arch/amd64/amd64/locore.S:1.179
--- src/sys/arch/amd64/amd64/locore.S:1.178 Thu Feb 14 08:18:25 2019
+++ src/sys/arch/amd64/amd64/locore.S Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.178 2019/02/14 08:18:25 cherry Exp $ */
+/* $NetBSD: locore.S,v 1.179 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright-o-rama!
@@ -680,7 +680,7 @@ ENTRY(start)
movl $RELOC(__rodata_start),%ecx
subl %eax,%ecx
shrl $PGSHIFT,%ecx
- orl $(PG_V|PG_KR),%eax
+ orl $(PG_V),%eax
fillkpt
/* Map the kernel rodata R. */
@@ -688,7 +688,7 @@ ENTRY(start)
movl $RELOC(__data_start),%ecx
subl %eax,%ecx
shrl $PGSHIFT,%ecx
- orl $(PG_V|PG_KR),%eax
+ orl $(PG_V),%eax
fillkpt_nox
/* Map the kernel data+bss RW. */
Index: src/sys/arch/amd64/include/pte.h
diff -u src/sys/arch/amd64/include/pte.h:1.9 src/sys/arch/amd64/include/pte.h:1.10
--- src/sys/arch/amd64/include/pte.h:1.9 Fri May 13 11:17:20 2016
+++ src/sys/arch/amd64/include/pte.h Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: pte.h,v 1.9 2016/05/13 11:17:20 maxv Exp $ */
+/* $NetBSD: pte.h,v 1.10 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -98,10 +98,8 @@ typedef uint64_t pt_entry_t; /* PTE */
* PDE/PTE bits. These are no different from their i386 counterparts.
*/
#define PG_V 0x0000000000000001 /* valid */
-#define PG_RO 0x0000000000000000 /* read-only */
#define PG_RW 0x0000000000000002 /* read-write */
#define PG_u 0x0000000000000004 /* user accessible */
-#define PG_PROT 0x0000000000000006
#define PG_WT 0x0000000000000008 /* write-through */
#define PG_N 0x0000000000000010 /* non-cacheable */
#define PG_U 0x0000000000000020 /* used */
@@ -123,7 +121,6 @@ typedef uint64_t pt_entry_t; /* PTE */
/*
* Short forms of protection codes.
*/
-#define PG_KR 0x0000000000000000 /* kernel read-only */
#define PG_KW 0x0000000000000002 /* kernel read-write */
#include <x86/pte.h>
Index: src/sys/arch/amd64/stand/prekern/locore.S
diff -u src/sys/arch/amd64/stand/prekern/locore.S:1.8 src/sys/arch/amd64/stand/prekern/locore.S:1.9
--- src/sys/arch/amd64/stand/prekern/locore.S:1.8 Fri May 25 16:01:31 2018
+++ src/sys/arch/amd64/stand/prekern/locore.S Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.8 2018/05/25 16:01:31 maxv Exp $ */
+/* $NetBSD: locore.S,v 1.9 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright (c) 1998, 2000, 2007, 2008, 2016, 2017 The NetBSD Foundation, Inc.
@@ -424,7 +424,7 @@ ENTRY(start)
movl $_C_LABEL(__rodata_start),%ecx
subl %eax,%ecx
shrl $PGSHIFT,%ecx
- orl $(PG_V|PG_KR),%eax
+ orl $(PG_V),%eax
fillkpt
/* Map the prekern rodata R. */
@@ -432,7 +432,7 @@ ENTRY(start)
movl $_C_LABEL(__data_start),%ecx
subl %eax,%ecx
shrl $PGSHIFT,%ecx
- orl $(PG_V|PG_KR),%eax
+ orl $(PG_V),%eax
fillkpt_nox
/* Map the prekern data+bss RW. */
@@ -448,7 +448,7 @@ ENTRY(start)
movl %esi,%ecx /* start of BOOTSTRAP TABLES */
subl %eax,%ecx
shrl $PGSHIFT,%ecx
- orl $(PG_V|PG_KR),%eax
+ orl $(PG_V),%eax
fillkpt_nox
/* Map the BOOTSTRAP TABLES RW. */
Index: src/sys/arch/amd64/stand/prekern/mm.c
diff -u src/sys/arch/amd64/stand/prekern/mm.c:1.22 src/sys/arch/amd64/stand/prekern/mm.c:1.23
--- src/sys/arch/amd64/stand/prekern/mm.c:1.22 Wed Jun 20 11:49:37 2018
+++ src/sys/arch/amd64/stand/prekern/mm.c Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: mm.c,v 1.22 2018/06/20 11:49:37 maxv Exp $ */
+/* $NetBSD: mm.c,v 1.23 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright (c) 2017 The NetBSD Foundation, Inc. All rights reserved.
@@ -44,9 +44,9 @@ static const uint8_t pads[4] = {
#define MM_PROT_EXECUTE 0x02
static const pt_entry_t protection_codes[3] = {
- [MM_PROT_READ] = PG_RO | PG_NX,
+ [MM_PROT_READ] = PG_NX,
[MM_PROT_WRITE] = PG_RW | PG_NX,
- [MM_PROT_EXECUTE] = PG_RO,
+ [MM_PROT_EXECUTE] = 0,
/* RWX does not exist */
};
Index: src/sys/arch/i386/i386/genassym.cf
diff -u src/sys/arch/i386/i386/genassym.cf:1.111 src/sys/arch/i386/i386/genassym.cf:1.112
--- src/sys/arch/i386/i386/genassym.cf:1.111 Fri Feb 15 08:54:01 2019
+++ src/sys/arch/i386/i386/genassym.cf Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-# $NetBSD: genassym.cf,v 1.111 2019/02/15 08:54:01 nonaka Exp $
+# $NetBSD: genassym.cf,v 1.112 2019/03/07 13:26:24 maxv Exp $
#
# Copyright (c) 1998, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -144,7 +144,6 @@ define KERNTEXTOFF KERNTEXTOFF
define PG_RW PG_RW
define PG_V PG_V
define PG_KW PG_KW
-define PG_KR PG_KR
define PGEX_U PGEX_U
define L2_SLOT_KERNBASE pl2_pi(KERNBASE)
Index: src/sys/arch/i386/i386/locore.S
diff -u src/sys/arch/i386/i386/locore.S:1.164 src/sys/arch/i386/i386/locore.S:1.165
--- src/sys/arch/i386/i386/locore.S:1.164 Wed Feb 13 05:36:59 2019
+++ src/sys/arch/i386/i386/locore.S Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.164 2019/02/13 05:36:59 cherry Exp $ */
+/* $NetBSD: locore.S,v 1.165 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright-o-rama!
@@ -128,7 +128,7 @@
*/
#include <machine/asm.h>
-__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.164 2019/02/13 05:36:59 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: locore.S,v 1.165 2019/03/07 13:26:24 maxv Exp $");
#include "opt_copy_symtab.h"
#include "opt_ddb.h"
@@ -693,7 +693,7 @@ no_NOX:
movl $RELOC(__rodata_start),%ecx
subl %eax,%ecx
shrl $PGSHIFT,%ecx
- orl $(PG_V|PG_KR),%eax
+ orl $(PG_V),%eax
fillkpt
/* Map the kernel rodata R. */
@@ -701,7 +701,7 @@ no_NOX:
movl $RELOC(__data_start),%ecx
subl %eax,%ecx
shrl $PGSHIFT,%ecx
- orl $(PG_V|PG_KR),%eax
+ orl $(PG_V),%eax
fillkpt_nox
/* Map the kernel data+bss RW. */
Index: src/sys/arch/i386/i386/machdep.c
diff -u src/sys/arch/i386/i386/machdep.c:1.816 src/sys/arch/i386/i386/machdep.c:1.817
--- src/sys/arch/i386/i386/machdep.c:1.816 Thu Feb 14 08:18:25 2019
+++ src/sys/arch/i386/i386/machdep.c Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.816 2019/02/14 08:18:25 cherry Exp $ */
+/* $NetBSD: machdep.c,v 1.817 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright (c) 1996, 1997, 1998, 2000, 2004, 2006, 2008, 2009, 2017
@@ -67,7 +67,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.816 2019/02/14 08:18:25 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.817 2019/03/07 13:26:24 maxv Exp $");
#include "opt_beep.h"
#include "opt_compat_freebsd.h"
@@ -1029,7 +1029,7 @@ initgdt(union descriptor *tgdt)
pt_entry_t pte;
pte = pmap_pa2pte((vaddr_t)gdtstore - KERNBASE);
- pte |= PG_RO | xpmap_pg_nx | PG_V;
+ pte |= xpmap_pg_nx | PG_V;
if (HYPERVISOR_update_va_mapping((vaddr_t)gdtstore, pte,
UVMF_INVLPG) < 0) {
Index: src/sys/arch/i386/include/pte.h
diff -u src/sys/arch/i386/include/pte.h:1.28 src/sys/arch/i386/include/pte.h:1.29
--- src/sys/arch/i386/include/pte.h:1.28 Thu Mar 7 13:02:13 2019
+++ src/sys/arch/i386/include/pte.h Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: pte.h,v 1.28 2019/03/07 13:02:13 maxv Exp $ */
+/* $NetBSD: pte.h,v 1.29 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright (c) 2001 Wasabi Systems, Inc.
@@ -148,10 +148,8 @@ typedef uint32_t pt_entry_t; /* PTE */
* XXXCDC: need to rename these (PG_u == ugly).
*/
#define PG_V 0x00000001 /* valid entry */
-#define PG_RO 0x00000000 /* read-only page */
#define PG_RW 0x00000002 /* read-write page */
#define PG_u 0x00000004 /* user accessible page */
-#define PG_PROT 0x00000806 /* all protection bits */
#define PG_WT 0x00000008 /* write through */
#define PG_N 0x00000010 /* non-cacheable */
#define PG_U 0x00000020 /* has been used */
@@ -167,7 +165,6 @@ typedef uint32_t pt_entry_t; /* PTE */
/*
* various short-hand protection codes
*/
-#define PG_KR 0x00000000 /* kernel read-only */
#define PG_KW 0x00000002 /* kernel read-write */
#ifdef PAE
Index: src/sys/arch/x86/x86/db_memrw.c
diff -u src/sys/arch/x86/x86/db_memrw.c:1.8 src/sys/arch/x86/x86/db_memrw.c:1.9
--- src/sys/arch/x86/x86/db_memrw.c:1.8 Sat Jan 19 13:17:32 2019
+++ src/sys/arch/x86/x86/db_memrw.c Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: db_memrw.c,v 1.8 2019/01/19 13:17:32 martin Exp $ */
+/* $NetBSD: db_memrw.c,v 1.9 2019/03/07 13:26:24 maxv Exp $ */
/*-
* Copyright (c) 1996, 2000 The NetBSD Foundation, Inc.
@@ -53,7 +53,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_memrw.c,v 1.8 2019/01/19 13:17:32 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_memrw.c,v 1.9 2019/03/07 13:26:24 maxv Exp $");
#include <sys/param.h>
#include <sys/proc.h>
@@ -170,7 +170,6 @@ db_write_text(vaddr_t addr, size_t size,
/*
* Make the kernel text page writable.
*/
- pmap_pte_clearbits(ppte, PG_KR);
pmap_pte_setbits(ppte, PG_KW);
pmap_update_pg(addr);
@@ -190,7 +189,6 @@ db_write_text(vaddr_t addr, size_t size,
* Turn the page back to read-only.
*/
pmap_pte_clearbits(ppte, PG_KW);
- pmap_pte_setbits(ppte, PG_KR);
pmap_update_pg(addr);
/*
Index: src/sys/arch/x86/x86/pmap.c
diff -u src/sys/arch/x86/x86/pmap.c:1.327 src/sys/arch/x86/x86/pmap.c:1.328
--- src/sys/arch/x86/x86/pmap.c:1.327 Sat Feb 23 10:59:12 2019
+++ src/sys/arch/x86/x86/pmap.c Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.327 2019/02/23 10:59:12 maxv Exp $ */
+/* $NetBSD: pmap.c,v 1.328 2019/03/07 13:26:24 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.327 2019/02/23 10:59:12 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.328 2019/03/07 13:26:24 maxv Exp $");
#include "opt_user_ldt.h"
#include "opt_lockdebug.h"
@@ -1068,9 +1068,9 @@ pmap_bootstrap(vaddr_t kva_start)
* into a x86 PTE.
*/
protection_codes[VM_PROT_NONE] = pmap_pg_nx;
- protection_codes[VM_PROT_EXECUTE] = PG_RO | PG_X;
- protection_codes[VM_PROT_READ] = PG_RO | pmap_pg_nx;
- protection_codes[VM_PROT_READ|VM_PROT_EXECUTE] = PG_RO | PG_X;
+ protection_codes[VM_PROT_EXECUTE] = PG_X;
+ protection_codes[VM_PROT_READ] = pmap_pg_nx;
+ protection_codes[VM_PROT_READ|VM_PROT_EXECUTE] = PG_X;
protection_codes[VM_PROT_WRITE] = PG_RW | pmap_pg_nx;
protection_codes[VM_PROT_WRITE|VM_PROT_EXECUTE] = PG_RW | PG_X;
protection_codes[VM_PROT_WRITE|VM_PROT_READ] = PG_RW | pmap_pg_nx;
@@ -1660,7 +1660,7 @@ pmap_remap_largepages(void)
pa = roundup(bootspace.segs[i].pa, NBPD_L2);
for (/* */; kva < kva_end; kva += NBPD_L2, pa += NBPD_L2) {
pde = &L2_BASE[pl2_i(kva)];
- *pde = pa | pmap_pg_g | PG_PS | PG_KR | PG_V;
+ *pde = pa | pmap_pg_g | PG_PS | PG_V;
tlbflushg();
}
}
@@ -1679,7 +1679,7 @@ pmap_remap_largepages(void)
pa = roundup(bootspace.segs[i].pa, NBPD_L2);
for (/* */; kva < kva_end; kva += NBPD_L2, pa += NBPD_L2) {
pde = &L2_BASE[pl2_i(kva)];
- *pde = pa | pmap_pg_g | PG_PS | pmap_pg_nx | PG_KR | PG_V;
+ *pde = pa | pmap_pg_g | PG_PS | pmap_pg_nx | PG_V;
tlbflushg();
}
}
Index: src/sys/arch/xen/x86/x86_xpmap.c
diff -u src/sys/arch/xen/x86/x86_xpmap.c:1.82 src/sys/arch/xen/x86/x86_xpmap.c:1.83
--- src/sys/arch/xen/x86/x86_xpmap.c:1.82 Mon Feb 4 18:14:53 2019
+++ src/sys/arch/xen/x86/x86_xpmap.c Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: x86_xpmap.c,v 1.82 2019/02/04 18:14:53 cherry Exp $ */
+/* $NetBSD: x86_xpmap.c,v 1.83 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright (c) 2017 The NetBSD Foundation, Inc.
@@ -95,7 +95,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x86_xpmap.c,v 1.82 2019/02/04 18:14:53 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x86_xpmap.c,v 1.83 2019/03/07 13:26:24 maxv Exp $");
#include "opt_xen.h"
#include "opt_ddb.h"
@@ -769,20 +769,19 @@ xen_bootstrap_tables(vaddr_t old_pgd, va
pte[pl1_pi(page)] |= PG_V;
if (page < (vaddr_t)&__rodata_start) {
- /* Map the kernel text RX. */
- pte[pl1_pi(page)] |= PG_RO;
+ /* Map the kernel text RX. Nothing to do. */
} else if (page >= (vaddr_t)&__rodata_start &&
page < (vaddr_t)&__data_start) {
/* Map the kernel rodata R. */
- pte[pl1_pi(page)] |= PG_RO | xpmap_pg_nx;
+ pte[pl1_pi(page)] |= xpmap_pg_nx;
} else if (page >= old_pgd &&
page < old_pgd + (old_count * PAGE_SIZE)) {
/* Map the old page tables R. */
- pte[pl1_pi(page)] |= PG_RO | xpmap_pg_nx;
+ pte[pl1_pi(page)] |= xpmap_pg_nx;
} else if (page >= new_pgd &&
page < new_pgd + ((new_count + PDIRSZ) * PAGE_SIZE)) {
/* Map the new page tables R. */
- pte[pl1_pi(page)] |= PG_RO | xpmap_pg_nx;
+ pte[pl1_pi(page)] |= xpmap_pg_nx;
#ifdef i386
} else if (page == (vaddr_t)tmpgdt) {
/*
@@ -816,10 +815,10 @@ xen_bootstrap_tables(vaddr_t old_pgd, va
#ifdef __x86_64__
/* Recursive entry in pmap_kernel(). */
L4[PDIR_SLOT_PTE] = xpmap_ptom_masked((paddr_t)L4 - KERNBASE)
- | PG_RO | PG_V | xpmap_pg_nx;
+ | PG_V | xpmap_pg_nx;
/* Recursive entry in higher-level per-cpu PD. */
L4cpu[PDIR_SLOT_PTE] = xpmap_ptom_masked((paddr_t)L4cpu - KERNBASE)
- | PG_RO | PG_V | xpmap_pg_nx;
+ | PG_V | xpmap_pg_nx;
/* Mark tables RO */
xen_bt_set_readonly((vaddr_t)L2);
Index: src/sys/arch/xen/x86/xen_pmap.c
diff -u src/sys/arch/xen/x86/xen_pmap.c:1.28 src/sys/arch/xen/x86/xen_pmap.c:1.29
--- src/sys/arch/xen/x86/xen_pmap.c:1.28 Sat Feb 2 12:32:55 2019
+++ src/sys/arch/xen/x86/xen_pmap.c Thu Mar 7 13:26:24 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: xen_pmap.c,v 1.28 2019/02/02 12:32:55 cherry Exp $ */
+/* $NetBSD: xen_pmap.c,v 1.29 2019/03/07 13:26:24 maxv Exp $ */
/*
* Copyright (c) 2007 Manuel Bouyer.
@@ -101,7 +101,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: xen_pmap.c,v 1.28 2019/02/02 12:32:55 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: xen_pmap.c,v 1.29 2019/03/07 13:26:24 maxv Exp $");
#include "opt_user_ldt.h"
#include "opt_lockdebug.h"
@@ -175,7 +175,7 @@ pmap_kenter_ma(vaddr_t va, paddr_t ma, v
else
pte = kvtopte(va);
- npte = ma | ((prot & VM_PROT_WRITE) ? PG_RW : PG_RO) | PG_V;
+ npte = ma | ((prot & VM_PROT_WRITE) ? PG_RW : 0) | PG_V;
if (flags & PMAP_NOCACHE)
npte |= PG_N;