opnsense-src/sys
Warner Losh aebc14fcf5 nvme: Enable interrupts after qpair fully constructed
To guard against the ill effects of a spurious interrupt during
construction (or one that was bogusly pending), enable interrupts after
the qpair is completely constructed. Otherwise, we can die with null
pointer dereferences in nvme_qpair_process_completions. This has been
observed in at least one pre-release NVMe drive where the MSIX interrupt
fired while the queue was being created, before we'd started the NVMe
controller card.

The alternative of only turning on the interrupts after the rest was
tried, but was insufficient to work around this bug and made the code
more complicated w/o benefit.

Reviewed by:		mav, chuck
Sponsored by:		Netflix
Differential Revision:	https://reviews.freebsd.org/D31182

(cherry picked from commit fc9a084023)
2021-07-21 10:13:11 -06:00
..
amd64 vmm: Fix AMD-vi using wrong rid range 2021-07-21 23:06:35 +08:00
arm arm: replace byte-by-byte memcmp with an already existing asm variant 2021-07-19 09:54:18 +00:00
arm64 arm64, riscv: remove reference to fsu_intr_fault 2021-07-21 12:50:13 -03:00
bsm
cam cam_iosched: use tunable flag and make a bool really a bool 2021-07-21 10:13:10 -06:00
cddl
compat LinuxKPI: Implement sequence counters and sequential locks 2021-07-21 01:43:52 +03:00
conf arm: replace byte-by-byte memcmp with an already existing asm variant 2021-07-19 09:54:18 +00:00
contrib zfs: merge openzfs/zfs@4f92fe0f5 (zfs-2.1-release) into stable/13 2021-07-10 17:59:52 +02:00
crypto
ddb ddb: reliably fail with ambiguous commands 2021-07-02 14:13:24 -07:00
dev nvme: Enable interrupts after qpair fully constructed 2021-07-21 10:13:11 -06:00
dts
fs nfscl: Improve "Consider increasing kern.ipc.maxsockbuf" message 2021-07-14 13:45:41 -07:00
gdb
geom gmultipath: make physpath distinct from the underlying providers' 2021-06-17 12:39:14 -06:00
gnu
i386 x86: use ANSI C definition style for trap_fatal 2021-07-17 13:52:04 +03:00
isa
kern procctl(PROC_ASLR_STATUS): fix vmspace leak 2021-07-18 03:26:52 +03:00
kgssapi
libkern Remove incorrect __restricted labels from strcspn 2021-07-21 10:13:10 -06:00
mips Consolidate machine/endian.h definitions 2021-06-24 20:42:56 -03:00
modules zfs: merge openzfs/zfs@4f92fe0f5 (zfs-2.1-release) into stable/13 2021-07-10 17:59:52 +02:00
net pf: add DIOCGETSTATESV2 2021-07-16 11:08:27 +02:00
net80211 net80211/LinuxKPI: add more radiotap definitions 2021-07-18 00:35:03 +00:00
netgraph Consistently use the SOLISTENING() macro 2021-06-21 09:14:40 -04:00
netinet libalias: fix divide by zero causing panic 2021-07-14 13:49:21 +02:00
netinet6 sctp: Fix errno in case of association setup failures 2021-07-13 20:30:57 +02:00
netipsec Add missing sockaddr length and family validation to various protocols 2021-05-17 13:43:07 -04:00
netpfil pf: bound DIOCGETSTATESV2 memory use 2021-07-16 11:08:28 +02:00
netsmb netsmb: Avoid a read-after-free in smb_t2_request_int() 2021-06-02 09:34:47 -04:00
nfs
nfsclient
nfsserver
nlm
ofed mlx4/OFED: replace the struct net_device with struct ifnet 2021-07-18 00:35:03 +00:00
opencrypto cryptodev: Fix some input validation bugs 2021-05-14 09:58:54 -04:00
powerpc Consolidate machine/endian.h definitions 2021-06-24 20:42:56 -03:00
riscv arm64, riscv: remove reference to fsu_intr_fault 2021-07-21 12:50:13 -03:00
rpc krpc: Acquire ref count of CLIENT for backchannel use 2021-06-26 16:03:41 -07:00
security mac: cheaper check for ifnet_create_mbuf and ifnet_check_transmit 2021-07-05 11:32:14 +00:00
sys Remove incorrect __restricted labels from strcspn 2021-07-21 10:13:10 -06:00
teken
tests tests: Revise FIB lookups per second benchmarking routines 2021-06-20 13:27:17 +02:00
tools makesyscalls.lua: improve generated file style(9) compliance 2021-05-19 20:31:54 -04:00
ufs ffs_softdep: force sync if journal is low in journal_check_space 2021-07-07 13:50:44 +03:00
vm Un-staticise vm_page_init_page() 2021-06-24 05:20:33 +03:00
x86 Consolidate machine/endian.h definitions 2021-06-24 20:42:56 -03:00
xdr
xen
Makefile