Skip to content

Commit

Permalink
Kernel: Interpret "reserved bit violation" page faults correctly
Browse files Browse the repository at this point in the history
We don't actually react to these in any meaningful way other than
crashing, but let's at least print the correct information. :^)
  • Loading branch information
awesomekling committed Dec 25, 2019
1 parent 52deb09 commit c22a430
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
3 changes: 2 additions & 1 deletion Kernel/Arch/i386/CPU.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -279,10 +279,11 @@ void page_fault_handler(RegisterDump regs)
return;
}

kprintf("\033[31;1m%s(%u:%u) Unrecoverable page fault, %s%s address %p\033[0m\n",
kprintf("\033[31;1m%s(%u:%u) Unrecoverable page fault, %s%s%s address %p\033[0m\n",
current->process().name().characters(),
current->pid(),
current->tid(),
regs.exception_code & PageFaultFlags::ReservedBitViolation ? "reserved bit violation / " : "",
regs.exception_code & PageFaultFlags::InstructionFetch ? "instruction fetch / " : "",
regs.exception_code & PageFaultFlags::Write ? "write to" : "read from",
fault_address);
Expand Down
3 changes: 2 additions & 1 deletion Kernel/Arch/i386/CPU.h
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,8 @@ struct PageFaultFlags {
Write = 0x02,
UserMode = 0x04,
SupervisorMode = 0x00,
InstructionFetch = 0x08,
ReservedBitViolation = 0x08,
InstructionFetch = 0x10,
};
};

Expand Down

0 comments on commit c22a430

Please sign in to comment.