Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision 908bb9645ed022f8ccdcdfd80a4b312d622b76e9)
+++ kernel/generic/include/mm/frame.h	(revision 1bd997851a8b3da2d89a5274e44fb3fe3d329d09)
@@ -63,4 +63,6 @@
 /** Allocate a frame which cannot be identity-mapped. */
 #define FRAME_HIGHMEM	  0x20
+/** Allocate a frame which needs to be from DMA zone. */
+#define FRAME_DMA         0x40
 
 typedef uint8_t zone_flags_t;
@@ -77,4 +79,6 @@
 /** Zone contains memory that cannot be identity-mapped */
 #define ZONE_HIGHMEM	0x10
+/** Zone contains memory suitable for old ISA DMA */
+#define ZONE_DMA        0x20
 
 /** Mask of zone bits that must be matched exactly. */
@@ -82,8 +86,9 @@
 
 #define FRAME_TO_ZONE_FLAGS(ff)	\
-	((((ff) & FRAME_LOWMEM) ? ZONE_LOWMEM : \
+	((((ff) & FRAME_DMA) ? ZONE_DMA : \
+	    (((ff) & FRAME_LOWMEM) ? ZONE_LOWMEM : \
 	    (((ff) & FRAME_HIGHMEM) ? ZONE_HIGHMEM : \
-	    ZONE_LOWMEM /* | ZONE_HIGHMEM */)) | \
-	    ZONE_AVAILABLE) 
+	    ZONE_LOWMEM /* | ZONE_HIGHMEM */))) | \
+	    ZONE_AVAILABLE)
 
 #define ZONE_FLAGS_MATCH(zf, f) \
