diff --git a/src/system/boot/arch/m68k/mmu.cpp b/src/system/boot/arch/m68k/mmu.cpp index cb48df052b..741296b940 100644 --- a/src/system/boot/arch/m68k/mmu.cpp +++ b/src/system/boot/arch/m68k/mmu.cpp @@ -668,6 +668,7 @@ platform_free_region(void *address, size_t size) ssize_t platform_allocate_heap_region(size_t size, void **_base) { + size = ROUNDUP(size, B_PAGE_SIZE); addr_t base = get_next_physical_address(size); if (base == 0) return B_NO_MEMORY; diff --git a/src/system/boot/platform/amiga_m68k/mmu.cpp b/src/system/boot/platform/amiga_m68k/mmu.cpp index 0f12363fbe..d03a7210cf 100644 --- a/src/system/boot/platform/amiga_m68k/mmu.cpp +++ b/src/system/boot/platform/amiga_m68k/mmu.cpp @@ -666,6 +666,7 @@ platform_free_region(void *address, size_t size) ssize_t platform_allocate_heap_region(size_t size, void **_base) { + size = ROUNDUP(size, B_PAGE_SIZE); addr_t base = get_next_physical_address(size); if (base == 0) return B_NO_MEMORY; diff --git a/src/system/boot/platform/atari_m68k/mmu.cpp b/src/system/boot/platform/atari_m68k/mmu.cpp index 438c9cdb94..92fedd80f1 100644 --- a/src/system/boot/platform/atari_m68k/mmu.cpp +++ b/src/system/boot/platform/atari_m68k/mmu.cpp @@ -671,6 +671,7 @@ platform_free_region(void *address, size_t size) ssize_t platform_allocate_heap_region(size_t size, void **_base) { + size = ROUNDUP(size, B_PAGE_SIZE); addr_t base = get_next_physical_address(size); if (base == 0) return B_NO_MEMORY; diff --git a/src/system/boot/platform/bios_ia32/mmu.cpp b/src/system/boot/platform/bios_ia32/mmu.cpp index b070665e97..d61d15a0d6 100644 --- a/src/system/boot/platform/bios_ia32/mmu.cpp +++ b/src/system/boot/platform/bios_ia32/mmu.cpp @@ -826,6 +826,7 @@ platform_free_region(void *address, size_t size) ssize_t platform_allocate_heap_region(size_t size, void **_base) { + size = ROUNDUP(size, B_PAGE_SIZE); addr_t base = allocate_physical(size, false); if (base == 0) return B_NO_MEMORY;