[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