From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mta0.migadu.com (out-196.mta0.migadu.com [91.218.175.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38344347BBD for ; Sun, 23 Aug 2026 20:50:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.196 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787518259; cv=none; b=VMLCg7G68r9M9vA+/eeaPY6EPWx/uKCNYS4wtZ0KI09FXADb8zNI8YfyAdHd1/XboVqf2Ilcnsb7LndZj144DldGYi2usVB/zBvn+Cet33MynBPokT7eGIZGX8l7Rfrk97vtzH+CK6v+oJbgQz6YEWRBBYXccdE1I2+3aJ1qzrY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787518259; c=relaxed/simple; bh=gxqPYChqK2WZhq2+aWTnLqgJWZH99pipqmeeppQldow=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=ul48Vwh12G9E7ZHW8ualvf/Gi5uC+gPnYsfOrDmDUFeZvZb+Qw/B83Rpl5gyey8377FWFHEU3Ejp+mYX2QAjoRynJPaKYP7sBUqBn2uSxl50o+U1ff783CKhGjvgQwHn0DPNwf4938X4CcgRCECnFkyc7NYju4btuK4OVmOuSic= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=w/L4kuKP; arc=none smtp.client-ip=91.218.175.196 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="w/L4kuKP" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=gxqPYChqK2WZhq2+aWTnLqgJWZH99pipqmeeppQldow=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1787518248; v=1; x=1788123048; b=w/L4kuKP0St/oUNuBfwDuZQT3kJz/Y7HlcA5yh+06PzAswOAL2WZbSBI0mHVmpgCH9WkmkLJ TCCQD3LCitUHvjBqrcZXtbn7BrhpDLCFoRTO5Vcb3X9CayczrPKe7d9njsnoZKi523vISsFZgVn 3qa/As4YInngzDnZvEaHPYWM= X-Envelope-To: linux-kernel@vger.kernel.org Received: from fedora.fritz.box (62.216.208.217) by smtp.migadu.com with ESMTPS id c201919d757f101a; Sun, 23 Aug 2026 20:50:48 +0000 X-Mizu-Trace-ID: c201919d757f101a X-Migadu-Flow: FLOW_OUT From: Thorsten Blum To: Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Tvrtko Ursulin , David Airlie , Simona Vetter , Chris Wilson , Lionel Landwerlin Cc: Thorsten Blum , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH] drm/i915: Fix memory leak in query_perf_config_list() Date: Sun, 23 Aug 2026 22:50:28 +0200 Message-ID: <20260823205028.178597-2-thorsten.blum@linux.dev> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=894; i=thorsten.blum@linux.dev; h=from:subject; bh=gxqPYChqK2WZhq2+aWTnLqgJWZH99pipqmeeppQldow=; b=owGbwMvMwCUWt7pQ4caZUj3G02pJDFndsSKr1zS+fS/dMz9856t9G/wftZhzfpx4UMyBZU/Sw rwF/jPTO0pZGMS4GGTFFFkezPoxw7e0pnKTScROmDmsTCBDGLg4BWAiYg8YGTZFrDd3SOTyF2bo fSAvvvzrtx8+egHPHZWOB4fdd2ZNkGFkOH+z6cKE0kMeLxoXiajMepv87vVruZUVpqqlJlHes4I 7WAA= X-Developer-Key: i=thorsten.blum@linux.dev; a=openpgp; fpr=1D60735E8AEF3BE473B69D84733678FD8DFEEAD4 Content-Transfer-Encoding: 8bit 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: stable@vger.kernel.org Signed-off-by: Thorsten Blum --- 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);