[RFC PATCH 6/7 v2] ppc/iommu: pass phb only to iommu_table_setparms_lpar
Nishanth Aravamudan
nacc at us.ibm.com
Fri Dec 10 03:16:00 EST 2010
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 <miltonm at bga.com>
> > Signed-off-by: Nishanth Aravamudan <nacc at 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 <nacc at us.ibm.com>
IBM Linux Technology Center
More information about the Linuxppc-dev
mailing list