aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/radeon/radeon_cs.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
index e9d085021c1f..8c56e95c73cb 100644
--- a/drivers/gpu/drm/radeon/radeon_cs.c
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
@@ -193,11 +193,13 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error)
193 radeon_bo_list_fence(&parser->validated, parser->ib->fence); 193 radeon_bo_list_fence(&parser->validated, parser->ib->fence);
194 } 194 }
195 radeon_bo_list_unreserve(&parser->validated); 195 radeon_bo_list_unreserve(&parser->validated);
196 for (i = 0; i < parser->nrelocs; i++) { 196 if (parser->relocs != NULL) {
197 if (parser->relocs[i].gobj) { 197 for (i = 0; i < parser->nrelocs; i++) {
198 mutex_lock(&parser->rdev->ddev->struct_mutex); 198 if (parser->relocs[i].gobj) {
199 drm_gem_object_unreference(parser->relocs[i].gobj); 199 mutex_lock(&parser->rdev->ddev->struct_mutex);
200 mutex_unlock(&parser->rdev->ddev->struct_mutex); 200 drm_gem_object_unreference(parser->relocs[i].gobj);
201 mutex_unlock(&parser->rdev->ddev->struct_mutex);
202 }
201 } 203 }
202 } 204 }
203 kfree(parser->track); 205 kfree(parser->track);