When krealloc() fails, free the original oa_config_ids before returning
to avoid a memory leak.

Fixes: 4f6ccc74a85c ("drm/i915: add support for perf configuration queries")
Cc: [email protected]
Signed-off-by: Thorsten Blum <[email protected]>
---
 drivers/gpu/drm/i915/i915_query.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_query.c 
b/drivers/gpu/drm/i915/i915_query.c
index 0c55fb6e9727..11157fb14db3 100644
--- a/drivers/gpu/drm/i915/i915_query.c
+++ b/drivers/gpu/drm/i915/i915_query.c
@@ -403,8 +403,10 @@ static int query_perf_config_list(struct drm_i915_private 
*i915,
                ids = krealloc(oa_config_ids,
                               n_configs * sizeof(*oa_config_ids),
                               GFP_KERNEL);
-               if (!ids)
+               if (!ids) {
+                       kfree(oa_config_ids);
                        return -ENOMEM;
+               }
 
                alloc = fetch_and_zero(&n_configs);
 

Reply via email to