diff options
author | Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> | 2007-03-30 14:14:26 +0200 |
---|---|---|
committer | Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> | 2007-04-03 10:29:14 +0200 |
commit | 7743af94492681f5aaf7cfdef78d695a6db7cbd0 (patch) | |
tree | a83554dc99ef853cbcb8cedd08c718927ca5b662 /linux-core | |
parent | d85e243259259d7702db0d344ae1ff7d26598227 (diff) |
Evicted no-move buffers can get lost if they end up in another
memory type than local.
Diffstat (limited to 'linux-core')
-rw-r--r-- | linux-core/drm_bo.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/linux-core/drm_bo.c b/linux-core/drm_bo.c index cea6ef62..17d6fbc0 100644 --- a/linux-core/drm_bo.c +++ b/linux-core/drm_bo.c @@ -75,7 +75,8 @@ void drm_bo_add_to_lru(drm_buffer_object_t * bo) { drm_mem_type_manager_t *man; - if (!(bo->mem.mask & (DRM_BO_FLAG_NO_MOVE | DRM_BO_FLAG_NO_EVICT))) { + if (!(bo->mem.mask & (DRM_BO_FLAG_NO_MOVE | DRM_BO_FLAG_NO_EVICT)) + || bo->mem.mem_type != bo->pinned_mem_type) { man = &bo->dev->bm.man[bo->mem.mem_type]; list_add_tail(&bo->lru, &man->lru); } else { |