diff options
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r-- | drivers/pci/msi.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c index fb07e05a947b..06c5f6edb150 100644 --- a/drivers/pci/msi.c +++ b/drivers/pci/msi.c | |||
@@ -26,6 +26,9 @@ | |||
26 | 26 | ||
27 | static int pci_msi_enable = 1; | 27 | static int pci_msi_enable = 1; |
28 | 28 | ||
29 | #define msix_table_size(flags) ((flags & PCI_MSIX_FLAGS_QSIZE) + 1) | ||
30 | |||
31 | |||
29 | /* Arch hooks */ | 32 | /* Arch hooks */ |
30 | 33 | ||
31 | #ifndef arch_msi_check_device | 34 | #ifndef arch_msi_check_device |
@@ -681,7 +684,7 @@ static int msix_capability_init(struct pci_dev *dev, | |||
681 | pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, control); | 684 | pci_write_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, control); |
682 | 685 | ||
683 | /* Request & Map MSI-X table region */ | 686 | /* Request & Map MSI-X table region */ |
684 | base = msix_map_region(dev, multi_msix_capable(control)); | 687 | base = msix_map_region(dev, msix_table_size(control)); |
685 | if (!base) | 688 | if (!base) |
686 | return -ENOMEM; | 689 | return -ENOMEM; |
687 | 690 | ||
@@ -904,7 +907,7 @@ int pci_msix_table_size(struct pci_dev *dev) | |||
904 | return 0; | 907 | return 0; |
905 | 908 | ||
906 | pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control); | 909 | pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control); |
907 | return multi_msix_capable(control); | 910 | return msix_table_size(control); |
908 | } | 911 | } |
909 | 912 | ||
910 | /** | 913 | /** |