kcalloc but does not check for failure. If the allocation fails, the
pointer remains NULL but the function returns success. Subsequent code
using this buffer will dereference a NULL pointer, causing a kernel
oops. Add a check to return -ENOMEM if the allocation fails.
Signed-off-by: Geoffrey McRae <geoffrey.mcrae@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
goto error_doorbell;
}
}
- }
- adev->gfx.mec.mes_hung_db_array =
- kcalloc(amdgpu_mes_get_hung_queue_db_array_size(adev),
- sizeof(u32), GFP_KERNEL);
+ adev->gfx.mec.mes_hung_db_array =
+ kcalloc(amdgpu_mes_get_hung_queue_db_array_size(adev),
+ sizeof(u32), GFP_KERNEL);
+
+ if (!adev->gfx.mec.mes_hung_db_array) {
+ r = -ENOMEM;
+ goto error_doorbell;
+ }
+ }
return 0;