From 58ca03071133e54ade20eef53a83655aacd6b936 Mon Sep 17 00:00:00 2001 From: apio Date: Sat, 22 Oct 2022 17:21:34 +0200 Subject: [PATCH] initrd: warn when failing to register stuff --- kernel/src/init/InitRD.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/kernel/src/init/InitRD.cpp b/kernel/src/init/InitRD.cpp index 01f9432d..3582df0b 100644 --- a/kernel/src/init/InitRD.cpp +++ b/kernel/src/init/InitRD.cpp @@ -345,12 +345,20 @@ static bool initrd_register_file(InitRD::File& f, uint64_t inode) static void initrd_scan() { initrd_for_each_dir([](InitRD::Directory& dir) { - if (total_dirs >= 32) return; + if (total_dirs >= 32) + { + kwarnln("Failed to register directory %s: Too many directories in initrd", dir.name); + return; + } uint64_t inode = total_dirs; if (initrd_register_dir(dir, inode)) dirs[total_dirs++] = dir; }); InitRD::for_each([](InitRD::File& f) { - if (total_files >= 32) return; + if (total_files >= 32) + { + kwarnln("Failed to register file %s: Too many files in initrd", f.name); + return; + } uint64_t inode = total_files; if (initrd_register_file(f, inode)) files[total_files++] = f; }); @@ -375,7 +383,7 @@ void InitRD::init() (void*)bootboot.initrd_ptr, Utilities::get_blocks_from_size(PAGE_SIZE, bootboot.initrd_size)); kdbgln("physical base at %lx, size %lx, mapped to %p", bootboot.initrd_ptr, bootboot.initrd_size, initrd_base); kdbgln("total blocks: %ld", get_total_blocks()); - void* leak = kmalloc(4); // leak some memory so that kmalloc doesn't continually allocate and free pages + void* leak = kmalloc(4); // leak some memory so that kmalloc doesn't continously allocate and free pages initrd_initialize_root(); initrd_scan(); VFS::mount_root(&initrd_root);