From: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> Update the IPMMU driver to return -ENODEV when adding devices not hooked up a particular IPMMU instance. Currently the ->add_device() callback implementation in the IPMMU driver returns -ENODEV for devices with no "iommus" property, however the function ipmmu_find_utlbs() may return -EINVAL. This patch updates the ipmmu_find_utlbs() return value to -ENODEV for the case when multiple IPMMU instances exist. That way the code matches the expected behaviour described in the comment of the add_iommu_group() function in iommu.c: /* * We ignore -ENODEV errors for now, as they just mean that the * device is not translated by an IOMMU. We still care about * other errors and fail to initialize when they happen. */ Signed-off-by: Magnus Damm <damm+renesas@xxxxxxxxxxxxx> --- Applies to next-20160920 on top of: b1e2afc iommu/ipmmu-vmsa: Fix wrong error handle of ipmmu_add_device drivers/iommu/ipmmu-vmsa.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- 0002/drivers/iommu/ipmmu-vmsa.c +++ work/drivers/iommu/ipmmu-vmsa.c 2016-09-08 18:20:06.270607110 +0900 @@ -781,7 +781,7 @@ static int ipmmu_find_utlbs(struct ipmmu of_node_put(args.np); if (args.np != mmu->dev->of_node || args.args_count != 1) - return -EINVAL; + return -ENODEV; utlbs[i] = args.args[0]; }