Skip to content
Browse files

kernel - Acquire vm_token in pmap_remove_all()

* Kitchen sink try to fix the wire_count panic, acquire vm_token
  in pmap_remove_all().
  • Loading branch information...
1 parent ec3deae commit bcc6a8acdb71c15106d6533a6567cb237d253ffb Matthew Dillon committed Oct 4, 2012
Showing with 4 additions and 0 deletions.
  1. +4 −0 sys/platform/pc32/i386/pmap.c
View
4 sys/platform/pc32/i386/pmap.c
@@ -2053,7 +2053,10 @@ pmap_remove_all(vm_page_t m)
if (!pmap_initialized || (m->flags & PG_FICTITIOUS))
return;
+ if (TAILQ_EMPTY(&m->md.pv_list))
+ return;
+ lwkt_getoken(&vm_token);
pmap_inval_init(&info);
while ((pv = TAILQ_FIRST(&m->md.pv_list)) != NULL) {
pmap = pv->pv_pmap;
@@ -2105,6 +2108,7 @@ pmap_remove_all(vm_page_t m)
}
KKASSERT((m->flags & (PG_MAPPED|PG_WRITEABLE)) == 0);
pmap_inval_done(&info);
+ lwkt_reloken(&vm_token);
}
/*

0 comments on commit bcc6a8a

Please sign in to comment.
Something went wrong with that request. Please try again.