Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Oct 2003 20:27:47 -0400 (EDT)
From:      Daniel Eischen <eischen@vigrid.com>
To:        current@freebsd.org
Cc:        sam@freebsd.org
Subject:   if_em panic
Message-ID:  <Pine.GSO.4.10.10310082015180.991-100000@pcnet5.pcnet.com>

next in thread | raw e-mail | index | archive | help

One of my buddies is having panics with if_em after the last
set of changes a couple of weeks ago.  He runs dhclient
on the interface to get a lease from a cable modem.  The
panic is a recurse on a non-recursive mutex.  I haven't
gotten a traceback from him yet, but a little perusing
through the source seems to show this as a possible problem:

Index: if_em.c
===================================================================
RCS file: /opt/FreeBSD/cvs/src/sys/dev/em/if_em.c,v
retrieving revision 1.30
diff -u -r1.30 if_em.c
--- if_em.c	23 Sep 2003 00:18:25 -0000	1.30
+++ if_em.c	8 Oct 2003 20:12:56 -0000
@@ -933,7 +933,7 @@
 
         if (ether_poll_register(em_poll, ifp)) {
                 em_disable_intr(adapter);
-                em_poll(ifp, 0, 1);
+		em_poll_locked(ifp, 0, 1);
 		EM_UNLOCK(adapter);
                 return;
         }

Also, indentation is inconsistent, some lines use tabs, some
uses spaces.  It looks like the original code from Intel used
spaces and subsequent mods used tabs.  I guess we should be
sticking with the original style, but it is easy to overlook.

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.10.10310082015180.991-100000>