summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorLiu Yi L <yi.l.liu@intel.com>2020-07-24 04:49:18 +0300
committerJoerg Roedel <jroedel@suse.de>2020-07-24 11:51:21 +0300
commit0fa1a15fa9b37be3899d7fec552c77b67baa8ac7 (patch)
tree3b17e38cbc379c9cefc8a8def13f31f75fafe00e /block
parent288d08e78008828416ffaa85ef274b4e29ef3dae (diff)
downloadlinux-0fa1a15fa9b37be3899d7fec552c77b67baa8ac7.tar.xz
iommu/vt-d: Fix devTLB flush for vSVA
For guest SVA usage, in order to optimize for less VMEXIT, guest request of IOTLB flush also includes device TLB. On the host side, IOMMU driver performs IOTLB and implicit devTLB invalidation. When PASID-selective granularity is requested by the guest we need to derive the equivalent address range for devTLB instead of using the address information in the UAPI data. The reason for that is, unlike IOTLB flush, devTLB flush does not support PASID-selective granularity. This is to say, we need to set the following in the PASID based devTLB invalidation descriptor: - entire 64 bit range in address ~(0x1 << 63) - S bit = 1 (VT-d CH 6.5.2.6). Without this fix, device TLB flush range is not set properly for PASID selective granularity. This patch also merged devTLB flush code for both implicit and explicit cases. Fixes: 6ee1b77ba3ac ("iommu/vt-d: Add svm/sva invalidate function") Signed-off-by: Liu Yi L <yi.l.liu@intel.com> Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com> Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Link: https://lore.kernel.org/r/20200724014925.15523-6-baolu.lu@linux.intel.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'block')
0 files changed, 0 insertions, 0 deletions