aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2017-04-28 04:28:14 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-04-28 17:33:16 -0400
commitc81a1a74037f61c578f6b8218b079aa434e300b4 (patch)
tree8176c83897e467d913a7059e1a652a9adb7598a7 /drivers/gpu/drm/amd/amdgpu
parent8b9242eddd51f17b8306d6c96172fd68ef1106c6 (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.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gart.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_prime.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_sa.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v10_0.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v11_0.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v6_0.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v8_0.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_virtual.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c8
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c8
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,
2589unpin: 2589unpin:
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,
2609unpin: 2609unpin:
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,
1962unpin: 1962unpin:
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,
2440unpin: 2440unpin:
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