···412412 int ret;413413414414 spin_lock(&glob->lru_lock);415415- ret = ttm_bo_reserve_nolru(bo, false, true, false, 0);415415+ ret = __ttm_bo_reserve(bo, false, true, false, 0);416416417417 spin_lock(&bdev->fence_lock);418418 (void) ttm_bo_wait(bo, false, false, true);···443443 ttm_bo_add_to_lru(bo);444444 }445445446446- ww_mutex_unlock(&bo->resv->lock);446446+ __ttm_bo_unreserve(bo);447447 }448448449449 kref_get(&bo->list_kref);···494494 sync_obj = driver->sync_obj_ref(bo->sync_obj);495495 spin_unlock(&bdev->fence_lock);496496497497- ww_mutex_unlock(&bo->resv->lock);497497+ __ttm_bo_unreserve(bo);498498 spin_unlock(&glob->lru_lock);499499500500 ret = driver->sync_obj_wait(sync_obj, false, interruptible);···514514 return ret;515515516516 spin_lock(&glob->lru_lock);517517- ret = ttm_bo_reserve_nolru(bo, false, true, false, 0);517517+ ret = __ttm_bo_reserve(bo, false, true, false, 0);518518519519 /*520520 * We raced, and lost, someone else holds the reservation now,···532532 spin_unlock(&bdev->fence_lock);533533534534 if (ret || unlikely(list_empty(&bo->ddestroy))) {535535- ww_mutex_unlock(&bo->resv->lock);535535+ __ttm_bo_unreserve(bo);536536 spin_unlock(&glob->lru_lock);537537 return ret;538538 }···577577 kref_get(&nentry->list_kref);578578 }579579580580- ret = ttm_bo_reserve_nolru(entry, false, true, false, 0);580580+ ret = __ttm_bo_reserve(entry, false, true, false, 0);581581 if (remove_all && ret) {582582 spin_unlock(&glob->lru_lock);583583- ret = ttm_bo_reserve_nolru(entry, false, false,584584- false, 0);583583+ ret = __ttm_bo_reserve(entry, false, false,584584+ false, 0);585585 spin_lock(&glob->lru_lock);586586 }587587···726726727727 spin_lock(&glob->lru_lock);728728 list_for_each_entry(bo, &man->lru, lru) {729729- ret = ttm_bo_reserve_nolru(bo, false, true, false, 0);729729+ ret = __ttm_bo_reserve(bo, false, true, false, 0);730730 if (!ret)731731 break;732732 }···1630163016311631 spin_lock(&glob->lru_lock);16321632 list_for_each_entry(bo, &glob->swap_lru, swap) {16331633- ret = ttm_bo_reserve_nolru(bo, false, true, false, 0);16331633+ ret = __ttm_bo_reserve(bo, false, true, false, 0);16341634 if (!ret)16351635 break;16361636 }···16971697 * already swapped buffer.16981698 */1699169917001700- ww_mutex_unlock(&bo->resv->lock);17001700+ __ttm_bo_unreserve(bo);17011701 kref_put(&bo->list_kref, ttm_bo_release_list);17021702 return ret;17031703}···17311731 return -ERESTARTSYS;17321732 if (!ww_mutex_is_locked(&bo->resv->lock))17331733 goto out_unlock;17341734- ret = ttm_bo_reserve_nolru(bo, true, false, false, NULL);17341734+ ret = __ttm_bo_reserve(bo, true, false, false, NULL);17351735 if (unlikely(ret != 0))17361736 goto out_unlock;17371737- ww_mutex_unlock(&bo->resv->lock);17371737+ __ttm_bo_unreserve(bo);1738173817391739out_unlock:17401740 mutex_unlock(&bo->wu_mutex);
+4-4
drivers/gpu/drm/ttm/ttm_execbuf_util.c
···4646 ttm_bo_add_to_lru(bo);4747 entry->removed = false;4848 }4949- ww_mutex_unlock(&bo->resv->lock);4949+ __ttm_bo_unreserve(bo);5050 }5151}5252···140140 if (entry->reserved)141141 continue;142142143143- ret = ttm_bo_reserve_nolru(bo, true, (ticket == NULL), true,144144- ticket);143143+ ret = __ttm_bo_reserve(bo, true, (ticket == NULL), true,144144+ ticket);145145146146 if (ret == -EDEADLK) {147147 /* uh oh, we lost out, drop every reservation and try···224224 entry->old_sync_obj = bo->sync_obj;225225 bo->sync_obj = driver->sync_obj_ref(sync_obj);226226 ttm_bo_add_to_lru(bo);227227- ww_mutex_unlock(&bo->resv->lock);227227+ __ttm_bo_unreserve(bo);228228 entry->reserved = false;229229 }230230 spin_unlock(&bdev->fence_lock);
+29-18
include/drm/ttm/ttm_bo_driver.h
···788788extern void ttm_bo_add_to_lru(struct ttm_buffer_object *bo);789789790790/**791791- * ttm_bo_reserve_nolru:791791+ * __ttm_bo_reserve:792792 *793793 * @bo: A pointer to a struct ttm_buffer_object.794794 * @interruptible: Sleep interruptible if waiting.···809809 * -EALREADY: Bo already reserved using @ticket. This error code will only810810 * be returned if @use_ticket is set to true.811811 */812812-static inline int ttm_bo_reserve_nolru(struct ttm_buffer_object *bo,813813- bool interruptible,814814- bool no_wait, bool use_ticket,815815- struct ww_acquire_ctx *ticket)812812+static inline int __ttm_bo_reserve(struct ttm_buffer_object *bo,813813+ bool interruptible,814814+ bool no_wait, bool use_ticket,815815+ struct ww_acquire_ctx *ticket)816816{817817 int ret = 0;818818···888888889889 WARN_ON(!atomic_read(&bo->kref.refcount));890890891891- ret = ttm_bo_reserve_nolru(bo, interruptible, no_wait, use_ticket,892892- ticket);891891+ ret = __ttm_bo_reserve(bo, interruptible, no_wait, use_ticket, ticket);893892 if (likely(ret == 0))894893 ttm_bo_del_sub_from_lru(bo);895894···928929}929930930931/**931931- * ttm_bo_unreserve_ticket932932+ * __ttm_bo_unreserve932933 * @bo: A pointer to a struct ttm_buffer_object.933933- * @ticket: ww_acquire_ctx used for reserving934934 *935935- * Unreserve a previous reservation of @bo made with @ticket.935935+ * Unreserve a previous reservation of @bo where the buffer object is936936+ * already on lru lists.936937 */937937-static inline void ttm_bo_unreserve_ticket(struct ttm_buffer_object *bo,938938- struct ww_acquire_ctx *t)938938+static inline void __ttm_bo_unreserve(struct ttm_buffer_object *bo)939939{940940- if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {941941- spin_lock(&bo->glob->lru_lock);942942- ttm_bo_add_to_lru(bo);943943- spin_unlock(&bo->glob->lru_lock);944944- }945940 ww_mutex_unlock(&bo->resv->lock);946941}947942···948955 */949956static inline void ttm_bo_unreserve(struct ttm_buffer_object *bo)950957{951951- ttm_bo_unreserve_ticket(bo, NULL);958958+ if (!(bo->mem.placement & TTM_PL_FLAG_NO_EVICT)) {959959+ spin_lock(&bo->glob->lru_lock);960960+ ttm_bo_add_to_lru(bo);961961+ spin_unlock(&bo->glob->lru_lock);962962+ }963963+ __ttm_bo_unreserve(bo);964964+}965965+966966+/**967967+ * ttm_bo_unreserve_ticket968968+ * @bo: A pointer to a struct ttm_buffer_object.969969+ * @ticket: ww_acquire_ctx used for reserving970970+ *971971+ * Unreserve a previous reservation of @bo made with @ticket.972972+ */973973+static inline void ttm_bo_unreserve_ticket(struct ttm_buffer_object *bo,974974+ struct ww_acquire_ctx *t)975975+{976976+ ttm_bo_unreserve(bo);952977}953978954979/*