diff options
| -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: |
