opnsense-src/sys/dev/nvme
Warner Losh fc9a084023 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
2021-07-15 16:17:23 -06:00
..
nvme.c nvme: use config_intrhook_drain to avoid removable card races 2021-03-11 09:45:10 -07:00
nvme.h nvme: Fix alignment on nvme structures 2021-07-02 16:05:19 -06:00
nvme_ahci.c Make nvme(4) driver some more NUMA aware. 2019-09-23 17:53:47 +00:00
nvme_ctrlr.c nvme: fix a race between failing the controller and failing requests 2021-05-28 23:05:40 -06:00
nvme_ctrlr_cmd.c Add Host Memory Buffer support to nvme(4). 2020-01-07 21:17:11 +00:00
nvme_ns.c nvme(4): Report NPWA before NPWG as stripesize. 2021-07-05 23:13:15 -04:00
nvme_ns_cmd.c Add a brief comment explaining why we can return ETIMEDOUT from the call to the 2019-09-02 17:10:46 +00:00
nvme_pci.c nvme: clean up empty lines in .c and .h files 2020-09-01 22:03:10 +00:00
nvme_private.h nvme: Make nvme_ctrlr_hw_reset static 2021-02-08 13:29:24 -07:00
nvme_qpair.c nvme: Enable interrupts after qpair fully constructed 2021-07-15 16:17:23 -06:00
nvme_sim.c Report cpi->hba_* for nda(4) because why not. 2020-08-12 20:05:43 +00:00
nvme_sysctl.c nvme: Remove compat code for older kernels 2020-10-24 01:59:01 +00:00
nvme_test.c nvme: clean up empty lines in .c and .h files 2020-09-01 22:03:10 +00:00
nvme_util.c nvme: clean up empty lines in .c and .h files 2020-09-01 22:03:10 +00:00