summaryrefslogtreecommitdiff
path: root/Source/Kernel/SyscallManager/IDT.wtf.asm
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Kernel/SyscallManager/IDT.wtf.asm')
-rw-r--r--Source/Kernel/SyscallManager/IDT.wtf.asm6
1 files changed, 6 insertions, 0 deletions
diff --git a/Source/Kernel/SyscallManager/IDT.wtf.asm b/Source/Kernel/SyscallManager/IDT.wtf.asm
index b94612e..630b2fb 100644
--- a/Source/Kernel/SyscallManager/IDT.wtf.asm
+++ b/Source/Kernel/SyscallManager/IDT.wtf.asm
@@ -116,8 +116,14 @@ interrupt_common_stub:
mov fs, ax
mov gs, ax
+ mov eax, cr3
+ push eax
+
call interrupt_handler
+ pop eax
+ mov cr3, eax
+
pop eax ; reload the original data segment descriptor
mov ds, ax
mov es, ax