Index: kernel/arch/ia32/src/mm/frame.c
===================================================================
--- kernel/arch/ia32/src/mm/frame.c	(revision 9d4e1704695fcf4bdd0d097a2dc12155e07a840f)
+++ kernel/arch/ia32/src/mm/frame.c	(revision ad12b5ea675f6fa2b88cd868c39d5005c6cd86da)
@@ -57,21 +57,9 @@
 	
 	for (i = 0; i < e820counter; i++) {
-		uint64_t base = e820table[i].base_address;
-		uint64_t size = e820table[i].size;
-		uintptr_t limit = config.identity_size;
+		uintptr_t base = (uintptr_t) e820table[i].base_address;
+		size_t size = (size_t) e820table[i].size;
 		
-		if (low) {
-			if (base > limit)
-				continue;
-			if (base + size > limit)
-				size = limit - base;
-		} else {
-			if (base + size <= limit)
-				continue;
-			if (base <= limit) {
-				size -= limit - base;
-				base = limit;
-			}
-		}
+		if (!frame_adjust_zone_bounds(low, &base, &size))
+			continue;
 		
 		if (e820table[i].type == MEMMAP_MEMORY_AVAILABLE) {
@@ -93,5 +81,4 @@
 				    ZONE_AVAILABLE | ZONE_LOWMEM);
 			} else {
-				printf("count=%lld\n", (long long int) count);
 				conf = zone_external_conf_alloc(count);
 				zone_create(pfn, count, conf,
