Module Name:    src
Committed By:   maxv
Date:           Wed Aug 29 06:17:26 UTC 2018

Modified Files:
        src/sys/arch/amd64/amd64: machdep.c
        src/sys/arch/x86/include: pmap.h
        src/sys/arch/x86/x86: pmap.c

Log Message:
Simplify the ASLR stuff, we don't care about resizable areas now, and it
makes the code more complicated for no good reason.


To generate a diff of this commit:
cvs rdiff -u -r1.316 -r1.317 src/sys/arch/amd64/amd64/machdep.c
cvs rdiff -u -r1.85 -r1.86 src/sys/arch/x86/include/pmap.h
cvs rdiff -u -r1.305 -r1.306 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/amd64/amd64/machdep.c
diff -u src/sys/arch/amd64/amd64/machdep.c:1.316 src/sys/arch/amd64/amd64/machdep.c:1.317
--- src/sys/arch/amd64/amd64/machdep.c:1.316	Wed Aug 22 12:07:42 2018
+++ src/sys/arch/amd64/amd64/machdep.c	Wed Aug 29 06:17:26 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: machdep.c,v 1.316 2018/08/22 12:07:42 maxv Exp $	*/
+/*	$NetBSD: machdep.c,v 1.317 2018/08/29 06:17:26 maxv Exp $	*/
 
 /*
  * Copyright (c) 1996, 1997, 1998, 2000, 2006, 2007, 2008, 2011
@@ -110,7 +110,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.316 2018/08/22 12:07:42 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.317 2018/08/29 06:17:26 maxv Exp $");
 
 #include "opt_modular.h"
 #include "opt_user_ldt.h"
@@ -1617,75 +1617,55 @@ init_slotspace(void)
 
 	/* User. [256, because we want to land in >= 256] */
 	slotspace.area[SLAREA_USER].sslot = 0;
-	slotspace.area[SLAREA_USER].mslot = PDIR_SLOT_USERLIM+1;
 	slotspace.area[SLAREA_USER].nslot = PDIR_SLOT_USERLIM+1;
 	slotspace.area[SLAREA_USER].active = true;
-	slotspace.area[SLAREA_USER].dropmax = false;
 
 #ifdef XEN
 	/* PTE. */
 	slotspace.area[SLAREA_PTE].sslot = PDIR_SLOT_PTE;
-	slotspace.area[SLAREA_PTE].mslot = 1;
 	slotspace.area[SLAREA_PTE].nslot = 1;
 	slotspace.area[SLAREA_PTE].active = true;
-	slotspace.area[SLAREA_PTE].dropmax = false;
 #endif
 
 #ifdef __HAVE_PCPU_AREA
 	/* Per-CPU. */
 	slotspace.area[SLAREA_PCPU].sslot = PDIR_SLOT_PCPU;
-	slotspace.area[SLAREA_PCPU].mslot = 1;
 	slotspace.area[SLAREA_PCPU].nslot = 1;
 	slotspace.area[SLAREA_PCPU].active = true;
-	slotspace.area[SLAREA_PCPU].dropmax = false;
 #endif
 
 #ifdef __HAVE_DIRECT_MAP
-	/* Direct Map. */
-	slotspace.area[SLAREA_DMAP].sslot = PDIR_SLOT_DIRECT;
-	slotspace.area[SLAREA_DMAP].mslot = NL4_SLOT_DIRECT+1;
-	slotspace.area[SLAREA_DMAP].nslot = 0 /* variable */;
+	/* Direct Map. [Randomized later] */
 	slotspace.area[SLAREA_DMAP].active = false;
-	slotspace.area[SLAREA_DMAP].dropmax = true;
 #endif
 
 #ifdef XEN
 	/* Hypervisor. */
 	slotspace.area[SLAREA_HYPV].sslot = 256;
-	slotspace.area[SLAREA_HYPV].mslot = 17;
 	slotspace.area[SLAREA_HYPV].nslot = 17;
 	slotspace.area[SLAREA_HYPV].active = true;
