diff options
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_cs.c | 12 |
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); |