kern/66634: hard lock with em driver
Fabien THOMAS
fabien.thomas at netasq.com
Fri May 14 05:50:34 PDT 2004
>Number: 66634
>Category: kern
>Synopsis: hard lock with em driver
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Fri May 14 05:50:29 PDT 2004
>Closed-Date:
>Last-Modified:
>Originator: Fabien THOMAS
>Release: 4.9
>Organization:
NETASQ
>Environment:
FreeBSD build-current 4.9-RELEASE-p2 FreeBSD 4.9-RELEASE-p2 #0: Mon Mar 1 10:22:36 CET 2004 root at build-current:/usr/src/sys/compile/GENERIC i386
>Description:
We use a lot of intel gigabit card and since the first
time we use it we experience some strange hard lock of the system
(4.9|FreeBSD-stable). We have tried several driver version (it is not
related to a version). We use the card in polling mode but it seems that
the problem can be fired even in interrupt mode.
What i found during the debugging on a fiber card:
1) original driver did not lock but when the other end is rebooted i've
around 10 linkup/linkdown
2) removing linkup/linkdown printf: driver lock each time the other end
system is rebooted!
3) removing the E1000_IMC_RXSEQ in disable_intr correct the lock but i
do not understand why:
a) E1000_IMC_RXSEQ need to be left when disabling intr?
b) the system completly lock (even under debugger) for just an
interrupt source enabled?
static void
em_disable_intr(struct adapter *adapter)
{
E1000_WRITE_REG(&adapter->hw, IMC,
(0xffffffff));/* & ~E1000_IMC_RXSEQ));*/
return;
}
>How-To-Repeat:
use an intel dual port fiber card based on 546 chip for example
remove driver printf for linkup/linkdown
reboot the other end
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list