kernel - Fix races created by a comedy of circumstansces (3)
commite989b548a6dd474e7809e205bab50d123198cf57
authorMatthew Dillon <dillon@apollo.backplane.com>
Mon, 30 Jan 2017 17:45:58 +0000 (30 09:45 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Mon, 30 Jan 2017 17:50:19 +0000 (30 09:50 -0800)
tree9905d583019cb37d095ae569fa1b9d553ab721be
parent864231c19af309bbba217b50313058ab63eb1531
kernel - Fix races created by a comedy of circumstansces (3)

* Change pv semantics such that pv->pv_m must always exist while a pv is
  installed in the pmap's RBTREE.

* Change pv_put() to assert that pv->pv_m exists.  Use an unlock/drop
  sequence for those cases where it might not exist.

* Fix an incorrect assertion.

* Move a pv_put() outside of the pmap spinlock that was incorrectly inside.

* Reorder how PG_MANGED_IDX / PG_UNMANAGED tests work.
sys/platform/pc64/include/pmap.h
sys/platform/pc64/x86_64/pmap.c