freebsd-dev/sys/dev/nvme
Alexander Motin f439e3a4ff Refactor NVMe CAM integration.
- Remove layering violation, when NVMe SIM code accessed CAM internal
device structures to set pointers on controller and namespace data.
Instead make NVMe XPT probe fetch the data directly from hardware.
 - Cleanup NVMe SIM code, fixing support for multiple namespaces per
controller (reporting them as LUNs) and adding controller detach support
and run-time namespace change notifications.
 - Add initial support for namespace change async events.  So far only
in CAM mode, but it allows run-time namespace arrival and departure.
 - Add missing nvme_notify_fail_consumers() call on controller detach.
Together with previous changes this allows NVMe device detach/unplug.

Non-CAM mode still requires a lot of love to stay on par, but at least
CAM mode code should not stay in the way so much, becoming much more
self-sufficient.

Reviewed by:	imp
MFC after:	1 month
Sponsored by:	iXsystems, Inc.
2018-05-25 03:34:33 +00:00
..
nvme_ctrlr_cmd.c Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00
nvme_ctrlr.c Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00
nvme_ns_cmd.c NVMe: Add big-endian support 2018-02-22 13:32:31 +00:00
nvme_ns.c Set si_drv1 for nvmeXnsY in a new race-free way. 2018-04-30 19:21:20 +00:00
nvme_private.h Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00
nvme_qpair.c Fix use-after-free in nvme_qpair_destroy(). 2018-04-30 21:28:10 +00:00
nvme_sim.c Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00
nvme_sysctl.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_test.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme_util.c sys/dev: further adoption of SPDX licensing ID tags. 2017-11-27 14:52:40 +00:00
nvme.c Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00
nvme.h Refactor NVMe CAM integration. 2018-05-25 03:34:33 +00:00