From e7272b29feb855f4678c5c510d331f297351d3a2 Mon Sep 17 00:00:00 2001 From: Anton Kling Date: Mon, 9 Dec 2024 18:35:54 +0100 Subject: mmu: Make certain allocations physical and virtual mapping linear Previously it was possible for fragmentation to occur and as a result certain allocations would have a linear virtual address space but not a linear physical address space. This is bad since a lot of calls to kmalloc_align rely upon both being linear, it has now been changed such that all allocations done by kmalloc_align now guarantee this mapping holds for both virtual and physical addresses. It was due to oversight and sheer luck that this had been working for so long. --- kernel/fs/ext2.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'kernel/fs') diff --git a/kernel/fs/ext2.c b/kernel/fs/ext2.c index 948b0af..fe09834 100644 --- a/kernel/fs/ext2.c +++ b/kernel/fs/ext2.c @@ -382,7 +382,6 @@ int get_free_blocks(int allocate, int entries[], u32 num_entries) { u32 current_entry = 0; bgdt_t block_group; if (num_entries > superblock->num_blocks_unallocated) { - kprintf("greater than\n"); return 0; } assert(0 == superblock->num_blocks_in_group % 8); @@ -975,7 +974,7 @@ ext2_mount_error: } void parse_superblock(void) { - superblock = ksbrk(2 * SECTOR_SIZE); + superblock = kmalloc(2 * SECTOR_SIZE); raw_vfs_pread(mount_fd, superblock, 2 * SECTOR_SIZE, EXT2_SUPERBLOCK_SECTOR * SECTOR_SIZE); -- cgit v1.2.3