-
Sricharan R authored
Size of the dma-range is calculated as coherent_dma_mask + 1 and passed to arch_setup_dma_ops further. It overflows when the coherent_dma_mask is set for full 64 bits 0xFFFFFFFFFFFFFFFF, resulting in size getting passed as 0 wrongly. Fix this by passsing in max(mask, mask + 1). Note that in this case when the mask is set to full 64bits, we will be passing the mask itself to arch_setup_dma_ops instead of the size. The real fix for this should be to make arch_setup_dma_ops receive the mask and handle it, to be done in the future. Reviewed-by:
Robin Murphy <robin.murphy@arm.com> Acked-by:
Rob Herring <robh@kernel.org> Signed-off-by:
Sricharan R <sricharan@codeaurora.org> Signed-off-by:
Joerg Roedel <jroedel@suse.de>
efc8551a