summaryrefslogtreecommitdiffstats
path: root/sys/dev/ahci
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2016-08-18 11:17:01 +0000
committermav <mav@FreeBSD.org>2016-08-18 11:17:01 +0000
commit5a81cccdc50e07c5c8d34e3586fcb2044a49c1d5 (patch)
tree63875196fe71d1bf00c8c6dd503dc1ba34347717 /sys/dev/ahci
parentce283bc36fdff9bc2fe96b61adb634a76c29cf7a (diff)
downloadFreeBSD-src-5a81cccdc50e07c5c8d34e3586fcb2044a49c1d5.zip
FreeBSD-src-5a81cccdc50e07c5c8d34e3586fcb2044a49c1d5.tar.gz
MFC r302946:
Do not consider the last interrupt shared if there are enough interrupts for all channels.
Diffstat (limited to 'sys/dev/ahci')
-rw-r--r--sys/dev/ahci/ahci.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c
index 9db1c44..fbbbf0a 100644
--- a/sys/dev/ahci/ahci.c
+++ b/sys/dev/ahci/ahci.c
@@ -373,7 +373,8 @@ ahci_setup_interrupt(device_t dev)
else if (ctlr->numirqs == 1 || i >= ctlr->channels ||
(ctlr->ccc && i == ctlr->cccv))
ctlr->irqs[i].mode = AHCI_IRQ_MODE_ALL;
- else if (i == ctlr->numirqs - 1)
+ else if (ctlr->channels > ctlr->numirqs &&
+ i == ctlr->numirqs - 1)
ctlr->irqs[i].mode = AHCI_IRQ_MODE_AFTER;
else
ctlr->irqs[i].mode = AHCI_IRQ_MODE_ONE;
OpenPOWER on IntegriCloud