diff options
author | cl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk> | 2004-10-25 20:21:00 +0000 |
---|---|---|
committer | cl349@freefall.cl.cam.ac.uk <cl349@freefall.cl.cam.ac.uk> | 2004-10-25 20:21:00 +0000 |
commit | 1c3b2459093b26ececa76e397397f9c8de816311 (patch) | |
tree | ff8428f18d13329365bee0a3c77dee2ad50d8c4b /linux-2.6.9-xen-sparse | |
parent | 3fc334c17d4e59cf598db30b26d4d41d94137384 (diff) | |
download | xen-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.c | 18 |
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 |