linux/drivers/iommu/intel
Lu Baolu cf7ed01e02 iommu/vt-d: Correctly check addr alignment in qi_flush_dev_iotlb_pasid()
[ Upstream commit 494b3688bb ]

An incorrect address mask is being used in the qi_flush_dev_iotlb_pasid()
to check the address alignment. This leads to a lot of spurious kernel
warnings:

[  485.837093] DMAR: Invalidate non-aligned address 7f76f47f9000, order 0
[  485.837098] DMAR: Invalidate non-aligned address 7f76f47f9000, order 0
[  492.494145] qi_flush_dev_iotlb_pasid: 5734 callbacks suppressed
[  492.494147] DMAR: Invalidate non-aligned address 7f7728800000, order 11
[  492.508965] DMAR: Invalidate non-aligned address 7f7728800000, order 11

Fix it by checking the alignment in right way.

Fixes: 288d08e780 ("iommu/vt-d: Handle non-page aligned address")
Reported-and-tested-by: Guo Kaijie <Kaijie.Guo@intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Cc: Liu Yi L <yi.l.liu@intel.com>
Link: https://lore.kernel.org/r/20210119043500.1539596-1-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2021-02-03 23:28:50 +01:00
..
debugfs.c iommu/vt-d: Rename intel-pasid.h to pasid.h 2020-07-24 10:51:21 +02:00
dmar.c iommu/vt-d: Correctly check addr alignment in qi_flush_dev_iotlb_pasid() 2021-02-03 23:28:50 +01:00
iommu.c iommu/vt-d: Update domain geometry in iommu_ops.at(de)tach_dev 2021-01-19 18:27:28 +01:00
irq_remapping.c iommu/intel: Fix memleak in intel_irq_remapping_alloc 2021-01-17 14:17:03 +01:00
Kconfig IOMMU Updates for Linux v5.9 2020-08-11 14:13:24 -07:00
Makefile iommu/vt-d: Move Kconfig and Makefile bits down into intel directory 2020-07-29 14:14:55 +02:00
pasid.c drm, iommu: Change type of pasid to u32 2020-09-17 19:21:16 +02:00
pasid.h drm, iommu: Change type of pasid to u32 2020-09-17 19:21:16 +02:00
svm.c iommu/vt-d: Fix unaligned addresses for intel_flush_svm_range_dev() 2021-01-19 18:27:33 +01:00
trace.c iommu/vt-d: Move Intel IOMMU driver into subdirectory 2020-06-10 17:46:43 +02:00