diff --git a/drivers/ntb/ntb_hw.c b/drivers/ntb/ntb_hw.c index eba1ed58471d..06d605c6f362 100644 --- a/drivers/ntb/ntb_hw.c +++ b/drivers/ntb/ntb_hw.c @@ -1086,19 +1086,12 @@ static int ntb_setup_msix(struct ntb_device *ndev) struct msix_entry *msix; int msix_entries; int rc, i; - u16 val; - if (!pdev->msix_cap) { - rc = -EIO; + msix_entries = pci_msix_vec_count(pdev); + if (msix_entries < 0) { + rc = msix_entries; goto err; - } - - rc = pci_read_config_word(pdev, pdev->msix_cap + PCI_MSIX_FLAGS, &val); - if (rc) - goto err; - - msix_entries = msix_table_size(val); - if (msix_entries > ndev->limits.msix_cnt) { + } else if (msix_entries > ndev->limits.msix_cnt) { rc = -EINVAL; goto err; } diff --git a/drivers/ntb/ntb_hw.h b/drivers/ntb/ntb_hw.h index 923a0fbb0eb8..465517b7393e 100644 --- a/drivers/ntb/ntb_hw.h +++ b/drivers/ntb/ntb_hw.h @@ -61,8 +61,6 @@ #define PCI_DEVICE_ID_INTEL_NTB_SS_HSX 0x2F0F #define PCI_DEVICE_ID_INTEL_NTB_B2B_BWD 0x0C4E -#define msix_table_size(control) ((control & PCI_MSIX_FLAGS_QSIZE)+1) - #ifndef readq static inline u64 readq(void __iomem *addr) {