summaryrefslogtreecommitdiffstats
path: root/sys/net80211
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-08-18 21:36:22 +0000
committerkib <kib@FreeBSD.org>2013-08-18 21:36:22 +0000
commit17c7e12452a08f448fd5a4204936d7b073e0dc1f (patch)
tree8090c377de586f7d10e88fac7a08c24e84bce578 /sys/net80211
parent7bc0ae6019ebfae94a80ca21f770e5eeaaea6d17 (diff)
downloadFreeBSD-src-17c7e12452a08f448fd5a4204936d7b073e0dc1f.zip
FreeBSD-src-17c7e12452a08f448fd5a4204936d7b073e0dc1f.tar.gz
When code from r254064 in pmap_ts_referenced() drops pv lock and
blocks on a pmap lock, pmap_release() might proceed in parallel and destroy the pmap mutex, since unlocked pv lock allows to remove pv entry owned by the pmap. For now, gate the pmap_release() on write-locked pvh_global_lock. Since pmap_ts_release() does not unlock the global lock, pmap_release() would not destroy pmap mutex until the pmap_ts_referenced() finished. We cannot enter pmap_ts_referenced() and encounter a pv entry for the destroyed pmap if pmap_release() passed the global lock gate, since pmap_remove_pages() would finish earlier. Reported by: jeff, pho Reviewed by: alc Tested by: pho Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/net80211')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud