From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DDA8833C513 for ; Thu, 29 Jan 2026 23:02:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769727759; cv=none; b=Vgru5w2VN4nu+yeTB00QMqVNR6fXqk+0Gy6pVyIVzdDCSGx91oIQnkpqXvt6DCUDWpqvhd+E1Q7NioBHKzqrGFqSbJRCx49oY1wDnAwzQwGhgchihOZWjjpr6NRZ2eE00+EvoHDBPGLvlRG/322nqqtULHyL0Xjj8ldJrphYZsU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769727759; c=relaxed/simple; bh=PDLDbnsx0SNRhlKEe/qnBNXtlRc4HiciMUZ2KaESdmY=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=EMUFTPN2ovDZ7qo5YvMXv7o9z3LJrsJWHRzP3oG2a7XTRZk7gaDtUsm87kqVyT1LcZ1YH0b0tb0FGFHkgmxGDCoGaT2ga8RKFYAjqjV8br/bNZ3kAQtpXpu9k2FX6H3mpTI1UVDId+gkpf9LNU8yuhXEgJ9M5DRs/L0ApRQ8Ubc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=k6mbEAxm; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jOnffnc4; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="k6mbEAxm"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jOnffnc4" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60THmCHQ3674046 for ; Thu, 29 Jan 2026 23:02:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 4xilsLx0mjQbln6HYtM7EOjqDHQpTIQtLvmJs2JkP+U=; b=k6mbEAxm7frTtzMN 4tVAMWhTa4OFmoXqfomAAzSyebIeq5NgqaQrtLHcgCOQM07i/JucX9GKnsdFBWjb EnnLFYVmf3tvXR4BNoNmxkPfpJaa5M6GB5XqDreNjxZ3/1lCMCy89e6i+wbnTDxD qWkc/s2VT3uZB0lahj0EHfXn4VNANXCWIMdGHtgLRVzSgeeggTOyPCSX6C7N2vD9 ikyPTHbKeYRcLxLjRJ/6PLcPYox7tMYNr1RNzCDBeSBllDfT/WeyT9/7GtbAUAUs /P0acaM7bHq2u+I5ewxzbftX5TVsIOohxXyHT2wW95RiLpaipq/5Fe79klhyXspy VQ4S9Q== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4c05q7jday-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 29 Jan 2026 23:02:37 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-c61dee98720so834410a12.0 for ; Thu, 29 Jan 2026 15:02:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1769727756; x=1770332556; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=4xilsLx0mjQbln6HYtM7EOjqDHQpTIQtLvmJs2JkP+U=; b=jOnffnc4kEHGSwqQsAlRefzA9/jCEZUq/PKoVPyrHcdqGLbm8N64sot9Cdmra1T7jr upqII8Q0aeSwcrFnOOMw9Uxpqrg/PhvV2X0qEQQUIB1zU0y8Uk8V6v0iQPyeBBJ112IH +NlnIiefxyIPis7Lg5RBsMhJf0gsOMFOPmzdwFsYckVr0avpHiXzHhkWexKimZ83zIzn X3hLKI+iD62pTdq+hbMdJBb2UBONdTqoL6nLs7ii2rVPxpanF7DH79PUpLjfsmI9Yvjo 4BEclCCxls1OZ+9Ocir5kY2vFIgpxGb+XXuaWj+maQLl3IkbdqR8uE0EwYvyT9+loOq4 pA0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769727756; x=1770332556; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=4xilsLx0mjQbln6HYtM7EOjqDHQpTIQtLvmJs2JkP+U=; b=s5jfSZ6kurHORff6JaN/7w1AZC2FgkhGwg3SuORq3CwbNJ8LP0Dmg8ZGcPkx7q9azf kDv4CbTJTVMoeUy/S7Sjj25vqg8WCxul87+9bxn0piDGdmVXKmSocSNi0/IfpGRfBKoz yeSL4NUdqPGRLbKH5593lyfpH9WDxAD1DZpSFGuiSI3LcllMrxn2XTDCrtMoe1/3tKyv qJV3a0TKbZkUXVwOIab9qhOp1Uuxa0cNY24akn0p1X2jM6ElUpKUjvwgL5cEgfMgAB2S cAnbWZ+VO6SggkefUZRIJwtij5NjFtrxc6gUT6Ykc3gYnJRkzSXJagD2FgMJT++jIOIX +iAw== X-Forwarded-Encrypted: i=1; AJvYcCWLjrrX/bB/HI9u34L3zub0kaidCg4HmLzv2CSOX2IPcWFuKP4aReK11COlzKRBBUEKlvwx2VT9S3ON1TY=@vger.kernel.org X-Gm-Message-State: AOJu0YzuZoMtWYDlIyUCB7SxckTxwXUut70rdaWLgus3LnVOyHfuDi0V weFsgV+AICJDth/liCriZUj2w7utVB20CP9lb/1uj6EHpMCwwSFr+4hHfd7DOjFfaaIBEFZZUot tcryzuKExh0TTDFvAL0cIbOdUyKWan9pJvGmFNXK7P9fk2ypj14GMRiGsJrfvXsm64eo= X-Gm-Gg: AZuq6aJ+JKoJ6mevPof6QFJnPHCJdSHQeqbjcTgM+lBYuY1GoOr6eP+q7uWVfZIqJDq M679kBgJoPnT+lLKda8rYYh/+iwO1bo4a8xjXBSCOBUv7zTHHKhBCztXN24qJ1Kf51rMUg+IJRm NZS2RNPh1vmZMDh3rPRy1weoxlV7adv67GiVFIahGTprYeJZRJideEZSO9gdmFXJeUOq7Bk7Ehc qz7jy19HSnEPuN5+VM4LIF8XPtZuZWEgyW4OTWoqA82oNg+qR7zIRjRFruMjfYVzC/FXNdIrwl3 6RMXLQPqJwUShXs+oP7NJOfHMBCev3T235ZlRm0QWMI1Fc4ShaEMliaN7iKTBnlZtfZ2B6Zi0HP eRgHhCLlGpnqWMjm/DKCnFPc3uhjf+7ZeEQ== X-Received: by 2002:a17:90b:180f:b0:340:25f0:a9b with SMTP id 98e67ed59e1d1-3543b3d2607mr833125a91.33.1769727756301; Thu, 29 Jan 2026 15:02:36 -0800 (PST) X-Received: by 2002:a17:90b:180f:b0:340:25f0:a9b with SMTP id 98e67ed59e1d1-3543b3d2607mr833091a91.33.1769727755696; Thu, 29 Jan 2026 15:02:35 -0800 (PST) Received: from [192.168.1.3] ([106.222.231.147]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3540f3cc7absm6439131a91.12.2026.01.29.15.02.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 29 Jan 2026 15:02:35 -0800 (PST) Message-ID: <0dda1100-49d3-4ca7-9ae8-1541e2b855b9@oss.qualcomm.com> Date: Fri, 30 Jan 2026 04:32:29 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] drm/msm/adreno: Fix a reference leak in a6xx_gpu_init() To: Felix Gu , Rob Clark , Sean Paul , Konrad Dybcio , 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 References: <20260124-a6xx_gpu-v2-1-86a1dcf85e13@gmail.com> Content-Language: en-US From: Akhil P Oommen In-Reply-To: <20260124-a6xx_gpu-v2-1-86a1dcf85e13@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-GUID: v4ILrcZZsEQ6LfCM5kJ303q6qGInb7cp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTI5MDE2OSBTYWx0ZWRfXx2AoJWnNGp4r LzQF0X9DWQsv7KMBHtw79nV5cuxsZ7T1T0l6Qh04tVdusXYf0BAvoKK/M7QG+2rGMP+AZKApNEu CxluZI9f7JzB5U3uyeYuF6Wvvmudds/6ZJrCaTLDoy+JxsZiT9mLPb6Ltzu4abfRRBE15TyvIeN //fmsOGT2A8D4yjlDCBx+Dvy01ZGd4hephN47M5dvJ/QkTiZ9faz78es8NeFbCDkjTEA36FMlvU tGW9bmrnClPmaJUegJrmONKbyknnTCLqaMk2ARn55dY4lXdnKafbDcUrq7oh8Wgx1i6W993doEH DnluThgAq/FG0VuDah28EmKThBwobvCHOr7X1iNHjOkw5kOjhVQ5SuFClcu/xrl9/JvZqUmFmeo mlx5TKk8xI5IT5mfqmqN9MYmJltlvNScA+hKghjctx1YN3aEnp/BxLTcJHg+Hb62kMUrEpOw3r1 xIc5/19q2XSaYc54smg== X-Authority-Analysis: v=2.4 cv=donWylg4 c=1 sm=1 tr=0 ts=697be70d cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZveB2507E6DkPBHLdDca7g==:17 a=IkcTkHD0fZMA:10 a=vUbySO9Y5rIA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=pGLkceISAAAA:8 a=EUspDBNiAAAA:8 a=mHnloJP8uCFruMiY-FkA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-ORIG-GUID: v4ILrcZZsEQ6LfCM5kJ303q6qGInb7cp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-29_03,2026-01-29_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0 impostorscore=0 bulkscore=0 priorityscore=1501 phishscore=0 lowpriorityscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2601290169 On 1/24/2026 1:04 AM, Felix Gu wrote: > 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 Reviewed-by: Akhil P Oommen -Akhil > --- > Changes in v2: > - Explicitly add header file. > - Link to v1: https://lore.kernel.org/r/20260124-a6xx_gpu-v1-1-fa0c8b2dcfb1@gmail.com > --- > drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > index 2129d230a92b..604b0f861d27 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > @@ -9,6 +9,7 @@ > #include "a6xx_gmu.xml.h" > > #include > +#include > #include > #include > #include > @@ -2640,7 +2641,6 @@ static struct msm_gpu *a6xx_gpu_init(struct drm_device *dev) > struct msm_drm_private *priv = dev->dev_private; > struct platform_device *pdev = priv->gpu_pdev; > struct adreno_platform_config *config = pdev->dev.platform_data; > - struct device_node *node; > struct a6xx_gpu *a6xx_gpu; > struct adreno_gpu *adreno_gpu; > struct msm_gpu *gpu; > @@ -2660,7 +2660,8 @@ static struct msm_gpu *a6xx_gpu_init(struct drm_device *dev) > adreno_gpu->registers = NULL; > > /* Check if there is a GMU phandle and set it up */ > - node = of_parse_phandle(pdev->dev.of_node, "qcom,gmu", 0); > + struct device_node *node __free(device_node) = > + of_parse_phandle(pdev->dev.of_node, "qcom,gmu", 0); > /* FIXME: How do we gracefully handle this? */ > BUG_ON(!node); > > @@ -2702,7 +2703,6 @@ static struct msm_gpu *a6xx_gpu_init(struct drm_device *dev) > ret = a6xx_gmu_wrapper_init(a6xx_gpu, node); > else > ret = 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,