From: GuoHan Zhao <[email protected]>

devm_platform_ioremap_resource() returns an error pointer when the register
resource cannot be mapped. ethosu_probe() stores it and continues until
initialization dereferences it through MMIO accessors.

Return the mapping error before initializing the device.

Fixes: 5a5e9c0228e6 ("accel: Add Arm Ethos-U NPU driver")
Cc: [email protected]
Signed-off-by: GuoHan Zhao <[email protected]>
---
 drivers/accel/ethosu/ethosu_drv.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/accel/ethosu/ethosu_drv.c 
b/drivers/accel/ethosu/ethosu_drv.c
index ed9c748a54ad..b2901eb8a7a0 100644
--- a/drivers/accel/ethosu/ethosu_drv.c
+++ b/drivers/accel/ethosu/ethosu_drv.c
@@ -342,6 +342,8 @@ static int ethosu_probe(struct platform_device *pdev)
        dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(40));
 
        ethosudev->regs = devm_platform_ioremap_resource(pdev, 0);
+       if (IS_ERR(ethosudev->regs))
+               return PTR_ERR(ethosudev->regs);
 
        ethosudev->num_clks = devm_clk_bulk_get_all(&pdev->dev, 
&ethosudev->clks);
        if (ethosudev->num_clks < 0)
-- 
2.43.0

Reply via email to