From nobody Thu Apr 2 23:55:48 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021111.outbound.protection.outlook.com [52.101.125.111]) (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 C6F4623183B; Sun, 15 Feb 2026 15:09:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.111 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168165; cv=fail; b=iX2eNqqSy5u4Zoc+TJZIc7WtAe0Fuvu1PXMO6xs5zj9WA3hek0weLwSd/dS7d6u3TuK3ripM2XGhiPcTrxF5yJ3jn2gNcNaVV4GO/NhWgxV0ALbhBTMYgQOfiF0TyuyWZNBRzZbSVm5mv/PaVqjncZlaw3t4Jsovjq8TGbTMsWE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168165; c=relaxed/simple; bh=T7qU6Q6xHCSNmH4rMdrqkyxqygTUO5pktKl/r2kx4MA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=IJ7QvtTiUlwdTFtnnm80+3HHq1sNeKdUNijW/3Y9IPvPxRfUIQ9774V6lix9vR8rNW3cRaySmOOYZyIu2pUrLIebAT7jfsJQpZJxSLE9RLLG5o2bo3SKaxNhbSS2O3QsieFLp236B/8f0/pA6+2hKOTJBjZ0U1Z526XDTw2AHeI= 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=n3jvmMMo; arc=fail smtp.client-ip=52.101.125.111 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="n3jvmMMo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GM+oLFGumqJdlSFeldcDuH5A1mZIf551pVUJ3RRwaXH+HmrxqUM24PQebymMtkEu9zkDZ/m7n8kMwKub//LyQVCpb9ZEbLqLl20c7mClXDg75l+WvaV3NpiL9PRY7wSU27S829CiKpo5AGVShjigkb4GVu7aSRdqgy+B2SMoK+4ItCtq3/aohkbUcqAqRNnpAFzQutGaQ9jGHNJNYfYlZiyql9Po0N/a1CfOYzRit7iizcjJgJNMu0l4PRdF8FnCekyb8nTG/boiRNAnDYu5AkbbWG0l/AlFD1cqGjp4jP8lT4dbhw0YrCJZVQUX4iLNinOmLsNfSfVzddoANjxTrw== 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=NU1YP9BEMHSlKcyAKta0aktQuHLC9v88QPUq3UofzbE=; b=j+S3nnsg2G73dOV6ffQfWsMteJk/nVyZb4VwM2Rlr8ORBvFnI7ycqmp/zpDQYrwO4OStAbg+pNwmD4P7IBW0MJ/4qEugFmV/uURUb1FpsLGtY0zgAonkvOUXTdhwdtnnaBJ4YhRWrcFpIfq20FnyPmiSBiDEDuly727+I5Fktx0wVjVgDcoDpp69vJ9rAgo+QL5BgctjiY3Dqhk2bsY5ClXw5pJuJWhUYqs3GMwjRlNDc+pk5cwIMF6Uqlkcdh09C6l8Gexy6aPKLhXQq85+KgMOntbE5YC+DPxnKyj19MLZ+EWIQc71QWEGkSiPi8GiMzUdNQcAC09qg8iNxRP5Lg== 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=NU1YP9BEMHSlKcyAKta0aktQuHLC9v88QPUq3UofzbE=; b=n3jvmMMot+jJ0qqecHccmrKapU+QRoyUy9k+4EEoakrZg6uMo6kx6nUrtlWOMrQ6mJoWpvoZdNM/ds5pnqHEoWQ129khK+Ingw/2mvk4V+IGd7E/0a6MaJW/MeCFU15KXc3yZXrLdO5C+utyxoCJVqlFP1paCmdCbIFjetg28cI= 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 TY4P286MB7240.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:367::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Sun, 15 Feb 2026 15:09:21 +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; Sun, 15 Feb 2026 15:09:21 +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 1/4] PCI: endpoint: pci-epf-vntb: Fix MSI doorbell IRQ unwind Date: Mon, 16 Feb 2026 00:09:11 +0900 Message-ID: <20260215150914.3392479-2-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260215150914.3392479-1-den@valinux.co.jp> References: <20260215150914.3392479-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0126.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b6::10) 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_|TY4P286MB7240:EE_ X-MS-Office365-Filtering-Correlation-Id: 26573c4f-1ea6-4a7d-9d15-08de6ca43283 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?F48UO+OGU3gMhxV4cnM1CgTE7BibE9Pts97qjPzktW06gP5RU7Rn2dfYjfcl?= =?us-ascii?Q?d/mDqu9PMhmtbiIMjs1zhrAzoFI2Fz+J6j5LcV4M0D0pPiwk7FOjZnMZUtXI?= =?us-ascii?Q?x82UiaZYnmgdvS1MOKcx08PkeCsXpEQ+3XQwBV8prIH9wfhBz2hQ6r+R/f2g?= =?us-ascii?Q?LwUd5JaXgBwq/VR2NO9OW678FZke9wpgPxnfPgnfFgcGA1a9JZSQbUl/KUNm?= =?us-ascii?Q?6tkyNBaKV0dgVhRNKRnKENnoHth3LdxqpQJnP0/bTSpTdyTQ5ACEin/qPqI+?= =?us-ascii?Q?tBxIfRlTqoAFFqCdcsYx/v3lRRdQmqQapuVm0fiuqRkw9Dd6BclBMjU+FW41?= =?us-ascii?Q?y1FG85hSIV7dVIbenpIofzhDjK+uo2kJKNYPSVvMEjifnBvMQkxUOMILn3le?= =?us-ascii?Q?P1KRrgTH5sGCsOe8A7iwEMgOSDD0yDF/aKp4bxolNfFa66S79mBCWdHGJYxu?= =?us-ascii?Q?8OWigu5ntIUtgOfyRK3k/AJYWRnscpfjGwEW6nK98gYqBKJgNu1YUe7r726N?= =?us-ascii?Q?dwJc18WxxahEEFLE4cvZ881GY9GJaDk5GGtjaGQLuXe/bwaJ/52pG4B8j/AX?= =?us-ascii?Q?pMzWCx7KAErAXy8thlwsOQ/XSP89XX9S4wLBMUAaehrvYrxSr2JdzYjznLL+?= =?us-ascii?Q?yvA6SK9HV9wHZew7gb1qCV2d9HX5hpE4xqLeIYiSUPUwPvI5tt0PLtkLNnOr?= =?us-ascii?Q?pHGE9fbanN5Vtd84rlGZrjPlwk39lhjhrYXbh+S8GQSGWHfy8KLqfKLxlS7h?= =?us-ascii?Q?xB8CnL68tJr2j84oxI7/eqnErqkhx6KxH0x8WgdHbrS2679Uy8M4NYJw+nBz?= =?us-ascii?Q?xnkvdVpfVLJzcrpEnQ9wwz3DJyhW9UjAOhHzuRal3vtLISZEFIEae+JBObqE?= =?us-ascii?Q?uHQZX64zDFTQPVWCGcOHsJWN8PK58EN7ax7/XUGKBhC2z4eAIx9ZlENxZzjv?= =?us-ascii?Q?DrKA/Zw1gCse5UvKD/PITKaSCqgTBuD8Qe4BY+a66Vf5lJGVggTqhMjNOW0h?= =?us-ascii?Q?eCy+oMs4qL8aqDvp63ab+UmjtW7vljbFC+TZRw7lO4p29VMx6CX0ubujGg3f?= =?us-ascii?Q?eJnfm6T93g+agw+mkukJ2zhNjkFVlp+Lc4uhLlsJThfM0/HU8y8q/C3iclfC?= =?us-ascii?Q?w8FXBc0Msr+YXmsFGJstXIgGoSyuoxlUn6fIcQUQhnIULjRbaeEHSX/WzVpf?= =?us-ascii?Q?O33643fsG5V7PzZ8QSXtke6PV+GAVJesLA1ibmW+0i1lvJzm66pD2Fq6LkMP?= =?us-ascii?Q?gAP+VXHOKuqeAcZdNT1NxyTDv7bQSvKO5wKxl6qLJWIgg8Ln5hZFIaITLDgb?= =?us-ascii?Q?sDru2NGbWg3Fezr6zZSC/CnZa4szBvphxf7SHxM+OV2WiaXpKRE6FKyVmTxG?= =?us-ascii?Q?kdftUkTNbJXSv6WbUnVoFhMwV1bF4h12rx5CDlnyU1ZQref+LZr7clBlCTL2?= =?us-ascii?Q?7f9+pNgbj6/NxVWyJ+Uf7n/auHFJHk1A/rlsg0TDXr+P/sNTvCKY4N/qbPCM?= =?us-ascii?Q?nJy4xZYP6QW4hgxlWrhJqzK+/Cr6jJYX47KqAa9g8hdi8gfo91+I0r5L8SVj?= =?us-ascii?Q?7YLVuuwI6WdTBH+Ab5c=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)(7416014)(376014)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FhxWScVkdQZul/gB4OyUJgJnXxHpyXav/sNgxxeNbqAAWm7sGhV6GgOG4QLN?= =?us-ascii?Q?NUNPtd4bkP5huf6XZkN1rsrzoxC8dMhOS7SlnbAD5uqE4Y4QeSZttOILWjOw?= =?us-ascii?Q?2AaVjM6x/c7xk+4iAa7Vmcf8b6Ah2p1NKxlJvfdNoplI0QJdt79RtX6e6FH/?= =?us-ascii?Q?R0Ye55WAEXXcpoQzbOIx3iFld6eaOsZ/fz03SpYzZpGxIpG6jhuK/wZQc712?= =?us-ascii?Q?aCJg0r9VK6ApEIhaHjENFr1mKaJT3yfpf5pfvDjRxx71wsU1uFCDDT7hr2nb?= =?us-ascii?Q?4nTmvcilzsca1pwNsTq9ixDYRx+qj/ZM+P8GWZpJ/q+LC/YZAP+d8W3K6k3s?= =?us-ascii?Q?xNcqgbxzjbEDcXkJEBitRCjE1jLddaINt+nuFoS+SRCR7Myrgo7bzQpcX+Um?= =?us-ascii?Q?Gm6UgRgPqKeAAR26xBbz/Xw8gG89oy7OsaYDwk1gUOrS+D1xBRN//wdrzCxl?= =?us-ascii?Q?6cMzilBNcFsYUtJOvITLhb3Ei5y9kIY5TQashcxMlLfpcpXThVf0IvfjdB8K?= =?us-ascii?Q?tdB9ECQHUrjYi5PgA3KbyDbq5JgpLUwP7DgQMmTGm6KGuJcN+IqrHnpFUydt?= =?us-ascii?Q?1gGZf9Nt6tQaBdElsHnH7wsFRUndxGdIwpKH/R0J68/Cpxe4CJ+yNN6qPl38?= =?us-ascii?Q?joCKAaREPvBiPeEbGKX1S5dyDAZretes1+/mJh7b4Ml7E2ELfW52FgJ/Ckww?= =?us-ascii?Q?N1gWiNnQzhjmi56ctMsbPMZ7oy5Eep6V1KUbekttEEx66AxyMzvkotr3H46N?= =?us-ascii?Q?1XRvN0tl54ByHqgvgs7dK/se4+Cvj8GUR5YQRXd0aE+cv+4+VraL25A0SENc?= =?us-ascii?Q?DZFR5KH6v3TWHZpVAR9vZy7RGdUtMvjqVPdHwP3mGsTG4l5D2I27U9LQSJ4S?= =?us-ascii?Q?tpGwA8tSEQCp9J+Ah6t1Jodb77KS5MTOKe2XuUUqzVID4oVXn3NXmKIMDOwS?= =?us-ascii?Q?AzHzXt8EXb9wZH9qm5TVe/dzG1eWxhYroewJu1onIoSQH5Iu5FJiCBiVrblT?= =?us-ascii?Q?ivst5AXe5F0DCam01Os7elTmXybDhVuWFEDVG7EqKe44FzgBGgKM5nK/GUwc?= =?us-ascii?Q?+x5DuOwt315W4eJaUg8c7fgZ9Msg/seKF6dQwUP+WpUCdlgaDyH8nBSgIsSd?= =?us-ascii?Q?8j+LjHonohCvLbvxifmRbYRc5GWCX5JGOXnNiNG6xJwg1s704epSULo3wsBt?= =?us-ascii?Q?1hBk30bB1njCzzr/GWjaihUJ6Z9aewcczvJJI+GzWBmGs3LNG4rKNDsUg5m+?= =?us-ascii?Q?zP+GqJGqiQJW+vyNWoB1Txh/M8K1Xa0pJ7SxUTWmyylMmc2r6kUTxcLPRwga?= =?us-ascii?Q?1WN4loxBqMbtJIKp74s2dQn+X9oO+ZBSG9iOPoPQsSbz7F5Ud5u02mgU7yvW?= =?us-ascii?Q?t/j01FMu30Nk6mRM/dHJu2bX0SerQRQIZtaZ223b0FR4Ik6gM1inYSBNtyQ0?= =?us-ascii?Q?SAy2LkXfEl5cViDHMuKoYNlJyTQofHl2Se+5G4yQHpKBVV6pS8dh4QuzDcv7?= =?us-ascii?Q?HSB0h5KfCl+QwMA35OAb59wVOZJfJOQTC5EgO7tjDi3VKZGJ6CxsV1eucFAH?= =?us-ascii?Q?8yArJp0rKhkHxsTSFNGjNChrbZBV5RTtgYt/RG6/QCPKFRcdF2Xj7o+eQV9N?= =?us-ascii?Q?OlqIcn8hJ770JJCw1zA93TJ6go9uSutcWcI/r/kNNL3jnTgdarOk3/B4h783?= =?us-ascii?Q?8gZaY1iCVg97r5B8TE3mQn5gcRIltLhue9VOStCwDy6jxzwjoPKZmLp8htLl?= =?us-ascii?Q?Ia4XwSg77vIj1NqxH/PeTlJxUoLtce8OhYikf4wLT0BHrHHfluCn?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 26573c4f-1ea6-4a7d-9d15-08de6ca43283 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2026 15:09:21.1665 (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: HiNXDCE8XK+cEmsD7Vwy0ngXIukyaumhfDavT+FlftkY4AylfvP+4dnI2rPuV/5W1IqnK7FgLf52IHGgZMSiLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7240 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 --- drivers/pci/endpoint/functions/pci-epf-vntb.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/en= dpoint/functions/pci-epf-vntb.c index 20a400e83439..20efa27325f1 100644 --- a/drivers/pci/endpoint/functions/pci-epf-vntb.c +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -523,6 +523,7 @@ static int epf_ntb_db_bar_init_msi_doorbell(struct epf_= ntb *ntb, enum pci_barno barno) { struct pci_epf *epf =3D ntb->epf; + unsigned int req; dma_addr_t low, high; struct msi_msg *msg; size_t sz; @@ -533,14 +534,14 @@ static int epf_ntb_db_bar_init_msi_doorbell(struct ep= f_ntb *ntb, 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 +599,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); + while (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:48 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021111.outbound.protection.outlook.com [52.101.125.111]) (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 3247C2248B9; Sun, 15 Feb 2026 15:09:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.111 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168166; cv=fail; b=rrhnE7Ws2A8Od8vWqkDwmxMidT/rN2jg55RnXBWtU1SqyckbJgWJt8BH6oQP0MxjgTJ8r21l5l125b8H5nBvH6TO3a/XM1hG39rAAWhDyZMcbE47BcrXyT1rKzvyAPvtELU6wvbn7IB8Wqqcjb0PCZq9J4yVozoBY4eeRs6Hlm8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168166; c=relaxed/simple; bh=vWgpMozEEVuyihdxFX3kXiJReAgUT8TZLIHPvQKexno=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=X+pER3xrlGYm+da9bE540UVp07t+dfmVmElubviUx4V/WkDICl/n1Biyh2Jmga8MrgIGboswUArTPZAQ3YGwj820vZPylJrmOCEkjZLPQAOF5gkxCpOnj79AXmKx+P5qgJIUT/knULwWq175vKL9Jfaat2XzalLHIsJZ+aQEEj8= 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=hGTPGU46; arc=fail smtp.client-ip=52.101.125.111 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="hGTPGU46" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cSVzJkslXj4kKw+OExOIJISZ2FDELx+FyIeO4waWcFIGq4NzVQJWjf3j0hDT15/gJ9j/X/m0FInNoYgFUN6dKHw6NIsx01kFlepK2J3ocxwb+cXVr5xQaLbDVMRKefe1R6TOVgEjP9d4lNj6tPBEu77ODmqIdDpe29Ctb5tce1guTcQPAtgaa9QPETymiZ3I3G3cuyH5kBcwxtWy10m7amGN0Jp1/SYR5xZew8zY63WXIMv5oLs5yZmXi6Q/x9LaK5Vn/h78T0LQUKHjQhxtnF0xtDXQW9qZao+aNYuC0JqiPIyonudl42N0VMN+Fro9Y0gCMRORPQlvt5yIe/jUyw== 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=MMGAMfnYWSEiNEZdjlnOA56dlSnnOIuiXrZgESk1T8o=; b=pWI3HGtNsROBBUSKrqEtTSl9JdBIyt0dUrSnVEAn2FFnUQt+eLtqd/bA9Wej3Hsudt6Lei5OZhaqoHqvKQ9HPYs6UQu1bbWgK13HN+/NklvrKABWlbMsG9NxL1ZRK9HboE1dqQjzf3CjHuWWVlNsldccCCn/mwSIoxTg8V+gEnoz6FwFJHF+O3s/Q8UORTqjphtwilHN8dwOj9ktNFfNri84moysABfE4wj7VjV0p0f6ZdomcCAY6hYsrs8OphLPQ+6TNthmwWd5GI14KKo3Ba6X9s6FTKubLBpczz2fZdjSi3Gm0p/cBnaVn/Zq0vIo6F+g1RNbgTUQKBgx0NJcwg== 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=MMGAMfnYWSEiNEZdjlnOA56dlSnnOIuiXrZgESk1T8o=; b=hGTPGU46KixCn67PoKEYlNcxZA5YGy+5YSf1uctaVWhltUO7o8cqmkXgSoWJekd2I03jYhmNZqsnjwEGJwx+sGalDOMMkUkp/44+c/ScTbo2dTYP3L7OLyf5vIL0s70xZtmK7wdKzEqyULWQEWgAOlJ0GCuVF5+sc/fMSGMr6rY= 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 TY4P286MB7240.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:367::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Sun, 15 Feb 2026 15:09:22 +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; Sun, 15 Feb 2026 15:09:22 +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 2/4] PCI: endpoint: pci-epf-test: Sanity-check doorbell offset within BAR Date: Mon, 16 Feb 2026 00:09:12 +0900 Message-ID: <20260215150914.3392479-3-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260215150914.3392479-1-den@valinux.co.jp> References: <20260215150914.3392479-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P301CA0068.JPNP301.PROD.OUTLOOK.COM (2603:1096:405:36a::7) 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_|TY4P286MB7240:EE_ X-MS-Office365-Filtering-Correlation-Id: d0734216-9ac8-4689-ed32-08de6ca432fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zxAFFfvC/zQi9M6NPeevVPkTvuVmwgzux7N52IuK0m3d3HuuCMryl4y+NEwH?= =?us-ascii?Q?HNTo5raytgt/qxnCU32qQ2idgOpvkydHIFMoDHX7V32xVc5yg3tPXpJcBA+l?= =?us-ascii?Q?UIwrDMEYan6pnJsIK+3o7Sbd59Rl46DbgeGKagaW3I4irOezN9Ea4uFVxSB7?= =?us-ascii?Q?W1LsclCOoOQlkGTWDgSejpagh4KA2cG7+sEs2GCyu3vSqXrufTO2L7k7FV5n?= =?us-ascii?Q?Od5E1DicHZt7YQFTdPTaSps7yUDcBUZWmzA0wDGO2dthdwb47nyJl3nD2D77?= =?us-ascii?Q?AQt8BF3YmW0KP6H0jM5AzJbI7YP8zqL4CSiXtjipXrm0HjqLLEQjR2EK0Xcq?= =?us-ascii?Q?Au0gNARraSXiGqzGPBoVg7VoDy6+WkV3C+fnX7QZfvyfQqdsJHhnZBVcqdXn?= =?us-ascii?Q?FD6TYoN/zdrioWHrYzdX1Vno88kuA1B97EmHMCcGNnn2FjNwJbyoPVUAaNQE?= =?us-ascii?Q?KikAAKnZnfykqt6B6aN3zSIFrA9+W6IjxEyKPqJ9FGLPo8krqge92mrwCgLR?= =?us-ascii?Q?RMm6QdCePwY5f2ei5Wf1xp8EfqLVqZ03DJ/zmthav9jtPR6svRAuCF8o+L/w?= =?us-ascii?Q?LA58uQI8Uwgohjs4aSMy3L5Q2Oq3Hx4nwPWxt5KMA7dMeClRokt+SX5wj6x4?= =?us-ascii?Q?44kAyZHA6hfzomCOei9X6oDzJ/xHMnfiBDFDBqhG5gs8E2Ls9uFThDhlhoRy?= =?us-ascii?Q?Dw3JQ4gnaZclSdZR71zgoPwF/3HETrzfmn5+6MmWBfNbmiehO/EtEJmz7+30?= =?us-ascii?Q?C9/bKybLUSPZjG9sU72h2F8QUCb11B2npM+78jVHRhaSaET60JUVybLMLvAm?= =?us-ascii?Q?NySi6RtM10lbtL5d+wdMt4otjRJnvV0lklQ4MwmaqXsFIum/RvEdktr3XZzF?= =?us-ascii?Q?wxfN6kzuAGpmP7iPyOIUGlOMrTCU0yw9VlvoV1HgFDDKm8cjais1DJhnKfMN?= =?us-ascii?Q?5vVf+qWyNz95r85ggwP8N6trvRxQ8XQUbVf9Bv8Sdv/C4YV73VZFn0dfQhp8?= =?us-ascii?Q?bCJKZGGAQVi6mw7XTczs8mvcamXHF0d54M1b7jRpXSEr1RDwM3oSiqiNJXjE?= =?us-ascii?Q?yAznz45kP4wwpj/Y6hxY/XiTHE0Xfnjsi2N6EzuvQWaU0H7FCSBmtJA1tmWh?= =?us-ascii?Q?c0nT5Q+hR63mGcTtNDXo1FKHoa0oJvo8O1WwWCAwK3WaJsqGbSGMAIPj1Avr?= =?us-ascii?Q?zximMwFTWlZURaxTn1CBYHIL3p7dHtzU1NDCNCzo6SmQ676ebf+X8r/TDh1W?= =?us-ascii?Q?UIt1R8LH/+de3XYn0hQZsTMhhy+Uc4ZetD58LiwWxKndzGeGtoAoaCH4sVwU?= =?us-ascii?Q?tvxsVjhaF3ONRMxNmRZ9HiDGuTd8ipDx49YrgGTmqvG7xg6qoKo7zNpBagJD?= =?us-ascii?Q?vkj5r3mKn4A4XaH+aWZw7V+qjMKYImfg2WcFZI+K/oPNe7oa5N4KVGgmiYvj?= =?us-ascii?Q?kSDohETybPmL1lluUH3lHVICdQ0Gzkfs/v73LS1sJ5agEdDKmWuzKOXdUEBP?= =?us-ascii?Q?wWa4z2Qyt07VPRJ9EYhplaZZBxtrApEQLnvxOkPmmFxpVbAsfewCkisNx8SQ?= =?us-ascii?Q?MQ6ZtCsWUzzoWsLeTbY=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)(7416014)(376014)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GhvCTJiOrseXcL2KC32E+1c8CkMXCZjSSYEMulLbgovfxzKg2BUMgX94moQo?= =?us-ascii?Q?B5mB7rcj3AES0WuXVuo2TjENYAqBFqQ47PN+/b2ZrCzB5qPXnD1oZ/07oG1c?= =?us-ascii?Q?8V89bxT7GSuuizzZlerFvseASpYrmrZm+IZTf5F/p+U63xGqF3tg41ABcXYT?= =?us-ascii?Q?fdl/EHjMCC7fTipJvUKICVN3sgbaMm3NnS4mejaYXyAmLSBUv7h8Jyt430jL?= =?us-ascii?Q?lGrHJ9ZlJysfD6T7MGfWr+FYWWrDHqq/rta2jXt9/aSsIv9LB41pP5F/NoJy?= =?us-ascii?Q?Go0gIe0L7Vj7mfX3FDIvjVG9qtSPGTAVLJu7ms6QiTkmANuIu0H7UGnxRJsA?= =?us-ascii?Q?2dOADrZjuLgvNu5wp0la08HQH2qGTo6WI0YNcDqx+vHq6ncXIQYI4xrVUPR/?= =?us-ascii?Q?vNj9r2fj+A+bBkBzI969vH3r5k42dnuT6KAJcGUIHxtPDdT723dFlkVD0Rhf?= =?us-ascii?Q?gKo2smM8ZFxLc1dgxaQDqOmrvcnuB/7l2MkdLXwpVutbnX3lMasHOzp8044h?= =?us-ascii?Q?Jb8nTf7CFOMzU9Hr3W3biJa+0//l8jKsif9p0AQ9+upRvexvyjmRqarT6o3H?= =?us-ascii?Q?qjmQZJ5fAX9hbn8nHfuNp9cSCZo/044THSpqihhZCMim+K8UvKb1j50KSGQc?= =?us-ascii?Q?RMRdmk2aecIlU8UdQ1DM8Q2M6Ns/vNWEDrHZKeXN5eviTLHtGUSVTAfiG2xj?= =?us-ascii?Q?55pVxJ/P8Uz3x4BAFGHALK84oxRDuy6HDD90LcpF8sv3OMHIx4no675ifG8s?= =?us-ascii?Q?EOlWEY35djJVowNoy2fyd1TI514ru+s3Bnlw1ZuMRLuhwxmJlHGgpLgMhBmU?= =?us-ascii?Q?aaPeH/JDORwYiPcwlQPJ3ZcMCvSGLbC5z8AOHXuRgKT6H6ZqcFiFd2ci15ni?= =?us-ascii?Q?lE3HYcKMHtWDuRAW+1bytCEQREm4YL2Q2eQg9b5PMan8Vm9yXScJiV9Uvk5t?= =?us-ascii?Q?Krs+hdBT/+CHVF8WWkRF945AQdbJDWH0P4K4aWm8KiOfbGAbsZ0Q+QWO8Zba?= =?us-ascii?Q?3AQOzpEwyLwdTI7ulMfMq+3cPp9A0GsPsmHMKXwn3/Ex9AxoGAWIJPXv0ABY?= =?us-ascii?Q?TeJ0pNey04HamF/WAhcaemNDJwJd8XjLBm0hX7aGaICOVHTjRfHgXLlqpaq1?= =?us-ascii?Q?TRr03jbo1RZGpg/q8fx2nO3CZlRRGJ5A4Uj2OJsBTZrrsdaUUa5hZDNCclM/?= =?us-ascii?Q?yVkNWXDurbouGlS8SAXmGlh5N4N9TAob2MfXid/hkJAC1MBPgWoOi1tv1IGN?= =?us-ascii?Q?VrX7rJ7lvBD9+JMqGMpUDcX8q2sdfqRD+i34SiqzVTxypO4hoGwP+vRVL72w?= =?us-ascii?Q?hHRX/AiTHwtZkMigTpa9sw9bkZsRGZj1uz93v9phG7mnNSjD6mDEI0DfDS3L?= =?us-ascii?Q?0qFbpNoQhsAsu9eHeDj0l8NjYGg80+T3O9W+/9StePv0vIRjis9sA3PvXFxZ?= =?us-ascii?Q?hJylUPlcf1VvRc4Fk+ctJBURJsQdR/QXxrRVdxwdkXlFVGP7H7bevw1qkpBd?= =?us-ascii?Q?L5yRSHh4/AUDt3xgwyCdSRv0fwfJuQrZsFCnAnHC1Al05M884zYcQkscURLQ?= =?us-ascii?Q?uKzFf1AE7q1UAhWp9WOBb86rJRfD9ZQBbvngRSroYjCe/rMqM7t/C008zrqn?= =?us-ascii?Q?Wb5fg/a2wETR8yu4uAmd3Kk2p2mOILuy4qVJHKbydT6xh4hnmG5Rz6GwUna+?= =?us-ascii?Q?2GmuXMmg0gTjYZ61QGuxPsX3bQu9ftp3mUu76pKMHUlhC3A2uBoJaWM8ECuW?= =?us-ascii?Q?3qGxmtQ7ruJZGhP3cjI1aWLv4gxHHow2hSEagQBvQLMkGG6O0GzP?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: d0734216-9ac8-4689-ed32-08de6ca432fe X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2026 15:09:21.9624 (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: rzKAK+8W16kTGfWQshXx623UgIDOTVUiNveTXw9Kc5hkldORkfpkMIQGJ+2jVSql+CKGB9OuY1oDTHMQyET1UQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7240 Content-Type: text/plain; charset="utf-8" pci-epf-test advertises the doorbell target to the RC as a BAR number and an offset. The RC rings the doorbell with a single DWORD MMIO write to BAR + offset. For MSI/MSI-X-based doorbells, the message address is required to be DWORD-aligned, so the computed offset should not straddle a BAR boundary in normal operation. However, with support for doorbells based on mechanisms other than MSI/MSI-X (via pci_epf_alloc_doorbell()), the returned message address may not necessarily be DWORD-aligned. In such a case, offset plus the 32-bit write width could cross the end of the BAR aperture. The offset returned by pci_epf_align_inbound_addr() is guaranteed to be within the BAR size, but this alone does not ensure that a 32-bit write starting at that offset stays within the BAR. Add a bounds check to ensure that the 32-bit doorbell write always stays within the BAR aperture. While this should not trigger for spec-compliant MSI/MSI-X addresses, it provides a defensive guard against unexpected offsets from future doorbell implementations. Suggested-by: Niklas Cassel Signed-off-by: Koichiro Den --- drivers/pci/endpoint/functions/pci-epf-test.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/en= dpoint/functions/pci-epf-test.c index 0cb7af0919dc..148a34e51f6b 100644 --- a/drivers/pci/endpoint/functions/pci-epf-test.c +++ b/drivers/pci/endpoint/functions/pci-epf-test.c @@ -761,6 +761,9 @@ static void pci_epf_test_enable_doorbell(struct pci_epf= _test *epf_test, if (ret) goto err_doorbell_cleanup; =20 + if (size_add(offset, sizeof(u32)) > epf->bar[bar].size) + goto err_doorbell_cleanup; + reg->doorbell_offset =3D cpu_to_le32(offset); =20 epf_test->db_bar.barno =3D bar; --=20 2.51.0 From nobody Thu Apr 2 23:55:48 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021111.outbound.protection.outlook.com [52.101.125.111]) (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 9E1C829994B; Sun, 15 Feb 2026 15:09:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.111 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168167; cv=fail; b=fHXe6ao5FzYcescYIkvhJwUsnqtilhGF1ndoQUEuuCyi99JYzBiqJUvBs/eVwRzyUVhRcXlgV0WgxKpQBASpRxdnK/pT68sjIKjRvlfdyQCEL6pQza8q/7MJVtmZUX9fl01DZ+yWCYcOFF8Fwbf+scMCEdlNJoSrPKhUbKoVOjY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168167; c=relaxed/simple; bh=4l1tJB5AhtVQLOQOwBkoOvwxMs6rc2Eo1r+iJJTKg6M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Z7irZd7PD/vUjcqB2PZl5W5cFc2nWF7AkjaXSEES9XsibxSCn+Mb6rZ/4IUacloIB5b4hcgooS0LYtDhOey8lDbGZJFmaL5BbOlIExAOwS9gfJWPQjWMSaLgBdCaVPRuK4Jyn0r2UJ/rPN2gH2zhOZU67DNbYMUwzQ3YN7uGbVA= 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=JMQnQXxf; arc=fail smtp.client-ip=52.101.125.111 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="JMQnQXxf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AxZylBqiab2QxQndRxJaqhax4oRm5WUu2ESx5gwACvrPgrsPNo0GqNu/9a4tiWWIxHtgJxCPHr5jKKaRW1+7M4l8oLCBvJkBHxYBZHfbfhppQvKpQs7RsJS2oR51IU+Xl7H87v72L8MpodoTtvqfc1bW/c9VssrzdQp99bc2DDAb3gArqSQ6mbHuY2cHpz0yD7gq6hTUHnhpgz/xMGudXwqzxLJlYPO2N0OyQsrkj1OIXnMwCM4YTk+4xaizKiBLHymfVJIBInKkpCi2H2DfwDVhK57wKzEbtJiSTLMcgn35oEH/9HKXsrhPDLfa9lNR1xsXDbBctqRm9y5zogYljg== 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=SH5PTHXRL1dEry0ncmWzRNUYq+nLN5BMZ776SG5Md6w=; b=WC2g01w5Dk0WPcAo6qP4tuplzFWHfY0E8lItjoR4Mu1nZcdnOwrombRcSPPsBwgbVC34lxBUb6mbcyca7/kG2xx/UA8zoYnW+f+nfw3I1TC/M7FUf8rHzEf+j7T+X8czxoefzI1XSqLiUVLL3Wyii/CB0IvTINg92BIDrPDCivXm98B4QzSMXbmRvJIDbiXNvfL/1rKyyFKmcjtflk4Czj354dpyD4Kxtl83dooVIjm2lGUs3F1zbUoBhqjcjfVAzbMVaP5hikj+8Dixm1TrKXS575ZFuM9/gpd/T/msA5GOaBHt9y9EiqUjAT0X64PIqP+axhneiaRG9M5cOVnrDg== 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=SH5PTHXRL1dEry0ncmWzRNUYq+nLN5BMZ776SG5Md6w=; b=JMQnQXxf3604Glt3bT2bLY7kufpGA7qB261VyioUqRQVMTM1MpzqgfKcHURqMQijRlq18TnQe9Eje3poM+0wjvW9i4WyN1DTUnna3WRolHjlgi7HXcbB+xz4Odd0uYjp9DiwFKOxdBqoFpd0nx3zF/o1hpo+5KbUANPsPgmQ8vM= 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 TY4P286MB7240.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:367::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Sun, 15 Feb 2026 15:09:22 +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; Sun, 15 Feb 2026 15:09:22 +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 3/4] PCI: endpoint: pci-epf-test: Don't free doorbell IRQ unless requested Date: Mon, 16 Feb 2026 00:09:13 +0900 Message-ID: <20260215150914.3392479-4-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260215150914.3392479-1-den@valinux.co.jp> References: <20260215150914.3392479-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP301CA0008.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:386::6) 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_|TY4P286MB7240:EE_ X-MS-Office365-Filtering-Correlation-Id: d3982c85-77d3-4c46-7e94-08de6ca43372 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Qun7XETY442eETaJlbSOaqbdbXKFxgO8Gp3BCO6xpa/RWXt63IQVZFhr6HVB?= =?us-ascii?Q?NuQBQ2N8i2d/3gEk8X6L8590CFTAQ3dD2kJPEPQBLJlNxFiVD2RYEUATOLhf?= =?us-ascii?Q?mBi5rY0oELnZyCPpXZ+4ucY9eWhv1rgY5AsmYHj5+EukqjI2KEf5RJQjKTyy?= =?us-ascii?Q?NLMzKI6uub/lJCLT0mxVkECMjFeRwal2G0Gi8NG47q1e3e1+Bn+EU91T1Gzj?= =?us-ascii?Q?cg/uZRd16wIK3jnxNtT7gmHk+Ogg7+uVm3O4lZYj5S6WZBeW+Dh3ByoMkyhk?= =?us-ascii?Q?h/F+/Su1msF+VBVCmEgoqf76xcngYMTIiqZDarhQC1jyI0Ct3y6P91qTyNwv?= =?us-ascii?Q?7QkBbU5MnKjBkCErYNJs+3Sd8hpLLNsSjMYEKmdtDmnJ8kX/P4pdL2ogRRTR?= =?us-ascii?Q?DRmlYcceicJRhv8/yDY9Pc7sqErUyWGPOnM+62E1UMZJruRfeRoO5erE37gm?= =?us-ascii?Q?kib5WAnFQSGZTB3ur+4hfyx1t9omsbR9AlpXSec0ytVVZwXQ7hZB+pNaftWY?= =?us-ascii?Q?F0ZSTDMFygDQTPXPl17oassVW6B5Er1Um/QsLDwMu9uAimVrbhiIj2OnhRoY?= =?us-ascii?Q?baUQXHKCpS2jzres8nfmNrl+L/O75A2n1a1P8AE/Tn5BernxGbLmymfP0L0R?= =?us-ascii?Q?OMrl4ubLBv5JpUpacDPC6cperIQ1FwAo8H7K+rj+CRJpkMID5rWwgq7C+co4?= =?us-ascii?Q?LWTtCmXhvL1zq022Ry/aEmVnQDUDwyloW/wOocK31FenpDHzkSkIw2VlRG7W?= =?us-ascii?Q?9rWzqokycqxXu+Z6Irl0KxDHQD8IbOI7sp2ad4prz84uKGnzCU5u8WGPVj3q?= =?us-ascii?Q?xscw07y9CILyzYDDcMYhzNcDnvPVOpKRTVIMim3DPo6SZLF5Vms/ekI5fsEG?= =?us-ascii?Q?/4Ij3ELSGwGloD2WT8rtmViCe4TOh5ZxeJ8rjaZBN7B/SK9lD19l9VfrWY2J?= =?us-ascii?Q?DFEN6VZJCAgGiphlrl0tz1pxCBXAAH475hN+Pg3eQtZomNNJtW6dvhl1muJp?= =?us-ascii?Q?g62KQkD0LlCNe8oIVO9wkpmq4tPDqiRV5daXT92px4xdsnhh4HpU7z080lpo?= =?us-ascii?Q?vsEx7KJKUdE1Cb9EmsEnknP6PvsKa0fnazFoItss8vyaVb++kdqOeDahJSt0?= =?us-ascii?Q?G89OtBgcrt2xIzxydqkb9cNIbvZZImbJLHr3otwCzgApsZmFnyfzQNpc7f4B?= =?us-ascii?Q?jsV+vUsPMQPHvR4rtXuScwPR7FPxEzYm8VsrOvroSzthI1POnTWVwZrDJTcI?= =?us-ascii?Q?1V+rNzm8NDhCxiiViXM5O4jJjWAJpDP+QMhmNyKLDjusMqdQBjQdzPGfXpFq?= =?us-ascii?Q?djCMa1734uqHRxTlGcPT+Gk14jJy9n1JCw4lg/UDV/q5LYOv5GPxY85Bzqqw?= =?us-ascii?Q?uksm+dXoYcn1WZGKIzB/Q6cgwBFgAdRtACSKllRroTLHgXchpcUHXVhi11Ur?= =?us-ascii?Q?9pFNFPBOKVdClrjJRwOK4nuVTi5HXtRnmZEiI6USYmapeWDTCPPWrBS2bmHc?= =?us-ascii?Q?eDTXUZNViHhK1n9i6kxHg/2beAO3zuES+WY/ym8lsm4uw00kp9/KOElBDz0/?= =?us-ascii?Q?GMw5t8t+ir5x1N8RGv8=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)(7416014)(376014)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r7V+JPOBEwoRoBp/ldqV3DoPDysMixJH0enjlLYp6wurR/L342K3aG2MKNl5?= =?us-ascii?Q?18Q26aEQwdMGuIEU1yMrpRFUYYcwTHMmf1sx9zprh4/YPedp+1gpAe9RVYsL?= =?us-ascii?Q?H9wiqEvRRNyuNVW8pHWV5LuEWa9j9ZkJtzak0mgqfRzlcPOlCyRciIL+BECQ?= =?us-ascii?Q?UfLLUd4R2QJTz62AZipliwD9UWYtgzgUTN57uW7885pj/3YNNOvwPhbRG2pw?= =?us-ascii?Q?PTdgvoaSwPuRWyMjt7eGI5mkj3iVm+TYx++A03vKDdSvWTb0ojnH/cTfeDzq?= =?us-ascii?Q?vxAzunhoAyiO3RJOurVHamN/VTChSAu/vXlhXcuW0yEoqaHklTX21kmJvVnW?= =?us-ascii?Q?oLne+OLxmfZsTsodPf4CfnDUqSpYccmmavi5EO0q8B+OpC67Sp9KeGFvG/Qb?= =?us-ascii?Q?Kbm5lnZhxThx+zzA2F55xTA91WIjSWEkYnlsck/ThGvsUPZRLLxP6FsXTjqa?= =?us-ascii?Q?yPyoDqAAe2Au+jYGRkPkPvWqzx+8/RH+Ww+tvqcGlZFwjiIzVtK4JhhmH5r+?= =?us-ascii?Q?iOegSxzEza8xZ2Hc2+Wu4b26LAvd/aMkvyrCeWP/HZmciid7PwbaxbBSAjnd?= =?us-ascii?Q?SmPj4FVpkcxRpzwB5fabJHpAhvpfZbQs1r7Ts4E6PgmaEULDQudHVjrDrSCV?= =?us-ascii?Q?b4sNorAM84dNmDnGg+jZ33j+0YJaOaRrFRgHGTvlXorE+sAi/5yHTkanEAuK?= =?us-ascii?Q?ZyUnJAlXrfhLXDo4AqxwHfaZMXCsxiIh3YG+c7KH3U54kQrVVVRfEUSaZa8z?= =?us-ascii?Q?JV/AaKhKPx9zNj5IusxVu4wEM+iwJ2tZWF7cZgNPku40uZNiGcz1EMb66CGM?= =?us-ascii?Q?TB+rxvf4M3PoXy3lafrsdedrKay5kjTyOtV/81ZEhFG2em1kUlY6w29bxb+A?= =?us-ascii?Q?OtV54yR4Dx7Ez/79CDyMzfuIxYqNaGFqJAMUb0AJBhHDlMFC2AOKBQS6Jgyr?= =?us-ascii?Q?tQk3unio8hsiPN+jX0CT5BPnkF/iePUFYo1FzbIaPH3bn3zsJyNH/TSITDTc?= =?us-ascii?Q?nOApbpvx249decc+YI6TazVA7M6Sv4aq7Fw5Q2zUbNF1PuBq/inE01XEhBwx?= =?us-ascii?Q?oTm/7IIl8YHWmEQf3buT1OtvsPC5uIGff/n3BCGXzfrY3bsMR+Ued+0WUbff?= =?us-ascii?Q?2otGOMTs+7VNceb3G4/uIeYQeq7s6MqsIuB2fQ6tB/1pKBoao//ciFx3puHX?= =?us-ascii?Q?Tfjw3BLuMj8Yn62e49h8IsK00p9AzVsvdeiKo9IRH6L2zeuKY95TLFfQL4V0?= =?us-ascii?Q?HtrPYdTa+PtbLkqp7ezdGX1jndv5PCyRIHqkrJqFjaCmT1WVBR8kZxg9NVgw?= =?us-ascii?Q?Grczp7c+PKD0HN9pn1l8zqlG2Oc1fsBkQ78FqdVUyspPuxPA8Jlj9EZpm0RD?= =?us-ascii?Q?YHEgTvg2g6dLj9K+HbTFF2x0a8mTwaHAnsAwAP9SalfE+a3fSxkkS86dFocx?= =?us-ascii?Q?jx0zK7lhaCLSJfNL68eWopXUNVyUO5LZxvZg79kIo+iuP0FeOwvtjWzHiKKJ?= =?us-ascii?Q?BG9mOBkR+Ugf5XoZcpvO23kbJE61ALGC0YDbnzZzmh3kh7DGNRxMEZL49H9d?= =?us-ascii?Q?Di2Xy/bHgfol8ggznCyIeiYQwWlJsquhIz6lMGPaL2rp/LktUvyC/8CDuKdg?= =?us-ascii?Q?sm3j45lZuAQPUbu9Zb3/GyM9GvS/BA1dFDaw9ftK56APSq8cTHnuffk8h/ZY?= =?us-ascii?Q?C1TKf+5DxENy295MUZcZYUzL727X99f7yyO8VLjdWFVjCeFnXDhzDEPBf5+B?= =?us-ascii?Q?NvHOZzVIkN08rQnc9Tewg+iy48VU8cdWDAiRw8gy8R+e79SoANMN?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: d3982c85-77d3-4c46-7e94-08de6ca43372 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2026 15:09:22.7250 (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: eIMlXdOSTnPkkO4uwJtSM16xtfuiS08o2vuViOA0tJg9djq1HioWhAsMxtbAvkrIt99hYMTLI6JXtIqknQZnNA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7240 Content-Type: text/plain; charset="utf-8" pci_epf_test_enable_doorbell() allocates a doorbell and then installs the interrupt handler with request_threaded_irq(). On failures before the IRQ is successfully requested (e.g. no free BAR, request_threaded_irq() failure), the error path jumps to err_doorbell_cleanup and calls pci_epf_test_doorbell_cleanup(). 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. Track whether the doorbell IRQ has been successfully requested and only call free_irq() when it has. Fixes: eff0c286aa91 ("PCI: endpoint: pci-epf-test: Add doorbell test suppor= t") Signed-off-by: Koichiro Den --- drivers/pci/endpoint/functions/pci-epf-test.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/en= dpoint/functions/pci-epf-test.c index 148a34e51f6b..defe1e2ea427 100644 --- a/drivers/pci/endpoint/functions/pci-epf-test.c +++ b/drivers/pci/endpoint/functions/pci-epf-test.c @@ -86,6 +86,7 @@ struct pci_epf_test { bool dma_private; const struct pci_epc_features *epc_features; struct pci_epf_bar db_bar; + bool db_irq_requested; size_t bar_size[PCI_STD_NUM_BARS]; }; =20 @@ -715,7 +716,10 @@ static void pci_epf_test_doorbell_cleanup(struct pci_e= pf_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); + if (epf_test->db_irq_requested && epf->db_msg) { + free_irq(epf->db_msg[0].virq, epf_test); + epf_test->db_irq_requested =3D false; + } reg->doorbell_bar =3D cpu_to_le32(NO_BAR); =20 pci_epf_free_doorbell(epf); @@ -732,6 +736,8 @@ static void pci_epf_test_enable_doorbell(struct pci_epf= _test *epf_test, size_t offset; int ret; =20 + epf_test->db_irq_requested =3D false; + ret =3D pci_epf_alloc_doorbell(epf, 1); if (ret) goto set_status_err; @@ -751,6 +757,7 @@ static void pci_epf_test_enable_doorbell(struct pci_epf= _test *epf_test, goto err_doorbell_cleanup; } =20 + epf_test->db_irq_requested =3D true; reg->doorbell_data =3D cpu_to_le32(msg->data); reg->doorbell_bar =3D cpu_to_le32(bar); =20 --=20 2.51.0 From nobody Thu Apr 2 23:55:48 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021111.outbound.protection.outlook.com [52.101.125.111]) (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 2184D293C42; Sun, 15 Feb 2026 15:09:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.111 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168169; cv=fail; b=jOLeFKrU6QojqVMSvNkkDfznhuAm1gaDUFg6xcJVDjgKuTQrp1U1oTCycGXn3WQUp4H4Jsr6Vi5aOtwYGidGgKJ/uGZ80ZIlEDOjvLeL/66TCSK79Ycwyfy1ONF7pWfyAKQJD7PsAT808UGeLJzpoEi/Z25Dos1+FpzJ367wNoE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771168169; c=relaxed/simple; bh=xnB5Ku/LEAFniPo6vCa8HxiwtWymLhoNASAipX/3e44=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Zs/tjLh7J/VAWWaG4JQRxoibnD27BjfhNeBcKR+oVnIPKb+Iw0TObErNLc31/htt6msYOPTYHxK3L1zO5I8k/l+Yk+7hwvEUmPbnYQguYX+zAsiP0JGArDu6X6dE+sk8EsZquLYWHDwy1uZjnloBid8WZWeuwBWzxSBzPZzGbPI= 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=QC0T3bc0; arc=fail smtp.client-ip=52.101.125.111 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="QC0T3bc0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GIy61Mrybc+Pzrkl7Jkwjd2FP5gSX4GohOUD9VjPulOuFDDilxH2sTCMirW1X2GEL6sIbB3MMV4qz9gBrjxCAzEbLJ/f62Ypq79mB8FUoFep/ybKJJRnTXJIFYK4mcTMTRKyOkVo14pgAFD3PowE/HnVw9aPMzKrsKYrFFxUJNXFaPcWuiEpM5CLtINa9L5ZMNkmce7aau5XalNdBzdiDHZwFe1oYd1hXzCPhUTPGlvYgJTFpUHPeVBLvSVSpwjPiDZjiEHEqKcy3nIeykb+do3sNQ2Gg8H8UXbrdcuOjiO0jCz4r0XqrHzwkhHxDLoPlNR+0+mRuMIAF5upkTOMXQ== 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=uaNT/K8Bu+5dsmgy5J5VDejhoWbhamkxVcQb+JdoEwM=; b=hV81ScasamP09lecLxhXURCFPEMsUrM2Se7Ghs2Ao20+doBKbM2RQUm6vvSmN141gLdV+htuz7QViXJwlAJXlq6FuvRxMD8+fDHb108jIVk9OsSllvDUi2bUwewODEizXRG/KP76g71TeswOlFwV4WMCeh6dnUuksK2uq/bSoHHzB8fZgE3Oz8aFq9caa4zqPG2MFfMBIuUTwutBqi4mPzj7E28Ud9HbDOA5LB/jrQ0R7SX+Xpi2UaijosJDyPKrK6ivtmhyQ9sxE4KvL5RMDT95Yq0QdBefxKOmQp3sypff//0jLnC+4vRlF53ppF4kQgYxoS/5TM3x1wSS0mr3rw== 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=uaNT/K8Bu+5dsmgy5J5VDejhoWbhamkxVcQb+JdoEwM=; b=QC0T3bc0vQUUg8F3G2kfxODYrsR3W7YtyImdbd/gV2Mjb64EKuSohff9IbUBMxCDbyrNAq58I5VEBWtZG5Cp+aAvnHVoqy2D9lddGjXLQe7oUBkNLEEY6zCK9YVRHuLn/JRklL3YliFdnO1raODBqkWfgjuAPxS4qpPkhRWC/bM= 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 TY4P286MB7240.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:367::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Sun, 15 Feb 2026 15:09:23 +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; Sun, 15 Feb 2026 15:09:23 +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 4/4] PCI: endpoint: pci-ep-msi: Fix error unwind and prevent double alloc Date: Mon, 16 Feb 2026 00:09:14 +0900 Message-ID: <20260215150914.3392479-5-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260215150914.3392479-1-den@valinux.co.jp> References: <20260215150914.3392479-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4P286CA0024.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:2b0::8) 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_|TY4P286MB7240:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c5e629f-536c-48e5-c23b-08de6ca43401 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|10070799003|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DqD7H66lQaLGKNErLmJGfmNMJOQcryf6dbSyojqPZw7QPZRBhIGMxhxAbFVc?= =?us-ascii?Q?BL2xFsN4UH3d7fywOsvFWZ01kb1ql6CzTyajNZl+NVxSOneQSUhsdWn4ijfp?= =?us-ascii?Q?G5hXpNdbVWwClNs2SIAS1eUYf3zPs0oqh3+k1DUYi+K9vFRSRNoJgCwbqu4y?= =?us-ascii?Q?9725dqNPWLrVmTvb/KtTAORizvyUNG9X4lffQzpywIBPiT/vVVQOrvi6oSj9?= =?us-ascii?Q?CbD8VfFVoV4RcfMJBfgUuLHX7JqLIg/bQh3Ah0uBMlOY3Bv6xAAJPAgiPoxr?= =?us-ascii?Q?KF21SIos0C/E7OnsPfQ2lE9NnNWyxm/+rvu3YhRyysYlhri3gs9En8mTTtBI?= =?us-ascii?Q?Iq4dc7ddk2fI5tegUHwslgeEpsA6aMncjIoQ6iw55gQSulgwqRszo8LYBgf4?= =?us-ascii?Q?nXDR2dk7gNS+CAo+xEn7gRnESR+r+2XCQwxh9HCPtk8A7ncetNXnK6uXzoqq?= =?us-ascii?Q?gwvmrW0sZQWOLKVLUlvlFjxdKXyMtjz/9UO99XCcUuZdvFEAe3yh/lihDigy?= =?us-ascii?Q?r3+FV//KCl9HmWLQPALmq3rpSQ63qOW9n9PNffXQO/+LrEwagH+w76ncW8PJ?= =?us-ascii?Q?qJkVDScEnawQUU+VVhGvDssRJ4n3cWx9TJv/3VKneA9C0Q6uTh//izBTpUsx?= =?us-ascii?Q?XMSXmrNYgi8cRNmrHmjAt/k59I4nHX7NbOT3MHq/oUOBEm9USlbtOWcw+Fn3?= =?us-ascii?Q?0M6d+f5EjeQNZ9BuKNEF6OY17WftsoU2a3evm5eZmz7xdlw+SgXjp9kTiHAU?= =?us-ascii?Q?vv7/NJ9DWTXLP+v8uQoPoheKT9T3oRm5D8FvbbJW0jBIXMyz/aZ++q4lv50G?= =?us-ascii?Q?xnOHv1NCnZFqEWT2OqQOgvPD+7sWjPQfKaA/FqbjArojrVZcP+Ieauu5mwC3?= =?us-ascii?Q?cS+3qs/TR4m8092zGccx76x3KkZvARx/aM5xxSrxCtHquYDUaURbYs9Rb5Bg?= =?us-ascii?Q?gi0uJXCYlZVnca9BcJx+4Kt7dygNqS/uSdmht90kNUN0swCw3pJokIz2QZ2r?= =?us-ascii?Q?9oVVRZDx1NDFuhOZ1o7vbPcdeYh0RX9Xb0F+pVRJn0JVO7O1/kup28zIXjMJ?= =?us-ascii?Q?BxtRk79ayeeC7CjIAZft3NDmwz/4/TwVaOSVEbrH4VTUn3ajBjXrqXf9lWR1?= =?us-ascii?Q?yWgEYir6pqIfpj6a8yzXq6NgNBM8ZpRHPrqHBt4I5ORDX6jdFsTcTmA52NZp?= =?us-ascii?Q?DDgrJ1wDJvEi/YJzhLvW+3dT/5ZWVW5lgYvb2bKX3um5+uTjtUN0io3I1hls?= =?us-ascii?Q?EZ/5DJnIChUBz/PIjD/vwfSFlH3J4Y0VQRyW+IwcJ5rqvyP0rWmPAlwEVQMv?= =?us-ascii?Q?SR5l/C7fVz0JgXaTW3U1T5b3ZQUi8HPQuXVFtHEyEC0qQW9AYXvDPnWIRiHO?= =?us-ascii?Q?JP9x6cusDGzPGf3cGVKk3Vam7xaGA91bZLPzb8Udk0EaElKD37B26WX3Hv46?= =?us-ascii?Q?KoOIzYqCHGNcoDugbXb+7vCg4gK1suLlQeZj1C3sAGjSeGo+o5BmiHO7V7J+?= =?us-ascii?Q?Q59r4ASANkgfX02E/7JAYIaPb7b7BwHtOSBDRhNlOTyPN4FQRo58quYrMCWa?= =?us-ascii?Q?T4NsPenWaacHQ23KJLk=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)(7416014)(376014)(366016);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FWDD5nw/7BSB7nd17D+csLNHCoFeA+lUJfdCBVtIRURu1SapMQRRLOH0rJi3?= =?us-ascii?Q?5lsoNg8cgIqnXbwphykh+ic6LEV3XVyjCGBQeROn7xm1jWA/iX+ILtL+5Bc1?= =?us-ascii?Q?0+xoIQ6Nt5dN83eDpLKr6O2eEmBjJ/VKGkNhe4UnS9c7iyeASmI8i9Ag3AjJ?= =?us-ascii?Q?vmNfK0Lx9g6hxpOQeBZAp2ojSGniFq9R0SN3X0o82D37+ewI+HCECDwvHq8b?= =?us-ascii?Q?xaEqu1bwsGWILbAfKmww9Tz/LZofORKhs9ZcMsoqMn0e+hYIbkeSVbuk38ZT?= =?us-ascii?Q?efVAd7xWEURhv3xDZ6Oq10ZaZaEoGfBgGzecijnOxkRlQvtTX4jgsIuPlWQb?= =?us-ascii?Q?+uZjNSkDAuvbjPtb5O/ub3YuIAfIJfyassjkGgTdn8Ve5CJQfk2hhawj20KX?= =?us-ascii?Q?UAjd/Nzt40yIvuPU8//zZtJM2FZ38e7jy50reXpZsC5KkreeItZoh5HOkjXz?= =?us-ascii?Q?BcPFz//Uv9/8YqjmaYyW4AOAz26gvamQhF0z4omX3VeAtEOa8NKXW/bklOtO?= =?us-ascii?Q?MHLq/E7FTuaBOJMvLCxvSHPvDJolrc3Ibsr2pPLL112keP+aCzRJ+VX67T8Y?= =?us-ascii?Q?TlsZPtGexruqqq70wpeyLNKR4TtWsSVRJ3pm72CtOsIJPQHQEJqenX2ZxpgI?= =?us-ascii?Q?V6ZG1kHmGIkd51/uK+CrDD3ZZ6IaUQfTVn8BPypTzTcUpzgFEjWIoXQvOeCE?= =?us-ascii?Q?yPbhkOvzM1mxczzFtc6hprSZFIZP3psfI2p9BfArjRQpXGUQGykb15piXyx8?= =?us-ascii?Q?deanpTH8iJLxW1x69yboMe1strqUuiqyERwmHfM4QFyqMfK9om2CkxqsK7tH?= =?us-ascii?Q?mi75z0EuO+eC9YW0kO2009YvyX/bJJNAORzhsP2SSTyFXsStlJRd/l9bO2hP?= =?us-ascii?Q?0ScGlESzT1OiRH2W7A1EK/Wxyv4IecEVu1AR3fYVs8seJ5Ce0qb1K3v1y2fj?= =?us-ascii?Q?8r5094WAl8yip9T0u+XZCD71DGDvcwV+SIT3PpWYRrBPt829AEHFU7+DWeUp?= =?us-ascii?Q?MQg/0Bu5KWAynu+gBJMsUVeQxfsIoYQn3/xCJ78IGm781it52JNAqCtrfXkl?= =?us-ascii?Q?br+r6Y/piSyuzYIHBhwKtgO4uftAlvj2ruB4rI0fU9SOBPOx/ANunsvXnly+?= =?us-ascii?Q?ATxyXdRVZ4BPoqzOT6LHzGVZsoWPJqggodh4hOtExaA2ogxnf79l11Fpgn90?= =?us-ascii?Q?Cfi0c1HuDQowqJLxpZQgxF3SzcYdkE8s9FNTZzLwbv3MEdJVTZMEqY15QQA+?= =?us-ascii?Q?o9keKQcqDoac7YsCcxfzHhGNEfNZ/9UuykWJukwYjXjIBxZep8GmIawwKNLT?= =?us-ascii?Q?/Ejoo0rGj/slyg94bVF8uf+hX5ULBqcLJ/yH72WuutRDZWE6cqQfwaoZJQ9l?= =?us-ascii?Q?kmKeAzZ62I/s2eVm/0NuH9NhBWeN9nlst7sOTBnGyDq6iwVv/mFdYQkwH6u+?= =?us-ascii?Q?OS6QzyDmUzC0YHUHd+DQ2c4uldM2GZNMTnxTX1H9NLkJqQKd4cMfafDHOHd7?= =?us-ascii?Q?O0FsKktev3+mC3RH8/wCfQev0RWymFtBNrgFx9b2ygn0AAXMWIwZV71T2bBv?= =?us-ascii?Q?A1BWH2GyGbQ9Y6nx2NISnqU/Gpf1V5o9ZNDHyQWqfNkaw/189StWrkATzYph?= =?us-ascii?Q?e0JFI2z/IOqpE9uH2tXGkYn/ToTSTNDqvgir5puOR5zrjwfu110GicRIhW+f?= =?us-ascii?Q?qIt84kVt/V7IKm4tqGLRVFJI01AuGxKIGIwzWGOt6G9j1kjU91TvXBya146j?= =?us-ascii?Q?Y/5mCHs8J9h/AjaP69J7bea1xCI3kvCKBiwmT23R7C9NH/jbHAT3?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 4c5e629f-536c-48e5-c23b-08de6ca43401 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2026 15:09:23.6697 (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: Z+gVGnhBfi1tHM9f9WBu6A1M1tqNWDrZCvWaAnyzXa40ELmyG0wAMKAyaqUDWnCN1MbKb42YV0RIFKcLla2NPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY4P286MB7240 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 Signed-off-by: Koichiro Den Reviewed-by: Niklas Cassel --- 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