On 64-bit SoCs it becomes possible to end up with a DMA buffer allocated in the region of memory inaccessible to ESDHC controller. Change the code to bail out if that happens to avoid silent failures. Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- drivers/mci/imx-esdhc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mci/imx-esdhc.c b/drivers/mci/imx-esdhc.c index db96a8139..f6451e204 100644 --- a/drivers/mci/imx-esdhc.c +++ b/drivers/mci/imx-esdhc.c @@ -304,6 +304,9 @@ esdhc_send_cmd(struct mci_host *mci, struct mci_cmd *cmd, struct mci_data *data) dma = dma_map_single(host->dev, ptr, num_bytes, dir); if (dma_mapping_error(host->dev, dma)) return -EIO; + + if (dma > U32_MAX) + return -EFAULT; } err = esdhc_setup_data(mci, data, dma); -- 2.17.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox