• Robin Murphy's avatar
    iommu/of: Fix probe-deferral · e8e683ae
    Robin Murphy authored
    Whilst iommu_probe_device() does check for non-NULL ops as the previous
    code did, it does not do so in the same order relative to the other
    checks, and as a result means that -EPROBE_DEFER returned by of_xlate()
    (plus any real error condition too) gets overwritten with -EINVAL and
    leads to various misbehaviour.
    
    Reinstate the original logic, but without implicitly relying on ops
    being set to infer !err as the initial condition (now that the validity
    of ops for its own sake is checked elsewhere).
    
    Fixes: 641fb0ef ("iommu/of: Don't call iommu_ops->add_device directly")
    Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    e8e683ae
of_iommu.c 6.38 KB