There is no point in calling dma_supported() before calling dma_set_coherent_mask(). This function already calls dma_supported() and returns an error (-EIO) if it fails. So remove the superfluous dma_supported() call. While at it, fix the name of the function reported in a dev_err(). Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> --- I guess that the whole while loop could be removed, but I don't remind the thread with the corresponding explanation, so leave it as-is :( --- drivers/crypto/ccree/cc_driver.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/ccree/cc_driver.c b/drivers/crypto/ccree/cc_driver.c index 7d1bee86d581..99f8bda718fe 100644 --- a/drivers/crypto/ccree/cc_driver.c +++ b/drivers/crypto/ccree/cc_driver.c @@ -373,16 +373,16 @@ static int init_cc_resources(struct platform_device *plat_dev) dma_mask = DMA_BIT_MASK(DMA_BIT_MASK_LEN); while (dma_mask > 0x7fffffffUL) { - if (dma_supported(dev, dma_mask)) { - rc = dma_set_coherent_mask(dev, dma_mask); - if (!rc) - break; - } + rc = dma_set_coherent_mask(dev, dma_mask); + if (!rc) + break; + dma_mask >>= 1; } if (rc) { - dev_err(dev, "Failed in dma_set_mask, mask=%llx\n", dma_mask); + dev_err(dev, "Failed in dma_set_coherent_mask, mask=%llx\n", + dma_mask); return rc; } -- 2.34.1