Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Mar 2001 19:20:54 -0800 (PST)
From:      Archie Cobbs <archie@dellroad.org>
To:        Sleepless in Brisbane <snowy@snowy.org>
Cc:        freebsd-stable@FreeBSD.ORG
Subject:   Re: Kernel Panic on 4.3-RC #0 using PPPoE
Message-ID:  <200103270320.f2R3Ksu41321@arch20m.dellroad.org>
In-Reply-To: <Pine.BSF.4.21.0103271217010.12238-400000@localhost> "from Sleepless in Brisbane at Mar 27, 2001 12:18:13 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Sleepless in Brisbane writes:
>   I am receiving kernel panics under 4.3-RC #0 when trying to bring up PPPoE.  
> A copy of the kernel debug, the start up and the actual PPP configuration are
> attached.  It appears to be something in the subroutine called fxp_start of
> the actual ethernet card (Which is an Intel Express) trying to use a structure
> which has not yet been initialized.  The machine is an SMP machine as well;
> although compiling without SMP support has so far made no difference. The
> problem also occurs under 4.2-RELEASE.  Any help on the subject would be
> appreciated.

I think that the interface has not yet been brought up (IFF_UP)
before the first packet is sent out of it. This can normally only
happen when using netgraph (or raw sockets I suppose)... the
fxp driver seems to assume that it will never see an output packet
without an IFF_UP first, which is no longer true.

Also, ppp(8) should be setting IFF_UP on the interface before
trying to send out of it.

Not sure why this hasn't been detected before though. Below is
a possible patch.

-Archie

__________________________________________________________________________
Archie Cobbs     *     Packet Design     *     http://www.packetdesign.com

Index: if_fxp.c
===================================================================
RCS file: /home/cvs/freebsd/src/sys/pci/if_fxp.c,v
retrieving revision 1.77.2.9
diff -u -r1.77.2.9 if_fxp.c
--- if_fxp.c	2000/10/24 21:47:36	1.77.2.9
+++ if_fxp.c	2001/03/27 03:20:12
@@ -1053,6 +1053,12 @@
 	struct fxp_cb_tx *txp;
 
 	/*
+	 * Don't send anything unless initialized.
+	 */
+	if ((ifp->if_flags & IFF_UP) == 0)
+		return;
+
+	/*
 	 * See if we need to suspend xmit until the multicast filter
 	 * has been reprogrammed (which can only be done at the head
 	 * of the command chain).

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103270320.f2R3Ksu41321>