summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbjh21 <bjh21@NetBSD.org>2001-10-13 15:17:38 +0000
committerbjh21 <bjh21@NetBSD.org>2001-10-13 15:17:38 +0000
commitcabab13edde7deb969cfdac0be992ce725eaee42 (patch)
treeccabf907d2c676a3ab401601c14089e894df8a7a
parent8bf90d96b4e8d83d4e1555eee7d476424d2963d5 (diff)
When setting watchpoints, call pmap_update() for each watchpoint, rather
than at the end, since they may be in different pmaps. This avoids a null pointer dereference that was causing panics when resuming from DDB on arm26.
-rw-r--r--sys/ddb/db_watch.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/ddb/db_watch.c b/sys/ddb/db_watch.c
index 7f82fa61fac..36d359ddb8c 100644
--- a/sys/ddb/db_watch.c
+++ b/sys/ddb/db_watch.c
@@ -1,4 +1,4 @@
-/* $NetBSD: db_watch.c,v 1.16 2001/09/10 21:19:42 chris Exp $ */
+/* $NetBSD: db_watch.c,v 1.17 2001/10/13 15:17:38 bjh21 Exp $ */
/*
* Mach Operating System
@@ -221,15 +221,16 @@ db_set_watchpoints()
if (!db_watchpoints_inserted) {
for (watch = db_watchpoint_list;
watch != 0;
- watch = watch->link)
+ watch = watch->link) {
pmap_protect(watch->map->pmap,
trunc_page(watch->loaddr),
round_page(watch->hiaddr),
VM_PROT_READ);
+ pmap_update(watch->map->pmap);
+ }
db_watchpoints_inserted = TRUE;
}
- pmap_update(watch->map->pmap);
}
void