diff options
author | mav <mav@FreeBSD.org> | 2016-08-18 11:17:01 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2016-08-18 11:17:01 +0000 |
commit | 5a81cccdc50e07c5c8d34e3586fcb2044a49c1d5 (patch) | |
tree | 63875196fe71d1bf00c8c6dd503dc1ba34347717 /sys/dev/ahci | |
parent | ce283bc36fdff9bc2fe96b61adb634a76c29cf7a (diff) | |
download | FreeBSD-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.c | 3 |
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; |