summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2017-12-04 22:06:21 +0000
committerkettenis <kettenis@openbsd.org>2017-12-04 22:06:21 +0000
commit7431db0afb8460fd6dbe821ecbf64d7217deac18 (patch)
tree102a0ac9cc35bcd75b09cf363de29f772e2bb003
parentUse _kernel_lock_held() instead of __mp_lock_held(&kernel_lock). (diff)
downloadwireguard-openbsd-7431db0afb8460fd6dbe821ecbf64d7217deac18.tar.xz
wireguard-openbsd-7431db0afb8460fd6dbe821ecbf64d7217deac18.zip
Sadly the firmware on SPARC T7 machines omits the executable bit on mappings
that contain code, just like some sun4u machines. So add it for sun4v as well when entering the mappings into the kernel pmap.
-rw-r--r--sys/arch/sparc64/sparc64/pmap.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/sys/arch/sparc64/sparc64/pmap.c b/sys/arch/sparc64/sparc64/pmap.c
index 2275a42545d..345992aeb71 100644
--- a/sys/arch/sparc64/sparc64/pmap.c
+++ b/sys/arch/sparc64/sparc64/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.102 2017/12/03 10:55:50 mpi Exp $ */
+/* $OpenBSD: pmap.c,v 1.103 2017/12/04 22:06:21 kettenis Exp $ */
/* $NetBSD: pmap.c,v 1.107 2001/08/31 16:47:41 eeh Exp $ */
#undef NO_VCACHE /* Don't forget the locked TLB in dostart */
/*
@@ -1090,9 +1090,7 @@ remap_data:
BDPRINTF(PDB_BOOT1, ("Done inserting mesgbuf into pmap_kernel()\r\n"));
BDPRINTF(PDB_BOOT1, ("Inserting PROM mappings into pmap_kernel()\r\n"));
- data = 0;
- if (CPU_ISSUN4U || CPU_ISSUN4US)
- data = SUN4U_TLB_EXEC;
+ data = (CPU_ISSUN4V ? SUN4V_TLB_EXEC : SUN4U_TLB_EXEC);
for (i = 0; i < prom_map_size; i++) {
if (prom_map[i].vstart && ((prom_map[i].vstart>>32) == 0)) {
for (j = 0; j < prom_map[i].vsize; j += NBPG) {