From nobody Thu Apr 2 23:55:37 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021097.outbound.protection.outlook.com [52.101.125.97]) (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 8D8622BE026; Tue, 17 Feb 2026 06:39:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.97 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771310347; cv=fail; b=AiRqq6CMa6xy20pTec8sMMyvOJBhhy5QMHNwTQTrE5BplPB87gpmqeeMt6QHm2ML9EdH3QbbkUDF0mI8n8wJjAXAheCUmJyBW6UGQM2+e0N7S/Wms0zC5LvxxDGu0GGSnNj5Q9ovy8ZrdVVwbMFFW34+cuumRBZmWxb89xN/jwE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771310347; c=relaxed/simple; bh=nMrS7oxwkesM4/o9eLnwS8pi7xrJ5MbKuZqT3Z9L2hE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WWQyzWwqGsr/OtN8mUe5NQFHhtNHpTYtbXZPl/dnW5zYQGkf3U15KYB1EtnJwZwL0u+Awfg6bAZHPDX/8HA8leK2EXjIcpTlrwkMzZZFSVgtoxcSU6mPRN1UbU3/r8qrf1kfjiXWU6xIk4E2KzgNMAY441y0Det1dG2Q5nUscm0= 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=YItfG/y5; arc=fail smtp.client-ip=52.101.125.97 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="YItfG/y5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gCX6BlrEjYb/k4Tg3KmB9r/ffJ///OoR4x91jotSkBgG4EftxzkCQJGnN9z3WpBpmZHp9OdFrWiynPr4zlBWsvkLVMcdBphYK8oLAvBVPwDSr5mNeFnBQ42oUk1FEZqTKLzQ/5on6aYIiSjtZ4II0tgHv1RGANJ8zHSpG+fu9CzcVh9tc6d91qn0vIzeJ8Ghl5QrgZ81NKlKLwXOxkQMYJZI0Usf4fsQrsQQ83jMMhNgyFAOzsOLnv1KcLxNsSFi0/J+g5LeUQWFLNZeJONND8+3XsSTgqbNWSvqzDmN3X8zNL8Squo0C6f6mbVNqd1JgnrTTaMmI4gswN5QFXoNyA== 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=TqoMmfMctpC6HfEFGVnqTroLmzj7eCr+SnZN88+sRRs=; b=m5DQGdutOiPppQBaL+bjAb1hdr7ide1TzTcCSAQjgkW7llNxRBhNpUUSWzZqHxuXZ3+LcVOtCAvf8CMW/gLrPuoiUCLIEGpxzVuyBfm4VbHXp06rJqjbdOKlRLj/90M79fI0FSiuUuIeSqTuZSgDZqgekvIbeRAJ55Ipua2jVgoJMMsRK58blYyzWlA0uV+4d+SGKS5y6s3a/Vv9Vypm+RARvm07SvIOS+eL+hHssoFDTfVFpe8mlpYhx56RlAGa0Nc2jORsnn+G9ELlKsOL3gG55NQWdCxoX3sKS04UOQK5Nv8aUmaEGZ6n1L26SKdnv//zZHUarEkrI6ByMoIBuQ== 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=TqoMmfMctpC6HfEFGVnqTroLmzj7eCr+SnZN88+sRRs=; b=YItfG/y5ebZClRY07kOyqwOQZMTNQYv5Lu5esjdCMRTiWVNPY1XMZTp1q0nX9OqD/6dNQtJuWOwdWK1riEAHaVxdTRaXUrAqHtcy0LZM6t222Hfr5I2ZNfwEc8xEuVam/JIFO0z8SiNRxyFp+ASk28s/HBmQi1CqB9pSIInJ4hk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb 2026 06:39:03 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9611.013; Tue, 17 Feb 2026 06:39:03 +0000 From: Koichiro Den To: mani@kernel.org, kwilczynski@kernel.org, kishon@kernel.org, bhelgaas@google.com, jdmason@kudzu.us, dave.jiang@intel.com, allenbh@gmail.com, cassel@kernel.org, Frank.Li@nxp.com Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, ntb@lists.linux.dev Subject: [PATCH v2 1/3] PCI: endpoint: pci-epf-vntb: Fix MSI doorbell IRQ unwind Date: Tue, 17 Feb 2026 15:38:54 +0900 Message-ID: <20260217063856.3759713-2-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260217063856.3759713-1-den@valinux.co.jp> References: <20260217063856.3759713-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0250.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:456::14) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: bf8ef417-d853-4ce8-5424-08de6def3df0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9A7v6pv4BUsDtfKcgBLy7wxHmedeJAgMavQINXnZAQW5MMdOlU7AxnlYuS5S?= =?us-ascii?Q?+JeW/Otvdurq2JtAmvD9ABXtW7+rcTaXQOZYi4S2ATyxKO+cYZD7TZgU7Gy1?= =?us-ascii?Q?x6DTmmpnGSpR+ILVstslAEjk1mOsJOwKV7ZEMoL1YktC7vLYNjvQK7Qr6buA?= =?us-ascii?Q?0CdLmS3x1BSb+7JY+GvqRdVuHbbPaextcLQMhvDKqx/oF2E2KrSnVDs3lOXH?= =?us-ascii?Q?GOAzESc+BaXNgtuG3EgXgzMO5fgTQxLTKYFP+dNymDZxWAoWZySwJad4fChA?= =?us-ascii?Q?5E2Fhk+b8edKxuVOd13QvuhTBH7yli7e6/sje0wNVrkg45c0fii2Qcn7J6y4?= =?us-ascii?Q?bwM14qWlCAasDbJLD+J5KL1ndd0FT5UXVzcGZtPWBVSdEw2Hq+3pSK557V0q?= =?us-ascii?Q?IZpkXA9SXi2Hr/sprfVlPOUSuoc2ij3cDGLPwOGsVn0gIX9d1hY3/jVy6lGs?= =?us-ascii?Q?03pZ6pPj4OF0r3xhOUSTZeynCCrpMkm0rokFhwQs8QENTKhSeqogXhItUhUe?= =?us-ascii?Q?HFsdnUr5PPbZCtfau6c/OMdNYNiCD/Wzeqmr/3oCkllIS1nNwinciTO9YeGk?= =?us-ascii?Q?KczR7Rfkyg4ffKgyq7/43nx/UafPOwIJODPOlf9jkjFM5dv1CYLk3tiBA8qB?= =?us-ascii?Q?VQOnyLXduK+M+ZvHq+gSwXLXqizscPndukKMDzwiQfplezJshs23AL0zjJnX?= =?us-ascii?Q?mD03wYOK2JEiHZT5tpwI2muL78yqFYeWv8g6W8B+yYGfzl+LVURRAIS0Xijw?= =?us-ascii?Q?cWI988GoWvoLKMfkArJQLP5KsQ9DgfqTo98vKENEwAUdGCB0+WuW9J4rc/mZ?= =?us-ascii?Q?q+WMlT+1oufx/yZi8W/dppnpNiWSDZIkBwlTIvK3hkagG8PCVNvk3d+3kelg?= =?us-ascii?Q?mbwZ6JtqcHxxfy3qWiJXFiOc4t02G+j49IZLmfztt0EUd3hsN2M28JKqzF0A?= =?us-ascii?Q?TytgPzFiXhuFVmqeURPXFy0JwDkD0ZvBNU7Ip2J6+lAdn4iAfZuVlyLPAa+N?= =?us-ascii?Q?EWTarH16hZTohYKzgFqDxyUlMxf1i491zd9boQl2dUK13cBHrJl33KwvUhjw?= =?us-ascii?Q?Mh/XzW+yrbJq9bhUtsePSH+hVHWhTdfnitEtjK24mC4pYcMDkZDPJDIVc24w?= =?us-ascii?Q?dTMJqkFYJn7pjVpk3NI8znFOdEAedW0r44+Y930yonkoboNMvaCIkZUV3Rkv?= =?us-ascii?Q?7cA+OOdtLrmAjRkVPrNOIOaEmYH/948TSVZHie8MFdlLRyVeAd3q1acxTvFQ?= =?us-ascii?Q?i/6j0n+OpBp2LktYVPI/XyO53I9PogffNdKqq9rEm8Z4dfzU69iwtD3JRzPi?= =?us-ascii?Q?ucyD2xWqqcz9oaI9H7BjcTo7+hYn9y9JAqY8v8SAtpeClpc5ZMWgezBPKS1i?= =?us-ascii?Q?vCcV5Gm8hm7PhfK1wSsW74o02r6RJwgwFOIOMBDCSeoO6DNLDD0Ggit664mN?= =?us-ascii?Q?p90ULXNAkL/0M2DHOLBsRWgELgh4uLKv7ZO0ZcI7uL2aXDQ7sJfGkp1AW3Fd?= =?us-ascii?Q?q+pmgu6egEBfnFHUkKZvAyCrSNR8RChDEHqxBmI3PX22CIKPtea/lXIErjoV?= =?us-ascii?Q?VI8UhCwiwlaJIxmn0S8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IWmXkqJJBf7dBYeoIqnU2xRnr0dcfeWMDG6DHHtU4VOvpcZAcO1ETOvkGwiq?= =?us-ascii?Q?1bJ6KCVZLBtXr/ESr9kSR2+bw7yXHNejAJk3sETmTri/hTKV3V59EiK3cjAn?= =?us-ascii?Q?TVlCqxOYpSXKLbOu5394/V8f+XheXIkRyRBeTxDnRa7GSL4CUiKwneD01WZB?= =?us-ascii?Q?5yK4C3+WgEeUBjwYlqRrkGxA4tWlQyciyxZM/ZHODUnbR7BzluW28+xWStGl?= =?us-ascii?Q?8/uKqnNTdi6rCk+HThx5WpZAV8RN/Uck1xprQEPTw4hFnN0u1zt72zrbXg5W?= =?us-ascii?Q?GKZa6hliAn27WvLv1l8ghpaCjQ3ezjkDWwS5ap2RvCtwFYBTXTX2LWLClV/K?= =?us-ascii?Q?01F/DlkioYH63c4o0daiYVlyxF/Unqtf0EcghbPZdfxbutkNj6jDN3eEDSC6?= =?us-ascii?Q?DgdWfC0YYNnJnGPMOQr5t0QbhAb9OR79Xju1dFmbwXfrlGUSlMmVty0QHl8R?= =?us-ascii?Q?PbVZ17uSei22XIPx+1Wp7JSWhTGbyp5ekY/Ylknj1LNLnaexrB6f3vne8v56?= =?us-ascii?Q?I6XcqS80wj1RxJ29CIl/z3dX2xSParxuPwwkmB/sgR1z1fCMaCKpn1qOcDcz?= =?us-ascii?Q?6duGi0oMakV2NmZjym47f+u5lPiHOz4CPjtAX54MDzXSfL6AyZs8nlUVK0v8?= =?us-ascii?Q?5J5MP4IYF2ZldC+Xf/nabAMZoKTozwXl1oiAMPmGc4hWf1caV+nx+RBxfShD?= =?us-ascii?Q?Gfx0Mihpqwx2gOdLnDvbIKq3Sb/X3fqFBmHHo/4UdQcqeI5dp/RVQSmqXzDw?= =?us-ascii?Q?s7rU0dHePuPMZueNK0uFkrtqnXG5yPY79rgGmN1a0USk03UcZbOMXlINJI+B?= =?us-ascii?Q?QZxlrK4ir2YhPu2cZ4wx9Rq/fKCPgPYJrhw31pt+zPM5OjM1VO/tSvv1Qrk4?= =?us-ascii?Q?eK/kORsNMbHAy341FOJziuKuO6+PahBLhjPMjhhH6h5vynw0YJ4McmqP1tnu?= =?us-ascii?Q?X3sS53hxwGtCIOh2zbc98RQ/axJv+CLNc9BSWNj+rq8aHD9ut8c4WRJruFsA?= =?us-ascii?Q?yejGXTF7Eib3Jw34dbHHFaqqTZwkczaWBEYZ2Z96LnF8tXxochK4LkM6/i7O?= =?us-ascii?Q?s2Rtki3OFnYYaaKQTs/mlVl0DxipKCCmTTU8HBIlLI8OtLVAa5YdtpE4W19i?= =?us-ascii?Q?Jgn9+n5wgyQfvpzFLupy9x7lMMfhQRfbuxM5nNXvItACFDTB+KccaKn6grv/?= =?us-ascii?Q?Q4qSP7SKLnMfoVIb3ls31ueVppqx62iaM+xWOU0ehBk5s6C3ayTi9uxV6p70?= =?us-ascii?Q?YrvUT0xR9je3HTYL2NASVncJyM8LrcqGCR39PjbhPpiiOf8q1JO0/zzS6G9+?= =?us-ascii?Q?gc0L0of0HDr239UlI2Y6Atu9ZKbOteUTuQFCVtpd6ZN8zbIINE1O+vLmot+l?= =?us-ascii?Q?4cIMOgSMZU9rkcggafCIDo3Beo1m197fwgu62EF/VD63cArsxzoZlj+8cwAS?= =?us-ascii?Q?ceaMGzOuttcL78CzhAS9ScLcGSazULiEsO40gCwUdk1JWbaEH35Ca8hhSL+B?= =?us-ascii?Q?nC/2RUDpPCO2vlQUaOF1ikeS15JMukij23TmkAVdNq0h3zezki4e07mLC/bo?= =?us-ascii?Q?bBfpvj2M8ndsvYmBxWIuWvo7UvATES8y780Kri5jKE5sNCIfYJ01PKSywQNI?= =?us-ascii?Q?wQlF2DVtpbz8T0yW5Go4FTxcJqfbRCr5zqaikslurnMtqjJdu2Rs6a7D1oXs?= =?us-ascii?Q?2oG6MAmlf4Uqk93a8lp2F0qDuSH8/wv44Zs6q/Hk+YwTaL7+AiA79qi8rmqn?= =?us-ascii?Q?Mh6cAjF8DnHg9ojsHDJRv/BW4MF7nhDNvJPSQ9YsqjlSTDbo0hbO?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: bf8ef417-d853-4ce8-5424-08de6def3df0 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 06:39:03.7470 (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: +a1hFHQe2+y/S0zgO4B2rRAr64HQC61IZplyIzzO/jOf5EiZ3YvrlJl4OZUJ31Llyaqzo+cE9viyVQSiiJMk6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 Content-Type: text/plain; charset="utf-8" epf_ntb_db_bar_init_msi_doorbell() requests ntb->db_count doorbell IRQs and then performs additional MSI doorbell setup that may still fail. The error path unwinds the requested IRQs, but it uses a loop variable that is reused later in the function. When a later step fails, the unwind can run with an unexpected index value and leave some IRQs requested. Track the number of successfully requested IRQs separately and use that counter for the unwind so all previously requested IRQs are freed on failure. Fixes: dc693d606644 ("PCI: endpoint: pci-epf-vntb: Add MSI doorbell support= ") Signed-off-by: Koichiro Den Reviewed-by: Frank Li Reviewed-by: Niklas Cassel --- drivers/pci/endpoint/functions/pci-epf-vntb.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/en= dpoint/functions/pci-epf-vntb.c index 20a400e83439..52cf442ca1d9 100644 --- a/drivers/pci/endpoint/functions/pci-epf-vntb.c +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -527,20 +527,20 @@ static int epf_ntb_db_bar_init_msi_doorbell(struct ep= f_ntb *ntb, struct msi_msg *msg; size_t sz; int ret; - int i; + int i, req; =20 ret =3D pci_epf_alloc_doorbell(epf, ntb->db_count); if (ret) return ret; =20 - for (i =3D 0; i < ntb->db_count; i++) { - ret =3D request_irq(epf->db_msg[i].virq, epf_ntb_doorbell_handler, + for (req =3D 0; req < ntb->db_count; req++) { + ret =3D request_irq(epf->db_msg[req].virq, epf_ntb_doorbell_handler, 0, "pci_epf_vntb_db", ntb); =20 if (ret) { dev_err(&epf->dev, "Failed to request doorbell IRQ: %d\n", - epf->db_msg[i].virq); + epf->db_msg[req].virq); goto err_free_irq; } } @@ -598,8 +598,8 @@ static int epf_ntb_db_bar_init_msi_doorbell(struct epf_= ntb *ntb, return 0; =20 err_free_irq: - for (i--; i >=3D 0; i--) - free_irq(epf->db_msg[i].virq, ntb); + for (req--; req >=3D 0; req--) + free_irq(epf->db_msg[req].virq, ntb); =20 pci_epf_free_doorbell(ntb->epf); return ret; --=20 2.51.0 From nobody Thu Apr 2 23:55:37 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021097.outbound.protection.outlook.com [52.101.125.97]) (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 10B52EEC0; Tue, 17 Feb 2026 06:39:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.97 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771310349; cv=fail; b=FoLhUYH0b/ZYJLQT0dmibcz1rJvf408QuPwCByWJMHs7hRml6Nx2I6OojfktsbfMGfLzNpLX6zguUQC5p6MjJ022onu+btfuI0DaOQ0DeQWm0a0m9Cchn62v8dFtLJyIaWccF+QOfZ7oyXpeDyMrzTaeG8i1NJrJTugWb7ya06I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771310349; c=relaxed/simple; bh=R+msq/wU2c3j+B1h5SmUTSx3HNjocDsAUVvLe27B6+M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MVGjr70vuoBngHXX7AaTvmt7Y/p3YxScR2Zt75qI8XDSDvJ+LIwkaH9iwjpZi/TuIIwSfEFJZk3sZW40qyHB2wjlt67nWuhdn8p2lSo89HT8EqhftEyXVK0g/ACl1FN8JNq5NShqqpbnh3SV2+9YFHY9Lquvt5GibJ2PoHuTNDk= 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=ceuxtfgn; arc=fail smtp.client-ip=52.101.125.97 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="ceuxtfgn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M7OTQVSLVoZc8a0nH+kkWYspsZ9ux3weY+tIBIAjxM6TFUvBmLmHHHj8B1tc7QxSH4v6jvYSqru2A7q2qDh+T5E2kKOlDuCqU9mubifSrXTQaaH/yvBfnUtCDf9p7uy0thaDyeSRT7zxVKb4q8JcOgtkl6rJsxKQXQERCw7q2PAg0Ez2yrC0aVZc3QNMg2XjEj5Caqms7z27Rce5/pQo75+ELwsmqzEWj67ra2AGGpJXP1OT8lsm/IY4t9ZpPyobUG0aSflMnb31BpDZHx9e0Pe598mhAuySeS2F+5GFrIvu9h9wuMWLyvBoWIVK5uu1bg3flS+44zJyimqWCLrW1w== 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=npCbKe5i1w0XZBvkSofaaLCJgUNyMfbyAz152+QMj30=; b=R3z5wSTXj1pULqURekx59mk5YltIpIKIBp3/MIevM1Shcqhr4FJnxumqvUD/L6vBB+APcQd0IU7PjXJWktItNgLsSrJgigGoT+eQfJeIhdb/OJyQyk7cXi201sONZQaf3ZYmq0KYjcQrT+9HtcJklVWphBX6R8aFkhOnKFWrh0Gmt8ryeTaNgGQUrkzc8m1IDN0MFO2akeiH5XAKguXNQFeo5bv3rZ3HVTBzwEm8kMJA2XSDW6fAqfJ9z3uzozvbijmFiu1IfnpK9mo+nD3PPmHQO9jaOLC+ZpPJJJBYhv4SjKhczCVtUT56nJEo91FJdxVHxt7XFVguU6tbqMC3Bw== 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=npCbKe5i1w0XZBvkSofaaLCJgUNyMfbyAz152+QMj30=; b=ceuxtfgny9laPxpmyyBiT4KFsMbbBXHSKT8bFONb2njIPKGTCOnaLuY2ZatpFQku1VH+KUojLBh58QcgBWj+5zjjGoypnfzGvqr9jCpFTTMAQyrVUI/QmLvkOEvzm2uyVWMfjRDxKTJaOZpnVfJUYQxpHTWTzHc98TDlGzrvIlg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb 2026 06:39:04 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9611.013; Tue, 17 Feb 2026 06:39:04 +0000 From: Koichiro Den To: mani@kernel.org, kwilczynski@kernel.org, kishon@kernel.org, bhelgaas@google.com, jdmason@kudzu.us, dave.jiang@intel.com, allenbh@gmail.com, cassel@kernel.org, Frank.Li@nxp.com Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, ntb@lists.linux.dev Subject: [PATCH v2 2/3] PCI: endpoint: pci-epf-test: Don't free doorbell IRQ unless requested Date: Tue, 17 Feb 2026 15:38:55 +0900 Message-ID: <20260217063856.3759713-3-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260217063856.3759713-1-den@valinux.co.jp> References: <20260217063856.3759713-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0157.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:383::12) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: e7e16a86-7325-4abf-7a8b-08de6def3e67 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Q1cqyzx1eZQtzCU/ED0pwYOwchTyBEwZ+HJL1tMAJhsCOWZjYADdeRg2xcnd?= =?us-ascii?Q?r2uhYwJsXBlMBm0PlntN04RTNyvIv6vp5oYeK4CIzZC3Bb2ImaCH+O6qP09e?= =?us-ascii?Q?/UtSntBhitGWc1EzUq4FAcNZhvse0v7xFBhpkhMv+t6BEBRB0x48e84m/TNc?= =?us-ascii?Q?qdYKS2ccgbYOrUX/Dn9jjz056U7k4Kdo0GOESO5HIz91H5zPXc78j59youkt?= =?us-ascii?Q?P2P3feXwxnvgUj36TntPBolrDKQTWsF9uu+1uFNzGy5kxEz7FwRG8ezkyRF1?= =?us-ascii?Q?T/UofPgqCwftAAv7rXdMsR17OPBuFNI4Wf4vuW7TfdgqsmEaQXoUGxGljdWK?= =?us-ascii?Q?L4ryFsj6hIuOZnvMcY48skOfussS8oTU31QZ09zEC/a+8Ko18gdNUzHrRC3u?= =?us-ascii?Q?joZc/C8TH+qnpUCC9bSAvO3mUfauZdjTlzJaRfJjBBeIaT4str/R2ewKsvuL?= =?us-ascii?Q?4WekIY+3j7SBocg2/Y77+lhxapFsNf1ZZd/WjQZU2g0r2a8owHEZ6y7+wl1S?= =?us-ascii?Q?mugycaGGz5MapsOdp31KSD3H2mjVaQZWr626jCWyXm/po0dAx00Vxj/pr88L?= =?us-ascii?Q?5c+Vqvbihd63Az4m65Z69LuMgdVSsSJaJXy4Ax94Nz0Zt04U7WloVKK4GLyG?= =?us-ascii?Q?wTQmoKxmnGxgAHOGAurK047h4J1pGyoM/wcsGnOMrj1dbr6m73cKE2XHdzR3?= =?us-ascii?Q?1ZcckXpzpSBInxwThtc9LhG+x8KMZ1w6RQEDXd+iEtqPk1s9RHFqsrmL418t?= =?us-ascii?Q?ES2/Zwy/6TOICtybilLF1FCh2CQtfrHZlraNlHGd1wCwRSpk/2d1YFwGO+/+?= =?us-ascii?Q?loD4hY7tOmfycDxhcATaVHr3PSrdyhNl1FP1OGQbjMEDuhN7akSc75ijMo+e?= =?us-ascii?Q?LTiso/IsxecO3aZXm0fr4pbjrEpFJvcpP7J2h03owinkWBSY+6Vvze67Y5qv?= =?us-ascii?Q?+KAG7Vv7COPiz9+teZjvDHn470SJOGoY61N2XihC99+O10GcBhMpMgJfH16H?= =?us-ascii?Q?hX5tvxi2YEYUTkgjF+LMQm+fxuVGWYvcRLGeWyH9VawLbHmUL7gv6b1VVdG8?= =?us-ascii?Q?1Jd76kv9jLuWJj9flpL+ASByjNM4of79B7uI6keAMyICvFiL38YXtvjHPGNd?= =?us-ascii?Q?7b4pPELEfnxFE6U0fjT3/a6xz2ZdyX1JLYOVzKHH7gSFd6eb4VZ6sPvBuZKl?= =?us-ascii?Q?YxWFmcs6BMS7NEyxDvbu685Ix/eldiaDzN5HZpwm1e/2869caJaXUKamdPmS?= =?us-ascii?Q?bBzRxm/O1MSkyWsyKc6PVhARAPEVBEr5YoVWNnPt3LHDfqK3CKDYAPHOj/Xy?= =?us-ascii?Q?Nwlvc6EPU7ILyd4mmx1ELfhHuNta4e3TUjlTE8KlRoKmTuXbd0Md/A41pX4L?= =?us-ascii?Q?nA98B+Qn6BPoZddH46W+mUFmE/73bv6V9VkpEvIimZkIGl5ED4oicGt+Ywro?= =?us-ascii?Q?3LW5GOldTtEKnpabzBlRKZ79ErtJ2LGHflHKM+QVm58cNx1WaXlq1I34dgPK?= =?us-ascii?Q?eP9eMJYL7pgGfN/zEGY+WeexNjZF+AJVHWFBr4ESdmlina7hJKMehtwZSpI7?= =?us-ascii?Q?njPCO7w8bRvwGclH4yE=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2xwvXblyyNBF9mRtSuxkpBGYWSdxMUF/Dw7kV6IOrNe5o+jwybXm8Ng27xiA?= =?us-ascii?Q?4AgzAPC6AyYIbshc17Qa6LqRP4QBwEMESL8jF2ERevqNFLIM3rZzIdAfw972?= =?us-ascii?Q?BeazRDKd4tWCz+v3GYN39bYRmqmDKYIuWc45GgKJZuZSdNUCszzbdQdkHKzQ?= =?us-ascii?Q?m0cWHzifFbZON0bMazXjr/kANErvWCFlDrKbBjXgiqKLQgrpucpII/zuT5M5?= =?us-ascii?Q?NVhNNjajyiaHrg2WTsJezr3+LUbbxKl2H4m2ZxGenkpsI2Qt9p62xlZahqXq?= =?us-ascii?Q?iehZQEMsjvUfNWBaaPlTAfnTdtTvID1gN7+mXa2Vxc1VntIeMzGzu11G7851?= =?us-ascii?Q?DdXYGlI94lm1n2I4JVFO8B56rUes5lMV/Vqkb40XIMXJOIZmL31IG8WE44/Q?= =?us-ascii?Q?IE1DnuAAI4TUGwayg9882JhzJo+tS0v234YsYCWnYnMavYDU5oDMMncztiqT?= =?us-ascii?Q?ZxifSLc78bj0/gr7eWyTbOP01VBvcw4D2eKErnT7I+qCb4rAzp+JdhilTri7?= =?us-ascii?Q?4pIEN0ljcqXR3hBf1e7XvKTwHPqMXVpgZ3dEi9Ks6LUFTKvQ8ZF90ij1R3zu?= =?us-ascii?Q?BI/94hn5VeZQiYaHdV5rSFs6T73Xb9YtiX1jzIfCOJPOZjT+PlEVh56usGLo?= =?us-ascii?Q?NnTvXMW8S9LKBysRK9Z73SN8wntinpNRY6OQvoR8S3tVWS/v35UgbRCt48Ol?= =?us-ascii?Q?gBAqm2wZ32OC0S++9LTd01PusanbUnSUXLF2Pg1aRF4BTVamjYe4vjCTQOz2?= =?us-ascii?Q?4x/Hed/dGGa98pY5Em+faMeNFw403N0x54ZXkQXThV29jD5CCaWefUpuYDoA?= =?us-ascii?Q?900QUIV9PuJjDrdOeXEvGW51rEukVDkljXWrPw9UMOaiyg5bEd6JSjGHJDT3?= =?us-ascii?Q?PHDNuK1tSfgLvq2sPVYsRYHu5QAAat9K/1oCTYZ69odKswcBDZ0qBI2spG49?= =?us-ascii?Q?7mVMSXE91k5XriMi5LLw25NDAa4YkTi+ixImgXOPb8lN3S369Y9Bv2EQYWx1?= =?us-ascii?Q?ILSE+rzyi+uvx5VwMEdPKyHidDkeFcL7dTWMcbwJ+KlcRveqgJzYKGlN/miJ?= =?us-ascii?Q?+Ivwz71Q1l/EsAjN5r9Fm9GIe6GWDqrxalkivohn6I4ecO0jSSJED7aSDVY3?= =?us-ascii?Q?VbF4JSjC9NcgSrIaOCiCivxOCZQGESKsdTqGt2zVc+R/cldM+0FcjJDhqEez?= =?us-ascii?Q?56u53v7GM5x85HWuSHH3TM6WkvfmEQlkaAdlJ40wP2XXYdUJP1zg+aOOPf5R?= =?us-ascii?Q?o6BTRsJRoHV30BrMNe+kmoQJUz3CADfwAglCULACbRIkDja1n3NVlMm8g4Wm?= =?us-ascii?Q?RASW3sCnvP7Ee+Sdo9Ft5eH1vRSXoOqbkC2/DAaDRx3tgBbH84c6XS4kN1LP?= =?us-ascii?Q?wvMpd+kN+Z/D7PEcHvi7K9hnT81p/qhff3HRr2mktqilqjVeBvd3/lRuWHnD?= =?us-ascii?Q?UoOsZzAmrD8mcY/brUxeKEYhgSdFygtAvjXONMtPts8T2iOgyi29/+Bn0dWZ?= =?us-ascii?Q?lxa6vL49K00/QkmpvILdpfmwRw22XCM36UaIWm8Qd8Ud+ZrxA8ls3ZS8xPuo?= =?us-ascii?Q?sPltLGeETRsGCsy7+ky9cDG2r6fA3f5WDVbUwc3LOIyFOySvSDvyiqQDm34s?= =?us-ascii?Q?ECTogonBaQljvPUiTMaYauOJW0typCfWduf/omX25FIiUSOd8Y2ij351FDkM?= =?us-ascii?Q?iBrV567Jd4837OjeCTzpzQQw7FDWSXVHM9sibpiKuj3es5ZqsiLk+tniPAGN?= =?us-ascii?Q?IIHBVuseY23K2AgcF1y5eHB9PXw0LJ61DTp3nY0D3Z947CEXmgiW?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: e7e16a86-7325-4abf-7a8b-08de6def3e67 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 06:39:04.5307 (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: PUA9nrUWoeDkukmn7fTq6wSm+ATQ/EzYKz2Xt1sxpeRFs50c//pJzQLA0o15S2EId8j4eJDSvt64NMPPx7tPvg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 Content-Type: text/plain; charset="utf-8" pci_epf_test_doorbell_cleanup() unconditionally calls free_irq() for the doorbell virq, which can trigger "Trying to free already-free IRQ" warnings when the IRQ was never requested or when request_threaded_irq() failed. Move free_irq() out of pci_epf_test_doorbell_cleanup() and invoke it only after a successful request, so that free_irq() is not called for an unrequested IRQ. Fixes: eff0c286aa91 ("PCI: endpoint: pci-epf-test: Add doorbell test suppor= t") Signed-off-by: Koichiro Den Reviewed-by: Frank Li Reviewed-by: Niklas Cassel --- drivers/pci/endpoint/functions/pci-epf-test.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/en= dpoint/functions/pci-epf-test.c index 0cb7af0919dc..12705858e502 100644 --- a/drivers/pci/endpoint/functions/pci-epf-test.c +++ b/drivers/pci/endpoint/functions/pci-epf-test.c @@ -715,7 +715,6 @@ static void pci_epf_test_doorbell_cleanup(struct pci_ep= f_test *epf_test) struct pci_epf_test_reg *reg =3D epf_test->reg[epf_test->test_reg_bar]; struct pci_epf *epf =3D epf_test->epf; =20 - free_irq(epf->db_msg[0].virq, epf_test); reg->doorbell_bar =3D cpu_to_le32(NO_BAR); =20 pci_epf_free_doorbell(epf); @@ -759,7 +758,7 @@ static void pci_epf_test_enable_doorbell(struct pci_epf= _test *epf_test, &epf_test->db_bar.phys_addr, &offset); =20 if (ret) - goto err_doorbell_cleanup; + goto err_free_irq; =20 reg->doorbell_offset =3D cpu_to_le32(offset); =20 @@ -769,12 +768,14 @@ static void pci_epf_test_enable_doorbell(struct pci_e= pf_test *epf_test, =20 ret =3D pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, &epf_test->db_b= ar); if (ret) - goto err_doorbell_cleanup; + goto err_free_irq; =20 status |=3D STATUS_DOORBELL_ENABLE_SUCCESS; reg->status =3D cpu_to_le32(status); return; =20 +err_free_irq: + free_irq(epf->db_msg[0].virq, epf_test); err_doorbell_cleanup: pci_epf_test_doorbell_cleanup(epf_test); set_status_err: @@ -794,6 +795,7 @@ static void pci_epf_test_disable_doorbell(struct pci_ep= f_test *epf_test, if (bar < BAR_0) goto set_status_err; =20 + free_irq(epf->db_msg[0].virq, epf_test); pci_epf_test_doorbell_cleanup(epf_test); =20 /* --=20 2.51.0 From nobody Thu Apr 2 23:55:37 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021097.outbound.protection.outlook.com [52.101.125.97]) (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 7C8C42C0F8E; Tue, 17 Feb 2026 06:39:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.97 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771310352; cv=fail; b=H02uEmQy44qH6FSp2o+q+fqprb+RysnBmyuXQU3bFfYjLZ5GNo6r3yv1GCQ2AcS8myDSaLl4o2Ngodz2uGbTnc8JC6VMQZtrURyAKI8y7x6xd3v5zXsxOkqz4GRbUpJ/A21QptgLgf3bUwrilK+dMoPCcEpig8VrVwLMzIskSPo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771310352; c=relaxed/simple; bh=yplZ7MfaBOegIpjf1jWx7zJzCu3QxUeMgxwUqPkqwCo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sxB7ZfntESZ1fe6DzkmQQnxXDJRSDsPMEwvXNDNzRRQAjNlpNNsR7XhpoMeD/5qTkpC8A/EnIOEpBb0YoqhEgUa6N1nvalf8FTLTOQ+DiQJHpr5j99FNyh9FqV1R/K5AqOUbVp9Aqllyy8gntND5ec8jT3aIZwWUxlOGTzlLq64= 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=N0plAydD; arc=fail smtp.client-ip=52.101.125.97 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="N0plAydD" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tbosxVjp1zjRnKbi3SVdAn5Orp9JaBDgbwTf/T1vuh79rhH3Y4jH16OFMUTwr5xa1bUz6KrXrq2F67DdHNedN6hvGQHccMFqwE7D0fduIA/3ENgXVVxj1ScMDo5ZtG9Y6tP6xwf5rldLm6eDJhRoeFVb894ICY9wEkp7GWYlz2kcH3Y9lFNjldoifbYJ37L3acf6D5vE8p/4SvriPbjWy5FuSxk7ifMWj8pyFEyC4OV80lr50DSAtk/tnUPRp0wJsbLNnv6Y4w4mAam6BDO1UbaHkb9Sn86GRVoB43wAqMyI738r9sRq8PHYqn8F3EHtDoJAf3yd3Fme5HIe+g9GDw== 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=1UaumhoG0Mc5jj3re5SQuj+5eOfdE38/HMjFKCjENW4=; b=qi8SJgMFPJRWRvsVVOE2CFAXUfAtbGphWIDSWTiBWZPqGvA8oiI8uDHtLsiSDxnZfLaeHzOvXz5zIvsJiZIdjjkfic6w1mppKDKKvdSvcCBlezGG7CjyKMccbbK4ITT1EcvBLFaziMn8Yu/SIDKq9aCprl4Jp2LnnIjKo2aQYXjiMqN1Q/EbZsCiIrzd7JhwbJenXadtpsFQ4BWgy67DtzwagJhgS9LHixS5KhKsA9kBJSR2PJHG6ThBaPrED7MvP9s7ZtFmf3o26DfchMuBmJEq9Zf27rsU67En6PS6ZtgbhfrdQ2r6pPZGjwOOZ+hOd5UzNgTqdS31JUUQseB+jQ== 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=1UaumhoG0Mc5jj3re5SQuj+5eOfdE38/HMjFKCjENW4=; b=N0plAydDTFSEeWYsau30jaDOYDw3cZQpQ5X9GduBVKM5ojH3czTvg28eaDm0PykgGiyRrTFFJfOlSlWnQ/orM6h9N+sbYzHvNbyTQeWLnmTfQs7plzcypbdCoqN6aiUY0f3+MpGR+J4U42lI843wVf590fKkMag4hrnxJ8rv0qE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY4P286MB7477.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:356::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb 2026 06:39:05 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.20.9611.013; Tue, 17 Feb 2026 06:39:05 +0000 From: Koichiro Den To: mani@kernel.org, kwilczynski@kernel.org, kishon@kernel.org, bhelgaas@google.com, jdmason@kudzu.us, dave.jiang@intel.com, allenbh@gmail.com, cassel@kernel.org, Frank.Li@nxp.com Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, ntb@lists.linux.dev Subject: [PATCH v2 3/3] PCI: endpoint: pci-ep-msi: Fix error unwind and prevent double alloc Date: Tue, 17 Feb 2026 15:38:56 +0900 Message-ID: <20260217063856.3759713-4-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260217063856.3759713-1-den@valinux.co.jp> References: <20260217063856.3759713-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0034.jpnprd01.prod.outlook.com (2603:1096:405:2bd::19) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY4P286MB7477:EE_ X-MS-Office365-Filtering-Correlation-Id: 28d90795-e7f9-4110-5b0a-08de6def3ee1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MuOaMs2n93ufOrghNB67bgvHqNhTq7G+1exzFqWByy62lY31swyXJG/WkCMy?= =?us-ascii?Q?9duyk+9UMM9ij1ougmkNN67QPBd8JBSQXgUYuGwD1QkXK6GcnzQEvU/DFi4t?= =?us-ascii?Q?7PLNXWC5M7L7fKc9skZGNIAhOEYbTrrEN3SlxKeONBYcezU5/JA91Bk/KECO?= =?us-ascii?Q?s+Dnh5NRmvaJwo77scbaSiHYLN719e8DHd4hSJeDBH7Y8wQXU7j/SUFfYj1K?= =?us-ascii?Q?JbsuLOm6DOLa6ii36RrWTVgaQ2AxubY2roEkAyXafORgV+qYlxRL0I5IeRi8?= =?us-ascii?Q?+UOHKaSnhsAK/QN8yxirBoIxl1gfWpE/rVq8RTWxWu6utlI6dg+dOAW0eWKd?= =?us-ascii?Q?X4PD3KO2IxOVzne3rCjpX6IiRl0b44QmEqyNYKhnYIvCHfuQkrC6u4wYNvLv?= =?us-ascii?Q?4LP76HoJ6St5HeTSP+2phrNFM8p9y2Cs2vMo4tDn3PVViEyLXPLQIcj6sXrm?= =?us-ascii?Q?QSqssNMvW/YV6Mao4VMXof1uUzvteREEoH6thXr+Pfq7ulWd8sBGOLfCwEDx?= =?us-ascii?Q?dbOJloPohFh0UYMBtn3VpmjuuXsI5IJ4it+t5Xue/DHLPosTJWHA1HV1RZQo?= =?us-ascii?Q?nrql4yHlhblXbBUNa6AsNMeLHw3CZoGI1d9mX/ozgniWeETebOUUrALPty0i?= =?us-ascii?Q?83iK9t5PWLjMxiN9dFLrmGTAOC14vSfOxhVwqmhCBwVAQUEeY7dyhYX2Hahs?= =?us-ascii?Q?NplELCuULp9VS7a8MGSU8V9roWHx+Wl28SA0zUcpgamtXXfUeN0bvoAR4CBN?= =?us-ascii?Q?qUTZpNT3FK5G8tao335JHIG89j7BUTqKXSkoAFsfJwDAh11dfQAd3mKE0p8X?= =?us-ascii?Q?9QnT7pSvTvWfyqvO376E+Q+l70hxoE2aNhzo90mq23ne0vSh2V7PEzRVU4vU?= =?us-ascii?Q?gCDpHzttKGRci0HwdBKfsSC49pRySCJ2D0EZTHp+4+2ld2ohj7xEKLEo2snU?= =?us-ascii?Q?cenzZdNHrB6zAI299OW6u25msjpVidu2r6+UhgvAuoRhuFoxLYiBwdfPJwbH?= =?us-ascii?Q?N8dBLbL6OhVp+oGeljTxI8cz8r+TrQ5bocX9P0bVJ1MHuZVBDVyxGGR9pcQT?= =?us-ascii?Q?J9o93rcdXTi3fP+9B+OZ6lmWO5XNgxOCxjlCr38r6Oc7Gc2PP3h39tw0CsM5?= =?us-ascii?Q?iR9MkF4wjELSnya3aED+5K94fjqEyrwKdvcmm7V7GwcaNjnJew1Pr6Hu3IfU?= =?us-ascii?Q?OnBwYRMvYYDux3xTbMHYCslmfo7hcdKfzqsGrFhFlGuVM7efXy2Ugnenkm5x?= =?us-ascii?Q?PzMufdEKdNpgbkWs2t/f5pOVDwxnQ7jLRLcrA72RWdtRf+baA5lGh16+zG7z?= =?us-ascii?Q?fOtWPHnDKsZLRlDqK3kmBm2IRL65HPZkWAnkjNDbFwT5M3ojRmWnMLaXLZAx?= =?us-ascii?Q?yjVq0TY5+POCxtzMCV7RrG0j8cOZcYeWmOahfiQOwuUG59p1/F/EcT9DRCr8?= =?us-ascii?Q?qcASPvUh/JhU+stxHX53B3eKY+ufENcEZM18yiGecHDos1wsic3tKxwzhvRK?= =?us-ascii?Q?4c3OmepVy069bcGSw+0Wnj0BYsE0zFzSxWJCsKB3Zsm9BzwaKl5czuFW85PD?= =?us-ascii?Q?d9XW2JudCn5lG8kuSS0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(10070799003)(366016)(376014)(7416014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?akKL3DeQx/zfY9YR0yQEtZHDtBCaOUgijsbadFsKqo2vHG+bjVtAckQ6Femv?= =?us-ascii?Q?Frh6by84XgI+A9CvR520SyvVD66wnZlEh2OmqbQN8RmnOJIh8giG+pdo88Xd?= =?us-ascii?Q?o3yHqrUFKulEgpMS0UDVbEzCRRtJdG25XCcV85ycvrbeoRZ2P3Gc//q+ZhvV?= =?us-ascii?Q?mooMUZzIY9tJmaH3qqzTMeVALRqOI2VsVVzILO5DkmDujOoD9wpYmaOGmDMn?= =?us-ascii?Q?EA0/z5HgVt/SrNdx2Wuc0lB6BlE7D3AO+lFHsE3eA2cjUIpnEN0g2S5BleSz?= =?us-ascii?Q?0mUHwnNAGK3zI4XX4+bcXg4jMzB6cA0gltaFMQDAFMzUm2m21KaShkT+n1nN?= =?us-ascii?Q?HsXl5vsmOV7YE/SEhw1f+TALwr4WPVBW9ldkCzWCzgz2eTr3cVMsZbbS76AH?= =?us-ascii?Q?a6qOTu4f4/6cqmDznSUbN1Y4N2BMho418W2n+yxTShiBCTxvTgdK498yOQC/?= =?us-ascii?Q?6FHxNa9ziIqVFs1qLbdWEcRyJ/TTpYHvKckxkexo9MWpDkuo68qbKeNWIT2g?= =?us-ascii?Q?GOyIsLPIelU1eLoH6j9uewBg2omcyi8874QGhzm1c2W9+No937KCcPbylIei?= =?us-ascii?Q?hDRL+B296X/+j0lKHguT2r9EaoDjrl5sLt0l1SHjmuAUkVh5QhkMlzjXqglx?= =?us-ascii?Q?IBKbAPiwp+AuaN/cvr6I8+7hAw4uXwPkqEc//725JsZjlhrFFJASZqRT1Kun?= =?us-ascii?Q?eFXSqCKN3UaL22pSbdXD7mp3yIJgT3ukirof6jiq6FdFcu+89A9AeqWJfZJ/?= =?us-ascii?Q?U+qFxJFlWDBO+92SXlV4KmJyqbzCREawAGX7opBB/3g/7GBfBp+5DklicjJs?= =?us-ascii?Q?L72ZQFs3EKaIsoRJjI9nRcK3GwLS2Y73Jyy4XjzJETh/eA3pO+5/KtyZfklN?= =?us-ascii?Q?tiPUPxwC7qYq55CUqQBcHTU/T449SIZcGHKnMYO9/yQKkTC+jzkUviBniao7?= =?us-ascii?Q?uynxejS0MJCg+ubTMkkg3XRp/uktiocOkPgeul86GdtIiK2+rIXrrJXHOKEt?= =?us-ascii?Q?e3VISu1i1Ns8kxsTw5Z+ny2GDsDWhlc80T1PdY1Q70qE7z2uEnBTVhC+Aufp?= =?us-ascii?Q?rVaeDjABl0h9Yq02cEfz+2pO6wd8OjeJPIgp2Hk27Rei+u4CJIhqMmjb12Ey?= =?us-ascii?Q?jNg9moUesWBYHl74dHchbmOdoEPHuBBbN9W0dkDLzkenmfRW1qRiWBvI6Aro?= =?us-ascii?Q?59gAoI0HaKU5RUdwJI5rxiprDOl7K9tdynuDpPA2wgtmhExcIwjwUAsqTRia?= =?us-ascii?Q?8Pil5/jv3HxIKu0MJlSGxrfG6xSK+hmq8e4u9RCVKZyFFbyPzWy5KIADq/BV?= =?us-ascii?Q?+z9CBYZ0pr2BvQKJtrdpq9Xl97uqfMyyZP/Y6vVjcFmZXm+wt5yOFFWt93bo?= =?us-ascii?Q?hQD59YWVqW7iiWSR5x0ZVPs6LtQuzBi0l03nUoRoUrZl6Oh+TynSOtoLMYbo?= =?us-ascii?Q?VsCapPwWIFTcAi43ESg6TdPkU6N8u4pK9qcEN1oDOAGUceGk/kqP+fNra0Op?= =?us-ascii?Q?1jNyqyFyLimMeGp3Tf/FaKs/8pJp4wxhwumC9If9oiELax9UN6u4kzrmeq3R?= =?us-ascii?Q?NpskhRid0j9/AA7+e/k7LaLzPSmBH8pKFDk7VuERRFpWSNdaWH3kbP+bFVOd?= =?us-ascii?Q?4diNnW0nl8ihQbWtFu+70YTgRBCyIfXG9VRJ/IYKWyjP6TE8f7W3EbIiFQDS?= =?us-ascii?Q?Kw42yr6naht3+d+IvevAEyKXaW1/bkhzTHbCVJjhYBq5WKqE1tU56pkcfL4F?= =?us-ascii?Q?CNHRq9gh5a+Cj45S/YP7MguHIwJZoG32fR/Adis6jUy/JHenHhCl?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 28d90795-e7f9-4110-5b0a-08de6def3ee1 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 06:39:05.3459 (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: h45QNgNo6/ftK6rJVZ3sE05c/9TQ26JTXBYVLb7XA4i41dVJZLnuA2Nx+EPRx9Cxd5OBbmhz5zkj2so+Q9j9bQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7477 Content-Type: text/plain; charset="utf-8" pci_epf_alloc_doorbell() stores the allocated doorbell message array in epf->db_msg/epf->num_db before requesting MSI vectors. If MSI allocation fails, the array is freed but the EPF state may still point to freed memory. Clear epf->db_msg and epf->num_db on the MSI allocation failure path so that later cleanup cannot double-free the array and callers can retry allocation. Also return -EBUSY when doorbells have already been allocated to prevent leaking or overwriting an existing allocation. Fixes: 1c3b002c6bf6 ("PCI: endpoint: Add RC-to-EP doorbell support using pl= atform MSI controller") Reviewed-by: Frank Li Reviewed-by: Niklas Cassel Signed-off-by: Koichiro Den --- drivers/pci/endpoint/pci-ep-msi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/pci/endpoint/pci-ep-msi.c b/drivers/pci/endpoint/pci-e= p-msi.c index 1b58357b905f..ad8a81d6ad77 100644 --- a/drivers/pci/endpoint/pci-ep-msi.c +++ b/drivers/pci/endpoint/pci-ep-msi.c @@ -50,6 +50,9 @@ int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_d= b) return -EINVAL; } =20 + if (epf->db_msg) + return -EBUSY; + domain =3D of_msi_map_get_device_domain(epc->dev.parent, 0, DOMAIN_BUS_PLATFORM_MSI); if (!domain) { @@ -79,6 +82,8 @@ int pci_epf_alloc_doorbell(struct pci_epf *epf, u16 num_d= b) if (ret) { dev_err(dev, "Failed to allocate MSI\n"); kfree(msg); + epf->db_msg =3D NULL; + epf->num_db =3D 0; return ret; } =20 --=20 2.51.0