linux/drivers/iommu/intel
Liu Yi L 8798d36411 iommu/vt-d: Fix incomplete cache flush in intel_pasid_tear_down_entry()
This fixes improper iotlb invalidation in intel_pasid_tear_down_entry().
When a PASID was used as nested mode, released and reused, the following
error message will appear:

[  180.187556] Unexpected page request in Privilege Mode
[  180.187565] Unexpected page request in Privilege Mode
[  180.279933] Unexpected page request in Privilege Mode
[  180.279937] Unexpected page request in Privilege Mode

Per chapter 6.5.3.3 of VT-d spec 3.3, when tear down a pasid entry, the
software should use Domain selective IOTLB flush if the PGTT of the pasid
entry is SL only or Nested, while for the pasid entries whose PGTT is FL
only or PT using PASID-based IOTLB flush is enough.

Fixes: 2cd1311a26 ("iommu/vt-d: Add set domain DOMAIN_ATTR_NESTING attr")
Signed-off-by: Kumar Sanjay K <sanjay.k.kumar@intel.com>
Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
Tested-by: Yi Sun <yi.y.sun@intel.com>
Link: https://lore.kernel.org/r/20210817042425.1784279-1-yi.l.liu@intel.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20210817124321.1517985-3-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2021-08-18 13:15:58 +02:00
..
cap_audit.c iommu/vt-d: Move capability check code to cap_audit files 2021-02-04 14:42:00 +01:00
cap_audit.h iommu/vt-d: Move capability check code to cap_audit files 2021-02-04 14:42:00 +01:00
debugfs.c iommu/vt-d: Expose latency monitor data through debugfs 2021-06-10 09:06:13 +02:00
dmar.c iommu/vt-d: Add cache invalidation latency sampling 2021-06-10 09:06:13 +02:00
iommu.c iommu/vt-d: Fix clearing real DMA device's scalable-mode context entries 2021-07-14 12:58:07 +02:00
irq_remapping.c pci-v5.13-changes 2021-05-05 13:24:11 -07:00
Kconfig iommu/vt-d: Expose latency monitor data through debugfs 2021-06-10 09:06:13 +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: Fix incomplete cache flush in intel_pasid_tear_down_entry() 2021-08-18 13:15:58 +02:00
pasid.h iommu/vt-d: Fix incomplete cache flush in intel_pasid_tear_down_entry() 2021-08-18 13:15:58 +02:00
perf.c iommu/vt-d: Fix linker error on 32-bit 2021-06-10 10:33:14 +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: Fix PASID reference leak 2021-08-18 13:15:58 +02:00
trace.c