On Sun, Jan 03 17:03, Kevin Wolf wrote: > ! kernel2: Page Directories muessen nur neu kopiert werden, wenn sie > sich auch tatsaechlich geaendert haben. Wenn sich nur eine Page Table > geaendert hat, ist das nicht noetig. > > Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx> > --- > src/kernel2/src/arch/i386/mm/mm_context.c | 14 +++++++------- > 1 files changed, 7 insertions(+), 7 deletions(-) > > diff --git a/src/kernel2/src/arch/i386/mm/mm_context.c b/src/kernel2/src/arch/i386/mm/mm_context.c > index e4eb79b..20edcfa 100644 > --- a/src/kernel2/src/arch/i386/mm/mm_context.c > +++ b/src/kernel2/src/arch/i386/mm/mm_context.c > @@ -289,6 +289,13 @@ static bool map_page > // An dieser Stelle kann die Page Table noch nicht initialisiert > // werden, weil sie noch nicht gemappt ist. > clear_page_table = TRUE; > + > + if (((uintptr_t) vaddr >= KERNEL_MEM_START) && ((uintptr_t) vaddr < > + KERNEL_MEM_END)) > + { > + context->version = ++page_directory_version; > + page_directory_current = context->page_directory_virt; > + } > } > else if (page_directory[vpage / PAGE_TABLE_LENGTH] & PTE_PS) > { > @@ -343,13 +350,6 @@ static bool map_page > } else { > mmc_unmap(&mmc_current_context(), page_table, 1); > } > - > - if (((uintptr_t) vaddr >= KERNEL_MEM_START) && ((uintptr_t) vaddr < > - KERNEL_MEM_END)) > - { > - context->version = ++page_directory_version; > - page_directory_current = context->page_directory_virt; > - } > unlock(&context->lock); > return TRUE; > } Acked-by: Antoine Kaufmann <toni@xxxxxxxxxx> -- Antoine Kaufmann <toni@xxxxxxxxxxxxxxxx>
Attachment:
pgpl7T4U7Jv_F.pgp
Description: PGP signature