From ed04ffb598349c5876905acb21ee898056c6b4a0 Mon Sep 17 00:00:00 2001 From: "Ithamar R. Adema" Date: Sun, 26 Oct 2014 23:43:35 +0100 Subject: [PATCH] ARM: keep all pages we've mapped during kernel startup Don't just keep the page directory, but also the actual allocates pages for the pagetables we've created. --- .../kernel/arch/arm/paging/32bit/ARMPagingMethod32Bit.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/system/kernel/arch/arm/paging/32bit/ARMPagingMethod32Bit.cpp b/src/system/kernel/arch/arm/paging/32bit/ARMPagingMethod32Bit.cpp index eefdc4e9a3..f0492ff043 100644 --- a/src/system/kernel/arch/arm/paging/32bit/ARMPagingMethod32Bit.cpp +++ b/src/system/kernel/arch/arm/paging/32bit/ARMPagingMethod32Bit.cpp @@ -327,10 +327,9 @@ ARMPagingMethod32Bit::InitPostArea(kernel_args* args) area_id area; temp = (void*)fKernelVirtualPageDirectory; - area = create_area("kernel_pgdir", &temp, B_EXACT_ADDRESS, ARM_MMU_L1_TABLE_SIZE, + area = create_area("kernel_pgdir", &temp, B_EXACT_ADDRESS, args->arch_args.next_pagetable, B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA); - if (area < B_OK) - return area; + ASSERT_PRINT(area >= 0, "Failed mapping the kernel page directory: 0x%08lx!", area); int32 poolCount = _GetInitialPoolCount(); for (int32 i = 0; i < poolCount; i++) {