From: Felix Kuehling Date: Thu, 3 Oct 2019 21:54:57 +0000 (-0400) Subject: drm/amdgpu: Fix error handling in amdgpu_ras_recovery_init X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=1995b3a35fecbf8a8078a5c3ff4b4a88eddaa5fe;p=linux.git drm/amdgpu: Fix error handling in amdgpu_ras_recovery_init Don't set a struct pointer to NULL before freeing its members. It's hard to see what's happening due to a local pointer-to-pointer data aliasing con->eh_data. Signed-off-by: Felix Kuehling Tested-by: Philip Cox Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c index 486568ded6d6a..0e2ee5869b5f0 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -1542,10 +1542,10 @@ int amdgpu_ras_recovery_init(struct amdgpu_device *adev) release: amdgpu_ras_release_bad_pages(adev); free: - con->eh_data = NULL; kfree((*data)->bps); kfree((*data)->bps_bo); kfree(*data); + con->eh_data = NULL; out: DRM_WARN("Failed to initialize ras recovery!\n");