PM: don't deliver signals to VM

This commit is contained in:
Thomas Veerman 2012-09-04 12:12:32 +00:00
parent 3881e732a9
commit edefb7b35f

View file

@ -530,6 +530,11 @@ int ksig; /* non-zero means signal comes from kernel */
if (proc_id == -1 && signo == SIGKILL && if (proc_id == -1 && signo == SIGKILL &&
(rmp->mp_flags & PRIV_PROC)) continue; (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. */ /* Disallow lethal signals sent by user processes to sys processes. */
if (!ksig && SIGS_IS_LETHAL(signo) && (rmp->mp_flags & PRIV_PROC)) { if (!ksig && SIGS_IS_LETHAL(signo) && (rmp->mp_flags & PRIV_PROC)) {
error_code = EPERM; error_code = EPERM;