aboutsummaryrefslogtreecommitdiffstats
path: root/linux-2.6.9-xen-sparse
diff options
context:
space:
mode:
authorcl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>2004-10-25 20:21:00 +0000
committercl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk>2004-10-25 20:21:00 +0000
commit1c3b2459093b26ececa76e397397f9c8de816311 (patch)
treeff8428f18d13329365bee0a3c77dee2ad50d8c4b /linux-2.6.9-xen-sparse
parent3fc334c17d4e59cf598db30b26d4d41d94137384 (diff)
downloadxen-1c3b2459093b26ececa76e397397f9c8de816311.tar.gz
xen-1c3b2459093b26ececa76e397397f9c8de816311.tar.bz2
xen-1c3b2459093b26ececa76e397397f9c8de816311.zip
bitkeeper revision 1.1159.1.275 (417d602cyKuqblSyKliOgatz5hdcRw)
Fix 2.4.x build after 2.6.9 upgrade.
Diffstat (limited to 'linux-2.6.9-xen-sparse')
-rw-r--r--linux-2.6.9-xen-sparse/arch/xen/i386/kernel/pci-dma.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/pci-dma.c b/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/pci-dma.c
index 49a58006fb..b7939cff41 100644
--- a/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/pci-dma.c
+++ b/linux-2.6.9-xen-sparse/arch/xen/i386/kernel/pci-dma.c
@@ -14,6 +14,10 @@
#include <linux/version.h>
#include <asm/io.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+#define pte_offset_kernel pte_offset
+#endif
+
struct dma_coherent_mem {
void *virt_base;
u32 device_base;
@@ -22,8 +26,8 @@ struct dma_coherent_mem {
unsigned long *bitmap;
};
-void
-dma_contig_memory(unsigned long vstart, unsigned int order)
+static void
+xen_contig_memory(unsigned long vstart, unsigned int order)
{
/*
* Ensure multi-page extents are contiguous in machine memory.
@@ -69,7 +73,6 @@ dma_contig_memory(unsigned long vstart, unsigned int order)
}
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-#define pte_offset_kernel pte_offset
void *pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
dma_addr_t *dma_handle)
#else
@@ -114,7 +117,7 @@ void *dma_alloc_coherent(struct device *dev, size_t size,
if (ret == NULL)
return ret;
- dma_contig_memory(vstart, order);
+ xen_contig_memory(vstart, order);
memset(ret, 0, size);
*dma_handle = virt_to_bus(ret);
@@ -125,10 +128,13 @@ void *dma_alloc_coherent(struct device *dev, size_t size,
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
void pci_free_consistent(struct pci_dev *hwdev, size_t size,
void *vaddr, dma_addr_t dma_handle)
+{
+ free_pages((unsigned long)vaddr, get_order(size));
+}
#else
+
void dma_free_coherent(struct device *dev, size_t size,
void *vaddr, dma_addr_t dma_handle)
-#endif
{
struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL;
int order = get_order(size);
@@ -216,3 +222,5 @@ void *dma_mark_declared_memory_occupied(struct device *dev,
return mem->virt_base + (pos << PAGE_SHIFT);
}
EXPORT_SYMBOL(dma_mark_declared_memory_occupied);
+
+#endif