aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/dma-mapping.c
diff options
context:
space:
mode:
authorSricharan R <sricharan@codeaurora.org>2017-04-10 16:51:00 +0530
committerJoerg Roedel <jroedel@suse.de>2017-04-20 16:31:06 +0200
commitefc8551a276faab19d85079da02c5fb602b0dcbe (patch)
treed4bc742878d00fba40a4b2de45eedbac7ae1aa5c /drivers/base/dma-mapping.c
parentACPI/IORT: Add function to check SMMUs drivers presence (diff)
downloadlinux-dev-efc8551a276faab19d85079da02c5fb602b0dcbe.tar.xz
linux-dev-efc8551a276faab19d85079da02c5fb602b0dcbe.zip
of: device: Fix overflow of coherent_dma_mask
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>
Diffstat (limited to 'drivers/base/dma-mapping.c')
0 files changed, 0 insertions, 0 deletions