Alexey Kardashevskiy <aik@xxxxxxxxx> writes: > diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c > index b86a6e0..1168b185 100644 > --- a/arch/powerpc/platforms/powernv/pci-ioda.c > +++ b/arch/powerpc/platforms/powernv/pci-ioda.c > @@ -2735,12 +2733,68 @@ static struct iommu_table_group_ops pnv_pci_ioda2_npu_ops = { > .release_ownership = pnv_ioda2_release_ownership, > }; > > +static void pnv_ioda_setup_bus_iommu_group_add_devices(struct pnv_ioda_pe *pe, > + struct pci_bus *bus) > +{ > + struct pci_dev *dev; > + > + list_for_each_entry(dev, &bus->devices, bus_list) { > + iommu_add_device(&pe->table_group, &dev->dev); > + > + if ((pe->flags & PNV_IODA_PE_BUS_ALL) && dev->subordinate) > + pnv_ioda_setup_bus_iommu_group_add_devices(pe, > + dev->subordinate); > + } > +} > + > +static void pnv_ioda_setup_bus_iommu_group(struct pnv_ioda_pe *pe) > +{ > + if (!pnv_pci_ioda_pe_dma_weight(pe)) > + return; > + > + iommu_register_group(&pe->table_group, pe->phb->hose->global_number, > + pe->pe_number); > + > + /* > + * set_iommu_table_base(&pe->pdev->dev, tbl) should have been called > + * by now > + */ > + if (pe->flags & PNV_IODA_PE_DEV) > + iommu_add_device(&pe->table_group, &pe->pdev->dev); > + else if (pe->flags & (PNV_IODA_PE_BUS | PNV_IODA_PE_BUS_ALL)) > + pnv_ioda_setup_bus_iommu_group_add_devices(pe, pe->pbus); > +} > + This breaks skiroot_defconfig with: arch/powerpc/platforms/powernv/pci-ioda.c:2731:13: error: 'pnv_ioda_setup_bus_iommu_group' defined but not used [-Werror=unused-function] http://kisskb.ellerman.id.au/kisskb/buildresult/13623033/ cheers