OSDN Git Service

iommu/vt-d: Correctly check addr alignment in qi_flush_dev_iotlb_pasid()
authorLu Baolu <baolu.lu@linux.intel.com>
Tue, 19 Jan 2021 04:35:00 +0000 (12:35 +0800)
committerJoerg Roedel <jroedel@suse.de>
Thu, 28 Jan 2021 12:17:08 +0000 (13:17 +0100)
commit494b3688bb11a21af12e92a344a1313486693d47
tree4693110886cd298853d927738ea4dfc4c87613ca
parenta44092e326d403c7878018ba532369f84d31dbfa
iommu/vt-d: Correctly check addr alignment in qi_flush_dev_iotlb_pasid()

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: 288d08e780088 ("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>
drivers/iommu/intel/dmar.c