iommu/io-pgtable-arm: Remove map/unmap
With all users now calling {map,unmap}_pages, remove the wrappers. Signed-off-by: Robin Murphy <robin.murphy@arm.com> Acked-by: Will Deacon <will@kernel.org> Link: https://lore.kernel.org/r/162e58e83ed42f78c3fbefe78c9b5410dd1dc412.1668100209.git.robin.murphy@arm.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
fa8ce57430
commit
99cbb8e436
|
@ -360,7 +360,7 @@ static int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
|
||||||
max_entries = ARM_LPAE_PTES_PER_TABLE(data) - map_idx_start;
|
max_entries = ARM_LPAE_PTES_PER_TABLE(data) - map_idx_start;
|
||||||
num_entries = min_t(int, pgcount, max_entries);
|
num_entries = min_t(int, pgcount, max_entries);
|
||||||
ret = arm_lpae_init_pte(data, iova, paddr, prot, lvl, num_entries, ptep);
|
ret = arm_lpae_init_pte(data, iova, paddr, prot, lvl, num_entries, ptep);
|
||||||
if (!ret && mapped)
|
if (!ret)
|
||||||
*mapped += num_entries * size;
|
*mapped += num_entries * size;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -496,13 +496,6 @@ static int arm_lpae_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int arm_lpae_map(struct io_pgtable_ops *ops, unsigned long iova,
|
|
||||||
phys_addr_t paddr, size_t size, int iommu_prot, gfp_t gfp)
|
|
||||||
{
|
|
||||||
return arm_lpae_map_pages(ops, iova, paddr, size, 1, iommu_prot, gfp,
|
|
||||||
NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void __arm_lpae_free_pgtable(struct arm_lpae_io_pgtable *data, int lvl,
|
static void __arm_lpae_free_pgtable(struct arm_lpae_io_pgtable *data, int lvl,
|
||||||
arm_lpae_iopte *ptep)
|
arm_lpae_iopte *ptep)
|
||||||
{
|
{
|
||||||
|
@ -682,12 +675,6 @@ static size_t arm_lpae_unmap_pages(struct io_pgtable_ops *ops, unsigned long iov
|
||||||
data->start_level, ptep);
|
data->start_level, ptep);
|
||||||
}
|
}
|
||||||
|
|
||||||
static size_t arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
|
|
||||||
size_t size, struct iommu_iotlb_gather *gather)
|
|
||||||
{
|
|
||||||
return arm_lpae_unmap_pages(ops, iova, size, 1, gather);
|
|
||||||
}
|
|
||||||
|
|
||||||
static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
|
static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
|
||||||
unsigned long iova)
|
unsigned long iova)
|
||||||
{
|
{
|
||||||
|
@ -799,9 +786,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
|
||||||
data->pgd_bits = va_bits - (data->bits_per_level * (levels - 1));
|
data->pgd_bits = va_bits - (data->bits_per_level * (levels - 1));
|
||||||
|
|
||||||
data->iop.ops = (struct io_pgtable_ops) {
|
data->iop.ops = (struct io_pgtable_ops) {
|
||||||
.map = arm_lpae_map,
|
|
||||||
.map_pages = arm_lpae_map_pages,
|
.map_pages = arm_lpae_map_pages,
|
||||||
.unmap = arm_lpae_unmap,
|
|
||||||
.unmap_pages = arm_lpae_unmap_pages,
|
.unmap_pages = arm_lpae_unmap_pages,
|
||||||
.iova_to_phys = arm_lpae_iova_to_phys,
|
.iova_to_phys = arm_lpae_iova_to_phys,
|
||||||
};
|
};
|
||||||
|
@ -1176,7 +1161,7 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
|
||||||
|
|
||||||
int i, j;
|
int i, j;
|
||||||
unsigned long iova;
|
unsigned long iova;
|
||||||
size_t size;
|
size_t size, mapped;
|
||||||
struct io_pgtable_ops *ops;
|
struct io_pgtable_ops *ops;
|
||||||
|
|
||||||
selftest_running = true;
|
selftest_running = true;
|
||||||
|
@ -1209,15 +1194,16 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
|
||||||
for_each_set_bit(j, &cfg->pgsize_bitmap, BITS_PER_LONG) {
|
for_each_set_bit(j, &cfg->pgsize_bitmap, BITS_PER_LONG) {
|
||||||
size = 1UL << j;
|
size = 1UL << j;
|
||||||
|
|
||||||
if (ops->map(ops, iova, iova, size, IOMMU_READ |
|
if (ops->map_pages(ops, iova, iova, size, 1,
|
||||||
IOMMU_WRITE |
|
IOMMU_READ | IOMMU_WRITE |
|
||||||
IOMMU_NOEXEC |
|
IOMMU_NOEXEC | IOMMU_CACHE,
|
||||||
IOMMU_CACHE, GFP_KERNEL))
|
GFP_KERNEL, &mapped))
|
||||||
return __FAIL(ops, i);
|
return __FAIL(ops, i);
|
||||||
|
|
||||||
/* Overlapping mappings */
|
/* Overlapping mappings */
|
||||||
if (!ops->map(ops, iova, iova + size, size,
|
if (!ops->map_pages(ops, iova, iova + size, size, 1,
|
||||||
IOMMU_READ | IOMMU_NOEXEC, GFP_KERNEL))
|
IOMMU_READ | IOMMU_NOEXEC,
|
||||||
|
GFP_KERNEL, &mapped))
|
||||||
return __FAIL(ops, i);
|
return __FAIL(ops, i);
|
||||||
|
|
||||||
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
|
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
|
||||||
|
@ -1228,11 +1214,12 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
|
||||||
|
|
||||||
/* Partial unmap */
|
/* Partial unmap */
|
||||||
size = 1UL << __ffs(cfg->pgsize_bitmap);
|
size = 1UL << __ffs(cfg->pgsize_bitmap);
|
||||||
if (ops->unmap(ops, SZ_1G + size, size, NULL) != size)
|
if (ops->unmap_pages(ops, SZ_1G + size, size, 1, NULL) != size)
|
||||||
return __FAIL(ops, i);
|
return __FAIL(ops, i);
|
||||||
|
|
||||||
/* Remap of partial unmap */
|
/* Remap of partial unmap */
|
||||||
if (ops->map(ops, SZ_1G + size, size, size, IOMMU_READ, GFP_KERNEL))
|
if (ops->map_pages(ops, SZ_1G + size, size, size, 1,
|
||||||
|
IOMMU_READ, GFP_KERNEL, &mapped))
|
||||||
return __FAIL(ops, i);
|
return __FAIL(ops, i);
|
||||||
|
|
||||||
if (ops->iova_to_phys(ops, SZ_1G + size + 42) != (size + 42))
|
if (ops->iova_to_phys(ops, SZ_1G + size + 42) != (size + 42))
|
||||||
|
@ -1243,14 +1230,15 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
|
||||||
for_each_set_bit(j, &cfg->pgsize_bitmap, BITS_PER_LONG) {
|
for_each_set_bit(j, &cfg->pgsize_bitmap, BITS_PER_LONG) {
|
||||||
size = 1UL << j;
|
size = 1UL << j;
|
||||||
|
|
||||||
if (ops->unmap(ops, iova, size, NULL) != size)
|
if (ops->unmap_pages(ops, iova, size, 1, NULL) != size)
|
||||||
return __FAIL(ops, i);
|
return __FAIL(ops, i);
|
||||||
|
|
||||||
if (ops->iova_to_phys(ops, iova + 42))
|
if (ops->iova_to_phys(ops, iova + 42))
|
||||||
return __FAIL(ops, i);
|
return __FAIL(ops, i);
|
||||||
|
|
||||||
/* Remap full block */
|
/* Remap full block */
|
||||||
if (ops->map(ops, iova, iova, size, IOMMU_WRITE, GFP_KERNEL))
|
if (ops->map_pages(ops, iova, iova, size, 1,
|
||||||
|
IOMMU_WRITE, GFP_KERNEL, &mapped))
|
||||||
return __FAIL(ops, i);
|
return __FAIL(ops, i);
|
||||||
|
|
||||||
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
|
if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
|
||||||
|
|
Loading…
Reference in New Issue