diff options
Diffstat (limited to 'kernel/src/arch/x86_64/interrupts/panic.cpp')
| -rw-r--r-- | kernel/src/arch/x86_64/interrupts/panic.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/kernel/src/arch/x86_64/interrupts/panic.cpp b/kernel/src/arch/x86_64/interrupts/panic.cpp index 13adec2..c43dc66 100644 --- a/kernel/src/arch/x86_64/interrupts/panic.cpp +++ b/kernel/src/arch/x86_64/interrupts/panic.cpp @@ -23,14 +23,14 @@ void panic(int_frame_t* ctx, const char* msg) { memory::paging::enablekernel(); - // arch::x86_64::process_t* proc = arch::x86_64::cpu::data()->temp.proc; - // if(proc) { - // uint64_t cr2; - // asm volatile("mov %%cr2, %0" : "=r"(cr2) : : "memory"); - // Log::SerialDisplay(LEVEL_MESSAGE_FAIL,"process %d fired cpu exception with vec %d, rip 0x%p, cr2 0x%p, error code 0x%p\n",proc->id,ctx->vec,ctx->rip,cr2,ctx->err_code); - // arch::x86_64::scheduling::kill(proc); - // schedulingSchedule(0); - // } + arch::x86_64::process_t* proc = arch::x86_64::cpu::data()->temp.proc; + if(proc) { + uint64_t cr2; + asm volatile("mov %%cr2, %0" : "=r"(cr2) : : "memory"); + Log::SerialDisplay(LEVEL_MESSAGE_FAIL,"process %d fired cpu exception with vec %d, rip 0x%p, cr2 0x%p, error code 0x%p\n",proc->id,ctx->vec,ctx->rip,cr2,ctx->err_code); + arch::x86_64::scheduling::kill(proc); + schedulingSchedule(0); + } extern locks::spinlock log_lock; log_lock.unlock(); |
