cvs commit: src/sys/net bpf.c

Brian Fundakowski Feldman green at FreeBSD.org
Thu Aug 5 12:31:03 PDT 2004


On Wed, Aug 04, 2004 at 11:23:49PM -0400, Robert Watson wrote:
> 
> On Wed, 4 Aug 2004, Brian Fundakowski Feldman wrote:
> 
> > On Thu, Aug 05, 2004 at 02:37:36AM +0000, Robert Watson wrote:
> > > rwatson     2004-08-05 02:37:36 UTC
> > > 
> > >   FreeBSD src repository
> > > 
> > >   Modified files:
> > >     sys/net              bpf.c 
> > >   Log:
> > >   Do a lockless read of the BPF interface structure descriptor list head
> > >   before grabbing BPF locks to see if there are any entries in order to
> > >   avoid the cost of locking if there aren't any.  Avoids a mutex lock/
> > >   unlock for each packet received if there are no BPF listeners.
> > 
> > While you're there, do you want to check out the other problems I've
> > been noticing, relating to consistency/locking? 
> 
> Yes.  Can you e-mail me the pointer to your patch and/or p4 branch again?
> I'll try to look at it tomorrow.
> 
> Thanks!

The main problems are accesses to bpf_d->bd_bif; in bpf_detachd(),
the accesses have no protection.  I found that in catchpacket(),
d->bd_bif could be NULL (crash).

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\


More information about the cvs-all mailing list