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 Reduce the time it takes the kernel to install a new PF config containing a large number of queues 2019-02-11 05:17:31 +00:00
bpf_buffer.c Add an external mbuf buffer type that holds multiple unmapped pages. 2019-06-29 00:48:33 +00:00
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 Add an external mbuf buffer type that holds multiple unmapped pages. 2019-06-29 00:48:33 +00:00
bpf.h Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
bpfdesc.h Rework locking in BPF code to remove rwlock from fast path. 2019-05-13 13:45:28 +00:00
bridgestp.c bridge: Fix panic if the STP root is removed 2019-03-15 11:21:20 +00:00
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 Fix a typo in r349969 2019-07-14 03:49:48 +00:00
if_arp.h Improve ARP logging. 2019-03-09 01:12:59 +00:00
if_bridge.c if_bridge(4): Complete bpf auditing of local traffic over the bridge 2019-05-29 01:08:30 +00:00
if_bridgevar.h
if_clone.c
if_clone.h Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
if_dead.c This adds the third step in getting BBR into the tree. BBR and 2019-08-01 14:17:31 +00:00
if_debug.c
if_disc.c
if_dl.h
if_edsc.c
if_enc.c New pfil(9) KPI together with newborn pfil API and control utility. 2019-01-31 23:01:03 +00:00
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 Add GRE-in-UDP encapsulation support as defined in RFC8086. 2019-04-24 09:05:45 +00:00
if_gre.h Add GRE-in-UDP encapsulation support as defined in RFC8086. 2019-04-24 09:05:45 +00:00
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 Select lacp egress ports based on NUMA domain 2019-05-03 14:43:21 +00:00
if_llatbl.c Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
if_llatbl.h Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
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(4): Add TUNGIFNAME 2019-07-25 22:23:34 +00:00
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 Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
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 Allow set MTU more than 1500 bytes. 2019-07-24 16:10:20 +00:00
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 - Remove the unused ifc_link_irq and ifc_mtx_name members of struct iflib_ctx. 2019-05-06 20:56:41 +00:00
iflib_private.h - Replace unused and only ever written to members of public iflib(9) 2019-06-15 11:07:41 +00:00
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 - Merge r338254 from cxgbe(4): 2019-05-09 11:34:46 +00:00
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: add support for multiple host rings 2019-03-18 12:22:23 +00:00
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 Most Ethernet drivers that potentially can run a pfil(9) hook with 2019-03-10 17:20:09 +00:00
pfil.h Most Ethernet drivers that potentially can run a pfil(9) hook with 2019-03-10 17:20:09 +00:00
pfkeyv2.h
pfvar.h pf :Use counter(9) in pf tables. 2019-03-15 11:08:44 +00:00
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 Existense of PCB route caching doesn't allow us to use new fast route 2019-05-08 23:39:24 +00:00
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 net: Update SFF-8024 definitions and strings with values from rev 4.6 2019-08-17 00:10:56 +00:00
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