-	slotspace.area[SLAREA_HYPV].dropmax = false;
 #endif
 
 #ifdef KASAN
 	/* ASAN. */
 	slotspace.area[SLAREA_ASAN].sslot = L4_SLOT_KASAN;
-	slotspace.area[SLAREA_ASAN].mslot = NL4_SLOT_KASAN;
 	slotspace.area[SLAREA_ASAN].nslot = NL4_SLOT_KASAN;
 	slotspace.area[SLAREA_ASAN].active = true;
-	slotspace.area[SLAREA_ASAN].dropmax = false;
 #endif
 
 	/* Kernel. */
 	slotspace.area[SLAREA_KERN].sslot = L4_SLOT_KERNBASE;
-	slotspace.area[SLAREA_KERN].mslot = 1;
 	slotspace.area[SLAREA_KERN].nslot = 1;
 	slotspace.area[SLAREA_KERN].active = true;
-	slotspace.area[SLAREA_KERN].dropmax = false;
 
 	/* Main. */
-	slotspace.area[SLAREA_MAIN].mslot = NKL4_MAX_ENTRIES+1;
-	slotspace.area[SLAREA_MAIN].dropmax = false;
 	va = slotspace_rand(SLAREA_MAIN, NKL4_MAX_ENTRIES * NBPD_L4,
-	    NBPD_L4);
+	    NBPD_L4); /* TODO: NBPD_L1 */
 	vm_min_kernel_address = va;
 	vm_max_kernel_address = va + NKL4_MAX_ENTRIES * NBPD_L4;
 
 #ifndef XEN
 	/* PTE. */
-	slotspace.area[SLAREA_PTE].mslot = 1;
-	slotspace.area[SLAREA_PTE].dropmax = false;
 	va = slotspace_rand(SLAREA_PTE, NBPD_L4, NBPD_L4);
 	pte_base = (pd_entry_t *)va;
 #endif

Index: src/sys/arch/x86/include/pmap.h
diff -u src/sys/arch/x86/include/pmap.h:1.85 src/sys/arch/x86/include/pmap.h:1.86
--- src/sys/arch/x86/include/pmap.h:1.85	Mon Aug 20 15:04:52 2018
+++ src/sys/arch/x86/include/pmap.h	Wed Aug 29 06:17:26 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.h,v 1.85 2018/08/20 15:04:52 maxv Exp $	*/
+/*	$NetBSD: pmap.h,v 1.86 2018/08/29 06:17:26 maxv Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -169,9 +169,7 @@ struct slotspace {
 	struct {
 		size_t sslot; /* start slot */
 		size_t nslot; /* # of slots */
-		size_t mslot; /* max # of slots */
 		bool active;  /* area is active */
-		bool dropmax; /* !resizable */
 	} area[SLSPACE_NAREAS];
 };
 

Index: src/sys/arch/x86/x86/pmap.c
diff -u src/sys/arch/x86/x86/pmap.c:1.305 src/sys/arch/x86/x86/pmap.c:1.306
--- src/sys/arch/x86/x86/pmap.c:1.305	Wed Aug 22 12:07:43 2018
+++ src/sys/arch/x86/x86/pmap.c	Wed Aug 29 06:17:26 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.305 2018/08/22 12:07:43 maxv Exp $	*/
+/*	$NetBSD: pmap.c,v 1.306 2018/08/29 06:17:26 maxv Exp $	*/
 
 /*
  * Copyright (c) 2008, 2010, 2016, 2017 The NetBSD Foundation, Inc.
@@ -157,7 +157,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.305 2018/08/22 12:07:43 maxv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.306 2018/08/29 06:17:26 maxv Exp $");
 
 #include "opt_user_ldt.h"
 #include "opt_lockdebug.h"
@@ -1473,9 +1473,6 @@ slotspace_rand(int type, size_t sz, size
 	slotspace.area[type].sslot = pl4_i(va);
 	slotspace.area[type].nslot =
 	    pmap_pagetree_nentries_range(va, va+sz, NBPD_L4);
-	if (slotspace.area[type].dropmax) {
-		slotspace.area[type].mslot = slotspace.area[type].nslot;
-	}
 	slotspace.area[type].active = true;
 
 	return va;

Reply via email to