Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-4]: src/sys/arch/alpha/alpha Pull up revision 1.116 (requested ...
details: https://anonhg.NetBSD.org/src/rev/0f136eb3c82b
branches: netbsd-1-4
changeset: 469755:0f136eb3c82b
user: he <he%NetBSD.org@localhost>
date: Sat Nov 27 16:02:09 1999 +0000
description:
Pull up revision 1.116 (requested by mycroft):
Fix bugs in pmap_protect():
o do not overrun eva by L1SEG_SIZE - PAGE_SIZE.
o do not advance sva twice for each valid l3 or l2 page.
diffstat:
sys/arch/alpha/alpha/pmap.c | 19 ++++++++-----------
1 files changed, 8 insertions(+), 11 deletions(-)
diffs (44 lines):
diff -r 44351ee2bf28 -r 0f136eb3c82b sys/arch/alpha/alpha/pmap.c
--- a/sys/arch/alpha/alpha/pmap.c Sat Nov 27 15:56:16 1999 +0000
+++ b/sys/arch/alpha/alpha/pmap.c Sat Nov 27 16:02:09 1999 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.88.2.4 1999/06/18 16:49:45 perry Exp $ */
+/* $NetBSD: pmap.c,v 1.88.2.5 1999/11/27 16:02:09 he Exp $ */
/*-
* Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -155,7 +155,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.88.2.4 1999/06/18 16:49:45 perry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.88.2.5 1999/11/27 16:02:09 he Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1496,19 +1496,16 @@
isactive = PMAP_ISACTIVE(pmap);
l1pte = pmap_l1pte(pmap, sva);
- for (; sva < eva;
- sva = alpha_trunc_l1seg(sva) + ALPHA_L1SEG_SIZE, l1pte++) {
+ for (; sva < eva; sva = l1eva, l1pte++) {
+ l1eva = alpha_trunc_l1seg(sva) + ALPHA_L1SEG_SIZE;
if (pmap_pte_v(l1pte)) {
l2pte = pmap_l2pte(pmap, sva, l1pte);
- for (l1eva = alpha_trunc_l1seg(sva) + ALPHA_L1SEG_SIZE;
- sva < l1eva;
- sva = alpha_trunc_l2seg(sva) + ALPHA_L2SEG_SIZE,
- l2pte++) {
+ for (; sva < l1eva && sva < eva; sva = l2eva, l2pte++) {
+ l2eva =
+ alpha_trunc_l2seg(sva) + ALPHA_L2SEG_SIZE;
if (pmap_pte_v(l2pte)) {
l3pte = pmap_l3pte(pmap, sva, l2pte);
- for (l2eva = alpha_trunc_l2seg(sva) +
- ALPHA_L2SEG_SIZE;
- sva < l2eva;
+ for (; sva < l2eva && sva < eva;
sva += PAGE_SIZE, l3pte++) {
if (pmap_pte_v(l3pte) &&
pmap_pte_prot_chg(l3pte,
Home |
Main Index |
Thread Index |
Old Index