• Robin Murphy's avatar
    iommu/arm-smmu: Work around ARM DMA configuration · fba4f8e5
    Robin Murphy authored
    The 32-bit ARM DMA configuration code predates the IOMMU core's default
    domain functionality, and instead relies on allocating its own domains
    and attaching any devices using the generic IOMMU binding to them.
    Unfortunately, it does this relatively early on in the creation of the
    device, before we've seen our add_device callback, which leads us to
    attempt to operate on a half-configured master.
    
    To avoid a crash, check for this situation on attach, but refuse to
    play, as there's nothing we can do. This at least allows VFIO to keep
    working for people who update their 32-bit DTs to the generic binding,
    albeit with a few (innocuous) warnings from the DMA layer on boot.
    Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    fba4f8e5
arm-smmu.c 57.1 KB