* [PATCH] drm/radeon/si: add missing radeon_bo_unreserve in si_rlc_init()
@ 2012-04-12 20:13 alexdeucher
2012-04-13 13:54 ` Michel Dänzer
0 siblings, 1 reply; 3+ messages in thread
From: alexdeucher @ 2012-04-12 20:13 UTC (permalink / raw)
To: airlied, dri-devel; +Cc: Alex Deucher
From: Alex Deucher <alexander.deucher@amd.com>
Forget to unreserve after pinning. This can lead to problems in
soft reset and resume.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
drivers/gpu/drm/radeon/si.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index ac7a199..23a114c 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -3005,6 +3005,7 @@ int si_rlc_init(struct radeon_device *rdev)
si_rlc_fini(rdev);
return r;
}
+ radeon_bo_unreserve(rdev->rlc.save_restore_obj);
/* clear state block */
if (rdev->rlc.clear_state_obj == NULL) {
@@ -3024,12 +3025,12 @@ int si_rlc_init(struct radeon_device *rdev)
r = radeon_bo_pin(rdev->rlc.clear_state_obj, RADEON_GEM_DOMAIN_VRAM,
&rdev->rlc.clear_state_gpu_addr);
if (r) {
-
radeon_bo_unreserve(rdev->rlc.clear_state_obj);
dev_warn(rdev->dev, "(%d) pin RLC c bo failed\n", r);
si_rlc_fini(rdev);
return r;
}
+ radeon_bo_unreserve(rdev->rlc.clear_state_obj);
return 0;
}
--
1.7.7.5
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] drm/radeon/si: add missing radeon_bo_unreserve in si_rlc_init()
2012-04-12 20:13 [PATCH] drm/radeon/si: add missing radeon_bo_unreserve in si_rlc_init() alexdeucher
@ 2012-04-13 13:54 ` Michel Dänzer
2012-04-13 14:26 ` [PATCH] drm/radeon/si: add missing radeon_bo_unreserve in si_rlc_init() v2 alexdeucher
0 siblings, 1 reply; 3+ messages in thread
From: Michel Dänzer @ 2012-04-13 13:54 UTC (permalink / raw)
To: alexdeucher; +Cc: dri-devel
On Don, 2012-04-12 at 16:13 -0400, alexdeucher@gmail.com wrote:
> From: Alex Deucher <alexander.deucher@amd.com>
>
> Forget to unreserve after pinning. This can lead to problems in
> soft reset and resume.
>
> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
[...]
> @@ -3024,12 +3025,12 @@ int si_rlc_init(struct radeon_device *rdev)
> r = radeon_bo_pin(rdev->rlc.clear_state_obj, RADEON_GEM_DOMAIN_VRAM,
> &rdev->rlc.clear_state_gpu_addr);
> if (r) {
> -
> radeon_bo_unreserve(rdev->rlc.clear_state_obj);
> dev_warn(rdev->dev, "(%d) pin RLC c bo failed\n", r);
> si_rlc_fini(rdev);
> return r;
> }
> + radeon_bo_unreserve(rdev->rlc.clear_state_obj);
>
> return 0;
> }
Instead of these two radeon_bo_unreserve calls, there could be one
between the radeon_bo_pin call and the test of its return value.
Either way,
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Debian, X and DRI developer
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] drm/radeon/si: add missing radeon_bo_unreserve in si_rlc_init() v2
2012-04-13 13:54 ` Michel Dänzer
@ 2012-04-13 14:26 ` alexdeucher
0 siblings, 0 replies; 3+ messages in thread
From: alexdeucher @ 2012-04-13 14:26 UTC (permalink / raw)
To: airlied, dri-devel; +Cc: Alex Deucher
From: Alex Deucher <alexander.deucher@amd.com>
Forget to unreserve after pinning. This can lead to problems in
soft reset and resume.
v2: rework patch as per Michel's suggestion.
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
---
drivers/gpu/drm/radeon/si.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/radeon/si.c b/drivers/gpu/drm/radeon/si.c
index ac7a199..27bda98 100644
--- a/drivers/gpu/drm/radeon/si.c
+++ b/drivers/gpu/drm/radeon/si.c
@@ -2999,8 +2999,8 @@ int si_rlc_init(struct radeon_device *rdev)
}
r = radeon_bo_pin(rdev->rlc.save_restore_obj, RADEON_GEM_DOMAIN_VRAM,
&rdev->rlc.save_restore_gpu_addr);
+ radeon_bo_unreserve(rdev->rlc.save_restore_obj);
if (r) {
- radeon_bo_unreserve(rdev->rlc.save_restore_obj);
dev_warn(rdev->dev, "(%d) pin RLC sr bo failed\n", r);
si_rlc_fini(rdev);
return r;
@@ -3023,9 +3023,8 @@ int si_rlc_init(struct radeon_device *rdev)
}
r = radeon_bo_pin(rdev->rlc.clear_state_obj, RADEON_GEM_DOMAIN_VRAM,
&rdev->rlc.clear_state_gpu_addr);
+ radeon_bo_unreserve(rdev->rlc.clear_state_obj);
if (r) {
-
- radeon_bo_unreserve(rdev->rlc.clear_state_obj);
dev_warn(rdev->dev, "(%d) pin RLC c bo failed\n", r);
si_rlc_fini(rdev);
return r;
--
1.7.7.5
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-04-13 14:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-12 20:13 [PATCH] drm/radeon/si: add missing radeon_bo_unreserve in si_rlc_init() alexdeucher
2012-04-13 13:54 ` Michel Dänzer
2012-04-13 14:26 ` [PATCH] drm/radeon/si: add missing radeon_bo_unreserve in si_rlc_init() v2 alexdeucher
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.