diff options
author | Antti Hatala <ahatala@nvidia.com> | 2010-05-20 03:48:41 -0700 |
---|---|---|
committer | Antti Hatala <ahatala@nvidia.com> | 2010-05-20 04:25:55 -0700 |
commit | 4bc4768e06afa53392678197d59b6394cdab5e1c (patch) | |
tree | f7043e35fe3becf3617aa9cd4b51e093f8661ea9 /arch/um/Makefile-ppc | |
parent | 0c7b09c2f248c69d7970bdbd211c4733c3e2b129 (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 'arch/um/Makefile-ppc')
0 files changed, 0 insertions, 0 deletions