Hi,

Below is a patch that fixes an issue where NVMe storage is presented only
via MSI-X.  This issue came about as the NVMe implementation in bhyve only
uses MSI-X.

Thanks to Chuck Tuffli for the initial patch.  It was adjusted to deal with
with both cases.

Thank,

Jason Tubnor

Index: sys/dev/pci/nvme_pci.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/nvme_pci.c,v
retrieving revision 1.7
diff -u -p -u -r1.7 nvme_pci.c
--- sys/dev/pci/nvme_pci.c 10 Jan 2018 15:45:46 -0000 1.7
+++ sys/dev/pci/nvme_pci.c 24 Mar 2019 08:22:42 -0000
@@ -105,7 +105,7 @@ nvme_pci_attach(struct device *parent, s
  return;
  }

- if (pci_intr_map_msi(pa, &ih) != 0) {
+ if ((pci_intr_map_msix(pa, 0, &ih) != 0) && (pci_intr_map_msi(pa, &ih) !=
0)) {
  if (pci_intr_map(pa, &ih) != 0) {
  printf(": unable to map interrupt\n");
  goto unmap;

Reply via email to