1. 29 May, 2020 1 commit
    • Jon Derrick's avatar
      iommu/vt-d: Only clear real DMA device's context entries · 8038bdb8
      Jon Derrick authored
      Domain context mapping can encounter issues with sub-devices of a real
      DMA device. A sub-device cannot have a valid context entry due to it
      potentially aliasing another device's 16-bit ID. It's expected that
      sub-devices of the real DMA device uses the real DMA device's requester
      when context mapping.
      
      This is an issue when a sub-device is removed where the context entry is
      cleared for all aliases. Other sub-devices are still valid, resulting in
      those sub-devices being stranded without valid context entries.
      
      The correct approach is to use the real DMA device when programming the
      context entries. The insertion path is correct because device_to_iommu()
      will return the bus and devfn of the real DMA device. The removal path
      needs to only operate on the real DMA device, otherwise the entire
      context entry would be cleared for all sub-devices of the real DMA
      device.
      
      This patch also adds a helper to determine if a struct device is a
      sub-device of a real DMA device.
      
      Fixes: 2b0140c6 ("iommu/vt-d: Use pci_real_dma_dev() for mapping")
      Cc: stable@vger.kernel.org # v5.6+
      Signed-off-by: default avatarJon Derrick <jonathan.derrick@intel.com>
      Acked-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/20200527165617.297470-2-jonathan.derrick@intel.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      8038bdb8
  2. 25 May, 2020 2 commits
  3. 18 May, 2020 18 commits
  4. 15 May, 2020 1 commit
  5. 13 May, 2020 9 commits
  6. 05 May, 2020 9 commits