On Wed, 2018-05-30 at 09:22:50 UTC, Alexey Kardashevskiy wrote: > When IODA2 creates a PE, it creates an IOMMU table with it_ops::free > set to pnv_ioda2_table_free() which calls pnv_pci_ioda2_table_free_pages(). > > Since iommu_tce_table_put() calls it_ops::free when the last reference > to the table is released, explicit call to pnv_pci_ioda2_table_free_pages() > is not needed so let's remove it. > > This should fix double free in the case of PCI hotuplug as > pnv_pci_ioda2_table_free_pages() does not reset neither > iommu_table::it_base nor ::it_size. > > This was not exposed by SRIOV as it uses different code path via > pnv_pcibios_sriov_disable(). > > IODA1 does not inialize it_ops::free so it does not have this issue. > > Fixes: c5f7700bb "powerpc/powernv: Dynamically release PE" > Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/98fd72fe82527fd26618062b60cfd3 cheers