mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
iommu/vt-d: Allocate si_domain in init_dmars()
This seperates the allocation of the si_domain from its assignment to devices. It makes sure that the iommu=pt case still works in the kdump kernel, when we have to defer the assignment of devices to domains to device driver initialization time. Tested-by: ZhenHua Li <[email protected]> Tested-by: Baoquan He <[email protected]> Signed-off-by: Joerg Roedel <[email protected]>
This commit is contained in:
parent
cf484d0e69
commit
86080ccc22
1 changed files with 7 additions and 5 deletions
|
|
@ -2763,10 +2763,6 @@ static int __init iommu_prepare_static_identity_mapping(int hw)
|
|||
int i;
|
||||
int ret = 0;
|
||||
|
||||
ret = si_domain_init(hw);
|
||||
if (ret)
|
||||
return -EFAULT;
|
||||
|
||||
for_each_pci_dev(pdev) {
|
||||
ret = dev_prepare_static_identity_mapping(&pdev->dev, hw);
|
||||
if (ret)
|
||||
|
|
@ -2780,7 +2776,7 @@ static int __init iommu_prepare_static_identity_mapping(int hw)
|
|||
|
||||
if (dev->bus != &acpi_bus_type)
|
||||
continue;
|
||||
|
||||
|
||||
adev= to_acpi_device(dev);
|
||||
mutex_lock(&adev->physical_node_lock);
|
||||
list_for_each_entry(pn, &adev->physical_node_list, node) {
|
||||
|
|
@ -3114,6 +3110,12 @@ static int __init init_dmars(void)
|
|||
iommu_identity_mapping |= IDENTMAP_GFX;
|
||||
#endif
|
||||
|
||||
if (iommu_identity_mapping) {
|
||||
ret = si_domain_init(hw_pass_through);
|
||||
if (ret)
|
||||
goto free_iommu;
|
||||
}
|
||||
|
||||
check_tylersburg_isoch();
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue