Subject: Re: CVS commit: src/sys/net
To: Ross Harvey <firstname.lastname@example.org>
From: Manuel Bouyer <email@example.com>
Date: 10/21/2005 22:10:08
On Fri, Oct 21, 2005 at 03:56:40PM -0400, Ross Harvey wrote:
> > From: Manuel Bouyer <firstname.lastname@example.org>
> > Date: Fri, 10 Jun 2005 11:11:38 +0000 (UTC)
> > Module Name: src
> > Committed By: bouyer
> > Date: Fri Jun 10 11:11:38 UTC 2005
> > Modified Files:
> > src/sys/net: if_ethersubr.c
> > Log Message:
> > As ether_input() is always called at IPL_NET, there is no need to
> > protect the IF_* operations with splnet()/splx().
> > To generate a diff of this commit:
> > cvs rdiff -r1.125 -r1.126 src/sys/net/if_ethersubr.c
> > Please note that diffs are not public domain; they are subject to the
> > copyright notices on the relevant files.
> There are over 100 different ether_input() call sites.
> Are you sure that none of them are ever made at splsoftnet()?
> (Perhaps from a callout?) I too wondered if the splnet()
> was redundant; perhaps the idea was to require only splsoftnet().
I asked on tech-net, the consensus was that ether_input() has to be called
at splnet() (most callers are already at splnet()), and the few ones
which didn't had to be fixed. I fixed tap(4) for this; ether_input() was
already brocken when not called at splnet() (the reason why I looked at
this in the first place).
See "ether_input vs splnet()" in http://mail-index.netbsd.org/tech-net/2005/06/
Manuel Bouyer <email@example.com>
NetBSD: 26 ans d'experience feront toujours la difference