Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision 377818191c87c5eca4e9c6ab5eb18e5d7d8b9103)
+++ kernel/generic/include/mm/frame.h	(revision bab75df6bdac0b39185034277416374a06d4b37f)
@@ -59,6 +59,13 @@
 /** Allocate a frame which can be identity-mapped. */
 #define FRAME_LOWMEM      0x08
-/** Allocate a frame which cannot be identity-mapped. */
+/**
+ * Allocate a frame outside the identity-mapped region if possible.
+ * Fall back to low memory if that fails.
+ */
 #define FRAME_HIGHMEM     0x10
+
+// NOTE: If neither FRAME_LOWMEM nor FRAME_HIGHMEM is set, FRAME_LOWMEM is
+//       assumed as a safe default, and a runtime warning may be issued.
+//       If both are set, FRAME_LOWMEM takes priority.
 
 typedef uint8_t zone_flags_t;
@@ -78,10 +85,4 @@
 /** Mask of zone bits that must be matched exactly. */
 #define ZONE_EF_MASK  0x07
-
-#define FRAME_TO_ZONE_FLAGS(ff) \
-	((((ff) & FRAME_LOWMEM) ? ZONE_LOWMEM : \
-	    (((ff) & FRAME_HIGHMEM) ? ZONE_HIGHMEM : \
-	    ZONE_LOWMEM /* | ZONE_HIGHMEM */)) | \
-	    ZONE_AVAILABLE)
 
 #define ZONE_FLAGS_MATCH(zf, f) \
