Messages in this thread Patch in this message |  | | From | Haotian Zhang <> | | Subject | [PATCH] staging: vc04_services: vchiq_bus: Check return value of of_dma_configure() | | Date | Tue, 2 Dec 2025 17:52:52 +0800 |
| |
vchiq_device_register() ignores the return value of of_dma_configure(), which may return -EPROBE_DEFER when the IOMMU is not ready or other error codes. This allows device registration to proceed with incomplete DMA configuration.
Check of_dma_configure() return value and fail device registration on error.
Fixes: 027e5703de6b ("staging: vc04_services: vchiq_arm: Add new bus type and device type") Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn> --- .../staging/vc04_services/interface/vchiq_arm/vchiq_bus.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c index 41ece91ab88a..8d920a7a3777 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c @@ -80,7 +80,12 @@ vchiq_device_register(struct device *parent, const char *name) device->drv_mgmt = dev_get_drvdata(parent); - of_dma_configure(&device->dev, parent->of_node, true); + ret = of_dma_configure(&device->dev, parent->of_node, true); + if (ret) { + dev_err(parent, "DMA configuration failed for %s: %d\n", name, ret); + kfree(device); + return NULL; + } ret = device_register(&device->dev); if (ret) { -- 2.50.1.windows.1
|  |