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