linux/drivers/iommu/intel
Lu Baolu eb5b20114b iommu/vt-d: Avoid unnecessary global IRTE cache invalidation
Some VT-d hardware implementations invalidate all interrupt remapping
hardware translation caches as part of SIRTP flow. The VT-d spec adds
a ESIRTPS (Enhanced Set Interrupt Remap Table Pointer Support, section
11.4.2 in VT-d spec) capability bit to indicate this.

The spec also states in 11.4.4 that hardware also performs global
invalidation on all interrupt remapping caches as part of Interrupt
Remapping Disable operation if ESIRTPS capability bit is set.

This checks the ESIRTPS capability bit and skip software global cache
invalidation if it's set.

Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/20220921065741.3572495-1-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2022-09-26 15:52:26 +02:00
..
cap_audit.c iommu/vt-d: Rename cap_5lp_support to cap_fl5lp_support 2022-09-26 15:52:25 +02:00
cap_audit.h iommu/vt-d: Check FL and SL capability sanity in scalable mode 2021-10-18 12:31:48 +02:00
debugfs.c iommu/vt-d: Replace spin_lock_irqsave() with spin_lock() 2022-07-15 10:21:36 +02:00
dmar.c Revert "iommu/vt-d: Fix possible recursive locking in intel_iommu_init()" 2022-09-21 10:22:54 +02:00
iommu.c iommu/vt-d: Rename cap_5lp_support to cap_fl5lp_support 2022-09-26 15:52:25 +02:00
iommu.h iommu/vt-d: Avoid unnecessary global IRTE cache invalidation 2022-09-26 15:52:26 +02:00
irq_remapping.c iommu/vt-d: Avoid unnecessary global IRTE cache invalidation 2022-09-26 15:52:26 +02:00
Kconfig iommu/vt-d: Decouple PASID & PRI enabling from SVA 2022-09-26 15:52:24 +02:00
Makefile iommu/vt-d: Add common code for dmar latency performance monitors 2021-06-10 09:06:13 +02:00
pasid.c iommu/vt-d: Rename cap_5lp_support to cap_fl5lp_support 2022-09-26 15:52:25 +02:00
pasid.h iommu/vt-d: Remove clearing translation data in disable_dmar_iommu() 2022-07-15 10:21:34 +02:00
perf.c iommu/vt-d: Move include/linux/intel-iommu.h under iommu 2022-07-15 10:21:31 +02:00
perf.h iommu/vt-d: Add common code for dmar latency performance monitors 2021-06-10 09:06:13 +02:00
svm.c iommu/vt-d: Rename cap_5lp_support to cap_fl5lp_support 2022-09-26 15:52:25 +02:00
trace.c iommu/vt-d: Move trace/events/intel_iommu.h under iommu 2022-07-15 10:21:28 +02:00
trace.h iommu/vt-d: Move include/linux/intel-iommu.h under iommu 2022-07-15 10:21:31 +02:00