aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/vmwgfx/vmwgfx_resource.c')
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_resource.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
index 252501a54def..5aace8081eef 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
@@ -994,7 +994,6 @@ void vmw_resource_unreserve(struct vmw_resource *res,
994 */ 994 */
995static int 995static int
996vmw_resource_check_buffer(struct vmw_resource *res, 996vmw_resource_check_buffer(struct vmw_resource *res,
997 struct ww_acquire_ctx *ticket,
998 bool interruptible, 997 bool interruptible,
999 struct ttm_validate_buffer *val_buf) 998 struct ttm_validate_buffer *val_buf)
1000{ 999{
@@ -1011,7 +1010,7 @@ vmw_resource_check_buffer(struct vmw_resource *res,
1011 INIT_LIST_HEAD(&val_list); 1010 INIT_LIST_HEAD(&val_list);
1012 val_buf->bo = ttm_bo_reference(&res->backup->base); 1011 val_buf->bo = ttm_bo_reference(&res->backup->base);
1013 list_add_tail(&val_buf->head, &val_list); 1012 list_add_tail(&val_buf->head, &val_list);
1014 ret = ttm_eu_reserve_buffers(ticket, &val_list); 1013 ret = ttm_eu_reserve_buffers(NULL, &val_list);
1015 if (unlikely(ret != 0)) 1014 if (unlikely(ret != 0))
1016 goto out_no_reserve; 1015 goto out_no_reserve;
1017 1016
@@ -1029,7 +1028,7 @@ vmw_resource_check_buffer(struct vmw_resource *res,
1029 return 0; 1028 return 0;
1030 1029
1031out_no_validate: 1030out_no_validate:
1032 ttm_eu_backoff_reservation(ticket, &val_list); 1031 ttm_eu_backoff_reservation(NULL, &val_list);
1033out_no_reserve: 1032out_no_reserve:
1034 ttm_bo_unref(&val_buf->bo); 1033 ttm_bo_unref(&val_buf->bo);
1035 if (backup_dirty) 1034 if (backup_dirty)
@@ -1074,8 +1073,7 @@ int vmw_resource_reserve(struct vmw_resource *res, bool no_backup)
1074 * @val_buf: Backup buffer information. 1073 * @val_buf: Backup buffer information.
1075 */ 1074 */
1076static void 1075static void
1077vmw_resource_backoff_reservation(struct ww_acquire_ctx *ticket, 1076vmw_resource_backoff_reservation(struct ttm_validate_buffer *val_buf)
1078 struct ttm_validate_buffer *val_buf)
1079{ 1077{
1080 struct list_head val_list; 1078 struct list_head val_list;
1081 1079
@@ -1084,7 +1082,7 @@ vmw_resource_backoff_reservation(struct ww_acquire_ctx *ticket,
1084 1082
1085 INIT_LIST_HEAD(&val_list); 1083 INIT_LIST_HEAD(&val_list);
1086 list_add_tail(&val_buf->head, &val_list); 1084 list_add_tail(&val_buf->head, &val_list);
1087 ttm_eu_backoff_reservation(ticket, &val_list); 1085 ttm_eu_backoff_reservation(NULL, &val_list);
1088 ttm_bo_unref(&val_buf->bo); 1086 ttm_bo_unref(&val_buf->bo);
1089} 1087}
1090 1088
@@ -1099,14 +1097,12 @@ int vmw_resource_do_evict(struct vmw_resource *res, bool interruptible)
1099{ 1097{
1100 struct ttm_validate_buffer val_buf; 1098 struct ttm_validate_buffer val_buf;
1101 const struct vmw_res_func *func = res->func; 1099 const struct vmw_res_func *func = res->func;
1102 struct ww_acquire_ctx ticket;
1103 int ret; 1100 int ret;
1104 1101
1105 BUG_ON(!func->may_evict); 1102 BUG_ON(!func->may_evict);
1106 1103
1107 val_buf.bo = NULL; 1104 val_buf.bo = NULL;
1108 ret = vmw_resource_check_buffer(res, &ticket, interruptible, 1105 ret = vmw_resource_check_buffer(res, interruptible, &val_buf);
1109 &val_buf);
1110 if (unlikely(ret != 0)) 1106 if (unlikely(ret != 0))
1111 return ret; 1107 return ret;
1112 1108
@@ -1121,7 +1117,7 @@ int vmw_resource_do_evict(struct vmw_resource *res, bool interruptible)
1121 res->backup_dirty = true; 1117 res->backup_dirty = true;
1122 res->res_dirty = false; 1118 res->res_dirty = false;
1123out_no_unbind: 1119out_no_unbind:
1124 vmw_resource_backoff_reservation(&ticket, &val_buf); 1120 vmw_resource_backoff_reservation(&val_buf);
1125 1121
1126 return ret; 1122 return ret;
1127} 1123}