The upper 32-bit physical address gets truncated inadvertently when dma_direct_get_required_mask() invokes phys_to_dma_direct(). This results in dma_addressing_limited() return incorrect value when used in platforms with LPAE enabled. Fix it here by explicitly type casting 'max_pfn' to phys_addr_t in order to prevent overflow of intermediate value while evaluating '(max_pfn - 1) << PAGE_SHIFT'. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Christoph Hellwig <hch@lst.de> |
||
|---|---|---|
| .. | ||
| coherent.c | ||
| contiguous.c | ||
| debug.c | ||
| direct.c | ||
| dummy.c | ||
| Kconfig | ||
| Makefile | ||
| mapping.c | ||
| remap.c | ||
| swiotlb.c | ||
| virt.c | ||