From nobody Thu Apr 9 13:33:09 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021130.outbound.protection.outlook.com [52.101.125.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 4C1D83537FD; Fri, 6 Mar 2026 03:15:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772766918; cv=fail; b=uOvzigPeEC5gVL5HpJtYjmw0jva4+z0v2vUPDSHBr0NyOkNjqAQlGSmbRkR8FF5GgjlkWVXkt8Yk9GW/3qR15KT59MTOrnXoxJ08F9Do27hRTB3NIB1+jovffdtorJgFVRY0zBEobWa8fT4i6I3k2AN+zlt1uZko+c664q7x/y8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772766918; c=relaxed/simple; bh=uZLjwyxGooa+oKLVfXH7GYYYyVvP2sz3uPuBXs1v/tI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kVM8wrpweyXcblipUqeYgIiJBMdi6xvr3CA++NA/sRHy3SNnPoIBxWZcRWdUyX9AsgsZxF1IYafroRDYDyI7/mfIE/2PAbI5aPIgbTYByNQuhIRkOXHXc6v4UKIv91PN/Yswf6AP+Q2z/a4iryvnDjoZDnCWPi2+glFTVBmuq5U= 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=FqzkOtgZ; arc=fail smtp.client-ip=52.101.125.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="FqzkOtgZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Vf064nBpd3s4rGM0QxLLwPnXZAikLSr/iVCz3if5ZfJ35TMrGznLzIHfJnpDjMCcSOjlfiCuaTgwFkiqvPpgWfsWXiX7GjxXAb4EZ3vcA4549L7lzoAgY49MiTdCTUriWq26Ittxsq+cbDOAIeBpGfOyA1Cu7Uk75oqa5s6jaGijba4moWkEAUlOEB8tbdvSeuDZtGcfddrcWd1+CuD5WBGwPFIrZmAwWgnQplhzBeh0MpzqMYuShIww3NkAyXKncoUoS/631yxCs3j+kEDLpTZ1UcIqpXRmpXWFlWjxP78Fu9sz5+rLSoB5Sr7zc12zfa9ri+rDfuFYviIQIHdzJA== 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=xvtZIMhRBsDN4tP0nBpSrdpKa4JyCeH0wdJS6xvJBOo=; b=jEMtwLjU910EA5aPKGbELH3IvoiD3Tcp+io6wdbIsUs6ttqAwLKL3mHfCfT9YYqvD1Y2e1DuTYytwPm7Gg6xQhRksPhoihxf7ExzNQ4rGigmNMiuuG2AXB0fa8a3EZnJSX997sGeMwWqBID2EO2tGntJ/hO0er++Oo6LPoJyTyYMo24YACzAbiP+z3Lzb8+Ayqw4R3UOU2SQLrqlkvHyTmuRX+sN2Szq6N72LG17kciiFLF6n/c5p7NTniTdbKyrxNGg7AmnelLsTOwBbuxf6LF5mDL69HdI84PkJVoCghXqDkbg8kW1locNSsYDVYvv9k1vhSREPodNKD5/TB/vxw== 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=xvtZIMhRBsDN4tP0nBpSrdpKa4JyCeH0wdJS6xvJBOo=; b=FqzkOtgZT0J9WpivlVUP+sjk+WcfudqT2nbxU59v6jdv303xC+wo/5kjdXjP8ZDZdWXlXnHvt/PoIZbHDbCGVkeM6p6bRYpX6qDdAYsI+RFS9LZ5chwQmWYL7NqZVUZMNl5sfVeuc0pb/uS/tzr8DSAlNVywVt5mz6AymH3cAVo= 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 OS9P286MB6984.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:414::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 03:15:11 +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.9678.017; Fri, 6 Mar 2026 03:15:11 +0000 From: Koichiro Den To: Jon Mason , Dave Jiang , Allen Hubbe , Manivannan Sadhasivam , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Frank Li , Niklas Cassel Cc: ntb@lists.linux.dev, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Subject: [PATCH v2 1/3] NTB: core: Add .get_dma_dev() callback to ntb_dev_ops Date: Fri, 6 Mar 2026 12:14:41 +0900 Message-ID: <20260306031443.1911860-2-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260306031443.1911860-1-den@valinux.co.jp> References: <20260306031443.1911860-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY4PR01CA0060.jpnprd01.prod.outlook.com (2603:1096:405:370::13) 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_|OS9P286MB6984:EE_ X-MS-Office365-Filtering-Correlation-Id: cd87e326-1dde-4476-539e-08de7b2e93ed X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: SubQ8WY/dpNODDCQ8KBWNKu37EA/jK/JEHr0ghWiiZ1vqmsVNgEokC+hGOxY17ii0MkvGxn2s/JSBXYWt+OcVPlFgkwHXWeDhXHzcCLqOW2GzPjvMRY0dQVFYF+cY06PthKp7yTHc+VUK3zzD00Q9o/QPkfy5JX6nIvZcjyUtUpXn8t0obLiXKWJUNRCk6IEpHcTJnPJnpXWtiAWUB1T+9hIg2zp1ccKI1Q+8x+mjiVJDNekLW9LRwg1JgsvadDF72xQQ6ZeX7TbQqDTXlvejLpnDA1Jfmj0sOdpcjzQadmRY3OufX718GJxbgxkYd2fzr0NmQxG/HOyeiIbneQM0MZhfio4654ralTyLCR3Dm+tDYGZWDLCsTpLkB0SIyee3nCF7O25lrTkvVxK5ggRO8YITovu+bwvclv0xQXOlbBlLofmikKVl3t9pZ1t/yA3aS25Z14b9oDTV3NiPuQ67zegzM7P9moGsKuZrpjcEPs068ynhIY8RNihTEGxIfI7m3XDMcnQR83gm+7zRltHjHg5C7rpxuCdCEMuVy6nJ0E88DW86dD4CfT9bdoyqrbWWoI2WGMVrlaMAZvO094j6IH0OTUmwUiTva0t/VOjpQu6d9n2xyLKMQ/KwrefgFFrYJb1QU9RtfZSHscGhKf51v6L3CqLEh/svwxMBMdImS3dEYdEMOdm/oMjthwtmEJNxsWRKkex+i6xgYLr8acvCZ2W36B+/Q9DLIQriJzZaxw= 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)(1800799024)(376014)(7416014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?H6AwejVKpX6w9v/t3z+rwvjNZfh68l29GB7D6wkngxIHM+zIzaGr7NY6M0Y/?= =?us-ascii?Q?HbY3EFr4I92TT5GaVqdZoGksGzxR+5PjjzC+rqKAIoZNa4XYsgpqfrqnsxtY?= =?us-ascii?Q?imCLR900OA4SwtLji2Mmvo4gQfh2BxYA2aAI5a4IiXlPl83Q0wEOoPcJiDle?= =?us-ascii?Q?ooFD6ED8nLhtx/HmLIkTkEfq1bTuMvPTwztLdCPylfNvWJ1CHMbAhZXrwPb3?= =?us-ascii?Q?kZdklobZEZKSUwHFG5X+cr8lbMEoey+IHqAW+FxYNZ3TKA5XBpTn4VEQigg9?= =?us-ascii?Q?bHW9z4gKb+e5bBVlqW/fSUMqjK/N5VubPzgCuidFs42IWNFgpQRbzJjXaaOA?= =?us-ascii?Q?8LLEERrivdbRANSqjqUSGlSZEI3sgI7UrJaHFKo5MqS4tzLdBuvbklY++dYn?= =?us-ascii?Q?HTePcII+pFqHe5jtMO6jPOUOw2ufhz64dtaoXt889Jo5VjXldjVaXMuV6/zC?= =?us-ascii?Q?weGeCrmU/nJ6wtqxjl1f1MRUJzSuogUh+qbGAkXpnFZaMYxHMK+L/HQz6RO6?= =?us-ascii?Q?WtmxGX17eWG25kjwsL2QS+ZrJqXLd7aBUhhJyJgi9hqqx+s/7FzFj6F1Uwde?= =?us-ascii?Q?G6mW9GDk20jw0d6OKRvok1qkoISMZf/oWDF9OajlP8CM9Mbt/z0Jn2LlOvtX?= =?us-ascii?Q?xO9dKo3LD1K03kUVzMSbVDEPDgB1vzJvPFx03N374Sh8tSAycCwbYe8UzT90?= =?us-ascii?Q?0y6HsSJMqTAQEbvw1ccN/CYtot8e5YSvJfgwuN7Nl/L6jIn5VtajiYpIQiUu?= =?us-ascii?Q?RJNrAAtuA/Uz0qc6Vx3az/qpDv3d6mapzVPChw/46/TuGwuWXol3I0fJNkKC?= =?us-ascii?Q?9S/V36SPOaFnL6tWJR/m0lWgjr91LYhnBEdGviegFhxhxe1UKk1RnR+Jc/4m?= =?us-ascii?Q?3ar5xxSERqNJahGUKl/PS4gpYFa3CUfc/jZIYO8yfsOygXCf/U4Q/OeH67UY?= =?us-ascii?Q?5ctGFYz6x0YKInUG8tmm5yZZly+EJNI14IM8TrEt4pMJzXez8Xc1MwKsD0xM?= =?us-ascii?Q?XNVb68gOKo+Xeg/Wv7WTZdzUf0tI1U5z18kCDV/dpc4qhJA1OxPjeLxCUydB?= =?us-ascii?Q?ZP+QW/Sw8nUtdHD2/Swv+LE1MCjD5BWfvacslu7EYA2NxVMatmnMJxUgprLH?= =?us-ascii?Q?/CfzOUVqJ/g+pU/K1BNAGw/gz2mQjKp5+TaJsV0W81l5TzMMaD+KoqfnX42W?= =?us-ascii?Q?uZ64SibHGL58HsRpg77UjJA1GkIaXgKvEPXuLYs/uTeSmbGCqTL7oPUAbjLV?= =?us-ascii?Q?itQfuB3Qiza2rYkybLCsg9sfwO2bKRKRuLjqVQTs/NNpBGH+VFEPKWc4legh?= =?us-ascii?Q?yr+JGkRWC5zLciAbYzOlZX8TuwvldMyFmbBWyaNfssAapqclZvVrFoXHYmmU?= =?us-ascii?Q?PL9yGdnkDsFPVUJofl/oVDzm+ZJBCEZQ6p6UVEOgjFju9ah6Y5j68bz+3bPJ?= =?us-ascii?Q?L5Qq5UmxVVytca9uJZXML5zoOWL1Q2wyWW9Mr25cZrJNqv1s6pPeUUbGeuM9?= =?us-ascii?Q?A/hCEyCXbCWSbZLUF6gmt4hcMteGus6MqYQaWzn3/xHgM1Ym/h7nbiQZPyHp?= =?us-ascii?Q?0NW7RfArzGhlZiD99OfvuNoQj4dr7hIVAL4pFti382t9Oem62IpQ7fS+ThB+?= =?us-ascii?Q?phz9tce7ck6TbY2qabo9xE5Llxowupba3LJswgiD1f18l0oSpOZEKqTsA3xH?= =?us-ascii?Q?Y+af40HLm48G99ysTgURpKpkXHKrAHn8MCPbR1fzISY/a6oEcTPgYE1ce1cy?= =?us-ascii?Q?SWmbp5hRf6uVE+SWCJXvS89NoxXHBkS/F1QRQvqFGl/5FG8EonHW?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: cd87e326-1dde-4476-539e-08de7b2e93ed X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 03:15:11.4361 (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: ps4iH1VEqU/99mRLNu+BtzdZ+Wu1K5bTIDeMksctBSxuqfKe9FpJcIgUWYL+Zzz2kK1zZs4YFXil24sAOeY1Tw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB6984 Content-Type: text/plain; charset="utf-8" Some NTB implementations are backed by a PCI function that is not the right struct device to use with DMA API helpers (e.g. due to IOMMU topology, or because the NTB device is virtual). Add an optional .get_dma_dev() callback to struct ntb_dev_ops and provide a helper, ntb_get_dma_dev(), so NTB clients can use the appropriate struct device for DMA allocations and mappings. If the callback is not implemented, ntb_get_dma_dev() returns the current default (ntb->dev.parent). Drivers that implement .get_dma_dev() must return a non-NULL device. Suggested-by: Frank Li Reviewed-by: Dave Jiang Signed-off-by: Koichiro Den --- include/linux/ntb.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/linux/ntb.h b/include/linux/ntb.h index 8ff9d663096b..99209f957eb9 100644 --- a/include/linux/ntb.h +++ b/include/linux/ntb.h @@ -256,6 +256,7 @@ static inline int ntb_ctx_ops_is_valid(const struct ntb= _ctx_ops *ops) * @msg_clear_mask: See ntb_msg_clear_mask(). * @msg_read: See ntb_msg_read(). * @peer_msg_write: See ntb_peer_msg_write(). + * @get_dma_dev: See ntb_get_dma_dev(). */ struct ntb_dev_ops { int (*port_number)(struct ntb_dev *ntb); @@ -329,6 +330,7 @@ struct ntb_dev_ops { int (*msg_clear_mask)(struct ntb_dev *ntb, u64 mask_bits); u32 (*msg_read)(struct ntb_dev *ntb, int *pidx, int midx); int (*peer_msg_write)(struct ntb_dev *ntb, int pidx, int midx, u32 msg); + struct device *(*get_dma_dev)(struct ntb_dev *ntb); }; =20 static inline int ntb_dev_ops_is_valid(const struct ntb_dev_ops *ops) @@ -391,6 +393,8 @@ static inline int ntb_dev_ops_is_valid(const struct ntb= _dev_ops *ops) /* !ops->msg_clear_mask =3D=3D !ops->msg_count && */ !ops->msg_read =3D=3D !ops->msg_count && !ops->peer_msg_write =3D=3D !ops->msg_count && + + /* ops->get_dma_dev is optional */ 1; } =20 @@ -1563,6 +1567,25 @@ static inline int ntb_peer_msg_write(struct ntb_dev = *ntb, int pidx, int midx, return ntb->ops->peer_msg_write(ntb, pidx, midx, msg); } =20 +/** + * ntb_get_dma_dev() - get the device to use for DMA allocations/mappings + * @ntb: NTB device context. + * + * Return a struct device suitable for DMA API allocations and mappings. + * This is typically the parent of the NTB device, but may be overridden b= y a + * driver by implementing .get_dma_dev(). + * Drivers that implement .get_dma_dev() must return a non-NULL pointer. + * + * Return: device pointer to use for DMA operations. + */ +static inline struct device *ntb_get_dma_dev(struct ntb_dev *ntb) +{ + if (!ntb->ops->get_dma_dev) + return ntb->dev.parent; + + return ntb->ops->get_dma_dev(ntb); +} + /** * ntb_peer_resource_idx() - get a resource index for a given peer idx * @ntb: NTB device context. --=20 2.51.0 From nobody Thu Apr 9 13:33:09 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021130.outbound.protection.outlook.com [52.101.125.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 C55302AE78; Fri, 6 Mar 2026 03:15:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772766920; cv=fail; b=doKLBM92VWMox3JQ+SZ8+AuG2jNijD5v/j2ZdougjHQLnS6Q9klkBhn2LngzGIPHQ5Txr+QewENSsWmIPOa61hWxFUB5o1IYMdYBEsJn8U4IXyfY2cGDTO3vOU9zgglKllwid6G5Sc5P6x6NobawjuSD9wgv+f+O3cNrDTzqATM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772766920; c=relaxed/simple; bh=ipyVibxU6P27bePTdFw4xhJHEbo6Ya7OQM+9Vn9gh/g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Xz51UmHQamB3mUWyhJ6o+qNgADqcWJzyRnQlEqLr8F4TVXF0QQMqUlvcsDoy00mzLooL6O4viO9VsKIhJL/HfgpDjIoiYCn/qXn48KpsYVLhoLZdFCnyUR6Xxb0GhhP4ZfjWreQ21i79ctJpPw7qZaEtd53AjqoBpSUwRCH3+HQ= 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=aNzgPMPv; arc=fail smtp.client-ip=52.101.125.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="aNzgPMPv" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g+Wfi4ck40qQh5k0qp3Qlao4zYcDcGLibpDjTj0OI8dPKuJVq/5NfRv9lUaxvKgmugKgK6R9QHfzwEBmH869RQqPCF3Mr/5fMyGYF6K9RD0GG7Oo/dhaNP0MZoJ4klYRi+uWl7VNTr04PK75tjKb2XT3DA3tH17fFYMBUxXWNpcl0s51ci5rmcdNhdslGcs20v+ifH0o8jJXl8wZrvzPe7NFCxaJ18JAxslT3eqgc7DEugk6w2GKN3setyO/3p43vmTKGlZ3+hJfdOjXcPHkwg6aHlyraxk7Ne2a2CukwGpyds3Ec9+PcrnLJFMfljxdbYfnoBFUma3GZmuRb85gvg== 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=NJbqzoJmov0AWuu+FGf9TercWH4YqrtSpL6t3+td3SQ=; b=HYNKi/BN2zxIII/ooz+V6EM06Gh9AKRo0GCBzoVMbmK2Tip5eL3dpk10s7xkDTr5AJ18XzULu8C9QA0vkOvfzh279d/IbACV+I9BEdI2UGKAwtvw9eNRlZ38ymZwr5pWqSpeQLz7t4uLGGSqLZFcoqpl7VtwfCSVyunBoV/4rX23SX0Vaq9qJzwPwvDC08WAhJixdhoMowT5mitACRAggZJ3NTlvub7aZHd6+M+MZAQU8uU60LKYbPPDfSFuh0nDHD46Qt2342zck0b3RMmTaMWVQNhyL5i7Sojolqq8LbvIBv2qLjurhjUgZn25Cs9AWCw36lMy21uRQGLlZLjkRw== 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=NJbqzoJmov0AWuu+FGf9TercWH4YqrtSpL6t3+td3SQ=; b=aNzgPMPv8oXBn6A9c7gQfEKVIDT2/fFbcAvqa4OVFfGOGLD0CmCi514rpZJ92j4bSiD4bm9J7QyA4QgKptzS0sddoKORDDLYPtBSiVVwMdCwL+3CkpyuJaeQd8zSXtNM8e8muteIKUzr5AXLbFi8hfeSZVNEz/a0V6v/UF6kfos= 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 OS9P286MB6984.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:414::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 03:15:12 +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.9678.017; Fri, 6 Mar 2026 03:15:12 +0000 From: Koichiro Den To: Jon Mason , Dave Jiang , Allen Hubbe , Manivannan Sadhasivam , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Frank Li , Niklas Cassel Cc: ntb@lists.linux.dev, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Subject: [PATCH v2 2/3] NTB: ntb_transport: Use ntb_get_dma_dev() for DMA buffers Date: Fri, 6 Mar 2026 12:14:42 +0900 Message-ID: <20260306031443.1911860-3-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260306031443.1911860-1-den@valinux.co.jp> References: <20260306031443.1911860-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYXPR01CA0044.jpnprd01.prod.outlook.com (2603:1096:403:a::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_|OS9P286MB6984:EE_ X-MS-Office365-Filtering-Correlation-Id: c86b88ec-8b98-43dd-19a9-08de7b2e94be X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: S3EnfgfA8XqerPMFajZ3r9Zq/27zLJ8sdTh3+f1N/9jc+9TeQPtjl9hSfDLUHOZPder3WWQnGmYQgW6wwhdnUuztHagnqK2tmtgbBi2gYAbbbFBBttndNX3yVm2nUtR9AoOCm9wMgHvJt8nqyE3KuE5zqNGmd/eSVW63ccCJKpfnGS6RyOyMCYpuZQkVMIwfmRHc2OtlfISNvYDSgXUrCbDAGb5OxaV8MafYW8GtadTVLyYEKEXPtwd6beWeQ7425VUA44T6IotVKI28fIWEqMBhbkmgiSCnUXSFqMjOA4U7Bq/utdYAPYXhZtmTOX52VjKhGX4muf59nooKCWUYA9QX0OHmr0q4wxsOpNlX/u2ux3meoQ8c3bLIKRYszyeYAeppsDLeqbLxudvl79CsEWvboEIY65jVSsz47NM+LnwW2hq922Qaz9ApiJjIIoGPHKiL9jslJYxnMavFzd5yMlCYZMGaNnFAS8UxGCTSWplJJMy0SDf+Nkk/JseEeI2f9N5X4+bo0eRxHG9E3lwjbrHn8jOffl5H8oNlAvy08/6sKTU7eyFVG4kGXwu40mWfwW99QNbfqbZ8m9Kk8w0ppBqPUL9GawyfhGNVzvnxWIuwmGDVBtmmNZ7Q2qgCyjPR/Jb7Ks1ijyRZBZaL1hdMKNzfc7be7Piwdp2u+nAw+d/u+3Lv1eK5cSUa/7zafZfMMiXe2X06OQwJuVu4DkopG1zFADo/7GlnF0ys66hF4+k= 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)(1800799024)(376014)(7416014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BJdyghsbZ46gIQKMFYeQgECX6tzQ66UZddDHH9182WK7+/L5e8KrEHECb5Ir?= =?us-ascii?Q?yOmG8TQdwjXJroOj2xYA35AZPI9xyF+s9AcBm2Bg3sMkgtRm36A2Zze13BRl?= =?us-ascii?Q?vXhdN4Y360sNMCWyMm+n8DJkS6rVVIb3SiTrpccJ7bLylSkdIlG1znP5E9J6?= =?us-ascii?Q?OIYjiyqdN8rGmDvg3a+w/Ts1qonbfxIz0brjmhdeD7STD/ZWQUHe7YcFEkQz?= =?us-ascii?Q?f4WGnnvsrtqYtU62fVaZ/jhgkqHGbWvJnH4EiEXJEr3n+ur5fM7epDoG80HA?= =?us-ascii?Q?NQ6pkVlw5Yp56kD1O8ZHB0ysFJpQwQdU36QInpTwIBxfnT+s8JdmxkA2lFt6?= =?us-ascii?Q?47uqMZzCZocEQdPO6dYWX16aqTX3H6JiohI2v2I4zfZT700pdWoWQTmsRjOV?= =?us-ascii?Q?OVS6NRNf0DgrprZr47c8DBrm2JhoOqRtoW/KJZga8V8NxIVwJ3E/w8QcArZr?= =?us-ascii?Q?bl4pHYDdukBSb36B4DnRGDqlj7GtjDy/XqpmNsEr7vk4zS7oxqPYgZA+auA1?= =?us-ascii?Q?TXHnc61gYw69OSoqNA/1hSJv9cBHlUmdOU3KGJG+92Ewr6nOT19ACdrrKd1c?= =?us-ascii?Q?7kjwnZUDtJPtUJX2uZoOroGrQhuQFjTqBduZ8u+v6NWemt6Ajrf918Pjuh9G?= =?us-ascii?Q?H7L2YD2lnL9pJlbI2Iba0LcD2r1u/qLKe2HeLqvpHMbkAanK24xRiugukwi4?= =?us-ascii?Q?dCh+tqwr/fx/6gjzX6VEKkCADYvszGUor5K5PrF4jOf+6jvKZ8uam2HGpBPw?= =?us-ascii?Q?nh+/BGZH456bmfFisJpEvX8+/CjvvljHXPMqSWXIqnPFa7Oig4suMJrZGcfi?= =?us-ascii?Q?xUUQ8X227OJDJz+6tYsV4iXvNT5MF2tBpqjlE9EO9wvz2skU+wOLmnB+xDHx?= =?us-ascii?Q?5ReuS17CUagcTD4lN3Vn+QJUOHga7G0maixlbP1eXjCEe1VUrPWdHO3PxfNd?= =?us-ascii?Q?p9P2hQsYSZHoLZfZHkYlNPYMg3Hq8P3p+c6nMndhcUua0GircmD7oJ568zGn?= =?us-ascii?Q?fug2G7K4UnOAlFnYQhzjKxDSjmcOQvvVMtCuXj1tnzkkKR00w40ta8ijLF92?= =?us-ascii?Q?hyLIVAgco0clh+h/Q/MD3ut6/APEtdcQKgXvH7leUT4slqdIDAEfHr2oJafE?= =?us-ascii?Q?zfLpBE0k278B09DDeRSqDYAiotnQygVLLwWH1eMESMCdB/42UKcGlbfXk/vQ?= =?us-ascii?Q?6OWtxOcT7DREk3TlIf/ZUIPEa4oh37ih28o9OiQGrbSPDlBSJK3/ux5m3r33?= =?us-ascii?Q?Qbj22NrT12J/6omoIs6TwHau90wstFtPynErw+BE2yIG2kvkaXHVjHESamny?= =?us-ascii?Q?iRIBSdrIOcEynYc08nK59OQ2Dh7uy/0ueX/kPiDG5su5imlFlRvEefwL4WUA?= =?us-ascii?Q?R1MNOhtiAqiMsmDxNCOr9qT67TBnAUC0zWlc6/usX2UA4kCrjON0OvGCRrFB?= =?us-ascii?Q?Qrc2E9USdpfIkIZhzThbt0zWanP7hSHmDwioQiKguUwMwKL8SFs8YLmqipv1?= =?us-ascii?Q?ilp+RcOesqb8H533vCXQ8Y3mTzNUh5CG+WbUm2Swak8mJTp66NRf7AFONOk/?= =?us-ascii?Q?xrsW/fbjmxPhOoJi+T8ka4rkgGg/CpEUtkIKsjnRWXBYV0kWjvcqBDpzzRwf?= =?us-ascii?Q?DaEO+iaVUh/SpAaFYpncMStR2MqVu+gEu5gomXkHXuMMOqbIqOL58DwMFsnw?= =?us-ascii?Q?pN8UVV8f6bnXjwoPA5lq/Aldfgeu6zsHSyco/1xwjvO9noHrKeUq4I/Nqyy8?= =?us-ascii?Q?bRGK0YxmcwDmT+xTrfBF1swiu04HZfPiIrMkBs41rIu8Yk5l8eAc?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: c86b88ec-8b98-43dd-19a9-08de7b2e94be X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 03:15:12.8181 (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: /iOhtK/S7tf+1IUPXzUn9fBUvsWRx0GRAFHMYlg8uzQao6df1usK/df0OoKveTl7OGdbigT7xk5fg+aOkX6wXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB6984 Content-Type: text/plain; charset="utf-8" ntb_transport currently uses ndev->pdev->dev for coherent allocations and frees. Switch the coherent buffer allocation/free paths to use ntb_get_dma_dev(), so ntb_transport can work with NTB implementations where the NTB PCI function is not the right device to use for DMA mappings. Suggested-by: Frank Li Reviewed-by: Dave Jiang Signed-off-by: Koichiro Den --- drivers/ntb/ntb_transport.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/ntb/ntb_transport.c b/drivers/ntb/ntb_transport.c index 78e02fe6caba..a67cc26e47b9 100644 --- a/drivers/ntb/ntb_transport.c +++ b/drivers/ntb/ntb_transport.c @@ -759,13 +759,13 @@ static void ntb_transport_msi_desc_changed(void *data) static void ntb_free_mw(struct ntb_transport_ctx *nt, int num_mw) { struct ntb_transport_mw *mw =3D &nt->mw_vec[num_mw]; - struct pci_dev *pdev =3D nt->ndev->pdev; + struct device *dma_dev =3D ntb_get_dma_dev(nt->ndev); =20 if (!mw->virt_addr) return; =20 ntb_mw_clear_trans(nt->ndev, PIDX, num_mw); - dma_free_coherent(&pdev->dev, mw->alloc_size, + dma_free_coherent(dma_dev, mw->alloc_size, mw->alloc_addr, mw->dma_addr); mw->xlat_size =3D 0; mw->buff_size =3D 0; @@ -835,7 +835,7 @@ static int ntb_set_mw(struct ntb_transport_ctx *nt, int= num_mw, resource_size_t size) { struct ntb_transport_mw *mw =3D &nt->mw_vec[num_mw]; - struct pci_dev *pdev =3D nt->ndev->pdev; + struct device *dma_dev =3D ntb_get_dma_dev(nt->ndev); size_t xlat_size, buff_size; resource_size_t xlat_align; resource_size_t xlat_align_size; @@ -864,12 +864,12 @@ static int ntb_set_mw(struct ntb_transport_ctx *nt, i= nt num_mw, mw->buff_size =3D buff_size; mw->alloc_size =3D buff_size; =20 - rc =3D ntb_alloc_mw_buffer(mw, &pdev->dev, xlat_align); + rc =3D ntb_alloc_mw_buffer(mw, dma_dev, xlat_align); if (rc) { mw->alloc_size *=3D 2; - rc =3D ntb_alloc_mw_buffer(mw, &pdev->dev, xlat_align); + rc =3D ntb_alloc_mw_buffer(mw, dma_dev, xlat_align); if (rc) { - dev_err(&pdev->dev, + dev_err(dma_dev, "Unable to alloc aligned MW buff\n"); mw->xlat_size =3D 0; mw->buff_size =3D 0; @@ -882,7 +882,7 @@ static int ntb_set_mw(struct ntb_transport_ctx *nt, int= num_mw, rc =3D ntb_mw_set_trans(nt->ndev, PIDX, num_mw, mw->dma_addr, mw->xlat_size); if (rc) { - dev_err(&pdev->dev, "Unable to set mw%d translation", num_mw); + dev_err(dma_dev, "Unable to set mw%d translation", num_mw); ntb_free_mw(nt, num_mw); return -EIO; } --=20 2.51.0 From nobody Thu Apr 9 13:33:09 2026 Received: from TYVP286CU001.outbound.protection.outlook.com (mail-japaneastazon11021130.outbound.protection.outlook.com [52.101.125.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 B3DFB366069; Fri, 6 Mar 2026 03:15:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.125.130 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772766922; cv=fail; b=i0SJyOmA51BrSNQKWBxewI0OSNoSsC3mwF9V/YNM580+sSPVY2+O/BKGUz4fj/Hh44wIquZdtKwCXGulhgAbwfq6eADXalSySD6Hj0TJa4BLyZ5gYTKH16E5MwPc/0xSY2xKTSh9Cpp0eMVwSgt1vGbAbWisopBLwi4PR40fmHs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772766922; c=relaxed/simple; bh=MHK+zvqDU3APKeI4wCxpf6sMm/k0c0MFFF7Rnmdbhp0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eqX973jrned9QPx9JrIaAuxAEH3dpraVk7+LWhZGHd/LmzapeayWPuAdoWNjPvdJQy7zLuFzKE/gh+les4XcbVjHSFCoIr/DmZenGQYbAozDnfvdzKpB2xCNxfxardlBQWGw91BNrqaLrX7I6dCpJvGnLFSaeu8A2FUtjB9+SpA= 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=JhAt8NNt; arc=fail smtp.client-ip=52.101.125.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="JhAt8NNt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VDq0U00AthwmPy1kDCANR0dVLbm2KNbnz9Llwxshf6PsFiowYG574PVB3OZpYDn85vuaLoReqFY2a7pAE5W6RZ8nY1UTN05kip6Syr3FtyDzX/9tVz1aUxpeeAsDGejg9PT4ax32BcCquD3k1U3BEsCmUYVXfL9uLCeDgd7SKbUiXyJtzu9f/B5LF0JaJ3IQziSfZwzb1f1sbLfnPzCEoPfn+8rAEUvEGO5lurLcko11wswVY5drdxbnNSHDBfvSyj24MuSltWAZVM5pvjGxy5KZ2/jZNepI7tv5/amv869s7oq+KlYGf+BoG3oRh1p1DAgKd/ghn2vekS9uvTz5gw== 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=oobfy4EnWMAYmgrM6JidYGr0ub3YyN/1vNCjSeoz4aA=; b=tEIyVaLJsSHlziH2zhWMEHY7Rxx+13dSvERIrMdnpfyh4Ox6Y2gppmMgEEJAhkSMyK8csePQ6f35nFt/7oAFNIfUcxYNOCFL7irJTclfdCljfU8oTOFmwTP4WibqYyaxKIEzgFc/MayUlhFrdXIH9k2jO64e7aAvxtxqKotsXmFinbNnKL74TkS/a6uH6iKJP/QiThLc5bHkP5ZBj7lDk9z3Ojak+TN/HlQoNDlYdH+Rdva27T+ut2D9HUE2omgP9eujaZwFTHTHS1eVluVEIxMi6dTCYRcpgVtcnxbqoVuMyRu2MEmANRke0wGxRmL5Spm/U610xWEF+DDJSlrAZg== 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=oobfy4EnWMAYmgrM6JidYGr0ub3YyN/1vNCjSeoz4aA=; b=JhAt8NNt9svvk38rMaQcVzDPTTXiLKnHQ4IyVqSKMuFqiAc0SXR2OjHBTvfOryYcKinabUJSWUESyOcHvXrdfkzn6YE8BovesP+ychvSta4Hzo3eo4c78++0Aao6zEGE0XUJDokeVhDF6puBULwMJ7WNvTCxZXuPgr1BE7qVgVU= 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 OS9P286MB6984.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:414::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 03:15:13 +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.9678.017; Fri, 6 Mar 2026 03:15:13 +0000 From: Koichiro Den To: Jon Mason , Dave Jiang , Allen Hubbe , Manivannan Sadhasivam , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Frank Li , Niklas Cassel Cc: ntb@lists.linux.dev, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org Subject: [PATCH v2 3/3] PCI: endpoint: pci-epf-vntb: Implement .get_dma_dev() Date: Fri, 6 Mar 2026 12:14:43 +0900 Message-ID: <20260306031443.1911860-4-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260306031443.1911860-1-den@valinux.co.jp> References: <20260306031443.1911860-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0298.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c8::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_|OS9P286MB6984:EE_ X-MS-Office365-Filtering-Correlation-Id: dbf37f06-ea49-499f-e82c-08de7b2e9544 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|10070799003|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: ZkSzdoFoqhHNeB8y6eVSwAc0VprXW7GF5lzu/3D7y8/lsjFGibWvW3i4ZOJFHAuTe8dUhD5eVZm4cGCUNV/tvWlHPaOeAh02Em087R5gOdXV8gPCehi34sJ0Wr1umgOel7l2qdO5iO8gD6prli16wNpaXtU37KWu3xIix+fxAohsn2PacB2grVEK82+I8UQd9RCH04z4da4gjSj2MlXdptP1TchjzW7BqStfHaf9HuKzNky7s//gQN54U0EkWCBqTrXl5zPoDMsuDH751vrTxxeX0dj54qJHQF984dQ5NZBlrbLtI2cFdyb/oKSt0LyNafbAP/4jD+Sj5iABIozjndqPjA/7UvJg8SZK0abxbH6jHSBKfMfSFij1xCmtLBX7PtV2E9R/1akTnodRuOe02vqIRsP2QLnonqelikVmk/w4VRC7YRyJUCHl+N762GG8PHx9/+qlwNHEOVhDEtIfN4sALD8UyJKoNdPHb9AYOelIZl2I8i+NJb/qOk3jSNJIuqpd1l3fa06wb0GppRfQ3nnXyfbcpOixaS83IekzFGE1uSDZ9NW7ptTxTq+5SXuzQkqY6EWZVDcu4VjMlUnChAJvdXSWLV6cOIQzpMudj0d10Eg1UTTy7Qa8ayB1MiLfffj6/eGYwru342ZY6momogjo22Lof7zLD3c0L9veFQtnP7W9Ztt+o1IXIJfJ3UdMqB/FFmOkuBIKd6c+k8PjUq5xhViQGc3Q6kRhmEdQnFU= 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)(1800799024)(376014)(7416014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HCxDojCy76ma9FtYl8oALEiE2bTe9++LyMwgc5yum2hxkx27m5YwQKwRXWZJ?= =?us-ascii?Q?B1OyArrlmyvMKJSby7nMU115yi9g+TXykw4iGibRbNMkjerjA4qGdbKzzmF1?= =?us-ascii?Q?4JuRruuds1iRzQcljx2UK+G6+AKw5nQgvT2LUQHAV5HcwCnpJDHz83kFF48o?= =?us-ascii?Q?61WNjkYRdv+Yat8TwoV4ydk5RlDKABMLy002x6Un3wppG9vfBV1oe6qxzwO3?= =?us-ascii?Q?QxdTzUpymQTLm44lxBPihQRNVAQMNbSzXDBQftyT/W55O66rOKTblVrkIboy?= =?us-ascii?Q?VpjCoq7XeqZ5uVFxQfV9+RNvaImrED5kFc5OGfV781dYKZpZONrc0Xt1atxn?= =?us-ascii?Q?a03xqdY0NOUAxusmbATHfaRQvvvEu50bdQdc1iKVV+yspL6579RnnYMk+ctT?= =?us-ascii?Q?xodIymBpZEW5SyS+mKuYMuycIk9x3xLiukJ0zI2gxscZhO2L1eLwEaIxLEM8?= =?us-ascii?Q?r6gIcpvRkyG/nY0wcIo0l4/N4nfyb4cytd1lPZLWPByjjZJFjT+vfqlQIryn?= =?us-ascii?Q?j3hjvW44l30bzD0NlPO7uX4kjCb5E64KvuDrUZG0GONhTWASuvUZsL8b3Lvp?= =?us-ascii?Q?cGxo57JOV2+cJ9AjBBe6LKe477PkDb5Vw6gEfUtoaQMTAFmqg2V5xLfh6gce?= =?us-ascii?Q?zr1dYYWwcxtf5UHYMxoUtcKsBXZ5fK2zISiY8q+aP3hHKB94+zHL440pZ/Sh?= =?us-ascii?Q?VQGj1sZgsMlLrAr4xPj/Fh4GxdEt2AsuNcPs7VZ0NSC1GHU0RdnGtTaHWAI9?= =?us-ascii?Q?Ues9E1Sj5Y/Ggj9xTpeXExonZpJ11uekz53EVDV5RH4La0r95Q0NwPVD7gpY?= =?us-ascii?Q?v44kQUWoB92vKzwHWRDyPS/czjHRKX0r5/PckdKeJ6YCz5GsULIkfmUWMPcc?= =?us-ascii?Q?uJwjr/tsMOY1X4q5OHuA3K6d4Rel8KRG8SdixFsFTcbsu4yysBOur7OYbDlo?= =?us-ascii?Q?NmonOs6pYMtiR15jeElPAWjAXfnF0gsDzAC6AA8EVBXSaNPzWiTCNoqdsaKg?= =?us-ascii?Q?RWrLKY33Pv7preEpJsKXD4gYR1y4mkIvIAfEpW75bg4j3NQYM5ASL5O0BR4p?= =?us-ascii?Q?J3dqni5bCa6RGEbHlgJojuif26QmCz8obHmo1/QEtQsgAuv7aU73+PldsJXz?= =?us-ascii?Q?enCtTu925cVdwWoUkBunnlCOsiNguo7fSt83tXt9GFzMDqQx//5AoncMSpqa?= =?us-ascii?Q?wazF9+/8ppIUXKFolNHuEdKxBQl76J5gAZXu10trSmGBskL6fy0hBx42UQHH?= =?us-ascii?Q?XuD+l2gEJIzlPgtxyrudIVJv4lT5Qs3LTM+erFsxSnBOdqBLJO/YcoI1tjsb?= =?us-ascii?Q?UeekCKYCXXk3Ci6AO0dk2uCihttx9USWrZFSPUFX13hJzghKIiKnbKDrkoOz?= =?us-ascii?Q?rH9DZ+LVO7XlciU5EGuIsmo77HpXZXMtVGddiR+QnegH5xNuZBsjFIvg6va7?= =?us-ascii?Q?zVrGGTNAcuIytH1cmu0cu2zVXJt2kgYQvw0rqNcmJQJceNUojd/q17NAa19c?= =?us-ascii?Q?xWG2nGYXaKuuChsxsIS2mb23BRQvTaQqctRLzndaf2sg48uF9ELZyvOj2fV0?= =?us-ascii?Q?8/Tq/SSjUUjHwSFD+zUKwHH14Ru6q6YxNI/BR0+4xdS9ZuwqVShSNeGgL3Bf?= =?us-ascii?Q?8i1sHORQHYiqIdT8b4H2tpze5tNkvt6aphjWx8kcFTxgq/h/urQX5UjPu1f6?= =?us-ascii?Q?8X7aHbikwiaLfoXILh6+U+ljNPQWDEJnnUExIwVdm5H3hFZ2Fc7vVDLTCzI7?= =?us-ascii?Q?8h1HSeBmGAuS2fHaBHkT9K267JJXayk17GRYWfHr7t91/b1V6kek?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: dbf37f06-ea49-499f-e82c-08de7b2e9544 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 03:15:13.6698 (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: 73j3jiq5wXFwrgVrnpcK1KV2+4KJ8AsKXre/EKXoqvAzE3G0V6XXrFOJMq/beL4NzGEEM3+5teEysXkd8Ta0Yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS9P286MB6984 Content-Type: text/plain; charset="utf-8" When vNTB is used as a PCI endpoint function, the NTB device is backed by a virtual PCI function. For DMA API allocations and mappings, NTB clients must use the device that is associated with the IOMMU domain. Implement ntb_dev_ops->get_dma_dev() for pci-epf-vntb and return the EPC parent device. Suggested-by: Frank Li Signed-off-by: Koichiro Den Reviewed-by: Dave Jiang --- drivers/pci/endpoint/functions/pci-epf-vntb.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/pci/endpoint/functions/pci-epf-vntb.c b/drivers/pci/en= dpoint/functions/pci-epf-vntb.c index 20a400e83439..e5433404f573 100644 --- a/drivers/pci/endpoint/functions/pci-epf-vntb.c +++ b/drivers/pci/endpoint/functions/pci-epf-vntb.c @@ -1436,6 +1436,14 @@ static int vntb_epf_link_disable(struct ntb_dev *ntb) return 0; } =20 +static struct device *vntb_epf_get_dma_dev(struct ntb_dev *ndev) +{ + struct epf_ntb *ntb =3D ntb_ndev(ndev); + struct pci_epc *epc =3D ntb->epf->epc; + + return epc->dev.parent; +} + static const struct ntb_dev_ops vntb_epf_ops =3D { .mw_count =3D vntb_epf_mw_count, .spad_count =3D vntb_epf_spad_count, @@ -1457,6 +1465,7 @@ static const struct ntb_dev_ops vntb_epf_ops =3D { .db_clear_mask =3D vntb_epf_db_clear_mask, .db_clear =3D vntb_epf_db_clear, .link_disable =3D vntb_epf_link_disable, + .get_dma_dev =3D vntb_epf_get_dma_dev, }; =20 static int pci_vntb_probe(struct pci_dev *pdev, const struct pci_device_id= *id) --=20 2.51.0