On Wed, Jan 25, 2017 at 10:49:33AM +0100, Christian König wrote: > Am 25.01.2017 um 10:25 schrieb Thomas Hellstrom: > >On 01/25/2017 09:21 AM, Michel Dänzer wrote: > >>From: Michel Dänzer <michel.daenzer@xxxxxxx> > >> > >>The current caching state may not be tt_cached, even though the > >>placement contains TTM_PL_FLAG_CACHED, because placement can contain > >>multiple caching flags. Trying to swap out such a BO would trip up the > >> > >> BUG_ON(ttm->caching_state != tt_cached); > >> > >>in ttm_tt_swapout. > >> > >>Cc: stable@xxxxxxxxxxxxxxx > >>Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx> > >Reviewed-by: Thomas Hellstrom <thellstrom@xxxxxxxxxx> > > Reviewed-by: Christian König <christian.koenig@xxxxxxx>. Reviewed-by: Sinclair Yeh <syeh@xxxxxxxxxx> > > > > >>--- > >> drivers/gpu/drm/ttm/ttm_bo.c | 4 ++-- > >> 1 file changed, 2 insertions(+), 2 deletions(-) > >> > >>diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c > >>index d5063618efa7..86e3b233b722 100644 > >>--- a/drivers/gpu/drm/ttm/ttm_bo.c > >>+++ b/drivers/gpu/drm/ttm/ttm_bo.c > >>@@ -1670,7 +1670,6 @@ static int ttm_bo_swapout(struct ttm_mem_shrink *shrink) > >> struct ttm_buffer_object *bo; > >> int ret = -EBUSY; > >> int put_count; > >>- uint32_t swap_placement = (TTM_PL_FLAG_CACHED | TTM_PL_FLAG_SYSTEM); > >> spin_lock(&glob->lru_lock); > >> list_for_each_entry(bo, &glob->swap_lru, swap) { > >>@@ -1701,7 +1700,8 @@ static int ttm_bo_swapout(struct ttm_mem_shrink *shrink) > >> * Move to system cached > >> */ > >>- if ((bo->mem.placement & swap_placement) != swap_placement) { > >>+ if (bo->mem.mem_type != TTM_PL_SYSTEM || > >>+ bo->ttm->caching_state != tt_cached) { > >> struct ttm_mem_reg evict_mem; > >> evict_mem = bo->mem; > > > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel