mirror of
https://github.com/torvalds/linux.git
synced 2024-11-26 06:02:05 +00:00
crypto: caam - check return code of dma_set_mask_and_coherent()
Setting the dma mask could fail, thus make sure it succeeds before going further. Signed-off-by: Horia Geantă <horia.geanta@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
78fd0fff7f
commit
b3b5fce736
@ -586,13 +586,18 @@ static int caam_probe(struct platform_device *pdev)
|
|||||||
JRSTART_JR1_START | JRSTART_JR2_START |
|
JRSTART_JR1_START | JRSTART_JR2_START |
|
||||||
JRSTART_JR3_START);
|
JRSTART_JR3_START);
|
||||||
|
|
||||||
if (sizeof(dma_addr_t) == sizeof(u64))
|
if (sizeof(dma_addr_t) == sizeof(u64)) {
|
||||||
if (of_device_is_compatible(nprop, "fsl,sec-v5.0"))
|
if (of_device_is_compatible(nprop, "fsl,sec-v5.0"))
|
||||||
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(40));
|
ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(40));
|
||||||
else
|
else
|
||||||
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(36));
|
ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(36));
|
||||||
else
|
} else {
|
||||||
dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
|
ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
|
||||||
|
}
|
||||||
|
if (ret) {
|
||||||
|
dev_err(dev, "dma_set_mask_and_coherent failed (%d)\n", ret);
|
||||||
|
goto iounmap_ctrl;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Detect and enable JobRs
|
* Detect and enable JobRs
|
||||||
|
@ -498,13 +498,22 @@ static int caam_jr_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
jrpriv->rregs = (struct caam_job_ring __iomem __force *)ctrl;
|
jrpriv->rregs = (struct caam_job_ring __iomem __force *)ctrl;
|
||||||
|
|
||||||
if (sizeof(dma_addr_t) == sizeof(u64))
|
if (sizeof(dma_addr_t) == sizeof(u64)) {
|
||||||
if (of_device_is_compatible(nprop, "fsl,sec-v5.0-job-ring"))
|
if (of_device_is_compatible(nprop, "fsl,sec-v5.0-job-ring"))
|
||||||
dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(40));
|
error = dma_set_mask_and_coherent(jrdev,
|
||||||
|
DMA_BIT_MASK(40));
|
||||||
else
|
else
|
||||||
dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(36));
|
error = dma_set_mask_and_coherent(jrdev,
|
||||||
else
|
DMA_BIT_MASK(36));
|
||||||
dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(32));
|
} else {
|
||||||
|
error = dma_set_mask_and_coherent(jrdev, DMA_BIT_MASK(32));
|
||||||
|
}
|
||||||
|
if (error) {
|
||||||
|
dev_err(jrdev, "dma_set_mask_and_coherent failed (%d)\n",
|
||||||
|
error);
|
||||||
|
iounmap(ctrl);
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
/* Identify the interrupt */
|
/* Identify the interrupt */
|
||||||
jrpriv->irq = irq_of_parse_and_map(nprop, 0);
|
jrpriv->irq = irq_of_parse_and_map(nprop, 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user