kernel - Implement segment pmap optimizations for x86-64 (5)
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 13 Sep 2012 20:47:03 +0000 (13:47 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 13 Sep 2012 20:47:03 +0000 (13:47 -0700)
commit01d2a79fb4fdd59ceeab82241e2cf0c121766201
treec873470317020bd5d0015be8af3093c1f119bddc
parenteb010d6e868d690bf48ae26fcea1e1a7bddcf642
kernel - Implement segment pmap optimizations for x86-64 (5)

* Fix self-deadlock in pmap_remove_*() sequence.  The sequence calls
  pmap_remove_callback() -> pmap_release_pv(proc_pt_pv) but the caller
  may already be holding the parent, proc_pd_pv, locked.  If
  pmap_release_pv() needs to get the parent it deadlocks.

  Fixed by passing the parent into pmap_release_pv() for this case.
sys/platform/pc64/x86_64/pmap.c