Index: nvme_pci.c =================================================================== RCS file: /cvs/src/sys/dev/pci/nvme_pci.c,v retrieving revision 1.5 diff -u -p -r1.5 nvme_pci.c --- nvme_pci.c 10 Nov 2016 11:56:41 -0000 1.5 +++ nvme_pci.c 3 Jul 2017 05:28:50 -0000 @@ -77,6 +77,17 @@ nvme_pci_match(struct device *parent, vo return (0); } +static inline int +nvme_msi_blacklisted(struct pci_attach_args *pa) +{ + static const struct pci_matchid nvme_msi_blacklist[] = { + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_OPTANE }, + }; + + return (pci_matchbyid(pa, nvme_msi_blacklist, + nitems(nvme_msi_blacklist))); +} + void nvme_pci_attach(struct device *parent, struct device *self, void *aux) { @@ -97,7 +108,7 @@ nvme_pci_attach(struct device *parent, s return; } - if (pci_intr_map_msi(pa, &ih) != 0) { + if (nvme_msi_blacklisted(pa) || pci_intr_map_msi(pa, &ih) != 0) { if (pci_intr_map(pa, &ih) != 0) { printf(": unable to map interrupt\n"); goto unmap; Index: pcidevs =================================================================== RCS file: /cvs/src/sys/dev/pci/pcidevs,v retrieving revision 1.1820 diff -u -p -r1.1820 pcidevs --- pcidevs 2 Jun 2017 16:04:11 -0000 1.1820 +++ pcidevs 3 Jul 2017 05:28:50 -0000 @@ -3718,6 +3718,7 @@ product INTEL WL_3168_1 0x24fb Dual Ban product INTEL WL_8265_1 0x24fd Dual Band Wireless-AC 8265 product INTEL 82820_HB 0x2501 82820 Host product INTEL 82820_AGP 0x250f 82820 AGP +product INTEL OPTANE 0x2522 Optane product INTEL 82850_HB 0x2530 82850 Host product INTEL 82860_HB 0x2531 82860 Host product INTEL 82850_AGP 0x2532 82850/82860 AGP Index: pcidevs.h =================================================================== RCS file: /cvs/src/sys/dev/pci/pcidevs.h,v retrieving revision 1.1814 diff -u -p -r1.1814 pcidevs.h --- pcidevs.h 2 Jun 2017 16:04:36 -0000 1.1814 +++ pcidevs.h 3 Jul 2017 05:28:50 -0000 @@ -3723,6 +3723,7 @@ #define PCI_PRODUCT_INTEL_WL_8265_1 0x24fd /* Dual Band Wireless-AC 8265 */ #define PCI_PRODUCT_INTEL_82820_HB 0x2501 /* 82820 Host */ #define PCI_PRODUCT_INTEL_82820_AGP 0x250f /* 82820 AGP */ +#define PCI_PRODUCT_INTEL_OPTANE 0x2522 /* Optane */ #define PCI_PRODUCT_INTEL_82850_HB 0x2530 /* 82850 Host */ #define PCI_PRODUCT_INTEL_82860_HB 0x2531 /* 82860 Host */ #define PCI_PRODUCT_INTEL_82850_AGP 0x2532 /* 82850/82860 AGP */ Index: pcidevs_data.h =================================================================== RCS file: /cvs/src/sys/dev/pci/pcidevs_data.h,v retrieving revision 1.1808 diff -u -p -r1.1808 pcidevs_data.h --- pcidevs_data.h 2 Jun 2017 16:04:36 -0000 1.1808 +++ pcidevs_data.h 3 Jul 2017 05:28:50 -0000 @@ -12388,6 +12388,10 @@ static const struct pci_known_product pc "82820 AGP", }, { + PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_OPTANE, + "Optane", + }, + { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82850_HB, "82850 Host", },