cvs commit: src/sys/net if.c if_var.h

Robert Watson rwatson at FreeBSD.org
Tue Aug 2 23:23:27 GMT 2005


rwatson     2005-08-02 23:23:26 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if.c if_var.h 
  Log:
  Protect link layer network interface multicast address list manipulation
  using ifp->if_addr_mtx:
  
  - Initialize if_addr_mtx when ifnet is initialized.
  
  - Destroy if_addr_mtx when ifnet is torn down.
  
  - Rename ifmaof_ifpforaddr() to if_findmulti(); assert if_addr_mtx.
    Staticize.
  
  - Extract ifmultiaddr allocation and initialization into if_allocmulti();
    accept a 'mflags' argument to indicate whether or not sleeping is
    permitted.  This centralizes error handling and address duplication.
  
  - Extract ifmultiaddr tear-down and deallocation in if_freemulti().
  
  - Re-structure if_addmulti() to hold if_addr_mtx around manipulation of
    the ifnet multicast address list and reference count manipulation.
    Make use of non-sleeping allocations.  Annotate the fact that we only
    generate routing socket events for explicit address addition, not
    implicit link layer address addition.
  
  - Re-structure if_delmulti() to hold if_addr_mtx around manipulation of
    the ifnet multicast address list and reference count manipulation.
    Annotate the lack of a routing socket event for implicit link layer
    address removal.
  
  - De-spl all and sundry.
  
  Problem reported by:    Ed Maste <emaste at phaedrus dot sandvine dot ca>
  MFC after:              1 week
  
  Revision  Changes    Path
  1.239     +208 -119  src/sys/net/if.c
  1.101     +0 -1      src/sys/net/if_var.h


More information about the cvs-src mailing list