From owner-p4-projects@FreeBSD.ORG Wed Aug 1 12:04:57 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AA6CF16A46D; Wed, 1 Aug 2007 12:04:57 +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 6300716A417 for ; Wed, 1 Aug 2007 12:04:57 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 379D413C480 for ; Wed, 1 Aug 2007 12:04:57 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l71C4vxl001089 for ; Wed, 1 Aug 2007 12:04:57 GMT (envelope-from zec@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l71C4uW1001086 for perforce@freebsd.org; Wed, 1 Aug 2007 12:04:56 GMT (envelope-from zec@FreeBSD.org) Date: Wed, 1 Aug 2007 12:04:56 GMT Message-Id: <200708011204.l71C4uW1001086@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@FreeBSD.org using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 124458 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: Wed, 01 Aug 2007 12:04:57 -0000 http://perforce.freebsd.org/chv.cgi?CH=124458 Change 124458 by zec@zec_tpx32 on 2007/08/01 12:04:48 Per Julian's suggestion, if a netgraph node won't die, try to kill it with NGF_REALLY_DIE flag set. IMO this should never happen given that no netgraph nodes associated with any physical hardware should be present in a dying vnet at this point, so print out a warning if we ever encounter such an event, in which case it will need more work and inspection, otherwise we could leak hardware devices on vnet shutdown. Affected files ... .. //depot/projects/vimage/src/sys/netgraph/ng_base.c#14 edit Differences ... ==== //depot/projects/vimage/src/sys/netgraph/ng_base.c#14 (text+ko) ==== @@ -3222,8 +3222,17 @@ node_p node, last_killed = NULL; while ((node = LIST_FIRST(&V_ng_nodelist)) != NULL) { - if (node == last_killed) - panic("netgraph node %s won't die", node->nd_name); + if (node == last_killed) { + /* This should never happen */ + node->nd_flags |= NGF_REALLY_DIE; + printf("netgraph node %s needs NGF_REALLY_DIE", + node->nd_name); + ng_rmnode(node, NULL, NULL, 0); + /* This must never happen */ + if (node == LIST_FIRST(&V_ng_nodelist)) + panic("netgraph node %s won't die", + node->nd_name); + } ng_rmnode(node, NULL, NULL, 0); last_killed = node; }