nova: remove nova_die from pager code

Issue #5443
This commit is contained in:
Alexander Boettcher 2025-02-04 15:18:33 +01:00 committed by Christian Helmuth
parent d71ddeb983
commit cff4a4a909

View File

@ -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<Utcb *>(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<Utcb *>(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;