1. 14 Jul, 2023 1 commit
    • Jason Gunthorpe's avatar
      iommu: Have __iommu_probe_device() check for already probed devices · 6eb4da8c
      Jason Gunthorpe authored
      This is a step toward making __iommu_probe_device() self contained.
      
      It should, under proper locking, check if the device is already associated
      with an iommu driver and resolve parallel probes. All but one of the
      callers open code this test using two different means, but they all
      rely on dev->iommu_group.
      
      Currently the bus_iommu_probe()/probe_iommu_group() and
      probe_acpi_namespace_devices() rejects already probed devices with an
      unlocked read of dev->iommu_group. The OF and ACPI "replay" functions use
      device_iommu_mapped() which is the same read without the pointless
      refcount.
      
      Move this test into __iommu_probe_device() and put it under the
      iommu_probe_device_lock. The store to dev->iommu_group is in
      iommu_group_add_device() which is also called under this lock for iommu
      driver devices, making it properly locked.
      
      The only path that didn't have this check is the hotplug path triggered by
      BUS_NOTIFY_ADD_DEVICE. The only way to get dev->iommu_group assigned
      outside the probe path is via iommu_group_add_device(). Today the only
      caller is VFIO no-iommu which never associates with an iommu driver. Thus
      adding this additional check is safe.
      Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
      Reviewed-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Acked-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Link: https://lore.kernel.org/r/1-v3-328044aa278c+45e49-iommu_probe_jgg@nvidia.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      6eb4da8c
  2. 09 Jul, 2023 10 commits
  3. 08 Jul, 2023 29 commits