diff options
author | Dave Airlie <airlied@redhat.com> | 2014-04-05 02:07:39 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-04-05 02:07:39 -0400 |
commit | 8d51a977a4961d3ed6df699aea50bc2dd6bbc5cc (patch) | |
tree | cff4fe3ab8eee3d8efab35aa5dad0d7c33bde527 /drivers/gpu/drm/ttm | |
parent | aa17edff0afa893b5ab1dd60d842cc6f42e847b4 (diff) | |
parent | c75230833ce4fbbfaa257c07b55f97912fb1dc02 (diff) |
Merge tag 'ttm-next-2014-04-04' of git://people.freedesktop.org/~thomash/linux into drm-next
Pull request of 2014-04-04
Currently only a single patch fixing up mixed use of the ttm_bo_reserve and
ww_mutex APIs
* tag 'ttm-next-2014-04-04' of git://people.freedesktop.org/~thomash/linux:
drm/ttm: Hide the implementation details of reservation
Diffstat (limited to 'drivers/gpu/drm/ttm')
-rw-r--r-- | drivers/gpu/drm/ttm/ttm_bo.c | 26 | ||||
-rw-r--r-- | drivers/gpu/drm/ttm/ttm_execbuf_util.c | 8 |
2 files changed, 17 insertions, 17 deletions
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 9df79ac7b8f5..4ab9f7171c4f 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c | |||
@@ -412,7 +412,7 @@ static void ttm_bo_cleanup_refs_or_queue(struct ttm_buffer_object *bo) | |||
412 | int ret; | 412 | int ret; |
413 | 413 | ||
414 | spin_lock(&glob->lru_lock); | 414 | spin_lock(&glob->lru_lock); |
415 | ret = ttm_bo_reserve_nolru(bo, false, true, false, 0); | 415 | ret = __ttm_bo_reserve(bo, false, true, false, 0); |
416 | 416 | ||
417 | spin_lock(&bdev->fence_lock); | 417 | spin_lock(&bdev->fence_lock); |
418 | (void) ttm_bo_wait(bo, false, false, true); | 418 | (void) ttm_bo_wait(bo, false, false, true); |
@@ -443,7 +443,7 @@ static void ttm_bo_cleanup_refs_or_queue(struct ttm_buffer_object *bo) | |||
443 | ttm_bo_add_to_lru(bo); | 443 | ttm_bo_add_to_lru(bo); |
444 | } | 444 | } |
445 | 445 | ||
446 | ww_mutex_unlock(&bo->resv->lock); | 446 | __ttm_bo_unreserve(bo); |
447 | } | 447 | } |
448 | 448 | ||
449 | kref_get(&bo->list_kref); | 449 | kref_get(&bo->list_kref); |
@@ -494,7 +494,7 @@ static int ttm_bo_cleanup_refs_and_unlock(struct ttm_buffer_object *bo, | |||
494 | sync_obj = driver->sync_obj_ref(bo->sync_obj); | 494 | sync_obj = driver->sync_obj_ref(bo->sync_obj); |
495 | spin_unlock(&bdev->fence_lock); | 495 | spin_unlock(&bdev->fence_lock); |
496 | 496 | ||
497 | ww_mutex_unlock(&bo->resv->lock); | 497 | __ttm_bo_unreserve(bo); |
498 | spin_unlock(&glob->lru_lock); | 498 | spin_unlock(&glob->lru_lock); |
499 | 499 | ||
500 | ret = driver->sync_obj_wait(sync_obj, false, interruptible); | 500 | ret = driver->sync_obj_wait(sync_obj, false, interruptible); |
@@ -514,7 +514,7 @@ static int ttm_bo_cleanup_refs_and_unlock(struct ttm_buffer_object *bo, | |||
514 | return ret; | 514 | return ret; |
515 | 515 | ||
516 | spin_lock(&glob->lru_lock); | 516 | spin_lock(&glob->lru_lock); |
517 | ret = ttm_bo_reserve_nolru(bo, false, true, false, 0); | 517 | ret = __ttm_bo_reserve(bo, false, true, false, 0); |
518 | 518 | ||
519 | /* | 519 | /* |
520 | * We raced, and lost, someone else holds the reservation now, | 520 | * We raced, and lost, someone else holds the reservation now, |
@@ -532,7 +532,7 @@ static int ttm_bo_cleanup_refs_and_unlock(struct ttm_buffer_object *bo, | |||
532 | spin_unlock(&bdev->fence_lock); | 532 | spin_unlock(&bdev->fence_lock); |
533 | 533 | ||
534 | if (ret || unlikely(list_empty(&bo->ddestroy))) { | 534 | if (ret || unlikely(list_empty(&bo->ddestroy))) { |
535 | ww_mutex_unlock(&bo->resv->lock); | 535 | __ttm_bo_unreserve(bo); |
536 | spin_unlock(&glob->lru_lock); | 536 | spin_unlock(&glob->lru_lock); |
537 | return ret; | 537 | return ret; |
538 | } | 538 | } |
@@ -577,11 +577,11 @@ static int ttm_bo_delayed_delete(struct ttm_bo_device *bdev, bool remove_all) | |||
577 | kref_get(&nentry->list_kref); | 577 | kref_get(&nentry->list_kref); |
578 | } | 578 | } |
579 | 579 | ||
580 | ret = ttm_bo_reserve_nolru(entry, false, true, false, 0); | 580 | ret = __ttm_bo_reserve(entry, false, true, false, 0); |
581 | if (remove_all && ret) { | 581 | if (remove_all && ret) { |
582 | spin_unlock(&glob->lru_lock); | 582 | spin_unlock(&glob->lru_lock); |
583 | ret = ttm_bo_reserve_nolru(entry, false, false, | 583 | ret = __ttm_bo_reserve(entry, false, false, |
584 | false, 0); | 584 | false, 0); |
585 | spin_lock(&glob->lru_lock); | 585 | spin_lock(&glob->lru_lock); |
586 | } | 586 | } |
587 | 587 | ||
@@ -726,7 +726,7 @@ static int ttm_mem_evict_first(struct ttm_bo_device *bdev, | |||
726 | 726 | ||
727 | spin_lock(&glob->lru_lock); | 727 | spin_lock(&glob->lru_lock); |
728 | list_for_each_entry(bo, &man->lru, lru) { | 728 | list_for_each_entry(bo, &man->lru, lru) { |
729 | ret = ttm_bo_reserve_nolru(bo, false, true, false, 0); | 729 | ret = __ttm_bo_reserve(bo, false, true, false, 0); |
730 | if (!ret) | 730 | if (!ret) |
731 | break; | 731 | break; |
732 | } | 732 | } |
@@ -1630,7 +1630,7 @@ static int ttm_bo_swapout(struct ttm_mem_shrink *shrink) | |||
1630 | 1630 | ||
1631 | spin_lock(&glob->lru_lock); | 1631 | spin_lock(&glob->lru_lock); |
1632 | list_for_each_entry(bo, &glob->swap_lru, swap) { | 1632 | list_for_each_entry(bo, &glob->swap_lru, swap) { |
1633 | ret = ttm_bo_reserve_nolru(bo, false, true, false, 0); | 1633 | ret = __ttm_bo_reserve(bo, false, true, false, 0); |
1634 | if (!ret) | 1634 | if (!ret) |
1635 | break; | 1635 | break; |
1636 | } | 1636 | } |
@@ -1697,7 +1697,7 @@ out: | |||
1697 | * already swapped buffer. | 1697 | * already swapped buffer. |
1698 | */ | 1698 | */ |
1699 | 1699 | ||
1700 | ww_mutex_unlock(&bo->resv->lock); | 1700 | __ttm_bo_unreserve(bo); |
1701 | kref_put(&bo->list_kref, ttm_bo_release_list); | 1701 | kref_put(&bo->list_kref, ttm_bo_release_list); |
1702 | return ret; | 1702 | return ret; |
1703 | } | 1703 | } |
@@ -1731,10 +1731,10 @@ int ttm_bo_wait_unreserved(struct ttm_buffer_object *bo) | |||
1731 | return -ERESTARTSYS; | 1731 | return -ERESTARTSYS; |
1732 | if (!ww_mutex_is_locked(&bo->resv->lock)) | 1732 | if (!ww_mutex_is_locked(&bo->resv->lock)) |
1733 | goto out_unlock; | 1733 | goto out_unlock; |
1734 | ret = ttm_bo_reserve_nolru(bo, true, false, false, NULL); | 1734 | ret = __ttm_bo_reserve(bo, true, false, false, NULL); |
1735 | if (unlikely(ret != 0)) | 1735 | if (unlikely(ret != 0)) |
1736 | goto out_unlock; | 1736 | goto out_unlock; |
1737 | ww_mutex_unlock(&bo->resv->lock); | 1737 | __ttm_bo_unreserve(bo); |
1738 | 1738 | ||
1739 | out_unlock: | 1739 | out_unlock: |
1740 | mutex_unlock(&bo->wu_mutex); | 1740 | mutex_unlock(&bo->wu_mutex); |
diff --git a/drivers/gpu/drm/ttm/ttm_execbuf_util.c b/drivers/gpu/drm/ttm/ttm_execbuf_util.c index 479e9418e3d7..e8dac8758528 100644 --- a/drivers/gpu/drm/ttm/ttm_execbuf_util.c +++ b/drivers/gpu/drm/ttm/ttm_execbuf_util.c | |||
@@ -46,7 +46,7 @@ static void ttm_eu_backoff_reservation_locked(struct list_head *list) | |||
46 | ttm_bo_add_to_lru(bo); | 46 | ttm_bo_add_to_lru(bo); |
47 | entry->removed = false; | 47 | entry->removed = false; |
48 | } | 48 | } |
49 | ww_mutex_unlock(&bo->resv->lock); | 49 | __ttm_bo_unreserve(bo); |
50 | } | 50 | } |
51 | } | 51 | } |
52 | 52 | ||
@@ -140,8 +140,8 @@ retry: | |||
140 | if (entry->reserved) | 140 | if (entry->reserved) |
141 | continue; | 141 | continue; |
142 | 142 | ||
143 | ret = ttm_bo_reserve_nolru(bo, true, (ticket == NULL), true, | 143 | ret = __ttm_bo_reserve(bo, true, (ticket == NULL), true, |
144 | ticket); | 144 | ticket); |
145 | 145 | ||
146 | if (ret == -EDEADLK) { | 146 | if (ret == -EDEADLK) { |
147 | /* uh oh, we lost out, drop every reservation and try | 147 | /* uh oh, we lost out, drop every reservation and try |
@@ -224,7 +224,7 @@ void ttm_eu_fence_buffer_objects(struct ww_acquire_ctx *ticket, | |||
224 | entry->old_sync_obj = bo->sync_obj; | 224 | entry->old_sync_obj = bo->sync_obj; |
225 | bo->sync_obj = driver->sync_obj_ref(sync_obj); | 225 | bo->sync_obj = driver->sync_obj_ref(sync_obj); |
226 | ttm_bo_add_to_lru(bo); | 226 | ttm_bo_add_to_lru(bo); |
227 | ww_mutex_unlock(&bo->resv->lock); | 227 | __ttm_bo_unreserve(bo); |
228 | entry->reserved = false; | 228 | entry->reserved = false; |
229 | } | 229 | } |
230 | spin_unlock(&bdev->fence_lock); | 230 | spin_unlock(&bdev->fence_lock); |