CeDOS - Commit 4bb18f0e

Merge branch 'hotfix/hardware-crash' into develop
Celina Sophie Kalus
Fri, 08 Dec 2023 21:46:52 +0100
1 files changed, 6 insertions(+), 3 deletions(-)
M kernel/mm/paging.ckernel/mm/paging.c

@@ -71,6 +71,8 @@ if (!is_present(page_dir[dir_index])) {

// acquire new page table PHYS_ADDR new_page_table = get_free_page(); page_dir[dir_index] = MAKE_PAGE_ENTRY(new_page_table, PAGE_TABLE_FLAGS); + inv_all_pages(); + memset(page_table, 0, PAGE_SIZE); } // map page

@@ -95,6 +97,8 @@ if (!is_present(page_dir[dir_index])) {

// acquire new page table void *new_page_table = get_free_page(); page_dir[dir_index] = MAKE_PAGE_ENTRY(new_page_table, PAGE_TABLE_FLAGS); + inv_all_pages(); + memset(page_table, 0, PAGE_SIZE); } // map page

@@ -126,9 +130,8 @@ uint32_t part_length = (offset + length <= PAGE_SIZE) ? length : PAGE_SIZE - offset;

PRINT_DBG("src=%p dest=%p length=%i offset=%i plen=%i\n", src, dest, length, offset, part_length); - for (uint32_t i = 0; i < part_length; i++) { - ((uint8_t*)mount_dest)[offset + i] = ((uint8_t*)src)[i]; - } + memset(mount_dest, 0, PAGE_SIZE); + memcpy((uint8_t*)(mount_dest) + offset, src, part_length); dest += part_length; src += part_length;