diff options
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/amd_iommu_init.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 10b2accd12ea..ec72c7779d6b 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c | |||
@@ -691,6 +691,7 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu, | |||
691 | 691 | ||
692 | devid = e->devid; | 692 | devid = e->devid; |
693 | devid_to = e->ext >> 8; | 693 | devid_to = e->ext >> 8; |
694 | set_dev_entry_from_acpi(iommu, devid , e->flags, 0); | ||
694 | set_dev_entry_from_acpi(iommu, devid_to, e->flags, 0); | 695 | set_dev_entry_from_acpi(iommu, devid_to, e->flags, 0); |
695 | amd_iommu_alias_table[devid] = devid_to; | 696 | amd_iommu_alias_table[devid] = devid_to; |
696 | break; | 697 | break; |
@@ -749,11 +750,13 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu, | |||
749 | 750 | ||
750 | devid = e->devid; | 751 | devid = e->devid; |
751 | for (dev_i = devid_start; dev_i <= devid; ++dev_i) { | 752 | for (dev_i = devid_start; dev_i <= devid; ++dev_i) { |
752 | if (alias) | 753 | if (alias) { |
753 | amd_iommu_alias_table[dev_i] = devid_to; | 754 | amd_iommu_alias_table[dev_i] = devid_to; |
754 | set_dev_entry_from_acpi(iommu, | 755 | set_dev_entry_from_acpi(iommu, |
755 | amd_iommu_alias_table[dev_i], | 756 | devid_to, flags, ext_flags); |
756 | flags, ext_flags); | 757 | } |
758 | set_dev_entry_from_acpi(iommu, dev_i, | ||
759 | flags, ext_flags); | ||
757 | } | 760 | } |
758 | break; | 761 | break; |
759 | default: | 762 | default: |