Date: Mon, 5 Jun 2006 08:32:07 -0400 From: John Baldwin <jhb@freebsd.org> To: Gleb Smirnoff <glebius@freebsd.org> Cc: sekes <gexlie@gmail.com>, src-committers@freebsd.org, julian@freebsd.org, cvs-all@freebsd.org, cvs-src@freebsd.org Subject: Re: cvs commit: src/sys/netgraph ng_base.c Message-ID: <200606050832.09421.jhb@freebsd.org> In-Reply-To: <20060605073345.GU98544@FreeBSD.org> References: <200606022035.k52KZdM1024927@repoman.freebsd.org> <20060605073345.GU98544@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 05 June 2006 03:33, Gleb Smirnoff wrote: > On Fri, Jun 02, 2006 at 08:35:39PM +0000, John Baldwin wrote: > J> jhb 2006-06-02 20:35:39 UTC > J> > J> FreeBSD src repository > J> > J> Modified files: > J> sys/netgraph ng_base.c > J> Log: > J> Conditionally acquire Giant in netgraph callouts to honor mpsafenet=0. > J> > J> Reported by: sekes <gexlie at gmail dot com> > J> MFC after: 1 week > J> > J> Revision Changes Path > J> 1.123 +2 -0 src/sys/netgraph/ng_base.c > > I don't think this is best way to fix this. I'd suggest to back this > out and make this change: > > Index: netgraph.h > =================================================================== > RCS file: /home/ncvs/src/sys/netgraph/netgraph.h,v > retrieving revision 1.65 > diff -u -r1.65 netgraph.h > --- netgraph.h 12 Jan 2006 22:44:04 -0000 1.65 > +++ netgraph.h 5 Jun 2006 07:32:43 -0000 > @@ -1101,7 +1101,7 @@ > int ng_uncallout(struct callout *c, node_p node); > int ng_callout(struct callout *c, node_p node, hook_p hook, int ticks, > ng_item_fn *fn, void * arg1, int arg2); > -#define ng_callout_init(c) callout_init(c, CALLOUT_MPSAFE) > +#define ng_callout_init(c) callout_init(c, NET_CALLOUT_MPSAFE) > > /* Flags for netgraph functions. */ > #define NG_NOFLAGS 0x00000000 /* no special options */ > > If you don't object, I can backout and commit the above myself. Ok, didn't know that we had that flag. That won't work when mpsafenet changes to 0 mid-flight b/c one kldload's a non-mpsafe module though. :) Of course, we already don't support that because NET_LOCK_GIANT doesn't return a locked variable that is passed to NET_UNLOCK_GIANT like VFS_LOCK_GIANT does. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200606050832.09421.jhb>