From nobody Mon Jun 8 13:25:33 2026 Received: from mail-qk1-f182.google.com (mail-qk1-f182.google.com [209.85.222.182]) (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 3F20239F18F for ; Fri, 29 May 2026 05:23:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780032223; cv=none; b=HsmktuTFkzBCuK8Nu17w+B2X1T6A1aCF+8C7c/VCYaOQI1tjT4orw6CZwOvLI0P0cR28t8qmoWykeCgQ4jrp0m3Dx/0Ztgv1bWEI1AzEyK7LDY3oWe2X6KNDdGKkK8qfZwGw7eLol7v/m/FfmYO7Sb+7S3BR8k4Vj5+IWCoI8dU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780032223; c=relaxed/simple; bh=3vNAKM6j6aVnMJxr08z6uHmAK2r+kDyvp6exP24BZxg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=PRPo9JeiX9Rblz/cZRJgaYX7UX2au10jsiiRTg1WtlHekQwOgO+BbBK6K5UmwVw7lJn5eTm02SeNTiQg+mi4g0xZ9kCdMSsJb3MvIcmBBw/apcTop/0Gs4qcaXehm3DZ5qLC3oJtyKcgwnaizgUwN+bnuOWULUcFukLmXlMd3s8= 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=HFHQB+m2; arc=none smtp.client-ip=209.85.222.182 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="HFHQB+m2" Received: by mail-qk1-f182.google.com with SMTP id af79cd13be357-911449d9d03so1503701685a.1 for ; Thu, 28 May 2026 22:23:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780032221; x=1780637021; 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=VB5HuyxQYxuhg6foYaDXdEVb1NOeFWcqTT/3q8+M92I=; b=HFHQB+m2w1CIYXiv5x1pG81B1vsYh91tZBJLRRVh2piOkiyC6MGSMfTzNN18xVb0Fz 6FTHO6A5Aax07HvsVPUXxtqK0QAisS+g+qoFAAZSWkSTwVGdYkwrPzM5XYjAKB0sUvle 8s4pNka1DUnSZq5zs7mqYl+O6Ivh2+2UWT2TtlVFXLz8a9HPbxuCLSPYjRuqyq7JpZQa V2YrxceYurD5gGmEG+P9dnn+9QOcpKWTjodEcCKq5pfPm1SyFpIZyFUjI/dnpoBvVJ7A BfSamCwoHA0sJmRxEaYfzP2GG9JmPQCo1y29hlhJ22MAzYI9Fgnb37OwO+jwCPFnnnn7 EYpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780032221; x=1780637021; 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=VB5HuyxQYxuhg6foYaDXdEVb1NOeFWcqTT/3q8+M92I=; b=Wz8H8CHu/ITKM/cdtiN/LAiJ7Pg8rkLFI1tcW25L/2AbMQVLdne5kfYAM5bWyHc0Ev QAbmS0+VoTYzyFcFzP2+juAU2xet/OFGlM/8VZO9RCxnXfO+SKqmLD0sJc3oOrrbPCgH NZpD5siB69VG7y83TeHh049j6cOY5upgekD8OB1Xsz/OLYMHKnZJqElbyyqlPX4ZBXgk 2N6NJY5EdWOFB2GUPM1ovoxO4G8kH7h6Etp2z/3jUCoughuv7uNwTJ+Fou2c+nuFRq5I oFs8hC3W7Hj+7ox9Xs21IiiRT7DdNo+5Td3bUJZBW89qxeN/I9Ob8QTRkb3n8bUkf0U8 8VZQ== X-Forwarded-Encrypted: i=1; AFNElJ+U6H3KblnBTV+PDNh3A4kdwsZ0PxnYEYdIEEIOZ3EoIY75izxtv7aDSVpWwwAWChc1WEr3YQgEBkogvGk=@vger.kernel.org X-Gm-Message-State: AOJu0Yxco7xC6d50qqH+c7gwjiMDbOvCKtFO596QoNWX9seOyOK6BjcD mLw2iIizIq7MdpRjD2rt96flTAmuxudP5CTmzfW6yfvogvlx6TwS9RAU X-Gm-Gg: Acq92OEuPChjn6evh85LgAauWQfv2IH4Y/PUqkRtXqaL3cF/emSS7/46HToHGAB6pH8 M4XumtwQs24EIfOwrg5YkfDMmGbTmPIPOL+W+kOng9KFj+ykVfWYi1d8w9UCyPr8k0DmzX5u1Xc v7fwST9+cT+ijaKg1QwE0qageD68GN45WngxjFKU1eAoAIT/LxBjTvymi4mTj4NKUrrENT3Kzhv 9vCJSimeYuoIYpKORcOtj1NJXTIiEZ2UHlzQ+uSTRz0BJCgySsYuPTbzAbwmX4GbSKNfmCyabgE vjD41/JREltEIun3nBe4vAMsSLkLU/luKdwrQuyauAeQj8+2ICN4/C4nEjceaj3XCufc4ct8s+I vpnXgXVOfSC8vphMpjKmkHMCTPhvv/JIw7n7TdEWaOTah2IWaPGi7T/skM8haf9h/MxDxHWbeTL 42opXWmAwSCMiLNnWYy0zxvyKk/FUR2IXj80ACXPxn8+LslA0C/YLTO3eX8ayyJg== X-Received: by 2002:a05:620a:4890:b0:913:aee6:3931 with SMTP id af79cd13be357-9152fe0c9e9mr180131285a.45.1780032221078; Thu, 28 May 2026 22:23:41 -0700 (PDT) Received: from i4-gl-tmk5904.ad.psu.edu ([130.203.156.186]) by smtp.gmail.com with ESMTPSA id af79cd13be357-915324868a0sm86617085a.18.2026.05.28.22.23.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 May 2026 22:23:40 -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 v1] octeontx2-af: Fix PCI device reference leaks in debugfs Date: Fri, 29 May 2026 01:23:33 -0400 Message-ID: <20260529052333.1665989-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 --- .../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..a94c48e9acc6 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