This patch will attempt to describe the region type in the event that a given RMRR entry is not within a reserved region.
Signed-off-by: Aaron Tomlin <atom...@redhat.com> --- arch/x86/include/asm/iommu.h | 9 ++++++--- arch/x86/kernel/e820.c | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/arch/x86/include/asm/iommu.h b/arch/x86/include/asm/iommu.h index bf1ed2ddc74b..d21366644520 100644 --- a/arch/x86/include/asm/iommu.h +++ b/arch/x86/include/asm/iommu.h @@ -17,12 +17,15 @@ arch_rmrr_sanity_check(struct acpi_dmar_reserved_memory *rmrr) { u64 start = rmrr->base_address; u64 end = rmrr->end_address + 1; + struct e820_entry *entry; - if (e820__mapped_all(start, end, E820_TYPE_RESERVED)) + entry = __e820__mapped_all(start, end, 0); + + if (entry && entry->type == E820_TYPE_RESERVED) return 0; - pr_err(FW_BUG "No firmware reserved region can cover this RMRR [%#018Lx-%#018Lx], contact BIOS vendor for fixes\n", - start, end - 1); + pr_err(FW_BUG "No firmware reserved region can cover this RMRR [%s: %#018Lx-%#018Lx], contact BIOS vendor for fixes\n", + e820_type_to_string(entry), start, end - 1); return -EINVAL; } diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 95b994cf80cd..165e9a444bb9 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -1073,7 +1073,7 @@ void __init e820__finish_early_params(void) const char *__init e820_type_to_string(struct e820_entry *entry) { - switch (entry->type) { + switch (entry && entry->type) { case E820_TYPE_RESERVED_KERN: /* Fall-through: */ case E820_TYPE_RAM: return "System RAM"; case E820_TYPE_ACPI: return "ACPI Tables"; @@ -1083,8 +1083,9 @@ const char *__init e820_type_to_string(struct e820_entry *entry) case E820_TYPE_PMEM: return "Persistent Memory"; case E820_TYPE_RESERVED: return "Reserved"; case E820_TYPE_SOFT_RESERVED: return "Soft Reserved"; - default: return "Unknown E820 type"; + default: break; } + return "Unknown E820 type"; } static unsigned long __init e820_type_to_iomem_type(struct e820_entry *entry) -- 2.34.1 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu