From owner-freebsd-bugs Thu Feb 6 7:40:15 2003 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3A54437B405 for ; Thu, 6 Feb 2003 07:40:13 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id DB33643F93 for ; Thu, 6 Feb 2003 07:40:12 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id h16FeCNS062539 for ; Thu, 6 Feb 2003 07:40:12 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id h16FeCKk062537; Thu, 6 Feb 2003 07:40:12 -0800 (PST) Date: Thu, 6 Feb 2003 07:40:12 -0800 (PST) Message-Id: <200302061540.h16FeCKk062537@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Maxim Konovalov Subject: Re: kern/48009: dummynet(4) related machine hangs Reply-To: Maxim Konovalov Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR kern/48009; it has been noted by GNATS. From: Maxim Konovalov To: =?KOI8-R?Q?Pawe=B3_Ma=B3achowski?= Cc: bug-followup@freebsd.org Subject: Re: kern/48009: dummynet(4) related machine hangs Date: Thu, 6 Feb 2003 18:33:58 +0300 (MSK) Known problem. Could you please try a patch below? Index: ip_dummynet.c =================================================================== RCS file: /home/maxim/cvs/sys/netinet/ip_dummynet.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ip_dummynet.c 9 Dec 2002 12:41:50 -0000 1.6 +++ ip_dummynet.c 9 Dec 2002 13:45:30 -0000 1.7 @@ -1547,6 +1547,7 @@ } else x = b; + s = splimp(); x->bandwidth = p->bandwidth ; x->numbytes = 0; /* just in case... */ bcopy(p->if_name, x->if_name, sizeof(p->if_name) ); @@ -1561,14 +1562,13 @@ free(x, M_DUMMYNET); return s ; } - s = splimp() ; x->next = b ; if (a == NULL) all_pipes = x ; else a->next = x ; - splx(s); } + splx(s); } else { /* config queue */ struct dn_flow_set *x, *a, *b ; @@ -1597,6 +1597,7 @@ return EINVAL ; x = b; } + s = splimp(); set_fs_parms(x, pfs); if ( x->rq == NULL ) { /* a new flow_set */ @@ -1605,14 +1606,13 @@ free(x, M_DUMMYNET); return s ; } - s = splimp() ; x->next = b; if (a == NULL) all_flow_sets = x; else a->next = x; - splx(s); } + splx(s); } return 0 ; } %%% -- Maxim Konovalov, maxim@macomnet.ru, maxim@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message