In commit <7b07cbefb6>("iommu: of: Handle IOMMU lookup failure with deferred probing or error"), there is possibility that of_dma_configure may fail. So in of_reserved_mem_device_init_by_idx, also need to propagate the return value of_dma_configure to caller, when need to use reserved memory for a device which needs iommu. Signed-off-by: Peng Fan <peng.fan@xxxxxxx> --- drivers/of/of_reserved_mem.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c index 22b75c82e377..61523819b50e 100644 --- a/drivers/of/of_reserved_mem.c +++ b/drivers/of/of_reserved_mem.c @@ -357,9 +357,12 @@ int of_reserved_mem_device_init_by_idx(struct device *dev, /* ensure that dma_ops is set for virtual devices * using reserved memory */ - of_dma_configure(dev, np); - - dev_info(dev, "assigned reserved memory node %s\n", rmem->name); + ret = of_dma_configure(dev, np); + if (ret) + of_reserved_mem_device_release(dev); + else + dev_info(dev, "assigned reserved memory node %s\n", + rmem->name); } else { kfree(rd); } -- 2.14.1 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html