Skip site navigation (1)Skip section navigation (2)
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>