|
@@ -186,8 +186,12 @@ EXPORT_SYMBOL(ttm_bo_add_to_lru);
|
|
|
|
|
|
int ttm_bo_del_from_lru(struct ttm_buffer_object *bo)
|
|
|
{
|
|
|
+ struct ttm_bo_device *bdev = bo->bdev;
|
|
|
int put_count = 0;
|
|
|
|
|
|
+ if (bdev->driver->lru_removal)
|
|
|
+ bdev->driver->lru_removal(bo);
|
|
|
+
|
|
|
if (!list_empty(&bo->swap)) {
|
|
|
list_del_init(&bo->swap);
|
|
|
++put_count;
|
|
@@ -197,11 +201,6 @@ int ttm_bo_del_from_lru(struct ttm_buffer_object *bo)
|
|
|
++put_count;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * TODO: Add a driver hook to delete from
|
|
|
- * driver-specific LRU's here.
|
|
|
- */
|
|
|
-
|
|
|
return put_count;
|
|
|
}
|
|
|
|
|
@@ -235,6 +234,9 @@ void ttm_bo_move_to_lru_tail(struct ttm_buffer_object *bo)
|
|
|
|
|
|
lockdep_assert_held(&bo->resv->lock.base);
|
|
|
|
|
|
+ if (bdev->driver->lru_removal)
|
|
|
+ bdev->driver->lru_removal(bo);
|
|
|
+
|
|
|
if (bo->mem.placement & TTM_PL_FLAG_NO_EVICT) {
|
|
|
list_del_init(&bo->swap);
|
|
|
list_del_init(&bo->lru);
|