forked from luck/tmp_suning_uos_patched
amd-iommu: handle alias entries correctly in init code
An alias entry in the ACPI table means that the device can send requests to the IOMMU with both device ids, its own and the alias. This is not handled properly in the ACPI init code. This patch fixes the issue. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
6a047d8b9e
commit
7a6a3a086f
@ -691,6 +691,7 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu,
|
||||
|
||||
devid = e->devid;
|
||||
devid_to = e->ext >> 8;
|
||||
set_dev_entry_from_acpi(iommu, devid , e->flags, 0);
|
||||
set_dev_entry_from_acpi(iommu, devid_to, e->flags, 0);
|
||||
amd_iommu_alias_table[devid] = devid_to;
|
||||
break;
|
||||
@ -749,11 +750,13 @@ static void __init init_iommu_from_acpi(struct amd_iommu *iommu,
|
||||
|
||||
devid = e->devid;
|
||||
for (dev_i = devid_start; dev_i <= devid; ++dev_i) {
|
||||
if (alias)
|
||||
if (alias) {
|
||||
amd_iommu_alias_table[dev_i] = devid_to;
|
||||
set_dev_entry_from_acpi(iommu,
|
||||
amd_iommu_alias_table[dev_i],
|
||||
flags, ext_flags);
|
||||
set_dev_entry_from_acpi(iommu,
|
||||
devid_to, flags, ext_flags);
|
||||
}
|
||||
set_dev_entry_from_acpi(iommu, dev_i,
|
||||
flags, ext_flags);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user