freebsd-skq/sys/net
bms f923a8498a In if_freemulti(), relax the paranoid KASSERT() on ifma->ifma_protospec.
This KASSERT() existed as a sanity check that upper layers in the network
stack (e.g. inet, inet6) had released their reference to the underlying
driver's multicast memberships (ifmultiaddr{}). However it assumes the
lifecycle of the driver membership corresponds to the lifecycle of the
network layer membership.

In the submitter's case, ieee80211_ioctl_updatemulti() attempts to
reprogram the (parent, physical) ifnet{} memberships in response
to a change in membership on the (child, virtual) VAP ifnet, using
a batched update mechanism. These updates happen independently from
the network layer, causing a "false negative" assertion failure.

There are possibly other use cases where this KASSERT() may be triggered
by other networking stack activity (e.g. where a nesting relationship
exists between multiple ifnet{} instances). This suggests that further
review of FreeBSD's approach to nested ifnet relationships is needed.

MFC after:	6 weeks
Submitted by:	adrian@
2014-04-10 18:43:02 +00:00
..
bpf_buffer.c Changes to resolve races in bpfread() and catchpacket() that, at worst, 2012-12-10 16:14:44 +00:00
bpf_buffer.h
bpf_filter.c Include strings.h so that bpf_filter.c can be built in userland. 2014-03-19 13:10:25 +00:00
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c Convert the random entropy harvesting code to use a const void * pointer 2013-11-01 20:53:49 +00:00
bpf.h Style: s/SYS_EVENTHANDLER_H/_SYS_EVENTHANDLER_H_/g 2013-10-28 20:32:05 +00:00
bpfdesc.h Changes to resolve races in bpfread() and catchpacket() that, at worst, 2012-12-10 16:14:44 +00:00
bridgestp.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
bridgestp.h
ethernet.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
fddi.h
firewire.h
flowtable.c Pacify gcc. 2014-03-05 02:35:15 +00:00
flowtable.h Add my copyright to flowtable. 2014-02-17 12:07:17 +00:00
ieee8023ad_lacp.c Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +00:00
ieee8023ad_lacp.h Break out the static, global LACP debug options into a per-lagg unit 2013-07-26 19:41:13 +00:00
ieee_oui.h Clean up the macros to avoid using casts. 2013-11-15 16:03:32 +00:00
if_arc.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_arcsubr.c Remove IPX support. 2014-03-14 02:58:48 +00:00
if_arp.h Migrate structs arpstat, icmpstat, mrtstat, pimstat and udpstat to PCPU 2013-07-09 09:50:15 +00:00
if_atm.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_atmsubr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_bridge.c Since 32-bit if_baudrate isn't enough to describe a baud rate of a 10 Gbit 2014-03-13 03:42:24 +00:00
if_bridgevar.h
if_clone.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
if_clone.h Style: s/SYS_EVENTHANDLER_H/_SYS_EVENTHANDLER_H_/g 2013-10-28 20:32:05 +00:00
if_dead.c Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_debug.c
if_disc.c - Remove rt_metrics_lite and simply put its members into rtentry. 2014-03-05 01:17:47 +00:00
if_dl.h Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +00:00
if_edsc.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_enc.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_enc.h
if_epair.c Since 32-bit if_baudrate isn't enough to describe a baud rate of a 10 Gbit 2014-03-13 03:42:24 +00:00
if_ethersubr.c Several years after initial development, merge prototype support for 2014-03-15 00:57:50 +00:00
if_faith.c - Remove rt_metrics_lite and simply put its members into rtentry. 2014-03-05 01:17:47 +00:00
if_fddisubr.c Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
if_fwsubr.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_gif.c ANSIfy function defintions. 2013-11-15 12:12:50 +00:00
if_gif.h Add const qualifier to the dst parameter of the ifnet if_output method. 2013-04-26 12:50:32 +00:00
if_gre.c Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
if_gre.h
if_iso88025subr.c Remove IPX support. 2014-03-14 02:58:48 +00:00
if_lagg.c Simplify filling sockaddr_dl structure for if_resolvemulti() 2014-01-18 23:24:51 +00:00
if_lagg.h Multi-queue NIC drivers and multi-port lagg tend to use the same lower 2013-12-30 01:32:17 +00:00
if_llatbl.c Back out r249318, r249320 and r249327 due to a heisenbug most 2013-05-06 16:42:18 +00:00
if_llatbl.h Remove include opt_ofed.h since OFED is unifdef'd. 2013-08-27 16:45:00 +00:00
if_llc.h
if_loop.c Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
if_media.c
if_media.h Provide forward declaration for struct ifnet. Consumers 2013-10-27 17:27:06 +00:00
if_mib.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
if_mib.h
if_pflog.h o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
if_pfsync.h Remove more constants related to static sysctl nodes. The MAXID constants 2014-02-25 18:44:33 +00:00
if_sppp.h
if_spppfr.c Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
if_spppsubr.c Remove IPX support. 2014-03-14 02:58:48 +00:00
if_stf.c - Remove rt_metrics_lite and simply put its members into rtentry. 2014-03-05 01:17:47 +00:00
if_stf.h
if_tap.c Teach every SIOCGIFSTATUS provider to fill in ifs->ascii anyway. 2014-01-07 15:59:33 +00:00
if_tap.h
if_tapvar.h Revert part of an earlier patch attempt that snuck in with r240938. 2012-09-25 23:41:45 +00:00
if_tun.c Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
if_tun.h
if_types.h Remove IPX support. 2014-03-14 02:58:48 +00:00
if_var.h Add a shorter alias for if_data.ifi_oqdrops. 2014-03-20 02:23:52 +00:00
if_vlan_var.h Style: s/SYS_EVENTHANDLER_H/_SYS_EVENTHANDLER_H_/g 2013-10-28 20:32:05 +00:00
if_vlan.c Include necessary headers that now are available due to pollution 2013-10-28 07:29:16 +00:00
if.c In if_freemulti(), relax the paranoid KASSERT() on ifma->ifma_protospec. 2014-04-10 18:43:02 +00:00
if.h Since 32-bit if_baudrate isn't enough to describe a baud rate of a 10 Gbit 2014-03-13 03:42:24 +00:00
ifq.h Move all interface queue related structures, macros and definitions 2013-10-29 17:48:08 +00:00
iso88025.h Garbage collect long time obsoleted (or never used) stuff from routing API. 2014-03-15 06:49:32 +00:00
netisr_internal.h
netisr.c Fix macro name in comment. 2013-11-26 15:23:56 +00:00
netisr.h Remove AppleTalk support. 2014-03-14 06:29:43 +00:00
netmap_user.h This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
netmap.h This new version of netmap brings you the following: 2014-02-15 04:53:04 +00:00
pfil.c The r48589 promised to remove implicit inclusion of if_var.h soon. Prepare 2013-10-26 17:58:36 +00:00
pfil.h Whitespace, style cleanups, and improved comments. 2013-08-24 12:03:24 +00:00
pfkeyv2.h
pfvar.h Merge from projects/pf r251993 (glebius@): 2014-03-25 06:55:53 +00:00
ppp_defs.h Allow certain headers to be included more easily. 2013-05-21 21:20:10 +00:00
radix_mpath.c - Remove rt_metrics_lite and simply put its members into rtentry. 2014-03-05 01:17:47 +00:00
radix_mpath.h
radix.c Change semantics for rnh_lookup() function: now 2014-01-04 22:25:26 +00:00
radix.h Revert previous commit (262727) and bounce patch back to the 2014-03-04 23:55:04 +00:00
raw_cb.c vnet.h needs to be included before raw_cb.h. Now it compiles due to 2013-10-25 19:49:03 +00:00
raw_cb.h
raw_usrreq.c vnet.h needs to be included before raw_cb.h. Now it compiles due to 2013-10-25 19:49:03 +00:00
route.c Call sctp_addr_change() from rt_addrmsg() instead of rt_newaddrmsg_fib(), 2014-04-07 21:28:21 +00:00
route.h Garbage collect long time obsoleted (or never used) stuff from routing API. 2014-03-15 06:49:32 +00:00
rtsock.c When exporting ifnet via sysctl, add ifqueue(9) drop count to the 2014-03-19 06:08:03 +00:00
sff8472.h Convert #defines to enums so that the values are visible in the debugger. 2014-01-02 21:30:59 +00:00
slcompress.c
slcompress.h
vnet.c Remove identical vnet sysctl handlers, and handle CTLFLAG_VNET 2014-02-07 13:47:33 +00:00
vnet.h Fixup for r261590 (vnet sysctl handlers cleanup). 2014-02-09 08:13:17 +00:00
zlib.c Juggle some internal symbols from our antique zlib (that originally came 2013-01-06 14:59:59 +00:00
zlib.h Juggle some internal symbols from our antique zlib (that originally came 2013-01-06 14:59:59 +00:00
zutil.h