iommu/vt-d: Report right snoop capability when using FL for IOVA
authorLu Baolu <baolu.lu@linux.intel.com>
Tue, 30 Mar 2021 02:11:45 +0000 (10:11 +0800)
committerJoerg Roedel <jroedel@suse.de>
Wed, 7 Apr 2021 08:41:30 +0000 (10:41 +0200)
commit6c00612d0cba10f7d0917cf1f73c945003ed4cd7
tree609a53c28c4a3dce6c9c90f6ddc61ab50fcc81be
parent442b81836d6fdde1cf7dc5fc437a5f770c84498b
iommu/vt-d: Report right snoop capability when using FL for IOVA

The Intel VT-d driver checks wrong register to report snoop capablility
when using first level page table for GPA to HPA translation. This might
lead the IOMMU driver to say that it supports snooping control, but in
reality, it does not. Fix this by always setting PASID-table-entry.PGSNP
whenever a pasid entry is setting up for GPA to HPA translation so that
the IOMMU driver could report snoop capability as long as it runs in the
scalable mode.

Fixes: b802d070a52a1 ("iommu/vt-d: Use iova over first level")
Suggested-by: Rajesh Sankaran <rajesh.sankaran@intel.com>
Suggested-by: Kevin Tian <kevin.tian@intel.com>
Suggested-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20210330021145.13824-1-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/iommu.c
drivers/iommu/intel/pasid.c
drivers/iommu/intel/pasid.h