OSDN Git Service

arm: dma-mapping: set the proper bitmap size
authorCharan Teja Reddy <charante@codeaurora.org>
Tue, 18 Apr 2017 13:15:19 +0000 (18:45 +0530)
committerCharan Teja Reddy <charante@codeaurora.org>
Fri, 21 Apr 2017 04:31:15 +0000 (10:01 +0530)
Set the size of bitmap area properly to ensure the proper iova address
to be returned by the bitmap_() API's through alloc_iova(). The current
implementation causes the bitmap index search out of bounds of a page
which can lead to the randomn corruption issues.

Change-Id: Ie57ca0b7465c91d318145ed270b7d47d822c8eeb
Fixes:I88ddd98a76b ("arm/arm64: dma-mapping: Fix iova region size")
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
arch/arm/mm/dma-mapping.c

index b58d8e0..a000ced 100644 (file)
@@ -2074,7 +2074,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;
+       mapping->bits = BITS_PER_BYTE * bitmap_size;
 
        spin_lock_init(&mapping->lock);