| From 08f5ae4b22ac7d5fd19229b49f49dfb7bce8710f Mon Sep 17 00:00:00 2001 |
| From: Zhenzhong Duan <zhenzhong.duan@gmail.com> |
| Date: Thu, 12 Mar 2020 14:09:54 +0800 |
| Subject: [PATCH] iommu/vt-d: Fix the wrong printing in RHSA parsing |
| |
| commit b0bb0c22c4db623f2e7b1a471596fbf1c22c6dc5 upstream. |
| |
| When base address in RHSA structure doesn't match base address in |
| each DRHD structure, the base address in last DRHD is printed out. |
| |
| This doesn't make sense when there are multiple DRHD units, fix it |
| by printing the buggy RHSA's base address. |
| |
| Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> |
| Signed-off-by: Zhenzhong Duan <zhenzhong.duan@gmail.com> |
| Fixes: fd0c8894893cb ("intel-iommu: Set a more specific taint flag for invalid BIOS DMAR tables") |
| Signed-off-by: Joerg Roedel <jroedel@suse.de> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c |
| index e6ffcd05370f..a4fe702fa3f6 100644 |
| --- a/drivers/iommu/dmar.c |
| +++ b/drivers/iommu/dmar.c |
| @@ -475,7 +475,7 @@ static int dmar_parse_one_rhsa(struct acpi_dmar_header *header, void *arg) |
| pr_warn(FW_BUG |
| "Your BIOS is broken; RHSA refers to non-existent DMAR unit at %llx\n" |
| "BIOS vendor: %s; Ver: %s; Product Version: %s\n", |
| - drhd->reg_base_addr, |
| + rhsa->base_address, |
| dmi_get_system_info(DMI_BIOS_VENDOR), |
| dmi_get_system_info(DMI_BIOS_VERSION), |
| dmi_get_system_info(DMI_PRODUCT_VERSION)); |
| -- |
| 2.7.4 |
| |