isp(4) - kernel panic on initialization of driver
Scott Long
scottl at samsco.org
Tue Aug 26 21:00:29 UTC 2008
Ross wrote:
> I've been tracking down a problem that is sometimes causing a kernel
> panic to occur when initializing the isp driver in the system. (System
> in question is a HP Blade - BL460c w/ QHM 6432 FC dual port card
> reporting as the following:
>
> isp0: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4000-0x40ff mem 0xfdff0000-0xfdff3fff irq 18 at device 0.0 on pci16
> isp0: Board Type 2422, Chip Revision 0x2, resident F/W Revision 4.0.90
> isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4400-0x44ff mem 0xfdfe0000-0xfdfe3fff irq 19 at device 0.1 on pci16
> isp1: Board Type 2422, Chip Revision 0x2, resident F/W Revision 4.0.90
>
> We're doing a boot-via-san situation, and the issue looks to be that
> the card is receiving a ISPASYNC_CHANGE_PDB command on isp1 before
> it's ready for it. I'm guessing it's due to the fact the card already
> as the firmware loaded and active (due to the boot).
>
> Console debug (hint.isp.[01].debug=0x11f) output looks like the following on a crash:
>
> -=
> kernel: isp1: <Qlogic ISP 2432 PCI FC-AL Adapter> port 0x4400-0x44ff mem 0xfdfe0000-0xfdfe3fff irq 19 at device 0.1 on pci16
> kernel: isp1: set PCI latency to 64
> kernel: isp1: [ITHREAD]
> kernel: isp1: line 5345: markportdb
> kernel: isp1: Port Database Changed
> kernel: isp1: Port Database Changed: freeze simq (loopdown)
> [crash]
> -=
>
> Further debugging shows that isp_freeze_loopdown() function that is
> called at the above point never returns. Quick guess is the called
> xpt_freeze_simq() function [line 290 in isp_freebsd.c] is the culprit,
> but that's about the limit of my ability for tracking this down.
>
>
> If anyone has any pointers to fixing this, that would be appreciated!
>
> Thanks,
> Ross.
>
> (Also filed http://www.freebsd.org/cgi/query-pr.cgi?pr=126866 with
> basically the same notes above)
>
Please post the panic trace and messages.
Scott
More information about the freebsd-scsi
mailing list