Date: Fri, 24 Apr 2026 18:38:19 +0000 From: Warner Losh <imp@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: b40205855e10 - main - nda: Filter non-storage nvme drives Message-ID: <69ebb89b.22ab2.6ebc1063@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=b40205855e100a4bd95f89e97c15d268ef5b3a35 commit b40205855e100a4bd95f89e97c15d268ef5b3a35 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2026-04-24 18:31:38 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2026-04-24 18:32:49 +0000 nda: Filter non-storage nvme drives Non-stroage drives have namespaces, but no storage attached. These drives have a different interface type than storage drives, so ignore them for the nvme_sim, which just handles storage. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D56461 --- sys/cam/nvme/nvme_da.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sys/cam/nvme/nvme_da.c b/sys/cam/nvme/nvme_da.c index be578bae5da5..ac1e1f09e2af 100644 --- a/sys/cam/nvme/nvme_da.c +++ b/sys/cam/nvme/nvme_da.c @@ -49,6 +49,7 @@ #include <sys/sbuf.h> #include <geom/geom.h> #include <geom/geom_disk.h> +#include <dev/pci/pcireg.h> #endif /* _KERNEL */ #ifndef _KERNEL @@ -731,6 +732,7 @@ ndaasync(void *callback_arg, uint32_t code, struct cam_path *path, void *arg) switch (code) { case AC_FOUND_DEVICE: { + struct ccb_pathinq cpi; struct ccb_getdev *cgd; cam_status status; @@ -741,6 +743,18 @@ ndaasync(void *callback_arg, uint32_t code, struct cam_path *path, void *arg) if (cgd->protocol != PROTO_NVME) break; + /* + * For PCIe cards, filter all the cards whose programming + * interface doesn't conform to the NVMe storage spec. This + * allows the nvme controller to attach to more than just + * storage cards that use the nvme model. + */ + xpt_path_inq(&cpi, cgd->ccb_h.path); + if (cpi.transport == XPORT_NVME && + cpi.xport_specific.nvme.progif != + PCIP_STORAGE_NVM_ENTERPRISE_NVMHCI_1_0) + break; + /* * Allocate a peripheral instance for * this device and start the probehome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ebb89b.22ab2.6ebc1063>
