From nobody Fri Aug 14 15:50:35 2026 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) (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 46C4447010F for ; Fri, 14 Aug 2026 13:41:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786714887; cv=none; b=ubsoPZZtgb/ZRxlt98uTfo9kZ9WI9zAOO+uyNDj4RFg4dsErNEjBKO1p56nnNZxgnabvGUEt8LsVMkqZ5pj0+qZ6i3Nz3STeuY1dP/aYRnEhhFkjEINOLRMaHsa0NOfWwBBI0ZnQGar1KE3YqYyL6Eo63jIUf/pn6X8b4tgeyYQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786714887; c=relaxed/simple; bh=Hnh+B6I/E5Sb7idrJpw5doXhtoa+PDZgS3mAXBJ8cZk=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=u3Wf+LMPB+0xBqc3BiXH1mYZQES0lKd1JUxJc4iyll7Sq4cd8Aa+PFUJ23jaYIGLWx5nxDb6zz0gk/5QG7VsEQ+pVskt1ZiJQjTZhdQlst9jF8xw0UpNIi04hePv4nnfgXFzuULy76WfZ6ISS9nFHVFp6zRA1pEak/Q9PIr6lWI= 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=Jg9hkXkr; arc=none smtp.client-ip=209.85.216.53 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="Jg9hkXkr" Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-38fdeaed181so1473058a91.1 for ; Fri, 14 Aug 2026 06:41:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786714885; x=1787319685; 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:content-type; bh=WQJMGbWRZOZBiV4wbORCXaxh+L+ZkfgBfsK0yvrgZEY=; b=Jg9hkXkrSy617yAqSzQ3Xpnbh2a7goBUtZV2lDdv1OxlXeZpUQlbQK5GXGR8DaO4uM Kc0mG+tSiVShpny6SYCRWqn8DpxkkNOQhHgSbNG1bAtTXly+QeQz6cf5gkLQYfECem3I krtE+yW0eTnrtlIy0JF2WJASuGeH+OPKdGy89yYPhDfW1XPTs29E6Z8sYO/dH4JuglYy zcHO4dDLmkx7HZc+I+FHvcDadgaAzmpiedJuFZFyWqexw5pvnRBZdFrgmPnr6xBms3M5 Y0BQZlPQ3VxbBkiUnluIaW+Zor8mI7EavoRP1CEFNf0UaheWxqFWTvJ9yuddaZ7pc5+I UhaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786714885; x=1787319685; 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:content-type; bh=WQJMGbWRZOZBiV4wbORCXaxh+L+ZkfgBfsK0yvrgZEY=; b=iRHCAJV9PldRowyAbkyZqpG2IEuhO7lSBl7TQ0+Z4XHR3dKzoo34sl685dPYowX+W5 GpUGfTuB6U+MQUfUfbdWoTJV7ZHa6btBkZbW6IFhVS25FJR34GCYSOw9sayUGhuLKjbC djfbn8hGhtdhsTXAM7iNiUtIQeSSseigIeuRKl46JEs+zLHjSiuxlh+wLFkuyPA42fxX xgQnnLHfBuOq523Pl/W+BuleNkOFl6u7YUaaJBOpSWSDamVEzf5mhHut4XdGQZJUbyqr cVQAA+OkaDsgFxNlJ8krc8GVWNaa9iTU54+oeMgXZEngn48LBw0iUR11jYsY6gPPSIjJ Xfag== X-Forwarded-Encrypted: i=1; AHgh+RpPjUzXOtmPKeQACQ5lh1ok7p2vpuYEuvDRP5I02yF/xbD6zyYyRqdo+/XBMtEcVdRFFuXMf4Vp1IDovcE=@vger.kernel.org X-Gm-Message-State: AOJu0YzS42AOlXV38HqplLZx7UTdxm+DbQdtjCm8yUsbQISKLtE6niXa yFSPsiVGtQn0ykYmTlJ7e7TnUkPfz6wdeoRN20UkOk0FRy8Wj0RUmViP X-Gm-Gg: AR+sD134h+ACcGALChxsdf9bHJSCTNvlEEEjz4ElLc+RpugBSzeS3iaiV4pPceiM7e7 cS8mXV9054W5To3QUr6C8+YeMBiwtxRqBjslXWGlskK/vXM3mlHzUQdMRgX4wLtQKzyzyUXAjdT FBt6e9HzbKllaoCg+9r0pKHml9WbXcILLyxpr8qLbkZ/EMqDUz0cp8BmA1a5THq1wgueDJRtCU1 WQ8oFp/kg9TTd2lLGB5rsxC33/jjP9p1RGBQ5KR46pbUSTY1BmiMR+7SC3zxZASp/7h3o+IfrT2 PljFxsWOZ+cPjhmW8Z8XkkMkDUhe/zBq1aD8QwwIZyeau6yr7minTb6G424Go5nLD7pou6MbeCi 4easmlfvXt4CIL6itP/4AtWS9nu/sxCSC+UNwbbPq4ja7oBtTd7WvYoQHduEV2a0KlRYRCYEAd/ 2Wq3yJ/z7ma54No91D228hNrB3xYhwTGh201qQjq28OVvhFQUrHMDLBQl3QbQv1W7ToPfKsRIC4 GaYFenu X-Received: by 2002:a05:6a21:d86:b0:3bf:a7d5:df38 with SMTP id adf61e73a8af0-3cc71b41dcbmr7176522637.9.1786714885326; Fri, 14 Aug 2026 06:41:25 -0700 (PDT) Received: from haichao.tail057a43.ts.net ([2001:da8:e000:1206:e9af:7c0e:be31:2c3f]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cc095a33f34sm642128a12.22.2026.08.14.06.41.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2026 06:41:25 -0700 (PDT) From: Ruoyu Wang To: Toan Le , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas , Liviu Dudau , Tanmay Inamdar Cc: linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Ruoyu Wang Subject: [PATCH] PCI: xgene: Fix device node reference leak in xgene_pcie_probe() Date: Fri, 14 Aug 2026 21:41:18 +0800 Message-ID: <20260814134118.1387742-1-ruoyuw560@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" xgene_pcie_probe() takes an extra reference to the platform device's OF node and stores it in port->node. The driver never drops the reference, so every probe attempt that reaches this point leaks it, including when CSR mapping or a later initialization step fails. The platform device already holds the node reference, and port->node is only dereferenced synchronously by xgene_pcie_setup() before probe returns. Store the borrowed pointer instead of taking another reference. This issue was found by a static analysis checker and confirmed by manual source review. Fixes: 5f6b6ccdbe1c ("PCI: xgene: Add APM X-Gene PCIe driver") Signed-off-by: Ruoyu Wang --- drivers/pci/controller/pci-xgene.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/pci/controller/pci-xgene.c b/drivers/pci/controller/pc= i-xgene.c index b95afa35201d0..cf9760f3a008e 100644 --- a/drivers/pci/controller/pci-xgene.c +++ b/drivers/pci/controller/pci-xgene.c @@ -627,7 +627,7 @@ static int xgene_pcie_probe(struct platform_device *pde= v) =20 port =3D pci_host_bridge_priv(bridge); =20 - port->node =3D of_node_get(dn); + port->node =3D dn; port->dev =3D dev; port->version =3D XGENE_PCIE_IP_VER_1; =20 --=20 2.51.0