From nobody Sat Feb 7 11:38:25 2026 Received: from mail-pf1-f180.google.com (mail-pf1-f180.google.com [209.85.210.180]) (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 17D972F99B8 for ; Fri, 23 Jan 2026 16:37:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769186267; cv=none; b=cAtKK/AiPxEASpm2UwvXmGVwsgtUfnvREannzfcikd3rsil8bNBcplMOKZjpkHBcFUj0sI2Z7fHghKjwlkPsKFiXoDmwetA5RLFx7X+R9KJzv8hrkd35jkzEH2h8dW2LLVWh+wZ4kxYacUF+6nF0zPtg0kUtLzqFukPK4aF7iXw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769186267; c=relaxed/simple; bh=XfgJbaJiD7FxrM45vwdfh7MDrURrJgbbrXbkXomT15U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=LocrHdlz5dV7wwt0NYYxqJ2hWiItHlVmZ/svVYLSW1zfzMbwMHk1/sb+bfK7tg6sPlPha+0v6eF1cYGvGtDk6nFRdFHDVBjlKVnGL51aus8n3gzxwUAFcsu2wIHEauBpEJqdp6LhcEpeyX6JEnye2660ZA/J3jp5cGTSpdMqm78= 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=MX5v/1T3; arc=none smtp.client-ip=209.85.210.180 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="MX5v/1T3" Received: by mail-pf1-f180.google.com with SMTP id d2e1a72fcca58-81e8b1bdf0cso1386085b3a.3 for ; Fri, 23 Jan 2026 08:37:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769186265; x=1769791065; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=CIf/jUCjzdJFezTzX6UtWeIusC7XBhWXZ9HJ+kURBZI=; b=MX5v/1T3krJC7rFGD9nwsXFR15I7+At5QWx0A1bPm6x9tvjjVv9boN/hGeAy7uh5/J UF9Va2PPQDqnVxe33thb3TmW5z9Ds35Cyzn7MMemHoQG3CrJ/ljW5TiMmQ4gMPeAZ5cW qCXW/DxSoij04SJKFRV6JnwDES8PpUVWg7/5tS9qvJgV+jWSks280yq0eKFxso0aSNsR oR8f8F234In9ws30dknarthbLUnUkyEJ/9RaobkX0aJWk1grysGt7/L7p8SC9nHGithI 9kY35yPVJEgHNYZ4AenZwZJRHStDRb0TTQsIFt2/uq+ta+EK4xOotRirAEWfllggW8kt p5VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769186265; x=1769791065; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=CIf/jUCjzdJFezTzX6UtWeIusC7XBhWXZ9HJ+kURBZI=; b=vcXfk0QYuUisk4DE1AL7F4bXg8lj30Q4VzVnd2qxgTKzdtB2XCoDuBTSS439gTvIvE yI8lpnrtLvjVMc2Gy/dTE1X9++B9OUY4A8tG/itq4RgT014EMKf/6D7fMPkjtMwKrnEX pPYKVy5H0v8MXRPaiokt6ID4HecUYCfQMJfFoM1MytanLBsaohqwQlbuhdPoG7ROQr8w sFIr3ozIJmPGlBe4sROH75/Xndg2HaJ3TWtwDAoUsf1BsaFYkqScBtEk3jpHxYovb6ge FJld+K+dVLtBsYlTLd5BT7bjLo/FIfDHsw4rM3vWUyPIN85z6zCDbpjoWc9VMhK12C2z 1wzw== X-Forwarded-Encrypted: i=1; AJvYcCWwumZLjndb8A9FC1cmy+7tj/B120LpOE9L/rb4ucAQGivJbbO7HMLsWeJGi7o9Wo3hWLuBfMV0UIb7UbI=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9Qbxw0R1ggSwzyjX9NOfozJRQTGjuv6Rv4XlgFi72VhJDsRX0 tNrXZkoa5RnybococyuEIGpWcLN2vEwFweXpcaq7x9I3DOY7q2O32gqu X-Gm-Gg: AZuq6aKkaXgJVNZWzS23Hd43xMwe4CIG45erVr4/eElTo38vfz/a+Jd7+7tvq559sjY HwXInHqaKu4pF7ROwyhoW7d8SygEoUrvImhXSYB/VfP0dMO99FR4ASvW6RRD9Y0GQ5vqxAuYSS+ /dXBJc1YK7hJ+vksjlPsDUWcZOn1m1b/NcvifGhM6q4Lsxo9Kia2bXJkytEQ/MF6kUNgADd9lhg AOLqcro6MOzDLrWcaUqH5n0NDYN6mlawDX3E3WpAyu+8k8ks73d6/mq0rZm28R7jywyajtnecSU svL+dg+LetH4yFPpSNWWXQlTiYCQLufxDuXCqhWJzsNs+9PIx5d2FoeUrvVdNHPCsNNjURempe0 BlkX7223fvyy3fOzdBjCXyyBgNankHXc3PGTr0Dq+m3iDfH2jWgvrakFi/i+CTRCYgEgAs62l/4 43zzuydjrJDhHdsgLdlP3j7CjjRx5+TsJFvw== X-Received: by 2002:a17:90b:3a4f:b0:32e:3829:a71c with SMTP id 98e67ed59e1d1-35367603595mr3147765a91.16.1769186265087; Fri, 23 Jan 2026 08:37:45 -0800 (PST) Received: from junjungu-PC.localdomain ([223.166.246.160]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3536dc506d0sm2491488a91.13.2026.01.23.08.37.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Jan 2026 08:37:44 -0800 (PST) From: Felix Gu Date: Sat, 24 Jan 2026 00:37:38 +0800 Subject: [PATCH] drm/msm/adreno: Fix a reference leak in a6xx_gpu_init() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260124-a6xx_gpu-v1-1-fa0c8b2dcfb1@gmail.com> X-B4-Tracking: v=1; b=H4sIANGjc2kC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDQyNj3USzior49IJS3eSkZANL05SkVBMjYyWg8oKi1LTMCrBR0bG1tQA maabFWgAAAA== X-Change-ID: 20260123-a6xx_gpu-cbc095dbe423 To: Rob Clark , Sean Paul , Konrad Dybcio , Akhil P Oommen , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter Cc: linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org, Felix Gu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1769186260; l=2013; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=XfgJbaJiD7FxrM45vwdfh7MDrURrJgbbrXbkXomT15U=; b=1+ZDVPOWVZlNST7+6jBAwaq3yRNaG1fjeNiRT/YcLb0Up78CXWFfBx8flp4p8vEci2TmwVfJO XI5Grri2JkUDp+6hfSBPACgFGrn8F9tDYJCXBa1wH/o+/Vu5zKokf3w X-Developer-Key: i=ustc.gu@gmail.com; a=ed25519; pk=fjUXwmjchVN7Ja6KGP55IXOzFeCl9edaHoQIEUA+/hw= In a6xx_gpu_init(), node is obtained via of_parse_phandle(). While there was a manual of_node_put() at the end of the common path, several early error returns would bypass this call, resulting in a reference leak. Fix this by using the __free(device_node) cleanup handler to release the reference when the variable goes out of scope. Fixes: 5a903a44a984 ("drm/msm/a6xx: Introduce GMU wrapper support") Signed-off-by: Felix Gu --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/ad= reno/a6xx_gpu.c index 2129d230a92b..0bc518d9fd65 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -2640,7 +2640,6 @@ static struct msm_gpu *a6xx_gpu_init(struct drm_devic= e *dev) struct msm_drm_private *priv =3D dev->dev_private; struct platform_device *pdev =3D priv->gpu_pdev; struct adreno_platform_config *config =3D pdev->dev.platform_data; - struct device_node *node; struct a6xx_gpu *a6xx_gpu; struct adreno_gpu *adreno_gpu; struct msm_gpu *gpu; @@ -2660,7 +2659,8 @@ static struct msm_gpu *a6xx_gpu_init(struct drm_devic= e *dev) adreno_gpu->registers =3D NULL; =20 /* Check if there is a GMU phandle and set it up */ - node =3D of_parse_phandle(pdev->dev.of_node, "qcom,gmu", 0); + struct device_node *node __free(device_node) =3D + of_parse_phandle(pdev->dev.of_node, "qcom,gmu", 0); /* FIXME: How do we gracefully handle this? */ BUG_ON(!node); =20 @@ -2702,7 +2702,6 @@ static struct msm_gpu *a6xx_gpu_init(struct drm_devic= e *dev) ret =3D a6xx_gmu_wrapper_init(a6xx_gpu, node); else ret =3D a6xx_gmu_init(a6xx_gpu, node); - of_node_put(node); if (ret) { a6xx_destroy(&(a6xx_gpu->base.base)); return ERR_PTR(ret); --- base-commit: a0c666c25aeefd16f4b088c6549a6fb6b65a8a1d change-id: 20260123-a6xx_gpu-cbc095dbe423 Best regards, --=20 Felix Gu