95 lines
3.6 KiB
Diff
95 lines
3.6 KiB
Diff
From 0def0bcc95af6014e2a52c7d69ae83790b310406 Mon Sep 17 00:00:00 2001
|
|
From: Jason Gunthorpe <jgg@nvidia.com>
|
|
Date: Mon, 9 Jun 2025 17:41:27 -0300
|
|
Subject: iommu: Remove ops.pgsize_bitmap from drivers that don't use it
|
|
|
|
These drivers all set the domain->pgsize_bitmap in their
|
|
domain_alloc_paging() functions, so the ops value is never used. Delete
|
|
it.
|
|
|
|
Reviewed-by: Sven Peter <sven@svenpeter.dev> # for Apple DART
|
|
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
|
|
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
|
|
Reviewed-by: Tomasz Jeznach <tjeznach@rivosinc.com> # for RISC-V
|
|
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
|
|
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
|
|
Link: https://lore.kernel.org/r/3-v2-68a2e1ba507c+1fb-iommu_rm_ops_pgsize_jgg@nvidia.com
|
|
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
|
|
---
|
|
drivers/iommu/apple-dart.c | 1 -
|
|
drivers/iommu/intel/iommu.c | 1 -
|
|
drivers/iommu/iommufd/selftest.c | 1 -
|
|
drivers/iommu/riscv/iommu.c | 1 -
|
|
drivers/iommu/virtio-iommu.c | 6 ++----
|
|
5 files changed, 2 insertions(+), 8 deletions(-)
|
|
|
|
--- a/drivers/iommu/apple-dart.c
|
|
+++ b/drivers/iommu/apple-dart.c
|
|
@@ -991,7 +991,6 @@ static const struct iommu_ops apple_dart
|
|
.of_xlate = apple_dart_of_xlate,
|
|
.def_domain_type = apple_dart_def_domain_type,
|
|
.get_resv_regions = apple_dart_get_resv_regions,
|
|
- .pgsize_bitmap = -1UL, /* Restricted during dart probe */
|
|
.owner = THIS_MODULE,
|
|
.default_domain_ops = &(const struct iommu_domain_ops) {
|
|
.attach_dev = apple_dart_attach_dev_paging,
|
|
--- a/drivers/iommu/intel/iommu.c
|
|
+++ b/drivers/iommu/intel/iommu.c
|
|
@@ -4405,7 +4405,6 @@ const struct iommu_ops intel_iommu_ops =
|
|
.device_group = intel_iommu_device_group,
|
|
.is_attach_deferred = intel_iommu_is_attach_deferred,
|
|
.def_domain_type = device_def_domain_type,
|
|
- .pgsize_bitmap = SZ_4K,
|
|
.page_response = intel_iommu_page_response,
|
|
.default_domain_ops = &(const struct iommu_domain_ops) {
|
|
.attach_dev = intel_iommu_attach_device,
|
|
--- a/drivers/iommu/iommufd/selftest.c
|
|
+++ b/drivers/iommu/iommufd/selftest.c
|
|
@@ -801,7 +801,6 @@ static const struct iommu_ops mock_ops =
|
|
.default_domain = &mock_blocking_domain,
|
|
.blocked_domain = &mock_blocking_domain,
|
|
.owner = THIS_MODULE,
|
|
- .pgsize_bitmap = MOCK_IO_PAGE_SIZE,
|
|
.hw_info = mock_domain_hw_info,
|
|
.domain_alloc_paging_flags = mock_domain_alloc_paging_flags,
|
|
.domain_alloc_nested = mock_domain_alloc_nested,
|
|
--- a/drivers/iommu/riscv/iommu.c
|
|
+++ b/drivers/iommu/riscv/iommu.c
|
|
@@ -1533,7 +1533,6 @@ static void riscv_iommu_release_device(s
|
|
}
|
|
|
|
static const struct iommu_ops riscv_iommu_ops = {
|
|
- .pgsize_bitmap = SZ_4K,
|
|
.of_xlate = riscv_iommu_of_xlate,
|
|
.identity_domain = &riscv_iommu_identity_domain,
|
|
.blocked_domain = &riscv_iommu_blocking_domain,
|
|
--- a/drivers/iommu/virtio-iommu.c
|
|
+++ b/drivers/iommu/virtio-iommu.c
|
|
@@ -998,7 +998,7 @@ static void viommu_get_resv_regions(stru
|
|
iommu_dma_get_resv_regions(dev, head);
|
|
}
|
|
|
|
-static struct iommu_ops viommu_ops;
|
|
+static const struct iommu_ops viommu_ops;
|
|
static struct virtio_driver virtio_iommu_drv;
|
|
|
|
static int viommu_match_node(struct device *dev, const void *data)
|
|
@@ -1086,7 +1086,7 @@ static bool viommu_capable(struct device
|
|
}
|
|
}
|
|
|
|
-static struct iommu_ops viommu_ops = {
|
|
+static const struct iommu_ops viommu_ops = {
|
|
.capable = viommu_capable,
|
|
.domain_alloc_identity = viommu_domain_alloc_identity,
|
|
.domain_alloc_paging = viommu_domain_alloc_paging,
|
|
@@ -1217,8 +1217,6 @@ static int viommu_probe(struct virtio_de
|
|
viommu->first_domain++;
|
|
}
|
|
|
|
- viommu_ops.pgsize_bitmap = viommu->pgsize_bitmap;
|
|
-
|
|
virtio_device_ready(vdev);
|
|
|
|
/* Populate the event queue with buffers */
|