freebsd-dev/sys/net
Eric Joyner 1558015e3e iflib: call ether_ifdetach and netmap_detach before stop
From Jake:
Calling ether_ifdetach after iflib_stop leads to a potential race where
a stale ifp pointer can remain in the route entry list for IPv6 traffic.
This will potentially cause a page fault or other system instability if
the ifp pointer is accessed.

Move both iflib_netmap_detach and ether_ifdetach to be called prior to
iflib_stop. This avoids the race above, and helps ensure that other ifp
references are removed before stopping the interface.

Submitted by:	Jacob Keller <jacob.e.keller@intel.com>
Reviewed by:	erj@, gallatin@, jhb@
MFC after:	3 days
Sponsored by:	Intel Corporation
Differential Revision:	https://reviews.freebsd.org/D22071
2019-10-23 23:20:49 +00:00
..
altq
bpf_buffer.c
bpf_buffer.h
bpf_filter.c
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c Change synchonization rules for vm_page reference counting. 2019-09-09 21:32:42 +00:00
bpf_zerocopy.h
bpf.c
bpf.h
bpfdesc.h
bridgestp.c
bridgestp.h
debugnet_inet.c Implement NetGDB(4) 2019-10-17 21:33:01 +00:00
debugnet_int.h Implement NetGDB(4) 2019-10-17 21:33:01 +00:00
debugnet.c Prevent a panic when a driver provides bogus debugnet parameters 2019-10-23 16:48:22 +00:00
debugnet.h Implement NetGDB(4) 2019-10-17 21:33:01 +00:00
dlt.h
ethernet.h ether: add older ethertype definitions for QinQ 2019-10-17 00:34:53 +00:00
firewire.h
ieee8023ad_lacp.c Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
ieee8023ad_lacp.h Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
ieee_oui.h
if_arp.h
if_bridge.c
if_bridgevar.h
if_clone.c
if_clone.h
if_dead.c
if_debug.c
if_disc.c
if_dl.h
if_edsc.c
if_enc.c
if_enc.h
if_epair.c
if_ethersubr.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
if_fwsubr.c
if_gif.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
if_gif.h
if_gre.c
if_gre.h
if_ipsec.c
if_ipsec.h
if_lagg.c Add kernel-side support for in-kernel TLS. 2019-08-27 00:01:56 +00:00
if_lagg.h
if_llatbl.c
if_llatbl.h
if_llc.h
if_loop.c
if_me.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
if_media.c
if_media.h
if_mib.c ifnet_byindex_ref() requires network epoch. 2019-10-09 16:21:50 +00:00
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c
if_spppsubr.c Don't use if_maddr_rlock() in sppp(4), use epoch(9) directly instead. 2019-10-10 23:54:37 +00:00
if_stf.c Interface output method must be executed in network epoch, so if_addr_rlock() 2019-10-10 23:50:32 +00:00
if_tap.h tap: add support for virtio-net offloads 2019-10-18 21:53:27 +00:00
if_tun.h
if_tuntap.c tuntap(4): Fix NOINET build after r353741 2019-10-23 02:15:15 +00:00
if_types.h
if_var.h Remove obsoleted KPIs that were used to access interface address lists. 2019-10-21 18:17:03 +00:00
if_vlan_var.h
if_vlan.c Revert two parts of r353292 that enter epoch when processing vlan capabilities. 2019-10-17 20:18:07 +00:00
if_vxlan.c
if_vxlan.h
if.c Remove obsoleted KPIs that were used to access interface address lists. 2019-10-21 18:17:03 +00:00
if.h Add SIOCGIFDOWNREASON. 2019-09-17 18:49:13 +00:00
ifdi_if.m
iflib_clone.c
iflib_private.h
iflib.c iflib: call ether_ifdetach and netmap_detach before stop 2019-10-23 23:20:49 +00:00
iflib.h Add IFLIB_SINGLE_IRQ_RX_ONLY. 2019-09-30 15:59:07 +00:00
ifq.h
mp_ring.c
mp_ring.h
mppc.h
mppcc.c
mppcd.c
netisr_internal.h
netisr.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
netisr.h
netmap_legacy.h
netmap_user.h netmap: import changes from upstream (SHA 137f537eae513) 2019-09-01 14:47:41 +00:00
netmap_virt.h
netmap.h netmap: import changes from upstream (SHA 137f537eae513) 2019-09-01 14:47:41 +00:00
paravirt.h
pfil.c
pfil.h
pfkeyv2.h
pfvar.h
ppp_defs.h
radix_mpath.c
radix_mpath.h
radix.c
radix.h
raw_cb.c
raw_cb.h
raw_usrreq.c
rndis.h
route_var.h
route.c Make rt_getifa_fib() static. 2019-10-18 15:20:24 +00:00
route.h Make rt_getifa_fib() static. 2019-10-18 15:20:24 +00:00
rss_config.c
rss_config.h
rtsock.c Widen NET_EPOCH coverage. 2019-10-07 22:40:05 +00:00
sff8436.h
sff8472.h
slcompress.c
slcompress.h
toeplitz.c
toeplitz.h
vnet.c Fix regression issue after r353274: 2019-10-08 11:06:24 +00:00
vnet.h Compile time assert a valid subsystem for all VNET init and uninit functions. 2019-10-07 14:24:59 +00:00