[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] [IA64] Fix virt_to_bus()/gnttab_dma_use_page() ordering
# HG changeset patch # User Alex Williamson <alex.williamson@xxxxxx> # Date 1181707347 21600 # Node ID a87acf37aa004a51e6e8dfead05a941ff6ab087c # Parent 5917bb91bf09a5b3c1ba8c65237cbfb5ac175a86 [IA64] Fix virt_to_bus()/gnttab_dma_use_page() ordering virt_to_bus() must be called after gnttab_dma_use_page() loop. Otherwise gnttab unmap_and_replace may happen between them, resulting in the bus address being wrong. Thanks Isaku. Signed-off-by: Alex Williamson <alex.williamson@xxxxxx> --- arch/ia64/hp/common/sba_iommu.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -r 5917bb91bf09 -r a87acf37aa00 arch/ia64/hp/common/sba_iommu.c --- a/arch/ia64/hp/common/sba_iommu.c Tue Jun 12 20:43:50 2007 -0600 +++ b/arch/ia64/hp/common/sba_iommu.c Tue Jun 12 22:02:27 2007 -0600 @@ -922,7 +922,7 @@ sba_map_single(struct device *dev, void unsigned long flags; #endif #ifdef ALLOW_IOV_BYPASS - unsigned long pci_addr = virt_to_bus(addr); + unsigned long pci_addr; #endif #ifdef CONFIG_XEN @@ -938,6 +938,7 @@ sba_map_single(struct device *dev, void #endif #ifdef ALLOW_IOV_BYPASS + pci_addr = virt_to_bus(addr); ASSERT(to_pci_dev(dev)->dma_mask); /* ** Check if the PCI device can DMA to ptr... if so, just return ptr _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |