[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH] kernel2: user_isf fuer VM86-Task korrekt initialisieren



! kernel2: Wenn man am kernel_stack rumpfuscht, um zusaetzlichen Platz
  fuer die VM86-Informationen zu haben, dann muss man user_isf
  mitanpassen. Ansonsten rutscht ein Teil des Stacks auf die naechste
  Page und macht dort entweder was kaputt oder pagefaultet.

Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
 src/kernel2/src/arch/i386/vm86.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/src/kernel2/src/arch/i386/vm86.c b/src/kernel2/src/arch/i386/vm86.c
index cdee6f1..2aa7a25 100644
--- a/src/kernel2/src/arch/i386/vm86.c
+++ b/src/kernel2/src/arch/i386/vm86.c
@@ -152,6 +152,7 @@ static int create_vm86_task(int intr, vm86_regs_t* regs, uintptr_t stack)
     // Und das ganze auf den Stack
     task->kernel_stack = ((uint8_t*) task->kernel_stack)
         + sizeof(*isf) - sizeof(visf);
+    task->user_isf = task->kernel_stack;
     memcpy(task->kernel_stack, &visf, sizeof(visf));
 
     // Sofort in den VM86-Task wechseln. Der aufrufende Thread wird
-- 
1.6.0.2