diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2010-10-29 04:46:48 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-11-08 22:33:49 -0500 |
commit | 06fba6d4168069d818593e2fcc2d4bd0f888e97b (patch) | |
tree | 25f0d1338da8942ef54b8ab926a48c1789317eee /drivers/gpu/drm/ttm | |
parent | dbc4a5b83585e89a6bce650d32426f61c8d4bca5 (diff) |
drm/ttm: Add a barrier when unreserving
Since we're doing this outside of a spinlock to provide the necessary
barriers, add an explicit barrier.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/ttm')
-rw-r--r-- | drivers/gpu/drm/ttm/ttm_bo.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index f561eead057d..a32fe41e5e24 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/mm.h> | 37 | #include <linux/mm.h> |
38 | #include <linux/file.h> | 38 | #include <linux/file.h> |
39 | #include <linux/module.h> | 39 | #include <linux/module.h> |
40 | #include <asm/atomic.h> | ||
40 | 41 | ||
41 | #define TTM_ASSERT_LOCKED(param) | 42 | #define TTM_ASSERT_LOCKED(param) |
42 | #define TTM_DEBUG(fmt, arg...) | 43 | #define TTM_DEBUG(fmt, arg...) |
@@ -444,6 +445,11 @@ static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo) | |||
444 | ttm_bo_mem_put(bo, &bo->mem); | 445 | ttm_bo_mem_put(bo, &bo->mem); |
445 | 446 | ||
446 | atomic_set(&bo->reserved, 0); | 447 | atomic_set(&bo->reserved, 0); |
448 | |||
449 | /* | ||
450 | * Make processes trying to reserve really pick it up. | ||
451 | */ | ||
452 | smp_mb__after_atomic_dec(); | ||
447 | wake_up_all(&bo->event_queue); | 453 | wake_up_all(&bo->event_queue); |
448 | } | 454 | } |
449 | 455 | ||