Message ID | 1346807975-2323-1-git-send-email-aik@ozlabs.ru (mailing list archive) |
---|---|
State | Accepted, archived |
Commit | 11f63d3fb9c4257b1f005db8d11deba9f992bdf6 |
Headers | show |
On Wed, Sep 05, 2012 at 11:19:35AM +1000, Alexey Kardashevskiy wrote: > The upcoming VFIO support requires a way to know which > entry in the TCE map is not empty in order to do cleanup > at QEMU exit/crash. This patch adds such functionality > to POWERNV platform code. > > Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Looks good to me. Ben, do you plan to merge this soon? > --- > arch/powerpc/platforms/powernv/pci.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c > index be3cfc5..05205cf 100644 > --- a/arch/powerpc/platforms/powernv/pci.c > +++ b/arch/powerpc/platforms/powernv/pci.c > @@ -447,6 +447,11 @@ static void pnv_tce_free(struct iommu_table *tbl, long index, long npages) > pnv_tce_invalidate(tbl, tces, tcep - 1); > } > > +static unsigned long pnv_tce_get(struct iommu_table *tbl, long index) > +{ > + return ((u64 *)tbl->it_base)[index - tbl->it_offset]; > +} > + > void pnv_pci_setup_iommu_table(struct iommu_table *tbl, > void *tce_mem, u64 tce_size, > u64 dma_offset) > @@ -597,6 +602,7 @@ void __init pnv_pci_init(void) > ppc_md.pci_dma_dev_setup = pnv_pci_dma_dev_setup; > ppc_md.tce_build = pnv_tce_build; > ppc_md.tce_free = pnv_tce_free; > + ppc_md.tce_get = pnv_tce_get; > ppc_md.pci_probe_mode = pnv_pci_probe_mode; > set_pci_dma_ops(&dma_iommu_ops); >
On Mon, 2012-09-10 at 12:35 +1000, David Gibson wrote:
> Looks good to me. Ben, do you plan to merge this soon?
Yes, it will hit powerpc-next any minute now.
Cheers,
Ben.
diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c index be3cfc5..05205cf 100644 --- a/arch/powerpc/platforms/powernv/pci.c +++ b/arch/powerpc/platforms/powernv/pci.c @@ -447,6 +447,11 @@ static void pnv_tce_free(struct iommu_table *tbl, long index, long npages) pnv_tce_invalidate(tbl, tces, tcep - 1); } +static unsigned long pnv_tce_get(struct iommu_table *tbl, long index) +{ + return ((u64 *)tbl->it_base)[index - tbl->it_offset]; +} + void pnv_pci_setup_iommu_table(struct iommu_table *tbl, void *tce_mem, u64 tce_size, u64 dma_offset) @@ -597,6 +602,7 @@ void __init pnv_pci_init(void) ppc_md.pci_dma_dev_setup = pnv_pci_dma_dev_setup; ppc_md.tce_build = pnv_tce_build; ppc_md.tce_free = pnv_tce_free; + ppc_md.tce_get = pnv_tce_get; ppc_md.pci_probe_mode = pnv_pci_probe_mode; set_pci_dma_ops(&dma_iommu_ops);
The upcoming VFIO support requires a way to know which entry in the TCE map is not empty in order to do cleanup at QEMU exit/crash. This patch adds such functionality to POWERNV platform code. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> --- arch/powerpc/platforms/powernv/pci.c | 6 ++++++ 1 file changed, 6 insertions(+)