From nobody Sun Feb 8 22:08:17 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020130.outbound.protection.outlook.com [52.101.228.130]) (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 032CD199230; Sat, 31 Jan 2026 13:37:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769866627; cv=fail; b=AwHvuQ6at//aEgWQ3LVmKVmYMdnpiTIhI31nGNxAVa4JBtVyeeoqRfFf9wUCyFvQ7QEr3V8hOKg4zq5gxofwU6X3tWkovutsqmy+7nfmIaHodChGR6xx6vQzV/Bw/a0TGBLBUn/gLd99HKXAJDPFgzLkHujO4v7s7zKzBYxTP08= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769866627; c=relaxed/simple; bh=5FaUJtvQJZ5vZ7VEucjGszVNlqcEL3+eumSMSvKe9wM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Q3HtGqjMACcbhqxmyDcLLwe/KU9J1cCUTvjHhPZ9dcV24rOEx0jIBKse0ojX0ABSSR9OIWeF2qclchJfWG3iCLdqCXtFSEhqBzTYLt6Siwl7IFcni+FGGAs2nPV+l+e6/QUCQWer+s/vpLxExcaJ4YHqk0jZNwEHyBmLF3Mi4Co= 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=wpLo9iFp; arc=fail smtp.client-ip=52.101.228.130 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="wpLo9iFp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cmCAfl9TS6l3YegyMH9TeFqTwHOe4hXUxgaAw6rC1iDKPJPLMYqC4GwQO8WnDkFwnT1PyjXniaHGmicq3ridTC1X02aFLxzCeUHS9W35D/BvWUPwh22o6rm9zc4ss+UnVlIDEYx0aWsKkYnrUI9U2Gn9RWBw0whxnVZvFgXFc5KbwVNLcUAT7ut1aJJyJf9H8SQYhFVEfH+G70ePEDLEKEov8Z3EdM82mfbznPrfp9Z9Y33g+2i4KWXdw4US10XkQia/774gb2BgcAn40dxn1xkUUgjyyRCjaXlBS5gFrpa9vflc094gxPawvHBkc88gud4B6aZUpgOxRLn9CEKOGA== 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=i0DJP6vTv0QYOKMrncI8q8Xbf3uzkb5sa1uQLq96KeY=; b=j/GCPTEJptfLjOQPmrLVb87B2kjbgZQZ4/fcuZ3HFmCyg6S2re8yADXyh/tVTH9mXJOiNnoB/ZKbUIZIiorjzhXYx1nN4wtDr34PCoZyiBEffTsv72bkNTBIBOEhq2K8drzeup7IhRVgzld4jyo8f372K8vfvhyABaXhpgLP1neqLG3OC8yxcWH4ECUSCM1a0g5E8ZHwrXuMiQz42AKLQydkeyEoOnBLY1H5+ocQbp2gCD+rMag46OAOYB3gkyAercfbbE17zIO6LiUhCJH1SYT2wQ0+UBrTV+AWGV4zCZ0O1QR95zl46ZeLIOtGk06h7nsJXs8w87uS65c/7z30oA== 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=i0DJP6vTv0QYOKMrncI8q8Xbf3uzkb5sa1uQLq96KeY=; b=wpLo9iFpvUc5OvadTzfQnqC1hetkRSLz+T0wirQFSEqsaM29GehU4Tuc7AxYamEGMpEX+Dhv3/JOOUDmvNjNc5kyIWVRnERJzVoPlG0tdZbeInBeMXBVZlMoi+8FrjXZPbsz1Y09DUcTdGolnxFCe6iqZY7htLo3xoWEXZTnV4c= 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 TYYP286MB5003.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:14b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.13; Sat, 31 Jan 2026 13:37:02 +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.9542.010; Sat, 31 Jan 2026 13:37:02 +0000 From: Koichiro Den To: mani@kernel.org, cassel@kernel.org, kwilczynski@kernel.org, kishon@kernel.org, bhelgaas@google.com, corbet@lwn.net, jingoohan1@gmail.com, lpieralisi@kernel.org, robh@kernel.org, Frank.Li@nxp.com Cc: linux-pci@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/3] PCI: dwc: ep: Return after clearing BAR-match inbound mapping Date: Sat, 31 Jan 2026 22:36:53 +0900 Message-ID: <20260131133655.218018-2-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260131133655.218018-1-den@valinux.co.jp> References: <20260131133655.218018-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0367.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:79::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_|TYYP286MB5003:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d250073-29ee-4b6d-bac1-08de60cdd13d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|366016|7416014|1800799024|376014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?rmLBWYzcopm+HQlzg7Mc/Nd4gN+f8NpUrINhKIVW5PBGApBPDl4+wTWKyKIj?= =?us-ascii?Q?oJbBvYiGeaajenM0wAx9U+OTmH8Bxgfz2wXYMB9xhBc/+Rg5blqHTaqQ5EDC?= =?us-ascii?Q?ZN/D6sePRepkkj7ju7G2yPDeih8PpctCpRUDI9dOnJSOHl28mz66+w4A0klB?= =?us-ascii?Q?/MVwqTK1OM48TsH1SkHPTbtkysjd4Ru/aOBmDVgBK316iJAwRLH8MiO93v2o?= =?us-ascii?Q?JVl7bGe3DuUKCh1KShUVxYCJRtLhsS3061H2hVynamZztXsJkyxbrq4AZXCl?= =?us-ascii?Q?seZNj9S9PArORQuhMyURZqI4a8hI0EcFaFvsnOyYij53qpG3n1PtHmMtxJfw?= =?us-ascii?Q?8hBPLEzUPEeDDRwo/lSEJh/pAmhrbH0YcHENGCCStrPGn+6vMETH6OqJ/qYj?= =?us-ascii?Q?uMHLaSqW3Xo8TKLKVrpdzxFl1iRZL6btDC4F9BoKgaypFAwiUW3CYGx6EKum?= =?us-ascii?Q?8NhTg+xdYG8YM7pvtJp01QRGD7Sbf9ogodRzUmWmwt/Qd5eK61R4RlQE6IE7?= =?us-ascii?Q?7w453Ed0CjqaaxH0DzoU9kP0A9aDer0s5lZVonEg17Z7rDpcbIWsD5CCEnLP?= =?us-ascii?Q?XLB+lgE1QSQiLeMHP2xoF3CEw/3R15LlOruad4NPB6kTFSb4009ZcvxNapbC?= =?us-ascii?Q?IlRxl+w61d+XMdqLEFf3JM50ylf3MrogYgsUzXhTOkuqEDhroT+iBxfpnQXZ?= =?us-ascii?Q?uZB3/tFCoX8zFRxxN/uWpU14XRX6i1RlEjEbvqffJqvVNcuAqzRhBuFvtIVD?= =?us-ascii?Q?YvFY3pQ+05WMDqco4PSXqmDc6ZSJJG9ozNizo1vcHc7KgCNPcU+ywOtMVQh3?= =?us-ascii?Q?aJ7rIlXFFV5kIjT3kwqxvis4hwW3VYErNJoEU2WjjYuFxuCXyw1HVNxK1dVe?= =?us-ascii?Q?kkLOOIV2Z3GN4XgN9xtmuDkE3XPTeesIAdihuqtAc+Wvc9DMts3krlcKLFfi?= =?us-ascii?Q?fAH6wzywszL7Bdx+3wHCL8zlU7qgPaW9CT6wOBVsFbYCBxXSXV52p5XcvY9N?= =?us-ascii?Q?a9FCBoU+KLa7pvAAlBrtdGZyru6kuoAWAmaiKolSjvkkng2wsy9wUDOXSzRp?= =?us-ascii?Q?VngnxvvR4L6X2hb9ujzmFxOZAvyi05xFO0vDOIrpgjeMgUYFO7/zK8ap6YkG?= =?us-ascii?Q?6HxbbJIYzGoc92vCavSMuExcnTVysEaBtYoiMBSGZ3THZlXpL7jouPUR6Ut+?= =?us-ascii?Q?Q4e4YjReXE2beLcKjqJzULu7n5UpFSiSCc9Qa5qkkHUPDQAc7RN5JpmCHeUk?= =?us-ascii?Q?8EeaTKr6R6+9slB4h3kA1kCggF4EmUWRC52LILQFh1WFU/VO3oteYyLJuOw3?= =?us-ascii?Q?jXi59ljmO0pLOM7kmFqU3h74cw+I3G0imTYiq/DOuUz6BzMVCWH9ETZFHiLH?= =?us-ascii?Q?VIFtlBVIJUnVCrg9t+9A9EsbwR1K0VhMak9YM5khroGzorRn0dTP6KlK8WQk?= =?us-ascii?Q?UkNfUcn+lvwUtRUUWkFW7oIhFw4rtJ1xxXl1NfQXHqfepuUUvkY52nzxLlKb?= =?us-ascii?Q?G1XuseOz+eJkwuwc6aPP8296Mms2Hu9dFIS81x9VSZJ1NCmKPzFlgktmxlR5?= =?us-ascii?Q?GKAoIffv5Jo29SZ+2Izj2eq3roSA6SAILLyNVGrtp5N6tgA/YTCD4TyvWCTW?= =?us-ascii?Q?BHCqygsWAcsaUIuzXHmqI0w=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)(10070799003)(366016)(7416014)(1800799024)(376014)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Izhn8MEh1/cMHzB9FWut7vtBdpAERWwJqNt4xVICHYbwdWKFdLRg5zQrDRW2?= =?us-ascii?Q?3WJXQWZF5fw0frNVKvUGHIifKl40YMfquZjnN4EbJWcPuGooDvmPOVmEUII2?= =?us-ascii?Q?AchoLELu5ExulwvD01Seb1mQvZ9UwkwJXpTZ8RCgWY+CUIBkaiFeZCDUwq6v?= =?us-ascii?Q?rwUj+GIgPxjG1YOMGnGixWk+R5NZ9vinCdtHoNP9bVvdz2n39JtMcfTr+Uh0?= =?us-ascii?Q?CQIgH5YJ5VBaz2wvdFux3bIfEKl6md0ao+iUbdGbl5BnyP1qhchYRXa5hSDm?= =?us-ascii?Q?rzT4NR9QV0ZBZlIK+Bpc5kSrdx5iHBCYc/Dzo2VN/z30p9hlF59x5mJgpXsF?= =?us-ascii?Q?oiEpqCnJ4FanAXPG4d2Q2pTqpJNU0tjpuwXDRMfSDCVG//xeftX17+FQN4aL?= =?us-ascii?Q?gmdIW0HdzBnvSW6gkD2TDXmnUehM+SD+rVMKfHlb9qo45zA6l/RpBTobV7UO?= =?us-ascii?Q?nSzUGCrZBsl2kpDGJeWmXoWaQ20uNFz0eEYBgW4tN68CRwWW1vRmwM4L9S29?= =?us-ascii?Q?X1f4ROyfCz1vMRyjLw+KyEPoLmqK7ERSutgII915E8pWbGZezIG8tCe6L7/Y?= =?us-ascii?Q?ST5Sx8qw9b41VxildGublkw2XSh08CWKubgiybCnpvGVq9FF/r2ojAaeO6kG?= =?us-ascii?Q?3zdglZ6+9re1VOS3TZ80aT8dsz8aywRswlaVulV1870bFF5KPu2gLHxWWJgW?= =?us-ascii?Q?3RZ+2lnFKeZhrKBKWYNTFHG8aIZj0/9hCMdBE/Io+hRtEBUCaN35IQMJNeab?= =?us-ascii?Q?//qGR1zFgUQK3Do18lSjZE5HeStRES47+YRE1O/0Lkhb9hAVRa/894GNXkDp?= =?us-ascii?Q?UO6Ph1jpTu98p6soxh6RIRKKyt3kxpZnAoVshIZZ4bgA690nr9hGLHWEhbs/?= =?us-ascii?Q?xQtILKZc7eZ/nHcNYu8wS9qJhBIbOB8VhqdUnpXWd8xjI037yj7+nAQhTivc?= =?us-ascii?Q?D1sav3JFuj4PtfxpprC3SaMn3NP5WosSJjz1RYgD3Ippe2ajBe5NL2DbjKCK?= =?us-ascii?Q?MI0pqiOyf8NvVvkdNuaZubbO3arR/k36hlQ/Qb9rG/8zZ7B+YbyT/Gkj1YQM?= =?us-ascii?Q?9L7IlXzitst9PcT1A5SREdtHvY1lFkLyM94SJqi/ixDwFE7JtrGjWBZCWZuA?= =?us-ascii?Q?wBoJt4gw1qo9EFq8E+aAH+rkpiy2Unmn3BI6LJJgDIDPKv/Xcnb0RWSoo+kv?= =?us-ascii?Q?utA2rrVltVOS7hypnN3PKxFkXzPbAviOm9X0i6prUxjGB1B9vPOTzRsQhYhH?= =?us-ascii?Q?zm3+Ap6kFTUjZy5QfAfUZTKjDx8Yyg6ihmLw95XdGvCe4Vq/8OLhGU3pyU0j?= =?us-ascii?Q?mKiHzTUcNqzs6YMhtgZMJ9EsYjklJHcaDBPsUBnzXu05TgRTlUKvQETMwVXR?= =?us-ascii?Q?WbvkyjHQ26OsItxKMMWT0eqNRLljl1jgVDK8tAwp9MqhCXH/ziuCgPOEK/CC?= =?us-ascii?Q?q1lQ/XQ9Zr58OeONgb3ucyUJpYuyJoDSz4sGfyowPN7ZiAGYaXMD5XbOUh9a?= =?us-ascii?Q?ozH8fsAoFKFac43CmwpDMd6+yVZbEvyiD3HLT2VtSA+zVVnXxhdVfLK04mta?= =?us-ascii?Q?FKJBoKsRV+ByxV4UjT1fTyIOgsHQqC6ZEy+PbXOKD+sjXYSTaKqW2DqYRTIw?= =?us-ascii?Q?QRXlhp+qoakRDMH2LHHN0I3lHsTn8vS56y/2k/wf/bhzoXywc4/XUOrvGXDa?= =?us-ascii?Q?pF8suoR79EbRSJD4CAvK88PAny9oqniWMxvg5EPyIlMB5TO2OtuxebbmOy+F?= =?us-ascii?Q?uebCv+edEZBlAWDXQLYbLYtZAvMdl7+dDsuoGQFFOWhQVIfj/8Uj?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 4d250073-29ee-4b6d-bac1-08de60cdd13d X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2026 13:37:02.8688 (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: sUSmwaGfQb8Bw8SNfHksFBAiGFYy0KuxQJrIBDk1bPb0qMK9QG3OmSM3WVC4MWz9Rzy+YY7wmLfbKdMH4KF1MQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB5003 Content-Type: text/plain; charset="utf-8" dw_pcie_ep_clear_ib_maps() first checks whether the inbound mapping for a BAR is in BAR Match Mode (tracked via ep_func->bar_to_atu[bar]). Once found, the iATU region is disabled and the bookkeeping is cleared. BAR Match Mode and Address Match Mode mappings are mutually exclusive for a given BAR, so there is nothing left for the Address Match Mode teardown path to do after the BAR Match Mode mapping has been removed. Return early after clearing the BAR Match Mode mapping to avoid running the Address Match Mode teardown path. This makes the helper's intention explicit and helps detect incorrect use of pci_epc_set_bar(). Link: https://lore.kernel.org/all/aXtrW7viGZfMNZur@ryzen/ Suggested-by: Niklas Cassel Signed-off-by: Koichiro Den Reviewed-by: Niklas Cassel --- drivers/pci/controller/dwc/pcie-designware-ep.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/pci/controller/dwc/pcie-designware-ep.c b/drivers/pci/= controller/dwc/pcie-designware-ep.c index 7e7844ff0f7e..0ca05943a1e5 100644 --- a/drivers/pci/controller/dwc/pcie-designware-ep.c +++ b/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -165,6 +165,7 @@ static void dw_pcie_ep_clear_ib_maps(struct dw_pcie_ep = *ep, u8 func_no, enum pci dw_pcie_disable_atu(pci, PCIE_ATU_REGION_DIR_IB, atu_index); clear_bit(atu_index, ep->ib_window_map); ep_func->bar_to_atu[bar] =3D 0; + return; } =20 /* Tear down all Address Match Mode mappings, if any. */ --=20 2.51.0 From nobody Sun Feb 8 22:08:17 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020130.outbound.protection.outlook.com [52.101.228.130]) (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 ED194352C2A; Sat, 31 Jan 2026 13:37:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769866630; cv=fail; b=Xp5KgQL2MHgaTOt4HUq/vXJHBQE5BNoOyyaKbM6OYZmArs/hjjarEVOT220Ob8z5jirZyPfe27uGfoRl67Rer1E5J5AJrfGaZfJEn51fSkG8BRFHe3pIgjwbnqmfgG6g3HxJQOeXRX7E1JYM+LDQS1xqV3j0KzdR1W2Doa1Rna0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769866630; c=relaxed/simple; bh=v4EcHqBQerrJJRp9LZQJfWz/7u8fcoTA+g0oZWshLR8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=AHGEpPzFhvGgZBdYMm+Z91/ZAFDcIN067LNYA2F26dKV0/X9jt8MKOc71SBe9NhWKqZ+FuJ6JBnUKflcdykwzOiDCkyeGNxErdyrTcV4ie7Bdz1dYef6DhMq4il9p5f3oDvdcBJjd3TI0CxN4cJ4Scdq1bNtQK/i0eDM5SfkFaM= 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=dNx5lLHp; arc=fail smtp.client-ip=52.101.228.130 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="dNx5lLHp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MuMiwwtfMsGYyRas3uNFj2DFUfs7T8mnWgYChOMrqmSOB0uYFf/YV8zOLk90UgzecWdiUY065KDyoxhXrZQaoel+YP/gMxtSfU6wEZjFyU6oz68uOoIhW72QUbT/p2zGTLJnTB0ofuYYZyOT1i/fBJFI40txVQEvSLcDRbEoE/Ts9GmRJg2FF9dEBx7Z0UkSiROjvRtz9BY0DI3oeTOgRjv4WG7AtN8yFygLJCVgvmQW5l1I6ELGV8WcX+wNvv4bWRynf8BOWqk9GUCWNzwdWw6B+6VHy2Iqd+DDeOlsfI4BlR9iaBsFn323myONgiuUqy8iDspKk/WBamSyGVoKWw== 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=EUYyEqiVuTYL9H5N5UWfu7rg1sQhdovjZkqQSxBTm9k=; b=hsGCjHl0mqok3r9m/ZT28GN3AlvFydKfzb6n6hxRpkz1P4bwmyvWimA135pPGZVwMe/IrKdZl/Ldp0CSHi25smMWSGqMuIMpfQO0kEvV+DGsfp2cbTj8DaZ3a9PGprLnadwSF7f6GpjGCGd1sgTYTLWsHSCPVh/or8P788vyETswllPx+RyemPmfIKMxw+MCewQJDQJHdm5l/gbY06cyZEIz+fxtivQICsnasm0roYhY7BavE/o/XnN4OtNZRYIHflwWRLhml1ecpfnD6zWYKpUK8YbC3ML57uPSgcXRq7PHOkDj1CoXO9dn6SsnfpkIdO9BGT3jRSVOs9eWnld58A== 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=EUYyEqiVuTYL9H5N5UWfu7rg1sQhdovjZkqQSxBTm9k=; b=dNx5lLHpUxllo2YR03YWsk+SY8hEBX2RDICPgzJrXCpyXNlOiNKJAsZvKenZHbsqpG1d/juhlokLrUE6KrElSuUd7hR/1IBPn4OPndiMqqY1ryhfIAh/oPrqSG0zn7zUKVGeV3UnblK1axvmZ91N9uB1Bmqf+ImgtCxEMNAVYFE= 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 TYYP286MB5003.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:14b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.13; Sat, 31 Jan 2026 13:37: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.9542.010; Sat, 31 Jan 2026 13:37:03 +0000 From: Koichiro Den To: mani@kernel.org, cassel@kernel.org, kwilczynski@kernel.org, kishon@kernel.org, bhelgaas@google.com, corbet@lwn.net, jingoohan1@gmail.com, lpieralisi@kernel.org, robh@kernel.org, Frank.Li@nxp.com Cc: linux-pci@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/3] PCI: endpoint: pci-epf-test: Use dedicated pci_epf_bar for subrange mapping Date: Sat, 31 Jan 2026 22:36:54 +0900 Message-ID: <20260131133655.218018-3-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260131133655.218018-1-den@valinux.co.jp> References: <20260131133655.218018-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0133.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b6::20) 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_|TYYP286MB5003:EE_ X-MS-Office365-Filtering-Correlation-Id: be3dfebb-7a20-4c26-ea66-08de60cdd1ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|366016|7416014|1800799024|376014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?qn6ruFFGbkbOD7nIJezLHwZnfD6PrLRyZ0aifUuHfjk7dyaTP15mnrrOlJOo?= =?us-ascii?Q?2bIuT3Lt5H9flthUtLs1guiwK5PVq5YZXOQklTvhrYMs6j/kDSL9TkrZQSw1?= =?us-ascii?Q?hDFDM3Te1xW9rIV+ODEXI7bXhlwGgOgHnCEeNIsNLJY0181VO8JgQWhy/TJd?= =?us-ascii?Q?EQSyMNSmYN1pRejqpCGCsvjam4oTUe6W6YvlPqfxDSuXWyO1GlauLFz4VR3V?= =?us-ascii?Q?/2kOOZ+dBf3gBlv0R4Yp5S9DfMFwCCX4UWSMyW9TRq1PFfK50Y7oYh+OWctB?= =?us-ascii?Q?NRnnEEFyCZelftw9d4J3EgTkki6Hl398b5FBLKuv7hrdCcEksen9LU5kbUzi?= =?us-ascii?Q?Nn9S6xVMlRhyf42CBhg8D0ZFjGDoceWGDwokonIQA/yRUO4VPg4E+mkvqZww?= =?us-ascii?Q?UAoQET3MjlYO85iC5IM3pdmcq//blOr1R32b3kt+X6ijzyjHNo46ZZLaNERd?= =?us-ascii?Q?d+12FO18jmT5+oCXalM1zwAJeBNJ3Z0nv8yuM9jAE6tCGyS8ELxuwEYrNQS/?= =?us-ascii?Q?IczFB+EG/eovS8mlVvxDD/AyCw0Y6l1txgmdAkdEp/ARmWK+g0UzvB7EEpds?= =?us-ascii?Q?vPHsCgUQjN8fA2ihPJikJ9gA8NxXKVV4h2snfIX4WGzf8+I5aRGDQlivrNfP?= =?us-ascii?Q?VMEp8pTnWhSJ0ylCFV/Vmj+5ZyyDYJV7H67F2HoJLxM+AyHVnvO7hv6MIyMw?= =?us-ascii?Q?bt0L4aIqY62J18kIe6f+oEVZNhUw5oZFB4u4P7sVB35nRUUGYU7wD3xyG2Ms?= =?us-ascii?Q?j1Ol4MSS9p9GYqoGrroSidGOiPbfl7k+OvH3+E7NAscVdE6PHTRgctveey+e?= =?us-ascii?Q?0MpPDZIDlBPh5rP3vRMCiMMUhTNbef5E/Abjqdn7q9ygiCKZW44mcusooJNv?= =?us-ascii?Q?ZNLu0G2UKyf9q/aZPK/xjywuvW7T8+/mCBOdq+Jiwbk6EP5U4G9tiwoJq8Am?= =?us-ascii?Q?9saTF2w80jXWFeCCTPeBvRdHjjDgtrpH+8vyR/6GK+zcpeTa2JLtwmNR5ChB?= =?us-ascii?Q?BxVBqAeDPf8nXmDKwnf0DvyboFyFEf/+D1cNU+A+RhzvK8maEkqmnpIP5C6e?= =?us-ascii?Q?4c72ObZ/JfE+JvskWSGi38pDO5i83V+Izk4GirMlNWdB8mY+ym9c6idn1kcI?= =?us-ascii?Q?pHZivWuAo/vXWa1Gz7it+UnZcRfloo8+JbxTUh7ObqgIMzkNoMEnQv5Hua8i?= =?us-ascii?Q?4xuWkz5d+Y4jkZynuEpg2KorsMc7vfXQaMoMhrBj1RATnE1WUtytggX2pP24?= =?us-ascii?Q?cD8tANiA2AmIevAoixumqpZGcBIbCnxGeQdXNf8fFXCSl2x1YLmpUxJO3cQE?= =?us-ascii?Q?I1KNfGbomWyB0pSyh0EYiLImi/wuMJdzCgd0h83nm1SFIQApOq7R2hJcPORd?= =?us-ascii?Q?kAZV8y4U5TN+B/1ypROPmMxi8Iggi4kgov2SomPBT+qvvrrWfziOqUc2FFK8?= =?us-ascii?Q?jyvhRhJGXmRUsTi9j41pZiEnXJrT4ckhpIiVaQzszkEUhFeUYorGiMns3Dcu?= =?us-ascii?Q?l+RZgNVXPOj49a27z4MEEwufuf+IwVBpdXm8p/MWsyUJf53fJA9fuOfu3A4S?= =?us-ascii?Q?ASV32lCnKneeEBMm8P5Z94b1ldKVDRiNE0puFBXeKuwAvTp1WUYSa4rN4eDX?= =?us-ascii?Q?Tg=3D=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)(10070799003)(366016)(7416014)(1800799024)(376014)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jG/10GZuru1xXch6Ysba8yoLrdyuLyV/DwEPe9pSFmc8eACYCeQvKMwaN7FM?= =?us-ascii?Q?0F9HzrnmPCG74AH8/7j7FGgqRY5uJK3VS1+aV6y0XPVDkPUvnqbi38Or1RdN?= =?us-ascii?Q?IGY8AuKDkwM4V8KnXV64ZjaatGhPh4lx0bM36Ed0ENvIJXjYMIZbliINI3VN?= =?us-ascii?Q?5mYxcEHzmeKckBMAmrAE5q9anvCV7uW0Z1csWhokd/ZJDI1JmNoB86QaNA1T?= =?us-ascii?Q?V2PEQAYcUAe8QybD+5M875GfUuAi/esoSPgYASrJuSxu3Ixb3ZRCRpohHVvR?= =?us-ascii?Q?j0ctvQjw7Py/M1NB6SBRzggzWlBr8Is2GeCS2BgntnpunZ5znVFV0milirLS?= =?us-ascii?Q?CMY0XXONdcCcucSEoEK42/e7aQ1+fIdfTq47UTlClzodteabhPyZS+2hda39?= =?us-ascii?Q?/MzuNYNEM/UmZTW0dchtpimtrobrge4zoCNgDpggF2Xa1/WcIy5t3E/IR41F?= =?us-ascii?Q?5qLMkyRZV8S5JCQS8UOpYe73kvdKxX3hbSn92aVHz/ERyDLTgnCSkD4AG8RQ?= =?us-ascii?Q?c8s4y7q3Q1KlE0WFMoNiReXcYhyWb4lIIt4ukEhgzhButFFYKIZMjuO3TDr1?= =?us-ascii?Q?O5Ux2L0eFE2K+ShANnFGvstClNpQyp6O2iWKzRtHYoUEqNLaroiFzG9cKYo4?= =?us-ascii?Q?c+vNlvbN1+fGFQmZ/qw985r335ahtpEBgluTzSBGjVW4wyob1dBmyW2PIQkX?= =?us-ascii?Q?ZDWsB8Cu7ZYmekRqhA/9gW5Iq8kXwDRA6JEGSZx+1TMhuXs76d3nSjL6PS9X?= =?us-ascii?Q?oOcfWlUO/Lptedr7u5bu/UtTWYlRW7clLN/OcdVmydPqUq2eoo5Wr5ufH9/U?= =?us-ascii?Q?GhMJQtF/JeGdnfDufI6mTRFpi/Cz9+LyQd1/RjVMbxe9UDMIA+HNyUfzRAMN?= =?us-ascii?Q?lbXccevYJQXdc5N3ZHWZenQXn61I0nrwX3Crg/liYXQ/+TSgaa7GcKppdSpS?= =?us-ascii?Q?rzT/xy+xge+x+8CxNOGbUcC0fwIbmlWCDvdBOINnCT7dUzV/dywbeWu5uVG+?= =?us-ascii?Q?AEzbE7jarOGjsBIwhFLzNd9CPq52cQKsJNFtONTd+Obv25cTFKbOXhHPibo2?= =?us-ascii?Q?86EZpp/h88Yb+pnxxg/9yigt1i7ToJ2mS5OerrFh8e3uAJNuDW+1g9v1NLOO?= =?us-ascii?Q?1Ji0IhQR/IVZqg7e9WyNwC0Yx/dQt9fT6ExiMXxuBgg68FswizWq2jTAZYL1?= =?us-ascii?Q?zNM172mcH0kSxkYf2x2fZTxoQ7NuZwuGYlmNihAmvBdXYg8NdFyhNAQlehLW?= =?us-ascii?Q?X+0vUjSFggvf5afE0N79yFabtazVs978B/R1JihshJVIwDOfSRAQzlF81tj3?= =?us-ascii?Q?ctVHs2Y02iucQdBfW9LCJtQrQW843ArFMssnH7oHf6kKYnx0dpTh+0kI6pcu?= =?us-ascii?Q?pqFMYZfqcklvjuOjos28m9R3IMZtdturv0Z+WfjwPhQ/aYaf2DG+rjInFSQe?= =?us-ascii?Q?0kKrn3MJWCaebbkfVBegeij2amk/7T3uwCP7pjfVuufEA9vO44qrqwplkDYu?= =?us-ascii?Q?S3R2+MtzQ+G0ky4rOn8rafETnLBvy4OyZHOoj3zwmZctT58hwy3sQIS8Y2Hb?= =?us-ascii?Q?LsV0Z/wVvE88mIOT8JCcDl7x1uhyxCW4qU7Re7rkfac1NbKrn/L5R7W3iToB?= =?us-ascii?Q?5uy/WqgaoU33UizE8M47HtcUD8IABac/BKg06K43bh/J08t/q+wVl8s33Z+O?= =?us-ascii?Q?3I4kTbYDEOMbUUX5lRmBwO38jycnsAh5zzVIO3rBlwPJzxuUNK6S7Y3OQe+o?= =?us-ascii?Q?cY93cAQ+mFQbsbfOy5ryqy64jTRv/k0h1igiv3YshnRmQ8RMBeqm?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: be3dfebb-7a20-4c26-ea66-08de60cdd1ac X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2026 13:37:03.5946 (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: i3jxl7VYpZyn7w9h5in2uMe04CuT86OznXjRak89w91TBiJhhrP3TrL0Gzj8hdwznE5cs6M2qzbwP4seAU5uLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB5003 Content-Type: text/plain; charset="utf-8" The BAR subrange setup/clear paths in pci-epf-test used to update epf->bar[barno].submap in place and free/restore the submap around pci_epc_set_bar() calls. Some EPC drivers may keep a reference to the struct pci_epf_bar passed to pci_epc_set_bar(). Mutating or freeing the same bar descriptor after a successful set_bar() can therefore lead to unexpected behaviour. Use a dedicated pci_epf_bar instance for the subrange mapping test and only free the allocated submap after restoring the BAR mapping back to the default epf->bar[barno] descriptor. Fixes: 6c5e6101423b ("PCI: endpoint: pci-epf-test: Add BAR subrange mapping= test support") Suggested-by: Niklas Cassel Signed-off-by: Koichiro Den --- drivers/pci/endpoint/functions/pci-epf-test.c | 32 ++++++------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/en= dpoint/functions/pci-epf-test.c index 6952ee418622..fd6452d1dcc7 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; + struct pci_epf_bar subrange_bar[PCI_STD_NUM_BARS]; size_t bar_size[PCI_STD_NUM_BARS]; }; =20 @@ -827,11 +828,11 @@ static u8 pci_epf_test_subrange_sig_byte(enum pci_bar= no barno, static void pci_epf_test_bar_subrange_setup(struct pci_epf_test *epf_test, struct pci_epf_test_reg *reg) { - struct pci_epf_bar_submap *submap, *old_submap; + struct pci_epf_bar_submap *submap; struct pci_epf *epf =3D epf_test->epf; struct pci_epc *epc =3D epf->epc; struct pci_epf_bar *bar; - unsigned int nsub =3D PCI_EPF_TEST_BAR_SUBRANGE_NSUB, old_nsub; + unsigned int nsub =3D PCI_EPF_TEST_BAR_SUBRANGE_NSUB; /* reg->size carries BAR number for BAR_SUBRANGE_* commands. */ enum pci_barno barno =3D le32_to_cpu(reg->size); u32 status =3D le32_to_cpu(reg->status); @@ -857,7 +858,8 @@ static void pci_epf_test_bar_subrange_setup(struct pci_= epf_test *epf_test, goto err; } =20 - bar =3D &epf->bar[barno]; + bar =3D &epf_test->subrange_bar[barno]; + *bar =3D epf->bar[barno]; if (!bar->size || !bar->addr) { dev_err(&epf->dev, "bar size/addr (%zu/%p) is invalid\n", bar->size, bar->addr); @@ -883,21 +885,17 @@ static void pci_epf_test_bar_subrange_setup(struct pc= i_epf_test *epf_test, submap[i].size =3D sub_size; } =20 - old_submap =3D bar->submap; - old_nsub =3D bar->num_submap; - bar->submap =3D submap; bar->num_submap =3D nsub; =20 ret =3D pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, bar); if (ret) { dev_err(&epf->dev, "pci_epc_set_bar() failed: %d\n", ret); - bar->submap =3D old_submap; - bar->num_submap =3D old_nsub; + bar->submap =3D NULL; + bar->num_submap =3D 0; kfree(submap); goto err; } - kfree(old_submap); =20 /* * Fill deterministic signatures into the physical regions that @@ -925,13 +923,11 @@ static void pci_epf_test_bar_subrange_clear(struct pc= i_epf_test *epf_test, struct pci_epf_test_reg *reg) { struct pci_epf *epf =3D epf_test->epf; - struct pci_epf_bar_submap *submap; struct pci_epc *epc =3D epf->epc; /* reg->size carries BAR number for BAR_SUBRANGE_* commands. */ enum pci_barno barno =3D le32_to_cpu(reg->size); u32 status =3D le32_to_cpu(reg->status); struct pci_epf_bar *bar; - unsigned int nsub; int ret; =20 if (barno >=3D PCI_STD_NUM_BARS) { @@ -940,23 +936,15 @@ static void pci_epf_test_bar_subrange_clear(struct pc= i_epf_test *epf_test, } =20 bar =3D &epf->bar[barno]; - submap =3D bar->submap; - nsub =3D bar->num_submap; - - if (!submap || !nsub) - goto err; - - bar->submap =3D NULL; - bar->num_submap =3D 0; =20 ret =3D pci_epc_set_bar(epc, epf->func_no, epf->vfunc_no, bar); if (ret) { - bar->submap =3D submap; - bar->num_submap =3D nsub; dev_err(&epf->dev, "pci_epc_set_bar() failed: %d\n", ret); goto err; } - kfree(submap); + kfree(epf_test->subrange_bar[barno].submap); + epf_test->subrange_bar[barno].submap =3D NULL; + epf_test->subrange_bar[barno].num_submap =3D 0; =20 status |=3D STATUS_BAR_SUBRANGE_CLEAR_SUCCESS; reg->status =3D cpu_to_le32(status); --=20 2.51.0 From nobody Sun Feb 8 22:08:17 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020130.outbound.protection.outlook.com [52.101.228.130]) (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 BA60D34FF5E; Sat, 31 Jan 2026 13:37:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769866635; cv=fail; b=THuXACi/gZnQ6v8DjJb/+frvOp/tm3tkB7tsL+RaDQEeAhFgd4KR8oXdDABpamKJhNCToHrPuCbe8mf6sHpIKWaiDbSNrmGRJjLRhzmRdQHAg0ZWanlhuzVsmvG2Ak2DOmGH8TtoFzASTb9s1TPhoptyzyDuxBfw3l04b0Uo3e8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769866635; c=relaxed/simple; bh=X6O7t66gp66HCp91qg/Gvc3NQ7ArPWNWcSrcYOHOFCk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BfXDxkO6zvgM8aWJQ2TRIXDpHiEbAmGtMT4hCe+wJchJ2YATpnrxpnOqeiJo81QWrS3r46j2XNPt3OsZgZ5eeed6POWGQltWSawXmbgWI0FhAlX9LFCZBY6DxtMubHb5FjqQwAyKZiwclKDzG8HmctPPLccrRMB+x5bqdIm67fE= 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=i9g9A44B; arc=fail smtp.client-ip=52.101.228.130 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="i9g9A44B" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OB2lN6RulOd9eMUVP4VoARWi9QWp8zPnvoNni3ec1a1J0PiICDO/+YTXVKQ9ADwGr825hH6Du3WY25DxqmVrQ0lNgU2WtPYK/OIx8ym68tSUvvp8q322ZdRxslipaOxxIYBJvrx/Q2sgDLJxOhgJsYT6eq3o7aq1Mz8JJGcFrkzKOHgIRe0pPwjUdDnWx5dcnTBMaqikPrYGuXDvLNGhHT+EIMmq/Iyw3uc0fje57Q8Ps7YMRYwBkUIcJIK9TMQKi6JquOTrLrHBcIitjkXx8H2Ree5XFDTQ8yIr9FxsdBjEyW3bcxemkeZxZ4QgOzYSDigUMmKtuh4422ZMJQRMTw== 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=5+t68dBPpDV4Bxfnnwxii4grBGD3wbam6DT3zfoyKCw=; b=KnfMQ4LIpJYOVl64howwKwsgNTNh5pxj1fhCdnP5RbhzvXwr4T1TOSfjZu05idA+vjIPFelSvbHZdJ0ggIMbHBgOWCEDYMKSkAbom0j+O4oqe9mge6AjvGsbUr+9Gy1hxSfq866DtfzOXocYFQnCweWsfr6KB67LxYxsmktD7C0yV21nSYG47XWMlYLhrmABVP58s4O+gc1IZJ7YJh1yRhQX0l68Z9WgS1G9hdyXNtVOZKSZdqoeGTEaB/xnvrmmH1AX237xN2rPRbRgsrO7imLbxjkSfPAC2Fp/DbEY+mjXaadB5h8y65bxl+3VWXXnsKFzPv2nCRdF/FbdmSZ8HQ== 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=5+t68dBPpDV4Bxfnnwxii4grBGD3wbam6DT3zfoyKCw=; b=i9g9A44B8AYE/m0I3etI691UVm0lQzRQgRZpqeSdM0OYjP71E/wBJG+jULDKRcyiSfNWS1G/NWBIELxFGp8gBgmFqeBRL8D2vXT+zYwZfhGr0slCpfJ2NLb8YH7qprdaDPBpwnuNdLqDt7qI21Ropi4wFh8F8b/oE8zzc3oSg3M= 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 TYYP286MB5003.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:14b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.13; Sat, 31 Jan 2026 13:37: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.9542.010; Sat, 31 Jan 2026 13:37:04 +0000 From: Koichiro Den To: mani@kernel.org, cassel@kernel.org, kwilczynski@kernel.org, kishon@kernel.org, bhelgaas@google.com, corbet@lwn.net, jingoohan1@gmail.com, lpieralisi@kernel.org, robh@kernel.org, Frank.Li@nxp.com Cc: linux-pci@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] PCI: endpoint: Document pci_epc_set_bar() caller ownership and lifetime rules Date: Sat, 31 Jan 2026 22:36:55 +0900 Message-ID: <20260131133655.218018-4-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260131133655.218018-1-den@valinux.co.jp> References: <20260131133655.218018-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0133.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:2b6::20) 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_|TYYP286MB5003:EE_ X-MS-Office365-Filtering-Correlation-Id: 3206a32e-c831-4892-61c7-08de60cdd216 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|366016|7416014|1800799024|376014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?u9Xrsy7o+OCtrXWYicxK1rtWkbtzSqOeLQr9cx8/Kztp59SHifqeV3CUDn0y?= =?us-ascii?Q?hxbWb85NMHpAh53KwFvosu/vgTannHJCZS2N4QJZnXTkde1etQospdsQOQrf?= =?us-ascii?Q?Esxuue2kMmE7XvOfQ0YBlGu6RoIUJPFmr70kuI9Gyl4A3hBp185j1YbsUZYY?= =?us-ascii?Q?3wYhCl2aFU3KonsUZ8e8FFTz3hKK+zuccgNi8btVfkSi07QjRZHTd1t9jCJZ?= =?us-ascii?Q?wNm7RBbwVUS6Yy5R/0ZVvF+QDvVMyyTJhumEHupZ9eXIWUd2kpWXgNhmuNd2?= =?us-ascii?Q?JOvhzLt9wUALS+2iOC3dLyhBqJldPAg6OKjo7g5S/B9DjA40zCmufJDWtNwG?= =?us-ascii?Q?NxRUmzQx2qPLjZF9FU0LGG7b+w0lsV2bAhwwEnkvl/ZqBWOLPGpfGhEmNwCR?= =?us-ascii?Q?bza0B6MyO4lqhwKCI+DGVyQIfNZz1gQ5+Ov4JLitfqjy1lbuYXAovPC5kn+4?= =?us-ascii?Q?KpffJ+vghSI1ojptT5bsrjaGFvrkD7t8KmpknpSYQTJEh8T320MHq7Bc6RFU?= =?us-ascii?Q?1vwfozy7RrseWC37NlImBz3FUhopN2iAv5vSvXMDWqqPiB8kiS6bYESc7n7q?= =?us-ascii?Q?azNOGRHSUpY2qPLmsCWuZ3//9lOULHmSaCP5cgeKHzbdl0alYNMV5RV53p+u?= =?us-ascii?Q?z4ZW/dEoPbUYRzUELsxvNgD2Y8IJ3r2FAo0CSSCE4bGv3Xy/50TgWmPtDs/8?= =?us-ascii?Q?mPROr1eOvrPLIpM/MzSmqTzwnsIAGAR71QzQd41aQuNaRnH0Nq7aNtmH0d6p?= =?us-ascii?Q?wyDcwF4lR7LFdbxUHlJ5lTG8GBV8xzAEjO7pG/Q6L9zcZniH9QnAbcC3KZ6R?= =?us-ascii?Q?aDr0GPROz2lbarX18bjtcolnE4M6bNYBHCqsVOyyIhk4yVfPlqhqj80FZ9df?= =?us-ascii?Q?NYp7UAPuReL/7f7aRGfnHp834ZuQ8F9uoj45WgX5zBPBRiN4gKu2OTIZiS9f?= =?us-ascii?Q?lhYErlFtCmeAlUmA0aFndvwRaUa2AmdF9NjheUK+E1w8Xdps1ZZEBlj0TN4A?= =?us-ascii?Q?SRrFDN0clK307xjtMEWnetiOcPWyJ8PV5HhrmPxeCXs+W8LV1V7b3hG60nrr?= =?us-ascii?Q?4NPsPOWcrvMraE0EI64aES3EkUMtI4PWGPOTalGFKvdByUHJv3h4+ihwsSOd?= =?us-ascii?Q?+OkOq4lai55EQnxFKJUKwUMDsMfb9sjR4zp0gsXUfFlGcwcPKH6bWlyidG8c?= =?us-ascii?Q?aG0rcnrFQHldu9RMV0O6FCheNn6XWrht8SnHGFRiTp3haE9yE/7iqHgyZn2N?= =?us-ascii?Q?ISveK3yQXZitqsd8vsmofYQvv5SSmsd+6ZlU962SdI8e+q2WkYa6uU6OU2Lg?= =?us-ascii?Q?f/32PET/orfBd8gAD8TAu4ruxtdDfh1eulIv8ziKYu/02tGujIK0HhTZoeAl?= =?us-ascii?Q?wmVFeB3t613nlBXzv/x2PEyCTyqnQU4BY2a9zyumQysFlGrreB6kKawgAA3E?= =?us-ascii?Q?opDgBv0FfwgC9neRcQ1XqghrM1sFK/OknNKa6c2lhpEtuWedkDhbscbuU/iT?= =?us-ascii?Q?aCCI/yTfKAW5LWg1/KLmF5un2uTVwG+ZWgiLKewRZzI79h1pRw4K7TeBpj1K?= =?us-ascii?Q?b/bqVyKwGxtqvzxA7neMWRsQIzJ8MyZrsnUFcRSwdvs4kNzcjTOwYBMemBQZ?= =?us-ascii?Q?Hg=3D=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)(10070799003)(366016)(7416014)(1800799024)(376014)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9Y3AVTak4q2YxAAG/oIVf2oCmMKXqkejtE7ZVFm7m3AE0xMbE/n1nx6PP5Ri?= =?us-ascii?Q?MKTI9io7XRqqDyZ0qvjsdr1CbdDKzGNyCvlq4m0pyVH9x37KBmMWbFc9p4Fm?= =?us-ascii?Q?vH2XS0GfNVInn013/bPOAQttcSuiMk0elikm8W6hsaCNciKaMk3PqO3RETKq?= =?us-ascii?Q?vuD9RdmUTTFUm+YoXdTJvRSXPNfTLCzXSV8+AVqwL2NegUY2XGsqfELKAbxi?= =?us-ascii?Q?NSfEC/cz+YYUG4OSXUEMBq7oBG1KuBqn9VE5DJ2nTGKYwBpJTXEj/kfuQ/AN?= =?us-ascii?Q?Vb8kPnva9npFV7mlcrbC1ahN8JbKqEgD14/8lD2JJpLPA2Km3vefsjX1F/JB?= =?us-ascii?Q?BCRN0vNYehEMWOuTw+1CK7ymx1BBg9EUhRnLvVB1tq1qBRdmW/RMde9VwbY3?= =?us-ascii?Q?Hd0KVOTHGEcHFnUx0vfcs9seKYCZEy4s1KAMhhIHXdyzAl2eyudXZwV7HS+C?= =?us-ascii?Q?aLyrofageXA80ZSHqJ9ylTkdX74MyP4flSCKbPmpSQoZhhuSwz2PE4gtGXEB?= =?us-ascii?Q?IC29NtgKChSXsRpywyzbf1qtloAviTgh7a4Xi/u/ryufPibl2/Rw/VUSWkqH?= =?us-ascii?Q?n7JhAv9/pUVBSViReEf+NMjVRW72el2vSmRY3DQVuiKiTw1Pbl3tMBWM36Vb?= =?us-ascii?Q?VerK8qwYG/ruP0TMi0nnTZva/Qdol4s6sFrlwj4lFcwTRkfZSZWLhGMROj//?= =?us-ascii?Q?LuAOOu9PJn8yZjdEaUGt6KaQNhqSpYscaoNHJxklexzcocs+lk5mgrEp8yFL?= =?us-ascii?Q?SIpn99VwI5fX5FFfDDfbUjK8eCar9a8zOXnp05XBSjKnXRkYQ6JKyHx38SC8?= =?us-ascii?Q?7XMbuDW0lIILyC+C8hu0s1yp63J4O9q7EoR5zFqSz4v/Kr5sKqErZu1BSfya?= =?us-ascii?Q?aEqTAy3CAG9+lnYGCTSFbHq60h9cWbLC1icZ0ah/P/MV8pCmSGQ4ecVbweU9?= =?us-ascii?Q?ZsUGChNvF5IkJsoXtaWCbbEWbfe0wQ6aD1iCIhIRMM/nEEaUeI+X30VW+NHN?= =?us-ascii?Q?zTveLjM0DFlRSucP3o8UKsFbanImEl7AgETkubdaCwCp2prdZu/OANsuFMFS?= =?us-ascii?Q?gletTES4KkEaqujzjwpT/YzTKI10kH0mPa57z7KMn56PBNRo8CFAu1u2pt+t?= =?us-ascii?Q?FGD7kh1mSEGv/q6Sy6TX6zpYzTYgvrHSTiAoXoldILVP/fvTh9LiJNgd3qkj?= =?us-ascii?Q?F5JimIGUc1vkSCwtggorqhBWxuv7u9KMCurdQ8M87Cxi7Zrfmvc0COBerZUF?= =?us-ascii?Q?Dryjrj5sFrqtC0pOdwMS8tLKvKf7mrdwyij4wyODE9jIU4oZynEtUs383Gf+?= =?us-ascii?Q?6Si49AuoQ4YyEHxD51jZJTstdLQefaIvQUpSCy4Xa3eEGuMZzxlezj8Tvn/t?= =?us-ascii?Q?97EZArKvehxhkcNm7QREiH0wtthCv2UlV0oMnBFG0m/2KHe/tm2TGGqZxZf6?= =?us-ascii?Q?i9jKWdDLO08+clhN+/4w/rhqmgCQ7qP0y8NgAb36WtIlklPtkuAwCvl5l4Cg?= =?us-ascii?Q?WNcCW7A2c2v+5CXUmkh5nOZEwGJ8hxT2WAnbrhxteqQl3aIvfHEzqlWGx9Sf?= =?us-ascii?Q?HhGZjjfZf43gh/HIQzhnd1NSXsUe7ZR3eH9HDIkwIlf4zZ8fP6fuD6f5JJen?= =?us-ascii?Q?DAQuQKdik3ml3lbp19+WXLvpklYqV3uBCb2j3Xixqjvv1fee8MQGKLMS7EKV?= =?us-ascii?Q?U+61wV4yArA5RNT1+oAvpw5DGpnAzeDw2uX3vQzeEDZSUuI4FGBsdPpfrwt1?= =?us-ascii?Q?VfneX0CSBSOUbpM2To0ZYaNR+G2fmG8PEa2plbd1uXHhg5BgLF5q?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 3206a32e-c831-4892-61c7-08de60cdd216 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2026 13:37:04.2995 (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: mvqaOhYOpEsiCkOdMW/et074PvudrVfjoMEGSBF21hlL/Rz+R4Dz6gaiaT+QFeS45KmYp2Cub2sCgucs2PCCtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYYP286MB5003 Content-Type: text/plain; charset="utf-8" pci_epc_set_bar() may be called multiple times for a BAR when an endpoint controller supports dynamic_inbound_mapping and/or subrange_mapping. Some EPC drivers keep a reference to the struct pci_epf_bar passed to pci_epc_set_bar(), but the documentation does not describe the ownership and lifetime rules for that object (and its submap array). Document that the EPF driver retains ownership of these objects, must keep them valid, and must not modify them after a successful pci_epc_set_bar(). When updating an active mapping, the EPF driver must pass a new pci_epf_bar instance and only free the old one after the update succeeds. Signed-off-by: Koichiro Den --- Documentation/PCI/endpoint/pci-endpoint.rst | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Documentation/PCI/endpoint/pci-endpoint.rst b/Documentation/PC= I/endpoint/pci-endpoint.rst index 4697377adeae..b2f5ad147ed8 100644 --- a/Documentation/PCI/endpoint/pci-endpoint.rst +++ b/Documentation/PCI/endpoint/pci-endpoint.rst @@ -119,6 +119,28 @@ by the PCI endpoint function driver. BAR register or BAR decode on the endpoint while the host still expects the assigned BAR address to remain valid. =20 + The struct pci_epf_bar passed to pci_epc_set_bar() (and the optional + pci_epf_bar.submap array) is owned by the PCI endpoint function driver. + An EPC driver may keep a reference to these objects after + pci_epc_set_bar() returns. Therefore the EPF driver must ensure that: + + * Ownership of the pci_epf_bar object passed to pci_epc_set_bar() + remains with the caller (the EPF driver). The caller is responsible + for ensuring it remains valid (and freeing it when dynamically + allocated). + + * After pci_epc_set_bar() succeeds, the caller must not modify the + contents of the pci_epf_bar object (or its submap array) until a + later successful pci_epc_set_bar() for the same BAR replaces it, or + until pci_epc_clear_bar() succeeds. Otherwise, it could potentially + lead to use-after-free or undefined behavior. + + * If the caller needs to update the mapping for a BAR and calls + pci_epc_set_bar() again, it should use a new pci_epf_bar instance + (and a new submap array, if used). If the call succeeds, the old + instance can then be freed by the caller. If the call fails, the old + instance must remain valid. + * pci_epc_clear_bar() =20 The PCI endpoint function driver should use pci_epc_clear_bar() to reset --=20 2.51.0