From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) (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 995493EBF3F for ; Thu, 16 Apr 2026 19:55:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776369349; cv=none; b=oAVhp8OAG9n1lF1lHTUq1Kwduc9Q+vt2fVaxlmKaS1Cl5KZTMJkIOWMgWXvopBOOVFebZtKqVcjog9eyqzZtoVwVnRiyvHGYuoahC/zK/292GuCbT/255yIJTowcERecaMjBBrjoRaatDoO44jeyGtFPXwHxcCTId5LzZAHxZ8o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776369349; c=relaxed/simple; bh=o2y9rEsibJGcg11MqWp3xMapiP69uwm8mJQ7e9b1Fq0=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=rydLyiLSadVODRfWJ64MHCQVaFVw69wwNPujxKwKL9/DcChbjr2sp34HrL8+cAEErp4JwmY0jUw3e6EhATdRQIALSqTzyTzDLt3dfgmP+tKTGxad/umCZcjRn7GJiw93FT7Uj5xouW3OkIeTTcsFR4talYAmvs5mJZI0X9tdYCw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LzQEumZm; arc=none smtp.client-ip=209.85.219.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LzQEumZm" Received: by mail-qv1-f43.google.com with SMTP id 6a1803df08f44-8a4b8c3a30bso93524266d6.3 for ; Thu, 16 Apr 2026 12:55:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776369341; x=1776974141; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=EVDa9MmHdKtXRSXwqrzO68IZv3ECM4LIzStEaRjKsNY=; b=LzQEumZmOVfuGmgmItVAvx/QbQY1NFWeMHYsGNpNST4vxv17JF/E53djTrL8BKMxdK t7DZErf+1na/PizS5ww6w3HmdJXJ8oC6pKtlWB9V217XY8On30p6E/ICMwhhNty8HIqn 1jTUOM7ACELcWTeG8cRZT5weQJVdRg+9D9Mdkg7qT38gGlIYrVv9VlhPiVYR63D57hLV X6b1+aF2zSkR+mk6/Unw4F7geQGGT3nVKJdVPlVPb6O8oB7AUQm02NnYKhlK39b+odxg qALhy7PfdU4pQtSvLuPqF+zroV4O4AMSpXZ8sCy513lIXXlOF+aFLdiOGtwv45AIkUaZ XduQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776369341; x=1776974141; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=EVDa9MmHdKtXRSXwqrzO68IZv3ECM4LIzStEaRjKsNY=; b=Agca8N8agyHlpeYBRKMVU0tWTPtOFHJCvxanBgjlxy1F/zgXXYgsFPDSKZAuosJCJo kCIl4CI2xDhYOXh+/LOnW88i+ta4NhZrUzmJ9N2bEpkwNHUZ2o2F6vD3g3lsa2cr9yps 93/KeM3+hJzWIEJF9Fgrz+GiNMv1A6l8yr5ge05IbakbQYMuGGbF019iP+ZqMLLyoBXE JgGIxGyDooDs+tWK69E5aj7cy+hctzQDTKsVl1z5fgzgXARHLIcOJpQsepnCtaR8KePO +v3cBS8vF+H58frBEHTf2qs1Twben5+tDV26g3DYdJjS5hUyBcQe316PkOJk/ajLDHAF c2WA== X-Forwarded-Encrypted: i=1; AFNElJ8cCcDNbHuUjgRoClnAaDyqLVQE8X41CDBkq2xpBNu/C3/VUjI8iw2oI2dJP7WLCLw2JyDBdxKTEa8CNb8=@vger.kernel.org X-Gm-Message-State: AOJu0YyIF36gvChN1et/tePnV5mMzoOjD4tC+wezBSWl1N0iEqYBGjzp cvn+yAG5a76dLDe5lvp37JfppoxaucEJN7YkXAJr2dTpYhe3KMBvMAvi X-Gm-Gg: AeBDieuxIHysgagCmiIGdEY+ltSTfbR+h1JezbwnoZ5OcBvWuaPLH3p7B98ZufYmRtL cF4koDd5H26ti7tEyX3hJEklNO4NEAo7IUGHbBB1NzBQqIQrITByzQmZCZCgR6+NBOomHmvrpkw PBk9jttPZo/d+VOfp1R/+o8GcXtnciuPCh9bB9zQ24KtxAxO55XuKa2k5Md4uQi9Ex57yNEY24z dWwqYK3DfSa2WNp2Z/4UfQDoszm85szKZTYiOb6bNc7ttSD9wm5B7AByWG9bN4o+B6lW39PaVh6 tRHkQLv968w7l5lSey6mLO4qXCuAxDuBopQkyn0JtNpWpok1oans69SMzGLnbA5S1y2aj0PImZR VB6oVAbDq7N6bZKb6ojbFahikGbkclYT8ixbnCowjlw2Rvou5TI465OGimEtHz35z/Vus6zlFwJ MqeJdM0P23y1gI6adPCjXEoNARxNeCVlWz+2z9j2MjDd5o+XkAOu2fYwPcIsrS X-Received: by 2002:a05:6214:3d85:b0:8ac:ae21:46e with SMTP id 6a1803df08f44-8b025eb184cmr11397316d6.31.1776369341477; Thu, 16 Apr 2026 12:55:41 -0700 (PDT) Received: from localhost.localdomain ([104.39.116.151]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8ae6cb9eb66sm43769206d6.31.2026.04.16.12.55.40 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 16 Apr 2026 12:55:41 -0700 (PDT) From: Yuho Choi To: Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Simona Vetter Cc: amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Yuho Choi Subject: [PATCH v1] drm/radeon: fix memory leak in radeon_ring_restore() on lock failure Date: Thu, 16 Apr 2026 15:55:37 -0400 Message-ID: <20260416195537.3632-1-dbgh9129@gmail.com> X-Mailer: git-send-email 2.50.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit radeon_ring_restore() takes ownership of the data buffer allocated by radeon_ring_backup(). The caller (radeon_gpu_reset()) only frees it in the non-restore branch; in the restore branch it relies on radeon_ring_restore() to free it. If radeon_ring_lock() fails, the function returned early without calling kvfree(data), leaking the ring backup buffer on every GPU reset that fails at the lock stage. During repeated GPU resets this causes cumulative kernel memory exhaustion. Free data before returning the error. Fixes: 55d7c22192be ("drm/radeon: implement ring saving on reset v4") Signed-off-by: Yuho Choi --- drivers/gpu/drm/radeon/radeon_ring.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/radeon/radeon_ring.c b/drivers/gpu/drm/radeon/radeon_ring.c index 581ae20c46e4b..a5dff072c1ac0 100644 --- a/drivers/gpu/drm/radeon/radeon_ring.c +++ b/drivers/gpu/drm/radeon/radeon_ring.c @@ -356,8 +356,10 @@ int radeon_ring_restore(struct radeon_device *rdev, struct radeon_ring *ring, /* restore the saved ring content */ r = radeon_ring_lock(rdev, ring, size); - if (r) + if (r) { + kvfree(data); return r; + } for (i = 0; i < size; ++i) { radeon_ring_write(ring, data[i]); -- 2.50.1 (Apple Git-155)