1. 25 9月, 2018 2 次提交
  2. 20 7月, 2018 7 次提交
  3. 06 7月, 2018 2 次提交
  4. 15 5月, 2018 1 次提交
  5. 14 2月, 2018 1 次提交
  6. 17 1月, 2018 2 次提交
  7. 04 11月, 2017 1 次提交
  8. 22 3月, 2017 1 次提交
  9. 10 2月, 2017 2 次提交
    • J
      iommu: Add sysfs bindings for struct iommu_device · 39ab9555
      Joerg Roedel 提交于
      There is currently support for iommu sysfs bindings, but
      those need to be implemented in the IOMMU drivers. Add a
      more generic version of this by adding a struct device to
      struct iommu_device and use that for the sysfs bindings.
      
      Also convert the AMD and Intel IOMMU driver to make use of
      it.
      Signed-off-by: NJoerg Roedel <jroedel@suse.de>
      39ab9555
    • J
      iommu: Introduce new 'struct iommu_device' · b0119e87
      Joerg Roedel 提交于
      This struct represents one hardware iommu in the iommu core
      code. For now it only has the iommu-ops associated with it,
      but that will be extended soon.
      
      The register/unregister interface is also added, as well as
      making use of it in the Intel and AMD IOMMU drivers.
      Signed-off-by: NJoerg Roedel <jroedel@suse.de>
      b0119e87
  10. 31 1月, 2017 1 次提交
  11. 20 11月, 2016 1 次提交
    • D
      iommu/vt-d: Fix PASID table allocation · 91017044
      David Woodhouse 提交于
      Somehow I ended up with an off-by-three error in calculating the size of
      the PASID and PASID State tables, which triggers allocations failures as
      those tables unfortunately have to be physically contiguous.
      
      In fact, even the *correct* maximum size of 8MiB is problematic and is
      wont to lead to allocation failures. Since I have extracted a promise
      that this *will* be fixed in hardware, I'm happy to limit it on the
      current hardware to a maximum of 0x20000 PASIDs, which gives us 1MiB
      tables — still not ideal, but better than before.
      
      Reported by Mika Kuoppala <mika.kuoppala@linux.intel.com> and also by
      Xunlei Pang <xlpang@redhat.com> who submitted a simpler patch to fix
      only the allocation (and not the free) to the "correct" limit... which
      was still problematic.
      Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
      Cc: stable@vger.kernel.org
      91017044
  12. 15 2月, 2016 1 次提交
  13. 15 10月, 2015 7 次提交
  14. 14 10月, 2015 1 次提交
  15. 12 8月, 2015 1 次提交
    • J
      iommu/vt-d: Split up iommu->domains array · 8bf47816
      Joerg Roedel 提交于
      This array is indexed by the domain-id and contains the
      pointers to the domains attached to this iommu. Modern
      systems support 65536 domain ids, so that this array has a
      size of 512kb, per iommu.
      
      This is a huge waste of space, as the array is usually
      sparsely populated. This patch makes the array
      two-dimensional and allocates the memory for the domain
      pointers on-demand.
      Signed-off-by: NJoerg Roedel <jroedel@suse.de>
      8bf47816
  16. 16 6月, 2015 2 次提交
  17. 12 6月, 2015 1 次提交
  18. 09 6月, 2015 1 次提交
  19. 24 4月, 2015 1 次提交
  20. 25 3月, 2015 2 次提交
  21. 04 7月, 2014 1 次提交
    • A
      iommu/vt-d: Make use of IOMMU sysfs support · a5459cfe
      Alex Williamson 提交于
      Register our DRHD IOMMUs, cross link devices, and provide a base set
      of attributes for the IOMMU.  Note that IRQ remapping support parses
      the DMAR table very early in boot, well before the iommu_class can
      reasonably be setup, so our registration is split between
      intel_iommu_init(), which occurs later, and alloc_iommu(), which
      typically occurs much earlier, but may happen at any time later
      with IOMMU hot-add support.
      
      On a typical desktop system, this provides the following (pruned):
      
      $ find /sys | grep dmar
      /sys/devices/virtual/iommu/dmar0
      /sys/devices/virtual/iommu/dmar0/devices
      /sys/devices/virtual/iommu/dmar0/devices/0000:00:02.0
      /sys/devices/virtual/iommu/dmar0/intel-iommu
      /sys/devices/virtual/iommu/dmar0/intel-iommu/cap
      /sys/devices/virtual/iommu/dmar0/intel-iommu/ecap
      /sys/devices/virtual/iommu/dmar0/intel-iommu/address
      /sys/devices/virtual/iommu/dmar0/intel-iommu/version
      /sys/devices/virtual/iommu/dmar1
      /sys/devices/virtual/iommu/dmar1/devices
      /sys/devices/virtual/iommu/dmar1/devices/0000:00:00.0
      /sys/devices/virtual/iommu/dmar1/devices/0000:00:01.0
      /sys/devices/virtual/iommu/dmar1/devices/0000:00:16.0
      /sys/devices/virtual/iommu/dmar1/devices/0000:00:1a.0
      /sys/devices/virtual/iommu/dmar1/devices/0000:00:1b.0
      /sys/devices/virtual/iommu/dmar1/devices/0000:00:1c.0
      ...
      /sys/devices/virtual/iommu/dmar1/intel-iommu
      /sys/devices/virtual/iommu/dmar1/intel-iommu/cap
      /sys/devices/virtual/iommu/dmar1/intel-iommu/ecap
      /sys/devices/virtual/iommu/dmar1/intel-iommu/address
      /sys/devices/virtual/iommu/dmar1/intel-iommu/version
      /sys/class/iommu/dmar0
      /sys/class/iommu/dmar1
      
      (devices also link back to the dmar units)
      
      This makes address, version, capabilities, and extended capabilities
      available, just like printed on boot.  I've tried not to duplicate
      data that can be found in the DMAR table, with the exception of the
      address, which provides an easy way to associate the sysfs device with
      a DRHD entry in the DMAR.  It's tempting to add scopes and RMRR data
      here, but the full DMAR table is already exposed under /sys/firmware/
      and therefore already provides a way for userspace to learn such
      details.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: NJoerg Roedel <jroedel@suse.de>
      a5459cfe
  22. 24 3月, 2014 1 次提交