aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/ttm
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2011-08-21 23:15:05 -0400
committerDave Airlie <airlied@redhat.com>2011-08-23 04:38:30 -0400
commit8d3bb23609d4ae22803a15d232289fc09a7b61c4 (patch)
treef48c0874a1e5c25f39c140af99a3ba722142db98 /drivers/gpu/drm/ttm
parenteac2095398668f989a3dd8d00be1b87850d78c01 (diff)
drm/ttm: ensure ttm for new node is bound before calling move_notify()
This was true for new TTM_PL_SYSTEM and new TTM_PL_TT cases, but wasn't the case on TTM_PL_SYSTEM<->TTM_PL_TT moves, which causes trouble on some paths as nouveau's move_notify() hook requires that the dma addresses be valid at this point. Signed-off-by: Ben Skeggs <bskeggs@redhat.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.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
index 384116afe5b7..a4d38d85909a 100644
--- a/drivers/gpu/drm/ttm/ttm_bo.c
+++ b/drivers/gpu/drm/ttm/ttm_bo.c
@@ -392,10 +392,12 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
392 * Create and bind a ttm if required. 392 * Create and bind a ttm if required.
393 */ 393 */
394 394
395 if (!(new_man->flags & TTM_MEMTYPE_FLAG_FIXED) && (bo->ttm == NULL)) { 395 if (!(new_man->flags & TTM_MEMTYPE_FLAG_FIXED)) {
396 ret = ttm_bo_add_ttm(bo, false); 396 if (bo->ttm == NULL) {
397 if (ret) 397 ret = ttm_bo_add_ttm(bo, false);
398 goto out_err; 398 if (ret)
399 goto out_err;
400 }
399 401
400 ret = ttm_tt_set_placement_caching(bo->ttm, mem->placement); 402 ret = ttm_tt_set_placement_caching(bo->ttm, mem->placement);
401 if (ret) 403 if (ret)