All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/ttm: Make sure BOs being swapped out are cacheable
@ 2017-01-25  8:21 Michel Dänzer
  2017-01-25  9:25   ` Thomas Hellstrom
  0 siblings, 1 reply; 23+ messages in thread
From: Michel Dänzer @ 2017-01-25  8:21 UTC (permalink / raw)
  To: Christian König
  Cc: dri-devel, Sinclair Yeh, Thomas Hellstrom, linux-kernel

From: Michel Dänzer <michel.daenzer@amd.com>

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@vger.kernel.org
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
---
 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;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2017-01-27 15:11 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-25  8:21 [PATCH] drm/ttm: Make sure BOs being swapped out are cacheable Michel Dänzer
2017-01-25  9:25 ` Thomas Hellstrom
2017-01-25  9:25   ` Thomas Hellstrom
2017-01-25  9:49   ` Christian König
2017-01-25  9:49     ` Christian König
2017-01-26  0:46     ` Sinclair Yeh
2017-01-26  0:46       ` Sinclair Yeh
2017-01-27  2:29       ` Michel Dänzer
2017-01-27  2:29         ` Michel Dänzer
2017-01-27  6:23         ` Thomas Hellstrom
2017-01-27  6:23           ` Thomas Hellstrom
2017-01-27  7:30           ` Daniel Vetter
2017-01-27  7:30             ` Daniel Vetter
2017-01-27  8:22             ` Christian König
2017-01-27  8:22               ` Christian König
2017-01-27 14:12               ` Daniel Vetter
2017-01-27 14:12                 ` Daniel Vetter
2017-01-27 14:43                 ` Christian König
2017-01-27 14:43                   ` Christian König
2017-01-27 14:52                   ` Daniel Vetter
2017-01-27 14:52                     ` Daniel Vetter
2017-01-27 15:03               ` Alex Deucher
2017-01-27 15:03                 ` Alex Deucher

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.