From 884dd0864155cb2cd774435910d39157345e56dc Mon Sep 17 00:00:00 2001 From: Marian Ohligs Date: Tue, 22 May 2012 13:24:00 +0200 Subject: [PATCH 1/4] fix memory leak --- kernel/tasks.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/tasks.c b/kernel/tasks.c index 3ed1bdd3..a351930a 100644 --- a/kernel/tasks.c +++ b/kernel/tasks.c @@ -194,7 +194,7 @@ static void NORETURN do_exit(int arg) { //remove fildes_table if(!curr_task->fildes_table) - kfree(curr_task->fildes_table, sizeof(fildes_t)*NR_OPEN); + kfree(curr_task->fildes_table, sizeof(filp_t)*NR_OPEN); spinlock_unlock(&curr_task->vma_lock); From f8058bbee2a0fa85bf69266656284817b761c9ab Mon Sep 17 00:00:00 2001 From: Jacek Galowicz Date: Tue, 22 May 2012 13:38:41 +0200 Subject: [PATCH 2/4] Made the makescript generate config.inc automatically. --- Makefile.example | 6 +++++- include/metalsvm/config.inc.example | 4 ---- 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 include/metalsvm/config.inc.example diff --git a/Makefile.example b/Makefile.example index 1219a476..ab12c773 100644 --- a/Makefile.example +++ b/Makefile.example @@ -109,8 +109,12 @@ veryclean: clean @echo [DEP] $*.dep $Q$(CPP_FOR_TARGET) -MF $*.dep -MT $*.o -MM -D__KERNEL__ $(CFLAGS) $< +include/metalsvm/config.inc: include/metalsvm/config.h + @echo "; This file is generated automatically from the config.h file." > include/metalsvm/config.inc + @echo "; Before editing this, you should consider editing config.h." >> include/metalsvm/config.inc + @awk '/^#define MAX_CORES/{ print "%define MAX_CORES", $$3 }' include/metalsvm/config.h >> include/metalsvm/config.inc -%.o : %.asm +%.o : %.asm include/metalsvm/config.inc @echo [ASM] $@ $Q$(NASM) $(NASMFLAGS) -o $@ $< diff --git a/include/metalsvm/config.inc.example b/include/metalsvm/config.inc.example deleted file mode 100644 index 2b919abc..00000000 --- a/include/metalsvm/config.inc.example +++ /dev/null @@ -1,4 +0,0 @@ -; config macros for the assembler code - -; define the maximum number of core -%define MAX_CORES 1 From 181ae30e2cb97be94106f4fbe844dedd36ad6b9d Mon Sep 17 00:00:00 2001 From: Jacek Galowicz Date: Tue, 22 May 2012 13:44:33 +0200 Subject: [PATCH 3/4] Changed the .gitignore file to make git ignore config.inc --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 2ecbcd97..cae77b40 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ tags Makefile include/metalsvm/config.h +include/metalsvm/config.inc tools/make_initrd newlib/examples/hello newlib/examples/jacobi From fc0c903de31f3a1451e8727640f986cd45cc3ff4 Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Wed, 23 May 2012 11:19:46 -0700 Subject: [PATCH 4/4] reduce overhead to determine TSS --- arch/x86/kernel/entry.asm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/entry.asm b/arch/x86/kernel/entry.asm index f3c6a6d4..c9c0f4dc 100644 --- a/arch/x86/kernel/entry.asm +++ b/arch/x86/kernel/entry.asm @@ -799,15 +799,14 @@ common_switch: ; determine TSS %if MAX_CORES > 1 call apic_cpu_id + mov ecx, DWORD 0x68 + mul ecx %else xor eax, eax %endif - mov ecx, DWORD 0x68 - mul ecx add eax, task_state_segments - add eax, DWORD 4 ; set esp0 in TSS - mov [eax], esp + mov [eax+4], esp ; call cleanup code call finish_task_switch