VIGS: unbind ttm bo before swapout
authorVasiliy Ulyanov <v.ulyanov@samsung.com>
Thu, 5 Nov 2015 14:43:49 +0000 (17:43 +0300)
committerJinhyung Jo <jinhyung.jo@samsung.com>
Wed, 10 May 2017 08:48:05 +0000 (17:48 +0900)
TTM BUGs if ttm_tt appears bound while being swaped out. Certain
precautions are now taken in swap_notify ttm_bo_driver callback.

Change-Id: I0c461e6d179af4b424125c1615f95738ac429d47
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
(cherry picked from commit c1d6b3e728436abaf4833abc66be8bf0f299506f)

drivers/gpu/drm/vigs/vigs_mman.c

index fa22fdd..9440d44 100644 (file)
@@ -309,6 +309,11 @@ static int vigs_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
     return 0;
 }
 
+void vigs_ttm_swap_notify(struct ttm_buffer_object *bo)
+{
+    ttm_tt_unbind(bo->ttm);
+}
+
 static int vigs_ttm_io_mem_reserve(struct ttm_bo_device *bo_dev,
                                    struct ttm_mem_reg *mem)
 {
@@ -362,6 +367,7 @@ static struct ttm_bo_driver vigs_ttm_bo_driver =
     .move = &vigs_ttm_move,
     .verify_access = &vigs_ttm_verify_access,
     .fault_reserve_notify = &vigs_ttm_fault_reserve_notify,
+    .swap_notify = &vigs_ttm_swap_notify,
     .io_mem_reserve = &vigs_ttm_io_mem_reserve,
     .io_mem_free = &vigs_ttm_io_mem_free,
 };