aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/pci_iommu.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2006-06-06 10:11:35 -0400
committerPaul Mackerras <paulus@samba.org>2006-06-09 07:24:01 -0400
commit8eb6c6e3b9c8bfed3d75536ab142d7694627c2e5 (patch)
tree7dd9c4146f60e88ca1fc8ebe976e1b7a3ae6ea2c /arch/powerpc/kernel/pci_iommu.c
parent318facbee05417fb432603a8309a10cdb942a87b (diff)
[PATCH] powerpc: node-aware dma allocations
Make sure dma_alloc_coherent allocates memory from the local node. This is important on Cell where we avoid going through the slow cpu interconnect. Note: I could only test this patch on Cell, it should be verified on some pseries machine by those that have the hardware. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/pci_iommu.c')
-rw-r--r--arch/powerpc/kernel/pci_iommu.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/pci_iommu.c b/arch/powerpc/kernel/pci_iommu.c
index 48aa82d01624..7fb4cca021be 100644
--- a/arch/powerpc/kernel/pci_iommu.c
+++ b/arch/powerpc/kernel/pci_iommu.c
@@ -86,7 +86,8 @@ static void *pci_iommu_alloc_coherent(struct device *hwdev, size_t size,
86 dma_addr_t *dma_handle, gfp_t flag) 86 dma_addr_t *dma_handle, gfp_t flag)
87{ 87{
88 return iommu_alloc_coherent(device_to_table(hwdev), size, dma_handle, 88 return iommu_alloc_coherent(device_to_table(hwdev), size, dma_handle,
89 device_to_mask(hwdev), flag); 89 device_to_mask(hwdev), flag,
90 pcibus_to_node(to_pci_dev(hwdev)->bus));
90} 91}
91 92
92static void pci_iommu_free_coherent(struct device *hwdev, size_t size, 93static void pci_iommu_free_coherent(struct device *hwdev, size_t size,