On Mon, Apr 21, 2014 at 01:22:13PM +0800, Wei Yang wrote: >On Mon, Apr 21, 2014 at 01:37:32PM +1000, Benjamin Herrenschmidt wrote: >>On Mon, 2014-04-21 at 10:25 +0800, Wei Yang wrote: >>> Here is a draft call flow: >>> >>> pci_device_add >>> pcibios_add_device >>> pci_dma_dev_setup >>> pnv_pci_dma_dev_setup >>> pnv_pci_ioda_dma_dev_setup >>> set_iommu_table_base_and_group <--- here >>> device_add >>> >>> When set_iommu_table_base_and_group() is invoked int >>> pnv_pci_ioda_dma_dev_setup(), the dev->kobj->sd is not initialized. The >>> dev->kobj->sd is initialized in device_add(). >>> >>> After applying this patch, the error >>> iommu_tce: 0003:05:00.0 has not been added, ret=-14 >>> is cleared. >>> >>> This patch revert the change for pnv_pci_ioda_dma_dev_setup() from commit >>> d905c5df(PPC: POWERNV: move iommu_add_device earlier). >> >>But in that case, is the group still set ? > >I think so. > >iommu_add_device() will be invoked when device_add() notify the pci bus. >
Did a quick test, after applying this patch, the logic would be the same for VF and PF hotplug, the iommu_group is created with corresponding device. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev