From owner-p4-projects@FreeBSD.ORG Sat May 9 01:25:07 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C4BC11065673; Sat, 9 May 2009 01:25:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 83FA91065670 for ; Sat, 9 May 2009 01:25:06 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 72B538FC08 for ; Sat, 9 May 2009 01:25:06 +0000 (UTC) (envelope-from zec@fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n491P6ZU056775 for ; Sat, 9 May 2009 01:25:06 GMT (envelope-from zec@fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n491P505056773 for perforce@freebsd.org; Sat, 9 May 2009 01:25:05 GMT (envelope-from zec@fer.hr) Date: Sat, 9 May 2009 01:25:05 GMT Message-Id: <200905090125.n491P505056773@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 161798 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 May 2009 01:25:07 -0000 http://perforce.freebsd.org/chv.cgi?CH=161798 Change 161798 by zec@zec_tpx32 on 2009/05/09 01:24:23 Add an exception to allow for a process running in one vimage to receive signals from processes running in child vimages that it is waiting on, but only when the processes in the child vimage is exiting. Affected files ... .. //depot/projects/vimage-commit2/src/sys/kern/kern_prot.c#9 edit .. //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#34 edit .. //depot/projects/vimage-commit2/src/sys/sys/vimage.h#58 edit Differences ... ==== //depot/projects/vimage-commit2/src/sys/kern/kern_prot.c#9 (text+ko) ==== @@ -1756,7 +1756,11 @@ KASSERT(td == curthread, ("%s: td not curthread", __func__)); PROC_LOCK_ASSERT(p, MA_OWNED); - if ((error = prison_check(td->td_ucred, p->p_ucred))) + if ( +#ifdef VIMAGE + !vi_child_of(TD_TO_VIMAGE(td), P_TO_VIMAGE(p)) && +#endif + (error = prison_check(td->td_ucred, p->p_ucred))) return (error); #ifdef MAC if ((error = mac_proc_check_wait(td->td_ucred, p))) ==== //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#34 (text+ko) ==== @@ -101,7 +101,7 @@ * Userspace interfaces. */ -static int +int vi_child_of(struct vimage *parent, struct vimage *child) { if (child == parent) ==== //depot/projects/vimage-commit2/src/sys/sys/vimage.h#58 (text+ko) ==== @@ -158,6 +158,7 @@ int vi_symlookup(struct kld_sym_lookup *, char *); int vi_td_ioctl(u_long, struct vi_req *, struct thread *); int vi_if_move(struct vi_req *, struct ifnet *, struct vimage *); +int vi_child_of(struct vimage *, struct vimage *); void if_reassign_common(struct ifnet *, struct vnet *, const char *); void vnet_mod_register(const struct vnet_modinfo *); void vnet_mod_register_multi(const struct vnet_modinfo *, void *, char *);