Had a talk with Alexey, who suggest me to send this for comments. On powernv platform, the P7IOC provide limited range of DMA space. For example, there are only 8 DMA segments on each PHB. When there are more than 8 PEs, some of PE's tce32_table is not initialized.
In the normal case, 8 PE is enough. If VF is enabled, 8 is not enough. This lead to some pci_dev's iommu_table_base is NULL. Which results this device couldn't be added to any iommu_group, and finally dev->iommu_group is left NULL. When this VF is removed from the system, this will case kernel crash. These two patches add the check to guard the kernel. Comments are welcome for which place is better. One more comment from Alexey is where we allow these non-DMA capable device exist in the system. Maybe we should not allow to create a pci_dev for those who can't get proper DMA space. Your comments are welcome :-) Thanks in advance. Wei Yang (2): iommu: Don't remove device when no iommu_group associated powerpc/iommu: check dev->iommu_group before remove a device from iommu_group arch/powerpc/kernel/iommu.c | 3 ++- drivers/iommu/iommu.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletions(-) -- 1.7.5.4 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev