[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] AMD IOMMU: adjust flush function parameters
# HG changeset patch # User Jan Beulich <jbeulich@xxxxxxxx> # Date 1357559599 -3600 # Node ID 2a2c63f641ee3bda4ad552eb0b3ea479d37590cc # Parent afb598bd0f5436bea15b7ef842e8ad5c6adefa1a AMD IOMMU: adjust flush function parameters ... to use a (struct pci_dev *, devfn) pair. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: "Zhang, Xiantao" <xiantao.zhang@xxxxxxxxx> --- diff -r afb598bd0f54 -r 2a2c63f641ee xen/drivers/passthrough/amd/iommu_cmd.c --- a/xen/drivers/passthrough/amd/iommu_cmd.c Mon Jan 07 12:52:29 2013 +0100 +++ b/xen/drivers/passthrough/amd/iommu_cmd.c Mon Jan 07 12:53:19 2013 +0100 @@ -287,12 +287,12 @@ void invalidate_iommu_all(struct amd_iom send_iommu_command(iommu, cmd); } -void amd_iommu_flush_iotlb(struct pci_dev *pdev, +void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev, uint64_t gaddr, unsigned int order) { unsigned long flags; struct amd_iommu *iommu; - unsigned int bdf, req_id, queueid, maxpend; + unsigned int req_id, queueid, maxpend; struct pci_ats_dev *ats_pdev; if ( !ats_enabled ) @@ -305,8 +305,8 @@ void amd_iommu_flush_iotlb(struct pci_de if ( !pci_ats_enabled(ats_pdev->seg, ats_pdev->bus, ats_pdev->devfn) ) return; - bdf = PCI_BDF2(ats_pdev->bus, ats_pdev->devfn); - iommu = find_iommu_for_device(ats_pdev->seg, bdf); + iommu = find_iommu_for_device(ats_pdev->seg, + PCI_BDF2(ats_pdev->bus, ats_pdev->devfn)); if ( !iommu ) { @@ -319,7 +319,7 @@ void amd_iommu_flush_iotlb(struct pci_de if ( !iommu_has_cap(iommu, PCI_CAP_IOTLB_SHIFT) ) return; - req_id = get_dma_requestor_id(iommu->seg, bdf); + req_id = get_dma_requestor_id(iommu->seg, PCI_BDF2(ats_pdev->bus, devfn)); queueid = req_id; maxpend = ats_pdev->ats_queue_depth & 0xff; @@ -339,7 +339,7 @@ static void amd_iommu_flush_all_iotlbs(s return; for_each_pdev( d, pdev ) - amd_iommu_flush_iotlb(pdev, gaddr, order); + amd_iommu_flush_iotlb(pdev->devfn, pdev, gaddr, order); } /* Flush iommu cache after p2m changes. */ diff -r afb598bd0f54 -r 2a2c63f641ee xen/drivers/passthrough/amd/pci_amd_iommu.c --- a/xen/drivers/passthrough/amd/pci_amd_iommu.c Mon Jan 07 12:52:29 2013 +0100 +++ b/xen/drivers/passthrough/amd/pci_amd_iommu.c Mon Jan 07 12:53:19 2013 +0100 @@ -138,7 +138,7 @@ static void amd_iommu_setup_domain_devic if ( devfn == pdev->devfn ) enable_ats_device(iommu->seg, bus, devfn); - amd_iommu_flush_iotlb(pdev, INV_IOMMU_ALL_PAGES_ADDRESS, 0); + amd_iommu_flush_iotlb(devfn, pdev, INV_IOMMU_ALL_PAGES_ADDRESS, 0); } } diff -r afb598bd0f54 -r 2a2c63f641ee xen/include/asm-x86/hvm/svm/amd-iommu-proto.h --- a/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h Mon Jan 07 12:52:29 2013 +0100 +++ b/xen/include/asm-x86/hvm/svm/amd-iommu-proto.h Mon Jan 07 12:53:19 2013 +0100 @@ -78,8 +78,8 @@ void iommu_dte_set_guest_cr3(u32 *dte, u void amd_iommu_flush_all_pages(struct domain *d); void amd_iommu_flush_pages(struct domain *d, unsigned long gfn, unsigned int order); -void amd_iommu_flush_iotlb(struct pci_dev *pdev, uint64_t gaddr, - unsigned int order); +void amd_iommu_flush_iotlb(u8 devfn, const struct pci_dev *pdev, + uint64_t gaddr, unsigned int order); void amd_iommu_flush_device(struct amd_iommu *iommu, uint16_t bdf); void amd_iommu_flush_intremap(struct amd_iommu *iommu, uint16_t bdf); void amd_iommu_flush_all_caches(struct amd_iommu *iommu); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |