Index: linux-2.6.18-rc7-mm1/arch/i386/kernel/pci-dma.c =================================================================== --- linux-2.6.18-rc7-mm1.orig/arch/i386/kernel/pci-dma.c 2006-09-22 15:37:41.000000000 -0500 +++ linux-2.6.18-rc7-mm1/arch/i386/kernel/pci-dma.c 2006-09-22 16:20:49.849799156 -0500 @@ -26,8 +26,6 @@ void *dma_alloc_coherent(struct device * dma_addr_t *dma_handle, gfp_t gfp) { void *ret; - unsigned long low = 0L; - unsigned long high = 0xffffffff; struct dma_coherent_mem *mem = dev ? dev->dma_mem : NULL; int order = get_order(size); /* ignore region specifiers */ @@ -46,14 +44,9 @@ void *dma_alloc_coherent(struct device * return NULL; } - if (dev == NULL) - /* Apply safe ISA LIMITS */ - high = 16*1024*1024L; - else - if (dev->coherent_dma_mask < 0xffffffff) - high = dev->coherent_dma_mask; - - ret = page_address(alloc_pages_range(low, high, gfp, order)); + ret = page_address(alloc_pages_range(0L, + dev ? dev->coherent_dma_mask : 16*1024*1024, + gfp, order)); if (ret != NULL) { memset(ret, 0, size);