aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/isp
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2019-02-28 15:24:00 +0000
committerAlexander Motin <mav@FreeBSD.org>2019-02-28 15:24:00 +0000
commit17ec774693f8296e4afcba550a8a89fc64d9fa5d (patch)
tree8e22419cc09f1a360cf34dc51d98bf1e8779a135 /sys/dev/isp
parent01a8235ea61ced963f1e368405cc6d71c0c33bd0 (diff)
Notes
Diffstat (limited to 'sys/dev/isp')
-rw-r--r--sys/dev/isp/isp_pci.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/isp/isp_pci.c b/sys/dev/isp/isp_pci.c
index 202ad8e2df223..9af0172e13120 100644
--- a/sys/dev/isp/isp_pci.c
+++ b/sys/dev/isp/isp_pci.c
@@ -1910,14 +1910,21 @@ isp_pci_irqsetup(ispsoftc_t *isp)
ISP_UNLOCK(isp);
if (ISP_CAP_MSIX(isp)) {
- max_irq = min(ISP_MAX_IRQS, IS_26XX(isp) ? 3 : 2);
+ max_irq = IS_26XX(isp) ? 3 : 2;
+ resource_int_value(device_get_name(dev),
+ device_get_unit(dev), "msix", &max_irq);
+ max_irq = imin(ISP_MAX_IRQS, max_irq);
pcs->msicount = imin(pci_msix_count(dev), max_irq);
if (pcs->msicount > 0 &&
pci_alloc_msix(dev, &pcs->msicount) != 0)
pcs->msicount = 0;
}
if (pcs->msicount == 0) {
- pcs->msicount = imin(pci_msi_count(dev), 1);
+ max_irq = 1;
+ resource_int_value(device_get_name(dev),
+ device_get_unit(dev), "msi", &max_irq);
+ max_irq = imin(1, max_irq);
+ pcs->msicount = imin(pci_msi_count(dev), max_irq);
if (pcs->msicount > 0 &&
pci_alloc_msi(dev, &pcs->msicount) != 0)
pcs->msicount = 0;