if_em panic
Daniel Eischen
eischen at vigrid.com
Wed Oct 8 17:27:49 PDT 2003
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
More information about the freebsd-current
mailing list