summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorAntti Hatala <ahatala@nvidia.com>2010-05-20 03:48:41 -0700
committerAntti Hatala <ahatala@nvidia.com>2010-05-20 04:25:55 -0700
commit4bc4768e06afa53392678197d59b6394cdab5e1c (patch)
treef7043e35fe3becf3617aa9cd4b51e093f8661ea9 /kernel
parent0c7b09c2f248c69d7970bdbd211c4733c3e2b129 (diff)
nvmap: fix unpin/pin race condition with RECLAIM_UNPINNED_VM
_nvmap_handle_unpin needs to acquire the mru_vma_lock before decrementing the pin count, to ensure that a decrement to zero and insertion on the MRU VMA list appears atomic with respect to a second client calling _nvmap_handle_pin on the same handle; otherwise, the two clients race and the pin operation may trigger a BUG because the handle has a valid IOVMM area but is not located on any MRU VMA list. also, clean up some additional allocation-inside-spinlock issues; release the MRU VMA lock before calling tegra_iovmm_create_vm, and reacquire the lock after returning. Change-Id: If3a32e493a9222eac56a0980c10c0d4281389e7e Reviewed-on: http://git-master/r/1448 Tested-by: Antti Hatala <ahatala@nvidia.com> Reviewed-by: Antti Hatala <ahatala@nvidia.com>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions