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