diff options
author | Nishanth Aravamudan <nacc@us.ibm.com> | 2010-10-26 13:35:13 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2010-12-08 23:17:50 -0500 |
commit | 7372cfb88f71ed975c8588d1ca5ecc8bb9ec7c7b (patch) | |
tree | e289a3bd72bd57d8a89a3853a928b880acb415c3 /arch | |
parent | b3c73856ae47d43d0d181f9de1c1c6c0820c4515 (diff) |
powerpc/pseries: Do not search for dma-window property on dlpar remove
The iommu_table pointer in the pci auxiliary struct of device_node has
not been used by the iommu ops since the dma refactor of
12d04eef927bf61328af2c7cbe756c96f98ac3bf, however this code still uses
it to find tables for dlpar. By only setting the PCI_DN iommu_table
pointer on nodes with dma window properties, we will be able to quickly
find the node for later checks, and can remove the table without looking
for the the dma window property on dlpar remove.
Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/platforms/pseries/iommu.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c index 9fecb313a4c9..0dbadbb34f3a 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c | |||
@@ -455,9 +455,6 @@ static void pci_dma_bus_setup_pSeriesLP(struct pci_bus *bus) | |||
455 | ppci->iommu_table = iommu_init_table(tbl, ppci->phb->node); | 455 | ppci->iommu_table = iommu_init_table(tbl, ppci->phb->node); |
456 | pr_debug(" created table: %p\n", ppci->iommu_table); | 456 | pr_debug(" created table: %p\n", ppci->iommu_table); |
457 | } | 457 | } |
458 | |||
459 | if (pdn != dn) | ||
460 | PCI_DN(dn)->iommu_table = ppci->iommu_table; | ||
461 | } | 458 | } |
462 | 459 | ||
463 | 460 | ||
@@ -571,8 +568,7 @@ static int iommu_reconfig_notifier(struct notifier_block *nb, unsigned long acti | |||
571 | 568 | ||
572 | switch (action) { | 569 | switch (action) { |
573 | case PSERIES_RECONFIG_REMOVE: | 570 | case PSERIES_RECONFIG_REMOVE: |
574 | if (pci && pci->iommu_table && | 571 | if (pci && pci->iommu_table) |
575 | of_get_property(np, "ibm,dma-window", NULL)) | ||
576 | iommu_free_table(pci->iommu_table, np->full_name); | 572 | iommu_free_table(pci->iommu_table, np->full_name); |
577 | break; | 573 | break; |
578 | default: | 574 | default: |