]> git.baikalelectronics.ru Git - kernel.git/commit
iommu/vt-d: Avoid unnecessary global IRTE cache invalidation
authorLu Baolu <baolu.lu@linux.intel.com>
Mon, 26 Sep 2022 13:15:28 +0000 (21:15 +0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 26 Sep 2022 13:52:26 +0000 (15:52 +0200)
commitaf0ba1d69c320c603dbb4e9b59a5c0ae1927ed6e
tree0265110eb49f79476941a7db543627df51780cfd
parent817b17297576dc5ec65ddeb3f5fa0e8663ec72fb
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>
drivers/iommu/intel/iommu.h
drivers/iommu/intel/irq_remapping.c