cvs commit: src/sys/net if.c if_var.h src/sys/netgraph ng_ether.c src/sys/netinet in.c in_var.h src/sys/netinet6 mld6.c

Bruce M Simpson bms at FreeBSD.org
Tue Mar 20 00:36:11 UTC 2007


bms         2007-03-20 00:36:11 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if.c if_var.h 
    sys/netgraph         ng_ether.c 
    sys/netinet          in.c in_var.h 
    sys/netinet6         mld6.c 
  Log:
  Implement reference counting for ifmultiaddr, in_multi, and in6_multi
  structures. Detect when ifnet instances are detached from the network
  stack and perform appropriate cleanup to prevent memory leaks.
  
  This has been implemented in such a way as to be backwards ABI compatible.
  Kernel consumers are changed to use if_delmulti_ifma(); in_delmulti()
  is unable to detect interface removal by design, as it performs searches
  on structures which are removed with the interface.
  
  With this architectural change, the panics FreeBSD users have experienced
  with carp and pfsync should be resolved.
  
  Obtained from:  p4 branch bms_netdev
  Reviewed by:    andre
  Sponsored by:   Garance A Drosehn
  Idea from:      NetBSD
  MFC after:      1 month
  
  Revision  Changes    Path
  1.267     +193 -37   src/sys/net/if.c
  1.111     +2 -2      src/sys/net/if_var.h
  1.62      +18 -3     src/sys/netgraph/ng_ether.c
  1.97      +114 -74   src/sys/netinet/in.c
  1.60      +1 -1      src/sys/netinet/in_var.h
  1.29      +83 -72    src/sys/netinet6/mld6.c


More information about the cvs-src mailing list