Allow free space in f-segment to be used by malloc_fseg().
[seabios.git] / src / pmm.c
index b812515c235eb96af30bc3ff7e8c42b509d9fa59..82a0b1d0dc4fb61ff58605fe5683d904cb5323d0 100644 (file)
--- a/src/pmm.c
+++ b/src/pmm.c
@@ -216,6 +216,13 @@ malloc_fixupreloc(void)
         struct zone_s *zone = Zones[i];
         zone->info->pprev = &zone->info;
     }
+
+    // Add space free'd during relocation in f-segment to ZoneFSeg
+    extern u8 code32init_end[];
+    if ((u32)code32init_end > BUILD_BIOS_ADDR) {
+        memset((void*)BUILD_BIOS_ADDR, 0, (u32)code32init_end - BUILD_BIOS_ADDR);
+        addSpace(&ZoneFSeg, (void*)BUILD_BIOS_ADDR, code32init_end);
+    }
 }
 
 void