In amdgpu_vmid_grab_idle, fences is being leaked in one execution path. The missing kfree was added.
Signed-off-by: Navid Emamdoost navid.emamdoost@gmail.com --- drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c index 57b3d8a9bef3..9063cd36fa94 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c @@ -244,6 +244,7 @@ static int amdgpu_vmid_grab_idle(struct amdgpu_vm *vm, r = amdgpu_sync_fence(adev, sync, &array->base, false); dma_fence_put(ring->vmid_wait); ring->vmid_wait = &array->base; + kfree(fences); return r; } kfree(fences);
Am 21.09.19 um 00:49 schrieb Navid Emamdoost:
In amdgpu_vmid_grab_idle, fences is being leaked in one execution path. The missing kfree was added.
NAK, the array is freed by the dma_fence_array. This is a double free.
Regards, Christian.
Signed-off-by: Navid Emamdoost navid.emamdoost@gmail.com
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c index 57b3d8a9bef3..9063cd36fa94 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c @@ -244,6 +244,7 @@ static int amdgpu_vmid_grab_idle(struct amdgpu_vm *vm, r = amdgpu_sync_fence(adev, sync, &array->base, false); dma_fence_put(ring->vmid_wait); ring->vmid_wait = &array->base;
return r; } kfree(fences);kfree(fences);
Maybe add a comment here in the code to avoid confusion in the future.
Alex ________________________________ From: Koenig, Christian Christian.Koenig@amd.com Sent: Saturday, September 21, 2019 7:32 AM To: Navid Emamdoost navid.emamdoost@gmail.com Cc: emamd001@umn.edu emamd001@umn.edu; smccaman@umn.edu smccaman@umn.edu; kjlu@umn.edu kjlu@umn.edu; Deucher, Alexander Alexander.Deucher@amd.com; Zhou, David(ChunMing) David1.Zhou@amd.com; David Airlie airlied@linux.ie; Daniel Vetter daniel@ffwll.ch; Sam Ravnborg sam@ravnborg.org; Rex Zhu Rex.Zhu@amd.com; amd-gfx@lists.freedesktop.org amd-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.org linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm/amdgpu: release allocated memory
Am 21.09.19 um 00:49 schrieb Navid Emamdoost:
In amdgpu_vmid_grab_idle, fences is being leaked in one execution path. The missing kfree was added.
NAK, the array is freed by the dma_fence_array. This is a double free.
Regards, Christian.
Signed-off-by: Navid Emamdoost navid.emamdoost@gmail.com
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c index 57b3d8a9bef3..9063cd36fa94 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c @@ -244,6 +244,7 @@ static int amdgpu_vmid_grab_idle(struct amdgpu_vm *vm, r = amdgpu_sync_fence(adev, sync, &array->base, false); dma_fence_put(ring->vmid_wait); ring->vmid_wait = &array->base;
kfree(fences); return r; } kfree(fences);
Yeah, we already documented the dma_fence_array() behavior on that function.
But having another comment here would probably be a good idea.
Christian.
Am 23.09.19 um 14:35 schrieb Deucher, Alexander: Maybe add a comment here in the code to avoid confusion in the future.
Alex ________________________________ From: Koenig, Christian Christian.Koenig@amd.commailto:Christian.Koenig@amd.com Sent: Saturday, September 21, 2019 7:32 AM To: Navid Emamdoost navid.emamdoost@gmail.commailto:navid.emamdoost@gmail.com Cc: emamd001@umn.edumailto:emamd001@umn.edu emamd001@umn.edumailto:emamd001@umn.edu; smccaman@umn.edumailto:smccaman@umn.edu smccaman@umn.edumailto:smccaman@umn.edu; kjlu@umn.edumailto:kjlu@umn.edu kjlu@umn.edumailto:kjlu@umn.edu; Deucher, Alexander Alexander.Deucher@amd.commailto:Alexander.Deucher@amd.com; Zhou, David(ChunMing) David1.Zhou@amd.commailto:David1.Zhou@amd.com; David Airlie airlied@linux.iemailto:airlied@linux.ie; Daniel Vetter daniel@ffwll.chmailto:daniel@ffwll.ch; Sam Ravnborg sam@ravnborg.orgmailto:sam@ravnborg.org; Rex Zhu Rex.Zhu@amd.commailto:Rex.Zhu@amd.com; amd-gfx@lists.freedesktop.orgmailto:amd-gfx@lists.freedesktop.org amd-gfx@lists.freedesktop.orgmailto:amd-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.orgmailto:dri-devel@lists.freedesktop.org dri-devel@lists.freedesktop.orgmailto:dri-devel@lists.freedesktop.org; linux-kernel@vger.kernel.orgmailto:linux-kernel@vger.kernel.org linux-kernel@vger.kernel.orgmailto:linux-kernel@vger.kernel.org Subject: Re: [PATCH] drm/amdgpu: release allocated memory
Am 21.09.19 um 00:49 schrieb Navid Emamdoost:
In amdgpu_vmid_grab_idle, fences is being leaked in one execution path. The missing kfree was added.
NAK, the array is freed by the dma_fence_array. This is a double free.
Regards, Christian.
Signed-off-by: Navid Emamdoost navid.emamdoost@gmail.commailto:navid.emamdoost@gmail.com
drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c index 57b3d8a9bef3..9063cd36fa94 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ids.c @@ -244,6 +244,7 @@ static int amdgpu_vmid_grab_idle(struct amdgpu_vm *vm, r = amdgpu_sync_fence(adev, sync, &array->base, false); dma_fence_put(ring->vmid_wait); ring->vmid_wait = &array->base;
kfree(fences); return r; } kfree(fences);
dri-devel@lists.freedesktop.org