linux/drivers/iommu/amd
Adrian Huang 0bbe4ced53 iommu/amd: Fix the overwritten field in IVMD header
Commit 387caf0b75 ("iommu/amd: Treat per-device exclusion
ranges as r/w unity-mapped regions") accidentally overwrites
the 'flags' field in IVMD (struct ivmd_header) when the I/O
virtualization memory definition is associated with the
exclusion range entry. This leads to the corrupted IVMD table
(incorrect checksum). The kdump kernel reports the invalid checksum:

ACPI BIOS Warning (bug): Incorrect checksum in table [IVRS] - 0x5C, should be 0x60 (20200717/tbprint-177)
AMD-Vi: [Firmware Bug]: IVRS invalid checksum

Fix the above-mentioned issue by modifying the 'struct unity_map_entry'
member instead of the IVMD header.

Cleanup: The *exclusion_range* functions are not used anymore, so
get rid of them.

Fixes: 387caf0b75 ("iommu/amd: Treat per-device exclusion ranges as r/w unity-mapped regions")
Reported-and-tested-by: Baoquan He <bhe@redhat.com>
Signed-off-by: Adrian Huang <ahuang12@lenovo.com>
Cc: Jerry Snitselaar <jsnitsel@redhat.com>
Link: https://lore.kernel.org/r/20200926102602.19177-1-adrianhuang0701@gmail.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
2020-10-01 14:11:36 +02:00
..
amd_iommu_types.h
amd_iommu.h iommu/amd: Make amd_iommu_apply_ivrs_quirks() static inline 2020-06-30 14:47:42 +02:00
debugfs.c
init.c iommu/amd: Fix the overwritten field in IVMD header 2020-10-01 14:11:36 +02:00
iommu_v2.c iommu/amd: Do not use IOMMUv2 functionality when SME is active 2020-09-04 12:07:08 +02:00
iommu.c iommu/amd: Restore IRTE.RemapEn bit for amd_iommu_activate_guest_mode 2020-09-18 11:17:19 +02:00
Kconfig iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE 2020-09-04 11:53:18 +02:00
Makefile iommu/amd: Move Kconfig and Makefile bits down into amd directory 2020-07-29 14:15:36 +02:00
quirks.c