From b3f1b9bbcc66c3e817f07a8ad425c493435a9a85 Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Wed, 2 Apr 2014 22:46:24 +0200 Subject: [PATCH] Interrupt handling Intel interrupt gates are automatically disabling the interrupts. So it is not necessary to disable them on IRQs and ISRs, but it is necessary to enable them in system calls --- kernel/src/irqs.s | 2 -- kernel/src/isrs.s | 2 -- kernel/src/syscalls.s | 4 +++- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/kernel/src/irqs.s b/kernel/src/irqs.s index 28cc24ef..cf971b66 100644 --- a/kernel/src/irqs.s +++ b/kernel/src/irqs.s @@ -12,8 +12,6 @@ .macro create_irq number .global _irq\number _irq\number: - cli - push rax push \number diff --git a/kernel/src/isrs.s b/kernel/src/isrs.s index 310f332b..751592d8 100644 --- a/kernel/src/isrs.s +++ b/kernel/src/isrs.s @@ -12,8 +12,6 @@ .macro create_irq number .global _isr\number _isr\number: - cli - push \number jmp isr_common_handler diff --git a/kernel/src/syscalls.s b/kernel/src/syscalls.s index a2f19663..47adbab1 100644 --- a/kernel/src/syscalls.s +++ b/kernel/src/syscalls.s @@ -14,7 +14,9 @@ .macro create_syscall number .global _syscall\number _syscall\number: - cli + //Interrupts are disabled on interrupt gate, + //so they must reenabled again + sti push rax push \number