diff options
author | Jordan Crouse <jcrouse@codeaurora.org> | 2017-06-12 09:16:48 -0600 |
---|---|---|
committer | Jordan Crouse <jcrouse@codeaurora.org> | 2017-06-19 15:50:32 -0600 |
commit | 53530e16447303d6e4ff4372be5bfe9922261596 (patch) | |
tree | cc975a56462e38a04a1086e708ee0039bc5418b7 | |
parent | d8505d8307d73749b9eb0ff01c978a6ba0c60928 (diff) |
drm/msm: Simplify ringbuffer cleanup
Cleanup and consolidate sanity checking on the ringbuffer
cleanup code.
Change-Id: Ic0dedbad551d36ca8ed3db56a4366a5008768791
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
-rw-r--r-- | drivers/gpu/drm/msm/msm_gpu.c | 15 | ||||
-rw-r--r-- | drivers/gpu/drm/msm/msm_ringbuffer.c | 5 |
2 files changed, 7 insertions, 13 deletions
diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c index 6bbd4c338433..4e43b96341f8 100644 --- a/drivers/gpu/drm/msm/msm_gpu.c +++ b/drivers/gpu/drm/msm/msm_gpu.c @@ -935,10 +935,8 @@ int msm_gpu_init(struct drm_device *drm, struct platform_device *pdev, return 0; fail: - for (i = 0; i < ARRAY_SIZE(gpu->rb); i++) { - if (gpu->rb[i]) - msm_ringbuffer_destroy(gpu->rb[i]); - } + for (i = 0; i < ARRAY_SIZE(gpu->rb); i++) + msm_ringbuffer_destroy(gpu->rb[i]); pm_runtime_disable(&pdev->dev); return ret; @@ -957,15 +955,8 @@ void msm_gpu_cleanup(struct msm_gpu *gpu) bs_fini(gpu); - for (i = 0; i < ARRAY_SIZE(gpu->rb); i++) { - if (!gpu->rb[i]) - continue; - - if (gpu->rb[i]->iova) - msm_gem_put_iova(gpu->rb[i]->bo, gpu->aspace); - + for (i = 0; i < ARRAY_SIZE(gpu->rb); i++) msm_ringbuffer_destroy(gpu->rb[i]); - } msm_snapshot_destroy(gpu, gpu->snapshot); pm_runtime_disable(&pdev->dev); diff --git a/drivers/gpu/drm/msm/msm_ringbuffer.c b/drivers/gpu/drm/msm/msm_ringbuffer.c index 458f80426b39..9b8e76da449f 100644 --- a/drivers/gpu/drm/msm/msm_ringbuffer.c +++ b/drivers/gpu/drm/msm/msm_ringbuffer.c @@ -60,7 +60,10 @@ fail: void msm_ringbuffer_destroy(struct msm_ringbuffer *ring) { - if (ring->bo) + if (ring && ring->bo) { + msm_gem_put_iova(ring->bo, ring->gpu->aspace); drm_gem_object_unreference_unlocked(ring->bo); + } + kfree(ring); } |