On Fri, May 29, 2015 at 06:44:42PM +1000, Alexey Kardashevskiy wrote: > This adds tce_iommu_take_ownership() and tce_iommu_release_ownership > which call in a loop iommu_take_ownership()/iommu_release_ownership() > for every table on the group. As there is just one now, no change in > behaviour is expected. > > At the moment the iommu_table struct has a set_bypass() which enables/ > disables DMA bypass on IODA2 PHB. This is exposed to POWERPC IOMMU code > which calls this callback when external IOMMU users such as VFIO are > about to get over a PHB. > > The set_bypass() callback is not really an iommu_table function but > IOMMU/PE function. This introduces a iommu_table_group_ops struct and > adds take_ownership()/release_ownership() callbacks to it which are > called when an external user takes/releases control over the IOMMU. > > This replaces set_bypass() with ownership callbacks as it is not > necessarily just bypass enabling, it can be something else/more > so let's give it more generic name. > > The callbacks is implemented for IODA2 only. Other platforms (P5IOC2, > IODA1) will use the old iommu_take_ownership/iommu_release_ownership API. > The following patches will replace iommu_take_ownership/ > iommu_release_ownership calls in IODA2 with full IOMMU table release/ > create. > > As we here and touching bypass control, this removes > pnv_pci_ioda2_setup_bypass_pe() as it does not do much > more compared to pnv_pci_ioda2_set_bypass. This moves tce_bypass_base > initialization to pnv_pci_ioda2_setup_dma_pe. > > Signed-off-by: Alexey Kardashevskiy <aik@xxxxxxxxx> > [aw: for the vfio related changes] > Acked-by: Alex Williamson <alex.williamson@xxxxxxxxxx> > Reviewed-by: Gavin Shan <gwshan@xxxxxxxxxxxxxxxxxx> Reviewed-by: David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
pgp8rtio0lApb.pgp
Description: PGP signature