mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-05-04 06:13:46 +00: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 <zhen-hual@hp.com> Tested-by: Baoquan He <bhe@redhat.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
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 i;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ret = si_domain_init(hw);
|
|
||||||
if (ret)
|
|
||||||
return -EFAULT;
|
|
||||||
|
|
||||||
for_each_pci_dev(pdev) {
|
for_each_pci_dev(pdev) {
|
||||||
ret = dev_prepare_static_identity_mapping(&pdev->dev, hw);
|
ret = dev_prepare_static_identity_mapping(&pdev->dev, hw);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -2780,7 +2776,7 @@ static int __init iommu_prepare_static_identity_mapping(int hw)
|
||||||
|
|
||||||
if (dev->bus != &acpi_bus_type)
|
if (dev->bus != &acpi_bus_type)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
adev= to_acpi_device(dev);
|
adev= to_acpi_device(dev);
|
||||||
mutex_lock(&adev->physical_node_lock);
|
mutex_lock(&adev->physical_node_lock);
|
||||||
list_for_each_entry(pn, &adev->physical_node_list, node) {
|
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;
|
iommu_identity_mapping |= IDENTMAP_GFX;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (iommu_identity_mapping) {
|
||||||
|
ret = si_domain_init(hw_pass_through);
|
||||||
|
if (ret)
|
||||||
|
goto free_iommu;
|
||||||
|
}
|
||||||
|
|
||||||
check_tylersburg_isoch();
|
check_tylersburg_isoch();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Reference in a new issue