From: Thomas Veerman Date: Tue, 4 Sep 2012 12:12:32 +0000 (+0000) Subject: PM: don't deliver signals to VM X-Git-Tag: v3.2.1~334 X-Git-Url: http://zhaoyanbai.com/repos//%22http:/www.isc.org/%22?a=commitdiff_plain;h=edefb7b35fae19813e45c3b036c3f50b04c324c3;p=minix.git PM: don't deliver signals to VM --- diff --git a/servers/pm/signal.c b/servers/pm/signal.c index bb5ccd5a9..5e2901f72 100644 --- a/servers/pm/signal.c +++ b/servers/pm/signal.c @@ -530,6 +530,11 @@ int ksig; /* non-zero means signal comes from kernel */ if (proc_id == -1 && signo == SIGKILL && (rmp->mp_flags & PRIV_PROC)) continue; + /* Skip VM entirely as it might lead to a deadlock with its signal + * manager if the manager page faults at the same time. + */ + if (rmp->mp_endpoint == VM_PROC_NR) continue; + /* Disallow lethal signals sent by user processes to sys processes. */ if (!ksig && SIGS_IS_LETHAL(signo) && (rmp->mp_flags & PRIV_PROC)) { error_code = EPERM;