Skip to content

Commit 14cb413

Browse files
rleonmszyprow
authored andcommitted
dma-mapping: remove unused mapping resource callbacks
After ARM and XEN conversions to use physical addresses for the mapping, there are no in-kernel users for map_resource/unmap_resource callbacks, so remove them. Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Link: https://lore.kernel.org/r/20251015-remove-map-page-v5-6-3bbfe3a25cdf@kernel.org
1 parent af85de5 commit 14cb413

2 files changed

Lines changed: 4 additions & 18 deletions

File tree

include/linux/dma-map-ops.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,6 @@ struct dma_map_ops {
5353
enum dma_data_direction dir, unsigned long attrs);
5454
void (*unmap_sg)(struct device *dev, struct scatterlist *sg, int nents,
5555
enum dma_data_direction dir, unsigned long attrs);
56-
dma_addr_t (*map_resource)(struct device *dev, phys_addr_t phys_addr,
57-
size_t size, enum dma_data_direction dir,
58-
unsigned long attrs);
59-
void (*unmap_resource)(struct device *dev, dma_addr_t dma_handle,
60-
size_t size, enum dma_data_direction dir,
61-
unsigned long attrs);
6256
void (*sync_single_for_cpu)(struct device *dev, dma_addr_t dma_handle,
6357
size_t size, enum dma_data_direction dir);
6458
void (*sync_single_for_device)(struct device *dev,

kernel/dma/mapping.c

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
157157
{
158158
const struct dma_map_ops *ops = get_dma_ops(dev);
159159
bool is_mmio = attrs & DMA_ATTR_MMIO;
160-
dma_addr_t addr;
160+
dma_addr_t addr = DMA_MAPPING_ERROR;
161161

162162
BUG_ON(!valid_dma_direction(dir));
163163

@@ -171,18 +171,13 @@ dma_addr_t dma_map_phys(struct device *dev, phys_addr_t phys, size_t size,
171171
addr = iommu_dma_map_phys(dev, phys, size, dir, attrs);
172172
else if (ops->map_phys)
173173
addr = ops->map_phys(dev, phys, size, dir, attrs);
174-
else if (is_mmio) {
175-
if (!ops->map_resource)
176-
return DMA_MAPPING_ERROR;
177-
178-
addr = ops->map_resource(dev, phys, size, dir, attrs);
179-
} else {
174+
else if (!is_mmio && ops->map_page) {
180175
struct page *page = phys_to_page(phys);
181176
size_t offset = offset_in_page(phys);
182177

183178
/*
184179
* The dma_ops API contract for ops->map_page() requires
185-
* kmappable memory, while ops->map_resource() does not.
180+
* kmappable memory.
186181
*/
187182
addr = ops->map_page(dev, page, offset, size, dir, attrs);
188183
}
@@ -227,10 +222,7 @@ void dma_unmap_phys(struct device *dev, dma_addr_t addr, size_t size,
227222
iommu_dma_unmap_phys(dev, addr, size, dir, attrs);
228223
else if (ops->unmap_phys)
229224
ops->unmap_phys(dev, addr, size, dir, attrs);
230-
else if (is_mmio) {
231-
if (ops->unmap_resource)
232-
ops->unmap_resource(dev, addr, size, dir, attrs);
233-
} else
225+
else
234226
ops->unmap_page(dev, addr, size, dir, attrs);
235227
trace_dma_unmap_phys(dev, addr, size, dir, attrs);
236228
debug_dma_unmap_phys(dev, addr, size, dir);

0 commit comments

Comments
 (0)