Re: [RFC PATCH 6/7 v2] ppc/iommu: pass phb only to iommu_table_setparms_lpar
On 09.12.2010 [15:24:39 +1100], Benjamin Herrenschmidt wrote: On Tue, 2010-10-26 at 20:35 -0700, Nishanth Aravamudan wrote: iommu_table_setparms_lpar needs either the phb or the subbusnumber (not both), pass the phb to make it similar to iommu_table_setparms. Note: In cases where a caller was passing bus-number previously to iommu_table_setparms_lpar() rather than phb-bus-number, this can lead to a different value in tbl-it_busno. The only example of this was the removed pci_dma_dev_setup_pSeriesLP(), removed in ppc/iommu: remove unneeded pci_dma_dev_setup_pSeriesLP. Signed-off-by: Milton Miller milt...@bga.com Signed-off-by: Nishanth Aravamudan n...@us.ibm.com --- arch/powerpc/platforms/pseries/iommu.c |8 +++- 1 files changed, 3 insertions(+), 5 deletions(-) diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c index 9d564b9..45c6865 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -323,14 +323,13 @@ static void iommu_table_setparms(struct pci_controller *phb, static void iommu_table_setparms_lpar(struct pci_controller *phb, struct device_node *dn, struct iommu_table *tbl, - const void *dma_window, - int bussubno) + const void *dma_window) { unsigned long offset, size; - tbl-it_busno = bussubno; of_parse_dma_window(dn, dma_window, tbl-it_index, offset, size); + tbl-it_busno = phb-bus-number; tbl-it_base = 0; tbl-it_blocksize = 16; tbl-it_type = TCE_PCI; @@ -534,8 +533,7 @@ static void pci_dma_dev_setup_pSeriesLP(struct pci_dev *dev) if (!pci-iommu_table) { tbl = kzalloc_node(sizeof(struct iommu_table), GFP_KERNEL, pci-phb-node); - iommu_table_setparms_lpar(pci-phb, pdn, tbl, dma_window, - pci-phb-bus-number); + iommu_table_setparms_lpar(pci-phb, pdn, tbl, dma_window); pci-iommu_table = iommu_init_table(tbl, pci-phb-node); pr_debug( created table: %p\n, pci-iommu_table); } else { There's another caller :-) I've fixed that up locally and will push with the fix. Shoot! Thanks for catching that. -Nish -- Nishanth Aravamudan n...@us.ibm.com IBM Linux Technology Center ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [RFC PATCH 6/7 v2] ppc/iommu: pass phb only to iommu_table_setparms_lpar
On Tue, 2010-10-26 at 20:35 -0700, Nishanth Aravamudan wrote: iommu_table_setparms_lpar needs either the phb or the subbusnumber (not both), pass the phb to make it similar to iommu_table_setparms. Note: In cases where a caller was passing bus-number previously to iommu_table_setparms_lpar() rather than phb-bus-number, this can lead to a different value in tbl-it_busno. The only example of this was the removed pci_dma_dev_setup_pSeriesLP(), removed in ppc/iommu: remove unneeded pci_dma_dev_setup_pSeriesLP. Signed-off-by: Milton Miller milt...@bga.com Signed-off-by: Nishanth Aravamudan n...@us.ibm.com --- arch/powerpc/platforms/pseries/iommu.c |8 +++- 1 files changed, 3 insertions(+), 5 deletions(-) diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c index 9d564b9..45c6865 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -323,14 +323,13 @@ static void iommu_table_setparms(struct pci_controller *phb, static void iommu_table_setparms_lpar(struct pci_controller *phb, struct device_node *dn, struct iommu_table *tbl, - const void *dma_window, - int bussubno) + const void *dma_window) { unsigned long offset, size; - tbl-it_busno = bussubno; of_parse_dma_window(dn, dma_window, tbl-it_index, offset, size); + tbl-it_busno = phb-bus-number; tbl-it_base = 0; tbl-it_blocksize = 16; tbl-it_type = TCE_PCI; @@ -534,8 +533,7 @@ static void pci_dma_dev_setup_pSeriesLP(struct pci_dev *dev) if (!pci-iommu_table) { tbl = kzalloc_node(sizeof(struct iommu_table), GFP_KERNEL, pci-phb-node); - iommu_table_setparms_lpar(pci-phb, pdn, tbl, dma_window, - pci-phb-bus-number); + iommu_table_setparms_lpar(pci-phb, pdn, tbl, dma_window); pci-iommu_table = iommu_init_table(tbl, pci-phb-node); pr_debug( created table: %p\n, pci-iommu_table); } else { There's another caller :-) I've fixed that up locally and will push with the fix. Cheers, Ben. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev