A DMA patch for 2.2.11

H.J. Lu (hjl@varesearch.com)
Thu, 19 Aug 1999 23:08:10 -0700 (PDT)


Not all archs/configs need to preserve DMA memory. This patch makes an
option. I don't know where to put it. I did it for i386 and alpha. For
other archs, no DMA memory is preserved. It is easy to add it for other
archs.

-- 
H.J. Lu (hjl@gnu.org)
---
Index: linux/mm/page_alloc.c
===================================================================
RCS file: /work/cvs/linux/linux/mm/page_alloc.c,v
retrieving revision 1.1.1.32
retrieving revision 1.5
diff -u -p -r1.1.1.32 -r1.5
--- linux/mm/page_alloc.c	1999/08/12 22:20:51	1.1.1.32
+++ linux/mm/page_alloc.c	1999/08/01 19:06:11	1.5
@@ -210,7 +210,6 @@ do { struct free_area_struct * area = fr
 			EXPAND(ret, map_nr, order, new_order, area); \
 			spin_unlock_irqrestore(&page_alloc_lock, flags); \
 			return ADDRESS(map_nr); \
-		 \
 		} \
 		new_order++; area++; \
 	} while (new_order < NR_MEM_LISTS); \
@@ -278,7 +277,9 @@ ok_to_allocate:
 	if (gfp_mask & __GFP_DMA)
 		RMQUEUE_DMA(order);
 	else {
+#ifdef CONFIG_PRESERVE_DMA_MEMORY
 		RMQUEUE_NODMA(order);
+#endif
 		RMQUEUE_ANY(order);
 	}
 	spin_unlock_irqrestore(&page_alloc_lock, flags);
Index: linux/arch/i386/config.in
===================================================================
RCS file: /work/cvs/linux/linux/arch/i386/config.in,v
retrieving revision 1.6
diff -u -p -r1.6 config.in
--- linux/arch/i386/config.in	1999/07/09 21:23:45	1.6
+++ linux/arch/i386/config.in	1999/07/16 22:46:32
@@ -56,6 +56,8 @@ endmenu
 mainmenu_option next_comment
 comment 'General setup'
 
+bool 'Preserve DMA memory' CONFIG_PRESERVE_DMA_MEMORY
+
 bool 'Networking support' CONFIG_NET
 bool 'PCI support' CONFIG_PCI
 if [ "$CONFIG_PCI" = "y" ]; then
Index: linux/arch/alpha/config.in
===================================================================
RCS file: /work/cvs/linux/linux/arch/alpha/config.in,v
retrieving revision 1.3
diff -u -p -r1.3 config.in
--- linux/arch/alpha/config.in	1999/07/09 21:23:45	1.3
+++ linux/arch/alpha/config.in	1999/07/16 22:46:55
@@ -21,6 +21,8 @@ endmenu
 mainmenu_option next_comment
 comment 'General setup'
 
+bool 'Preserve DMA memory' CONFIG_PRESERVE_DMA_MEMORY
+
 choice 'Alpha system type' \
 	"Generic		CONFIG_ALPHA_GENERIC		\
 	 Alcor/Alpha-XLT	CONFIG_ALPHA_ALCOR		\
Index: linux/Documentation/Configure.help
===================================================================
RCS file: /work/cvs/linux/linux/Documentation/Configure.help,v
retrieving revision 1.9
diff -u -p -r1.9 Configure.help
--- linux/Documentation/Configure.help	1999/07/09 21:23:45	1.9
+++ linux/Documentation/Configure.help	1999/07/16 22:37:03
@@ -187,6 +187,13 @@ CONFIG_MAC_FLOPPY
   If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple)
   floppy controller, say Y here. Most commonly found in PowerMacs.
 
+Preserve DMA memory
+CONFIG_PRESERVE_DMA_MEMORY
+  Saying Y here will make kernel try to preserve DMA memory. It is very
+  useful for x86 since it has 16M DMA memory limit. If you have large
+  RAM and/or many devices using DMA on your x86 machine, you should say
+  Y. Otherwise, say N.
+
 RAM disk support
 CONFIG_BLK_DEV_RAM
   Saying Y here will allow you to use a portion of your RAM memory as

-- 
H.J. Lu (hjl@gnu.org)

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/