From nobody Tue Dec 16 02:03:22 2025 Received: from TY3P286CU002.outbound.protection.outlook.com (mail-japaneastazon11010071.outbound.protection.outlook.com [52.101.229.71]) (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 0E38B3126C5; Wed, 29 Oct 2025 08:03:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.229.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761725040; cv=fail; b=RCMI/9md0s8E8b8doUZ6STddGEW4jAQtbkphN93dFeG8Y7M3DF8Du9f9uNMP4q5aiwvXKHpPEET5ipIWx33G/7hWW4gczQ9BxZCwDs4ZBQaG7s5EnKn/OZyUegvXOMVKbMbuijAOsh2AWmiyqiqNdMxHQlbLzTlONO34VD2182U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761725040; c=relaxed/simple; bh=O+25aDE86dw7kb8Igth+/Ni3EWo+0WC/Hj559OO8YVU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=l/XbIN1rRI0eRDBDRZLdpUFvoMRbGBRj7zacEMGWt7/wJHMx/14zj+y10un6f5ZBKXrtL7rpU2rttGSgjLNb4uz+Ru2N2XmQbD0PiT7uS0049wVRHPHBCJMxD7HxOPON2EftYNh7f7EdF3hnuLNpZFdEspa6SwkeAKNmF4Co/uw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=H8wrxQ6z; arc=fail smtp.client-ip=52.101.229.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="H8wrxQ6z" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Dwh0oZKBkadLliNV+NEg3OV0kQN1Kg1I/AxEaWrOshspvz9Nvsk2kdeHliHr2OdU39Ced9UihjbmSjN40a/ir150wTp6dSICa6Uqxui4sRyyxFmX+QtFMybdtDjATzE2WYdZtdI8Fo/iar0V+aNMrRxLK7y5j9nZDBE16Bpmo1V0Tgsh1Y90cCQy6REGYyNNEGMrJxWCvxkXR0zgCLN2QeePrcGCkL45R/HpZ5bCflFbPYBVbkN+TUXa284uv6L4JjoOB68obMK2if6IU2+U/b3CcbbPENgPptyknAXukX1twYZYLRc5PgB6jesiDv/QhC1AvdxYdNWhRpn5z2wrag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=FKApDRV0CwAGwCQhi8dzR3dNnpAqxilqtJChT0fy6BI=; b=uVQJzRqk31q64WGKMwA/7tNgguIG5e7iX5eutSkw/a8zmx+hFtPI53ck+971xvulXayxyL47ckUuMz/epHXOf2kPGKDdWeYN19CjENXWjW8iYHUBbEaplgnOYYNKFQS0XoNTUAIdy5X/bqF9JckOKpIjTBxOZR9kl58y5CFw7VxSVDCcDykM/YRhNHiilMfLyIPf0cwlweK0+IBnBL+PglWFXCcVPOUly7Pr4IJ85QqD5SgcWjV0vtpGp3BX+plJLjeVzVTKxFWALIBsYeqnkvGjSq2J/2axOO1W+rKJzYOgsRZFosLZFAgkecq6vlZS2598TpOvvSF8Z0Kj8z+xow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FKApDRV0CwAGwCQhi8dzR3dNnpAqxilqtJChT0fy6BI=; b=H8wrxQ6zP2mp11o+G2Ug50nxnZx+42eVkLjO2+8nCfNRHmhLNg9FheVtnufprH3wf+vOhZejRICrUrl/rb0uuLfdgioBBEHUtQyKjMddR5xwzHxzRl9rRLsVrtp7aWNETMq2iu7Bye1tH683z8Kp4f31GlDZ5KMIJrRIkPjuac4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) by OSCP286MB5086.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:349::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.20; Wed, 29 Oct 2025 08:03:53 +0000 Received: from OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a]) by OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM ([fe80::80f1:db56:4a11:3f7a%5]) with mapi id 15.20.9275.013; Wed, 29 Oct 2025 08:03:53 +0000 From: Koichiro Den To: ntb@lists.linux.dev, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Cc: jdmason@kudzu.us, dave.jiang@intel.com, allenbh@gmail.com, mani@kernel.org, kwilczynski@kernel.org, kishon@kernel.org, bhelgaas@google.com, jbrunet@baylibre.com, Frank.Li@nxp.com, lpieralisi@kernel.org, yebin10@huawei.com, geert+renesas@glider.be, arnd@arndb.de Subject: [PATCH v2 3/6] PCI: endpoint: pci-epf-vntb: Remove duplicate resource teardown Date: Wed, 29 Oct 2025 17:03:18 +0900 Message-ID: <20251029080321.807943-4-den@valinux.co.jp> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20251029080321.807943-1-den@valinux.co.jp> References: <20251029080321.807943-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0051.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b5::14) To OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:10d::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS3P286MB0979:EE_|OSCP286MB5086:EE_ X-MS-Office365-Filtering-Correlation-Id: 37e65a10-ef9e-46c3-3a43-08de16c1b3f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|10070799003; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?GloXUBoV+h4lf2Wlt5iX3iFER5NTIDza7wcqAMeebgE8KeTwlKBddu9yeS4b?= =?us-ascii?Q?haieJHueEgGeuw5DtzRz+Z/QB85zNN+juktTLK4KvWtACkjJe8rH70mMxmeg?= =?us-ascii?Q?w4UvTZB8wY252PPvzy2NEWM7qlV5RaTBRvH7n8edUWC6Jkis2zU0eebH2SVs?= =?us-ascii?Q?zIlJiiaKC82mrEbUqIEMguMJ8EbVFBAW4lPJUpuP9LiB34CipQ5+7Z810Sgo?= =?us-ascii?Q?LUkykzEr8W6kz35QGU8DGpah3e6yRiW9EUNuAvww9QKkkttnZpREC/aJ2Qzs?= =?us-ascii?Q?JagRQtJT9W4Ql8VdC6S7oT9anT0ciRvnEm1YaiWwc4cS4jNTeVr0Eu12yqzp?= =?us-ascii?Q?cHVEqnPZwPHICpqdE4gx4yzgAuEkB3uD9u9ckWWWBMZH0SMkI0rC8qdOKMtg?= =?us-ascii?Q?dHtYdtf8EBK1Q0kxWrHJaSfeUrr8SGINyQoghBnpyQQ5AD/TKuXK/6VU6ybU?= =?us-ascii?Q?EZzo2dcII//Tva2x9AVSvlYj0IFraaCdLCPT6vFruKl379bOBGEn4qGyOx7W?= =?us-ascii?Q?3Y/m6dw2nRaCPfZkf6n87rLvKzmir2EWDJPVPrvx+WHaumjEntg8r/wtQFWQ?= =?us-ascii?Q?qptY16Hr4LpEVJifEjQlgKwNR5O5SW4DzRQe5FAD0FgctaC13MuRPzzGO3pp?= =?us-ascii?Q?LXDmbCFXWIWfcChKLjoA/Gu9qI86hUAySMv2he/0qH6nqsI+Uy1lY0QgOouo?= =?us-ascii?Q?l3lPGaBEeaOPH4N1E0XMojVMowMQMunz6F7bsLrdMaq+ktwH3qp1Ug4Pzz7+?= =?us-ascii?Q?YebWP2An8Izus7Td6GvYU90iV2Qa9XMaWOZJiFe0uFL35FigkzyDr+GQthkP?= =?us-ascii?Q?c34mcnVUCszhf7c7hGX0qjhOMHxGFuyZ4xXJ5qmhzJKPIAnYc1jhq9JwKXUJ?= =?us-ascii?Q?5DHDtyUO2TBaUgmy3dCQLKn32nZWTVbJzSINH6hyspCC6UY0asQ1QK/e7Yke?= =?us-ascii?Q?G2Q0K/lXQrqIezVAyXvp547+LWjvTFt0eK+FxvYFvmPjdlqLXtcjNbf3bwQ1?= =?us-ascii?Q?v+ZEv6ACK6/Dz1n2cvUZNr6yat6n0pVuboTnpxAIUiYfNWcgSsW6cc1dh6po?= =?us-ascii?Q?qDDTHMcTeiRTLIn8GVEJnIbhz5ABVsq3LYFozC2IOiamlHTPvLxxt2YAU1Nj?= =?us-ascii?Q?s7Lljs7gUMgoBFX9dG31UcsALJpIIReH1HOyNkj6IfVJ7h5X63Ma66kuUGy3?= =?us-ascii?Q?Q4Ycp0NbGsNiUgS40cnsep+UUWb5WhCPryUToDjnLAvf12Yc65USfVI6AwSi?= =?us-ascii?Q?KNOiFPEsPCmG4xJ1EMhNZRH4CXyS+qi/YjBfMIVU3NVsGvVNyYeEcw1h06rZ?= =?us-ascii?Q?sbVKjekuZFBAy/AmJvLk6QkduD7sELzUtgfSA1HVi7CJMKn5fsL2w535MnPa?= =?us-ascii?Q?git647BiP0s9DYIzYJnrIrXS+r/cFHPASpvq+uB4d0tGhG5OORfCqJV0RoL7?= =?us-ascii?Q?jkXZvyHKD3aqIyvURdBz8MfGNWU7lBF8?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(10070799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Jso50GsFUK7w2n/FCH0fhYNfOgRYzSfB046eis6ySJ5sCGpaY/9AU7XW7R6D?= =?us-ascii?Q?kAB8EAusgwCojX/U8FYiwPj8CaZzz7XYivMerSa7wulYZp99WjNtm8HY1PQ3?= =?us-ascii?Q?nC2o10VAdbzxRzeft8DEJAvEXbmdRDjbVY0gUBgnccwvNyNG0xyLfW7yBM0c?= =?us-ascii?Q?EHPfp7bKntT4gaso4Mhnfp/AkW3OHaNJHTnpvSczGjBnrcVY38QNdcGcjUpL?= =?us-ascii?Q?8rpSROZp1GXE854DZ+WyeF9EdthIClkeLRfmFzesgcy4lUglcBBkFKXSpBaC?= =?us-ascii?Q?TIQijdtH5zdmCJAktvR4S8UP5iTyCjGnly1+HP6y70BgaGOVcvLHg0pBBEY4?= =?us-ascii?Q?Rgk3LiMdeI5Md/VN51tYIpeQe5tXUHOs8TU2s+uvH1FXIPwB49O1AW3qS2EK?= =?us-ascii?Q?X4X9l+A2VTuXC7ZT0QJQy+wuCrDueDkgpNJhi7trY6Wmzno3KodIZ4wdW/H1?= =?us-ascii?Q?8RXV+Ee545nRh0TgGEGRMl4f2+8oAlITsiapAxMPjdat55Aq66pw9X6PSgwA?= =?us-ascii?Q?XAHToQlZxq/dstxS2RWopmxtw2WRSoSM7zZDuHsMPgdon9hs27SvQg1atSNU?= =?us-ascii?Q?KGXGiDc3SdD9aYwEWngRiDDe3Ee9yaU4w+IuK7KQY29PLq+O6dc+a8QU6ERC?= =?us-ascii?Q?KDyko8mYySvkQf0pArz0yQXjuitfeRkXbW4Qcgyd0XLR7bEfHH9R9pFyXQ/g?= =?us-ascii?Q?oOgjpaAB5F0HpvejWCPDyJ6d2InQCgiZ7/3qy7+YlogR5rbRQ2PpE3hfyN6U?= =?us-ascii?Q?DWgJ8K7HIbH4vYUkWC72U4Y4xfaLg/MjgVnEQLDR/B0w8UW/w2iEwh6NTISJ?= =?us-ascii?Q?nvOkLhrzb+J/+rYoKlrpzEe8z2ICEe5LoiwN4EIE4lVFBD4T/qTOjClC6Ty1?= =?us-ascii?Q?j9MJIXaBpUhS/+i5dVHnjjiET7CldWh7wicmcdwSlIhaO8r00Gysi2bZVG6s?= =?us-ascii?Q?sCa0Xy5d39OZhZ9nFPGbugrtOnjGypVnlkjGTyeU7HPCqHHk5pt+EgbLGFuA?= =?us-ascii?Q?JG+kywXCdNGkN2ekkZCXJmQKKB53VqrKM2p8lHgHrjfU9fJM/4DJ2NXgCTHO?= =?us-ascii?Q?SXmtvznUl2kQ64XczY162Q2ieH3p0wJk4Mjznjxx82NTcIheyb71Jbu4Dlr6?= =?us-ascii?Q?vipACmUiSbJ1tv9hWjCDdrd6GeHtGg7rZH6iN3RynQe+igumpf9d2b0kVyLT?= =?us-ascii?Q?fW4WxsjPkAkkG+P3AE3yBXONopi/+HewtEuOxNizt5TXvH3DL99g77Mi6g6S?= =?us-ascii?Q?3S1Z1FjnKvfVOihbyQaIMZoEctIDozGMmTN3D7L58BcDnHbMzrC9bIA5FkIV?= =?us-ascii?Q?ATjSRRGncArz5plZb3osCgicG8rxVsb01TD/rp6tZken1+9a5+Aoc2uoH+OO?= =?us-ascii?Q?Og6eLWm+gp/yW8kyyt2LEvYiEBYm7gFw1wpEt4jvyew0udidzRfdOOBrYbNn?= =?us-ascii?Q?MhZWfoY2kvxAb2DycbaiQyToBvbYS/9xUgRopKZRiPo9OPFTGwKWa7EOqdiD?= =?us-ascii?Q?Jl4PIblQztoMeHy+3s5q6i8PnriAJE8Bhoy89WaQ3B0RbiWlSdpYPOeWhWKA?= =?us-ascii?Q?Lx3AWFRwLjCMJtLGSz4ZCUZEFiFU5/crpB9vf65wQNvvNlhYyjboMrVWlY9e?= =?us-ascii?Q?Mmi+vzPdfvDN8keh4agR4+Y=3D?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 37e65a10-ef9e-46c3-3a43-08de16c1b3f4 X-MS-Exchange-CrossTenant-AuthSource: OS3P286MB0979.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Oct 2025 08:03:53.7775 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VDhUcQwSroFjnIzz3PqyIBXNQjD1jF8RLvcAvfgSUyhZQhYf56fZLoj6yVuaGPEHAzEorMdi/PyEgVTlTK5bkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OSCP286MB5086 Content-Type: text/plain; charset="utf-8" epf_ntb_epc_destroy() duplicates the teardown that the caller is supposed to perform later. This leads to an oops when .allow_link fails or when .drop_link is performed. The following is an example oops of the former case: Unable to handle kernel paging request at virtual address dead000000000108 [...] [dead000000000108] address between user and kernel address ranges Internal error: Oops: 0000000096000044 [#1] SMP [...] Call trace: pci_epc_remove_epf+0x78/0xe0 (P) pci_primary_epc_epf_link+0x88/0xa8 configfs_symlink+0x1f4/0x5a0 vfs_symlink+0x134/0x1d8 do_symlinkat+0x88/0x138 __arm64_sys_symlinkat+0x74/0xe0 [...] Remove the helper, and drop pci_epc_put(). EPC device refcounting is tied to the configfs EPC group lifetime, and pci_epc_put() in the .drop_link path is sufficient. Cc: Fixes: e35f56bb0330 ("PCI: endpoint: Support NTB transfer between RC and EP= ") Reviewed-by: Frank Li Signed-off-by: Koichiro Den --- drivers/pci/endpoint/functions/pci-epf-vntb.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/en= dpoint/functions/pci-epf-vntb.c index 83e9ab10f9c4..49ce5d4b0ee5 100644 --- a/drivers/pci/endpoint/functions/pci-epf-vntb.c +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -644,19 +644,6 @@ static void epf_ntb_mw_bar_clear(struct epf_ntb *ntb, = int num_mws) } } =20 -/** - * epf_ntb_epc_destroy() - Cleanup NTB EPC interface - * @ntb: NTB device that facilitates communication between HOST and VHOST - * - * Wrapper for epf_ntb_epc_destroy_interface() to cleanup all the NTB inte= rfaces - */ -static void epf_ntb_epc_destroy(struct epf_ntb *ntb) -{ - pci_epc_remove_epf(ntb->epf->epc, ntb->epf, 0); - pci_epc_put(ntb->epf->epc); -} - - /** * epf_ntb_is_bar_used() - Check if a bar is used in the ntb configuration * @ntb: NTB device that facilitates communication between HOST and VHOST @@ -1406,7 +1393,7 @@ static int epf_ntb_bind(struct pci_epf *epf) ret =3D epf_ntb_init_epc_bar(ntb); if (ret) { dev_err(dev, "Failed to create NTB EPC\n"); - goto err_bar_init; + return ret; } =20 ret =3D epf_ntb_config_spad_bar_alloc(ntb); @@ -1446,9 +1433,6 @@ static int epf_ntb_bind(struct pci_epf *epf) err_bar_alloc: epf_ntb_config_spad_bar_free(ntb); =20 -err_bar_init: - epf_ntb_epc_destroy(ntb); - return ret; } =20 @@ -1464,7 +1448,6 @@ static void epf_ntb_unbind(struct pci_epf *epf) =20 epf_ntb_epc_cleanup(ntb); epf_ntb_config_spad_bar_free(ntb); - epf_ntb_epc_destroy(ntb); =20 pci_unregister_driver(&vntb_pci_driver); } --=20 2.48.1