diff options
| author | bjh21 <bjh21@NetBSD.org> | 2001-10-13 15:17:38 +0000 |
|---|---|---|
| committer | bjh21 <bjh21@NetBSD.org> | 2001-10-13 15:17:38 +0000 |
| commit | cabab13edde7deb969cfdac0be992ce725eaee42 (patch) | |
| tree | ccabf907d2c676a3ab401601c14089e894df8a7a /sys | |
| parent | 8bf90d96b4e8d83d4e1555eee7d476424d2963d5 (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.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/ddb/db_watch.c | 7 |
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 |
