freebsd-nq/sys
Aleksandr Fedorov 0e6e2c4ef3 netgraph(4): Don't process NGQF_MESG items in NET_EPOCH context.
Netgraph has two main types of message items:

- NGQF_DATA items are used for data processing. This is a hot path that
should be called from a NET_EPOCH context.

- NGQF_MESG items are used for node configuration. There are many places
in netgraph(4) where processing the NGQF_MESG item can call sections of code
that are forbidden in the NET_EPOCH context.

All item types can be queued and then processed using ngthread().
But ngthread() is unconditionally enter in the NET_EPOCH section for all types.
This causes panic/deadlocks when processing NGQF_MESG elements.

Reported by:	mjg
Reviewed by:	glebius, vmaffione (mentor)
Tested by:	mjg, afedorov
Approved by:	glebius, vmaffione (mentor)
Sponsored by:	vstack.com
Differential Revision:	https://reviews.freebsd.org/D36496
2022-09-13 17:20:41 +03:00
..
amd64 tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
arm tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
arm64 tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
bsm
cam CTL: Validate IOCTL parameters. 2022-09-06 21:58:27 -04:00
cddl
compat rb_tree: pass parent to RB_INSERT_COLOR 2022-09-13 01:11:47 -05:00
conf tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
contrib rtw89: import firmware for Realtek's rtw89 supported chipsets. 2022-09-09 16:32:17 +00:00
crypto Fix the IV length in the armv8 AES GCM code 2022-09-06 13:11:04 +01:00
ddb
dev qcom_qup: compilation fixes 2022-09-12 20:10:25 -07:00
dts
fs nfscl: Allow "nolockd" to work for NFSv4 mounts 2022-09-04 13:09:33 -07:00
gdb
geom
gnu
i386 tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
isa
kern vfs: make NDVALIDATE private to vfs_lookup.c 2022-09-12 22:50:48 +00:00
kgssapi
libkern
modules rtw89: import firmware for Realtek's rtw89 supported chipsets. 2022-09-09 16:32:17 +00:00
net Add getsock 2022-09-10 19:47:47 +00:00
net80211 LinuxKPI: 80211 (+net80211): update and cleanup headers 2022-09-09 18:40:23 +00:00
netgraph netgraph(4): Don't process NGQF_MESG items in NET_EPOCH context. 2022-09-13 17:20:41 +03:00
netinet tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
netinet6 netinet6: Remove a double word in a source code comment 2022-09-10 13:01:44 +02:00
netipsec
netpfil pf: remove pf_bcmp_state_key 2022-09-09 17:16:58 +00:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed
opencrypto
powerpc tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
riscv tcp: make CUBIC the default congestion control mechanism. 2022-09-13 12:09:21 +02:00
rpc
security mac_veriexec_parser: fix build after 7e1d3eefd4. 2022-09-09 14:09:08 +02:00
sys rb_tree: pass parent to RB_INSERT_COLOR 2022-09-13 01:11:47 -05:00
teken
tests
tools
ufs Updates to UFS/FFS superblock integrity checks when reading a superblock. 2022-09-03 14:11:38 -07:00
vm
x86 x86: Correct a typo in source code comment 2022-09-04 13:36:53 +02:00
xdr
xen
Makefile