Commit 0f764806 authored by Joerg Roedel's avatar Joerg Roedel

x86/amd-iommu: Fix initialization failure panic

The assumption that acpi_table_parse passes the return value
of the hanlder function to the caller proved wrong
recently. The return value of the handler function is
totally ignored. This makes the initialization code for AMD
IOMMU buggy in a way that could cause a kernel panic on
initialization. This patch fixes the issue in the AMD IOMMU
driver.

Cc: stable@kernel.org
Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
parent 55639353
......@@ -137,6 +137,11 @@ int amd_iommus_present;
/* IOMMUs have a non-present cache? */
bool amd_iommu_np_cache __read_mostly;
/*
* Set to true if ACPI table parsing and hardware intialization went properly
*/
static bool amd_iommu_initialized;
/*
* List of protection domains - used during resume
*/
......@@ -929,6 +934,8 @@ static int __init init_iommu_all(struct acpi_table_header *table)
}
WARN_ON(p != end);
amd_iommu_initialized = true;
return 0;
}
......@@ -1263,6 +1270,9 @@ static int __init amd_iommu_init(void)
if (acpi_table_parse("IVRS", init_iommu_all) != 0)
goto free;
if (!amd_iommu_initialized)
goto free;
if (acpi_table_parse("IVRS", init_memory_definitions) != 0)
goto free;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment