aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0675-drm-amdgpu-fix-leaking-the-IBs-on-error.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0675-drm-amdgpu-fix-leaking-the-IBs-on-error.patch')
-rw-r--r--common/recipes-kernel/linux/files/0675-drm-amdgpu-fix-leaking-the-IBs-on-error.patch73
1 files changed, 0 insertions, 73 deletions
diff --git a/common/recipes-kernel/linux/files/0675-drm-amdgpu-fix-leaking-the-IBs-on-error.patch b/common/recipes-kernel/linux/files/0675-drm-amdgpu-fix-leaking-the-IBs-on-error.patch
deleted file mode 100644
index c55d34f3..00000000
--- a/common/recipes-kernel/linux/files/0675-drm-amdgpu-fix-leaking-the-IBs-on-error.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From e4a58a28b50f30e72292b6659d94410cbf7355ad Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com>
-Date: Thu, 5 Nov 2015 17:00:25 +0100
-Subject: [PATCH 0675/1565] drm/amdgpu: fix leaking the IBs on error
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixing a memory leak when the scheduler is enabled.
-
-Signed-off-by: Christian König <christian.koenig@amd.com>
-Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 25 ++++++++++++-------------
- 1 file changed, 12 insertions(+), 13 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-index dfc4d02..ecc82df 100644
---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
-@@ -499,16 +499,12 @@ static void amdgpu_cs_parser_fini_late(struct amdgpu_cs_parser *parser)
- for (i = 0; i < parser->nchunks; i++)
- drm_free_large(parser->chunks[i].kdata);
- kfree(parser->chunks);
-- if (!amdgpu_enable_scheduler)
-- {
-- if (parser->ibs)
-- for (i = 0; i < parser->num_ibs; i++)
-- amdgpu_ib_free(parser->adev, &parser->ibs[i]);
-- kfree(parser->ibs);
-- if (parser->uf.bo)
-- drm_gem_object_unreference_unlocked(&parser->uf.bo->gem_base);
-- }
--
-+ if (parser->ibs)
-+ for (i = 0; i < parser->num_ibs; i++)
-+ amdgpu_ib_free(parser->adev, &parser->ibs[i]);
-+ kfree(parser->ibs);
-+ if (parser->uf.bo)
-+ drm_gem_object_unreference_unlocked(&parser->uf.bo->gem_base);
- kfree(parser);
- }
-
-@@ -888,11 +884,14 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- job->base.owner = parser->filp;
- mutex_init(&job->job_lock);
- if (job->ibs[job->num_ibs - 1].user) {
-- memcpy(&job->uf, &parser->uf,
-- sizeof(struct amdgpu_user_fence));
-+ job->uf = parser->uf;
- job->ibs[job->num_ibs - 1].user = &job->uf;
-+ parser->uf.bo = NULL;
- }
-
-+ parser->ibs = NULL;
-+ parser->num_ibs = 0;
-+
- job->free_job = amdgpu_cs_free_job;
- mutex_lock(&job->job_lock);
- r = amd_sched_entity_push_job(&job->base);
-@@ -905,7 +904,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
- cs->out.handle =
- amdgpu_ctx_add_fence(parser->ctx, ring,
- &job->base.s_fence->base);
-- parser->ibs[parser->num_ibs - 1].sequence = cs->out.handle;
-+ job->ibs[job->num_ibs - 1].sequence = cs->out.handle;
-
- list_sort(NULL, &parser->validated, cmp_size_smaller_first);
- ttm_eu_fence_buffer_objects(&parser->ticket,
---
-1.9.1
-