patch-2.4.23 linux-2.4.23/arch/ppc/kernel/pci-dma.c
Next file: linux-2.4.23/arch/ppc/kernel/ppc-stub.c
Previous file: linux-2.4.23/arch/ppc/kernel/mk_defs.c
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
2003-11-28 10:26:19.000000000 -0800
- Orig file:
linux-2.4.22/arch/ppc/kernel/pci-dma.c
- Orig date:
2003-06-13 07:51:31.000000000 -0700
diff -urN linux-2.4.22/arch/ppc/kernel/pci-dma.c linux-2.4.23/arch/ppc/kernel/pci-dma.c
@@ -20,13 +20,20 @@
void *ret;
int gfp = GFP_ATOMIC;
- if (hwdev == NULL || hwdev->dma_mask != 0xffffffff)
+ if (hwdev == NULL || hwdev->dma_mask < 0xffffffff)
gfp |= GFP_DMA;
+
+#ifdef CONFIG_NOT_COHERENT_CACHE
+ ret = consistent_alloc(gfp, size, dma_handle);
+#else
ret = (void *)__get_free_pages(gfp, get_order(size));
+#endif
if (ret != NULL) {
memset(ret, 0, size);
+#ifndef CONFIG_NOT_COHERENT_CACHE
*dma_handle = virt_to_bus(ret);
+#endif
}
return ret;
}
@@ -34,5 +41,9 @@
void pci_free_consistent(struct pci_dev *hwdev, size_t size,
void *vaddr, dma_addr_t dma_handle)
{
+#ifdef CONFIG_NOT_COHERENT_CACHE
+ consistent_free(vaddr);
+#else
free_pages((unsigned long)vaddr, get_order(size));
+#endif
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)