From: David van Moolenbroek Date: Tue, 18 Jan 2011 10:18:08 +0000 (+0000) Subject: Kernel: fix clearing IPC references resulting in system crash X-Git-Tag: v3.2.0~702 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/host.html?a=commitdiff_plain;h=9c7dcbfec33c36566f00402ef814fe12d3f597ab;p=minix.git Kernel: fix clearing IPC references resulting in system crash --- diff --git a/kernel/system.c b/kernel/system.c index e5e370875..fc1440952 100644 --- a/kernel/system.c +++ b/kernel/system.c @@ -540,9 +540,9 @@ PRIVATE void clear_ipc( } xpp = &(*xpp)->p_q_link; /* proceed to next queued */ } - rc->p_rts_flags &= ~RTS_SENDING; + RTS_UNSET(rc, RTS_SENDING); } - rc->p_rts_flags &= ~RTS_RECEIVING; + RTS_UNSET(rc, RTS_RECEIVING); } /*===========================================================================* @@ -600,7 +600,7 @@ int caller_ret; /* code to return on callers */ /* Check if process depends on given process. */ if (P_BLOCKEDON(rp) == rc->p_endpoint) { rp->p_reg.retreg = caller_ret; /* return requested code */ - RTS_UNSET(rp, (RTS_RECEIVING|RTS_SENDING)); /* no longer blocking */ + clear_ipc(rp); } } }