summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2020-02-21 19:05:45 +0100
committerAndreas Kling <kling@serenityos.org>2020-02-21 19:05:45 +0100
commitb298c01e9291caa10ebf8c6e3bdff293cb2d692b (patch)
treeb5b8c5e4e2d8bd8e6a188eae06a433f1f6013988
parentc4c1ad22893ba796d0e82185db500c712e51ef82 (diff)
downloadserenity-b298c01e9291caa10ebf8c6e3bdff293cb2d692b.zip
Kernel: Log instead of crashing when getting a page fault during IRQ
This is definitely a bug, but it seems to happen randomly every now and then and we need more info to track it down, so let's log for now.
-rw-r--r--Kernel/VM/MemoryManager.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/Kernel/VM/MemoryManager.cpp b/Kernel/VM/MemoryManager.cpp
index c9a1846733..58f24a7cbc 100644
--- a/Kernel/VM/MemoryManager.cpp
+++ b/Kernel/VM/MemoryManager.cpp
@@ -296,7 +296,8 @@ PageFaultResponse MemoryManager::handle_page_fault(const PageFault& fault)
{
ASSERT_INTERRUPTS_DISABLED();
ASSERT(Thread::current);
- ASSERT(!g_in_irq);
+ if (g_in_irq)
+ dbg() << "BUG! Page fault while handling IRQ! code=" << fault.code() << ", vaddr=" << fault.vaddr();
#ifdef PAGE_FAULT_DEBUG
dbgprintf("MM: handle_page_fault(%w) at V%p\n", fault.code(), fault.vaddr().get());
#endif