freebsd-nq/sys/net
Andrey V. Elsukov 1a01e0e7ac Add inpcb pointer to struct ipsec_ctx_data and pass it to the pfil hook
from enc_hhook().

This should solve the problem when pf is used with if_enc(4) interface,
and outbound packet with existing PCB checked by pf, and this leads to
deadlock due to pf does its own PCB lookup and tries to take rlock when
wlock is already held.

Now we pass PCB pointer if it is known to the pfil hook, this helps to
avoid extra PCB lookup and thus rlock acquiring is not needed.
For inbound packets it is safe to pass NULL, because we do not held any
PCB locks yet.

PR:		220217
MFC after:	3 weeks
Sponsored by:	Yandex LLC
2017-07-31 11:04:35 +00:00
..
altq Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
bpf_buffer.c
bpf_buffer.h
bpf_filter.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
bpf_jitter.c
bpf_jitter.h
bpf_zerocopy.c
bpf_zerocopy.h
bpf.c Update comments and simplify conditionals for compat32 2017-06-27 01:29:10 +00:00
bpf.h
bpfdesc.h
bridgestp.c
bridgestp.h
dlt.h
ethernet.h ethernet: Add ethernet interface attached event and devctl notification. 2017-07-24 03:32:10 +00:00
fddi.h
firewire.h
ieee8023ad_lacp.c
ieee8023ad_lacp.h
ieee_oui.h
if_arc.h
if_arcsubr.c
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 Add inpcb pointer to struct ipsec_ctx_data and pass it to the pfil hook 2017-07-31 11:04:35 +00:00
if_enc.h Add inpcb pointer to struct ipsec_ctx_data and pass it to the pfil hook 2017-07-31 11:04:35 +00:00
if_epair.c
if_ethersubr.c ethernet: Add ethernet interface attached event and devctl notification. 2017-07-24 03:32:10 +00:00
if_fddisubr.c
if_fwsubr.c
if_gif.c
if_gif.h
if_gre.c
if_gre.h
if_ipsec.c
if_ipsec.h
if_iso88025subr.c
if_lagg.c Don't hold the RM lock during lagg_proto_addport() to avoid an LOR. 2017-07-25 14:41:50 +00:00
if_lagg.h Remove some code, dead from the day one. 2017-05-25 23:19:09 +00:00
if_llatbl.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
if_llatbl.h
if_llc.h
if_loop.c
if_me.c
if_media.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
if_media.h
if_mib.c
if_mib.h
if_pflog.h
if_pfsync.h
if_sppp.h
if_spppfr.c
if_spppsubr.c
if_stf.c Remove the unused mutex since r273220. 2017-07-28 04:41:57 +00:00
if_tap.c
if_tap.h
if_tapvar.h
if_tun.c
if_tun.h
if_types.h
if_var.h
if_vlan_var.h
if_vlan.c Add parent interface reference counting to if_vlan. 2017-05-23 00:13:27 +00:00
if_vxlan.c
if_vxlan.h
if.c
if.h
ifdi_if.m
iflib.c Slight restructure of iflib_busdma_load_mbuf_sg() to fix accounting 2017-07-27 22:53:47 +00:00
iflib.h Deprecate unused int isc_max_txqsets and int isc_max_rxqsets as they 2017-07-27 21:21:43 +00:00
ifq.h
iso88025.h
mp_ring.c
mp_ring.h
mppc.h
mppcc.c
mppcd.c
netisr_internal.h
netisr.c
netisr.h
netmap_user.h Update netmap_user.h with the current version of netmap. This file should 2017-07-21 03:42:09 +00:00
netmap_virt.h
netmap.h
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 rndis: Add LINK_SPEED_CHANGE status 2017-07-24 03:59:50 +00:00
route_var.h
route.c After inpcb route caching was put back in place there is no need for 2017-07-27 13:03:36 +00:00
route.h Resurrect RTF_RNH_LOCKED flag and restore ability to call rtalloc1_fib() 2017-06-13 10:52:31 +00:00
rss_config.c
rss_config.h
rtsock.c
sff8436.h
sff8472.h
slcompress.c Remove register keyword from sys/ and ANSIfy prototypes 2017-05-17 00:34:34 +00:00
slcompress.h
toeplitz.c
toeplitz.h
vnet.c
vnet.h