From patchwork Mon Aug 26 18:29:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Tu X-Patchwork-Id: 1976972 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WszkG6TJ7z1yXd for ; Tue, 27 Aug 2024 04:30:14 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1sieTe-0001Mk-D0; Mon, 26 Aug 2024 18:30:06 +0000 Received: from mail-dm6nam10on2062.outbound.protection.outlook.com ([40.107.93.62] helo=NAM10-DM6-obe.outbound.protection.outlook.com) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1sieTb-0001Hj-CJ for kernel-team@lists.ubuntu.com; Mon, 26 Aug 2024 18:30:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SInoIX2IYgfObb2P+S/mfB+VAhvTfCY79uXIUPVOrIITGf0tMD6ggsi4MVehfKomli8mqkF4XQ+0yx7GP2Ee4I/espM4Leoe6OxTzdJ/onoaD1ow4zHKKjGrhUEyTQYpfaU6HCFiv53BHxmcRvej2dle6sizdU/u1z+SH1BXsSl4KTLp4pEwYTclu8di8r+Dp5h/5MPKdABjKVCQMh6uIoJysD7ekLd+eS1kR/3kqJLAFgyVS6Oo/ULJX49KwS/c+0wey0fXFhN8GZpPqVk0g+KZi4P3ppeOMZ4rTOL9+JYNZrNCUCQ0NqGqRDl6tO5TD/Yy5g0eQDknIqYpbCkSig== 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=hiLwlBbA9ZrFaQU1hjLvtszVl7Q9oa9qhfy1BGNynfw=; b=bqfntWTW1doD/ZHI8c8y0uqj61ypfLa/jqh+sAmTOIxrWkwksAIvo39zLzS5mClTLpuKUBQ5+8GCRlekyBIn+JM5Nk7Xjb6uwR/tHs7xJxr6ypDgY+wR3nA7MQGSRgvAdz4YUO2Ljq/9v+AcpGa8EToBt73CGaJpAE5KeU6h6lT/Vc8n3KRUs7e+bs8VEgi4hpVoFa+OU/37kqyirXe9H9/IuWivU2apiimT2MizjLttE9TOn2cPC5y2891BEqBqw2QQYG7z1jBfo121gUZnt3cpaaEfGTVbYDEoyIPo87bRt8m7+OJK5kGi3qxZcs5/v7gF/jX9Pp+7sP0g9YvdQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=lists.ubuntu.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) Received: from SJ0PR13CA0122.namprd13.prod.outlook.com (2603:10b6:a03:2c6::7) by DM6PR12MB4122.namprd12.prod.outlook.com (2603:10b6:5:214::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.21; Mon, 26 Aug 2024 18:29:55 +0000 Received: from CY4PEPF0000E9D7.namprd05.prod.outlook.com (2603:10b6:a03:2c6:cafe::1d) by SJ0PR13CA0122.outlook.office365.com (2603:10b6:a03:2c6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.14 via Frontend Transport; Mon, 26 Aug 2024 18:29:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by CY4PEPF0000E9D7.mail.protection.outlook.com (10.167.241.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.13 via Frontend Transport; Mon, 26 Aug 2024 18:29:55 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 26 Aug 2024 11:29:48 -0700 Received: from drhqmail201.nvidia.com (10.126.190.180) by drhqmail203.nvidia.com (10.126.190.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 26 Aug 2024 11:29:47 -0700 Received: from vdi.nvidia.com (10.127.8.12) by mail.nvidia.com (10.126.190.180) with Microsoft SMTP Server id 15.2.1544.4 via Frontend Transport; Mon, 26 Aug 2024 11:29:47 -0700 From: William Tu To: Subject: [SRU][J:linux-bluefield][PATCH v1 5/6] UBUNTU: SAUCE: vfio/pci: Fix p2p address Date: Mon, 26 Aug 2024 18:29:37 +0000 Message-ID: <20240826182938.1945684-6-witu@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240826182938.1945684-1-witu@nvidia.com> References: <20240826182938.1945684-1-witu@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D7:EE_|DM6PR12MB4122:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a385a6c-d939-4897-5349-08dcc5fd1570 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info: e09Kdm0Ft1iD5XlVfjvsvSNNtu3vyxlsys4nZ5FSW3svYF8CO9ohXMq2Xqr119K12razCRnjaEc9/YYxaUR43Ww3yw2xBWcVHhue9vWdk5LXEWHi4HDymbtQ7qbX1NHJkVS9LOQqkSMog99RrH6N9gtkC2iVgly7xFgHMyRp3cJDV7FQYyl6pQzrUroBCLnvh555+lTYNYCx7PY0AALFMPz9wL4PVT5OnbAoFT8g8nIa0YraA6RM4bbdq+uuwxhaC3hFw7wZivSH2khi0A/8/ExFl4MTtzfmRL6Ys/PfwTxgpfCIeCtWFIa2YCwnzEYa8VOctg2/DDAU371BiAbRXeH3rGCJP2WZRvqnLc6E5hK9OV8KXHuQLgmXQv2EnZ5C71EVVkHWw1OrWEFhGRb1+tyNro/jIbpsGX9qfhHu36iakRaDwvmxiN4cVbA/5gf4eVQwVWNOoKdUFiX3MkSms/Nf6V4ndczAqhKgg3eu/aGMwGW7HzBXkYSIq2gRGcJwWoVe105cdceTt7Ns8omi6DXliFnaJRnAY7b7XQfURZWYIiV5MR7PujuIdLZRTC0lo6UoXMOzT0lGo6EO3Z7CfX4O46YeYeIJCQvc2XGnWrDSa8exA4DRXWg1HUu0eQRGIJJmS/2+YvCHRYthLLiYItj+hYkzQmmzu4O50JwgqN57OUEMB0tihNsTu19a5dBYN5fPNzaKgmjdg2HLMrf0qqXKvdc+IYITIBZSwfPhE5ajFjxt95PlVy9NVwgmOetzjIqTz7TqRNxRLjxCRYNjlPg+yO8ASo7MbmB+vjNgKBJjPnZWwE12D2tvzumBTsoY2kYkN6eisdQhZ6C2Kude/ri/TsOeRs6C2SI5xoyScEsb8gbBvGqz/WMizZLJxEKh8iQQMZ0ng1UkJf+d1TCyukRj159wHzEGMDsjhovldeqobWYj1w0bLsD0dtIvX2B3u6QT3V8NFU7woepZduD9F6+edrCc+reL5nePC7Q11CHqShZM5xIkRcZT2aOQSVynHtRhG1QVyqHV6Wo+fmPVl5uQ8EQuRzDkUjgJlConiqHtWGL7p1YxdQ/KAR6a52/SrnVqDXdk6iRZP5YMFi7BIEmOSLqAai4uZo4uiknnh1BgQ3cF796tjXvSPGli3Ut1X5AC9UKqhwB54Zm9WWGOEx2pJhI6nJpGvmQUfPFnGvpkr8YA0AIqSskwAHt8XzdzoY/bcfPAs/N53u/GNo3797cPhy3eS8Es5plwIADCmDBCfp8Wy99/tyq/zQvG794mcdno/HB+4CjRhcbYY0rYPEChkTxWMcIMiONIbed9gwvBlVLfpoQqrpbAwyvlhwy5geRfVS3F3hdkM8SH0IK+BpvlvyuaUCaYoVMJAGgm8Q13xPofCyWBQJH1UcBU1w2cTRxDJEfLDuCkXWYTnEWwx8AeMz2tLmwCXfAIasN6HTyfkDFPIrMCaw8BJCJS5nJJ X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2024 18:29:55.5910 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7a385a6c-d939-4897-5349-08dcc5fd1570 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D7.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4122 Received-SPF: softfail client-ip=40.107.93.62; envelope-from=witu@nvidia.com; helo=NAM10-DM6-obe.outbound.protection.outlook.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: vlad@nvidia.com, bodong@nvidia.com, sergeygo@nvidia.com, jgg@nvidia.com Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Sergey Gorenko BugLink: https://bugs.launchpad.net/bugs/2077887 Use pci_bus_address instead of pci_resource_start. Bus address must be used for P2PDMA operations. It is simple for x86_64 because bus address is equal to PA. However, bus address is not equal to PA for ARM (at least for BF, I did not tested the other ARM platforms.). That's why pci_resource_start() work fine on x86_64 and we had to replace it to pci_bus_address() on ARM. Co-authored-by: William Tu Signed-off-by: Sergey Gorenko Signed-off-by: William Tu --- drivers/vfio/pci/dma_buf.c | 10 ++++------ drivers/vfio/pci/vfio_pci_core.c | 4 +++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/vfio/pci/dma_buf.c b/drivers/vfio/pci/dma_buf.c index 11396aeabff4..367fe7077ebf 100644 --- a/drivers/vfio/pci/dma_buf.c +++ b/drivers/vfio/pci/dma_buf.c @@ -4,6 +4,9 @@ #include #include #include +#include +#include +#include #include "vfio_pci_priv.h" @@ -81,7 +84,7 @@ vfio_pci_dma_buf_map(struct dma_buf_attachment *attachment, */ dma_addr = dma_map_resource( attachment->dev, - pci_resource_start(priv->vdev->pdev, priv->index) + + pci_bus_address(priv->vdev->pdev, priv->index) + priv->offset, priv->dmabuf->size, dir, DMA_ATTR_SKIP_CPU_SYNC); ret = dma_mapping_error(attachment->dev, dma_addr); @@ -167,11 +170,6 @@ int vfio_pci_core_feature_dma_buf(struct vfio_pci_core_device *vdev, u32 flags, struct vfio_pci_dma_buf *priv; int ret; - ret = vfio_check_feature(flags, argsz, VFIO_DEVICE_FEATURE_GET, - sizeof(get_dma_buf)); - if (ret != 1) - return ret; - if (copy_from_user(&get_dma_buf, arg, sizeof(get_dma_buf))) return -EFAULT; diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 4017512f6736..6c4c96fc5c54 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -1196,7 +1196,9 @@ long vfio_pci_core_ioctl(struct vfio_device *core_vdev, unsigned int cmd, return 0; case VFIO_DEVICE_FEATURE_DMA_BUF: - return vfio_pci_core_feature_dma_buf(vdev, flags, arg, argsz); + return vfio_pci_core_feature_dma_buf(vdev, feature.flags, + (void __user *)(arg + minsz), + feature.argsz); default: return -ENOTTY; }