diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2009-05-22 06:48:05 -0400 |
---|---|---|
committer | Joerg Roedel <joerg.roedel@amd.com> | 2009-05-28 12:06:47 -0400 |
commit | 0bc252f430d6a3ac7836d40f00d0ae020593b11b (patch) | |
tree | a8a4ae4cf393588fcb03efc1370da0efd745c33f /arch | |
parent | 7455aab1f95f6464c5af3fbdee28744e73f38564 (diff) |
amd-iommu: make sure only ivmd entries are parsed
The bug never triggered. But it should be fixed to protect against
broken ACPI tables in the future.
[ Impact: protect against broken ivrs acpi table ]
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/amd_iommu_init.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 53f93db54c4d..a3a2b98bb39e 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c | |||
@@ -906,6 +906,8 @@ static int __init init_unity_map_range(struct ivmd_header *m) | |||
906 | 906 | ||
907 | switch (m->type) { | 907 | switch (m->type) { |
908 | default: | 908 | default: |
909 | kfree(e); | ||
910 | return 0; | ||
909 | case ACPI_IVMD_TYPE: | 911 | case ACPI_IVMD_TYPE: |
910 | e->devid_start = e->devid_end = m->devid; | 912 | e->devid_start = e->devid_end = m->devid; |
911 | break; | 913 | break; |