diff options
| author | Patrick Daly <pdaly@codeaurora.org> | 2016-08-02 14:02:49 -0700 |
|---|---|---|
| committer | Patrick Daly <pdaly@codeaurora.org> | 2016-08-12 18:50:33 -0700 |
| commit | 2d221c0799805437398df73666a7380df8dcd9bf (patch) | |
| tree | b144596bfba415aa2c6221e00c000a4728afe18b | |
| parent | e94b446eac88a43e42ecde105275d48b677ea5b3 (diff) | |
arm/arm64: dma-mapping: Fix iova region size
Clients may have additional mappings in an iommu domain which are not
managed by arm_iommu_create_mapping. As such, it is important that
arm_iommu_create_mapping only use the iova region specified by the client.
However, the current implementation rounds the size of the region up to a
256K boundary (on arm64).
Change-Id: I88ddd98a76b39e3e9126d78da8e725491f2a5b32
Signed-off-by: Patrick Daly <pdaly@codeaurora.org>
| -rw-r--r-- | arch/arm/mm/dma-mapping.c | 2 | ||||
| -rw-r--r-- | arch/arm64/mm/dma-mapping.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index d41957eae6ef..f5dab4e9fb4b 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -2078,7 +2078,7 @@ arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, u64 size) mapping->nr_bitmaps = 1; mapping->extensions = extensions; mapping->base = base; - mapping->bits = BITS_PER_BYTE * bitmap_size; + mapping->bits = bits; spin_lock_init(&mapping->lock); diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c index 06f9ffccd562..196c73e2cf9c 100644 --- a/arch/arm64/mm/dma-mapping.c +++ b/arch/arm64/mm/dma-mapping.c @@ -2064,7 +2064,7 @@ arm_iommu_create_mapping(struct bus_type *bus, dma_addr_t base, size_t size) goto err2; mapping->base = base; - mapping->bits = BITS_PER_BYTE * bitmap_size; + mapping->bits = bits; spin_lock_init(&mapping->lock); mapping->domain = iommu_domain_alloc(bus); |
