linux/drivers/gpu/drm/amd
Dan Carpenter 1d263474c4 drm/amdgpu: unwind properly in amdgpu_cs_parser_init()
The amdgpu_cs_parser_init() function doesn't clean up after itself but
instead the caller uses a free everything function amdgpu_cs_parser_fini()
on failure.  This style of error handling is often buggy.  In this
example, we call "drm_free_large(parser->chunks[i].kdata);" when it is
an unintialized pointer or when "parser->chunks" is NULL.

I fixed this bug by adding unwind code so that it frees everything that
it allocates.

I also mode some other very minor changes:
1) Renamed "r" to "ret".
2) Moved the chunk_array allocation to the start of the function.
3) Removed some initializers which are no longer needed.

Reviewed-by: Christian König <christian.koenig@amd.com>
Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2015-09-23 17:23:43 -04:00
..
amdgpu drm/amdgpu: unwind properly in amdgpu_cs_parser_init() 2015-09-23 17:23:43 -04:00
amdkfd amdkfd: use <linux/mman.h> instead of <uapi/asm-generic/mman-common.h> 2015-08-30 12:36:58 +03:00
include drm/amdgpu: Add Fiji smu 7.1.3 headers (v2) 2015-08-17 16:50:25 -04:00
scheduler drm/amdgpu: more scheduler cleanups v2 2015-09-23 17:23:39 -04:00