[PATCH 3/3] drm/radeon: only increment sync_seq when a fence is really emitted
Nicolai Hähnle
nhaehnle at gmail.com
Sat Dec 12 08:42:25 PST 2015
From: Nicolai Hähnle <nicolai.haehnle at amd.com>
In the rare situation where the kmalloc fails we're probably screwed anyway,
but let's try to be more robust about it.
Signed-off-by: Nicolai Hähnle <Nicolai.Haehnle at amd.com>
---
drivers/gpu/drm/radeon/radeon_fence.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_fence.c b/drivers/gpu/drm/radeon/radeon_fence.c
index df09ca7..05815c4 100644
--- a/drivers/gpu/drm/radeon/radeon_fence.c
+++ b/drivers/gpu/drm/radeon/radeon_fence.c
@@ -130,7 +130,7 @@ int radeon_fence_emit(struct radeon_device *rdev,
struct radeon_fence **fence,
int ring)
{
- u64 seq = ++rdev->fence_drv[ring].sync_seq[ring];
+ u64 seq;
/* we are protected by the ring emission mutex */
*fence = kmalloc(sizeof(struct radeon_fence), GFP_KERNEL);
@@ -138,7 +138,7 @@ int radeon_fence_emit(struct radeon_device *rdev,
return -ENOMEM;
}
(*fence)->rdev = rdev;
- (*fence)->seq = seq;
+ (*fence)->seq = seq = ++rdev->fence_drv[ring].sync_seq[ring];
(*fence)->ring = ring;
(*fence)->is_vm_update = false;
fence_init(&(*fence)->base, &radeon_fence_ops,
--
2.5.0
More information about the dri-devel
mailing list