From nobody Wed Jun 10 18:41:01 2026 Received: from mail-qt1-f176.google.com (mail-qt1-f176.google.com [209.85.160.176]) (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 C6B7D3CDBAA for ; Mon, 8 Jun 2026 16:55:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780937753; cv=none; b=rINjEH6fnxKvx9/cOXEsUey8c29nxMS+hOqfBd9EysSDJIoFAaPpIM+vHsLTceDvI4lDmkh+f/aznEdLym5Kdi2xS4esADVM5zrPW9+Pb7q0pgIUNcx1EhJlQxRRmxmZQBlqb6JKIcUFXHueaYzJrklAzJ7HHQ3Wzrk3jqaKtNo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780937753; c=relaxed/simple; bh=a2gNHrfQXAbpHgyrcom7vv6lcJ0JKp5KwHsJj2AyLkU=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=H6T4FRpoj+RAegXzKymZhaUES26Svtbfgh7Fgw70hxC6Et/AFbbsE4/h1EjMmubOcacqPGsWXAItJ7IAi4QgAKcQyZpBoqh6uFcjE/5fQOPvItn1x6BPQ0uGBLllUByeBp+oF2h2JGTaq481PUCIDwYZwHenfdt2nYnqjpUhY/s= 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=AKTyE//5; arc=none smtp.client-ip=209.85.160.176 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="AKTyE//5" Received: by mail-qt1-f176.google.com with SMTP id d75a77b69052e-5175b6c4e19so50215421cf.0 for ; Mon, 08 Jun 2026 09:55:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780937751; x=1781542551; 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=eZ5g8neWMUm1buYqST+RxCz1TcAX6r9PD0gYi+UhGC8=; b=AKTyE//58kRbRW39nl3YrQzcUwiYaa4zY6ikhRZP98dMDtha0y5BCj5lLLOexQaN1d ikt363NJuAHWB+/wCikE1fKAMZO8NF1nYeJHZmrpSYbOXntMO/CGtNbJ0Htub+hU+Wrr QcbHijSjAf/2DpIppkonMllCLxdBNjO/LOf2a1Hz0lRTKjLM+gLCmdUZIGcBmcLaibZl OcpNkOngX3AcBGNSfyCQepSDBGTck5ZdGVZg3iADjDergGcEADzGeSmBWK01L5PSLxIS KQWJXG8VM0Xq1xMJN+h38J/rcpYcYMbfT0LyL2LMinhMZkWqG8zl5FORALQhIt0QwNWM gStA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780937751; x=1781542551; 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=eZ5g8neWMUm1buYqST+RxCz1TcAX6r9PD0gYi+UhGC8=; b=K8ghv9uK3GZtyOY2sJbzkaYTQDWbhrChe6y+7dl1L357B7LaHZUWkp+k47FH9LsMAP UUYR6LHzam0ZVds7DZbsmvYNG+oX2+LMjiIGZXFW/Jywzm+3YxNwPbJlIZ9FpebzWASq +uUDshmnUCtU24CNO56m5dTz9qc5ZuVWLGJkAndw8ddsitt036H6TX4jsQGJtbNU8BNg 1AfckIbKfGBFAFvDzxjfut7B14FDVN+jTaXLVjQvR0Yd74L93tRSiT2lPXacVFqVKLWT 8we610//35FAxTdbetw4P1RQnz4MY0Pt+Kgt0QnXfx80r/wEd8m4uJdOX9yAh0Jmq7L2 5r3Q== X-Forwarded-Encrypted: i=1; AFNElJ8zf262SbaC7QKBDzvfykqMS2Nx4liOckC+V+PLa+MruaQrxN7bLGLHs9gO3i2oq7QL0vcO5pglfbM7kMU=@vger.kernel.org X-Gm-Message-State: AOJu0YzoHCMdAiVeqZerdP1zyPX2RGU7mEzaPOtelj2Sl5ZQDYXnMnnc /gh+lHQ7iN2rleJHjGBHCHbzea7XANyIqT4K2T//SAK7EktOGuwNCYen X-Gm-Gg: Acq92OEGfiCIvbHedC7xR/psHYY9/VZCv50ZRZieEB2JAl6Ys3Qood1Ijh2GCYUcr4E ULCnuVou+1cpP+PNZVp6B3+824soBgKsChGzyai3PJbEc2GqOlpD1E+Q1tcSgZdTCdRG5/leTAO AIiEuiNHBnkZvLNBbvCw5pi1yc8mcOvLSWVYkQpsKxj5AcBatYL7rt6EtJlW1IVSPOq0zG5qn8p 3f+q+N4mH2i1EBoRBG+7x9oxqhaBD5q2GORtrdAgm5KKugzeEU3WmmlpEEaRTiBR2/fZ+DIkH2p Z1uf5Q1CrJhUc+FwY0iuQCr2sxveVOHVnjkms+XqHlcDck88TjWxbWf4iHLEZ7sNkEdQz1aM+gk IQ3jL2G7zUWOy14q1PZU4n6QUdHgq9AMFxFUi9u2h0NMayuJgWW+XvX1q6gVnV1YWK4RFosAw9C gSjMdMVkO2/+pwDLdIdhIOt9UCNzdEk0PSL/HiSFnTGwOU7JmIhzA= X-Received: by 2002:ac8:5a0b:0:b0:517:706f:9923 with SMTP id d75a77b69052e-51795b727b6mr227912541cf.1.1780937750613; Mon, 08 Jun 2026 09:55:50 -0700 (PDT) Received: from i4-gl-tmk5904.ad.psu.edu ([130.203.156.186]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8ceccd9fa7fsm171522916d6.9.2026.06.08.09.55.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jun 2026 09:55:50 -0700 (PDT) From: Yuho Choi To: Sunil Goutham , Linu Cherian , Geetha sowjanya , hariprasad , Subbaraya Sundeep , Andrew Lunn , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Yuho Choi Subject: [PATCH net-next v2] octeontx2-af: Fix PCI device reference leaks in debugfs Date: Mon, 8 Jun 2026 12:55:46 -0400 Message-ID: <20260608165546.61347-1-dbgh9129@gmail.com> X-Mailer: git-send-email 2.43.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" cgx_print_stats(), cgx_print_dmac_flt(), and cgx_print_fwdata() look up the RVU AF device with pci_get_device() and pass the returned pointer directly to pci_get_drvdata(). pci_get_device() returns a PCI device with an elevated reference count, so the lookup reference is leaked on every debugfs read. Store the returned PCI device pointer, check it before reading driver data, and release the lookup reference after pci_get_drvdata(). In cgx_print_dmac_flt(), release the AF lookup reference before reusing pdev for pci_get_domain_bus_and_slot(). Fixes: f967488d095e ("octeontx2-af: Add per CGX port level NIX Rx/Tx counte= rs") Fixes: dbc52debf95f ("octeontx2-af: Debugfs support for DMAC filters") Fixes: 49f02e6877d1 ("Octeontx2-af: Debugfs support for firmware data") Signed-off-by: Yuho Choi --- Changes in v2: - Keep using the local RVU AF pdev returned by pci_get_device() instead of cgx->pdev, because cgx->pdev belongs to the CGX/RPM device. - Rebase on current net-next so netdev CI can apply the patch. .../marvell/octeontx2/af/rvu_debugfs.c | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c b/driv= ers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c index fa461489acdd..04ba091773b6 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c @@ -2838,9 +2838,16 @@ static int cgx_print_stats(struct seq_file *s, int l= mac_id) int stat =3D 0, err =3D 0; u64 tx_stat, rx_stat; struct rvu *rvu; + struct pci_dev *pdev =3D NULL; + + pdev =3D pci_get_device(PCI_VENDOR_ID_CAVIUM, + PCI_DEVID_OCTEONTX2_RVU_AF, NULL); + if (!pdev) + return -ENODEV; + + rvu =3D pci_get_drvdata(pdev); + pci_dev_put(pdev); =20 - rvu =3D pci_get_drvdata(pci_get_device(PCI_VENDOR_ID_CAVIUM, - PCI_DEVID_OCTEONTX2_RVU_AF, NULL)); if (!rvu) return -ENODEV; =20 @@ -2958,8 +2965,13 @@ static int cgx_print_dmac_flt(struct seq_file *s, in= t lmac_id) u64 cfg, mac; int pf; =20 - rvu =3D pci_get_drvdata(pci_get_device(PCI_VENDOR_ID_CAVIUM, - PCI_DEVID_OCTEONTX2_RVU_AF, NULL)); + pdev =3D pci_get_device(PCI_VENDOR_ID_CAVIUM, + PCI_DEVID_OCTEONTX2_RVU_AF, NULL); + if (!pdev) + return -ENODEV; + + rvu =3D pci_get_drvdata(pdev); + pci_dev_put(pdev); if (!rvu) return -ENODEV; =20 @@ -3014,9 +3026,16 @@ static int cgx_print_fwdata(struct seq_file *s, int = lmac_id) struct phy_s *phy; struct rvu *rvu; int cgx_id, i; + struct pci_dev *pdev =3D NULL; + + pdev =3D pci_get_device(PCI_VENDOR_ID_CAVIUM, + PCI_DEVID_OCTEONTX2_RVU_AF, NULL); + if (!pdev) + return -ENODEV; + + rvu =3D pci_get_drvdata(pdev); + pci_dev_put(pdev); =20 - rvu =3D pci_get_drvdata(pci_get_device(PCI_VENDOR_ID_CAVIUM, - PCI_DEVID_OCTEONTX2_RVU_AF, NULL)); if (!rvu) return -ENODEV; =20 --=20 2.43.0