Previous revisions works fine.
Starting from r316399 it work for about ~10 minutes uptime and then starts spamming errors liek this:
isp0: Chan 0 Abort Cmd for N-Port 0x000c @ Port 0x1f1200
isp0: Polled Mailbox Command ()x54) Timeout (5000000us) (isp_control:4705)
isp0: Mailbox Command 'EXECUTE IOCB A64' failed (TIMEOUT)
isp0: isp_watchdog: timeout for handle 0x11882025
and nothing works until hard reset.
isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4000-0x40ff mem 0xfbff0000-0xfbff3fff irq 30 at device 0.0 on pci6
isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4400-0x44ff mem 0xfbfe0000-0xfbfe3fff irq 37 at device 0.1 on pci6
Loading or not loading ispfw doesn't change anything to this problem.
I can't say there can't be a regression, but I haven't heard any other reports about this. It may be specific to 24xx series of adapters, since they are older and I have tested them only basically. Unfortunately there seems to be no way in code to disable new functionality. It would be nice to create a patch for that.
Pre-316398 code only uses MSI-X for 2600+ cards.
This change in new code seems to fix the problem. May be it will be better to add some sysctl to optionally allow MSI-X on 24xx but anyway it should be disabled by default and might be enabled only by explicit request.
--- sys/dev/isp/ispmbox.h.orig 2018-12-18 09:49:17.549288000 +0300
+++ sys/dev/isp/ispmbox.h 2018-12-17 04:12:14.056837000 +0300
@@ -896,7 +896,7 @@
#define ISP_GET_VPIDX(isp, tag) \
(ISP_CAP_MULTI_ID(isp) ? tag : 0)
#define ISP_CAP_MSIX(isp) \
- (IS_24XX(isp)? (isp->isp_fwattr & ISP2400_FW_ATTR_MSIX) : 0)
+ (IS_26XX(isp)? (isp->isp_fwattr & ISP2400_FW_ATTR_MSIX) : 0)
#define ISP_CAP_VP0(isp) \
(IS_24XX(isp)? (isp->isp_fwattr & ISP2400_FW_ATTR_VP0) : 0)