Skip to content

Commit

Permalink
drm/qxl: Handle correctly failures in qxl_alloc_relase_reserved
Browse files Browse the repository at this point in the history
Free resources correctly if function fails

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Frediano Ziglio authored and Dave Airlie committed Jun 5, 2015
1 parent 6ecf5c2 commit de0b523
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions drivers/gpu/drm/qxl/qxl_release.c
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,7 @@ int qxl_alloc_release_reserved(struct qxl_device *qdev, unsigned long size,
ret = qxl_release_bo_alloc(qdev, &qdev->current_release_bo[cur_idx]);
if (ret) {
mutex_unlock(&qdev->release_mutex);
qxl_release_free(qdev, *release);
return ret;
}
}
Expand All @@ -377,13 +378,17 @@ int qxl_alloc_release_reserved(struct qxl_device *qdev, unsigned long size,

mutex_unlock(&qdev->release_mutex);

qxl_release_list_add(*release, bo);
ret = qxl_release_list_add(*release, bo);
qxl_bo_unref(&bo);
if (ret) {
qxl_release_free(qdev, *release);
return ret;
}

info = qxl_release_map(qdev, *release);
info->id = idr_ret;
qxl_release_unmap(qdev, *release, info);

qxl_bo_unref(&bo);
return ret;
}

Expand Down

0 comments on commit de0b523

Please sign in to comment.