]> www.infradead.org Git - users/jedix/linux-maple.git/commit
iommu/vt-d: Fix incorrect domain ID in context flush helper
authorLu Baolu <baolu.lu@linux.intel.com>
Thu, 15 Aug 2024 12:48:57 +0000 (20:48 +0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 26 Aug 2024 07:12:54 +0000 (09:12 +0200)
commit7af6c720417f21f015f46baa33e182f349ddc93b
treea99e79791dfe0d443ac20460cddf121ea0c139cb
parentb58b133e680b20d219940e0fdb6f6132c2b60f38
iommu/vt-d: Fix incorrect domain ID in context flush helper

The helper intel_context_flush_present() is designed to flush all related
caches when a context entry with the present bit set is modified. It
currently retrieves the domain ID from the context entry and uses it to
flush the IOTLB and context caches. This is incorrect when the context
entry transitions from present to non-present, as the domain ID field is
cleared before calling the helper.

Fix it by passing the domain ID programmed in the context entry before the
change to intel_context_flush_present(). This ensures that the correct
domain ID is used for cache invalidation.

Fixes: f90584f4beb8 ("iommu/vt-d: Add helper to flush caches for context change")
Reported-by: Alex Williamson <alex.williamson@redhat.com>
Closes: https://lore.kernel.org/linux-iommu/20240814162726.5efe1a6e.alex.williamson@redhat.com/
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Tested-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Jerry Snitselaar <jsnitsel@redhat.com>
Reviewed-by: Jacob Pan <jacob.pan@linux.microsoft.com>
Link: https://lore.kernel.org/r/20240815124857.70038-1-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/iommu.c
drivers/iommu/intel/iommu.h
drivers/iommu/intel/pasid.c