• Linus Torvalds's avatar
    Merge tag 'iommu-updates-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · fb4e3bee
    Linus Torvalds authored
    Pull IOMMU updates from Joerg Roedel:
     "This update comes with:
    
       - Support for lockless operation in the ARM io-pgtable code.
    
         This is an important step to solve the scalability problems in the
         common dma-iommu code for ARM
    
       - Some Errata workarounds for ARM SMMU implemenations
    
       - Rewrite of the deferred IO/TLB flush code in the AMD IOMMU driver.
    
         The code suffered from very high flush rates, with the new
         implementation the flush rate is down to ~1% of what it was before
    
       - Support for amd_iommu=off when booting with kexec.
    
         The problem here was that the IOMMU driver bailed out early without
         disabling the iommu hardware, if it was enabled in the old kernel
    
       - The Rockchip IOMMU driver is now available on ARM64
    
       - Align the return value of the iommu_ops->device_group call-backs to
         not miss error values
    
       - Preempt-disable optimizations in the Intel VT-d and common IOVA
         code to help Linux-RT
    
       - Various other small cleanups and fixes"
    
    * tag 'iommu-updates-v4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (60 commits)
      iommu/vt-d: Constify intel_dma_ops
      iommu: Warn once when device_group callback returns NULL
      iommu/omap: Return ERR_PTR in device_group call-back
      iommu: Return ERR_PTR() values from device_group call-backs
      iommu/s390: Use iommu_group_get_for_dev() in s390_iommu_add_device()
      iommu/vt-d: Don't disable preemption while accessing deferred_flush()
      iommu/iova: Don't disable preempt around this_cpu_ptr()
      iommu/arm-smmu-v3: Add workaround for Cavium ThunderX2 erratum #126
      iommu/arm-smmu-v3: Enable ACPI based HiSilicon CMD_PREFETCH quirk(erratum 161010701)
      iommu/arm-smmu-v3: Add workaround for Cavium ThunderX2 erratum #74
      ACPI/IORT: Fixup SMMUv3 resource size for Cavium ThunderX2 SMMUv3 model
      iommu/arm-smmu-v3, acpi: Add temporary Cavium SMMU-V3 IORT model number definitions
      iommu/io-pgtable-arm: Use dma_wmb() instead of wmb() when publishing table
      iommu/io-pgtable: depend on !GENERIC_ATOMIC64 when using COMPILE_TEST with LPAE
      iommu/arm-smmu-v3: Remove io-pgtable spinlock
      iommu/arm-smmu: Remove io-pgtable spinlock
      iommu/io-pgtable-arm-v7s: Support lockless operation
      iommu/io-pgtable-arm: Support lockless operation
      iommu/io-pgtable: Introduce explicit coherency
      iommu/io-pgtable-arm-v7s: Refactor split_blk_unmap
      ...
    fb4e3bee
iort.c 28 KB