From d5d2e7af1eb8e428b6b1f2d463bff33135eff116 Mon Sep 17 00:00:00 2001 From: Jerome Glisse Date: Fri, 18 Nov 2011 11:47:03 -0500 Subject: [PATCH] --- yaml --- r: 282495 b: refs/heads/master c: dc97b3409a790d2a21aac6e5cdb99558b5944119 h: refs/heads/master i: 282493: d2c10008a6db98fdca9950bb1417bc7aa10114b6 282491: 88844140b22d62adbab15acca338ca5b05f12deb 282487: 59626b38a4817ea41ad965c717d52ba6b61e99cf 282479: c311d0a5826425c05513a05daa5658ec20f1e07f 282463: 9fd3191618767de870b9a627e6892ae9fbb5d50b 282431: 36ff56722e7d87be83e092e8fa3311251224a020 282367: 77eaa2ac6484ab57bc2cebe05108de6e583bd6a3 v: v3 --- [refs] | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 4 ++-- trunk/drivers/gpu/drm/ttm/ttm_bo.c | 9 ++++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 4b56fb368b6f..97c2b55b0fa3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 57de4ba959b290f0b8cf36ecd5e7f1b29d4b8a12 +refs/heads/master: dc97b3409a790d2a21aac6e5cdb99558b5944119 diff --git a/trunk/drivers/gpu/drm/nouveau/nouveau_bo.c b/trunk/drivers/gpu/drm/nouveau/nouveau_bo.c index 7ac7bc3a8de3..b1b33a108b31 100644 --- a/trunk/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/trunk/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -815,10 +815,10 @@ nouveau_bo_move_ntfy(struct ttm_buffer_object *bo, struct ttm_mem_reg *new_mem) struct nouveau_vma *vma; list_for_each_entry(vma, &nvbo->vma_list, head) { - if (new_mem->mem_type == TTM_PL_VRAM) { + if (new_mem && new_mem->mem_type == TTM_PL_VRAM) { nouveau_vm_map(vma, new_mem->mm_node); } else - if (new_mem->mem_type == TTM_PL_TT && + if (new_mem && new_mem->mem_type == TTM_PL_TT && nvbo->page_shift == vma->vm->spg_shift) { nouveau_vm_map_sg(vma, 0, new_mem-> num_pages << PAGE_SHIFT, diff --git a/trunk/drivers/gpu/drm/ttm/ttm_bo.c b/trunk/drivers/gpu/drm/ttm/ttm_bo.c index de7ad9991902..119b6e3ff906 100644 --- a/trunk/drivers/gpu/drm/ttm/ttm_bo.c +++ b/trunk/drivers/gpu/drm/ttm/ttm_bo.c @@ -404,9 +404,6 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, } } - if (bdev->driver->move_notify) - bdev->driver->move_notify(bo, mem); - if (!(old_man->flags & TTM_MEMTYPE_FLAG_FIXED) && !(new_man->flags & TTM_MEMTYPE_FLAG_FIXED)) ret = ttm_bo_move_ttm(bo, evict, no_wait_reserve, no_wait_gpu, mem); @@ -419,6 +416,9 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, if (ret) goto out_err; + if (bdev->driver->move_notify) + bdev->driver->move_notify(bo, mem); + moved: if (bo->evicted) { ret = bdev->driver->invalidate_caches(bdev, bo->mem.placement); @@ -457,6 +457,9 @@ static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo, static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo) { + if (bo->bdev->driver->move_notify) + bo->bdev->driver->move_notify(bo, NULL); + if (bo->ttm) { ttm_tt_unbind(bo->ttm); ttm_tt_destroy(bo->ttm);