From 77accc351e56e027cd2031e370ebce1039e06f4e Mon Sep 17 00:00:00 2001 From: pk Date: Sun, 2 Mar 2003 21:42:48 +0000 Subject: [PATCH] Use the new pmap_kprotect() function instead of pmap_changeprot(). The latter is now a pmap internal function; and it wasn't used correctly in mkclock.c anyway. --- sys/arch/sparc/sparc/intr.c | 12 +++++------- sys/arch/sparc/sparc/mkclock.c | 8 ++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/sys/arch/sparc/sparc/intr.c b/sys/arch/sparc/sparc/intr.c index a44727f84834..9bb1b2b17bde 100644 --- a/sys/arch/sparc/sparc/intr.c +++ b/sys/arch/sparc/sparc/intr.c @@ -1,4 +1,4 @@ -/* $NetBSD: intr.c,v 1.79 2003/01/23 22:33:41 pk Exp $ */ +/* $NetBSD: intr.c,v 1.80 2003/03/02 21:42:48 pk Exp $ */ /* * Copyright (c) 1992, 1993 @@ -487,13 +487,12 @@ inst_fasttrap(int level, void (*vec)(void)) s = splhigh(); /* kernel text is write protected -- let us in for a moment */ - pmap_changeprot(pmap_kernel(), (vaddr_t)tv, - VM_PROT_READ|VM_PROT_WRITE, 1); + pmap_kprotect((vaddr_t)tv & -NBPG, NBPG, VM_PROT_READ|VM_PROT_WRITE); cpuinfo.cache_flush_all(); tv->tv_instr[0] = I_SETHI(I_L3, hi22); /* sethi %hi(vec),%l3 */ tv->tv_instr[1] = I_JMPLri(I_G0, I_L3, lo10);/* jmpl %l3+%lo(vec),%g0 */ tv->tv_instr[2] = I_RDPSR(I_L0); /* mov %psr, %l0 */ - pmap_changeprot(pmap_kernel(), (vaddr_t)tv, VM_PROT_READ, 1); + pmap_kprotect((vaddr_t)tv & -NBPG, NBPG, VM_PROT_READ); cpuinfo.cache_flush_all(); fastvec |= 1 << level; splx(s); @@ -516,13 +515,12 @@ uninst_fasttrap(int level) : &sparc_interrupt44c[0] - &tv->tv_instr[1]; /* kernel text is write protected -- let us in for a moment */ - pmap_changeprot(pmap_kernel(), (vaddr_t)tv, - VM_PROT_READ|VM_PROT_WRITE, 1); + pmap_kprotect((vaddr_t)tv & -NBPG, NBPG, VM_PROT_READ|VM_PROT_WRITE); cpuinfo.cache_flush_all(); tv->tv_instr[0] = I_MOVi(I_L3, level); tv->tv_instr[1] = I_BA(0, displ); tv->tv_instr[2] = I_RDPSR(I_L0); - pmap_changeprot(pmap_kernel(), (vaddr_t)tv, VM_PROT_READ, 1); + pmap_kprotect((vaddr_t)tv & -NBPG, NBPG, VM_PROT_READ); cpuinfo.cache_flush_all(); fastvec &= ~(1 << level); splx(s); diff --git a/sys/arch/sparc/sparc/mkclock.c b/sys/arch/sparc/sparc/mkclock.c index e22ac6e510dc..806c73b4271c 100644 --- a/sys/arch/sparc/sparc/mkclock.c +++ b/sys/arch/sparc/sparc/mkclock.c @@ -1,4 +1,4 @@ -/* $NetBSD: mkclock.c,v 1.5 2003/02/26 17:39:07 pk Exp $ */ +/* $NetBSD: mkclock.c,v 1.6 2003/03/02 21:42:48 pk Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -267,8 +267,8 @@ mk_nvram_wenable(onoff) { int s; vm_prot_t prot;/* nonzero => change prot */ - int npages; vaddr_t base; + vsize_t size; static int writers; s = splhigh(); @@ -278,10 +278,10 @@ mk_nvram_wenable(onoff) prot = --writers == 0 ? VM_PROT_READ : 0; splx(s); - npages = round_page((vsize_t)mk_nvram_size) << PAGE_SHIFT; + size = round_page((vsize_t)mk_nvram_size); base = trunc_page((vaddr_t)mk_nvram_base); if (prot) - pmap_changeprot(pmap_kernel(), base, prot, npages); + pmap_kprotect(base, size, prot); return (0); }