Commit 1fba2bf8 authored by Michael Ellerman's avatar Michael Ellerman

Revert "powerpc/pseries/iommu: Fix iommu initialisation during DLPAR add"

This reverts commit ed8b94f6.

Gaurav reported that there are still problems with the patch and it
should be reverted pending a fuller fix.

Link: https://lore.kernel.org/all/4f6fc1ac-7a76-4447-9d0e-f55c0be373f8@linux.ibm.com/Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 1c57b9f6
...@@ -29,9 +29,6 @@ void *pci_traverse_device_nodes(struct device_node *start, ...@@ -29,9 +29,6 @@ void *pci_traverse_device_nodes(struct device_node *start,
void *(*fn)(struct device_node *, void *), void *(*fn)(struct device_node *, void *),
void *data); void *data);
extern void pci_devs_phb_init_dynamic(struct pci_controller *phb); extern void pci_devs_phb_init_dynamic(struct pci_controller *phb);
extern void ppc_iommu_register_device(struct pci_controller *phb);
extern void ppc_iommu_unregister_device(struct pci_controller *phb);
/* From rtas_pci.h */ /* From rtas_pci.h */
extern void init_pci_config_tokens (void); extern void init_pci_config_tokens (void);
......
...@@ -1388,21 +1388,6 @@ static const struct attribute_group *spapr_tce_iommu_groups[] = { ...@@ -1388,21 +1388,6 @@ static const struct attribute_group *spapr_tce_iommu_groups[] = {
NULL, NULL,
}; };
void ppc_iommu_register_device(struct pci_controller *phb)
{
iommu_device_sysfs_add(&phb->iommu, phb->parent,
spapr_tce_iommu_groups, "iommu-phb%04x",
phb->global_number);
iommu_device_register(&phb->iommu, &spapr_tce_iommu_ops,
phb->parent);
}
void ppc_iommu_unregister_device(struct pci_controller *phb)
{
iommu_device_unregister(&phb->iommu);
iommu_device_sysfs_remove(&phb->iommu);
}
/* /*
* This registers IOMMU devices of PHBs. This needs to happen * This registers IOMMU devices of PHBs. This needs to happen
* after core_initcall(iommu_init) + postcore_initcall(pci_driver_init) and * after core_initcall(iommu_init) + postcore_initcall(pci_driver_init) and
...@@ -1413,7 +1398,11 @@ static int __init spapr_tce_setup_phb_iommus_initcall(void) ...@@ -1413,7 +1398,11 @@ static int __init spapr_tce_setup_phb_iommus_initcall(void)
struct pci_controller *hose; struct pci_controller *hose;
list_for_each_entry(hose, &hose_list, list_node) { list_for_each_entry(hose, &hose_list, list_node) {
ppc_iommu_register_device(hose); iommu_device_sysfs_add(&hose->iommu, hose->parent,
spapr_tce_iommu_groups, "iommu-phb%04x",
hose->global_number);
iommu_device_register(&hose->iommu, &spapr_tce_iommu_ops,
hose->parent);
} }
return 0; return 0;
} }
......
...@@ -35,8 +35,6 @@ struct pci_controller *init_phb_dynamic(struct device_node *dn) ...@@ -35,8 +35,6 @@ struct pci_controller *init_phb_dynamic(struct device_node *dn)
pseries_msi_allocate_domains(phb); pseries_msi_allocate_domains(phb);
ppc_iommu_register_device(phb);
/* Create EEH devices for the PHB */ /* Create EEH devices for the PHB */
eeh_phb_pe_create(phb); eeh_phb_pe_create(phb);
...@@ -78,8 +76,6 @@ int remove_phb_dynamic(struct pci_controller *phb) ...@@ -78,8 +76,6 @@ int remove_phb_dynamic(struct pci_controller *phb)
} }
} }
ppc_iommu_unregister_device(phb);
pseries_msi_free_domains(phb); pseries_msi_free_domains(phb);
/* Keep a reference so phb isn't freed yet */ /* Keep a reference so phb isn't freed yet */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment