Message ID | 1288150518-4026-7-git-send-email-nacc@us.ibm.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Benjamin Herrenschmidt |
Headers | show |
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@bga.com> > Signed-off-by: Nishanth Aravamudan <nacc@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.
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@bga.com> > > Signed-off-by: Nishanth Aravamudan <nacc@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
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 {