diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2017-04-28 04:28:14 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-04-28 17:33:16 -0400 |
commit | c81a1a74037f61c578f6b8218b079aa434e300b4 (patch) | |
tree | 8176c83897e467d913a7059e1a652a9adb7598a7 /drivers/gpu/drm/amd/amdgpu | |
parent | 8b9242eddd51f17b8306d6c96172fd68ef1106c6 (diff) |
drm/amdgpu: Make amdgpu_bo_reserve use uninterruptible waits for cleanup
Some of these paths probably cannot be interrupted by a signal anyway.
Those that can would fail to clean up things if they actually got
interrupted.
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 10 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | 8 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 8 |
16 files changed, 36 insertions, 36 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c index d46773b8f7e8..21125a9452b8 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | |||
@@ -123,7 +123,7 @@ static void amdgpu_unpin_work_func(struct work_struct *__work) | |||
123 | int r; | 123 | int r; |
124 | 124 | ||
125 | /* unpin of the old buffer */ | 125 | /* unpin of the old buffer */ |
126 | r = amdgpu_bo_reserve(work->old_abo, false); | 126 | r = amdgpu_bo_reserve(work->old_abo, true); |
127 | if (likely(r == 0)) { | 127 | if (likely(r == 0)) { |
128 | r = amdgpu_bo_unpin(work->old_abo); | 128 | r = amdgpu_bo_unpin(work->old_abo); |
129 | if (unlikely(r != 0)) { | 129 | if (unlikely(r != 0)) { |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c index a48142d930c6..236d9950221b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | |||
@@ -112,7 +112,7 @@ static void amdgpufb_destroy_pinned_object(struct drm_gem_object *gobj) | |||
112 | struct amdgpu_bo *abo = gem_to_amdgpu_bo(gobj); | 112 | struct amdgpu_bo *abo = gem_to_amdgpu_bo(gobj); |
113 | int ret; | 113 | int ret; |
114 | 114 | ||
115 | ret = amdgpu_bo_reserve(abo, false); | 115 | ret = amdgpu_bo_reserve(abo, true); |
116 | if (likely(ret == 0)) { | 116 | if (likely(ret == 0)) { |
117 | amdgpu_bo_kunmap(abo); | 117 | amdgpu_bo_kunmap(abo); |
118 | amdgpu_bo_unpin(abo); | 118 | amdgpu_bo_unpin(abo); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c index 6d691abe889c..e7406ce7093c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c | |||
@@ -183,7 +183,7 @@ void amdgpu_gart_table_vram_unpin(struct amdgpu_device *adev) | |||
183 | if (adev->gart.robj == NULL) { | 183 | if (adev->gart.robj == NULL) { |
184 | return; | 184 | return; |
185 | } | 185 | } |
186 | r = amdgpu_bo_reserve(adev->gart.robj, false); | 186 | r = amdgpu_bo_reserve(adev->gart.robj, true); |
187 | if (likely(r == 0)) { | 187 | if (likely(r == 0)) { |
188 | amdgpu_bo_kunmap(adev->gart.robj); | 188 | amdgpu_bo_kunmap(adev->gart.robj); |
189 | amdgpu_bo_unpin(adev->gart.robj); | 189 | amdgpu_bo_unpin(adev->gart.robj); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c index 21f616cdb279..4f2b6679f72f 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | |||
@@ -821,7 +821,7 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev, | |||
821 | 821 | ||
822 | if (amdgpu_sriov_vf(adev)) { | 822 | if (amdgpu_sriov_vf(adev)) { |
823 | /* TODO: how to handle reserve failure */ | 823 | /* TODO: how to handle reserve failure */ |
824 | BUG_ON(amdgpu_bo_reserve(adev->virt.csa_obj, false)); | 824 | BUG_ON(amdgpu_bo_reserve(adev->virt.csa_obj, true)); |
825 | amdgpu_vm_bo_rmv(adev, fpriv->vm.csa_bo_va); | 825 | amdgpu_vm_bo_rmv(adev, fpriv->vm.csa_bo_va); |
826 | fpriv->vm.csa_bo_va = NULL; | 826 | fpriv->vm.csa_bo_va = NULL; |
827 | amdgpu_bo_unreserve(adev->virt.csa_obj); | 827 | amdgpu_bo_unreserve(adev->virt.csa_obj); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c index 3826d5aea0a6..6bdc866570ab 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c | |||
@@ -113,7 +113,7 @@ void amdgpu_gem_prime_unpin(struct drm_gem_object *obj) | |||
113 | struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); | 113 | struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); |
114 | int ret = 0; | 114 | int ret = 0; |
115 | 115 | ||
116 | ret = amdgpu_bo_reserve(bo, false); | 116 | ret = amdgpu_bo_reserve(bo, true); |
117 | if (unlikely(ret != 0)) | 117 | if (unlikely(ret != 0)) |
118 | return; | 118 | return; |
119 | 119 | ||
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c index de9f919ae336..5ca75a456ad2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c | |||
@@ -130,7 +130,7 @@ int amdgpu_sa_bo_manager_suspend(struct amdgpu_device *adev, | |||
130 | return -EINVAL; | 130 | return -EINVAL; |
131 | } | 131 | } |
132 | 132 | ||
133 | r = amdgpu_bo_reserve(sa_manager->bo, false); | 133 | r = amdgpu_bo_reserve(sa_manager->bo, true); |
134 | if (!r) { | 134 | if (!r) { |
135 | amdgpu_bo_kunmap(sa_manager->bo); | 135 | amdgpu_bo_kunmap(sa_manager->bo); |
136 | amdgpu_bo_unpin(sa_manager->bo); | 136 | amdgpu_bo_unpin(sa_manager->bo); |
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 24ca251f82ca..7bb1bf76319a 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | |||
@@ -1198,7 +1198,7 @@ void amdgpu_ttm_fini(struct amdgpu_device *adev) | |||
1198 | return; | 1198 | return; |
1199 | amdgpu_ttm_debugfs_fini(adev); | 1199 | amdgpu_ttm_debugfs_fini(adev); |
1200 | if (adev->stollen_vga_memory) { | 1200 | if (adev->stollen_vga_memory) { |
1201 | r = amdgpu_bo_reserve(adev->stollen_vga_memory, false); | 1201 | r = amdgpu_bo_reserve(adev->stollen_vga_memory, true); |
1202 | if (r == 0) { | 1202 | if (r == 0) { |
1203 | amdgpu_bo_unpin(adev->stollen_vga_memory); | 1203 | amdgpu_bo_unpin(adev->stollen_vga_memory); |
1204 | amdgpu_bo_unreserve(adev->stollen_vga_memory); | 1204 | amdgpu_bo_unreserve(adev->stollen_vga_memory); |
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c index ba98d35340a3..0cdeb6a2e4a0 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | |||
@@ -2230,7 +2230,7 @@ static int dce_v10_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2230 | if (!atomic && fb && fb != crtc->primary->fb) { | 2230 | if (!atomic && fb && fb != crtc->primary->fb) { |
2231 | amdgpu_fb = to_amdgpu_framebuffer(fb); | 2231 | amdgpu_fb = to_amdgpu_framebuffer(fb); |
2232 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 2232 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
2233 | r = amdgpu_bo_reserve(abo, false); | 2233 | r = amdgpu_bo_reserve(abo, true); |
2234 | if (unlikely(r != 0)) | 2234 | if (unlikely(r != 0)) |
2235 | return r; | 2235 | return r; |
2236 | amdgpu_bo_unpin(abo); | 2236 | amdgpu_bo_unpin(abo); |
@@ -2589,7 +2589,7 @@ static int dce_v10_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
2589 | unpin: | 2589 | unpin: |
2590 | if (amdgpu_crtc->cursor_bo) { | 2590 | if (amdgpu_crtc->cursor_bo) { |
2591 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); | 2591 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); |
2592 | ret = amdgpu_bo_reserve(aobj, false); | 2592 | ret = amdgpu_bo_reserve(aobj, true); |
2593 | if (likely(ret == 0)) { | 2593 | if (likely(ret == 0)) { |
2594 | amdgpu_bo_unpin(aobj); | 2594 | amdgpu_bo_unpin(aobj); |
2595 | amdgpu_bo_unreserve(aobj); | 2595 | amdgpu_bo_unreserve(aobj); |
@@ -2720,7 +2720,7 @@ static void dce_v10_0_crtc_disable(struct drm_crtc *crtc) | |||
2720 | 2720 | ||
2721 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); | 2721 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); |
2722 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 2722 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
2723 | r = amdgpu_bo_reserve(abo, false); | 2723 | r = amdgpu_bo_reserve(abo, true); |
2724 | if (unlikely(r)) | 2724 | if (unlikely(r)) |
2725 | DRM_ERROR("failed to reserve abo before unpin\n"); | 2725 | DRM_ERROR("failed to reserve abo before unpin\n"); |
2726 | else { | 2726 | else { |
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c index e59bc42df18c..773654a19749 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | |||
@@ -2214,7 +2214,7 @@ static int dce_v11_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2214 | if (!atomic && fb && fb != crtc->primary->fb) { | 2214 | if (!atomic && fb && fb != crtc->primary->fb) { |
2215 | amdgpu_fb = to_amdgpu_framebuffer(fb); | 2215 | amdgpu_fb = to_amdgpu_framebuffer(fb); |
2216 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 2216 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
2217 | r = amdgpu_bo_reserve(abo, false); | 2217 | r = amdgpu_bo_reserve(abo, true); |
2218 | if (unlikely(r != 0)) | 2218 | if (unlikely(r != 0)) |
2219 | return r; | 2219 | return r; |
2220 | amdgpu_bo_unpin(abo); | 2220 | amdgpu_bo_unpin(abo); |
@@ -2609,7 +2609,7 @@ static int dce_v11_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
2609 | unpin: | 2609 | unpin: |
2610 | if (amdgpu_crtc->cursor_bo) { | 2610 | if (amdgpu_crtc->cursor_bo) { |
2611 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); | 2611 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); |
2612 | ret = amdgpu_bo_reserve(aobj, false); | 2612 | ret = amdgpu_bo_reserve(aobj, true); |
2613 | if (likely(ret == 0)) { | 2613 | if (likely(ret == 0)) { |
2614 | amdgpu_bo_unpin(aobj); | 2614 | amdgpu_bo_unpin(aobj); |
2615 | amdgpu_bo_unreserve(aobj); | 2615 | amdgpu_bo_unreserve(aobj); |
@@ -2740,7 +2740,7 @@ static void dce_v11_0_crtc_disable(struct drm_crtc *crtc) | |||
2740 | 2740 | ||
2741 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); | 2741 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); |
2742 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 2742 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
2743 | r = amdgpu_bo_reserve(abo, false); | 2743 | r = amdgpu_bo_reserve(abo, true); |
2744 | if (unlikely(r)) | 2744 | if (unlikely(r)) |
2745 | DRM_ERROR("failed to reserve abo before unpin\n"); | 2745 | DRM_ERROR("failed to reserve abo before unpin\n"); |
2746 | else { | 2746 | else { |
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c index e146d252aa30..1f3552967ba3 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | |||
@@ -1645,7 +1645,7 @@ static int dce_v6_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
1645 | if (!atomic && fb && fb != crtc->primary->fb) { | 1645 | if (!atomic && fb && fb != crtc->primary->fb) { |
1646 | amdgpu_fb = to_amdgpu_framebuffer(fb); | 1646 | amdgpu_fb = to_amdgpu_framebuffer(fb); |
1647 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 1647 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
1648 | r = amdgpu_bo_reserve(abo, false); | 1648 | r = amdgpu_bo_reserve(abo, true); |
1649 | if (unlikely(r != 0)) | 1649 | if (unlikely(r != 0)) |
1650 | return r; | 1650 | return r; |
1651 | amdgpu_bo_unpin(abo); | 1651 | amdgpu_bo_unpin(abo); |
@@ -1962,7 +1962,7 @@ static int dce_v6_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
1962 | unpin: | 1962 | unpin: |
1963 | if (amdgpu_crtc->cursor_bo) { | 1963 | if (amdgpu_crtc->cursor_bo) { |
1964 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); | 1964 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); |
1965 | ret = amdgpu_bo_reserve(aobj, false); | 1965 | ret = amdgpu_bo_reserve(aobj, true); |
1966 | if (likely(ret == 0)) { | 1966 | if (likely(ret == 0)) { |
1967 | amdgpu_bo_unpin(aobj); | 1967 | amdgpu_bo_unpin(aobj); |
1968 | amdgpu_bo_unreserve(aobj); | 1968 | amdgpu_bo_unreserve(aobj); |
@@ -2088,7 +2088,7 @@ static void dce_v6_0_crtc_disable(struct drm_crtc *crtc) | |||
2088 | 2088 | ||
2089 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); | 2089 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); |
2090 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 2090 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
2091 | r = amdgpu_bo_reserve(abo, false); | 2091 | r = amdgpu_bo_reserve(abo, true); |
2092 | if (unlikely(r)) | 2092 | if (unlikely(r)) |
2093 | DRM_ERROR("failed to reserve abo before unpin\n"); | 2093 | DRM_ERROR("failed to reserve abo before unpin\n"); |
2094 | else { | 2094 | else { |
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c index 6df7a28e8aac..3c558c170e5e 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | |||
@@ -2089,7 +2089,7 @@ static int dce_v8_0_crtc_do_set_base(struct drm_crtc *crtc, | |||
2089 | if (!atomic && fb && fb != crtc->primary->fb) { | 2089 | if (!atomic && fb && fb != crtc->primary->fb) { |
2090 | amdgpu_fb = to_amdgpu_framebuffer(fb); | 2090 | amdgpu_fb = to_amdgpu_framebuffer(fb); |
2091 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 2091 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
2092 | r = amdgpu_bo_reserve(abo, false); | 2092 | r = amdgpu_bo_reserve(abo, true); |
2093 | if (unlikely(r != 0)) | 2093 | if (unlikely(r != 0)) |
2094 | return r; | 2094 | return r; |
2095 | amdgpu_bo_unpin(abo); | 2095 | amdgpu_bo_unpin(abo); |
@@ -2440,7 +2440,7 @@ static int dce_v8_0_crtc_cursor_set2(struct drm_crtc *crtc, | |||
2440 | unpin: | 2440 | unpin: |
2441 | if (amdgpu_crtc->cursor_bo) { | 2441 | if (amdgpu_crtc->cursor_bo) { |
2442 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); | 2442 | struct amdgpu_bo *aobj = gem_to_amdgpu_bo(amdgpu_crtc->cursor_bo); |
2443 | ret = amdgpu_bo_reserve(aobj, false); | 2443 | ret = amdgpu_bo_reserve(aobj, true); |
2444 | if (likely(ret == 0)) { | 2444 | if (likely(ret == 0)) { |
2445 | amdgpu_bo_unpin(aobj); | 2445 | amdgpu_bo_unpin(aobj); |
2446 | amdgpu_bo_unreserve(aobj); | 2446 | amdgpu_bo_unreserve(aobj); |
@@ -2571,7 +2571,7 @@ static void dce_v8_0_crtc_disable(struct drm_crtc *crtc) | |||
2571 | 2571 | ||
2572 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); | 2572 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); |
2573 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 2573 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
2574 | r = amdgpu_bo_reserve(abo, false); | 2574 | r = amdgpu_bo_reserve(abo, true); |
2575 | if (unlikely(r)) | 2575 | if (unlikely(r)) |
2576 | DRM_ERROR("failed to reserve abo before unpin\n"); | 2576 | DRM_ERROR("failed to reserve abo before unpin\n"); |
2577 | else { | 2577 | else { |
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c index 81a24b6b4846..f1b479b6ac98 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c | |||
@@ -248,7 +248,7 @@ static void dce_virtual_crtc_disable(struct drm_crtc *crtc) | |||
248 | 248 | ||
249 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); | 249 | amdgpu_fb = to_amdgpu_framebuffer(crtc->primary->fb); |
250 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); | 250 | abo = gem_to_amdgpu_bo(amdgpu_fb->obj); |
251 | r = amdgpu_bo_reserve(abo, false); | 251 | r = amdgpu_bo_reserve(abo, true); |
252 | if (unlikely(r)) | 252 | if (unlikely(r)) |
253 | DRM_ERROR("failed to reserve abo before unpin\n"); | 253 | DRM_ERROR("failed to reserve abo before unpin\n"); |
254 | else { | 254 | else { |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c index 6a429e927297..a125f9d44577 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c | |||
@@ -2437,7 +2437,7 @@ static void gfx_v6_0_rlc_fini(struct amdgpu_device *adev) | |||
2437 | int r; | 2437 | int r; |
2438 | 2438 | ||
2439 | if (adev->gfx.rlc.save_restore_obj) { | 2439 | if (adev->gfx.rlc.save_restore_obj) { |
2440 | r = amdgpu_bo_reserve(adev->gfx.rlc.save_restore_obj, false); | 2440 | r = amdgpu_bo_reserve(adev->gfx.rlc.save_restore_obj, true); |
2441 | if (unlikely(r != 0)) | 2441 | if (unlikely(r != 0)) |
2442 | dev_warn(adev->dev, "(%d) reserve RLC sr bo failed\n", r); | 2442 | dev_warn(adev->dev, "(%d) reserve RLC sr bo failed\n", r); |
2443 | amdgpu_bo_unpin(adev->gfx.rlc.save_restore_obj); | 2443 | amdgpu_bo_unpin(adev->gfx.rlc.save_restore_obj); |
@@ -2448,7 +2448,7 @@ static void gfx_v6_0_rlc_fini(struct amdgpu_device *adev) | |||
2448 | } | 2448 | } |
2449 | 2449 | ||
2450 | if (adev->gfx.rlc.clear_state_obj) { | 2450 | if (adev->gfx.rlc.clear_state_obj) { |
2451 | r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false); | 2451 | r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true); |
2452 | if (unlikely(r != 0)) | 2452 | if (unlikely(r != 0)) |
2453 | dev_warn(adev->dev, "(%d) reserve RLC c bo failed\n", r); | 2453 | dev_warn(adev->dev, "(%d) reserve RLC c bo failed\n", r); |
2454 | amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj); | 2454 | amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj); |
@@ -2459,7 +2459,7 @@ static void gfx_v6_0_rlc_fini(struct amdgpu_device *adev) | |||
2459 | } | 2459 | } |
2460 | 2460 | ||
2461 | if (adev->gfx.rlc.cp_table_obj) { | 2461 | if (adev->gfx.rlc.cp_table_obj) { |
2462 | r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, false); | 2462 | r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, true); |
2463 | if (unlikely(r != 0)) | 2463 | if (unlikely(r != 0)) |
2464 | dev_warn(adev->dev, "(%d) reserve RLC cp table bo failed\n", r); | 2464 | dev_warn(adev->dev, "(%d) reserve RLC cp table bo failed\n", r); |
2465 | amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj); | 2465 | amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj); |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c index eca022eaff44..ee2f2139e2eb 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | |||
@@ -2792,7 +2792,7 @@ static void gfx_v7_0_cp_compute_fini(struct amdgpu_device *adev) | |||
2792 | struct amdgpu_ring *ring = &adev->gfx.compute_ring[i]; | 2792 | struct amdgpu_ring *ring = &adev->gfx.compute_ring[i]; |
2793 | 2793 | ||
2794 | if (ring->mqd_obj) { | 2794 | if (ring->mqd_obj) { |
2795 | r = amdgpu_bo_reserve(ring->mqd_obj, false); | 2795 | r = amdgpu_bo_reserve(ring->mqd_obj, true); |
2796 | if (unlikely(r != 0)) | 2796 | if (unlikely(r != 0)) |
2797 | dev_warn(adev->dev, "(%d) reserve MQD bo failed\n", r); | 2797 | dev_warn(adev->dev, "(%d) reserve MQD bo failed\n", r); |
2798 | 2798 | ||
@@ -2810,7 +2810,7 @@ static void gfx_v7_0_mec_fini(struct amdgpu_device *adev) | |||
2810 | int r; | 2810 | int r; |
2811 | 2811 | ||
2812 | if (adev->gfx.mec.hpd_eop_obj) { | 2812 | if (adev->gfx.mec.hpd_eop_obj) { |
2813 | r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, false); | 2813 | r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, true); |
2814 | if (unlikely(r != 0)) | 2814 | if (unlikely(r != 0)) |
2815 | dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", r); | 2815 | dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", r); |
2816 | amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj); | 2816 | amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj); |
@@ -3359,7 +3359,7 @@ static void gfx_v7_0_rlc_fini(struct amdgpu_device *adev) | |||
3359 | 3359 | ||
3360 | /* save restore block */ | 3360 | /* save restore block */ |
3361 | if (adev->gfx.rlc.save_restore_obj) { | 3361 | if (adev->gfx.rlc.save_restore_obj) { |
3362 | r = amdgpu_bo_reserve(adev->gfx.rlc.save_restore_obj, false); | 3362 | r = amdgpu_bo_reserve(adev->gfx.rlc.save_restore_obj, true); |
3363 | if (unlikely(r != 0)) | 3363 | if (unlikely(r != 0)) |
3364 | dev_warn(adev->dev, "(%d) reserve RLC sr bo failed\n", r); | 3364 | dev_warn(adev->dev, "(%d) reserve RLC sr bo failed\n", r); |
3365 | amdgpu_bo_unpin(adev->gfx.rlc.save_restore_obj); | 3365 | amdgpu_bo_unpin(adev->gfx.rlc.save_restore_obj); |
@@ -3371,7 +3371,7 @@ static void gfx_v7_0_rlc_fini(struct amdgpu_device *adev) | |||
3371 | 3371 | ||
3372 | /* clear state block */ | 3372 | /* clear state block */ |
3373 | if (adev->gfx.rlc.clear_state_obj) { | 3373 | if (adev->gfx.rlc.clear_state_obj) { |
3374 | r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false); | 3374 | r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true); |
3375 | if (unlikely(r != 0)) | 3375 | if (unlikely(r != 0)) |
3376 | dev_warn(adev->dev, "(%d) reserve RLC c bo failed\n", r); | 3376 | dev_warn(adev->dev, "(%d) reserve RLC c bo failed\n", r); |
3377 | amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj); | 3377 | amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj); |
@@ -3383,7 +3383,7 @@ static void gfx_v7_0_rlc_fini(struct amdgpu_device *adev) | |||
3383 | 3383 | ||
3384 | /* clear state block */ | 3384 | /* clear state block */ |
3385 | if (adev->gfx.rlc.cp_table_obj) { | 3385 | if (adev->gfx.rlc.cp_table_obj) { |
3386 | r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, false); | 3386 | r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, true); |
3387 | if (unlikely(r != 0)) | 3387 | if (unlikely(r != 0)) |
3388 | dev_warn(adev->dev, "(%d) reserve RLC cp table bo failed\n", r); | 3388 | dev_warn(adev->dev, "(%d) reserve RLC cp table bo failed\n", r); |
3389 | amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj); | 3389 | amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj); |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c index 0115c5f65c01..703bd55d6075 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c | |||
@@ -1239,7 +1239,7 @@ static void gfx_v8_0_rlc_fini(struct amdgpu_device *adev) | |||
1239 | 1239 | ||
1240 | /* clear state block */ | 1240 | /* clear state block */ |
1241 | if (adev->gfx.rlc.clear_state_obj) { | 1241 | if (adev->gfx.rlc.clear_state_obj) { |
1242 | r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, false); | 1242 | r = amdgpu_bo_reserve(adev->gfx.rlc.clear_state_obj, true); |
1243 | if (unlikely(r != 0)) | 1243 | if (unlikely(r != 0)) |
1244 | dev_warn(adev->dev, "(%d) reserve RLC cbs bo failed\n", r); | 1244 | dev_warn(adev->dev, "(%d) reserve RLC cbs bo failed\n", r); |
1245 | amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj); | 1245 | amdgpu_bo_unpin(adev->gfx.rlc.clear_state_obj); |
@@ -1250,7 +1250,7 @@ static void gfx_v8_0_rlc_fini(struct amdgpu_device *adev) | |||
1250 | 1250 | ||
1251 | /* jump table block */ | 1251 | /* jump table block */ |
1252 | if (adev->gfx.rlc.cp_table_obj) { | 1252 | if (adev->gfx.rlc.cp_table_obj) { |
1253 | r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, false); | 1253 | r = amdgpu_bo_reserve(adev->gfx.rlc.cp_table_obj, true); |
1254 | if (unlikely(r != 0)) | 1254 | if (unlikely(r != 0)) |
1255 | dev_warn(adev->dev, "(%d) reserve RLC cp table bo failed\n", r); | 1255 | dev_warn(adev->dev, "(%d) reserve RLC cp table bo failed\n", r); |
1256 | amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj); | 1256 | amdgpu_bo_unpin(adev->gfx.rlc.cp_table_obj); |
@@ -1363,7 +1363,7 @@ static void gfx_v8_0_mec_fini(struct amdgpu_device *adev) | |||
1363 | int r; | 1363 | int r; |
1364 | 1364 | ||
1365 | if (adev->gfx.mec.hpd_eop_obj) { | 1365 | if (adev->gfx.mec.hpd_eop_obj) { |
1366 | r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, false); | 1366 | r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, true); |
1367 | if (unlikely(r != 0)) | 1367 | if (unlikely(r != 0)) |
1368 | dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", r); | 1368 | dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", r); |
1369 | amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj); | 1369 | amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj); |
@@ -1490,7 +1490,7 @@ static int gfx_v8_0_kiq_init(struct amdgpu_device *adev) | |||
1490 | 1490 | ||
1491 | memset(hpd, 0, MEC_HPD_SIZE); | 1491 | memset(hpd, 0, MEC_HPD_SIZE); |
1492 | 1492 | ||
1493 | r = amdgpu_bo_reserve(kiq->eop_obj, false); | 1493 | r = amdgpu_bo_reserve(kiq->eop_obj, true); |
1494 | if (unlikely(r != 0)) | 1494 | if (unlikely(r != 0)) |
1495 | dev_warn(adev->dev, "(%d) reserve kiq eop bo failed\n", r); | 1495 | dev_warn(adev->dev, "(%d) reserve kiq eop bo failed\n", r); |
1496 | amdgpu_bo_kunmap(kiq->eop_obj); | 1496 | amdgpu_bo_kunmap(kiq->eop_obj); |
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c index 210d21c085f2..4073fd24dd13 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | |||
@@ -453,7 +453,7 @@ static void gfx_v9_0_mec_fini(struct amdgpu_device *adev) | |||
453 | int r; | 453 | int r; |
454 | 454 | ||
455 | if (adev->gfx.mec.hpd_eop_obj) { | 455 | if (adev->gfx.mec.hpd_eop_obj) { |
456 | r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, false); | 456 | r = amdgpu_bo_reserve(adev->gfx.mec.hpd_eop_obj, true); |
457 | if (unlikely(r != 0)) | 457 | if (unlikely(r != 0)) |
458 | dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", r); | 458 | dev_warn(adev->dev, "(%d) reserve HPD EOP bo failed\n", r); |
459 | amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj); | 459 | amdgpu_bo_unpin(adev->gfx.mec.hpd_eop_obj); |
@@ -463,7 +463,7 @@ static void gfx_v9_0_mec_fini(struct amdgpu_device *adev) | |||
463 | adev->gfx.mec.hpd_eop_obj = NULL; | 463 | adev->gfx.mec.hpd_eop_obj = NULL; |
464 | } | 464 | } |
465 | if (adev->gfx.mec.mec_fw_obj) { | 465 | if (adev->gfx.mec.mec_fw_obj) { |
466 | r = amdgpu_bo_reserve(adev->gfx.mec.mec_fw_obj, false); | 466 | r = amdgpu_bo_reserve(adev->gfx.mec.mec_fw_obj, true); |
467 | if (unlikely(r != 0)) | 467 | if (unlikely(r != 0)) |
468 | dev_warn(adev->dev, "(%d) reserve mec firmware bo failed\n", r); | 468 | dev_warn(adev->dev, "(%d) reserve mec firmware bo failed\n", r); |
469 | amdgpu_bo_unpin(adev->gfx.mec.mec_fw_obj); | 469 | amdgpu_bo_unpin(adev->gfx.mec.mec_fw_obj); |
@@ -599,7 +599,7 @@ static int gfx_v9_0_kiq_init(struct amdgpu_device *adev) | |||
599 | 599 | ||
600 | memset(hpd, 0, MEC_HPD_SIZE); | 600 | memset(hpd, 0, MEC_HPD_SIZE); |
601 | 601 | ||
602 | r = amdgpu_bo_reserve(kiq->eop_obj, false); | 602 | r = amdgpu_bo_reserve(kiq->eop_obj, true); |
603 | if (unlikely(r != 0)) | 603 | if (unlikely(r != 0)) |
604 | dev_warn(adev->dev, "(%d) reserve kiq eop bo failed\n", r); | 604 | dev_warn(adev->dev, "(%d) reserve kiq eop bo failed\n", r); |
605 | amdgpu_bo_kunmap(kiq->eop_obj); | 605 | amdgpu_bo_kunmap(kiq->eop_obj); |
@@ -1786,7 +1786,7 @@ static void gfx_v9_0_cp_compute_fini(struct amdgpu_device *adev) | |||
1786 | struct amdgpu_ring *ring = &adev->gfx.compute_ring[i]; | 1786 | struct amdgpu_ring *ring = &adev->gfx.compute_ring[i]; |
1787 | 1787 | ||
1788 | if (ring->mqd_obj) { | 1788 | if (ring->mqd_obj) { |
1789 | r = amdgpu_bo_reserve(ring->mqd_obj, false); | 1789 | r = amdgpu_bo_reserve(ring->mqd_obj, true); |
1790 | if (unlikely(r != 0)) | 1790 | if (unlikely(r != 0)) |
1791 | dev_warn(adev->dev, "(%d) reserve MQD bo failed\n", r); | 1791 | dev_warn(adev->dev, "(%d) reserve MQD bo failed\n", r); |
1792 | 1792 | ||