From c8af795541373c954fc777fdb8a806dfae616988 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Tue, 4 Feb 2025 15:18:33 +0100 Subject: [PATCH] nova: remove nova_die from pager code Issue #5443 --- repos/base-nova/src/core/pager.cc | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/repos/base-nova/src/core/pager.cc b/repos/base-nova/src/core/pager.cc index 12e4ada6478..4ecc61667f1 100644 --- a/repos/base-nova/src/core/pager.cc +++ b/repos/base-nova/src/core/pager.cc @@ -146,10 +146,6 @@ void Pager_object::_page_fault_handler(Pager_object &obj) /* lookup fault address and decide what to do */ unsigned error = (obj.pager(ipc_pager) == Pager_object::Pager_result::STOP); - /* don't open receive window for pager threads */ - if (utcb.crd_rcv.value()) - nova_die(); - if (!error && ipc_pager.syscall_result() != Nova::NOVA_OK) { /* something went wrong - by default don't answer the page fault */ error = 4; @@ -195,14 +191,11 @@ void Pager_object::_page_fault_handler(Pager_object &obj) } -void Pager_object::exception(uint8_t exit_id) +void Pager_object::exception(uint8_t const exit_id) { Thread &myself = *Thread::myself(); Utcb &utcb = *reinterpret_cast(myself.utcb()); - if (exit_id > PT_SEL_PARENT) - nova_die(); - addr_t const fault_ip = utcb.ip; addr_t const fault_sp = utcb.sp; addr_t const fault_bp = utcb.bp; @@ -381,10 +374,6 @@ void Pager_object::_invoke_handler(Pager_object &obj) Thread &myself = *Thread::myself(); Utcb &utcb = *reinterpret_cast(myself.utcb()); - /* receive window must be closed - otherwise implementation bug */ - if (utcb.crd_rcv.value()) - nova_die(); - /* if protocol is violated ignore request */ if (utcb.msg_words() != 1) { utcb.mtd = 0;